diff --git a/app/build.gradle b/app/build.gradle
index 4cdc6400..90771f2d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -4,7 +4,7 @@ apply plugin: 'maven'
apply plugin: 'io.fabric'
ext {
- geckoviewChannel = "nightly"
+ geckoviewChannel = ""
geckoviewVersion = "64.0.20180927100037"
}
@@ -43,26 +43,31 @@ android {
flavorDimensions "abi"
productFlavors {
- arm {
- versionCode 149
- versionName "145"
+ /*arm {
+ versionCode 152
+ versionName "152"
dimension "abi"
- }
+ buildConfigField "String", "VARIANT", "\"arm\""
+ }*/
aarch64 {
- versionCode 150
- versionName "146"
+ versionCode 153
+ versionName "153"
dimension "abi"
+ buildConfigField "String", "VARIANT", "\"aarch64\""
}
- x86_64 {
- versionCode 151
- versionName "147"
- dimension "abi"
- }
+ /*
x86 {
- versionCode 148
- versionName "148"
+ versionCode 154
+ versionName "154"
dimension "abi"
+ buildConfigField "String", "VARIANT", "\"i686\""
}
+ /*x86_64 {
+ versionCode 155
+ versionName "155"
+ dimension "abi"
+ buildConfigField "String", "VARIANT", "\"x86_64\""
+ }*/
}
@@ -104,10 +109,10 @@ 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"
- aarch64Implementation "org.mozilla.geckoview:geckoview-nightly-arm64-v8a:68.0.20190405111221"
+ //x86Implementation "org.mozilla.geckoview:geckoview-x86:67.0.20190521210220"
+ //x86_64Implementation "org.mozilla.geckoview:geckoview-x86_64:67.0.20190521210220"
+ //armImplementation "org.mozilla.geckoview:geckoview-armeabi-v7a:67.0.20190521210220"
+ aarch64Implementation "org.mozilla.geckoview:geckoview-arm64-v8a:67.0.20190521210220"
implementation 'com.crashlytics.sdk.android:crashlytics:2.9.9'
implementation 'com.crowdfire.cfalertdialog:cfalertdialog:1.1.0'
diff --git a/app/src/main/java/com/darkweb/genesissearchengine/ProxySettings.java b/app/src/main/java/com/darkweb/genesissearchengine/ProxySettings.java
deleted file mode 100644
index 1fc6d483..00000000
--- a/app/src/main/java/com/darkweb/genesissearchengine/ProxySettings.java
+++ /dev/null
@@ -1,140 +0,0 @@
-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/WebkitProxy3.java b/app/src/main/java/com/darkweb/genesissearchengine/WebkitProxy3.java
new file mode 100644
index 00000000..a8cfb434
--- /dev/null
+++ b/app/src/main/java/com/darkweb/genesissearchengine/WebkitProxy3.java
@@ -0,0 +1,313 @@
+package com.darkweb.genesissearchengine;
+
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.content.Intent;
+import android.net.Proxy;
+import android.os.Build;
+import android.os.Parcelable;
+import android.util.Log;
+import android.webkit.WebView;
+
+import cz.msebera.android.httpclient.HttpHost;
+
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+import android.util.ArrayMap;
+
+/**
+ * Code from http://stackoverflow.com/questions/4488338/webview-android-proxy
+ */
+public class WebkitProxy3 {
+
+ public static String LOG_TAG = "WebkitProxy3";
+
+ public static boolean setProxy(WebView webview, String host, int port, String applicationClassName) {
+ if (host == null)
+ return false;
+ // 3.2 (HC) or lower
+ if (Build.VERSION.SDK_INT <= 13) {
+ return setProxyUpToHC(webview, host, port);
+ }
+ // ICS: 4.0
+ else if (Build.VERSION.SDK_INT <= 15) {
+ return setProxyICS(webview, host, port);
+ }
+ // 4.1-4.3 (JB)
+ else if (Build.VERSION.SDK_INT <= 18) {
+ return setProxyJB(webview, host, port);
+ }
+ // 4.4 (KK) & 5.0 (Lollipop)
+ else {
+ return setProxyKKPlus(webview, host, port, applicationClassName);
+ }
+ }
+
+ /**
+ * Set Proxy for Android 3.2 and below.
+ */
+ @SuppressWarnings("all")
+ private static boolean setProxyUpToHC(WebView webview, String host, int port) {
+ Log.d(LOG_TAG, "Setting proxy with <= 3.2 API.");
+
+ HttpHost proxyServer = new HttpHost(host, port);
+ // Getting network
+ Class networkClass = null;
+ Object network = null;
+ try {
+ networkClass = Class.forName("android.webkit.Network");
+ if (networkClass == null) {
+ Log.e(LOG_TAG, "failed to get class for android.webkit.Network");
+ return false;
+ }
+ Method getInstanceMethod = networkClass.getMethod("getInstance", Context.class);
+ if (getInstanceMethod == null) {
+ Log.e(LOG_TAG, "failed to get getInstance method");
+ }
+ network = getInstanceMethod.invoke(networkClass, new Object[]{webview.getContext()});
+ } catch (Exception ex) {
+ Log.e(LOG_TAG, "error getting network: " + ex);
+ return false;
+ }
+ if (network == null) {
+ Log.e(LOG_TAG, "error getting network: network is null");
+ return false;
+ }
+ Object requestQueue = null;
+ try {
+ Field requestQueueField = networkClass
+ .getDeclaredField("mRequestQueue");
+ requestQueue = getFieldValueSafely(requestQueueField, network);
+ } catch (Exception ex) {
+ Log.e(LOG_TAG, "error getting field value");
+ return false;
+ }
+ if (requestQueue == null) {
+ Log.e(LOG_TAG, "Request queue is null");
+ return false;
+ }
+ Field proxyHostField = null;
+ try {
+ Class requestQueueClass = Class.forName("android.net.http.RequestQueue");
+ proxyHostField = requestQueueClass
+ .getDeclaredField("mProxyHost");
+ } catch (Exception ex) {
+ Log.e(LOG_TAG, "error getting proxy host field");
+ return false;
+ }
+
+ boolean temp = proxyHostField.isAccessible();
+ try {
+ proxyHostField.setAccessible(true);
+ proxyHostField.set(requestQueue, proxyServer);
+ } catch (Exception ex) {
+ Log.e(LOG_TAG, "error setting proxy host");
+ } finally {
+ proxyHostField.setAccessible(temp);
+ }
+
+ Log.d(LOG_TAG, "Setting proxy with <= 3.2 API successful!");
+ return true;
+ }
+
+ @SuppressWarnings("all")
+ private static boolean setProxyICS(WebView webview, String host, int port) {
+ try
+ {
+ Log.d(LOG_TAG, "Setting proxy with 4.0 API.");
+
+ Class jwcjb = Class.forName("android.webkit.JWebCoreJavaBridge");
+ Class params[] = new Class[1];
+ params[0] = Class.forName("android.net.ProxyProperties");
+ Method updateProxyInstance = jwcjb.getDeclaredMethod("updateProxy", params);
+
+ Class wv = Class.forName("android.webkit.WebView");
+ Field mWebViewCoreField = wv.getDeclaredField("mWebViewCore");
+ Object mWebViewCoreFieldInstance = getFieldValueSafely(mWebViewCoreField, webview);
+
+ Class wvc = Class.forName("android.webkit.WebViewCore");
+ Field mBrowserFrameField = wvc.getDeclaredField("mBrowserFrame");
+ Object mBrowserFrame = getFieldValueSafely(mBrowserFrameField, mWebViewCoreFieldInstance);
+
+ Class bf = Class.forName("android.webkit.BrowserFrame");
+ Field sJavaBridgeField = bf.getDeclaredField("sJavaBridge");
+ Object sJavaBridge = getFieldValueSafely(sJavaBridgeField, mBrowserFrame);
+
+ Class ppclass = Class.forName("android.net.ProxyProperties");
+ Class pparams[] = new Class[3];
+ pparams[0] = String.class;
+ pparams[1] = int.class;
+ pparams[2] = String.class;
+ Constructor ppcont = ppclass.getConstructor(pparams);
+
+ updateProxyInstance.invoke(sJavaBridge, ppcont.newInstance(host, port, null));
+
+ Log.d(LOG_TAG, "Setting proxy with 4.0 API successful!");
+ return true;
+ }
+ catch (Exception ex)
+ {
+ Log.e(LOG_TAG, "failed to set HTTP proxy: " + ex);
+ return false;
+ }
+ }
+
+ /**
+ * Set Proxy for Android 4.1 - 4.3.
+ */
+ @SuppressWarnings("all")
+ private static boolean setProxyJB(WebView webview, String host, int port) {
+ Log.d(LOG_TAG, "Setting proxy with 4.1 - 4.3 API.");
+
+ try {
+ Class wvcClass = Class.forName("android.webkit.WebViewClassic");
+ Class wvParams[] = new Class[1];
+ wvParams[0] = Class.forName("android.webkit.WebView");
+ Method fromWebView = wvcClass.getDeclaredMethod("fromWebView", wvParams);
+ Object webViewClassic = fromWebView.invoke(null, webview);
+
+ Class wv = Class.forName("android.webkit.WebViewClassic");
+ Field mWebViewCoreField = wv.getDeclaredField("mWebViewCore");
+ Object mWebViewCoreFieldInstance = getFieldValueSafely(mWebViewCoreField, webViewClassic);
+
+ Class wvc = Class.forName("android.webkit.WebViewCore");
+ Field mBrowserFrameField = wvc.getDeclaredField("mBrowserFrame");
+ Object mBrowserFrame = getFieldValueSafely(mBrowserFrameField, mWebViewCoreFieldInstance);
+
+ Class bf = Class.forName("android.webkit.BrowserFrame");
+ Field sJavaBridgeField = bf.getDeclaredField("sJavaBridge");
+ Object sJavaBridge = getFieldValueSafely(sJavaBridgeField, mBrowserFrame);
+
+ Class ppclass = Class.forName("android.net.ProxyProperties");
+ Class pparams[] = new Class[3];
+ pparams[0] = String.class;
+ pparams[1] = int.class;
+ pparams[2] = String.class;
+ Constructor ppcont = ppclass.getConstructor(pparams);
+
+ Class jwcjb = Class.forName("android.webkit.JWebCoreJavaBridge");
+ Class params[] = new Class[1];
+ params[0] = Class.forName("android.net.ProxyProperties");
+ Method updateProxyInstance = jwcjb.getDeclaredMethod("updateProxy", params);
+
+ updateProxyInstance.invoke(sJavaBridge, ppcont.newInstance(host, port, null));
+ } catch (Exception ex) {
+ Log.e(LOG_TAG,"Setting proxy with >= 4.1 API failed with error: " + ex.getMessage());
+ return false;
+ }
+
+ Log.d(LOG_TAG, "Setting proxy with 4.1 - 4.3 API successful!");
+ return true;
+ }
+
+ // from https://stackoverflow.com/questions/19979578/android-webview-set-proxy-programatically-kitkat
+ @SuppressLint("NewApi")
+ @SuppressWarnings("all")
+ private static boolean setProxyKKPlus(WebView webView, String host, int port, String applicationClassName) {
+ Log.d(LOG_TAG, "Setting proxy with >= 4.4 API.");
+
+ Context appContext = webView.getContext().getApplicationContext();
+ System.setProperty("http.proxyHost", host);
+ System.setProperty("http.proxyPort", port + "");
+ System.setProperty("https.proxyHost", host);
+ System.setProperty("https.proxyPort", port + "");
+ try {
+ Class applictionCls = Class.forName(applicationClassName);
+ Field loadedApkField = applictionCls.getField("mLoadedApk");
+ loadedApkField.setAccessible(true);
+ Object loadedApk = loadedApkField.get(appContext);
+ Class loadedApkCls = Class.forName("android.app.LoadedApk");
+ Field receiversField = loadedApkCls.getDeclaredField("mReceivers");
+ receiversField.setAccessible(true);
+ ArrayMap receivers = (ArrayMap) receiversField.get(loadedApk);
+ for (Object receiverMap : receivers.values()) {
+ for (Object rec : ((ArrayMap) receiverMap).keySet()) {
+ Class clazz = rec.getClass();
+ if (clazz != null && clazz.getName() != null && clazz.getName().contains("ProxyChangeListener")) {
+ Method onReceiveMethod = clazz.getDeclaredMethod("onReceive", Context.class, Intent.class);
+ if (onReceiveMethod == null)
+ continue;
+ Intent intent = new Intent(Proxy.PROXY_CHANGE_ACTION);
+
+ try {
+ /*********** optional, may be need in future *************/
+ String CLASS_NAME;
+ if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.KITKAT) {
+ CLASS_NAME = "android.net.ProxyProperties";
+ } else {
+ CLASS_NAME = "android.net.ProxyInfo";
+ }
+ Class cls = Class.forName(CLASS_NAME);
+ Constructor constructor = cls.getConstructor(String.class, Integer.TYPE, String.class);
+ constructor.setAccessible(true);
+ Object proxyProperties = constructor.newInstance(host, port, null);
+ intent.putExtra("proxy", (Parcelable) proxyProperties);
+ /*********** optional, may be need in future *************/
+ } catch (Exception e) {
+ StringWriter sw = new StringWriter();
+ e.printStackTrace(new PrintWriter(sw));
+ String exceptionAsString = sw.toString();
+ Log.v(LOG_TAG, e.getMessage());
+ Log.v(LOG_TAG, exceptionAsString);
+ }
+
+ onReceiveMethod.invoke(rec, appContext, intent);
+ }
+ }
+ }
+
+ Log.d(LOG_TAG, "Setting proxy with >= 4.4 API successful!");
+ return true;
+ } catch (ClassNotFoundException e) {
+ StringWriter sw = new StringWriter();
+ e.printStackTrace(new PrintWriter(sw));
+ String exceptionAsString = sw.toString();
+ Log.v(LOG_TAG, e.getMessage());
+ Log.v(LOG_TAG, exceptionAsString);
+ } catch (NoSuchFieldException e) {
+ StringWriter sw = new StringWriter();
+ e.printStackTrace(new PrintWriter(sw));
+ String exceptionAsString = sw.toString();
+ Log.v(LOG_TAG, e.getMessage());
+ Log.v(LOG_TAG, exceptionAsString);
+ } catch (IllegalAccessException e) {
+ StringWriter sw = new StringWriter();
+ e.printStackTrace(new PrintWriter(sw));
+ String exceptionAsString = sw.toString();
+ Log.v(LOG_TAG, e.getMessage());
+ Log.v(LOG_TAG, exceptionAsString);
+ } catch (IllegalArgumentException e) {
+ StringWriter sw = new StringWriter();
+ e.printStackTrace(new PrintWriter(sw));
+ String exceptionAsString = sw.toString();
+ Log.v(LOG_TAG, e.getMessage());
+ Log.v(LOG_TAG, exceptionAsString);
+ } catch (NoSuchMethodException e) {
+ StringWriter sw = new StringWriter();
+ e.printStackTrace(new PrintWriter(sw));
+ String exceptionAsString = sw.toString();
+ Log.v(LOG_TAG, e.getMessage());
+ Log.v(LOG_TAG, exceptionAsString);
+ } catch (InvocationTargetException e) {
+ StringWriter sw = new StringWriter();
+ e.printStackTrace(new PrintWriter(sw));
+ String exceptionAsString = sw.toString();
+ Log.v(LOG_TAG, e.getMessage());
+ Log.v(LOG_TAG, exceptionAsString);
+ }
+ return false;
+ }
+
+ private static Object getFieldValueSafely(Field field, Object classInstance) throws IllegalArgumentException, IllegalAccessException {
+ boolean oldAccessibleValue = field.isAccessible();
+ field.setAccessible(true);
+ Object result = field.get(classInstance);
+ field.setAccessible(oldAccessibleValue);
+ return result;
+ }
+}
\ 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 e3473bbd..62e9bea3 100644
--- a/app/src/main/java/com/darkweb/genesissearchengine/admanager.java
+++ b/app/src/main/java/com/darkweb/genesissearchengine/admanager.java
@@ -1,6 +1,7 @@
package com.darkweb.genesissearchengine;
import android.content.Context;
+import android.util.Log;
import com.google.android.gms.ads.AdListener;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.InterstitialAd;
@@ -59,31 +60,40 @@ public class admanager {
public void showAd(boolean isAdForced)
{
+ Log.i("SHITSS","SHITSS 1" + " --- " + mInterstitialAd.isLoading() + " --- " + mInterstitialAd.isLoaded());
if(!mInterstitialAd.isLoading() && !mInterstitialAd.isLoaded())
{
+ Log.i("SHITSS","SHITSS 2");
mInterstitialAd.loadAd(new AdRequest.Builder().build());
if(isAdForced || adCount==0 || adCount%3==0)
{
+ Log.i("SHITSS","SHITSS 3");
adCount = 0;
}
else
{
+ Log.i("SHITSS","SHITSS 4");
adCount+=1;
}
}
else
{
+ Log.i("SHITSS","SHITSS 5");
if(mInterstitialAd.isLoaded())
{
+ Log.i("SHITSS","SHITSS 6");
if(isAdForced)
{
+ Log.i("SHITSS","SHITSS 7");
mInterstitialAd.show();
adCount = 1;
}
else
{
+ Log.i("SHITSS","SHITSS 8");
if(adCount%3==0)
{
+ Log.i("SHITSS","SHITSS 9");
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 e7704e93..6d106b9f 100644
--- a/app/src/main/java/com/darkweb/genesissearchengine/application_controller.java
+++ b/app/src/main/java/com/darkweb/genesissearchengine/application_controller.java
@@ -3,7 +3,10 @@ package com.darkweb.genesissearchengine;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ActivityInfo;
+import android.content.res.Configuration;
+import android.content.res.Resources;
import android.graphics.Color;
+import android.graphics.Point;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Build;
@@ -17,14 +20,15 @@ import android.text.Spanned;
import android.text.style.ForegroundColorSpan;
import android.util.Log;
import android.util.Patterns;
-import android.view.KeyEvent;
-import android.view.View;
-import android.view.Window;
-import android.view.WindowManager;
+import android.view.*;
+import android.view.animation.Animation;
+import android.view.animation.AnimationUtils;
+import android.view.animation.RotateAnimation;
import android.view.inputmethod.InputMethodManager;
import android.webkit.*;
import android.widget.*;
import com.crashlytics.android.Crashlytics;
+import com.example.myapplication.BuildConfig;
import io.fabric.sdk.android.Fabric;
import java.io.IOException;
import java.net.MalformedURLException;
@@ -37,6 +41,7 @@ import org.mozilla.geckoview.GeckoSession;
import org.mozilla.geckoview.GeckoView;
+import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import static java.lang.Thread.sleep;
public class application_controller extends AppCompatActivity
@@ -48,7 +53,7 @@ public class application_controller extends AppCompatActivity
private GeckoView webLoader;
private ProgressBar progressBar;
private ConstraintLayout requestFailure;
- private ConstraintLayout splashScreen;
+ private FrameLayout splashScreen;
private FloatingActionButton floatingButton;
private Button reloadButton;
private ImageButton homeButton;
@@ -56,7 +61,7 @@ public class application_controller extends AppCompatActivity
private LinearLayout topbar;
private GeckoSession session1;
private GeckoRuntime runtime1;
- private String version_code = "3.0";
+ private String version_code = "5.0";
private boolean wasBackPressed = false;
private boolean isLoadedUrlSet = false;
private boolean isGeckoURLLoadded = false;
@@ -76,18 +81,27 @@ public class application_controller extends AppCompatActivity
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
- //initializeCrashlytics();
- initializeBackgroundColor();
- //setOrientation();
- setContentView(R.layout.application_view);
- //orbot_manager.getInstance().initializeTorClient(this);
- initializeStatus();
- initializeRunnable();
- initializeConnections();
- initializeWebViews();
- initializeView();
- initializeAds();
- checkSSLTextColor();
+
+ if(BuildConfig.FLAVOR.equals("aarch64")&&Build.SUPPORTED_ABIS[0].equals("arm64-v8a") || BuildConfig.FLAVOR.equals("arm")&&Build.SUPPORTED_ABIS[0].equals("armeabi-v7a") || BuildConfig.FLAVOR.equals("x86")&&Build.SUPPORTED_ABIS[0].equals("x86") || BuildConfig.FLAVOR.equals("x86_64")&&Build.SUPPORTED_ABIS[0].equals("x86_64"))
+ {
+ //initializeCrashlytics();
+ initializeBackgroundColor();
+ setContentView(R.layout.application_view);
+ orbot_manager.getInstance().initializeTorClient(this, webView1, webView2);
+ initializeStatus();
+ initializeRunnable();
+ initializeConnections();
+ initializeWebViews();
+ initializeView();
+ initializeAds();
+ checkSSLTextColor();
+ initSplashScreen();
+ }
+ else
+ {
+ setContentView(R.layout.invalid_setup);
+ message_manager.getInstance().abiError(this,Build.SUPPORTED_ABIS[0]);
+ }
}
public void setOrientation()
@@ -95,6 +109,41 @@ public class application_controller extends AppCompatActivity
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
+ public void initSplashScreen()
+ {
+ ImageView view = findViewById(R.id.imageView_loading_back);
+ RotateAnimation rotate = new RotateAnimation(0, 360,
+ Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,
+ 0.5f);
+
+ rotate.setDuration(2000);
+ rotate.setRepeatCount(Animation.INFINITE);
+ view.setAnimation(rotate);
+
+ Display display = getWindowManager().getDefaultDisplay();
+ Point size = new Point();
+ display.getSize(size);
+ float width_x = size.x;
+ float height_y = size.y;
+
+ ImageView splashlogo = findViewById(R.id.backsplash);
+ ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) splashlogo.getLayoutParams();
+ //int height = Resources.getSystem().getDisplayMetrics().heightPixels+getStatusBarHeight(this);
+ //splashlogo.getLayoutParams().height = splashlogo.getLayoutParams().height-300;
+
+ params.topMargin = getStatusBarHeight(this)/2;
+ splashlogo.setLayoutParams(params);
+ }
+
+ public int getStatusBarHeight(Context c) {
+ int result = 0;
+ int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android");
+ if (resourceId > 0) {
+ result = getResources().getDimensionPixelSize(resourceId);
+ }
+ return result;
+ }
+
public void initializeBackgroundColor()
{
if (android.os.Build.VERSION.SDK_INT > Build.VERSION_CODES.M){
@@ -121,7 +170,7 @@ public class application_controller extends AppCompatActivity
String version = preference_manager.getInstance().getString("version","none",this);
if(!version.equals(version_code) && !version.equals("none"))
{
- message_manager.getInstance().versionWarning(this);
+ message_manager.getInstance().versionWarning(this,Build.SUPPORTED_ABIS[0]);
}
webRequestHandler.getInstance().getVersion(this);
}
@@ -168,7 +217,7 @@ public class application_controller extends AppCompatActivity
public void initializeWebViews()
{
- webRequestHandler.getInstance().initialization(webView1,webView2,progressBar,searchbar,requestFailure,this,splashScreen,this);
+ webRequestHandler.getInstance().initialization(webView1,webView2,progressBar,searchbar, splashScreen,this, requestFailure,this);
webView1.bringToFront();
Log.i("PROBLEM25","");
progressBar.animate().setDuration(150).alpha(0f);
@@ -214,9 +263,6 @@ public class application_controller extends AppCompatActivity
requestFailure.animate().setDuration(0).alpha(0.0f);
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();
@@ -347,7 +393,7 @@ public class application_controller extends AppCompatActivity
super.onPageFinished(view, url);
handler = new Handler();
- int delay = 800;
+ int delay = 200;
if(startPage>2)
{
delay = 0;
@@ -382,9 +428,26 @@ public class application_controller extends AppCompatActivity
status.hasApplicationLoaded = true;
handler = new Handler();
- splashScreen.animate().alpha(0.0f).setStartDelay(500).setDuration(300).setListener(null).withEndAction((() -> splashScreen.setVisibility(View.GONE)));
- versionChecker();
+ splashScreen.animate().alpha(0.0f).setStartDelay(100).setDuration(300).setListener(null).withEndAction((() -> splashScreen.setVisibility(View.GONE)));
+ Handler popuphandler = new Handler();
+
+ popuphandler.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ if(status.hasApplicationLoaded && !isTutorialPopupShown)
+ {
+ if(!helperMethod.readPrefs("FirstTimeLoaded",application_controller.this)) {
+ message_manager.getInstance().welcomeMessage(application_controller.this, application_controller.this);
+ isTutorialPopupShown = true;
+ }
+ else if(buildconstants.build_type.equals("local"))
+ {
+ versionChecker();
+ }
+ }
+ }
+ }, 2000);
}
@@ -393,21 +456,6 @@ public class application_controller extends AppCompatActivity
}
}, delay);
-
-
-
- Handler popuphandler = new Handler();
-
- popuphandler.postDelayed(new Runnable() {
- @Override
- public void run() {
- if(status.hasApplicationLoaded && !isTutorialPopupShown)
- {
- message_manager.getInstance().welcomeMessage(application_controller.this,application_controller.this);
- isTutorialPopupShown = true;
- }
- }
- }, 2000);
}
@Override
@@ -814,7 +862,6 @@ class progressDelegate implements GeckoSession.ProgressDelegate
public boolean onEditorClicked(TextView v, int actionId, KeyEvent event)
{
KeyboardUtils.hideKeyboard(application_controller.this);
- Log.i("FUCKOFF : ",actionId+"");
try
{
session1.stop();
@@ -870,16 +917,24 @@ class progressDelegate implements GeckoSession.ProgressDelegate
}
else
{
- loadURLAnimate("https://boogle.store/search?q="+v.getText().toString().replaceAll(" ","+")+"&p_num=1&s_type=all");
+ String editedURL = "https://boogle.store/search?q="+v.getText().toString().replaceAll(" ","+")+"&p_num=1&s_type=all";
+ status.currentURL = editedURL;
+ searchbar.setText(editedURL.replace("boogle.store","genesis.onion"));
+ searchbar.clearFocus();
+ loadURLAnimate(editedURL);
}
}
catch (IOException e)
{
- loadURLAnimate("https://boogle.store/search?q="+v.getText().toString().replaceAll(" ","+")+"&p_num=1&s_type=all");
+ String editedURL = "https://boogle.store/search?q="+v.getText().toString().replaceAll(" ","+")+"&p_num=1&s_type=all";
+ status.currentURL = editedURL;
+ searchbar.clearFocus();
+ searchbar.setText(editedURL.replace("boogle.store","genesis.onion"));
+ loadURLAnimate(editedURL);
e.printStackTrace();
}
- return false;
+ return true;
}
diff --git a/app/src/main/java/com/darkweb/genesissearchengine/buildconstants.java b/app/src/main/java/com/darkweb/genesissearchengine/buildconstants.java
new file mode 100644
index 00000000..d97d1013
--- /dev/null
+++ b/app/src/main/java/com/darkweb/genesissearchengine/buildconstants.java
@@ -0,0 +1,7 @@
+package com.darkweb.genesissearchengine;
+
+public class buildconstants
+{
+ //public static String build_type = "playstore";
+ public static String build_type = "local";
+}
diff --git a/app/src/main/java/com/darkweb/genesissearchengine/constants.java b/app/src/main/java/com/darkweb/genesissearchengine/constants.java
index 255b2576..66eb3133 100644
--- a/app/src/main/java/com/darkweb/genesissearchengine/constants.java
+++ b/app/src/main/java/com/darkweb/genesissearchengine/constants.java
@@ -2,8 +2,8 @@ package com.darkweb.genesissearchengine;
public class constants
{
- //public static String backendUrl = "https://boogle.store";
- public static String backendUrl = "http://msydqstlz2kzerdg.onion/";
+ 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/helperMethod.java b/app/src/main/java/com/darkweb/genesissearchengine/helperMethod.java
index 06d8b676..3b02280e 100644
--- a/app/src/main/java/com/darkweb/genesissearchengine/helperMethod.java
+++ b/app/src/main/java/com/darkweb/genesissearchengine/helperMethod.java
@@ -8,9 +8,12 @@ import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.preference.PreferenceManager;
+import java.io.*;
import java.util.List;
import java.util.UUID;
+import static android.content.Context.MODE_PRIVATE;
+
public class helperMethod
{
public static boolean isNetworkAvailable(Context application_context)
@@ -54,6 +57,22 @@ public class helperMethod
break;
}
}
+ }
+
+ public static String readInternalHTML(Context applicationContext)
+ {
+ SharedPreferences prefs = PreferenceManager
+ .getDefaultSharedPreferences(applicationContext);
+ return prefs.getString("internalhtml","");
+ }
+
+ public static void setInternalHTML(String html,Context applicationContext)
+ {
+ SharedPreferences prefs = PreferenceManager
+ .getDefaultSharedPreferences(applicationContext);
+ SharedPreferences.Editor edit = prefs.edit();
+ edit.putString("internalhtml", html);
+ edit.commit();
}
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 e02180ab..f9482780 100644
--- a/app/src/main/java/com/darkweb/genesissearchengine/message_manager.java
+++ b/app/src/main/java/com/darkweb/genesissearchengine/message_manager.java
@@ -2,7 +2,10 @@ package com.darkweb.genesissearchengine;
import android.app.Application;
import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
import android.graphics.Color;
+import android.net.Uri;
import com.crowdfire.cfalertdialog.CFAlertDialog;
public class message_manager {
@@ -17,8 +20,6 @@ public class message_manager {
public void welcomeMessage(Context application_context, application_controller controller)
{
- if(!helperMethod.readPrefs("FirstTimeLoaded",application_context))
- {
CFAlertDialog.Builder builder = new CFAlertDialog.Builder(application_context)
.setDialogStyle(CFAlertDialog.CFAlertStyle.ALERT)
.setTitle("Welcome | Deep Web Gateway")
@@ -51,7 +52,6 @@ public class message_manager {
helperMethod.savePrefs("FirstTimeLoaded",true,application_context);
});
builder.show();
- }
// Create Alert using Builder
@@ -87,6 +87,32 @@ public class message_manager {
builder.show();
}
+ public void abiError(Context application_context,String currentAbi)
+ {
+ CFAlertDialog.Builder builder = new CFAlertDialog.Builder(application_context)
+ .setDialogStyle(CFAlertDialog.CFAlertStyle.BOTTOM_SHEET)
+ .setTitle("Invalid Setup File")
+ .setBackgroundColor(Color.argb(230,33,45,69))
+ .setTextColor(Color.argb(255,255,255,255))
+ .onDismissListener(new DialogInterface.OnDismissListener() {
+ @Override
+ public void onDismiss(DialogInterface dialog) {
+ abiError(application_context,currentAbi);
+ }
+ })
+ .setMessage("Looks like you messed up the installation. Either Install it from playstore or follow the link")
+ .addButton("Local Upgrade", -1, -1, CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) -> {
+ Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://boogle.store/manual?abi="+currentAbi));
+ application_context.startActivity(browserIntent);
+ })
+ .addButton("Playstore Upgrade", -1, -1, CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) -> {
+ Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=com.darkweb.genesissearchengine"));
+ application_context.startActivity(browserIntent);
+ });
+
+ builder.show();
+ }
+
public void illegalWarningDialog(Context application_context,application_controller controller)
{
CFAlertDialog.Builder builder = new CFAlertDialog.Builder(application_context)
@@ -173,26 +199,20 @@ public class message_manager {
builder.show();
}
- public void versionWarning(Context application_context)
- {/*
- new LovelyStandardDialog(application_context)
- .setTopColorRes(R.color.header)
- .setIcon(R.drawable.logo)
- .setTitle("Update Application")
- .setMessage("A newer version is availabe please install to get better experience")
- .setPositiveButton(android.R.string.ok, new View.OnClickListener() {
- @Override
- public void onClick(View v)
- {
- String url = "http://boogle.store/android";
- Intent i = new Intent(Intent.ACTION_VIEW);
- i.setData(Uri.parse(url));
- application_context.startActivity(i);
- }
- })
- .setNegativeButton(android.R.string.no, null)
- .show();
- */
+ public void versionWarning(Context application_context,String currentAbi)
+ {
+ CFAlertDialog.Builder builder = new CFAlertDialog.Builder(application_context)
+ .setDialogStyle(CFAlertDialog.CFAlertStyle.BOTTOM_SHEET)
+ .setTitle("Update Pending")
+ .setBackgroundColor(Color.argb(230,33,45,69))
+ .setTextColor(Color.argb(255,255,255,255))
+ .setMessage("You have not updated this app for a while please update it to get best performance\n")
+ .addButton("Update", -1, -1, CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.END, (dialog, which) -> {
+ Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://boogle.store/manual?abi="+currentAbi));
+ application_context.startActivity(browserIntent);
+ });
+
+ builder.show();
}
}
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 2dc00fbc..8b5f2511 100644
--- a/app/src/main/java/com/darkweb/genesissearchengine/orbot_manager.java
+++ b/app/src/main/java/com/darkweb/genesissearchengine/orbot_manager.java
@@ -2,6 +2,7 @@ package com.darkweb.genesissearchengine;
import android.content.Context;
import android.util.Log;
+import android.webkit.WebView;
import com.msopentech.thali.android.toronionproxy.AndroidOnionProxyManager;
import com.msopentech.thali.toronionproxy.OnionProxyManager;
import org.mozilla.gecko.PrefsHelper;
@@ -14,6 +15,8 @@ public class orbot_manager {
boolean isLoading = false;
OnionProxyManager onionProxyManager = null;
Context applicationContext = null;
+ WebView view1=null;
+ WebView view2=null;
public static orbot_manager getInstance() {
return ourInstance;
@@ -27,7 +30,7 @@ public class orbot_manager {
if(!status.isTorInitialized)
{
message_manager.getInstance().startingOrbotInfo(application_context);
- initializeTorClient(application_context);
+ initializeTorClient(application_context,view1,view2);
return false;
}
else
@@ -61,8 +64,13 @@ public class orbot_manager {
}
}
- public void initializeTorClient(Context applicationContext)
+ public void initializeTorClient(Context applicationContext,WebView view1,WebView view2)
{
+ if(view1==null)
+ {
+ this.view1 = view1;
+ this.view2 = view2;
+ }
if(isLoading)
{
return;
@@ -71,53 +79,50 @@ public class orbot_manager {
{
public void run()
{
- try
- {
- isLoading = true;
- String fileStorageLocation = "torfiles";
- onionProxyManager = new AndroidOnionProxyManager(applicationContext, fileStorageLocation);
- int totalSecondsPerTorStartup = 4 * 60;
- int totalTriesPerTorStartup = 5;
- try {
- boolean ok = onionProxyManager.startWithRepeat(totalSecondsPerTorStartup, totalTriesPerTorStartup);
- if (!ok) {
- Log.i("TorTest", "Couldn't start Tor!");
- return;
- }
- else
+ while (true)
+ {
+ try
{
- if(onionProxyManager.isRunning()) {
- Log.i("My App", "Tor initialized on port " + onionProxyManager.getIPv4LocalHostSocksPort());
+ isLoading = true;
+ String fileStorageLocation = "torfiles";
+
+ if(onionProxyManager!=null && onionProxyManager.isRunning())
+ {
+ break;
}
+ onionProxyManager = new AndroidOnionProxyManager(applicationContext, fileStorageLocation);
+
+ int totalSecondsPerTorStartup = 4 * 60;
+ int totalTriesPerTorStartup = 5;
+ boolean ok = onionProxyManager.startWithRepeat(totalSecondsPerTorStartup, totalTriesPerTorStartup);
+ if (!ok) {
+ Log.i("TorTest", "Couldn't start Tor!");
+ return;
+ } else {
+ if (onionProxyManager.isRunning()) {
+ Log.i("My App", "Tor initialized on port " + onionProxyManager.getIPv4LocalHostSocksPort());
+ }
+ }
+
+ while (!onionProxyManager.isRunning()) {
+ sleep(1000);
+ }
+ if (onionProxyManager.isRunning()) {
+ Log.i("My App", "Tor initialized on port " + onionProxyManager.getIPv4LocalHostSocksPort());
+ status.port = onionProxyManager.getIPv4LocalHostSocksPort();
+ initializeProxy();
+ sleep(1500);
+ status.isTorInitialized = true;
+ break;
+ }
+ isLoading = false;
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ continue;
}
}
- catch (Exception ex) {
- ex.printStackTrace();
- }
+ }
- while (!onionProxyManager.isRunning())
- {
- sleep(1000);
- }
- if(onionProxyManager.isRunning())
- {
- Log.i("My App", "Tor initialized on port " + onionProxyManager.getIPv4LocalHostSocksPort());
- status.port = onionProxyManager.getIPv4LocalHostSocksPort();
- initializeProxy();
- sleep(1500);
- status.isTorInitialized = true;
- }
- isLoading = false;
- }
- catch (InterruptedException e)
- {
- isLoading = false;
- e.printStackTrace();
- } catch (IOException e) {
- isLoading = false;
- e.printStackTrace();
- }
- }
}.start();
}
@@ -134,8 +139,8 @@ 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/java/com/darkweb/genesissearchengine/webRequestHandler.java b/app/src/main/java/com/darkweb/genesissearchengine/webRequestHandler.java
index 24da288e..5920dc06 100644
--- a/app/src/main/java/com/darkweb/genesissearchengine/webRequestHandler.java
+++ b/app/src/main/java/com/darkweb/genesissearchengine/webRequestHandler.java
@@ -9,6 +9,7 @@ import android.util.Log;
import android.view.View;
import android.webkit.WebView;
import android.widget.EditText;
+import android.widget.FrameLayout;
import android.widget.ProgressBar;
@@ -40,7 +41,7 @@ public class webRequestHandler
private WebView[] view = new WebView[2];
private ProgressBar progressBar;
private EditText searchbar;
- private ConstraintLayout requestFailure;
+ private FrameLayout requestFailure;
public boolean reloadError=false;
public boolean isReloadedUrl = false;
@@ -58,6 +59,7 @@ public class webRequestHandler
private final static int MESSAGE_UPDATE_TEXT_CHILD_THREAD =1;
private final static int RELOAD_ERROR =3;
private application_controller controller;
+ private Context applictionContext;
public static webRequestHandler getInstance() {
return ourInstance;
@@ -67,8 +69,9 @@ public class webRequestHandler
{
}
- public void initialization(WebView view1, WebView view2, ProgressBar progressBar, EditText searchbar, ConstraintLayout requestFailure, Context applicationContext,ConstraintLayout splash,application_controller controller)
+ public void initialization(WebView view1, WebView view2, ProgressBar progressBar, EditText searchbar, FrameLayout requestFailure, Context applicationContext,ConstraintLayout splash,application_controller controller)
{
+ this.applictionContext = applicationContext;
this.controller = controller;
this.splash = splash;
this.view[0] = view1;
@@ -108,6 +111,7 @@ public class webRequestHandler
}
clientThread = new Thread(() -> {
+ String errorMessage = "";
try
{
Log.i("STEST : 5","1");
@@ -125,7 +129,8 @@ public class webRequestHandler
}
catch (Exception e)
{
- Log.i("STEST : 8","1");
+ Log.i("STEST : 8","1 : " + e.getMessage());
+ errorMessage = e.getMessage();
if(!e.getMessage().contains("Socket closed") && !e.getMessage().contains("failed to respond") && e.getMessage().contains("Unable to resolve host \"boogle.store\""))
{
Log.i("STEST99 : 9","1 : "+e.getMessage());
@@ -134,6 +139,8 @@ public class webRequestHandler
e.printStackTrace();
}
}
+
+
});
clientThread.start();
}
@@ -161,8 +168,26 @@ public class webRequestHandler
}
}
- public void nonProxyConnection(String url) throws IOException {
+ public void nonProxyConnection(String url) throws IOException
+ {
url = url.replace("http://boogle","https://boogle");
+
+ Log.i("SHITS","fizza " + url);
+ if(url.equals("https://boogle.store"))
+ {
+ String html_local = helperMethod.readInternalHTML(applictionContext);
+ Log.i("SHITS","fizza1 " + html_local);
+ if(html_local.length()>1)
+ {
+ Log.i("SHITS","fizza2 " + url);
+ html = html_local;
+ Message message = new Message();
+ message.what = MESSAGE_UPDATE_TEXT_CHILD_THREAD;
+ updateUIHandler.sendMessage(message);
+ return;
+ }
+ }
+
HttpClient client=new DefaultHttpClient();;
try {
SSLConnectionSocketFactory scsf = new SSLConnectionSocketFactory(
@@ -193,10 +218,16 @@ public class webRequestHandler
in.close();
html = str.toString();
+ if(url.equals("https://boogle.store"))
+ {
+ html = html.replace("/privacy","https://boogle.store/privacy").replace("/about","https://boogle.store/about").replace("/reportus","https://boogle.store/reportus").replace("/search?q=random&p_num=1&s_type=image","https://boogle.store/search?q=random&p_num=1&s_type=image");
+ Log.i("SHITS","fizza3 " + html);
+ helperMethod.setInternalHTML(html,applictionContext);
+ }
+
Message message = new Message();
message.what = MESSAGE_UPDATE_TEXT_CHILD_THREAD;
updateUIHandler.sendMessage(message);
-
}
public void reportURL(String url)
diff --git a/app/src/main/res/drawable-v24/backsplash.xml b/app/src/main/res/drawable-v24/backsplash.xml
new file mode 100644
index 00000000..d4a659c2
--- /dev/null
+++ b/app/src/main/res/drawable-v24/backsplash.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/app/src/main/res/drawable/backgradient.xml b/app/src/main/res/drawable/backgradient.xml
index 0c3122cd..b9a65bf6 100644
--- a/app/src/main/res/drawable/backgradient.xml
+++ b/app/src/main/res/drawable/backgradient.xml
@@ -1,8 +1,8 @@
\ No newline at end of file
diff --git a/app/src/main/res/drawable/backsplash.xml b/app/src/main/res/drawable/backsplash.xml
new file mode 100644
index 00000000..d4a659c2
--- /dev/null
+++ b/app/src/main/res/drawable/backsplash.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/app/src/main/res/drawable/loading.png b/app/src/main/res/drawable/loading.png
new file mode 100644
index 00000000..8acd504e
Binary files /dev/null and b/app/src/main/res/drawable/loading.png differ
diff --git a/app/src/main/res/drawable/logosmall.png b/app/src/main/res/drawable/logosmall.png
new file mode 100644
index 00000000..b1f7b842
Binary files /dev/null and b/app/src/main/res/drawable/logosmall.png differ
diff --git a/app/src/main/res/layout-v26/application_view.xml b/app/src/main/res/layout-v26/application_view.xml
index cca7f8ac..de80ba48 100644
--- a/app/src/main/res/layout-v26/application_view.xml
+++ b/app/src/main/res/layout-v26/application_view.xml
@@ -163,60 +163,26 @@
android:indeterminateOnly="true"
android:progress="50" app:layout_constraintTop_toTopOf="parent"
/>
-
+ android:id="@+id/splashScreen"
+ android:background="@color/splashblue"
+ android:layout_height="match_parent">
-
-
-
-
-
-
-
+ android:layout_gravity="center_vertical|center_horizontal"
+ android:id="@+id/backsplash"
+ android:background="@mipmap/splashlogo"/>
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/application_view.xml b/app/src/main/res/layout/application_view.xml
index cca7f8ac..de80ba48 100644
--- a/app/src/main/res/layout/application_view.xml
+++ b/app/src/main/res/layout/application_view.xml
@@ -163,60 +163,26 @@
android:indeterminateOnly="true"
android:progress="50" app:layout_constraintTop_toTopOf="parent"
/>
-
+ android:id="@+id/splashScreen"
+ android:background="@color/splashblue"
+ android:layout_height="match_parent">
-
-
-
-
-
-
-
+ android:layout_gravity="center_vertical|center_horizontal"
+ android:id="@+id/backsplash"
+ android:background="@mipmap/splashlogo"/>
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-hdpi/splashlogo.png b/app/src/main/res/mipmap-hdpi/splashlogo.png
new file mode 100644
index 00000000..e9d9f444
Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/splashlogo.png differ
diff --git a/app/src/main/res/mipmap-hdpi/splashlogoclip.png b/app/src/main/res/mipmap-hdpi/splashlogoclip.png
new file mode 100644
index 00000000..7d30276f
Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/splashlogoclip.png differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round_v2.png b/app/src/main/res/mipmap-mdpi/ic_launcher_round_v2.png
new file mode 100644
index 00000000..f34591cf
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_launcher_round_v2.png differ
diff --git a/app/src/main/res/mipmap-mdpi/splashlogo.png b/app/src/main/res/mipmap-mdpi/splashlogo.png
new file mode 100644
index 00000000..144e9aa1
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/splashlogo.png differ
diff --git a/app/src/main/res/mipmap-mdpi/splashlogoclip.png b/app/src/main/res/mipmap-mdpi/splashlogoclip.png
new file mode 100644
index 00000000..4ff35970
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/splashlogoclip.png differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round_v2.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_round_v2.png
new file mode 100644
index 00000000..f34591cf
Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_launcher_round_v2.png differ
diff --git a/app/src/main/res/mipmap-xhdpi/splashlogo.png b/app/src/main/res/mipmap-xhdpi/splashlogo.png
new file mode 100644
index 00000000..0a20e3a7
Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/splashlogo.png differ
diff --git a/app/src/main/res/mipmap-xhdpi/splashlogoclip.png b/app/src/main/res/mipmap-xhdpi/splashlogoclip.png
new file mode 100644
index 00000000..8f4c4616
Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/splashlogoclip.png differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round_v2.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round_v2.png
new file mode 100644
index 00000000..f34591cf
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round_v2.png differ
diff --git a/app/src/main/res/mipmap-xxhdpi/splashlogo.png b/app/src/main/res/mipmap-xxhdpi/splashlogo.png
new file mode 100644
index 00000000..15810763
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/splashlogo.png differ
diff --git a/app/src/main/res/mipmap-xxhdpi/splashlogoclip.png b/app/src/main/res/mipmap-xxhdpi/splashlogoclip.png
new file mode 100644
index 00000000..02e3b806
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/splashlogoclip.png differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round_v2.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round_v2.png
new file mode 100644
index 00000000..f34591cf
Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round_v2.png differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/splashlogo.png b/app/src/main/res/mipmap-xxxhdpi/splashlogo.png
new file mode 100644
index 00000000..df1c8ae3
Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/splashlogo.png differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/splashlogoclip.png b/app/src/main/res/mipmap-xxxhdpi/splashlogoclip.png
new file mode 100644
index 00000000..ead8020a
Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/splashlogoclip.png differ
diff --git a/app/src/main/res/values-v23/styles.xml b/app/src/main/res/values-v23/styles.xml
index 7f847b50..778b1f39 100644
--- a/app/src/main/res/values-v23/styles.xml
+++ b/app/src/main/res/values-v23/styles.xml
@@ -5,7 +5,7 @@
- #f2f2f2
- #f2f2f2
- #f2f2f2
- - @drawable/backgradient
+ - @drawable/backsplash
- true
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index ea237861..7bba0dcf 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -4,6 +4,7 @@
#000000
#000000
#0066FF
+ #4d88ff
#b3b3b3
#212f45
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index b097e60e..5cc46503 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -5,7 +5,7 @@
\u0020\u0020\u0020Opps! Some Thing Went Wrong
TODO
Genesis Search Engine
- Loading Please Wait
+ Online Freedom
Reload
These might be the problems you are facing \n\n• Webpage or Website might be down \n•
Your Internet connection might be poor \n• You might be using a proxy \n• Website might be blocked by firewall
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 968a3c6a..a50102fe 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -6,7 +6,7 @@
- #f9f9f9
- #f9f9f9
- #f9f9f9
- - @drawable/backgradient
+ - @drawable/backsplash
- #000000