Tor Fixes

master
msmannan00 2019-06-25 00:48:05 +05:00
parent 76a728fe59
commit 907173b534
21 changed files with 352 additions and 128 deletions

View File

@ -44,32 +44,31 @@ android {
flavorDimensions "abi" flavorDimensions "abi"
productFlavors { productFlavors {
/*arm { arm {
versionCode 156 versionCode 175
versionName "156" versionName "175"
dimension "abi" dimension "abi"
buildConfigField "String", "VARIANT", "\"arm\"" buildConfigField "String", "VARIANT", "\"arm\""
}*/
aarch64 {
versionCode 157
versionName "157"
dimension "abi"
buildConfigField "String", "VARIANT", "\"aarch64\""
} }
/* aarch64 {
versionCode 176
versionName "176"
dimension "abi"
buildConfigField "String", "VARIANT", "\"aarch64\""
}
x86 { x86 {
versionCode 158 versionCode 177
versionName "158" versionName "177"
dimension "abi" dimension "abi"
buildConfigField "String", "VARIANT", "\"i686\"" buildConfigField "String", "VARIANT", "\"i686\""
} }
x86_64 { x86_64 {
versionCode 159 versionCode 178
versionName "159" versionName "178"
dimension "abi" dimension "abi"
buildConfigField "String", "VARIANT", "\"x86_64\"" buildConfigField "String", "VARIANT", "\"x86_64\""
}*/ }
} }
@ -91,7 +90,7 @@ android {
universalApk true universalApk true
} }
} }
} }
} }
configurations.all { configurations.all {
@ -107,27 +106,28 @@ configurations.all {
dependencies { dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar']) implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support.constraint:constraint-layout:1.1.3' implementation 'com.android.support.constraint:constraint-layout:2.0.0-beta2'
implementation "cz.msebera.android:httpclient:4.4.1.2" implementation 'cz.msebera.android:httpclient:4.5.8'
//x86Implementation "org.mozilla.geckoview:geckoview-x86:67.0.20190521210220" x86Implementation "org.mozilla.geckoview:geckoview-x86:67.0.20190521210220"
//x86_64Implementation "org.mozilla.geckoview:geckoview-x86_64:67.0.20190521210220" x86_64Implementation "org.mozilla.geckoview:geckoview-x86_64:67.0.20190521210220"
//armImplementation "org.mozilla.geckoview:geckoview-armeabi-v7a:67.0.20190521210220" armImplementation "org.mozilla.geckoview:geckoview-armeabi-v7a:67.0.20190521210220"
implementation 'com.google.firebase:firebase-core:17.0.0'
aarch64Implementation "org.mozilla.geckoview:geckoview-arm64-v8a:67.0.20190521210220" aarch64Implementation "org.mozilla.geckoview:geckoview-arm64-v8a:67.0.20190521210220"
implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1' implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
implementation 'com.crowdfire.cfalertdialog:cfalertdialog:1.1.0' implementation 'com.crowdfire.cfalertdialog:cfalertdialog:1.1.0'
implementation 'com.github.jehy:Tor-Onion-Proxy-Library:0.0.7' implementation 'com.github.jehy:Tor-Onion-Proxy-Library:0.0.7'
implementation 'org.slf4j:slf4j-api:1.7.7' implementation 'org.slf4j:slf4j-api:2.0.0-alpha0'
implementation 'org.slf4j:slf4j-android:1.7.7' implementation 'org.slf4j:slf4j-android:1.7.26'
implementation 'com.google.android.gms:play-services-ads:18.0.0'
implementation 'com.android.support:design:28.0.0' implementation 'com.android.support:design:28.0.0'
implementation 'com.google.android.gms:play-services-ads:17.2.1'
implementation 'com.android.support:appcompat-v7:28.1.1'
implementation 'com.android.support:design:28.1.1'
implementation('com.crashlytics.sdk.android:crashlytics:2.10.1@aar') { implementation('com.crashlytics.sdk.android:crashlytics:2.10.1@aar') {
transitive = true; transitive = true;
} }
implementation 'com.android.support:appcompat-v7:28.0.0'
} }
apply plugin: 'com.android.application' apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'

48
app/google-services.json Normal file
View File

@ -0,0 +1,48 @@
{
"project_info": {
"project_number": "891955481900",
"firebase_url": "https://genesis-app-a512d.firebaseio.com",
"project_id": "genesis-app-a512d",
"storage_bucket": "genesis-app-a512d.appspot.com"
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:891955481900:android:360c1798435c303f",
"android_client_info": {
"package_name": "com.darkweb.genesissearchengine"
}
},
"oauth_client": [
{
"client_id": "891955481900-20ves4hv1nujrthcs2u75to1gn6c3v59.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.darkweb.genesissearchengine",
"certificate_hash": "fc03dc31bd3710e568f8a20d1818adc49af8d139"
}
},
{
"client_id": "891955481900-94h8etf05qautcg9ue2vfc4ct2oikr3e.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyCwvxQTaK8F6nevbWkL2t1TTEljQNZeKXc"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": [
{
"client_id": "891955481900-94h8etf05qautcg9ue2vfc4ct2oikr3e.apps.googleusercontent.com",
"client_type": 3
}
]
}
}
}
],
"configuration_version": "1"
}

View File

@ -1,10 +1,11 @@
package com.darkweb.genesissearchengine.appManager; package com.darkweb.genesissearchengine.appManager;
import android.annotation.SuppressLint;
import android.graphics.Color; import android.graphics.Color;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.os.Handler; import android.os.Handler;
import android.support.constraint.ConstraintLayout; import android.os.Looper;
import android.support.design.widget.FloatingActionButton; import android.os.Message;
import android.text.SpannableString; import android.text.SpannableString;
import android.text.Spanned; import android.text.Spanned;
import android.text.style.ForegroundColorSpan; import android.text.style.ForegroundColorSpan;
@ -15,15 +16,21 @@ import android.webkit.WebView;
import android.widget.EditText; import android.widget.EditText;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.ProgressBar; import android.widget.ProgressBar;
import android.widget.TextView;
import androidx.constraintlayout.widget.ConstraintLayout;
import com.darkweb.genesissearchengine.constants.constants; import com.darkweb.genesissearchengine.constants.constants;
import com.darkweb.genesissearchengine.constants.keys;
import com.darkweb.genesissearchengine.constants.messages;
import com.darkweb.genesissearchengine.constants.status; import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.dataManager.preference_manager; import com.darkweb.genesissearchengine.dataManager.preference_manager;
import com.darkweb.genesissearchengine.helperMethod; import com.darkweb.genesissearchengine.helperMethod;
import com.darkweb.genesissearchengine.httpManager.serverRequestManager; import com.darkweb.genesissearchengine.httpManager.serverRequestManager;
import com.darkweb.genesissearchengine.pluginManager.message_manager; import com.darkweb.genesissearchengine.pluginManager.message_manager;
import com.darkweb.genesissearchengine.pluginManager.orbot_manager;
import com.example.myapplication.R; import com.example.myapplication.R;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import static java.lang.Thread.sleep; import java.util.ArrayList;
public class applicationViewController public class applicationViewController
{ {
@ -36,7 +43,12 @@ public class applicationViewController
private FloatingActionButton floatingButton; private FloatingActionButton floatingButton;
private ImageView loading; private ImageView loading;
private ImageView splashlogo; private ImageView splashlogo;
private TextView loadingText;
/*Private Variables*/
private boolean pageLoadedSuccessfully = true; private boolean pageLoadedSuccessfully = true;
private boolean isSplashLoading = false;
private Handler updateUIHandler = null;
/*ProgressBar Delayed Updater*/ /*ProgressBar Delayed Updater*/
Handler progressBarHandler = null; Handler progressBarHandler = null;
@ -53,7 +65,7 @@ public class applicationViewController
{ {
} }
public void initialization(WebView webView1, ProgressBar progressBar, EditText searchbar, ConstraintLayout splashScreen, ConstraintLayout requestFailure, FloatingActionButton floatingButton, ImageView loading, ImageView splashlogo) public void initialization(WebView webView1, TextView loadingText, ProgressBar progressBar, EditText searchbar, ConstraintLayout splashScreen, ConstraintLayout requestFailure, FloatingActionButton floatingButton, ImageView loading, ImageView splashlogo)
{ {
this.webView = webView1; this.webView = webView1;
this.progressBar = progressBar; this.progressBar = progressBar;
@ -63,12 +75,14 @@ public class applicationViewController
this.floatingButton = floatingButton; this.floatingButton = floatingButton;
this.loading = loading; this.loading = loading;
this.splashlogo = splashlogo; this.splashlogo = splashlogo;
this.loadingText = loadingText;
app_model.getInstance().getAppInstance().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); app_model.getInstance().getAppInstance().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
checkSSLTextColor(); checkSSLTextColor();
initSplashScreen(); initSplashScreen();
initLock(); initLock();
initViews(); initViews();
createUpdateUiHandler();
} }
public boolean isHiddenView() public boolean isHiddenView()
@ -107,19 +121,85 @@ public class applicationViewController
/*Helper Methods*/ /*Helper Methods*/
public void onInternetError() public void onInternetError()
{ {
splashScreen.animate().setStartDelay(2000).alpha(0); disableSplashScreen();
requestFailure.setVisibility(View.VISIBLE); requestFailure.setVisibility(View.VISIBLE);
webView.setAlpha(0); webView.setAlpha(0);
requestFailure.animate().alpha(1f).setDuration(150); requestFailure.animate().alpha(1f).setDuration(150);
pageLoadedSuccessfully = false; pageLoadedSuccessfully = false;
Log.i("jhgjhg",0+"");
onClearSearchBarCursor(); onClearSearchBarCursor();
onProgressBarUpdate(0); onProgressBarUpdate(0);
disableFloatingView();
} }
public void onDisableInternetError() public void disableSplashScreen()
{ {
requestFailure.animate().alpha(0f).setDuration(150).withEndAction((() -> requestFailure.setVisibility(View.INVISIBLE)));; if(!isSplashLoading)
{
isSplashLoading = true;
new Thread()
{
public void run()
{
try
{
boolean isFirstInstall = preference_manager.getInstance().getBool(keys.hasOrbotInstalled,true);
while (!status.isTorInitialized && isFirstInstall)
{
startPostTask(messages.UPDATE_LOADING_TEXT);
sleep(100);
}
preference_manager.getInstance().setBool(keys.hasOrbotInstalled,false);
startPostTask(messages.DISABLE_SPLASH_SCREEN);
}
catch (Exception ex)
{
Log.i("Fizza",ex.getMessage());
}
}
}.start();
}
}
public void startPostTask(int m_id)
{
Message message = new Message();
message.what = m_id;
updateUIHandler.sendMessage(message);
}
@SuppressLint("HandlerLeak")
private void createUpdateUiHandler()
{
updateUIHandler = new Handler()
{
@Override
public void handleMessage(Message msg)
{
if(msg.what == messages.UPDATE_LOADING_TEXT)
{
loadingText.setText(orbot_manager.getInstance().getLogs());
}
if(msg.what == messages.DISABLE_SPLASH_SCREEN)
{
status.isApplicationLoaded = true;
splashScreen.animate().alpha(0.0f).setDuration(200).setListener(null).withEndAction((() -> splashScreen.setVisibility(View.GONE)));
onWelcomeMessageCheck();
}
}
};
}
public boolean onDisableInternetError()
{
if(requestFailure.getAlpha()==1)
{
requestFailure.animate().alpha(0f).setDuration(150).withEndAction((() -> requestFailure.setVisibility(View.INVISIBLE)));;
return true;
}
else
{
return false;
}
} }
public void onPageFinished(boolean status) public void onPageFinished(boolean status)
@ -135,9 +215,8 @@ public class applicationViewController
onUpdateView(true); onUpdateView(true);
} }
//onUpdateSearchBar(webView.getUrl()); //onUpdateSearchBar(webView.getUrl());
splashScreen.animate().alpha(0.0f).setStartDelay(150).setDuration(200).setListener(null).withEndAction((() -> splashScreen.setVisibility(View.GONE))); disableSplashScreen();
floatingButton.animate().alpha(0).withEndAction((() -> floatingButton.setVisibility(View.GONE)));; floatingButton.animate().alpha(0).withEndAction((() -> floatingButton.setVisibility(View.GONE)));;
onWelcomeMessageCheck();
app_model.getInstance().getAppInstance().stopHiddenView(); app_model.getInstance().getAppInstance().stopHiddenView();
} }
@ -252,14 +331,11 @@ public class applicationViewController
public void onWelcomeMessageCheck() public void onWelcomeMessageCheck()
{ {
if(!status.isApplicationLoaded) if(!preference_manager.getInstance().getBool("FirstTimeLoaded",false))
{ {
if(!preference_manager.getInstance().getBool("FirstTimeLoaded",false)) message_manager.getInstance().welcomeMessage();
{
message_manager.getInstance().welcomeMessage();
}
serverRequestManager.getInstance().versionChecker();
} }
serverRequestManager.getInstance().versionChecker();
} }
public void onReload() public void onReload()

View File

@ -1,22 +1,19 @@
package com.darkweb.genesissearchengine.appManager; package com.darkweb.genesissearchengine.appManager;
import android.content.Intent;
import android.graphics.Color;
import android.os.Build; import android.os.Build;
import android.support.constraint.ConstraintLayout;
import android.os.Bundle; import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.*; import android.view.*;
import android.webkit.*; import android.webkit.*;
import android.widget.*; import android.widget.*;
import androidx.appcompat.app.AppCompatActivity;
import androidx.constraintlayout.widget.ConstraintLayout;
import com.darkweb.genesissearchengine.*; import com.darkweb.genesissearchengine.*;
import com.darkweb.genesissearchengine.constants.constants; import com.darkweb.genesissearchengine.constants.constants;
import com.darkweb.genesissearchengine.dataManager.preference_manager; import com.darkweb.genesissearchengine.dataManager.preference_manager;
import com.darkweb.genesissearchengine.pluginManager.*; import com.darkweb.genesissearchengine.pluginManager.*;
import com.example.myapplication.R; import com.example.myapplication.R;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import org.mozilla.geckoview.GeckoView; import org.mozilla.geckoview.GeckoView;
@ -34,6 +31,7 @@ public class application_controller extends AppCompatActivity
private FloatingActionButton floatingButton; private FloatingActionButton floatingButton;
private ImageView loadingIcon; private ImageView loadingIcon;
private ImageView splashlogo; private ImageView splashlogo;
private TextView loadingText;
/*Redirection Objects*/ /*Redirection Objects*/
private geckoClients geckoclient = null; private geckoClients geckoclient = null;
@ -58,7 +56,8 @@ public class application_controller extends AppCompatActivity
preference_manager.getInstance().initialize(); preference_manager.getInstance().initialize();
orbot_manager.getInstance().reinitOrbot(); orbot_manager.getInstance().reinitOrbot();
admanager.getInstance().initialize(); admanager.getInstance().initialize();
applicationViewController.getInstance().initialization(webView,progressBar,searchbar,splashScreen,requestFailure,floatingButton, loadingIcon,splashlogo); applicationViewController.getInstance().initialization(webView,loadingText,progressBar,searchbar,splashScreen,requestFailure,floatingButton, loadingIcon,splashlogo);
firebase.getInstance().initialize();
geckoclient.initialize(geckoView); geckoclient.initialize(geckoView);
startApplication(); startApplication();
@ -96,6 +95,7 @@ public class application_controller extends AppCompatActivity
loadingIcon = findViewById(R.id.imageView_loading_back); loadingIcon = findViewById(R.id.imageView_loading_back);
splashlogo = findViewById(R.id.backsplash); splashlogo = findViewById(R.id.backsplash);
geckoView = findViewById(R.id.webLoader); geckoView = findViewById(R.id.webLoader);
loadingText = findViewById(R.id.loadingText);
webviewclient = new webviewClient(); webviewclient = new webviewClient();
geckoclient = new geckoClients(); geckoclient = new geckoClients();
@ -116,6 +116,7 @@ public class application_controller extends AppCompatActivity
public void setWebViewSettings(WebView view) public void setWebViewSettings(WebView view)
{ {
view.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); view.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
view.getSettings().setJavaScriptEnabled(true);
view.getSettings().setUseWideViewPort(true); view.getSettings().setUseWideViewPort(true);
} }
@ -186,9 +187,9 @@ public class application_controller extends AppCompatActivity
applicationViewController.getInstance().disableFloatingView(); applicationViewController.getInstance().disableFloatingView();
} }
public void onDisableInternetError() public boolean onDisableInternetError()
{ {
applicationViewController.getInstance().onDisableInternetError(); return applicationViewController.getInstance().onDisableInternetError();
} }
public void onProgressBarUpdateView(int progress) public void onProgressBarUpdateView(int progress)

View File

@ -1,16 +1,17 @@
package com.darkweb.genesissearchengine.appManager; package com.darkweb.genesissearchengine.appManager;
import android.graphics.drawable.Drawable;
import android.os.Handler; import android.os.Handler;
import android.util.Log; import android.util.Log;
import android.view.View; import android.view.View;
import com.darkweb.genesissearchengine.helperMethod; import com.darkweb.genesissearchengine.pluginManager.admanager;
import com.darkweb.genesissearchengine.pluginManager.fabricManager; import com.darkweb.genesissearchengine.pluginManager.fabricManager;
import com.darkweb.genesissearchengine.pluginManager.orbot_manager; import com.darkweb.genesissearchengine.pluginManager.orbot_manager;
import org.mozilla.geckoview.GeckoRuntime; import org.mozilla.geckoview.GeckoRuntime;
import org.mozilla.geckoview.GeckoSession; import org.mozilla.geckoview.GeckoSession;
import org.mozilla.geckoview.GeckoView; import org.mozilla.geckoview.GeckoView;
import java.util.ArrayList;
public class geckoClients public class geckoClients
{ {
private GeckoSession session1 = null; private GeckoSession session1 = null;
@ -21,20 +22,26 @@ public class geckoClients
boolean isRunning = false; boolean isRunning = false;
boolean isContentLoading = false; boolean isContentLoading = false;
String navigatedURL = ""; String navigatedURL = "";
boolean isFirstTimeLoad = true;
ArrayList<String> urlList = new ArrayList<>();
private boolean loadingCompeleted = false; private boolean loadingCompeleted = false;
private String currentURL = ""; private String currentURL = "";
private boolean wasBackPressed = false;
public void loadGeckoURL(String url,GeckoView geckoView) public void loadGeckoURL(String url,GeckoView geckoView)
{ {
boolean init_status = orbot_manager.getInstance().initOrbot(url); boolean init_status = orbot_manager.getInstance().initOrbot(url);
if (init_status) if (init_status)
{ {
urlList.clear();
navigatedURL = "";
loadingCompeleted = false; loadingCompeleted = false;
initialize(geckoView); initialize(geckoView);
session1.loadUri(url); session1.loadUri(url);
app_model.getInstance().getAppInstance().onRequestTriggered(true,url); app_model.getInstance().getAppInstance().onRequestTriggered(true,url);
app_model.getInstance().getAppInstance().onProgressBarUpdateView(4); app_model.getInstance().getAppInstance().onProgressBarUpdateView(4);
isFirstTimeLoad = true;
} }
} }
@ -57,7 +64,6 @@ public class geckoClients
public void onLocationChange(GeckoSession session, String url) public void onLocationChange(GeckoSession session, String url)
{ {
navigatedURL = url; navigatedURL = url;
Log.i("SHITJ1",""+url);
} }
@Override @Override
@ -72,11 +78,13 @@ public class geckoClients
@Override @Override
public void onPageStart(GeckoSession session, String url) public void onPageStart(GeckoSession session, String url)
{ {
wasBackPressed = false;
isRunning = true; isRunning = true;
loadingCompeleted = false; loadingCompeleted = false;
currentURL = url; currentURL = url;
fabricManager.getInstance().sendEvent("ONION GECKO_CLIENT URL REQEST : " + url + "--"); fabricManager.getInstance().sendEvent("ONION GECKO_CLIENT URL REQEST : " + url + "--");
app_model.getInstance().getAppInstance().onUpdateSearchBarView(url);
if(navigatedURL.equals(currentURL)) if(navigatedURL.equals(currentURL))
{ {
isContentLoading = false; isContentLoading = false;
@ -103,14 +111,31 @@ public class geckoClients
{ {
if(!success && !isContentLoading) if(!success && !isContentLoading)
{ {
app_model.getInstance().getAppInstance().onPageFinished(true);
app_model.getInstance().getAppInstance().onInternetErrorView(); app_model.getInstance().getAppInstance().onInternetErrorView();
fabricManager.getInstance().sendEvent("ONION GECKO_CLIENT URL ERROR : " + success + "--" + isContentLoading); fabricManager.getInstance().sendEvent("ONION GECKO_CLIENT URL ERROR : " + success + "--" + isContentLoading);
} }
else if(success) else if(success)
{ {
if(isFirstTimeLoad)
{
admanager.getInstance().showAd(true);
isFirstTimeLoad = false;
}
if((urlList.size()==0 || urlList.size()>0 && !urlList.get(urlList.size()-1).equals(navigatedURL))&&!wasBackPressed)
{
urlList.add(navigatedURL);
}
if(urlList.size()>0)
{
admanager.getInstance().showAd(false);
}
app_model.getInstance().getAppInstance().onDisableInternetError(); app_model.getInstance().getAppInstance().onDisableInternetError();
app_model.getInstance().getAppInstance().onProgressBarUpdateView(0); app_model.getInstance().getAppInstance().onProgressBarUpdateView(0);
fabricManager.getInstance().sendEvent("ONION GECKO_CLIENT URL SUCCESS : " + success + "--" + isContentLoading); fabricManager.getInstance().sendEvent("ONION GECKO_CLIENT URL SUCCESS : " + success + "--" + isContentLoading);
app_model.getInstance().getAppInstance().onPageFinished(true);
} }
} }
} }
@ -124,7 +149,6 @@ public class geckoClients
{ {
if(progress>=100) if(progress>=100)
{ {
app_model.getInstance().getAppInstance().onPageFinished(true);
loadingCompeleted = true; loadingCompeleted = true;
isContentLoading = false; isContentLoading = false;
} }
@ -148,23 +172,26 @@ public class geckoClients
public void onHiddenGoBack(GeckoView geckoView) public void onHiddenGoBack(GeckoView geckoView)
{ {
boolean init_status = orbot_manager.getInstance().initOrbot(""); if(urlList.size()>1)
if (init_status)
{
if(canSessionGoBack)
{ {
app_model.getInstance().getAppInstance().onDisableInternetError(); urlList.remove(urlList.size() - 1);
session1.goBack(); wasBackPressed = true;
fabricManager.getInstance().sendEvent("ONION LOCAL RETURNED : "); session1.stop();
session1.loadUri(urlList.get(urlList.size() - 1));
app_model.getInstance().getAppInstance().onUpdateSearchBarView(urlList.get(urlList.size()-1));
} }
else if(isRunning) else if(isRunning)
{ {
fabricManager.getInstance().sendEvent("ONION RETURNED TO GENESIS : "); if(urlList.size()>0)
geckoView.releaseSession(); {
stopHiddenView(geckoView); urlList.remove(urlList.size()-1);
app_model.getInstance().getAppInstance().onUpdateView(true); }
stopHiddenView(geckoView);
app_model.getInstance().getAppInstance().onUpdateView(true);
app_model.getInstance().getAppInstance().onDisableInternetError();
} }
}
} }
public void stopHiddenView(GeckoView geckoView) public void stopHiddenView(GeckoView geckoView)
@ -173,9 +200,13 @@ public class geckoClients
{ {
isRunning = false; isRunning = false;
loadingCompeleted = false; loadingCompeleted = false;
session1.stop(); session1.stop();
session1.close(); session1.close();
} }
geckoView.releaseSession();
} }
public boolean isGeckoViewRunning() public boolean isGeckoViewRunning()
@ -185,15 +216,8 @@ public class geckoClients
public void onReloadHiddenView() public void onReloadHiddenView()
{ {
boolean init_status = orbot_manager.getInstance().initOrbot(""); wasBackPressed = true;
if (init_status) session1.stop();
{ session1.loadUri(navigatedURL);
if(session1!=null)
{
loadingCompeleted = false;
session1.stop();
session1.reload();
}
}
} }
} }

View File

@ -27,6 +27,7 @@ public class webviewClient
} }
if(!url.contains("boogle")) if(!url.contains("boogle"))
{ {
app_model.getInstance().getAppInstance().stopHiddenView();
fabricManager.getInstance().sendEvent("BASE SIMPLE SEARCHED : " + url); fabricManager.getInstance().sendEvent("BASE SIMPLE SEARCHED : " + url);
isGeckoView = true; isGeckoView = true;
if(orbot_manager.getInstance().initOrbot(url)) if(orbot_manager.getInstance().initOrbot(url))

View File

@ -19,5 +19,6 @@ public class keys
public static String proxy_useragent_override = "general.useragent.override"; public static String proxy_useragent_override = "general.useragent.override";
public static String proxy_donottrackheader_enabled = "privacy.donottrackheader.enabled"; public static String proxy_donottrackheader_enabled = "privacy.donottrackheader.enabled";
public static String proxy_donottrackheader_value = "privacy.donottrackheader.value"; public static String proxy_donottrackheader_value = "privacy.donottrackheader.value";
public static String hasOrbotInstalled = "hasOrbotInstalled";
} }

View File

@ -3,8 +3,10 @@ package com.darkweb.genesissearchengine.constants;
public class messages public class messages
{ {
/*Post Messages*/ /*Post Messages*/
public final static int LOCAL_HOMEPAGE_CACHED =3; public final static int LOCAL_HOMEPAGE_CACHED =0;
public final static int INTERNET_ERROR =2; public final static int INTERNET_ERROR =2;
public final static int MESSAGE_UPDATE_TEXT_CHILD_THREAD =1; public final static int MESSAGE_UPDATE_TEXT_CHILD_THREAD =1;
public final static int LOAD_WEBVIEW_BACKGROUND = 2; public final static int LOAD_WEBVIEW_BACKGROUND = 2;
public final static int DISABLE_SPLASH_SCREEN =3;
public final static int UPDATE_LOADING_TEXT =5;
} }

View File

@ -3,7 +3,7 @@ package com.darkweb.genesissearchengine.constants;
public class status public class status
{ {
public static boolean isApplicationLoaded = false; public static boolean isApplicationLoaded = false;
public static boolean isPlayStoreInstalled = false; public static boolean isPlayStoreInstalled = true;
public static boolean isTorInitialized = false; public static boolean isTorInitialized = false;
public static String version_code = "5.0"; public static String version_code = "5.0";

View File

@ -28,13 +28,13 @@ public class preference_manager
} }
/*Saving Preferences*/ /*Saving Preferences*/
public void saveString(String valueKey, String value) public void setString(String valueKey, String value)
{ {
edit.putString(valueKey, value); edit.putString(valueKey, value);
edit.commit(); edit.commit();
} }
public void saveBool(String valueKey, boolean value) public void setBool(String valueKey, boolean value)
{ {
edit.putBoolean(valueKey, value); edit.putBoolean(valueKey, value);
edit.commit(); edit.commit();
@ -50,4 +50,5 @@ public class preference_manager
{ {
return prefs.getBoolean(valueKey, valueDefault); return prefs.getBoolean(valueKey, valueDefault);
} }
} }

View File

@ -61,7 +61,7 @@ public class serverRequestManager
sb.append(charArray, 0, numCharsRead); sb.append(charArray, 0, numCharsRead);
} }
String result = sb.toString(); String result = sb.toString();
preference_manager.getInstance().saveString("version",result); preference_manager.getInstance().setString("version",result);
} }
catch (IOException e) { catch (IOException e) {

View File

@ -24,21 +24,22 @@ public class admanager
public void initialize() public void initialize()
{ {
MobileAds.initialize(app_model.getInstance().getAppContext(), "ca-app-pub-5074525529134731~2926711128 "); /*
MobileAds.initialize(app_model.getInstance().getAppContext(), "ca-app-pub-5074525529134731~2926711128");
mInterstitialAd = new InterstitialAd(app_model.getInstance().getAppContext()); mInterstitialAd = new InterstitialAd(app_model.getInstance().getAppContext());
mInterstitialAd.setAdUnitId("ca-app-pub-5074525529134731/8478420705"); mInterstitialAd.setAdUnitId("ca-app-pub-5074525529134731/8478420705");
mInterstitialAd.loadAd(new AdRequest.Builder().build()); mInterstitialAd.loadAd(new AdRequest.Builder().build());*/
} }
/*Helper Methods*/ /*Helper Methods*/
public void showAd(boolean isAdForced) public void showAd(boolean isAdForced)
{ {
/*
if(!mInterstitialAd.isLoading() && !mInterstitialAd.isLoaded()) if(!mInterstitialAd.isLoading() && !mInterstitialAd.isLoaded())
{ {
mInterstitialAd.loadAd(new AdRequest.Builder().build()); mInterstitialAd.loadAd(new AdRequest.Builder().build());
if(isAdForced || adCount==0 || adCount%3==0) if(isAdForced || adCount==0 || adCount%5==0)
{ {
adCount = 0; adCount = 0;
} }
@ -65,6 +66,6 @@ public class admanager
adCount += 1; adCount += 1;
} }
} }
} }*/
} }
} }

View File

@ -52,8 +52,8 @@ public class analyticmanager
public void sendEvent(String value) public void sendEvent(String value)
{ {
Answers.getInstance().logCustom(new CustomEvent(value) firebase.getInstance().logEvent(value,uniqueID);
.putCustomAttribute(analyticmanager.getInstance().uniqueID,value)); Answers.getInstance().logCustom(new CustomEvent(value));
} }

View File

@ -0,0 +1,35 @@
package com.darkweb.genesissearchengine.pluginManager;
import android.os.Bundle;
import com.darkweb.genesissearchengine.appManager.app_model;
import com.google.firebase.analytics.FirebaseAnalytics;
public class firebase
{
private static final firebase ourInstance = new firebase();
public static firebase getInstance()
{
return ourInstance;
}
private FirebaseAnalytics mFirebaseAnalytics;
public void initialize()
{
mFirebaseAnalytics = FirebaseAnalytics.getInstance(app_model.getInstance().getAppContext());
}
public void logEvent(String value,String id)
{
Bundle bundle = new Bundle();
bundle.putString(FirebaseAnalytics.Param.ITEM_ID, id);
bundle.putString(FirebaseAnalytics.Param.ITEM_NAME, value);
bundle.putString(FirebaseAnalytics.Param.CONTENT_TYPE, "Custom");
mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, bundle);
}
private firebase()
{
}
}

View File

@ -12,7 +12,6 @@ import com.darkweb.genesissearchengine.constants.constants;
import com.darkweb.genesissearchengine.constants.keys; import com.darkweb.genesissearchengine.constants.keys;
import com.darkweb.genesissearchengine.constants.strings; import com.darkweb.genesissearchengine.constants.strings;
import com.darkweb.genesissearchengine.dataManager.preference_manager; import com.darkweb.genesissearchengine.dataManager.preference_manager;
import com.darkweb.genesissearchengine.httpManager.serverRequestManager;
import com.example.myapplication.R; import com.example.myapplication.R;
public class message_manager public class message_manager
@ -65,7 +64,7 @@ public class message_manager
}) })
.addButton(strings.welcome_message_bt5, -1, -1, CFAlertDialog.CFAlertActionStyle.NEGATIVE, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED , (dialog, which) -> { .addButton(strings.welcome_message_bt5, -1, -1, CFAlertDialog.CFAlertActionStyle.NEGATIVE, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED , (dialog, which) -> {
dialog.dismiss(); dialog.dismiss();
preference_manager.getInstance().saveBool(keys.first_time_loaded,true); preference_manager.getInstance().setBool(keys.first_time_loaded,true);
}); });
builder.show(); builder.show();

View File

@ -17,7 +17,7 @@ public class orbot_manager {
/*Private Variables*/ /*Private Variables*/
private boolean isLoading = false; private boolean isLoading = false;
private int threadCounter = 100;
/*Local Initialization*/ /*Local Initialization*/
private static final orbot_manager ourInstance = new orbot_manager(); private static final orbot_manager ourInstance = new orbot_manager();
private OnionProxyManager onionProxyManager = null; private OnionProxyManager onionProxyManager = null;
@ -36,6 +36,7 @@ public class orbot_manager {
{ {
if(!status.isTorInitialized) if(!status.isTorInitialized)
{ {
fabricManager.getInstance().sendEvent("TOR NOT INITIALIZED : " + url);
message_manager.getInstance().startingOrbotInfo(url); message_manager.getInstance().startingOrbotInfo(url);
return false; return false;
} }
@ -51,31 +52,58 @@ public class orbot_manager {
{ {
public void run() public void run()
{ {
try while (true)
{ {
while (true) try
{ {
if(!isLoading && (onionProxyManager == null || !onionProxyManager.isRunning())) if(onionProxyManager!=null)
{ {
if(onionProxyManager != null) if(onionProxyManager.isRunning())
{ {
onionProxyManager.stop(); status.isTorInitialized = true;
threadCounter = 5000;
}
}
if(!isLoading && !status.isTorInitialized)
{
if(onionProxyManager == null)
{
onionProxyManager = new AndroidOnionProxyManager(app_model.getInstance().getAppContext(), strings.torfolder);
} }
isLoading = false; isLoading = false;
status.isTorInitialized = false; status.isTorInitialized = false;
initializeTorClient(); initializeTorClient();
} }
sleep(1000); else
{
sleep(threadCounter);
}
}
catch (Exception e)
{
e.printStackTrace();
} }
} }
catch (Exception e)
{
e.printStackTrace();
}
} }
}.start(); }.start();
} }
public String getLogs()
{
if(onionProxyManager!=null)
{
String Logs = onionProxyManager.getLastLog();
if(Logs.equals(""))
{
return "Loading Please Wait";
}
Logs=Logs.replace("FAILED","Securing");
return Logs;
}
return "Loading Please Wait";
}
public void initializeTorClient() public void initializeTorClient()
{ {
if(!isLoading) if(!isLoading)
@ -89,14 +117,6 @@ public class orbot_manager {
try try
{ {
isLoading = true; isLoading = true;
String fileStorageLocation = strings.torfolder;
if(onionProxyManager!=null && onionProxyManager.isRunning())
{
break;
}
onionProxyManager = new AndroidOnionProxyManager(app_model.getInstance().getAppContext(), fileStorageLocation);
int totalSecondsPerTorStartup = 4 * 60; int totalSecondsPerTorStartup = 4 * 60;
int totalTriesPerTorStartup = 5; int totalTriesPerTorStartup = 5;
@ -108,14 +128,12 @@ public class orbot_manager {
continue; continue;
} }
if (onionProxyManager.isRunning()) { app_model.getInstance().setPort(onionProxyManager.getIPv4LocalHostSocksPort());
app_model.getInstance().setPort(onionProxyManager.getIPv4LocalHostSocksPort()); initializeProxy();
initializeProxy(); status.isTorInitialized = true;
//sleep(1500); isLoading = false;
status.isTorInitialized = true; break;
isLoading = false;
break;
}
} catch (Exception ex) { } catch (Exception ex) {
ex.printStackTrace(); ex.printStackTrace();
continue; continue;

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
@ -38,7 +38,7 @@
</WebView> </WebView>
</FrameLayout> </FrameLayout>
<android.support.constraint.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/requestFailure" android:id="@+id/requestFailure"
android:layout_height="match_parent" android:layout_height="match_parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
@ -101,7 +101,8 @@
app:layout_constraintTop_toBottomOf="@+id/textView" app:layout_constraintTop_toBottomOf="@+id/textView"
app:layout_constraintBottom_toTopOf="@+id/reloadButton" android:layout_marginBottom="35dp" app:layout_constraintBottom_toTopOf="@+id/reloadButton" android:layout_marginBottom="35dp"
android:layout_marginTop="35dp" android:contentDescription="@string/todo"/> android:layout_marginTop="35dp" android:contentDescription="@string/todo"/>
</android.support.constraint.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
<FrameLayout <FrameLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="71dp" android:layout_height="71dp"
@ -181,7 +182,7 @@
android:progressTint="@color/progress_tint" android:progressTint="@color/progress_tint"
android:progress="50" app:layout_constraintTop_toTopOf="parent" android:progress="50" app:layout_constraintTop_toTopOf="parent"
/> />
<android.support.constraint.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:background="@color/ease_blue" android:background="@color/ease_blue"
android:id="@+id/splashScreen" android:id="@+id/splashScreen"
@ -190,9 +191,24 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:id="@+id/backsplash" android:id="@+id/backsplash"
android:textAlignment="center"
android:background="@xml/splash_gradient" app:layout_constraintStart_toStartOf="parent" android:background="@xml/splash_gradient" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintHorizontal_bias="0.5" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"/> app:layout_constraintTop_toTopOf="parent"/>
<TextView
android:text="Loading Please Wait"
android:textColor="@color/white"
android:textFontWeight="5"
android:layout_width="match_parent"
android:gravity="center"
android:textAlignment="center"
android:singleLine="true"
android:ellipsize="end"
android:layout_height="wrap_content" android:id="@+id/loadingText"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginBottom="37dp" android:layout_marginStart="50dp"
android:layout_marginEnd="50dp"/>
<ImageView <ImageView
android:layout_width="35dp" android:layout_width="35dp"
android:layout_height="35dp" android:layout_height="35dp"
@ -200,9 +216,9 @@
android:id="@+id/imageView_loading_back" app:layout_constraintStart_toStartOf="parent" android:id="@+id/imageView_loading_back" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintHorizontal_bias="0.5" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"/> app:layout_constraintTop_toTopOf="parent"/>
</android.support.constraint.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</FrameLayout> </FrameLayout>
<android.support.design.widget.FloatingActionButton <com.google.android.material.floatingactionbutton.FloatingActionButton
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:src="@drawable/icon_ban" android:src="@drawable/icon_ban"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -215,4 +231,4 @@
android:id="@+id/floatingActionButton3" app:layout_constraintBottom_toBottomOf="parent" android:id="@+id/floatingActionButton3" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" android:layout_marginBottom="24dp" app:layout_constraintEnd_toEndOf="parent" android:layout_marginBottom="24dp"
android:layout_marginEnd="24dp"/> android:layout_marginEnd="24dp"/>
</android.support.constraint.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -9,6 +9,7 @@ buildscript {
dependencies { dependencies {
classpath 'com.android.tools.build:gradle:3.4.1' classpath 'com.android.tools.build:gradle:3.4.1'
classpath 'io.fabric.tools:gradle:1.29.0' classpath 'io.fabric.tools:gradle:1.29.0'
classpath 'com.google.gms:google-services:4.2.0'
} }
} }

View File

@ -13,3 +13,5 @@ org.gradle.jvmargs=-Xmx1536m
# org.gradle.parallel=true # org.gradle.parallel=true
# Kotlin code style for this project: "official" or "obsolete": # Kotlin code style for this project: "official" or "obsolete":
kotlin.code.style=official kotlin.code.style=official
android.useAndroidX=true
android.enableJetifier=true

View File

@ -1,2 +0,0 @@
configurations.maybeCreate("default")
artifacts.add("default", file('tor-android-binary-0.3.4.9.aar'))