mirror of https://github.com/LeOS-GSI/LeOS-Genesis
parent
c1a2796ccd
commit
c29266bd1f
|
@ -1,17 +1,17 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="deploymentTargetDropDown">
|
||||
<targetSelectedWithDropDown>
|
||||
<runningDeviceTargetSelectedWithDropDown>
|
||||
<Target>
|
||||
<type value="QUICK_BOOT_TARGET" />
|
||||
<type value="RUNNING_DEVICE_TARGET" />
|
||||
<deviceKey>
|
||||
<Key>
|
||||
<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>
|
||||
</deviceKey>
|
||||
</Target>
|
||||
</targetSelectedWithDropDown>
|
||||
<timeTargetWasSelectedWithDropDown value="2022-12-31T19:50:31.396108Z" />
|
||||
</runningDeviceTargetSelectedWithDropDown>
|
||||
<timeTargetWasSelectedWithDropDown value="2023-01-04T08:35:13.346382100Z" />
|
||||
</component>
|
||||
</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=
|
||||
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=
|
||||
sdk_analysis_plugin_version=4.8.1
|
||||
sdk_analysis_plugin_version=4.8.2
|
||||
set_multidex=true
|
||||
pCPe4EeU2ZQVwQPeHLgseRqHBX1V5pvo9Piuu4J809dRhadEgukXa1A8po_UeXu5hmPOTaP1v4QPaMKIEOhh50=hGlhanpemGqPOKKAgaXvhyxwZaG9uD68csy1OadWTNhEgKvBWR7-7KSpyFr6nfZ4KMOuBBV5J49s2LLSg-SVxg
|
||||
|
|
|
@ -71,6 +71,7 @@ android {
|
|||
sourceSets {
|
||||
main {
|
||||
res.srcDirs = project.ext.resource_directories
|
||||
jniLibs.srcDirs = ['src/main/jniLibs']
|
||||
}
|
||||
|
||||
orionRelease.root = project.ext.releaseRoot
|
||||
|
|
|
@ -1,352 +1,349 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
<!-- Permissions -->
|
||||
<permission android:name="android.permission.MEDIA_CONTENT_CONTROL" />
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
||||
<uses-permission android:name="android.permission.READ_CLIPBOARD" />
|
||||
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
|
||||
<uses-permission android:name="android.permission.VIBRATE" />
|
||||
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
|
||||
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
|
||||
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
|
||||
|
||||
<application
|
||||
android:allowBackup="true"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
|
||||
android:extractNativeLibs="true"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
tools:remove="android:appComponentFactory"
|
||||
tools:targetApi="p"
|
||||
android:label="@string/app_name"
|
||||
android:largeHeap="false"
|
||||
android:networkSecurityConfig="@xml/gx_network_security_config"
|
||||
android:requestLegacyExternalStorage="true"
|
||||
android:roundIcon="@mipmap/ic_launcher_round"
|
||||
android:supportsRtl="true"
|
||||
android:theme="@style/AppTheme"
|
||||
android:usesCleartextTraffic="true">
|
||||
|
||||
<activity
|
||||
android:launchMode="singleTask"
|
||||
android:name="com.hiddenservices.onionservices.appManager.advertManager.advertController"
|
||||
android:exported="true" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.bookmarkManager.bookmarkSettings.bookmarkSettingController"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.orbotManager.orbotController"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.settingManager.proxyStatusManager.proxyStatusController"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.settingManager.settingHomeManager.settingHomeController"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||
android:exported="true"
|
||||
android:label="@string/SETTING_HEADER"
|
||||
android:launchMode="singleTask"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.historyManager.historyController"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.bookmarkManager.bookmarkHome.bookmarkController"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.languageManager.languageController"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||
android:label="@string/SETTING_HEADER"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.helpManager.helpController"
|
||||
android:configChanges="keyboard|keyboardHidden|screenSize|uiMode"
|
||||
android:label="@string/SETTING_HEADER"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.settingManager.accessibilityManager.settingAccessibilityController"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||
android:label="@string/SETTING_HEADER"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.settingManager.clearManager.settingClearController"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||
android:label="@string/SETTING_HEADER"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.bridgeManager.bridgeController"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.settingManager.notificationManager.settingNotificationController"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||
android:launchMode="singleTop"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.settingManager.privacyManager.settingPrivacyController"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.settingManager.logManager.settingLogController"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.settingManager.advertSetttings.advertSettingController"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.settingManager.advanceManager.settingAdvanceController"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.orbotLogManager.orbotLogController"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.orbotRequestManager"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.settingManager.generalManager.settingGeneralController"
|
||||
android:configChanges="uiMode"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.settingManager.searchEngineManager.settingSearchController"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.settingManager.trackingManager.settingTrackingController"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.homeManager.homeController.homeController"
|
||||
android:configChanges="keyboard|keyboardHidden|mcc|mnc|orientation|screenSize|locale|layoutDirection|smallestScreenSize|screenLayout"
|
||||
android:exported="true"
|
||||
android:launchMode="singleTask"
|
||||
android:screenOrientation="fullSensor"
|
||||
android:windowSoftInputMode="adjustPan">
|
||||
<meta-data
|
||||
android:name="android.app.shortcuts"
|
||||
android:resource="@xml/shortcuts" />
|
||||
|
||||
<intent-filter>
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.homeManager.FakeLauncherActivity"
|
||||
android:enabled="false"
|
||||
android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
|
||||
<category android:name="android.intent.category.HOME" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.externalCommandManager.externalShortcutController"
|
||||
android:launchMode="singleTop" />
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.externalCommandManager.externalURLNavigationContoller"
|
||||
android:exported="true"
|
||||
android:launchMode="singleTop">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
|
||||
<data android:scheme="http" />
|
||||
<data android:scheme="https" />
|
||||
</intent-filter>
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.ASSIST" />
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<!-- Meta and Library & Settings -->
|
||||
|
||||
<uses-library
|
||||
android:name="org.apache.http.legacy"
|
||||
android:required="false" />
|
||||
|
||||
<meta-data
|
||||
android:name="io.fabric.ApiKey"
|
||||
android:value="be76c64dae2519d4ab8daaed88298da14c7c294f" />
|
||||
|
||||
<meta-data
|
||||
android:name="applovin.sdk.key"
|
||||
android:value="hGlhanpemGqPOKKAgaXvhyxwZaG9uD68csy1OadWTNhEgKvBWR7-7KSpyFr6nfZ4KMOuBBV5J49s2LLSg-SVxg" />
|
||||
|
||||
<uses-library
|
||||
android:name="org.apache.http.legacy"
|
||||
android:required="false" />
|
||||
|
||||
|
||||
<!-- Services & Settings -->
|
||||
|
||||
<service
|
||||
android:name="com.hiddenservices.onionservices.pluginManager.downloadPluginManager.downloadService"
|
||||
android:enabled="true"
|
||||
android:exported="false"
|
||||
android:stopWithTask="true" />
|
||||
|
||||
<service
|
||||
android:name="com.hiddenservices.onionservices.appManager.activityStateManager"/>
|
||||
|
||||
<service
|
||||
android:name="org.torproject.android.service.OrbotService"
|
||||
android:enabled="true"
|
||||
android:exported="false"
|
||||
android:stopWithTask="true" />
|
||||
|
||||
<!-- Reciever & Settings -->
|
||||
|
||||
<receiver
|
||||
android:name="com.hiddenservices.onionservices.pluginManager.notificationPluginManager.localEngagementManager"
|
||||
android:exported="true"
|
||||
android:permission="TODO"
|
||||
tools:ignore="ExportedReceiver" />
|
||||
|
||||
<receiver
|
||||
android:name="com.hiddenservices.onionservices.pluginManager.pluginReciever.downloadNotificationReciever"
|
||||
android:exported="false">
|
||||
<intent-filter>
|
||||
<action android:name="Download_Cancelled" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<receiver
|
||||
android:name="com.hiddenservices.onionservices.pluginManager.pluginReciever.mediaNotificationReciever"
|
||||
android:exported="false">
|
||||
<intent-filter>
|
||||
<action android:name="media_toggle" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<receiver
|
||||
android:name="com.hiddenservices.onionservices.pluginManager.pluginReciever.defaultNotificationReciever"
|
||||
android:exported="false">
|
||||
<intent-filter>
|
||||
<action android:name="default_toggle" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<receiver
|
||||
android:name="org.torproject.android.service.StartTorReceiver"
|
||||
android:exported="true"
|
||||
tools:ignore="ExportedReceiver">
|
||||
<intent-filter>
|
||||
<action android:name="org.torproject.android.intent.action.START" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<receiver
|
||||
android:name="com.widget.onionservices.widgetManager.widgetController"
|
||||
android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
|
||||
</intent-filter>
|
||||
|
||||
<meta-data
|
||||
android:name="android.appwidget.provider"
|
||||
android:resource="@xml/search_widget_manager_info" />
|
||||
</receiver>
|
||||
|
||||
<!-- Providers & Settings -->
|
||||
<service
|
||||
android:name=".MediaSessionService"
|
||||
android:enabled="true"
|
||||
android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MEDIA_BUTTON"/>
|
||||
</intent-filter>
|
||||
</service>
|
||||
<receiver android:name="androidx.media.session.MediaButtonReceiver"
|
||||
android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MEDIA_BUTTON"/>
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<provider
|
||||
android:name="androidx.core.content.FileProvider"
|
||||
android:authorities="com.hiddenservices.onionservices.provider"
|
||||
android:exported="false"
|
||||
android:grantUriPermissions="true"
|
||||
tools:ignore="ExportedContentProvider">
|
||||
<meta-data
|
||||
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"
|
||||
android:exported="false" />
|
||||
|
||||
<provider
|
||||
android:name="com.hiddenservices.onionservices.libs.providers.OnionServiceContentProvider"
|
||||
android:authorities="org.torproject.android.ui.v3onionservice.genesishiddenservices"
|
||||
android:exported="false" />
|
||||
|
||||
<provider
|
||||
android:name="com.hiddenservices.onionservices.libs.providers.ClientAuthContentProviderGenesis"
|
||||
android:authorities="org.torproject.android.ui.v3onionservice.genesishiddenservices.clientauth"
|
||||
android:exported="false" />
|
||||
|
||||
<provider
|
||||
android:name="com.hiddenservices.onionservices.libs.providers.CookieContentProvider"
|
||||
android:authorities="org.torproject.android.ui.hiddenservices.providers.genesishiddenservices.cookie"
|
||||
android:exported="false" />
|
||||
|
||||
<provider
|
||||
android:name="androidx.core.content.FileProvider"
|
||||
android:authorities="${applicationId}.fileprovider"
|
||||
android:exported="false"
|
||||
android:grantUriPermissions="true">
|
||||
<meta-data
|
||||
android:name="android.support.FILE_PROVIDER_PATHS"
|
||||
android:resource="@xml/file_path" />
|
||||
</provider>
|
||||
|
||||
</application>
|
||||
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
<!-- Permissions -->
|
||||
<permission android:name="android.permission.MEDIA_CONTENT_CONTROL" />
|
||||
<uses-permission android:name="android.permission.READ_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.ACCESS_NETWORK_STATE" />
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
||||
<uses-permission android:name="android.permission.READ_CLIPBOARD" />
|
||||
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
|
||||
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
|
||||
|
||||
<application
|
||||
android:allowBackup="true"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
|
||||
android:extractNativeLibs="true"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
tools:remove="android:appComponentFactory"
|
||||
tools:targetApi="p"
|
||||
android:label="@string/app_name"
|
||||
android:largeHeap="false"
|
||||
android:networkSecurityConfig="@xml/gx_network_security_config"
|
||||
android:requestLegacyExternalStorage="true"
|
||||
android:roundIcon="@mipmap/ic_launcher_round"
|
||||
android:supportsRtl="true"
|
||||
android:theme="@style/AppTheme"
|
||||
android:usesCleartextTraffic="true">
|
||||
|
||||
<activity
|
||||
android:launchMode="singleTask"
|
||||
android:name="com.hiddenservices.onionservices.appManager.advertManager.advertController"
|
||||
android:exported="true" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.bookmarkManager.bookmarkSettings.bookmarkSettingController"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.orbotManager.orbotController"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.settingManager.proxyStatusManager.proxyStatusController"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.settingManager.settingHomeManager.settingHomeController"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||
android:exported="true"
|
||||
android:label="@string/SETTING_HEADER"
|
||||
android:launchMode="singleTask"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.historyManager.historyController"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.bookmarkManager.bookmarkHome.bookmarkController"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.languageManager.languageController"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||
android:label="@string/SETTING_HEADER"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.helpManager.helpController"
|
||||
android:configChanges="keyboard|keyboardHidden|screenSize|uiMode"
|
||||
android:label="@string/SETTING_HEADER"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.settingManager.accessibilityManager.settingAccessibilityController"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||
android:label="@string/SETTING_HEADER"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.settingManager.clearManager.settingClearController"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||
android:label="@string/SETTING_HEADER"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.bridgeManager.bridgeController"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.settingManager.notificationManager.settingNotificationController"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||
android:launchMode="singleTop"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.settingManager.privacyManager.settingPrivacyController"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.settingManager.logManager.settingLogController"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.settingManager.advertSetttings.advertSettingController"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.settingManager.advanceManager.settingAdvanceController"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.orbotLogManager.orbotLogController"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.orbotRequestManager"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.settingManager.generalManager.settingGeneralController"
|
||||
android:configChanges="uiMode"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.settingManager.searchEngineManager.settingSearchController"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.settingManager.trackingManager.settingTrackingController"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.homeManager.homeController.homeController"
|
||||
android:configChanges="keyboard|keyboardHidden|mcc|mnc|orientation|screenSize|locale|layoutDirection|smallestScreenSize|screenLayout"
|
||||
android:exported="true"
|
||||
android:launchMode="singleTask"
|
||||
android:screenOrientation="fullSensor"
|
||||
android:windowSoftInputMode="adjustPan">
|
||||
<meta-data
|
||||
android:name="android.app.shortcuts"
|
||||
android:resource="@xml/shortcuts" />
|
||||
|
||||
<intent-filter>
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.homeManager.FakeLauncherActivity"
|
||||
android:enabled="false"
|
||||
android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
|
||||
<category android:name="android.intent.category.HOME" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.externalCommandManager.externalShortcutController"
|
||||
android:launchMode="singleTop" />
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.externalCommandManager.externalURLNavigationContoller"
|
||||
android:exported="true"
|
||||
android:launchMode="singleTop">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
|
||||
<data android:scheme="http" />
|
||||
<data android:scheme="https" />
|
||||
</intent-filter>
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.ASSIST" />
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<!-- Meta and Library & Settings -->
|
||||
|
||||
<uses-library
|
||||
android:name="org.apache.http.legacy"
|
||||
android:required="false" />
|
||||
|
||||
<meta-data
|
||||
android:name="io.fabric.ApiKey"
|
||||
android:value="be76c64dae2519d4ab8daaed88298da14c7c294f" />
|
||||
|
||||
<meta-data
|
||||
android:name="applovin.sdk.key"
|
||||
android:value="hGlhanpemGqPOKKAgaXvhyxwZaG9uD68csy1OadWTNhEgKvBWR7-7KSpyFr6nfZ4KMOuBBV5J49s2LLSg-SVxg" />
|
||||
|
||||
<uses-library
|
||||
android:name="org.apache.http.legacy"
|
||||
android:required="false" />
|
||||
|
||||
|
||||
<!-- Services & Settings -->
|
||||
|
||||
<service
|
||||
android:name="com.hiddenservices.onionservices.pluginManager.downloadPluginManager.downloadService"
|
||||
android:enabled="true"
|
||||
android:exported="false"
|
||||
android:stopWithTask="true" />
|
||||
|
||||
<service
|
||||
android:name="com.hiddenservices.onionservices.appManager.activityStateManager"/>
|
||||
|
||||
<service
|
||||
android:name="org.torproject.android.service.OrbotService"
|
||||
android:enabled="true"
|
||||
android:exported="false"
|
||||
android:stopWithTask="true" />
|
||||
|
||||
<!-- Reciever & Settings -->
|
||||
|
||||
<receiver
|
||||
android:name="com.hiddenservices.onionservices.pluginManager.notificationPluginManager.localEngagementManager"
|
||||
android:exported="true"
|
||||
android:permission="TODO"
|
||||
tools:ignore="ExportedReceiver" />
|
||||
|
||||
<receiver
|
||||
android:name="com.hiddenservices.onionservices.pluginManager.pluginReciever.downloadNotificationReciever"
|
||||
android:exported="false">
|
||||
<intent-filter>
|
||||
<action android:name="Download_Cancelled" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<receiver
|
||||
android:name="com.hiddenservices.onionservices.pluginManager.pluginReciever.mediaNotificationReciever"
|
||||
android:exported="false">
|
||||
<intent-filter>
|
||||
<action android:name="media_toggle" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<receiver
|
||||
android:name="com.hiddenservices.onionservices.pluginManager.pluginReciever.defaultNotificationReciever"
|
||||
android:exported="false">
|
||||
<intent-filter>
|
||||
<action android:name="default_toggle" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<receiver
|
||||
android:name="org.torproject.android.service.StartTorReceiver"
|
||||
android:exported="true"
|
||||
tools:ignore="ExportedReceiver">
|
||||
<intent-filter>
|
||||
<action android:name="org.torproject.android.intent.action.START" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<receiver
|
||||
android:name="com.widget.onionservices.widgetManager.widgetController"
|
||||
android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
|
||||
</intent-filter>
|
||||
|
||||
<meta-data
|
||||
android:name="android.appwidget.provider"
|
||||
android:resource="@xml/search_widget_manager_info" />
|
||||
</receiver>
|
||||
|
||||
<!-- Providers & Settings -->
|
||||
<service
|
||||
android:name=".MediaSessionService"
|
||||
android:enabled="true"
|
||||
android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MEDIA_BUTTON"/>
|
||||
</intent-filter>
|
||||
</service>
|
||||
<receiver android:name="androidx.media.session.MediaButtonReceiver"
|
||||
android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MEDIA_BUTTON"/>
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<provider
|
||||
android:name="androidx.core.content.FileProvider"
|
||||
android:authorities="com.hiddenservices.onionservices.provider"
|
||||
android:exported="false"
|
||||
android:grantUriPermissions="true"
|
||||
tools:ignore="ExportedContentProvider">
|
||||
<meta-data
|
||||
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"
|
||||
android:exported="false" />
|
||||
|
||||
<provider
|
||||
android:name="com.hiddenservices.onionservices.libs.providers.OnionServiceContentProvider"
|
||||
android:authorities="org.torproject.android.ui.v3onionservice.genesishiddenservices"
|
||||
android:exported="false" />
|
||||
|
||||
<provider
|
||||
android:name="com.hiddenservices.onionservices.libs.providers.ClientAuthContentProviderGenesis"
|
||||
android:authorities="org.torproject.android.ui.v3onionservice.genesishiddenservices.clientauth"
|
||||
android:exported="false" />
|
||||
|
||||
<provider
|
||||
android:name="com.hiddenservices.onionservices.libs.providers.CookieContentProvider"
|
||||
android:authorities="org.torproject.android.ui.hiddenservices.providers.genesishiddenservices.cookie"
|
||||
android:exported="false" />
|
||||
|
||||
<provider
|
||||
android:name="androidx.core.content.FileProvider"
|
||||
android:authorities="${applicationId}.fileprovider"
|
||||
android:exported="false"
|
||||
android:grantUriPermissions="true">
|
||||
<meta-data
|
||||
android:name="android.support.FILE_PROVIDER_PATHS"
|
||||
android:resource="@xml/file_path" />
|
||||
</provider>
|
||||
|
||||
</application>
|
||||
|
||||
</manifest>
|
|
@ -69,6 +69,10 @@ class bookmarkViewController {
|
|||
}
|
||||
|
||||
private void initPostUI() {
|
||||
|
||||
mSearchInput.setLongClickable(false);
|
||||
mSearchInput.setOnLongClickListener(v -> false);
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||
Window window = mContext.getWindow();
|
||||
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
|
||||
|
|
|
@ -36,6 +36,9 @@ class bookmarkSettingViewController {
|
|||
}
|
||||
|
||||
private void initPostUI() {
|
||||
mBookmarName.setLongClickable(false);
|
||||
mBookmarName.setOnLongClickListener(v -> false);
|
||||
|
||||
sharedUIMethod.updateStatusBar(mContext);
|
||||
}
|
||||
|
||||
|
|
|
@ -50,6 +50,8 @@ class bridgeViewController {
|
|||
|
||||
private void initPostUI() {
|
||||
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) {
|
||||
|
|
|
@ -67,6 +67,10 @@ class historyViewController {
|
|||
}
|
||||
|
||||
private void initPostUI() {
|
||||
|
||||
mSearchInput.setLongClickable(false);
|
||||
mSearchInput.setOnLongClickListener(v -> false);
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||
Window window = mContext.getWindow();
|
||||
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.content.pm.PackageManager;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
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) {
|
||||
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) {
|
||||
ActivityCompat.requestPermissions(context,
|
||||
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
|
||||
|
|
|
@ -5,6 +5,7 @@ import android.app.Activity;
|
|||
import android.app.AlertDialog;
|
||||
import android.content.ActivityNotFoundException;
|
||||
import android.content.ClipData;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
|
@ -20,6 +21,7 @@ import android.view.InflateException;
|
|||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.webkit.MimeTypeMap;
|
||||
import android.widget.AdapterView;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.CheckedTextView;
|
||||
|
@ -35,7 +37,12 @@ import android.widget.TimePicker;
|
|||
|
||||
import androidx.annotation.Nullable;
|
||||
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.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
|
@ -61,9 +68,16 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
|||
mActivity = activity;
|
||||
}
|
||||
|
||||
public void stopMedia(){
|
||||
try {
|
||||
activityContextManager.getInstance().getHomeController().onKillMedia();
|
||||
}catch (Exception ex){}
|
||||
}
|
||||
|
||||
@Override
|
||||
public GeckoResult<PromptResponse> onAlertPrompt(final GeckoSession session,
|
||||
final AlertPrompt prompt) {
|
||||
stopMedia();
|
||||
final Activity activity = mActivity;
|
||||
if (activity == null) {
|
||||
return GeckoResult.fromValue(prompt.dismiss());
|
||||
|
@ -80,6 +94,7 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
|||
@Override
|
||||
public GeckoResult<PromptResponse> onButtonPrompt(final GeckoSession session,
|
||||
final ButtonPrompt prompt) {
|
||||
stopMedia();
|
||||
final Activity activity = mActivity;
|
||||
if (activity == null) {
|
||||
return GeckoResult.fromValue(prompt.dismiss());
|
||||
|
@ -111,16 +126,66 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
|||
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
|
||||
public GeckoResult<PromptResponse> onSharePrompt(final GeckoSession session,
|
||||
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
|
||||
@Override
|
||||
public GeckoResult<PromptResponse> onRepostConfirmPrompt(final GeckoSession session,
|
||||
final RepostConfirmPrompt prompt) {
|
||||
stopMedia();
|
||||
final Activity activity = mActivity;
|
||||
if (activity == null) {
|
||||
return GeckoResult.fromValue(prompt.dismiss());
|
||||
|
@ -157,6 +222,7 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
|||
@Override
|
||||
public GeckoResult<PromptResponse> onBeforeUnloadPrompt(final GeckoSession session,
|
||||
final BeforeUnloadPrompt prompt) {
|
||||
stopMedia();
|
||||
final Activity activity = mActivity;
|
||||
if (activity == null) {
|
||||
return GeckoResult.fromValue(prompt.dismiss());
|
||||
|
@ -185,6 +251,7 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
|||
}
|
||||
|
||||
private int getViewPadding(final AlertDialog.Builder builder) {
|
||||
stopMedia();
|
||||
final TypedArray attr = builder.getContext().obtainStyledAttributes(
|
||||
new int[]{android.R.attr.listPreferredItemPaddingLeft});
|
||||
final int padding = attr.getDimensionPixelSize(0, 1);
|
||||
|
@ -194,6 +261,7 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
|||
|
||||
private LinearLayout addStandardLayout(final AlertDialog.Builder builder,
|
||||
final String title, final String msg) {
|
||||
stopMedia();
|
||||
final ScrollView scrollView = new ScrollView(builder.getContext());
|
||||
final LinearLayout container = new LinearLayout(builder.getContext());
|
||||
final int horizontalPadding = getViewPadding(builder);
|
||||
|
@ -212,6 +280,7 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
|||
final BasePrompt prompt,
|
||||
final GeckoResult<PromptResponse> response) {
|
||||
final AlertDialog dialog = builder.create();
|
||||
stopMedia();
|
||||
dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
|
||||
@Override
|
||||
public void onDismiss(final DialogInterface dialog) {
|
||||
|
@ -227,6 +296,7 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
|||
public GeckoResult<PromptResponse> onTextPrompt(final GeckoSession session,
|
||||
final TextPrompt prompt) {
|
||||
final Activity activity = mActivity;
|
||||
stopMedia();
|
||||
if (activity == null) {
|
||||
return GeckoResult.fromValue(prompt.dismiss());
|
||||
}
|
||||
|
@ -255,6 +325,7 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
|||
public GeckoResult<PromptResponse> onAuthPrompt(final GeckoSession session,
|
||||
final AuthPrompt prompt) {
|
||||
final Activity activity = mActivity;
|
||||
stopMedia();
|
||||
if (activity == null) {
|
||||
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,
|
||||
final ChoicePrompt.Choice[] items, final String indent) {
|
||||
stopMedia();
|
||||
if (type == ChoicePrompt.Type.MENU) {
|
||||
for (final ChoicePrompt.Choice item : items) {
|
||||
list.add(new ModifiableChoice(item));
|
||||
|
@ -354,6 +426,7 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
|||
final String message, final int type,
|
||||
final ChoicePrompt.Choice[] choices, final ChoicePrompt prompt,
|
||||
final GeckoResult<PromptResponse> res) {
|
||||
stopMedia();
|
||||
final Activity activity = mActivity;
|
||||
if (activity == null) {
|
||||
res.complete(prompt.dismiss());
|
||||
|
@ -533,6 +606,7 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
|||
@Override
|
||||
public GeckoResult<PromptResponse> onChoicePrompt(final GeckoSession session,
|
||||
final ChoicePrompt prompt) {
|
||||
stopMedia();
|
||||
final GeckoResult<PromptResponse> res = new GeckoResult<PromptResponse>();
|
||||
onChoicePromptImpl(session, prompt.title, prompt.message, prompt.type, prompt.choices,
|
||||
prompt, res);
|
||||
|
@ -550,6 +624,7 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
|||
@Override
|
||||
public GeckoResult<PromptResponse> onColorPrompt(final GeckoSession session,
|
||||
final ColorPrompt prompt) {
|
||||
stopMedia();
|
||||
final Activity activity = mActivity;
|
||||
if (activity == null) {
|
||||
return GeckoResult.fromValue(prompt.dismiss());
|
||||
|
@ -661,6 +736,7 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
|||
@Override
|
||||
public GeckoResult<PromptResponse> onDateTimePrompt(final GeckoSession session,
|
||||
final DateTimePrompt prompt) {
|
||||
stopMedia();
|
||||
final Activity activity = mActivity;
|
||||
if (activity == null) {
|
||||
return GeckoResult.fromValue(prompt.dismiss());
|
||||
|
@ -779,6 +855,7 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
|||
@Override
|
||||
@TargetApi(19)
|
||||
public GeckoResult<PromptResponse> onFilePrompt(GeckoSession session, FilePrompt prompt) {
|
||||
stopMedia();
|
||||
final Activity activity = mActivity;
|
||||
if (activity == null) {
|
||||
return GeckoResult.fromValue(prompt.dismiss());
|
||||
|
@ -837,6 +914,7 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
|||
}
|
||||
|
||||
public void onFileCallbackResult(final int resultCode, final Intent data) {
|
||||
stopMedia();
|
||||
if (mFileResponse == null) {
|
||||
return;
|
||||
}
|
||||
|
@ -875,6 +953,7 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
|||
|
||||
public void onPermissionPrompt(final GeckoSession session, final String title,
|
||||
final GeckoSession.PermissionDelegate.Callback callback) {
|
||||
stopMedia();
|
||||
final Activity activity = mActivity;
|
||||
if (activity == null) {
|
||||
callback.reject();
|
||||
|
@ -900,6 +979,7 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
|||
}
|
||||
|
||||
public void onSlowScriptPrompt(GeckoSession geckoSession, String title, GeckoResult<SlowScriptResponse> reportAction) {
|
||||
stopMedia();
|
||||
final Activity activity = mActivity;
|
||||
if (activity == null) {
|
||||
return;
|
||||
|
@ -962,6 +1042,7 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
|||
final String[] videoNames, final String[] audioNames,
|
||||
final GeckoSession.PermissionDelegate.MediaCallback callback) {
|
||||
final Activity activity = mActivity;
|
||||
stopMedia();
|
||||
if (activity == null || (video == null && audio == null)) {
|
||||
callback.reject();
|
||||
return;
|
||||
|
@ -1009,12 +1090,14 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
|||
public void onMediaPrompt(final GeckoSession session, final String title,
|
||||
final GeckoSession.PermissionDelegate.MediaSource[] video, final GeckoSession.PermissionDelegate.MediaSource[] audio,
|
||||
final GeckoSession.PermissionDelegate.MediaCallback callback) {
|
||||
stopMedia();
|
||||
onMediaPrompt(session, title, video, audio, null, null, callback);
|
||||
}
|
||||
|
||||
@Override
|
||||
public GeckoResult<PromptResponse> onPopupPrompt(final GeckoSession session,
|
||||
final PopupPrompt prompt) {
|
||||
stopMedia();
|
||||
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) {
|
||||
MediaSession.Delegate.super.onActivated(session, mediaSession);
|
||||
mMediaSession = mediaSession;
|
||||
isMediaRunning = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -176,7 +177,8 @@ geckoSession extends GeckoSession implements MediaSession.Delegate, GeckoSession
|
|||
@Override
|
||||
public void onMetadata(@NonNull GeckoSession session, @NonNull MediaSession mediaSession, @NonNull MediaSession.Metadata meta) {
|
||||
mMediaTitle = meta.title;
|
||||
if(!isMediaRunning || mediaDelegateItem == null){
|
||||
|
||||
if(mediaDelegateItem == null){
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -193,7 +195,9 @@ geckoSession extends GeckoSession implements MediaSession.Delegate, GeckoSession
|
|||
}
|
||||
}.start();
|
||||
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
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
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.os.Build.VERSION.SDK_INT;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.ActivityManager;
|
||||
|
@ -33,6 +35,7 @@ import android.os.Bundle;
|
|||
import android.os.Handler;
|
||||
import android.os.IBinder;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.provider.Settings;
|
||||
import android.speech.RecognizerIntent;
|
||||
import android.text.Editable;
|
||||
import android.text.TextWatcher;
|
||||
|
@ -51,6 +54,7 @@ import androidx.appcompat.app.AppCompatActivity;
|
|||
import androidx.appcompat.app.AppCompatDelegate;
|
||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
import androidx.coordinatorlayout.widget.CoordinatorLayout;
|
||||
import androidx.core.app.ActivityCompat;
|
||||
import androidx.core.app.NotificationCompat;
|
||||
import androidx.core.app.NotificationManagerCompat;
|
||||
import androidx.core.content.ContextCompat;
|
||||
|
@ -273,6 +277,37 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
if (!status.sTorBrowsing) {
|
||||
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() {
|
||||
|
@ -369,7 +404,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
if (status.mThemeApplying) {
|
||||
mSplashScreen.setAlpha(0);
|
||||
mSplashScreen.setVisibility(View.GONE);
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
if (SDK_INT >= Build.VERSION_CODES.M) {
|
||||
mHomeViewController.initStatusBarColor(false);
|
||||
} else {
|
||||
Window window = getWindow();
|
||||
|
@ -586,7 +621,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
}
|
||||
|
||||
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.setComponentEnabledSetting(new ComponentName(getApplicationContext(), widgetController.class), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
|
||||
} else {
|
||||
|
@ -858,7 +893,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
|
||||
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.
|
||||
}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.
|
||||
|
@ -873,13 +908,13 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
.setColor(getResources().getColor(R.color.c_tab_border))
|
||||
.setContentTitle(title);
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
|
||||
if (SDK_INT >= Build.VERSION_CODES.O)
|
||||
{
|
||||
String channelId = "default_home_notification";
|
||||
NotificationChannel channel = new NotificationChannel(channelId, "default_home_notification", NotificationManager.IMPORTANCE_DEFAULT);
|
||||
channel.setSound(null, null);
|
||||
manager.createNotificationChannel(channel);
|
||||
builder.setChannelId(channelId);
|
||||
//String channelId = "default_home_notification";
|
||||
//NotificationChannel channel = new NotificationChannel(channelId, "default_home_notification", NotificationManager.IMPORTANCE_DEFAULT);
|
||||
//channel.setSound(null, null);
|
||||
//manager.createNotificationChannel(channel);
|
||||
//builder.setChannelId(channelId);
|
||||
}
|
||||
|
||||
Intent intentActionOpen = new Intent(context,homeController.class);
|
||||
|
@ -895,14 +930,14 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
Notification notification = builder.build();
|
||||
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);
|
||||
}else {
|
||||
PendingIntent.getActivity(context, 1025, new Intent(), 0);
|
||||
}
|
||||
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;
|
||||
}else {
|
||||
notification.flags |= Notification.FLAG_NO_CLEAR;
|
||||
|
@ -974,7 +1009,6 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
@SuppressLint("ClickableViewAccessibility")
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
status.sNoTorTriggered = false;
|
||||
orbotLocalConstants.mAppForceExit = true;
|
||||
NotificationManagerCompat.from(this).cancel(1030);
|
||||
if(manager!=null){
|
||||
|
@ -1015,6 +1049,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
NotificationManagerCompat.from(this).cancel(1030);
|
||||
|
||||
if (!status.mThemeApplying) {
|
||||
status.sNoTorTriggered = false;
|
||||
new Handler().postDelayed(() ->
|
||||
{
|
||||
android.os.Process.killProcess(android.os.Process.myPid());
|
||||
|
@ -2013,19 +2048,34 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
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() {
|
||||
mGeckoClient.downloadFile(homeController.this);
|
||||
}
|
||||
|
||||
public void onManualDownload(String url) {
|
||||
|
||||
/*EXTERNAL STORAGE REQUEST*/
|
||||
mGeckoClient.manual_download(url, this);
|
||||
}
|
||||
|
||||
public void onManualDownloadFileName(String pURL, String pPath) {
|
||||
|
||||
/*EXTERNAL STORAGE REQUEST*/
|
||||
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()) {
|
||||
return;
|
||||
}
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
if (SDK_INT >= Build.VERSION_CODES.O) {
|
||||
if (this.isActivityTransitionRunning()) {
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -244,6 +244,12 @@ class homeViewController {
|
|||
mCopyright.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
mSearchbar.setLongClickable(false);
|
||||
mSearchbar.setOnLongClickListener(v -> false);
|
||||
|
||||
mFindText.setLongClickable(false);
|
||||
mFindText.setOnLongClickListener(v -> false);
|
||||
|
||||
}
|
||||
|
||||
public void initSearchEngineView() {
|
||||
|
|
|
@ -36,11 +36,13 @@ class crawlerDataModel {
|
|||
private Set<String> mDuplicate;
|
||||
private ArrayList<crawlerRowModel> mHTML;
|
||||
private AppCompatActivity mContext;
|
||||
RequestQueue mRequestQueue;
|
||||
|
||||
crawlerDataModel(AppCompatActivity pContext) {
|
||||
mDuplicate = new HashSet<>();
|
||||
mHTML = new ArrayList<>();
|
||||
mContext = pContext;
|
||||
mRequestQueue = Volley.newRequestQueue(mContext, new ProxiedHurlStack());
|
||||
}
|
||||
|
||||
private void onInit() {
|
||||
|
@ -82,7 +84,6 @@ class crawlerDataModel {
|
|||
String mURL = strings.GENERIC_EMPTY_STR;
|
||||
|
||||
private void onSendRequest() {
|
||||
RequestQueue mRequestQueue = Volley.newRequestQueue(mContext, new ProxiedHurlStack());
|
||||
|
||||
String url = "http://167.86.99.31/user_index/";
|
||||
StringRequest mRequestData = new StringRequest(Request.Method.POST, url, response -> {
|
||||
|
|
|
@ -600,8 +600,8 @@ public class helperMethod {
|
|||
}
|
||||
|
||||
public static void vibrate(AppCompatActivity context) {
|
||||
Vibrator v = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
|
||||
v.vibrate(50);
|
||||
// Vibrator v = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
|
||||
// v.vibrate(50);
|
||||
}
|
||||
|
||||
public static void shareURL(AppCompatActivity context, String p_share) {
|
||||
|
@ -975,9 +975,12 @@ public class helperMethod {
|
|||
}
|
||||
|
||||
public static boolean checkPermissions(AppCompatActivity context) {
|
||||
if(Build.VERSION.SDK_INT > Build.VERSION_CODES.O_MR1){
|
||||
return true;
|
||||
}
|
||||
String[] permissions = new String[]{
|
||||
Manifest.permission.WRITE_EXTERNAL_STORAGE,
|
||||
Manifest.permission.READ_EXTERNAL_STORAGE,
|
||||
Manifest.permission.READ_EXTERNAL_STORAGE
|
||||
};
|
||||
|
||||
int result;
|
||||
|
@ -989,7 +992,7 @@ public class helperMethod {
|
|||
}
|
||||
}
|
||||
if (!listPermissionsNeeded.isEmpty()) {
|
||||
ActivityCompat.requestPermissions(context, listPermissionsNeeded.toArray(new String[0]), 100);
|
||||
ActivityCompat.requestPermissions(context, listPermissionsNeeded.toArray(new String[0]), 1050);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
|
|
@ -22,24 +22,18 @@ import android.widget.ImageView;
|
|||
import android.widget.LinearLayout;
|
||||
import android.widget.ScrollView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
|
||||
import com.hiddenservices.onionservices.appManager.homeManager.homeController.homeController;
|
||||
import com.hiddenservices.onionservices.constants.constants;
|
||||
import com.hiddenservices.onionservices.constants.enums;
|
||||
import com.hiddenservices.onionservices.constants.status;
|
||||
import com.hiddenservices.onionservices.constants.strings;
|
||||
import com.hiddenservices.onionservices.eventObserver;
|
||||
import com.hiddenservices.onionservices.helperManager.helperMethod;
|
||||
import com.hiddenservices.onionservices.pluginManager.pluginController;
|
||||
import com.hiddenservices.onionservices.pluginManager.pluginEnums;
|
||||
import com.example.myapplication.R;
|
||||
import com.google.android.material.switchmaterial.SwitchMaterial;
|
||||
|
||||
import org.mozilla.geckoview.ContentBlocking;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
@ -281,6 +275,12 @@ public class messageManager implements View.OnClickListener, DialogInterface.OnD
|
|||
mPopupCreateBookmarkNext.setOnClickListener(this);
|
||||
}
|
||||
|
||||
private void disableLongClick(EditText pEdittext){
|
||||
pEdittext.setLongClickable(false);
|
||||
pEdittext.setOnLongClickListener(v -> false);
|
||||
}
|
||||
|
||||
|
||||
private void onUpdateBridges() {
|
||||
initializeDialog(R.layout.popup_bridge_setting_custom, Gravity.CENTER);
|
||||
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);
|
||||
EditText mBridgeSettingCustomInput = mDialog.findViewById(R.id.pBridgeSettingCustomInput);
|
||||
EditText mBridgeSettingBridgeType = mDialog.findViewById(R.id.pBridgeSettingBridgeType);
|
||||
disableLongClick(mBridgeSettingCustomInput);
|
||||
disableLongClick(mBridgeSettingBridgeType);
|
||||
Button mBridgeSettingCustomRequest = mDialog.findViewById(R.id.pBridgeSettingCustomRequest);
|
||||
ImageButton mBridgeSettingCustomClear = mDialog.findViewById(R.id.pBridgeSettingCustomClear);
|
||||
Button mBridgeSettingCustomNext = mDialog.findViewById(R.id.pBridgeSettingCustomNext);
|
||||
|
@ -568,6 +570,7 @@ public class messageManager implements View.OnClickListener, DialogInterface.OnD
|
|||
onDismiss();
|
||||
helperMethod.hideKeyboard(mContext);
|
||||
EditText mPopupCreateBookmarkInput = mDialog.findViewById(R.id.pPopupCreateBookmarkInput);
|
||||
disableLongClick(mPopupCreateBookmarkInput);
|
||||
String mBookmarkName = mPopupCreateBookmarkInput.getText().toString();
|
||||
String mURL = mData.get(0).toString().replace(CONST_GENESIS_ONION, CONST_GENESIS_ONION_V2);
|
||||
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) {
|
||||
EditText mBridges = mDialog.findViewById(R.id.pBridgeSettingCustomInput);
|
||||
disableLongClick(mBridges);
|
||||
TextView mTextView = mDialog.findViewById(R.id.pBridgeSettingCustomError);
|
||||
|
||||
mBridges.setText(strings.GENERIC_EMPTY_STR);
|
||||
mTextView.animate().setDuration(250).alpha(0);
|
||||
} else if (view.getId() == R.id.pBridgeSettingCustomNext) {
|
||||
disableLongClick(mDialog.findViewById(R.id.pBridgeSettingCustomInput));
|
||||
String mBridges = ((EditText) mDialog.findViewById(R.id.pBridgeSettingCustomInput)).getText().toString();
|
||||
|
||||
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();
|
||||
mContext.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
|
||||
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);
|
||||
} else if (view.getId() == R.id.pPopupRateFailureNext) {
|
||||
onDismiss();
|
||||
|
|
|
@ -129,7 +129,6 @@
|
|||
android:background="@color/c_home_side"
|
||||
android:translationZ="1dp"
|
||||
tools:ignore="RtlSymmetry" />
|
||||
|
||||
<com.hiddenservices.onionservices.appManager.homeManager.homeController.editTextManager
|
||||
android:id="@+id/pSearchInput"
|
||||
android:layout_width="0dp"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* Version */
|
||||
project.ext.vname = 'Build | Dark-Origin 1.0.7.2'
|
||||
project.ext.vcode = 465
|
||||
project.ext.vname = 'Build | Dark-Origin 1.0.9.2'
|
||||
project.ext.vcode = 510
|
||||
project.ext.buildType = 'release'
|
||||
|
||||
/* dimension */
|
||||
|
@ -30,7 +30,7 @@ project.ext.splitEnabled = true
|
|||
/* Application Preferences */
|
||||
project.ext.compile_sdk_version = 33
|
||||
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.ndk_version = '21.4.7075529'
|
||||
project.ext.application_id = "com.hiddenservices.onionservices"
|
||||
|
|
|
@ -12,7 +12,7 @@ android {
|
|||
}
|
||||
|
||||
defaultConfig {
|
||||
minSdkVersion 16
|
||||
minSdkVersion 21
|
||||
targetSdkVersion 32
|
||||
}
|
||||
|
||||
|
@ -47,7 +47,7 @@ dependencies {
|
|||
|
||||
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'
|
||||
testImplementation 'junit:junit:4.13.2'
|
||||
|
||||
|
@ -58,7 +58,7 @@ dependencies {
|
|||
api 'info.guardianproject:jtorctl:0.4.5.7'
|
||||
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
|
||||
implementation(
|
||||
libs.ipt_proxy,
|
||||
|
|
Loading…
Reference in New Issue