From 16af40adfb4833187d69c81689ddeb665b18b57f Mon Sep 17 00:00:00 2001 From: msmannan00 Date: Sun, 26 May 2019 16:43:13 +0500 Subject: [PATCH] bug fixes --- app/build.gradle | 31 ++-- .../genesissearchengine/ProxySettings.java | 140 ++++++++++++++++++ .../genesissearchengine/admanager.java | 39 ++++- .../application_controller.java | 96 ++++++------ .../genesissearchengine/constants.java | 3 +- .../genesissearchengine/message_manager.java | 18 +-- .../genesissearchengine/orbot_manager.java | 3 + app/src/main/res/drawable/lockstyle.xml | 4 +- .../main/res/layout-v26/application_view.xml | 1 - app/src/main/res/layout/application_view.xml | 1 - app/src/main/res/mipmap-anydpi-v26/lock.png | Bin 0 -> 3067 bytes 11 files changed, 260 insertions(+), 76 deletions(-) create mode 100644 app/src/main/java/com/darkweb/genesissearchengine/ProxySettings.java create mode 100644 app/src/main/res/mipmap-anydpi-v26/lock.png diff --git a/app/build.gradle b/app/build.gradle index c255c1d0..4cdc6400 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -44,23 +44,23 @@ android { productFlavors { arm { - versionCode 131 - versionName "131" + versionCode 149 + versionName "145" dimension "abi" } aarch64 { - versionCode 132 - versionName "132" - dimension "abi" + versionCode 150 + versionName "146" + dimension "abi" } x86_64 { - versionCode 135 - versionName "135" + versionCode 151 + versionName "147" dimension "abi" } x86 { - versionCode 134 - versionName "134" + versionCode 148 + versionName "148" dimension "abi" } } @@ -77,10 +77,9 @@ android { enable true reset() include 'arm64-v8a' - //include 'x86' - //include 'armeabi-v7a' - //include 'x86_64' - //include 'armeabi' + include 'x86' + include 'armeabi-v7a' + include 'x86_64' universalApk true } @@ -105,9 +104,9 @@ dependencies { implementation 'com.google.android.gms:play-services-ads:17.1.1' implementation "cz.msebera.android:httpclient:4.4.1.2" - //x86Implementation "org.mozilla.geckoview:geckoview-nightly-x86:68.0.20190405111221" - //x86_64Implementation "org.mozilla.geckoview:geckoview-nightly-x86_64:68.0.20190405111221" - //armImplementation "org.mozilla.geckoview:geckoview-nightly-armeabi-v7a:68.0.20190405111221" + x86Implementation "org.mozilla.geckoview:geckoview-nightly-x86:68.0.20190405111221" + x86_64Implementation "org.mozilla.geckoview:geckoview-nightly-x86_64:68.0.20190405111221" + armImplementation "org.mozilla.geckoview:geckoview-nightly-armeabi-v7a:68.0.20190405111221" aarch64Implementation "org.mozilla.geckoview:geckoview-nightly-arm64-v8a:68.0.20190405111221" implementation 'com.crashlytics.sdk.android:crashlytics:2.9.9' diff --git a/app/src/main/java/com/darkweb/genesissearchengine/ProxySettings.java b/app/src/main/java/com/darkweb/genesissearchengine/ProxySettings.java new file mode 100644 index 00000000..1fc6d483 --- /dev/null +++ b/app/src/main/java/com/darkweb/genesissearchengine/ProxySettings.java @@ -0,0 +1,140 @@ +package com.darkweb.genesissearchengine; + +import java.lang.reflect.Constructor; +import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; + +import cz.msebera.android.httpclient.HttpHost; +import android.content.Context; +import android.os.Build; +import android.util.Log; + +/** + * Utility class for setting WebKit proxy used by Android WebView + * + */ +public class ProxySettings { + + private static final String TAG = "GAEProxy.ProxySettings"; + + static final int PROXY_CHANGED = 193; + + private static Object getDeclaredField(Object obj, String name) throws SecurityException, + NoSuchFieldException, IllegalArgumentException, IllegalAccessException { + Field f = obj.getClass().getDeclaredField(name); + f.setAccessible(true); + Object out = f.get(obj); + // System.out.println(obj.getClass().getName() + "." + name + " = "+ + // out); + return out; + } + + public static Object getRequestQueue(Context ctx) throws Exception { + Object ret = null; + Class networkClass = Class.forName("android.webkit.Network"); + if (networkClass != null) { + Object networkObj = invokeMethod(networkClass, "getInstance", new Object[] { ctx }, + Context.class); + if (networkObj != null) { + ret = getDeclaredField(networkObj, "mRequestQueue"); + } + } + return ret; + } + + private static Object invokeMethod(Object object, String methodName, Object[] params, + Class... types) throws Exception { + Object out = null; + Class c = object instanceof Class ? (Class) object : object.getClass(); + if (types != null) { + Method method = c.getMethod(methodName, types); + out = method.invoke(object, params); + } else { + Method method = c.getMethod(methodName); + out = method.invoke(object); + } + // System.out.println(object.getClass().getName() + "." + methodName + + // "() = "+ out); + return out; + } + + public static void resetProxy(Context ctx) throws Exception { + Object requestQueueObject = getRequestQueue(ctx); + if (requestQueueObject != null) { + setDeclaredField(requestQueueObject, "mProxyHost", null); + } + } + + private static void setDeclaredField(Object obj, String name, Object value) + throws SecurityException, NoSuchFieldException, IllegalArgumentException, + IllegalAccessException { + Field f = obj.getClass().getDeclaredField(name); + f.setAccessible(true); + f.set(obj, value); + } + + /** + * Override WebKit Proxy settings + * + * @param ctx + * Android ApplicationContext + * @param host + * @param port + * @return true if Proxy was successfully set + */ + public static boolean setProxy(Context ctx, String host, int port) { + boolean ret = false; + setSystemProperties(host, port); + + try { + if (Build.VERSION.SDK_INT < 14) { + + Object requestQueueObject = getRequestQueue(ctx); + if (requestQueueObject != null) { + // Create Proxy config object and set it into request Q + HttpHost httpHost = new HttpHost(host, port, "http"); + + setDeclaredField(requestQueueObject, "mProxyHost", httpHost); + ret = true; + } + + } else { + ret = setICSProxy(host, port); + } + } catch (Exception e) { + Log.e(TAG, "error setting up webkit proxying", e); + } + return ret; + } + + private static boolean setICSProxy(String host, int port) throws ClassNotFoundException, + NoSuchMethodException, IllegalArgumentException, InstantiationException, + IllegalAccessException, InvocationTargetException { + Class webViewCoreClass = Class.forName("android.webkit.WebViewCore"); + Class proxyPropertiesClass = Class.forName("android.net.ProxyProperties"); + if (webViewCoreClass != null && proxyPropertiesClass != null) { + Method m = webViewCoreClass.getDeclaredMethod("sendStaticMessage", Integer.TYPE, + Object.class); + Constructor c = proxyPropertiesClass.getConstructor(String.class, Integer.TYPE, + String.class); + m.setAccessible(true); + c.setAccessible(true); + Object properties = c.newInstance(host, port, null); + m.invoke(null, PROXY_CHANGED, properties); + return true; + } + return false; + + } + + private static void setSystemProperties(String host, int port) { + + System.setProperty("http.proxyHost", host); + System.setProperty("http.proxyPort", port + ""); + + System.setProperty("https.proxyHost", host); + System.setProperty("https.proxyPort", port + ""); + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/darkweb/genesissearchengine/admanager.java b/app/src/main/java/com/darkweb/genesissearchengine/admanager.java index 65996619..e3473bbd 100644 --- a/app/src/main/java/com/darkweb/genesissearchengine/admanager.java +++ b/app/src/main/java/com/darkweb/genesissearchengine/admanager.java @@ -13,7 +13,7 @@ public class admanager { return ourInstance; } private InterstitialAd mInterstitialAd; - + int adCount = 0; private admanager() { } @@ -56,10 +56,41 @@ public class admanager { }); } - public void showAd() + public void showAd(boolean isAdForced) { - mInterstitialAd.show(); - mInterstitialAd.loadAd(new AdRequest.Builder().build()); + + if(!mInterstitialAd.isLoading() && !mInterstitialAd.isLoaded()) + { + mInterstitialAd.loadAd(new AdRequest.Builder().build()); + if(isAdForced || adCount==0 || adCount%3==0) + { + adCount = 0; + } + else + { + adCount+=1; + } + } + else + { + if(mInterstitialAd.isLoaded()) + { + if(isAdForced) + { + mInterstitialAd.show(); + adCount = 1; + } + else + { + if(adCount%3==0) + { + mInterstitialAd.show(); + } + adCount += 1; + } + } + } + } } diff --git a/app/src/main/java/com/darkweb/genesissearchengine/application_controller.java b/app/src/main/java/com/darkweb/genesissearchengine/application_controller.java index fbd3def1..e7704e93 100644 --- a/app/src/main/java/com/darkweb/genesissearchengine/application_controller.java +++ b/app/src/main/java/com/darkweb/genesissearchengine/application_controller.java @@ -1,8 +1,11 @@ package com.darkweb.genesissearchengine; import android.content.Context; +import android.content.Intent; import android.content.pm.ActivityInfo; import android.graphics.Color; +import android.graphics.drawable.Drawable; +import android.net.Uri; import android.os.Build; import android.os.Handler; import android.support.constraint.ConstraintLayout; @@ -77,7 +80,7 @@ public class application_controller extends AppCompatActivity initializeBackgroundColor(); //setOrientation(); setContentView(R.layout.application_view); - orbot_manager.getInstance().initializeTorClient(this); + //orbot_manager.getInstance().initializeTorClient(this); initializeStatus(); initializeRunnable(); initializeConnections(); @@ -150,17 +153,17 @@ public class application_controller extends AppCompatActivity public void initializeConnections() { - webView1 = (WebView) findViewById(R.id.pageLoader1); - webView2 = (WebView) findViewById(R.id.pageLoader2); - progressBar = (ProgressBar) findViewById(R.id.progressBar); - requestFailure = (ConstraintLayout) findViewById(R.id.requestFailure); - splashScreen = (ConstraintLayout) findViewById(R.id.splashScreen); - reloadButton = (Button) findViewById(R.id.reloadButton); - homeButton = (ImageButton) findViewById(R.id.home); - searchbar = (EditText) findViewById(R.id.search); - floatingButton = (FloatingActionButton) findViewById(R.id.floatingActionButton3); - topbar = (LinearLayout) findViewById(R.id.topbar); - webLoader = (GeckoView) findViewById(R.id.webLoader); + webView1 = findViewById(R.id.pageLoader1); + webView2 = findViewById(R.id.pageLoader2); + progressBar = findViewById(R.id.progressBar); + requestFailure = findViewById(R.id.requestFailure); + splashScreen = findViewById(R.id.splashScreen); + reloadButton = findViewById(R.id.reloadButton); + homeButton = findViewById(R.id.home); + searchbar = findViewById(R.id.search); + floatingButton = findViewById(R.id.floatingActionButton3); + topbar = findViewById(R.id.topbar); + webLoader = findViewById(R.id.webLoader); } public void initializeWebViews() @@ -181,6 +184,12 @@ public class application_controller extends AppCompatActivity webLoader.setSession(session1); session1.setProgressDelegate(new progressDelegate()); webLoader.setVisibility(View.INVISIBLE); + + Drawable img = getResources().getDrawable( R.drawable.lock ); + searchbar.measure(0, 0); + img.setBounds( 0, (int)(searchbar.getMeasuredHeight()*0.00), (int)(searchbar.getMeasuredHeight()*1.10), (int)(searchbar.getMeasuredHeight()*0.69) ); + //img.setBounds( 0, 0, 50, 31 ); + searchbar.setCompoundDrawables( img, null, null, null ); } /*Initialization*/ @@ -203,9 +212,11 @@ public class application_controller extends AppCompatActivity webView2.animate().setDuration(0).alpha(0f); progressBar.setVisibility(View.INVISIBLE); requestFailure.animate().setDuration(0).alpha(0.0f); - Log.i("PROBLEM26",""); progressBar.animate().setDuration(150).alpha(0f); + webView1.loadUrl(constants.backendUrl); + try {Thread.sleep(100);} catch (Exception e) {} + getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); loadURLAnimate(constants.backendUrl); initializeViewClients(); @@ -272,6 +283,22 @@ public class application_controller extends AppCompatActivity @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { + URL host = null; + try + { + host = new URL(url); + if(host.getHost().contains("play.google.com")) + { + Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=com.darkweb.genesissearchengine")); + startActivity(browserIntent); + return true; + } + } + catch (MalformedURLException e) + { + e.printStackTrace(); + } + if(url.equals(searchbar.getText().toString())) { view.stopLoading(); @@ -463,12 +490,10 @@ class progressDelegate implements GeckoSession.ProgressDelegate } datamodel.getInstance().setIsLoadingURL(true); - if(!isBlackPage) + if(!isBlackPage && !wasBackPressed) { - Log.i("HUTEES : 1","11"); searchbar.setText(url); checkSSLTextColor(); - //initGeckoFailureHandler(); } if(!isBlackPage && progressBar.getVisibility() == View.INVISIBLE) { @@ -480,7 +505,6 @@ class progressDelegate implements GeckoSession.ProgressDelegate @Override public void onPageStop(GeckoSession session, boolean success) { - Log.i("STATUS-- : ",success+""); if(!success) { initGeckoFailureHandler(isGeckoURLLoadded); @@ -488,7 +512,6 @@ class progressDelegate implements GeckoSession.ProgressDelegate } if(success) { - Log.i("PROBLEM14",""); isGeckoURLLoadded = false; } } @@ -500,17 +523,12 @@ class progressDelegate implements GeckoSession.ProgressDelegate { geckoHandler.removeCallbacks(geckoRunnableError); geckoHandler = null; - Log.i("HUTEES : 4","11"); } if(progress>=100) { isGeckoURLLoadded = true; floatingButton.animate().alpha(1); - if(status.currentURL.contains("://boogle.store")) - { - admanager.getInstance().showAd(); - } if(!isLoadedUrlSet &&!isOnnionUrlHalted) { webLoader.bringToFront(); @@ -521,9 +539,16 @@ class progressDelegate implements GeckoSession.ProgressDelegate boolean isBlackPage = url.equals("about:blank"); if(!isBlackPage && !wasBackPressed) { - traceUrlList.add(status.currentURL); - searchbar.setText(url); checkSSLTextColor(); + traceUrlList.add(status.currentURL); + if(status.currentURL.contains("boogle.store")) + { + admanager.getInstance().showAd(true); + } + else + { + admanager.getInstance().showAd(false); + } status.currentURL = url; } wasBackPressed=false; @@ -531,16 +556,10 @@ class progressDelegate implements GeckoSession.ProgressDelegate progressBar.animate().setDuration(150).alpha(0f).withEndAction((() -> progressBar.setVisibility(View.INVISIBLE)));; isLoadedUrlSet = true; } - else if(progress<100) - { - //Log.i("HUTEES : 3","11"); - //initGeckoFailureHandler(); - } if(progress>=100) { datamodel.getInstance().setIsLoadingURL(false); } - //handler.removeCallbacks(geckoRunnable); } @Override @@ -619,6 +638,7 @@ class progressDelegate implements GeckoSession.ProgressDelegate searchbar.setText("https://genesis.onion"); checkSSLTextColor(); status.currentURL="https://boogle.store"; + traceUrlList.clear(); progressBar.setAlpha(0f); progressBar.setVisibility(View.VISIBLE); Log.i("PROBLEM18",""); @@ -759,13 +779,11 @@ class progressDelegate implements GeckoSession.ProgressDelegate } else { - if(orbot_manager.getInstance().reinitOrbot(this)) + if(orbot_manager.getInstance().reinitOrbot(this) && progressBar.getAlpha()==0) { - searchbar.setText(traceUrlList.peek().toString().replaceAll("boogle.store","genesis.onion")); status.currentURL = traceUrlList.peek().toString(); - String prevURL = traceUrlList.pop().toString(); + traceUrlList.pop().toString(); boolean init_status=orbot_manager.getInstance().reinitOrbot(application_controller.this); - //isOnnionUrlHalted = true; if(init_status) { searchbar.setText(status.currentURL.replaceAll("boogle.store","genesis.onion")); @@ -774,13 +792,7 @@ class progressDelegate implements GeckoSession.ProgressDelegate progressBar.setVisibility(View.VISIBLE); wasBackPressed = true; requestFailure.animate().alpha(0); - session1.goBack(); - } - else - { - session1.stop(); - session1.close(); - orbot_manager.getInstance().reinitOrbot(application_controller.this); + session1.loadUri(status.currentURL); } } } diff --git a/app/src/main/java/com/darkweb/genesissearchengine/constants.java b/app/src/main/java/com/darkweb/genesissearchengine/constants.java index 4a1e28be..255b2576 100644 --- a/app/src/main/java/com/darkweb/genesissearchengine/constants.java +++ b/app/src/main/java/com/darkweb/genesissearchengine/constants.java @@ -2,7 +2,8 @@ package com.darkweb.genesissearchengine; public class constants { - public static String backendUrl = "https://boogle.store"; + //public static String backendUrl = "https://boogle.store"; + public static String backendUrl = "http://msydqstlz2kzerdg.onion/"; public static String backendUrlHost = "boogle.store"; public static String frontEndUrlHost = "genesis.store"; public static String allowedHost = ".onion"; diff --git a/app/src/main/java/com/darkweb/genesissearchengine/message_manager.java b/app/src/main/java/com/darkweb/genesissearchengine/message_manager.java index 2d29c8a2..e02180ab 100644 --- a/app/src/main/java/com/darkweb/genesissearchengine/message_manager.java +++ b/app/src/main/java/com/darkweb/genesissearchengine/message_manager.java @@ -21,12 +21,12 @@ public class message_manager { { CFAlertDialog.Builder builder = new CFAlertDialog.Builder(application_context) .setDialogStyle(CFAlertDialog.CFAlertStyle.ALERT) - .setTitle("DeepWeb Gateway | Welcome") + .setTitle("Welcome | Deep Web Gateway") .setBackgroundColor(Color.argb(230,33,45,69)) .setTextColor(Color.argb(255,0,38,77)) - .setMessage("\nWelcome to DeepWeb | Darkweb Gateway. This application provide you a platform to Search and Open DarkWeb urls.\n\nYou cannot open any url related to normal internet as its not the intended purpose. You can check out following urls to get yourself started\n\nHere are few Suggestions\n") + .setMessage("\nWelcome to Deep Web | Dark Web Gateway. This application provide you a platform to Search and Open Dark Web urls.\n\nYou cannot open any url related to normal internet as its not the intended purpose. You can check out following urls to get yourself started\n\nHere are few Suggestions\n") - .addButton("DeepWeb Online Market", -1, -1, CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED , (dialog, which) -> { + .addButton("Deep Web Online Market", -1, -1, CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED , (dialog, which) -> { dialog.dismiss(); controller.initializePopupView("https://boogle.store/search?q=black+market&p_num=1&s_type=all"); controller.loadURLAnimate("https://boogle.store/search?q=black+market&p_num=1&s_type=all"); @@ -36,7 +36,7 @@ public class message_manager { controller.initializePopupView("https://boogle.store/search?q=leaked+document&p_num=1&s_type=all&p_num=1&s_type=all"); controller.loadURLAnimate("https://boogle.store/search?q=leaked+document&p_num=1&s_type=all&p_num=1&s_type=all"); }) - .addButton("Darkweb News and Articles", -1, -1, CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED , (dialog, which) -> { + .addButton("Dark Web News and Articles", -1, -1, CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED , (dialog, which) -> { dialog.dismiss(); controller.initializePopupView("https://boogle.store/search?q=latest%20news&p_num=1&s_type=news"); controller.loadURLAnimate("https://boogle.store/search?q=latest%20news&p_num=1&s_type=news"); @@ -76,7 +76,7 @@ public class message_manager { { CFAlertDialog.Builder builder = new CFAlertDialog.Builder(application_context) .setDialogStyle(CFAlertDialog.CFAlertStyle.BOTTOM_SHEET) - .setTitle("Darkweb URL | Invalid URL") + .setTitle("Dark Web URL | Invalid URL") .setBackgroundColor(Color.argb(230,33,45,69)) .setTextColor(Color.argb(255,255,255,255)) .setMessage("This software can only be used to access hidden web such as \"Onion\" and \"I2P\" \n\nFor accessing Surface Web use Google or Bing\n") @@ -110,7 +110,7 @@ public class message_manager { { CFAlertDialog.Builder builder = new CFAlertDialog.Builder(application_context) .setDialogStyle(CFAlertDialog.CFAlertStyle.BOTTOM_SHEET) - .setTitle("Darkweb URL | Invalid") + .setTitle("Dark Web URL | Invalid") .setBackgroundColor(Color.argb(230,33,45,69)) .setTextColor(Color.argb(255,255,255,255)) .setMessage("This software can only be used to access hidden web such as \"Onion\" and \"I2P\" \n\nFor accessing Surface Web use Google or Bing\n") @@ -128,7 +128,7 @@ public class message_manager { .setTitle("URL Reported Successfully") .setBackgroundColor(Color.argb(230,33,45,69)) .setTextColor(Color.argb(255,255,255,255)) - .setMessage("URL has been succuessfully repotorted. It will take about a week to completely remove this website from our server\n") + .setMessage("URL has been successfully reported. It will take about a week to completely remove this website from our servers\n") .addButton("Dismiss", -1, -1, CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) -> { dialog.dismiss(); }); @@ -140,7 +140,7 @@ public class message_manager { { CFAlertDialog.Builder builder = new CFAlertDialog.Builder(application_context) .setDialogStyle(CFAlertDialog.CFAlertStyle.BOTTOM_SHEET) - .setTitle("Report URL | "+status.currentURL.substring(0,status.currentURL.indexOf(".onion"))) + .setTitle("Report This Website") .setBackgroundColor(Color.argb(230,33,45,69)) .setTextColor(Color.argb(255,255,255,255)) .setMessage("If you think url is illegal or disturbing report us so that we can update our database\n") @@ -162,7 +162,7 @@ public class message_manager { { CFAlertDialog.Builder builder = new CFAlertDialog.Builder(application_context) .setDialogStyle(CFAlertDialog.CFAlertStyle.BOTTOM_SHEET) - .setTitle("Initializing Darkweb") + .setTitle("Initializing Dark Web") .setBackgroundColor(Color.argb(230,33,45,69)) .setTextColor(Color.argb(255,255,255,255)) .setMessage("Please wait! While we connect you to hidden web. This might take few seconds\n") diff --git a/app/src/main/java/com/darkweb/genesissearchengine/orbot_manager.java b/app/src/main/java/com/darkweb/genesissearchengine/orbot_manager.java index 4cf5a240..2dc00fbc 100644 --- a/app/src/main/java/com/darkweb/genesissearchengine/orbot_manager.java +++ b/app/src/main/java/com/darkweb/genesissearchengine/orbot_manager.java @@ -13,6 +13,7 @@ public class orbot_manager { boolean isOrbotRunning = false; boolean isLoading = false; OnionProxyManager onionProxyManager = null; + Context applicationContext = null; public static orbot_manager getInstance() { return ourInstance; @@ -37,6 +38,7 @@ public class orbot_manager { public void restartOrbot(Context applicationContext) { + this.applicationContext = applicationContext; isOrbotRunning = false; status.isTorInitialized = false; if(onionProxyManager!=null) @@ -132,6 +134,7 @@ public class orbot_manager { PrefsHelper.setPref("general.useragent.override", "Mozilla/5.0 (Windows NT 6.1; rv:17.0) Gecko/20100101 Firefox/17.0"); PrefsHelper.setPref("privacy.donottrackheader.enabled",false); PrefsHelper.setPref("privacy.donottrackheader.value",1); + ProxySettings.setProxy(applicationContext, "127.0.0.1", status.port); } diff --git a/app/src/main/res/drawable/lockstyle.xml b/app/src/main/res/drawable/lockstyle.xml index e4606a8a..e23668a9 100644 --- a/app/src/main/res/drawable/lockstyle.xml +++ b/app/src/main/res/drawable/lockstyle.xml @@ -3,8 +3,8 @@ \ No newline at end of file diff --git a/app/src/main/res/layout-v26/application_view.xml b/app/src/main/res/layout-v26/application_view.xml index 734a7b5d..cca7f8ac 100644 --- a/app/src/main/res/layout-v26/application_view.xml +++ b/app/src/main/res/layout-v26/application_view.xml @@ -132,7 +132,6 @@ android:textColor="#333333" android:selectAllOnFocus="true" android:paddingLeft="10dp" - android:drawableLeft="@drawable/lockstyle" android:paddingRight="15dp" android:textColorHighlight="#b3d1ff" android:background="@drawable/searchbar" diff --git a/app/src/main/res/layout/application_view.xml b/app/src/main/res/layout/application_view.xml index 734a7b5d..cca7f8ac 100644 --- a/app/src/main/res/layout/application_view.xml +++ b/app/src/main/res/layout/application_view.xml @@ -132,7 +132,6 @@ android:textColor="#333333" android:selectAllOnFocus="true" android:paddingLeft="10dp" - android:drawableLeft="@drawable/lockstyle" android:paddingRight="15dp" android:textColorHighlight="#b3d1ff" android:background="@drawable/searchbar" diff --git a/app/src/main/res/mipmap-anydpi-v26/lock.png b/app/src/main/res/mipmap-anydpi-v26/lock.png new file mode 100644 index 0000000000000000000000000000000000000000..d43e55599728fb697b7b4b4c723c0f4ba855ceb5 GIT binary patch literal 3067 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 literal 0 HcmV?d00001