mirror of https://github.com/LeOS-GSI/LeOS-Genesis
parent
836183291c
commit
e15242b411
|
@ -4,7 +4,7 @@
|
||||||
<component name="GradleSettings">
|
<component name="GradleSettings">
|
||||||
<option name="linkedExternalProjectsSettings">
|
<option name="linkedExternalProjectsSettings">
|
||||||
<GradleProjectSettings>
|
<GradleProjectSettings>
|
||||||
<option name="testRunner" value="PLATFORM" />
|
<option name="testRunner" value="GRADLE" />
|
||||||
<option name="distributionType" value="DEFAULT_WRAPPED" />
|
<option name="distributionType" value="DEFAULT_WRAPPED" />
|
||||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||||
<option name="modules">
|
<option name="modules">
|
||||||
|
|
|
@ -1,16 +1,19 @@
|
||||||
<component name="InspectionProjectProfileManager">
|
<component name="InspectionProjectProfileManager">
|
||||||
<profile version="1.0">
|
<profile version="1.0">
|
||||||
<option name="myName" value="Project Default" />
|
<option name="myName" value="Project Default" />
|
||||||
|
<inspection_tool class="AndroidDomInspection" enabled="false" level="ERROR" enabled_by_default="false" />
|
||||||
<inspection_tool class="AndroidLintPxUsage" enabled="false" level="WARNING" enabled_by_default="false" />
|
<inspection_tool class="AndroidLintPxUsage" enabled="false" level="WARNING" enabled_by_default="false" />
|
||||||
<inspection_tool class="AndroidLintSuspiciousImport" enabled="false" level="WARNING" enabled_by_default="false" />
|
<inspection_tool class="AndroidLintSuspiciousImport" enabled="false" level="WARNING" enabled_by_default="false" />
|
||||||
<inspection_tool class="BooleanMethodIsAlwaysInverted" enabled="false" level="WARNING" enabled_by_default="false" />
|
<inspection_tool class="BooleanMethodIsAlwaysInverted" enabled="false" level="WARNING" enabled_by_default="false" />
|
||||||
<inspection_tool class="BusyWait" enabled="false" level="WARNING" enabled_by_default="false" />
|
<inspection_tool class="BusyWait" enabled="false" level="WARNING" enabled_by_default="false" />
|
||||||
|
<inspection_tool class="CatchMayIgnoreException" enabled="false" level="WARNING" enabled_by_default="false" />
|
||||||
<inspection_tool class="CodeBlock2Expr" enabled="false" level="WARNING" enabled_by_default="false" />
|
<inspection_tool class="CodeBlock2Expr" enabled="false" level="WARNING" enabled_by_default="false" />
|
||||||
<inspection_tool class="CollectionAddAllCanBeReplacedWithConstructor" enabled="false" level="WARNING" enabled_by_default="false" />
|
<inspection_tool class="CollectionAddAllCanBeReplacedWithConstructor" enabled="false" level="WARNING" enabled_by_default="false" />
|
||||||
<inspection_tool class="ConstantConditions" enabled="false" level="WARNING" enabled_by_default="false">
|
<inspection_tool class="ConstantConditions" enabled="false" level="WARNING" enabled_by_default="false">
|
||||||
<option name="SUGGEST_NULLABLE_ANNOTATIONS" value="false" />
|
<option name="SUGGEST_NULLABLE_ANNOTATIONS" value="false" />
|
||||||
<option name="DONT_REPORT_TRUE_ASSERT_STATEMENTS" value="false" />
|
<option name="DONT_REPORT_TRUE_ASSERT_STATEMENTS" value="false" />
|
||||||
</inspection_tool>
|
</inspection_tool>
|
||||||
|
<inspection_tool class="Convert2MethodRef" enabled="false" level="WARNING" enabled_by_default="false" />
|
||||||
<inspection_tool class="Deprecation" enabled="false" level="WARNING" enabled_by_default="false" />
|
<inspection_tool class="Deprecation" enabled="false" level="WARNING" enabled_by_default="false" />
|
||||||
<inspection_tool class="DifferentKotlinGradleVersion" enabled="false" level="WARNING" enabled_by_default="false" />
|
<inspection_tool class="DifferentKotlinGradleVersion" enabled="false" level="WARNING" enabled_by_default="false" />
|
||||||
<inspection_tool class="EmptyStatementBody" enabled="false" level="WARNING" enabled_by_default="false">
|
<inspection_tool class="EmptyStatementBody" enabled="false" level="WARNING" enabled_by_default="false">
|
||||||
|
@ -37,6 +40,7 @@
|
||||||
<option name="processLiterals" value="true" />
|
<option name="processLiterals" value="true" />
|
||||||
<option name="processComments" value="true" />
|
<option name="processComments" value="true" />
|
||||||
</inspection_tool>
|
</inspection_tool>
|
||||||
|
<inspection_tool class="StringConcatenationInLoops" enabled="false" level="WARNING" enabled_by_default="false" />
|
||||||
<inspection_tool class="SuspiciousListRemoveInLoop" enabled="false" level="WARNING" enabled_by_default="false" />
|
<inspection_tool class="SuspiciousListRemoveInLoop" enabled="false" level="WARNING" enabled_by_default="false" />
|
||||||
<inspection_tool class="SuspiciousMethodCalls" enabled="false" level="WARNING" enabled_by_default="false">
|
<inspection_tool class="SuspiciousMethodCalls" enabled="false" level="WARNING" enabled_by_default="false">
|
||||||
<option name="REPORT_CONVERTIBLE_METHOD_CALLS" value="true" />
|
<option name="REPORT_CONVERTIBLE_METHOD_CALLS" value="true" />
|
||||||
|
|
|
@ -1,5 +1,33 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
|
<component name="DesignSurface">
|
||||||
|
<option name="filePathToZoomLevelMap">
|
||||||
|
<map>
|
||||||
|
<entry key="..\:/Workspace/Genesis Android/app/src/main/res/layouts/alert/layout/application_crash.xml" value="0.33" />
|
||||||
|
<entry key="..\:/Workspace/Genesis Android/app/src/main/res/layouts/alert/layout/certificate_info.xml" value="0.20260416666666667" />
|
||||||
|
<entry key="..\:/Workspace/Genesis Android/app/src/main/res/layouts/alert/layout/popup_block_popup.xml" value="0.20260416666666667" />
|
||||||
|
<entry key="..\:/Workspace/Genesis Android/app/src/main/res/layouts/alert/layout/popup_bridge_mail.xml" value="0.20260416666666667" />
|
||||||
|
<entry key="..\:/Workspace/Genesis Android/app/src/main/res/layouts/alert/layout/popup_clear_bookmark.xml" value="0.20260416666666667" />
|
||||||
|
<entry key="..\:/Workspace/Genesis Android/app/src/main/res/layouts/alert/layout/popup_clear_history.xml" value="0.20260416666666667" />
|
||||||
|
<entry key="..\:/Workspace/Genesis Android/app/src/main/res/layouts/alert/layout/popup_create_bookmark.xml" value="0.20260416666666667" />
|
||||||
|
<entry key="..\:/Workspace/Genesis Android/app/src/main/res/layouts/alert/layout/popup_data_cleared.xml" value="0.20260416666666667" />
|
||||||
|
<entry key="..\:/Workspace/Genesis Android/app/src/main/res/layouts/alert/layout/popup_load_new_tab.xml" value="0.33" />
|
||||||
|
<entry key="..\:/Workspace/Genesis Android/app/src/main/res/layouts/alert/layout/popup_max_tab.xml" value="0.20260416666666667" />
|
||||||
|
<entry key="..\:/Workspace/Genesis Android/app/src/main/res/layouts/alert/layout/popup_new_circuit.xml" value="0.20260416666666667" />
|
||||||
|
<entry key="..\:/Workspace/Genesis Android/app/src/main/res/layouts/alert/layout/popup_not_supported.xml" value="0.20260416666666667" />
|
||||||
|
<entry key="..\:/Workspace/Genesis Android/app/src/main/res/layouts/alert/layout/popup_orbot_connecting.xml" value="0.20260416666666667" />
|
||||||
|
<entry key="..\:/Workspace/Genesis Android/app/src/main/res/layouts/alert/layout/popup_panic.xml" value="0.20260416666666667" />
|
||||||
|
<entry key="..\:/Workspace/Genesis Android/app/src/main/res/layouts/alert/layout/popup_rate_failure.xml" value="0.20260416666666667" />
|
||||||
|
<entry key="..\:/Workspace/Genesis Android/app/src/main/res/layouts/alert/layout/popup_rate_us.xml" value="0.20260416666666667" />
|
||||||
|
<entry key="..\:/Workspace/Genesis Android/app/src/main/res/layouts/alert/layout/popup_toast_generic.xml" value="0.20260416666666667" />
|
||||||
|
<entry key="..\:/Workspace/Genesis Android/app/src/main/res/layouts/alert/layout/popup_undo.xml" value="0.20260416666666667" />
|
||||||
|
<entry key="..\:/Workspace/Genesis Android/app/src/main/res/layouts/alert/layout/popup_update_bridges.xml" value="0.20260416666666667" />
|
||||||
|
<entry key="..\:/Workspace/Genesis Android/app/src/main/res/layouts/alert/layout/popup_url_longpress.xml" value="0.20260416666666667" />
|
||||||
|
<entry key="..\:/Workspace/Genesis Android/app/src/main/res/layouts/setting/layout/setting.xml" value="0.33" />
|
||||||
|
<entry key="..\:/Workspace/Genesis Android/app/src/main/res/layouts/setting/layout/setting_advance_view.xml" value="0.33" />
|
||||||
|
</map>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
<component name="NullableNotNullManager">
|
<component name="NullableNotNullManager">
|
||||||
<option name="myDefaultNullable" value="org.jetbrains.annotations.Nullable" />
|
<option name="myDefaultNullable" value="org.jetbrains.annotations.Nullable" />
|
||||||
<option name="myDefaultNotNull" value="androidx.annotation.NonNull" />
|
<option name="myDefaultNotNull" value="androidx.annotation.NonNull" />
|
||||||
|
@ -25,7 +53,7 @@
|
||||||
</option>
|
</option>
|
||||||
<option name="myNotNulls">
|
<option name="myNotNulls">
|
||||||
<value>
|
<value>
|
||||||
<list size="13">
|
<list size="14">
|
||||||
<item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.NotNull" />
|
<item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.NotNull" />
|
||||||
<item index="1" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.NonNull" />
|
<item index="1" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.NonNull" />
|
||||||
<item index="2" class="java.lang.String" itemvalue="android.support.annotation.NonNull" />
|
<item index="2" class="java.lang.String" itemvalue="android.support.annotation.NonNull" />
|
||||||
|
@ -39,6 +67,7 @@
|
||||||
<item index="10" class="java.lang.String" itemvalue="org.eclipse.jdt.annotation.NonNull" />
|
<item index="10" class="java.lang.String" itemvalue="org.eclipse.jdt.annotation.NonNull" />
|
||||||
<item index="11" class="java.lang.String" itemvalue="io.reactivex.annotations.NonNull" />
|
<item index="11" class="java.lang.String" itemvalue="io.reactivex.annotations.NonNull" />
|
||||||
<item index="12" class="java.lang.String" itemvalue="io.reactivex.rxjava3.annotations.NonNull" />
|
<item index="12" class="java.lang.String" itemvalue="io.reactivex.rxjava3.annotations.NonNull" />
|
||||||
|
<item index="13" class="java.lang.String" itemvalue="lombok.NonNull" />
|
||||||
</list>
|
</list>
|
||||||
</value>
|
</value>
|
||||||
</option>
|
</option>
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="RunConfigurationProducerService">
|
|
||||||
<option name="ignoredProducers">
|
|
||||||
<set>
|
|
||||||
<option value="com.android.tools.idea.compose.preview.runconfiguration.ComposePreviewRunConfigurationProducer" />
|
|
||||||
</set>
|
|
||||||
</option>
|
|
||||||
</component>
|
|
||||||
</project>
|
|
|
@ -78,7 +78,6 @@ dependencies {
|
||||||
implementation fileTree(dir: 'libs', include: ['*.jar'])
|
implementation fileTree(dir: 'libs', include: ['*.jar'])
|
||||||
|
|
||||||
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
|
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
|
||||||
implementation 'androidx.appcompat:appcompat:1.3.0'
|
|
||||||
implementation 'androidx.preference:preference-ktx:1.1.1'
|
implementation 'androidx.preference:preference-ktx:1.1.1'
|
||||||
implementation 'androidx.legacy:legacy-preference-v14:1.0.0'
|
implementation 'androidx.legacy:legacy-preference-v14:1.0.0'
|
||||||
implementation 'androidx.recyclerview:recyclerview:1.2.1'
|
implementation 'androidx.recyclerview:recyclerview:1.2.1'
|
||||||
|
@ -88,23 +87,20 @@ dependencies {
|
||||||
|
|
||||||
/* Default Libraries */
|
/* Default Libraries */
|
||||||
|
|
||||||
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
|
|
||||||
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
|
|
||||||
implementation 'androidx.appcompat:appcompat:1.3.0'
|
|
||||||
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
|
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
|
||||||
implementation 'com.google.android.material:material:1.4.0'
|
implementation 'com.google.android.material:material:1.4.0'
|
||||||
implementation 'androidx.preference:preference-ktx:1.1.1'
|
implementation 'androidx.preference:preference-ktx:1.1.1'
|
||||||
implementation 'com.google.android.material:material:1.4.0'
|
implementation 'com.google.android.material:material:1.4.0'
|
||||||
implementation 'androidx.appcompat:appcompat:1.3.0'
|
implementation 'androidx.appcompat:appcompat:1.3.1'
|
||||||
|
|
||||||
/* Firefox ABI Splits */
|
/* Firefox ABI Splits */
|
||||||
|
|
||||||
implementation "org.mozilla.components:browser-engine-gecko:73.0.8"
|
implementation "org.mozilla.components:browser-engine-gecko:75.0.0"
|
||||||
implementation "org.mozilla.components:browser-icons:73.0.9"
|
implementation "org.mozilla.components:browser-icons:91.0.6"
|
||||||
implementation "org.mozilla.geckoview:geckoview:89.0.20210622155641"
|
implementation "org.mozilla.geckoview:geckoview: 90.0.20210705185941"
|
||||||
implementation "org.mozilla.components:concept-fetch:73.0.9"
|
implementation "org.mozilla.components:concept-fetch:91.0.6"
|
||||||
implementation "org.mozilla.components:concept-base:73.0.9"
|
implementation "org.mozilla.components:concept-base:91.0.6"
|
||||||
implementation "org.mozilla.components:support-utils:73.0.9"
|
implementation "org.mozilla.components:support-utils:91.0.6"
|
||||||
|
|
||||||
/*Crashlytics*/
|
/*Crashlytics*/
|
||||||
|
|
||||||
|
@ -112,9 +108,10 @@ dependencies {
|
||||||
|
|
||||||
/* Ads Manager */
|
/* Ads Manager */
|
||||||
|
|
||||||
implementation('com.mopub:mopub-sdk:5.17.0@aar') {
|
implementation 'com.facebook.android:audience-network-sdk:6.5.1'
|
||||||
|
/* implementation('com.mopub:mopub-sdk:5.17.0@aar') {
|
||||||
transitive = true
|
transitive = true
|
||||||
}
|
} */
|
||||||
|
|
||||||
/* Orbot Service */
|
/* Orbot Service */
|
||||||
|
|
||||||
|
@ -125,19 +122,18 @@ dependencies {
|
||||||
implementation files('libs/httpclientandroidlib-1.2.1.jar')
|
implementation files('libs/httpclientandroidlib-1.2.1.jar')
|
||||||
implementation 'com.coolerfall:android-http-download-manager:1.6.3'
|
implementation 'com.coolerfall:android-http-download-manager:1.6.3'
|
||||||
implementation 'com.github.intelligo-systems:slight:1.1.3'
|
implementation 'com.github.intelligo-systems:slight:1.1.3'
|
||||||
implementation 'com.github.apl-devs:appintro:v4.2.2'
|
|
||||||
implementation 'com.android.support:design:28.0.0'
|
implementation 'com.android.support:design:28.0.0'
|
||||||
implementation 'com.android.volley:volley:1.2.0'
|
implementation 'com.android.volley:volley:1.2.0'
|
||||||
implementation 'com.github.instacart.truetime-android:library-extension-rx:3.3'
|
implementation 'com.github.instacart.truetime-android:library-extension-rx:3.3'
|
||||||
implementation "net.zetetic:android-database-sqlcipher:4.4.3"
|
implementation "net.zetetic:android-database-sqlcipher:4.4.3"
|
||||||
implementation "androidx.sqlite:sqlite-ktx:2.1.0"
|
implementation "androidx.sqlite:sqlite-ktx:2.1.0"
|
||||||
implementation 'com.github.apl-devs:appintro:v4.2.2'
|
|
||||||
implementation 'androidx.palette:palette-ktx:1.0.0'
|
implementation 'androidx.palette:palette-ktx:1.0.0'
|
||||||
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
|
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
|
||||||
implementation 'androidx.recyclerview:recyclerview:1.2.1'
|
implementation 'androidx.recyclerview:recyclerview:1.2.1'
|
||||||
implementation 'androidx.coordinatorlayout:coordinatorlayout:1.1.0'
|
implementation 'androidx.coordinatorlayout:coordinatorlayout:1.1.0'
|
||||||
implementation 'com.google.android.material:material:1.4.0'
|
implementation 'com.google.android.material:material:1.4.0'
|
||||||
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
||||||
|
implementation 'com.google.android.gms:play-services-ads:20.2.0'
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Automated APK Generation */
|
/* Automated APK Generation */
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,59 @@
|
||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"artifactType": {
|
||||||
|
"type": "APK",
|
||||||
|
"kind": "Directory"
|
||||||
|
},
|
||||||
|
"applicationId": "com.darkweb.genesissearchengine.production",
|
||||||
|
"variantName": "genesisRelease",
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"type": "ONE_OF_MANY",
|
||||||
|
"filters": [
|
||||||
|
{
|
||||||
|
"filterType": "ABI",
|
||||||
|
"value": "x86_64"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"versionCode": 178,
|
||||||
|
"versionName": "Build | Dark-Origin 1.4.7.1",
|
||||||
|
"outputFile": "app-genesis-x86_64-release.apk"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "ONE_OF_MANY",
|
||||||
|
"filters": [
|
||||||
|
{
|
||||||
|
"filterType": "ABI",
|
||||||
|
"value": "armeabi-v7a"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"versionCode": 175,
|
||||||
|
"versionName": "Build | Dark-Origin 1.4.7.1",
|
||||||
|
"outputFile": "app-genesis-armeabi-v7a-release.apk"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "ONE_OF_MANY",
|
||||||
|
"filters": [
|
||||||
|
{
|
||||||
|
"filterType": "ABI",
|
||||||
|
"value": "arm64-v8a"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"versionCode": 176,
|
||||||
|
"versionName": "Build | Dark-Origin 1.4.7.1",
|
||||||
|
"outputFile": "app-genesis-arm64-v8a-release.apk"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "ONE_OF_MANY",
|
||||||
|
"filters": [
|
||||||
|
{
|
||||||
|
"filterType": "ABI",
|
||||||
|
"value": "x86"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"versionCode": 177,
|
||||||
|
"versionName": "Build | Dark-Origin 1.4.7.1",
|
||||||
|
"outputFile": "app-genesis-x86-release.apk"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -25,11 +25,12 @@
|
||||||
android:requestLegacyExternalStorage="true"
|
android:requestLegacyExternalStorage="true"
|
||||||
android:roundIcon="@mipmap/ic_launcher_round"
|
android:roundIcon="@mipmap/ic_launcher_round"
|
||||||
android:supportsRtl="true"
|
android:supportsRtl="true"
|
||||||
|
android:debuggable="true"
|
||||||
android:theme="@style/AppTheme"
|
android:theme="@style/AppTheme"
|
||||||
android:usesCleartextTraffic="true"
|
android:usesCleartextTraffic="true"
|
||||||
tools:targetApi="n">
|
tools:targetApi="n">
|
||||||
<activity
|
<activity
|
||||||
android:name="com.darkweb.genesissearchengine.appManager.bookmarkManager.BookmarkSettings.bookmarkSettingController"
|
android:name="com.darkweb.genesissearchengine.appManager.bookmarkManager.bookmarkSettings.bookmarkSettingController"
|
||||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||||
android:windowSoftInputMode="adjustPan" />
|
android:windowSoftInputMode="adjustPan" />
|
||||||
|
|
||||||
|
@ -117,13 +118,6 @@
|
||||||
android:name="com.darkweb.genesissearchengine.appManager.settingManager.searchEngineManager.settingSearchController"
|
android:name="com.darkweb.genesissearchengine.appManager.settingManager.searchEngineManager.settingSearchController"
|
||||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||||
android:windowSoftInputMode="adjustPan" />
|
android:windowSoftInputMode="adjustPan" />
|
||||||
<activity
|
|
||||||
android:name="com.darkweb.genesissearchengine.appManager.landingManager.landingController"
|
|
||||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
|
||||||
android:label="@string/SETTING_HEADER"
|
|
||||||
android:exported="true"
|
|
||||||
android:launchMode="singleTop"
|
|
||||||
android:windowSoftInputMode="adjustPan" />
|
|
||||||
|
|
||||||
<activity
|
<activity
|
||||||
android:name="com.darkweb.genesissearchengine.appManager.settingManager.trackingManager.settingTrackingController"
|
android:name="com.darkweb.genesissearchengine.appManager.settingManager.trackingManager.settingTrackingController"
|
||||||
|
@ -133,7 +127,7 @@
|
||||||
android:name="com.darkweb.genesissearchengine.appManager.homeManager.homeController.homeController"
|
android:name="com.darkweb.genesissearchengine.appManager.homeManager.homeController.homeController"
|
||||||
android:configChanges="keyboard|keyboardHidden|mcc|mnc|orientation|screenSize|locale|layoutDirection|smallestScreenSize|screenLayout"
|
android:configChanges="keyboard|keyboardHidden|mcc|mnc|orientation|screenSize|locale|layoutDirection|smallestScreenSize|screenLayout"
|
||||||
android:launchMode="singleTop"
|
android:launchMode="singleTop"
|
||||||
android:screenOrientation="portrait"
|
android:screenOrientation="fullSensor"
|
||||||
android:windowSoftInputMode="adjustPan">
|
android:windowSoftInputMode="adjustPan">
|
||||||
<meta-data
|
<meta-data
|
||||||
android:name="android.app.shortcuts"
|
android:name="android.app.shortcuts"
|
||||||
|
@ -206,7 +200,7 @@
|
||||||
<!-- -->
|
<!-- -->
|
||||||
<meta-data
|
<meta-data
|
||||||
android:name="com.google.android.gms.ads.APPLICATION_ID"
|
android:name="com.google.android.gms.ads.APPLICATION_ID"
|
||||||
android:value="ca-app-pub-5074525529134731~8620681036" /> <!-- Development Build -->
|
android:value="ca-app-pub-5074525529134731~4717329156" /> <!-- Development Build -->
|
||||||
<!--
|
<!--
|
||||||
<meta-data
|
<meta-data
|
||||||
android:name="com.google.android.gms.ads.APPLICATION_ID"
|
android:name="com.google.android.gms.ads.APPLICATION_ID"
|
||||||
|
@ -238,19 +232,7 @@
|
||||||
<action android:name="org.torproject.android.intent.action.START" />
|
<action android:name="org.torproject.android.intent.action.START" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</receiver>
|
</receiver>
|
||||||
<!--
|
|
||||||
Permissions File Provider Live
|
|
||||||
<provider
|
|
||||||
android:name="androidx.core.content.FileProvider"
|
|
||||||
android:authorities="com.darkweb.genesissearchengine.production.provider"
|
|
||||||
android:exported="false"
|
|
||||||
android:grantUriPermissions="true">
|
|
||||||
<meta-data
|
|
||||||
android:name="android.support.FILE_PROVIDER_PATHS"
|
|
||||||
android:resource="@xml/provider_paths" />
|
|
||||||
</provider>
|
|
||||||
-->
|
|
||||||
<!-- Permissions File Provider Dev -->
|
|
||||||
<provider
|
<provider
|
||||||
android:name="androidx.core.content.FileProvider"
|
android:name="androidx.core.content.FileProvider"
|
||||||
android:authorities="com.darkweb.genesissearchengine.production.provider"
|
android:authorities="com.darkweb.genesissearchengine.production.provider"
|
||||||
|
|
|
@ -74,9 +74,7 @@ $(window).on('load', function() {
|
||||||
// var mResponseJson = '[{ "mIcon":"https://cdn.sstatic.net/Sites/stackoverflow/Img/favicon.ico?v=ec617d715196", "mHeader":"Experience", "mBody":"Donec id elit non mi porta gravida at eget metus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui"},{ "mIcon":"https://wikileaks.org/static/img/wl-logo.png", "mHeader":"Experience", "mBody":"Donec id elit non mi porta gravida at eget metus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui"},{ "mIcon":"https://cdn.sstatic.net/Sites/stackoverflow/Img/favicon.ico?v=ec617d715196", "mHeader":"Experience", "mBody":"Donec id elit non mi porta gravida at eget metus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui"},{ "mIcon":"https://cdn.sstatic.net/Sites/stackoverflow/Img/favicon.ico?v=ec617d715196", "mHeader":"Experience", "mBody":"Donec id elit non mi porta gravida at eget metus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui"},{ "mIcon":"https://cdn.sstatic.net/Sites/stackoverflow/Img/favicon.ico?v=ec617d715196", "mHeader":"Experience", "mBody":"Donec id elit non mi porta gravida at eget metus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui"},{ "mIcon":"https://cdn.sstatic.net/Sites/stackoverflow/Img/favicon.ico?v=ec617d715196", "mHeader":"Experience", "mBody":"Donec id elit non mi porta gravida at eget metus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui"}]';
|
// var mResponseJson = '[{ "mIcon":"https://cdn.sstatic.net/Sites/stackoverflow/Img/favicon.ico?v=ec617d715196", "mHeader":"Experience", "mBody":"Donec id elit non mi porta gravida at eget metus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui"},{ "mIcon":"https://wikileaks.org/static/img/wl-logo.png", "mHeader":"Experience", "mBody":"Donec id elit non mi porta gravida at eget metus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui"},{ "mIcon":"https://cdn.sstatic.net/Sites/stackoverflow/Img/favicon.ico?v=ec617d715196", "mHeader":"Experience", "mBody":"Donec id elit non mi porta gravida at eget metus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui"},{ "mIcon":"https://cdn.sstatic.net/Sites/stackoverflow/Img/favicon.ico?v=ec617d715196", "mHeader":"Experience", "mBody":"Donec id elit non mi porta gravida at eget metus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui"},{ "mIcon":"https://cdn.sstatic.net/Sites/stackoverflow/Img/favicon.ico?v=ec617d715196", "mHeader":"Experience", "mBody":"Donec id elit non mi porta gravida at eget metus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui"},{ "mIcon":"https://cdn.sstatic.net/Sites/stackoverflow/Img/favicon.ico?v=ec617d715196", "mHeader":"Experience", "mBody":"Donec id elit non mi porta gravida at eget metus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui"}]';
|
||||||
// setTimeout(mHomepageLoader.onLoadReferenceWebsites, 500);
|
// setTimeout(mHomepageLoader.onLoadReferenceWebsites, 500);
|
||||||
// setTimeout(mHomepageLoader.onLoadReferenceWebsiteContent, 1000, mResponseJson);
|
// setTimeout(mHomepageLoader.onLoadReferenceWebsiteContent, 1000, mResponseJson);
|
||||||
$(document).ready(function() {
|
document.getElementById("pBody").classList.toggle('body_fadein');
|
||||||
$('body').hide().fadeIn('fast');
|
|
||||||
});
|
|
||||||
|
|
||||||
setTimeout(function (){
|
setTimeout(function (){
|
||||||
onTriggerScriptHandler(Commands.onLoadReferenceWebsites, null)
|
onTriggerScriptHandler(Commands.onLoadReferenceWebsites, null)
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
/*Search*/
|
/*Search*/
|
||||||
body{
|
body{
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
transition: opacity 2s;
|
transition: opacity 0s;
|
||||||
-webkit-transition: opacity 2s; /* Safari */
|
-webkit-transition: opacity 0s; /* Safari */
|
||||||
}
|
}
|
||||||
|
|
||||||
.body_fadein {
|
.body_fadein {
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
/*Search*/
|
/*Search*/
|
||||||
body{
|
body{
|
||||||
opacity: 1;
|
opacity: 0;
|
||||||
|
transition: opacity 0s;
|
||||||
|
-webkit-transition: opacity 0s; /* Safari */
|
||||||
}
|
}
|
||||||
|
|
||||||
.body_fadein {
|
.body_fadein {
|
||||||
|
|
|
@ -0,0 +1,56 @@
|
||||||
|
# Contents of /data/local/tmp/com.yourcompany.yourapp-geckoview-config.yaml
|
||||||
|
|
||||||
|
env:
|
||||||
|
MOZ_LOG: nsHttp:5
|
||||||
|
|
||||||
|
|
||||||
|
prefs:
|
||||||
|
network.proxy.type: 1
|
||||||
|
network.proxy.socks: "127.0.0.1"
|
||||||
|
network.proxy.socks_port: 9050
|
||||||
|
network.proxy.socks_version: 5
|
||||||
|
network.proxy.socks_remote_dns: true
|
||||||
|
permissions.default.image: 2
|
||||||
|
browser.display.show_image_placeholders: true
|
||||||
|
browser.cache.disk.enable: false
|
||||||
|
browser.cache.memory.enable: true
|
||||||
|
browser.cache.disk.capacity: 0
|
||||||
|
privacy.resistFingerprinting: true
|
||||||
|
privacy.donottrackheader.enabled: false
|
||||||
|
privacy.donottrackheader.value: 1
|
||||||
|
network.http.sendRefererHeader: 0
|
||||||
|
security.checkloaduri: false
|
||||||
|
security.mixed_content.block_active_content: false
|
||||||
|
security.mixed_content.block_display_content: false
|
||||||
|
media.peerconnection.enabled: false //webrtc disabled
|
||||||
|
browser.cache.disk_cache_ssl: true
|
||||||
|
signon.formlessCapture.enabled: true
|
||||||
|
signon.storeWhenAutocompleteOff: true
|
||||||
|
dom.event.contextmenu.enabled: true
|
||||||
|
layout.css.visited_links_enabled: true
|
||||||
|
security.ssl3.ecdhe_rsa_aes_128_sha: true
|
||||||
|
security.ssl3.ecdhe_ecdsa_aes_128_sha: true
|
||||||
|
security.ssl3.dhe_rsa_aes_128_sha: true
|
||||||
|
security.ssl3.rsa_des_ede3_sha: true
|
||||||
|
security.ssl3.dhe_rsa_aes_256_sha: true
|
||||||
|
browser.safebrowsing.blockedURIs.enabled: false
|
||||||
|
media.gmp-provider.enabled: false
|
||||||
|
browser.send_pings.require_same_host: false
|
||||||
|
webgl.disabled: false
|
||||||
|
pdfjs.enableWebGL: false
|
||||||
|
browser.safebrowsing.malware.enabled: false
|
||||||
|
security.csp.experimentalEnabled: false
|
||||||
|
network.http.referer.spoofSource: false
|
||||||
|
security.OCSP.require: false
|
||||||
|
security.ssl.require_safe_negotiation: false
|
||||||
|
privacy.clearOnShutdown.cache: true
|
||||||
|
privacy.clearOnShutdown.downloads: true
|
||||||
|
privacy.clearOnShutdown.formdata: true
|
||||||
|
privacy.clearOnShutdown.history: true
|
||||||
|
privacy.clearOnShutdown.offlineApps: true
|
||||||
|
privacy.clearOnShutdown.passwords: true
|
||||||
|
privacy.clearOnShutdown.sessions: true
|
||||||
|
privacy.clearOnShutdown.siteSettings: true
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,56 @@
|
||||||
|
# Contents of /data/local/tmp/com.yourcompany.yourapp-geckoview-config.yaml
|
||||||
|
|
||||||
|
env:
|
||||||
|
MOZ_LOG: nsHttp:5
|
||||||
|
|
||||||
|
|
||||||
|
prefs:
|
||||||
|
network.proxy.type: 1
|
||||||
|
network.proxy.socks: "127.0.0.1"
|
||||||
|
network.proxy.socks_port: 9050
|
||||||
|
network.proxy.socks_version: 5
|
||||||
|
network.proxy.socks_remote_dns: true
|
||||||
|
permissions.default.image: 1
|
||||||
|
browser.display.show_image_placeholders: true
|
||||||
|
browser.cache.disk.enable: false
|
||||||
|
browser.cache.memory.enable: true
|
||||||
|
browser.cache.disk.capacity: 0
|
||||||
|
privacy.resistFingerprinting: true
|
||||||
|
privacy.donottrackheader.enabled: false
|
||||||
|
privacy.donottrackheader.value: 1
|
||||||
|
network.http.sendRefererHeader: 0
|
||||||
|
security.checkloaduri: false
|
||||||
|
security.mixed_content.block_active_content: false
|
||||||
|
security.mixed_content.block_display_content: false
|
||||||
|
media.peerconnection.enabled: false //webrtc disabled
|
||||||
|
browser.cache.disk_cache_ssl: true
|
||||||
|
signon.formlessCapture.enabled: true
|
||||||
|
signon.storeWhenAutocompleteOff: true
|
||||||
|
dom.event.contextmenu.enabled: true
|
||||||
|
layout.css.visited_links_enabled: true
|
||||||
|
security.ssl3.ecdhe_rsa_aes_128_sha: true
|
||||||
|
security.ssl3.ecdhe_ecdsa_aes_128_sha: true
|
||||||
|
security.ssl3.dhe_rsa_aes_128_sha: true
|
||||||
|
security.ssl3.rsa_des_ede3_sha: true
|
||||||
|
security.ssl3.dhe_rsa_aes_256_sha: true
|
||||||
|
browser.safebrowsing.blockedURIs.enabled: false
|
||||||
|
media.gmp-provider.enabled: false
|
||||||
|
browser.send_pings.require_same_host: false
|
||||||
|
webgl.disabled: false
|
||||||
|
pdfjs.enableWebGL: false
|
||||||
|
browser.safebrowsing.malware.enabled: false
|
||||||
|
security.csp.experimentalEnabled: false
|
||||||
|
network.http.referer.spoofSource: false
|
||||||
|
security.OCSP.require: false
|
||||||
|
security.ssl.require_safe_negotiation: false
|
||||||
|
privacy.clearOnShutdown.cache: true
|
||||||
|
privacy.clearOnShutdown.downloads: true
|
||||||
|
privacy.clearOnShutdown.formdata: true
|
||||||
|
privacy.clearOnShutdown.history: true
|
||||||
|
privacy.clearOnShutdown.offlineApps: true
|
||||||
|
privacy.clearOnShutdown.passwords: true
|
||||||
|
privacy.clearOnShutdown.sessions: true
|
||||||
|
privacy.clearOnShutdown.siteSettings: true
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package com.darkweb.genesissearchengine.appManager.bookmarkManager.BookmarkSettings;
|
package com.darkweb.genesissearchengine.appManager.bookmarkManager.bookmarkSettings;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package com.darkweb.genesissearchengine.appManager.bookmarkManager.BookmarkSettings;
|
package com.darkweb.genesissearchengine.appManager.bookmarkManager.bookmarkSettings;
|
||||||
|
|
||||||
public class bookmarkSettingEnums
|
public class bookmarkSettingEnums
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package com.darkweb.genesissearchengine.appManager.bookmarkManager.BookmarkSettings;
|
package com.darkweb.genesissearchengine.appManager.bookmarkManager.bookmarkSettings;
|
||||||
|
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
import com.darkweb.genesissearchengine.constants.strings;
|
import com.darkweb.genesissearchengine.constants.strings;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package com.darkweb.genesissearchengine.appManager.bookmarkManager.BookmarkSettings;
|
package com.darkweb.genesissearchengine.appManager.bookmarkManager.bookmarkSettings;
|
||||||
|
|
||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
|
@ -2,7 +2,6 @@ package com.darkweb.genesissearchengine.appManager.bookmarkManager.bookmarkHome;
|
||||||
|
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.graphics.Bitmap;
|
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.MotionEvent;
|
import android.view.MotionEvent;
|
||||||
|
@ -20,7 +19,6 @@ import com.darkweb.genesissearchengine.eventObserver;
|
||||||
import com.darkweb.genesissearchengine.helperManager.helperMethod;
|
import com.darkweb.genesissearchengine.helperManager.helperMethod;
|
||||||
import com.example.myapplication.R;
|
import com.example.myapplication.R;
|
||||||
|
|
||||||
import java.io.ByteArrayOutputStream;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
@ -397,8 +395,8 @@ public class bookmarkAdapter extends RecyclerView.Adapter<bookmarkAdapter.listVi
|
||||||
|
|
||||||
void bindListView(bookmarkRowModel model, int p_position) {
|
void bindListView(bookmarkRowModel model, int p_position) {
|
||||||
mDateContainer = itemView.findViewById(R.id.pDateContainer);
|
mDateContainer = itemView.findViewById(R.id.pDateContainer);
|
||||||
mHeader = itemView.findViewById(R.id.pHeader);
|
mHeader = itemView.findViewById(R.id.pOrbotRowHeader);
|
||||||
mDescription = itemView.findViewById(R.id.pDescription);
|
mDescription = itemView.findViewById(R.id.pOrbotRowDescription);
|
||||||
mRowContainer = itemView.findViewById(R.id.pRowContainer);
|
mRowContainer = itemView.findViewById(R.id.pRowContainer);
|
||||||
mRowMenu = itemView.findViewById(R.id.pRowMenu);
|
mRowMenu = itemView.findViewById(R.id.pRowMenu);
|
||||||
mDate = itemView.findViewById(R.id.pDate);
|
mDate = itemView.findViewById(R.id.pDate);
|
||||||
|
|
|
@ -24,7 +24,7 @@ import androidx.recyclerview.widget.ItemTouchHelper;
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
||||||
import com.darkweb.genesissearchengine.appManager.bookmarkManager.BookmarkSettings.bookmarkSettingController;
|
import com.darkweb.genesissearchengine.appManager.bookmarkManager.bookmarkSettings.bookmarkSettingController;
|
||||||
import com.darkweb.genesissearchengine.dataManager.models.bookmarkRowModel;
|
import com.darkweb.genesissearchengine.dataManager.models.bookmarkRowModel;
|
||||||
import com.darkweb.genesissearchengine.appManager.homeManager.homeController.editTextManager;
|
import com.darkweb.genesissearchengine.appManager.homeManager.homeController.editTextManager;
|
||||||
import com.darkweb.genesissearchengine.appManager.homeManager.homeController.homeController;
|
import com.darkweb.genesissearchengine.appManager.homeManager.homeController.homeController;
|
||||||
|
@ -305,7 +305,7 @@ public class bookmarkController extends AppCompatActivity
|
||||||
|
|
||||||
/* UI Redirection */
|
/* UI Redirection */
|
||||||
|
|
||||||
public void onBackPressed(View view){
|
public void onClose(View view){
|
||||||
onBackPressed();
|
onBackPressed();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -322,7 +322,7 @@ public class bookmarkController extends AppCompatActivity
|
||||||
for(int m_counter=0;m_counter<m_long_selected_urk.size();m_counter++){
|
for(int m_counter=0;m_counter<m_long_selected_urk.size();m_counter++){
|
||||||
mHomeController.postNewLinkTabAnimation(m_long_selected_urk.get(m_counter), false);
|
mHomeController.postNewLinkTabAnimation(m_long_selected_urk.get(m_counter), false);
|
||||||
}
|
}
|
||||||
onBackPressed(null);
|
onClose(null);
|
||||||
mbookmarkAdapter.onTrigger(bookmarkEnums.eBookmarkAdapterCommands.M_CLEAR_LONG_SELECTED_URL,null);
|
mbookmarkAdapter.onTrigger(bookmarkEnums.eBookmarkAdapterCommands.M_CLEAR_LONG_SELECTED_URL,null);
|
||||||
mbookmarkViewController.onTrigger(bookmarkEnums.eBookmarkViewCommands.M_CLOSE_MENU, null);
|
mbookmarkViewController.onTrigger(bookmarkEnums.eBookmarkViewCommands.M_CLOSE_MENU, null);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,64 +2,71 @@ package com.darkweb.genesissearchengine.appManager.externalCommandManager;
|
||||||
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.view.View;
|
||||||
|
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
|
||||||
import com.darkweb.genesissearchengine.appManager.homeManager.homeController.homeController;
|
import com.darkweb.genesissearchengine.appManager.homeManager.homeController.homeController;
|
||||||
import com.darkweb.genesissearchengine.constants.status;
|
import com.darkweb.genesissearchengine.constants.constants;
|
||||||
import com.darkweb.genesissearchengine.dataManager.dataController;
|
import com.darkweb.genesissearchengine.dataManager.dataController;
|
||||||
import com.darkweb.genesissearchengine.helperManager.helperMethod;
|
import com.darkweb.genesissearchengine.helperManager.helperMethod;
|
||||||
import com.example.myapplication.R;
|
import com.example.myapplication.R;
|
||||||
import org.torproject.android.service.wrapper.orbotLocalConstants;
|
import org.torproject.android.service.wrapper.orbotLocalConstants;
|
||||||
|
import static com.darkweb.genesissearchengine.constants.constants.CONST_EXTERNAL_SHORTCUT_COMMAND_ERASE;
|
||||||
|
import static com.darkweb.genesissearchengine.constants.keys.EXTERNAL_SHORTCUT_COMMAND;
|
||||||
|
|
||||||
public class externalShortcutController extends AppCompatActivity {
|
public class externalShortcutController extends AppCompatActivity {
|
||||||
|
|
||||||
|
/* Initialize */
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
status.sSettingIsAppStarted = false;
|
|
||||||
orbotLocalConstants.mIsTorInitialized = false;
|
|
||||||
boolean mConnect = false;
|
|
||||||
|
|
||||||
if (getIntent() != null && getIntent().getStringExtra("shortcut") != null) {
|
orbotLocalConstants.mIsTorInitialized = false;
|
||||||
String bundleString = getIntent().getStringExtra("shortcut");
|
Intent mIntent = new Intent(this, homeController.class);
|
||||||
switch (bundleString) {
|
|
||||||
case "erase":
|
if(getIntent() != null){
|
||||||
|
String mShortcutCommands = getIntent().getStringExtra(EXTERNAL_SHORTCUT_COMMAND);
|
||||||
|
|
||||||
|
if(mShortcutCommands!=null){
|
||||||
|
mIntent.putExtra(EXTERNAL_SHORTCUT_COMMAND, mShortcutCommands);
|
||||||
|
switch (mShortcutCommands) {
|
||||||
|
case CONST_EXTERNAL_SHORTCUT_COMMAND_ERASE:
|
||||||
setContentView(R.layout.popup_data_cleared_shortcut);
|
setContentView(R.layout.popup_data_cleared_shortcut);
|
||||||
panicExitInvoked();
|
panicExitInvoked();
|
||||||
new Handler().postDelayed(this::finish, 3000);
|
|
||||||
return;
|
return;
|
||||||
case "erase_and_open":
|
case constants.CONST_EXTERNAL_SHORTCUT_COMMAND_ERASE_OPEN:
|
||||||
panicExitInvoked();
|
|
||||||
mConnect = true;
|
|
||||||
break;
|
|
||||||
case "Restart":
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
setContentView(R.layout.empty_view);
|
setContentView(R.layout.empty_view);
|
||||||
|
panicExitInvoked();
|
||||||
if(mConnect){
|
break;
|
||||||
new Handler().postDelayed(() -> activityContextManager.getInstance().getHomeController().onStartApplication(null), 3000);
|
case constants.CONST_EXTERNAL_SHORTCUT_COMMAND_RESTART:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
helperMethod.onDelayHandler(activityContextManager.getInstance().getHomeController(), 800, () -> {
|
|
||||||
|
|
||||||
/* Start Required Activity */
|
/* Start Required Activity */
|
||||||
|
|
||||||
Intent intent = new Intent(this.getIntent());
|
helperMethod.openIntent(mIntent, this, constants.CONST_LIST_EXTERNAL_SHORTCUT);
|
||||||
intent.setClassName(this.getApplicationContext(), homeController.class.getName());
|
}
|
||||||
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
|
||||||
|
|
||||||
this.startActivity(intent);
|
/* UI TRIGGERS */
|
||||||
overridePendingTransition(R.anim.fade_in_lang, R.anim.fade_out_lang);
|
|
||||||
|
|
||||||
|
public void onUITrigger(View view){
|
||||||
|
if(view.getId() == R.id.pTDDismiss){
|
||||||
|
finishAffinity();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Helper Methods */
|
||||||
|
|
||||||
|
public void panicExitInvoked() {
|
||||||
|
|
||||||
|
dataController.getInstance().clearData(this);
|
||||||
|
|
||||||
|
helperMethod.onDelayHandler(this, 3000, () -> {
|
||||||
|
finish();
|
||||||
return null;
|
return null;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void panicExitInvoked() {
|
|
||||||
dataController.getInstance().clearData(this);
|
|
||||||
}
|
|
||||||
}
|
}
|
|
@ -2,86 +2,54 @@ package com.darkweb.genesissearchengine.appManager.externalCommandManager;
|
||||||
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
|
||||||
|
|
||||||
|
import androidx.annotation.RequiresApi;
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
||||||
import com.darkweb.genesissearchengine.appManager.homeManager.homeController.homeController;
|
import com.darkweb.genesissearchengine.appManager.homeManager.homeController.homeController;
|
||||||
|
import com.darkweb.genesissearchengine.constants.constants;
|
||||||
import com.darkweb.genesissearchengine.constants.status;
|
import com.darkweb.genesissearchengine.constants.status;
|
||||||
|
import com.darkweb.genesissearchengine.constants.strings;
|
||||||
import com.darkweb.genesissearchengine.helperManager.helperMethod;
|
import com.darkweb.genesissearchengine.helperManager.helperMethod;
|
||||||
import com.example.myapplication.R;
|
|
||||||
|
|
||||||
import static com.darkweb.genesissearchengine.constants.constants.CONST_PACKAGE_NAME;
|
import static com.darkweb.genesissearchengine.constants.constants.CONST_PACKAGE_NAME;
|
||||||
|
import static com.darkweb.genesissearchengine.constants.keys.EXTERNAL_SHORTCUT_COMMAND_NAVIGATE;
|
||||||
|
|
||||||
public class externalURLNavigationContoller extends AppCompatActivity {
|
public class externalURLNavigationContoller extends AppCompatActivity {
|
||||||
|
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP_MR1)
|
||||||
@Override
|
@Override
|
||||||
|
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
Uri data = externalURLNavigationContoller.this.getIntent().getData();
|
Uri mData = externalURLNavigationContoller.this.getIntent().getData();
|
||||||
boolean mConnect = false;
|
if(mData == null){
|
||||||
|
mData = Uri.parse(constants.CONST_BACKEND_GENESIS_URL);
|
||||||
|
}
|
||||||
|
|
||||||
if(activityContextManager.getInstance().getHomeController()!=null && (data == null || status.sSettingIsAppStarted)){
|
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1){
|
||||||
|
if(getReferrer().getHost().equals(CONST_PACKAGE_NAME)){
|
||||||
/* Close Activity */
|
helperMethod.openURLInCustomBrowser(mData.toString(), this);
|
||||||
|
finish();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
if(!helperMethod.getHost(mData.toString()).contains(".onion")){
|
||||||
|
helperMethod.openURLInCustomBrowser(mData.toString(), this);
|
||||||
|
finish();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(activityContextManager.getInstance().getHomeController()==null){
|
||||||
|
Intent mIntent = new Intent(this, homeController.class);
|
||||||
|
mIntent.putExtra(EXTERNAL_SHORTCUT_COMMAND_NAVIGATE, mData.toString());
|
||||||
|
helperMethod.openIntent(mIntent, this, constants.CONST_LIST_EXTERNAL_SHORTCUT);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
activityContextManager.getInstance().getHomeController().onExternalURLInvoke(mData.toString());
|
||||||
|
}
|
||||||
|
|
||||||
finish();
|
finish();
|
||||||
activityContextManager.getInstance().onClearStack();
|
|
||||||
|
|
||||||
/* Create Request Handler */
|
|
||||||
|
|
||||||
if(status.sSettingIsAppStarted && data!=null){
|
|
||||||
helperMethod.onDelayHandler(this, 250, () -> {
|
|
||||||
activityContextManager.getInstance().getHomeController().onOpenLinkNewTab(activityContextManager.getInstance().getHomeController().completeURL(data.toString()));
|
|
||||||
activityContextManager.getInstance().getHomeController().onClearSelectionTab();
|
|
||||||
return null;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
Intent bringToForegroundIntent = new Intent(activityContextManager.getInstance().getHomeController(), homeController.class);
|
|
||||||
bringToForegroundIntent.setFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | Intent.FLAG_ACTIVITY_NEW_TASK);
|
|
||||||
startActivity(bringToForegroundIntent);
|
|
||||||
overridePendingTransition(R.anim.fade_in_instant, R.anim.fade_out_instant);
|
|
||||||
mConnect = true;
|
|
||||||
}
|
|
||||||
else if(status.sSettingIsAppRunning){
|
|
||||||
|
|
||||||
/* Refresh Intent Data */
|
|
||||||
|
|
||||||
finish();
|
|
||||||
status.sExternalWebsite = data.toString();
|
|
||||||
|
|
||||||
}else {
|
|
||||||
|
|
||||||
/* Start Required Activity */
|
|
||||||
|
|
||||||
Intent intent = new Intent(this.getIntent());
|
|
||||||
intent.setClassName(this.getApplicationContext(), homeController.class.getName());
|
|
||||||
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
|
||||||
|
|
||||||
if(activityContextManager.getInstance().getHomeController()!=null){
|
|
||||||
activityContextManager.getInstance().getHomeController().onOpenLinkNewTab(data.toString());
|
|
||||||
}else {
|
|
||||||
status.sExternalWebsite = data.toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Bring Application To Front */
|
|
||||||
|
|
||||||
Intent launchIntent = getPackageManager().getLaunchIntentForPackage(CONST_PACKAGE_NAME);
|
|
||||||
startActivity(launchIntent);
|
|
||||||
overridePendingTransition(R.anim.fade_in_instant, R.anim.fade_out_instant);
|
|
||||||
mConnect = true;
|
|
||||||
|
|
||||||
/* Close Activity */
|
|
||||||
|
|
||||||
helperMethod.onDelayHandler(this, 1000, () -> {
|
|
||||||
finish();
|
|
||||||
return null;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
if(mConnect){
|
|
||||||
new Handler().postDelayed(() -> activityContextManager.getInstance().getHomeController().onStartApplication(null), 3000);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -2,10 +2,8 @@ package com.darkweb.genesissearchengine.appManager.historyManager;
|
||||||
|
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.res.Resources;
|
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.util.Log;
|
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.MotionEvent;
|
import android.view.MotionEvent;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
@ -474,8 +472,8 @@ public class historyAdapter extends RecyclerView.Adapter<historyAdapter.listView
|
||||||
@SuppressLint("UseCompatLoadingForDrawables")
|
@SuppressLint("UseCompatLoadingForDrawables")
|
||||||
void bindListView(historyRowModel model, int p_position) {
|
void bindListView(historyRowModel model, int p_position) {
|
||||||
mDateContainer = itemView.findViewById(R.id.pDateContainer);
|
mDateContainer = itemView.findViewById(R.id.pDateContainer);
|
||||||
mHeader = itemView.findViewById(R.id.pHeader);
|
mHeader = itemView.findViewById(R.id.pOrbotRowHeader);
|
||||||
mDescription = itemView.findViewById(R.id.pDescription);
|
mDescription = itemView.findViewById(R.id.pOrbotRowDescription);
|
||||||
mRowContainer = itemView.findViewById(R.id.pRowContainer);
|
mRowContainer = itemView.findViewById(R.id.pRowContainer);
|
||||||
mRowMenu = itemView.findViewById(R.id.pRowMenu);
|
mRowMenu = itemView.findViewById(R.id.pRowMenu);
|
||||||
mDate = itemView.findViewById(R.id.pDate);
|
mDate = itemView.findViewById(R.id.pDate);
|
||||||
|
|
|
@ -19,8 +19,10 @@ public class errorHandler
|
||||||
this.mContext = mContext;
|
this.mContext = mContext;
|
||||||
if (mErrorTemplate == null) {
|
if (mErrorTemplate == null) {
|
||||||
StringBuilder builder = new StringBuilder();
|
StringBuilder builder = new StringBuilder();
|
||||||
try (InputStream stream = mResourceURL; BufferedReader reader = new BufferedReader(new InputStreamReader(stream))) {
|
try {
|
||||||
|
|
||||||
|
InputStream stream = mResourceURL;
|
||||||
|
BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
|
||||||
String line;
|
String line;
|
||||||
while ((line = reader.readLine()) != null) {
|
while ((line = reader.readLine()) != null) {
|
||||||
builder.append(line);
|
builder.append(line);
|
||||||
|
|
|
@ -681,19 +681,7 @@ public class extendedGeckoView extends FrameLayout {
|
||||||
* @param event A {@link MotionEvent}
|
* @param event A {@link MotionEvent}
|
||||||
* @return One of the {@link PanZoomController#INPUT_RESULT_UNHANDLED INPUT_RESULT_*}) indicating how the event was handled.
|
* @return One of the {@link PanZoomController#INPUT_RESULT_UNHANDLED INPUT_RESULT_*}) indicating how the event was handled.
|
||||||
*/
|
*/
|
||||||
public @NonNull GeckoResult<Integer> onTouchEventForResult(final @NonNull MotionEvent event) {
|
|
||||||
if (event.getActionMasked() == MotionEvent.ACTION_DOWN) {
|
|
||||||
requestFocus();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mSession == null) {
|
|
||||||
return GeckoResult.fromValue(PanZoomController.INPUT_RESULT_UNHANDLED);
|
|
||||||
}
|
|
||||||
|
|
||||||
// NOTE: Treat mouse events as "touch" rather than as "mouse", so mouse can be
|
|
||||||
// used to pan/zoom. Call onMouseEvent() instead for behavior similar to desktop.
|
|
||||||
return mSession.getPanZoomController().onTouchEventForResult(event);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onGenericMotionEvent(final MotionEvent event) {
|
public boolean onGenericMotionEvent(final MotionEvent event) {
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.darkweb.genesissearchengine.appManager.homeManager.geckoManager;
|
package com.darkweb.genesissearchengine.appManager.homeManager.geckoManager;
|
||||||
|
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
|
@ -8,24 +9,23 @@ import android.util.Log;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
||||||
import com.darkweb.genesissearchengine.appManager.homeManager.homeController.homeController;
|
|
||||||
import com.darkweb.genesissearchengine.appManager.kotlinHelperLibraries.BrowserIconManager;
|
import com.darkweb.genesissearchengine.appManager.kotlinHelperLibraries.BrowserIconManager;
|
||||||
import com.darkweb.genesissearchengine.constants.*;
|
import com.darkweb.genesissearchengine.constants.*;
|
||||||
import com.darkweb.genesissearchengine.dataManager.dataController;
|
import com.darkweb.genesissearchengine.dataManager.dataController;
|
||||||
import com.darkweb.genesissearchengine.dataManager.dataEnums;
|
import com.darkweb.genesissearchengine.dataManager.dataEnums;
|
||||||
import com.darkweb.genesissearchengine.eventObserver;
|
import com.darkweb.genesissearchengine.eventObserver;
|
||||||
import com.darkweb.genesissearchengine.helperManager.helperMethod;
|
import com.darkweb.genesissearchengine.helperManager.helperMethod;
|
||||||
import com.darkweb.genesissearchengine.pluginManager.pluginController;
|
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.Collections;
|
import java.io.FileOutputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static com.darkweb.genesissearchengine.constants.constants.CONST_GENESIS_URL_CACHED;
|
import static com.darkweb.genesissearchengine.constants.constants.CONST_GENESIS_URL_CACHED;
|
||||||
import static com.darkweb.genesissearchengine.constants.constants.CONST_GENESIS_URL_CACHED_DARK;
|
import static com.darkweb.genesissearchengine.constants.constants.CONST_GENESIS_URL_CACHED_DARK;
|
||||||
import static com.darkweb.genesissearchengine.constants.constants.CONST_REPORT_URL;
|
import static com.darkweb.genesissearchengine.constants.constants.CONST_REPORT_URL;
|
||||||
import static com.darkweb.genesissearchengine.constants.enums.etype.on_handle_external_intent;
|
import static com.darkweb.genesissearchengine.constants.enums.etype.on_handle_external_intent;
|
||||||
import static com.darkweb.genesissearchengine.pluginManager.pluginEnums.eMessageManager.M_APPLICATION_CRASH;
|
|
||||||
import static org.mozilla.geckoview.GeckoSessionSettings.USER_AGENT_MODE_MOBILE;
|
import static org.mozilla.geckoview.GeckoSessionSettings.USER_AGENT_MODE_MOBILE;
|
||||||
import static org.mozilla.geckoview.StorageController.ClearFlags.AUTH_SESSIONS;
|
import static org.mozilla.geckoview.StorageController.ClearFlags.AUTH_SESSIONS;
|
||||||
import static org.mozilla.geckoview.StorageController.ClearFlags.COOKIES;
|
import static org.mozilla.geckoview.StorageController.ClearFlags.COOKIES;
|
||||||
|
@ -35,8 +35,10 @@ import static org.mozilla.geckoview.StorageController.ClearFlags.NETWORK_CACHE;
|
||||||
import static org.mozilla.geckoview.StorageController.ClearFlags.PERMISSIONS;
|
import static org.mozilla.geckoview.StorageController.ClearFlags.PERMISSIONS;
|
||||||
import static org.mozilla.geckoview.StorageController.ClearFlags.SITE_DATA;
|
import static org.mozilla.geckoview.StorageController.ClearFlags.SITE_DATA;
|
||||||
import static org.mozilla.geckoview.StorageController.ClearFlags.SITE_SETTINGS;
|
import static org.mozilla.geckoview.StorageController.ClearFlags.SITE_SETTINGS;
|
||||||
|
|
||||||
import org.mozilla.geckoview.ContentBlocking;
|
import org.mozilla.geckoview.ContentBlocking;
|
||||||
import org.mozilla.geckoview.GeckoRuntime;
|
import org.mozilla.geckoview.GeckoRuntime;
|
||||||
|
import org.mozilla.geckoview.GeckoRuntimeSettings;
|
||||||
import org.mozilla.geckoview.GeckoView;
|
import org.mozilla.geckoview.GeckoView;
|
||||||
import org.mozilla.geckoview.WebResponse;
|
import org.mozilla.geckoview.WebResponse;
|
||||||
|
|
||||||
|
@ -45,7 +47,11 @@ public class geckoClients
|
||||||
/*Gecko Variables*/
|
/*Gecko Variables*/
|
||||||
|
|
||||||
private geckoSession mSession = null;
|
private geckoSession mSession = null;
|
||||||
private GeckoRuntime mRuntime = null;
|
private geckoSession mSession1 = null;
|
||||||
|
private geckoSession mSession2 = null;
|
||||||
|
int mCounter = 0;
|
||||||
|
|
||||||
|
private static GeckoRuntime mRuntime = null;
|
||||||
private BrowserIconManager mIconManager;
|
private BrowserIconManager mIconManager;
|
||||||
private eventObserver.eventListener event;
|
private eventObserver.eventListener event;
|
||||||
|
|
||||||
|
@ -66,6 +72,7 @@ public class geckoClients
|
||||||
if(geckoView.getSession()!=null){
|
if(geckoView.getSession()!=null){
|
||||||
geckoView.releaseSession();
|
geckoView.releaseSession();
|
||||||
}
|
}
|
||||||
|
|
||||||
mSession = new geckoSession(new geckoViewClientCallback(),mSessionID,context, geckoView);
|
mSession = new geckoSession(new geckoViewClientCallback(),mSessionID,context, geckoView);
|
||||||
mSession.open(mRuntime);
|
mSession.open(mRuntime);
|
||||||
mSession.getSettings().setUseTrackingProtection(status.sStatusDoNotTrack);
|
mSession.getSettings().setUseTrackingProtection(status.sStatusDoNotTrack);
|
||||||
|
@ -78,6 +85,7 @@ public class geckoClients
|
||||||
onUpdateFont();
|
onUpdateFont();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void onValidateInitializeFromStartup(NestedGeckoView mNestedGeckoView, AppCompatActivity pcontext){
|
public void onValidateInitializeFromStartup(NestedGeckoView mNestedGeckoView, AppCompatActivity pcontext){
|
||||||
boolean mStatus = mSession.onValidateInitializeFromStartup();
|
boolean mStatus = mSession.onValidateInitializeFromStartup();
|
||||||
if(mStatus){
|
if(mStatus){
|
||||||
|
@ -138,26 +146,67 @@ public class geckoClients
|
||||||
return mSession.getUserAgentMode();
|
return mSession.getUserAgentMode();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public String getAssetsCacheFile(Context context, String fileName) {
|
||||||
|
File cacheFile = new File(context.getCacheDir(), fileName);
|
||||||
|
try {
|
||||||
|
InputStream inputStream = context.getAssets().open(fileName);
|
||||||
|
try {
|
||||||
|
FileOutputStream outputStream = new FileOutputStream(cacheFile);
|
||||||
|
try {
|
||||||
|
byte[] buf = new byte[1024];
|
||||||
|
int len;
|
||||||
|
while ((len = inputStream.read(buf)) > 0) {
|
||||||
|
outputStream.write(buf, 0, len);
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
outputStream.close();
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
inputStream.close();
|
||||||
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return cacheFile.getAbsolutePath();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static boolean mCreated = false;
|
||||||
@SuppressLint("WrongConstant")
|
@SuppressLint("WrongConstant")
|
||||||
public void initRuntimeSettings(AppCompatActivity context){
|
public void initRuntimeSettings(AppCompatActivity context){
|
||||||
if(mRuntime==null){
|
if(mRuntime==null){
|
||||||
mRuntime = GeckoRuntime.getDefault(context.getApplicationContext());
|
GeckoRuntimeSettings.Builder mSettings = new GeckoRuntimeSettings.Builder();
|
||||||
|
if(status.sShowImages == 2){
|
||||||
|
mSettings.configFilePath(getAssetsCacheFile(context, "config/geckoview-config-noimage.yaml"));
|
||||||
|
}else {
|
||||||
|
mSettings.configFilePath(getAssetsCacheFile(context, "config/geckoview-config.yaml"));
|
||||||
|
}
|
||||||
|
mSettings.build();
|
||||||
|
|
||||||
|
mRuntime = GeckoRuntime.create(context, mSettings.build());
|
||||||
|
mCreated = true;
|
||||||
|
onClearAll();
|
||||||
mRuntime.getSettings().setAboutConfigEnabled(true);
|
mRuntime.getSettings().setAboutConfigEnabled(true);
|
||||||
mRuntime.getSettings().setAutomaticFontSizeAdjustment(false);
|
mRuntime.getSettings().setAutomaticFontSizeAdjustment(false);
|
||||||
mRuntime.getSettings().setWebFontsEnabled(status.sShowWebFonts);
|
mRuntime.getSettings().setWebFontsEnabled(status.sShowWebFonts);
|
||||||
mRuntime.getSettings().setForceUserScalableEnabled(status.sSettingEnableZoom);
|
mRuntime.getSettings().setForceUserScalableEnabled(status.sSettingEnableZoom);
|
||||||
mRuntime.getSettings().getContentBlocking().setCookieBehavior(getCookiesBehaviour());
|
mRuntime.getSettings().getContentBlocking().setCookieBehavior(getCookiesBehaviour());
|
||||||
mRuntime.getSettings().getContentBlocking().setSafeBrowsing(ContentBlocking.SafeBrowsing.DEFAULT);
|
mRuntime.getSettings().getContentBlocking().setSafeBrowsing(ContentBlocking.SafeBrowsing.DEFAULT);
|
||||||
mIconManager = new BrowserIconManager();
|
|
||||||
|
|
||||||
if(status.sSettingTrackingProtection == 1){
|
if(status.sSettingTrackingProtection == 1){
|
||||||
mRuntime.getSettings().getContentBlocking().setAntiTracking(ContentBlocking.AntiTracking.DEFAULT);
|
mRuntime.getSettings().getContentBlocking().setAntiTracking(ContentBlocking.AntiTracking.DEFAULT);
|
||||||
}else if(status.sSettingTrackingProtection == 2){
|
}else if(status.sSettingTrackingProtection == 2){
|
||||||
mRuntime.getSettings().getContentBlocking().setAntiTracking(ContentBlocking.AntiTracking.STRICT);
|
mRuntime.getSettings().getContentBlocking().setAntiTracking(ContentBlocking.AntiTracking.STRICT);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mIconManager = new BrowserIconManager();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void onGetFavIcon(ImageView pImageView, String pURL, AppCompatActivity pcontext){
|
public void onGetFavIcon(ImageView pImageView, String pURL, AppCompatActivity pcontext){
|
||||||
pURL = helperMethod.completeURL(helperMethod.getDomainName(pURL));
|
pURL = helperMethod.completeURL(helperMethod.getDomainName(pURL));
|
||||||
mIconManager.onLoadIconIntoView(pcontext,mRuntime, pImageView, pURL);
|
mIconManager.onLoadIconIntoView(pcontext,mRuntime, pImageView, pURL);
|
||||||
|
@ -174,6 +223,14 @@ public class geckoClients
|
||||||
|
|
||||||
@SuppressLint("WrongConstant")
|
@SuppressLint("WrongConstant")
|
||||||
public void updateSetting(NestedGeckoView mNestedGeckoView, AppCompatActivity pcontext){
|
public void updateSetting(NestedGeckoView mNestedGeckoView, AppCompatActivity pcontext){
|
||||||
|
GeckoRuntimeSettings.Builder mSettings = new GeckoRuntimeSettings.Builder();
|
||||||
|
if(status.sShowImages == 2){
|
||||||
|
mSettings.configFilePath(getAssetsCacheFile(pcontext, "config/geckoview-config-noimage.yaml"));
|
||||||
|
}else {
|
||||||
|
mSettings.configFilePath(getAssetsCacheFile(pcontext, "config/geckoview-config.yaml"));
|
||||||
|
}
|
||||||
|
mSettings.build();
|
||||||
|
|
||||||
mRuntime.getSettings().setRemoteDebuggingEnabled(false);
|
mRuntime.getSettings().setRemoteDebuggingEnabled(false);
|
||||||
mRuntime.getSettings().setWebFontsEnabled(status.sShowWebFonts);
|
mRuntime.getSettings().setWebFontsEnabled(status.sShowWebFonts);
|
||||||
mRuntime.getSettings().getContentBlocking().setCookieBehavior(getCookiesBehaviour());
|
mRuntime.getSettings().getContentBlocking().setCookieBehavior(getCookiesBehaviour());
|
||||||
|
@ -287,6 +344,15 @@ public class geckoClients
|
||||||
return mSession.isLoaded();
|
return mSession.isLoaded();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void onClearAll(){
|
||||||
|
mRuntime.getStorageController().clearData(NETWORK_CACHE);
|
||||||
|
mRuntime.getStorageController().clearData(IMAGE_CACHE);
|
||||||
|
mRuntime.getStorageController().clearData(DOM_STORAGES);
|
||||||
|
mRuntime.getStorageController().clearData(COOKIES);
|
||||||
|
mRuntime.getStorageController().clearData(SITE_SETTINGS);
|
||||||
|
mRuntime.getStorageController().clearData(SITE_DATA);
|
||||||
|
}
|
||||||
|
|
||||||
public void onClearSiteData(){
|
public void onClearSiteData(){
|
||||||
mRuntime.getStorageController().clearData(SITE_SETTINGS);
|
mRuntime.getStorageController().clearData(SITE_SETTINGS);
|
||||||
mRuntime.getStorageController().clearData(SITE_DATA);
|
mRuntime.getStorageController().clearData(SITE_DATA);
|
||||||
|
@ -321,6 +387,10 @@ public class geckoClients
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getSecurityInfo(){
|
||||||
|
return mSession.getSecurityInfo();
|
||||||
|
}
|
||||||
|
|
||||||
public boolean wasPreviousErrorPage(){
|
public boolean wasPreviousErrorPage(){
|
||||||
return mSession.wasPreviousErrorPage();
|
return mSession.wasPreviousErrorPage();
|
||||||
}
|
}
|
||||||
|
|
|
@ -106,6 +106,7 @@ geckoSession extends GeckoSession implements GeckoSession.MediaDelegate,GeckoSes
|
||||||
private boolean mThemeChanged = false;
|
private boolean mThemeChanged = false;
|
||||||
private int mScollOffset = 0;
|
private int mScollOffset = 0;
|
||||||
private selectionActionDelegate mSelectionActionDelegate;
|
private selectionActionDelegate mSelectionActionDelegate;
|
||||||
|
private SecurityInformation securityInfo = null;
|
||||||
|
|
||||||
/*Temp Variables*/
|
/*Temp Variables*/
|
||||||
private GeckoSession.HistoryDelegate.HistoryList mHistoryList = null;
|
private GeckoSession.HistoryDelegate.HistoryList mHistoryList = null;
|
||||||
|
@ -305,10 +306,18 @@ geckoSession extends GeckoSession implements GeckoSession.MediaDelegate,GeckoSes
|
||||||
}
|
}
|
||||||
/*Progress Delegate*/
|
/*Progress Delegate*/
|
||||||
|
|
||||||
|
@UiThread
|
||||||
|
public void onSecurityChange(@NonNull final GeckoSession session,@NonNull final SecurityInformation securityInfo) {
|
||||||
|
this.securityInfo = securityInfo;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPageStart(@NonNull GeckoSession var1, @NonNull String var2) {
|
public void onPageStart(@NonNull GeckoSession var1, @NonNull String var2) {
|
||||||
if(mIsLoaded){
|
if(mIsLoaded){
|
||||||
|
mCurrentURL = var2;
|
||||||
|
if(!var2.equals("about:blank")){
|
||||||
event.invokeObserver(Arrays.asList(var2,mSessionID,mCurrentTitle, m_current_url_id, mTheme, this), enums.etype.ON_UPDATE_SEARCH_BAR);
|
event.invokeObserver(Arrays.asList(var2,mSessionID,mCurrentTitle, m_current_url_id, mTheme, this), enums.etype.ON_UPDATE_SEARCH_BAR);
|
||||||
|
}
|
||||||
if(!isPageLoading){
|
if(!isPageLoading){
|
||||||
mCurrentTitle = "loading";
|
mCurrentTitle = "loading";
|
||||||
m_current_url_id = -1;
|
m_current_url_id = -1;
|
||||||
|
@ -333,7 +342,7 @@ geckoSession extends GeckoSession implements GeckoSession.MediaDelegate,GeckoSes
|
||||||
if(var2){
|
if(var2){
|
||||||
if(mProgress>=100){
|
if(mProgress>=100){
|
||||||
//event.invokeObserver(Arrays.asList(mCurrentURL,mSessionID,mCurrentTitle, mTheme), enums.etype.ON_UPDATE_THEME);
|
//event.invokeObserver(Arrays.asList(mCurrentURL,mSessionID,mCurrentTitle, mTheme), enums.etype.ON_UPDATE_THEME);
|
||||||
event.invokeObserver(Arrays.asList(mCurrentURL,mSessionID,mCurrentTitle, m_current_url_id, mTheme), enums.etype.on_update_favicon);
|
//event.invokeObserver(Arrays.asList(mCurrentURL,mSessionID,mCurrentTitle, m_current_url_id, mTheme), enums.etype.on_update_favicon);
|
||||||
event.invokeObserver(Arrays.asList(null,mSessionID), enums.etype.on_page_loaded);
|
event.invokeObserver(Arrays.asList(null,mSessionID), enums.etype.on_page_loaded);
|
||||||
|
|
||||||
if(!mThemeChanged){
|
if(!mThemeChanged){
|
||||||
|
@ -385,6 +394,30 @@ geckoSession extends GeckoSession implements GeckoSession.MediaDelegate,GeckoSes
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getSecurityInfo(){
|
||||||
|
if(securityInfo!=null && securityInfo.certificate!=null){
|
||||||
|
|
||||||
|
String mAlternativeNames = strings.GENERIC_EMPTY_STR;
|
||||||
|
try{
|
||||||
|
for (List name : securityInfo.certificate.getSubjectAlternativeNames()){
|
||||||
|
mAlternativeNames = mAlternativeNames + name.get(1) + "<br>";
|
||||||
|
}
|
||||||
|
|
||||||
|
}catch (Exception ignored) {}
|
||||||
|
|
||||||
|
return "<br><b>Website</b><br>"+securityInfo.host + "<br><br>" +
|
||||||
|
"<b>Serial Number</b><br>" + securityInfo.certificate.getSerialNumber() + "<br><br>" +
|
||||||
|
"<b>Algorithm Name</b><br>" + securityInfo.certificate.getSigAlgName() + "<br><br>" +
|
||||||
|
"<b>Issued On</b><br>" + securityInfo.certificate.getNotBefore() + "<br><br>" +
|
||||||
|
"<b>Expires On</b><br>" + securityInfo.certificate.getNotAfter() + "<br><br>" +
|
||||||
|
"<b>Organization (O)</b><br>" + securityInfo.certificate.getSubjectDN().getName() + "<br><br>" +
|
||||||
|
"<b>Common Name (CN)</b><br>" + securityInfo.certificate.getIssuerDN().getName() + "<br><br>" +
|
||||||
|
"<b>Subject Alternative Names</b><br>" + mAlternativeNames;
|
||||||
|
}else {
|
||||||
|
return "Onion Secured Connection";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void onProgressStart(){
|
public void onProgressStart(){
|
||||||
if(!getCurrentURL().equals("about:blank") && !getCurrentURL().contains("genesishiddentechnologies.com") && !wasPreviousErrorPage() && !getCurrentURL().startsWith(CONST_GENESIS_URL_CACHED) && !getCurrentURL().startsWith(CONST_GENESIS_URL_CACHED_DARK) && !getCurrentURL().startsWith(CONST_GENESIS_HELP_URL_CACHE) && !getCurrentURL().startsWith(CONST_GENESIS_HELP_URL_CACHE_DARK)){
|
if(!getCurrentURL().equals("about:blank") && !getCurrentURL().contains("genesishiddentechnologies.com") && !wasPreviousErrorPage() && !getCurrentURL().startsWith(CONST_GENESIS_URL_CACHED) && !getCurrentURL().startsWith(CONST_GENESIS_URL_CACHED_DARK) && !getCurrentURL().startsWith(CONST_GENESIS_HELP_URL_CACHE) && !getCurrentURL().startsWith(CONST_GENESIS_HELP_URL_CACHE_DARK)){
|
||||||
mContext.get().runOnUiThread(() -> event.invokeObserver(Arrays.asList(5,mSessionID), enums.etype.progress_update));
|
mContext.get().runOnUiThread(() -> event.invokeObserver(Arrays.asList(5,mSessionID), enums.etype.progress_update));
|
||||||
|
@ -606,8 +639,8 @@ geckoSession extends GeckoSession implements GeckoSession.MediaDelegate,GeckoSes
|
||||||
}else {
|
}else {
|
||||||
mResourceURL = mContext.get().getResources().getAssets().open(CONST_GENESIS_ERROR_CACHED_DARK);
|
mResourceURL = mContext.get().getResources().getAssets().open(CONST_GENESIS_ERROR_CACHED_DARK);
|
||||||
}
|
}
|
||||||
}catch (Exception ignored){
|
}catch (Exception ex){
|
||||||
|
Log.i("asd","asd : " + ex.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
return GeckoResult.fromValue("data:text/html," + handler.createErrorPage(var3.category, var3.code,mContext.get(),var2, mResourceURL));
|
return GeckoResult.fromValue("data:text/html," + handler.createErrorPage(var3.category, var3.code,mContext.get(),var2, mResourceURL));
|
||||||
|
|
|
@ -156,15 +156,14 @@ public class selectionActionDelegate implements ActionMode.Callback,
|
||||||
* @return True if the action is presently available.
|
* @return True if the action is presently available.
|
||||||
*/
|
*/
|
||||||
protected boolean isActionAvailable(final @NonNull String id) {
|
protected boolean isActionAvailable(final @NonNull String id) {
|
||||||
if (mSelection == null || mSelection.text.toString().length()<1) {
|
if (mSelection == null || mSelection.text.length()<1 || mSelection.text.getBytes().length >= 500000) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mExternalActionsEnabled && !mSelection.text.isEmpty() &&
|
if (mExternalActionsEnabled && !mSelection.text.isEmpty() &&
|
||||||
ACTION_PROCESS_TEXT.equals(id)) {
|
ACTION_PROCESS_TEXT.equals(id)) {
|
||||||
final PackageManager pm = mActivity.getPackageManager();
|
final PackageManager pm = mActivity.getPackageManager();
|
||||||
return pm.resolveActivity(getProcessTextIntent(),
|
return pm.resolveActivity(getProcessTextIntent(),PackageManager.MATCH_DEFAULT_ONLY) != null;
|
||||||
PackageManager.MATCH_DEFAULT_ONLY) != null;
|
|
||||||
}
|
}
|
||||||
if(id.equals("SEARCH") && !mSelection.text.isEmpty() && mExternalActionsEnabled){
|
if(id.equals("SEARCH") && !mSelection.text.isEmpty() && mExternalActionsEnabled){
|
||||||
return true;
|
return true;
|
||||||
|
@ -430,7 +429,7 @@ public class selectionActionDelegate implements ActionMode.Callback,
|
||||||
try{
|
try{
|
||||||
if (mUseFloatingToolbar) {
|
if (mUseFloatingToolbar) {
|
||||||
String strManufacturer = android.os.Build.MANUFACTURER;
|
String strManufacturer = android.os.Build.MANUFACTURER;
|
||||||
if (android.os.Build.VERSION.SDK_INT <= Build.VERSION_CODES.LOLLIPOP_MR1 || (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.N && android.os.Build.VERSION.SDK_INT <= Build.VERSION_CODES.N_MR1 && strManufacturer.equals("samsung"))) {
|
if (android.os.Build.VERSION.SDK_INT <= Build.VERSION_CODES.LOLLIPOP_MR1 || (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.N && android.os.Build.VERSION.SDK_INT <= Build.VERSION_CODES.N_MR1 && (strManufacturer.toLowerCase().contains("samsung") || android.os.Build.MODEL.toLowerCase().contains("samsung") || Build.PRODUCT.toLowerCase().contains("samsung")))) {
|
||||||
mActionMode = mActivity.startActionMode(this);
|
mActionMode = mActivity.startActionMode(this);
|
||||||
}else {
|
}else {
|
||||||
mActionMode = mActivity.startActionMode(new Callback2Wrapper(),ActionMode.TYPE_FLOATING);
|
mActionMode = mActivity.startActionMode(new Callback2Wrapper(),ActionMode.TYPE_FLOATING);
|
||||||
|
|
|
@ -16,6 +16,7 @@ import android.widget.LinearLayout;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
|
import androidx.cardview.widget.CardView;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
import com.darkweb.genesissearchengine.dataManager.models.historyRowModel;
|
import com.darkweb.genesissearchengine.dataManager.models.historyRowModel;
|
||||||
|
@ -63,12 +64,10 @@ public class hintAdapter extends RecyclerView.Adapter<hintAdapter.listViewHolder
|
||||||
mHintList.clear();
|
mHintList.clear();
|
||||||
mHintList.add( new historyRowModel("Genesis Search", "genesis.onion",-1));
|
mHintList.add( new historyRowModel("Genesis Search", "genesis.onion",-1));
|
||||||
}
|
}
|
||||||
|
|
||||||
notifyDataSetChanged();
|
notifyDataSetChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onClearAdapter(){
|
public void onClearAdapter(){
|
||||||
//mPastWebIcon.clear();
|
|
||||||
mPastWebIcon.remove(0);
|
mPastWebIcon.remove(0);
|
||||||
mPastWebIcon.remove(1);
|
mPastWebIcon.remove(1);
|
||||||
mPastWebIcon.remove(2);
|
mPastWebIcon.remove(2);
|
||||||
|
@ -103,7 +102,8 @@ public class hintAdapter extends RecyclerView.Adapter<hintAdapter.listViewHolder
|
||||||
TextView mURL;
|
TextView mURL;
|
||||||
ImageButton mMoveURL;
|
ImageButton mMoveURL;
|
||||||
ImageView mHindTypeIcon;
|
ImageView mHindTypeIcon;
|
||||||
ImageView mHintWebIcon = null;
|
CardView mHintWebIcon = null;
|
||||||
|
ImageView pHintWebIconImage = null;
|
||||||
LinearLayout mpHintListener;
|
LinearLayout mpHintListener;
|
||||||
ImageView mHindTypeIconTemp;
|
ImageView mHindTypeIconTemp;
|
||||||
|
|
||||||
|
@ -113,22 +113,23 @@ public class hintAdapter extends RecyclerView.Adapter<hintAdapter.listViewHolder
|
||||||
|
|
||||||
@SuppressLint({"ClickableViewAccessibility", "UseCompatLoadingForDrawables"})
|
@SuppressLint({"ClickableViewAccessibility", "UseCompatLoadingForDrawables"})
|
||||||
void bindListView(historyRowModel model) {
|
void bindListView(historyRowModel model) {
|
||||||
mHeader = itemView.findViewById(R.id.pHeader);
|
mHeader = itemView.findViewById(R.id.pOrbotRowHeader);
|
||||||
mHeaderSingle = itemView.findViewById(R.id.pHeaderSingle);
|
mHeaderSingle = itemView.findViewById(R.id.pHeaderSingle);
|
||||||
mURL = itemView.findViewById(R.id.pURL);
|
mURL = itemView.findViewById(R.id.pURL);
|
||||||
mHindTypeIcon = itemView.findViewById(R.id.pHindTypeIcon);
|
mHindTypeIcon = itemView.findViewById(R.id.pHindTypeIcon);
|
||||||
mpHintListener = itemView.findViewById(R.id.pHintListener);
|
mpHintListener = itemView.findViewById(R.id.pHintListener);
|
||||||
mMoveURL = itemView.findViewById(R.id.pMoveURL);
|
mMoveURL = itemView.findViewById(R.id.pMoveURL);
|
||||||
mHintWebIcon = itemView.findViewById(R.id.pHintWebIcon);
|
mHintWebIcon = itemView.findViewById(R.id.pHintWebIcon);
|
||||||
|
pHintWebIconImage = itemView.findViewById(R.id.pHintWebIconImage);
|
||||||
mHindTypeIconTemp = new ImageView(mContext);
|
mHindTypeIconTemp = new ImageView(mContext);
|
||||||
|
|
||||||
mHintWebIcon.setImageTintList(ColorStateList.valueOf(mContext.getResources().getColor(R.color.c_text_v6)));
|
pHintWebIconImage.setImageTintList(ColorStateList.valueOf(mContext.getResources().getColor(R.color.c_text_v6)));
|
||||||
|
|
||||||
if(mPastWebIcon.containsKey(getLayoutPosition())){
|
if(mPastWebIcon.containsKey(getLayoutPosition())){
|
||||||
mHintWebIcon.setImageDrawable(mPastWebIcon.get(getLayoutPosition()));
|
pHintWebIconImage.setImageDrawable(mPastWebIcon.get(getLayoutPosition()));
|
||||||
mHintWebIcon.setImageTintList(null);
|
pHintWebIconImage.setImageTintList(null);
|
||||||
}else {
|
}else {
|
||||||
mHintWebIcon.setImageTintList(ColorStateList.valueOf(mContext.getResources().getColor(R.color.c_text_v8)));
|
pHintWebIconImage.setImageTintList(ColorStateList.valueOf(mContext.getResources().getColor(R.color.c_text_v8)));
|
||||||
|
|
||||||
Drawable mDrawable;
|
Drawable mDrawable;
|
||||||
Resources res = itemView.getContext().getResources();
|
Resources res = itemView.getContext().getResources();
|
||||||
|
@ -136,7 +137,7 @@ public class hintAdapter extends RecyclerView.Adapter<hintAdapter.listViewHolder
|
||||||
mDrawable = Drawable.createFromXml(res, res.getXml(R.xml.ic_baseline_browser));
|
mDrawable = Drawable.createFromXml(res, res.getXml(R.xml.ic_baseline_browser));
|
||||||
mMoveURL.setVisibility(View.VISIBLE);
|
mMoveURL.setVisibility(View.VISIBLE);
|
||||||
mMoveURL.setOnTouchListener(listViewHolder.this);
|
mMoveURL.setOnTouchListener(listViewHolder.this);
|
||||||
mHintWebIcon.setImageDrawable(mDrawable);
|
pHintWebIconImage.setImageDrawable(mDrawable);
|
||||||
} catch (Exception ignored) {
|
} catch (Exception ignored) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -189,9 +190,9 @@ public class hintAdapter extends RecyclerView.Adapter<hintAdapter.listViewHolder
|
||||||
mpHintListener.setOnTouchListener(listViewHolder.this);
|
mpHintListener.setOnTouchListener(listViewHolder.this);
|
||||||
|
|
||||||
if(mURLLink.contains("genesishiddentechnologies.com") || mURLLink.contains("genesis.onion")){
|
if(mURLLink.contains("genesishiddentechnologies.com") || mURLLink.contains("genesis.onion")){
|
||||||
mHintWebIcon.setImageTintList(null);
|
pHintWebIconImage.setImageTintList(null);
|
||||||
mHintWebIcon.setImageDrawable(itemView.getResources().getDrawable(R.drawable.genesis));
|
pHintWebIconImage.setImageDrawable(itemView.getResources().getDrawable(R.drawable.genesis));
|
||||||
mPastWebIcon.put(getLayoutPosition(),mHintWebIcon.getDrawable());
|
mPastWebIcon.put(getLayoutPosition(),pHintWebIconImage.getDrawable());
|
||||||
}else
|
}else
|
||||||
{
|
{
|
||||||
String mURLPast = mURLLink;
|
String mURLPast = mURLLink;
|
||||||
|
@ -204,9 +205,9 @@ public class hintAdapter extends RecyclerView.Adapter<hintAdapter.listViewHolder
|
||||||
{
|
{
|
||||||
if(mHindTypeIconTemp.getDrawable() != null){
|
if(mHindTypeIconTemp.getDrawable() != null){
|
||||||
if(mURLPast.equals(mPastIconFlicker.get(getLayoutPosition()))){
|
if(mURLPast.equals(mPastIconFlicker.get(getLayoutPosition()))){
|
||||||
mHintWebIcon.setImageTintList(null);
|
pHintWebIconImage.setImageTintList(null);
|
||||||
mHintWebIcon.setImageDrawable(mHindTypeIconTemp.getDrawable());
|
pHintWebIconImage.setImageDrawable(mHindTypeIconTemp.getDrawable());
|
||||||
mPastWebIcon.put(getLayoutPosition(),mHintWebIcon.getDrawable());
|
mPastWebIcon.put(getLayoutPosition(),pHintWebIconImage.getDrawable());
|
||||||
}
|
}
|
||||||
if(getLayoutPosition() == 1){
|
if(getLayoutPosition() == 1){
|
||||||
Log.i("FUSSSS1111","FUSSSS4444");
|
Log.i("FUSSSS1111","FUSSSS4444");
|
||||||
|
|
|
@ -1,14 +1,17 @@
|
||||||
package com.darkweb.genesissearchengine.appManager.homeManager.homeController;
|
package com.darkweb.genesissearchengine.appManager.homeManager.homeController;
|
||||||
|
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
|
import android.app.ActivityManager;
|
||||||
import android.app.DownloadManager;
|
import android.app.DownloadManager;
|
||||||
import android.content.ActivityNotFoundException;
|
import android.content.ActivityNotFoundException;
|
||||||
import android.content.BroadcastReceiver;
|
import android.content.BroadcastReceiver;
|
||||||
import android.content.ComponentCallbacks2;
|
import android.content.ComponentCallbacks2;
|
||||||
|
import android.content.ComponentName;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.IntentFilter;
|
import android.content.IntentFilter;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
|
import android.content.pm.PackageManager;
|
||||||
import android.content.res.Configuration;
|
import android.content.res.Configuration;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
import android.database.Cursor;
|
import android.database.Cursor;
|
||||||
|
@ -44,7 +47,7 @@ import androidx.fragment.app.FragmentContainerView;
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
||||||
import com.darkweb.genesissearchengine.appManager.bookmarkManager.BookmarkSettings.bookmarkSettingController;
|
import com.darkweb.genesissearchengine.appManager.bookmarkManager.bookmarkSettings.bookmarkSettingController;
|
||||||
import com.darkweb.genesissearchengine.appManager.bookmarkManager.bookmarkHome.bookmarkController;
|
import com.darkweb.genesissearchengine.appManager.bookmarkManager.bookmarkHome.bookmarkController;
|
||||||
import com.darkweb.genesissearchengine.appManager.historyManager.historyController;
|
import com.darkweb.genesissearchengine.appManager.historyManager.historyController;
|
||||||
import com.darkweb.genesissearchengine.dataManager.models.historyRowModel;
|
import com.darkweb.genesissearchengine.dataManager.models.historyRowModel;
|
||||||
|
@ -52,7 +55,6 @@ import com.darkweb.genesissearchengine.appManager.homeManager.geckoManager.Neste
|
||||||
import com.darkweb.genesissearchengine.appManager.homeManager.geckoManager.*;
|
import com.darkweb.genesissearchengine.appManager.homeManager.geckoManager.*;
|
||||||
import com.darkweb.genesissearchengine.appManager.homeManager.geckoManager.geckoSession;
|
import com.darkweb.genesissearchengine.appManager.homeManager.geckoManager.geckoSession;
|
||||||
import com.darkweb.genesissearchengine.appManager.homeManager.hintManager.hintAdapter;
|
import com.darkweb.genesissearchengine.appManager.homeManager.hintManager.hintAdapter;
|
||||||
import com.darkweb.genesissearchengine.appManager.landingManager.landingController;
|
|
||||||
import com.darkweb.genesissearchengine.appManager.languageManager.languageController;
|
import com.darkweb.genesissearchengine.appManager.languageManager.languageController;
|
||||||
import com.darkweb.genesissearchengine.appManager.orbotLogManager.orbotLogController;
|
import com.darkweb.genesissearchengine.appManager.orbotLogManager.orbotLogController;
|
||||||
import com.darkweb.genesissearchengine.appManager.orbotManager.orbotController;
|
import com.darkweb.genesissearchengine.appManager.orbotManager.orbotController;
|
||||||
|
@ -75,7 +77,8 @@ import com.darkweb.genesissearchengine.libs.trueTime.trueTime;
|
||||||
import com.darkweb.genesissearchengine.pluginManager.pluginController;
|
import com.darkweb.genesissearchengine.pluginManager.pluginController;
|
||||||
import com.darkweb.genesissearchengine.pluginManager.pluginEnums;
|
import com.darkweb.genesissearchengine.pluginManager.pluginEnums;
|
||||||
import com.example.myapplication.R;
|
import com.example.myapplication.R;
|
||||||
import com.mopub.mobileads.MoPubView;
|
import com.google.android.gms.ads.AdView;
|
||||||
|
import com.widget.Genesis.widgetManager.widgetController;
|
||||||
|
|
||||||
import org.mozilla.geckoview.ContentBlocking;
|
import org.mozilla.geckoview.ContentBlocking;
|
||||||
import org.mozilla.geckoview.GeckoResult;
|
import org.mozilla.geckoview.GeckoResult;
|
||||||
|
@ -100,17 +103,22 @@ import mozilla.components.support.utils.DownloadUtils;
|
||||||
import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
|
import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
|
||||||
import static android.content.Intent.FLAG_ACTIVITY_NO_ANIMATION;
|
import static android.content.Intent.FLAG_ACTIVITY_NO_ANIMATION;
|
||||||
import static androidx.appcompat.app.AppCompatDelegate.setDefaultNightMode;
|
import static androidx.appcompat.app.AppCompatDelegate.setDefaultNightMode;
|
||||||
|
import static com.darkweb.genesissearchengine.constants.constants.CONST_EXTERNAL_SHORTCUT_COMMAND_ERASE_OPEN;
|
||||||
|
import static com.darkweb.genesissearchengine.constants.constants.CONST_EXTERNAL_SHORTCUT_COMMAND_RESTART;
|
||||||
import static com.darkweb.genesissearchengine.constants.constants.CONST_GENESIS_HELP_URL_CACHE;
|
import static com.darkweb.genesissearchengine.constants.constants.CONST_GENESIS_HELP_URL_CACHE;
|
||||||
import static com.darkweb.genesissearchengine.constants.constants.CONST_GENESIS_HELP_URL_CACHE_DARK;
|
import static com.darkweb.genesissearchengine.constants.constants.CONST_GENESIS_HELP_URL_CACHE_DARK;
|
||||||
import static com.darkweb.genesissearchengine.constants.constants.CONST_GENESIS_URL_CACHED;
|
import static com.darkweb.genesissearchengine.constants.constants.CONST_GENESIS_URL_CACHED;
|
||||||
import static com.darkweb.genesissearchengine.constants.constants.CONST_GENESIS_URL_CACHED_DARK;
|
import static com.darkweb.genesissearchengine.constants.constants.CONST_GENESIS_URL_CACHED_DARK;
|
||||||
import static com.darkweb.genesissearchengine.constants.enums.etype.GECKO_SCROLL_DOWN;
|
import static com.darkweb.genesissearchengine.constants.enums.etype.GECKO_SCROLL_DOWN;
|
||||||
import static com.darkweb.genesissearchengine.constants.enums.etype.GECKO_SCROLL_UP_MOVE;
|
import static com.darkweb.genesissearchengine.constants.enums.etype.GECKO_SCROLL_UP_MOVE;
|
||||||
|
import static com.darkweb.genesissearchengine.constants.enums.etype.M_HOME_BUTTON_PRESSED;
|
||||||
import static com.darkweb.genesissearchengine.constants.enums.etype.M_INITIALIZE_TAB_LINK;
|
import static com.darkweb.genesissearchengine.constants.enums.etype.M_INITIALIZE_TAB_LINK;
|
||||||
import static com.darkweb.genesissearchengine.constants.enums.etype.M_INITIALIZE_TAB_SINGLE;
|
import static com.darkweb.genesissearchengine.constants.enums.etype.M_INITIALIZE_TAB_SINGLE;
|
||||||
import static com.darkweb.genesissearchengine.constants.enums.etype.M_NEW_LINK_IN_NEW_TAB;
|
import static com.darkweb.genesissearchengine.constants.enums.etype.M_NEW_LINK_IN_NEW_TAB;
|
||||||
import static com.darkweb.genesissearchengine.constants.enums.etype.WAS_SCROLL_CHANGED;
|
import static com.darkweb.genesissearchengine.constants.enums.etype.WAS_SCROLL_CHANGED;
|
||||||
import static com.darkweb.genesissearchengine.constants.enums.etype.open_new_tab;
|
import static com.darkweb.genesissearchengine.constants.enums.etype.open_new_tab;
|
||||||
|
import static com.darkweb.genesissearchengine.constants.keys.EXTERNAL_SHORTCUT_COMMAND;
|
||||||
|
import static com.darkweb.genesissearchengine.constants.keys.EXTERNAL_SHORTCUT_COMMAND_NAVIGATE;
|
||||||
import static com.darkweb.genesissearchengine.constants.keys.M_ACTIVITY_RESPONSE;
|
import static com.darkweb.genesissearchengine.constants.keys.M_ACTIVITY_RESPONSE;
|
||||||
import static com.darkweb.genesissearchengine.constants.responses.BOOKMARK_SETTING_CONTROLLER_SHOW_DELETE_ALERT;
|
import static com.darkweb.genesissearchengine.constants.responses.BOOKMARK_SETTING_CONTROLLER_SHOW_DELETE_ALERT;
|
||||||
import static com.darkweb.genesissearchengine.constants.responses.BOOKMARK_SETTING_CONTROLLER_SHOW_SUCCESS_ALERT;
|
import static com.darkweb.genesissearchengine.constants.responses.BOOKMARK_SETTING_CONTROLLER_SHOW_SUCCESS_ALERT;
|
||||||
|
@ -140,7 +148,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
||||||
private ImageView mLoadingIcon;
|
private ImageView mLoadingIcon;
|
||||||
private ImageView mBlocker;
|
private ImageView mBlocker;
|
||||||
private TextView mLoadingText;
|
private TextView mLoadingText;
|
||||||
private MoPubView mBannerAds = null;
|
private LinearLayout mBannerAds = null;
|
||||||
private ImageButton mGatewaySplash;
|
private ImageButton mGatewaySplash;
|
||||||
private ImageButton mPanicButton;
|
private ImageButton mPanicButton;
|
||||||
private ImageButton mPanicButtonLandscape;
|
private ImageButton mPanicButtonLandscape;
|
||||||
|
@ -211,6 +219,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
||||||
helperMethod.updateResources(this, status.mSystemLocale.getLanguage());
|
helperMethod.updateResources(this, status.mSystemLocale.getLanguage());
|
||||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||||
|
|
||||||
|
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
setContentView(R.layout.home_view);
|
setContentView(R.layout.home_view);
|
||||||
|
|
||||||
|
@ -229,7 +238,28 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
||||||
initWidget();
|
initWidget();
|
||||||
initSuggestionView(new ArrayList<>(), strings.GENERIC_EMPTY_STR);
|
initSuggestionView(new ArrayList<>(), strings.GENERIC_EMPTY_STR);
|
||||||
status.sSettingIsAppRunning = true;
|
status.sSettingIsAppRunning = true;
|
||||||
org.torproject.android.service.util.Prefs.setContext(activityContextManager.getInstance().getHomeController());
|
initPreFixes();
|
||||||
|
initBundle();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void initBundle(){
|
||||||
|
if(getIntent().getExtras()!=null){
|
||||||
|
String mShortcutCommand = getIntent().getExtras().getString(EXTERNAL_SHORTCUT_COMMAND);
|
||||||
|
String mShortcutCommandNavigate = getIntent().getExtras().getString(EXTERNAL_SHORTCUT_COMMAND_NAVIGATE);
|
||||||
|
if(mShortcutCommand!=null){
|
||||||
|
if(mShortcutCommand.equals(CONST_EXTERNAL_SHORTCUT_COMMAND_ERASE_OPEN) || mShortcutCommand.equals(CONST_EXTERNAL_SHORTCUT_COMMAND_RESTART)){
|
||||||
|
onStartApplication(null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(mShortcutCommandNavigate!=null){
|
||||||
|
status.sExternalWebsite = mShortcutCommandNavigate;
|
||||||
|
onStartApplication(null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isSplashScreenLoading(){
|
||||||
|
return mSplashScreen.getAlpha()!=0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void initWidget(){
|
public void initWidget(){
|
||||||
|
@ -340,6 +370,10 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void onUpdateBannerAdvert(){
|
||||||
|
mHomeViewController.updateBannerAdvertStatus(true, (boolean)pluginController.getInstance().onAdsInvoke(null, pluginEnums.eAdManager.M_IS_ADVERT_LOADED));
|
||||||
|
}
|
||||||
|
|
||||||
public void onLoadTabOnResume(){
|
public void onLoadTabOnResume(){
|
||||||
Object mTempModel = dataController.getInstance().invokeTab(dataEnums.eTabCommands.GET_CURRENT_TAB, null);
|
Object mTempModel = dataController.getInstance().invokeTab(dataEnums.eTabCommands.GET_CURRENT_TAB, null);
|
||||||
if(mTempModel!=null){
|
if(mTempModel!=null){
|
||||||
|
@ -409,9 +443,6 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
||||||
}
|
}
|
||||||
|
|
||||||
public void initLandingPage(){
|
public void initLandingPage(){
|
||||||
if(!status.sLandingPageStatus){
|
|
||||||
helperMethod.openActivity(landingController.class, constants.CONST_LIST_HISTORY, homeController.this,false);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void initializeAppModel()
|
public void initializeAppModel()
|
||||||
|
@ -431,7 +462,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
||||||
mWebViewContainer = findViewById(R.id.pWebLayoutView);
|
mWebViewContainer = findViewById(R.id.pWebLayoutView);
|
||||||
mTopLayout = findViewById(R.id.pTopLayout);
|
mTopLayout = findViewById(R.id.pTopLayout);
|
||||||
mLoadingIcon = findViewById(R.id.pLoadingIcon);
|
mLoadingIcon = findViewById(R.id.pLoadingIcon);
|
||||||
mBannerAds = findViewById(R.id.pAdView);
|
mBannerAds = findViewById(R.id.adView);
|
||||||
mGatewaySplash = findViewById(R.id.pSettings);
|
mGatewaySplash = findViewById(R.id.pSettings);
|
||||||
mTopBar = findViewById(R.id.pTopbar);
|
mTopBar = findViewById(R.id.pTopbar);
|
||||||
mBackSplash = findViewById(R.id.pTopImage);
|
mBackSplash = findViewById(R.id.pTopImage);
|
||||||
|
@ -442,7 +473,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
||||||
mFindCount = findViewById(R.id.pFindCount);
|
mFindCount = findViewById(R.id.pFindCount);
|
||||||
mVoiceInput = findViewById(R.id.pVoiceInput);
|
mVoiceInput = findViewById(R.id.pVoiceInput);
|
||||||
mMenu = findViewById(R.id.pMenu);
|
mMenu = findViewById(R.id.pMenu);
|
||||||
mBlocker = findViewById(R.id.pBlocker);
|
mBlocker = findViewById(R.id.pSecureRootBlocker);
|
||||||
mNestedScroll = findViewById(R.id.pNestedScroll);
|
mNestedScroll = findViewById(R.id.pNestedScroll);
|
||||||
mBlockerFullSceen = findViewById(R.id.pBlockerFullSceen);
|
mBlockerFullSceen = findViewById(R.id.pBlockerFullSceen);
|
||||||
mCopyright = findViewById(R.id.pCopyright);
|
mCopyright = findViewById(R.id.pCopyright);
|
||||||
|
@ -487,6 +518,15 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
||||||
|
|
||||||
public void initPreFixes() {
|
public void initPreFixes() {
|
||||||
try {
|
try {
|
||||||
|
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")){
|
||||||
|
PackageManager packageManager = getApplicationContext().getPackageManager();
|
||||||
|
packageManager.setComponentEnabledSetting(new ComponentName(getApplicationContext(), widgetController.class), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
|
||||||
|
}else {
|
||||||
|
PackageManager packageManager = getApplicationContext().getPackageManager();
|
||||||
|
packageManager.setComponentEnabledSetting(new ComponentName(getApplicationContext(), widgetController.class), PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
|
||||||
|
}
|
||||||
|
|
||||||
if(getIntent().getBooleanExtra("crash", false)){
|
if(getIntent().getBooleanExtra("crash", false)){
|
||||||
new Handler().postDelayed(() ->
|
new Handler().postDelayed(() ->
|
||||||
{
|
{
|
||||||
|
@ -577,6 +617,14 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
||||||
mGeckoClient.initialize(mGeckoView, new geckoViewCallback(), this,false);
|
mGeckoClient.initialize(mGeckoView, new geckoViewCallback(), this,false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void onExternalURLInvoke(String pData){
|
||||||
|
if(status.sSettingIsAppStarted){
|
||||||
|
onOpenLinkNewTab(pData);
|
||||||
|
}else {
|
||||||
|
status.sExternalWebsite = pData;
|
||||||
|
onStartApplication(null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void onLoadURL(String url){
|
public void onLoadURL(String url){
|
||||||
if(mGeckoView.getSession()!=null && !mGeckoView.getSession().isOpen()){
|
if(mGeckoView.getSession()!=null && !mGeckoView.getSession().isOpen()){
|
||||||
|
@ -588,6 +636,10 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
||||||
mGeckoClient.loadURL(url.replace("genesis.onion","genesishiddentechnologies.com"),mGeckoView, homeController.this);
|
mGeckoClient.loadURL(url.replace("genesis.onion","genesishiddentechnologies.com"),mGeckoView, homeController.this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getSecurityInfo(){
|
||||||
|
return mGeckoClient.getSecurityInfo();
|
||||||
|
}
|
||||||
|
|
||||||
public void onLoadTab(geckoSession mTempSession, boolean isSessionClosed, boolean pExpandAppBar, boolean pForced){
|
public void onLoadTab(geckoSession mTempSession, boolean isSessionClosed, boolean pExpandAppBar, boolean pForced){
|
||||||
|
|
||||||
if(!isSessionClosed){
|
if(!isSessionClosed){
|
||||||
|
@ -733,8 +785,10 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
||||||
@SuppressLint("ClickableViewAccessibility")
|
@SuppressLint("ClickableViewAccessibility")
|
||||||
@Override
|
@Override
|
||||||
protected void onDestroy() {
|
protected void onDestroy() {
|
||||||
|
pluginController.getInstance().onAdsInvoke(null, pluginEnums.eAdManager.M_DESTROY);
|
||||||
if(!status.sSettingIsAppStarted){
|
if(!status.sSettingIsAppStarted){
|
||||||
super.onDestroy();
|
super.onDestroy();
|
||||||
|
mGeckoClient.onClearAll();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -751,17 +805,30 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
||||||
// mGeckoView.onDestroy();
|
// mGeckoView.onDestroy();
|
||||||
|
|
||||||
unregisterReceiver(downloadStatus);
|
unregisterReceiver(downloadStatus);
|
||||||
|
activityContextManager.getInstance().getHomeController().onResetData();
|
||||||
|
|
||||||
super.onDestroy();
|
super.onDestroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean isMyServiceRunning(Class<?> serviceClass) {
|
||||||
|
ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
|
||||||
|
for (ActivityManager.RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
|
||||||
|
if (serviceClass.getName().equals(service.service.getClassName())) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
@RequiresApi(api = Build.VERSION_CODES.M)
|
@RequiresApi(api = Build.VERSION_CODES.M)
|
||||||
@SuppressLint("ClickableViewAccessibility")
|
@SuppressLint("ClickableViewAccessibility")
|
||||||
private void initializeLocalEventHandlers() {
|
private void initializeLocalEventHandlers() {
|
||||||
|
|
||||||
|
|
||||||
mSearchbar.setMovementMethod(null);
|
mSearchbar.setMovementMethod(null);
|
||||||
|
if(!isMyServiceRunning(activityStateManager.class)){
|
||||||
startService(new Intent(getBaseContext(), activityStateManager.class));
|
startService(new Intent(getBaseContext(), activityStateManager.class));
|
||||||
|
}
|
||||||
|
|
||||||
registerReceiver(downloadStatus,new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE));
|
registerReceiver(downloadStatus,new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE));
|
||||||
|
|
||||||
|
@ -1000,6 +1067,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
||||||
}, 250);
|
}, 250);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void onSuggestionMove(View view){
|
public void onSuggestionMove(View view){
|
||||||
String val = view.getTag().toString();
|
String val = view.getTag().toString();
|
||||||
mHomeViewController.onUpdateSearchBar(val,false,false, true);
|
mHomeViewController.onUpdateSearchBar(val,false,false, true);
|
||||||
|
@ -1009,7 +1077,8 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
||||||
pluginController.getInstance().onAdsInvoke(Collections.singletonList(this), pluginEnums.eAdManager.M_INITIALIZE_BANNER_ADS);
|
pluginController.getInstance().onAdsInvoke(Collections.singletonList(this), pluginEnums.eAdManager.M_INITIALIZE_BANNER_ADS);
|
||||||
mGeckoClient.getSession().setTheme(null);
|
mGeckoClient.getSession().setTheme(null);
|
||||||
mHomeViewController.onUpdateStatusBarTheme(mGeckoClient.getTheme(), true);
|
mHomeViewController.onUpdateStatusBarTheme(mGeckoClient.getTheme(), true);
|
||||||
onLoadURL(helperMethod.getDomainName(mHomeModel.getSearchEngine()));
|
|
||||||
|
mHomeViewController.onNewTabAnimation(Collections.singletonList(helperMethod.getDomainName(mHomeModel.getSearchEngine())), M_HOME_BUTTON_PRESSED);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*TAB CONTROLLER EVENTS*/
|
/*TAB CONTROLLER EVENTS*/
|
||||||
|
@ -1057,7 +1126,6 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
||||||
mGeckoView.getSession().setActive(true);
|
mGeckoView.getSession().setActive(true);
|
||||||
|
|
||||||
}else {
|
}else {
|
||||||
onLoadURL("about:blank");
|
|
||||||
mHomeViewController. onUpdateSearchBar(strings.HOME_BLANK_PAGE,false,true, false);
|
mHomeViewController. onUpdateSearchBar(strings.HOME_BLANK_PAGE,false,true, false);
|
||||||
mHomeViewController.onNewTab();
|
mHomeViewController.onNewTab();
|
||||||
}
|
}
|
||||||
|
@ -1071,7 +1139,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
||||||
mHomeViewController.progressBarReset();
|
mHomeViewController.progressBarReset();
|
||||||
mHomeViewController.onUpdateSearchBar(url,false,true, false);
|
mHomeViewController.onUpdateSearchBar(url,false,true, false);
|
||||||
mGeckoClient.loadURL(url, mGeckoView, homeController.this);
|
mGeckoClient.loadURL(url, mGeckoView, homeController.this);
|
||||||
|
Log.i("superman2222","superman2222");
|
||||||
if(isRemovable){
|
if(isRemovable){
|
||||||
mGeckoClient.setRemovableFromBackPressed(true);
|
mGeckoClient.setRemovableFromBackPressed(true);
|
||||||
}
|
}
|
||||||
|
@ -1331,11 +1399,13 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
||||||
mHomeViewController.onClearSelections(true);
|
mHomeViewController.onClearSelections(true);
|
||||||
mHomeViewController.onUpdateSearchBar(mGeckoClient.getSession().getCurrentURL(),false,true, true);
|
mHomeViewController.onUpdateSearchBar(mGeckoClient.getSession().getCurrentURL(),false,true, true);
|
||||||
|
|
||||||
//mHomeViewController.initTopBarPadding();
|
// mHomeViewController.initTopBarPadding();
|
||||||
//mHomeViewController.onSetBannerAdMargin(!mGeckoClient.isLoading(),(boolean)pluginController.getInstance().onAdsInvoke(null, pluginEnums.eAdManager.M_IS_ADVERT_LOADED)&&!!mGeckoClient.isLoading());
|
// mHomeViewController.onSetBannerAdMargin(!mGeckoClient.isLoading(),(boolean)pluginController.getInstance().onAdsInvoke(null, pluginEnums.eAdManager.M_IS_ADVERT_LOADED)&&!!mGeckoClient.isLoading());
|
||||||
|
|
||||||
mHomeViewController.expandTopBar(false, mGeckoView.getMaxY());
|
mHomeViewController.expandTopBar(false, mGeckoView.getMaxY());
|
||||||
status.sUIInteracted = true;
|
status.sUIInteracted = true;
|
||||||
|
mHomeViewController.initSearchEngineView();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1597,7 +1667,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
||||||
mGeckoClient.manualDownloadWithName(pURL,pPath,this);
|
mGeckoClient.manualDownloadWithName(pURL,pPath,this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public MoPubView getBannerAd()
|
public LinearLayout getBannerAd()
|
||||||
{
|
{
|
||||||
return mBannerAds;
|
return mBannerAds;
|
||||||
}
|
}
|
||||||
|
@ -1755,23 +1825,12 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
||||||
{
|
{
|
||||||
pluginController.getInstance().onOrbotInvoke(Collections.singletonList(status.mThemeApplying), pluginEnums.eOrbotManager.M_DESTROY);
|
pluginController.getInstance().onOrbotInvoke(Collections.singletonList(status.mThemeApplying), pluginEnums.eOrbotManager.M_DESTROY);
|
||||||
|
|
||||||
new Handler().postDelayed(() ->
|
finishAffinity();
|
||||||
{
|
overridePendingTransition(R.anim.popup_scale_in, R.anim.popup_scale_out);
|
||||||
|
activityContextManager.getInstance().getHomeController().onResetData();
|
||||||
|
mGeckoClient.onClearAll();
|
||||||
status.sSettingIsAppStarted = false;
|
status.sSettingIsAppStarted = false;
|
||||||
finishAndRemoveTask();
|
|
||||||
|
|
||||||
new Thread(){
|
|
||||||
public void run(){
|
|
||||||
try {
|
|
||||||
sleep(1000);
|
|
||||||
android.os.Process.killProcess(android.os.Process.myPid());
|
|
||||||
System.exit(1);
|
|
||||||
} catch (InterruptedException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}.start();
|
|
||||||
}, 100);
|
|
||||||
}
|
}
|
||||||
else if (menuId == R.id.pMenuFind)
|
else if (menuId == R.id.pMenuFind)
|
||||||
{
|
{
|
||||||
|
@ -1857,16 +1916,31 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
||||||
mHomeViewController.onUpdateStatusBarTheme(mGeckoClient.getTheme(), true);
|
mHomeViewController.onUpdateStatusBarTheme(mGeckoClient.getTheme(), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void onResetData(){
|
||||||
|
mGeckoClient.onClearAll();
|
||||||
|
}
|
||||||
|
|
||||||
public void onOrbotLog(View view) {
|
public void onOrbotLog(View view) {
|
||||||
mHomeViewController.closeMenu();
|
mHomeViewController.closeMenu();
|
||||||
helperMethod.openActivity(orbotLogController.class, constants.CONST_LIST_HISTORY, homeController.this,true);
|
helperMethod.openActivity(orbotLogController.class, constants.CONST_LIST_HISTORY, homeController.this,true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void panicExit(View view) {
|
public void panicExit(View view) {
|
||||||
|
mGeckoClient.onClearAll();
|
||||||
pluginController.getInstance().onMessageManagerInvoke(null, M_RESET);
|
pluginController.getInstance().onMessageManagerInvoke(null, M_RESET);
|
||||||
pluginController.getInstance().onMessageManagerInvoke(Collections.singletonList(homeController.this), M_PANIC_RESET);
|
pluginController.getInstance().onMessageManagerInvoke(Collections.singletonList(homeController.this), M_PANIC_RESET);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void quitApplication(){
|
||||||
|
pluginController.getInstance().onOrbotInvoke(Collections.singletonList(status.mThemeApplying), pluginEnums.eOrbotManager.M_DESTROY);
|
||||||
|
|
||||||
|
finishAffinity();
|
||||||
|
overridePendingTransition(R.anim.popup_scale_in, R.anim.popup_scale_out);
|
||||||
|
activityContextManager.getInstance().getHomeController().onResetData();
|
||||||
|
mGeckoClient.onClearAll();
|
||||||
|
status.sSettingIsAppStarted = false;
|
||||||
|
}
|
||||||
|
|
||||||
public void panicExitInvoked() {
|
public void panicExitInvoked() {
|
||||||
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_SEARCH_HISTORY,true));
|
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_SEARCH_HISTORY,true));
|
||||||
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_SEARCH_SUGGESTION,true));
|
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_SEARCH_SUGGESTION,true));
|
||||||
|
@ -1905,6 +1979,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
||||||
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.BRIDGE_ENABLES,false));
|
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.BRIDGE_ENABLES,false));
|
||||||
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_GATEWAY_MANUAL,false));
|
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_GATEWAY_MANUAL,false));
|
||||||
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_INSTALLED,false));
|
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_INSTALLED,false));
|
||||||
|
mGeckoClient.onClearAll();
|
||||||
|
|
||||||
|
|
||||||
dataController.getInstance().invokeTab(dataEnums.eTabCommands.M_CLEAR_TAB, null);
|
dataController.getInstance().invokeTab(dataEnums.eTabCommands.M_CLEAR_TAB, null);
|
||||||
|
@ -2033,6 +2108,10 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
||||||
else if(e_type.equals(M_INITIALIZE_TAB_SINGLE)){
|
else if(e_type.equals(M_INITIALIZE_TAB_SINGLE)){
|
||||||
initTabCount(enums.etype.ON_NEW_TAB_ANIMATION,data);
|
initTabCount(enums.etype.ON_NEW_TAB_ANIMATION,data);
|
||||||
}
|
}
|
||||||
|
else if(e_type.equals(M_HOME_BUTTON_PRESSED)){
|
||||||
|
onLoadURL((String) data.get(0));
|
||||||
|
initTabCount(null,data);
|
||||||
|
}
|
||||||
else if(e_type.equals(M_INITIALIZE_TAB_LINK)){
|
else if(e_type.equals(M_INITIALIZE_TAB_LINK)){
|
||||||
postNewLinkTabAnimation((String)data.get(0),false);
|
postNewLinkTabAnimation((String)data.get(0),false);
|
||||||
}
|
}
|
||||||
|
@ -2040,6 +2119,12 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
||||||
{
|
{
|
||||||
mHomeViewController.onSetBannerAdMargin((boolean)data.get(0),(boolean)pluginController.getInstance().onAdsInvoke(null, pluginEnums.eAdManager.M_IS_ADVERT_LOADED));
|
mHomeViewController.onSetBannerAdMargin((boolean)data.get(0),(boolean)pluginController.getInstance().onAdsInvoke(null, pluginEnums.eAdManager.M_IS_ADVERT_LOADED));
|
||||||
}
|
}
|
||||||
|
else if(e_type.equals(enums.etype.M_ON_BANNER_UPDATE)){
|
||||||
|
Object mStatus = pluginController.getInstance().onAdsInvoke(null, pluginEnums.eAdManager.M_IS_ADVERT_LOADED);
|
||||||
|
if(mStatus!=null){
|
||||||
|
mHomeViewController.updateBannerAdvertStatus(false, (boolean)mStatus);
|
||||||
|
}
|
||||||
|
}
|
||||||
else if(e_type.equals(enums.etype.M_GET_CURRENT_URL))
|
else if(e_type.equals(enums.etype.M_GET_CURRENT_URL))
|
||||||
{
|
{
|
||||||
if(mGeckoClient==null || mGeckoClient.getSession()==null){
|
if(mGeckoClient==null || mGeckoClient.getSession()==null){
|
||||||
|
|
|
@ -16,6 +16,7 @@ import android.graphics.drawable.Drawable;
|
||||||
import android.graphics.drawable.GradientDrawable;
|
import android.graphics.drawable.GradientDrawable;
|
||||||
import android.graphics.drawable.InsetDrawable;
|
import android.graphics.drawable.InsetDrawable;
|
||||||
import android.graphics.drawable.StateListDrawable;
|
import android.graphics.drawable.StateListDrawable;
|
||||||
|
import android.os.AsyncTask;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.Message;
|
import android.os.Message;
|
||||||
|
@ -46,9 +47,8 @@ import com.darkweb.genesissearchengine.libs.views.ColorAnimator;
|
||||||
import com.darkweb.genesissearchengine.eventObserver;
|
import com.darkweb.genesissearchengine.eventObserver;
|
||||||
import com.darkweb.genesissearchengine.helperManager.helperMethod;
|
import com.darkweb.genesissearchengine.helperManager.helperMethod;
|
||||||
import com.example.myapplication.R;
|
import com.example.myapplication.R;
|
||||||
|
import com.google.android.gms.ads.AdView;
|
||||||
import com.google.android.material.appbar.AppBarLayout;
|
import com.google.android.material.appbar.AppBarLayout;
|
||||||
import com.mopub.mobileads.MoPubView;
|
|
||||||
|
|
||||||
import org.mozilla.geckoview.GeckoView;
|
import org.mozilla.geckoview.GeckoView;
|
||||||
import org.torproject.android.service.wrapper.orbotLocalConstants;
|
import org.torproject.android.service.wrapper.orbotLocalConstants;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
@ -62,6 +62,7 @@ import static com.darkweb.genesissearchengine.constants.constants.CONST_GENESIS_
|
||||||
import static com.darkweb.genesissearchengine.constants.constants.CONST_GENESIS_URL_CACHED;
|
import static com.darkweb.genesissearchengine.constants.constants.CONST_GENESIS_URL_CACHED;
|
||||||
import static com.darkweb.genesissearchengine.constants.constants.CONST_GENESIS_URL_CACHED_DARK;
|
import static com.darkweb.genesissearchengine.constants.constants.CONST_GENESIS_URL_CACHED_DARK;
|
||||||
import static org.mozilla.geckoview.GeckoSessionSettings.USER_AGENT_MODE_DESKTOP;
|
import static org.mozilla.geckoview.GeckoSessionSettings.USER_AGENT_MODE_DESKTOP;
|
||||||
|
import static java.lang.Thread.sleep;
|
||||||
|
|
||||||
class homeViewController
|
class homeViewController
|
||||||
{
|
{
|
||||||
|
@ -76,7 +77,7 @@ class homeViewController
|
||||||
private editTextManager mSearchbar;
|
private editTextManager mSearchbar;
|
||||||
private ConstraintLayout mSplashScreen;
|
private ConstraintLayout mSplashScreen;
|
||||||
private TextView mLoadingText;
|
private TextView mLoadingText;
|
||||||
private com.mopub.mobileads.MoPubView mBannerAds = null;
|
private LinearLayout mBannerAds = null;
|
||||||
private Handler mUpdateUIHandler = null;
|
private Handler mUpdateUIHandler = null;
|
||||||
private ImageButton mGatewaySplash;
|
private ImageButton mGatewaySplash;
|
||||||
private LinearLayout mTopBar;
|
private LinearLayout mTopBar;
|
||||||
|
@ -120,7 +121,7 @@ class homeViewController
|
||||||
private Runnable mTabDialogRunnable = null;
|
private Runnable mTabDialogRunnable = null;
|
||||||
private boolean mIsTopBarExpanded = true;
|
private boolean mIsTopBarExpanded = true;
|
||||||
|
|
||||||
void initialization(eventObserver.eventListener event, AppCompatActivity context, Button mNewTab, ConstraintLayout webviewContainer, TextView loadingText, ProgressBar progressBar, editTextManager searchbar, ConstraintLayout splashScreen, ImageView loading, MoPubView banner_ads, ImageButton gateway_splash, LinearLayout top_bar, GeckoView gecko_view, ImageView backsplash, Button connect_button, View pFindBar, EditText pFindText, TextView pFindCount, androidx.constraintlayout.widget.ConstraintLayout pTopLayout, ImageButton pVoiceInput, ImageButton pMenu, androidx.core.widget.NestedScrollView pNestedScroll, ImageView pBlocker, ImageView pBlockerFullSceen, View mSearchEngineBar, TextView pCopyright, RecyclerView pHistListView, com.google.android.material.appbar.AppBarLayout pAppBar, ImageButton pOrbotLogManager, ConstraintLayout pInfoLandscape, ConstraintLayout pInfoPortrait, ProgressBar pProgressBarIndeterminate, FragmentContainerView pTabFragment, LinearLayout pTopBarContainer, ImageView pSearchLock, View pPopupLoadNewTab, ImageView pTopBarHider, ImageView pNewTabBlocker, CoordinatorLayout mCoordinatorLayout, ImageView pImageDivider, ImageButton pPanicButton, ImageView pGenesisLogo, ImageButton pPanicButtonLandscape){
|
void initialization(eventObserver.eventListener event, AppCompatActivity context, Button mNewTab, ConstraintLayout webviewContainer, TextView loadingText, ProgressBar progressBar, editTextManager searchbar, ConstraintLayout splashScreen, ImageView loading, LinearLayout banner_ads, ImageButton gateway_splash, LinearLayout top_bar, GeckoView gecko_view, ImageView backsplash, Button connect_button, View pFindBar, EditText pFindText, TextView pFindCount, androidx.constraintlayout.widget.ConstraintLayout pTopLayout, ImageButton pVoiceInput, ImageButton pMenu, androidx.core.widget.NestedScrollView pNestedScroll, ImageView pBlocker, ImageView pBlockerFullSceen, View mSearchEngineBar, TextView pCopyright, RecyclerView pHistListView, com.google.android.material.appbar.AppBarLayout pAppBar, ImageButton pOrbotLogManager, ConstraintLayout pInfoLandscape, ConstraintLayout pInfoPortrait, ProgressBar pProgressBarIndeterminate, FragmentContainerView pTabFragment, LinearLayout pTopBarContainer, ImageView pSearchLock, View pPopupLoadNewTab, ImageView pTopBarHider, ImageView pNewTabBlocker, CoordinatorLayout mCoordinatorLayout, ImageView pImageDivider, ImageButton pPanicButton, ImageView pGenesisLogo, ImageButton pPanicButtonLandscape){
|
||||||
this.mContext = context;
|
this.mContext = context;
|
||||||
this.mProgressBar = progressBar;
|
this.mProgressBar = progressBar;
|
||||||
this.mSearchbar = searchbar;
|
this.mSearchbar = searchbar;
|
||||||
|
@ -162,6 +163,7 @@ class homeViewController
|
||||||
this.mPanicButton = pPanicButton;
|
this.mPanicButton = pPanicButton;
|
||||||
this.mGenesisLogo = pGenesisLogo;
|
this.mGenesisLogo = pGenesisLogo;
|
||||||
this.mPanicButtonLandscape = pPanicButtonLandscape;
|
this.mPanicButtonLandscape = pPanicButtonLandscape;
|
||||||
|
this.mLogHandler = new LogHandler();
|
||||||
|
|
||||||
initSplashScreen();
|
initSplashScreen();
|
||||||
createUpdateUiHandler();
|
createUpdateUiHandler();
|
||||||
|
@ -216,7 +218,22 @@ class homeViewController
|
||||||
mGenesisLogo.setLayoutParams(newLayoutParams);
|
mGenesisLogo.setLayoutParams(newLayoutParams);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
initSearchEngineView();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void initSearchEngineView(){
|
||||||
|
ConstraintLayout.LayoutParams layoutParams = (ConstraintLayout.LayoutParams) mSearchEngineBar.getLayoutParams();
|
||||||
|
if(isLandscape){
|
||||||
|
layoutParams.setMargins(0, helperMethod.pxFromDp(60), 0, 0);
|
||||||
|
}else {
|
||||||
|
Object mAdvertLoaded = mEvent.invokeObserver(null, enums.etype.M_ADVERT_LOADED);
|
||||||
|
if(mAdvertLoaded!=null && (boolean)mAdvertLoaded && mBannerAds.getVisibility() == View.VISIBLE){
|
||||||
|
layoutParams.setMargins(0, mBannerAds.getHeight() + helperMethod.pxFromDp(60), 0, 0);
|
||||||
|
}else {
|
||||||
|
layoutParams.setMargins(0, helperMethod.pxFromDp(60), 0, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mSearchEngineBar.setLayoutParams(layoutParams);
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressLint("WrongConstant")
|
@SuppressLint("WrongConstant")
|
||||||
|
@ -275,8 +292,6 @@ class homeViewController
|
||||||
|
|
||||||
public void onShowTabContainer(){
|
public void onShowTabContainer(){
|
||||||
if(mTabFragment.getAlpha()==0 || mTabFragment.getAlpha()==1){
|
if(mTabFragment.getAlpha()==0 || mTabFragment.getAlpha()==1){
|
||||||
|
|
||||||
onUpdateStatusBarTheme(null, false);
|
|
||||||
mTabFragment.animate().cancel();
|
mTabFragment.animate().cancel();
|
||||||
mTabFragment.setAlpha(0);
|
mTabFragment.setAlpha(0);
|
||||||
mTabFragment.setVisibility(View.VISIBLE);
|
mTabFragment.setVisibility(View.VISIBLE);
|
||||||
|
@ -474,7 +489,7 @@ class homeViewController
|
||||||
}
|
}
|
||||||
|
|
||||||
public void initStatusBarColor(boolean mInstant) {
|
public void initStatusBarColor(boolean mInstant) {
|
||||||
int mDelay = 2000;
|
int mDelay = 1500;
|
||||||
if(status.mThemeApplying || mInstant){
|
if(status.mThemeApplying || mInstant){
|
||||||
mDelay = 0;
|
mDelay = 0;
|
||||||
}
|
}
|
||||||
|
@ -590,19 +605,17 @@ class homeViewController
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void initProxyLoading(Callable<String> logs){
|
private LogHandler mLogHandler;
|
||||||
this.mLogs = logs;
|
@SuppressLint("StaticFieldLeak")
|
||||||
|
class LogHandler extends AsyncTask<Void, Integer, Void> {
|
||||||
if(mSplashScreen.getVisibility()==View.VISIBLE){
|
protected Void doInBackground(Void...arg0) {
|
||||||
new Thread(){
|
|
||||||
public void run(){
|
|
||||||
AppCompatActivity temp_context = mContext;
|
AppCompatActivity temp_context = mContext;
|
||||||
int mCounter = 0;
|
int mCounter = 0;
|
||||||
int mCounterInternet = 0;
|
int mCounterInternet = 0;
|
||||||
while (!orbotLocalConstants.mIsTorInitialized || !orbotLocalConstants.mNetworkState){
|
while (!orbotLocalConstants.mIsTorInitialized || !orbotLocalConstants.mNetworkState){
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
boolean mFastConnect = !status.sRestoreTabs && status.sAppInstalled && status.sSettingSearchStatus.equals(constants.CONST_BACKEND_GENESIS_URL) && !status.sBridgeStatus;
|
boolean mFastConnect = !status.sRestoreTabs && status.sAppInstalled && status.sSettingSearchStatus.equals(constants.CONST_BACKEND_GENESIS_URL) && !status.sBridgeStatus && status.sExternalWebsite.equals(strings.GENERIC_EMPTY_STR);
|
||||||
if(mFastConnect){
|
if(mFastConnect){
|
||||||
sleep(1000);
|
sleep(1000);
|
||||||
if(orbotLocalConstants.mNetworkState){
|
if(orbotLocalConstants.mNetworkState){
|
||||||
|
@ -633,7 +646,7 @@ class homeViewController
|
||||||
|
|
||||||
mEvent.invokeObserver(Collections.singletonList(status.sSettingSearchStatus), enums.etype.recheck_orbot);
|
mEvent.invokeObserver(Collections.singletonList(status.sSettingSearchStatus), enums.etype.recheck_orbot);
|
||||||
if(temp_context.isDestroyed()){
|
if(temp_context.isDestroyed()){
|
||||||
return;
|
return null;
|
||||||
}
|
}
|
||||||
startPostTask(messages.MESSAGE_UPDATE_LOADING_TEXT);
|
startPostTask(messages.MESSAGE_UPDATE_LOADING_TEXT);
|
||||||
}
|
}
|
||||||
|
@ -652,8 +665,15 @@ class homeViewController
|
||||||
mEvent.invokeObserver(null, enums.etype.ON_LOAD_TAB_ON_RESUME);
|
mEvent.invokeObserver(null, enums.etype.ON_LOAD_TAB_ON_RESUME);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
}.start();
|
}
|
||||||
|
|
||||||
|
void initProxyLoading(Callable<String> logs){
|
||||||
|
this.mLogs = logs;
|
||||||
|
|
||||||
|
if(mSplashScreen.getVisibility()==View.VISIBLE){
|
||||||
|
this.mLogHandler.execute();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -679,6 +699,7 @@ class homeViewController
|
||||||
private boolean mIsAnimating = false;
|
private boolean mIsAnimating = false;
|
||||||
public void splashScreenDisable(){
|
public void splashScreenDisable(){
|
||||||
mTopBar.setAlpha(1);
|
mTopBar.setAlpha(1);
|
||||||
|
mGeckoView.setVisibility(View.VISIBLE);
|
||||||
|
|
||||||
if(mSplashScreen.getAlpha()==1){
|
if(mSplashScreen.getAlpha()==1){
|
||||||
if(!mIsAnimating){
|
if(!mIsAnimating){
|
||||||
|
@ -803,13 +824,14 @@ class homeViewController
|
||||||
helperMethod.hideKeyboard(mContext);
|
helperMethod.hideKeyboard(mContext);
|
||||||
popupWindow.setHeight(height);
|
popupWindow.setHeight(height);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(status.sSettingLanguageRegion.equals("Ur") || status.sSettingLanguage.equals("default") && status.mSystemLocale.getLanguage().equals("ur")){
|
if(status.sSettingLanguageRegion.equals("Ur") || status.sSettingLanguage.equals("default") && status.mSystemLocale.getLanguage().equals("ur")){
|
||||||
popupWindow.showAtLocation(parent, Gravity.TOP|Gravity.START,0,0);
|
popupWindow.showAtLocation(parent, Gravity.TOP|Gravity.START,0,0);
|
||||||
}else {
|
}else {
|
||||||
popupWindow.showAtLocation(parent, Gravity.TOP|Gravity.END,0,0);
|
popupWindow.showAtLocation(parent, Gravity.TOP|Gravity.END,0,0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ScrollView mScrollView = popupView.findViewById(R.id.pScrollView);
|
||||||
ImageButton bookmark = popupView.findViewById(R.id.menu23);
|
ImageButton bookmark = popupView.findViewById(R.id.menu23);
|
||||||
ImageButton back = popupView.findViewById(R.id.menu22);
|
ImageButton back = popupView.findViewById(R.id.menu22);
|
||||||
ImageButton close = popupView.findViewById(R.id.menu20);
|
ImageButton close = popupView.findViewById(R.id.menu20);
|
||||||
|
@ -828,6 +850,19 @@ class homeViewController
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ConstraintLayout.LayoutParams layoutParams = (ConstraintLayout.LayoutParams) mScrollView.getLayoutParams();
|
||||||
|
if(isLandscape){
|
||||||
|
layoutParams.setMargins(mScrollView.getLeft(), helperMethod.pxFromDp(7), mScrollView.getRight(), helperMethod.pxFromDp(10));
|
||||||
|
}else {
|
||||||
|
Object mAdvertLoaded = mEvent.invokeObserver(null, enums.etype.M_ADVERT_LOADED);
|
||||||
|
if(mAdvertLoaded!=null && (boolean)mAdvertLoaded){
|
||||||
|
layoutParams.setMargins(mScrollView.getLeft(), mBannerAds.getHeight(), mScrollView.getRight(), helperMethod.pxFromDp(30));
|
||||||
|
}else {
|
||||||
|
layoutParams.setMargins(mScrollView.getLeft(), helperMethod.pxFromDp(7), mScrollView.getRight(), helperMethod.pxFromDp(30));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mScrollView.setLayoutParams(layoutParams);
|
||||||
|
|
||||||
String mExtention = helperMethod.getMimeType(mURL, mContext);
|
String mExtention = helperMethod.getMimeType(mURL, mContext);
|
||||||
if(!mURL.startsWith("data") && !mURL.startsWith("blob") && (mExtention == null || mExtention.equals("application/x-msdos-program") || mExtention.equals("text/html") || mExtention.equals("application/vnd.ms-htmlhelp") || mExtention.equals("application/vnd.sun.xml.writer") || mExtention.equals("application/vnd.sun.xml.writer.global") || mExtention.equals("application/vnd.sun.xml.writer.template") || mExtention.equals("application/xhtml+xml"))){
|
if(!mURL.startsWith("data") && !mURL.startsWith("blob") && (mExtention == null || mExtention.equals("application/x-msdos-program") || mExtention.equals("text/html") || mExtention.equals("application/vnd.ms-htmlhelp") || mExtention.equals("application/vnd.sun.xml.writer") || mExtention.equals("application/vnd.sun.xml.writer.global") || mExtention.equals("application/vnd.sun.xml.writer.template") || mExtention.equals("application/xhtml+xml"))){
|
||||||
mDownload.setEnabled(false);
|
mDownload.setEnabled(false);
|
||||||
|
@ -944,12 +979,16 @@ class homeViewController
|
||||||
}
|
}
|
||||||
onSetBannerAdMargin(false,true);
|
onSetBannerAdMargin(false,true);
|
||||||
}
|
}
|
||||||
|
initSearchEngineView();
|
||||||
}
|
}
|
||||||
|
|
||||||
void removeBanner(){
|
void removeBanner(){
|
||||||
mBannerAds.setVisibility(View.GONE);
|
// if(isLandscape){
|
||||||
mWebviewContainer.setPadding(0,0,0,0);
|
// mBannerAds.setVisibility(View.GONE);
|
||||||
onFullScreen(false);
|
// }else {
|
||||||
|
// mEvent.invokeObserver(null, enums.etype.M_ON_BANNER_UPDATE);
|
||||||
|
// }
|
||||||
|
// onFullScreen(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Handler searchBarUpdateHandler = new Handler();
|
private Handler searchBarUpdateHandler = new Handler();
|
||||||
|
@ -1053,16 +1092,16 @@ class homeViewController
|
||||||
mSearchbar.setHintTextColor(ColorUtils.blendARGB(helperMethod.invertedShadeColor(mColor,0.10f), Color.BLACK, 0.2f));
|
mSearchbar.setHintTextColor(ColorUtils.blendARGB(helperMethod.invertedShadeColor(mColor,0.10f), Color.BLACK, 0.2f));
|
||||||
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||||
mContext.getWindow().setStatusBarColor(Color.parseColor(pTheme));
|
//mContext.getWindow().setStatusBarColor(Color.parseColor(pTheme));
|
||||||
}else {
|
}else {
|
||||||
mContext.getWindow().setStatusBarColor(ContextCompat.getColor(mContext, R.color.landing_ease_blue));
|
//mContext.getWindow().setStatusBarColor(ContextCompat.getColor(mContext, R.color.landing_ease_blue));
|
||||||
}
|
}
|
||||||
|
|
||||||
if(helperMethod.isColorDark(mColor)){
|
if(helperMethod.isColorDark(mColor)){
|
||||||
mContext.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
|
//mContext.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
|
||||||
}else {
|
}else {
|
||||||
View decorView = mContext.getWindow().getDecorView(); //set status background black
|
//View decorView = mContext.getWindow().getDecorView(); //set status background black
|
||||||
decorView.setSystemUiVisibility(decorView.getSystemUiVisibility() & ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
|
//decorView.setSystemUiVisibility(decorView.getSystemUiVisibility() & ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
|
||||||
}
|
}
|
||||||
mTopBarHider.setBackgroundColor(mColor);
|
mTopBarHider.setBackgroundColor(mColor);
|
||||||
}
|
}
|
||||||
|
@ -1071,10 +1110,10 @@ class homeViewController
|
||||||
mTopBar.setBackground(ContextCompat.getDrawable(mContext, R.color.c_background));
|
mTopBar.setBackground(ContextCompat.getDrawable(mContext, R.color.c_background));
|
||||||
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||||
mContext.getWindow().setStatusBarColor(ContextCompat.getColor(mContext, R.color.c_background));
|
//mContext.getWindow().setStatusBarColor(ContextCompat.getColor(mContext, R.color.c_background));
|
||||||
}else {
|
}else {
|
||||||
mContext.getWindow().setStatusBarColor(mContext.getResources().getColor(R.color.blue_dark));
|
//mContext.getWindow().setStatusBarColor(mContext.getResources().getColor(R.color.blue_dark));
|
||||||
mContext.getWindow().setStatusBarColor(ContextCompat.getColor(mContext, R.color.landing_ease_blue));
|
//mContext.getWindow().setStatusBarColor(ContextCompat.getColor(mContext, R.color.landing_ease_blue));
|
||||||
}
|
}
|
||||||
|
|
||||||
GradientDrawable gradientDrawable1 = new GradientDrawable();
|
GradientDrawable gradientDrawable1 = new GradientDrawable();
|
||||||
|
@ -1106,10 +1145,10 @@ class homeViewController
|
||||||
}
|
}
|
||||||
|
|
||||||
if(status.sTheme != enums.Theme.THEME_DARK || (status.sDefaultNightMode && status.sTheme != enums.Theme.THEME_DEFAULT)){
|
if(status.sTheme != enums.Theme.THEME_DARK || (status.sDefaultNightMode && status.sTheme != enums.Theme.THEME_DEFAULT)){
|
||||||
mContext.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
|
//mContext.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
|
||||||
}else {
|
}else {
|
||||||
View decorView = mContext.getWindow().getDecorView();
|
//View decorView = mContext.getWindow().getDecorView();
|
||||||
decorView.setSystemUiVisibility(decorView.getSystemUiVisibility() & ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
|
//decorView.setSystemUiVisibility(decorView.getSystemUiVisibility() & ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
|
||||||
}
|
}
|
||||||
|
|
||||||
mTopBarHider.setBackground(ContextCompat.getDrawable(mContext, R.color.c_background));
|
mTopBarHider.setBackground(ContextCompat.getDrawable(mContext, R.color.c_background));
|
||||||
|
@ -1149,32 +1188,21 @@ class homeViewController
|
||||||
{
|
{
|
||||||
if(pStatus){
|
if(pStatus){
|
||||||
if(mSearchEngineBar.getAlpha() == 0 || mSearchEngineBar.getVisibility() == View.GONE && mSplashScreen.getAlpha()<=0){
|
if(mSearchEngineBar.getAlpha() == 0 || mSearchEngineBar.getVisibility() == View.GONE && mSplashScreen.getAlpha()<=0){
|
||||||
|
onUpdateStatusBarTheme(null, false);
|
||||||
mSearchEngineBar.animate().cancel();
|
mSearchEngineBar.animate().cancel();
|
||||||
mSearchEngineBar.setAlpha(0f);
|
mSearchEngineBar.setAlpha(1f);
|
||||||
mSearchEngineBar.animate().setDuration(delay).alpha(1);
|
mSearchEngineBar.animate().setDuration(delay).alpha(1);
|
||||||
mSearchEngineBar.setVisibility(View.VISIBLE);
|
mSearchEngineBar.setVisibility(View.VISIBLE);
|
||||||
onUpdateStatusBarTheme(null, false);
|
|
||||||
|
|
||||||
View child = mAppBar.getChildAt(0);
|
|
||||||
AppBarLayout.LayoutParams params = (AppBarLayout.LayoutParams) child.getLayoutParams();
|
|
||||||
params.setScrollFlags(0);
|
|
||||||
}
|
}
|
||||||
}else {
|
}else {
|
||||||
View child = mAppBar.getChildAt(0);
|
mEvent.invokeObserver(null, enums.etype.M_UPDATE_THEME);
|
||||||
AppBarLayout.LayoutParams params = (AppBarLayout.LayoutParams) child.getLayoutParams();
|
mSearchEngineBar.animate().setDuration(delay).setStartDelay(0).alpha(0).withEndAction(() -> {
|
||||||
params.setScrollFlags(1);
|
|
||||||
mAppBar.refreshDrawableState();
|
|
||||||
mAppBar.invalidate();
|
|
||||||
|
|
||||||
mSearchEngineBar.animate().setDuration(delay).alpha(0).withEndAction(() -> {
|
|
||||||
mSearchEngineBar.animate().cancel();
|
mSearchEngineBar.animate().cancel();
|
||||||
mSearchEngineBar.setAlpha(0f);
|
mSearchEngineBar.setAlpha(0f);
|
||||||
mSearchEngineBar.setVisibility(View.GONE);
|
mSearchEngineBar.setVisibility(View.GONE);
|
||||||
mEvent.invokeObserver(null, enums.etype.M_UPDATE_THEME);
|
|
||||||
mEvent.invokeObserver(null, enums.etype.M_RESET_SUGGESTION);
|
mEvent.invokeObserver(null, enums.etype.M_RESET_SUGGESTION);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void triggerUpdateSearchBar(String url, boolean showProtocol, boolean pClearText){
|
private void triggerUpdateSearchBar(String url, boolean showProtocol, boolean pClearText){
|
||||||
|
@ -1352,6 +1380,55 @@ class homeViewController
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void onHomeTabAnimation(List<Object> data, Object e_type){
|
||||||
|
mGeckoView.setPivotX(0);
|
||||||
|
mGeckoView.setPivotY(0);
|
||||||
|
|
||||||
|
if(mGeckoView.getAlpha()<1 || mGeckoView.getTranslationX()<0){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ObjectAnimator scaleDown = ObjectAnimator.ofPropertyValuesHolder(mGeckoView,
|
||||||
|
PropertyValuesHolder.ofFloat("translationX", 0, helperMethod.pxFromDp(-50)));
|
||||||
|
mNewTabBlocker.setVisibility(View.VISIBLE);
|
||||||
|
ObjectAnimator alpha = ObjectAnimator.ofPropertyValuesHolder(mNewTabBlocker,
|
||||||
|
PropertyValuesHolder.ofFloat("alpha", 0, 1f));
|
||||||
|
|
||||||
|
scaleDown.setDuration(150);
|
||||||
|
alpha.setDuration(150);
|
||||||
|
|
||||||
|
scaleDown.start();
|
||||||
|
alpha.start();
|
||||||
|
|
||||||
|
scaleDown.addListener(new Animator.AnimatorListener() {
|
||||||
|
@Override
|
||||||
|
public void onAnimationStart(Animator animation, boolean isReverse) {
|
||||||
|
mEvent.invokeObserver(data, e_type);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onAnimationEnd(Animator animation, boolean isReverse) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onAnimationStart(Animator animation) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onAnimationEnd(Animator animation) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onAnimationCancel(Animator animation) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onAnimationRepeat(Animator animation) {
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
public void onResetTabAnimation(){
|
public void onResetTabAnimation(){
|
||||||
mGeckoView.setPivotX(0);
|
mGeckoView.setPivotX(0);
|
||||||
mGeckoView.setPivotY(0);
|
mGeckoView.setPivotY(0);
|
||||||
|
|
|
@ -1,116 +0,0 @@
|
||||||
package com.darkweb.genesissearchengine.appManager.landingManager;
|
|
||||||
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.content.res.Resources;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import androidx.annotation.Nullable;
|
|
||||||
import androidx.fragment.app.Fragment;
|
|
||||||
import com.darkweb.genesissearchengine.appManager.landingManager.langingPageManager.landingPageController;
|
|
||||||
import com.darkweb.genesissearchengine.appManager.landingManager.langingPageManager.landingPageDataModel;
|
|
||||||
import com.darkweb.genesissearchengine.appManager.orbotManager.orbotController;
|
|
||||||
import com.darkweb.genesissearchengine.constants.enums;
|
|
||||||
import com.darkweb.genesissearchengine.eventObserver;
|
|
||||||
import com.darkweb.genesissearchengine.pluginManager.pluginController;
|
|
||||||
import com.darkweb.genesissearchengine.pluginManager.pluginEnums;
|
|
||||||
import com.example.myapplication.R;
|
|
||||||
import com.github.paolorotolo.appintro.AppIntro;
|
|
||||||
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import static com.darkweb.genesissearchengine.appManager.landingManager.landingEnums.eLandingPageControllerCallbackCommands.M_ON_LANDING_PAGE_FINISH_TRIGGERED;
|
|
||||||
|
|
||||||
public class landingController extends AppIntro {
|
|
||||||
|
|
||||||
/* Private Variables */
|
|
||||||
|
|
||||||
private landingViewController mLandingViewController;
|
|
||||||
private landingModelController mLandingModel;
|
|
||||||
|
|
||||||
/* UI Variables */
|
|
||||||
|
|
||||||
private landingPageController mIntro_welcome;
|
|
||||||
private landingPageController mIntro_intro;
|
|
||||||
private landingPageController mIntro_start;
|
|
||||||
|
|
||||||
/* Initializations */
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
|
||||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
|
|
||||||
initializePages();
|
|
||||||
initializeModels();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void initializePages(){
|
|
||||||
mIntro_welcome = new landingPageController();
|
|
||||||
mIntro_intro = new landingPageController();
|
|
||||||
mIntro_start = new landingPageController();
|
|
||||||
|
|
||||||
mIntro_welcome.onInitialize(new landingPageCallback(), new landingPageDataModel(getString(R.string.LANDING_HELLO), getString(R.string.LANDING_WELCOME),null, enums.LandingPageTypes.M_LANDING_WELCOME));
|
|
||||||
mIntro_intro.onInitialize(new landingPageCallback(), new landingPageDataModel(getString(R.string.LANDING_BROWSE_INFO), getString(R.string.LANDING_NO_TRACKING),null, enums.LandingPageTypes.M_LANDING_INTRO));
|
|
||||||
mIntro_start.onInitialize(new landingPageCallback(), new landingPageDataModel(getString(R.string.LANDING_BRIDGES_INFO),null,getString(R.string.LANDING_MORE), enums.LandingPageTypes.M_LANDING_START));
|
|
||||||
}
|
|
||||||
|
|
||||||
private void initializeModels(){
|
|
||||||
mLandingViewController = new landingViewController(this,new landingViewCallback(), mIntro_welcome, mIntro_intro, mIntro_start);
|
|
||||||
mLandingModel = new landingModelController(this, new landingModelCallback());
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Local Override */
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDonePressed(Fragment currentFragment) {
|
|
||||||
super.onDonePressed(currentFragment);
|
|
||||||
mLandingModel.onTrigger(landingEnums.eLandingModelCommands.M_UPDATE_LANDING_PAGE_SHOWN_STATUS);
|
|
||||||
onCloseTrigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onResume() {
|
|
||||||
super.onResume();
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Helper Methods */
|
|
||||||
|
|
||||||
public void onCloseTrigger(){
|
|
||||||
finish();
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Callbacks */
|
|
||||||
|
|
||||||
private class landingViewCallback implements eventObserver.eventListener{
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Object invokeObserver(List<Object> pData, Object pType)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private class landingModelCallback implements eventObserver.eventListener{
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Object invokeObserver(List<Object> pData, Object pType)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private class landingPageCallback implements eventObserver.eventListener{
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Object invokeObserver(List<Object> pData, Object pType)
|
|
||||||
{
|
|
||||||
if(pType.equals(M_ON_LANDING_PAGE_FINISH_TRIGGERED)){
|
|
||||||
if((int)pData.get(0) == enums.LandingPageTypes.M_LANDING_START){
|
|
||||||
startActivity(new Intent(landingController.this, orbotController.class));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,20 +0,0 @@
|
||||||
package com.darkweb.genesissearchengine.appManager.landingManager;
|
|
||||||
|
|
||||||
public class landingEnums
|
|
||||||
{
|
|
||||||
|
|
||||||
public enum eLandingViewCommands {
|
|
||||||
}
|
|
||||||
|
|
||||||
public enum eLandingModelCommands {
|
|
||||||
M_UPDATE_LANDING_PAGE_SHOWN_STATUS
|
|
||||||
}
|
|
||||||
|
|
||||||
public enum eLandingModelCallbackCommands {
|
|
||||||
}
|
|
||||||
|
|
||||||
public enum eLandingPageControllerCallbackCommands {
|
|
||||||
M_ON_LANDING_PAGE_FINISH_TRIGGERED
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,40 +0,0 @@
|
||||||
package com.darkweb.genesissearchengine.appManager.landingManager;
|
|
||||||
|
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
|
||||||
|
|
||||||
import com.darkweb.genesissearchengine.constants.keys;
|
|
||||||
import com.darkweb.genesissearchengine.constants.status;
|
|
||||||
import com.darkweb.genesissearchengine.dataManager.dataController;
|
|
||||||
import com.darkweb.genesissearchengine.dataManager.dataEnums;
|
|
||||||
import com.darkweb.genesissearchengine.eventObserver;
|
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
|
|
||||||
public class landingModelController {
|
|
||||||
|
|
||||||
/* Private Variables */
|
|
||||||
|
|
||||||
private AppCompatActivity mContext;
|
|
||||||
private eventObserver.eventListener mEvent;
|
|
||||||
|
|
||||||
public landingModelController(AppCompatActivity pContext, eventObserver.eventListener pEvent){
|
|
||||||
this.mContext = pContext;
|
|
||||||
this.mEvent = pEvent;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void onUpdateLandingPageStatus(){
|
|
||||||
status.sLandingPageStatus = true;
|
|
||||||
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.sLandingPageStatus,true));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public Object onTrigger(landingEnums.eLandingModelCommands pCommands){
|
|
||||||
|
|
||||||
if(pCommands.equals(landingEnums.eLandingModelCommands.M_UPDATE_LANDING_PAGE_SHOWN_STATUS)){
|
|
||||||
onUpdateLandingPageStatus();
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,54 +0,0 @@
|
||||||
package com.darkweb.genesissearchengine.appManager.landingManager;
|
|
||||||
|
|
||||||
import androidx.core.content.ContextCompat;
|
|
||||||
import com.darkweb.genesissearchengine.appManager.landingManager.langingPageManager.landingPageController;
|
|
||||||
import com.darkweb.genesissearchengine.eventObserver;
|
|
||||||
import com.example.myapplication.R;
|
|
||||||
import com.github.paolorotolo.appintro.AppIntro;
|
|
||||||
|
|
||||||
class landingViewController
|
|
||||||
{
|
|
||||||
/*Private Variables*/
|
|
||||||
|
|
||||||
private AppIntro mContext;
|
|
||||||
private eventObserver.eventListener mEvent;
|
|
||||||
|
|
||||||
/*UI Variables*/
|
|
||||||
|
|
||||||
private landingPageController mIntroWelcome;
|
|
||||||
private landingPageController mIntroIntro;
|
|
||||||
private landingPageController mIntroStart;
|
|
||||||
|
|
||||||
/*Initializations*/
|
|
||||||
|
|
||||||
landingViewController(AppIntro pContext, eventObserver.eventListener pEvent, landingPageController pIntroWelcome, landingPageController pIntroIntro, landingPageController pIntroStart){
|
|
||||||
this.mContext = pContext;
|
|
||||||
this.mEvent = pEvent;
|
|
||||||
this.mIntroWelcome = pIntroWelcome;
|
|
||||||
this.mIntroIntro = pIntroIntro;
|
|
||||||
this.mIntroStart = pIntroStart;
|
|
||||||
|
|
||||||
setUIData();
|
|
||||||
initPostUI();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void setUIData(){
|
|
||||||
mContext.addSlide(mIntroWelcome);
|
|
||||||
mContext.addSlide(mIntroIntro);
|
|
||||||
mContext.addSlide(mIntroStart);
|
|
||||||
|
|
||||||
mContext.setBarColor(mContext.getResources().getColor(R.color.landing_ease_blue));
|
|
||||||
mContext.setSeparatorColor(mContext.getResources().getColor(R.color.headerblack));
|
|
||||||
|
|
||||||
mContext.showSkipButton(false);
|
|
||||||
mContext.setProgressButtonEnabled(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void initPostUI(){
|
|
||||||
mContext.getWindow().setStatusBarColor(ContextCompat.getColor(mContext, R.color.landing_ease_blue));
|
|
||||||
}
|
|
||||||
|
|
||||||
public Object onTrigger(landingEnums.eLandingViewCommands pCommands){
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,85 +0,0 @@
|
||||||
package com.darkweb.genesissearchengine.appManager.landingManager.langingPageManager;
|
|
||||||
|
|
||||||
import android.os.Bundle;
|
|
||||||
import androidx.annotation.Nullable;
|
|
||||||
import androidx.fragment.app.Fragment;
|
|
||||||
import android.view.LayoutInflater;
|
|
||||||
import android.view.View;
|
|
||||||
import android.view.ViewGroup;
|
|
||||||
import android.widget.TextView;
|
|
||||||
import com.darkweb.genesissearchengine.eventObserver;
|
|
||||||
import com.example.myapplication.R;
|
|
||||||
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import static com.darkweb.genesissearchengine.appManager.landingManager.landingEnums.eLandingPageControllerCallbackCommands.M_ON_LANDING_PAGE_FINISH_TRIGGERED;
|
|
||||||
|
|
||||||
|
|
||||||
public class landingPageController extends Fragment {
|
|
||||||
|
|
||||||
/*UI Variables*/
|
|
||||||
|
|
||||||
private TextView mHeader;
|
|
||||||
private TextView mSubHeader;
|
|
||||||
private TextView mSubmit;
|
|
||||||
|
|
||||||
/*Local Variables*/
|
|
||||||
|
|
||||||
private eventObserver.eventListener mEvent;
|
|
||||||
private landingPageDataModel mDataModel;
|
|
||||||
private landingPageViewController mLandingPageViewController;
|
|
||||||
|
|
||||||
/*Initializations*/
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nullable
|
|
||||||
@Override
|
|
||||||
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
|
||||||
|
|
||||||
View view = inflater.inflate(R.layout.landing_view, container, false);
|
|
||||||
|
|
||||||
initializeModels(view);
|
|
||||||
initializeLocalEventHandlers();
|
|
||||||
return view;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private void initializeModels(View pView){
|
|
||||||
mHeader = pView.findViewById(R.id.pHeader);
|
|
||||||
mSubHeader = pView.findViewById(R.id.pSubHeader);
|
|
||||||
mSubmit = pView.findViewById(R.id.pNextButton);
|
|
||||||
|
|
||||||
mLandingPageViewController = new landingPageViewController(this,new landingPageViewCallback(), mHeader, mSubHeader, mSubmit, mDataModel);
|
|
||||||
}
|
|
||||||
|
|
||||||
public landingPageController onInitialize(eventObserver.eventListener pEvent, landingPageDataModel pDataModel) {
|
|
||||||
landingPageController mSlidePage = new landingPageController();
|
|
||||||
Bundle args = new Bundle();
|
|
||||||
|
|
||||||
mDataModel = pDataModel;
|
|
||||||
mEvent = pEvent;
|
|
||||||
|
|
||||||
mSlidePage.setArguments(args);
|
|
||||||
return mSlidePage;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private void initializeLocalEventHandlers(){
|
|
||||||
mSubmit.setOnClickListener(v -> mEvent.invokeObserver(Collections.singletonList(mDataModel.getPageType()), M_ON_LANDING_PAGE_FINISH_TRIGGERED));
|
|
||||||
}
|
|
||||||
|
|
||||||
private class landingPageViewCallback implements eventObserver.eventListener{
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Object invokeObserver(List<Object> pData, Object pType)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,31 +0,0 @@
|
||||||
package com.darkweb.genesissearchengine.appManager.landingManager.langingPageManager;
|
|
||||||
|
|
||||||
|
|
||||||
public class landingPageDataModel {
|
|
||||||
|
|
||||||
private String mHeader;
|
|
||||||
private String mSubHeader;
|
|
||||||
private String mNextButtonText;
|
|
||||||
private int mLandingPageType;
|
|
||||||
|
|
||||||
public landingPageDataModel(String pHeader, String pSubHeader, String pNextButtonText, int pLandingPageType){
|
|
||||||
this.mHeader = pHeader;
|
|
||||||
this.mSubHeader = pSubHeader;
|
|
||||||
this.mNextButtonText = pNextButtonText;
|
|
||||||
this.mLandingPageType = pLandingPageType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getHeader(){
|
|
||||||
return mHeader;
|
|
||||||
}
|
|
||||||
public String getSubHeader(){
|
|
||||||
return mSubHeader;
|
|
||||||
}
|
|
||||||
public String getNextButtonText(){
|
|
||||||
return mNextButtonText;
|
|
||||||
}
|
|
||||||
public int getPageType(){
|
|
||||||
return mLandingPageType;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,48 +0,0 @@
|
||||||
package com.darkweb.genesissearchengine.appManager.landingManager.langingPageManager;
|
|
||||||
|
|
||||||
import android.view.View;
|
|
||||||
import android.widget.TextView;
|
|
||||||
import androidx.fragment.app.Fragment;
|
|
||||||
|
|
||||||
import com.darkweb.genesissearchengine.constants.enums;
|
|
||||||
import com.darkweb.genesissearchengine.eventObserver;
|
|
||||||
import com.example.myapplication.R;
|
|
||||||
|
|
||||||
public class landingPageViewController {
|
|
||||||
|
|
||||||
private Fragment mContext;
|
|
||||||
private TextView mHeader;
|
|
||||||
private TextView mSubHeader;
|
|
||||||
private TextView mSubmit;
|
|
||||||
private landingPageDataModel mLandingModel;
|
|
||||||
|
|
||||||
public landingPageViewController(Fragment pContext, eventObserver.eventListener pEvent, TextView pHeader, TextView pSubHeader, TextView pSubmit, landingPageDataModel pLandingModel){
|
|
||||||
this.mHeader = pHeader;
|
|
||||||
this.mSubHeader = pSubHeader;
|
|
||||||
this.mSubmit = pSubmit;
|
|
||||||
this.mContext = pContext;
|
|
||||||
this.mLandingModel = pLandingModel;
|
|
||||||
|
|
||||||
onInitializeView();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void onInitializeView(){
|
|
||||||
if(this.mLandingModel.getPageType() == enums.LandingPageTypes.M_LANDING_WELCOME){
|
|
||||||
mHeader.setText(mLandingModel.getHeader());
|
|
||||||
mSubHeader.setText(mLandingModel.getSubHeader());
|
|
||||||
mSubHeader.setVisibility(View.VISIBLE);
|
|
||||||
}
|
|
||||||
else if(this.mLandingModel.getPageType() == enums.LandingPageTypes.M_LANDING_INTRO){
|
|
||||||
mHeader.setText(mLandingModel.getHeader());
|
|
||||||
mSubHeader.setText(mLandingModel.getSubHeader());
|
|
||||||
mSubHeader.setVisibility(View.VISIBLE);
|
|
||||||
}
|
|
||||||
else if(this.mLandingModel.getPageType() == enums.LandingPageTypes.M_LANDING_START){
|
|
||||||
mHeader.setText(mLandingModel.getHeader());
|
|
||||||
mSubHeader.setText(mLandingModel.getSubHeader());
|
|
||||||
mSubmit.setText(mLandingModel.getNextButtonText());
|
|
||||||
mSubHeader.setVisibility(View.VISIBLE);
|
|
||||||
mSubmit.setVisibility(View.VISIBLE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -72,8 +72,8 @@ public class languageAdapter extends RecyclerView.Adapter<languageAdapter.helpVi
|
||||||
|
|
||||||
void bindListView(languageDataModel model) {
|
void bindListView(languageDataModel model) {
|
||||||
boolean mIsDefaultSupported = true;
|
boolean mIsDefaultSupported = true;
|
||||||
mHeader = itemView.findViewById(R.id.pHeader);
|
mHeader = itemView.findViewById(R.id.pOrbotRowHeader);
|
||||||
mDescription = itemView.findViewById(R.id.pDescription);
|
mDescription = itemView.findViewById(R.id.pOrbotRowDescription);
|
||||||
mContainer = itemView.findViewById(R.id.pContainer);
|
mContainer = itemView.findViewById(R.id.pContainer);
|
||||||
mMarker = itemView.findViewById(R.id.pMarker);
|
mMarker = itemView.findViewById(R.id.pMarker);
|
||||||
|
|
||||||
|
|
|
@ -86,7 +86,7 @@ public class languageController extends AppCompatActivity {
|
||||||
{
|
{
|
||||||
activityContextManager.getInstance().onStack(this);
|
activityContextManager.getInstance().onStack(this);
|
||||||
mRecycleView = findViewById(R.id.pRecycleView);
|
mRecycleView = findViewById(R.id.pRecycleView);
|
||||||
mBlocker = findViewById(R.id.pBlocker);
|
mBlocker = findViewById(R.id.pSecureRootBlocker);
|
||||||
|
|
||||||
mLanguageViewController.initialization(new languageViewCallback(),this, mBlocker);
|
mLanguageViewController.initialization(new languageViewCallback(),this, mBlocker);
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,28 +53,28 @@ public class orbotLogAdapter extends RecyclerView.Adapter<orbotLogAdapter.listVi
|
||||||
|
|
||||||
/*View Holder Extensions*/
|
/*View Holder Extensions*/
|
||||||
class listViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
|
class listViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
|
||||||
TextView mHeader;
|
TextView mOrbotRowHeader;
|
||||||
TextView mDescription;
|
TextView mOrbotRowDescription;
|
||||||
ConstraintLayout mRowContainerInner;
|
ConstraintLayout mOrbotRowContainer;
|
||||||
|
|
||||||
listViewHolder(View itemView) {
|
listViewHolder(View itemView) {
|
||||||
super(itemView);
|
super(itemView);
|
||||||
}
|
}
|
||||||
|
|
||||||
void bindListView(logRowModel model) {
|
void bindListView(logRowModel model) {
|
||||||
mHeader = itemView.findViewById(R.id.pHeader);
|
mOrbotRowHeader = itemView.findViewById(R.id.pOrbotRowHeader);
|
||||||
mDescription = itemView.findViewById(R.id.pDescription);
|
mOrbotRowDescription = itemView.findViewById(R.id.pOrbotRowDescription);
|
||||||
mRowContainerInner = itemView.findViewById(R.id.pRowContainerInner);
|
mOrbotRowContainer = itemView.findViewById(R.id.pOrbotRowContainer);
|
||||||
|
|
||||||
mHeader.setText((this.getLayoutPosition() + ". " + model.getLog()));
|
mOrbotRowHeader.setText((this.getLayoutPosition() + ". " + model.getLog()));
|
||||||
mDescription.setText(model.getDate());
|
mOrbotRowDescription.setText(model.getDate());
|
||||||
mRowContainerInner.setOnClickListener(this);
|
mOrbotRowContainer.setOnClickListener(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(constants.CONST_LOG_DUCKDUCK + Uri.encode(" " + mModelList.get(this.getLayoutPosition()).getLog())));
|
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(constants.CONST_LOG_DUCKDUCK + Uri.encode(" " + mModelList.get(this.getLayoutPosition()).getLog())));
|
||||||
intent.putExtra(SearchManager.QUERY, mDescription.getText());
|
intent.putExtra(SearchManager.QUERY, mOrbotRowDescription.getText());
|
||||||
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
||||||
activityContextManager.getInstance().getHomeController().startActivity(intent);
|
activityContextManager.getInstance().getHomeController().startActivity(intent);
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,38 +27,38 @@ import com.darkweb.genesissearchengine.pluginManager.pluginController;
|
||||||
import com.darkweb.genesissearchengine.pluginManager.pluginEnums;
|
import com.darkweb.genesissearchengine.pluginManager.pluginEnums;
|
||||||
import com.example.myapplication.R;
|
import com.example.myapplication.R;
|
||||||
import com.google.android.material.floatingactionbutton.FloatingActionButton;
|
import com.google.android.material.floatingactionbutton.FloatingActionButton;
|
||||||
|
|
||||||
|
|
||||||
import org.torproject.android.service.wrapper.logRowModel;
|
import org.torproject.android.service.wrapper.logRowModel;
|
||||||
import org.torproject.android.service.wrapper.orbotLocalConstants;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
import static com.darkweb.genesissearchengine.appManager.orbotLogManager.orbotLogEnums.eOrbotLogModelCallbackCommands.M_UPDATE_FLOATING_BUTTON;
|
||||||
|
import static com.darkweb.genesissearchengine.appManager.orbotLogManager.orbotLogEnums.eOrbotLogModelCallbackCommands.M_UPDATE_LOGS;
|
||||||
|
import static com.darkweb.genesissearchengine.appManager.orbotLogManager.orbotLogEnums.eOrbotLogModelCallbackCommands.M_UPDATE_RECYCLE_VIEW;
|
||||||
import static com.darkweb.genesissearchengine.appManager.orbotLogManager.orbotLogEnums.eOrbotLogModelCommands.M_GET_LIST;
|
import static com.darkweb.genesissearchengine.appManager.orbotLogManager.orbotLogEnums.eOrbotLogModelCommands.M_GET_LIST;
|
||||||
import static com.darkweb.genesissearchengine.appManager.orbotLogManager.orbotLogEnums.eOrbotLogModelCommands.M_GET_LIST_SIZE;
|
import static com.darkweb.genesissearchengine.appManager.orbotLogManager.orbotLogEnums.eOrbotLogModelCommands.M_GET_LIST_SIZE;
|
||||||
import static com.darkweb.genesissearchengine.appManager.orbotLogManager.orbotLogEnums.eOrbotLogViewCommands.M_FLOAT_BUTTON_UPDATE;
|
import static com.darkweb.genesissearchengine.appManager.orbotLogManager.orbotLogEnums.eOrbotLogViewCommands.M_FLOAT_BUTTON_UPDATE;
|
||||||
|
import static com.darkweb.genesissearchengine.appManager.orbotLogManager.orbotLogEnums.eOrbotLogViewCommands.M_SCROLL_BOTTOM;
|
||||||
|
import static com.darkweb.genesissearchengine.appManager.orbotLogManager.orbotLogEnums.eOrbotLogViewCommands.M_SCROLL_TOP;
|
||||||
|
import static com.darkweb.genesissearchengine.appManager.orbotLogManager.orbotLogEnums.eOrbotLogViewCommands.M_SCROLL_TO_POSITION;
|
||||||
|
import static com.darkweb.genesissearchengine.appManager.orbotLogManager.orbotLogEnums.eOrbotLogViewCommands.M_SHOW_FLOATING_TOOLBAR;
|
||||||
|
|
||||||
|
|
||||||
public class orbotLogController extends AppCompatActivity {
|
public class orbotLogController extends AppCompatActivity implements ViewTreeObserver.OnScrollChangedListener, ViewTreeObserver.OnGlobalLayoutListener {
|
||||||
|
|
||||||
/* PRIVATE VARIABLES */
|
/* PRIVATE VARIABLES */
|
||||||
|
|
||||||
private orbotLogModel mOrbotModel;
|
private orbotLogModel mOrbotModel;
|
||||||
private orbotLogViewController mOrbotLogViewController;
|
private orbotLogViewController mOrbotLogViewController;
|
||||||
private orbotLogAdapter mOrbotAdapter;
|
private orbotLogAdapter mOrbotAdapter;
|
||||||
private boolean mActivityClosed = false;
|
|
||||||
private int mLogCounter = 1;
|
|
||||||
private boolean mIsRecycleviewInteracting = false;
|
|
||||||
|
|
||||||
/* UI VARIABLES */
|
/* UI VARIABLES */
|
||||||
|
|
||||||
private TextView mLogs;
|
private TextView mOrbotLogLoadingText;
|
||||||
private RecyclerView mLogRecycleView;
|
private RecyclerView mOrbotLogRecycleView;
|
||||||
private NestedScrollView mNestedScrollView;
|
private NestedScrollView mOrbotLogNestedScroll;
|
||||||
private FloatingActionButton mFloatingScroller;
|
private FloatingActionButton mOrbotLogFloatingToolbar;
|
||||||
|
private boolean mIsRecycleviewInteracting = false;
|
||||||
|
|
||||||
/* INITIALIZATIONS */
|
/* INITIALIZATIONS */
|
||||||
|
|
||||||
|
@ -66,17 +66,22 @@ public class orbotLogController extends AppCompatActivity {
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||||
overridePendingTransition(R.anim.push_anim_out_reverse, R.anim.push_anim_in_reverse);
|
|
||||||
activityContextManager.getInstance().setOrbotLogController(this);
|
activityContextManager.getInstance().setOrbotLogController(this);
|
||||||
activityContextManager.getInstance().onStack(this);
|
activityContextManager.getInstance().onStack(this);
|
||||||
|
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
setContentView(R.layout.orbot_log_view);
|
setContentView(R.layout.orbot_log_view);
|
||||||
|
initializeStartupAnimation();
|
||||||
|
|
||||||
initializeViews();
|
initializeViews();
|
||||||
initializeLogs();
|
initializeLogs();
|
||||||
initListener();
|
initListener();
|
||||||
updateLogs();
|
}
|
||||||
|
|
||||||
|
public void initializeStartupAnimation(){
|
||||||
|
if(activityContextManager.getInstance().getHomeController().isSplashScreenLoading()){
|
||||||
|
overridePendingTransition(R.anim.translate_fade_left, R.anim.translate_fade_right);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -87,242 +92,208 @@ public class orbotLogController extends AppCompatActivity {
|
||||||
activityThemeManager.getInstance().onConfigurationChanged(this);
|
activityThemeManager.getInstance().onConfigurationChanged(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
mNestedScrollView.stopNestedScroll();
|
mOrbotLogNestedScroll.stopNestedScroll();
|
||||||
|
|
||||||
helperMethod.onDelayHandler(orbotLogController.this, 150, () -> {
|
|
||||||
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE || newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
|
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE || newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
|
||||||
if(!orbotLogStatus.sUIInteracted && ((int)mOrbotModel.onTrigger(M_GET_LIST_SIZE)>1)){
|
initScrollPositionOnConfigurationChanged();
|
||||||
if(mNestedScrollView.canScrollVertically(enums.ScrollDirection.VERTICAL)){
|
|
||||||
mNestedScrollView.stopNestedScroll();
|
|
||||||
onScrollBottom();
|
|
||||||
mNestedScrollView.stopNestedScroll();
|
|
||||||
orbotLogStatus.sScrollPosition = -1;
|
|
||||||
}
|
}
|
||||||
}else {
|
|
||||||
mNestedScrollView.stopNestedScroll();
|
|
||||||
mNestedScrollView.scrollTo(0,0);
|
|
||||||
mNestedScrollView.smoothScrollTo(0,0);
|
|
||||||
mNestedScrollView.stopNestedScroll();
|
|
||||||
orbotLogStatus.sScrollPosition = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
});
|
|
||||||
|
|
||||||
super.onConfigurationChanged(newConfig);
|
super.onConfigurationChanged(newConfig);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initializeViews() {
|
private void initScrollPositionOnConfigurationChanged(){
|
||||||
mLogRecycleView = findViewById(R.id.pLogRecycleView);
|
helperMethod.onDelayHandler(orbotLogController.this, 150, () -> {
|
||||||
mLogs = findViewById(R.id.pLogs);
|
if(!orbotLogStatus.sUIInteracted && ((int)mOrbotModel.onTrigger(M_GET_LIST_SIZE)>1)){
|
||||||
mNestedScrollView = findViewById(R.id.pNestedScrollView);
|
if(mOrbotLogNestedScroll.canScrollVertically(enums.ScrollDirection.VERTICAL)){
|
||||||
mFloatingScroller = findViewById(R.id.pFloatingScroller);
|
mOrbotLogViewController.onTrigger(M_SCROLL_BOTTOM);
|
||||||
|
orbotLogStatus.sScrollPosition = -1;
|
||||||
|
onScrollBottom();
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
mOrbotLogViewController.onTrigger(M_SCROLL_TOP);
|
||||||
|
orbotLogStatus.sScrollPosition = 0;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
mOrbotLogViewController = new orbotLogViewController(this, new orbotLogViewCallback() , mLogs, mLogRecycleView, mNestedScrollView, mFloatingScroller);
|
private void initializeViews() {
|
||||||
mOrbotModel = new orbotLogModel();
|
mOrbotLogRecycleView = findViewById(R.id.pOrbotLogRecycleView);
|
||||||
|
mOrbotLogLoadingText = findViewById(R.id.pOrbotLogLoadingText);
|
||||||
|
mOrbotLogNestedScroll = findViewById(R.id.pOrbotLogNestedScroll);
|
||||||
|
mOrbotLogFloatingToolbar = findViewById(R.id.pOrbotLogFloatingToolbar);
|
||||||
|
|
||||||
|
mOrbotLogViewController = new orbotLogViewController(this, new orbotLogViewCallback() , mOrbotLogLoadingText, mOrbotLogRecycleView, mOrbotLogNestedScroll, mOrbotLogFloatingToolbar);
|
||||||
|
mOrbotModel = new orbotLogModel(this, new orbotModelCallback());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initializeLogs(){
|
private void initializeLogs(){
|
||||||
mLogCounter = 0;
|
|
||||||
mOrbotModel.setList(orbotLocalConstants.mTorLogsHistory);
|
|
||||||
if(status.sLogThemeStyleAdvanced){
|
if(status.sLogThemeStyleAdvanced){
|
||||||
mLogCounter = (int)mOrbotModel.onTrigger(M_GET_LIST_SIZE);
|
|
||||||
LinearLayoutManager layoutManager = new LinearLayoutManager(orbotLogController.this);
|
|
||||||
orbotLogAdapter adapter = new orbotLogAdapter(((ArrayList)mOrbotModel.onTrigger(M_GET_LIST)),new orbotLogController.orbotModelCallback());
|
orbotLogAdapter adapter = new orbotLogAdapter(((ArrayList)mOrbotModel.onTrigger(M_GET_LIST)),new orbotLogController.orbotModelCallback());
|
||||||
mOrbotAdapter = adapter;
|
mOrbotAdapter = adapter;
|
||||||
layoutManager.setReverseLayout(true);
|
|
||||||
|
|
||||||
mLogRecycleView.setAdapter(adapter);
|
|
||||||
Objects.requireNonNull(mLogRecycleView.getItemAnimator()).setAddDuration(350);
|
|
||||||
|
|
||||||
mLogRecycleView.setNestedScrollingEnabled(false);
|
|
||||||
mLogRecycleView.setLayoutManager(new LinearLayoutManager(orbotLogController.this));
|
|
||||||
|
|
||||||
|
Objects.requireNonNull(mOrbotLogRecycleView.getItemAnimator()).setAddDuration(350);
|
||||||
|
mOrbotLogRecycleView.setAdapter(adapter);
|
||||||
|
mOrbotLogRecycleView.setNestedScrollingEnabled(false);
|
||||||
|
mOrbotLogRecycleView.setLayoutManager(new LinearLayoutManager(orbotLogController.this));
|
||||||
mOrbotAdapter.notifyDataSetChanged();
|
mOrbotAdapter.notifyDataSetChanged();
|
||||||
|
|
||||||
}else {
|
}else {
|
||||||
logToString();
|
logToString();
|
||||||
}
|
}
|
||||||
mOrbotLogViewController.onTrigger(orbotLogEnums.eOrbotLogViewCommands.M_INIT_VIEWS, Collections.singletonList(status.sLogThemeStyleAdvanced));
|
mOrbotLogViewController.onTrigger(orbotLogEnums.eOrbotLogViewCommands.M_INIT_VIEWS, Collections.singletonList(status.sLogThemeStyleAdvanced));
|
||||||
mLogRecycleView.smoothScrollToPosition((int)mOrbotModel.onTrigger(M_GET_LIST_SIZE));
|
mOrbotLogRecycleView.smoothScrollToPosition((int)mOrbotModel.onTrigger(M_GET_LIST_SIZE));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* LISTENERS */
|
/* LISTENERS */
|
||||||
|
|
||||||
@RequiresApi(api = Build.VERSION_CODES.M)
|
|
||||||
@SuppressLint("ClickableViewAccessibility")
|
|
||||||
private void initListener(){
|
|
||||||
|
|
||||||
mLogRecycleView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
|
|
||||||
@SuppressLint("NewApi") @SuppressWarnings("deprecation")
|
|
||||||
@Override
|
@Override
|
||||||
public void onGlobalLayout() {
|
public void onGlobalLayout() {
|
||||||
|
|
||||||
if(orbotLogStatus.sOrientation==-1){
|
if(orbotLogStatus.sOrientation==-1){
|
||||||
orbotLogStatus.sOrientation = getResources().getConfiguration().orientation;
|
orbotLogStatus.sOrientation = getResources().getConfiguration().orientation;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(orbotLogStatus.sOrientation != getResources().getConfiguration().orientation && orbotLogStatus.sScrollPosition!=-1 && orbotLogStatus.sScrollPosition!=0){
|
if(orbotLogStatus.sOrientation != getResources().getConfiguration().orientation && orbotLogStatus.sScrollPosition!=-1 && orbotLogStatus.sScrollPosition!=0){
|
||||||
mNestedScrollView.stopNestedScroll();
|
|
||||||
orbotLogStatus.sScrollPosition = 0;
|
orbotLogStatus.sScrollPosition = 0;
|
||||||
mNestedScrollView.scrollTo(0, orbotLogStatus.sScrollPosition);
|
|
||||||
orbotLogStatus.sOrientation = getResources().getConfiguration().orientation;
|
orbotLogStatus.sOrientation = getResources().getConfiguration().orientation;
|
||||||
|
|
||||||
|
mOrbotLogNestedScroll.stopNestedScroll();
|
||||||
|
mOrbotLogViewController.onTrigger(M_SCROLL_TO_POSITION, Collections.singletonList(orbotLogStatus.sScrollPosition));
|
||||||
}else {
|
}else {
|
||||||
if(orbotLogStatus.sScrollPosition!=-1 && orbotLogStatus.sUIInteracted){
|
if(orbotLogStatus.sScrollPosition!=-1 && orbotLogStatus.sUIInteracted){
|
||||||
mNestedScrollView.scrollTo(0, orbotLogStatus.sScrollPosition);
|
mOrbotLogViewController.onTrigger(M_SCROLL_TO_POSITION, Collections.singletonList(orbotLogStatus.sScrollPosition));
|
||||||
}else if(mNestedScrollView.canScrollVertically(enums.ScrollDirection.VERTICAL)){
|
}else if(mOrbotLogNestedScroll.canScrollVertically(enums.ScrollDirection.VERTICAL)){
|
||||||
|
if(orbotLogStatus.sScrollPosition==-1){
|
||||||
onScrollBottom();
|
onScrollBottom();
|
||||||
|
}else {
|
||||||
|
mOrbotLogViewController.onTrigger(M_SCROLL_TO_POSITION, Collections.singletonList((int)(mOrbotModel.onTrigger(M_GET_LIST_SIZE))*100));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
|
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
|
||||||
mNestedScrollView.setOnScrollChangeListener((View.OnScrollChangeListener) (v, scrollX, scrollY, oldScrollX, oldScrollY) -> {
|
mOrbotLogNestedScroll.setOnScrollChangeListener((View.OnScrollChangeListener) (v, scrollX, scrollY, oldScrollX, oldScrollY) -> {
|
||||||
orbotLogStatus.sScrollPosition = scrollY;
|
orbotLogStatus.sScrollPosition = scrollY;
|
||||||
|
if(!mOrbotLogNestedScroll.canScrollVertically(1)){
|
||||||
|
orbotLogStatus.sScrollPosition = -1;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Log.i("SUPERFUCK1","1");
|
||||||
mOrbotLogViewController.onTrigger(M_FLOAT_BUTTON_UPDATE);
|
mOrbotLogViewController.onTrigger(M_FLOAT_BUTTON_UPDATE);
|
||||||
mLogRecycleView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
|
mOrbotLogRecycleView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
|
||||||
orbotLogStatus.sOrientation = getResources().getConfiguration().orientation;
|
orbotLogStatus.sOrientation = getResources().getConfiguration().orientation;
|
||||||
}
|
}
|
||||||
});
|
|
||||||
|
|
||||||
mLogRecycleView.addOnScrollListener(new RecyclerView.OnScrollListener() {
|
|
||||||
@Override
|
@Override
|
||||||
public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
|
public void onScrollChanged() {
|
||||||
super.onScrollStateChanged(recyclerView, newState);
|
if (mOrbotLogNestedScroll.getChildAt(0).getBottom() <= (mOrbotLogNestedScroll.getHeight() + mOrbotLogNestedScroll.getScrollY())) {
|
||||||
if (!recyclerView.canScrollVertically(1) && newState==RecyclerView.SCROLL_STATE_IDLE) {
|
Log.i("SUPERFUCK1","2");
|
||||||
mOrbotLogViewController.onTrigger(M_FLOAT_BUTTON_UPDATE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
mLogRecycleView.setOnTouchListener((v, event) -> onTouch(event));
|
|
||||||
|
|
||||||
mNestedScrollView.setOnTouchListener((v, event) -> onTouch(event));
|
|
||||||
|
|
||||||
mLogRecycleView.addOnScrollListener(new RecyclerView.OnScrollListener() {
|
|
||||||
@Override
|
|
||||||
public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
|
|
||||||
super.onScrollStateChanged(recyclerView, newState);
|
|
||||||
if (!recyclerView.canScrollVertically(1) && newState==RecyclerView.SCROLL_STATE_IDLE) {
|
|
||||||
mOrbotLogViewController.onTrigger(M_FLOAT_BUTTON_UPDATE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
mNestedScrollView.getViewTreeObserver() .addOnScrollChangedListener(() -> {
|
|
||||||
|
|
||||||
if (mNestedScrollView.getChildAt(0).getBottom() <= (mNestedScrollView.getHeight() + mNestedScrollView.getScrollY())) {
|
|
||||||
mOrbotLogViewController.onTrigger(M_FLOAT_BUTTON_UPDATE);
|
mOrbotLogViewController.onTrigger(M_FLOAT_BUTTON_UPDATE);
|
||||||
if(!mIsRecycleviewInteracting){
|
if(!mIsRecycleviewInteracting){
|
||||||
|
Log.i("asdjaslkdjlasd","asd");
|
||||||
orbotLogStatus.sUIInteracted = false;
|
orbotLogStatus.sUIInteracted = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(mNestedScrollView.getScrollY() == 0){
|
else if(mOrbotLogNestedScroll.getScrollY() == 0){
|
||||||
mOrbotLogViewController.onTrigger(M_FLOAT_BUTTON_UPDATE);
|
Log.i("SUPERFUCK1111","2");
|
||||||
|
helperMethod.onDelayHandler(orbotLogController.this, 300, () -> {
|
||||||
|
if(mOrbotLogNestedScroll.getScrollY() == 0){
|
||||||
|
mOrbotLogViewController.onTrigger(M_SHOW_FLOATING_TOOLBAR);
|
||||||
}
|
}
|
||||||
|
return null;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void onScrollStateChange(RecyclerView recyclerView, int newState){
|
||||||
|
if (!recyclerView.canScrollVertically(1) && newState==RecyclerView.SCROLL_STATE_IDLE) {
|
||||||
|
mOrbotLogViewController.onTrigger(M_FLOAT_BUTTON_UPDATE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressLint("ClickableViewAccessibility")
|
||||||
|
private void initListener(){
|
||||||
|
|
||||||
|
mOrbotLogRecycleView.getViewTreeObserver().addOnGlobalLayoutListener(this);
|
||||||
|
|
||||||
|
mOrbotLogNestedScroll.getViewTreeObserver().addOnScrollChangedListener(this);
|
||||||
|
|
||||||
|
mOrbotLogRecycleView.addOnScrollListener(new RecyclerView.OnScrollListener() {
|
||||||
|
@Override
|
||||||
|
public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
|
||||||
|
super.onScrollStateChanged(recyclerView, newState);
|
||||||
|
onScrollStateChange(recyclerView, newState);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
mOrbotLogRecycleView.setOnTouchListener((v, event) -> onTouch(event));
|
||||||
|
|
||||||
|
mOrbotLogNestedScroll.setOnTouchListener((v, event) -> onTouch(event));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Helper Methods */
|
||||||
|
|
||||||
public boolean onTouch(MotionEvent event){
|
public boolean onTouch(MotionEvent event){
|
||||||
if(event.getAction() == MotionEvent.ACTION_UP){
|
if(event.getAction() == MotionEvent.ACTION_UP){
|
||||||
mIsRecycleviewInteracting = false;
|
mIsRecycleviewInteracting = false;
|
||||||
|
|
||||||
if(mNestedScrollView.canScrollVertically(enums.ScrollDirection.VERTICAL)){
|
if(mOrbotLogNestedScroll.canScrollVertically(enums.ScrollDirection.VERTICAL)){
|
||||||
|
Log.i("asdjaslkdjlasd","asd3");
|
||||||
orbotLogStatus.sUIInteracted = true;
|
orbotLogStatus.sUIInteracted = true;
|
||||||
}
|
}
|
||||||
}else if(event.getAction() == MotionEvent.ACTION_DOWN){
|
}else if(event.getAction() == MotionEvent.ACTION_DOWN || event.getAction() == MotionEvent.ACTION_MOVE){
|
||||||
mIsRecycleviewInteracting = true;
|
mIsRecycleviewInteracting = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Log.i("SUPERFUCK1","5");
|
||||||
mOrbotLogViewController.onTrigger(M_FLOAT_BUTTON_UPDATE);
|
mOrbotLogViewController.onTrigger(M_FLOAT_BUTTON_UPDATE);
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void logToString(){
|
private void logToString(){
|
||||||
if((int)mOrbotModel.onTrigger(M_GET_LIST_SIZE)>1){
|
if((int)mOrbotModel.onTrigger(M_GET_LIST_SIZE)>1){
|
||||||
for(int mCounter=0;mCounter<(int)mOrbotModel.onTrigger(M_GET_LIST_SIZE);mCounter++){
|
for(int mCounter=0;mCounter<(int)mOrbotModel.onTrigger(M_GET_LIST_SIZE);mCounter++){
|
||||||
mOrbotLogViewController.onTrigger(orbotLogEnums.eOrbotLogViewCommands.M_UPDATE_LOGS, Collections.singletonList(((ArrayList<logRowModel>)mOrbotModel.onTrigger(M_GET_LIST)).get(mCounter).getLog()));
|
mOrbotLogViewController.onTrigger(orbotLogEnums.eOrbotLogViewCommands.M_UPDATE_LOGS, Collections.singletonList(((ArrayList<logRowModel>)mOrbotModel.onTrigger(M_GET_LIST)).get(mCounter).getLog()));
|
||||||
mLogCounter+=1;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateLogs(){
|
|
||||||
new Thread(){
|
|
||||||
public void run(){
|
|
||||||
try {
|
|
||||||
sleep(1000);
|
|
||||||
while (!mActivityClosed){
|
|
||||||
if(status.sLogThemeStyleAdvanced){
|
|
||||||
sleep(800);
|
|
||||||
}else {
|
|
||||||
sleep(100);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(mLogCounter>0){
|
|
||||||
runOnUiThread(() -> {
|
|
||||||
if(orbotLocalConstants.mTorLogsHistory.size()>mLogCounter){
|
|
||||||
((ArrayList<logRowModel>)mOrbotModel.onTrigger(M_GET_LIST)).add(orbotLocalConstants.mTorLogsHistory.get(mLogCounter));
|
|
||||||
if(!status.sLogThemeStyleAdvanced){
|
|
||||||
mOrbotLogViewController.onTrigger(orbotLogEnums.eOrbotLogViewCommands.M_UPDATE_LOGS, Collections.singletonList(((ArrayList<logRowModel>)mOrbotModel.onTrigger(M_GET_LIST)).get(mLogCounter).getLog()));
|
|
||||||
}else {
|
|
||||||
if(mOrbotAdapter!=null){
|
|
||||||
mOrbotAdapter.notifyItemInserted((int)mOrbotModel.onTrigger(M_GET_LIST_SIZE)-1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!orbotLogStatus.sUIInteracted){
|
|
||||||
helperMethod.onDelayHandler(orbotLogController.this, 150, () -> {
|
|
||||||
Log.i("SUPFUCK4", orbotLogStatus.sUIInteracted + "");
|
|
||||||
if(!orbotLogStatus.sUIInteracted){
|
|
||||||
onScrollBottomAnimated(null);
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
mLogCounter+=1;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (InterruptedException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}.start();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void onScrollBottom() {
|
private void onScrollBottom() {
|
||||||
mNestedScrollView.scrollTo(0,helperMethod.pxFromDp((int)mOrbotModel.onTrigger(M_GET_LIST_SIZE)*100));
|
mOrbotLogNestedScroll.scrollTo(0,helperMethod.pxFromDp((int)mOrbotModel.onTrigger(M_GET_LIST_SIZE)*100));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* View Callback */
|
/* View Callback */
|
||||||
|
|
||||||
public void onScrollBottomAnimated(View view) {
|
public void onUITriggered(View view){
|
||||||
mNestedScrollView.fullScroll(View.FOCUS_DOWN);
|
if(view.getId() == R.id.pOrbotLogFloatingToolbar){
|
||||||
orbotLogStatus.sUIInteracted = false;
|
if(!orbotLogStatus.sUIInteracted || view!=null){
|
||||||
Log.i("SUPFUCK5", orbotLogStatus.sUIInteracted + "");
|
onScrollDownByFloatingToolabar();
|
||||||
|
}
|
||||||
if(view!=null){
|
if(view!=null){
|
||||||
mOrbotLogViewController.onTrigger(M_FLOAT_BUTTON_UPDATE);
|
mOrbotLogViewController.onTrigger(M_FLOAT_BUTTON_UPDATE);
|
||||||
}
|
}
|
||||||
}
|
}else if(view.getId() == R.id.pOrbotLogSettings){
|
||||||
|
|
||||||
public void onOpenInfo(View view) {
|
|
||||||
helperMethod.openActivity(settingLogController.class, constants.CONST_LIST_HISTORY, this,true);
|
helperMethod.openActivity(settingLogController.class, constants.CONST_LIST_HISTORY, this,true);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void onClose(View view){
|
public void onScrollDownByFloatingToolabar(){
|
||||||
|
if(!mIsRecycleviewInteracting){
|
||||||
|
orbotLogStatus.sUIInteracted = false;
|
||||||
|
mOrbotLogNestedScroll.fullScroll(View.FOCUS_DOWN);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onCloseTriggered(View view){
|
||||||
finish();
|
finish();
|
||||||
activityContextManager.getInstance().onRemoveStack(this);
|
activityContextManager.getInstance().onRemoveStack(this);
|
||||||
overridePendingTransition(R.anim.push_anim_in, R.anim.push_anim_out);
|
initializeStartupAnimation();
|
||||||
mActivityClosed = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* View Callback */
|
/* View Callback */
|
||||||
|
@ -330,7 +301,7 @@ public class orbotLogController extends AppCompatActivity {
|
||||||
private class orbotLogViewCallback implements eventObserver.eventListener{
|
private class orbotLogViewCallback implements eventObserver.eventListener{
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object invokeObserver(List<Object> data, Object e_type)
|
public Object invokeObserver(List<Object> pData, Object pType)
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -340,8 +311,21 @@ public class orbotLogController extends AppCompatActivity {
|
||||||
|
|
||||||
public class orbotModelCallback implements eventObserver.eventListener{
|
public class orbotModelCallback implements eventObserver.eventListener{
|
||||||
@Override
|
@Override
|
||||||
public Object invokeObserver(List<Object> data, Object e_type)
|
public Object invokeObserver(List<Object> pData, Object pType)
|
||||||
{
|
{
|
||||||
|
if(pType.equals(M_UPDATE_FLOATING_BUTTON)){
|
||||||
|
if(!orbotLogStatus.sUIInteracted){
|
||||||
|
onScrollDownByFloatingToolabar();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(pType.equals(M_UPDATE_LOGS)){
|
||||||
|
mOrbotLogViewController.onTrigger(orbotLogEnums.eOrbotLogViewCommands.M_UPDATE_LOGS, Collections.singletonList(((ArrayList<logRowModel>)mOrbotModel.onTrigger(M_GET_LIST)).get((int)pData.get(0)).getLog()));
|
||||||
|
}
|
||||||
|
else if(pType.equals(M_UPDATE_RECYCLE_VIEW)){
|
||||||
|
if(mOrbotAdapter!=null){
|
||||||
|
mOrbotAdapter.notifyItemInserted((int)pData.get(0));
|
||||||
|
}
|
||||||
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -359,7 +343,7 @@ public class orbotLogController extends AppCompatActivity {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onBackPressed() {
|
public void onBackPressed() {
|
||||||
onClose(null);
|
onCloseTriggered(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -367,7 +351,6 @@ public class orbotLogController extends AppCompatActivity {
|
||||||
super.onDestroy();
|
super.onDestroy();
|
||||||
activityContextManager.getInstance().onRemoveStack(this);
|
activityContextManager.getInstance().onRemoveStack(this);
|
||||||
activityContextManager.getInstance().setOrbotLogController(null);
|
activityContextManager.getInstance().setOrbotLogController(null);
|
||||||
mActivityClosed = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* External Calls */
|
/* External Calls */
|
||||||
|
|
|
@ -5,7 +5,7 @@ public class orbotLogEnums
|
||||||
/*Orbot Log View Manager*/
|
/*Orbot Log View Manager*/
|
||||||
|
|
||||||
public enum eOrbotLogViewCommands {
|
public enum eOrbotLogViewCommands {
|
||||||
M_UPDATE_LOGS, M_INIT_VIEWS, M_FLOAT_BUTTON_UPDATE
|
M_UPDATE_LOGS, M_INIT_VIEWS, M_FLOAT_BUTTON_UPDATE, M_SCROLL_TOP, M_SCROLL_BOTTOM, M_SCROLL_TO_POSITION, M_SHOW_FLOATING_TOOLBAR
|
||||||
}
|
}
|
||||||
|
|
||||||
/*Orbot Log Model Manager*/
|
/*Orbot Log Model Manager*/
|
||||||
|
@ -13,4 +13,10 @@ public class orbotLogEnums
|
||||||
public enum eOrbotLogModelCommands {
|
public enum eOrbotLogModelCommands {
|
||||||
M_GET_LIST, M_GET_LIST_SIZE
|
M_GET_LIST, M_GET_LIST_SIZE
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*Orbot Log Model Callback*/
|
||||||
|
|
||||||
|
public enum eOrbotLogModelCallbackCommands {
|
||||||
|
M_UPDATE_FLOATING_BUTTON, M_UPDATE_LOGS, M_UPDATE_RECYCLE_VIEW
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -1,21 +1,51 @@
|
||||||
package com.darkweb.genesissearchengine.appManager.orbotLogManager;
|
package com.darkweb.genesissearchengine.appManager.orbotLogManager;
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint;
|
||||||
|
import android.os.AsyncTask;
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
import com.darkweb.genesissearchengine.constants.constants;
|
import com.darkweb.genesissearchengine.constants.constants;
|
||||||
|
import com.darkweb.genesissearchengine.constants.status;
|
||||||
|
import com.darkweb.genesissearchengine.eventObserver;
|
||||||
import com.darkweb.genesissearchengine.helperManager.helperMethod;
|
import com.darkweb.genesissearchengine.helperManager.helperMethod;
|
||||||
import org.torproject.android.service.wrapper.logRowModel;
|
import org.torproject.android.service.wrapper.logRowModel;
|
||||||
|
import org.torproject.android.service.wrapper.orbotLocalConstants;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import static com.darkweb.genesissearchengine.appManager.orbotLogManager.orbotLogEnums.eOrbotLogModelCallbackCommands.M_UPDATE_FLOATING_BUTTON;
|
||||||
|
import static com.darkweb.genesissearchengine.appManager.orbotLogManager.orbotLogEnums.eOrbotLogModelCallbackCommands.M_UPDATE_LOGS;
|
||||||
|
import static com.darkweb.genesissearchengine.appManager.orbotLogManager.orbotLogEnums.eOrbotLogModelCallbackCommands.M_UPDATE_RECYCLE_VIEW;
|
||||||
|
import static java.lang.Thread.sleep;
|
||||||
|
import static org.mozilla.gecko.util.ThreadUtils.runOnUiThread;
|
||||||
|
|
||||||
class orbotLogModel
|
class orbotLogModel
|
||||||
{
|
{
|
||||||
/*Private Variables*/
|
/*Private Variables*/
|
||||||
|
|
||||||
private ArrayList<logRowModel> mModelList = new ArrayList<>();
|
private ArrayList<logRowModel> mModelList = new ArrayList<>();
|
||||||
|
private AppCompatActivity mContext;
|
||||||
|
private eventObserver.eventListener mEvent;
|
||||||
|
private LogHandler mLogHandler;
|
||||||
|
private int mLogCounter;
|
||||||
|
|
||||||
/*Helper Methods*/
|
/*Helper Methods*/
|
||||||
|
|
||||||
void setList(ArrayList<logRowModel> pModel)
|
public orbotLogModel(AppCompatActivity pContext, eventObserver.eventListener pEvent){
|
||||||
|
this.mContext = pContext;
|
||||||
|
this.mEvent = pEvent;
|
||||||
|
|
||||||
|
initLogHandler();
|
||||||
|
this.initList(orbotLocalConstants.mTorLogsHistory);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initLogHandler(){
|
||||||
|
this.mLogHandler = new LogHandler();
|
||||||
|
this.mLogHandler.execute();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initList(ArrayList<logRowModel> pModel)
|
||||||
{
|
{
|
||||||
if(pModel.size()>0){
|
if(pModel.size()>0){
|
||||||
mModelList.clear();
|
mModelList.clear();
|
||||||
|
@ -38,6 +68,58 @@ class orbotLogModel
|
||||||
|
|
||||||
/*Triggers*/
|
/*Triggers*/
|
||||||
|
|
||||||
|
public void onLoadLogs(){
|
||||||
|
new Thread(){
|
||||||
|
public void run(){
|
||||||
|
}
|
||||||
|
}.start();
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressLint("StaticFieldLeak")
|
||||||
|
class LogHandler extends AsyncTask<Void, Integer, Void> {
|
||||||
|
protected Void doInBackground(Void...arg0) {
|
||||||
|
try {
|
||||||
|
sleep(1000);
|
||||||
|
mLogCounter = mModelList.size();
|
||||||
|
while (!mContext.isDestroyed()){
|
||||||
|
if(status.sLogThemeStyleAdvanced){
|
||||||
|
sleep(800);
|
||||||
|
}else {
|
||||||
|
sleep(100);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(mLogCounter>0){
|
||||||
|
runOnUiThread(() -> {
|
||||||
|
if(orbotLocalConstants.mTorLogsHistory.size()>mLogCounter){
|
||||||
|
mModelList.add(orbotLocalConstants.mTorLogsHistory.get(mLogCounter));
|
||||||
|
Log.i("asdasd : ",orbotLocalConstants.mTorLogsHistory.get(mLogCounter).getLog());
|
||||||
|
if(!status.sLogThemeStyleAdvanced){
|
||||||
|
mEvent.invokeObserver(Collections.singletonList(mLogCounter), M_UPDATE_LOGS);
|
||||||
|
}else {
|
||||||
|
mEvent.invokeObserver(Collections.singletonList(mModelList.size()-1), M_UPDATE_RECYCLE_VIEW);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!orbotLogStatus.sUIInteracted){
|
||||||
|
helperMethod.onDelayHandler(mContext, 150, () -> {
|
||||||
|
if(!orbotLogStatus.sUIInteracted){
|
||||||
|
mEvent.invokeObserver(null, M_UPDATE_FLOATING_BUTTON);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
mLogCounter+=1;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (InterruptedException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void onTrigger(orbotLogEnums.eOrbotLogViewCommands pCommands, List<Object> pData){
|
public void onTrigger(orbotLogEnums.eOrbotLogViewCommands pCommands, List<Object> pData){
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,16 +1,18 @@
|
||||||
package com.darkweb.genesissearchengine.appManager.orbotLogManager;
|
package com.darkweb.genesissearchengine.appManager.orbotLogManager;
|
||||||
|
|
||||||
|
import android.os.Handler;
|
||||||
|
import android.util.Log;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
import androidx.core.widget.NestedScrollView;
|
import androidx.core.widget.NestedScrollView;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
import com.darkweb.genesissearchengine.constants.enums;
|
import com.darkweb.genesissearchengine.constants.enums;
|
||||||
import com.darkweb.genesissearchengine.eventObserver;
|
import com.darkweb.genesissearchengine.eventObserver;
|
||||||
|
import com.darkweb.genesissearchengine.helperManager.helperMethod;
|
||||||
import com.darkweb.genesissearchengine.helperManager.sharedUIMethod;
|
import com.darkweb.genesissearchengine.helperManager.sharedUIMethod;
|
||||||
|
import com.example.myapplication.R;
|
||||||
import com.google.android.material.floatingactionbutton.FloatingActionButton;
|
import com.google.android.material.floatingactionbutton.FloatingActionButton;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
class orbotLogViewController
|
class orbotLogViewController
|
||||||
|
@ -20,32 +22,32 @@ class orbotLogViewController
|
||||||
private AppCompatActivity mContext;
|
private AppCompatActivity mContext;
|
||||||
private eventObserver.eventListener mEvent;
|
private eventObserver.eventListener mEvent;
|
||||||
|
|
||||||
private TextView mLogs;
|
private TextView mOrbotLogLoadingText;
|
||||||
private RecyclerView mLogRecycleView;
|
private RecyclerView mOrbotLogRecycleView;
|
||||||
private NestedScrollView mNestedScrollView;
|
private NestedScrollView mOrbotLogNestedScroll;
|
||||||
private FloatingActionButton mFloatingScroller;
|
private FloatingActionButton mOrbotLogFloatingToolbar;
|
||||||
|
|
||||||
/*Initializations*/
|
/*Initializations*/
|
||||||
|
|
||||||
orbotLogViewController(AppCompatActivity pContext, eventObserver.eventListener pEvent, TextView pLogs, RecyclerView pLogRecycleView, NestedScrollView pNestedScrollView, FloatingActionButton pFloatingScroller)
|
orbotLogViewController(AppCompatActivity pContext, eventObserver.eventListener pEvent, TextView pOrbotLogLoadingText, RecyclerView pOrbotLogRecycleView, NestedScrollView pOrbotLogNestedScroll, FloatingActionButton pOrbotLogFloatingToolbar)
|
||||||
{
|
{
|
||||||
this.mContext = pContext;
|
this.mContext = pContext;
|
||||||
this.mLogs = pLogs;
|
|
||||||
this.mLogRecycleView = pLogRecycleView;
|
|
||||||
this.mNestedScrollView = pNestedScrollView;
|
|
||||||
this.mFloatingScroller = pFloatingScroller;
|
|
||||||
this.mEvent = pEvent;
|
this.mEvent = pEvent;
|
||||||
|
this.mOrbotLogLoadingText = pOrbotLogLoadingText;
|
||||||
|
this.mOrbotLogRecycleView = pOrbotLogRecycleView;
|
||||||
|
this.mOrbotLogNestedScroll = pOrbotLogNestedScroll;
|
||||||
|
this.mOrbotLogFloatingToolbar = pOrbotLogFloatingToolbar;
|
||||||
|
|
||||||
initPostUI();
|
initPostUI();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initViews(boolean pLogThemeStyleAdvanced){
|
private void initViews(boolean pLogThemeStyleAdvanced){
|
||||||
if(pLogThemeStyleAdvanced){
|
if(pLogThemeStyleAdvanced){
|
||||||
mLogRecycleView.setVisibility(View.VISIBLE);
|
mOrbotLogRecycleView.setVisibility(View.VISIBLE);
|
||||||
mLogs.setVisibility(View.GONE);
|
mOrbotLogLoadingText.setVisibility(View.GONE);
|
||||||
}else {
|
}else {
|
||||||
mLogRecycleView.setVisibility(View.GONE);
|
mOrbotLogRecycleView.setVisibility(View.GONE);
|
||||||
mLogs.setVisibility(View.VISIBLE);
|
mOrbotLogLoadingText.setVisibility(View.VISIBLE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -57,20 +59,38 @@ class orbotLogViewController
|
||||||
|
|
||||||
private void onUpdateLogs(String pLogs){
|
private void onUpdateLogs(String pLogs){
|
||||||
pLogs = "~ " + pLogs;
|
pLogs = "~ " + pLogs;
|
||||||
mLogs.setText(String.format("%s%s",mLogs.getText() , "\n\n" + pLogs ));
|
mOrbotLogLoadingText.setText(String.format("%s%s", mOrbotLogLoadingText.getText() , "\n\n" + pLogs ));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onFloatButtonUpdate(){
|
private void onFloatButtonUpdate(){
|
||||||
if(mNestedScrollView.canScrollVertically(enums.ScrollDirection.VERTICAL)){
|
if(mOrbotLogNestedScroll.canScrollVertically(enums.ScrollDirection.VERTICAL)){
|
||||||
mFloatingScroller.setVisibility(View.VISIBLE);
|
mOrbotLogFloatingToolbar.setVisibility(View.VISIBLE);
|
||||||
mFloatingScroller.animate().cancel();
|
mOrbotLogFloatingToolbar.animate().setDuration(250).alpha(1);
|
||||||
mFloatingScroller.animate().setDuration(250).alpha(1);
|
|
||||||
}else {
|
}else {
|
||||||
mFloatingScroller.animate().cancel();
|
mOrbotLogFloatingToolbar.animate().cancel();
|
||||||
mFloatingScroller.animate().setDuration(250).alpha(0).withEndAction(() -> mFloatingScroller.setVisibility(View.GONE));
|
mOrbotLogFloatingToolbar.animate().setDuration(250).alpha(0).withEndAction(() -> mOrbotLogFloatingToolbar.setVisibility(View.GONE));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void onShowFloatingToolbar(){
|
||||||
|
mOrbotLogFloatingToolbar.setVisibility(View.VISIBLE);
|
||||||
|
mOrbotLogFloatingToolbar.animate().setDuration(250).alpha(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void onScrollToTop(){
|
||||||
|
mOrbotLogNestedScroll.stopNestedScroll();
|
||||||
|
mOrbotLogNestedScroll.scrollTo(0,0);
|
||||||
|
mOrbotLogNestedScroll.smoothScrollTo(0,0);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void onScrollToBottom(){
|
||||||
|
mOrbotLogNestedScroll.stopNestedScroll();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void onScrollToSize(int pSize){
|
||||||
|
mOrbotLogNestedScroll.stopNestedScroll();
|
||||||
|
mOrbotLogNestedScroll.scrollTo(0, pSize);
|
||||||
|
}
|
||||||
|
|
||||||
/*Triggers*/
|
/*Triggers*/
|
||||||
|
|
||||||
|
@ -81,12 +101,23 @@ class orbotLogViewController
|
||||||
else if(pCommands.equals(orbotLogEnums.eOrbotLogViewCommands.M_INIT_VIEWS)){
|
else if(pCommands.equals(orbotLogEnums.eOrbotLogViewCommands.M_INIT_VIEWS)){
|
||||||
initViews((boolean)pData.get(0));
|
initViews((boolean)pData.get(0));
|
||||||
}
|
}
|
||||||
else if(pCommands.equals(orbotLogEnums.eOrbotLogViewCommands.M_FLOAT_BUTTON_UPDATE)){
|
else if(pCommands.equals(orbotLogEnums.eOrbotLogViewCommands.M_SCROLL_TO_POSITION)){
|
||||||
onFloatButtonUpdate();
|
onScrollToSize((int)pData.get(0));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onTrigger(orbotLogEnums.eOrbotLogViewCommands pCommands){
|
public void onTrigger(orbotLogEnums.eOrbotLogViewCommands pCommands){
|
||||||
onTrigger(pCommands, null);
|
if(pCommands.equals(orbotLogEnums.eOrbotLogViewCommands.M_SCROLL_TOP)){
|
||||||
|
onScrollToTop();
|
||||||
|
}
|
||||||
|
else if(pCommands.equals(orbotLogEnums.eOrbotLogViewCommands.M_SCROLL_BOTTOM)){
|
||||||
|
onScrollToBottom();
|
||||||
|
}
|
||||||
|
else if(pCommands.equals(orbotLogEnums.eOrbotLogViewCommands.M_FLOAT_BUTTON_UPDATE)){
|
||||||
|
onFloatButtonUpdate();
|
||||||
|
}
|
||||||
|
else if(pCommands.equals(orbotLogEnums.eOrbotLogViewCommands.M_SHOW_FLOATING_TOOLBAR)){
|
||||||
|
onShowFloatingToolbar();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,10 +42,10 @@ public class orbotController extends AppCompatActivity {
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||||
overridePendingTransition(R.anim.push_anim_in, R.anim.push_anim_out);
|
|
||||||
|
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
setContentView(R.layout.orbot_settings_view);
|
setContentView(R.layout.orbot_settings_view);
|
||||||
|
initializeStartupAnimation();
|
||||||
|
|
||||||
if(!status.mThemeApplying){
|
if(!status.mThemeApplying){
|
||||||
activityContextManager.getInstance().onStack(this);
|
activityContextManager.getInstance().onStack(this);
|
||||||
|
@ -111,8 +111,14 @@ public class orbotController extends AppCompatActivity {
|
||||||
|
|
||||||
public void onClose(View view){
|
public void onClose(View view){
|
||||||
finish();
|
finish();
|
||||||
|
initializeStartupAnimation();
|
||||||
activityContextManager.getInstance().onRemoveStack(this);
|
activityContextManager.getInstance().onRemoveStack(this);
|
||||||
overridePendingTransition(R.anim.push_anim_out_reverse, R.anim.push_anim_in_reverse);
|
}
|
||||||
|
|
||||||
|
public void initializeStartupAnimation(){
|
||||||
|
if(activityContextManager.getInstance().getHomeController().isSplashScreenLoading()){
|
||||||
|
overridePendingTransition(R.anim.translate_fade_left_reverse, R.anim.translate_fade_right_reverse);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* LOCAL OVERRIDES */
|
/* LOCAL OVERRIDES */
|
||||||
|
|
|
@ -38,7 +38,7 @@ public class proxyStatusController extends AppCompatActivity {
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||||
overridePendingTransition(R.anim.push_anim_in, R.anim.push_anim_out);
|
overridePendingTransition(R.anim.popup_scale_in, R.anim.popup_scale_out);
|
||||||
|
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
setContentView(R.layout.proxy_status_view);
|
setContentView(R.layout.proxy_status_view);
|
||||||
|
@ -88,7 +88,7 @@ public class proxyStatusController extends AppCompatActivity {
|
||||||
public void onClose(View view){
|
public void onClose(View view){
|
||||||
finish();
|
finish();
|
||||||
activityContextManager.getInstance().onRemoveStack(this);
|
activityContextManager.getInstance().onRemoveStack(this);
|
||||||
overridePendingTransition(R.anim.push_anim_out_reverse, R.anim.push_anim_in_reverse);
|
overridePendingTransition(R.anim.popup_scale_in, R.anim.popup_scale_out);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* LOCAL OVERRIDES */
|
/* LOCAL OVERRIDES */
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
package com.darkweb.genesissearchengine.appManager.settingManager.advanceManager;
|
package com.darkweb.genesissearchengine.appManager.settingManager.advanceManager;
|
||||||
|
|
||||||
|
import static com.darkweb.genesissearchengine.pluginManager.pluginEnums.eMessageManager.M_IMAGE_UPDATE;
|
||||||
|
import static com.darkweb.genesissearchengine.pluginManager.pluginEnums.eMessageManager.M_UPDATE_BOOKMARK;
|
||||||
|
|
||||||
import android.content.res.Configuration;
|
import android.content.res.Configuration;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
@ -155,11 +158,16 @@ public class settingAdvanceController extends AppCompatActivity {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onShowImages(View view) {
|
public void onShowImages(View view) {
|
||||||
|
if(status.sShowImages == 0 && view.getId() == R.id.pAdvanceOption2 && !mImageOption.get(1).isChecked() || status.sShowImages == 2 && view.getId() == R.id.pAdvanceOption1 && !mImageOption.get(0).isChecked()){
|
||||||
|
pluginController.getInstance().onMessageManagerInvoke(Collections.singletonList(this), M_IMAGE_UPDATE);
|
||||||
|
}
|
||||||
|
|
||||||
mIsChanged = true;
|
mIsChanged = true;
|
||||||
mSettingAdvanceViewController.onTrigger(settingAdvanceEnums.eAdvanceViewController.M_CLEAR_IMAGE, Collections.singletonList(null));
|
mSettingAdvanceViewController.onTrigger(settingAdvanceEnums.eAdvanceViewController.M_CLEAR_IMAGE, Collections.singletonList(null));
|
||||||
mSettingAdvanceModel.onTrigger(settingAdvanceEnums.eAdvanceModel.M_SHOW_IMAGE, Collections.singletonList(view));
|
mSettingAdvanceModel.onTrigger(settingAdvanceEnums.eAdvanceModel.M_SHOW_IMAGE, Collections.singletonList(view));
|
||||||
mSettingAdvanceViewController.onTrigger(settingAdvanceEnums.eAdvanceViewController.M_SET_IMAGE, Collections.singletonList(view));
|
mSettingAdvanceViewController.onTrigger(settingAdvanceEnums.eAdvanceViewController.M_SET_IMAGE, Collections.singletonList(view));
|
||||||
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_INT, Arrays.asList(keys.SETTING_SHOW_IMAGES,status.sShowImages));
|
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_INT, Arrays.asList(keys.SETTING_SHOW_IMAGES,status.sShowImages));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onGridView(View view) {
|
public void onGridView(View view) {
|
||||||
|
|
|
@ -234,6 +234,7 @@ public class settingClearController extends AppCompatActivity {
|
||||||
status.mThemeApplying = true;
|
status.mThemeApplying = true;
|
||||||
onBackPressed();
|
onBackPressed();
|
||||||
overridePendingTransition(R.anim.fade_in_lang, R.anim.fade_out_lang);
|
overridePendingTransition(R.anim.fade_in_lang, R.anim.fade_out_lang);
|
||||||
|
activityContextManager.getInstance().getHomeController().onResetData();
|
||||||
activityContextManager.getInstance().getHomeController().onReInitTheme();
|
activityContextManager.getInstance().getHomeController().onReInitTheme();
|
||||||
activityContextManager.getInstance().getSettingController().onReInitTheme();
|
activityContextManager.getInstance().getSettingController().onReInitTheme();
|
||||||
helperMethod.openActivity(settingClearController.class, constants.CONST_LIST_HISTORY, settingClearController.this, true);
|
helperMethod.openActivity(settingClearController.class, constants.CONST_LIST_HISTORY, settingClearController.this, true);
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
package com.darkweb.genesissearchengine.appManager.settingManager.generalManager;
|
package com.darkweb.genesissearchengine.appManager.settingManager.generalManager;
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.content.res.Configuration;
|
import android.content.res.Configuration;
|
||||||
import android.content.res.Resources;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
@ -13,7 +11,6 @@ import androidx.appcompat.app.AppCompatActivity;
|
||||||
import androidx.appcompat.app.AppCompatDelegate;
|
import androidx.appcompat.app.AppCompatDelegate;
|
||||||
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
||||||
import com.darkweb.genesissearchengine.appManager.helpManager.helpController;
|
import com.darkweb.genesissearchengine.appManager.helpManager.helpController;
|
||||||
import com.darkweb.genesissearchengine.appManager.homeManager.homeController.homeController;
|
|
||||||
import com.darkweb.genesissearchengine.appManager.languageManager.languageController;
|
import com.darkweb.genesissearchengine.appManager.languageManager.languageController;
|
||||||
import com.darkweb.genesissearchengine.constants.constants;
|
import com.darkweb.genesissearchengine.constants.constants;
|
||||||
import com.darkweb.genesissearchengine.constants.enums;
|
import com.darkweb.genesissearchengine.constants.enums;
|
||||||
|
@ -31,9 +28,6 @@ import com.google.android.material.switchmaterial.SwitchMaterial;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
|
||||||
|
|
||||||
import static com.darkweb.genesissearchengine.pluginManager.pluginEnums.eMessageManager.M_APPLICATION_CRASH;
|
|
||||||
|
|
||||||
public class settingGeneralController extends AppCompatActivity {
|
public class settingGeneralController extends AppCompatActivity {
|
||||||
|
|
||||||
|
@ -100,7 +94,7 @@ public class settingGeneralController extends AppCompatActivity {
|
||||||
|
|
||||||
private void viewsInitializations() {
|
private void viewsInitializations() {
|
||||||
|
|
||||||
mFullScreenMode = findViewById(R.id.pJSStatus);
|
mFullScreenMode = findViewById(R.id.pSecureJavascriptStatus);
|
||||||
mThemeLight = findViewById(R.id.pThemeLight);
|
mThemeLight = findViewById(R.id.pThemeLight);
|
||||||
mThemeDark = findViewById(R.id.pThemeDark);
|
mThemeDark = findViewById(R.id.pThemeDark);
|
||||||
mThemeDefault = findViewById(R.id.pThemeDefault);
|
mThemeDefault = findViewById(R.id.pThemeDefault);
|
||||||
|
|
|
@ -91,7 +91,7 @@ public class tabAdapter extends RecyclerView.Adapter<tabAdapter.listViewHolder>
|
||||||
{
|
{
|
||||||
holder.bindListView(mModelList.get(position));
|
holder.bindListView(mModelList.get(position));
|
||||||
holder.itemView.setTag(position);
|
holder.itemView.setTag(position);
|
||||||
holder.itemView.findViewById(R.id.pRemoveRow).setTag(position);
|
holder.itemView.findViewById(R.id.pOrbotRowRemove).setTag(position);
|
||||||
holder.itemView.findViewById(R.id.pLoadSession).setTag(position);
|
holder.itemView.findViewById(R.id.pLoadSession).setTag(position);
|
||||||
|
|
||||||
if(position == 0 && status.sTabGridLayoutEnabled && !mViewLoaded){
|
if(position == 0 && status.sTabGridLayoutEnabled && !mViewLoaded){
|
||||||
|
@ -268,10 +268,10 @@ public class tabAdapter extends RecyclerView.Adapter<tabAdapter.listViewHolder>
|
||||||
}
|
}
|
||||||
|
|
||||||
void bindListView(tabRowModel model) {
|
void bindListView(tabRowModel model) {
|
||||||
mHeader = itemView.findViewById(R.id.pHeader);
|
mHeader = itemView.findViewById(R.id.pOrbotRowHeader);
|
||||||
mDescription = itemView.findViewById(R.id.pDescription);
|
mDescription = itemView.findViewById(R.id.pOrbotRowDescription);
|
||||||
mLoadSession = itemView.findViewById(R.id.pLoadSession);
|
mLoadSession = itemView.findViewById(R.id.pLoadSession);
|
||||||
mRemoveRow = itemView.findViewById(R.id.pRemoveRow);
|
mRemoveRow = itemView.findViewById(R.id.pOrbotRowRemove);
|
||||||
mWebThumbnail = itemView.findViewById(R.id.pWebThumbnail);
|
mWebThumbnail = itemView.findViewById(R.id.pWebThumbnail);
|
||||||
mDate = itemView.findViewById(R.id.pDate);
|
mDate = itemView.findViewById(R.id.pDate);
|
||||||
mSelectedView = itemView.findViewById(R.id.pSelectedView);
|
mSelectedView = itemView.findViewById(R.id.pSelectedView);
|
||||||
|
@ -340,6 +340,15 @@ public class tabAdapter extends RecyclerView.Adapter<tabAdapter.listViewHolder>
|
||||||
mHeader.setText("about:blank");
|
mHeader.setText("about:blank");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(mHeadText.startsWith("resource")){
|
||||||
|
if(mHeadText.equals(CONST_GENESIS_URL_CACHED) || mHeadText.equals(CONST_GENESIS_URL_CACHED_DARK)){
|
||||||
|
mHeader.setText(CONST_GENESIS_DOMAIN_URL);
|
||||||
|
}
|
||||||
|
else if(mHeadText.equals(CONST_GENESIS_HELP_URL_CACHE) || mHeadText.equals(CONST_GENESIS_HELP_URL_CACHE_DARK)){
|
||||||
|
mHeader.setText(CONST_GENESIS_HELP_URL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(mDescText.equals("$TITLE") || mDescText.startsWith("http://loading") || mDescText.startsWith("loading")){
|
if(mDescText.equals("$TITLE") || mDescText.startsWith("http://loading") || mDescText.startsWith("loading")){
|
||||||
mDescription.setText(mURL);
|
mDescription.setText(mURL);
|
||||||
}
|
}
|
||||||
|
@ -388,7 +397,7 @@ public class tabAdapter extends RecyclerView.Adapter<tabAdapter.listViewHolder>
|
||||||
}
|
}
|
||||||
|
|
||||||
if(status.sTabGridLayoutEnabled){
|
if(status.sTabGridLayoutEnabled){
|
||||||
CardView mLayout = itemView.findViewById(R.id.pRowContainerInner);
|
CardView mLayout = itemView.findViewById(R.id.pTABRowContainer);
|
||||||
CardView mCardView = itemView.findViewById(R.id.pCardViewParent);
|
CardView mCardView = itemView.findViewById(R.id.pCardViewParent);
|
||||||
ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) mLayout.getLayoutParams();
|
ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) mLayout.getLayoutParams();
|
||||||
|
|
||||||
|
@ -477,7 +486,7 @@ public class tabAdapter extends RecyclerView.Adapter<tabAdapter.listViewHolder>
|
||||||
onSelectionClear(mSelectedView);
|
onSelectionClear(mSelectedView);
|
||||||
notifyItemChanged(mModelList.size()-1);
|
notifyItemChanged(mModelList.size()-1);
|
||||||
}
|
}
|
||||||
}else if(v.getId() == R.id.pRemoveRow){
|
}else if(v.getId() == R.id.pOrbotRowRemove){
|
||||||
v.setEnabled(false);
|
v.setEnabled(false);
|
||||||
onRemoveRowCross(this.getLayoutPosition());
|
onRemoveRowCross(this.getLayoutPosition());
|
||||||
}
|
}
|
||||||
|
|
|
@ -198,7 +198,7 @@ public class tabController extends Fragment
|
||||||
mClearSelection = mRootView.findViewById(R.id.pClearSelection);
|
mClearSelection = mRootView.findViewById(R.id.pClearSelection);
|
||||||
mPopupUndo = mRootView.findViewById(R.id.pPopupUndo);
|
mPopupUndo = mRootView.findViewById(R.id.pPopupUndo);
|
||||||
mSelectionCount = mRootView.findViewById(R.id.pSelectionCount);
|
mSelectionCount = mRootView.findViewById(R.id.pSelectionCount);
|
||||||
mBlocker = mRootView.findViewById(R.id.pBlocker);
|
mBlocker = mRootView.findViewById(R.id.pSecureRootBlocker);
|
||||||
mNestedScrollView = mRootView.findViewById(R.id.pNestedScroll);
|
mNestedScrollView = mRootView.findViewById(R.id.pNestedScroll);
|
||||||
mNewTab = mRootView.findViewById(R.id.pNewTab);
|
mNewTab = mRootView.findViewById(R.id.pNewTab);
|
||||||
|
|
||||||
|
@ -234,7 +234,10 @@ public class tabController extends Fragment
|
||||||
float scrollY = mNestedScrollView.getScrollY();
|
float scrollY = mNestedScrollView.getScrollY();
|
||||||
|
|
||||||
minScroll = scrollY;
|
minScroll = scrollY;
|
||||||
int orientation = mContextManager.getHomeController().getResources().getConfiguration().orientation;
|
if(activityContextManager.getInstance().getHomeController()==null){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
int orientation = activityContextManager.getInstance().getHomeController().getResources().getConfiguration().orientation;
|
||||||
if (orientation == Configuration.ORIENTATION_PORTRAIT) {
|
if (orientation == Configuration.ORIENTATION_PORTRAIT) {
|
||||||
maxScroll = mRecycleView.computeVerticalScrollRange() - mScreenHeight*0.350f + helperMethod.pxFromDp(helperMethod.getNavigationBarSize(getContext()).y);
|
maxScroll = mRecycleView.computeVerticalScrollRange() - mScreenHeight*0.350f + helperMethod.pxFromDp(helperMethod.getNavigationBarSize(getContext()).y);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -66,8 +66,9 @@ public class constants
|
||||||
|
|
||||||
/*MENU CONSTANTS*/
|
/*MENU CONSTANTS*/
|
||||||
|
|
||||||
public static final int CONST_LIST_HISTORY = 1;
|
public static final int CONST_LIST_EXTERNAL_SHORTCUT = 1;
|
||||||
public static final int CONST_LIST_BOOKMARK = 2;
|
public static final int CONST_LIST_HISTORY = 2;
|
||||||
|
public static final int CONST_LIST_BOOKMARK = 3;
|
||||||
|
|
||||||
/*SETTINGS CONSTANTS*/
|
/*SETTINGS CONSTANTS*/
|
||||||
|
|
||||||
|
@ -105,5 +106,10 @@ public class constants
|
||||||
public static final String CONST_ENCRYPTION_KEY = "Zr4u7x!A%D*F-JaNdRgUkXp2s5v8y/B?";
|
public static final String CONST_ENCRYPTION_KEY = "Zr4u7x!A%D*F-JaNdRgUkXp2s5v8y/B?";
|
||||||
public static final String CONST_ENCRYPTION_KEY_DATABASE = "Zr4u7x!!A%D*F-JaNdsS@@gUbbp^^5v8y/B?";
|
public static final String CONST_ENCRYPTION_KEY_DATABASE = "Zr4u7x!!A%D*F-JaNdsS@@gUbbp^^5v8y/B?";
|
||||||
|
|
||||||
|
/*SHORTCUT CONSTANTS*/
|
||||||
|
public static final String CONST_EXTERNAL_SHORTCUT_COMMAND_ERASE = "EXTERNAL_SHORTCUT_COMMAND_ERASE";
|
||||||
|
public static final String CONST_EXTERNAL_SHORTCUT_COMMAND_ERASE_OPEN = "EXTERNAL_SHORTCUT_COMMAND_ERASE_OPEN";
|
||||||
|
public static final String CONST_EXTERNAL_SHORTCUT_COMMAND_RESTART = "EXTERNAL_SHORTCUT_COMMAND_RESTART";
|
||||||
|
public static final String CONST_EXTERNAL_SHORTCUT_COMMAND_NAVIGATE = "EXTERNAL_SHORTCUT_COMMAND_NAVIGATE";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,7 @@ public class enums
|
||||||
on_verify_selected_url_menu,FINDER_RESULT_CALLBACK,M_ADMOB_BANNER_RECHECK,M_OPEN_SESSION,M_DOWNLOAD_FAILURE, M_ADVERT_LOADED,
|
on_verify_selected_url_menu,FINDER_RESULT_CALLBACK,M_ADMOB_BANNER_RECHECK,M_OPEN_SESSION,M_DOWNLOAD_FAILURE, M_ADVERT_LOADED,
|
||||||
welcome, reload,download_folder, M_UPDATE_THEME,M_ON_BANNER_UPDATE, M_LOAD_HOMEPAGE_GENESIS,M_INIT_TAB_COUNT_FORCED,M_SPLASH_DISABLE,M_NEW_LINK_IN_NEW_TAB,M_RESET_SUGGESTION,
|
welcome, reload,download_folder, M_UPDATE_THEME,M_ON_BANNER_UPDATE, M_LOAD_HOMEPAGE_GENESIS,M_INIT_TAB_COUNT_FORCED,M_SPLASH_DISABLE,M_NEW_LINK_IN_NEW_TAB,M_RESET_SUGGESTION,
|
||||||
url_triggered, url_triggered_new_tab,url_clear,fetch_favicon,M_OPEN_BOOKMARK_SETTING, M_COPY_URL,url_clear_at,remove_from_database,is_empty,M_HOME_PAGE,M_PRELOAD_URL,ON_KEYBOARD_CLOSE,M_CLOSE_TAB,
|
url_triggered, url_triggered_new_tab,url_clear,fetch_favicon,M_OPEN_BOOKMARK_SETTING, M_COPY_URL,url_clear_at,remove_from_database,is_empty,M_HOME_PAGE,M_PRELOAD_URL,ON_KEYBOARD_CLOSE,M_CLOSE_TAB,
|
||||||
on_close_sesson,on_long_press, on_full_screen,on_handle_external_intent,on_update_suggestion_url,progress_update,progress_update_forced, ON_EXPAND_TOP_BAR,recheck_orbot,on_url_load,on_playstore_load,back_list_empty,start_proxy, ON_UPDATE_THEME, M_NEW_IDENTITY, M_NEW_IDENTITY_MESSAGED, M_INITIALIZE_TAB_SINGLE, M_INITIALIZE_TAB_LINK,on_request_completed, on_update_history,on_update_suggestion,M_WELCOME_MESSAGE,ON_FIRST_PAINT, ON_LOAD_TAB_ON_RESUME, ON_SESSION_REINIT,on_page_loaded,on_load_error, M_ORBOT_LOADING,download_file_popup,on_init_ads, M_GET_CURRENT_URL,search_update, open_new_tab,open_new_tab_instant
|
on_close_sesson,on_long_press, on_full_screen,on_handle_external_intent,on_update_suggestion_url,progress_update,progress_update_forced, ON_EXPAND_TOP_BAR,recheck_orbot,on_url_load,on_playstore_load,back_list_empty,start_proxy, ON_UPDATE_THEME, M_NEW_IDENTITY, M_NEW_IDENTITY_MESSAGED, M_INITIALIZE_TAB_SINGLE, M_HOME_BUTTON_PRESSED, M_INITIALIZE_TAB_LINK,on_request_completed, on_update_history,on_update_suggestion,M_WELCOME_MESSAGE,ON_FIRST_PAINT, ON_LOAD_TAB_ON_RESUME, ON_SESSION_REINIT,on_page_loaded,on_load_error, M_ORBOT_LOADING,download_file_popup,on_init_ads, M_GET_CURRENT_URL,search_update, open_new_tab,open_new_tab_instant
|
||||||
}
|
}
|
||||||
|
|
||||||
/*General Enums*/
|
/*General Enums*/
|
||||||
|
|
|
@ -5,6 +5,7 @@ public class keys
|
||||||
/*GENERIC*/
|
/*GENERIC*/
|
||||||
|
|
||||||
public static final String M_ACTIVITY_RESPONSE = "M_ACTIVITY_RESPONSE";
|
public static final String M_ACTIVITY_RESPONSE = "M_ACTIVITY_RESPONSE";
|
||||||
|
public static final String M_ACTIVITY_NAVIGATION_BUNDLE_KEY = "M_ACTIVITY_NAVIGATION_BUNDLE_KEY";
|
||||||
|
|
||||||
/*Home page*/
|
/*Home page*/
|
||||||
|
|
||||||
|
@ -77,10 +78,9 @@ public class keys
|
||||||
public static final String BOOKMARK_SETTING_URL = "BOOKMARK_SETTING_URL";
|
public static final String BOOKMARK_SETTING_URL = "BOOKMARK_SETTING_URL";
|
||||||
public static final String BOOKMARK_SETTING_ID = "BOOKMARK_SETTING_ID";
|
public static final String BOOKMARK_SETTING_ID = "BOOKMARK_SETTING_ID";
|
||||||
|
|
||||||
/*Landing Settings*/
|
/*External Shortcut Settings*/
|
||||||
public static final String LANDING_TITLE_KEY = "LANDING_TITLE_KEY";
|
public static final String EXTERNAL_SHORTCUT_COMMAND = "EXTERNAL_SHORTCUT_COMMAND";
|
||||||
public static final String LANDING_SUB_TITLE_KEY = "LANDING_SUB_TITLE_KEY";
|
public static final String EXTERNAL_SHORTCUT_COMMAND_NAVIGATE = "EXTERNAL_SHORTCUT_COMMAND";
|
||||||
public static final String LANDING_SUBMIT_KEY = "LANDING_SUBMIT_KEY";
|
|
||||||
public static final String LANDING_LAYOUT_RESID = "LANDING_LAYOUT_RESID";
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -61,7 +61,7 @@ class imageDataModel
|
||||||
}
|
}
|
||||||
|
|
||||||
public void mBackgroundThread(){
|
public void mBackgroundThread(){
|
||||||
new Thread(){
|
/*new Thread(){
|
||||||
public void run(){
|
public void run(){
|
||||||
while (true) {
|
while (true) {
|
||||||
try {
|
try {
|
||||||
|
@ -82,7 +82,7 @@ class imageDataModel
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}.start();
|
}.start();*/
|
||||||
}
|
}
|
||||||
|
|
||||||
private Bitmap getBitmapFromURL(String src) {
|
private Bitmap getBitmapFromURL(String src) {
|
||||||
|
|
|
@ -13,6 +13,7 @@ import android.content.ContentResolver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
|
import android.content.pm.ResolveInfo;
|
||||||
import android.content.res.Configuration;
|
import android.content.res.Configuration;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
|
@ -52,9 +53,12 @@ import androidx.core.content.ContextCompat;
|
||||||
import androidx.core.content.FileProvider;
|
import androidx.core.content.FileProvider;
|
||||||
import androidx.core.graphics.ColorUtils;
|
import androidx.core.graphics.ColorUtils;
|
||||||
|
|
||||||
|
import com.darkweb.genesissearchengine.appManager.homeManager.geckoManager.geckoSession;
|
||||||
|
import com.darkweb.genesissearchengine.appManager.homeManager.homeController.homeController;
|
||||||
import com.darkweb.genesissearchengine.appManager.kotlinHelperLibraries.defaultBrowser;
|
import com.darkweb.genesissearchengine.appManager.kotlinHelperLibraries.defaultBrowser;
|
||||||
import com.darkweb.genesissearchengine.constants.enums;
|
import com.darkweb.genesissearchengine.constants.enums;
|
||||||
import com.darkweb.genesissearchengine.constants.keys;
|
import com.darkweb.genesissearchengine.constants.keys;
|
||||||
|
import com.darkweb.genesissearchengine.constants.strings;
|
||||||
import com.example.myapplication.R;
|
import com.example.myapplication.R;
|
||||||
import org.xmlpull.v1.XmlPullParserException;
|
import org.xmlpull.v1.XmlPullParserException;
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
|
@ -87,7 +91,10 @@ import javax.net.ssl.HttpsURLConnection;
|
||||||
import static android.content.Context.LAYOUT_INFLATER_SERVICE;
|
import static android.content.Context.LAYOUT_INFLATER_SERVICE;
|
||||||
import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
|
import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
|
||||||
import static android.content.Intent.FLAG_ACTIVITY_NO_ANIMATION;
|
import static android.content.Intent.FLAG_ACTIVITY_NO_ANIMATION;
|
||||||
|
import static com.darkweb.genesissearchengine.constants.constants.CONST_LIST_EXTERNAL_SHORTCUT;
|
||||||
|
import static com.darkweb.genesissearchengine.constants.constants.CONST_PACKAGE_NAME;
|
||||||
import static com.darkweb.genesissearchengine.constants.constants.CONST_PLAYSTORE_URL;
|
import static com.darkweb.genesissearchengine.constants.constants.CONST_PLAYSTORE_URL;
|
||||||
|
import static com.darkweb.genesissearchengine.constants.keys.M_ACTIVITY_NAVIGATION_BUNDLE_KEY;
|
||||||
|
|
||||||
public class helperMethod
|
public class helperMethod
|
||||||
{
|
{
|
||||||
|
@ -172,6 +179,21 @@ public class helperMethod
|
||||||
context.startActivity(browserIntent);
|
context.startActivity(browserIntent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static geckoSession deepCopy(geckoSession object) {
|
||||||
|
try {
|
||||||
|
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
|
||||||
|
ObjectOutputStream outputStrm = new ObjectOutputStream(outputStream);
|
||||||
|
outputStrm.writeObject(object);
|
||||||
|
ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
|
||||||
|
ObjectInputStream objInputStream = new ObjectInputStream(inputStream);
|
||||||
|
return (geckoSession)objInputStream.readObject();
|
||||||
|
}
|
||||||
|
catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static String completeURL(String pURL){
|
public static String completeURL(String pURL){
|
||||||
if(pURL.equals("about:blank")){
|
if(pURL.equals("about:blank")){
|
||||||
return pURL;
|
return pURL;
|
||||||
|
@ -262,6 +284,36 @@ public class helperMethod
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String getDefaultBrowser(AppCompatActivity context){
|
||||||
|
Intent browserIntent = new Intent("android.intent.action.VIEW", Uri.parse("http://"));
|
||||||
|
ResolveInfo resolveInfo = context.getPackageManager().resolveActivity(browserIntent,PackageManager.MATCH_DEFAULT_ONLY);
|
||||||
|
return resolveInfo.activityInfo.packageName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void openURLInCustomBrowser(String pData, AppCompatActivity pContext){
|
||||||
|
String mBrowser = helperMethod.getSystemBrowser(pContext);
|
||||||
|
Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse(pData));
|
||||||
|
intent.setPackage(mBrowser);
|
||||||
|
pContext.startActivity(intent);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getSystemBrowser(AppCompatActivity context){
|
||||||
|
PackageManager packageManager = context.getPackageManager();
|
||||||
|
Intent intent = new Intent(Intent.ACTION_VIEW);
|
||||||
|
intent.setData(Uri.parse("http://www.google.com"));
|
||||||
|
List<ResolveInfo> list = packageManager.queryIntentActivities(intent, PackageManager.MATCH_ALL);
|
||||||
|
String mBrowser = strings.GENERIC_EMPTY_STR;
|
||||||
|
for (ResolveInfo info : list) {
|
||||||
|
if(!info.activityInfo.packageName.contains(CONST_PACKAGE_NAME)){
|
||||||
|
mBrowser = info.activityInfo.packageName;
|
||||||
|
if(info.activityInfo.packageName.contains("chrome") || info.activityInfo.packageName.contains("google") || info.activityInfo.packageName.contains("firefox")){
|
||||||
|
return mBrowser;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return mBrowser;
|
||||||
|
}
|
||||||
|
|
||||||
public static void sendIssueEmail(Context context){
|
public static void sendIssueEmail(Context context){
|
||||||
Intent selectorIntent = new Intent(Intent.ACTION_SENDTO);
|
Intent selectorIntent = new Intent(Intent.ACTION_SENDTO);
|
||||||
selectorIntent.setData(Uri.parse("mailto:"));
|
selectorIntent.setData(Uri.parse("mailto:"));
|
||||||
|
@ -623,6 +675,15 @@ public class helperMethod
|
||||||
context.startActivity(myIntent);
|
context.startActivity(myIntent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void openIntent(Intent pIntent,AppCompatActivity pContext, int pType){
|
||||||
|
if(pType == CONST_LIST_EXTERNAL_SHORTCUT){
|
||||||
|
pIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
||||||
|
pIntent.putExtra(M_ACTIVITY_NAVIGATION_BUNDLE_KEY, pType);
|
||||||
|
pContext.startActivity(pIntent);
|
||||||
|
pContext.overridePendingTransition(R.anim.fade_in_lang, R.anim.fade_out_lang);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static void openActivityReverse( Class<?> cls,int type,AppCompatActivity context,boolean animation){
|
public static void openActivityReverse( Class<?> cls,int type,AppCompatActivity context,boolean animation){
|
||||||
Intent myIntent = new Intent(context, cls);
|
Intent myIntent = new Intent(context, cls);
|
||||||
myIntent.putExtra(keys.PROXY_LIST_TYPE, type);
|
myIntent.putExtra(keys.PROXY_LIST_TYPE, type);
|
||||||
|
|
|
@ -1,126 +0,0 @@
|
||||||
package com.darkweb.genesissearchengine.pluginManager.adPluginManager;
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.os.Handler;
|
|
||||||
import android.util.Log;
|
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
import com.darkweb.genesissearchengine.eventObserver;
|
|
||||||
import com.darkweb.genesissearchengine.pluginManager.pluginEnums;
|
|
||||||
import com.mopub.common.MoPub;
|
|
||||||
import com.mopub.common.SdkConfiguration;
|
|
||||||
import com.mopub.common.SdkInitializationListener;
|
|
||||||
import com.mopub.mobileads.MoPubErrorCode;
|
|
||||||
import com.mopub.mobileads.MoPubView;
|
|
||||||
import java.lang.ref.WeakReference;
|
|
||||||
import java.util.List;
|
|
||||||
import static com.mopub.common.logging.MoPubLog.LogLevel.INFO;
|
|
||||||
|
|
||||||
public class adManager
|
|
||||||
{
|
|
||||||
|
|
||||||
/*Private Variables */
|
|
||||||
|
|
||||||
private eventObserver.eventListener mEvent;
|
|
||||||
private WeakReference<MoPubView> mBannerAds;
|
|
||||||
|
|
||||||
private int mRequestCount = 0;
|
|
||||||
private boolean mPaidStatus;
|
|
||||||
private boolean bannerAdsLoading = false;
|
|
||||||
private boolean bannerAdsLoaded = false;
|
|
||||||
|
|
||||||
/*Initializations*/
|
|
||||||
|
|
||||||
public adManager(eventObserver.eventListener pEvent, MoPubView pBannerAds, boolean pPaidStatus,Context pContext) {
|
|
||||||
this.mEvent = pEvent;
|
|
||||||
this.mPaidStatus = pPaidStatus;
|
|
||||||
this.mBannerAds = new WeakReference(pBannerAds);
|
|
||||||
initializeBannerAds(pContext);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void initializeBannerAds(Context pContext){
|
|
||||||
if(!mPaidStatus){
|
|
||||||
final SdkConfiguration.Builder configBuilder = new SdkConfiguration.Builder("c122efbe224f46678800d2f73389d258");
|
|
||||||
configBuilder.withLogLevel(INFO);
|
|
||||||
MoPub.initializeSdk(pContext, configBuilder.build(), initSdkListener());
|
|
||||||
admobListeners();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private SdkInitializationListener initSdkListener() {
|
|
||||||
return () -> {
|
|
||||||
};
|
|
||||||
}
|
|
||||||
/*Local Helper Methods*/
|
|
||||||
|
|
||||||
private void loadAds(){
|
|
||||||
if(!mPaidStatus)
|
|
||||||
{
|
|
||||||
if (!bannerAdsLoading)
|
|
||||||
{
|
|
||||||
bannerAdsLoading = true;
|
|
||||||
mBannerAds.get().setAdUnitId("c122efbe224f46678800d2f73389d258");
|
|
||||||
mBannerAds.get().loadAd();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean isAdvertLoaded(){
|
|
||||||
return bannerAdsLoaded;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*Local Listeners*/
|
|
||||||
|
|
||||||
private void admobListeners(){
|
|
||||||
if(!mPaidStatus){
|
|
||||||
mBannerAds.get().setBannerAdListener(new MoPubView.BannerAdListener() {
|
|
||||||
@Override
|
|
||||||
public void onBannerLoaded(@NonNull MoPubView moPubView) {
|
|
||||||
bannerAdsLoaded = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onBannerFailed(MoPubView moPubView, MoPubErrorCode moPubErrorCode) {
|
|
||||||
|
|
||||||
new Handler().postDelayed(() ->
|
|
||||||
{
|
|
||||||
if(mRequestCount<10){
|
|
||||||
mRequestCount+=1;
|
|
||||||
mBannerAds.get().loadAd();
|
|
||||||
}
|
|
||||||
|
|
||||||
}, 30000);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onBannerClicked(MoPubView moPubView) {
|
|
||||||
Log.i("asd","asd");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onBannerExpanded(MoPubView moPubView) {
|
|
||||||
Log.i("asd","asd");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onBannerCollapsed(MoPubView moPubView) {
|
|
||||||
Log.i("asd","asd");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*External Triggers*/
|
|
||||||
|
|
||||||
public Object onTrigger(List<Object> pData, pluginEnums.eAdManager pEventType) {
|
|
||||||
if(pEventType.equals(pluginEnums.eAdManager.M_INITIALIZE_BANNER_ADS))
|
|
||||||
{
|
|
||||||
loadAds();
|
|
||||||
}
|
|
||||||
else if(pEventType.equals(pluginEnums.eAdManager.M_IS_ADVERT_LOADED))
|
|
||||||
{
|
|
||||||
return isAdvertLoaded();
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,82 @@
|
||||||
|
package com.darkweb.genesissearchengine.pluginManager.adPluginManager;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
|
import com.darkweb.genesissearchengine.eventObserver;
|
||||||
|
import com.darkweb.genesissearchengine.pluginManager.pluginEnums;
|
||||||
|
import com.google.android.gms.ads.AdListener;
|
||||||
|
import com.google.android.gms.ads.AdRequest;
|
||||||
|
import com.google.android.gms.ads.AdView;
|
||||||
|
import java.lang.ref.WeakReference;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import static com.darkweb.genesissearchengine.pluginManager.pluginEnums.eAdManagerCallbacks.M_ON_AD_CLICK;
|
||||||
|
import static com.darkweb.genesissearchengine.pluginManager.pluginEnums.eAdManagerCallbacks.M_ON_AD_LOAD;
|
||||||
|
|
||||||
|
public class admobManager extends AdListener {
|
||||||
|
|
||||||
|
/*Private Variables */
|
||||||
|
|
||||||
|
private eventObserver.eventListener mEvent;
|
||||||
|
private WeakReference<AdView> mBannerAds;
|
||||||
|
|
||||||
|
private boolean bannerAdsLoaded = false;
|
||||||
|
|
||||||
|
/*Initializations*/
|
||||||
|
|
||||||
|
public admobManager(eventObserver.eventListener pEvent, AdView pBannerAds, Context pContext) {
|
||||||
|
this.mEvent = pEvent;
|
||||||
|
this.mBannerAds = new WeakReference(pBannerAds);
|
||||||
|
loadAds();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*Local Overrides*/
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onAdLoaded() {
|
||||||
|
super.onAdLoaded();
|
||||||
|
bannerAdsLoaded = true;
|
||||||
|
mEvent.invokeObserver(null, M_ON_AD_LOAD);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onAdClicked(){
|
||||||
|
super.onAdClicked();
|
||||||
|
mEvent.invokeObserver(null, M_ON_AD_CLICK);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*Local Helper Methods*/
|
||||||
|
|
||||||
|
private void loadAds(){
|
||||||
|
AdRequest adRequest = new AdRequest.Builder().build();
|
||||||
|
mBannerAds.get().loadAd(adRequest);
|
||||||
|
mBannerAds.get().setAdListener(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private boolean isAdvertLoaded(){
|
||||||
|
return bannerAdsLoaded;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void onDestroy(){
|
||||||
|
mBannerAds.get().destroy();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*External Triggers*/
|
||||||
|
|
||||||
|
public Object onTrigger(pluginEnums.eAdManager pEventType) {
|
||||||
|
if(pEventType.equals(pluginEnums.eAdManager.M_INITIALIZE_BANNER_ADS))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
else if(pEventType.equals(pluginEnums.eAdManager.M_IS_ADVERT_LOADED))
|
||||||
|
{
|
||||||
|
return isAdvertLoaded();
|
||||||
|
}
|
||||||
|
else if(pEventType.equals(pluginEnums.eAdManager.M_DESTROY))
|
||||||
|
{
|
||||||
|
onDestroy();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,85 @@
|
||||||
|
package com.darkweb.genesissearchengine.pluginManager.adPluginManager;
|
||||||
|
|
||||||
|
import static com.darkweb.genesissearchengine.pluginManager.pluginEnums.eAdManagerCallbacks.M_ON_AD_CLICK;
|
||||||
|
import static com.darkweb.genesissearchengine.pluginManager.pluginEnums.eAdManagerCallbacks.M_ON_AD_LOAD;
|
||||||
|
import android.widget.LinearLayout;
|
||||||
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
|
import com.darkweb.genesissearchengine.eventObserver;
|
||||||
|
import com.darkweb.genesissearchengine.pluginManager.pluginEnums;
|
||||||
|
import com.facebook.ads.*;
|
||||||
|
import java.lang.ref.WeakReference;
|
||||||
|
|
||||||
|
public class facebookAdsManager implements AdListener {
|
||||||
|
|
||||||
|
/*Private Variables */
|
||||||
|
|
||||||
|
private eventObserver.eventListener mEvent;
|
||||||
|
private WeakReference<LinearLayout> mBannerAds;
|
||||||
|
private AdView adView;
|
||||||
|
|
||||||
|
private boolean bannerAdsLoaded = false;
|
||||||
|
|
||||||
|
/*Initializations*/
|
||||||
|
|
||||||
|
public facebookAdsManager(eventObserver.eventListener pEvent, LinearLayout pBannerAds, AppCompatActivity pContext) {
|
||||||
|
this.mEvent = pEvent;
|
||||||
|
this.mBannerAds = new WeakReference(pBannerAds);
|
||||||
|
loadAds(pContext, pBannerAds);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*Local Overrides*/
|
||||||
|
@Override
|
||||||
|
public void onError(Ad ad, AdError adError) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onAdLoaded(Ad ad) {
|
||||||
|
bannerAdsLoaded = true;
|
||||||
|
mEvent.invokeObserver(null, M_ON_AD_LOAD);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onAdClicked(Ad ad) {
|
||||||
|
mEvent.invokeObserver(null, M_ON_AD_CLICK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onLoggingImpression(Ad ad) {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*Local Helper Methods*/
|
||||||
|
|
||||||
|
private void loadAds(AppCompatActivity pContext, LinearLayout pLinearLayout){
|
||||||
|
AudienceNetworkAds.initialize(pContext);
|
||||||
|
adView = new AdView(pContext, "856646331639727_856654334972260", AdSize.BANNER_HEIGHT_50);
|
||||||
|
pLinearLayout.addView(adView);
|
||||||
|
adView.loadAd(adView.buildLoadAdConfig().withAdListener(this).build());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private boolean isAdvertLoaded(){
|
||||||
|
return bannerAdsLoaded;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void onDestroy(){
|
||||||
|
adView.destroy();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*External Triggers*/
|
||||||
|
|
||||||
|
public Object onTrigger(pluginEnums.eAdManager pEventType) {
|
||||||
|
if(pEventType.equals(pluginEnums.eAdManager.M_INITIALIZE_BANNER_ADS))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
else if(pEventType.equals(pluginEnums.eAdManager.M_IS_ADVERT_LOADED))
|
||||||
|
{
|
||||||
|
return isAdvertLoaded();
|
||||||
|
}
|
||||||
|
else if(pEventType.equals(pluginEnums.eAdManager.M_DESTROY))
|
||||||
|
{
|
||||||
|
onDestroy();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,98 @@
|
||||||
|
package com.darkweb.genesissearchengine.pluginManager.adPluginManager;
|
||||||
|
|
||||||
|
/*
|
||||||
|
import android.content.Context;
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import com.darkweb.genesissearchengine.eventObserver;
|
||||||
|
import com.darkweb.genesissearchengine.pluginManager.pluginEnums;
|
||||||
|
import com.mopub.common.MoPub;
|
||||||
|
import com.mopub.common.SdkConfiguration;
|
||||||
|
import com.mopub.common.SdkInitializationListener;
|
||||||
|
import com.mopub.mobileads.MoPubErrorCode;
|
||||||
|
import com.mopub.mobileads.MoPubView;
|
||||||
|
import java.lang.ref.WeakReference;
|
||||||
|
import java.util.List;
|
||||||
|
import static com.mopub.common.logging.MoPubLog.LogLevel.INFO;
|
||||||
|
|
||||||
|
public class mopubManager implements MoPubView.BannerAdListener
|
||||||
|
{
|
||||||
|
|
||||||
|
/*Private Variables */
|
||||||
|
|
||||||
|
/*private eventObserver.eventListener mEvent;
|
||||||
|
private WeakReference<MoPubView> mBannerAds;
|
||||||
|
|
||||||
|
private boolean bannerAdsLoaded = false;
|
||||||
|
|
||||||
|
/*Initializations*/
|
||||||
|
|
||||||
|
/*public mopubManager(eventObserver.eventListener pEvent, MoPubView pBannerAds, boolean pPaidStatus, Context pContext) {
|
||||||
|
this.mEvent = pEvent;
|
||||||
|
this.mBannerAds = new WeakReference(pBannerAds);
|
||||||
|
initializeBannerAds(pContext);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initializeBannerAds(Context pContext){
|
||||||
|
final SdkConfiguration.Builder configBuilder = new SdkConfiguration.Builder("c122efbe224f46678800d2f73389d258");
|
||||||
|
configBuilder.withLogLevel(INFO);
|
||||||
|
MoPub.initializeSdk(pContext, configBuilder.build(), initSdkListener());
|
||||||
|
}
|
||||||
|
|
||||||
|
private SdkInitializationListener initSdkListener() {
|
||||||
|
return () -> {
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Local Overrides */
|
||||||
|
|
||||||
|
/*@Override
|
||||||
|
public void onBannerLoaded(@NonNull MoPubView moPubView) {
|
||||||
|
bannerAdsLoaded = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onBannerFailed(MoPubView moPubView, MoPubErrorCode moPubErrorCode) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onBannerClicked(MoPubView moPubView) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onBannerExpanded(MoPubView moPubView) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onBannerCollapsed(MoPubView moPubView) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/*Local Helper Methods*/
|
||||||
|
|
||||||
|
/*private void loadAds(){
|
||||||
|
mBannerAds.get().setAdUnitId("c122efbe224f46678800d2f73389d258");
|
||||||
|
mBannerAds.get().loadAd();
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isAdvertLoaded(){
|
||||||
|
return bannerAdsLoaded;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*External Triggers*/
|
||||||
|
|
||||||
|
/*public Object onTrigger(List<Object> pData, pluginEnums.eAdManager pEventType) {
|
||||||
|
if(pEventType.equals(pluginEnums.eAdManager.M_INITIALIZE_BANNER_ADS))
|
||||||
|
{
|
||||||
|
loadAds();
|
||||||
|
}
|
||||||
|
else if(pEventType.equals(pluginEnums.eAdManager.M_IS_ADVERT_LOADED))
|
||||||
|
{
|
||||||
|
return isAdvertLoaded();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*/
|
|
@ -9,14 +9,16 @@ import android.graphics.drawable.Drawable;
|
||||||
import android.graphics.drawable.InsetDrawable;
|
import android.graphics.drawable.InsetDrawable;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
|
import android.text.Html;
|
||||||
import android.view.Gravity;
|
import android.view.Gravity;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.Window;
|
import android.view.ViewGroup;
|
||||||
import android.view.WindowManager;
|
import android.view.WindowManager;
|
||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.RatingBar;
|
import android.widget.RatingBar;
|
||||||
|
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;
|
||||||
|
@ -60,11 +62,6 @@ public class messageManager
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initializeDialog(int pLayout, int pGravity){
|
private void initializeDialog(int pLayout, int pGravity){
|
||||||
try {
|
|
||||||
if(mDialog !=null && mDialog.isShowing()){
|
|
||||||
mDialog.dismiss();
|
|
||||||
}
|
|
||||||
|
|
||||||
mDialog = new Dialog(mContext);
|
mDialog = new Dialog(mContext);
|
||||||
mDialog.getWindow().setGravity(pGravity);
|
mDialog.getWindow().setGravity(pGravity);
|
||||||
mDialog.getWindow().getAttributes().windowAnimations = R.style.dialiog_animation;
|
mDialog.getWindow().getAttributes().windowAnimations = R.style.dialiog_animation;
|
||||||
|
@ -85,8 +82,8 @@ public class messageManager
|
||||||
mDialog.getWindow().setBackgroundDrawable(inset);
|
mDialog.getWindow().setBackgroundDrawable(inset);
|
||||||
mDialog.getWindow().setLayout(helperMethod.pxFromDp(350), -1);
|
mDialog.getWindow().setLayout(helperMethod.pxFromDp(350), -1);
|
||||||
mDialog.getWindow().setLayout(ConstraintLayout.LayoutParams.MATCH_PARENT, ConstraintLayout.LayoutParams.WRAP_CONTENT);
|
mDialog.getWindow().setLayout(ConstraintLayout.LayoutParams.MATCH_PARENT, ConstraintLayout.LayoutParams.WRAP_CONTENT);
|
||||||
|
|
||||||
mDialog.show();
|
mDialog.show();
|
||||||
}catch (Exception ignored){}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public messageManager(eventObserver.eventListener event)
|
public messageManager(eventObserver.eventListener event)
|
||||||
|
@ -100,7 +97,7 @@ public class messageManager
|
||||||
{
|
{
|
||||||
initializeDialog(R.layout.popup_language_support, Gravity.CENTER);
|
initializeDialog(R.layout.popup_language_support, Gravity.CENTER);
|
||||||
// ((TextView) mDialog.findViewById(R.id.pLanguage)).setText((mData.get(0).toString()));
|
// ((TextView) mDialog.findViewById(R.id.pLanguage)).setText((mData.get(0).toString()));
|
||||||
mDialog.findViewById(R.id.pTrigger).setOnClickListener(v -> mDialog.dismiss());
|
mDialog.findViewById(R.id.pDismiss).setOnClickListener(v -> mDialog.dismiss());
|
||||||
mDialog.setOnDismissListener(dialog -> onClearReference());
|
mDialog.setOnDismissListener(dialog -> onClearReference());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -127,10 +124,10 @@ public class messageManager
|
||||||
|
|
||||||
private void newIdentityCreated()
|
private void newIdentityCreated()
|
||||||
{
|
{
|
||||||
|
initializeDialog(R.layout.popup_new_circuit, Gravity.BOTTOM);
|
||||||
final Handler handler = new Handler();
|
final Handler handler = new Handler();
|
||||||
Runnable runnable = () -> mDialog.dismiss();
|
Runnable runnable = () -> mDialog.dismiss();
|
||||||
|
|
||||||
initializeDialog(R.layout.popup_new_circuit, Gravity.BOTTOM);
|
|
||||||
mDialog.findViewById(R.id.pTrigger).setOnClickListener(v -> mDialog.dismiss());
|
mDialog.findViewById(R.id.pTrigger).setOnClickListener(v -> mDialog.dismiss());
|
||||||
|
|
||||||
mDialog.setOnDismissListener(dialog -> {
|
mDialog.setOnDismissListener(dialog -> {
|
||||||
|
@ -144,17 +141,17 @@ public class messageManager
|
||||||
private void mDownloadFailure()
|
private void mDownloadFailure()
|
||||||
{
|
{
|
||||||
mContext.runOnUiThread(() -> {
|
mContext.runOnUiThread(() -> {
|
||||||
|
initializeDialog(R.layout.popup_download_failure, Gravity.BOTTOM);
|
||||||
final Handler handler = new Handler();
|
final Handler handler = new Handler();
|
||||||
Runnable runnable = () -> mDialog.dismiss();
|
Runnable runnable = () -> mDialog.dismiss();
|
||||||
|
|
||||||
initializeDialog(R.layout.popup_download_failure, Gravity.BOTTOM);
|
|
||||||
String mMessage;
|
String mMessage;
|
||||||
if(mData == null || mData.get(0) == null || (mData.get(0)).equals("0")){
|
if(mData == null || mData.get(0) == null || (mData.get(0)).equals("0")){
|
||||||
mMessage = "\"Unknown\"";
|
mMessage = "\"Unknown\"";
|
||||||
}else {
|
}else {
|
||||||
mMessage = (String) mData.get(0);
|
mMessage = (String) mData.get(0);
|
||||||
}
|
}
|
||||||
((TextView)mDialog.findViewById(R.id.pDescription)).setText(("Request denied Error " + mMessage));
|
((TextView)mDialog.findViewById(R.id.pOrbotRowDescription)).setText(("Request denied Error " + mMessage));
|
||||||
mDialog.findViewById(R.id.pTrigger).setOnClickListener(v -> mDialog.dismiss());
|
mDialog.findViewById(R.id.pTrigger).setOnClickListener(v -> mDialog.dismiss());
|
||||||
|
|
||||||
mDialog.setOnDismissListener(dialog -> {
|
mDialog.setOnDismissListener(dialog -> {
|
||||||
|
@ -169,10 +166,10 @@ public class messageManager
|
||||||
|
|
||||||
private void popupBlocked()
|
private void popupBlocked()
|
||||||
{
|
{
|
||||||
|
initializeDialog(R.layout.popup_block_popup, Gravity.BOTTOM);
|
||||||
final Handler handler = new Handler();
|
final Handler handler = new Handler();
|
||||||
Runnable runnable = () -> mDialog.dismiss();
|
Runnable runnable = () -> mDialog.dismiss();
|
||||||
|
|
||||||
initializeDialog(R.layout.popup_block_popup, Gravity.BOTTOM);
|
|
||||||
mDialog.findViewById(R.id.pOpenPrivacy).setOnClickListener(v -> {
|
mDialog.findViewById(R.id.pOpenPrivacy).setOnClickListener(v -> {
|
||||||
mEvent.invokeObserver(null, M_OPEN_PRIVACY);
|
mEvent.invokeObserver(null, M_OPEN_PRIVACY);
|
||||||
mDialog.dismiss();
|
mDialog.dismiss();
|
||||||
|
@ -189,10 +186,10 @@ public class messageManager
|
||||||
|
|
||||||
private void popupLoadNewTab()
|
private void popupLoadNewTab()
|
||||||
{
|
{
|
||||||
|
initializeDialog(R.layout.popup_load_new_tab, Gravity.BOTTOM);
|
||||||
final Handler handler = new Handler();
|
final Handler handler = new Handler();
|
||||||
Runnable runnable = () -> mDialog.dismiss();
|
Runnable runnable = () -> mDialog.dismiss();
|
||||||
|
|
||||||
initializeDialog(R.layout.popup_load_new_tab, Gravity.BOTTOM);
|
|
||||||
mDialog.getWindow().setDimAmount(0.3f);
|
mDialog.getWindow().setDimAmount(0.3f);
|
||||||
mDialog.findViewById(R.id.pRestore).setOnClickListener(v -> {
|
mDialog.findViewById(R.id.pRestore).setOnClickListener(v -> {
|
||||||
mEvent.invokeObserver(null, M_UNDO_SESSION);
|
mEvent.invokeObserver(null, M_UNDO_SESSION);
|
||||||
|
@ -210,10 +207,10 @@ public class messageManager
|
||||||
|
|
||||||
private void popupUndo()
|
private void popupUndo()
|
||||||
{
|
{
|
||||||
|
initializeDialog(R.layout.popup_undo, Gravity.BOTTOM);
|
||||||
final Handler handler = new Handler();
|
final Handler handler = new Handler();
|
||||||
Runnable runnable = () -> mDialog.dismiss();
|
Runnable runnable = () -> mDialog.dismiss();
|
||||||
|
|
||||||
initializeDialog(R.layout.popup_undo, Gravity.BOTTOM);
|
|
||||||
mDialog.getWindow().setDimAmount(0.3f);
|
mDialog.getWindow().setDimAmount(0.3f);
|
||||||
mDialog.findViewById(R.id.pUndo).setOnClickListener(v -> {
|
mDialog.findViewById(R.id.pUndo).setOnClickListener(v -> {
|
||||||
mEvent.invokeObserver(null, M_UNDO_TAB);
|
mEvent.invokeObserver(null, M_UNDO_TAB);
|
||||||
|
@ -232,7 +229,37 @@ public class messageManager
|
||||||
private void onShowToast(int mLayout, int mDelay, String mInfo, String mTriggerText, pluginEnums.eMessageManagerCallbacks pCallback)
|
private void onShowToast(int mLayout, int mDelay, String mInfo, String mTriggerText, pluginEnums.eMessageManagerCallbacks pCallback)
|
||||||
{
|
{
|
||||||
initializeDialog(mLayout, Gravity.BOTTOM);
|
initializeDialog(mLayout, Gravity.BOTTOM);
|
||||||
((TextView)mDialog.findViewById(R.id.pDescription)).setText(mInfo);
|
((TextView)mDialog.findViewById(R.id.pOrbotRowDescription)).setText(mInfo);
|
||||||
|
((Button)mDialog.findViewById(R.id.pTrigger)).setText(mTriggerText);
|
||||||
|
mDialog.getWindow().setDimAmount(0.3f);
|
||||||
|
|
||||||
|
final Handler handler = new Handler();
|
||||||
|
Runnable runnable = () -> mDialog.dismiss();
|
||||||
|
|
||||||
|
mDialog.setOnDismissListener(dialog -> {
|
||||||
|
handler.removeCallbacks(runnable);
|
||||||
|
onClearReference();
|
||||||
|
});
|
||||||
|
|
||||||
|
mDialog.findViewById(R.id.pTrigger).setOnClickListener(v -> {
|
||||||
|
if(pCallback == null){
|
||||||
|
mEvent.invokeObserver(null, M_UNDO_TAB);
|
||||||
|
mDialog.dismiss();
|
||||||
|
handler.removeCallbacks(runnable);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
mDialog.dismiss();
|
||||||
|
mEvent.invokeObserver(Collections.singletonList(mContext), pCallback);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
handler.postDelayed(runnable, mDelay);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void onShowToastWithCallback(int mLayout, int mDelay, String mInfo, String mTriggerText, pluginEnums.eMessageManagerCallbacks pCallback)
|
||||||
|
{
|
||||||
|
initializeDialog(mLayout, Gravity.BOTTOM);
|
||||||
|
((TextView)mDialog.findViewById(R.id.pOrbotRowDescription)).setText(mInfo);
|
||||||
((Button)mDialog.findViewById(R.id.pTrigger)).setText(mTriggerText);
|
((Button)mDialog.findViewById(R.id.pTrigger)).setText(mTriggerText);
|
||||||
mDialog.getWindow().setDimAmount(0.3f);
|
mDialog.getWindow().setDimAmount(0.3f);
|
||||||
|
|
||||||
|
@ -257,10 +284,10 @@ public class messageManager
|
||||||
|
|
||||||
private void maxTabReached()
|
private void maxTabReached()
|
||||||
{
|
{
|
||||||
|
initializeDialog(R.layout.popup_max_tab, Gravity.BOTTOM);
|
||||||
final Handler handler = new Handler();
|
final Handler handler = new Handler();
|
||||||
Runnable runnable = () -> mDialog.dismiss();
|
Runnable runnable = () -> mDialog.dismiss();
|
||||||
|
|
||||||
initializeDialog(R.layout.popup_max_tab, Gravity.BOTTOM);
|
|
||||||
mDialog.getWindow().setDimAmount(0);
|
mDialog.getWindow().setDimAmount(0);
|
||||||
mDialog.findViewById(R.id.pTrigger).setOnClickListener(v -> {
|
mDialog.findViewById(R.id.pTrigger).setOnClickListener(v -> {
|
||||||
mDialog.dismiss();
|
mDialog.dismiss();
|
||||||
|
@ -304,10 +331,10 @@ public class messageManager
|
||||||
|
|
||||||
private void orbotLoading()
|
private void orbotLoading()
|
||||||
{
|
{
|
||||||
|
initializeDialog(R.layout.popup_orbot_connecting, Gravity.BOTTOM);
|
||||||
final Handler handler = new Handler();
|
final Handler handler = new Handler();
|
||||||
Runnable runnable = () -> mDialog.dismiss();
|
Runnable runnable = () -> mDialog.dismiss();
|
||||||
|
|
||||||
initializeDialog(R.layout.popup_orbot_connecting, Gravity.BOTTOM);
|
|
||||||
mDialog.findViewById(R.id.pNext).setOnClickListener(v -> {
|
mDialog.findViewById(R.id.pNext).setOnClickListener(v -> {
|
||||||
mDialog.dismiss();
|
mDialog.dismiss();
|
||||||
handler.removeCallbacks(runnable);
|
handler.removeCallbacks(runnable);
|
||||||
|
@ -323,22 +350,6 @@ public class messageManager
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void dataClearedSuccessfully()
|
|
||||||
{
|
|
||||||
final Handler handler = new Handler();
|
|
||||||
Runnable runnable = () -> mDialog.dismiss();
|
|
||||||
|
|
||||||
initializeDialog(R.layout.popup_data_cleared, Gravity.BOTTOM);
|
|
||||||
mDialog.findViewById(R.id.pTrigger).setOnClickListener(v -> mDialog.dismiss());
|
|
||||||
|
|
||||||
mDialog.setOnDismissListener(dialog -> {
|
|
||||||
handler.removeCallbacks(runnable);
|
|
||||||
onClearReference();
|
|
||||||
});
|
|
||||||
|
|
||||||
handler.postDelayed(runnable, 1500);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void applicationCrashed()
|
private void applicationCrashed()
|
||||||
{
|
{
|
||||||
initializeDialog(R.layout.application_crash, Gravity.BOTTOM);
|
initializeDialog(R.layout.application_crash, Gravity.BOTTOM);
|
||||||
|
@ -346,38 +357,97 @@ public class messageManager
|
||||||
mDialog.setOnDismissListener(dialog -> onClearReference());
|
mDialog.setOnDismissListener(dialog -> onClearReference());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void openSecurityInfo()
|
||||||
|
{
|
||||||
|
String mInfo = mData.get(0).toString();
|
||||||
|
initializeDialog(R.layout.certificate_info, Gravity.TOP);
|
||||||
|
InsetDrawable inset = new InsetDrawable(new ColorDrawable(Color.TRANSPARENT), 0,0,0,-1);
|
||||||
|
mDialog.getWindow().setBackgroundDrawable(inset);
|
||||||
|
mDialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
|
||||||
|
|
||||||
|
((TextView)mDialog.findViewById(R.id.pCertificateDesciption)).setText(Html.fromHtml((String)mData.get(0)));
|
||||||
|
mDialog.findViewById(R.id.pCertificateRootBackground).animate().setStartDelay(100).setDuration(400).alpha(1);
|
||||||
|
|
||||||
|
if(mInfo.equals("Onion Secured Connection")){
|
||||||
|
ScrollView mCertificateScrollView = mDialog.findViewById(R.id.pCertificateScrollView);
|
||||||
|
|
||||||
|
ViewGroup.LayoutParams params = mCertificateScrollView.getLayoutParams();
|
||||||
|
params.height = helperMethod.pxFromDp(60);
|
||||||
|
mCertificateScrollView.requestLayout();
|
||||||
|
mCertificateScrollView.requestDisallowInterceptTouchEvent(false);
|
||||||
|
}else {
|
||||||
|
mDialog.findViewById(R.id.pCertificateRootBlocker).setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
mDialog.findViewById(R.id.pCertificateDesciption).setOnClickListener(v -> {
|
||||||
|
mDialog.findViewById(R.id.pCertificateRootBackground).animate().setDuration(150).alpha(0);
|
||||||
|
mDialog.dismiss();
|
||||||
|
});
|
||||||
|
|
||||||
|
mDialog.findViewById(R.id.pCertificateRootBackground).setOnClickListener(v -> {
|
||||||
|
mDialog.dismiss();
|
||||||
|
});
|
||||||
|
|
||||||
|
mDialog.setOnDismissListener(dialogInterface -> {
|
||||||
|
mDialog.findViewById(R.id.pCertificateRootBlocker).animate().setDuration(200).alpha(0);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
private void openSecureConnectionPopup()
|
private void openSecureConnectionPopup()
|
||||||
{
|
{
|
||||||
initializeDialog(R.layout.secure_connection_popup, Gravity.TOP);
|
initializeDialog(R.layout.secure_connection_popup, Gravity.TOP);
|
||||||
Window window = mDialog.getWindow();
|
InsetDrawable inset = new InsetDrawable(new ColorDrawable(Color.TRANSPARENT), 0,0,0,-1);
|
||||||
window.setLayout(ConstraintLayout.LayoutParams.MATCH_PARENT, ConstraintLayout.LayoutParams.WRAP_CONTENT);
|
|
||||||
|
|
||||||
ColorDrawable back = new ColorDrawable(Color.TRANSPARENT);
|
|
||||||
InsetDrawable inset = new InsetDrawable(back, 0,0,0,0);
|
|
||||||
mDialog.getWindow().setBackgroundDrawable(inset);
|
mDialog.getWindow().setBackgroundDrawable(inset);
|
||||||
mDialog.setCancelable(true);
|
mDialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
|
||||||
mDialog.setCanceledOnTouchOutside(true);
|
|
||||||
mDialog.findViewById(R.id.pTrigger).setOnClickListener(v -> mDialog.dismiss());
|
|
||||||
mDialog.findViewById(R.id.pNext).setOnClickListener(v -> mEvent.invokeObserver(null, M_SECURE_CONNECTION));
|
mDialog.findViewById(R.id.pSecureRootBlocker).animate().setStartDelay(100).setDuration(400).alpha(1);
|
||||||
|
((TextView) mDialog.findViewById(R.id.pSecureSubHeader)).setText(helperMethod.getDomainName(mData.get(0).toString().replace("genesishiddentechnologies.com", "genesis.onion")));
|
||||||
|
mDialog.setOnDismissListener(dialog -> onClearReference());
|
||||||
|
|
||||||
if((boolean) mData.get(1)){
|
if((boolean) mData.get(1)){
|
||||||
((SwitchMaterial) mDialog.findViewById(R.id.pJSStatus)).setChecked(true);
|
((SwitchMaterial) mDialog.findViewById(R.id.pSecureJavascriptStatus)).setChecked(true);
|
||||||
}else {
|
}else {
|
||||||
((SwitchMaterial) mDialog.findViewById(R.id.pJSStatus)).setChecked(false);
|
((SwitchMaterial) mDialog.findViewById(R.id.pSecureJavascriptStatus)).setChecked(false);
|
||||||
}
|
}
|
||||||
if((boolean) mData.get(2)){
|
if((boolean) mData.get(2)){
|
||||||
((SwitchMaterial) mDialog.findViewById(R.id.pDTStatus)).setChecked(true);
|
((SwitchMaterial) mDialog.findViewById(R.id.pSecureTrackingStatus)).setChecked(true);
|
||||||
}else {
|
}else {
|
||||||
((SwitchMaterial) mDialog.findViewById(R.id.pDTStatus)).setChecked(false);
|
((SwitchMaterial) mDialog.findViewById(R.id.pSecureTrackingStatus)).setChecked(false);
|
||||||
}
|
}
|
||||||
if((int) mData.get(3) != ContentBlocking.AntiTracking.NONE){
|
if((int) mData.get(3) != ContentBlocking.AntiTracking.NONE){
|
||||||
((SwitchMaterial) mDialog.findViewById(R.id.pTPStatus)).setChecked(true);
|
((SwitchMaterial) mDialog.findViewById(R.id.pSecureTrackingProtectionStatus)).setChecked(true);
|
||||||
}else {
|
}else {
|
||||||
((SwitchMaterial) mDialog.findViewById(R.id.pTPStatus)).setChecked(false);
|
((SwitchMaterial) mDialog.findViewById(R.id.pSecureTrackingProtectionStatus)).setChecked(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
((TextView) mDialog.findViewById(R.id.pHeaderSubpart)).setText(helperMethod.getDomainName(mData.get(0).toString().replace("genesishiddentechnologies.com", "genesis.onion")));
|
mDialog.findViewById(R.id.pSecureRootBlocker).setOnClickListener(v -> {
|
||||||
mDialog.setOnDismissListener(dialog -> onClearReference());
|
mDialog.findViewById(R.id.pSecureRootBlocker).animate().setDuration(150).alpha(0);
|
||||||
|
mDialog.dismiss();
|
||||||
|
});
|
||||||
|
|
||||||
|
mDialog.findViewById(R.id.pSecureCertificate).setOnClickListener(v -> {
|
||||||
|
mDialog.findViewById(R.id.pSecureRootBlocker).animate().setDuration(150).alpha(0);
|
||||||
|
mDialog.dismiss();
|
||||||
|
new Handler().postDelayed(() ->
|
||||||
|
{
|
||||||
|
mEvent.invokeObserver(null, M_SECURITY_INFO);
|
||||||
|
}, 500);
|
||||||
|
});
|
||||||
|
|
||||||
|
mDialog.findViewById(R.id.pSecurePrivacy).setOnClickListener(v -> {
|
||||||
|
mDialog.findViewById(R.id.pSecureRootBlocker).animate().setDuration(150).alpha(0);
|
||||||
|
helperMethod.onDelayHandler(mContext, 250, () -> {
|
||||||
|
mEvent.invokeObserver(null, M_SECURE_CONNECTION);
|
||||||
|
mDialog.dismiss();
|
||||||
|
return null;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
mDialog.setOnDismissListener(dialogInterface -> {
|
||||||
|
mDialog.findViewById(R.id.pSecureRootBlocker).animate().setDuration(200).alpha(0);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void bookmark()
|
private void bookmark()
|
||||||
|
@ -517,7 +587,7 @@ public class messageManager
|
||||||
murl = "https://" + murl;
|
murl = "https://" + murl;
|
||||||
}
|
}
|
||||||
|
|
||||||
((TextView) mDialog.findViewById(R.id.pDescription)).setText(mData.get(0).toString());
|
((TextView) mDialog.findViewById(R.id.pOrbotRowDescription)).setText(mData.get(0).toString());
|
||||||
((TextView) mDialog.findViewById(R.id.pDescriptionLong)).setText(murl);
|
((TextView) mDialog.findViewById(R.id.pDescriptionLong)).setText(murl);
|
||||||
mDialog.findViewById(R.id.pTrigger).setOnClickListener(v -> mDialog.dismiss());
|
mDialog.findViewById(R.id.pTrigger).setOnClickListener(v -> mDialog.dismiss());
|
||||||
mDialog.findViewById(R.id.pNext).setOnClickListener(v -> {
|
mDialog.findViewById(R.id.pNext).setOnClickListener(v -> {
|
||||||
|
@ -536,6 +606,7 @@ public class messageManager
|
||||||
private void rateApp()
|
private void rateApp()
|
||||||
{
|
{
|
||||||
initializeDialog(R.layout.popup_rate_us, Gravity.CENTER);
|
initializeDialog(R.layout.popup_rate_us, Gravity.CENTER);
|
||||||
|
mDialog.setCancelable(false);
|
||||||
mDialog.findViewById(R.id.pTrigger).setOnClickListener(v -> mDialog.dismiss());
|
mDialog.findViewById(R.id.pTrigger).setOnClickListener(v -> mDialog.dismiss());
|
||||||
mDialog.findViewById(R.id.pNext).setOnClickListener(v -> {
|
mDialog.findViewById(R.id.pNext).setOnClickListener(v -> {
|
||||||
RatingBar mRatingBar = mDialog.findViewById(R.id.pRating);
|
RatingBar mRatingBar = mDialog.findViewById(R.id.pRating);
|
||||||
|
@ -572,7 +643,7 @@ public class messageManager
|
||||||
}
|
}
|
||||||
|
|
||||||
initializeDialog(R.layout.popup_file_longpress, Gravity.CENTER);
|
initializeDialog(R.layout.popup_file_longpress, Gravity.CENTER);
|
||||||
((TextView) mDialog.findViewById(R.id.pDescription)).setText((title + mData.get(0).toString()));
|
((TextView) mDialog.findViewById(R.id.pOrbotRowDescription)).setText((title + mData.get(0).toString()));
|
||||||
mEvent.invokeObserver(Arrays.asList(((ImageView) mDialog.findViewById(R.id.pFaviconLogo)), helperMethod.getDomainName(mData.get(0).toString())), enums.etype.fetch_favicon);
|
mEvent.invokeObserver(Arrays.asList(((ImageView) mDialog.findViewById(R.id.pFaviconLogo)), helperMethod.getDomainName(mData.get(0).toString())), enums.etype.fetch_favicon);
|
||||||
mDialog.findViewById(R.id.pTrigger).setOnClickListener(v -> mDialog.dismiss());
|
mDialog.findViewById(R.id.pTrigger).setOnClickListener(v -> mDialog.dismiss());
|
||||||
mDialog.findViewById(R.id.pOption1).setOnClickListener(v -> {
|
mDialog.findViewById(R.id.pOption1).setOnClickListener(v -> {
|
||||||
|
@ -607,7 +678,7 @@ public class messageManager
|
||||||
String title = mData.get(2).toString();
|
String title = mData.get(2).toString();
|
||||||
|
|
||||||
initializeDialog(R.layout.popup_url_longpress, Gravity.CENTER);
|
initializeDialog(R.layout.popup_url_longpress, Gravity.CENTER);
|
||||||
((TextView) mDialog.findViewById(R.id.pDescription)).setText((title + mData.get(0)));
|
((TextView) mDialog.findViewById(R.id.pOrbotRowDescription)).setText((title + mData.get(0)));
|
||||||
mEvent.invokeObserver(Arrays.asList(((ImageView) mDialog.findViewById(R.id.pFaviconLogo)), helperMethod.getDomainName(mData.get(0).toString())), enums.etype.fetch_favicon);
|
mEvent.invokeObserver(Arrays.asList(((ImageView) mDialog.findViewById(R.id.pFaviconLogo)), helperMethod.getDomainName(mData.get(0).toString())), enums.etype.fetch_favicon);
|
||||||
mDialog.findViewById(R.id.pTrigger).setOnClickListener(v -> mDialog.dismiss());
|
mDialog.findViewById(R.id.pTrigger).setOnClickListener(v -> mDialog.dismiss());
|
||||||
mDialog.findViewById(R.id.pOption1).setOnClickListener(v -> {
|
mDialog.findViewById(R.id.pOption1).setOnClickListener(v -> {
|
||||||
|
@ -662,7 +733,7 @@ public class messageManager
|
||||||
initializeDialog(R.layout.popup_download_full, Gravity.CENTER);
|
initializeDialog(R.layout.popup_download_full, Gravity.CENTER);
|
||||||
mEvent.invokeObserver(Arrays.asList(((ImageView) mDialog.findViewById(R.id.pFaviconLogo)), helperMethod.getDomainName(data_local)), enums.etype.fetch_favicon);
|
mEvent.invokeObserver(Arrays.asList(((ImageView) mDialog.findViewById(R.id.pFaviconLogo)), helperMethod.getDomainName(data_local)), enums.etype.fetch_favicon);
|
||||||
|
|
||||||
((TextView) mDialog.findViewById(R.id.pDescription)).setText((mDescription));
|
((TextView) mDialog.findViewById(R.id.pOrbotRowDescription)).setText((mDescription));
|
||||||
((TextView) mDialog.findViewById(R.id.pDescriptionShort)).setText((mDescriptionShort));
|
((TextView) mDialog.findViewById(R.id.pDescriptionShort)).setText((mDescriptionShort));
|
||||||
mDialog.findViewById(R.id.pOption1).setOnClickListener(v -> {
|
mDialog.findViewById(R.id.pOption1).setOnClickListener(v -> {
|
||||||
if(mData!=null){
|
if(mData!=null){
|
||||||
|
@ -811,11 +882,6 @@ public class messageManager
|
||||||
onPanic();
|
onPanic();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case M_DATA_CLEARED:
|
|
||||||
/*VERIFIED*/
|
|
||||||
dataClearedSuccessfully();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case M_APPLICATION_CRASH:
|
case M_APPLICATION_CRASH:
|
||||||
/*VERIFIED*/
|
/*VERIFIED*/
|
||||||
applicationCrashed();
|
applicationCrashed();
|
||||||
|
@ -826,6 +892,11 @@ public class messageManager
|
||||||
openSecureConnectionPopup();
|
openSecureConnectionPopup();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case M_SECURITY_INFO:
|
||||||
|
/*VERIFIED*/
|
||||||
|
openSecurityInfo();
|
||||||
|
break;
|
||||||
|
|
||||||
case M_DOWNLOAD_SINGLE:
|
case M_DOWNLOAD_SINGLE:
|
||||||
/*VERIFIED*/
|
/*VERIFIED*/
|
||||||
downloadSingle();
|
downloadSingle();
|
||||||
|
@ -871,6 +942,11 @@ public class messageManager
|
||||||
popupUndo();
|
popupUndo();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case M_DATA_CLEARED:
|
||||||
|
/*VERIFIED*/
|
||||||
|
onShowToast(R.layout.popup_data_cleared, 2500, mContext.getString(R.string.ALERT_DISMISS), mContext.getString(R.string.ALERT_DISMISS), null);
|
||||||
|
break;
|
||||||
|
|
||||||
case M_DELETE_BOOKMARK:
|
case M_DELETE_BOOKMARK:
|
||||||
/*VERIFIED*/
|
/*VERIFIED*/
|
||||||
onShowToast(R.layout.popup_toast_generic, 2000, mContext.getString(R.string.HOME_MENU__BOOKMARK_REMOVED), mContext.getString(R.string.ALERT_DISMISS), null);
|
onShowToast(R.layout.popup_toast_generic, 2000, mContext.getString(R.string.HOME_MENU__BOOKMARK_REMOVED), mContext.getString(R.string.ALERT_DISMISS), null);
|
||||||
|
@ -880,6 +956,11 @@ public class messageManager
|
||||||
/*VERIFIED*/
|
/*VERIFIED*/
|
||||||
onShowToast(R.layout.popup_toast_generic, 2000, mContext.getString(R.string.HOME_MENU__BOOKMARK_UPDATE), mContext.getString(R.string.ALERT_DISMISS), null);
|
onShowToast(R.layout.popup_toast_generic, 2000, mContext.getString(R.string.HOME_MENU__BOOKMARK_UPDATE), mContext.getString(R.string.ALERT_DISMISS), null);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case M_IMAGE_UPDATE:
|
||||||
|
/*VERIFIED*/
|
||||||
|
onShowToast(R.layout.popup_toast_generic, 4000, mContext.getString(R.string.ALERT_IMAGE_STATUS), mContext.getString(R.string.ALERT_RESTART), M_IMAGE_UPDATE_RESTART);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,49 @@
|
||||||
|
package com.darkweb.genesissearchengine.pluginManager.orbotPluginManager;
|
||||||
|
|
||||||
|
import com.darkweb.genesissearchengine.constants.strings;
|
||||||
|
import java.util.List;
|
||||||
|
import static com.darkweb.genesissearchengine.pluginManager.orbotPluginManager.orbotPluginEnums.eLogManager.M_GET_CLEANED_LOGS;
|
||||||
|
|
||||||
|
public class orbotLogManager
|
||||||
|
{
|
||||||
|
|
||||||
|
private String onGetCleanedLogs(String pLogs)
|
||||||
|
{
|
||||||
|
String logs = pLogs;
|
||||||
|
|
||||||
|
if(logs.equals("Starting Genesis | Please Wait ...")){
|
||||||
|
return logs;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(pLogs.equals("No internet connection")){
|
||||||
|
return "Warning | " + pLogs;
|
||||||
|
}
|
||||||
|
|
||||||
|
else if(pLogs.startsWith("Invalid Configuration")){
|
||||||
|
return pLogs;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!logs.contains("Bootstrapped")){
|
||||||
|
logs = "Initializing Bootstrap";
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!logs.equals(strings.GENERIC_EMPTY_STR))
|
||||||
|
{
|
||||||
|
String Logs = logs;
|
||||||
|
Logs="Installing | " + Logs.replace("FAILED","Securing");
|
||||||
|
return Logs;
|
||||||
|
}
|
||||||
|
return "Loading Please Wait...";
|
||||||
|
}
|
||||||
|
|
||||||
|
/*External Triggers*/
|
||||||
|
|
||||||
|
public Object onTrigger(List<Object> pData, orbotPluginEnums.eLogManager pEventType) {
|
||||||
|
if(pEventType.equals(M_GET_CLEANED_LOGS))
|
||||||
|
{
|
||||||
|
return onGetCleanedLogs((String) pData.get(0));
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -1,48 +1,33 @@
|
||||||
package com.darkweb.genesissearchengine.pluginManager.orbotPluginManager;
|
package com.darkweb.genesissearchengine.pluginManager.orbotPluginManager;
|
||||||
|
|
||||||
import android.content.ComponentName;
|
|
||||||
import android.content.Context;
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.ServiceConnection;
|
import android.content.SharedPreferences;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Handler;
|
|
||||||
import android.os.IBinder;
|
|
||||||
import android.view.View;
|
|
||||||
|
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
import org.mozilla.gecko.PrefsHelper;
|
|
||||||
import org.torproject.android.service.OrbotService;
|
import org.torproject.android.service.OrbotService;
|
||||||
import org.torproject.android.service.util.Prefs;
|
import org.torproject.android.service.util.Prefs;
|
||||||
import org.torproject.android.service.wrapper.orbotLocalConstants;
|
import org.torproject.android.service.wrapper.orbotLocalConstants;
|
||||||
|
|
||||||
import java.lang.ref.WeakReference;
|
import java.lang.ref.WeakReference;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
|
||||||
import com.darkweb.genesissearchengine.appManager.homeManager.homeController.homeController;
|
|
||||||
import com.darkweb.genesissearchengine.constants.constants;
|
import com.darkweb.genesissearchengine.constants.constants;
|
||||||
import com.darkweb.genesissearchengine.constants.enums;
|
|
||||||
import com.darkweb.genesissearchengine.constants.keys;
|
import com.darkweb.genesissearchengine.constants.keys;
|
||||||
import com.darkweb.genesissearchengine.constants.status;
|
|
||||||
import com.darkweb.genesissearchengine.constants.strings;
|
|
||||||
import com.darkweb.genesissearchengine.eventObserver;
|
import com.darkweb.genesissearchengine.eventObserver;
|
||||||
import com.darkweb.genesissearchengine.helperManager.helperMethod;
|
|
||||||
import com.darkweb.genesissearchengine.pluginManager.pluginController;
|
|
||||||
import com.darkweb.genesissearchengine.pluginManager.pluginEnums;
|
import com.darkweb.genesissearchengine.pluginManager.pluginEnums;
|
||||||
|
import static android.content.Context.MODE_PRIVATE;
|
||||||
import static com.darkweb.genesissearchengine.pluginManager.pluginEnums.eMessageManager.M_APPLICATION_CRASH;
|
import static com.darkweb.genesissearchengine.pluginManager.orbotPluginManager.orbotPluginEnums.eLogManager.M_GET_CLEANED_LOGS;
|
||||||
import static org.torproject.android.service.TorServiceConstants.ACTION_START;
|
import static org.torproject.android.service.TorServiceConstants.ACTION_START;
|
||||||
|
import static org.torproject.android.service.TorServiceConstants.ACTION_STOP;
|
||||||
|
|
||||||
// https://github.com/guardianproject/orbot/blob/8fca5f8ecddb4da9565ac3fd8936e4f28acdd352/BUILD.md
|
// https://github.com/guardianproject/orbot/blob/8fca5f8ecddb4da9565ac3fd8936e4f28acdd352/BUILD.md
|
||||||
|
|
||||||
public class orbotManager
|
public class orbotManager
|
||||||
{
|
{
|
||||||
|
|
||||||
/*Private Variables*/
|
/*Private Variables*/
|
||||||
|
|
||||||
private WeakReference<AppCompatActivity> mAppContext;
|
private WeakReference<AppCompatActivity> mAppContext;
|
||||||
private boolean mLogsStarted = false;
|
private orbotLogManager mLogManger;
|
||||||
|
|
||||||
/*Initialization*/
|
/*Initialization*/
|
||||||
|
|
||||||
|
@ -54,237 +39,103 @@ public class orbotManager
|
||||||
|
|
||||||
public void initialize(AppCompatActivity pAppContext, eventObserver.eventListener pEvent, int pNotificationStatus){
|
public void initialize(AppCompatActivity pAppContext, eventObserver.eventListener pEvent, int pNotificationStatus){
|
||||||
this.mAppContext = new WeakReference(pAppContext);
|
this.mAppContext = new WeakReference(pAppContext);
|
||||||
|
this.mLogManger = new orbotLogManager();
|
||||||
|
|
||||||
onInitNotificationStatus(pNotificationStatus);
|
onInitNotificationStatus(pNotificationStatus);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onRemoveInstances(){
|
private void onInitlizeOrbot(String pBridgeCustomBridge, boolean pBridgeGatewayManual, String pBridgeCustomType, boolean pBridgeStatus, String pBridgesDefault){
|
||||||
this.mAppContext = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void onStartOrbot(String pBridgeCustomBridge, boolean pBridgeGatewayManual, String pBridgeCustomType, boolean pBridgeStatus, int pShowImages, boolean mClearOnExit, String pBridgesDefault){
|
|
||||||
orbotLocalConstants.mBridges = pBridgeCustomBridge;
|
orbotLocalConstants.mBridges = pBridgeCustomBridge;
|
||||||
orbotLocalConstants.mIsManualBridge = pBridgeGatewayManual;
|
orbotLocalConstants.mIsManualBridge = pBridgeGatewayManual;
|
||||||
orbotLocalConstants.mManualBridgeType = pBridgeCustomType;
|
orbotLocalConstants.mManualBridgeType = pBridgeCustomType;
|
||||||
orbotLocalConstants.mBridgesDefault = pBridgesDefault;
|
orbotLocalConstants.mBridgesDefault = pBridgesDefault;
|
||||||
Prefs.putBridgesEnabled(pBridgeStatus);
|
Prefs.putBridgesEnabled(pBridgeStatus);
|
||||||
|
|
||||||
bindService();
|
onInitailizeService();
|
||||||
initializeProxy(pShowImages, mClearOnExit);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void bindService(){
|
private void onInitailizeService(){
|
||||||
ServiceConnection mServerConn = new ServiceConnection() {
|
Intent mServiceIntent = new Intent(mAppContext.get(), OrbotService.class);
|
||||||
@Override
|
|
||||||
public void onServiceConnected(ComponentName name, IBinder binder) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onServiceDisconnected(ComponentName name) {
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
Intent mServiceIntent = new Intent(mAppContext.get().getApplicationContext(), OrbotService.class);
|
|
||||||
mServiceIntent.setAction(ACTION_START);
|
mServiceIntent.setAction(ACTION_START);
|
||||||
|
|
||||||
helperMethod.onDelayHandler(activityContextManager.getInstance().getHomeController(), 3000, () -> {
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
|
||||||
mAppContext.get().stopService(mServiceIntent);
|
|
||||||
mAppContext.get().startForegroundService(mServiceIntent);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
mAppContext.get().stopService(mServiceIntent);
|
|
||||||
mAppContext.get().startService(mServiceIntent);
|
|
||||||
}
|
|
||||||
mAppContext.get().bindService(mServiceIntent, mServerConn, Context.BIND_AUTO_CREATE);
|
|
||||||
return null;
|
|
||||||
});
|
|
||||||
|
|
||||||
|
Intent startTorIntent = new Intent(mAppContext.get(), OrbotService.class);
|
||||||
|
startTorIntent.setAction(ACTION_START);
|
||||||
|
if (mAppContext.get().getPackageName() != null) {
|
||||||
|
startTorIntent.putExtra(OrbotService.EXTRA_PACKAGE_NAME, mAppContext.get().getPackageName());
|
||||||
|
}
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && Prefs.persistNotifications()) {
|
||||||
|
mAppContext.get().startForegroundService(startTorIntent);
|
||||||
|
} else {
|
||||||
|
mAppContext.get().startService(startTorIntent);
|
||||||
|
}
|
||||||
|
|
||||||
|
SharedPreferences settings = mAppContext.get().getSharedPreferences("se", MODE_PRIVATE);
|
||||||
|
SharedPreferences.Editor editor = settings.edit();
|
||||||
|
editor.putInt(keys.PROXY_TYPE, 1);
|
||||||
|
editor.putString(keys.PROXY_SOCKS, constants.CONST_PROXY_SOCKS);
|
||||||
|
editor.putInt(keys.PROXY_SOCKS_PORT, orbotLocalConstants.mSOCKSPort);
|
||||||
|
editor.putInt(keys.PROXY_SOCKS_VERSION,constants.CONST_PROXY_SOCKS_VERSION);
|
||||||
|
editor.putBoolean(keys.PROXY_SOCKS_REMOTE_DNS,constants.CONST_PROXY_SOCKS_REMOTE_DNS);
|
||||||
|
editor.apply();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void onInitNotificationStatus(int status){
|
||||||
|
orbotLocalConstants.mNotificationStatus = status;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*Helper Methods*/
|
/*Helper Methods*/
|
||||||
|
|
||||||
private int onGetNotificationStatus(){
|
public Object onTriggerCommands(List<Object> pData, pluginEnums.eOrbotManager pCommands){
|
||||||
|
if(pCommands.equals(pluginEnums.eOrbotManager.M_GET_NOTIFICATION_STATUS)){
|
||||||
return orbotLocalConstants.mNotificationStatus;
|
return orbotLocalConstants.mNotificationStatus;
|
||||||
}
|
}
|
||||||
private void onInitNotificationStatus(int status){
|
else if(pCommands.equals(pluginEnums.eOrbotManager.M_ENABLE_NOTIFICATION)){
|
||||||
orbotLocalConstants.mNotificationStatus = status;
|
|
||||||
}
|
|
||||||
private void onEnableTorNotification(){
|
|
||||||
OrbotService.getServiceObject().enableNotification();
|
OrbotService.getServiceObject().enableNotification();
|
||||||
}
|
}
|
||||||
private void onDisableTorNotification(){
|
else if(pCommands.equals(pluginEnums.eOrbotManager.M_DISABLE_NOTIFICATION)){
|
||||||
OrbotService.getServiceObject().disableNotification();
|
OrbotService.getServiceObject().disableNotification();
|
||||||
}
|
}
|
||||||
private void onEnableTorNotificationNoBandwidth(){
|
else if(pCommands.equals(pluginEnums.eOrbotManager.M_UPDATE_BRIDGES)){
|
||||||
OrbotService service = OrbotService.getServiceObject();
|
Prefs.putBridgesEnabled((boolean)pData.get(0));
|
||||||
if(service!=null){
|
|
||||||
OrbotService.getServiceObject().enableTorNotificationNoBandwidth();
|
|
||||||
}
|
}
|
||||||
|
else if(pCommands.equals(pluginEnums.eOrbotManager.M_UPDATE_VPN)){
|
||||||
|
Prefs.putUseVpn((boolean)pData.get(0));
|
||||||
}
|
}
|
||||||
|
else if(pCommands.equals(pluginEnums.eOrbotManager.M_NEW_CIRCUIT)){
|
||||||
private void onUpdateBridges(boolean p_status){
|
|
||||||
Prefs.putBridgesEnabled(p_status);
|
|
||||||
}
|
|
||||||
private void onUpdateVPN(boolean p_status){
|
|
||||||
Prefs.putUseVpn(p_status);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*Proxy Manager*/
|
|
||||||
|
|
||||||
private void onSetProxy(){
|
|
||||||
PrefsHelper.setPref(keys.PROXY_TYPE, 1);
|
|
||||||
PrefsHelper.setPref(keys.PROXY_SOCKS,constants.CONST_PROXY_SOCKS);
|
|
||||||
PrefsHelper.setPref(keys.PROXY_SOCKS_PORT, orbotLocalConstants.mSOCKSPort);
|
|
||||||
PrefsHelper.setPref(keys.PROXY_SOCKS_VERSION,constants.CONST_PROXY_SOCKS_VERSION);
|
|
||||||
PrefsHelper.setPref(keys.PROXY_SOCKS_REMOTE_DNS,constants.CONST_PROXY_SOCKS_REMOTE_DNS);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void onRestartProxy(){
|
|
||||||
bindService();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void initializeProxy(int pShowImages, boolean mClearOnExit)
|
|
||||||
{
|
|
||||||
PrefsHelper.setPref(keys.PROXY_CACHE,constants.CONST_PROXY_CACHE);
|
|
||||||
PrefsHelper.setPref(keys.PROXY_MEMORY,constants.CONST_PROXY_MEMORY);
|
|
||||||
PrefsHelper.setPref(keys.PROXY_DO_NOT_TRACK_HEADER_ENABLED,constants.CONST_PROXY_DO_NOT_TRACK_HEADER_ENABLED);
|
|
||||||
PrefsHelper.setPref(keys.PROXY_DO_NOT_TRACK_HEADER_VALUE,constants.CONST_PROXY_DO_NOT_TRACK_HEADER_VALUE);
|
|
||||||
|
|
||||||
PrefsHelper.setPref("browser.cache.disk.enable",true);
|
|
||||||
PrefsHelper.setPref("browser.cache.memory.enable",true);
|
|
||||||
PrefsHelper.setPref("browser.cache.disk.capacity",1000);
|
|
||||||
PrefsHelper.setPref("Mozilla/5.0 (Windows NT 10.0; rv:78.0) Gecko/20100101 Firefox/78.0","en-us,en;q=0.5");
|
|
||||||
|
|
||||||
PrefsHelper.setPref("browser.display.show_image_placeholders",true);
|
|
||||||
PrefsHelper.setPref("browser.cache.disk.enable",false);
|
|
||||||
PrefsHelper.setPref("browser.cache.memory.enable",true);
|
|
||||||
PrefsHelper.setPref("browser.cache.disk.capacity",0);
|
|
||||||
PrefsHelper.setPref("privacy.resistFingerprinting",true);
|
|
||||||
PrefsHelper.setPref("privacy.donottrackheader.enabled",false);
|
|
||||||
PrefsHelper.setPref("privacy.donottrackheader.value",1);
|
|
||||||
PrefsHelper.setPref("network.http.sendRefererHeader", 0);
|
|
||||||
PrefsHelper.setPref("security.OCSP.require", false);
|
|
||||||
PrefsHelper.setPref("security.checkloaduri",false);
|
|
||||||
PrefsHelper.setPref("security.mixed_content.block_active_content",false);
|
|
||||||
PrefsHelper.setPref("security.mixed_content.block_display_content", false);
|
|
||||||
PrefsHelper.setPref("media.peerconnection.enabled",false); //webrtc disabled
|
|
||||||
PrefsHelper.setPref("Mozilla/5.0 (Windows NT 10.0; rv:78.0) Gecko/20100101 Firefox/78.0","en-us,en;q=0.5");
|
|
||||||
|
|
||||||
PrefsHelper.setPref("browser.cache.disk_cache_ssl",true);
|
|
||||||
PrefsHelper.setPref("signon.formlessCapture.enabled",true);
|
|
||||||
PrefsHelper.setPref("signon.storeWhenAutocompleteOff",true);
|
|
||||||
PrefsHelper.setPref("signon.storeWhenAutocompleteOff",true);
|
|
||||||
PrefsHelper.setPref("dom.event.contextmenu.enabled",true);
|
|
||||||
PrefsHelper.setPref("layout.css.visited_links_enabled",true);
|
|
||||||
PrefsHelper.setPref("security.ssl3.ecdhe_rsa_aes_128_sha",true);
|
|
||||||
PrefsHelper.setPref("security.ssl3.ecdhe_ecdsa_aes_128_sha",true);
|
|
||||||
PrefsHelper.setPref("security.ssl3.dhe_rsa_aes_128_sha",true);
|
|
||||||
PrefsHelper.setPref("security.ssl3.rsa_des_ede3_sha",true);
|
|
||||||
PrefsHelper.setPref("security.ssl3.dhe_rsa_aes_256_sha",true);
|
|
||||||
|
|
||||||
PrefsHelper.setPref("browser.send_pings.require_same_host",false);
|
|
||||||
PrefsHelper.setPref("webgl.disabled",false);
|
|
||||||
PrefsHelper.setPref("browser.safebrowsing.blockedURIs.enabled",false);
|
|
||||||
PrefsHelper.setPref("media.gmp-provider.enabled",false);
|
|
||||||
PrefsHelper.setPref("browser.send_pings.require_same_host",false);
|
|
||||||
PrefsHelper.setPref("webgl.disabled",false);
|
|
||||||
PrefsHelper.setPref("pdfjs.enableWebGL",false);
|
|
||||||
PrefsHelper.setPref("browser.safebrowsing.malware.enabled",false);
|
|
||||||
PrefsHelper.setPref("security.csp.experimentalEnabled",false);
|
|
||||||
PrefsHelper.setPref("network.http.referer.spoofSource",false);
|
|
||||||
PrefsHelper.setPref("security.OCSP.require",false);
|
|
||||||
PrefsHelper.setPref("security.ssl.treat_unsafe_negotiation_as_broken", false);
|
|
||||||
PrefsHelper.setPref("security.ssl.require_safe_negotiation",false);
|
|
||||||
|
|
||||||
onUpdatePrivacyPreferences(pShowImages, mClearOnExit);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void onUpdatePrivacyPreferences(int pShowImages, boolean mClearOnExit)
|
|
||||||
{
|
|
||||||
PrefsHelper.setPref(keys.PROXY_IMAGE, pShowImages);
|
|
||||||
PrefsHelper.setPref("privacy.clearOnShutdown.cache",mClearOnExit);
|
|
||||||
PrefsHelper.setPref("privacy.clearOnShutdown.downloads",mClearOnExit);
|
|
||||||
PrefsHelper.setPref("privacy.clearOnShutdown.formdata",mClearOnExit);
|
|
||||||
PrefsHelper.setPref("privacy.clearOnShutdown.history",mClearOnExit);
|
|
||||||
PrefsHelper.setPref("privacy.clearOnShutdown.offlineApps",mClearOnExit);
|
|
||||||
PrefsHelper.setPref("privacy.clearOnShutdown.passwords",mClearOnExit);
|
|
||||||
PrefsHelper.setPref("privacy.clearOnShutdown.sessions",mClearOnExit);
|
|
||||||
PrefsHelper.setPref("privacy.clearOnShutdown.siteSettings",mClearOnExit);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/*Log Manager*/
|
|
||||||
|
|
||||||
private String getLogs()
|
|
||||||
{
|
|
||||||
String logs = orbotLocalConstants.mTorLogsStatus;
|
|
||||||
|
|
||||||
if(logs.equals("Starting Genesis | Please Wait ...")){
|
|
||||||
return logs;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(orbotLocalConstants.mTorLogsStatus.equals("No internet connection")){
|
|
||||||
return "Warning | " + orbotLocalConstants.mTorLogsStatus;
|
|
||||||
}
|
|
||||||
|
|
||||||
else if(orbotLocalConstants.mTorLogsStatus.startsWith("Invalid Configuration")){
|
|
||||||
return orbotLocalConstants.mTorLogsStatus;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!logs.contains("Bootstrapped") && !mLogsStarted){
|
|
||||||
logs = "Initializing Bootstrap";
|
|
||||||
mLogsStarted = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!logs.equals(strings.GENERIC_EMPTY_STR))
|
|
||||||
{
|
|
||||||
String Logs = logs;
|
|
||||||
Logs="Installing | " + Logs.replace("FAILED","Securing");
|
|
||||||
return Logs;
|
|
||||||
}
|
|
||||||
return "Loading Please Wait";
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean isOrbotRunning(){
|
|
||||||
return orbotLocalConstants.mIsTorInitialized;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void newCircuit(){
|
|
||||||
if(OrbotService.getServiceObject()!=null){
|
if(OrbotService.getServiceObject()!=null){
|
||||||
OrbotService.getServiceObject().newIdentity();
|
OrbotService.getServiceObject().newIdentity();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if(pCommands.equals(pluginEnums.eOrbotManager.M_GET_ORBOT_STATUS)){
|
||||||
private String getOrbotStatus(){
|
|
||||||
return OrbotService.getServiceObject().getProxyStatus();
|
return OrbotService.getServiceObject().getProxyStatus();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onDestroy(boolean pThemeApplying){
|
return null;
|
||||||
if(pThemeApplying) {
|
|
||||||
OrbotService.getServiceObject().onDestroy();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void onDestroy(boolean pThemeApplying){
|
||||||
|
if(!pThemeApplying) {
|
||||||
|
Intent mServiceIntent = new Intent(mAppContext.get(), OrbotService.class);
|
||||||
|
mServiceIntent.setAction(ACTION_STOP);
|
||||||
|
mAppContext.get().startService(mServiceIntent);
|
||||||
|
mAppContext.get().stopService(mServiceIntent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getLogs()
|
||||||
|
{
|
||||||
|
return (String) mLogManger.onTrigger(Collections.singletonList(orbotLocalConstants.mTorLogsStatus), M_GET_CLEANED_LOGS);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*External Triggers*/
|
/*External Triggers*/
|
||||||
|
|
||||||
public Object onTrigger(List<Object> pData, pluginEnums.eOrbotManager pEventType) {
|
public Object onTrigger(List<Object> pData, pluginEnums.eOrbotManager pEventType) {
|
||||||
if(pEventType.equals(pluginEnums.eOrbotManager.M_GET_NOTIFICATION_STATUS))
|
if(pEventType.equals(pluginEnums.eOrbotManager.M_GET_NOTIFICATION_STATUS) || pEventType.equals(pluginEnums.eOrbotManager.M_ENABLE_NOTIFICATION) || pEventType.equals(pluginEnums.eOrbotManager.M_DISABLE_NOTIFICATION) || pEventType.equals(pluginEnums.eOrbotManager.M_DISABLE_NOTIFICATION_NO_BANDWIDTH) || pEventType.equals(pluginEnums.eOrbotManager.M_IS_ORBOT_RUNNING) || pEventType.equals(pluginEnums.eOrbotManager.M_GET_ORBOT_STATUS) || pEventType.equals(pluginEnums.eOrbotManager.M_UPDATE_VPN) || pEventType.equals(pluginEnums.eOrbotManager.M_UPDATE_BRIDGES) || pEventType.equals(pluginEnums.eOrbotManager.M_SHOW_NOTIFICATION_STATUS) || pEventType.equals(pluginEnums.eOrbotManager.M_ORBOT_RUNNING) || pEventType.equals(pluginEnums.eOrbotManager.M_NEW_CIRCUIT))
|
||||||
{
|
{
|
||||||
return onGetNotificationStatus();
|
return onTriggerCommands(pData, pEventType);
|
||||||
}
|
|
||||||
else if(pEventType.equals(pluginEnums.eOrbotManager.M_ENABLE_NOTIFICATION))
|
|
||||||
{
|
|
||||||
onEnableTorNotification();
|
|
||||||
}
|
|
||||||
else if(pEventType.equals(pluginEnums.eOrbotManager.M_DISABLE_NOTIFICATION))
|
|
||||||
{
|
|
||||||
onDisableTorNotification();
|
|
||||||
}
|
|
||||||
else if(pEventType.equals(pluginEnums.eOrbotManager.M_DISABLE_NOTIFICATION_NO_BANDWIDTH))
|
|
||||||
{
|
|
||||||
onEnableTorNotificationNoBandwidth();
|
|
||||||
}
|
}
|
||||||
else if(pEventType.equals(pluginEnums.eOrbotManager.M_GET_LOGS))
|
else if(pEventType.equals(pluginEnums.eOrbotManager.M_GET_LOGS))
|
||||||
{
|
{
|
||||||
|
@ -292,52 +143,15 @@ public class orbotManager
|
||||||
}
|
}
|
||||||
else if(pEventType.equals(pluginEnums.eOrbotManager.M_UPDATE_PRIVACY))
|
else if(pEventType.equals(pluginEnums.eOrbotManager.M_UPDATE_PRIVACY))
|
||||||
{
|
{
|
||||||
onUpdatePrivacyPreferences((int) pData.get(0),(boolean) pData.get(1));
|
|
||||||
}
|
}
|
||||||
else if(pEventType.equals(pluginEnums.eOrbotManager.M_START_ORBOT))
|
else if(pEventType.equals(pluginEnums.eOrbotManager.M_START_ORBOT))
|
||||||
{
|
{
|
||||||
onStartOrbot((String) pData.get(0),(boolean) pData.get(1),(String) pData.get(2),(boolean) pData.get(3),(int) pData.get(4),(boolean) pData.get(5),(String) pData.get(6));
|
onInitlizeOrbot((String) pData.get(0),(boolean) pData.get(1),(String) pData.get(2),(boolean) pData.get(3), (String) pData.get(6));
|
||||||
}
|
|
||||||
else if(pEventType.equals(pluginEnums.eOrbotManager.M_IS_ORBOT_RUNNING))
|
|
||||||
{
|
|
||||||
isOrbotRunning();
|
|
||||||
}
|
|
||||||
else if(pEventType.equals(pluginEnums.eOrbotManager.M_GET_ORBOT_STATUS))
|
|
||||||
{
|
|
||||||
return getOrbotStatus();
|
|
||||||
}
|
|
||||||
else if(pEventType.equals(pluginEnums.eOrbotManager.M_UPDATE_VPN))
|
|
||||||
{
|
|
||||||
onUpdateVPN((boolean)pData.get(0));
|
|
||||||
}
|
|
||||||
else if(pEventType.equals(pluginEnums.eOrbotManager.M_UPDATE_BRIDGES))
|
|
||||||
{
|
|
||||||
onUpdateBridges((boolean)pData.get(0));
|
|
||||||
}
|
|
||||||
else if(pEventType.equals(pluginEnums.eOrbotManager.M_SET_PROXY))
|
|
||||||
{
|
|
||||||
onSetProxy();
|
|
||||||
}
|
|
||||||
else if(pEventType.equals(pluginEnums.eOrbotManager.M_SHOW_NOTIFICATION_STATUS))
|
|
||||||
{
|
|
||||||
onInitNotificationStatus((int)pData.get(0));
|
|
||||||
}
|
|
||||||
else if(pEventType.equals(pluginEnums.eOrbotManager.M_ORBOT_RUNNING))
|
|
||||||
{
|
|
||||||
return isOrbotRunning();
|
|
||||||
}
|
|
||||||
else if(pEventType.equals(pluginEnums.eOrbotManager.M_NEW_CIRCUIT))
|
|
||||||
{
|
|
||||||
newCircuit();
|
|
||||||
}
|
}
|
||||||
else if(pEventType.equals(pluginEnums.eOrbotManager.M_DESTROY))
|
else if(pEventType.equals(pluginEnums.eOrbotManager.M_DESTROY))
|
||||||
{
|
{
|
||||||
onDestroy((boolean) pData.get(0));
|
onDestroy((boolean) pData.get(0));
|
||||||
}
|
}
|
||||||
else if(pEventType.equals(pluginEnums.eOrbotManager.M_RESTART_PROXY))
|
|
||||||
{
|
|
||||||
onRestartProxy();
|
|
||||||
}
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
package com.darkweb.genesissearchengine.pluginManager.orbotPluginManager;
|
||||||
|
|
||||||
|
public class orbotPluginEnums
|
||||||
|
{
|
||||||
|
/*Orbot Log Manager*/
|
||||||
|
public enum eLogManager {
|
||||||
|
M_GET_CLEANED_LOGS
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum eProxyManager {
|
||||||
|
M_INIT_PROXY, M_INIT_PRIVACY
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,8 +1,8 @@
|
||||||
package com.darkweb.genesissearchengine.pluginManager;
|
package com.darkweb.genesissearchengine.pluginManager;
|
||||||
|
|
||||||
|
import android.content.Intent;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
|
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
||||||
import com.darkweb.genesissearchengine.appManager.homeManager.homeController.homeController;
|
import com.darkweb.genesissearchengine.appManager.homeManager.homeController.homeController;
|
||||||
|
@ -16,32 +16,35 @@ import com.darkweb.genesissearchengine.dataManager.dataController;
|
||||||
import com.darkweb.genesissearchengine.dataManager.dataEnums;
|
import com.darkweb.genesissearchengine.dataManager.dataEnums;
|
||||||
import com.darkweb.genesissearchengine.eventObserver;
|
import com.darkweb.genesissearchengine.eventObserver;
|
||||||
import com.darkweb.genesissearchengine.helperManager.helperMethod;
|
import com.darkweb.genesissearchengine.helperManager.helperMethod;
|
||||||
import com.darkweb.genesissearchengine.pluginManager.adPluginManager.adManager;
|
import com.darkweb.genesissearchengine.pluginManager.adPluginManager.admobManager;
|
||||||
|
import com.darkweb.genesissearchengine.pluginManager.adPluginManager.facebookAdsManager;
|
||||||
import com.darkweb.genesissearchengine.pluginManager.analyticPluginManager.analyticManager;
|
import com.darkweb.genesissearchengine.pluginManager.analyticPluginManager.analyticManager;
|
||||||
import com.darkweb.genesissearchengine.pluginManager.downloadPluginManager.downloadManager;
|
import com.darkweb.genesissearchengine.pluginManager.downloadPluginManager.downloadManager;
|
||||||
import com.darkweb.genesissearchengine.pluginManager.langPluginManager.langManager;
|
import com.darkweb.genesissearchengine.pluginManager.langPluginManager.langManager;
|
||||||
import com.darkweb.genesissearchengine.pluginManager.messagePluginManager.messageManager;
|
import com.darkweb.genesissearchengine.pluginManager.messagePluginManager.messageManager;
|
||||||
import com.darkweb.genesissearchengine.pluginManager.notificationPluginManager.notifictionManager;
|
import com.darkweb.genesissearchengine.pluginManager.notificationPluginManager.notifictionManager;
|
||||||
import com.darkweb.genesissearchengine.pluginManager.orbotPluginManager.orbotManager;
|
import com.darkweb.genesissearchengine.pluginManager.orbotPluginManager.orbotManager;
|
||||||
|
import com.example.myapplication.R;
|
||||||
|
|
||||||
import java.lang.ref.WeakReference;
|
import java.lang.ref.WeakReference;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
import static com.darkweb.genesissearchengine.constants.enums.etype.fetch_favicon;
|
import static com.darkweb.genesissearchengine.constants.enums.etype.fetch_favicon;
|
||||||
import static com.darkweb.genesissearchengine.pluginManager.pluginEnums.eAdManagerCallbacks.M_SHOW_LOADED_ADS;
|
import static com.darkweb.genesissearchengine.pluginManager.pluginEnums.eAdManagerCallbacks.M_ON_AD_CLICK;
|
||||||
|
import static com.darkweb.genesissearchengine.pluginManager.pluginEnums.eAdManagerCallbacks.M_ON_AD_LOAD;
|
||||||
import static com.darkweb.genesissearchengine.pluginManager.pluginEnums.eLangManager.M_ACTIVITY_CREATED;
|
import static com.darkweb.genesissearchengine.pluginManager.pluginEnums.eLangManager.M_ACTIVITY_CREATED;
|
||||||
import static com.darkweb.genesissearchengine.pluginManager.pluginEnums.eLangManager.M_RESUME;
|
import static com.darkweb.genesissearchengine.pluginManager.pluginEnums.eLangManager.M_RESUME;
|
||||||
import static com.darkweb.genesissearchengine.pluginManager.pluginEnums.eMessageManager.*;
|
import static com.darkweb.genesissearchengine.pluginManager.pluginEnums.eMessageManager.*;
|
||||||
import static com.darkweb.genesissearchengine.pluginManager.pluginEnums.eMessageManagerCallbacks.*;
|
import static com.darkweb.genesissearchengine.pluginManager.pluginEnums.eMessageManagerCallbacks.*;
|
||||||
|
import static org.webrtc.ContextUtils.getApplicationContext;
|
||||||
|
|
||||||
public class pluginController
|
public class pluginController
|
||||||
{
|
{
|
||||||
/*Plugin Instance*/
|
/*Plugin Instance*/
|
||||||
|
|
||||||
private adManager mAdManager;
|
private facebookAdsManager mAdManager;
|
||||||
private com.darkweb.genesissearchengine.pluginManager.analyticPluginManager.analyticManager mAnalyticsManager;
|
private com.darkweb.genesissearchengine.pluginManager.analyticPluginManager.analyticManager mAnalyticsManager;
|
||||||
private messageManager mMessageManager;
|
private messageManager mMessageManager;
|
||||||
private notifictionManager mNotificationManager;
|
private notifictionManager mNotificationManager;
|
||||||
|
@ -74,7 +77,6 @@ public class pluginController
|
||||||
|
|
||||||
public void onRemoveInstances(){
|
public void onRemoveInstances(){
|
||||||
mHomeController = null;
|
mHomeController = null;
|
||||||
mOrbotManager.onRemoveInstances();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void instanceObjectInitialization()
|
private void instanceObjectInitialization()
|
||||||
|
@ -83,7 +85,7 @@ public class pluginController
|
||||||
mContextManager = activityContextManager.getInstance();
|
mContextManager = activityContextManager.getInstance();
|
||||||
|
|
||||||
mNotificationManager = new notifictionManager(mHomeController,new notificationCallback());
|
mNotificationManager = new notifictionManager(mHomeController,new notificationCallback());
|
||||||
mAdManager = new adManager(new admobCallback(), ((homeController)mHomeController.get()).getBannerAd(), status.sPaidStatus, mHomeController.get());
|
mAdManager = new facebookAdsManager(new admobCallback(), ((homeController)mHomeController.get()).getBannerAd(), mHomeController.get());
|
||||||
mAnalyticsManager = new analyticManager(mHomeController,new analyticCallback(), status.sDeveloperBuild);
|
mAnalyticsManager = new analyticManager(mHomeController,new analyticCallback(), status.sDeveloperBuild);
|
||||||
mMessageManager = new messageManager(new messageCallback());
|
mMessageManager = new messageManager(new messageCallback());
|
||||||
mOrbotManager = orbotManager.getInstance();
|
mOrbotManager = orbotManager.getInstance();
|
||||||
|
@ -108,15 +110,19 @@ public class pluginController
|
||||||
@Override
|
@Override
|
||||||
public Object invokeObserver(List<Object> data, Object event_type)
|
public Object invokeObserver(List<Object> data, Object event_type)
|
||||||
{
|
{
|
||||||
if(event_type.equals(M_SHOW_LOADED_ADS))
|
if(event_type.equals(M_ON_AD_CLICK)){
|
||||||
((homeController)mHomeController.get()).onSetBannerAdMargin();
|
helperMethod.onMinimizeApp(mHomeController.get());
|
||||||
|
}
|
||||||
|
else if(event_type.equals(M_ON_AD_LOAD)){
|
||||||
|
activityContextManager.getInstance().getHomeController().onUpdateBannerAdvert();
|
||||||
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Object onAdsInvoke(List<Object> pData, pluginEnums.eAdManager pEventType){
|
public Object onAdsInvoke(List<Object> pData, pluginEnums.eAdManager pEventType){
|
||||||
if(mAdManager !=null){
|
if(mAdManager !=null){
|
||||||
return mAdManager.onTrigger(pData, pEventType);
|
return mAdManager.onTrigger(pEventType);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -314,6 +320,24 @@ public class pluginController
|
||||||
else if(pEventType.equals(M_UNDO_TAB)){
|
else if(pEventType.equals(M_UNDO_TAB)){
|
||||||
activityContextManager.getInstance().getTabController().onRestoreTab(null);
|
activityContextManager.getInstance().getTabController().onRestoreTab(null);
|
||||||
}
|
}
|
||||||
|
else if(pEventType.equals(M_SECURITY_INFO)){
|
||||||
|
mMessageManager.onTrigger(Arrays.asList(activityContextManager.getInstance().getHomeController().getSecurityInfo(),mHomeController.get()),M_SECURITY_INFO);
|
||||||
|
}
|
||||||
|
else if(pEventType.equals(M_IMAGE_UPDATE_RESTART)){
|
||||||
|
((AppCompatActivity)pData.get(0)).finish();
|
||||||
|
activityContextManager.getInstance().getSettingController().finish();
|
||||||
|
activityContextManager.getInstance().getHomeController().quitApplication();
|
||||||
|
new Thread(){
|
||||||
|
public void run(){
|
||||||
|
try {
|
||||||
|
sleep(500);
|
||||||
|
android.os.Process.killProcess(android.os.Process.myPid());
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}.start();
|
||||||
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,10 +4,10 @@ public class pluginEnums
|
||||||
{
|
{
|
||||||
/*Advert Manager*/
|
/*Advert Manager*/
|
||||||
public enum eAdManager {
|
public enum eAdManager {
|
||||||
M_INITIALIZE_BANNER_ADS, M_IS_ADVERT_LOADED
|
M_INITIALIZE_BANNER_ADS, M_IS_ADVERT_LOADED, M_DESTROY
|
||||||
}
|
}
|
||||||
public enum eAdManagerCallbacks {
|
public enum eAdManagerCallbacks {
|
||||||
M_SHOW_LOADED_ADS
|
M_ON_AD_CLICK, M_ON_AD_LOAD
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -28,10 +28,10 @@ public class pluginEnums
|
||||||
|
|
||||||
/*Message Manager*/
|
/*Message Manager*/
|
||||||
public enum eMessageManager{
|
public enum eMessageManager{
|
||||||
M_RESET, M_DATA_CLEARED, M_APPLICATION_CRASH, M_DELETE_BOOKMARK, M_UPDATE_BOOKMARK, M_SECURE_CONNECTION, M_POPUP_BLOCKED, M_PANIC, M_MAX_TAB_REACHED, M_ORBOT_LOADING, M_LOAD_NEW_TAB, M_UNDO,M_DOWNLOAD_SINGLE, M_UPDATE_BRIDGES, M_NEW_IDENTITY, M_NOT_SUPPORTED, M_BRIDGE_MAIL, M_LONG_PRESS_WITH_LINK, M_LONG_PRESS_URL, M_LONG_PRESS_DOWNLOAD, M_START_ORBOT, M_DOWNLOAD_FAILURE, M_DOWNLOAD_FILE, M_RATE_APP, M_REPORT_URL, M_CLEAR_BOOKMARK, M_CLEAR_HISTORY, M_BOOKMARK, M_PANIC_RESET, M_OPEN_LOGS, M_RATE_SUCCESS, M_RATE_FAILURE, M_LANGUAGE_SUPPORT_FAILURE, M_WELCOME
|
M_RESET, M_DATA_CLEARED, M_APPLICATION_CRASH, M_DELETE_BOOKMARK, M_UPDATE_BOOKMARK, M_IMAGE_UPDATE, M_SECURE_CONNECTION, M_SECURITY_INFO, M_POPUP_BLOCKED, M_PANIC, M_MAX_TAB_REACHED, M_ORBOT_LOADING, M_LOAD_NEW_TAB, M_UNDO,M_DOWNLOAD_SINGLE, M_UPDATE_BRIDGES, M_NEW_IDENTITY, M_NOT_SUPPORTED, M_BRIDGE_MAIL, M_LONG_PRESS_WITH_LINK, M_LONG_PRESS_URL, M_LONG_PRESS_DOWNLOAD, M_START_ORBOT, M_DOWNLOAD_FAILURE, M_DOWNLOAD_FILE, M_RATE_APP, M_REPORT_URL, M_CLEAR_BOOKMARK, M_CLEAR_HISTORY, M_BOOKMARK, M_PANIC_RESET, M_OPEN_LOGS, M_RATE_SUCCESS, M_RATE_FAILURE, M_LANGUAGE_SUPPORT_FAILURE, M_WELCOME
|
||||||
}
|
}
|
||||||
public enum eMessageManagerCallbacks{
|
public enum eMessageManagerCallbacks{
|
||||||
M_CANCEL_WELCOME, M_APP_RATED, M_DOWNLOAD_FILE_MANUAL, M_OPEN_LINK_CURRENT_TAB, M_COPY_LINK, M_REQUEST_BRIDGES, M_SET_BRIDGES, M_OPEN_LINK_NEW_TAB, M_CLEAR_TAB, M_RATE_APPLICATION, M_OPEN_PRIVACY, M_UNDO_SESSION, M_UNDO_TAB, M_CUSTOM_BRIDGE, M_BRIDGE_TYPE
|
M_CANCEL_WELCOME, M_APP_RATED, M_DOWNLOAD_FILE_MANUAL, M_OPEN_LINK_CURRENT_TAB, M_COPY_LINK, M_REQUEST_BRIDGES, M_SET_BRIDGES, M_OPEN_LINK_NEW_TAB, M_CLEAR_TAB, M_RATE_APPLICATION, M_OPEN_PRIVACY, M_UNDO_SESSION, M_UNDO_TAB, M_CUSTOM_BRIDGE, M_BRIDGE_TYPE, M_DATA_CLEARED_EXTERNAL, M_IMAGE_UPDATE_RESTART
|
||||||
}
|
}
|
||||||
|
|
||||||
/*Download Manager*/
|
/*Download Manager*/
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
android:fillEnabled="true">
|
android:fillEnabled="true">
|
||||||
|
|
||||||
<scale
|
<scale
|
||||||
android:duration="200"
|
android:duration="150"
|
||||||
android:fromXScale="0.95"
|
android:fromXScale="0.95"
|
||||||
android:fromYScale="0.95"
|
android:fromYScale="0.95"
|
||||||
android:pivotX="50%"
|
android:pivotX="50%"
|
||||||
|
@ -16,6 +16,6 @@
|
||||||
<alpha android:fromAlpha="0"
|
<alpha android:fromAlpha="0"
|
||||||
android:toAlpha="1.0"
|
android:toAlpha="1.0"
|
||||||
android:interpolator="@android:anim/accelerate_interpolator"
|
android:interpolator="@android:anim/accelerate_interpolator"
|
||||||
android:duration="200"
|
android:duration="100"
|
||||||
android:repeatCount="0"/>
|
android:repeatCount="0"/>
|
||||||
</set>
|
</set>
|
|
@ -0,0 +1,19 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<set xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:fillAfter="true"
|
||||||
|
android:fillEnabled="true">
|
||||||
|
|
||||||
|
<translate
|
||||||
|
android:duration="200"
|
||||||
|
android:fromXDelta="0%"
|
||||||
|
android:fromYDelta="-10%"
|
||||||
|
android:toXDelta="0%"
|
||||||
|
android:toYDelta="0%"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<alpha android:fromAlpha="0.0"
|
||||||
|
android:toAlpha="1.0"
|
||||||
|
android:interpolator="@android:anim/accelerate_interpolator"
|
||||||
|
android:duration="250"
|
||||||
|
android:repeatCount="0"/>
|
||||||
|
</set>
|
|
@ -4,7 +4,7 @@
|
||||||
android:fillEnabled="true">
|
android:fillEnabled="true">
|
||||||
|
|
||||||
<scale
|
<scale
|
||||||
android:duration="250"
|
android:duration="150"
|
||||||
android:fromXScale="1"
|
android:fromXScale="1"
|
||||||
android:fromYScale="1"
|
android:fromYScale="1"
|
||||||
android:pivotX="50%"
|
android:pivotX="50%"
|
||||||
|
@ -16,6 +16,6 @@
|
||||||
<alpha android:fromAlpha="1.0"
|
<alpha android:fromAlpha="1.0"
|
||||||
android:toAlpha="0.0"
|
android:toAlpha="0.0"
|
||||||
android:interpolator="@android:anim/accelerate_interpolator"
|
android:interpolator="@android:anim/accelerate_interpolator"
|
||||||
android:duration="250"
|
android:duration="100"
|
||||||
android:repeatCount="0"/>
|
android:repeatCount="0"/>
|
||||||
</set>
|
</set>
|
|
@ -0,0 +1,19 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<set xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:fillAfter="true"
|
||||||
|
android:fillEnabled="true">
|
||||||
|
|
||||||
|
<translate
|
||||||
|
android:duration="100"
|
||||||
|
android:fromXDelta="0%"
|
||||||
|
android:fromYDelta="0%"
|
||||||
|
android:toXDelta="0%"
|
||||||
|
android:toYDelta="0%"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<alpha android:fromAlpha="1.0"
|
||||||
|
android:toAlpha="0.0"
|
||||||
|
android:interpolator="@android:anim/accelerate_interpolator"
|
||||||
|
android:duration="250"
|
||||||
|
android:repeatCount="0"/>
|
||||||
|
</set>
|
|
@ -1,8 +1,19 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
|
||||||
<translate xmlns:android="http://schemas.android.com/apk/res/android"
|
<set xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:fromXDelta="-100%"
|
android:shareInterpolator="false">
|
||||||
android:toXDelta="0"
|
<scale
|
||||||
android:interpolator="@android:anim/decelerate_interpolator"
|
android:duration="150"
|
||||||
android:duration="250"/>
|
android:fromXScale="1"
|
||||||
|
android:fromYScale="1"
|
||||||
|
android:pivotX="50%"
|
||||||
|
android:pivotY="50%"
|
||||||
|
android:toXScale="0.9"
|
||||||
|
android:toYScale="0.9"
|
||||||
|
/>
|
||||||
|
<alpha android:fromAlpha="1"
|
||||||
|
android:toAlpha="0"
|
||||||
|
android:interpolator="@android:anim/accelerate_interpolator"
|
||||||
|
android:duration="100"
|
||||||
|
android:repeatCount="0"/>
|
||||||
</set>
|
</set>
|
|
@ -1,11 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
|
|
||||||
<set xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:shareInterpolator="false">
|
|
||||||
<translate
|
|
||||||
android:duration="250"
|
|
||||||
android:fromXDelta="0%"
|
|
||||||
android:fromYDelta="0%"
|
|
||||||
android:toXDelta="-100%"
|
|
||||||
android:toYDelta="0%" />
|
|
||||||
</set>
|
|
|
@ -1,8 +1,20 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
|
||||||
<translate xmlns:android="http://schemas.android.com/apk/res/android"
|
<set xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:fromXDelta="0"
|
android:shareInterpolator="false">
|
||||||
android:toXDelta="100%"
|
<scale
|
||||||
android:interpolator="@android:anim/decelerate_interpolator"
|
android:duration="150"
|
||||||
android:duration="250"/>
|
android:fromXScale="1.1"
|
||||||
|
android:fromYScale="1.1"
|
||||||
|
android:pivotX="50%"
|
||||||
|
android:pivotY="50%"
|
||||||
|
android:toXScale="1"
|
||||||
|
android:toYScale="1"
|
||||||
|
/>
|
||||||
|
<alpha android:fromAlpha="0"
|
||||||
|
android:toAlpha="1.0"
|
||||||
|
android:interpolator="@android:anim/accelerate_interpolator"
|
||||||
|
android:duration="100"
|
||||||
|
android:repeatCount="0"/>
|
||||||
|
|
||||||
</set>
|
</set>
|
|
@ -1,11 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
|
|
||||||
<set xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:shareInterpolator="false">
|
|
||||||
<translate
|
|
||||||
android:duration="250"
|
|
||||||
android:fromXDelta="100%"
|
|
||||||
android:fromYDelta="0%"
|
|
||||||
android:toXDelta="0%"
|
|
||||||
android:toYDelta="0%" />
|
|
||||||
</set>
|
|
|
@ -1,6 +1,11 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<translate
|
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
<set xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shareInterpolator="false">
|
||||||
|
<translate
|
||||||
android:duration="250"
|
android:duration="250"
|
||||||
android:fromXDelta="100%p"
|
android:fromXDelta="0%"
|
||||||
android:toXDelta="0%p"/>
|
android:fromYDelta="0%"
|
||||||
|
android:toXDelta="-100%"
|
||||||
|
android:toYDelta="0%" />
|
||||||
|
</set>
|
|
@ -0,0 +1,18 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
|
<set xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shareInterpolator="false">
|
||||||
|
<translate
|
||||||
|
android:duration="200"
|
||||||
|
android:fromXDelta="5%"
|
||||||
|
android:fromYDelta="0%"
|
||||||
|
android:toXDelta="0%"
|
||||||
|
android:toYDelta="0%"
|
||||||
|
/>
|
||||||
|
<alpha android:fromAlpha="0"
|
||||||
|
android:toAlpha="1.0"
|
||||||
|
android:interpolator="@android:anim/accelerate_interpolator"
|
||||||
|
android:duration="200"
|
||||||
|
android:repeatCount="0"/>
|
||||||
|
|
||||||
|
</set>
|
|
@ -0,0 +1,18 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
|
<set xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shareInterpolator="false">
|
||||||
|
<translate
|
||||||
|
android:duration="200"
|
||||||
|
android:fromXDelta="-5%"
|
||||||
|
android:fromYDelta="0%"
|
||||||
|
android:toXDelta="0%"
|
||||||
|
android:toYDelta="0%"
|
||||||
|
/>
|
||||||
|
<alpha android:fromAlpha="0"
|
||||||
|
android:toAlpha="1.0"
|
||||||
|
android:interpolator="@android:anim/accelerate_interpolator"
|
||||||
|
android:duration="200"
|
||||||
|
android:repeatCount="0"/>
|
||||||
|
|
||||||
|
</set>
|
|
@ -0,0 +1,17 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
|
<set xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shareInterpolator="false">
|
||||||
|
<translate
|
||||||
|
android:duration="200"
|
||||||
|
android:fromXDelta="0%"
|
||||||
|
android:fromYDelta="0%"
|
||||||
|
android:toXDelta="5%"
|
||||||
|
android:toYDelta="0%"
|
||||||
|
/>
|
||||||
|
<alpha android:fromAlpha="1"
|
||||||
|
android:toAlpha="0"
|
||||||
|
android:interpolator="@android:anim/accelerate_interpolator"
|
||||||
|
android:duration="200"
|
||||||
|
android:repeatCount="0"/>
|
||||||
|
</set>
|
|
@ -0,0 +1,17 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
|
<set xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shareInterpolator="false">
|
||||||
|
<translate
|
||||||
|
android:duration="200"
|
||||||
|
android:fromXDelta="0%"
|
||||||
|
android:fromYDelta="0%"
|
||||||
|
android:toXDelta="-5%"
|
||||||
|
android:toYDelta="0%"
|
||||||
|
/>
|
||||||
|
<alpha android:fromAlpha="1"
|
||||||
|
android:toAlpha="0"
|
||||||
|
android:interpolator="@android:anim/accelerate_interpolator"
|
||||||
|
android:duration="200"
|
||||||
|
android:repeatCount="0"/>
|
||||||
|
</set>
|
|
@ -0,0 +1,21 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:color="@color/c_secure_alert_button_pressed">
|
||||||
|
<item android:id="@android:id/mask">
|
||||||
|
<shape android:shape="rectangle">
|
||||||
|
<solid android:color="@color/c_secure_alert_button_pressed" />
|
||||||
|
<corners android:radius="3.5dp" />
|
||||||
|
</shape>
|
||||||
|
</item>
|
||||||
|
|
||||||
|
<item android:id="@android:id/background">
|
||||||
|
<shape android:shape="rectangle">
|
||||||
|
<gradient
|
||||||
|
android:angle="90"
|
||||||
|
android:endColor="@color/c_secure_alert_button"
|
||||||
|
android:startColor="@color/c_secure_alert_button"
|
||||||
|
android:type="linear" />
|
||||||
|
<corners android:radius="3.5dp" />
|
||||||
|
</shape>
|
||||||
|
</item>
|
||||||
|
</ripple>
|
|
@ -0,0 +1,30 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
|
||||||
|
<!-- Bottom 2dp Shadow -->
|
||||||
|
<item>
|
||||||
|
<shape android:shape="rectangle">
|
||||||
|
|
||||||
|
<solid android:color="@color/c_secure_alert_border" />
|
||||||
|
<corners android:radius="0dp" />
|
||||||
|
|
||||||
|
</shape>
|
||||||
|
</item>
|
||||||
|
|
||||||
|
<!-- White Top color -->
|
||||||
|
<item android:bottom="4dp" android:left="0px" android:right="0px" android:top="0px">
|
||||||
|
|
||||||
|
<shape android:shape="rectangle">
|
||||||
|
|
||||||
|
<gradient
|
||||||
|
android:angle="90"
|
||||||
|
android:endColor="@color/c_secure_alert_start"
|
||||||
|
android:startColor="@color/c_secure_alert_end"
|
||||||
|
android:type="linear" />
|
||||||
|
<corners android:radius="0dp" />
|
||||||
|
|
||||||
|
|
||||||
|
</shape>
|
||||||
|
|
||||||
|
</item>
|
||||||
|
</layer-list>
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
|
<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<shortcut
|
<shortcut
|
||||||
android:shortcutId="Restart"
|
android:shortcutId="CONST_SHORTCUT_RESTART"
|
||||||
android:enabled="true"
|
android:enabled="true"
|
||||||
android:icon="@xml/ic_baseline_shortcut_erase_back"
|
android:icon="@xml/ic_baseline_shortcut_erase_back"
|
||||||
android:shortcutShortLabel="@string/shortcut_open"
|
android:shortcutShortLabel="@string/shortcut_open"
|
||||||
|
@ -11,11 +11,11 @@
|
||||||
android:action="erase"
|
android:action="erase"
|
||||||
android:targetPackage="com.darkweb.genesissearchengine.production"
|
android:targetPackage="com.darkweb.genesissearchengine.production"
|
||||||
android:targetClass="com.darkweb.genesissearchengine.appManager.externalCommandManager.externalShortcutController">
|
android:targetClass="com.darkweb.genesissearchengine.appManager.externalCommandManager.externalShortcutController">
|
||||||
<extra android:name="shortcut" android:value="open" />
|
<extra android:name="EXTERNAL_SHORTCUT_COMMAND" android:value="EXTERNAL_SHORTCUT_COMMAND_RESTART" />
|
||||||
</intent>
|
</intent>
|
||||||
</shortcut>
|
</shortcut>
|
||||||
<shortcut
|
<shortcut
|
||||||
android:shortcutId="erase_and_open"
|
android:shortcutId="CONST_SHORTCUT_ERASE_OPEN"
|
||||||
android:enabled="true"
|
android:enabled="true"
|
||||||
android:icon="@xml/ic_baseline_shortcut_add_new_back"
|
android:icon="@xml/ic_baseline_shortcut_add_new_back"
|
||||||
android:shortcutShortLabel="@string/shortcut_erase_and_open_short_label"
|
android:shortcutShortLabel="@string/shortcut_erase_and_open_short_label"
|
||||||
|
@ -24,11 +24,11 @@
|
||||||
android:action="erase"
|
android:action="erase"
|
||||||
android:targetPackage="com.darkweb.genesissearchengine.production"
|
android:targetPackage="com.darkweb.genesissearchengine.production"
|
||||||
android:targetClass="com.darkweb.genesissearchengine.appManager.externalCommandManager.externalShortcutController">
|
android:targetClass="com.darkweb.genesissearchengine.appManager.externalCommandManager.externalShortcutController">
|
||||||
<extra android:name="shortcut" android:value="erase_and_open" />
|
<extra android:name="EXTERNAL_SHORTCUT_COMMAND" android:value="EXTERNAL_SHORTCUT_COMMAND_ERASE_OPEN" />
|
||||||
</intent>
|
</intent>
|
||||||
</shortcut>
|
</shortcut>
|
||||||
<shortcut
|
<shortcut
|
||||||
android:shortcutId="erase"
|
android:shortcutId="CONST_SHORTCUT_ERASE"
|
||||||
android:enabled="true"
|
android:enabled="true"
|
||||||
android:icon="@xml/ic_baseline_shortcut_cross_back"
|
android:icon="@xml/ic_baseline_shortcut_cross_back"
|
||||||
android:shortcutShortLabel="@string/shortcut_erase_short_label"
|
android:shortcutShortLabel="@string/shortcut_erase_short_label"
|
||||||
|
@ -37,7 +37,7 @@
|
||||||
android:action="erase"
|
android:action="erase"
|
||||||
android:targetPackage="com.darkweb.genesissearchengine.production"
|
android:targetPackage="com.darkweb.genesissearchengine.production"
|
||||||
android:targetClass="com.darkweb.genesissearchengine.appManager.externalCommandManager.externalShortcutController">
|
android:targetClass="com.darkweb.genesissearchengine.appManager.externalCommandManager.externalShortcutController">
|
||||||
<extra android:name="shortcut" android:value="erase" />
|
<extra android:name="EXTERNAL_SHORTCUT_COMMAND" android:value="EXTERNAL_SHORTCUT_COMMAND_ERASE" />
|
||||||
</intent>
|
</intent>
|
||||||
</shortcut>
|
</shortcut>
|
||||||
</shortcuts>
|
</shortcuts>
|
|
@ -0,0 +1,10 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||||
|
<item android:left="0dp" android:right="-5dp" android:top="-5dp" android:bottom="-5dp">
|
||||||
|
<shape
|
||||||
|
android:shape="rectangle">
|
||||||
|
<stroke android:width="4dp" android:color="@color/c_text_short_header" />
|
||||||
|
<solid android:color="@color/c_orbot_background" />
|
||||||
|
</shape>
|
||||||
|
</item>
|
||||||
|
</layer-list>
|
Binary file not shown.
After Width: | Height: | Size: 2.1 KiB |
|
@ -0,0 +1,99 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/pCertificateRootBackground"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="0dp"
|
||||||
|
android:alpha="0"
|
||||||
|
android:background="@color/c_secure_alert_background"
|
||||||
|
android:contentDescription="@string/GENERAL_TODO"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintVertical_weight="1" />
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
android:id="@+id/pCertificateRootLayout"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:paddingBottom="10dp"
|
||||||
|
android:background="@xml/ax_round_corner_secure"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/pCertificateRootHeader"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="10dp"
|
||||||
|
android:layout_marginTop="20dp"
|
||||||
|
android:paddingStart="5dp"
|
||||||
|
android:text="@string/ALERT_CERTIFICATE_HEADER"
|
||||||
|
android:textAlignment="textStart"
|
||||||
|
android:textColor="@color/green_button"
|
||||||
|
android:textSize="15sp"
|
||||||
|
android:textStyle="bold"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
tools:ignore="RtlSymmetry" />
|
||||||
|
|
||||||
|
<ScrollView
|
||||||
|
android:id="@+id/pCertificateScrollView"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
android:paddingTop="10dp"
|
||||||
|
android:fillViewport="true"
|
||||||
|
android:paddingBottom="10dp"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/pCertificateRootHeader">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/pCertificateScroll"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/pCertificateDesciption"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="15dp"
|
||||||
|
android:layout_marginEnd="15dp"
|
||||||
|
android:alpha="0.6"
|
||||||
|
android:text="@string/GENERAL_TODO"
|
||||||
|
android:paddingBottom="100dp"
|
||||||
|
android:textAlignment="textStart"
|
||||||
|
android:textColor="@color/c_alert_text"
|
||||||
|
android:textSize="14sp"
|
||||||
|
android:translationZ="2dp"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/pCertificateRootHeader"
|
||||||
|
tools:ignore="SmallSp" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
</ScrollView>
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/pCertificateRootBlocker"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="60dp"
|
||||||
|
android:clickable="true"
|
||||||
|
android:contentDescription="@string/GENERAL_TODO"
|
||||||
|
android:focusable="true"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
@ -0,0 +1,361 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="2000dp">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/pSecureRootBlocker"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="2000dp"
|
||||||
|
android:alpha="0"
|
||||||
|
android:background="@color/c_secure_alert_background"
|
||||||
|
android:contentDescription="@string/GENERAL_TODO"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/pSecureRoot"
|
||||||
|
app:layout_constraintVertical_weight="1" />
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
android:id="@+id/pSecureRoot"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:background="@xml/ax_round_corner_secure"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/pSecureLock"
|
||||||
|
android:layout_width="18dp"
|
||||||
|
android:layout_height="18dp"
|
||||||
|
android:layout_marginStart="14dp"
|
||||||
|
android:layout_marginTop="15dp"
|
||||||
|
android:contentDescription="@string/GENERAL_TODO"
|
||||||
|
android:src="@drawable/onion"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/pSecureHeader"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="5dp"
|
||||||
|
android:layout_marginTop="12dp"
|
||||||
|
android:paddingStart="5dp"
|
||||||
|
android:text="@string/ALERT_SECURE_INFO_HEADER"
|
||||||
|
android:textAlignment="textStart"
|
||||||
|
android:textColor="@color/green_button"
|
||||||
|
android:textSize="15sp"
|
||||||
|
android:textStyle="bold"
|
||||||
|
app:layout_constraintStart_toEndOf="@+id/pSecureLock"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
tools:ignore="RtlSymmetry" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/pSecureSubHeader"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="2dp"
|
||||||
|
android:layout_marginTop="12dp"
|
||||||
|
android:layout_marginEnd="20dp"
|
||||||
|
android:alpha="0.8"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:maxLines="1"
|
||||||
|
android:text="@string/GENERAL_TODO"
|
||||||
|
android:textAlignment="textStart"
|
||||||
|
android:textColor="@color/c_alert_text"
|
||||||
|
android:textSize="15sp"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintHorizontal_weight="1"
|
||||||
|
app:layout_constraintStart_toEndOf="@+id/pSecureHeader"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/pSecureDescription"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="5dp"
|
||||||
|
android:layout_marginTop="20dp"
|
||||||
|
android:layout_marginEnd="15dp"
|
||||||
|
android:alpha="0.6"
|
||||||
|
android:paddingStart="10dp"
|
||||||
|
android:paddingEnd="10dp"
|
||||||
|
android:text="@string/ALERT_SECURE_INFO_DETAIL"
|
||||||
|
android:textAlignment="textStart"
|
||||||
|
android:textColor="@color/c_alert_text"
|
||||||
|
android:textSize="14sp"
|
||||||
|
android:translationZ="2dp"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/pSecureLock"
|
||||||
|
tools:ignore="SmallSp" />
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/pSecureInfo"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="20dp"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:paddingStart="5dp"
|
||||||
|
android:paddingEnd="5dp"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/pSecureDescription">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/pSecureJavascript"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:padding="10dp">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="0dp"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/pSecureJavasciptHeader"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingTop="0dp"
|
||||||
|
android:paddingBottom="0dp"
|
||||||
|
android:text="@string/ALERT_SECURE_INFO_JAVASCRIPT_HEADER"
|
||||||
|
android:textAlignment="textStart"
|
||||||
|
android:textColor="@color/c_alert_text"
|
||||||
|
android:textSize="14sp"
|
||||||
|
android:translationZ="2dp" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/pSecureJavasciptDescription"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:alpha="0.6"
|
||||||
|
android:background="@android:color/transparent"
|
||||||
|
android:clickable="false"
|
||||||
|
android:padding="0dp"
|
||||||
|
android:text="@string/ALERT_SECURE_INFO_JAVASCRIPT_INFO"
|
||||||
|
android:textAlignment="textStart"
|
||||||
|
android:textAllCaps="false"
|
||||||
|
android:textColor="@color/c_alert_text"
|
||||||
|
android:textSize="12sp"
|
||||||
|
android:translationZ="2dp"
|
||||||
|
tools:ignore="RtlSymmetry" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<com.google.android.material.switchmaterial.SwitchMaterial
|
||||||
|
android:id="@+id/pSecureJavascriptStatus"
|
||||||
|
android:layout_width="50dp"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_marginStart="10dp"
|
||||||
|
android:alpha="0.2"
|
||||||
|
android:clickable="false"
|
||||||
|
android:contentDescription="@string/GENERAL_TODO"
|
||||||
|
android:theme="@style/SCBSwitchSecurity" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<View
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="1dp"
|
||||||
|
android:layout_marginStart="10dp"
|
||||||
|
android:layout_marginEnd="10dp"
|
||||||
|
android:alpha="0.8"
|
||||||
|
android:background="@color/c_security_popup_divider"
|
||||||
|
app:layout_constraintBottom_toTopOf="@+id/pSecureNavigation"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent" />
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/pInfoDonottrack"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:padding="10dp">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/pSecureNonTrackingHeader"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingTop="0dp"
|
||||||
|
android:paddingBottom="0dp"
|
||||||
|
android:text="@string/ALERT_SECURE_INFO_NONTRACKING_HEADER"
|
||||||
|
android:textAlignment="textStart"
|
||||||
|
android:textColor="@color/c_alert_text"
|
||||||
|
android:textSize="14sp"
|
||||||
|
android:translationZ="2dp" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/pSecureNonTrackingDescription"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:alpha="0.6"
|
||||||
|
android:background="@android:color/transparent"
|
||||||
|
android:clickable="false"
|
||||||
|
android:padding="0dp"
|
||||||
|
android:text="@string/ALERT_SECURE_INFO_NONTRACKING_INFO"
|
||||||
|
android:textAlignment="textStart"
|
||||||
|
android:textAllCaps="false"
|
||||||
|
android:textColor="@color/c_alert_text"
|
||||||
|
android:textSize="12sp"
|
||||||
|
android:translationZ="2dp"
|
||||||
|
tools:ignore="RtlSymmetry" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<com.google.android.material.switchmaterial.SwitchMaterial
|
||||||
|
android:id="@+id/pSecureTrackingStatus"
|
||||||
|
android:layout_width="50dp"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_marginStart="10dp"
|
||||||
|
android:alpha="0.2"
|
||||||
|
android:clickable="false"
|
||||||
|
android:contentDescription="@string/GENERAL_TODO"
|
||||||
|
android:theme="@style/SCBSwitchSecurity" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<View
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="1dp"
|
||||||
|
android:layout_marginStart="10dp"
|
||||||
|
android:layout_marginEnd="10dp"
|
||||||
|
android:alpha="1"
|
||||||
|
android:background="@color/c_security_popup_divider"
|
||||||
|
app:layout_constraintBottom_toTopOf="@+id/pSecureNavigation"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent" />
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:padding="10dp">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/pSecureTrackingProtectionHeader"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingTop="0dp"
|
||||||
|
android:paddingBottom="0dp"
|
||||||
|
android:text="@string/ALERT_SECURE_INFO_TRACKING_HEADER"
|
||||||
|
android:textAlignment="textStart"
|
||||||
|
android:textColor="@color/c_alert_text"
|
||||||
|
android:textSize="14sp"
|
||||||
|
android:translationZ="2dp" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/pSecureTrackingProtectionSubHeader"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:alpha="0.6"
|
||||||
|
android:background="@android:color/transparent"
|
||||||
|
android:clickable="false"
|
||||||
|
android:padding="0dp"
|
||||||
|
android:text="@string/ALERT_SECURE_INFO_TRACKING_INFO"
|
||||||
|
android:textAlignment="textStart"
|
||||||
|
android:textAllCaps="false"
|
||||||
|
android:textColor="@color/c_alert_text"
|
||||||
|
android:textSize="12sp"
|
||||||
|
android:translationZ="2dp"
|
||||||
|
tools:ignore="RtlSymmetry" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<com.google.android.material.switchmaterial.SwitchMaterial
|
||||||
|
android:id="@+id/pSecureTrackingProtectionStatus"
|
||||||
|
android:layout_width="50dp"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_marginStart="10dp"
|
||||||
|
android:alpha="0.2"
|
||||||
|
android:clickable="false"
|
||||||
|
android:contentDescription="@string/GENERAL_TODO"
|
||||||
|
android:theme="@style/SCBSwitchSecurity" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<View
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="1dp"
|
||||||
|
android:alpha="1"
|
||||||
|
android:background="@color/c_view_divier_background"
|
||||||
|
app:layout_constraintBottom_toTopOf="@+id/pSecureNavigation"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent" />
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/pSecureNavigation"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="65dp"
|
||||||
|
android:layout_marginTop="15dp"
|
||||||
|
android:layout_marginBottom="200dp"
|
||||||
|
android:gravity="end"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/pSecureInfo">
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/pSecurePrivacy"
|
||||||
|
style="?android:attr/buttonBarButtonStyle"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="43dp"
|
||||||
|
android:layout_marginStart="15dp"
|
||||||
|
android:layout_marginTop="15dp"
|
||||||
|
android:layout_marginEnd="15dp"
|
||||||
|
android:layout_marginBottom="10dp"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:background="@xml/ax_ripple_default_round_bottom_neutral"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:maxLines="1"
|
||||||
|
android:padding="0dp"
|
||||||
|
android:paddingStart="10dp"
|
||||||
|
android:paddingEnd="10dp"
|
||||||
|
android:text="@string/ALERT_SECURE_INFO_SETTINGS"
|
||||||
|
android:textAllCaps="false"
|
||||||
|
android:textColor="@color/c_white"
|
||||||
|
android:textSize="13.5sp"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/pSecureCertificate"
|
||||||
|
style="?android:attr/buttonBarButtonStyle"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="43dp"
|
||||||
|
android:layout_marginTop="15dp"
|
||||||
|
android:layout_marginEnd="15dp"
|
||||||
|
android:layout_marginBottom="10dp"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:background="@xml/ax_ripple_default_round_bottom_neutral"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:maxLines="1"
|
||||||
|
android:padding="0dp"
|
||||||
|
android:paddingStart="15dp"
|
||||||
|
android:paddingEnd="10dp"
|
||||||
|
android:text="@string/ALERT_SECURE_INFO_CERTIFICATE"
|
||||||
|
android:textAllCaps="false"
|
||||||
|
android:textColor="@color/c_white"
|
||||||
|
android:textSize="13.5sp"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
@ -7,7 +7,7 @@
|
||||||
android:layout_marginBottom="10dp">
|
android:layout_marginBottom="10dp">
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
android:id="@+id/pMainLayout"
|
android:id="@+id/pSecureRootLayout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:background="@xml/ax_round_corner"
|
android:background="@xml/ax_round_corner"
|
||||||
|
@ -16,7 +16,7 @@
|
||||||
app:layout_constraintStart_toStartOf="parent">
|
app:layout_constraintStart_toStartOf="parent">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/pDescription"
|
android:id="@+id/pOrbotRowDescription"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="18dp"
|
android:layout_marginTop="18dp"
|
||||||
|
@ -49,7 +49,7 @@
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/pDescription" />
|
app:layout_constraintTop_toBottomOf="@+id/pOrbotRowDescription" />
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,101 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="2000dp">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/pCertificateRootBackground"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="2000dp"
|
||||||
|
android:alpha="0"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
android:background="@color/c_secure_alert_background"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/pCertificateRootLayout"
|
||||||
|
app:layout_constraintVertical_weight="1"
|
||||||
|
android:contentDescription="@string/GENERAL_TODO" />
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
android:id="@+id/pCertificateRootLayout"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:maxHeight="450dp"
|
||||||
|
android:paddingBottom="10dp"
|
||||||
|
android:background="@xml/ax_round_corner_secure"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/pCertificateRootHeader"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="10dp"
|
||||||
|
android:layout_marginTop="20dp"
|
||||||
|
android:paddingStart="5dp"
|
||||||
|
android:text="@string/ALERT_CERTIFICATE_HEADER"
|
||||||
|
android:textAlignment="textStart"
|
||||||
|
android:textColor="@color/green_button"
|
||||||
|
android:textSize="15sp"
|
||||||
|
android:textStyle="bold"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
tools:ignore="RtlSymmetry" />
|
||||||
|
|
||||||
|
<ScrollView
|
||||||
|
android:id="@+id/pCertificateScrollView"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="450dp"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
android:paddingTop="10dp"
|
||||||
|
android:fillViewport="true"
|
||||||
|
android:paddingBottom="10dp"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/pCertificateRootHeader">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/pCertificateScroll"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/pCertificateDesciption"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="15dp"
|
||||||
|
android:layout_marginEnd="15dp"
|
||||||
|
android:alpha="0.6"
|
||||||
|
android:text="@string/GENERAL_TODO"
|
||||||
|
android:paddingBottom="100dp"
|
||||||
|
android:textAlignment="textStart"
|
||||||
|
android:textColor="@color/c_alert_text"
|
||||||
|
android:textSize="13sp"
|
||||||
|
android:translationZ="2dp"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/pCertificateRootHeader"
|
||||||
|
tools:ignore="SmallSp" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
</ScrollView>
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/pCertificateRootBlocker"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="60dp"
|
||||||
|
android:clickable="true"
|
||||||
|
android:contentDescription="@string/GENERAL_TODO"
|
||||||
|
android:focusable="true"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
@ -9,7 +9,7 @@
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
android:id="@+id/pMainLayout"
|
android:id="@+id/pSecureRootLayout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="55dp"
|
android:layout_height="55dp"
|
||||||
android:layout_marginBottom="10dp"
|
android:layout_marginBottom="10dp"
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
app:layout_constraintStart_toStartOf="parent">
|
app:layout_constraintStart_toStartOf="parent">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/pDescription"
|
android:id="@+id/pOrbotRowDescription"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="10dp"
|
android:layout_marginStart="10dp"
|
||||||
|
@ -32,7 +32,7 @@
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="@+id/pMainLayout"
|
app:layout_constraintStart_toStartOf="@+id/pSecureRootLayout"
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
tools:ignore="SmallSp" />
|
tools:ignore="SmallSp" />
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
android:id="@+id/pMainLayout"
|
android:id="@+id/pSecureRootLayout"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:maxWidth="450dp"
|
android:maxWidth="450dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -19,7 +19,7 @@ android:layout_height="match_parent">
|
||||||
app:layout_constraintStart_toStartOf="parent">
|
app:layout_constraintStart_toStartOf="parent">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/pDescription"
|
android:id="@+id/pOrbotRowDescription"
|
||||||
android:maxWidth="450dp"
|
android:maxWidth="450dp"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -52,7 +52,7 @@ android:layout_height="match_parent">
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/pDescription" />
|
app:layout_constraintTop_toBottomOf="@+id/pOrbotRowDescription" />
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/pTrigger"
|
android:id="@+id/pTrigger"
|
||||||
|
@ -69,7 +69,7 @@ android:layout_height="match_parent">
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toStartOf="@+id/pNext"
|
app:layout_constraintEnd_toStartOf="@+id/pNext"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/pDescription" />
|
app:layout_constraintTop_toBottomOf="@+id/pOrbotRowDescription" />
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
@ -9,7 +9,7 @@
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
android:id="@+id/pMainLayout"
|
android:id="@+id/pSecureRootLayout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="55dp"
|
android:layout_height="55dp"
|
||||||
android:layout_marginBottom="10dp"
|
android:layout_marginBottom="10dp"
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
app:layout_constraintStart_toStartOf="parent">
|
app:layout_constraintStart_toStartOf="parent">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/pDescription"
|
android:id="@+id/pOrbotRowDescription"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="10dp"
|
android:layout_marginStart="10dp"
|
||||||
|
@ -32,7 +32,7 @@
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="@+id/pMainLayout"
|
app:layout_constraintStart_toStartOf="@+id/pSecureRootLayout"
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
tools:ignore="SmallSp" />
|
tools:ignore="SmallSp" />
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
android:id="@+id/pMainLayout"
|
android:id="@+id/pSecureRootLayout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="55dp"
|
android:layout_height="55dp"
|
||||||
android:layout_marginBottom="10dp"
|
android:layout_marginBottom="10dp"
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
app:layout_constraintStart_toStartOf="parent">
|
app:layout_constraintStart_toStartOf="parent">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/pDescription"
|
android:id="@+id/pOrbotRowDescription"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="10dp"
|
android:layout_marginStart="10dp"
|
||||||
|
@ -32,7 +32,7 @@
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="@+id/pMainLayout"
|
app:layout_constraintStart_toStartOf="@+id/pSecureRootLayout"
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
tools:ignore="SmallSp" />
|
tools:ignore="SmallSp" />
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
android:id="@+id/pMainLayout"
|
android:id="@+id/pSecureRootLayout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:background="@xml/ax_round_corner"
|
android:background="@xml/ax_round_corner"
|
||||||
|
@ -18,7 +18,7 @@
|
||||||
app:layout_constraintTop_toTopOf="parent">
|
app:layout_constraintTop_toTopOf="parent">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/pDescription"
|
android:id="@+id/pOrbotRowDescription"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="18dp"
|
android:layout_marginTop="18dp"
|
||||||
|
@ -60,7 +60,7 @@
|
||||||
android:textSize="13sp"
|
android:textSize="13sp"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/pDescription" />
|
app:layout_constraintTop_toBottomOf="@+id/pOrbotRowDescription" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/pURL"
|
android:id="@+id/pURL"
|
||||||
|
|
|
@ -9,17 +9,17 @@
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
android:id="@+id/pMainLayout"
|
android:id="@+id/pSecureRootLayout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="55dp"
|
android:layout_height="55dp"
|
||||||
android:layout_marginBottom="10dp"
|
android:layout_marginBottom="15dp"
|
||||||
android:background="@xml/ax_toast_alert_background"
|
android:background="@xml/ax_toast_alert_background"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent">
|
app:layout_constraintStart_toStartOf="parent">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/pDescription"
|
android:id="@+id/pOrbotRowDescription"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="10dp"
|
android:layout_marginStart="10dp"
|
||||||
|
@ -32,7 +32,7 @@
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="@+id/pMainLayout"
|
app:layout_constraintStart_toStartOf="@+id/pSecureRootLayout"
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
tools:ignore="SmallSp" />
|
tools:ignore="SmallSp" />
|
||||||
|
|
||||||
|
|
|
@ -5,21 +5,24 @@
|
||||||
android:id="@+id/pToastLayoutRoot"
|
android:id="@+id/pToastLayoutRoot"
|
||||||
android:translationZ="5dp"
|
android:translationZ="5dp"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:background="@color/c_background_alpha"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
android:id="@+id/pMainLayout"
|
android:id="@+id/pTDialog"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="55dp"
|
android:layout_height="55dp"
|
||||||
android:layout_marginBottom="10dp"
|
android:layout_marginStart="10dp"
|
||||||
|
android:layout_marginEnd="10dp"
|
||||||
|
android:layout_marginBottom="15dp"
|
||||||
android:background="@xml/ax_toast_alert_background"
|
android:background="@xml/ax_toast_alert_background"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent">
|
app:layout_constraintStart_toStartOf="parent">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/pDescription"
|
android:id="@+id/pTDDescription"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="10dp"
|
android:layout_marginStart="10dp"
|
||||||
|
@ -32,17 +35,18 @@
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="@+id/pMainLayout"
|
app:layout_constraintStart_toStartOf="@+id/pTDialog"
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
tools:ignore="SmallSp" />
|
tools:ignore="SmallSp" />
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/pOpenPrivacy"
|
android:id="@+id/pTDDismiss"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:layout_marginTop="10dp"
|
android:layout_marginTop="10dp"
|
||||||
android:layout_marginEnd="10dp"
|
android:layout_marginEnd="10dp"
|
||||||
android:layout_marginBottom="10dp"
|
android:layout_marginBottom="10dp"
|
||||||
|
android:onClick="onUITrigger"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:background="@xml/ax_toast_alert_button"
|
android:background="@xml/ax_toast_alert_button"
|
||||||
android:padding="0dp"
|
android:padding="0dp"
|
||||||
|
@ -55,16 +59,17 @@
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
tools:ignore="UsingOnClickInXml" />
|
||||||
|
|
||||||
<View
|
<View
|
||||||
android:id="@+id/view6"
|
android:id="@+id/pTDDivider"
|
||||||
android:layout_width="1dp"
|
android:layout_width="1dp"
|
||||||
android:layout_height="30dp"
|
android:layout_height="30dp"
|
||||||
android:layout_marginEnd="10dp"
|
android:layout_marginEnd="10dp"
|
||||||
android:background="@color/c_alert_divider"
|
android:background="@color/c_alert_divider"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toStartOf="@+id/pOpenPrivacy"
|
app:layout_constraintEnd_toStartOf="@+id/pTDDismiss"
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
android:id="@+id/pMainLayout"
|
android:id="@+id/pSecureRootLayout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="55dp"
|
android:layout_height="55dp"
|
||||||
android:layout_marginBottom="10dp"
|
android:layout_marginBottom="10dp"
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
app:layout_constraintStart_toStartOf="parent">
|
app:layout_constraintStart_toStartOf="parent">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/pDescription"
|
android:id="@+id/pOrbotRowDescription"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
app:layout_constraintHorizontal_weight="1"
|
app:layout_constraintHorizontal_weight="1"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -37,7 +37,7 @@
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toStartOf="@+id/view6"
|
app:layout_constraintEnd_toStartOf="@+id/view6"
|
||||||
app:layout_constraintStart_toStartOf="@+id/pMainLayout"
|
app:layout_constraintStart_toStartOf="@+id/pSecureRootLayout"
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
tools:ignore="SmallSp" />
|
tools:ignore="SmallSp" />
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
android:id="@+id/pMainLayout"
|
android:id="@+id/pSecureRootLayout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:background="@xml/ax_round_corner"
|
android:background="@xml/ax_round_corner"
|
||||||
|
@ -41,7 +41,7 @@
|
||||||
</androidx.cardview.widget.CardView>
|
</androidx.cardview.widget.CardView>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/pDescription"
|
android:id="@+id/pOrbotRowDescription"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="11dp"
|
android:layout_marginTop="11dp"
|
||||||
|
@ -77,7 +77,7 @@
|
||||||
android:translationY="-1dp"
|
android:translationY="-1dp"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toEndOf="@+id/cardView2"
|
app:layout_constraintStart_toEndOf="@+id/cardView2"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/pDescription"
|
app:layout_constraintTop_toBottomOf="@+id/pOrbotRowDescription"
|
||||||
tools:ignore="SmallSp" />
|
tools:ignore="SmallSp" />
|
||||||
|
|
||||||
<View
|
<View
|
||||||
|
@ -145,7 +145,7 @@
|
||||||
android:background="@color/c_view_divier_background"
|
android:background="@color/c_view_divier_background"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/pDescription" />
|
app:layout_constraintTop_toBottomOf="@+id/pOrbotRowDescription" />
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/pOption2"
|
android:id="@+id/pOption2"
|
||||||
|
@ -192,7 +192,7 @@
|
||||||
android:background="@color/c_view_divier_background"
|
android:background="@color/c_view_divier_background"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/pDescription" />
|
app:layout_constraintTop_toBottomOf="@+id/pOrbotRowDescription" />
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/pOption3"
|
android:id="@+id/pOption3"
|
||||||
|
@ -239,7 +239,7 @@
|
||||||
android:background="@color/c_view_divier_background"
|
android:background="@color/c_view_divier_background"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/pDescription" />
|
app:layout_constraintTop_toBottomOf="@+id/pOrbotRowDescription" />
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/pOption4"
|
android:id="@+id/pOption4"
|
||||||
|
@ -288,7 +288,7 @@
|
||||||
android:background="@color/c_view_divier_background"
|
android:background="@color/c_view_divier_background"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/pDescription" />
|
app:layout_constraintTop_toBottomOf="@+id/pOrbotRowDescription" />
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/pOption5"
|
android:id="@+id/pOption5"
|
||||||
|
@ -337,7 +337,7 @@
|
||||||
android:background="@color/c_view_divier_background"
|
android:background="@color/c_view_divier_background"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/pDescription" />
|
app:layout_constraintTop_toBottomOf="@+id/pOrbotRowDescription" />
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/pOption6"
|
android:id="@+id/pOption6"
|
||||||
|
@ -386,7 +386,7 @@
|
||||||
android:background="@color/c_view_divier_background"
|
android:background="@color/c_view_divier_background"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/pDescription" />
|
app:layout_constraintTop_toBottomOf="@+id/pOrbotRowDescription" />
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/pOption7"
|
android:id="@+id/pOption7"
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue