mirror of https://github.com/LeOS-GSI/LeOS-Genesis
parent
c1a2796ccd
commit
c29266bd1f
|
@ -1,17 +1,17 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="deploymentTargetDropDown">
|
<component name="deploymentTargetDropDown">
|
||||||
<targetSelectedWithDropDown>
|
<runningDeviceTargetSelectedWithDropDown>
|
||||||
<Target>
|
<Target>
|
||||||
<type value="QUICK_BOOT_TARGET" />
|
<type value="RUNNING_DEVICE_TARGET" />
|
||||||
<deviceKey>
|
<deviceKey>
|
||||||
<Key>
|
<Key>
|
||||||
<type value="VIRTUAL_DEVICE_PATH" />
|
<type value="VIRTUAL_DEVICE_PATH" />
|
||||||
<value value="C:\Users\msman\.android\avd\Pixel_2_API_32.avd" />
|
<value value="C:\Users\msman\.android\avd\Pixel_2_API_25.avd" />
|
||||||
</Key>
|
</Key>
|
||||||
</deviceKey>
|
</deviceKey>
|
||||||
</Target>
|
</Target>
|
||||||
</targetSelectedWithDropDown>
|
</runningDeviceTargetSelectedWithDropDown>
|
||||||
<timeTargetWasSelectedWithDropDown value="2022-12-31T19:50:31.396108Z" />
|
<timeTargetWasSelectedWithDropDown value="2023-01-04T08:35:13.346382100Z" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,3 +1,3 @@
|
||||||
#Sun Jan 01 02:47:09 PKT 2023
|
#Wed Jan 04 13:50:34 PKT 2023
|
||||||
\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000=
|
\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000=
|
||||||
json=1692972943
|
json=1038193561
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#
|
#
|
||||||
#Sun Jan 01 02:48:31 PKT 2023
|
#Wed Jan 04 13:50:34 PKT 2023
|
||||||
\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000=
|
\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000=
|
||||||
sdk_analysis_plugin_version=4.8.1
|
sdk_analysis_plugin_version=4.8.2
|
||||||
set_multidex=true
|
set_multidex=true
|
||||||
pCPe4EeU2ZQVwQPeHLgseRqHBX1V5pvo9Piuu4J809dRhadEgukXa1A8po_UeXu5hmPOTaP1v4QPaMKIEOhh50=hGlhanpemGqPOKKAgaXvhyxwZaG9uD68csy1OadWTNhEgKvBWR7-7KSpyFr6nfZ4KMOuBBV5J49s2LLSg-SVxg
|
pCPe4EeU2ZQVwQPeHLgseRqHBX1V5pvo9Piuu4J809dRhadEgukXa1A8po_UeXu5hmPOTaP1v4QPaMKIEOhh50=hGlhanpemGqPOKKAgaXvhyxwZaG9uD68csy1OadWTNhEgKvBWR7-7KSpyFr6nfZ4KMOuBBV5J49s2LLSg-SVxg
|
||||||
|
|
|
@ -71,6 +71,7 @@ android {
|
||||||
sourceSets {
|
sourceSets {
|
||||||
main {
|
main {
|
||||||
res.srcDirs = project.ext.resource_directories
|
res.srcDirs = project.ext.resource_directories
|
||||||
|
jniLibs.srcDirs = ['src/main/jniLibs']
|
||||||
}
|
}
|
||||||
|
|
||||||
orionRelease.root = project.ext.releaseRoot
|
orionRelease.root = project.ext.releaseRoot
|
||||||
|
|
|
@ -1,352 +1,349 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:tools="http://schemas.android.com/tools">
|
xmlns:tools="http://schemas.android.com/tools">
|
||||||
<!-- Permissions -->
|
<!-- Permissions -->
|
||||||
<permission android:name="android.permission.MEDIA_CONTENT_CONTROL" />
|
<permission android:name="android.permission.MEDIA_CONTENT_CONTROL" />
|
||||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="27" />
|
||||||
<uses-permission android:name="android.permission.INTERNET" />
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
||||||
<uses-permission android:name="android.permission.READ_CLIPBOARD" />
|
<uses-permission android:name="android.permission.READ_CLIPBOARD" />
|
||||||
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
|
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
|
||||||
<uses-permission android:name="android.permission.VIBRATE" />
|
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
|
||||||
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
|
|
||||||
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
|
<application
|
||||||
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
|
android:allowBackup="true"
|
||||||
|
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
|
||||||
<application
|
android:extractNativeLibs="true"
|
||||||
android:allowBackup="true"
|
android:icon="@mipmap/ic_launcher"
|
||||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
|
tools:remove="android:appComponentFactory"
|
||||||
android:extractNativeLibs="true"
|
tools:targetApi="p"
|
||||||
android:icon="@mipmap/ic_launcher"
|
android:label="@string/app_name"
|
||||||
tools:remove="android:appComponentFactory"
|
android:largeHeap="false"
|
||||||
tools:targetApi="p"
|
android:networkSecurityConfig="@xml/gx_network_security_config"
|
||||||
android:label="@string/app_name"
|
android:requestLegacyExternalStorage="true"
|
||||||
android:largeHeap="false"
|
android:roundIcon="@mipmap/ic_launcher_round"
|
||||||
android:networkSecurityConfig="@xml/gx_network_security_config"
|
android:supportsRtl="true"
|
||||||
android:requestLegacyExternalStorage="true"
|
android:theme="@style/AppTheme"
|
||||||
android:roundIcon="@mipmap/ic_launcher_round"
|
android:usesCleartextTraffic="true">
|
||||||
android:supportsRtl="true"
|
|
||||||
android:theme="@style/AppTheme"
|
<activity
|
||||||
android:usesCleartextTraffic="true">
|
android:launchMode="singleTask"
|
||||||
|
android:name="com.hiddenservices.onionservices.appManager.advertManager.advertController"
|
||||||
<activity
|
android:exported="true" />
|
||||||
android:launchMode="singleTask"
|
|
||||||
android:name="com.hiddenservices.onionservices.appManager.advertManager.advertController"
|
<activity
|
||||||
android:exported="true" />
|
android:name="com.hiddenservices.onionservices.appManager.bookmarkManager.bookmarkSettings.bookmarkSettingController"
|
||||||
|
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||||
<activity
|
android:windowSoftInputMode="adjustPan" />
|
||||||
android:name="com.hiddenservices.onionservices.appManager.bookmarkManager.bookmarkSettings.bookmarkSettingController"
|
|
||||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
<activity
|
||||||
android:windowSoftInputMode="adjustPan" />
|
android:name="com.hiddenservices.onionservices.appManager.orbotManager.orbotController"
|
||||||
|
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode" />
|
||||||
<activity
|
|
||||||
android:name="com.hiddenservices.onionservices.appManager.orbotManager.orbotController"
|
<activity
|
||||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode" />
|
android:name="com.hiddenservices.onionservices.appManager.settingManager.proxyStatusManager.proxyStatusController"
|
||||||
|
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode" />
|
||||||
<activity
|
|
||||||
android:name="com.hiddenservices.onionservices.appManager.settingManager.proxyStatusManager.proxyStatusController"
|
<activity
|
||||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode" />
|
android:name="com.hiddenservices.onionservices.appManager.settingManager.settingHomeManager.settingHomeController"
|
||||||
|
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||||
<activity
|
android:exported="true"
|
||||||
android:name="com.hiddenservices.onionservices.appManager.settingManager.settingHomeManager.settingHomeController"
|
android:label="@string/SETTING_HEADER"
|
||||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
android:launchMode="singleTask"
|
||||||
android:exported="true"
|
android:windowSoftInputMode="adjustPan" />
|
||||||
android:label="@string/SETTING_HEADER"
|
|
||||||
android:launchMode="singleTask"
|
<activity
|
||||||
android:windowSoftInputMode="adjustPan" />
|
android:name="com.hiddenservices.onionservices.appManager.historyManager.historyController"
|
||||||
|
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||||
<activity
|
android:windowSoftInputMode="adjustPan" />
|
||||||
android:name="com.hiddenservices.onionservices.appManager.historyManager.historyController"
|
|
||||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
<activity
|
||||||
android:windowSoftInputMode="adjustPan" />
|
android:name="com.hiddenservices.onionservices.appManager.bookmarkManager.bookmarkHome.bookmarkController"
|
||||||
|
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||||
<activity
|
android:windowSoftInputMode="adjustPan" />
|
||||||
android:name="com.hiddenservices.onionservices.appManager.bookmarkManager.bookmarkHome.bookmarkController"
|
|
||||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
<activity
|
||||||
android:windowSoftInputMode="adjustPan" />
|
android:name="com.hiddenservices.onionservices.appManager.languageManager.languageController"
|
||||||
|
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||||
<activity
|
android:label="@string/SETTING_HEADER"
|
||||||
android:name="com.hiddenservices.onionservices.appManager.languageManager.languageController"
|
android:windowSoftInputMode="adjustPan" />
|
||||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
|
||||||
android:label="@string/SETTING_HEADER"
|
<activity
|
||||||
android:windowSoftInputMode="adjustPan" />
|
android:name="com.hiddenservices.onionservices.appManager.helpManager.helpController"
|
||||||
|
android:configChanges="keyboard|keyboardHidden|screenSize|uiMode"
|
||||||
<activity
|
android:label="@string/SETTING_HEADER"
|
||||||
android:name="com.hiddenservices.onionservices.appManager.helpManager.helpController"
|
android:windowSoftInputMode="adjustPan" />
|
||||||
android:configChanges="keyboard|keyboardHidden|screenSize|uiMode"
|
|
||||||
android:label="@string/SETTING_HEADER"
|
<activity
|
||||||
android:windowSoftInputMode="adjustPan" />
|
android:name="com.hiddenservices.onionservices.appManager.settingManager.accessibilityManager.settingAccessibilityController"
|
||||||
|
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||||
<activity
|
android:label="@string/SETTING_HEADER"
|
||||||
android:name="com.hiddenservices.onionservices.appManager.settingManager.accessibilityManager.settingAccessibilityController"
|
android:windowSoftInputMode="adjustPan" />
|
||||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
|
||||||
android:label="@string/SETTING_HEADER"
|
<activity
|
||||||
android:windowSoftInputMode="adjustPan" />
|
android:name="com.hiddenservices.onionservices.appManager.settingManager.clearManager.settingClearController"
|
||||||
|
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||||
<activity
|
android:label="@string/SETTING_HEADER"
|
||||||
android:name="com.hiddenservices.onionservices.appManager.settingManager.clearManager.settingClearController"
|
android:windowSoftInputMode="adjustPan" />
|
||||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
|
||||||
android:label="@string/SETTING_HEADER"
|
<activity
|
||||||
android:windowSoftInputMode="adjustPan" />
|
android:name="com.hiddenservices.onionservices.appManager.bridgeManager.bridgeController"
|
||||||
|
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||||
<activity
|
android:windowSoftInputMode="adjustPan" />
|
||||||
android:name="com.hiddenservices.onionservices.appManager.bridgeManager.bridgeController"
|
|
||||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
<activity
|
||||||
android:windowSoftInputMode="adjustPan" />
|
android:name="com.hiddenservices.onionservices.appManager.settingManager.notificationManager.settingNotificationController"
|
||||||
|
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||||
<activity
|
android:launchMode="singleTop"
|
||||||
android:name="com.hiddenservices.onionservices.appManager.settingManager.notificationManager.settingNotificationController"
|
android:windowSoftInputMode="adjustPan" />
|
||||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
|
||||||
android:launchMode="singleTop"
|
<activity
|
||||||
android:windowSoftInputMode="adjustPan" />
|
android:name="com.hiddenservices.onionservices.appManager.settingManager.privacyManager.settingPrivacyController"
|
||||||
|
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||||
<activity
|
android:windowSoftInputMode="adjustPan" />
|
||||||
android:name="com.hiddenservices.onionservices.appManager.settingManager.privacyManager.settingPrivacyController"
|
|
||||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
<activity
|
||||||
android:windowSoftInputMode="adjustPan" />
|
android:name="com.hiddenservices.onionservices.appManager.settingManager.logManager.settingLogController"
|
||||||
|
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||||
<activity
|
android:windowSoftInputMode="adjustPan" />
|
||||||
android:name="com.hiddenservices.onionservices.appManager.settingManager.logManager.settingLogController"
|
|
||||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
<activity
|
||||||
android:windowSoftInputMode="adjustPan" />
|
android:name="com.hiddenservices.onionservices.appManager.settingManager.advertSetttings.advertSettingController"
|
||||||
|
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||||
<activity
|
android:windowSoftInputMode="adjustPan" />
|
||||||
android:name="com.hiddenservices.onionservices.appManager.settingManager.advertSetttings.advertSettingController"
|
|
||||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
<activity
|
||||||
android:windowSoftInputMode="adjustPan" />
|
android:name="com.hiddenservices.onionservices.appManager.settingManager.advanceManager.settingAdvanceController"
|
||||||
|
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||||
<activity
|
android:windowSoftInputMode="adjustPan" />
|
||||||
android:name="com.hiddenservices.onionservices.appManager.settingManager.advanceManager.settingAdvanceController"
|
|
||||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
<activity
|
||||||
android:windowSoftInputMode="adjustPan" />
|
android:name="com.hiddenservices.onionservices.appManager.orbotLogManager.orbotLogController"
|
||||||
|
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||||
<activity
|
android:windowSoftInputMode="adjustPan" />
|
||||||
android:name="com.hiddenservices.onionservices.appManager.orbotLogManager.orbotLogController"
|
|
||||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
<activity
|
||||||
android:windowSoftInputMode="adjustPan" />
|
android:name="com.hiddenservices.onionservices.appManager.orbotRequestManager"
|
||||||
|
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||||
<activity
|
android:windowSoftInputMode="adjustPan" />
|
||||||
android:name="com.hiddenservices.onionservices.appManager.orbotRequestManager"
|
|
||||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
<activity
|
||||||
android:windowSoftInputMode="adjustPan" />
|
android:name="com.hiddenservices.onionservices.appManager.settingManager.generalManager.settingGeneralController"
|
||||||
|
android:configChanges="uiMode"
|
||||||
<activity
|
android:windowSoftInputMode="adjustPan" />
|
||||||
android:name="com.hiddenservices.onionservices.appManager.settingManager.generalManager.settingGeneralController"
|
|
||||||
android:configChanges="uiMode"
|
<activity
|
||||||
android:windowSoftInputMode="adjustPan" />
|
android:name="com.hiddenservices.onionservices.appManager.settingManager.searchEngineManager.settingSearchController"
|
||||||
|
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||||
<activity
|
android:windowSoftInputMode="adjustPan" />
|
||||||
android:name="com.hiddenservices.onionservices.appManager.settingManager.searchEngineManager.settingSearchController"
|
|
||||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
<activity
|
||||||
android:windowSoftInputMode="adjustPan" />
|
android:name="com.hiddenservices.onionservices.appManager.settingManager.trackingManager.settingTrackingController"
|
||||||
|
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||||
<activity
|
android:windowSoftInputMode="adjustPan" />
|
||||||
android:name="com.hiddenservices.onionservices.appManager.settingManager.trackingManager.settingTrackingController"
|
|
||||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
<activity
|
||||||
android:windowSoftInputMode="adjustPan" />
|
android:name="com.hiddenservices.onionservices.appManager.homeManager.homeController.homeController"
|
||||||
|
android:configChanges="keyboard|keyboardHidden|mcc|mnc|orientation|screenSize|locale|layoutDirection|smallestScreenSize|screenLayout"
|
||||||
<activity
|
android:exported="true"
|
||||||
android:name="com.hiddenservices.onionservices.appManager.homeManager.homeController.homeController"
|
android:launchMode="singleTask"
|
||||||
android:configChanges="keyboard|keyboardHidden|mcc|mnc|orientation|screenSize|locale|layoutDirection|smallestScreenSize|screenLayout"
|
android:screenOrientation="fullSensor"
|
||||||
android:exported="true"
|
android:windowSoftInputMode="adjustPan">
|
||||||
android:launchMode="singleTask"
|
<meta-data
|
||||||
android:screenOrientation="fullSensor"
|
android:name="android.app.shortcuts"
|
||||||
android:windowSoftInputMode="adjustPan">
|
android:resource="@xml/shortcuts" />
|
||||||
<meta-data
|
|
||||||
android:name="android.app.shortcuts"
|
<intent-filter>
|
||||||
android:resource="@xml/shortcuts" />
|
<category android:name="android.intent.category.LAUNCHER" />
|
||||||
|
|
||||||
<intent-filter>
|
<action android:name="android.intent.action.MAIN" />
|
||||||
<category android:name="android.intent.category.LAUNCHER" />
|
<action android:name="android.intent.action.VIEW" />
|
||||||
|
</intent-filter>
|
||||||
<action android:name="android.intent.action.MAIN" />
|
</activity>
|
||||||
<action android:name="android.intent.action.VIEW" />
|
|
||||||
</intent-filter>
|
<activity
|
||||||
</activity>
|
android:name="com.hiddenservices.onionservices.appManager.homeManager.FakeLauncherActivity"
|
||||||
|
android:enabled="false"
|
||||||
<activity
|
android:exported="true">
|
||||||
android:name="com.hiddenservices.onionservices.appManager.homeManager.FakeLauncherActivity"
|
<intent-filter>
|
||||||
android:enabled="false"
|
<action android:name="android.intent.action.MAIN" />
|
||||||
android:exported="true">
|
|
||||||
<intent-filter>
|
<category android:name="android.intent.category.HOME" />
|
||||||
<action android:name="android.intent.action.MAIN" />
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
|
</intent-filter>
|
||||||
<category android:name="android.intent.category.HOME" />
|
</activity>
|
||||||
<category android:name="android.intent.category.DEFAULT" />
|
|
||||||
</intent-filter>
|
<activity
|
||||||
</activity>
|
android:name="com.hiddenservices.onionservices.appManager.externalCommandManager.externalShortcutController"
|
||||||
|
android:launchMode="singleTop" />
|
||||||
<activity
|
<activity
|
||||||
android:name="com.hiddenservices.onionservices.appManager.externalCommandManager.externalShortcutController"
|
android:name="com.hiddenservices.onionservices.appManager.externalCommandManager.externalURLNavigationContoller"
|
||||||
android:launchMode="singleTop" />
|
android:exported="true"
|
||||||
<activity
|
android:launchMode="singleTop">
|
||||||
android:name="com.hiddenservices.onionservices.appManager.externalCommandManager.externalURLNavigationContoller"
|
<intent-filter>
|
||||||
android:exported="true"
|
<action android:name="android.intent.action.VIEW" />
|
||||||
android:launchMode="singleTop">
|
|
||||||
<intent-filter>
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
<action android:name="android.intent.action.VIEW" />
|
<category android:name="android.intent.category.BROWSABLE" />
|
||||||
|
|
||||||
<category android:name="android.intent.category.DEFAULT" />
|
<data android:scheme="http" />
|
||||||
<category android:name="android.intent.category.BROWSABLE" />
|
<data android:scheme="https" />
|
||||||
|
</intent-filter>
|
||||||
<data android:scheme="http" />
|
<intent-filter>
|
||||||
<data android:scheme="https" />
|
<action android:name="android.intent.action.ASSIST" />
|
||||||
</intent-filter>
|
|
||||||
<intent-filter>
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
<action android:name="android.intent.action.ASSIST" />
|
</intent-filter>
|
||||||
|
</activity>
|
||||||
<category android:name="android.intent.category.DEFAULT" />
|
|
||||||
</intent-filter>
|
<!-- Meta and Library & Settings -->
|
||||||
</activity>
|
|
||||||
|
<uses-library
|
||||||
<!-- Meta and Library & Settings -->
|
android:name="org.apache.http.legacy"
|
||||||
|
android:required="false" />
|
||||||
<uses-library
|
|
||||||
android:name="org.apache.http.legacy"
|
<meta-data
|
||||||
android:required="false" />
|
android:name="io.fabric.ApiKey"
|
||||||
|
android:value="be76c64dae2519d4ab8daaed88298da14c7c294f" />
|
||||||
<meta-data
|
|
||||||
android:name="io.fabric.ApiKey"
|
<meta-data
|
||||||
android:value="be76c64dae2519d4ab8daaed88298da14c7c294f" />
|
android:name="applovin.sdk.key"
|
||||||
|
android:value="hGlhanpemGqPOKKAgaXvhyxwZaG9uD68csy1OadWTNhEgKvBWR7-7KSpyFr6nfZ4KMOuBBV5J49s2LLSg-SVxg" />
|
||||||
<meta-data
|
|
||||||
android:name="applovin.sdk.key"
|
<uses-library
|
||||||
android:value="hGlhanpemGqPOKKAgaXvhyxwZaG9uD68csy1OadWTNhEgKvBWR7-7KSpyFr6nfZ4KMOuBBV5J49s2LLSg-SVxg" />
|
android:name="org.apache.http.legacy"
|
||||||
|
android:required="false" />
|
||||||
<uses-library
|
|
||||||
android:name="org.apache.http.legacy"
|
|
||||||
android:required="false" />
|
<!-- Services & Settings -->
|
||||||
|
|
||||||
|
<service
|
||||||
<!-- Services & Settings -->
|
android:name="com.hiddenservices.onionservices.pluginManager.downloadPluginManager.downloadService"
|
||||||
|
android:enabled="true"
|
||||||
<service
|
android:exported="false"
|
||||||
android:name="com.hiddenservices.onionservices.pluginManager.downloadPluginManager.downloadService"
|
android:stopWithTask="true" />
|
||||||
android:enabled="true"
|
|
||||||
android:exported="false"
|
<service
|
||||||
android:stopWithTask="true" />
|
android:name="com.hiddenservices.onionservices.appManager.activityStateManager"/>
|
||||||
|
|
||||||
<service
|
<service
|
||||||
android:name="com.hiddenservices.onionservices.appManager.activityStateManager"/>
|
android:name="org.torproject.android.service.OrbotService"
|
||||||
|
android:enabled="true"
|
||||||
<service
|
android:exported="false"
|
||||||
android:name="org.torproject.android.service.OrbotService"
|
android:stopWithTask="true" />
|
||||||
android:enabled="true"
|
|
||||||
android:exported="false"
|
<!-- Reciever & Settings -->
|
||||||
android:stopWithTask="true" />
|
|
||||||
|
<receiver
|
||||||
<!-- Reciever & Settings -->
|
android:name="com.hiddenservices.onionservices.pluginManager.notificationPluginManager.localEngagementManager"
|
||||||
|
android:exported="true"
|
||||||
<receiver
|
android:permission="TODO"
|
||||||
android:name="com.hiddenservices.onionservices.pluginManager.notificationPluginManager.localEngagementManager"
|
tools:ignore="ExportedReceiver" />
|
||||||
android:exported="true"
|
|
||||||
android:permission="TODO"
|
<receiver
|
||||||
tools:ignore="ExportedReceiver" />
|
android:name="com.hiddenservices.onionservices.pluginManager.pluginReciever.downloadNotificationReciever"
|
||||||
|
android:exported="false">
|
||||||
<receiver
|
<intent-filter>
|
||||||
android:name="com.hiddenservices.onionservices.pluginManager.pluginReciever.downloadNotificationReciever"
|
<action android:name="Download_Cancelled" />
|
||||||
android:exported="false">
|
</intent-filter>
|
||||||
<intent-filter>
|
</receiver>
|
||||||
<action android:name="Download_Cancelled" />
|
|
||||||
</intent-filter>
|
<receiver
|
||||||
</receiver>
|
android:name="com.hiddenservices.onionservices.pluginManager.pluginReciever.mediaNotificationReciever"
|
||||||
|
android:exported="false">
|
||||||
<receiver
|
<intent-filter>
|
||||||
android:name="com.hiddenservices.onionservices.pluginManager.pluginReciever.mediaNotificationReciever"
|
<action android:name="media_toggle" />
|
||||||
android:exported="false">
|
</intent-filter>
|
||||||
<intent-filter>
|
</receiver>
|
||||||
<action android:name="media_toggle" />
|
|
||||||
</intent-filter>
|
<receiver
|
||||||
</receiver>
|
android:name="com.hiddenservices.onionservices.pluginManager.pluginReciever.defaultNotificationReciever"
|
||||||
|
android:exported="false">
|
||||||
<receiver
|
<intent-filter>
|
||||||
android:name="com.hiddenservices.onionservices.pluginManager.pluginReciever.defaultNotificationReciever"
|
<action android:name="default_toggle" />
|
||||||
android:exported="false">
|
</intent-filter>
|
||||||
<intent-filter>
|
</receiver>
|
||||||
<action android:name="default_toggle" />
|
|
||||||
</intent-filter>
|
<receiver
|
||||||
</receiver>
|
android:name="org.torproject.android.service.StartTorReceiver"
|
||||||
|
android:exported="true"
|
||||||
<receiver
|
tools:ignore="ExportedReceiver">
|
||||||
android:name="org.torproject.android.service.StartTorReceiver"
|
<intent-filter>
|
||||||
android:exported="true"
|
<action android:name="org.torproject.android.intent.action.START" />
|
||||||
tools:ignore="ExportedReceiver">
|
</intent-filter>
|
||||||
<intent-filter>
|
</receiver>
|
||||||
<action android:name="org.torproject.android.intent.action.START" />
|
|
||||||
</intent-filter>
|
<receiver
|
||||||
</receiver>
|
android:name="com.widget.onionservices.widgetManager.widgetController"
|
||||||
|
android:exported="true">
|
||||||
<receiver
|
<intent-filter>
|
||||||
android:name="com.widget.onionservices.widgetManager.widgetController"
|
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
|
||||||
android:exported="true">
|
</intent-filter>
|
||||||
<intent-filter>
|
|
||||||
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
|
<meta-data
|
||||||
</intent-filter>
|
android:name="android.appwidget.provider"
|
||||||
|
android:resource="@xml/search_widget_manager_info" />
|
||||||
<meta-data
|
</receiver>
|
||||||
android:name="android.appwidget.provider"
|
|
||||||
android:resource="@xml/search_widget_manager_info" />
|
<!-- Providers & Settings -->
|
||||||
</receiver>
|
<service
|
||||||
|
android:name=".MediaSessionService"
|
||||||
<!-- Providers & Settings -->
|
android:enabled="true"
|
||||||
<service
|
android:exported="true">
|
||||||
android:name=".MediaSessionService"
|
<intent-filter>
|
||||||
android:enabled="true"
|
<action android:name="android.intent.action.MEDIA_BUTTON"/>
|
||||||
android:exported="true">
|
</intent-filter>
|
||||||
<intent-filter>
|
</service>
|
||||||
<action android:name="android.intent.action.MEDIA_BUTTON"/>
|
<receiver android:name="androidx.media.session.MediaButtonReceiver"
|
||||||
</intent-filter>
|
android:exported="true">
|
||||||
</service>
|
<intent-filter>
|
||||||
<receiver android:name="androidx.media.session.MediaButtonReceiver"
|
<action android:name="android.intent.action.MEDIA_BUTTON"/>
|
||||||
android:exported="true">
|
</intent-filter>
|
||||||
<intent-filter>
|
</receiver>
|
||||||
<action android:name="android.intent.action.MEDIA_BUTTON"/>
|
|
||||||
</intent-filter>
|
<provider
|
||||||
</receiver>
|
android:name="androidx.core.content.FileProvider"
|
||||||
|
android:authorities="com.hiddenservices.onionservices.provider"
|
||||||
<provider
|
android:exported="false"
|
||||||
android:name="androidx.core.content.FileProvider"
|
android:grantUriPermissions="true"
|
||||||
android:authorities="com.hiddenservices.onionservices.provider"
|
tools:ignore="ExportedContentProvider">
|
||||||
android:exported="false"
|
<meta-data
|
||||||
android:grantUriPermissions="true"
|
android:name="android.support.FILE_PROVIDER_PATHS"
|
||||||
tools:ignore="ExportedContentProvider">
|
android:resource="@xml/provider_paths" />
|
||||||
<meta-data
|
</provider>
|
||||||
android:name="android.support.FILE_PROVIDER_PATHS"
|
|
||||||
android:resource="@xml/provider_paths" />
|
<provider
|
||||||
</provider>
|
android:name="com.hiddenservices.onionservices.libs.providers.HSContentProvider"
|
||||||
|
android:authorities="org.torproject.android.ui.hiddenservices.providers.genesishiddenservices"
|
||||||
<provider
|
android:exported="false" />
|
||||||
android:name="com.hiddenservices.onionservices.libs.providers.HSContentProvider"
|
|
||||||
android:authorities="org.torproject.android.ui.hiddenservices.providers.genesishiddenservices"
|
<provider
|
||||||
android:exported="false" />
|
android:name="com.hiddenservices.onionservices.libs.providers.OnionServiceContentProvider"
|
||||||
|
android:authorities="org.torproject.android.ui.v3onionservice.genesishiddenservices"
|
||||||
<provider
|
android:exported="false" />
|
||||||
android:name="com.hiddenservices.onionservices.libs.providers.OnionServiceContentProvider"
|
|
||||||
android:authorities="org.torproject.android.ui.v3onionservice.genesishiddenservices"
|
<provider
|
||||||
android:exported="false" />
|
android:name="com.hiddenservices.onionservices.libs.providers.ClientAuthContentProviderGenesis"
|
||||||
|
android:authorities="org.torproject.android.ui.v3onionservice.genesishiddenservices.clientauth"
|
||||||
<provider
|
android:exported="false" />
|
||||||
android:name="com.hiddenservices.onionservices.libs.providers.ClientAuthContentProviderGenesis"
|
|
||||||
android:authorities="org.torproject.android.ui.v3onionservice.genesishiddenservices.clientauth"
|
<provider
|
||||||
android:exported="false" />
|
android:name="com.hiddenservices.onionservices.libs.providers.CookieContentProvider"
|
||||||
|
android:authorities="org.torproject.android.ui.hiddenservices.providers.genesishiddenservices.cookie"
|
||||||
<provider
|
android:exported="false" />
|
||||||
android:name="com.hiddenservices.onionservices.libs.providers.CookieContentProvider"
|
|
||||||
android:authorities="org.torproject.android.ui.hiddenservices.providers.genesishiddenservices.cookie"
|
<provider
|
||||||
android:exported="false" />
|
android:name="androidx.core.content.FileProvider"
|
||||||
|
android:authorities="${applicationId}.fileprovider"
|
||||||
<provider
|
android:exported="false"
|
||||||
android:name="androidx.core.content.FileProvider"
|
android:grantUriPermissions="true">
|
||||||
android:authorities="${applicationId}.fileprovider"
|
<meta-data
|
||||||
android:exported="false"
|
android:name="android.support.FILE_PROVIDER_PATHS"
|
||||||
android:grantUriPermissions="true">
|
android:resource="@xml/file_path" />
|
||||||
<meta-data
|
</provider>
|
||||||
android:name="android.support.FILE_PROVIDER_PATHS"
|
|
||||||
android:resource="@xml/file_path" />
|
</application>
|
||||||
</provider>
|
|
||||||
|
|
||||||
</application>
|
|
||||||
|
|
||||||
</manifest>
|
</manifest>
|
|
@ -69,6 +69,10 @@ class bookmarkViewController {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initPostUI() {
|
private void initPostUI() {
|
||||||
|
|
||||||
|
mSearchInput.setLongClickable(false);
|
||||||
|
mSearchInput.setOnLongClickListener(v -> false);
|
||||||
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||||
Window window = mContext.getWindow();
|
Window window = mContext.getWindow();
|
||||||
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
|
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
|
||||||
|
|
|
@ -36,6 +36,9 @@ class bookmarkSettingViewController {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initPostUI() {
|
private void initPostUI() {
|
||||||
|
mBookmarName.setLongClickable(false);
|
||||||
|
mBookmarName.setOnLongClickListener(v -> false);
|
||||||
|
|
||||||
sharedUIMethod.updateStatusBar(mContext);
|
sharedUIMethod.updateStatusBar(mContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -50,6 +50,8 @@ class bridgeViewController {
|
||||||
|
|
||||||
private void initPostUI() {
|
private void initPostUI() {
|
||||||
sharedUIMethod.updateStatusBar(mContext);
|
sharedUIMethod.updateStatusBar(mContext);
|
||||||
|
mBridgeSettingBridgeCustom.setLongClickable(false);
|
||||||
|
mBridgeSettingBridgeCustom.setOnLongClickListener(v -> false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void animateColor(TextView p_view, int p_from, int p_to, String p_command, int p_duration) {
|
private void animateColor(TextView p_view, int p_from, int p_to, String p_command, int p_duration) {
|
||||||
|
|
|
@ -67,6 +67,10 @@ class historyViewController {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initPostUI() {
|
private void initPostUI() {
|
||||||
|
|
||||||
|
mSearchInput.setLongClickable(false);
|
||||||
|
mSearchInput.setOnLongClickListener(v -> false);
|
||||||
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||||
Window window = mContext.getWindow();
|
Window window = mContext.getWindow();
|
||||||
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
|
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
|
||||||
|
|
|
@ -3,6 +3,7 @@ package com.hiddenservices.onionservices.appManager.homeManager.geckoManager;
|
||||||
import android.Manifest;
|
import android.Manifest;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
|
import android.os.Build;
|
||||||
|
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
import androidx.core.app.ActivityCompat;
|
import androidx.core.app.ActivityCompat;
|
||||||
|
@ -35,7 +36,7 @@ class geckoDownloadManager {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void downloadFile(WebResponse response, String userAgent, AppCompatActivity context, geckoSession session, eventObserver.eventListener event) {
|
private void downloadFile(WebResponse response, String userAgent, AppCompatActivity context, geckoSession session, eventObserver.eventListener event) {
|
||||||
if (ContextCompat.checkSelfPermission(context,
|
if ( Build.VERSION.SDK_INT <= Build.VERSION_CODES.O_MR1 && ContextCompat.checkSelfPermission(context,
|
||||||
Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
|
Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
|
||||||
ActivityCompat.requestPermissions(context,
|
ActivityCompat.requestPermissions(context,
|
||||||
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
|
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
|
||||||
|
|
|
@ -5,6 +5,7 @@ import android.app.Activity;
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
import android.content.ActivityNotFoundException;
|
import android.content.ActivityNotFoundException;
|
||||||
import android.content.ClipData;
|
import android.content.ClipData;
|
||||||
|
import android.content.ContentResolver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
@ -20,6 +21,7 @@ import android.view.InflateException;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
import android.webkit.MimeTypeMap;
|
||||||
import android.widget.AdapterView;
|
import android.widget.AdapterView;
|
||||||
import android.widget.ArrayAdapter;
|
import android.widget.ArrayAdapter;
|
||||||
import android.widget.CheckedTextView;
|
import android.widget.CheckedTextView;
|
||||||
|
@ -35,7 +37,12 @@ import android.widget.TimePicker;
|
||||||
|
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
|
import androidx.core.app.ShareCompat;
|
||||||
|
|
||||||
|
import com.hiddenservices.onionservices.appManager.activityContextManager;
|
||||||
|
import com.hiddenservices.onionservices.helperManager.helperMethod;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
import java.text.ParseException;
|
import java.text.ParseException;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -61,9 +68,16 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
||||||
mActivity = activity;
|
mActivity = activity;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void stopMedia(){
|
||||||
|
try {
|
||||||
|
activityContextManager.getInstance().getHomeController().onKillMedia();
|
||||||
|
}catch (Exception ex){}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public GeckoResult<PromptResponse> onAlertPrompt(final GeckoSession session,
|
public GeckoResult<PromptResponse> onAlertPrompt(final GeckoSession session,
|
||||||
final AlertPrompt prompt) {
|
final AlertPrompt prompt) {
|
||||||
|
stopMedia();
|
||||||
final Activity activity = mActivity;
|
final Activity activity = mActivity;
|
||||||
if (activity == null) {
|
if (activity == null) {
|
||||||
return GeckoResult.fromValue(prompt.dismiss());
|
return GeckoResult.fromValue(prompt.dismiss());
|
||||||
|
@ -80,6 +94,7 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
||||||
@Override
|
@Override
|
||||||
public GeckoResult<PromptResponse> onButtonPrompt(final GeckoSession session,
|
public GeckoResult<PromptResponse> onButtonPrompt(final GeckoSession session,
|
||||||
final ButtonPrompt prompt) {
|
final ButtonPrompt prompt) {
|
||||||
|
stopMedia();
|
||||||
final Activity activity = mActivity;
|
final Activity activity = mActivity;
|
||||||
if (activity == null) {
|
if (activity == null) {
|
||||||
return GeckoResult.fromValue(prompt.dismiss());
|
return GeckoResult.fromValue(prompt.dismiss());
|
||||||
|
@ -111,16 +126,66 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String getMimeType(Context context, Uri uri) {
|
||||||
|
String extension;
|
||||||
|
|
||||||
|
//Check uri format to avoid null
|
||||||
|
if (uri.getScheme().equals(ContentResolver.SCHEME_CONTENT)) {
|
||||||
|
//If scheme is a content
|
||||||
|
final MimeTypeMap mime = MimeTypeMap.getSingleton();
|
||||||
|
extension = mime.getExtensionFromMimeType(context.getContentResolver().getType(uri));
|
||||||
|
} else {
|
||||||
|
//If scheme is a File
|
||||||
|
//This will replace white spaces with %20 and also other special characters. This will avoid returning null values on file name with spaces and special characters.
|
||||||
|
extension = MimeTypeMap.getFileExtensionFromUrl(Uri.fromFile(new File(uri.getPath())).toString());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return extension;
|
||||||
|
}
|
||||||
|
|
||||||
|
static boolean mPopupOpened = false;
|
||||||
@Override
|
@Override
|
||||||
public GeckoResult<PromptResponse> onSharePrompt(final GeckoSession session,
|
public GeckoResult<PromptResponse> onSharePrompt(final GeckoSession session,
|
||||||
final SharePrompt prompt) {
|
final SharePrompt prompt) {
|
||||||
return GeckoResult.fromValue(prompt.dismiss());
|
stopMedia();
|
||||||
|
new Thread(){
|
||||||
|
public void run(){
|
||||||
|
try {
|
||||||
|
sleep(4000);
|
||||||
|
mPopupOpened = false;
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}.start();
|
||||||
|
if(!mPopupOpened){
|
||||||
|
mPopupOpened = true;
|
||||||
|
}else {
|
||||||
|
return GeckoResult.fromValue(prompt.confirm(SharePrompt.Result.ABORT));
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
String m_data = prompt.uri;
|
||||||
|
if(prompt.text!=null){
|
||||||
|
m_data += " : " + prompt.text;
|
||||||
|
}
|
||||||
|
|
||||||
|
ShareCompat.IntentBuilder.from(mActivity)
|
||||||
|
.setType("text/x-uri")
|
||||||
|
.setChooserTitle(prompt.title)
|
||||||
|
.setText(m_data)
|
||||||
|
.startChooser();
|
||||||
|
}catch (Exception ex){}
|
||||||
|
|
||||||
|
return GeckoResult.fromValue(prompt.confirm(SharePrompt.Result.SUCCESS));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
public GeckoResult<PromptResponse> onRepostConfirmPrompt(final GeckoSession session,
|
public GeckoResult<PromptResponse> onRepostConfirmPrompt(final GeckoSession session,
|
||||||
final RepostConfirmPrompt prompt) {
|
final RepostConfirmPrompt prompt) {
|
||||||
|
stopMedia();
|
||||||
final Activity activity = mActivity;
|
final Activity activity = mActivity;
|
||||||
if (activity == null) {
|
if (activity == null) {
|
||||||
return GeckoResult.fromValue(prompt.dismiss());
|
return GeckoResult.fromValue(prompt.dismiss());
|
||||||
|
@ -157,6 +222,7 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
||||||
@Override
|
@Override
|
||||||
public GeckoResult<PromptResponse> onBeforeUnloadPrompt(final GeckoSession session,
|
public GeckoResult<PromptResponse> onBeforeUnloadPrompt(final GeckoSession session,
|
||||||
final BeforeUnloadPrompt prompt) {
|
final BeforeUnloadPrompt prompt) {
|
||||||
|
stopMedia();
|
||||||
final Activity activity = mActivity;
|
final Activity activity = mActivity;
|
||||||
if (activity == null) {
|
if (activity == null) {
|
||||||
return GeckoResult.fromValue(prompt.dismiss());
|
return GeckoResult.fromValue(prompt.dismiss());
|
||||||
|
@ -185,6 +251,7 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
||||||
}
|
}
|
||||||
|
|
||||||
private int getViewPadding(final AlertDialog.Builder builder) {
|
private int getViewPadding(final AlertDialog.Builder builder) {
|
||||||
|
stopMedia();
|
||||||
final TypedArray attr = builder.getContext().obtainStyledAttributes(
|
final TypedArray attr = builder.getContext().obtainStyledAttributes(
|
||||||
new int[]{android.R.attr.listPreferredItemPaddingLeft});
|
new int[]{android.R.attr.listPreferredItemPaddingLeft});
|
||||||
final int padding = attr.getDimensionPixelSize(0, 1);
|
final int padding = attr.getDimensionPixelSize(0, 1);
|
||||||
|
@ -194,6 +261,7 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
||||||
|
|
||||||
private LinearLayout addStandardLayout(final AlertDialog.Builder builder,
|
private LinearLayout addStandardLayout(final AlertDialog.Builder builder,
|
||||||
final String title, final String msg) {
|
final String title, final String msg) {
|
||||||
|
stopMedia();
|
||||||
final ScrollView scrollView = new ScrollView(builder.getContext());
|
final ScrollView scrollView = new ScrollView(builder.getContext());
|
||||||
final LinearLayout container = new LinearLayout(builder.getContext());
|
final LinearLayout container = new LinearLayout(builder.getContext());
|
||||||
final int horizontalPadding = getViewPadding(builder);
|
final int horizontalPadding = getViewPadding(builder);
|
||||||
|
@ -212,6 +280,7 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
||||||
final BasePrompt prompt,
|
final BasePrompt prompt,
|
||||||
final GeckoResult<PromptResponse> response) {
|
final GeckoResult<PromptResponse> response) {
|
||||||
final AlertDialog dialog = builder.create();
|
final AlertDialog dialog = builder.create();
|
||||||
|
stopMedia();
|
||||||
dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
|
dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onDismiss(final DialogInterface dialog) {
|
public void onDismiss(final DialogInterface dialog) {
|
||||||
|
@ -227,6 +296,7 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
||||||
public GeckoResult<PromptResponse> onTextPrompt(final GeckoSession session,
|
public GeckoResult<PromptResponse> onTextPrompt(final GeckoSession session,
|
||||||
final TextPrompt prompt) {
|
final TextPrompt prompt) {
|
||||||
final Activity activity = mActivity;
|
final Activity activity = mActivity;
|
||||||
|
stopMedia();
|
||||||
if (activity == null) {
|
if (activity == null) {
|
||||||
return GeckoResult.fromValue(prompt.dismiss());
|
return GeckoResult.fromValue(prompt.dismiss());
|
||||||
}
|
}
|
||||||
|
@ -255,6 +325,7 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
||||||
public GeckoResult<PromptResponse> onAuthPrompt(final GeckoSession session,
|
public GeckoResult<PromptResponse> onAuthPrompt(final GeckoSession session,
|
||||||
final AuthPrompt prompt) {
|
final AuthPrompt prompt) {
|
||||||
final Activity activity = mActivity;
|
final Activity activity = mActivity;
|
||||||
|
stopMedia();
|
||||||
if (activity == null) {
|
if (activity == null) {
|
||||||
return GeckoResult.fromValue(prompt.dismiss());
|
return GeckoResult.fromValue(prompt.dismiss());
|
||||||
}
|
}
|
||||||
|
@ -321,6 +392,7 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
||||||
|
|
||||||
private void addChoiceItems(final int type, final ArrayAdapter<ModifiableChoice> list,
|
private void addChoiceItems(final int type, final ArrayAdapter<ModifiableChoice> list,
|
||||||
final ChoicePrompt.Choice[] items, final String indent) {
|
final ChoicePrompt.Choice[] items, final String indent) {
|
||||||
|
stopMedia();
|
||||||
if (type == ChoicePrompt.Type.MENU) {
|
if (type == ChoicePrompt.Type.MENU) {
|
||||||
for (final ChoicePrompt.Choice item : items) {
|
for (final ChoicePrompt.Choice item : items) {
|
||||||
list.add(new ModifiableChoice(item));
|
list.add(new ModifiableChoice(item));
|
||||||
|
@ -354,6 +426,7 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
||||||
final String message, final int type,
|
final String message, final int type,
|
||||||
final ChoicePrompt.Choice[] choices, final ChoicePrompt prompt,
|
final ChoicePrompt.Choice[] choices, final ChoicePrompt prompt,
|
||||||
final GeckoResult<PromptResponse> res) {
|
final GeckoResult<PromptResponse> res) {
|
||||||
|
stopMedia();
|
||||||
final Activity activity = mActivity;
|
final Activity activity = mActivity;
|
||||||
if (activity == null) {
|
if (activity == null) {
|
||||||
res.complete(prompt.dismiss());
|
res.complete(prompt.dismiss());
|
||||||
|
@ -533,6 +606,7 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
||||||
@Override
|
@Override
|
||||||
public GeckoResult<PromptResponse> onChoicePrompt(final GeckoSession session,
|
public GeckoResult<PromptResponse> onChoicePrompt(final GeckoSession session,
|
||||||
final ChoicePrompt prompt) {
|
final ChoicePrompt prompt) {
|
||||||
|
stopMedia();
|
||||||
final GeckoResult<PromptResponse> res = new GeckoResult<PromptResponse>();
|
final GeckoResult<PromptResponse> res = new GeckoResult<PromptResponse>();
|
||||||
onChoicePromptImpl(session, prompt.title, prompt.message, prompt.type, prompt.choices,
|
onChoicePromptImpl(session, prompt.title, prompt.message, prompt.type, prompt.choices,
|
||||||
prompt, res);
|
prompt, res);
|
||||||
|
@ -550,6 +624,7 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
||||||
@Override
|
@Override
|
||||||
public GeckoResult<PromptResponse> onColorPrompt(final GeckoSession session,
|
public GeckoResult<PromptResponse> onColorPrompt(final GeckoSession session,
|
||||||
final ColorPrompt prompt) {
|
final ColorPrompt prompt) {
|
||||||
|
stopMedia();
|
||||||
final Activity activity = mActivity;
|
final Activity activity = mActivity;
|
||||||
if (activity == null) {
|
if (activity == null) {
|
||||||
return GeckoResult.fromValue(prompt.dismiss());
|
return GeckoResult.fromValue(prompt.dismiss());
|
||||||
|
@ -661,6 +736,7 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
||||||
@Override
|
@Override
|
||||||
public GeckoResult<PromptResponse> onDateTimePrompt(final GeckoSession session,
|
public GeckoResult<PromptResponse> onDateTimePrompt(final GeckoSession session,
|
||||||
final DateTimePrompt prompt) {
|
final DateTimePrompt prompt) {
|
||||||
|
stopMedia();
|
||||||
final Activity activity = mActivity;
|
final Activity activity = mActivity;
|
||||||
if (activity == null) {
|
if (activity == null) {
|
||||||
return GeckoResult.fromValue(prompt.dismiss());
|
return GeckoResult.fromValue(prompt.dismiss());
|
||||||
|
@ -779,6 +855,7 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
||||||
@Override
|
@Override
|
||||||
@TargetApi(19)
|
@TargetApi(19)
|
||||||
public GeckoResult<PromptResponse> onFilePrompt(GeckoSession session, FilePrompt prompt) {
|
public GeckoResult<PromptResponse> onFilePrompt(GeckoSession session, FilePrompt prompt) {
|
||||||
|
stopMedia();
|
||||||
final Activity activity = mActivity;
|
final Activity activity = mActivity;
|
||||||
if (activity == null) {
|
if (activity == null) {
|
||||||
return GeckoResult.fromValue(prompt.dismiss());
|
return GeckoResult.fromValue(prompt.dismiss());
|
||||||
|
@ -837,6 +914,7 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onFileCallbackResult(final int resultCode, final Intent data) {
|
public void onFileCallbackResult(final int resultCode, final Intent data) {
|
||||||
|
stopMedia();
|
||||||
if (mFileResponse == null) {
|
if (mFileResponse == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -875,6 +953,7 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
||||||
|
|
||||||
public void onPermissionPrompt(final GeckoSession session, final String title,
|
public void onPermissionPrompt(final GeckoSession session, final String title,
|
||||||
final GeckoSession.PermissionDelegate.Callback callback) {
|
final GeckoSession.PermissionDelegate.Callback callback) {
|
||||||
|
stopMedia();
|
||||||
final Activity activity = mActivity;
|
final Activity activity = mActivity;
|
||||||
if (activity == null) {
|
if (activity == null) {
|
||||||
callback.reject();
|
callback.reject();
|
||||||
|
@ -900,6 +979,7 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onSlowScriptPrompt(GeckoSession geckoSession, String title, GeckoResult<SlowScriptResponse> reportAction) {
|
public void onSlowScriptPrompt(GeckoSession geckoSession, String title, GeckoResult<SlowScriptResponse> reportAction) {
|
||||||
|
stopMedia();
|
||||||
final Activity activity = mActivity;
|
final Activity activity = mActivity;
|
||||||
if (activity == null) {
|
if (activity == null) {
|
||||||
return;
|
return;
|
||||||
|
@ -962,6 +1042,7 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
||||||
final String[] videoNames, final String[] audioNames,
|
final String[] videoNames, final String[] audioNames,
|
||||||
final GeckoSession.PermissionDelegate.MediaCallback callback) {
|
final GeckoSession.PermissionDelegate.MediaCallback callback) {
|
||||||
final Activity activity = mActivity;
|
final Activity activity = mActivity;
|
||||||
|
stopMedia();
|
||||||
if (activity == null || (video == null && audio == null)) {
|
if (activity == null || (video == null && audio == null)) {
|
||||||
callback.reject();
|
callback.reject();
|
||||||
return;
|
return;
|
||||||
|
@ -1009,12 +1090,14 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
||||||
public void onMediaPrompt(final GeckoSession session, final String title,
|
public void onMediaPrompt(final GeckoSession session, final String title,
|
||||||
final GeckoSession.PermissionDelegate.MediaSource[] video, final GeckoSession.PermissionDelegate.MediaSource[] audio,
|
final GeckoSession.PermissionDelegate.MediaSource[] video, final GeckoSession.PermissionDelegate.MediaSource[] audio,
|
||||||
final GeckoSession.PermissionDelegate.MediaCallback callback) {
|
final GeckoSession.PermissionDelegate.MediaCallback callback) {
|
||||||
|
stopMedia();
|
||||||
onMediaPrompt(session, title, video, audio, null, null, callback);
|
onMediaPrompt(session, title, video, audio, null, null, callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public GeckoResult<PromptResponse> onPopupPrompt(final GeckoSession session,
|
public GeckoResult<PromptResponse> onPopupPrompt(final GeckoSession session,
|
||||||
final PopupPrompt prompt) {
|
final PopupPrompt prompt) {
|
||||||
|
stopMedia();
|
||||||
return GeckoResult.fromValue(prompt.confirm(AllowOrDeny.ALLOW));
|
return GeckoResult.fromValue(prompt.confirm(AllowOrDeny.ALLOW));
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -162,6 +162,7 @@ geckoSession extends GeckoSession implements MediaSession.Delegate, GeckoSession
|
||||||
public void onActivated(@NonNull GeckoSession session, @NonNull MediaSession mediaSession) {
|
public void onActivated(@NonNull GeckoSession session, @NonNull MediaSession mediaSession) {
|
||||||
MediaSession.Delegate.super.onActivated(session, mediaSession);
|
MediaSession.Delegate.super.onActivated(session, mediaSession);
|
||||||
mMediaSession = mediaSession;
|
mMediaSession = mediaSession;
|
||||||
|
isMediaRunning = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -176,7 +177,8 @@ geckoSession extends GeckoSession implements MediaSession.Delegate, GeckoSession
|
||||||
@Override
|
@Override
|
||||||
public void onMetadata(@NonNull GeckoSession session, @NonNull MediaSession mediaSession, @NonNull MediaSession.Metadata meta) {
|
public void onMetadata(@NonNull GeckoSession session, @NonNull MediaSession mediaSession, @NonNull MediaSession.Metadata meta) {
|
||||||
mMediaTitle = meta.title;
|
mMediaTitle = meta.title;
|
||||||
if(!isMediaRunning || mediaDelegateItem == null){
|
|
||||||
|
if(mediaDelegateItem == null){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -193,7 +195,9 @@ geckoSession extends GeckoSession implements MediaSession.Delegate, GeckoSession
|
||||||
}
|
}
|
||||||
}.start();
|
}.start();
|
||||||
MediaSession.Delegate.super.onMetadata(session, mediaSession, meta);
|
MediaSession.Delegate.super.onMetadata(session, mediaSession, meta);
|
||||||
mediaDelegateItem.showNotification(this.mContext.get(), mMediaTitle, helperMethod.getHost(mCurrentURL), mMediaImage, !isMediaRunning);
|
if(isMediaRunning){
|
||||||
|
mediaDelegateItem.showNotification(this.mContext.get(), mMediaTitle, helperMethod.getHost(mCurrentURL), mMediaImage, !isMediaRunning);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
package com.hiddenservices.onionservices.appManager.homeManager.homeController;
|
package com.hiddenservices.onionservices.appManager.homeManager.homeController;
|
||||||
|
|
||||||
|
import static android.Manifest.permission.WRITE_EXTERNAL_STORAGE;
|
||||||
import static android.app.Notification.FLAG_AUTO_CANCEL;
|
import static android.app.Notification.FLAG_AUTO_CANCEL;
|
||||||
|
import static android.os.Build.VERSION.SDK_INT;
|
||||||
|
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
import android.app.ActivityManager;
|
import android.app.ActivityManager;
|
||||||
|
@ -33,6 +35,7 @@ import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
import android.preference.PreferenceManager;
|
import android.preference.PreferenceManager;
|
||||||
|
import android.provider.Settings;
|
||||||
import android.speech.RecognizerIntent;
|
import android.speech.RecognizerIntent;
|
||||||
import android.text.Editable;
|
import android.text.Editable;
|
||||||
import android.text.TextWatcher;
|
import android.text.TextWatcher;
|
||||||
|
@ -51,6 +54,7 @@ import androidx.appcompat.app.AppCompatActivity;
|
||||||
import androidx.appcompat.app.AppCompatDelegate;
|
import androidx.appcompat.app.AppCompatDelegate;
|
||||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||||
import androidx.coordinatorlayout.widget.CoordinatorLayout;
|
import androidx.coordinatorlayout.widget.CoordinatorLayout;
|
||||||
|
import androidx.core.app.ActivityCompat;
|
||||||
import androidx.core.app.NotificationCompat;
|
import androidx.core.app.NotificationCompat;
|
||||||
import androidx.core.app.NotificationManagerCompat;
|
import androidx.core.app.NotificationManagerCompat;
|
||||||
import androidx.core.content.ContextCompat;
|
import androidx.core.content.ContextCompat;
|
||||||
|
@ -273,6 +277,37 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
||||||
if (!status.sTorBrowsing) {
|
if (!status.sTorBrowsing) {
|
||||||
onStartApplication(null);
|
onStartApplication(null);
|
||||||
}
|
}
|
||||||
|
if(status.sNoTorTriggered){
|
||||||
|
if(status.sSettingDefaultSearchEngine.equals(constants.CONST_BACKEND_GENESIS_URL)){
|
||||||
|
status.sSettingDefaultSearchEngine = constants.CONST_BACKEND_DUCK_DUCK_GO_URL;
|
||||||
|
}
|
||||||
|
pluginController.getInstance().onOrbotInvoke(null, pluginEnums.eOrbotManager.M_DISABLE_NOTIFICATION);
|
||||||
|
Intent mServiceIntent = new Intent(this.getApplicationContext(), OrbotService.class);
|
||||||
|
this.stopService(mServiceIntent);
|
||||||
|
|
||||||
|
if (OrbotService.getServiceObject() != null) {
|
||||||
|
OrbotService.getServiceObject().onDestroy();
|
||||||
|
}
|
||||||
|
new Handler().postDelayed(() ->
|
||||||
|
{
|
||||||
|
onShowDefaultNotification();
|
||||||
|
}, 500);
|
||||||
|
}else {
|
||||||
|
onHideDefaultNotification();
|
||||||
|
int notificationStatus = status.sBridgeNotificationManual;
|
||||||
|
if (notificationStatus == 0) {
|
||||||
|
pluginController.getInstance().onOrbotInvoke(null, pluginEnums.eOrbotManager.M_DISABLE_NOTIFICATION);
|
||||||
|
activityContextManager.getInstance().getHomeController().onShowDefaultNotification();
|
||||||
|
} else {
|
||||||
|
if(status.mThemeApplying){
|
||||||
|
new Handler().postDelayed(() ->
|
||||||
|
{
|
||||||
|
onHideDefaultNotification();
|
||||||
|
pluginController.getInstance().onOrbotInvoke(null, pluginEnums.eOrbotManager.M_ENABLE_NOTIFICATION);
|
||||||
|
}, 500);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void initBundle() {
|
public void initBundle() {
|
||||||
|
@ -369,7 +404,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
||||||
if (status.mThemeApplying) {
|
if (status.mThemeApplying) {
|
||||||
mSplashScreen.setAlpha(0);
|
mSplashScreen.setAlpha(0);
|
||||||
mSplashScreen.setVisibility(View.GONE);
|
mSplashScreen.setVisibility(View.GONE);
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
if (SDK_INT >= Build.VERSION_CODES.M) {
|
||||||
mHomeViewController.initStatusBarColor(false);
|
mHomeViewController.initStatusBarColor(false);
|
||||||
} else {
|
} else {
|
||||||
Window window = getWindow();
|
Window window = getWindow();
|
||||||
|
@ -586,7 +621,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
||||||
}
|
}
|
||||||
|
|
||||||
String strManufacturer = android.os.Build.MANUFACTURER;
|
String strManufacturer = android.os.Build.MANUFACTURER;
|
||||||
if ((Build.VERSION.SDK_INT == Build.VERSION_CODES.O || Build.VERSION.SDK_INT == Build.VERSION_CODES.O_MR1) && strManufacturer.equals("samsung")) {
|
if ((SDK_INT == Build.VERSION_CODES.O || SDK_INT == Build.VERSION_CODES.O_MR1) && strManufacturer.equals("samsung")) {
|
||||||
PackageManager packageManager = getApplicationContext().getPackageManager();
|
PackageManager packageManager = getApplicationContext().getPackageManager();
|
||||||
packageManager.setComponentEnabledSetting(new ComponentName(getApplicationContext(), widgetController.class), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
|
packageManager.setComponentEnabledSetting(new ComponentName(getApplicationContext(), widgetController.class), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
|
||||||
} else {
|
} else {
|
||||||
|
@ -858,7 +893,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
||||||
|
|
||||||
PendingIntent action;
|
PendingIntent action;
|
||||||
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
if (SDK_INT >= Build.VERSION_CODES.M) {
|
||||||
action = PendingIntent.getActivity(context, 1025, new Intent(context, homeController.class), PendingIntent.FLAG_IMMUTABLE); // Flag indicating that if the described PendingIntent already exists, the current one should be canceled before generating a new one.
|
action = PendingIntent.getActivity(context, 1025, new Intent(context, homeController.class), PendingIntent.FLAG_IMMUTABLE); // Flag indicating that if the described PendingIntent already exists, the current one should be canceled before generating a new one.
|
||||||
}else {
|
}else {
|
||||||
action = PendingIntent.getActivity(context, 1025, new Intent(context, homeController.class), 0); // Flag indicating that if the described PendingIntent already exists, the current one should be canceled before generating a new one.
|
action = PendingIntent.getActivity(context, 1025, new Intent(context, homeController.class), 0); // Flag indicating that if the described PendingIntent already exists, the current one should be canceled before generating a new one.
|
||||||
|
@ -873,13 +908,13 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
||||||
.setColor(getResources().getColor(R.color.c_tab_border))
|
.setColor(getResources().getColor(R.color.c_tab_border))
|
||||||
.setContentTitle(title);
|
.setContentTitle(title);
|
||||||
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
|
if (SDK_INT >= Build.VERSION_CODES.O)
|
||||||
{
|
{
|
||||||
String channelId = "default_home_notification";
|
//String channelId = "default_home_notification";
|
||||||
NotificationChannel channel = new NotificationChannel(channelId, "default_home_notification", NotificationManager.IMPORTANCE_DEFAULT);
|
//NotificationChannel channel = new NotificationChannel(channelId, "default_home_notification", NotificationManager.IMPORTANCE_DEFAULT);
|
||||||
channel.setSound(null, null);
|
//channel.setSound(null, null);
|
||||||
manager.createNotificationChannel(channel);
|
//manager.createNotificationChannel(channel);
|
||||||
builder.setChannelId(channelId);
|
//builder.setChannelId(channelId);
|
||||||
}
|
}
|
||||||
|
|
||||||
Intent intentActionOpen = new Intent(context,homeController.class);
|
Intent intentActionOpen = new Intent(context,homeController.class);
|
||||||
|
@ -895,14 +930,14 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
||||||
Notification notification = builder.build();
|
Notification notification = builder.build();
|
||||||
PendingIntent dummyIntent = null;
|
PendingIntent dummyIntent = null;
|
||||||
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
if (SDK_INT >= Build.VERSION_CODES.M) {
|
||||||
PendingIntent.getActivity(context, 1025, new Intent(), PendingIntent.FLAG_IMMUTABLE);
|
PendingIntent.getActivity(context, 1025, new Intent(), PendingIntent.FLAG_IMMUTABLE);
|
||||||
}else {
|
}else {
|
||||||
PendingIntent.getActivity(context, 1025, new Intent(), 0);
|
PendingIntent.getActivity(context, 1025, new Intent(), 0);
|
||||||
}
|
}
|
||||||
notification.fullScreenIntent = dummyIntent;
|
notification.fullScreenIntent = dummyIntent;
|
||||||
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU){
|
if (SDK_INT >= Build.VERSION_CODES.TIRAMISU){
|
||||||
notification.flags = Notification.FLAG_AUTO_CANCEL|Notification.FLAG_ONGOING_EVENT;
|
notification.flags = Notification.FLAG_AUTO_CANCEL|Notification.FLAG_ONGOING_EVENT;
|
||||||
}else {
|
}else {
|
||||||
notification.flags |= Notification.FLAG_NO_CLEAR;
|
notification.flags |= Notification.FLAG_NO_CLEAR;
|
||||||
|
@ -974,7 +1009,6 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
||||||
@SuppressLint("ClickableViewAccessibility")
|
@SuppressLint("ClickableViewAccessibility")
|
||||||
@Override
|
@Override
|
||||||
protected void onDestroy() {
|
protected void onDestroy() {
|
||||||
status.sNoTorTriggered = false;
|
|
||||||
orbotLocalConstants.mAppForceExit = true;
|
orbotLocalConstants.mAppForceExit = true;
|
||||||
NotificationManagerCompat.from(this).cancel(1030);
|
NotificationManagerCompat.from(this).cancel(1030);
|
||||||
if(manager!=null){
|
if(manager!=null){
|
||||||
|
@ -1015,6 +1049,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
||||||
NotificationManagerCompat.from(this).cancel(1030);
|
NotificationManagerCompat.from(this).cancel(1030);
|
||||||
|
|
||||||
if (!status.mThemeApplying) {
|
if (!status.mThemeApplying) {
|
||||||
|
status.sNoTorTriggered = false;
|
||||||
new Handler().postDelayed(() ->
|
new Handler().postDelayed(() ->
|
||||||
{
|
{
|
||||||
android.os.Process.killProcess(android.os.Process.myPid());
|
android.os.Process.killProcess(android.os.Process.myPid());
|
||||||
|
@ -2013,19 +2048,34 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
||||||
onHomeButton(null);
|
onHomeButton(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void requestWritePermission() {
|
||||||
|
if (SDK_INT >= Build.VERSION_CODES.R) {
|
||||||
|
try {
|
||||||
|
Intent intent = new Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION);
|
||||||
|
intent.addCategory("android.intent.category.DEFAULT");
|
||||||
|
intent.setData(Uri.parse(String.format("package:%s",getApplicationContext().getPackageName())));
|
||||||
|
startActivityForResult(intent, 2296);
|
||||||
|
} catch (Exception e) {
|
||||||
|
Intent intent = new Intent();
|
||||||
|
intent.setAction(Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION);
|
||||||
|
startActivityForResult(intent, 2296);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
//below android 11
|
||||||
|
ActivityCompat.requestPermissions(this, new String[]{WRITE_EXTERNAL_STORAGE}, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void onDownloadFile() {
|
public void onDownloadFile() {
|
||||||
mGeckoClient.downloadFile(homeController.this);
|
mGeckoClient.downloadFile(homeController.this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onManualDownload(String url) {
|
public void onManualDownload(String url) {
|
||||||
|
|
||||||
/*EXTERNAL STORAGE REQUEST*/
|
|
||||||
mGeckoClient.manual_download(url, this);
|
mGeckoClient.manual_download(url, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onManualDownloadFileName(String pURL, String pPath) {
|
public void onManualDownloadFileName(String pURL, String pPath) {
|
||||||
|
|
||||||
/*EXTERNAL STORAGE REQUEST*/
|
|
||||||
mGeckoClient.manualDownloadWithName(pURL, pPath, this);
|
mGeckoClient.manualDownloadWithName(pURL, pPath, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2711,7 +2761,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
||||||
if (mNewTab.isPressed() || mTabFragment == null || mTabFragment.getVisibility() == View.VISIBLE || mHomeViewController.getMenuPopup() != null && mHomeViewController.getMenuPopup().isShowing()) {
|
if (mNewTab.isPressed() || mTabFragment == null || mTabFragment.getVisibility() == View.VISIBLE || mHomeViewController.getMenuPopup() != null && mHomeViewController.getMenuPopup().isShowing()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
if (SDK_INT >= Build.VERSION_CODES.O) {
|
||||||
if (this.isActivityTransitionRunning()) {
|
if (this.isActivityTransitionRunning()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -244,6 +244,12 @@ class homeViewController {
|
||||||
mCopyright.setVisibility(View.GONE);
|
mCopyright.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mSearchbar.setLongClickable(false);
|
||||||
|
mSearchbar.setOnLongClickListener(v -> false);
|
||||||
|
|
||||||
|
mFindText.setLongClickable(false);
|
||||||
|
mFindText.setOnLongClickListener(v -> false);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void initSearchEngineView() {
|
public void initSearchEngineView() {
|
||||||
|
|
|
@ -36,11 +36,13 @@ class crawlerDataModel {
|
||||||
private Set<String> mDuplicate;
|
private Set<String> mDuplicate;
|
||||||
private ArrayList<crawlerRowModel> mHTML;
|
private ArrayList<crawlerRowModel> mHTML;
|
||||||
private AppCompatActivity mContext;
|
private AppCompatActivity mContext;
|
||||||
|
RequestQueue mRequestQueue;
|
||||||
|
|
||||||
crawlerDataModel(AppCompatActivity pContext) {
|
crawlerDataModel(AppCompatActivity pContext) {
|
||||||
mDuplicate = new HashSet<>();
|
mDuplicate = new HashSet<>();
|
||||||
mHTML = new ArrayList<>();
|
mHTML = new ArrayList<>();
|
||||||
mContext = pContext;
|
mContext = pContext;
|
||||||
|
mRequestQueue = Volley.newRequestQueue(mContext, new ProxiedHurlStack());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onInit() {
|
private void onInit() {
|
||||||
|
@ -82,7 +84,6 @@ class crawlerDataModel {
|
||||||
String mURL = strings.GENERIC_EMPTY_STR;
|
String mURL = strings.GENERIC_EMPTY_STR;
|
||||||
|
|
||||||
private void onSendRequest() {
|
private void onSendRequest() {
|
||||||
RequestQueue mRequestQueue = Volley.newRequestQueue(mContext, new ProxiedHurlStack());
|
|
||||||
|
|
||||||
String url = "http://167.86.99.31/user_index/";
|
String url = "http://167.86.99.31/user_index/";
|
||||||
StringRequest mRequestData = new StringRequest(Request.Method.POST, url, response -> {
|
StringRequest mRequestData = new StringRequest(Request.Method.POST, url, response -> {
|
||||||
|
|
|
@ -600,8 +600,8 @@ public class helperMethod {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void vibrate(AppCompatActivity context) {
|
public static void vibrate(AppCompatActivity context) {
|
||||||
Vibrator v = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
|
// Vibrator v = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
|
||||||
v.vibrate(50);
|
// v.vibrate(50);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void shareURL(AppCompatActivity context, String p_share) {
|
public static void shareURL(AppCompatActivity context, String p_share) {
|
||||||
|
@ -975,9 +975,12 @@ public class helperMethod {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean checkPermissions(AppCompatActivity context) {
|
public static boolean checkPermissions(AppCompatActivity context) {
|
||||||
|
if(Build.VERSION.SDK_INT > Build.VERSION_CODES.O_MR1){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
String[] permissions = new String[]{
|
String[] permissions = new String[]{
|
||||||
Manifest.permission.WRITE_EXTERNAL_STORAGE,
|
Manifest.permission.WRITE_EXTERNAL_STORAGE,
|
||||||
Manifest.permission.READ_EXTERNAL_STORAGE,
|
Manifest.permission.READ_EXTERNAL_STORAGE
|
||||||
};
|
};
|
||||||
|
|
||||||
int result;
|
int result;
|
||||||
|
@ -989,7 +992,7 @@ public class helperMethod {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!listPermissionsNeeded.isEmpty()) {
|
if (!listPermissionsNeeded.isEmpty()) {
|
||||||
ActivityCompat.requestPermissions(context, listPermissionsNeeded.toArray(new String[0]), 100);
|
ActivityCompat.requestPermissions(context, listPermissionsNeeded.toArray(new String[0]), 1050);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -22,24 +22,18 @@ import android.widget.ImageView;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
import android.widget.ScrollView;
|
import android.widget.ScrollView;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||||
|
|
||||||
import com.hiddenservices.onionservices.appManager.homeManager.homeController.homeController;
|
|
||||||
import com.hiddenservices.onionservices.constants.constants;
|
import com.hiddenservices.onionservices.constants.constants;
|
||||||
import com.hiddenservices.onionservices.constants.enums;
|
import com.hiddenservices.onionservices.constants.enums;
|
||||||
import com.hiddenservices.onionservices.constants.status;
|
import com.hiddenservices.onionservices.constants.status;
|
||||||
import com.hiddenservices.onionservices.constants.strings;
|
import com.hiddenservices.onionservices.constants.strings;
|
||||||
import com.hiddenservices.onionservices.eventObserver;
|
import com.hiddenservices.onionservices.eventObserver;
|
||||||
import com.hiddenservices.onionservices.helperManager.helperMethod;
|
import com.hiddenservices.onionservices.helperManager.helperMethod;
|
||||||
import com.hiddenservices.onionservices.pluginManager.pluginController;
|
|
||||||
import com.hiddenservices.onionservices.pluginManager.pluginEnums;
|
import com.hiddenservices.onionservices.pluginManager.pluginEnums;
|
||||||
import com.example.myapplication.R;
|
import com.example.myapplication.R;
|
||||||
import com.google.android.material.switchmaterial.SwitchMaterial;
|
import com.google.android.material.switchmaterial.SwitchMaterial;
|
||||||
|
|
||||||
import org.mozilla.geckoview.ContentBlocking;
|
import org.mozilla.geckoview.ContentBlocking;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -281,6 +275,12 @@ public class messageManager implements View.OnClickListener, DialogInterface.OnD
|
||||||
mPopupCreateBookmarkNext.setOnClickListener(this);
|
mPopupCreateBookmarkNext.setOnClickListener(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void disableLongClick(EditText pEdittext){
|
||||||
|
pEdittext.setLongClickable(false);
|
||||||
|
pEdittext.setOnLongClickListener(v -> false);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private void onUpdateBridges() {
|
private void onUpdateBridges() {
|
||||||
initializeDialog(R.layout.popup_bridge_setting_custom, Gravity.CENTER);
|
initializeDialog(R.layout.popup_bridge_setting_custom, Gravity.CENTER);
|
||||||
mContext.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING);
|
mContext.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING);
|
||||||
|
@ -289,6 +289,8 @@ public class messageManager implements View.OnClickListener, DialogInterface.OnD
|
||||||
String mBridgeType = (String) mEvent.invokeObserver(null, M_BRIDGE_TYPE);
|
String mBridgeType = (String) mEvent.invokeObserver(null, M_BRIDGE_TYPE);
|
||||||
EditText mBridgeSettingCustomInput = mDialog.findViewById(R.id.pBridgeSettingCustomInput);
|
EditText mBridgeSettingCustomInput = mDialog.findViewById(R.id.pBridgeSettingCustomInput);
|
||||||
EditText mBridgeSettingBridgeType = mDialog.findViewById(R.id.pBridgeSettingBridgeType);
|
EditText mBridgeSettingBridgeType = mDialog.findViewById(R.id.pBridgeSettingBridgeType);
|
||||||
|
disableLongClick(mBridgeSettingCustomInput);
|
||||||
|
disableLongClick(mBridgeSettingBridgeType);
|
||||||
Button mBridgeSettingCustomRequest = mDialog.findViewById(R.id.pBridgeSettingCustomRequest);
|
Button mBridgeSettingCustomRequest = mDialog.findViewById(R.id.pBridgeSettingCustomRequest);
|
||||||
ImageButton mBridgeSettingCustomClear = mDialog.findViewById(R.id.pBridgeSettingCustomClear);
|
ImageButton mBridgeSettingCustomClear = mDialog.findViewById(R.id.pBridgeSettingCustomClear);
|
||||||
Button mBridgeSettingCustomNext = mDialog.findViewById(R.id.pBridgeSettingCustomNext);
|
Button mBridgeSettingCustomNext = mDialog.findViewById(R.id.pBridgeSettingCustomNext);
|
||||||
|
@ -568,6 +570,7 @@ public class messageManager implements View.OnClickListener, DialogInterface.OnD
|
||||||
onDismiss();
|
onDismiss();
|
||||||
helperMethod.hideKeyboard(mContext);
|
helperMethod.hideKeyboard(mContext);
|
||||||
EditText mPopupCreateBookmarkInput = mDialog.findViewById(R.id.pPopupCreateBookmarkInput);
|
EditText mPopupCreateBookmarkInput = mDialog.findViewById(R.id.pPopupCreateBookmarkInput);
|
||||||
|
disableLongClick(mPopupCreateBookmarkInput);
|
||||||
String mBookmarkName = mPopupCreateBookmarkInput.getText().toString();
|
String mBookmarkName = mPopupCreateBookmarkInput.getText().toString();
|
||||||
String mURL = mData.get(0).toString().replace(CONST_GENESIS_ONION, CONST_GENESIS_ONION_V2);
|
String mURL = mData.get(0).toString().replace(CONST_GENESIS_ONION, CONST_GENESIS_ONION_V2);
|
||||||
if (mURL.startsWith(constants.CONST_PRIVACY_POLICY_URL_NON_TOR)) {
|
if (mURL.startsWith(constants.CONST_PRIVACY_POLICY_URL_NON_TOR)) {
|
||||||
|
@ -607,11 +610,13 @@ public class messageManager implements View.OnClickListener, DialogInterface.OnD
|
||||||
});
|
});
|
||||||
} else if (view.getId() == R.id.pBridgeSettingCustomClear) {
|
} else if (view.getId() == R.id.pBridgeSettingCustomClear) {
|
||||||
EditText mBridges = mDialog.findViewById(R.id.pBridgeSettingCustomInput);
|
EditText mBridges = mDialog.findViewById(R.id.pBridgeSettingCustomInput);
|
||||||
|
disableLongClick(mBridges);
|
||||||
TextView mTextView = mDialog.findViewById(R.id.pBridgeSettingCustomError);
|
TextView mTextView = mDialog.findViewById(R.id.pBridgeSettingCustomError);
|
||||||
|
|
||||||
mBridges.setText(strings.GENERIC_EMPTY_STR);
|
mBridges.setText(strings.GENERIC_EMPTY_STR);
|
||||||
mTextView.animate().setDuration(250).alpha(0);
|
mTextView.animate().setDuration(250).alpha(0);
|
||||||
} else if (view.getId() == R.id.pBridgeSettingCustomNext) {
|
} else if (view.getId() == R.id.pBridgeSettingCustomNext) {
|
||||||
|
disableLongClick(mDialog.findViewById(R.id.pBridgeSettingCustomInput));
|
||||||
String mBridges = ((EditText) mDialog.findViewById(R.id.pBridgeSettingCustomInput)).getText().toString();
|
String mBridges = ((EditText) mDialog.findViewById(R.id.pBridgeSettingCustomInput)).getText().toString();
|
||||||
|
|
||||||
boolean mBridgeTypeExist = !mBridges.contains("obfs3") && !mBridges.contains("obfs4") && !mBridges.contains("fle") && !mBridges.contains("meek");
|
boolean mBridgeTypeExist = !mBridges.contains("obfs3") && !mBridges.contains("obfs4") && !mBridges.contains("fle") && !mBridges.contains("meek");
|
||||||
|
@ -636,6 +641,7 @@ public class messageManager implements View.OnClickListener, DialogInterface.OnD
|
||||||
onDismiss();
|
onDismiss();
|
||||||
mContext.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
|
mContext.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
|
||||||
helperMethod.hideKeyboard(mContext);
|
helperMethod.hideKeyboard(mContext);
|
||||||
|
disableLongClick(mDialog.findViewById(R.id.pBridgeSettingBridgeType));
|
||||||
mEvent.invokeObserver(Arrays.asList(mBridges, ((EditText) mDialog.findViewById(R.id.pBridgeSettingBridgeType)).getText().toString()), M_SET_BRIDGES);
|
mEvent.invokeObserver(Arrays.asList(mBridges, ((EditText) mDialog.findViewById(R.id.pBridgeSettingBridgeType)).getText().toString()), M_SET_BRIDGES);
|
||||||
} else if (view.getId() == R.id.pPopupRateFailureNext) {
|
} else if (view.getId() == R.id.pPopupRateFailureNext) {
|
||||||
onDismiss();
|
onDismiss();
|
||||||
|
|
|
@ -129,7 +129,6 @@
|
||||||
android:background="@color/c_home_side"
|
android:background="@color/c_home_side"
|
||||||
android:translationZ="1dp"
|
android:translationZ="1dp"
|
||||||
tools:ignore="RtlSymmetry" />
|
tools:ignore="RtlSymmetry" />
|
||||||
|
|
||||||
<com.hiddenservices.onionservices.appManager.homeManager.homeController.editTextManager
|
<com.hiddenservices.onionservices.appManager.homeManager.homeController.editTextManager
|
||||||
android:id="@+id/pSearchInput"
|
android:id="@+id/pSearchInput"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* Version */
|
/* Version */
|
||||||
project.ext.vname = 'Build | Dark-Origin 1.0.7.2'
|
project.ext.vname = 'Build | Dark-Origin 1.0.9.2'
|
||||||
project.ext.vcode = 465
|
project.ext.vcode = 510
|
||||||
project.ext.buildType = 'release'
|
project.ext.buildType = 'release'
|
||||||
|
|
||||||
/* dimension */
|
/* dimension */
|
||||||
|
@ -30,7 +30,7 @@ project.ext.splitEnabled = true
|
||||||
/* Application Preferences */
|
/* Application Preferences */
|
||||||
project.ext.compile_sdk_version = 33
|
project.ext.compile_sdk_version = 33
|
||||||
project.ext.min_sdk_version = 21
|
project.ext.min_sdk_version = 21
|
||||||
project.ext.target_sdk_version = 32
|
project.ext.target_sdk_version = 31
|
||||||
project.ext.build_tool_version = '33'
|
project.ext.build_tool_version = '33'
|
||||||
project.ext.ndk_version = '21.4.7075529'
|
project.ext.ndk_version = '21.4.7075529'
|
||||||
project.ext.application_id = "com.hiddenservices.onionservices"
|
project.ext.application_id = "com.hiddenservices.onionservices"
|
||||||
|
|
|
@ -12,7 +12,7 @@ android {
|
||||||
}
|
}
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
minSdkVersion 16
|
minSdkVersion 21
|
||||||
targetSdkVersion 32
|
targetSdkVersion 32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -47,7 +47,7 @@ dependencies {
|
||||||
|
|
||||||
implementation 'com.jaredrummler:android-shell:1.0.0'
|
implementation 'com.jaredrummler:android-shell:1.0.0'
|
||||||
|
|
||||||
implementation 'androidx.core:core:1.7.0'
|
implementation 'androidx.core:core:1.9.0'
|
||||||
implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.1.0'
|
implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.1.0'
|
||||||
testImplementation 'junit:junit:4.13.2'
|
testImplementation 'junit:junit:4.13.2'
|
||||||
|
|
||||||
|
@ -58,7 +58,7 @@ dependencies {
|
||||||
api 'info.guardianproject:jtorctl:0.4.5.7'
|
api 'info.guardianproject:jtorctl:0.4.5.7'
|
||||||
implementation 'info.guardianproject:tor-android:0.4.6.10'
|
implementation 'info.guardianproject:tor-android:0.4.6.10'
|
||||||
|
|
||||||
implementation 'androidx.work:work-runtime-ktx:2.8.0-alpha02'
|
implementation 'androidx.work:work-runtime-ktx:2.8.0-rc01'
|
||||||
api libs.guardian_jtorctl
|
api libs.guardian_jtorctl
|
||||||
implementation(
|
implementation(
|
||||||
libs.ipt_proxy,
|
libs.ipt_proxy,
|
||||||
|
|
Loading…
Reference in New Issue