mirror of https://github.com/LeOS-GSI/LeOS-Genesis
parent
a94fabcb7f
commit
11cfc81a3c
|
@ -14,3 +14,13 @@
|
|||
java_pid10832.hprof
|
||||
java_pid17480.hprof
|
||||
java_pid21508.hprof
|
||||
*.enc
|
||||
.safedk/api/SafeDKAndroid-5.9.1.jar
|
||||
.safedk/app_sdks.lst
|
||||
.safedk/dex/android-support-multidex.dex
|
||||
.safedk/dex/SafeDKAndroid-5.9.1.dex
|
||||
.safedk/hashes.safedk
|
||||
.safedk/list.enc
|
||||
.safedk/permissions_mapping.json
|
||||
.safedk/plugin.properties
|
||||
.safedk/proguard-safedk.pro
|
||||
|
|
|
@ -1,17 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="deploymentTargetDropDown">
|
||||
<targetSelectedWithDropDown>
|
||||
<Target>
|
||||
<type value="QUICK_BOOT_TARGET" />
|
||||
<deviceKey>
|
||||
<Key>
|
||||
<type value="VIRTUAL_DEVICE_PATH" />
|
||||
<value value="C:\Users\msman\.android\avd\Pixel_4_API_31_2.avd" />
|
||||
</Key>
|
||||
</deviceKey>
|
||||
</Target>
|
||||
</targetSelectedWithDropDown>
|
||||
<timeTargetWasSelectedWithDropDown value="2022-08-27T07:10:24.436680900Z" />
|
||||
</component>
|
||||
</project>
|
Binary file not shown.
|
@ -0,0 +1,10 @@
|
|||
25a8c13da7993b03825942fe7b22a98f
|
||||
fd38d80abf402c0cce74ac84b578f259
|
||||
4df96d3bc9afd17b812e65e6c6add1ef
|
||||
974322f19d813702ea048d95288d2b8c
|
||||
29015bbfcc182d80e7f75bd2c38e4521
|
||||
59cd112b25ecb5af4f5290bb180cd582
|
||||
ff22dbf67af979b8b3169a242d10f166
|
||||
74616804a7dc29147dfb0afe122a9fd2
|
||||
452cecec3e7d8b26a15fb7c1b2cbaecb
|
||||
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
#Thu Dec 29 13:28:14 PKT 2022
|
||||
\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000=
|
||||
json=1845496062
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
{"mapping":{"INTERNET":"Network","ACCESS_NETWORK_STATE":"Network","READ_EXTERNAL_STORAGE":"Files","WRITE_EXTERNAL_STORAGE":"Files","ACCESS_COARSE_LOCATION":"Location","ACCESS_FINE_LOCATION":"Location","ACCESS_LOCATION_EXTRA_COMMANDS":"Location","RECORD_AUDIO":"Microphone","CAMERA":"Camera","READ_HISTORY_BOOKMARKS":"Pim","READ_CALENDAR":"Pim","WRITE_CALENDAR":"Pim","READ_CONTACTS":"Pim","WRITE_CONTACTS":"Pim","GET_ACCOUNTS":"Pim","READ_SMS":"Pim","RECEIVE_MMS":"Pim","READ_CALL_LOG":"Pim","WRITE_CALL_LOG":"Pim","READ_PROFILE":"Pim","GET_TASKS":"Tasks","BILLING":"In App Purchase","WAKE_LOCK":"Wake Lock","READ_PHONE_STATE":"Phone State"},"always_on":["Accelerometer","Camera","Files","Notifications","Packagemanager","Thread","Advertisingid","Video"]}
|
|
@ -0,0 +1,6 @@
|
|||
#
|
||||
#Thu Dec 29 13:41:56 PKT 2022
|
||||
\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000=
|
||||
sdk_analysis_plugin_version=4.8.1
|
||||
set_multidex=true
|
||||
pCPe4EeU2ZQVwQPeHLgseRqHBX1V5pvo9Piuu4J809dRhadEgukXa1A8po_UeXu5hmPOTaP1v4QPaMKIEOhh50=hGlhanpemGqPOKKAgaXvhyxwZaG9uD68csy1OadWTNhEgKvBWR7-7KSpyFr6nfZ4KMOuBBV5J49s2LLSg-SVxg
|
|
@ -0,0 +1,25 @@
|
|||
-keep class androidx.** { *; }
|
||||
-keep class android.support.multidex.** { *; }
|
||||
-keep class android.support.v4.app.** { *; }
|
||||
-keep class com.google.android.gms.location.FusedLocationProviderApi { *; }
|
||||
-keep class com.google.android.gms.location.LocationListener { *; }
|
||||
-keep class io.fabric.sdk.android.** { *; }
|
||||
-keep class okio.** { *; }
|
||||
-keep class retrofit2.** { *; }
|
||||
-keep class okhttp3.** { *; }
|
||||
-keep class com.squareup.okhttp.** { *; }
|
||||
-keep class com.android.volley.** { *; }
|
||||
-keep class com.flurry.** { *; }
|
||||
-keep class org.apache.** { *; }
|
||||
-keep class com.applovin.** { *; }
|
||||
-keep class com.google.android.gms.ads.** { *; }
|
||||
-keep class com.ironsource.** { *; }
|
||||
-keep class com.fyber.inneractive.** { *; }
|
||||
-keep class com.vungle.** { *; }
|
||||
-keep class com.unity3d.ads.** { *; }
|
||||
-keep class com.unity3d.services.** { *; }
|
||||
-keep class com.mintegral.msdk.** { *; }
|
||||
-keep class com.adcolony.sdk.** { *; }
|
||||
-keep class com.inmobi.** { *; }
|
||||
-keep class com.safedk.** { *; }
|
||||
-keep class com.applovin.quality.** { *; }
|
|
@ -7,6 +7,10 @@ plugins {
|
|||
apply plugin: 'com.android.application'
|
||||
apply from: 'variables.gradle'
|
||||
apply plugin: 'kotlin-android'
|
||||
apply plugin: 'applovin-quality-service'
|
||||
applovin {
|
||||
apiKey "pCPe4EeU2ZQVwQPeHLgseRqHBX1V5pvo9Piuu4J809dRhadEgukXa1A8po_UeXu5hmPOTaP1v4QPaMKIEOhh50"
|
||||
}
|
||||
|
||||
|
||||
android {
|
||||
|
@ -25,7 +29,9 @@ android {
|
|||
debugSymbolLevel project.ext.debugSymbolLevel
|
||||
}
|
||||
}
|
||||
|
||||
kotlinOptions {
|
||||
jvmTarget = "1.8"
|
||||
}
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
|
@ -80,25 +86,12 @@ dependencies {
|
|||
|
||||
/* Android Support Repository Dependencies */
|
||||
|
||||
implementation 'androidx.recyclerview:recyclerview:1.2.1'
|
||||
implementation 'androidx.coordinatorlayout:coordinatorlayout:1.2.0'
|
||||
implementation 'com.google.android.material:material:1.7.0'
|
||||
implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.7.20'
|
||||
implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10'
|
||||
implementation 'org.apache.commons:commons-text:1.3'
|
||||
implementation 'androidx.work:work-runtime-ktx:2.8.0-beta02'
|
||||
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
|
||||
implementation 'com.android.support.constraint:constraint-layout:2.0.4'
|
||||
implementation 'androidx.preference:preference-ktx:1.2.0'
|
||||
implementation 'com.android.support:support-annotations:29.0.0'
|
||||
implementation 'androidx.appcompat:appcompat:1.5.1'
|
||||
|
||||
/* Firefox ABI Splits */
|
||||
|
||||
implementation "androidx.compose.foundation:foundation:1.3.1"
|
||||
implementation "org.mozilla.components:browser-engine-gecko:100.0.20220327143103"
|
||||
implementation "org.mozilla.components:support-rusthttp:100.0.20220327143103"
|
||||
implementation "org.mozilla.components:support-rustlog:100.0.20220327143103"
|
||||
implementation "org.mozilla.components:browser-icons:100.0.20220327143103"
|
||||
implementation "org.mozilla.components:concept-fetch:100.0.20220327143103"
|
||||
implementation "org.mozilla.components:concept-base:100.0.20220327143103"
|
||||
|
@ -110,25 +103,19 @@ dependencies {
|
|||
|
||||
/* Ads Manager */
|
||||
|
||||
implementation 'com.applovin:applovin-sdk:11.5.5'
|
||||
implementation 'com.applovin.mediation:adcolony-adapter:4.8.0.2'
|
||||
implementation 'com.adcolony:sdk:4.8.0'
|
||||
implementation 'com.facebook.android:audience-network-sdk:6.8.0'
|
||||
implementation 'com.applovin.mediation:facebook-adapter:6.8.0.12'
|
||||
implementation 'com.applovin:applovin-sdk:11.6.0'
|
||||
implementation 'com.facebook.android:audience-network-sdk:6.12.0'
|
||||
implementation 'com.applovin.mediation:facebook-adapter:6.12.0.1'
|
||||
|
||||
/* Orbot Service */
|
||||
implementation project(path: ':orbotmanager')
|
||||
|
||||
/* Helper Libraries */
|
||||
|
||||
implementation "android.arch.lifecycle:extensions:1.1.1"
|
||||
implementation "androidx.lifecycle:lifecycle-extensions:2.2.0"
|
||||
implementation 'com.coolerfall:android-http-download-manager:1.6.3'
|
||||
implementation 'androidx.appcompat:appcompat:1.5.1'
|
||||
implementation "androidx.media:media:1.6.0"
|
||||
implementation 'com.android.volley:volley:1.2.1'
|
||||
implementation "net.zetetic:android-database-sqlcipher:4.4.3"
|
||||
implementation "androidx.sqlite:sqlite-ktx:2.2.0"
|
||||
implementation 'androidx.palette:palette-ktx:1.0.0'
|
||||
implementation 'org.jsoup:jsoup:1.13.1'
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
-dontwarn okhttp3.*
|
||||
-dontwarn org.chromium.net.*
|
||||
|
||||
-keep class org.mozilla.** {*;}
|
||||
-keep class com.flurry.** { *; }
|
||||
-dontwarn com.flurry.**
|
||||
-keepattributes *Annotation*,EnclosingMethod,Signature
|
||||
|
|
|
@ -2,7 +2,9 @@
|
|||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
<!-- Permissions -->
|
||||
<permission android:name="android.permission.MEDIA_CONTENT_CONTROL" />
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
||||
|
@ -11,12 +13,15 @@
|
|||
<uses-permission android:name="android.permission.VIBRATE" />
|
||||
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
|
||||
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
|
||||
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
|
||||
|
||||
<application
|
||||
android:allowBackup="true"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
|
||||
android:extractNativeLibs="false"
|
||||
android:extractNativeLibs="true"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
tools:remove="android:appComponentFactory"
|
||||
tools:targetApi="p"
|
||||
android:label="@string/app_name"
|
||||
android:largeHeap="false"
|
||||
android:networkSecurityConfig="@xml/gx_network_security_config"
|
||||
|
@ -24,19 +29,13 @@
|
|||
android:roundIcon="@mipmap/ic_launcher_round"
|
||||
android:supportsRtl="true"
|
||||
android:theme="@style/AppTheme"
|
||||
android:usesCleartextTraffic="false"
|
||||
tools:targetApi="n">
|
||||
android:usesCleartextTraffic="true">
|
||||
|
||||
<activity
|
||||
android:launchMode="singleTask"
|
||||
android:name="com.hiddenservices.onionservices.appManager.advertManager.advertController"
|
||||
android:exported="true" />
|
||||
|
||||
<activity
|
||||
android:launchMode="singleTask"
|
||||
android:name="com.hiddenservices.onionservices.appManager.orionAdvertManager.orionAdvertController"
|
||||
android:exported="true" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.bookmarkManager.bookmarkSettings.bookmarkSettingController"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||
|
@ -55,7 +54,7 @@
|
|||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||
android:exported="true"
|
||||
android:label="@string/SETTING_HEADER"
|
||||
android:launchMode="singleTop"
|
||||
android:launchMode="singleTask"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
|
||||
<activity
|
||||
|
@ -147,7 +146,7 @@
|
|||
android:name="com.hiddenservices.onionservices.appManager.homeManager.homeController.homeController"
|
||||
android:configChanges="keyboard|keyboardHidden|mcc|mnc|orientation|screenSize|locale|layoutDirection|smallestScreenSize|screenLayout"
|
||||
android:exported="true"
|
||||
android:launchMode="singleTop"
|
||||
android:launchMode="singleTask"
|
||||
android:screenOrientation="fullSensor"
|
||||
android:windowSoftInputMode="adjustPan">
|
||||
<meta-data
|
||||
|
@ -225,8 +224,7 @@
|
|||
android:stopWithTask="true" />
|
||||
|
||||
<service
|
||||
android:name="com.hiddenservices.onionservices.appManager.activityStateManager"
|
||||
android:stopWithTask="true" />
|
||||
android:name="com.hiddenservices.onionservices.appManager.activityStateManager"/>
|
||||
|
||||
<service
|
||||
android:name="org.torproject.android.service.OrbotService"
|
||||
|
@ -250,6 +248,22 @@
|
|||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<receiver
|
||||
android:name="com.hiddenservices.onionservices.pluginManager.pluginReciever.mediaNotificationReciever"
|
||||
android:exported="false">
|
||||
<intent-filter>
|
||||
<action android:name="media_toggle" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<receiver
|
||||
android:name="com.hiddenservices.onionservices.pluginManager.pluginReciever.defaultNotificationReciever"
|
||||
android:exported="false">
|
||||
<intent-filter>
|
||||
<action android:name="default_toggle" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<receiver
|
||||
android:name="org.torproject.android.service.StartTorReceiver"
|
||||
android:exported="true"
|
||||
|
@ -272,6 +286,20 @@
|
|||
</receiver>
|
||||
|
||||
<!-- Providers & Settings -->
|
||||
<service
|
||||
android:name=".MediaSessionService"
|
||||
android:enabled="true"
|
||||
android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MEDIA_BUTTON"/>
|
||||
</intent-filter>
|
||||
</service>
|
||||
<receiver android:name="androidx.media.session.MediaButtonReceiver"
|
||||
android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MEDIA_BUTTON"/>
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<provider
|
||||
android:name="androidx.core.content.FileProvider"
|
||||
|
|
|
@ -2,26 +2,42 @@ package com.hiddenservices.onionservices.appManager;
|
|||
|
||||
import android.app.Service;
|
||||
import android.content.Intent;
|
||||
import android.os.Binder;
|
||||
import android.os.IBinder;
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.core.app.NotificationManagerCompat;
|
||||
|
||||
import com.hiddenservices.onionservices.constants.status;
|
||||
|
||||
import org.torproject.android.service.OrbotService;
|
||||
import org.torproject.android.service.wrapper.orbotLocalConstants;
|
||||
|
||||
public class activityStateManager extends Service {
|
||||
|
||||
private final IBinder mLocalBinder = new LocalBinder();
|
||||
|
||||
public class LocalBinder extends Binder {
|
||||
public activityStateManager getService() {
|
||||
return activityStateManager.this;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public IBinder onBind(Intent intent) {
|
||||
return null;
|
||||
return mLocalBinder;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int onStartCommand(Intent intent, int flags, int startId) {
|
||||
return START_NOT_STICKY;
|
||||
return Service.START_STICKY_COMPATIBILITY;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
Log.i("aaaaaaaa", "aaaaaaaa");
|
||||
NotificationManagerCompat.from(this).cancel(1025);
|
||||
NotificationManagerCompat.from(this).cancel(1030);
|
||||
Intent mServiceIntent = new Intent(this.getApplicationContext(), OrbotService.class);
|
||||
this.stopService(mServiceIntent);
|
||||
|
||||
|
@ -30,6 +46,7 @@ public class activityStateManager extends Service {
|
|||
}
|
||||
|
||||
status.sSettingIsAppStarted = false;
|
||||
orbotLocalConstants.mAppStarted = false;
|
||||
super.onDestroy();
|
||||
android.os.Process.killProcess(android.os.Process.myPid());
|
||||
System.exit(1);
|
||||
|
@ -37,6 +54,9 @@ public class activityStateManager extends Service {
|
|||
|
||||
@Override
|
||||
public void onTaskRemoved(Intent rootIntent) {
|
||||
Log.i("aaaaaaaa", "aaaaaaaa");
|
||||
NotificationManagerCompat.from(this).cancel(1025);
|
||||
NotificationManagerCompat.from(this).cancel(1030);
|
||||
Intent mServiceIntent = new Intent(this.getApplicationContext(), OrbotService.class);
|
||||
this.stopService(mServiceIntent);
|
||||
if (OrbotService.getServiceObject() != null) {
|
||||
|
@ -44,6 +64,7 @@ public class activityStateManager extends Service {
|
|||
}
|
||||
|
||||
status.sSettingIsAppStarted = false;
|
||||
orbotLocalConstants.mAppStarted = false;
|
||||
|
||||
stopSelf();
|
||||
super.onDestroy();
|
||||
|
|
|
@ -4,6 +4,7 @@ import androidx.appcompat.app.AppCompatActivity;
|
|||
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.webkit.WebChromeClient;
|
||||
import android.webkit.WebView;
|
||||
import android.widget.ProgressBar;
|
||||
|
||||
|
@ -37,18 +38,29 @@ public class advertController extends AppCompatActivity {
|
|||
}
|
||||
|
||||
void onInitAdvert() {
|
||||
mWebView.getSettings().setJavaScriptEnabled(true);
|
||||
mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
|
||||
mWebView.getSettings().setDomStorageEnabled(true);
|
||||
mWebView.getSettings().setGeolocationEnabled(true);
|
||||
mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
|
||||
mWebView.getSettings().setUseWideViewPort(true);
|
||||
mWebView.getSettings().setDatabaseEnabled(true);
|
||||
mWebView.setWebViewClient(new advertWebViewClient(new webivewViewCallback()));
|
||||
mWebView.getSettings().setLoadWithOverviewMode(true);
|
||||
mWebView.getSettings().setUseWideViewPort(true);
|
||||
mWebView.getSettings().setJavaScriptEnabled(true);
|
||||
}
|
||||
|
||||
private void onInitializeAdvertisements() {
|
||||
String mURL = getIntent().getExtras().getString("m_url");
|
||||
|
||||
if(mURL.contains("play.google.com")){
|
||||
mWebView.setWebChromeClient(new WebChromeClient());
|
||||
mWebView.loadUrl(mURL);
|
||||
finish();
|
||||
}else {
|
||||
mWebView.setWebViewClient(new advertWebViewClient(new webivewViewCallback()));
|
||||
mWebView.loadUrl(mURL);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* Helper Methods */
|
||||
|
|
|
@ -17,6 +17,11 @@ public class advertWebViewClient extends android.webkit.WebViewClient {
|
|||
mEvent = pEvent;
|
||||
}
|
||||
|
||||
public boolean shouldOverrideUrlLoading(WebView view, String url){
|
||||
view.loadUrl(url);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPageStarted(WebView view, String url, Bitmap favicon) {
|
||||
mEvent.invokeObserver(Collections.singletonList(true), advertEnums.eAdvertClientCallback.M_UPDATE_PROGRESSBAR);
|
||||
|
|
|
@ -99,7 +99,7 @@ public class bookmarkAdapter extends RecyclerView.Adapter<bookmarkAdapter.listVi
|
|||
public void onDeleteSelected() {
|
||||
for (int m_counter = 0; m_counter < mLongSelectedIndex.size(); m_counter++) {
|
||||
for (int m_counter_inner = 0; m_counter_inner < mCurrentList.size(); m_counter_inner++) {
|
||||
if (mCurrentList.get(m_counter_inner).getDate() == mLongSelectedDate.get(m_counter) && mLongSelectedIndex.get(m_counter).equals("https://" + mCurrentList.get(m_counter_inner).getDescription())) {
|
||||
if (mCurrentList.get(m_counter_inner).getDate() == mLongSelectedDate.get(m_counter) && mLongSelectedIndex.get(m_counter).equals(helperMethod.completeURL(mCurrentList.get(m_counter_inner).getDescription()))) {
|
||||
mEvent.invokeObserver(Collections.singletonList(mRealIndex.get(m_counter_inner)), enums.etype.url_clear);
|
||||
mEvent.invokeObserver(Collections.singletonList(mLongSelectedID.get(m_counter)), enums.etype.url_clear_at);
|
||||
invokeFilter(false);
|
||||
|
|
|
@ -13,6 +13,8 @@ import com.hiddenservices.onionservices.constants.strings;
|
|||
import com.hiddenservices.onionservices.dataManager.dataController;
|
||||
import com.hiddenservices.onionservices.helperManager.helperMethod;
|
||||
import com.example.myapplication.R;
|
||||
import com.hiddenservices.onionservices.pluginManager.pluginController;
|
||||
import com.hiddenservices.onionservices.pluginManager.pluginEnums;
|
||||
|
||||
import org.torproject.android.service.wrapper.orbotLocalConstants;
|
||||
|
||||
|
@ -34,8 +36,10 @@ public class externalShortcutController extends AppCompatActivity {
|
|||
if (getIntent() != null) {
|
||||
String mShortcutCommands = getIntent().getStringExtra(EXTERNAL_SHORTCUT_COMMAND);
|
||||
status.sSettingIsAppStarted = false;
|
||||
orbotLocalConstants.mAppStarted = false;
|
||||
if (mShortcutCommands != null) {
|
||||
mIntent.putExtra(EXTERNAL_SHORTCUT_COMMAND, mShortcutCommands);
|
||||
pluginController.getInstance().onOrbotInvoke(null, pluginEnums.eOrbotManager.M_DISABLE_NOTIFICATION);
|
||||
switch (mShortcutCommands) {
|
||||
case CONST_EXTERNAL_SHORTCUT_COMMAND_ERASE:
|
||||
setContentView(R.layout.popup_data_cleared_shortcut);
|
||||
|
|
|
@ -2,18 +2,13 @@ package com.hiddenservices.onionservices.appManager.externalCommandManager;
|
|||
|
||||
import static android.content.Intent.FLAG_ACTIVITY_NO_ANIMATION;
|
||||
|
||||
import android.app.ActivityManager;
|
||||
import android.app.PendingIntent;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
|
||||
import android.os.Handler;
|
||||
import androidx.annotation.RequiresApi;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
import com.example.myapplication.R;
|
||||
import com.hiddenservices.onionservices.appManager.activityContextManager;
|
||||
import com.hiddenservices.onionservices.appManager.advertManager.advertController;
|
||||
import com.hiddenservices.onionservices.appManager.homeManager.homeController.homeController;
|
||||
|
@ -22,7 +17,6 @@ import com.hiddenservices.onionservices.constants.keys;
|
|||
import com.hiddenservices.onionservices.constants.status;
|
||||
import com.hiddenservices.onionservices.constants.strings;
|
||||
import com.hiddenservices.onionservices.helperManager.helperMethod;
|
||||
|
||||
import static com.hiddenservices.onionservices.constants.constants.CONST_PACKAGE_NAME;
|
||||
import static com.hiddenservices.onionservices.constants.keys.EXTERNAL_SHORTCUT_COMMAND_NAVIGATE;
|
||||
|
||||
|
@ -32,10 +26,9 @@ public class externalURLNavigationContoller extends AppCompatActivity {
|
|||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
com.widget.onionservices.helperMethod.helperMethod.onStartApplication(this, CONST_PACKAGE_NAME);
|
||||
|
||||
status.sExternalWebsite = strings.GENERIC_EMPTY_STR;
|
||||
Uri mData = externalURLNavigationContoller.this.getIntent().getData();
|
||||
if (status.sExternalWebsiteLoading && !status.sSettingIsAppStarted) {
|
||||
final Uri[] mData = {externalURLNavigationContoller.this.getIntent().getData()};
|
||||
/*if (status.sExternalWebsiteLoading && !status.sSettingIsAppStarted) {
|
||||
Intent intent = new Intent(this, homeController.class);
|
||||
intent.addFlags(FLAG_ACTIVITY_NO_ANIMATION);
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
|
||||
|
@ -43,39 +36,38 @@ public class externalURLNavigationContoller extends AppCompatActivity {
|
|||
activityContextManager.getInstance().getHomeController().overridePendingTransition(R.anim.popup_scale_in, R.anim.popup_scale_out);
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
}*/
|
||||
status.sExternalWebsiteLoading = true;
|
||||
if (mData!=null && mData.toString().contains("applovin")) {
|
||||
Intent myIntent = new Intent(this, advertController.class);
|
||||
myIntent.putExtra(keys.ADVERT_URL, mData.toString());
|
||||
new Handler().postDelayed(() ->
|
||||
{
|
||||
if (mData[0] !=null && status.sIsBackgroundAdvertCheck) {
|
||||
status.sIsBackgroundAdvertCheck = false;
|
||||
Intent myIntent = new Intent(activityContextManager.getInstance().getHomeController(), advertController.class);
|
||||
myIntent.putExtra(keys.ADVERT_URL, mData[0].toString());
|
||||
myIntent.addFlags(FLAG_ACTIVITY_NO_ANIMATION);
|
||||
myIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
|
||||
startActivity(myIntent);
|
||||
activityContextManager.getInstance().getHomeController().overridePendingTransition(R.anim.popup_scale_in, R.anim.popup_scale_out);
|
||||
activityContextManager.getInstance().getHomeController().startActivity(myIntent);
|
||||
//activityContextManager.getInstance().getHomeController().overridePendingTransition(R.anim.popup_scale_in, R.anim.popup_scale_out);
|
||||
|
||||
} else {
|
||||
if (mData == null) {
|
||||
mData = Uri.parse(constants.CONST_BACKEND_GENESIS_URL);
|
||||
if (mData[0] == null) {
|
||||
mData[0] = Uri.parse(constants.CONST_BACKEND_GENESIS_URL);
|
||||
}
|
||||
if (activityContextManager.getInstance().getHomeController() == null) {
|
||||
Intent mIntent = new Intent(this, homeController.class);
|
||||
mIntent.putExtra(EXTERNAL_SHORTCUT_COMMAND_NAVIGATE, mData.toString());
|
||||
mIntent.putExtra(EXTERNAL_SHORTCUT_COMMAND_NAVIGATE, mData[0].toString());
|
||||
helperMethod.openIntent(mIntent, this, constants.CONST_LIST_EXTERNAL_SHORTCUT);
|
||||
Uri finalMData = mData;
|
||||
Uri finalMData = mData[0];
|
||||
status.sExternalWebsite = finalMData.toString();
|
||||
helperMethod.onDelayHandler(this, 1500, () -> {
|
||||
activityContextManager.getInstance().getHomeController().onStartApplication(null);
|
||||
return null;
|
||||
});
|
||||
} else {
|
||||
finish();
|
||||
|
||||
Uri finalMData1 = mData;
|
||||
Uri finalMData1 = mData[0];
|
||||
helperMethod.onDelayHandler(this, 100, () -> {
|
||||
activityContextManager.getInstance().getHomeController().onExternalURLInvoke(finalMData1.toString());
|
||||
return null;
|
||||
});
|
||||
|
||||
helperMethod.onDelayHandler(this, 500, () -> {
|
||||
helperMethod.onDelayHandler(this, 100, () -> {
|
||||
com.widget.onionservices.helperMethod.helperMethod.onStartApplication(this, CONST_PACKAGE_NAME);
|
||||
return null;
|
||||
});
|
||||
|
@ -83,11 +75,9 @@ public class externalURLNavigationContoller extends AppCompatActivity {
|
|||
return;
|
||||
}
|
||||
}
|
||||
status.sIsBackgroundAdvertCheck = false;
|
||||
}, 100);
|
||||
|
||||
helperMethod.onDelayHandler(this, 2500, () -> {
|
||||
finish();
|
||||
activityContextManager.getInstance().getHomeController().overridePendingTransition(R.anim.popup_scale_in, R.anim.popup_scale_out);
|
||||
return null;
|
||||
});
|
||||
}
|
||||
}
|
|
@ -430,10 +430,29 @@ public class geckoClients {
|
|||
}
|
||||
|
||||
public void resetSession() {
|
||||
mSession.onStopMedia();
|
||||
mSessionID = strings.GENERIC_EMPTY_STR;
|
||||
}
|
||||
|
||||
public void onKillMedia(){
|
||||
mSession.onKillMedia();
|
||||
}
|
||||
|
||||
public void onPlayMedia(){
|
||||
mSession.onPlayMedia();
|
||||
}
|
||||
|
||||
public void onPauseMedia(){
|
||||
mSession.onPauseMedia();
|
||||
}
|
||||
|
||||
public void onSkipForwardMedia(){
|
||||
mSession.onSkipForwardMedia();
|
||||
}
|
||||
public void onSkipBackwardMedia(){
|
||||
mSession.onSkipBackwardMedia();
|
||||
}
|
||||
|
||||
|
||||
public String getTheme() {
|
||||
if (mSessionID.equals(strings.GENERIC_EMPTY_STR)) {
|
||||
return null;
|
||||
|
@ -446,7 +465,6 @@ public class geckoClients {
|
|||
|
||||
public void initSession(geckoSession mSession) {
|
||||
mSessionID = mSession.getSessionID();
|
||||
this.mSession.onStopMedia();
|
||||
this.mSession = mSession;
|
||||
}
|
||||
|
||||
|
@ -623,6 +641,7 @@ public class geckoClients {
|
|||
}
|
||||
|
||||
public void onClose() {
|
||||
onKillMedia();
|
||||
mSession.onClose();
|
||||
}
|
||||
|
||||
|
|
|
@ -52,6 +52,7 @@ import org.mozilla.geckoview.Autofill;
|
|||
import org.mozilla.geckoview.GeckoResult;
|
||||
import org.mozilla.geckoview.GeckoSession;
|
||||
import org.mozilla.geckoview.GeckoView;
|
||||
import org.mozilla.geckoview.Image;
|
||||
import org.mozilla.geckoview.MediaSession;
|
||||
import org.mozilla.geckoview.SlowScriptResponse;
|
||||
import org.mozilla.geckoview.WebExtension;
|
||||
|
@ -102,6 +103,8 @@ geckoSession extends GeckoSession implements MediaSession.Delegate, GeckoSession
|
|||
private String mPrevURL = "about:blank";
|
||||
private String mCurrentTitle = "loading";
|
||||
private String mCurrentURL = "about:blank";
|
||||
private String mMediaTitle = "";
|
||||
private Bitmap mMediaImage;
|
||||
private Uri mUriPermission = null;
|
||||
private WeakReference<AppCompatActivity> mContext;
|
||||
private geckoDownloadManager mDownloadManager;
|
||||
|
@ -126,6 +129,7 @@ geckoSession extends GeckoSession implements MediaSession.Delegate, GeckoSession
|
|||
public boolean mCloseRequested = false;
|
||||
public boolean mOnBackPressed = false;
|
||||
public SessionState mSessionState;
|
||||
public mediaDelegate mediaDelegateItem;
|
||||
MediaSession mMediaSession = null;
|
||||
|
||||
geckoSession(eventObserver.eventListener event, String mSessionID, AppCompatActivity mContext, GeckoView pGeckoView) {
|
||||
|
@ -144,9 +148,10 @@ geckoSession extends GeckoSession implements MediaSession.Delegate, GeckoSession
|
|||
setPermissionDelegate(this);
|
||||
setScrollDelegate(this);
|
||||
setMediaSessionDelegate(this);
|
||||
mediaDelegateItem = new mediaDelegate(mContext, mContext);
|
||||
|
||||
|
||||
setMediaDelegate(new mediaDelegate(mContext, mContext));
|
||||
setMediaDelegate(mediaDelegateItem);
|
||||
mDownloadManager = new geckoDownloadManager();
|
||||
mSelectionActionDelegate = new selectionActionDelegate(mContext, true);
|
||||
setPromptDelegate(new geckoPromptView(mContext));
|
||||
|
@ -161,14 +166,34 @@ geckoSession extends GeckoSession implements MediaSession.Delegate, GeckoSession
|
|||
|
||||
@Override
|
||||
public void onDeactivated(@NonNull GeckoSession session, @NonNull MediaSession mediaSession) {
|
||||
MediaSession.Delegate.super.onDeactivated(session, mediaSession);
|
||||
MediaSession.Delegate.super.onPause(session, mediaSession);
|
||||
if(isMediaRunning){
|
||||
mediaDelegateItem.onHideDefaultNotification();
|
||||
}
|
||||
isMediaRunning = false;
|
||||
mMediaSession = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMetadata(@NonNull GeckoSession session, @NonNull MediaSession mediaSession, @NonNull MediaSession.Metadata meta) {
|
||||
mMediaTitle = meta.title;
|
||||
if(!isMediaRunning || mediaDelegateItem == null){
|
||||
return;
|
||||
}
|
||||
|
||||
new Thread(){
|
||||
public void run(){
|
||||
try {
|
||||
mMediaImage = meta.artwork.getBitmap(250).poll(2500);
|
||||
if(isMediaRunning && mMediaSession!=null){
|
||||
mediaDelegateItem.showNotification(mContext.get(), mMediaTitle, helperMethod.getHost(mCurrentURL), mMediaImage, !isMediaRunning);
|
||||
}
|
||||
} catch (Throwable e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}.start();
|
||||
MediaSession.Delegate.super.onMetadata(session, mediaSession, meta);
|
||||
mediaDelegateItem.showNotification(this.mContext.get(), mMediaTitle, helperMethod.getHost(mCurrentURL), mMediaImage, !isMediaRunning);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -179,18 +204,25 @@ geckoSession extends GeckoSession implements MediaSession.Delegate, GeckoSession
|
|||
@Override
|
||||
public void onPlay(@NonNull GeckoSession session, @NonNull MediaSession mediaSession) {
|
||||
MediaSession.Delegate.super.onPlay(session, mediaSession);
|
||||
mediaDelegateItem.showNotification(this.mContext.get(), mMediaTitle, helperMethod.getHost(mCurrentURL), mMediaImage, false);
|
||||
isMediaRunning = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause(@NonNull GeckoSession session, @NonNull MediaSession mediaSession) {
|
||||
MediaSession.Delegate.super.onPause(session, mediaSession);
|
||||
if(isMediaRunning){
|
||||
mediaDelegateItem.showNotification(this.mContext.get(), mMediaTitle, helperMethod.getHost(mCurrentURL), mMediaImage, true);
|
||||
}
|
||||
isMediaRunning = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStop(@NonNull GeckoSession session, @NonNull MediaSession mediaSession) {
|
||||
MediaSession.Delegate.super.onStop(session, mediaSession);
|
||||
if(isMediaRunning){
|
||||
mediaDelegateItem.showNotification(this.mContext.get(), mMediaTitle, helperMethod.getHost(mCurrentURL), mMediaImage, true);
|
||||
}
|
||||
isMediaRunning = false;
|
||||
}
|
||||
|
||||
|
@ -246,9 +278,54 @@ geckoSession extends GeckoSession implements MediaSession.Delegate, GeckoSession
|
|||
Objects.requireNonNull(mPromptDelegate).onFileCallbackResult(resultCode, data);
|
||||
}
|
||||
|
||||
public void onStopMedia() {
|
||||
if (isMediaRunning && mMediaSession != null) {
|
||||
public void onKillMedia() {
|
||||
isMediaRunning = false;
|
||||
if(mMediaSession!=null){
|
||||
mMediaSession.pause();
|
||||
mediaDelegateItem.onHideDefaultNotification();
|
||||
}
|
||||
}
|
||||
|
||||
public void onDestroyMedia() {
|
||||
isMediaRunning = false;
|
||||
if(mMediaSession!=null){
|
||||
mMediaSession.stop();
|
||||
mediaDelegateItem.onHideDefaultNotification();
|
||||
mMediaSession = null;
|
||||
}
|
||||
mediaDelegateItem.onHideDefaultNotification();
|
||||
}
|
||||
|
||||
public void onStopMedia() {
|
||||
if (mMediaSession != null) {
|
||||
mMediaSession.pause();
|
||||
}
|
||||
}
|
||||
|
||||
public void onPlayMedia(){
|
||||
isMediaRunning = true;
|
||||
if(mMediaSession != null){
|
||||
mediaDelegateItem.showNotification(this.mContext.get(), mMediaTitle, helperMethod.getHost(mCurrentURL), mMediaImage, false);
|
||||
mMediaSession.play();
|
||||
}
|
||||
}
|
||||
|
||||
public void onPauseMedia(){
|
||||
if(mMediaSession != null){
|
||||
mediaDelegateItem.showNotification(this.mContext.get(), mMediaTitle, helperMethod.getHost(mCurrentURL), mMediaImage, true);
|
||||
mMediaSession.pause();
|
||||
}
|
||||
}
|
||||
|
||||
public void onSkipForwardMedia(){
|
||||
if(mMediaSession != null){
|
||||
mMediaSession.nextTrack();
|
||||
}
|
||||
}
|
||||
|
||||
public void onSkipBackwardMedia(){
|
||||
if(mMediaSession != null){
|
||||
mMediaSession.previousTrack();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -646,7 +723,10 @@ geckoSession extends GeckoSession implements MediaSession.Delegate, GeckoSession
|
|||
}
|
||||
|
||||
public GeckoResult<AllowOrDeny> onLoadRequest(@NonNull GeckoSession var2, @NonNull GeckoSession.NavigationDelegate.LoadRequest var1) {
|
||||
|
||||
if(mMediaSession!=null){
|
||||
mMediaSession.stop();
|
||||
mediaDelegateItem.onHideDefaultNotification();
|
||||
}
|
||||
if (var1.uri.contains("167.86.99.31")) {
|
||||
new Pref<Integer>("network.proxy.type", 0).add();
|
||||
}else {
|
||||
|
@ -735,6 +815,9 @@ geckoSession extends GeckoSession implements MediaSession.Delegate, GeckoSession
|
|||
} else {
|
||||
mPrevURL = mCurrentURL;
|
||||
}
|
||||
if (mediaDelegateItem != null) {
|
||||
mediaDelegateItem.onHideDefaultNotification();
|
||||
}
|
||||
//mIsLoaded = false;
|
||||
//isPageLoading = false;
|
||||
}
|
||||
|
@ -753,6 +836,9 @@ geckoSession extends GeckoSession implements MediaSession.Delegate, GeckoSession
|
|||
public GeckoResult<String> onLoadError(@NonNull GeckoSession var1, @Nullable String var2, @NonNull WebRequestError var3) {
|
||||
|
||||
try {
|
||||
if(mediaDelegateItem!=null){
|
||||
mediaDelegateItem.onHideDefaultNotification();
|
||||
}
|
||||
if (helperMethod.getHost(var2).endsWith(".onion")) {
|
||||
var2 = var2.replace("www.", "");
|
||||
}
|
||||
|
@ -888,6 +974,9 @@ geckoSession extends GeckoSession implements MediaSession.Delegate, GeckoSession
|
|||
if (!canGoBack() && !mClosed) {
|
||||
mCloseRequested = true;
|
||||
event.invokeObserver(Arrays.asList(mCurrentURL, mSessionID, mCurrentTitle), enums.etype.back_list_empty);
|
||||
if(mediaDelegateItem!=null){
|
||||
mediaDelegateItem.onHideDefaultNotification();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -895,6 +984,9 @@ geckoSession extends GeckoSession implements MediaSession.Delegate, GeckoSession
|
|||
|
||||
@UiThread
|
||||
public void onCrash(@NonNull GeckoSession session) {
|
||||
if(mediaDelegateItem!=null){
|
||||
mediaDelegateItem.onHideDefaultNotification();
|
||||
}
|
||||
mCloseRequested = true;
|
||||
if (!mClosed && status.sSettingIsAppStarted) {
|
||||
if (event == null) {
|
||||
|
@ -922,6 +1014,9 @@ geckoSession extends GeckoSession implements MediaSession.Delegate, GeckoSession
|
|||
|
||||
@UiThread
|
||||
public void onKill(@NonNull GeckoSession session) {
|
||||
if(mediaDelegateItem!=null){
|
||||
mediaDelegateItem.onHideDefaultNotification();
|
||||
}
|
||||
mCloseRequested = true;
|
||||
if (!mClosed && status.sSettingIsAppStarted) {
|
||||
if (event == null) {
|
||||
|
@ -1206,6 +1301,9 @@ geckoSession extends GeckoSession implements MediaSession.Delegate, GeckoSession
|
|||
}
|
||||
|
||||
public void closeSessionInstant() {
|
||||
if (mediaDelegateItem != null) {
|
||||
mediaDelegateItem.onHideDefaultNotification();
|
||||
}
|
||||
mSessionID = "-1";
|
||||
new Handler().postDelayed(() ->
|
||||
{
|
||||
|
@ -1251,6 +1349,11 @@ geckoSession extends GeckoSession implements MediaSession.Delegate, GeckoSession
|
|||
}
|
||||
|
||||
void goBackSession() {
|
||||
if(mMediaSession!=null){
|
||||
isMediaRunning = false;
|
||||
mMediaSession.stop();
|
||||
mediaDelegateItem.onHideDefaultNotification();
|
||||
}
|
||||
wasBackPressed = true;
|
||||
mOnBackPressed = true;
|
||||
goBack();
|
||||
|
|
|
@ -1,35 +1,49 @@
|
|||
package com.hiddenservices.onionservices.appManager.homeManager.geckoManager;
|
||||
|
||||
|
||||
import static android.app.PendingIntent.FLAG_IMMUTABLE;
|
||||
import static android.content.Context.NOTIFICATION_SERVICE;
|
||||
import static com.hiddenservices.onionservices.appManager.homeManager.geckoManager.geckoPromptView.LOGTAG;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.Notification;
|
||||
import android.app.NotificationChannel;
|
||||
import android.app.NotificationManager;
|
||||
import android.app.PendingIntent;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Color;
|
||||
import android.os.Build;
|
||||
import android.util.Log;
|
||||
import android.widget.RemoteViews;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.core.app.NotificationCompat;
|
||||
import androidx.core.app.NotificationManagerCompat;
|
||||
|
||||
import com.example.myapplication.R;
|
||||
import com.hiddenservices.onionservices.appManager.homeManager.homeController.homeController;
|
||||
import com.hiddenservices.onionservices.constants.status;
|
||||
import com.hiddenservices.onionservices.helperManager.helperMethod;
|
||||
import com.hiddenservices.onionservices.pluginManager.pluginReciever.mediaNotificationReciever;
|
||||
import org.mozilla.geckoview.GeckoSession;
|
||||
import org.mozilla.geckoview.Image;
|
||||
|
||||
class mediaDelegate implements GeckoSession.MediaDelegate {
|
||||
public class mediaDelegate implements GeckoSession.MediaDelegate {
|
||||
private Integer mLastNotificationId = 100;
|
||||
private Integer mNotificationId;
|
||||
private final Activity mActivity;
|
||||
private Context mContext;
|
||||
private NotificationManager mNotificationManager;
|
||||
|
||||
public mediaDelegate(Activity activity, Context pContext) {
|
||||
mActivity = activity;
|
||||
mContext = pContext;
|
||||
mNotificationManager = (NotificationManager) mContext.getSystemService( NOTIFICATION_SERVICE ) ;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRecordingStatusChanged(@NonNull GeckoSession session, RecordingDevice[] devices) {
|
||||
String message;
|
||||
int icon;
|
||||
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(mActivity);
|
||||
RecordingDevice camera = null;
|
||||
RecordingDevice microphone = null;
|
||||
|
@ -63,18 +77,110 @@ class mediaDelegate implements GeckoSession.MediaDelegate {
|
|||
}
|
||||
|
||||
Intent intent = new Intent(mActivity, mediaDelegate.class);
|
||||
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
|
||||
PendingIntent pendingIntent =
|
||||
PendingIntent.getActivity(mActivity.getApplicationContext(), 0, intent, 0);
|
||||
PendingIntent pendingIntent;
|
||||
|
||||
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
|
||||
pendingIntent = PendingIntent.getActivity(mActivity.getApplicationContext(), 0, intent, FLAG_IMMUTABLE);
|
||||
}else {
|
||||
pendingIntent = PendingIntent.getActivity(mActivity.getApplicationContext(), 0, intent, 0);
|
||||
}
|
||||
|
||||
NotificationCompat.Builder builder =
|
||||
new NotificationCompat.Builder(mActivity.getApplicationContext(), "GeckoChannel")
|
||||
.setContentTitle("Orion Browser")
|
||||
.setContentText(message)
|
||||
.setPriority(NotificationCompat.PRIORITY_DEFAULT)
|
||||
.setContentIntent(pendingIntent)
|
||||
.setCategory(NotificationCompat.CATEGORY_SERVICE);
|
||||
.setAutoCancel(true)
|
||||
.setOngoing(false)
|
||||
.setPriority(Notification.PRIORITY_DEFAULT)
|
||||
.setCategory(NotificationCompat.CATEGORY_SERVICE)
|
||||
.setContentIntent(pendingIntent);
|
||||
|
||||
Notification notification = builder.build();
|
||||
notification.flags |= Notification.FLAG_NO_CLEAR | Notification.FLAG_ONGOING_EVENT;
|
||||
notificationManager.notify(mNotificationId, notification);
|
||||
}
|
||||
|
||||
public void onHideDefaultNotification(){
|
||||
if(mNotificationManager!=null){
|
||||
mNotificationManager.cancel(1030);
|
||||
}
|
||||
NotificationManagerCompat.from(mContext).cancel(1030);
|
||||
}
|
||||
|
||||
public void showNotification(Context context, String title, String url, Bitmap mediaImage, boolean not_status) {
|
||||
|
||||
if(title.length()<=0 || !status.sBackgroundMusic){
|
||||
return;
|
||||
}
|
||||
RemoteViews contentView;
|
||||
if (android.os.Build.VERSION. SDK_INT > Build.VERSION_CODES.N_MR1 ) {
|
||||
contentView = new RemoteViews(context.getPackageName() , R.layout. media_notification_layout ) ;
|
||||
}else {
|
||||
contentView = new RemoteViews(context.getPackageName() , R.layout. media_notification_layout_small ) ;
|
||||
}
|
||||
|
||||
|
||||
contentView.setInt(R.id.layout,"setBackgroundResource", R.color.c_tab_background);
|
||||
contentView.setTextViewText(R.id.header, title);
|
||||
contentView.setTextViewText(R.id.body, "☍ " + url);
|
||||
|
||||
try {
|
||||
contentView.setImageViewBitmap(R.id.logo, mediaImage);
|
||||
} catch (Throwable e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
if (not_status){
|
||||
PendingIntent pIntent = helperMethod.onCreateActionIntent(context, mediaNotificationReciever.class, 1030, "media_play", 0);
|
||||
contentView.setOnClickPendingIntent(R.id.trigger, pIntent);
|
||||
contentView.setImageViewResource(R.id.trigger, R.drawable.ic_baseline_play_arrow);
|
||||
}else {
|
||||
PendingIntent pIntent = helperMethod.onCreateActionIntent(context, mediaNotificationReciever.class, 1030, "media_pause", 1);
|
||||
contentView.setOnClickPendingIntent(R.id.trigger, pIntent);
|
||||
contentView.setImageViewResource(R.id.trigger, R.drawable.ic_baseline_pause);
|
||||
}
|
||||
|
||||
PendingIntent pIntentPrev = helperMethod.onCreateActionIntent(context, mediaNotificationReciever.class, 1030, "media_next", 2);
|
||||
contentView.setOnClickPendingIntent(R.id.next, pIntentPrev);
|
||||
|
||||
if(android.os.Build.VERSION. SDK_INT > Build.VERSION_CODES.N){
|
||||
PendingIntent pIntentNext = helperMethod.onCreateActionIntent(context, mediaNotificationReciever.class, 1030, "media_back", 3);
|
||||
contentView.setOnClickPendingIntent(R.id.back, pIntentNext);
|
||||
}
|
||||
|
||||
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(mContext, "1030" ) ;
|
||||
|
||||
mBuilder.setContent(contentView) ;
|
||||
mBuilder.setPriority(Notification.PRIORITY_LOW);
|
||||
mBuilder.setAutoCancel(true);
|
||||
|
||||
mBuilder.setSmallIcon(R.drawable.ic_genesis_logo ) ;
|
||||
mBuilder.setAutoCancel( true ) ;
|
||||
if (android.os.Build.VERSION. SDK_INT >= android.os.Build.VERSION_CODES. O ) {
|
||||
int importance = NotificationManager.IMPORTANCE_LOW ;
|
||||
NotificationChannel notificationChannel = new NotificationChannel( "1030" , "NOTIFICATION_CHANNEL_NAME" , importance) ;
|
||||
notificationChannel.setSound(null, null);
|
||||
mBuilder.setChannelId("1030") ;
|
||||
assert mNotificationManager != null;
|
||||
mNotificationManager.createNotificationChannel(notificationChannel) ;
|
||||
}
|
||||
Notification notification = mBuilder.build();
|
||||
|
||||
mBuilder.setContentIntent(PendingIntent.getActivity(context, 1030, new Intent(context, mediaDelegate.class), PendingIntent.FLAG_IMMUTABLE));
|
||||
PendingIntent dummyIntent = null;
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
PendingIntent.getActivity(context, 1030, new Intent(), PendingIntent.FLAG_IMMUTABLE);
|
||||
}else {
|
||||
PendingIntent.getActivity(context, 1030, new Intent(), 0);
|
||||
}
|
||||
notification.fullScreenIntent = dummyIntent;
|
||||
|
||||
if(!not_status){
|
||||
notification.flags |= Notification.FLAG_NO_CLEAR;
|
||||
}
|
||||
|
||||
notification.defaults = 0;
|
||||
mNotificationManager.notify(1030 , notification) ;
|
||||
|
||||
notificationManager.notify(mNotificationId, builder.build());
|
||||
}
|
||||
}
|
|
@ -424,6 +424,8 @@ public class selectionActionDelegate implements ActionMode.Callback,
|
|||
mSession = session;
|
||||
mSelection = selection;
|
||||
|
||||
|
||||
try {
|
||||
if (mActionMode != null) {
|
||||
if (isActionAvailable()) {
|
||||
mActionMode.invalidate();
|
||||
|
@ -432,8 +434,6 @@ public class selectionActionDelegate implements ActionMode.Callback,
|
|||
}
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
if (mUseFloatingToolbar) {
|
||||
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.toLowerCase().contains("samsung") || android.os.Build.MODEL.toLowerCase().contains("samsung") || Build.PRODUCT.toLowerCase().contains("samsung")))) {
|
||||
|
|
|
@ -1,10 +1,14 @@
|
|||
package com.hiddenservices.onionservices.appManager.homeManager.homeController;
|
||||
|
||||
import static android.content.Intent.FLAG_ACTIVITY_NO_ANIMATION;
|
||||
import static android.app.Notification.FLAG_AUTO_CANCEL;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.ActivityManager;
|
||||
import android.app.DownloadManager;
|
||||
import android.app.Notification;
|
||||
import android.app.NotificationChannel;
|
||||
import android.app.NotificationManager;
|
||||
import android.app.PendingIntent;
|
||||
import android.content.ActivityNotFoundException;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.ClipData;
|
||||
|
@ -14,6 +18,7 @@ import android.content.ComponentName;
|
|||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.content.ServiceConnection;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.res.Configuration;
|
||||
|
@ -26,6 +31,7 @@ import android.net.Uri;
|
|||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.IBinder;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.speech.RecognizerIntent;
|
||||
import android.text.Editable;
|
||||
|
@ -45,6 +51,7 @@ import androidx.appcompat.app.AppCompatActivity;
|
|||
import androidx.appcompat.app.AppCompatDelegate;
|
||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
import androidx.coordinatorlayout.widget.CoordinatorLayout;
|
||||
import androidx.core.app.NotificationCompat;
|
||||
import androidx.core.app.NotificationManagerCompat;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.core.widget.NestedScrollView;
|
||||
|
@ -60,7 +67,6 @@ import com.hiddenservices.onionservices.appManager.advertManager.advertControlle
|
|||
import com.hiddenservices.onionservices.appManager.bookmarkManager.bookmarkSettings.bookmarkSettingController;
|
||||
import com.hiddenservices.onionservices.appManager.bookmarkManager.bookmarkHome.bookmarkController;
|
||||
import com.hiddenservices.onionservices.appManager.historyManager.historyController;
|
||||
import com.hiddenservices.onionservices.appManager.orionAdvertManager.orionAdvertController;
|
||||
import com.hiddenservices.onionservices.dataManager.models.historyRowModel;
|
||||
import com.hiddenservices.onionservices.appManager.homeManager.geckoManager.NestedGeckoView;
|
||||
import com.hiddenservices.onionservices.appManager.homeManager.geckoManager.*;
|
||||
|
@ -87,6 +93,7 @@ import com.hiddenservices.onionservices.appManager.activityThemeManager;
|
|||
import com.hiddenservices.onionservices.pluginManager.pluginController;
|
||||
import com.hiddenservices.onionservices.pluginManager.pluginEnums;
|
||||
import com.example.myapplication.R;
|
||||
import com.hiddenservices.onionservices.pluginManager.pluginReciever.defaultNotificationReciever;
|
||||
import com.widget.onionservices.widgetManager.widgetController;
|
||||
|
||||
import org.mozilla.geckoview.ContentBlocking;
|
||||
|
@ -97,11 +104,8 @@ import org.torproject.android.service.util.Prefs;
|
|||
import org.torproject.android.service.wrapper.LocaleHelper;
|
||||
import org.torproject.android.service.wrapper.orbotLocalConstants;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.InputStreamReader;
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.lang.reflect.Method;
|
||||
import java.net.URL;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
|
@ -168,6 +172,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
private LinearLayout mTopBar;
|
||||
private ImageView mBackSplash;
|
||||
private Button mConnectButton;
|
||||
private Button mConnectNoTorButton;
|
||||
private Button mNewTab;
|
||||
private View mFindBar;
|
||||
private View mSearchEngineBar;
|
||||
|
@ -228,7 +233,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
getWindow().getDecorView().setBackgroundColor(Color.WHITE);
|
||||
pluginController.getInstance().preInitialize(this);
|
||||
dataController.getInstance().initialize(this);
|
||||
status.initStatus(this);
|
||||
status.initStatus(this, false);
|
||||
dataController.getInstance().invokeSQLCipher(dataEnums.eSqlCipherCommands.M_INIT, Collections.singletonList(this));
|
||||
|
||||
helperMethod.updateResources(this, status.mSystemLocale.getLanguage());
|
||||
|
@ -256,8 +261,11 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
initPreFixes();
|
||||
initBundle();
|
||||
initTor();
|
||||
initNotification();
|
||||
onHideDefaultNotification();
|
||||
}
|
||||
|
||||
|
||||
public void initNotification() {
|
||||
}
|
||||
|
||||
public void initTor() {
|
||||
|
@ -283,7 +291,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
if (getIntent().getExtras().containsKey(M_RESTART_APP_KEY)) {
|
||||
boolean mStatus = getIntent().getExtras().getBoolean(M_RESTART_APP_KEY);
|
||||
if (mStatus) {
|
||||
onStartApplication(null);
|
||||
//onStartApplication(null);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -348,7 +356,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
}
|
||||
|
||||
public void onAdvertClick(View view) {
|
||||
Intent myIntent = new Intent(this, orionAdvertController.class);
|
||||
Intent myIntent = new Intent(this, advertController.class);
|
||||
startActivity(myIntent);
|
||||
}
|
||||
|
||||
|
@ -458,6 +466,11 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
findViewById(R.id.pSuggestionScroll).setOnTouchListener((v, event) -> {
|
||||
if (MotionEvent.ACTION_DOWN == event.getAction()) {
|
||||
helperMethod.hideKeyboard(this);
|
||||
mSearchbar.clearFocus();
|
||||
mHomeViewController.onUpdateSearchEngineBar(false, 150);
|
||||
mSearchbar.clearFocus();
|
||||
mHomeViewController.onClearSelections(true);
|
||||
mHomeViewController.onUpdateSearchBar(mGeckoClient.getSession().getCurrentURL(), false, false, true);
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
@ -511,7 +524,8 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
mGatewaySplash = findViewById(R.id.pSettings);
|
||||
mTopBar = findViewById(R.id.pTopbar);
|
||||
mBackSplash = findViewById(R.id.pTopImage);
|
||||
mConnectButton = findViewById(R.id.Connect);
|
||||
mConnectButton = findViewById(R.id.ConnectTor);
|
||||
mConnectNoTorButton = findViewById(R.id.ConnectNoTor);
|
||||
mNewTab = findViewById(R.id.pNewTab);
|
||||
mSearchEngineBar = findViewById(R.id.pSearchEngineBar);
|
||||
mFindText = findViewById(R.id.pPopupFindNext);
|
||||
|
@ -547,7 +561,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
mGeckoView.setAutofillEnabled(true);
|
||||
|
||||
mGeckoClient = new geckoClients();
|
||||
mHomeViewController.initialization(new homeViewCallback(), this, mNewTab, mWebViewContainer, mLoadingText, mProgressBar, mSearchbar, mSplashScreen, mLoadingIcon, mBannerAds, mGatewaySplash, mTopBar, mGeckoView, mBackSplash, mConnectButton, mFindBar, mFindText, mFindCount, mTopLayout, mVoiceInput, mMenu, mNestedScroll, mBlocker, mBlockerFullSceen, mSearchEngineBar, mCopyright, mHintListView, mAppBar, mOrbotLogManager, mInfoLandscape, mInfoPortrait, mProgressBarIndeterminate, mTabFragment, mTopBarContainer, mSearchLock, mTopBarHider, mNewTabBlocker, mCoordinatorLayout, mImageDivider, mPanicButton, mGenesisLogo, mPanicButtonLandscape, mTorDisabled);
|
||||
mHomeViewController.initialization(new homeViewCallback(), this, mNewTab, mWebViewContainer, mLoadingText, mProgressBar, mSearchbar, mSplashScreen, mLoadingIcon, mBannerAds, mGatewaySplash, mTopBar, mGeckoView, mBackSplash, mConnectButton, mConnectNoTorButton, mFindBar, mFindText, mFindCount, mTopLayout, mVoiceInput, mMenu, mNestedScroll, mBlocker, mBlockerFullSceen, mSearchEngineBar, mCopyright, mHintListView, mAppBar, mOrbotLogManager, mInfoLandscape, mInfoPortrait, mProgressBarIndeterminate, mTabFragment, mTopBarContainer, mSearchLock, mTopBarHider, mNewTabBlocker, mCoordinatorLayout, mImageDivider, mPanicButton, mGenesisLogo, mPanicButtonLandscape, mTorDisabled);
|
||||
mGeckoView.onSetHomeEvent(new nestedGeckoViewCallback());
|
||||
mGeckoClient.initialize(mGeckoView, new geckoViewCallback(), this, false);
|
||||
mGeckoClient.onValidateInitializeFromStartup(mGeckoView, homeController.this);
|
||||
|
@ -661,10 +675,11 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
|
||||
public void onExternalURLInvoke(String pData) {
|
||||
if (status.sSettingIsAppStarted) {
|
||||
activityContextManager.getInstance().onClearStack();
|
||||
onOpenLinkNewTab(pData);
|
||||
} else {
|
||||
status.sExternalWebsite = pData;
|
||||
onStartApplication(null);
|
||||
//onStartApplication(null);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -686,13 +701,13 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
|
||||
public void onLoadTab(geckoSession mTempSession, boolean isSessionClosed, boolean pExpandAppBar, boolean pForced, boolean pGeneratePixel) {
|
||||
|
||||
mGeckoClient.getSession().onKillMedia();
|
||||
if (!isSessionClosed) {
|
||||
dataController.getInstance().invokeTab(dataEnums.eTabCommands.MOVE_TAB_TO_TOP, Collections.singletonList(mTempSession));
|
||||
}
|
||||
|
||||
if (mTempSession.isOpen()) {
|
||||
Log.i("SUPERFUCKKKKK", "SUPERFUCKKKKK : " + (mTempSession.getSessionID() == null) + " -- " + (mGeckoClient == null) + " -- " + (mGeckoClient.getSession().getSessionID() == null));
|
||||
if (mGeckoClient.getSession() != null && mTempSession.getSessionID().equals(mGeckoClient.getSession().getSessionID())) {
|
||||
if (mGeckoClient.getSession() != null && mTempSession != null && mTempSession.getSessionID() != null && mTempSession.getSessionID().equals(mGeckoClient.getSession().getSessionID())) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -774,6 +789,113 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
}
|
||||
/*-------------------------------------------------------USER EVENTS-------------------------------------------------------*/
|
||||
|
||||
|
||||
public void onKillMedia(){
|
||||
mGeckoClient.onKillMedia();
|
||||
}
|
||||
public void onPlayMedia(){
|
||||
mGeckoClient.onPlayMedia();
|
||||
}
|
||||
public void onPauseMedia(){
|
||||
mGeckoClient.onPauseMedia();
|
||||
}
|
||||
public void onSkipForwardMedia(){
|
||||
mGeckoClient.onSkipForwardMedia();
|
||||
}
|
||||
public void onSkipBackwardMedia(){
|
||||
mGeckoClient.onSkipBackwardMedia();
|
||||
}
|
||||
|
||||
public void onShowDefaultNotification(){
|
||||
showDefaultNotification(this, "Orion Browser");
|
||||
}
|
||||
public void onHideDefaultNotification(){
|
||||
NotificationManagerCompat.from(this).cancelAll();
|
||||
NotificationManagerCompat.from(this).cancel(1025);
|
||||
}
|
||||
|
||||
public void resetAndRestart(){
|
||||
boolean mTorBrowsing = status.sTorBrowsing;
|
||||
String mSearchEngine = status.sSettingDefaultSearchEngine;
|
||||
dataController.getInstance().clearData(this);
|
||||
helperMethod.restart(true, this);
|
||||
status.sTorBrowsing = mTorBrowsing;
|
||||
status.sSettingDefaultSearchEngine = mSearchEngine;
|
||||
}
|
||||
|
||||
public void onCloseApplication(){
|
||||
pluginController.getInstance().onOrbotInvoke(Collections.singletonList(status.mThemeApplying), pluginEnums.eOrbotManager.M_DESTROY);
|
||||
onHideDefaultNotification();
|
||||
finishAndRemoveTask();
|
||||
overridePendingTransition(R.anim.popup_scale_in, R.anim.popup_scale_out);
|
||||
activityContextManager.getInstance().getHomeController().onResetData();
|
||||
mGeckoClient.onClearAll();
|
||||
status.sSettingIsAppStarted = false;
|
||||
orbotLocalConstants.mAppStarted = false;
|
||||
}
|
||||
|
||||
NotificationManager manager = null;
|
||||
public void showDefaultNotification(Context context, String title) {
|
||||
if(status.sTorBrowsing && status.sBridgeNotificationManual != 0){
|
||||
return;
|
||||
}
|
||||
|
||||
pluginController.getInstance().onOrbotInvoke(null, pluginEnums.eOrbotManager.M_DISABLE_NOTIFICATION);
|
||||
manager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
|
||||
|
||||
PendingIntent action;
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
action = PendingIntent.getActivity(context, 1025, new Intent(context, homeController.class), PendingIntent.FLAG_IMMUTABLE); // Flag indicating that if the described PendingIntent already exists, the current one should be canceled before generating a new one.
|
||||
}else {
|
||||
action = PendingIntent.getActivity(context, 1025, new Intent(context, homeController.class), 0); // Flag indicating that if the described PendingIntent already exists, the current one should be canceled before generating a new one.
|
||||
}
|
||||
|
||||
NotificationCompat.Builder builder = new NotificationCompat.Builder(this.getApplicationContext(), "notify_001");
|
||||
builder.setContentIntent(action)
|
||||
.setSmallIcon(R.drawable.ic_genesis_logo)
|
||||
.setPriority(NotificationCompat.PRIORITY_DEFAULT)
|
||||
.setContentText("Secure tor browsing")
|
||||
.setOngoing(false)
|
||||
.setColor(getResources().getColor(R.color.c_tab_border))
|
||||
.setContentTitle(title);
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
|
||||
{
|
||||
String channelId = "default_home_notification";
|
||||
NotificationChannel channel = new NotificationChannel(channelId, "default_home_notification", NotificationManager.IMPORTANCE_DEFAULT);
|
||||
channel.setSound(null, null);
|
||||
manager.createNotificationChannel(channel);
|
||||
builder.setChannelId(channelId);
|
||||
}
|
||||
|
||||
Intent intentActionOpen = new Intent(context,homeController.class);
|
||||
intentActionOpen.putExtra("action","Open");
|
||||
PendingIntent pIntentOpen = helperMethod.onCreateActionIntent(context, defaultNotificationReciever.class, 1025, "media_play", 0);
|
||||
builder.addAction(0, "ERASE AND RESET", pIntentOpen);
|
||||
|
||||
Intent intentActionClose = new Intent(context,homeController.class);
|
||||
intentActionClose.putExtra("action","Exit");
|
||||
PendingIntent pIntentClose = helperMethod.onCreateActionIntent(context, defaultNotificationReciever.class, 1025, "media_pause", 1);
|
||||
builder.addAction(0, "EXIT BROWSER", pIntentClose);
|
||||
|
||||
Notification notification = builder.build();
|
||||
PendingIntent dummyIntent = null;
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
PendingIntent.getActivity(context, 1025, new Intent(), PendingIntent.FLAG_IMMUTABLE);
|
||||
}else {
|
||||
PendingIntent.getActivity(context, 1025, new Intent(), 0);
|
||||
}
|
||||
notification.fullScreenIntent = dummyIntent;
|
||||
|
||||
notification.flags |= Notification.FLAG_NO_CLEAR;
|
||||
|
||||
int notificationCode = 1025;
|
||||
|
||||
manager.notify(notificationCode, notification);
|
||||
}
|
||||
|
||||
private BroadcastReceiver downloadStatus = new BroadcastReceiver() {
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
|
@ -789,6 +911,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
}
|
||||
};
|
||||
|
||||
|
||||
@SuppressLint("NewApi")
|
||||
@Override
|
||||
public void onTrimMemory(int level) {
|
||||
|
@ -835,6 +958,13 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
@SuppressLint("ClickableViewAccessibility")
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
NotificationManagerCompat.from(this).cancel(1030);
|
||||
if(manager!=null){
|
||||
manager.cancel(1025);
|
||||
}
|
||||
NotificationManagerCompat.from(this).cancel(1025);
|
||||
mGeckoClient.getSession().onDestroyMedia();
|
||||
onHideDefaultNotification();
|
||||
pluginController.getInstance().onAdsInvoke(null, pluginEnums.eAdManager.M_DESTROY);
|
||||
if (!status.sSettingIsAppStarted) {
|
||||
super.onDestroy();
|
||||
|
@ -855,8 +985,14 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
// mGeckoView.onDestroy();
|
||||
|
||||
unregisterReceiver(downloadStatus);
|
||||
if (bound) {
|
||||
unbindService(connection);
|
||||
bound = false;
|
||||
}
|
||||
|
||||
activityContextManager.getInstance().getHomeController().onResetData();
|
||||
|
||||
NotificationManagerCompat.from(this).cancel(1030);
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
|
@ -1247,6 +1383,10 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
}
|
||||
}
|
||||
|
||||
public void onBackPressedVirtual(View view){
|
||||
onBackPressed();
|
||||
}
|
||||
|
||||
public void postNewLinkTabAnimationInBackgroundTrigger(String url) {
|
||||
String mExtention = helperMethod.getMimeType(url, this);
|
||||
if (!url.startsWith("data") && !url.startsWith("blob") && (mExtention == null || 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"))) {
|
||||
|
@ -1275,7 +1415,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
}
|
||||
|
||||
public void onNewTab(boolean isKeyboardOpenedTemp, boolean isKeyboardOpened) {
|
||||
|
||||
mGeckoClient.getSession().onKillMedia();
|
||||
try {
|
||||
mRenderedBitmap = mGeckoView.capturePixels();
|
||||
} catch (Exception ignored) {
|
||||
|
@ -1495,7 +1635,9 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
}
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_RESUME);
|
||||
mHomeViewController.onClearSelections(true);
|
||||
if(mGeckoClient != null && mGeckoClient.getSession()!=null && mGeckoClient.getSession().getCurrentURL()!=null){
|
||||
mHomeViewController.onUpdateSearchBar(mGeckoClient.getSession().getCurrentURL(), false, true, true);
|
||||
}
|
||||
|
||||
mHomeViewController.expandTopBar(false, mGeckoView.getMaxY());
|
||||
status.sUIInteracted = true;
|
||||
|
@ -1544,10 +1686,11 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
|
||||
@Override
|
||||
public void onResume() {
|
||||
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_RESUME);
|
||||
activityContextManager.getInstance().setCurrentActivity(this);
|
||||
|
||||
if (mGeckoClient.getSession() != null && mGeckoClient != null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && mGeckoClient.getUriPermission() != null) {
|
||||
if (mGeckoClient.getSession() != null && mGeckoClient != null && mGeckoClient.getUriPermission() != null) {
|
||||
this.revokeUriPermission(mGeckoClient.getUriPermission(), Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION);
|
||||
|
||||
TouchView(mGeckoView);
|
||||
|
@ -1757,7 +1900,30 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
mBackground = false;
|
||||
}
|
||||
|
||||
public void onStartApplication(View view) {
|
||||
activityStateManager mService = null;
|
||||
boolean bound;
|
||||
|
||||
|
||||
/** Defines callbacks for service binding, passed to bindService() */
|
||||
private ServiceConnection connection = new ServiceConnection() {
|
||||
|
||||
@Override
|
||||
public void onServiceConnected(ComponentName className,
|
||||
IBinder service) {
|
||||
// We've bound to LocalService, cast the IBinder and get LocalService instance
|
||||
activityStateManager.LocalBinder binder = (activityStateManager.LocalBinder) service;
|
||||
mService = binder.getService();
|
||||
bound = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onServiceDisconnected(ComponentName arg0) {
|
||||
bound = false;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
public void onStartBrowser() {
|
||||
if (!mStateService) {
|
||||
mStateService = true;
|
||||
try{
|
||||
|
@ -1765,7 +1931,9 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
new Handler().postDelayed(() ->
|
||||
{
|
||||
if(!mBackground){
|
||||
startService(new Intent(this, activityStateManager.class));
|
||||
Intent intent = new Intent(this, activityStateManager.class);
|
||||
bindService(intent, connection, 0);
|
||||
startService(intent);
|
||||
}
|
||||
}, 500);
|
||||
}
|
||||
|
@ -1786,9 +1954,31 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
{
|
||||
pluginController.getInstance().onOrbotInvoke(Arrays.asList(status.sBridgeCustomBridge, status.sBridgeGatewayManual, status.sBridgeCustomType, status.sBridgeStatus, status.sShowImages, status.sClearOnExit, dataController.getInstance().invokeBridges(dataEnums.eBridgeWebsiteCommands.M_FETCH, null)), pluginEnums.eOrbotManager.M_START_ORBOT);
|
||||
onInvokeProxyLoading();
|
||||
onShowDefaultNotification();
|
||||
}, mDelay);
|
||||
}
|
||||
|
||||
public void onStartApplication(View view) {
|
||||
onStartBrowser();
|
||||
int notificationStatus = status.sBridgeNotificationManual;
|
||||
if (notificationStatus == 0) {
|
||||
pluginController.getInstance().onOrbotInvoke(null, pluginEnums.eOrbotManager.M_DISABLE_NOTIFICATION);
|
||||
activityContextManager.getInstance().getHomeController().onShowDefaultNotification();
|
||||
} else {
|
||||
pluginController.getInstance().onOrbotInvoke(null, pluginEnums.eOrbotManager.M_ENABLE_NOTIFICATION);
|
||||
}
|
||||
}
|
||||
|
||||
public void onStartApplicationNoTor(View view) {
|
||||
status.sTorBrowsing = false;
|
||||
status.sNoTorTriggered = true;
|
||||
if(status.sSettingDefaultSearchEngine.equals(constants.CONST_BACKEND_GENESIS_URL)){
|
||||
status.sSettingDefaultSearchEngine = constants.CONST_BACKEND_DUCK_DUCK_GO_URL;
|
||||
}
|
||||
onStartBrowser();
|
||||
onHomeButton(null);
|
||||
}
|
||||
|
||||
public void onDownloadFile() {
|
||||
mGeckoClient.downloadFile(homeController.this);
|
||||
}
|
||||
|
@ -1974,13 +2164,15 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
helperMethod.hideKeyboard(this);
|
||||
pluginController.getInstance().onMessageManagerInvoke(Collections.singletonList(this), M_REPORT_URL);
|
||||
} else if (menuId == R.id.pMenuQuit) {
|
||||
mGeckoClient.onKillMedia();
|
||||
pluginController.getInstance().onOrbotInvoke(Collections.singletonList(status.mThemeApplying), pluginEnums.eOrbotManager.M_DESTROY);
|
||||
|
||||
onHideDefaultNotification();
|
||||
finishAndRemoveTask();
|
||||
overridePendingTransition(R.anim.popup_scale_in, R.anim.popup_scale_out);
|
||||
activityContextManager.getInstance().getHomeController().onResetData();
|
||||
mGeckoClient.onClearAll();
|
||||
status.sSettingIsAppStarted = false;
|
||||
orbotLocalConstants.mAppStarted = false;
|
||||
|
||||
} else if (menuId == R.id.pMenuFind) {
|
||||
helperMethod.hideKeyboard(this);
|
||||
|
@ -2087,6 +2279,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
}
|
||||
|
||||
public void quitApplication() {
|
||||
|
||||
pluginController.getInstance().onOrbotInvoke(Collections.singletonList(status.mThemeApplying), pluginEnums.eOrbotManager.M_DESTROY);
|
||||
|
||||
finishAffinity();
|
||||
|
@ -2094,6 +2287,8 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
activityContextManager.getInstance().getHomeController().onResetData();
|
||||
mGeckoClient.onClearAll();
|
||||
status.sSettingIsAppStarted = false;
|
||||
orbotLocalConstants.mAppStarted = false;
|
||||
onHideDefaultNotification();
|
||||
}
|
||||
|
||||
public void torSwitch() {
|
||||
|
@ -2138,6 +2333,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_CHARACTER_ENCODING, false));
|
||||
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_INT, Arrays.asList(keys.SETTING_SHOW_IMAGES, 0));
|
||||
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_SHOW_FONTS, true));
|
||||
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_BACKGROUND_MUSIC, false ));
|
||||
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_TOOLBAR_THEME, true));
|
||||
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_FULL_SCREEN_BROWSIING, false));
|
||||
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_INT, Arrays.asList(keys.SETTING_THEME, enums.Theme.THEME_DEFAULT));
|
||||
|
@ -2163,16 +2359,21 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
activityContextManager.getInstance().getHomeController().onClearCookies();
|
||||
|
||||
onClearSettings();
|
||||
status.initStatus(activityContextManager.getInstance().getHomeController());
|
||||
status.initStatus(activityContextManager.getInstance().getHomeController(), false);
|
||||
dataController.getInstance().invokeTab(dataEnums.eTabCommands.M_CLEAR_TAB, null);
|
||||
pluginController.getInstance().onMessageManagerInvoke(Collections.singletonList(this), M_DATA_CLEARED);
|
||||
|
||||
pluginController.getInstance().onMessageManagerInvoke(Collections.singletonList(this), M_CLOSE);
|
||||
|
||||
onRestartApp();
|
||||
onCloseApplication();
|
||||
}
|
||||
|
||||
public void onRestartApp() {
|
||||
activityContextManager.getInstance().getHomeController().onClearCache();
|
||||
activityContextManager.getInstance().getHomeController().onClearSiteData();
|
||||
activityContextManager.getInstance().getHomeController().onClearSession();
|
||||
activityContextManager.getInstance().getHomeController().onClearCookies();
|
||||
|
||||
final PackageManager pm = homeController.this.getPackageManager();
|
||||
final Intent intent = pm.getLaunchIntentForPackage(homeController.this.getPackageName());
|
||||
|
||||
|
@ -2185,6 +2386,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
orbotLocalConstants.mIsTorInitialized = false;
|
||||
orbotLocalConstants.mSOCKSPort = -1;
|
||||
status.sSettingIsAppStarted = false;
|
||||
orbotLocalConstants.mAppStarted = false;
|
||||
|
||||
orbotLocalConstants.mForcedQuit = false;
|
||||
homeController.this.startActivity(intent);
|
||||
|
@ -2350,7 +2552,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
}
|
||||
}
|
||||
} else if (e_type.equals(enums.etype.open_new_tab_instant)) {
|
||||
postNewLinkTabAnimation(dataToStr(data.get(0)), true);
|
||||
onLoadURL(dataToStr(data.get(0)));
|
||||
//status.sExternalWebsite = strings.GENERIC_EMPTY_STR;
|
||||
} else if (e_type.equals(enums.etype.M_HOME_PAGE)) {
|
||||
geckoSession mSession = (geckoSession) dataController.getInstance().invokeTab(dataEnums.eTabCommands.M_HOME_PAGE, null);
|
||||
|
@ -2389,7 +2591,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
isFocusChanging = true;
|
||||
mSearchbar.setSelection(0);
|
||||
mHomeViewController.onClearSelections(false);
|
||||
if (!isSuggestionSearchOpened) {
|
||||
if (!isSuggestionSearchOpened && mGeckoClient!=null && mGeckoClient.getSession()!=null) {
|
||||
if (mHintListView != null && mHintListView.getAdapter() != null && mHintListView.getAdapter().getItemCount() > 0) {
|
||||
mHomeViewController.onUpdateSearchEngineBar(false, 150);
|
||||
((hintAdapter) Objects.requireNonNull(mHintListView.getAdapter())).onClearAdapter();
|
||||
|
@ -2443,6 +2645,12 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
activityContextManager.getInstance().getTabController().onCloseAllTabs();
|
||||
onLoadTabFromTabController();
|
||||
initTabCountForced();
|
||||
|
||||
if(mGeckoClient.getSession().getCurrentURL().equals(constants.CONST_BACKEND_DUCK_DUCK_GO_STATIC_URL)){
|
||||
onLoadURL(constants.CONST_BACKEND_DUCK_DUCK_GO_STATIC_URL);
|
||||
}else {
|
||||
onReload(null);
|
||||
}
|
||||
}
|
||||
|
||||
public void onClearAllTabs() {
|
||||
|
@ -2620,9 +2828,9 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
} else if (e_type.equals(enums.etype.M_ORBOT_LOADING)) {
|
||||
pluginController.getInstance().onMessageManagerInvoke(Collections.singletonList(homeController.this), M_ORBOT_LOADING);
|
||||
} else if (e_type.equals(enums.etype.M_DEFAULT_BROWSER)) {
|
||||
if (helperMethod.isDefaultBrowserSet(homeController.this)) {
|
||||
helperMethod.openDefaultBrowser(homeController.this);
|
||||
}
|
||||
//if (helperMethod.isDefaultBrowserSet(homeController.this)) {
|
||||
pluginController.getInstance().onMessageManagerInvoke(Collections.singletonList(homeController.this), M_DEFAULT_BROWSER);
|
||||
//}
|
||||
} else if (e_type.equals(enums.etype.M_NEW_IDENTITY)) {
|
||||
pluginController.getInstance().onOrbotInvoke(null, pluginEnums.eOrbotManager.M_NEW_CIRCUIT);
|
||||
} else if (e_type.equals(enums.etype.M_NEW_IDENTITY_MESSAGED)) {
|
||||
|
|
|
@ -88,6 +88,7 @@ class homeViewController {
|
|||
private LinearLayout mTopBar;
|
||||
private GeckoView mGeckoView;
|
||||
private Button mConnectButton;
|
||||
private Button mConnectNoTorButton;
|
||||
private Button mNewTab;
|
||||
private PopupWindow popupWindow = null;
|
||||
private View mFindBar;
|
||||
|
@ -125,7 +126,7 @@ class homeViewController {
|
|||
private boolean mIsTopBarExpanded = true;
|
||||
private NestedScrollView.MarginLayoutParams mDefaultMargin = null;
|
||||
|
||||
void initialization(eventObserver.eventListener event, AppCompatActivity context, Button mNewTab, ConstraintLayout webviewContainer, TextView loadingText, ProgressBar progressBar, editTextManager searchbar, ConstraintLayout splashScreen, ImageView loading, MaxAdView 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, ImageView pTopBarHider, ImageView pNewTabBlocker, CoordinatorLayout mCoordinatorLayout, ImageView pImageDivider, ImageButton pPanicButton, ImageView pGenesisLogo, ImageButton pPanicButtonLandscape, ImageView pTorDisabled) {
|
||||
void initialization(eventObserver.eventListener event, AppCompatActivity context, Button mNewTab, ConstraintLayout webviewContainer, TextView loadingText, ProgressBar progressBar, editTextManager searchbar, ConstraintLayout splashScreen, ImageView loading, MaxAdView banner_ads, ImageButton gateway_splash, LinearLayout top_bar, GeckoView gecko_view, ImageView backsplash, Button connect_button, Button connect_no_tor_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, ImageView pTopBarHider, ImageView pNewTabBlocker, CoordinatorLayout mCoordinatorLayout, ImageView pImageDivider, ImageButton pPanicButton, ImageView pGenesisLogo, ImageButton pPanicButtonLandscape, ImageView pTorDisabled) {
|
||||
this.mContext = context;
|
||||
this.mProgressBar = progressBar;
|
||||
this.mSearchbar = searchbar;
|
||||
|
@ -138,6 +139,7 @@ class homeViewController {
|
|||
this.mTopBar = top_bar;
|
||||
this.mGeckoView = gecko_view;
|
||||
this.mConnectButton = connect_button;
|
||||
this.mConnectNoTorButton = connect_no_tor_button;
|
||||
this.mNewTab = mNewTab;
|
||||
this.popupWindow = null;
|
||||
this.mFindBar = pFindBar;
|
||||
|
@ -236,6 +238,7 @@ class homeViewController {
|
|||
mTorDisabled.setAlpha(1);
|
||||
mTorDisabled.setVisibility(View.VISIBLE);
|
||||
mConnectButton.setVisibility(View.GONE);
|
||||
mConnectNoTorButton.setVisibility(View.GONE);
|
||||
mOrbotLogManager.setVisibility(View.GONE);
|
||||
mGatewaySplash.setVisibility(View.GONE);
|
||||
mCopyright.setVisibility(View.GONE);
|
||||
|
@ -553,6 +556,7 @@ class homeViewController {
|
|||
//mBlocker.setVisibility(View.GONE);
|
||||
mGatewaySplash.setVisibility(View.GONE);
|
||||
mConnectButton.setVisibility(View.GONE);
|
||||
mConnectNoTorButton.setVisibility(View.GONE);
|
||||
mPanicButton.setVisibility(View.GONE);
|
||||
mPanicButtonLandscape.setVisibility(View.GONE);
|
||||
|
||||
|
@ -570,6 +574,7 @@ class homeViewController {
|
|||
mProgressBarIndeterminate.setVisibility(View.VISIBLE);
|
||||
mProgressBarIndeterminate.animate().alpha(1);
|
||||
mConnectButton.setEnabled(false);
|
||||
mConnectNoTorButton.setEnabled(false);
|
||||
mSplashScreen.setEnabled(false);
|
||||
//mBlocker.setClickable(true);
|
||||
//mBlocker.setFocusable(true);
|
||||
|
@ -577,6 +582,7 @@ class homeViewController {
|
|||
|
||||
void initHomePage() {
|
||||
mConnectButton.setEnabled(false);
|
||||
mConnectNoTorButton.setEnabled(false);
|
||||
mSplashScreen.setEnabled(false);
|
||||
mOrbotLogManager.setEnabled(false);
|
||||
mPanicButton.setEnabled(false);
|
||||
|
@ -592,6 +598,8 @@ class homeViewController {
|
|||
mCopyright.setVisibility(View.GONE);
|
||||
initSplashLoading();
|
||||
});
|
||||
mConnectNoTorButton.animate().setDuration(350).alpha(0f).withEndAction(() -> {
|
||||
});
|
||||
mGatewaySplash.animate().setDuration(350).alpha(0.4f);
|
||||
mPanicButtonLandscape.animate().setInterpolator(new AccelerateInterpolator()).setDuration(170).translationXBy(helperMethod.pxFromDp(55));
|
||||
mPanicButton.animate().setDuration(170).setInterpolator(new AccelerateInterpolator()).translationXBy(helperMethod.pxFromDp(55));
|
||||
|
@ -1772,6 +1780,7 @@ class homeViewController {
|
|||
}
|
||||
|
||||
status.sSettingIsAppStarted = true;
|
||||
orbotLocalConstants.mAppStarted = true;
|
||||
}
|
||||
if (msg.what == messages.MESSAGE_UPDATE_LOADING_TEXT) {
|
||||
if (mLogs != null) {
|
||||
|
|
|
@ -1,76 +0,0 @@
|
|||
package com.hiddenservices.onionservices.appManager.orionAdvertManager;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.webkit.WebView;
|
||||
import android.widget.ProgressBar;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
import com.example.myapplication.R;
|
||||
import com.hiddenservices.onionservices.appManager.settingManager.advertSetttings.advertSettingController;
|
||||
import com.hiddenservices.onionservices.eventObserver;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class orionAdvertController extends AppCompatActivity {
|
||||
|
||||
WebView mWebView;
|
||||
ProgressBar mProgressBar;
|
||||
orionAdvertViewController mAdvertViewController;
|
||||
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_orion_adview_controller);
|
||||
|
||||
initializeViews();
|
||||
onInitializeAdvertisements();
|
||||
onInitAdvert();
|
||||
}
|
||||
|
||||
private void initializeViews() {
|
||||
mWebView = findViewById(R.id.pWebView);
|
||||
mProgressBar = findViewById(R.id.mProgressBar);
|
||||
mAdvertViewController = new orionAdvertViewController(this, null, mWebView, mProgressBar);
|
||||
}
|
||||
|
||||
void onInitAdvert() {
|
||||
mWebView.getSettings().setDomStorageEnabled(true);
|
||||
mWebView.getSettings().setGeolocationEnabled(true);
|
||||
mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
|
||||
mWebView.getSettings().setUseWideViewPort(true);
|
||||
mWebView.getSettings().setDatabaseEnabled(true);
|
||||
mWebView.setWebViewClient(new orionAdvertWebViewClient(new webivewViewCallback()));
|
||||
}
|
||||
|
||||
private void onInitializeAdvertisements() {
|
||||
mWebView.loadUrl("https://360wise.com");
|
||||
}
|
||||
|
||||
/* Helper Methods */
|
||||
public void onClose(View view) {
|
||||
finish();
|
||||
}
|
||||
|
||||
public void onSettings(View view) {
|
||||
Intent myIntent = new Intent(this, advertSettingController.class);
|
||||
startActivity(myIntent);
|
||||
}
|
||||
|
||||
|
||||
/* Callbacks */
|
||||
public class webivewViewCallback implements eventObserver.eventListener {
|
||||
@Override
|
||||
public Object invokeObserver(List<Object> data, Object event_type) {
|
||||
if (event_type.equals(orionAdvertEnums.eOrionAdvertClientCallback.M_UPDATE_PROGRESSBAR)) {
|
||||
mAdvertViewController.onTrigger(orionAdvertEnums.eOrionAdvertViewController.M_UPDATE_PROGRESSBAR, Collections.singletonList(data.get(0)));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
package com.hiddenservices.onionservices.appManager.orionAdvertManager;
|
||||
|
||||
class orionAdvertEnums {
|
||||
/*History Manager*/
|
||||
public enum eOrionAdvertClientCallback {
|
||||
M_UPDATE_PROGRESSBAR
|
||||
}
|
||||
|
||||
public enum eOrionAdvertViewController {
|
||||
M_UPDATE_PROGRESSBAR
|
||||
}
|
||||
}
|
|
@ -1,57 +0,0 @@
|
|||
package com.hiddenservices.onionservices.appManager.orionAdvertManager;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.webkit.WebView;
|
||||
import android.widget.ProgressBar;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
import com.example.myapplication.R;
|
||||
import com.hiddenservices.onionservices.eventObserver;
|
||||
import com.hiddenservices.onionservices.helperManager.sharedUIMethod;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class orionAdvertViewController extends AppCompatActivity {
|
||||
|
||||
private WebView mWebView;
|
||||
private AppCompatActivity mContext;
|
||||
private ProgressBar mProgressBar;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_adview_controller);
|
||||
}
|
||||
|
||||
orionAdvertViewController(AppCompatActivity pContext, eventObserver.eventListener pEvent, WebView pGeckoView, ProgressBar pProgressBar) {
|
||||
this.mContext = pContext;
|
||||
this.mWebView = pGeckoView;
|
||||
this.mProgressBar = pProgressBar;
|
||||
|
||||
initViews();
|
||||
}
|
||||
|
||||
private void initViews() {
|
||||
sharedUIMethod.updateStatusBar(mContext);
|
||||
}
|
||||
|
||||
public void onUpdateProgressBar(boolean status) {
|
||||
if (status) {
|
||||
mProgressBar.animate().setDuration(350).alpha(1);
|
||||
} else {
|
||||
mProgressBar.animate().setDuration(350).alpha(0);
|
||||
}
|
||||
}
|
||||
|
||||
public void onTrigger(orionAdvertEnums.eOrionAdvertViewController pCommands, List<Object> pData) {
|
||||
if (pCommands.equals(orionAdvertEnums.eOrionAdvertViewController.M_UPDATE_PROGRESSBAR)) {
|
||||
onUpdateProgressBar((boolean) pData.get(0));
|
||||
}
|
||||
}
|
||||
|
||||
public void onTrigger(orionAdvertEnums.eOrionAdvertViewController pCommands) {
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
package com.hiddenservices.onionservices.appManager.orionAdvertManager;
|
||||
|
||||
import android.graphics.Bitmap;
|
||||
import android.webkit.WebResourceError;
|
||||
import android.webkit.WebResourceRequest;
|
||||
import android.webkit.WebView;
|
||||
|
||||
import com.hiddenservices.onionservices.eventObserver;
|
||||
|
||||
import java.util.Collections;
|
||||
|
||||
public class orionAdvertWebViewClient extends android.webkit.WebViewClient {
|
||||
|
||||
private eventObserver.eventListener mEvent;
|
||||
|
||||
public orionAdvertWebViewClient(eventObserver.eventListener pEvent) {
|
||||
mEvent = pEvent;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPageStarted(WebView view, String url, Bitmap favicon) {
|
||||
mEvent.invokeObserver(Collections.singletonList(true), orionAdvertEnums.eOrionAdvertClientCallback.M_UPDATE_PROGRESSBAR);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
|
||||
mEvent.invokeObserver(Collections.singletonList(false), orionAdvertEnums.eOrionAdvertClientCallback.M_UPDATE_PROGRESSBAR);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPageFinished(WebView view, String url) {
|
||||
mEvent.invokeObserver(Collections.singletonList(false), orionAdvertEnums.eOrionAdvertClientCallback.M_UPDATE_PROGRESSBAR);
|
||||
}
|
||||
|
||||
}
|
|
@ -38,6 +38,7 @@ public class settingAdvanceController extends AppCompatActivity {
|
|||
private settingAdvanceViewController mSettingAdvanceViewController;
|
||||
private SwitchMaterial mRestoreTabs;
|
||||
private SwitchMaterial mShowWebFonts;
|
||||
private SwitchMaterial mBackgroundMusic;
|
||||
private SwitchMaterial mToolbarTheme;
|
||||
|
||||
private ArrayList<RadioButton> mImageOption = new ArrayList<>();
|
||||
|
@ -71,13 +72,15 @@ public class settingAdvanceController extends AppCompatActivity {
|
|||
mRestoreTabs = findViewById(R.id.pRestoreTabs);
|
||||
mShowWebFonts = findViewById(R.id.pShowWebFonts);
|
||||
mToolbarTheme = findViewById(R.id.pToolbarTheme);
|
||||
mBackgroundMusic = findViewById(R.id.pShowBackgroundMusic);
|
||||
|
||||
mImageOption.add(findViewById(R.id.pAdvanceImageOption1));
|
||||
mImageOption.add(findViewById(R.id.pAdvanceImageOption2));
|
||||
mTabLayoutOption.add(findViewById(R.id.pAdvanceGridOption1));
|
||||
mTabLayoutOption.add(findViewById(R.id.pAdvanceGridOption2));
|
||||
|
||||
activityContextManager.getInstance().onStack(this);
|
||||
mSettingAdvanceViewController = new settingAdvanceViewController(this, new settingAdvanceViewCallback(), mRestoreTabs, mShowWebFonts, mToolbarTheme, mImageOption, mTabLayoutOption);
|
||||
mSettingAdvanceViewController = new settingAdvanceViewController(this, new settingAdvanceViewCallback(), mRestoreTabs, mShowWebFonts,mBackgroundMusic, mToolbarTheme, mImageOption, mTabLayoutOption);
|
||||
mSettingAdvanceModel = new settingAdvanceModel(new settingAdvanceModelCallback());
|
||||
}
|
||||
|
||||
|
@ -167,6 +170,13 @@ public class settingAdvanceController extends AppCompatActivity {
|
|||
|
||||
}
|
||||
|
||||
public void onBackgroundSound(View view) {
|
||||
mIsChanged = true;
|
||||
mSettingAdvanceModel.onTrigger(settingAdvanceEnums.eAdvanceModel.M_BACKGROUND_MUSIC, Collections.singletonList(!mBackgroundMusic.isChecked()));
|
||||
mBackgroundMusic.toggle();
|
||||
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_BACKGROUND_MUSIC, status.sBackgroundMusic));
|
||||
}
|
||||
|
||||
public void onGridView(View view) {
|
||||
mSettingAdvanceViewController.onTrigger(settingAdvanceEnums.eAdvanceViewController.M_CLEAR_GRID, Collections.singletonList(null));
|
||||
mSettingAdvanceModel.onTrigger(settingAdvanceEnums.eAdvanceModel.M_SHOW_TAB_GRID, Collections.singletonList(view));
|
||||
|
|
|
@ -3,7 +3,7 @@ package com.hiddenservices.onionservices.appManager.settingManager.advanceManage
|
|||
class settingAdvanceEnums {
|
||||
/*History Manager*/
|
||||
public enum eAdvanceModel {
|
||||
M_RESTORE_TAB, M_SHOW_IMAGE, M_SHOW_TAB_GRID, M_SHOW_WEB_FONTS, M_TOOLBAR_THEME
|
||||
M_RESTORE_TAB, M_SHOW_IMAGE, M_SHOW_TAB_GRID, M_SHOW_WEB_FONTS, M_BACKGROUND_MUSIC, M_TOOLBAR_THEME
|
||||
}
|
||||
|
||||
public enum eAdvanceViewController {
|
||||
|
|
|
@ -47,6 +47,10 @@ class settingAdvanceModel {
|
|||
status.sShowWebFonts = pStatus;
|
||||
}
|
||||
|
||||
private void onBackgroundMusic(boolean pStatus) {
|
||||
status.sBackgroundMusic = pStatus;
|
||||
}
|
||||
|
||||
private void onToolbarThemeChange(boolean pStatus) {
|
||||
status.sToolbarTheme = pStatus;
|
||||
}
|
||||
|
@ -58,7 +62,10 @@ class settingAdvanceModel {
|
|||
onShowImages((View) pData.get(0));
|
||||
} else if (pCommands.equals(settingAdvanceEnums.eAdvanceModel.M_SHOW_WEB_FONTS)) {
|
||||
onShowWebFonts((boolean) pData.get(0));
|
||||
} else if (pCommands.equals(settingAdvanceEnums.eAdvanceModel.M_TOOLBAR_THEME)) {
|
||||
} else if (pCommands.equals(settingAdvanceEnums.eAdvanceModel.M_BACKGROUND_MUSIC)) {
|
||||
onBackgroundMusic((boolean) pData.get(0));
|
||||
}
|
||||
else if (pCommands.equals(settingAdvanceEnums.eAdvanceModel.M_TOOLBAR_THEME)) {
|
||||
onToolbarThemeChange((boolean) pData.get(0));
|
||||
} else if (pCommands.equals(settingAdvanceEnums.eAdvanceModel.M_SHOW_TAB_GRID)) {
|
||||
onShowTabGrid((View) pData.get(0));
|
||||
|
|
|
@ -27,13 +27,16 @@ class settingAdvanceViewController {
|
|||
|
||||
private SwitchMaterial mRestoreTabs;
|
||||
private SwitchMaterial mShowWebFonts;
|
||||
private SwitchMaterial mBackgroundMusic;
|
||||
private SwitchMaterial mToolbarTheme;
|
||||
|
||||
|
||||
private ArrayList<RadioButton> mImageOption;
|
||||
private ArrayList<RadioButton> mTabLayoutOption;
|
||||
|
||||
/*Initializations*/
|
||||
|
||||
settingAdvanceViewController(settingAdvanceController pContext, eventObserver.eventListener pEvent, SwitchMaterial pRestoreTabs, SwitchMaterial pShowWebFonts, SwitchMaterial pToolbarTheme, ArrayList<RadioButton> pImageOption, ArrayList<RadioButton> pTabLayoutOption) {
|
||||
settingAdvanceViewController(settingAdvanceController pContext, eventObserver.eventListener pEvent, SwitchMaterial pRestoreTabs, SwitchMaterial pShowWebFonts,SwitchMaterial pBackgroundMusic, SwitchMaterial pToolbarTheme, ArrayList<RadioButton> pImageOption, ArrayList<RadioButton> pTabLayoutOption) {
|
||||
this.mEvent = pEvent;
|
||||
this.mContext = pContext;
|
||||
this.mRestoreTabs = pRestoreTabs;
|
||||
|
@ -41,6 +44,7 @@ class settingAdvanceViewController {
|
|||
this.mToolbarTheme = pToolbarTheme;
|
||||
this.mImageOption = pImageOption;
|
||||
this.mTabLayoutOption = pTabLayoutOption;
|
||||
this.mBackgroundMusic = pBackgroundMusic;
|
||||
|
||||
initViews();
|
||||
initPostUI();
|
||||
|
@ -59,6 +63,12 @@ class settingAdvanceViewController {
|
|||
mShowWebFonts.setChecked(false);
|
||||
}
|
||||
|
||||
if (status.sBackgroundMusic) {
|
||||
mBackgroundMusic.setChecked(true);
|
||||
} else {
|
||||
mBackgroundMusic.setChecked(false);
|
||||
}
|
||||
|
||||
if (status.sToolbarTheme) {
|
||||
mToolbarTheme.setChecked(true);
|
||||
} else {
|
||||
|
|
|
@ -159,7 +159,7 @@ public class settingClearController extends AppCompatActivity {
|
|||
mCheckBoxList.get(7).setChecked(false);
|
||||
mCheckBoxList.get(7).setButtonTintList(ColorStateList.valueOf(ContextCompat.getColor(this, R.color.c_checkbox_tint_default)));
|
||||
onClearSettings();
|
||||
status.initStatus(activityContextManager.getInstance().getHomeController());
|
||||
status.initStatus(activityContextManager.getInstance().getHomeController(), true);
|
||||
dataController.getInstance().invokeTab(dataEnums.eTabCommands.M_CLEAR_TAB, null);
|
||||
mHomeInvoked = true;
|
||||
mClearInvoked = true;
|
||||
|
@ -217,6 +217,7 @@ public class settingClearController extends AppCompatActivity {
|
|||
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_CHARACTER_ENCODING, false));
|
||||
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_INT, Arrays.asList(keys.SETTING_SHOW_IMAGES, 0));
|
||||
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_SHOW_FONTS, true));
|
||||
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_BACKGROUND_MUSIC, false));
|
||||
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_TOOLBAR_THEME, true));
|
||||
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_FULL_SCREEN_BROWSIING, false));
|
||||
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_INT, Arrays.asList(keys.SETTING_THEME, enums.Theme.THEME_DEFAULT));
|
||||
|
|
|
@ -10,6 +10,7 @@ import android.widget.TextView;
|
|||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.appcompat.app.AppCompatDelegate;
|
||||
import androidx.core.app.NotificationManagerCompat;
|
||||
|
||||
import com.hiddenservices.onionservices.appManager.activityContextManager;
|
||||
import com.hiddenservices.onionservices.appManager.helpManager.helpController;
|
||||
|
@ -177,6 +178,7 @@ public class settingGeneralController extends AppCompatActivity {
|
|||
@Override
|
||||
public void onResume() {
|
||||
activityContextManager.getInstance().onCheckPurgeStack();
|
||||
activityContextManager.getInstance().getHomeController().onKillMedia();
|
||||
if (status.mThemeApplying) {
|
||||
// activityContextManager.getInstance().onStack(this);
|
||||
}
|
||||
|
|
|
@ -94,6 +94,7 @@ public class settingNotificationController extends AppCompatActivity {
|
|||
int notificationStatus = status.sBridgeNotificationManual;
|
||||
if (notificationStatus == 0) {
|
||||
pluginController.getInstance().onOrbotInvoke(null, pluginEnums.eOrbotManager.M_DISABLE_NOTIFICATION);
|
||||
activityContextManager.getInstance().getHomeController().onShowDefaultNotification();
|
||||
} else {
|
||||
pluginController.getInstance().onOrbotInvoke(null, pluginEnums.eOrbotManager.M_ENABLE_NOTIFICATION);
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package com.hiddenservices.onionservices.appManager.settingManager.notificationManager;
|
||||
|
||||
import com.hiddenservices.onionservices.appManager.activityContextManager;
|
||||
import com.hiddenservices.onionservices.constants.status;
|
||||
import com.hiddenservices.onionservices.eventObserver;
|
||||
import com.hiddenservices.onionservices.pluginManager.pluginController;
|
||||
|
@ -26,8 +27,12 @@ class settingNotificationModel {
|
|||
int mStatus = pStatus ? 1 : 0;
|
||||
status.sBridgeNotificationManual = mStatus;
|
||||
if (!pStatus) {
|
||||
activityContextManager.getInstance().getHomeController().onShowDefaultNotification();
|
||||
pluginController.getInstance().onOrbotInvoke(null, pluginEnums.eOrbotManager.M_DISABLE_NOTIFICATION);
|
||||
} else {
|
||||
if(status.sTorBrowsing){
|
||||
activityContextManager.getInstance().getHomeController().onHideDefaultNotification();
|
||||
}
|
||||
pluginController.getInstance().onOrbotInvoke(null, pluginEnums.eOrbotManager.M_ENABLE_NOTIFICATION);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -357,7 +357,6 @@ public class tabController extends Fragment {
|
|||
alpha = 0.35f;
|
||||
}
|
||||
viewHolder.itemView.setAlpha(alpha);
|
||||
|
||||
Canvas mCanvas = (Canvas) mtabViewController.onTrigger(tabEnums.eTabViewCommands.ON_GENERATE_SWIPABLE_BACKGROUND, Arrays.asList(c, viewHolder, dX, actionState));
|
||||
super.onChildDraw(mCanvas, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive);
|
||||
}
|
||||
|
|
|
@ -50,6 +50,7 @@ public class constants {
|
|||
public static final String CONST_BACKEND_GENESIS_URL = "http://167.86.99.31/search?q=$s&p_num=1&s_type=all";
|
||||
public static final String CONST_BACKEND_GOOGLE_URL = "https://www.google.com/search?q=$s";
|
||||
public static final String CONST_BACKEND_DUCK_DUCK_GO_URL = "https://duckduckgo.com?q=$s&ia=web";
|
||||
public static final String CONST_BACKEND_DUCK_DUCK_GO_STATIC_URL = "http://duckduckgo.com";
|
||||
public static final String CONST_BACKEND_BING_URL = "https://bing.com/search?q=$s";
|
||||
public static final String CONST_BACKEND_WIKI_URL = "https://en.wikipedia.org/wiki/$s";
|
||||
public static final String CONST_LOG_DUCKDUCK = "https://duckduckgo.com/?q=tor";
|
||||
|
@ -91,10 +92,10 @@ public class constants {
|
|||
|
||||
public static final String CONST_LANGUAGE_DEFAULT_LANG = "default";
|
||||
|
||||
/*DOWNLOAD CONSTANTS*/
|
||||
/*Notification CONSTANTS*/
|
||||
|
||||
public static final String CONST_DOWNLOAD_COMMAND = "N_COMMAND";
|
||||
public static final String CONST_DOWNLOAD_INTENT_KEY = "N_ID";
|
||||
public static final String CONST_NOTIFICATION_COMMAND = "N_COMMAND";
|
||||
public static final String CONST_NOTIFICATION_INTENT_KEY = "N_ID";
|
||||
|
||||
/*Helper CONSTANTS*/
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@ public class keys {
|
|||
public static final String SETTING_POPUP = "POPUP_V1";
|
||||
public static final String SETTING_HISTORY_CLEAR = "HISTORY_CLEAR_V1";
|
||||
public static final String SETTING_GATEWAY = "pref_bridges_enabled_auto_V1";
|
||||
public static final String SETTING_TOR_BROWSING = "pref_tor_browsing_V1";
|
||||
public static final String SETTING_TOR_BROWSING = "pref_tor_browsing_V2";
|
||||
public static final String SETTING_GATEWAY_MANUAL = "pref_bridges_enabled_manual_V1";
|
||||
public static final String SETTING_IS_BOOTSTRAPPED = "IS_BOOTSTRAPPED_V1";
|
||||
public static final String SETTING_IS_WELCOME_ENABLED = "IS_WELCOME_ENABLED_V1";
|
||||
|
@ -49,13 +49,14 @@ public class keys {
|
|||
public static final String SETTING_ZOOM = "SETTING_ZOOM_V1";
|
||||
public static final String SETTING_VOICE_INPUT = "SETTING_VOICE_INPUT_V1";
|
||||
public static final String SETTING_TRACKING_PROTECTION = "SETTING_TRACKING_PROTECTION_V1";
|
||||
public static final String SETTING_RATE_COUNT = "SETTING_RATE_COUNT_V1";
|
||||
public static final String SETTING_RATE_COUNT = "SETTING_RATE_COUNT_V3";
|
||||
public static final String SETTING_DONOT_TRACK = "SETTING_DONOT_TRACK_V1";
|
||||
public static final String SETTING_RESTORE_TAB = "SETTING_RESTORE_TAB_V1";
|
||||
public static final String SETTING_CHARACTER_ENCODING = "SETTING_CHARACTER_ENCODING_V1";
|
||||
public static final String SETTING_SHOW_IMAGES = "SETTING_SHOW_IMAGES_V1";
|
||||
public static final String SETTING_SHOW_TAB_GRID = "SETTING_SHOW_TAB_GRID_V1";
|
||||
public static final String SETTING_SHOW_FONTS = "SETTING_SHOW_FONTS_V1";
|
||||
public static final String SETTING_BACKGROUND_MUSIC = "SETTING_BACKGROUND_MUSIC_V1";
|
||||
public static final String SETTING_TOOLBAR_THEME = "SETTING_TOOLBAR_THEME_V1";
|
||||
public static final String SETTING_THEME = "SETTING_THEME_LIGHT_V1";
|
||||
public static final String SETTING_FULL_SCREEN_BROWSIING = "SETTING_FULL_SCREEN_BROWSIING_V2";
|
||||
|
|
|
@ -33,8 +33,11 @@ public class status {
|
|||
public static String sVersion = "";
|
||||
public static String sExternalWebsite = strings.GENERIC_EMPTY_STR;
|
||||
public static String sBridgesDefault = strings.BRIDGES_DEFAULT;
|
||||
public static String sAdvertURL = strings.GENERIC_EMPTY_STR;
|
||||
|
||||
public static boolean sIsBackgroundAdvertCheck = false;
|
||||
public static boolean sTorBrowsing = false;
|
||||
public static boolean sNoTorTriggered = false;
|
||||
public static boolean sExternalWebsiteLoading = false;
|
||||
public static boolean sUIInteracted = false;
|
||||
public static boolean sSettingEnableZoom = true;
|
||||
|
@ -60,6 +63,7 @@ public class status {
|
|||
public static boolean sRestoreTabs = false;
|
||||
public static boolean sCharacterEncoding = false;
|
||||
public static boolean sShowWebFonts = true;
|
||||
public static boolean sBackgroundMusic = false;
|
||||
public static boolean sToolbarTheme = false;
|
||||
public static boolean sFullScreenBrowsing = false;
|
||||
public static boolean sOpenURLInNewTab = true;
|
||||
|
@ -93,7 +97,7 @@ public class status {
|
|||
}
|
||||
}
|
||||
|
||||
public static void initStatus(Context pContext) {
|
||||
public static void initStatus(Context pContext, boolean reinit) {
|
||||
versionVerifier(pContext);
|
||||
|
||||
status.sUIInteracted = false;
|
||||
|
@ -119,7 +123,6 @@ public class status {
|
|||
status.sSettingLanguage = (String) dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_STRING, Arrays.asList(keys.SETTING_LANGUAGE, strings.SETTING_DEFAULT_LANGUAGE));
|
||||
status.sReferenceWebsites = (String) dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_STRING, Arrays.asList(keys.HOME_REFERENCE_WEBSITES, strings.HOME_REFERENCE_WEBSITES_DEFAULT));
|
||||
status.sSettingLanguageRegion = (String) dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_STRING, Arrays.asList(keys.SETTING_LANGUAGE_REGION, strings.SETTING_DEFAULT_LANGUAGE_REGION));
|
||||
status.sSettingDefaultSearchEngine = (String) dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_STRING, Arrays.asList(keys.SETTING_SEARCH_ENGINE, constants.CONST_BACKEND_GENESIS_URL));
|
||||
status.sBridgeCustomBridge = (String) dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_STRING, Arrays.asList(keys.BRIDGE_CUSTOM_BRIDGE_1, strings.BRIDGE_CUSTOM_BRIDGE_OBFS4));
|
||||
status.sBridgeCustomType = (String) dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_STRING, Arrays.asList(keys.BRIDGE_CUSTOM_TYPE, strings.GENERIC_EMPTY_SPACE));
|
||||
status.sBridgesDefault = (String) dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_STRING, Arrays.asList(keys.BRIDGE_DEFAULT, strings.BRIDGES_DEFAULT));
|
||||
|
@ -128,6 +131,7 @@ public class status {
|
|||
status.sCharacterEncoding = (boolean) dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_BOOL, Arrays.asList(keys.SETTING_CHARACTER_ENCODING, false));
|
||||
status.sShowImages = (int) dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_INT, Arrays.asList(keys.SETTING_SHOW_IMAGES, 0));
|
||||
status.sShowWebFonts = (boolean) dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_BOOL, Arrays.asList(keys.SETTING_SHOW_FONTS, true));
|
||||
status.sBackgroundMusic = (boolean) dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_BOOL, Arrays.asList(keys.SETTING_BACKGROUND_MUSIC, false));
|
||||
status.sFullScreenBrowsing = (boolean) dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_BOOL, Arrays.asList(keys.SETTING_FULL_SCREEN_BROWSIING, false));
|
||||
status.sToolbarTheme = (boolean) dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_BOOL, Arrays.asList(keys.SETTING_TOOLBAR_THEME, true));
|
||||
status.sTheme = (int) dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_INT, Arrays.asList(keys.SETTING_THEME, enums.Theme.THEME_DEFAULT));
|
||||
|
@ -136,7 +140,11 @@ public class status {
|
|||
status.sTabGridLayoutEnabled = (boolean) dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_BOOL, Arrays.asList(keys.SETTING_SHOW_TAB_GRID, true));
|
||||
status.sGlobalURLCount = (int) dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_INT, Arrays.asList(keys.SETTING_RATE_COUNT, 0));
|
||||
status.sAppInstalled = (boolean) dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_BOOL, Arrays.asList(keys.SETTING_INSTALLED, false));
|
||||
|
||||
if (!reinit && !status.sNoTorTriggered){
|
||||
status.sTorBrowsing = (boolean) dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_BOOL, Arrays.asList(keys.SETTING_TOR_BROWSING, true));
|
||||
status.sSettingDefaultSearchEngine = (String) dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_STRING, Arrays.asList(keys.SETTING_SEARCH_ENGINE, constants.CONST_BACKEND_GENESIS_URL));
|
||||
}
|
||||
|
||||
if (status.sGlobalURLCount <= 10 && status.sGlobalURLCount >= 8) {
|
||||
status.sGlobalURLCount = 6;
|
||||
|
|
|
@ -13,6 +13,7 @@ import com.hiddenservices.onionservices.constants.status;
|
|||
import com.hiddenservices.onionservices.eventObserver;
|
||||
|
||||
import org.mozilla.geckoview.ContentBlocking;
|
||||
import org.torproject.android.service.wrapper.orbotLocalConstants;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
|
@ -215,6 +216,7 @@ public class dataController {
|
|||
public void clearData(AppCompatActivity mContext) {
|
||||
dataController.getInstance().initialize(mContext);
|
||||
status.sSettingIsAppStarted = false;
|
||||
orbotLocalConstants.mAppStarted = false;
|
||||
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_JAVA_SCRIPT, true));
|
||||
|
@ -241,6 +243,7 @@ public class dataController {
|
|||
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_CHARACTER_ENCODING, false));
|
||||
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_INT, Arrays.asList(keys.SETTING_SHOW_IMAGES, 0));
|
||||
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_SHOW_FONTS, true));
|
||||
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_BACKGROUND_MUSIC, false));
|
||||
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_TOOLBAR_THEME, true));
|
||||
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_FULL_SCREEN_BROWSIING, false));
|
||||
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_INT, Arrays.asList(keys.SETTING_THEME, enums.Theme.THEME_DEFAULT));
|
||||
|
@ -257,7 +260,7 @@ public class dataController {
|
|||
invokeSQLCipher(dataEnums.eSqlCipherCommands.M_EXEC_SQL, Arrays.asList(SQL_CLEAR_BOOKMARK, null));
|
||||
invokeSQLCipher(dataEnums.eSqlCipherCommands.M_EXEC_SQL, Arrays.asList(SQL_CLEAR_TAB, null));
|
||||
|
||||
status.initStatus(mContext);
|
||||
status.initStatus(mContext, false);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -229,6 +229,8 @@ public class suggestionDataModel implements SpellCheckerSession.SpellCheckerSess
|
|||
if (mCurrentList.size() <= 0) {
|
||||
if (status.sTorBrowsing) {
|
||||
mCurrentList.add(mSize, new historyRowModel("Orion Search", "orion.onion", -1));
|
||||
}else {
|
||||
mCurrentList.add(mSize, new historyRowModel("Duckduckgo", "https://duckduckgo.com", -1));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,23 +1,30 @@
|
|||
package com.hiddenservices.onionservices.pluginManager.adPluginManager;
|
||||
|
||||
import static android.content.Intent.FLAG_ACTIVITY_NO_ANIMATION;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Handler;
|
||||
import android.util.Log;
|
||||
import com.adcolony.sdk.AdColony;
|
||||
import com.adcolony.sdk.AdColonyAppOptions;
|
||||
import com.applovin.mediation.MaxAd;
|
||||
import com.applovin.mediation.MaxAdViewAdListener;
|
||||
import com.applovin.mediation.MaxError;
|
||||
import com.applovin.mediation.adapters.AdColonyMediationAdapter;
|
||||
import com.applovin.mediation.ads.MaxAdView;
|
||||
import com.applovin.sdk.AppLovinSdk;
|
||||
import com.applovin.sdk.AppLovinSdkConfiguration;
|
||||
import com.example.myapplication.R;
|
||||
import com.facebook.ads.AdSettings;
|
||||
import com.hiddenservices.onionservices.appManager.activityContextManager;
|
||||
import com.hiddenservices.onionservices.appManager.advertManager.advertController;
|
||||
import com.hiddenservices.onionservices.constants.keys;
|
||||
import com.hiddenservices.onionservices.constants.status;
|
||||
import com.hiddenservices.onionservices.eventObserver;
|
||||
import com.hiddenservices.onionservices.pluginManager.pluginEnums;
|
||||
import java.lang.ref.WeakReference;
|
||||
import static com.hiddenservices.onionservices.pluginManager.pluginEnums.eAdManagerCallbacks.M_ON_AD_LOAD;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
public class appLovinManager implements MaxAdViewAdListener {
|
||||
/*Private Variables */
|
||||
|
||||
|
@ -27,6 +34,7 @@ public class appLovinManager implements MaxAdViewAdListener {
|
|||
private int mRequestCount = 0;
|
||||
private boolean bannerAdRequested = false;
|
||||
private boolean bannerAdsLoaded = false;
|
||||
private Context mContext = null;
|
||||
|
||||
/*Initializations*/
|
||||
|
||||
|
@ -34,17 +42,13 @@ public class appLovinManager implements MaxAdViewAdListener {
|
|||
this.mEvent = pEvent;
|
||||
this.mBannerAds = new WeakReference(pBannerAds);
|
||||
initializeBannerAds(pContext);
|
||||
mContext = pContext;
|
||||
}
|
||||
|
||||
private void initializeBannerAds(Context pContext) {
|
||||
AdSettings.setDataProcessingOptions(new String[]{});
|
||||
AdColonyAppOptions appOptions = new AdColonyAppOptions();
|
||||
appOptions.setPrivacyFrameworkRequired(AdColonyAppOptions.GDPR, true);
|
||||
appOptions.setPrivacyConsentString(AdColonyAppOptions.GDPR, "1");
|
||||
AdColony.configure(activityContextManager.getInstance().getHomeController(), appOptions,"app3b56c67c45544c5c89");
|
||||
|
||||
AppLovinSdk.getInstance(pContext).setMediationProvider("max");
|
||||
AppLovinSdk.initializeSdk(pContext, configuration -> {
|
||||
AppLovinSdk.initializeSdk(pContext,(AppLovinSdk.SdkInitializationListener) configuration -> {
|
||||
mBannerAds.get().loadAd();
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -53,7 +57,6 @@ public class appLovinManager implements MaxAdViewAdListener {
|
|||
private void loadAds() {
|
||||
if (!bannerAdRequested) {
|
||||
bannerAdRequested = true;
|
||||
mBannerAds.get().loadAd();
|
||||
mBannerAds.get().setListener(this);
|
||||
}
|
||||
}
|
||||
|
@ -66,12 +69,10 @@ public class appLovinManager implements MaxAdViewAdListener {
|
|||
|
||||
@Override
|
||||
public void onAdExpanded(MaxAd ad) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAdCollapsed(MaxAd ad) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -92,7 +93,11 @@ public class appLovinManager implements MaxAdViewAdListener {
|
|||
|
||||
@Override
|
||||
public void onAdClicked(MaxAd ad) {
|
||||
|
||||
status.sIsBackgroundAdvertCheck = true;
|
||||
new Handler().postDelayed(() ->
|
||||
{
|
||||
status.sIsBackgroundAdvertCheck = false;
|
||||
}, 5000);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -1,109 +0,0 @@
|
|||
package com.hiddenservices.onionservices.pluginManager.adPluginManager;
|
||||
|
||||
import static com.hiddenservices.onionservices.pluginManager.pluginEnums.eAdManagerCallbacks.M_ON_AD_LOAD;
|
||||
import static org.mozilla.gecko.util.ThreadUtils.runOnUiThread;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.BitmapFactory;
|
||||
import android.graphics.drawable.BitmapDrawable;
|
||||
import android.view.View;
|
||||
|
||||
import com.applovin.mediation.ads.MaxAdView;
|
||||
import com.hiddenservices.onionservices.eventObserver;
|
||||
import com.hiddenservices.onionservices.pluginManager.pluginEnums;
|
||||
|
||||
import org.torproject.android.service.wrapper.orbotLocalConstants;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.net.Proxy;
|
||||
import java.net.URL;
|
||||
|
||||
public class orionAdvertManager {
|
||||
/*Private Variables */
|
||||
|
||||
private eventObserver.eventListener mEvent;
|
||||
private WeakReference<MaxAdView> mBannerAds;
|
||||
|
||||
private boolean bannerAdsLoaded = false;
|
||||
private boolean bannerAdRequested = false;
|
||||
|
||||
/*Initializations*/
|
||||
|
||||
public orionAdvertManager(eventObserver.eventListener pEvent, MaxAdView pBannerAds, Context pContext) {
|
||||
this.mEvent = pEvent;
|
||||
this.mBannerAds = new WeakReference(pBannerAds);
|
||||
|
||||
new Thread() {
|
||||
public void run() {
|
||||
while (true) {
|
||||
try {
|
||||
sleep(10000);
|
||||
initializeBannerAds(pContext);
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}.start();
|
||||
|
||||
|
||||
initializeBannerAds(pContext);
|
||||
}
|
||||
|
||||
private void initializeBannerAds(Context pContext) {
|
||||
try {
|
||||
if (orbotLocalConstants.mSOCKSPort != -1) {
|
||||
URL url = new URL("http://167.86.99.31/fetch_advert/");
|
||||
Proxy proxy;
|
||||
HttpURLConnection mHttpConnection;
|
||||
proxy = new Proxy(Proxy.Type.SOCKS, InetSocketAddress.createUnresolved("127.0.0.1", orbotLocalConstants.mSOCKSPort));
|
||||
mHttpConnection = (HttpURLConnection) url.openConnection(proxy);
|
||||
mHttpConnection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; rv:60.0) Gecko/20100101 Firefox/60.0");
|
||||
mHttpConnection.setRequestProperty("Accept", "*/*");
|
||||
mHttpConnection.connect();
|
||||
InputStream input = mHttpConnection.getInputStream();
|
||||
Bitmap mBitmap = BitmapFactory.decodeStream(input);
|
||||
BitmapDrawable mDrawable = new BitmapDrawable(pContext.getResources(), mBitmap);
|
||||
runOnUiThread(() -> {
|
||||
this.mBannerAds.get().setAlpha(0);
|
||||
this.mBannerAds.get().setVisibility(View.GONE);
|
||||
this.mBannerAds.get().setBackground(mDrawable);
|
||||
this.bannerAdsLoaded = true;
|
||||
mEvent.invokeObserver(null, M_ON_AD_LOAD);
|
||||
});
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
/*Local Helper Methods*/
|
||||
|
||||
private void loadAds() {
|
||||
if (!bannerAdRequested) {
|
||||
bannerAdRequested = true;
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isAdvertLoaded() {
|
||||
return bannerAdsLoaded;
|
||||
}
|
||||
|
||||
|
||||
/*External Triggers*/
|
||||
|
||||
public Object onTrigger(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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -171,12 +171,11 @@ public class downloadReciever extends AsyncTask<String, Integer, String> {
|
|||
String urlEncoded = Uri.encode(f_url[0], ALLOWED_URI_CHARS);
|
||||
StrongHttpsClient httpclient = new StrongHttpsClient(mContext.get());
|
||||
|
||||
if (orbotLocalConstants.mSOCKSPort != -1) {
|
||||
|
||||
if (helperMethod.getDomainName(f_url[0]).contains(".onion")) {
|
||||
httpclient.useProxy(true, "SOCKS", "127.0.0.1", orbotLocalConstants.mSOCKSPort);
|
||||
} else {
|
||||
httpclient.useProxy(true, "SOCKS", "127.0.0.1", orbotLocalConstants.mSOCKSPort);
|
||||
}
|
||||
httpclient.useProxy(false, "SOCKS", "127.0.0.1", orbotLocalConstants.mSOCKSPort);
|
||||
}
|
||||
|
||||
HttpGet httpget = new HttpGet(urlEncoded);
|
||||
|
@ -197,7 +196,6 @@ public class downloadReciever extends AsyncTask<String, Integer, String> {
|
|||
return null;
|
||||
}
|
||||
|
||||
@SuppressLint({"UnspecifiedImmutableFlag", "LaunchActivityFromNotification"})
|
||||
@Override
|
||||
protected void onPostExecute(String file_url) {
|
||||
|
||||
|
@ -293,7 +291,6 @@ public class downloadReciever extends AsyncTask<String, Integer, String> {
|
|||
}
|
||||
mTotalReadCount += mCurrentReadCount;
|
||||
int cur = (int) ((mTotalReadCount * 100) / pLengthOfFile);
|
||||
mDownloadByte = cur;
|
||||
if (pLengthOfFile < 0) {
|
||||
cur = (int) mTotalReadCount;
|
||||
mDownloadByte = mTotalReadCount * -1;
|
||||
|
@ -308,13 +305,14 @@ public class downloadReciever extends AsyncTask<String, Integer, String> {
|
|||
pOutputStream.write(mData, 0, mCurrentReadCount);
|
||||
}
|
||||
|
||||
mNotificationBuilder.setContentText("saving file");
|
||||
mNotificationBuilder.setSmallIcon(android.R.drawable.stat_sys_download);
|
||||
mNotifyManager.notify(mNotificationID, mNotificationBuilder.build());
|
||||
//mNotificationBuilder.setContentText("saving file");
|
||||
//mNotificationBuilder.setSmallIcon(android.R.drawable.stat_sys_download);
|
||||
//mNotifyManager.notify(mNotificationID, mNotificationBuilder.build());
|
||||
|
||||
pOutputStream.flush();
|
||||
pOutputStream.close();
|
||||
pInputStream.close();
|
||||
//pOutputStream.flush();
|
||||
//pOutputStream.close();
|
||||
//pInputStream.close();
|
||||
onPostExecute("");
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -26,12 +26,14 @@ import android.widget.TextView;
|
|||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
|
||||
import com.hiddenservices.onionservices.appManager.homeManager.homeController.homeController;
|
||||
import com.hiddenservices.onionservices.constants.constants;
|
||||
import com.hiddenservices.onionservices.constants.enums;
|
||||
import com.hiddenservices.onionservices.constants.status;
|
||||
import com.hiddenservices.onionservices.constants.strings;
|
||||
import com.hiddenservices.onionservices.eventObserver;
|
||||
import com.hiddenservices.onionservices.helperManager.helperMethod;
|
||||
import com.hiddenservices.onionservices.pluginManager.pluginController;
|
||||
import com.hiddenservices.onionservices.pluginManager.pluginEnums;
|
||||
import com.example.myapplication.R;
|
||||
import com.google.android.material.switchmaterial.SwitchMaterial;
|
||||
|
@ -176,6 +178,18 @@ public class messageManager implements View.OnClickListener, DialogInterface.OnD
|
|||
mDialog.setOnDismissListener(this);
|
||||
}
|
||||
|
||||
private void onDefaultBrowser() {
|
||||
initializeDialog(R.layout.popup_default_browser, Gravity.CENTER);
|
||||
|
||||
Button mDismiss = mDialog.findViewById(R.id.pPopupDefaultBrowserDismiss);
|
||||
Button mNext = mDialog.findViewById(R.id.pPopupDefaultBrowserNext);
|
||||
|
||||
mDismiss.setOnClickListener(this);
|
||||
mNext.setOnClickListener(this);
|
||||
mDialog.setCancelable(false);
|
||||
mDialog.setOnDismissListener(this);
|
||||
}
|
||||
|
||||
private void openSecurityInfo() {
|
||||
String mInfo = mData.get(0).toString();
|
||||
initializeDialog(R.layout.certificate_info, Gravity.TOP);
|
||||
|
@ -483,6 +497,7 @@ public class messageManager implements View.OnClickListener, DialogInterface.OnD
|
|||
view.getId() == R.id.pPopupLongPressDismiss ||
|
||||
view.getId() == R.id.pPopupRateusClose ||
|
||||
view.getId() == R.id.pCertificateDesciption ||
|
||||
view.getId() == R.id.pPopupDefaultBrowserDismiss ||
|
||||
view.getId() == R.id.pCertificateRootBackground
|
||||
) {
|
||||
onDismiss();
|
||||
|
@ -500,6 +515,11 @@ public class messageManager implements View.OnClickListener, DialogInterface.OnD
|
|||
} else if (view.getId() == R.id.pTorSwtichPopupNext) {
|
||||
onDismiss();
|
||||
mEvent.invokeObserver(null, M_TOR_SWITCH_RESTART);
|
||||
} else if (view.getId() == R.id.pPopupDefaultBrowserNext) {
|
||||
onDismiss();
|
||||
if (helperMethod.isDefaultBrowserSet(mContext)) {
|
||||
helperMethod.openDefaultBrowser(mContext);
|
||||
}
|
||||
} else if (view.getId() == R.id.pPopupCreateBookmarkDismiss) {
|
||||
onDismiss();
|
||||
helperMethod.hideKeyboard(mContext);
|
||||
|
@ -771,6 +791,11 @@ public class messageManager implements View.OnClickListener, DialogInterface.OnD
|
|||
onPanic();
|
||||
break;
|
||||
|
||||
case M_DEFAULT_BROWSER:
|
||||
/*VERIFIED*/
|
||||
onDefaultBrowser();
|
||||
break;
|
||||
|
||||
case M_SECURE_CONNECTION:
|
||||
/*VERIFIED*/
|
||||
openSecureConnectionPopup();
|
||||
|
|
|
@ -19,7 +19,6 @@ import com.hiddenservices.onionservices.dataManager.dataEnums;
|
|||
import com.hiddenservices.onionservices.eventObserver;
|
||||
import com.hiddenservices.onionservices.helperManager.helperMethod;
|
||||
import com.hiddenservices.onionservices.pluginManager.adPluginManager.appLovinManager;
|
||||
import com.hiddenservices.onionservices.pluginManager.adPluginManager.orionAdvertManager;
|
||||
import com.hiddenservices.onionservices.pluginManager.analyticPluginManager.analyticManager;
|
||||
import com.hiddenservices.onionservices.pluginManager.downloadPluginManager.downloadManager;
|
||||
import com.hiddenservices.onionservices.pluginManager.langPluginManager.langManager;
|
||||
|
@ -49,7 +48,6 @@ public class pluginController {
|
|||
/*Plugin Instance*/
|
||||
|
||||
private appLovinManager mAdManager;
|
||||
private orionAdvertManager mOrionAdvertManager;
|
||||
private analyticManager mAnalyticsManager;
|
||||
private messageManager mMessageManager;
|
||||
private notifictionManager mNotificationManager;
|
||||
|
|
|
@ -26,7 +26,7 @@ public class pluginEnums {
|
|||
|
||||
/*Message Manager*/
|
||||
public enum eMessageManager {
|
||||
M_RESET, M_DATA_CLEARED, M_COPY, M_APPLICATION_CRASH, M_DELETE_BOOKMARK, M_UPDATE_BOOKMARK, M_IMAGE_UPDATE, M_OPEN_ACTIVITY_FAILED, M_OPEN_CICADA, M_TOR_SWITCH, 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_TOR_SWITCH_RESTART, M_RATE_SUCCESS, M_RATE_FAILURE, M_CLOSE, M_LANGUAGE_SUPPORT_FAILURE, M_WELCOME
|
||||
M_RESET, M_DATA_CLEARED, M_COPY, M_APPLICATION_CRASH, M_DELETE_BOOKMARK, M_UPDATE_BOOKMARK, M_IMAGE_UPDATE, M_OPEN_ACTIVITY_FAILED, M_OPEN_CICADA, M_TOR_SWITCH, 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_DEFAULT_BROWSER, M_TOR_SWITCH_RESTART, M_RATE_SUCCESS, M_RATE_FAILURE, M_CLOSE, M_LANGUAGE_SUPPORT_FAILURE, M_WELCOME
|
||||
}
|
||||
|
||||
public enum eMessageManagerCallbacks {
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
package com.hiddenservices.onionservices.pluginManager.pluginReciever;
|
||||
|
||||
import static com.hiddenservices.onionservices.constants.constants.CONST_NOTIFICATION_COMMAND;
|
||||
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
|
||||
import com.hiddenservices.onionservices.appManager.activityContextManager;
|
||||
|
||||
public class defaultNotificationReciever extends BroadcastReceiver {
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
int mCommand = intent.getExtras().getInt(CONST_NOTIFICATION_COMMAND);
|
||||
if (mCommand == 0) {
|
||||
activityContextManager.getInstance().getHomeController().resetAndRestart();
|
||||
} else if (mCommand == 1) {
|
||||
activityContextManager.getInstance().getHomeController().onCloseApplication();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -13,13 +13,13 @@ import java.util.Collections;
|
|||
|
||||
public class downloadNotificationReciever extends BroadcastReceiver {
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
int mCommand = intent.getExtras().getInt(CONST_DOWNLOAD_COMMAND);
|
||||
int mCommand = intent.getExtras().getInt(CONST_NOTIFICATION_COMMAND);
|
||||
if (mCommand == 1) {
|
||||
pluginController.getInstance().onDownloadInvoke(Collections.singletonList(intent.getExtras().getInt(CONST_DOWNLOAD_INTENT_KEY)), pluginEnums.eDownloadManager.M_URL_DOWNLOAD_REQUEST);
|
||||
pluginController.getInstance().onDownloadInvoke(Collections.singletonList(intent.getExtras().getInt(CONST_NOTIFICATION_INTENT_KEY)), pluginEnums.eDownloadManager.M_URL_DOWNLOAD_REQUEST);
|
||||
} else if (mCommand == 0 || mCommand == 2) {
|
||||
pluginController.getInstance().onDownloadInvoke(Collections.singletonList(intent.getExtras().getInt(CONST_DOWNLOAD_INTENT_KEY)), pluginEnums.eDownloadManager.M_CANCEL_DOWNLOAD);
|
||||
pluginController.getInstance().onDownloadInvoke(Collections.singletonList(intent.getExtras().getInt(CONST_NOTIFICATION_INTENT_KEY)), pluginEnums.eDownloadManager.M_CANCEL_DOWNLOAD);
|
||||
} else if (mCommand == 3) {
|
||||
pluginController.getInstance().onDownloadInvoke(Collections.singletonList(intent.getExtras().getInt(CONST_DOWNLOAD_INTENT_KEY)), pluginEnums.eDownloadManager.M_CANCEL_DOWNLOAD);
|
||||
pluginController.getInstance().onDownloadInvoke(Collections.singletonList(intent.getExtras().getInt(CONST_NOTIFICATION_INTENT_KEY)), pluginEnums.eDownloadManager.M_CANCEL_DOWNLOAD);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
package com.hiddenservices.onionservices.pluginManager.pluginReciever;
|
||||
|
||||
import static com.hiddenservices.onionservices.constants.constants.CONST_NOTIFICATION_COMMAND;
|
||||
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
|
||||
import com.hiddenservices.onionservices.appManager.activityContextManager;
|
||||
|
||||
public class mediaNotificationReciever extends BroadcastReceiver {
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
int mCommand = intent.getExtras().getInt(CONST_NOTIFICATION_COMMAND);
|
||||
if (mCommand == 0) {
|
||||
activityContextManager.getInstance().getHomeController().onPlayMedia();
|
||||
} else if (mCommand == 1) {
|
||||
activityContextManager.getInstance().getHomeController().onPauseMedia();
|
||||
} else if (mCommand == 2) {
|
||||
activityContextManager.getInstance().getHomeController().onSkipForwardMedia();
|
||||
} else if (mCommand == 3) {
|
||||
activityContextManager.getInstance().getHomeController().onSkipBackwardMedia();
|
||||
}
|
||||
}
|
||||
}
|
Binary file not shown.
After Width: | Height: | Size: 2.6 KiB |
Binary file not shown.
After Width: | Height: | Size: 3.8 KiB |
|
@ -0,0 +1,5 @@
|
|||
<vector android:height="24dp" android:tint="#fff"
|
||||
android:viewportHeight="24" android:viewportWidth="24"
|
||||
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="@android:color/white" android:pathData="M4,18l8.5,-6L4,6v12zM13,6v12l8.5,-6L13,6z"/>
|
||||
</vector>
|
|
@ -0,0 +1,5 @@
|
|||
<vector android:height="24dp" android:tint="#fff"
|
||||
android:viewportHeight="24" android:viewportWidth="24"
|
||||
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="@android:color/white" android:pathData="M11,18L11,6l-8.5,6 8.5,6zM11.5,12l8.5,6L20,6l-8.5,6z"/>
|
||||
</vector>
|
|
@ -0,0 +1,5 @@
|
|||
<vector android:height="24dp" android:tint="#fff"
|
||||
android:viewportHeight="24" android:viewportWidth="24"
|
||||
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="@android:color/background_dark" android:pathData="M6,19h4L10,5L6,5v14zM14,5v14h4L18,5h-4z"/>
|
||||
</vector>
|
|
@ -0,0 +1,5 @@
|
|||
<vector android:height="24dp" android:tint="#fff"
|
||||
android:viewportHeight="24" android:viewportWidth="24"
|
||||
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="@android:color/background_dark" android:pathData="M8,5v14l11,-7z"/>
|
||||
</vector>
|
|
@ -0,0 +1,5 @@
|
|||
<vector android:height="24dp" android:tint="#fff"
|
||||
android:viewportHeight="24" android:viewportWidth="24"
|
||||
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="@android:color/white" android:pathData="M6,18l8.5,-6L6,6v12zM16,6v12h2V6h-2z"/>
|
||||
</vector>
|
|
@ -0,0 +1,5 @@
|
|||
<vector android:height="24dp" android:tint="#fff"
|
||||
android:viewportHeight="24" android:viewportWidth="24"
|
||||
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="@android:color/white" android:pathData="M6,6h2v12L6,18zM9.5,12l8.5,6L18,6z"/>
|
||||
</vector>
|
|
@ -0,0 +1,5 @@
|
|||
<vector android:height="24dp" android:tint="@color/c_header_icon_tint"
|
||||
android:viewportHeight="24" android:viewportWidth="24"
|
||||
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="@android:color/white" android:pathData="M6,6h12v12H6z"/>
|
||||
</vector>
|
|
@ -0,0 +1,5 @@
|
|||
<vector android:height="24dp" android:tint="#7591bd"
|
||||
android:viewportHeight="24" android:viewportWidth="24"
|
||||
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="@android:color/white" android:pathData="M4,6L2,6v14c0,1.1 0.9,2 2,2h14v-2L4,20L4,6zM20,2L8,2c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h12c1.1,0 2,-0.9 2,-2L22,4c0,-1.1 -0.9,-2 -2,-2zM12,14.5v-9l6,4.5 -6,4.5z"/>
|
||||
</vector>
|
|
@ -0,0 +1,92 @@
|
|||
<?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">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/pBridgeSettingCustomLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="170dp"
|
||||
android:background="@xml/ax_round_corner"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0.5"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/pBridgeSettingCustomHeader"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="30dp"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_marginTop="18dp"
|
||||
android:alpha="1"
|
||||
android:background="@xml/ax_border_left"
|
||||
android:lineSpacingExtra="3.5dp"
|
||||
android:textStyle="bold"
|
||||
android:gravity="start"
|
||||
android:paddingStart="15dp"
|
||||
android:paddingEnd="15dp"
|
||||
android:text="DEFAULT BROWSER"
|
||||
android:textAlignment="textStart"
|
||||
android:textColor="@color/c_text_v10"
|
||||
android:textSize="17sp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:ignore="SmallSp,TextContrastCheck" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/pBridgeSettingCustomDescription"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="8dp"
|
||||
android:alpha="0.8"
|
||||
android:lineSpacingExtra="3.5dp"
|
||||
android:paddingStart="15dp"
|
||||
android:paddingEnd="15dp"
|
||||
android:text="set orion as your default browser"
|
||||
android:textAlignment="textStart"
|
||||
android:textColor="@color/c_alert_background_description"
|
||||
android:textSize="15sp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/pBridgeSettingCustomHeader"
|
||||
tools:ignore="SmallSp" />
|
||||
|
||||
|
||||
<Button
|
||||
android:id="@+id/pPopupDefaultBrowserDismiss"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="40dp"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginEnd="15dp"
|
||||
android:layout_marginBottom="20dp"
|
||||
android:background="@xml/ax_ripple_default_round_bottom_secondary"
|
||||
android:text="@string/ALERT_DISMISS"
|
||||
android:textAllCaps="false"
|
||||
android:textColor="@color/c_white"
|
||||
android:textSize="14sp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@+id/pPopupDefaultBrowserNext"
|
||||
tools:ignore="TouchTargetSizeCheck,TextContrastCheck" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/pPopupDefaultBrowserNext"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="40dp"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginEnd="15dp"
|
||||
android:layout_marginBottom="20dp"
|
||||
android:background="@xml/ax_ripple_default_round_bottom"
|
||||
android:text="Set Default"
|
||||
android:textAllCaps="false"
|
||||
android:textColor="@color/c_white"
|
||||
android:textSize="14sp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
tools:ignore="TouchTargetSizeCheck,TextContrastCheck" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
@ -58,26 +58,24 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="48dp"
|
||||
android:background="@color/c_background"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/mProgressBar">
|
||||
|
||||
</WebView>
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/mProgressBar"
|
||||
style="?android:attr/progressBarStyleHorizontal"
|
||||
android:indeterminateOnly="true"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="42dp"
|
||||
android:background="@color/clear_alpha"
|
||||
android:scaleY="1.5"
|
||||
android:layout_marginTop="-6dp"
|
||||
android:indeterminateOnly="true"
|
||||
android:progressBackgroundTint="@color/c_seekbar_progress"
|
||||
android:scaleY="1.5"
|
||||
app:layout_constraintEnd_toStartOf="@+id/pWebView"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/pHeaderContainerTop" />
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
@ -0,0 +1,77 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android = "http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:id = "@+id/layout_default_notification"
|
||||
android:layout_width = "fill_parent"
|
||||
android:layout_height = "wrap_content"
|
||||
android:padding = "10dp" >
|
||||
|
||||
<ImageView
|
||||
android:id = "@+id/image"
|
||||
android:layout_width = "40dp"
|
||||
android:layout_height = "40dp"
|
||||
android:layout_alignParentStart = "true"
|
||||
android:layout_marginEnd = "10dp"
|
||||
android:contentDescription = "@string/app_name"
|
||||
android:src = "@drawable/ic_genesis_logo"/>
|
||||
<TextView
|
||||
android:id = "@+id/header"
|
||||
android:layout_width = "wrap_content"
|
||||
android:layout_height = "wrap_content"
|
||||
android:maxHeight="28dp"
|
||||
android:textStyle="bold"
|
||||
android:layout_toEndOf = "@id/image"
|
||||
android:text = "Testing"
|
||||
android:paddingEnd="70dp"
|
||||
android:layout_marginStart="5dp"
|
||||
android:textSize = "17sp" />
|
||||
<TextView
|
||||
android:layout_marginStart="5dp"
|
||||
android:id = "@+id/body"
|
||||
android:paddingEnd="70dp"
|
||||
android:maxLines="2"
|
||||
android:layout_width = "wrap_content"
|
||||
android:layout_height = "20dp"
|
||||
android:layout_below = "@id/header"
|
||||
android:layout_toEndOf = "@id/image"
|
||||
android:ellipsize = "marquee"
|
||||
android:singleLine = "true"
|
||||
android:text = "Lorem Ipsum is simply dummy text of the printing and typesetting
|
||||
industry. Lorem Ipsum has been the industry's standard dummy text ever since the
|
||||
1500s, when an unknown printer took a galley of type and scrambled it to make a type
|
||||
specimen book. It has survived not only five centuries, but also the leap into
|
||||
electronic typesetting, remaining essentially unchanged. It was popularised in the
|
||||
1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more
|
||||
recently with desktop publishing software like Aldus PageMaker including versions of
|
||||
Lorem Ipsum. "
|
||||
android:textSize = "15sp" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignTop = "@+id/body"
|
||||
android:layout_marginTop="5dp"
|
||||
android:gravity="start"
|
||||
android:orientation="horizontal">
|
||||
|
||||
|
||||
<Button
|
||||
android:id = "@+id/reset"
|
||||
android:layout_width = "wrap_content"
|
||||
android:layout_height = "wrap_content"
|
||||
android:textColor="@color/text_color_v2"
|
||||
android:background="@color/clear_alpha"
|
||||
android:text = "EXIT AND RESET"/>
|
||||
|
||||
|
||||
<Button
|
||||
android:id = "@+id/exit"
|
||||
android:layout_width = "wrap_content"
|
||||
android:layout_height = "wrap_content"
|
||||
android:layout_marginLeft="20dp"
|
||||
android:textColor="@color/text_color_v2"
|
||||
android:background="@color/clear_alpha"
|
||||
android:text = "EXIT BROWSER"/>
|
||||
|
||||
</LinearLayout>
|
||||
</RelativeLayout>
|
|
@ -118,7 +118,7 @@
|
|||
android:src="@xml/ic_baseline_lock"
|
||||
android:translationZ="10dp"
|
||||
app:tint="@color/c_lock_tint"
|
||||
tools:ignore="RtlSymmetry" />
|
||||
tools:ignore="RtlSymmetry,TouchTargetSizeCheck" />
|
||||
|
||||
<View
|
||||
android:id="@+id/pSearchDivider"
|
||||
|
@ -203,7 +203,8 @@
|
|||
android:text="@string/HOME_TAB_TEXT"
|
||||
android:textColor="@color/c_text_v1"
|
||||
android:textSize="12.5sp"
|
||||
android:tint="@color/black" />
|
||||
android:tint="@color/black"
|
||||
tools:ignore="TouchTargetSizeCheck" />
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/pMenu"
|
||||
|
@ -675,14 +676,32 @@
|
|||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
<Button
|
||||
android:id="@+id/Connect"
|
||||
android:layout_width="120dp"
|
||||
android:id="@+id/ConnectNoTor"
|
||||
android:textSize="13sp"
|
||||
android:layout_width="170dp"
|
||||
android:layout_height="51dp"
|
||||
android:layout_marginStart="23dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:textAlignment="textStart"
|
||||
android:drawableStart="@drawable/ic_no_tor"
|
||||
android:background="@xml/hox_rounded_corner_splash_no_ripple"
|
||||
android:onClick="onStartApplicationNoTor"
|
||||
android:text="Normal Browsing"
|
||||
app:layout_constraintBottom_toTopOf="@+id/ConnectTor"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/ConnectTor"
|
||||
android:textSize="13sp"
|
||||
android:layout_width="170dp"
|
||||
android:layout_height="51dp"
|
||||
android:layout_marginStart="23dp"
|
||||
android:layout_marginBottom="23dp"
|
||||
android:textAlignment="textStart"
|
||||
android:background="@xml/hox_rounded_corner_splash_no_ripple"
|
||||
android:drawableStart="@drawable/ic_tor"
|
||||
android:onClick="onStartApplication"
|
||||
android:text="@string/HOME_CONNECT"
|
||||
android:text="Tor Browsing"
|
||||
app:layout_constraintBottom_toTopOf="@+id/pCopyright"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
|
@ -740,7 +759,7 @@
|
|||
android:onClick="onLoadProxy"
|
||||
android:src="@xml/ic_gear"
|
||||
app:layout_constraintBottom_toTopOf="@+id/pDivider1"
|
||||
app:layout_constraintStart_toEndOf="@+id/Connect"
|
||||
app:layout_constraintStart_toEndOf="@+id/ConnectTor"
|
||||
app:tint="@color/black" />
|
||||
|
||||
<ImageButton
|
||||
|
@ -809,7 +828,7 @@
|
|||
android:translationZ="3dp"
|
||||
app:layout_constraintBottom_toTopOf="@+id/pDivider1"
|
||||
app:layout_constraintEnd_toEndOf="@+id/pSettings"
|
||||
app:layout_constraintStart_toStartOf="@+id/Connect"
|
||||
app:layout_constraintStart_toStartOf="@+id/ConnectTor"
|
||||
app:layout_constraintTop_toBottomOf="@+id/pOrbotLogs" />
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,111 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android = "http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:id = "@+id/layout"
|
||||
android:layout_width = "fill_parent"
|
||||
android:layout_height = "100dp"
|
||||
android:background = "@color/c_tab_background"
|
||||
android:padding = "10dp" >
|
||||
|
||||
<ImageView
|
||||
android:layout_alignParentEnd = "true"
|
||||
android:id="@+id/logo"
|
||||
android:layout_marginTop="-5dp"
|
||||
android:scaleX="0.85"
|
||||
android:scaleY="0.75"
|
||||
android:background="@color/c_tab_border_v1"
|
||||
android:layout_width="55dp"
|
||||
android:layout_height="55dp" />
|
||||
|
||||
<ImageView
|
||||
android:id = "@+id/image"
|
||||
android:layout_width = "wrap_content"
|
||||
android:layout_height = "wrap_content"
|
||||
android:layout_alignParentStart = "true"
|
||||
android:layout_marginEnd = "10dp"
|
||||
android:layout_marginTop="5dp"
|
||||
android:contentDescription = "@string/app_name"
|
||||
android:src = "@drawable/ic_baseline_video"
|
||||
app:tint="@color/c_header_icon_tint" />
|
||||
<TextView
|
||||
android:id = "@+id/header"
|
||||
android:layout_width = "wrap_content"
|
||||
android:layout_height = "20dp"
|
||||
android:layout_toEndOf = "@id/image"
|
||||
android:text = "Testing"
|
||||
android:maxLines="1"
|
||||
android:ellipsize="end"
|
||||
android:singleLine="true"
|
||||
android:layout_toStartOf="@+id/logo"
|
||||
android:paddingEnd="10dp"
|
||||
android:layout_marginStart="5dp"
|
||||
android:textColor = "#fff"
|
||||
android:textSize = "13sp" />
|
||||
<TextView
|
||||
android:layout_marginStart="5dp"
|
||||
android:id = "@+id/body"
|
||||
android:paddingEnd="10dp"
|
||||
android:layout_toStartOf="@+id/logo"
|
||||
android:layout_width = "wrap_content"
|
||||
android:layout_height = "wrap_content"
|
||||
android:layout_below = "@id/header"
|
||||
android:layout_toEndOf = "@id/image"
|
||||
android:singleLine = "true"
|
||||
android:maxLines="1"
|
||||
android:ellipsize="end"
|
||||
android:text = "Lorem Ipsum is simply dummy text of the printing and typesetting
|
||||
industry. Lorem Ipsum has been the industry's standard dummy text ever since the
|
||||
1500s, when an unknown printer took a galley of type and scrambled it to make a type
|
||||
specimen book. It has survived not only five centuries, but also the leap into
|
||||
electronic typesetting, remaining essentially unchanged. It was popularised in the
|
||||
1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more
|
||||
recently with desktop publishing software like Aldus PageMaker including versions of
|
||||
Lorem Ipsum. "
|
||||
android:textColor = "#fff"
|
||||
android:textSize = "13sp" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="50dp"
|
||||
android:layout_alignTop="@+id/body"
|
||||
android:layout_marginTop="15dp"
|
||||
android:gravity="center"
|
||||
android:orientation="horizontal">
|
||||
|
||||
|
||||
<ImageButton
|
||||
android:id = "@+id/back"
|
||||
android:layout_width = "60dp"
|
||||
android:layout_height = "35dp"
|
||||
android:scaleX="1.4"
|
||||
android:scaleY="1.4"
|
||||
android:layout_marginTop="5dp"
|
||||
android:background="@color/clear_alpha"
|
||||
android:contentDescription = "@string/app_name"
|
||||
android:src = "@drawable/ic_baseline_skip_previous"/>
|
||||
|
||||
|
||||
<ImageButton
|
||||
android:id = "@+id/trigger"
|
||||
android:scaleX="1.4"
|
||||
android:scaleY="1.4"
|
||||
android:layout_width = "65dp"
|
||||
android:layout_height = "35dp"
|
||||
android:layout_marginTop="5dp"
|
||||
android:background="@color/clear_alpha"
|
||||
android:contentDescription = "@string/app_name"
|
||||
android:src = "@drawable/ic_baseline_play_arrow"/>
|
||||
|
||||
<ImageButton
|
||||
android:id = "@+id/next"
|
||||
android:scaleX="1.4"
|
||||
android:scaleY="1.4"
|
||||
android:layout_width = "60dp"
|
||||
android:layout_height = "35dp"
|
||||
android:layout_marginTop="5dp"
|
||||
android:background="@color/clear_alpha"
|
||||
android:contentDescription = "@string/app_name"
|
||||
android:src = "@drawable/ic_baseline_skip_next"/>
|
||||
|
||||
</LinearLayout>
|
||||
</RelativeLayout>
|
|
@ -0,0 +1,92 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android = "http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:id = "@+id/layout"
|
||||
android:layout_width = "fill_parent"
|
||||
android:layout_height = "67dp"
|
||||
android:background = "@color/c_tab_background"
|
||||
android:padding = "10dp" >
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/logo"
|
||||
android:layout_marginTop="0dp"
|
||||
android:layout_centerVertical="true"
|
||||
android:background="@color/c_tab_border_v1"
|
||||
android:layout_width="55dp"
|
||||
android:layout_height="55dp" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_toEndOf = "@id/logo"
|
||||
android:orientation="vertical"
|
||||
android:layout_toStartOf="@+id/controller"
|
||||
android:layout_height="50dp">
|
||||
|
||||
<TextView
|
||||
android:id = "@+id/header"
|
||||
android:layout_width = "wrap_content"
|
||||
android:layout_height = "wrap_content"
|
||||
android:maxHeight="28dp"
|
||||
android:text = "Testing"
|
||||
android:singleLine="true"
|
||||
android:paddingEnd="70dp"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:layout_marginStart="15dp"
|
||||
android:textColor = "#fff"
|
||||
android:textSize = "13sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/body"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/header"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_marginTop="4dp"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:ellipsize="marquee"
|
||||
android:paddingEnd="70dp"
|
||||
android:singleLine="true"
|
||||
android:text="Lorem Ipsum is simply dummy text of the printing and typesetting
|
||||
industry. Lorem Ipsum has been the industry's standard dummy text ever since the
|
||||
1500s, when an unknown printer took a galley of type and scrambled it to make a type
|
||||
specimen book. It has survived not only five centuries, but also the leap into
|
||||
electronic typesetting, remaining essentially unchanged. It was popularised in the
|
||||
1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more
|
||||
recently with desktop publishing software like Aldus PageMaker including versions of
|
||||
Lorem Ipsum. "
|
||||
android:textColor="#fff"
|
||||
android:textSize="13sp" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="120dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:gravity="center"
|
||||
android:id="@+id/controller"
|
||||
android:orientation="horizontal">
|
||||
|
||||
|
||||
<ImageButton
|
||||
android:id = "@+id/trigger"
|
||||
android:scaleX="1.4"
|
||||
android:scaleY="1.4"
|
||||
android:layout_width = "65dp"
|
||||
android:layout_height = "35dp"
|
||||
android:background="@color/clear_alpha"
|
||||
android:contentDescription = "@string/app_name"
|
||||
android:src = "@drawable/ic_baseline_play_arrow"/>
|
||||
|
||||
<ImageButton
|
||||
android:id = "@+id/next"
|
||||
android:scaleX="1.4"
|
||||
android:scaleY="1.4"
|
||||
android:layout_width = "60dp"
|
||||
android:layout_height = "35dp"
|
||||
android:background="@color/clear_alpha"
|
||||
android:contentDescription = "@string/app_name"
|
||||
android:src = "@drawable/ic_baseline_skip_next"/>
|
||||
|
||||
</LinearLayout>
|
||||
</RelativeLayout>
|
|
@ -311,6 +311,7 @@
|
|||
android:layout_marginStart="15dp"
|
||||
android:layout_marginTop="5dp"
|
||||
android:layout_marginBottom="5dp"
|
||||
android:visibility="gone"
|
||||
android:layout_marginEnd="15dp"
|
||||
android:background="@color/c_home_side" />
|
||||
|
||||
|
@ -322,6 +323,7 @@
|
|||
android:background="@xml/gx_side_item"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
android:visibility="gone"
|
||||
android:onClick="onMenuItemInvoked"
|
||||
android:orientation="horizontal"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
|
|
|
@ -631,6 +631,71 @@
|
|||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/pSearchSettingOption5"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp"
|
||||
android:paddingTop="10dp"
|
||||
android:paddingBottom="10dp"
|
||||
android:onClick="onBackgroundSound"
|
||||
android:background="@xml/gx_ripple_gray"
|
||||
android:orientation="horizontal"
|
||||
android:weightSum="7">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="6"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="20dp"
|
||||
android:alpha="1"
|
||||
android:background="@android:color/transparent"
|
||||
android:clickable="false"
|
||||
android:padding="0dp"
|
||||
android:paddingStart="15dp"
|
||||
android:paddingEnd="15dp"
|
||||
android:text="@string/SETTING_ADVANCE_BACKGROUND_MUSIC"
|
||||
android:textAlignment="textStart"
|
||||
android:textAllCaps="false"
|
||||
android:textColor="@color/c_text_v1"
|
||||
android:textSize="14sp"
|
||||
tools:ignore="RtlSymmetry" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="2dp"
|
||||
android:alpha="1"
|
||||
android:background="@android:color/transparent"
|
||||
android:clickable="false"
|
||||
android:padding="0dp"
|
||||
android:paddingStart="15dp"
|
||||
android:paddingEnd="15dp"
|
||||
android:text="@string/SETTING_ADVANCE_BACKGROUND_MUSIC_INFO"
|
||||
android:textAlignment="textStart"
|
||||
android:textAllCaps="false"
|
||||
android:textColor="@color/c_text_v6"
|
||||
android:textSize="13.5sp"
|
||||
tools:ignore="RtlSymmetry" />
|
||||
</LinearLayout>
|
||||
|
||||
<com.google.android.material.switchmaterial.SwitchMaterial
|
||||
android:id="@+id/pShowBackgroundMusic"
|
||||
android:clickable="false"
|
||||
android:focusable="false"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
android:theme="@style/SCBSwitch"
|
||||
android:layout_marginEnd="11dp"
|
||||
android:contentDescription="@string/GENERAL_TODO" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
</ScrollView>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
|
|
@ -191,7 +191,7 @@
|
|||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="2"
|
||||
android:background="@xml/gx_ripple_light"
|
||||
android:background="@xml/hx_border"
|
||||
android:contentDescription="@string/GENERAL_TODO"
|
||||
android:longClickable="true"
|
||||
android:padding="20dp"
|
||||
|
|
|
@ -269,6 +269,8 @@
|
|||
<string name="SETTING_ADVANCE_SHOW_IMAGES_INFO" translatable="true">قم دائمًا بتحميل صور الموقع</string>
|
||||
<string name="SETTING_ADVANCE_WEB_FONTS" translatable="true">إظهار خطوط الويب</string>
|
||||
<string name="SETTING_ADVANCE_WEB_FONTS_INFO" translatable="true">تنزيل الخطوط البعيدة عند تحميل الصفحة</string>
|
||||
<string name="SETTING_ADVANCE_BACKGROUND_MUSIC" translatable="true">الصوت في الخلفية</string>
|
||||
<string name="SETTING_ADVANCE_BACKGROUND_MUSIC_INFO" translatable="true">تشغيل الصوت في الخلفية</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA" translatable="true">السماح بالتشغيل التلقائي</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA_INFO" translatable="true">دع الوسائط تبدأ تلقائيًا</string>
|
||||
<string name="SETTING_ADVANCE_DATA_SAVER" translatable="true">حافظ البيانات</string>
|
||||
|
|
|
@ -258,6 +258,8 @@
|
|||
<string name="SETTING_ADVANCE_SHOW_IMAGES_INFO" translatable="true">carregueu sempre imatges del lloc web</string>
|
||||
<string name="SETTING_ADVANCE_WEB_FONTS" translatable="true">mostra els tipus de lletra web</string>
|
||||
<string name="SETTING_ADVANCE_WEB_FONTS_INFO" translatable="true">descarregueu fonts remotes en carregar una pàgina</string>
|
||||
<string name="SETTING_ADVANCE_BACKGROUND_MUSIC" translatable="true">so de fons</string>
|
||||
<string name="SETTING_ADVANCE_BACKGROUND_MUSIC_INFO" translatable="true">Reprodueix el so en segon pla</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA" translatable="true">permetre la reproducció automàtica</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA_INFO" translatable="true">permet que els mitjans s’iniciïn automàticament</string>
|
||||
<string name="SETTING_ADVANCE_DATA_SAVER" translatable="true">estalviador de dades</string>
|
||||
|
|
|
@ -271,6 +271,8 @@
|
|||
<string name="SETTING_ADVANCE_SHOW_IMAGES_INFO" translatable="true">vždy načíst obrázky webových stránek</string>
|
||||
<string name="SETTING_ADVANCE_WEB_FONTS" translatable="true">zobrazit webová písma</string>
|
||||
<string name="SETTING_ADVANCE_WEB_FONTS_INFO" translatable="true">stáhnout vzdálená písma při načítání stránky</string>
|
||||
<string name="SETTING_ADVANCE_BACKGROUND_MUSIC" translatable="true">zvuk na pozadí</string>
|
||||
<string name="SETTING_ADVANCE_BACKGROUND_MUSIC_INFO" translatable="true">Přehrát zvuk na pozadí</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA" translatable="true">povolit automatické přehrávání</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA_INFO" translatable="true">povolit automatické spouštění médií</string>
|
||||
<string name="SETTING_ADVANCE_DATA_SAVER" translatable="true">spořič dat</string>
|
||||
|
|
|
@ -271,6 +271,8 @@
|
|||
<string name="SETTING_ADVANCE_SHOW_IMAGES_INFO" translatable="true">Laden Sie immer Website-Bilder</string>
|
||||
<string name="SETTING_ADVANCE_WEB_FONTS" translatable="true">Web-Schriftarten anzeigen</string>
|
||||
<string name="SETTING_ADVANCE_WEB_FONTS_INFO" translatable="true">Laden Sie beim Laden einer Seite Remote-Schriftarten herunter</string>
|
||||
<string name="SETTING_ADVANCE_BACKGROUND_MUSIC" translatable="true">Ton im Hintergrund</string>
|
||||
<string name="SETTING_ADVANCE_BACKGROUND_MUSIC_INFO" translatable="true">Ton im Hintergrund abspielen</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA" translatable="true">Autoplay zulassen</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA_INFO" translatable="true">Medien automatisch starten lassen</string>
|
||||
<string name="SETTING_ADVANCE_DATA_SAVER" translatable="true">Datensparer</string>
|
||||
|
|
|
@ -271,6 +271,8 @@
|
|||
<string name="SETTING_ADVANCE_SHOW_IMAGES_INFO" translatable="true">να φορτώνετε πάντα εικόνες ιστότοπου</string>
|
||||
<string name="SETTING_ADVANCE_WEB_FONTS" translatable="true">εμφάνιση γραμματοσειρών ιστού</string>
|
||||
<string name="SETTING_ADVANCE_WEB_FONTS_INFO" translatable="true">λήψη απομακρυσμένων γραμματοσειρών κατά τη φόρτωση μιας σελίδας</string>
|
||||
<string name="SETTING_ADVANCE_BACKGROUND_MUSIC" translatable="true">ήχος στο παρασκήνιο</string>
|
||||
<string name="SETTING_ADVANCE_BACKGROUND_MUSIC_INFO" translatable="true">Αναπαραγωγή ήχου στο παρασκήνιο</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA" translatable="true">επιτρέψτε την αυτόματη αναπαραγωγή</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA_INFO" translatable="true">Αφήστε τα μέσα να ξεκινήσουν αυτόματα</string>
|
||||
<string name="SETTING_ADVANCE_DATA_SAVER" translatable="true">εξοικονόμηση δεδομένων</string>
|
||||
|
|
|
@ -271,6 +271,8 @@
|
|||
<string name="SETTING_ADVANCE_SHOW_IMAGES_INFO" translatable="true">toujours charger les images du site Web</string>
|
||||
<string name="SETTING_ADVANCE_WEB_FONTS" translatable="true">show web fonts</string>
|
||||
<string name="SETTING_ADVANCE_WEB_FONTS_INFO" translatable="true">télécharger des polices distantes lors du chargement d\'une page</string>
|
||||
<string name="SETTING_ADVANCE_BACKGROUND_MUSIC" translatable="true">son en arrière-plan</string>
|
||||
<string name="SETTING_ADVANCE_BACKGROUND_MUSIC_INFO" translatable="true">Jouer le son en arrière-plan</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA" translatable="true">autoriser la lecture automatique</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA_INFO" translatable="true">permettre au média de démarrer automatiquement</string>
|
||||
<string name="SETTING_ADVANCE_DATA_SAVER" translatable="true">économiseur de données</string>
|
||||
|
|
|
@ -271,6 +271,8 @@
|
|||
<string name="SETTING_ADVANCE_SHOW_IMAGES_INFO" translatable="true">mindig töltsön be weboldal képeket</string>
|
||||
<string name="SETTING_ADVANCE_WEB_FONTS" translatable="true">webes betűtípusok megjelenítése</string>
|
||||
<string name="SETTING_ADVANCE_WEB_FONTS_INFO" translatable="true">letölthet távoli betűtípusokat egy oldal betöltése közben</string>
|
||||
<string name="SETTING_ADVANCE_BACKGROUND_MUSIC" translatable="true">hang a háttérben</string>
|
||||
<string name="SETTING_ADVANCE_BACKGROUND_MUSIC_INFO" translatable="true">Hang lejátszása a háttérben</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA" translatable="true">engedélyezze az automatikus lejátszást</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA_INFO" translatable="true">hagyja, hogy a média automatikusan elinduljon</string>
|
||||
<string name="SETTING_ADVANCE_DATA_SAVER" translatable="true">adatmentõ</string>
|
||||
|
|
|
@ -261,6 +261,8 @@
|
|||
<string name="SETTING_ADVANCE_SHOW_IMAGES_INFO" translatable="true">altijd website-afbeeldingen laden</string>
|
||||
<string name="SETTING_ADVANCE_WEB_FONTS" translatable="true">weblettertypen weergeven</string>
|
||||
<string name="SETTING_ADVANCE_WEB_FONTS_INFO" translatable="true">download externe lettertypen bij het laden van een pagina</string>
|
||||
<string name="SETTING_ADVANCE_BACKGROUND_MUSIC" translatable="true">geluid op de achtergrond</string>
|
||||
<string name="SETTING_ADVANCE_BACKGROUND_MUSIC_INFO" translatable="true">Speel geluid af op de achtergrond</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA" translatable="true">autoplay toestaan </string>
|
||||
<string name="SETTING_ADVANCE_MEDIA_INFO" translatable="true">media automatisch laten starten</string>
|
||||
<string name="SETTING_ADVANCE_DATA_SAVER" translatable="true">gegevensbesparing</string>
|
||||
|
|
|
@ -271,6 +271,8 @@
|
|||
<string name="SETTING_ADVANCE_SHOW_IMAGES_INFO" translatable="true">carica sempre le immagini del sito web</string>
|
||||
<string name="SETTING_ADVANCE_WEB_FONTS" translatable="true">mostra i caratteri web</string>
|
||||
<string name="SETTING_ADVANCE_WEB_FONTS_INFO" translatable="true">scarica i caratteri remoti durante il caricamento di una pagina</string>
|
||||
<string name="SETTING_ADVANCE_BACKGROUND_MUSIC" translatable="true">suono in sottofondo</string>
|
||||
<string name="SETTING_ADVANCE_BACKGROUND_MUSIC_INFO" translatable="true">Riproduci suono in sottofondo</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA" translatable="true">consenti riproduzione automatica</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA_INFO" translatable="true">consentire ai media di avviarsi automaticamente</string>
|
||||
<string name="SETTING_ADVANCE_DATA_SAVER" translatable="true">risparmio di dati</string>
|
||||
|
|
|
@ -271,6 +271,8 @@
|
|||
<string name="SETTING_ADVANCE_SHOW_IMAGES_INFO" translatable="true">常にウェブサイトの画像を読み込む</string>
|
||||
<string name="SETTING_ADVANCE_WEB_FONTS" translatable="true">Webフォントを表示する</string>
|
||||
<string name="SETTING_ADVANCE_WEB_FONTS_INFO" translatable="true">ページの読み込み時にリモートフォントをダウンロードする</string>
|
||||
<string name="SETTING_ADVANCE_BACKGROUND_MUSIC" translatable="true">バックグラウンドでのサウンド</string>
|
||||
<string name="SETTING_ADVANCE_BACKGROUND_MUSIC_INFO" translatable="true">バックグラウンドでサウンドを再生する</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA" translatable="true">自動再生を許可する</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA_INFO" translatable="true">メディアを自動的に開始できるようにする</string>
|
||||
<string name="SETTING_ADVANCE_DATA_SAVER" translatable="true">データセーバー</string>
|
||||
|
|
|
@ -271,6 +271,8 @@
|
|||
<string name="SETTING_ADVANCE_SHOW_IMAGES_INFO" translatable="true">항상 웹 사이트 이미지로드</string>
|
||||
<string name="SETTING_ADVANCE_WEB_FONTS" translatable="true">웹 글꼴 표시</string>
|
||||
<string name="SETTING_ADVANCE_WEB_FONTS_INFO" translatable="true">페이지를로드 할 때 원격 글꼴 다운로드</string>
|
||||
<string name="SETTING_ADVANCE_BACKGROUND_MUSIC" translatable="true">백그라운드에서 소리</string>
|
||||
<string name="SETTING_ADVANCE_BACKGROUND_MUSIC_INFO" translatable="true">배경에서 소리 재생</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA" translatable="true">자동 재생 허용</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA_INFO" translatable="true">미디어가 자동으로 시작되도록 허용</string>
|
||||
<string name="SETTING_ADVANCE_DATA_SAVER" translatable="true">데이터 세이버</string>
|
||||
|
|
|
@ -260,6 +260,8 @@
|
|||
<string name="SETTING_ADVANCE_SHOW_IMAGES_INFO" translatable="true">Altijd website-afbeeldingen laden</string>
|
||||
<string name="SETTING_ADVANCE_WEB_FONTS" translatable="true">Weblettertypen weergeven</string>
|
||||
<string name="SETTING_ADVANCE_WEB_FONTS_INFO" translatable="true">Download externe lettertypen bij het laden van een pagina</string>
|
||||
<string name="SETTING_ADVANCE_BACKGROUND_MUSIC" translatable="true">geluid op de achtergrond</string>
|
||||
<string name="SETTING_ADVANCE_BACKGROUND_MUSIC_INFO" translatable="true">Speel geluid af op de achtergrond</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA" translatable="true">Autoplay toestaan </string>
|
||||
<string name="SETTING_ADVANCE_MEDIA_INFO" translatable="true">Media automatisch starten</string>
|
||||
<string name="SETTING_ADVANCE_DATA_SAVER" translatable="true">Gegevensbesparing</string>
|
||||
|
|
|
@ -271,6 +271,8 @@
|
|||
<string name="SETTING_ADVANCE_SHOW_IMAGES_INFO" translatable="true">sempre carregue imagens do site</string>
|
||||
<string name="SETTING_ADVANCE_WEB_FONTS" translatable="true">mostrar fontes da web</string>
|
||||
<string name="SETTING_ADVANCE_WEB_FONTS_INFO" translatable="true">baixar fontes remotas ao carregar uma página</string>
|
||||
<string name="SETTING_ADVANCE_BACKGROUND_MUSIC" translatable="true">som de fundo</string>
|
||||
<string name="SETTING_ADVANCE_BACKGROUND_MUSIC_INFO" translatable="true">Reproduzir som em segundo plano</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA" translatable="true">permitir reprodução automática</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA_INFO" translatable="true">permitir que a mídia inicie automaticamente</string>
|
||||
<string name="SETTING_ADVANCE_DATA_SAVER" translatable="true">economizador de dados</string>
|
||||
|
|
|
@ -271,6 +271,8 @@
|
|||
<string name="SETTING_ADVANCE_SHOW_IMAGES_INFO" translatable="true">încărcați întotdeauna imagini de pe site</string>
|
||||
<string name="SETTING_ADVANCE_WEB_FONTS" translatable="true">afișați fonturi web</string>
|
||||
<string name="SETTING_ADVANCE_WEB_FONTS_INFO" translatable="true">descărcați fonturi la distanță atunci când încărcați o pagină</string>
|
||||
<string name="SETTING_ADVANCE_BACKGROUND_MUSIC" translatable="true">sunet în fundal</string>
|
||||
<string name="SETTING_ADVANCE_BACKGROUND_MUSIC_INFO" translatable="true">Redați sunetul în fundal</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA" translatable="true">permite redarea automată</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA_INFO" translatable="true">permite ca media să pornească automat</string>
|
||||
<string name="SETTING_ADVANCE_DATA_SAVER" translatable="true">data saver</string>
|
||||
|
|
|
@ -271,6 +271,8 @@
|
|||
<string name="SETTING_ADVANCE_SHOW_IMAGES_INFO" translatable="true">всегда загружать изображения веб-сайтов</string>
|
||||
<string name="SETTING_ADVANCE_WEB_FONTS" translatable="true">показать веб-шрифты</string>
|
||||
<string name="SETTING_ADVANCE_WEB_FONTS_INFO" translatable="true">загружать удаленные шрифты при загрузке страницы</string>
|
||||
<string name="SETTING_ADVANCE_BACKGROUND_MUSIC" translatable="true">звук в фоновом режиме</string>
|
||||
<string name="SETTING_ADVANCE_BACKGROUND_MUSIC_INFO" translatable="true">Воспроизведение звука в фоновом режиме</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA" translatable="true">разрешить автовоспроизведение</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA_INFO" translatable="true">разрешить автоматический запуск медиа</string>
|
||||
<string name="SETTING_ADVANCE_DATA_SAVER" translatable="true">хранитель данных</string>
|
||||
|
|
|
@ -271,6 +271,8 @@
|
|||
<string name="SETTING_ADVANCE_SHOW_IMAGES_INFO" translatable="true">โหลดภาพเว็บไซต์เสมอ</string>
|
||||
<string name="SETTING_ADVANCE_WEB_FONTS" translatable="true">แสดงแบบอักษรของเว็บ</string>
|
||||
<string name="SETTING_ADVANCE_WEB_FONTS_INFO" translatable="true">ดาวน์โหลดฟอนต์ระยะไกลเมื่อโหลดเพจ</string>
|
||||
<string name="SETTING_ADVANCE_BACKGROUND_MUSIC"> translatable="true"เสียงในพื้นหลัง</string>
|
||||
<string name="SETTING_ADVANCE_BACKGROUND_MUSIC_INFO" translatable="true">เล่นเสียงในพื้นหลัง</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA" translatable="true">อนุญาตให้เล่นอัตโนมัติ</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA_INFO" translatable="true">อนุญาตให้สื่อเริ่มโดยอัตโนมัติ</string>
|
||||
<string name="SETTING_ADVANCE_DATA_SAVER" translatable="true">โปรแกรมประหยัดอินเทอร์เน็ต</string>
|
||||
|
|
|
@ -271,6 +271,8 @@
|
|||
<string name="SETTING_ADVANCE_SHOW_IMAGES_INFO" translatable="true">her zaman web sitesi resimlerini yükle</string>
|
||||
<string name="SETTING_ADVANCE_WEB_FONTS" translatable="true">web yazı tiplerini göster</string>
|
||||
<string name="SETTING_ADVANCE_WEB_FONTS_INFO" translatable="true">bir sayfayı yüklerken uzak yazı tiplerini indirin</string>
|
||||
<string name="SETTING_ADVANCE_BACKGROUND_MUSIC"> translatable="true"arka planda ses</string>
|
||||
<string name="SETTING_ADVANCE_BACKGROUND_MUSIC_INFO"> translatable="true">Arka planda ses çal</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA" translatable="true">otomatik oynatmaya izin ver</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA_INFO" translatable="true">medyanın otomatik olarak başlamasına izin ver</string>
|
||||
<string name="SETTING_ADVANCE_DATA_SAVER" translatable="true">veri koruyucu</string>
|
||||
|
|
|
@ -262,6 +262,8 @@
|
|||
<string name="SETTING_ADVANCE_SHOW_IMAGES_INFO" translatable="true">Завжди завантажуйте зображення веб-сайтів</string>
|
||||
<string name="SETTING_ADVANCE_WEB_FONTS" translatable="true">Показати веб-шрифти</string>
|
||||
<string name="SETTING_ADVANCE_WEB_FONTS_INFO" translatable="true">Завантажуйте віддалені шрифти під час завантаження сторінки</string>
|
||||
<string name="SETTING_ADVANCE_BACKGROUND_MUSIC"> translatable="true"звук у фоновому режимі</string>
|
||||
<string name="SETTING_ADVANCE_BACKGROUND_MUSIC_INFO"> translatable="true">Відтворення звуку у фоновому режимі</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA" translatable="true">Дозволити автовідтворення</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA_INFO" translatable="true">Дозволити автоматичному запуску носія</string>
|
||||
<string name="SETTING_ADVANCE_DATA_SAVER" translatable="true">Заощадження даних</string>
|
||||
|
|
|
@ -271,6 +271,8 @@
|
|||
<string name="SETTING_ADVANCE_SHOW_IMAGES_INFO" translatable="true">ہمیشہ ویب سائٹ کی تصاویر لوڈ کریں</string>
|
||||
<string name="SETTING_ADVANCE_WEB_FONTS" translatable="true">ویب فونٹس دکھائیں</string>
|
||||
<string name="SETTING_ADVANCE_WEB_FONTS_INFO" translatable="true">کسی صفحے کو لوڈ کرتے وقت ریموٹ فونٹس ڈاؤن لوڈ کریں</string>
|
||||
<string name="SETTING_ADVANCE_BACKGROUND_MUSIC"> translatable="true"پس منظر میں آواز</string>
|
||||
<string name="SETTING_ADVANCE_BACKGROUND_MUSIC_INFO"> translatable="true">پس منظر میں آواز چلائیں۔</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA" translatable="true">آٹو پلے کی اجازت دیں</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA_INFO" translatable="true">میڈیا کو خود بخود شروع ہونے دیں</string>
|
||||
<string name="SETTING_ADVANCE_DATA_SAVER" translatable="true">ڈیٹا سیور</string>
|
||||
|
|
|
@ -271,6 +271,8 @@
|
|||
<string name="SETTING_ADVANCE_SHOW_IMAGES_INFO" translatable="true">luôn tải hình ảnh trang web</string>
|
||||
<string name="SETTING_ADVANCE_WEB_FONTS" translatable="true">hiển thị phông chữ web</string>
|
||||
<string name="SETTING_ADVANCE_WEB_FONTS_INFO" translatable="true">tải xuống phông chữ từ xa khi tải trang</string>
|
||||
<string name="SETTING_ADVANCE_BACKGROUND_MUSIC"> translatable="true"âm thanh trong nền</string>
|
||||
<string name="SETTING_ADVANCE_BACKGROUND_MUSIC_INFO"> translatable="true">Phát âm thanh ở chế độ nền</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA" translatable="true">cho phép tự động phát</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA_INFO" translatable="true">cho phép phương tiện tự động khởi động</string>
|
||||
<string name="SETTING_ADVANCE_DATA_SAVER" translatable="true">trình tiết kiệm dữ liệu</string>
|
||||
|
|
|
@ -271,6 +271,8 @@
|
|||
<string name="SETTING_ADVANCE_SHOW_IMAGES_INFO" translatable="true">始终加载网站图片</string>
|
||||
<string name="SETTING_ADVANCE_WEB_FONTS" translatable="true">显示网络字体</string>
|
||||
<string name="SETTING_ADVANCE_WEB_FONTS_INFO" translatable="true">加载页面时下载远程字体</string>
|
||||
<string name="SETTING_ADVANCE_BACKGROUND_MUSIC"> translatable="true"背景声音</string>
|
||||
<string name="SETTING_ADVANCE_BACKGROUND_MUSIC_INFO"> translatable="true">在后台播放声音</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA" translatable="true">允许自动播放</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA_INFO" translatable="true">允许媒体自动启动</string>
|
||||
<string name="SETTING_ADVANCE_DATA_SAVER" translatable="true">数据保护器</string>
|
||||
|
|
|
@ -285,6 +285,8 @@
|
|||
<string name="SETTING_ADVANCE_SHOW_IMAGES_INFO" translatable="true">Always load website images</string>
|
||||
<string name="SETTING_ADVANCE_WEB_FONTS" translatable="true">Show web fonts</string>
|
||||
<string name="SETTING_ADVANCE_WEB_FONTS_INFO" translatable="true">Download remote fonts when loading a page</string>
|
||||
<string name="SETTING_ADVANCE_BACKGROUND_MUSIC" translatable="true">Background sound</string>
|
||||
<string name="SETTING_ADVANCE_BACKGROUND_MUSIC_INFO" translatable="true">Play sound in background</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA" translatable="true">Allow autoplay</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA_INFO" translatable="true">Allow media to auto start</string>
|
||||
<string name="SETTING_ADVANCE_DATA_SAVER" translatable="true">Data saver</string>
|
||||
|
|
|
@ -1,17 +0,0 @@
|
|||
package com.example.myapplication
|
||||
|
||||
import org.junit.Test
|
||||
|
||||
import org.junit.Assert.*
|
||||
|
||||
/**
|
||||
* Example local unit test, which will execute on the development machine (host).
|
||||
*
|
||||
* See [testing documentation](http://d.android.com/tools/testing).
|
||||
*/
|
||||
class ExampleUnitTest {
|
||||
@Test
|
||||
fun addition_isCorrect() {
|
||||
assertEquals(4, 2 + 2)
|
||||
}
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
/* Version */
|
||||
project.ext.vname = 'Build | Dark-Origin 1.0.6.1'
|
||||
project.ext.vcode = 425
|
||||
project.ext.vname = 'Build | Dark-Origin 1.0.7.2'
|
||||
project.ext.vcode = 465
|
||||
project.ext.buildType = 'release'
|
||||
|
||||
/* dimension */
|
||||
|
@ -30,7 +30,7 @@ project.ext.splitEnabled = true
|
|||
/* Application Preferences */
|
||||
project.ext.compile_sdk_version = 33
|
||||
project.ext.min_sdk_version = 21
|
||||
project.ext.target_sdk_version = 33
|
||||
project.ext.target_sdk_version = 32
|
||||
project.ext.build_tool_version = '33'
|
||||
project.ext.ndk_version = '21.4.7075529'
|
||||
project.ext.application_id = "com.hiddenservices.onionservices"
|
||||
|
|
|
@ -8,6 +8,7 @@ buildscript {
|
|||
google()
|
||||
mavenCentral()
|
||||
mavenLocal()
|
||||
maven { url 'https://artifacts.applovin.com/android' }
|
||||
maven { url "https://maven.mozilla.org/maven2" }
|
||||
maven { url "https://nightly.maven.mozilla.org/maven2" }
|
||||
}
|
||||
|
@ -16,6 +17,7 @@ buildscript {
|
|||
classpath 'com.android.tools.build:gradle:7.3.1'
|
||||
classpath 'com.google.gms:google-services:4.3.14'
|
||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.10"
|
||||
classpath "com.applovin.quality:AppLovinQualityServiceGradlePlugin:+"
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -185,7 +185,7 @@ public class OrbotService extends VpnService implements OrbotConstants {
|
|||
boolean mToolbarUpdating = false;
|
||||
@SuppressLint({"NewApi", "RestrictedApi"})
|
||||
public void showToolbarNotification(String notifyMsg, int notifyType, int icon) {
|
||||
if(!mToolbarUpdating){
|
||||
if(!mToolbarUpdating && orbotLocalConstants.mNotificationStatus != 0 && orbotLocalConstants.mAppStarted){
|
||||
mToolbarUpdating = true;
|
||||
}else {
|
||||
return;
|
||||
|
@ -344,7 +344,7 @@ public class OrbotService extends VpnService implements OrbotConstants {
|
|||
{
|
||||
//sendCallbackStatus(STATUS_OFF);
|
||||
orbotLocalConstants.mTorLogsStatus = "No internet connection";
|
||||
if(orbotLocalConstants.mNotificationStatus!=0){
|
||||
if(orbotLocalConstants.mNotificationStatus!=0 && orbotLocalConstants.mAppStarted){
|
||||
showToolbarNotification(getString(R.string.newnym), getNotifyId(), R.drawable.ic_stat_tor_off);
|
||||
showToolbarNotification("Genesis is sleeping | Internet connectivity issue",NOTIFY_ID,R.drawable.ic_stat_tor_off);
|
||||
}
|
||||
|
@ -353,7 +353,7 @@ public class OrbotService extends VpnService implements OrbotConstants {
|
|||
{
|
||||
//sendCallbackStatus(STATUS_STARTING);
|
||||
|
||||
if(orbotLocalConstants.mNotificationStatus!=0){
|
||||
if(orbotLocalConstants.mNotificationStatus!=0 && orbotLocalConstants.mAppStarted){
|
||||
showToolbarNotification(getString(R.string.status_starting_up),NOTIFY_ID,R.drawable.ic_stat_starting_tor_logo);
|
||||
}
|
||||
}
|
||||
|
@ -821,7 +821,9 @@ public class OrbotService extends VpnService implements OrbotConstants {
|
|||
return;
|
||||
}
|
||||
|
||||
if(orbotLocalConstants.mNotificationStatus != 0 && orbotLocalConstants.mAppStarted ) {
|
||||
mNotifyBuilder.setProgress(100, 0, false);
|
||||
}
|
||||
showToolbarNotification("", NOTIFY_ID, R.mipmap.ic_stat_tor_logo);
|
||||
|
||||
startTorService();
|
||||
|
@ -1620,6 +1622,7 @@ public class OrbotService extends VpnService implements OrbotConstants {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void onSettingRegister(){
|
||||
try {
|
||||
Intent intent;
|
||||
|
@ -1636,6 +1639,7 @@ public class OrbotService extends VpnService implements OrbotConstants {
|
|||
|
||||
switch (intent.getAction()) {
|
||||
case TorControlCommands.SIGNAL_NEWNYM: {
|
||||
activityContextManager
|
||||
newIdentity();
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -19,7 +19,9 @@ public class orbotLocalConstants
|
|||
public static boolean mIsManualBridge = false;
|
||||
public static String mManualBridgeType = "";
|
||||
public static boolean mNetworkState = true;
|
||||
public static boolean mAppStarted = false;
|
||||
public static String mBridgesDefault = "";
|
||||
public static boolean mStartTriggered = false;
|
||||
|
||||
public static int mHTTPPort = 8118;
|
||||
public static int mSOCKSPort = -1;
|
||||
|
|
Loading…
Reference in New Issue