bug fixes

master
msmannan00 2019-07-16 19:13:43 +05:00
parent fc1d48dea4
commit 6f3af99487
78 changed files with 1192 additions and 933 deletions

View File

@ -1,5 +1,40 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="NullableNotNullManager">
<option name="myDefaultNullable" value="org.jetbrains.annotations.Nullable" />
<option name="myDefaultNotNull" value="androidx.annotation.NonNull" />
<option name="myNullables">
<value>
<list size="10">
<item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.Nullable" />
<item index="1" class="java.lang.String" itemvalue="javax.annotation.Nullable" />
<item index="2" class="java.lang.String" itemvalue="javax.annotation.CheckForNull" />
<item index="3" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.Nullable" />
<item index="4" class="java.lang.String" itemvalue="android.support.annotation.Nullable" />
<item index="5" class="java.lang.String" itemvalue="androidx.annotation.Nullable" />
<item index="6" class="java.lang.String" itemvalue="androidx.annotation.RecentlyNullable" />
<item index="7" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.qual.Nullable" />
<item index="8" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NullableDecl" />
<item index="9" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NullableType" />
</list>
</value>
</option>
<option name="myNotNulls">
<value>
<list size="9">
<item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.NotNull" />
<item index="1" class="java.lang.String" itemvalue="javax.annotation.Nonnull" />
<item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.NonNull" />
<item index="3" class="java.lang.String" itemvalue="android.support.annotation.NonNull" />
<item index="4" class="java.lang.String" itemvalue="androidx.annotation.NonNull" />
<item index="5" class="java.lang.String" itemvalue="androidx.annotation.RecentlyNonNull" />
<item index="6" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.qual.NonNull" />
<item index="7" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NonNullDecl" />
<item index="8" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NonNullType" />
</list>
</value>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK"> <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" /> <output url="file://$PROJECT_DIR$/build/classes" />
</component> </component>

View File

@ -49,13 +49,13 @@ android {
versionName "180" versionName "180"
dimension "abi" dimension "abi"
buildConfigField "String", "VARIANT", "\"arm\"" buildConfigField "String", "VARIANT", "\"arm\""
} }*/
aarch64 { aarch64 {
versionCode 181 versionCode 181
versionName "181" versionName "181"
dimension "abi" dimension "abi"
buildConfigField "String", "VARIANT", "\"aarch64\"" buildConfigField "String", "VARIANT", "\"aarch64\""
}*/ }/*
x86 { x86 {
versionCode 182 versionCode 182
versionName "182" versionName "182"
@ -108,10 +108,10 @@ dependencies {
implementation 'com.android.support.constraint:constraint-layout:2.0.0-beta2' implementation 'com.android.support.constraint:constraint-layout:2.0.0-beta2'
implementation 'cz.msebera.android:httpclient:4.5.8' implementation 'cz.msebera.android:httpclient:4.5.8'
x86Implementation "org.mozilla.geckoview:geckoview-x86:67.0.20190613202504" //x86Implementation "org.mozilla.geckoview:geckoview-x86:67.0.20190613202504"
//x86_64Implementation "org.mozilla.geckoview:geckoview-x86_64:67.0.20190613202504" //x86_64Implementation "org.mozilla.geckoview:geckoview-x86_64:67.0.20190613202504"
//armImplementation "org.mozilla.geckoview:geckoview-armeabi-v7a:67.0.20190613202504" //armImplementation "org.mozilla.geckoview:geckoview-armeabi-v7a:67.0.20190613202504"
//aarch64Implementation "org.mozilla.geckoview:geckoview-arm64-v8a:67.0.20190613202504" aarch64Implementation "org.mozilla.geckoview:geckoview-arm64-v8a:67.0.20190613202504"
implementation 'androidx.appcompat:appcompat:1.0.2' implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3' implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
@ -130,7 +130,7 @@ dependencies {
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0-alpha03' androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0-alpha03'
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' implementation 'com.android.support:appcompat-v7:28.0.0'
} }

View File

@ -22,7 +22,7 @@
android:windowSoftInputMode="adjustNothing" android:windowSoftInputMode="adjustNothing"
android:label="@string/title_activity_setting_controller"> android:label="@string/title_activity_setting_controller">
</activity> </activity>
<activity android:name="com.darkweb.genesissearchengine.appManager.list_activity.list_controller" <activity android:name="com.darkweb.genesissearchengine.appManager.list_manager.list_controller"
android:windowSoftInputMode="adjustNothing"> android:windowSoftInputMode="adjustNothing">
</activity> </activity>
@ -31,7 +31,7 @@
android:required="false"/> android:required="false"/>
<activity <activity
android:name="com.darkweb.genesissearchengine.appManager.main_activity.application_controller" android:name="com.darkweb.genesissearchengine.appManager.home_activity.application_controller"
android:windowSoftInputMode="adjustNothing" android:windowSoftInputMode="adjustNothing"
android:screenOrientation="portrait"> android:screenOrientation="portrait">
<intent-filter> <intent-filter>

View File

@ -1,135 +0,0 @@
package com.darkweb.genesissearchengine.appManager.data_helper;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.database.sqlite.SQLiteOpenHelper;
import com.darkweb.genesissearchengine.appManager.list_activity.list_model;
import com.darkweb.genesissearchengine.appManager.list_activity.list_row_model;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
public class database_helper extends SQLiteOpenHelper
{
private Context mContext;
private String mDbPath;
private String mDbName;
private int mDbVersion;
public SQLiteDatabase db;
public database_helper(Context context, String dbName, int version) {
super(context, dbName, null, version);
mContext = context;
mDbPath = context.getApplicationInfo().dataDir + "/databases/";
mDbName = dbName;
mDbVersion = version;
}
public boolean exists() {
SQLiteDatabase db = null;
try {
db = SQLiteDatabase.openDatabase(mDbPath + mDbName, null, SQLiteDatabase.OPEN_READONLY);
}
catch (SQLiteException e) {
//database does not exist yet.
}
if (db != null) {
db.close();
return true;
} else {
return false;
}
}
public void openDatabase(int flag) throws SQLiteException, IOException {
if (!exists()) {
if (flag == SQLiteDatabase.OPEN_READONLY) {
this.getReadableDatabase();
} else if (flag == SQLiteDatabase.OPEN_READWRITE) {
this.getWritableDatabase();
}
InputStream iStream = null;
OutputStream oStream = null;
try {
iStream = mContext.getAssets().open(mDbName);
oStream = new FileOutputStream(mDbPath + mDbName);
byte[] buffer = new byte[1024];
int length;
while ((length = iStream.read(buffer)) > 0) {
oStream.write(buffer, 0, length);
}
} catch (IOException e) {
throw e;
} finally {
if (iStream != null) {
iStream.close();
}
if (oStream != null) {
oStream.flush();
oStream.close();
}
}
}
try {
if (flag == SQLiteDatabase.OPEN_READONLY) {
db = SQLiteDatabase.openDatabase(mDbPath + mDbName, null,
SQLiteDatabase.OPEN_READONLY);
} else if (flag == SQLiteDatabase.OPEN_READWRITE) {
db = SQLiteDatabase.openDatabase(mDbPath + mDbName, null,
SQLiteDatabase.OPEN_READWRITE);
}
} catch (SQLiteException e) {
throw e;
}
}
@Override
public synchronized void close() {
if (db != null) {
db.close();
}
super.close();
}
@Override
public void onCreate(SQLiteDatabase db) {
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
public void runQuery(String query)
{
db.execSQL(query);
}
public ArrayList<list_row_model> selectHistory()
{
ArrayList<list_row_model> tempmodel = new ArrayList<list_row_model>();
Cursor c = db.rawQuery("SELECT * FROM history ", null);
if (c.moveToFirst()){
do {
tempmodel.add(new list_row_model(c.getString(0),c.getString(1),Integer.parseInt(c.getString(0))));
} while(c.moveToNext());
}
c.close();
///db.close();
return tempmodel;
}
}

View File

@ -1,14 +1,11 @@
package com.darkweb.genesissearchengine.appManager.data_helper; package com.darkweb.genesissearchengine.appManager.database_manager;
import android.database.Cursor; import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException; import com.darkweb.genesissearchengine.appManager.list_manager.list_row_model;
import com.darkweb.genesissearchengine.appManager.list_activity.list_row_model; import com.darkweb.genesissearchengine.appManager.home_activity.app_model;
import com.darkweb.genesissearchengine.appManager.main_activity.app_model;
import com.darkweb.genesissearchengine.constants.constants; import com.darkweb.genesissearchengine.constants.constants;
import com.darkweb.genesissearchengine.helperMethod;
import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import static android.content.Context.MODE_PRIVATE; import static android.content.Context.MODE_PRIVATE;
@ -32,7 +29,7 @@ public class database_controller
{ {
try try
{ {
database_instance = app_model.getInstance().getAppInstance().openOrCreateDatabase("DatabaseName", MODE_PRIVATE, null); database_instance = app_model.getInstance().getAppInstance().openOrCreateDatabase(constants.databae_name, MODE_PRIVATE, null);
database_instance.execSQL("CREATE TABLE IF NOT EXISTS " + "history" + " (id INT(4),date VARCHAR,url VARCHAR);"); database_instance.execSQL("CREATE TABLE IF NOT EXISTS " + "history" + " (id INT(4),date VARCHAR,url VARCHAR);");
database_instance.execSQL("CREATE TABLE IF NOT EXISTS " + "bookmark" + " (id INT(4),title VARCHAR,url VARCHAR);"); database_instance.execSQL("CREATE TABLE IF NOT EXISTS " + "bookmark" + " (id INT(4),title VARCHAR,url VARCHAR);");
@ -51,7 +48,7 @@ public class database_controller
public ArrayList<list_row_model> selectHistory() public ArrayList<list_row_model> selectHistory()
{ {
ArrayList<list_row_model> tempmodel = new ArrayList<list_row_model>(); ArrayList<list_row_model> tempmodel = new ArrayList<>();
Cursor c = database_instance.rawQuery("SELECT * FROM history ORDER BY id DESC ", null); Cursor c = database_instance.rawQuery("SELECT * FROM history ORDER BY id DESC ", null);
if (c.moveToFirst()){ if (c.moveToFirst()){
do { do {
@ -66,7 +63,7 @@ public class database_controller
public ArrayList<list_row_model> selectBookmark() public ArrayList<list_row_model> selectBookmark()
{ {
ArrayList<list_row_model> tempmodel = new ArrayList<list_row_model>(); ArrayList<list_row_model> tempmodel = new ArrayList<>();
Cursor c = database_instance.rawQuery("SELECT * FROM bookmark ORDER BY id DESC ", null); Cursor c = database_instance.rawQuery("SELECT * FROM bookmark ORDER BY id DESC ", null);
if (c.moveToFirst()){ if (c.moveToFirst()){

View File

@ -1,4 +1,4 @@
package com.darkweb.genesissearchengine.appManager.main_activity; package com.darkweb.genesissearchengine.appManager.home_activity;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -9,6 +9,9 @@ import android.view.ViewGroup;
import android.widget.ArrayAdapter; import android.widget.ArrayAdapter;
import android.widget.Filter; import android.widget.Filter;
import android.widget.Filterable; import android.widget.Filterable;
import android.widget.TextView;
import com.darkweb.genesissearchengine.appManager.list_manager.list_model;
import com.example.myapplication.R;
public class AutoCompleteAdapter extends ArrayAdapter<String> implements Filterable { public class AutoCompleteAdapter extends ArrayAdapter<String> implements Filterable {

View File

@ -1,11 +1,10 @@
package com.darkweb.genesissearchengine.appManager.main_activity; package com.darkweb.genesissearchengine.appManager.home_activity;
import android.content.Context; import android.content.Context;
import android.net.Uri; import android.net.Uri;
import com.darkweb.genesissearchengine.appManager.data_helper.database_controller; import com.darkweb.genesissearchengine.appManager.database_manager.database_controller;
import com.darkweb.genesissearchengine.appManager.list_activity.list_controller; import com.darkweb.genesissearchengine.appManager.list_manager.list_controller;
import com.darkweb.genesissearchengine.appManager.list_activity.list_model; import com.darkweb.genesissearchengine.appManager.list_manager.list_row_model;
import com.darkweb.genesissearchengine.appManager.list_activity.list_row_model;
import com.darkweb.genesissearchengine.constants.constants; import com.darkweb.genesissearchengine.constants.constants;
import com.darkweb.genesissearchengine.constants.status; import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.helperMethod; import com.darkweb.genesissearchengine.helperMethod;
@ -24,9 +23,6 @@ public class app_model
private Context appContext; private Context appContext;
private application_controller appInstance; private application_controller appInstance;
private Context listContext;
private list_controller listInstance;
/*Initializations*/ /*Initializations*/
public void initialization() public void initialization()
{ {
@ -50,7 +46,7 @@ public class app_model
} }
public void setPort(int port) public void setPort(int port)
{ {
this.port = port; app_model.port = port;
} }
@ -100,7 +96,7 @@ public class app_model
} }
addSuggestions(url); addSuggestions(url);
SimpleDateFormat d_form = new SimpleDateFormat("yyyy-MM-dd | HH-mm-ss"); SimpleDateFormat d_form = new SimpleDateFormat("dd MMMM | hh:mm a");
String date = d_form.format(new Date()); String date = d_form.format(new Date());
database_controller.getInstance().execSQL("INSERT INTO history(id,date,url) VALUES("+autoval+",'"+date+"','"+url+"');"); database_controller.getInstance().execSQL("INSERT INTO history(id,date,url) VALUES("+autoval+",'"+date+"','"+url+"');");
history.add(0,new list_row_model(url,date,autoval)); history.add(0,new list_row_model(url,date,autoval));
@ -139,7 +135,7 @@ public class app_model
public void initSuggestions(String url) { public void initSuggestions(String url) {
suggestions.add(url); suggestions.add(url.replace("https://","").replace("http://",""));
} }
public void addSuggestions(String url) { public void addSuggestions(String url) {
if(url.contains("boogle.store")) if(url.contains("boogle.store"))
@ -148,7 +144,7 @@ public class app_model
String actual_url = uri.getQueryParameter("q"); String actual_url = uri.getQueryParameter("q");
suggestions.add(actual_url); suggestions.add(actual_url);
} }
suggestions.add(url); suggestions.add(url.replace("https://","").replace("http://",""));
app_model.getInstance().getAppInstance().reInitializeSuggestion(); app_model.getInstance().getAppInstance().reInitializeSuggestion();
} }
public ArrayList<String> getSuggestions() { public ArrayList<String> getSuggestions() {
@ -156,19 +152,10 @@ public class app_model
} }
public void setListInstance(list_controller listInstance){ /*Helper Method*/
this.listInstance = listInstance; public boolean isUrlRepeatable(String url,String viewUrl){
} return url.equals(viewUrl) && !app_model.getInstance().getAppInstance().isInternetErrorOpened() || url.contains("https://boogle.store/search?q=&");
public list_controller getListInstance(){
return listInstance;
}
public void setListContext(Context listContext) {
this.listContext = listContext;
}
public Context getListContext(){
return listContext;
} }
} }

View File

@ -1,4 +1,4 @@
package com.darkweb.genesissearchengine.appManager.main_activity; package com.darkweb.genesissearchengine.appManager.home_activity;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
@ -45,10 +45,10 @@ public class application_controller extends AppCompatActivity
protected void onCreate(Bundle savedInstanceState) protected void onCreate(Bundle savedInstanceState)
{ {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.home_view);
if(helperMethod.isBuildValid()) if(helperMethod.isBuildValid())
{ {
setContentView(R.layout.home_view);
initializeAppModel(); initializeAppModel();
preference_manager.getInstance().initialize(); preference_manager.getInstance().initialize();
@ -60,16 +60,16 @@ public class application_controller extends AppCompatActivity
initAdManager(); initAdManager();
orbot_manager.getInstance().reinitOrbot(); orbot_manager.getInstance().reinitOrbot();
applicationViewController.getInstance().initialization(webView,loadingText,progressBar,searchbar,splashScreen,requestFailure,floatingButton, loadingIcon,splashlogo); viewController.getInstance().initialization(webView,loadingText,progressBar,searchbar,splashScreen,requestFailure,floatingButton, loadingIcon,splashlogo);
firebase.getInstance().initialize(); firebase.getInstance().initialize();
geckoclient.initialize(geckoView); geckoclient.initialize(geckoView,false);
app_model.getInstance().initialization(); app_model.getInstance().initialization();
initBoogle();
initSearchEngine();
} }
else else
{ {
setContentView(R.layout.invalid_setup); initializeAppModel();
setContentView(R.layout.invalid_setup_view);
message_manager.getInstance().abiError(Build.SUPPORTED_ABIS[0]); message_manager.getInstance().abiError(Build.SUPPORTED_ABIS[0]);
} }
@ -80,20 +80,31 @@ public class application_controller extends AppCompatActivity
admanager.getInstance().initialize(); admanager.getInstance().initialize();
} }
public void initSearchEngine() public void initBoogle()
{ {
fabricManager.getInstance().sendEvent("HOME PAGE LOADING : " ); onloadURL(constants.backendGenesis,false,false);
if(status.search_status.equals(enums.searchEngine.Google.toString())) }
public Boolean initSearchEngine()
{
if(status.search_status.equals(enums.searchEngine.Bing.toString()))
{ {
webView.loadUrl(constants.backendGoogle); geckoclient.setRootEngine(constants.backendBing);
webView.stopLoading();
onloadURL(constants.backendBing,true,false);
return false;
} }
else if(status.search_status.equals(enums.searchEngine.Bing.toString())) else if(status.search_status.equals(enums.searchEngine.Google.toString()))
{ {
webView.loadUrl(constants.backendBing); geckoclient.setRootEngine(constants.backendGoogle);
webView.stopLoading();
onloadURL(constants.backendGoogle,true,false);
return false;
} }
else else
{ {
webView.loadUrl(constants.backendGenesis); onloadURL(constants.backendGenesis,false,false);
return true;
} }
} }
@ -137,7 +148,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(false); view.getSettings().setJavaScriptEnabled(status.java_status);
view.getSettings().setUseWideViewPort(true); view.getSettings().setUseWideViewPort(true);
} }
@ -183,7 +194,7 @@ public class application_controller extends AppCompatActivity
{ {
geckoclient.loadGeckoURL(url,geckoView,isUrlSavable); geckoclient.loadGeckoURL(url,geckoView,isUrlSavable);
} }
else else if(!app_model.getInstance().isUrlRepeatable(url,webView.getUrl()) || webView.getVisibility() == View.GONE)
{ {
webView.loadUrl(url); webView.loadUrl(url);
onRequestTriggered(isHiddenWeb,url); onRequestTriggered(isHiddenWeb,url);
@ -191,76 +202,84 @@ public class application_controller extends AppCompatActivity
} }
public void onRequestTriggered(boolean isHiddenWeb,String url) { public void onRequestTriggered(boolean isHiddenWeb,String url) {
applicationViewController.getInstance().onRequestTriggered(isHiddenWeb,url); viewController.getInstance().onRequestTriggered(isHiddenWeb,url);
} }
public void onClearSearchBarCursorView() public void onClearSearchBarCursorView()
{ {
applicationViewController.getInstance().onClearSearchBarCursor(); viewController.getInstance().onClearSearchBarCursor();
} }
public void onUpdateSearchBarView(String url) public void onUpdateSearchBarView(String url)
{ {
applicationViewController.getInstance().onUpdateSearchBar(url); viewController.getInstance().onUpdateSearchBar(url);
} }
public void onInternetErrorView() { public void onInternetErrorView() {
applicationViewController.getInstance().onInternetError(); viewController.getInstance().onInternetError();
applicationViewController.getInstance().disableFloatingView(); viewController.getInstance().disableFloatingView();
} }
public boolean onDisableInternetError() public boolean onDisableInternetError()
{ {
return applicationViewController.getInstance().onDisableInternetError(); return viewController.getInstance().onDisableInternetError();
} }
public void onProgressBarUpdateView(int progress) { public void onProgressBarUpdateView(int progress) {
applicationViewController.getInstance().onProgressBarUpdate(progress); viewController.getInstance().onProgressBarUpdate(progress);
} }
public void onBackPressedView() public void onBackPressedView()
{ {
applicationViewController.getInstance().onBackPressed(); viewController.getInstance().onBackPressed();
} }
public void onPageFinished(boolean isHidden) public void onPageFinished(boolean isHidden)
{ {
applicationViewController.getInstance().onPageFinished(isHidden); viewController.getInstance().onPageFinished(isHidden);
} }
public void onUpdateView(boolean status) public void onUpdateView(boolean status)
{ {
applicationViewController.getInstance().onUpdateView(status); viewController.getInstance().onUpdateView(status);
} }
public void onReload() public void onReload()
{ {
applicationViewController.getInstance().onReload(); viewController.getInstance().onReload();
} }
public void onShowAds() public void onShowAd(enums.adID id)
{ {
applicationViewController.getInstance().onShowAds(); admanager.getInstance().showAd(id);
} }
public void openMenu(View view) { public void openMenu(View view) {
applicationViewController.getInstance().openMenu(view);
viewController.getInstance().openMenu(view);
} }
public void reInitializeSuggestion() { public void reInitializeSuggestion() {
applicationViewController.getInstance().reInitializeSuggestion(); viewController.getInstance().reInitializeSuggestion();
}
public void hideSplashScreen(){
viewController.getInstance().hideSplashScreen();
} }
/*-------------------------------------------------------Helper Method Out UI Redirection----------------------------------------------------*/ /*-------------------------------------------------------Helper Method Out UI Redirection----------------------------------------------------*/
public String getSearchBarUrl() public String getSearchBarUrl()
{ {
return applicationViewController.getInstance().getSearchBarUrl(); return viewController.getInstance().getSearchBarUrl();
} }
public void onReInitGeckoView() { public void onReInitGeckoView() {
geckoclient.initialize(geckoView); geckoclient.initialize(geckoView,true);
geckoclient.onReloadHiddenView(); if(webView.getVisibility() != View.VISIBLE)
{
geckoclient.onReloadHiddenView();
}
} }
public void onHiddenGoBack() public void onHiddenGoBack()
@ -268,9 +287,14 @@ public class application_controller extends AppCompatActivity
geckoclient.onHiddenGoBack(geckoView); geckoclient.onHiddenGoBack(geckoView);
} }
public void stopHiddenView() { public int getHiddenQueueLength()
geckoclient.stopHiddenView(geckoView); {
geckoclient.removeHistory(); return geckoclient.getHiddenQueueLength();
}
public void stopHiddenView(boolean releaseView) {
geckoclient.stopHiddenView(geckoView,releaseView);
//geckoclient.removeHistory();
} }
public void onReloadHiddenView() public void onReloadHiddenView()

View File

@ -1,11 +1,12 @@
package com.darkweb.genesissearchengine.appManager.main_activity; package com.darkweb.genesissearchengine.appManager.home_activity;
import android.util.Log;
import android.util.Patterns; import android.util.Patterns;
import android.view.KeyEvent; import android.view.KeyEvent;
import android.view.View; import android.view.View;
import android.view.inputmethod.EditorInfo; import android.view.inputmethod.EditorInfo;
import android.widget.TextView; import android.widget.TextView;
import com.darkweb.genesissearchengine.appManager.list_activity.list_controller; import com.darkweb.genesissearchengine.appManager.list_manager.list_controller;
import com.darkweb.genesissearchengine.appManager.setting_manager.setting_controller; import com.darkweb.genesissearchengine.appManager.setting_manager.setting_controller;
import com.darkweb.genesissearchengine.constants.constants; import com.darkweb.genesissearchengine.constants.constants;
import com.darkweb.genesissearchengine.constants.enums; import com.darkweb.genesissearchengine.constants.enums;
@ -100,12 +101,11 @@ public class eventHandler
public void onHomeButtonPressed() public void onHomeButtonPressed()
{ {
appContoller.stopHiddenView(); appContoller.stopHiddenView(true);
fabricManager.getInstance().sendEvent("HOME BUTTON PRESSSED : "); fabricManager.getInstance().sendEvent("HOME BUTTON PRESSSED : ");
applicationViewController.getInstance().checkSSLTextColor(); viewController.getInstance().checkSSLTextColor();
appContoller.initSearchEngine(); appContoller.initSearchEngine();
helperMethod.hideKeyboard(); helperMethod.hideKeyboard();
appContoller.onUpdateSearchBarView(constants.frontUrlSlashed);
} }
public void onFloatingButtonPressed() public void onFloatingButtonPressed()

View File

@ -1,47 +1,44 @@
package com.darkweb.genesissearchengine.appManager.main_activity; package com.darkweb.genesissearchengine.appManager.home_activity;
import android.os.Handler; import android.os.Handler;
import android.util.Log;
import android.view.View; import android.view.View;
import com.darkweb.genesissearchengine.constants.keys; import com.darkweb.genesissearchengine.constants.*;
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.pluginManager.fabricManager; import com.darkweb.genesissearchengine.pluginManager.fabricManager;
import com.darkweb.genesissearchengine.pluginManager.message_manager; import com.darkweb.genesissearchengine.pluginManager.message_manager;
import com.darkweb.genesissearchengine.pluginManager.orbot_manager; import com.darkweb.genesissearchengine.pluginManager.orbot_manager;
import org.mozilla.geckoview.GeckoResult;
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; import java.util.ArrayList;
public class geckoClients class geckoClients
{ {
private GeckoSession session1 = null; private GeckoSession session1 = null;
private GeckoRuntime runtime1;
private final Handler internetErrorHandler = new Handler(); private final Handler internetErrorHandler = new Handler();
private ArrayList<String> urlList = new ArrayList<>();
boolean canSessionGoBack = false; private boolean isRunning = false;
boolean isRunning = false; private boolean isContentLoading = false;
boolean isContentLoading = false; private String navigatedURL = "";
String navigatedURL = ""; private boolean isFirstTimeLoad = true;
boolean isFirstTimeLoad = true;
ArrayList<String> urlList = new ArrayList<>();
private boolean loadingCompeleted = false; private boolean loadingCompeleted = false;
private String currentURL = "";
private boolean wasBackPressed = false; private boolean wasBackPressed = false;
private boolean isUrlSavable = true; private boolean isUrlSavable = true;
private int urlRequestCount = 0; private int urlRequestCount = 0;
private boolean isAppRated = false; private boolean isAppRated = false;
public geckoClients() geckoClients()
{ {
isAppRated = preference_manager.getInstance().getBool(keys.isAppRated,false); isAppRated = preference_manager.getInstance().getBool(keys.isAppRated,false);
} }
public void loadGeckoURL(String url,GeckoView geckoView,boolean isUrlSavable) void loadGeckoURL(String url,GeckoView geckoView,boolean isUrlSavable)
{ {
boolean init_status = orbot_manager.getInstance().initOrbot(url); boolean init_status = orbot_manager.getInstance().initOrbot(url);
if (init_status) if (init_status)
@ -49,7 +46,7 @@ public class geckoClients
this.isUrlSavable = isUrlSavable; this.isUrlSavable = isUrlSavable;
navigatedURL = ""; navigatedURL = "";
loadingCompeleted = false; loadingCompeleted = false;
initialize(geckoView); initialize(geckoView,false);
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);
@ -61,12 +58,12 @@ public class geckoClients
} }
} }
public void initialize(GeckoView geckoView) void initialize(GeckoView geckoView,boolean release)
{ {
if(urlList.size()<=0) if(urlList.size()<=0 || release)
{ {
session1 = new GeckoSession(); session1 = new GeckoSession();
runtime1 = GeckoRuntime.getDefault(app_model.getInstance().getAppContext()); GeckoRuntime runtime1 = GeckoRuntime.getDefault(app_model.getInstance().getAppContext());
runtime1.getSettings().setJavaScriptEnabled(status.java_status); runtime1.getSettings().setJavaScriptEnabled(status.java_status);
session1.open(runtime1); session1.open(runtime1);
geckoView.releaseSession(); geckoView.releaseSession();
@ -87,10 +84,12 @@ public class geckoClients
} }
@Override @Override
public void onCanGoBack(GeckoSession session, boolean canGoBack) public GeckoResult<GeckoSession> onNewSession(GeckoSession session, String uri)
{ {
canSessionGoBack = canGoBack; session1.loadUri(uri);
return null;
} }
} }
class progressDelegate implements GeckoSession.ProgressDelegate class progressDelegate implements GeckoSession.ProgressDelegate
@ -101,20 +100,11 @@ public class geckoClients
wasBackPressed = false; wasBackPressed = false;
isRunning = true; isRunning = true;
loadingCompeleted = false; loadingCompeleted = false;
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); app_model.getInstance().getAppInstance().onUpdateSearchBarView(url);
if(navigatedURL.equals(currentURL)) isContentLoading = !navigatedURL.equals(url);
{
isContentLoading = false;
}
else
{
isContentLoading = true;
}
Log.i("SHITJ2",""+navigatedURL + "--" + currentURL + "--" + isContentLoading);
navigatedURL = url; navigatedURL = url;
} }
@ -123,12 +113,17 @@ public class geckoClients
{ {
internetErrorHandler.removeCallbacksAndMessages(null); internetErrorHandler.removeCallbacksAndMessages(null);
internetErrorHandler.postDelayed(new Runnable() { internetErrorHandler.postDelayed(new Runnable()
{
@Override @Override
public void run() public void run()
{ {
if(loadingCompeleted) if(loadingCompeleted)
{ {
if(isFirstTimeLoad)
{
app_model.getInstance().getAppInstance().hideSplashScreen();
}
if(!success && !isContentLoading) if(!success && !isContentLoading)
{ {
app_model.getInstance().getAppInstance().onPageFinished(true); app_model.getInstance().getAppInstance().onPageFinished(true);
@ -137,21 +132,11 @@ public class geckoClients
} }
else if(success) else if(success)
{ {
if(isFirstTimeLoad) if((urlList.size() == 0 || !urlList.get(urlList.size() - 1).equals(navigatedURL)) && !wasBackPressed)
{
//admanager.getInstance().showAd(true);
isFirstTimeLoad = false;
}
if((urlList.size()==0 || urlList.size()>0 && !urlList.get(urlList.size()-1).equals(navigatedURL))&& !wasBackPressed)
{ {
urlList.add(navigatedURL); urlList.add(navigatedURL);
} }
if(urlList.size()>0)
{
//admanager.getInstance().showAd(false);
}
urlRequestCount++; urlRequestCount++;
if(urlRequestCount==5) if(urlRequestCount==5)
{ {
@ -161,9 +146,16 @@ public class geckoClients
message_manager.getInstance().rateApp(); message_manager.getInstance().rateApp();
} }
} }
else if(urlRequestCount>=4 && isAppRated) else if(isAppRated)
{ {
app_model.getInstance().getAppInstance().onShowAds(); if(isFirstTimeLoad)
{
app_model.getInstance().getAppInstance().onShowAd(enums.adID.hidden);
}
else
{
app_model.getInstance().getAppInstance().onShowAd(enums.adID.internal);
}
} }
if(isUrlSavable && !urlList.get(urlList.size()-1).equals("navigatedURL")) if(isUrlSavable && !urlList.get(urlList.size()-1).equals("navigatedURL"))
@ -176,6 +168,7 @@ public class geckoClients
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); app_model.getInstance().getAppInstance().onPageFinished(true);
} }
isFirstTimeLoad = false;
} }
} }
}, 500); }, 500);
@ -191,8 +184,7 @@ public class geckoClients
loadingCompeleted = true; loadingCompeleted = true;
isContentLoading = false; isContentLoading = false;
} }
else if(progress>=5)
if(progress>=5)
{ {
app_model.getInstance().getAppInstance().onProgressBarUpdateView(progress); app_model.getInstance().getAppInstance().onProgressBarUpdateView(progress);
} }
@ -209,7 +201,7 @@ public class geckoClients
} }
public void onHiddenGoBack(GeckoView geckoView) void onHiddenGoBack(GeckoView geckoView)
{ {
if(urlList.size()>1) if(urlList.size()>1)
{ {
@ -221,19 +213,24 @@ public class geckoClients
} }
else if(isRunning) else if(isRunning)
{ {
if(urlList.size()>0) if(navigatedURL.equals(constants.backendGoogle) && status.search_status.equals(strings.google_text) || navigatedURL.equals(constants.backendBing) && status.search_status.equals(strings.bing_text))
{ {
urlList.remove(urlList.size()-1); helperMethod.onMinimizeApp();
}
else
{
if(urlList.size()>0)
{
urlList.remove(urlList.size()-1);
}
stopHiddenView(geckoView,false);
app_model.getInstance().getAppInstance().onUpdateView(true);
app_model.getInstance().getAppInstance().onDisableInternetError();
} }
stopHiddenView(geckoView);
app_model.getInstance().getAppInstance().onUpdateView(true);
app_model.getInstance().getAppInstance().onDisableInternetError();
} }
} }
public void stopHiddenView(GeckoView geckoView) void stopHiddenView(GeckoView geckoView,boolean releaseView)
{ {
if(session1!=null) if(session1!=null)
{ {
@ -241,30 +238,38 @@ public class geckoClients
loadingCompeleted = false; loadingCompeleted = false;
session1.stop(); session1.stop();
session1.close(); if(!releaseView)
{
session1.close();
}
} }
geckoView.releaseSession();
} }
public void removeHistory() int getHiddenQueueLength()
{ {
urlList.clear(); return urlList.size();
} }
public boolean isGeckoViewRunning() void setRootEngine(String url)
{
if(urlList.size()>1)
{
urlList.set(0,url);
}
}
boolean isGeckoViewRunning()
{ {
return isRunning; return isRunning;
} }
public void onReloadHiddenView() void onReloadHiddenView()
{ {
if(urlList.size()>0) if(urlList.size()>0)
{ {
wasBackPressed = true; wasBackPressed = true;
session1.stop(); session1.stop();
session1.loadUri(navigatedURL); session1.loadUri(urlList.get(urlList.size()-1));
} }
} }
} }

View File

@ -1,6 +1,7 @@
package com.darkweb.genesissearchengine.appManager.main_activity; package com.darkweb.genesissearchengine.appManager.home_activity;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.content.res.Resources;
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;
@ -9,17 +10,12 @@ import android.text.SpannableString;
import android.text.Spanned; import android.text.Spanned;
import android.text.style.ForegroundColorSpan; import android.text.style.ForegroundColorSpan;
import android.util.Log; import android.util.Log;
import android.view.MenuInflater; import android.view.*;
import android.view.View;
import android.view.WindowManager;
import android.webkit.WebView; import android.webkit.WebView;
import android.widget.*; import android.widget.*;
import androidx.constraintlayout.widget.ConstraintLayout; import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.core.view.MenuCompat; import androidx.core.view.MenuCompat;
import com.darkweb.genesissearchengine.constants.constants; import com.darkweb.genesissearchengine.constants.*;
import com.darkweb.genesissearchengine.constants.keys;
import com.darkweb.genesissearchengine.constants.messages;
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;
@ -29,9 +25,7 @@ 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 com.google.android.material.floatingactionbutton.FloatingActionButton;
import java.util.ArrayList; public class viewController
public class applicationViewController
{ {
/*ViewControllers*/ /*ViewControllers*/
private WebView webView; private WebView webView;
@ -54,14 +48,14 @@ public class applicationViewController
Handler progressBarHandler = null; Handler progressBarHandler = null;
/*Initializations*/ /*Initializations*/
private static final applicationViewController ourInstance = new applicationViewController(); private static final viewController ourInstance = new viewController();
public static applicationViewController getInstance() public static viewController getInstance()
{ {
return ourInstance; return ourInstance;
} }
private applicationViewController() private viewController()
{ {
} }
@ -88,15 +82,23 @@ public class applicationViewController
private void initializeSuggestionView() private void initializeSuggestionView()
{ {
suggestionAdapter = new AutoCompleteAdapter(app_model.getInstance().getAppInstance(), R.layout.hint_completion_layout, R.id.hintCompletionText,app_model.getInstance().getSuggestions()); suggestionAdapter = new AutoCompleteAdapter(app_model.getInstance().getAppInstance(), R.layout.hint_view, R.id.hintCompletionHeader,app_model.getInstance().getSuggestions());
int width = Math.round(helperMethod.screenWidth());
searchbar.setThreshold(2); searchbar.setThreshold(2);
searchbar.setAdapter(suggestionAdapter); searchbar.setAdapter(suggestionAdapter);
searchbar.setDropDownVerticalOffset(27); searchbar.setDropDownVerticalOffset(22);
searchbar.setDropDownWidth(helperMethod.screenWidth()-80); searchbar.setDropDownWidth(Math.round(width*0.95f));
searchbar.setDropDownHorizontalOffset(-88); searchbar.setDropDownHorizontalOffset(Math.round(width*0.114f)*-1);
searchbar.setDropDownHeight(Math.round(helperMethod.screenHeight(false)*0.35f));
searchbar.setDropDownBackgroundDrawable(app_model.getInstance().getAppInstance().getResources().getDrawable(R.drawable.rouned_corner)); Drawable drawable;
Resources res = app_model.getInstance().getAppInstance().getResources();
try {
drawable = Drawable.createFromXml(res, res.getXml(R.xml.rouned_corner));
searchbar.setDropDownBackgroundDrawable(drawable);
} catch (Exception ex) {
Log.i("sdfsdf", ex.getMessage());
}
} }
@ -163,11 +165,11 @@ public class applicationViewController
try try
{ {
boolean isFirstInstall = preference_manager.getInstance().getBool(keys.hasOrbotInstalled,true); boolean isFirstInstall = preference_manager.getInstance().getBool(keys.hasOrbotInstalled,true);
//while (!status.isTorInitialized && isFirstInstall) while (!status.isTorInitialized && (isFirstInstall || status.search_status.equals(enums.searchEngine.Google.toString()) || status.search_status.equals(enums.searchEngine.Bing.toString())))
//{ {
// startPostTask(messages.UPDATE_LOADING_TEXT); startPostTask(messages.UPDATE_LOADING_TEXT);
// sleep(100); sleep(100);
//} }
preference_manager.getInstance().setBool(keys.hasOrbotInstalled,false); preference_manager.getInstance().setBool(keys.hasOrbotInstalled,false);
startPostTask(messages.DISABLE_SPLASH_SCREEN); startPostTask(messages.DISABLE_SPLASH_SCREEN);
} }
@ -201,10 +203,12 @@ public class applicationViewController
} }
else if(msg.what == messages.DISABLE_SPLASH_SCREEN) else if(msg.what == messages.DISABLE_SPLASH_SCREEN)
{ {
status.isApplicationLoaded = true; boolean e_status = app_model.getInstance().getAppInstance().initSearchEngine();
splashScreen.animate().alpha(0.0f).setDuration(200).setListener(null).withEndAction((() -> splashScreen.setVisibility(View.GONE)));
onWelcomeMessageCheck(); if(e_status)
//app_model.getInstance().getAppInstance().initAdManager(); {
hideSplashScreen();
}
} }
else if(msg.what == messages.SHOW_ADS) else if(msg.what == messages.SHOW_ADS)
{ {
@ -214,11 +218,18 @@ public class applicationViewController
}; };
} }
public void hideSplashScreen()
{
status.isApplicationLoaded = true;
splashScreen.animate().alpha(0.0f).setDuration(200).setListener(null).withEndAction((() -> splashScreen.setVisibility(View.GONE)));
onWelcomeMessageCheck();
}
public boolean onDisableInternetError() public boolean onDisableInternetError()
{ {
if(requestFailure.getAlpha()==1) if(requestFailure.getAlpha()==1)
{ {
requestFailure.animate().alpha(0f).setDuration(150).withEndAction((() -> requestFailure.setVisibility(View.INVISIBLE)));; requestFailure.animate().alpha(0f).setDuration(150).withEndAction((() -> requestFailure.setVisibility(View.INVISIBLE)));
return true; return true;
} }
else else
@ -242,14 +253,14 @@ public class applicationViewController
} }
//onUpdateSearchBar(webView.getUrl()); //onUpdateSearchBar(webView.getUrl());
disableSplashScreen(); disableSplashScreen();
floatingButton.animate().alpha(0).withEndAction((() -> floatingButton.setVisibility(View.GONE)));; floatingButton.animate().alpha(0).withEndAction((() -> floatingButton.setVisibility(View.GONE)));
app_model.getInstance().getAppInstance().stopHiddenView(); app_model.getInstance().getAppInstance().stopHiddenView(false);
} }
else else
{ {
onUpdateView(false); onUpdateView(false);
floatingButton.animate().alpha(1).withEndAction((() -> floatingButton.setVisibility(View.VISIBLE)));; floatingButton.animate().alpha(1).withEndAction((() -> floatingButton.setVisibility(View.VISIBLE)));
} }
} }
@ -287,7 +298,7 @@ public class applicationViewController
public void disableFloatingView() public void disableFloatingView()
{ {
floatingButton.animate().alpha(0).withEndAction((() -> floatingButton.setVisibility(View.GONE)));; floatingButton.animate().alpha(0).withEndAction((() -> floatingButton.setVisibility(View.GONE)));
} }
@ -309,28 +320,49 @@ public class applicationViewController
public void onProgressBarUpdate(int progress) public void onProgressBarUpdate(int progress)
{ {
progressBar.setVisibility(View.VISIBLE);
if(progress==0) if(progress==0)
{ {
progressBar.animate().alpha(0).withEndAction((() -> progressBar.setProgress(progress))); progressBar.animate().alpha(0).withEndAction((() -> progressBar.setProgress(progress)));
} }
else else if(splashScreen.getVisibility() == View.GONE)
{ {
progressBar.setProgress(progress); if(progressBar.getVisibility()==View.INVISIBLE)
{
progressBar.setProgress(4);
}
else
{
progressBar.setProgress(progress);
}
progressBar.setVisibility(View.VISIBLE);
progressBar.setAlpha(1); progressBar.setAlpha(1);
} }
} }
public void onBackPressed() public void onBackPressed()
{ {
if(!isHiddenView()) if(webView.getVisibility() == View.VISIBLE)
{ {
webView.goBack(); if(!webView.canGoBack())
webView.bringToFront(); {
webView.setAlpha(1); if(app_model.getInstance().getAppInstance().getHiddenQueueLength()>0)
webView.setVisibility(View.VISIBLE); {
requestFailure.animate().alpha(0f).setDuration(200).withEndAction((() -> requestFailure.setVisibility(View.INVISIBLE))); onUpdateView(false);
onUpdateSearchBar(webView.getUrl()); }
else
{
helperMethod.onMinimizeApp();
}
}
else
{
webView.goBack();
webView.bringToFront();
webView.setAlpha(1);
webView.setVisibility(View.VISIBLE);
requestFailure.animate().alpha(0f).setDuration(200).withEndAction((() -> requestFailure.setVisibility(View.INVISIBLE)));
onUpdateSearchBar(webView.getUrl());
}
} }
else else
{ {
@ -342,7 +374,7 @@ public class applicationViewController
{ {
if(status) if(status)
{ {
floatingButton.animate().alpha(0).withEndAction((() -> floatingButton.setVisibility(View.GONE)));; floatingButton.animate().alpha(0).withEndAction((() -> floatingButton.setVisibility(View.GONE)));
webView.setAlpha(1); webView.setAlpha(1);
webView.setVisibility(View.VISIBLE); webView.setVisibility(View.VISIBLE);
webView.bringToFront(); webView.bringToFront();
@ -371,11 +403,19 @@ public class applicationViewController
public void openMenu(View view) public void openMenu(View view)
{ {
PopupMenu popup = new PopupMenu(app_model.getInstance().getAppInstance(), view); LinearLayout parentView = (LinearLayout)view.getParent();
PopupMenu popup = new PopupMenu(app_model.getInstance().getAppInstance(), parentView,Gravity.RIGHT);
MenuInflater inflater = popup.getMenuInflater(); MenuInflater inflater = popup.getMenuInflater();
inflater.inflate(R.menu.menu_main, popup.getMenu()); inflater.inflate(R.menu.menu_main, popup.getMenu());
MenuCompat.setGroupDividerEnabled(popup.getMenu(), true); MenuCompat.setGroupDividerEnabled(popup.getMenu(), true);
popup.setOnMenuItemClickListener(item ->
{
app_model.getInstance().getAppInstance().onMenuOptionSelected(item);
return true;
});
popup.show(); popup.show();
view.bringToFront();
} }
public void onReload() public void onReload()

View File

@ -1,9 +1,10 @@
package com.darkweb.genesissearchengine.appManager.main_activity; package com.darkweb.genesissearchengine.appManager.home_activity;
import android.webkit.WebChromeClient; import android.webkit.WebChromeClient;
import android.webkit.WebView; import android.webkit.WebView;
import android.webkit.WebViewClient; import android.webkit.WebViewClient;
import com.darkweb.genesissearchengine.constants.constants; import com.darkweb.genesissearchengine.constants.constants;
import com.darkweb.genesissearchengine.constants.enums;
import com.darkweb.genesissearchengine.constants.status; import com.darkweb.genesissearchengine.constants.status;
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;
@ -20,14 +21,14 @@ public class webviewClient
public boolean shouldOverrideUrlLoading(WebView view, String url) public boolean shouldOverrideUrlLoading(WebView view, String url)
{ {
isGeckoView = false; isGeckoView = false;
if(url.equals(view.getUrl()) && !app_model.getInstance().getAppInstance().isInternetErrorOpened() || url.contains("https://boogle.store/search?q=&")) if(app_model.getInstance().isUrlRepeatable(url,view.getUrl()))
{ {
app_model.getInstance().getAppInstance().onProgressBarUpdateView(0); app_model.getInstance().getAppInstance().onProgressBarUpdateView(0);
return true; return true;
} }
if(!url.contains("boogle") && !url.equals(constants.backendGoogle) && !url.equals(constants.backendBing)) if(!url.contains("boogle"))
{ {
app_model.getInstance().getAppInstance().stopHiddenView(); app_model.getInstance().getAppInstance().stopHiddenView(false);
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

@ -1,159 +0,0 @@
package com.darkweb.genesissearchengine.appManager.list_activity;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.*;
import androidx.recyclerview.widget.RecyclerView;
import com.darkweb.genesissearchengine.appManager.data_helper.database_controller;
import com.darkweb.genesissearchengine.appManager.main_activity.app_model;
import com.darkweb.genesissearchengine.constants.constants;
import com.darkweb.genesissearchengine.helperMethod;
import com.darkweb.genesissearchengine.pluginManager.orbot_manager;
import com.example.myapplication.R;
public class list_adapter extends RecyclerView.Adapter<list_adapter.listViewHolder>
{
private ImageView empty_list;
private list_controller controller;
public list_adapter()
{
}
public void initialize(ImageView empty_list,list_controller controller)
{
this.empty_list = empty_list;
this.controller = controller;
}
@Override
public listViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_manager_row, parent, false);
listViewHolder viewHolder = new listViewHolder(view);
return viewHolder;
}
@Override
public void onBindViewHolder(list_adapter.listViewHolder holder, int position)
{
holder.bindListView(list_model.getInstance().getModel().get(position));
clearMessageItem(holder.messageButton,holder.empty_message,position);
}
@Override
public int getItemCount() {
return list_model.getInstance().getModel().size();
}
public class listViewHolder extends RecyclerView.ViewHolder
{
public TextView heaaderText;
public TextView descriptionText;
public ImageButton messageButton;
public ImageView empty_message;
public listViewHolder(View itemView) {
super(itemView);
}
public void bindListView(list_row_model model) {
heaaderText = itemView.findViewById(R.id.header);
descriptionText = itemView.findViewById(R.id.description);
String header = model.getHeader();
descriptionText.setText(model.getDescription());
if(model.getHeader().length()<=2)
{
header = model.getDescription() + model.getHeader();
}
heaaderText.setText(header);
messageButton = itemView.findViewById(R.id.message_button);
empty_message = itemView.findViewById(R.id.empty_list);
setItemViewOnClickListener(itemView,header);
}
}
public void setItemViewOnClickListener(View itemView,String url)
{
itemView.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v)
{
String tempurl = url;
isValidUrl(tempurl);
controller.finish();
}
});
}
public boolean isValidUrl(String url)
{
url = helperMethod.completeURL(url);
if(!url.contains("boogle") && !url.equals(constants.backendGoogle) && !url.equals(constants.backendBing))
{
if(orbot_manager.getInstance().initOrbot(url))
{
app_model.getInstance().getAppInstance().onloadURL(url,true,false);
return true;
}
return false;
}
else
{
app_model.getInstance().getAppInstance().onloadURL(url,false,false);
return true;
}
}
public void clearMessageItem(ImageButton messageButton,ImageView view,int index)
{
ImageView newview = view;
messageButton.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
deleteFromDatabase(list_model.getInstance().getModel().get(index).getId());
list_model.getInstance().getModel().remove(index);
list_model.getInstance().removeFromMainList(list_model.getInstance().getIndex().get(index));
list_model.getInstance().removeIndex(index);
list_adapter.this.notifyItemRemoved(index);
list_adapter.this.notifyDataSetChanged();
isListEmpty(newview);
}
});
}
public void deleteFromDatabase(int index)
{
String table="bookmark";
if(list_model.getInstance().getType()==constants.list_history)
{
table = "history";
}
Log.i("dgfdfg","delete from "+table+" where id="+index);
database_controller.getInstance().execSQL("delete from "+table+" where id="+index);
}
public void isListEmpty(ImageView view)
{
if(list_model.getInstance().getModel().size()<=0)
{
empty_list.setAlpha(0f);
empty_list.setVisibility(View.VISIBLE);
empty_list.animate().alpha(1);
}
}
}

View File

@ -1,152 +0,0 @@
package com.darkweb.genesissearchengine.appManager.list_activity;
import android.view.View;
import android.view.inputmethod.EditorInfo;
import android.widget.EditText;
import android.widget.ImageView;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.darkweb.genesissearchengine.appManager.data_helper.database_controller;
import com.darkweb.genesissearchengine.appManager.main_activity.app_model;
import com.darkweb.genesissearchengine.constants.constants;
import com.darkweb.genesissearchengine.constants.keys;
import com.darkweb.genesissearchengine.pluginManager.message_manager;
import com.example.myapplication.R;
import java.util.ArrayList;
public class list_controller extends AppCompatActivity
{
private ImageView empty_list;
private EditText search_bar;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_app_list_manager);
initializeListInstance();
initializeListModel();
initializeListController();
initSearchBar();
updatelist();
}
public void initializeListInstance()
{
app_model.getInstance().setListInstance(this);
app_model.getInstance().setListContext(this);
}
public void initializeListModel()
{
Bundle bundle = getIntent().getExtras();
if(bundle.getInt(keys.list_type)==constants.list_bookmark)
{
list_model.getInstance().setType(constants.list_bookmark);
list_model.getInstance().setMainList(app_model.getInstance().getBookmark());
}
else
{
list_model.getInstance().setType(constants.list_history);
list_model.getInstance().setMainList(app_model.getInstance().getHistory());
}
}
public void initializeListController()
{
empty_list = findViewById(R.id.empty_list);
search_bar = findViewById(R.id.search);
RecyclerView list_view = findViewById(R.id.listview);
list_adapter adapter = new list_adapter();
adapter.initialize(empty_list,this);
list_view.setAdapter(adapter);
list_view.setLayoutManager(new LinearLayoutManager(this));
isListEmpty();
}
public void clearHistory(View view)
{
if(app_model.getInstance().getHistory().size()>0)
{
message_manager.getInstance().clearData();
}
}
public void clearAll()
{
list_model.getInstance().getModel().clear();
list_model.getInstance().getMainList().clear();
initializeListController();
empty_list.setAlpha(0f);
empty_list.setVisibility(View.VISIBLE);
empty_list.animate().alpha(1);
search_bar.setText("");
String table="bookmark";
if(list_model.getInstance().getType()==constants.list_history)
{
table = "history";
}
database_controller.getInstance().execSQL("delete from "+table+" where 1");
}
public void isListEmpty()
{
if(list_model.getInstance().getModel().size()<=0)
{
empty_list.setVisibility(View.VISIBLE);
}
else
{
empty_list.setVisibility(View.GONE);
}
}
public void initSearchBar()
{
search_bar.setOnEditorActionListener((v, actionId, event) ->
{
if (actionId != EditorInfo.IME_ACTION_NEXT)
{
return false;
}
else
{
return updatelist();
}
});
}
public boolean updatelist()
{
String query = search_bar.getText().toString();
ArrayList<list_row_model> temp_model = new ArrayList<list_row_model>();
list_model.getInstance().getIndex().clear();
for(int counter=0;counter<=list_model.getInstance().getMainList().size()-1;counter++)
{
if(list_model.getInstance().getMainList().get(counter).getHeader().contains(query) || list_model.getInstance().getMainList().get(counter).getDescription().contains(query))
{
temp_model.add(list_model.getInstance().getMainList().get(counter));
list_model.getInstance().setIndex(counter);
}
}
list_model.getInstance().setModel(temp_model);
initializeListController();
return true;
}
public void onBackPressed(View view)
{
finish();
}
}

View File

@ -1,78 +0,0 @@
package com.darkweb.genesissearchengine.appManager.list_activity;
import java.util.ArrayList;
public class list_model
{
private static final list_model ourInstance = new list_model();
public static list_model getInstance()
{
return ourInstance;
}
private list_model()
{
}
public ArrayList<list_row_model> list_model = new ArrayList<list_row_model>();
public ArrayList<Integer> list_index = new ArrayList<Integer>();
private ArrayList<list_row_model> main_model_ref = new ArrayList<list_row_model>();
public int listType;
public void setType(int listType)
{
this.listType = listType;
}
public int getType()
{
return listType;
}
public void setModel(ArrayList<list_row_model> list_model)
{
this.list_model = list_model;
}
public ArrayList<list_row_model> getModel()
{
return list_model;
}
public void setIndex(int index)
{
list_index.add(index);
}
public ArrayList<Integer> getIndex()
{
return list_index;
}
public void removeIndex(int index)
{
list_index.remove(index);
for(int counter=index;counter<=list_index.size()-1;counter++)
{
list_index.set(counter,list_index.get(counter)-1);
}
}
public void setMainList(ArrayList<list_row_model> model)
{
main_model_ref = model;
}
public ArrayList<list_row_model> getMainList()
{
return main_model_ref;
}
public void removeFromMainList(int index)
{
main_model_ref.remove(index);
}
}

View File

@ -0,0 +1,93 @@
package com.darkweb.genesissearchengine.appManager.list_manager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.*;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.darkweb.genesissearchengine.constants.constants;
import com.example.myapplication.R;
public class list_adapter extends RecyclerView.Adapter<list_adapter.listViewHolder>
{
list_adapter() {
}
/*Initializations*/
@NonNull
@Override
public listViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_row_view, parent, false);
return new listViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull list_adapter.listViewHolder holder, int position)
{
holder.bindListView(list_model.getInstance().getModel().get(position));
clearMessageItem(holder.messageButton,position);
}
@Override
public int getItemCount() {
return list_model.getInstance().getModel().size();
}
private void setItemViewOnClickListener(View itemView, String url)
{
itemView.setOnClickListener(v ->
{
list_model.getInstance().getListInstance().onUrlClick(url);
});
}
private void clearMessageItem(ImageButton clearButton, int index)
{
list_model.getInstance().getListInstance().onClickListenersInitialize(clearButton,index);
}
/*View Holder Extensions*/
class listViewHolder extends RecyclerView.ViewHolder
{
TextView heaaderText;
TextView descriptionText;
ImageButton messageButton;
ImageView empty_message;
listViewHolder(View itemView) {
super(itemView);
}
void bindListView(list_row_model model) {
heaaderText = itemView.findViewById(R.id.header);
descriptionText = itemView.findViewById(R.id.description);
String header = model.getHeader();
if(model.getHeader().length()<=2)
{
header = model.getDescription() + model.getHeader();
}
if(list_model.getInstance().getType() == constants.list_bookmark)
{
heaaderText.setText(list_model.getInstance().getListInstance().removeHttpRequest(model.getDescription()));
descriptionText.setText(header);
}
else
{
heaaderText.setText(list_model.getInstance().getListInstance().removeHttpRequest(header));
descriptionText.setText(model.getDescription());
}
messageButton = itemView.findViewById(R.id.message_button);
empty_message = itemView.findViewById(R.id.empty_list);
setItemViewOnClickListener(itemView,header);
}
}
}

View File

@ -0,0 +1,123 @@
package com.darkweb.genesissearchengine.appManager.list_manager;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.darkweb.genesissearchengine.appManager.home_activity.app_model;
import com.darkweb.genesissearchengine.constants.constants;
import com.darkweb.genesissearchengine.constants.keys;
import com.example.myapplication.R;
import java.util.Objects;
public class list_controller extends AppCompatActivity
{
/*Private Variables*/
private ImageView emptyListNotifier;
private EditText searchBar;
private RecyclerView listView;
private list_view_controller viewController;
/*Initializations*/
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.list_view);
initializeListInstance();
initializeListModel();
initializeViews();
initializeList();
initSearchBar();
updatelist();
}
public void initializeListInstance(){
list_model.getInstance().setListInstance(this);
list_model.getInstance().setListContext(this);
}
public void initializeListModel(){
Bundle bundle = getIntent().getExtras();
if(Objects.requireNonNull(bundle).getInt(keys.list_type)==constants.list_bookmark)
{
list_model.getInstance().setType(constants.list_bookmark);
list_model.getInstance().setMainList(app_model.getInstance().getBookmark());
}
else
{
list_model.getInstance().setType(constants.list_history);
list_model.getInstance().setMainList(app_model.getInstance().getHistory());
}
}
public void initializeViews(){
emptyListNotifier = findViewById(R.id.empty_list);
searchBar = findViewById(R.id.search);
listView = findViewById(R.id.listview);
viewController = new list_view_controller(emptyListNotifier,searchBar,listView);
}
public void initializeList(){
list_adapter adapter = new list_adapter();
listView.setAdapter(adapter);
listView.setLayoutManager(new LinearLayoutManager(this));
updateListStatus(false);
}
/*View Handlers*/
public void onClearHistory(View view)
{
viewController.onClearHistory();
}
public void onClearAll(){
viewController.onClearAll();
initializeViews();
}
public void updateListStatus(boolean animate)
{
viewController.updateListStatus(animate);
}
public void initSearchBar()
{
list_ehandler.getInstance().onEditorActionListener(searchBar);
}
public boolean updatelist(){
viewController.updateList();
updateListStatus(false);
return true;
}
public void closeView()
{
viewController.closeView();
}
public void onDatasetChanged(int index)
{
viewController.onDatasetChanged(index);
}
public void onClearSearchBarCursor() {
viewController.onClearSearchBarCursor();
}
public String removeHttpRequest(String view){
return viewController.removeHttpRequest(view);
}
/*Event Handlers*/
public void onBackPressed(View view)
{
list_ehandler.getInstance().onBackPressed();
}
public void onUrlClick(String url)
{
list_ehandler.getInstance().onUrlClick(url);
}
public void onClickListenersInitialize(View view,int index) {
list_ehandler.getInstance().onClickListenersInitialize(view,index);
}
}

View File

@ -0,0 +1,93 @@
package com.darkweb.genesissearchengine.appManager.list_manager;
import android.content.Context;
import android.view.View;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import com.darkweb.genesissearchengine.appManager.home_activity.app_model;
import com.darkweb.genesissearchengine.constants.constants;
import com.darkweb.genesissearchengine.helperMethod;
import com.darkweb.genesissearchengine.pluginManager.orbot_manager;
import com.example.myapplication.R;
public class list_ehandler
{
/*Initializations*/
private static final list_ehandler ourInstance = new list_ehandler();
public static list_ehandler getInstance()
{
return ourInstance;
}
private list_ehandler(){
}
/*Listener Initializations*/
void onEditorActionListener(EditText view)
{
view.setOnEditorActionListener((v, actionId, event) ->
{
if (actionId != EditorInfo.IME_ACTION_NEXT)
{
return false;
}
else
{
list_model.getInstance().getListInstance().onClearSearchBarCursor();
InputMethodManager imm = (InputMethodManager) list_model.getInstance().getListInstance().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
return list_model.getInstance().getListInstance().updatelist();
}
});
}
void onClickListenersInitialize(View view,int index)
{
view.setOnClickListener(v ->
{
if(v.getId() == R.id.message_button)
{
onManualClear(index);
}
});
}
/*Listeners*/
private void onManualClear(int index)
{
list_model.getInstance().deleteFromDatabase(list_model.getInstance().getModel().get(index).getId());
list_model.getInstance().getModel().remove(index);
list_model.getInstance().removeFromMainList(list_model.getInstance().getIndex().get(index));
list_model.getInstance().removeIndex(index);
list_model.getInstance().getListInstance().onDatasetChanged(index);
list_model.getInstance().getListInstance().updateListStatus(true);
}
void onBackPressed()
{
list_model.getInstance().getListInstance().closeView();
}
void onUrlClick(String url)
{
String url_temp = helperMethod.completeURL(url);
if(!url_temp.contains("boogle") && !url_temp.equals(constants.backendGoogle) && !url_temp.equals(constants.backendBing))
{
if(orbot_manager.getInstance().initOrbot(url_temp))
{
app_model.getInstance().getAppInstance().onloadURL(url_temp,true,false);
}
}
else
{
app_model.getInstance().getAppInstance().onloadURL(url_temp,false,false);
}
list_model.getInstance().getListInstance().closeView();
}
}

View File

@ -0,0 +1,108 @@
package com.darkweb.genesissearchengine.appManager.list_manager;
import android.content.Context;
import com.darkweb.genesissearchengine.appManager.database_manager.database_controller;
import com.darkweb.genesissearchengine.constants.constants;
import com.darkweb.genesissearchengine.constants.strings;
import java.util.ArrayList;
public class list_model
{
/*Private Variables*/
private ArrayList<list_row_model> list_model = new ArrayList<>();
private ArrayList<Integer> list_index;
private ArrayList<list_row_model> main_model_ref = new ArrayList<>();
private list_controller listInstance;
private Context listContext;
private int listType;
/*Initializations*/
private static final list_model ourInstance = new list_model();
public static list_model getInstance()
{
return ourInstance;
}
private list_model(){
list_index = new ArrayList<>();
}
/*Helper Methods*/
void setType(int listType)
{
this.listType = listType;
}
int getType()
{
return listType;
}
void setModel(ArrayList<list_row_model> list_model)
{
this.list_model = list_model;
}
ArrayList<list_row_model> getModel()
{
return list_model;
}
void setIndex(int index){
list_index.add(index);
}
void removeIndex(int index){
list_index.remove(index);
for(int counter=index;counter<=list_index.size()-1;counter++)
{
list_index.set(counter,list_index.get(counter)-1);
}
}
ArrayList<Integer> getIndex(){
return list_index;
}
void setMainList(ArrayList<list_row_model> model)
{
main_model_ref = model;
}
ArrayList<list_row_model> getMainList()
{
return main_model_ref;
}
void removeFromMainList(int index)
{
main_model_ref.remove(index);
}
public list_controller getListInstance()
{
return listInstance;
}
void setListInstance(list_controller listInstance)
{
this.listInstance = listInstance;
}
public Context getListContext(){
return listContext;
}
void setListContext(Context listContext)
{
this.listContext = listContext;
}
/*Database Handler*/
void deleteFromDatabase(int index) {
String table = strings.bookmark_text;
if(getType()== constants.list_history)
{
table = strings.history_text;
}
database_controller.getInstance().execSQL("delete from "+table+" where id="+index);
}
}

View File

@ -1,25 +1,29 @@
package com.darkweb.genesissearchengine.appManager.list_activity; package com.darkweb.genesissearchengine.appManager.list_manager;
public class list_row_model public class list_row_model
{ {
/*Private Variables*/
private int id; private int id;
private String header; private String header;
private String description; private String description;
/*Initializations*/
public list_row_model(String header, String description,int id) { public list_row_model(String header, String description,int id) {
this.id = id; this.id = id;
this.header = header; this.header = header;
this.description = description; this.description = description;
} }
/*Variable Getters*/
public String getHeader() { public String getHeader() {
return header; return header;
} }
public String getDescription() { public String getDescription() {
return description; return description;
} }
public int getId() { public int getId() {
return id; return id;
} }

View File

@ -0,0 +1,165 @@
package com.darkweb.genesissearchengine.appManager.list_manager;
import android.graphics.Color;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.style.ForegroundColorSpan;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.recyclerview.widget.RecyclerView;
import com.darkweb.genesissearchengine.appManager.database_manager.database_controller;
import com.darkweb.genesissearchengine.appManager.home_activity.app_model;
import com.darkweb.genesissearchengine.constants.constants;
import com.darkweb.genesissearchengine.constants.strings;
import com.darkweb.genesissearchengine.pluginManager.message_manager;
import java.util.ArrayList;
import java.util.Objects;
class list_view_controller
{
/*Private Variables*/
private ImageView emptyListNotifier;
private EditText searchBar;
private RecyclerView listView;
/*Initializations*/
list_view_controller(ImageView emptyListNotifier, EditText searchBar,RecyclerView listView)
{
this.emptyListNotifier = emptyListNotifier;
this.searchBar = searchBar;
this.listView = listView;
}
/*Handlers*/
void onClearHistory()
{
if(app_model.getInstance().getHistory().size()>0)
{
message_manager.getInstance().clearData();
}
}
void onClearAll()
{
list_model.getInstance().getModel().clear();
list_model.getInstance().getMainList().clear();
app_model.getInstance().getSuggestions().clear();
emptyListNotifier.setAlpha(0f);
emptyListNotifier.setVisibility(View.VISIBLE);
emptyListNotifier.animate().alpha(1);
searchBar.setText(strings.emptyStr);
String table = strings.bookmark_text;
if(list_model.getInstance().getType()== constants.list_history)
{
table = strings.history_text;
}
database_controller.getInstance().execSQL("delete from "+table+" where 1");
}
void updateListStatus(boolean animate)
{
if(list_model.getInstance().getModel().size()<=0)
{
if(animate)
{
emptyListNotifier.setAlpha(0f);
emptyListNotifier.setVisibility(View.VISIBLE);
emptyListNotifier.animate().alpha(1);
}
else
{
emptyListNotifier.setVisibility(View.VISIBLE);
}
}
else
{
emptyListNotifier.setVisibility(View.GONE);
}
}
void updateList()
{
String query = searchBar.getText().toString();
ArrayList<list_row_model> temp_model = new ArrayList<>();
list_model.getInstance().getIndex().clear();
for(int counter=0;counter<=list_model.getInstance().getMainList().size()-1;counter++)
{
if(list_model.getInstance().getMainList().get(counter).getHeader().contains(query) || list_model.getInstance().getMainList().get(counter).getDescription().contains(query))
{
temp_model.add(list_model.getInstance().getMainList().get(counter));
list_model.getInstance().setIndex(counter);
}
}
list_model.getInstance().setModel(temp_model);
listView.getAdapter().notifyDataSetChanged();
}
void onDatasetChanged(int index)
{
Objects.requireNonNull(listView.getAdapter()).notifyItemRemoved(index);
listView.getAdapter().notifyDataSetChanged();
}
void closeView()
{
list_model.getInstance().getListInstance().finish();
}
public void onClearSearchBarCursor()
{
searchBar.clearFocus();
}
public String removeHttpRequest(String url)
{
if (url.startsWith("https://"))
{
return url.substring(8);
}
else if (url.startsWith("http://"))
{
return url.substring(7);
}
else
{
return url;
}
/*
if (view == null)
{
return;
}
if (view.getText().toString().contains("https://"))
{
SpannableString ss = new SpannableString(view.getText());
ss.setSpan(new ForegroundColorSpan(Color.argb(255, 0, 123, 43)), 0, 5, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ss.setSpan(new ForegroundColorSpan(Color.GRAY), 5, 8, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
view.setText(ss);
} else if (view.getText().toString().contains("http://"))
{
SpannableString ss = new SpannableString(view.getText());
ss.setSpan(new ForegroundColorSpan(Color.argb(255, 0, 128, 43)), 0, 4, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ss.setSpan(new ForegroundColorSpan(Color.GRAY), 4, 7, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
view.setText(ss);
} else
{
SpannableString ss = new SpannableString(view.getText());
ss.setSpan(new ForegroundColorSpan(Color.BLACK), 0, view.getText().length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
view.setText(ss);
}*/
}
}

View File

@ -22,8 +22,9 @@ public class setting_controller extends AppCompatActivity
protected void onCreate(Bundle savedInstanceState) protected void onCreate(Bundle savedInstanceState)
{ {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.settings_activity); setContentView(R.layout.settings_view);
setting_model.getInstance().init_status();
viewsInitializations(); viewsInitializations();
listenersInitializations(); listenersInitializations();
initializeModel(); initializeModel();
@ -64,6 +65,11 @@ public class setting_controller extends AppCompatActivity
/*View Handlers*/ /*View Handlers*/
@Override
public void onBackPressed(){
closeView();
}
public void closeView() public void closeView()
{ {
viewController.closeView(); viewController.closeView();

View File

@ -1,5 +1,8 @@
package com.darkweb.genesissearchengine.appManager.setting_manager; package com.darkweb.genesissearchengine.appManager.setting_manager;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.constants.strings;
public class setting_model public class setting_model
{ {
private static final setting_model ourInstance = new setting_model(); private static final setting_model ourInstance = new setting_model();
@ -20,4 +23,17 @@ public class setting_model
{ {
this.settingInstance = settingInstance; this.settingInstance = settingInstance;
} }
public void init_status()
{
setting_model.getInstance().search_status = status.search_status;
setting_model.getInstance().history_status = status.history_status;
setting_model.getInstance().java_status = status.java_status;
}
/*Changed Status*/
public String search_status = strings.emptyStr;
public boolean java_status = false;
public boolean history_status = true;
} }

View File

@ -2,7 +2,9 @@ package com.darkweb.genesissearchengine.appManager.setting_manager;
import android.widget.ArrayAdapter; import android.widget.ArrayAdapter;
import android.widget.Spinner; import android.widget.Spinner;
import com.darkweb.genesissearchengine.appManager.home_activity.app_model;
import com.darkweb.genesissearchengine.constants.keys; import com.darkweb.genesissearchengine.constants.keys;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.constants.strings; import com.darkweb.genesissearchengine.constants.strings;
import com.darkweb.genesissearchengine.dataManager.preference_manager; import com.darkweb.genesissearchengine.dataManager.preference_manager;
@ -22,14 +24,22 @@ class setting_view_controller
setting_view_controller(Spinner search, Spinner javascript, Spinner history) setting_view_controller(Spinner search, Spinner javascript, Spinner history)
{ {
this.search = search; this.search = search;
this.search = javascript; this.javascript = javascript;
this.search = history; this.history = history;
initViews();
initJavascript(); initJavascript();
initHistory(); initHistory();
initSearchEngine(); initSearchEngine();
} }
private void initViews()
{
search.setDropDownVerticalOffset(15);
javascript.setDropDownVerticalOffset(15);
history.setDropDownVerticalOffset(15);
}
private void initJavascript() private void initJavascript()
{ {
if (java_status) if (java_status)
@ -67,6 +77,20 @@ class setting_view_controller
void closeView() void closeView()
{ {
if(status.search_status != setting_model.getInstance().search_status)
{
status.search_status = setting_model.getInstance().search_status;
app_model.getInstance().getAppInstance().initSearchEngine();
}
else if(status.java_status != setting_model.getInstance().java_status)
{
status.java_status = setting_model.getInstance().java_status;
app_model.getInstance().getAppInstance().onReInitGeckoView();
}
status.history_status = setting_model.getInstance().history_status;
setting_model.getInstance().getSettingInstance().finish(); setting_model.getInstance().getSettingInstance().finish();
} }

View File

@ -3,7 +3,7 @@ package com.darkweb.genesissearchengine.appManager.setting_manager;
import android.view.View; import android.view.View;
import android.widget.AdapterView; import android.widget.AdapterView;
import android.widget.Spinner; import android.widget.Spinner;
import com.darkweb.genesissearchengine.appManager.main_activity.app_model; import com.darkweb.genesissearchengine.appManager.home_activity.app_model;
import com.darkweb.genesissearchengine.constants.keys; import com.darkweb.genesissearchengine.constants.keys;
import com.darkweb.genesissearchengine.dataManager.preference_manager; import com.darkweb.genesissearchengine.dataManager.preference_manager;
import com.example.myapplication.R; import com.example.myapplication.R;
@ -28,20 +28,17 @@ public class settings_ehandler
/*Listeners*/ /*Listeners*/
@SuppressWarnings("ConstantConditions")
private void onJavaScriptListener(int position) private void onJavaScriptListener(int position)
{ {
if(position==1 && java_status) if(position==1 && java_status)
{ {
java_status = false; setting_model.getInstance().java_status = false;
preference_manager.getInstance().setBool(keys.java_script, java_status); preference_manager.getInstance().setBool(keys.java_script, false);
app_model.getInstance().getAppInstance().onReInitGeckoView();
} }
else if(!java_status) else if(!java_status)
{ {
java_status = true; setting_model.getInstance().java_status = true;
preference_manager.getInstance().setBool(keys.java_script, java_status); preference_manager.getInstance().setBool(keys.java_script, true);
app_model.getInstance().getAppInstance().onReInitGeckoView();
} }
} }
@ -49,24 +46,22 @@ public class settings_ehandler
{ {
if(!search_status.equals(parentView.getItemAtPosition(position).toString())) if(!search_status.equals(parentView.getItemAtPosition(position).toString()))
{ {
search_status = parentView.getItemAtPosition(position).toString(); setting_model.getInstance().search_status = parentView.getItemAtPosition(position).toString();
preference_manager.getInstance().setString(keys.search_engine, search_status); preference_manager.getInstance().setString(keys.search_engine, setting_model.getInstance().search_status);
app_model.getInstance().getAppInstance().initSearchEngine();
} }
} }
@SuppressWarnings("ConstantConditions")
private void onHistoryListener(int position) private void onHistoryListener(int position)
{ {
if(position==1 && history_status) if(position==1 && history_status)
{ {
history_status = false; setting_model.getInstance().history_status = false;
preference_manager.getInstance().setBool(keys.history_clear, history_status); preference_manager.getInstance().setBool(keys.history_clear, false);
} }
else if(!java_status) else if(!java_status)
{ {
history_status = true; setting_model.getInstance().history_status = true;
preference_manager.getInstance().setBool(keys.history_clear, history_status); preference_manager.getInstance().setBool(keys.history_clear, true);
} }
} }
@ -82,17 +77,17 @@ public class settings_ehandler
view.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { view.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override @Override
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) { public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
if(selectedItemView.getId()== R.id.search_manager) if(parentView.getId()== R.id.search_manager)
{ {
settings_ehandler.getInstance().onJavaScriptListener(position); onSearchListner(parentView,position);
} }
else if(selectedItemView.getId()== R.id.javascript_manager) else if(parentView.getId()== R.id.javascript_manager)
{ {
settings_ehandler.getInstance().onHistoryListener(position); onJavaScriptListener(position);
} }
else if(selectedItemView.getId()== R.id.history_manager) else if(parentView.getId()== R.id.history_manager)
{ {
settings_ehandler.getInstance().onSearchListner(parentView,position); onHistoryListener(position);
} }
} }
@Override @Override

View File

@ -3,13 +3,15 @@ package com.darkweb.genesissearchengine.constants;
public class constants public class constants
{ {
/*LOCAL URL CONSTANTS*/ /*LOCAL URL CONSTANTS*/
public static String blackMarket = "https://boogle.store/search?q=black+market&p_num=1&s_type=all"; public static String blackMarket = "https://boogle.store/search?q=black+market&p_num=1&s_type=all";
public static String leakedDocument = "https://boogle.store/search?q=leaked+document&p_num=1&s_type=all&p_num=1&s_type=all"; public static String leakedDocument = "https://boogle.store/search?q=leaked+document&p_num=1&s_type=all&p_num=1&s_type=all";
public static String news = "https://boogle.store/search?q=latest%20news&p_num=1&s_type=news"; public static String news = "https://boogle.store/search?q=latest%20news&p_num=1&s_type=news";
public static String softwares = "https://boogle.store/search?q=softwares+tools&p_num=1&s_type=all&p_num=1&s_type=all"; public static String softwares = "https://boogle.store/search?q=softwares+tools&p_num=1&s_type=all&p_num=1&s_type=all";
/*URL CONSTANTS*/ /*URL CONSTANTS*/
public static String backendGenesis = "https://boogle.store";
public static String backendGenesis = "https://boogle.store/";
public static String backendGoogle = "https://www.google.com/"; public static String backendGoogle = "https://www.google.com/";
public static String backendBing = "https://www.bing.com/"; public static String backendBing = "https://www.bing.com/";
public static String backendUrlHost = "boogle.store"; public static String backendUrlHost = "boogle.store";
@ -23,10 +25,12 @@ public class constants
public static String playstoreUrl = "https://play.google.com/store/apps/details?id=com.darkweb.genesissearchengine"; public static String playstoreUrl = "https://play.google.com/store/apps/details?id=com.darkweb.genesissearchengine";
/*BUILD CONSTANTS*/ /*BUILD CONSTANTS*/
public static String build_type = "playstore"; public static String build_type = "playstore";
//public static String build_type = "local"; //public static String build_type = "local";
/*BUILD PROXY*/ /*PROXY CONSTANTS*/
public static int proxy_type = 1; public static int proxy_type = 1;
public static String proxy_socks = "127.0.0.1"; public static String proxy_socks = "127.0.0.1";
public static int proxy_socks_version = 5; public static int proxy_socks_version = 5;
@ -37,12 +41,15 @@ public class constants
public static boolean proxy_donottrackheader_enabled = false; public static boolean proxy_donottrackheader_enabled = false;
public static int proxy_donottrackheader_value = 1; public static int proxy_donottrackheader_value = 1;
/*MENU CONSTANTS*/
public static int list_history = 1; public static int list_history = 1;
public static int list_bookmark = 2; public static int list_bookmark = 2;
public static String databae_name="genesis.db"; /*SETTINGS CONSTANTS*/
public static int databae_version=1;
public static int max_history_size=500;
public static int max_bookmark_size=500;
public static String databae_name="genesis_dbase";
public static int max_history_size=3;
public static int max_bookmark_size=3;
} }

View File

@ -2,9 +2,9 @@ package com.darkweb.genesissearchengine.constants;
public class enums public class enums
{ {
/*Web Request*/ /*SETTINGS*/
public enum webRequestStatus{notRunning,running,repeat;}
public enum searchEngine{Darkweb,Bing,Google} public enum searchEngine{Darkweb,Bing,Google}
public enum adID{hidden, internal}
} }

View File

@ -2,11 +2,10 @@ package com.darkweb.genesissearchengine.constants;
public class messages public class messages
{ {
/*Post Messages*/ /*POST MESSAGES KEYS*/
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 DISABLE_SPLASH_SCREEN =3; public final static int DISABLE_SPLASH_SCREEN =3;
public final static int UPDATE_LOADING_TEXT =5; public final static int UPDATE_LOADING_TEXT =5;
public final static int SHOW_ADS =6; public final static int SHOW_ADS =6;

View File

@ -1,5 +1,6 @@
package com.darkweb.genesissearchengine.constants; package com.darkweb.genesissearchengine.constants;
import android.util.Log;
import com.darkweb.genesissearchengine.dataManager.preference_manager; import com.darkweb.genesissearchengine.dataManager.preference_manager;
public class status public class status
@ -11,7 +12,7 @@ public class status
public static String version_code = "6.0"; public static String version_code = "6.0";
/*Settings Level*/ /*Settings Level*/
public static String search_status = ""; public static String search_status = strings.emptyStr;
public static boolean java_status = false; public static boolean java_status = false;
public static boolean history_status = true; public static boolean history_status = true;

View File

@ -2,8 +2,12 @@ package com.darkweb.genesissearchengine.constants;
public class strings public class strings
{ {
/*Orbot Manager*/
public static String torfolder = "torfiles"; public static String torfolder = "torfiles";
/*Messsage Manager*/
public static String welcome_message_title = "Welcome | Deep Web Gateway"; public static String welcome_message_title = "Welcome | Deep Web Gateway";
public static String welcome_message_desc = "\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"; public static String welcome_message_desc = "\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";
public static String welcome_message_bt1 = "Deep Web Online Market"; public static String welcome_message_bt1 = "Deep Web Online Market";
@ -58,7 +62,17 @@ public class strings
public static String clear_bt1 = "Clear Data"; public static String clear_bt1 = "Clear Data";
public static String clear_bt2 = "Dismiss"; public static String clear_bt2 = "Dismiss";
/*Text Manager*/
public static String darkweb = "Darkweb"; public static String darkweb = "Darkweb";
public static String emptyStr = "";
public static String bookmark_text = "bookmark";
public static String history_text = "history";
public static String bing_text = "Bing";
public static String google_text = "Google";
} }

View File

@ -2,7 +2,7 @@ package com.darkweb.genesissearchengine.dataManager;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.preference.PreferenceManager; import android.preference.PreferenceManager;
import com.darkweb.genesissearchengine.appManager.main_activity.app_model; import com.darkweb.genesissearchengine.appManager.home_activity.app_model;
public class preference_manager public class preference_manager
{ {

View File

@ -2,15 +2,15 @@ package com.darkweb.genesissearchengine;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.Resources; import android.content.res.Resources;
import android.graphics.Bitmap; import android.graphics.Color;
import android.graphics.Canvas;
import android.net.ConnectivityManager; import android.net.ConnectivityManager;
import android.net.NetworkInfo; import android.net.NetworkInfo;
import android.net.Uri; import android.net.Uri;
import android.os.Build; import android.os.Build;
import android.preference.PreferenceManager; import android.text.Spannable;
import android.text.SpannableString;
import android.text.style.ForegroundColorSpan;
import android.util.DisplayMetrics; import android.util.DisplayMetrics;
import android.view.Display; import android.view.Display;
import android.view.View; import android.view.View;
@ -20,15 +20,15 @@ import android.view.animation.Animation;
import android.view.animation.RotateAnimation; import android.view.animation.RotateAnimation;
import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.InputMethodManager;
import androidx.core.app.ShareCompat; import androidx.core.app.ShareCompat;
import com.darkweb.genesissearchengine.appManager.list_activity.list_controller; import com.darkweb.genesissearchengine.appManager.home_activity.app_model;
import com.darkweb.genesissearchengine.appManager.main_activity.app_model;
import com.darkweb.genesissearchengine.constants.constants;
import com.darkweb.genesissearchengine.constants.keys; import com.darkweb.genesissearchengine.constants.keys;
import com.darkweb.genesissearchengine.dataManager.preference_manager; import com.darkweb.genesissearchengine.dataManager.preference_manager;
import com.example.myapplication.BuildConfig; import com.example.myapplication.BuildConfig;
import java.net.MalformedURLException; import java.net.MalformedURLException;
import java.net.URL; import java.net.URL;
import java.text.Normalizer;
import java.util.Locale;
public class helperMethod public class helperMethod
{ {
@ -37,11 +37,7 @@ public class helperMethod
{ {
ConnectivityManager cm = (ConnectivityManager) app_model.getInstance().getAppContext().getSystemService(Context.CONNECTIVITY_SERVICE); ConnectivityManager cm = (ConnectivityManager) app_model.getInstance().getAppContext().getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = cm.getActiveNetworkInfo(); NetworkInfo networkInfo = cm.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnected()) return networkInfo != null && networkInfo.isConnected();
{
return true;
}
return false;
} }
@ -70,17 +66,17 @@ public class helperMethod
{ {
if(!hasSoftKeys) if(!hasSoftKeys)
{ {
return (int)(Resources.getSystem().getDisplayMetrics().heightPixels)-(helperMethod.getNavigationBarHeight()); return Resources.getSystem().getDisplayMetrics().heightPixels -(helperMethod.getNavigationBarHeight());
} }
else else
{ {
return (int)(Resources.getSystem().getDisplayMetrics().heightPixels); return (Resources.getSystem().getDisplayMetrics().heightPixels);
} }
} }
public static int screenWidth() public static int screenWidth()
{ {
return (int)(Resources.getSystem().getDisplayMetrics().widthPixels); return (Resources.getSystem().getDisplayMetrics().widthPixels);
} }
public static int getNavigationBarHeight() { public static int getNavigationBarHeight() {
@ -130,14 +126,7 @@ public class helperMethod
public static boolean isBuildValid () public static boolean isBuildValid ()
{ {
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")) return 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");
{
return true;
}
else
{
return false;
}
} }
@ -151,8 +140,9 @@ public class helperMethod
{ {
ShareCompat.IntentBuilder.from(app_model.getInstance().getAppInstance()) ShareCompat.IntentBuilder.from(app_model.getInstance().getAppInstance())
.setType("text/plain") .setType("text/plain")
.setChooserTitle("Genesis | Onion Search") .setChooserTitle("Hi! Check out this Awesome App")
.setText("http://play.google.com/store/apps/details?id=" + app_model.getInstance().getAppInstance().getPackageName()) .setSubject("Hi! Check out this Awesome App")
.setText("Genesis | Onion Search | http://play.google.com/store/apps/details?id=" + app_model.getInstance().getAppInstance().getPackageName())
.startChooser(); .startChooser();
} }
@ -180,4 +170,43 @@ public class helperMethod
app_model.getInstance().getAppInstance().startActivity(myIntent); app_model.getInstance().getAppInstance().startActivity(myIntent);
} }
public static CharSequence highlight(String search, String originalText) {
// ignore case and accents
// the same thing should have been done for the search text
String normalizedText = Normalizer
.normalize(originalText, Normalizer.Form.NFD)
.replaceAll("\\p{InCombiningDiacriticalMarks}+", "")
.toLowerCase(Locale.ENGLISH);
int start = normalizedText.indexOf(search.toLowerCase(Locale.ENGLISH));
if (start < 0) {
// not found, nothing to to
return originalText;
} else {
// highlight each appearance in the original text
// while searching in normalized text
Spannable highlighted = new SpannableString(originalText);
while (start >= 0) {
int spanStart = Math.min(start, originalText.length());
int spanEnd = Math.min(start + search.length(),
originalText.length());
highlighted.setSpan(new ForegroundColorSpan(Color.BLUE),
spanStart, spanEnd, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
start = normalizedText.indexOf(search, spanEnd);
}
return highlighted;
}
}
public static void onMinimizeApp()
{
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
app_model.getInstance().getAppInstance().startActivity(startMain);
}
} }

View File

@ -32,7 +32,7 @@ public class httpclient
{ {
String c_url = url.replace("http://boogle","https://boogle").replaceAll("genesis.onion","boogle.store").replaceAll("genesis.store","boogle.store"); String c_url = url.replace("http://boogle","https://boogle").replaceAll("genesis.onion","boogle.store").replaceAll("genesis.store","boogle.store");
HttpClient client=new DefaultHttpClient();; HttpClient client=new DefaultHttpClient();
SSLConnectionSocketFactory scsf = new SSLConnectionSocketFactory( SSLConnectionSocketFactory scsf = new SSLConnectionSocketFactory(
SSLContexts.custom().loadTrustMaterial(null, new TrustSelfSignedStrategy()).build(), SSLContexts.custom().loadTrustMaterial(null, new TrustSelfSignedStrategy()).build(),
NoopHostnameVerifier.INSTANCE); NoopHostnameVerifier.INSTANCE);

View File

@ -30,7 +30,7 @@ public class serverRequestManager
try try
{ {
HttpGet reportrequest = new HttpGet(url); HttpGet reportrequest = new HttpGet(url);
HttpClient client=new DefaultHttpClient();; HttpClient client=new DefaultHttpClient();
client.execute(reportrequest); client.execute(reportrequest);
} }
catch (Exception ex) catch (Exception ex)

View File

@ -5,7 +5,7 @@ import android.os.Message;
import android.os.Handler; import android.os.Handler;
import com.darkweb.genesissearchengine.appManager.main_activity.app_model; import com.darkweb.genesissearchengine.appManager.home_activity.app_model;
import com.darkweb.genesissearchengine.constants.messages; import com.darkweb.genesissearchengine.constants.messages;
public class webRequestHandler public class webRequestHandler

View File

@ -1,6 +1,7 @@
package com.darkweb.genesissearchengine.pluginManager; package com.darkweb.genesissearchengine.pluginManager;
import com.darkweb.genesissearchengine.appManager.main_activity.app_model; import com.darkweb.genesissearchengine.appManager.home_activity.app_model;
import com.darkweb.genesissearchengine.constants.enums;
import com.google.android.gms.ads.AdRequest; import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.InterstitialAd; import com.google.android.gms.ads.InterstitialAd;
import com.google.android.gms.ads.MobileAds; import com.google.android.gms.ads.MobileAds;
@ -10,7 +11,8 @@ public class admanager
/*Private Variables*/ /*Private Variables*/
private static final admanager ourInstance = new admanager(); private static final admanager ourInstance = new admanager();
private InterstitialAd mInterstitialAd; private InterstitialAd mInterstitialHidden;
private InterstitialAd mInterstitialInternal;
private int adCount = 0; private int adCount = 0;
boolean isAdShown = false; boolean isAdShown = false;
@ -26,51 +28,31 @@ public class admanager
public void initialize() public void initialize()
{ {
MobileAds.initialize(app_model.getInstance().getAppInstance(), "ca-app-pub-5074525529134731~2926711128"); MobileAds.initialize(app_model.getInstance().getAppInstance(), "ca-app-pub-5074525529134731~2926711128");
mInterstitialAd = new InterstitialAd(app_model.getInstance().getAppInstance()); initAd(mInterstitialHidden,"ca-app-pub-5074525529134731/4332539288");
mInterstitialAd.setAdUnitId("ca-app-pub-5074525529134731/8478420705"); initAd(mInterstitialInternal,"ca-app-pub-5074525529134731/8478420705");
mInterstitialAd.loadAd(new AdRequest.Builder().build()); }
public void initAd(InterstitialAd adInstance,String id)
{
adInstance = new InterstitialAd(app_model.getInstance().getAppInstance());
adInstance.setAdUnitId(id);
adInstance.loadAd(new AdRequest.Builder().build());
} }
/*Helper Methods*/ /*Helper Methods*/
public void showAd(boolean isAdForced) public void showAd(enums.adID id)
{ {
if(isAdShown) if(id.equals(enums.adID.hidden))
{ {
return; mInterstitialHidden.show();
} mInterstitialHidden.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 else
{ {
if(mInterstitialAd.isLoaded()) mInterstitialInternal.show();
{ mInterstitialInternal.loadAd(new AdRequest.Builder().build());
if(isAdForced)
{
isAdShown = true;
mInterstitialAd.show();
adCount = 1;
}
else
{
if(adCount%3==0)
{
mInterstitialAd.show();
}
adCount += 1;
}
}
} }
} }
} }

View File

@ -6,14 +6,13 @@ import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.net.Uri; import android.net.Uri;
import android.os.Handler; import android.os.Handler;
import android.widget.RelativeLayout;
import android.widget.RelativeLayout.LayoutParams;
import android.text.InputType; import android.text.InputType;
import android.widget.EditText; import android.widget.EditText;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import com.crowdfire.cfalertdialog.CFAlertDialog; import com.crowdfire.cfalertdialog.CFAlertDialog;
import com.darkweb.genesissearchengine.appManager.main_activity.app_model; import com.darkweb.genesissearchengine.appManager.list_manager.list_model;
import com.darkweb.genesissearchengine.appManager.main_activity.application_controller; import com.darkweb.genesissearchengine.appManager.home_activity.app_model;
import com.darkweb.genesissearchengine.appManager.home_activity.application_controller;
import com.darkweb.genesissearchengine.constants.constants; 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;
@ -187,15 +186,15 @@ public class message_manager
public void clearData() public void clearData()
{ {
Context application_context = app_model.getInstance().getListContext(); Context application_context = list_model.getInstance().getListContext();
CFAlertDialog.Builder builder = new CFAlertDialog.Builder(app_model.getInstance().getListContext()) CFAlertDialog.Builder builder = new CFAlertDialog.Builder(list_model.getInstance().getListContext())
.setDialogStyle(CFAlertDialog.CFAlertStyle.BOTTOM_SHEET) .setDialogStyle(CFAlertDialog.CFAlertStyle.BOTTOM_SHEET)
.setTitle(strings.clear_title) .setTitle(strings.clear_title)
.setBackgroundColor(application_context.getResources().getColor(R.color.blue_dark_v2)) .setBackgroundColor(application_context.getResources().getColor(R.color.blue_dark_v2))
.setTextColor(application_context.getResources().getColor(R.color.black)) .setTextColor(application_context.getResources().getColor(R.color.black))
.setMessage(strings.clear_desc) .setMessage(strings.clear_desc)
.addButton(strings.clear_bt1, -1, -1, CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) -> { .addButton(strings.clear_bt1, -1, -1, CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) -> {
app_model.getInstance().getListInstance().clearAll(); list_model.getInstance().getListInstance().onClearAll();
dialog.dismiss(); dialog.dismiss();
}) })
.addButton(strings.clear_bt2, -1, -1, CFAlertDialog.CFAlertActionStyle.NEGATIVE, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) -> { .addButton(strings.clear_bt2, -1, -1, CFAlertDialog.CFAlertActionStyle.NEGATIVE, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) -> {

View File

@ -1,6 +1,6 @@
package com.darkweb.genesissearchengine.pluginManager; package com.darkweb.genesissearchengine.pluginManager;
import com.darkweb.genesissearchengine.appManager.main_activity.app_model; import com.darkweb.genesissearchengine.appManager.home_activity.app_model;
import com.darkweb.genesissearchengine.constants.constants; import com.darkweb.genesissearchengine.constants.constants;
import com.darkweb.genesissearchengine.constants.keys; import com.darkweb.genesissearchengine.constants.keys;
import com.darkweb.genesissearchengine.constants.status; import com.darkweb.genesissearchengine.constants.status;

Binary file not shown.

After

Width:  |  Height:  |  Size: 720 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.8 KiB

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -3,7 +3,6 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingRight="15dp" android:paddingRight="15dp"
android:layout_marginTop="60dp"
android:paddingLeft="15dp" android:paddingLeft="15dp"
android:paddingBottom="-35dp" android:paddingBottom="-35dp"
android:background="@color/white" android:background="@color/white"
@ -11,19 +10,22 @@
android:orientation="vertical"> android:orientation="vertical">
<TextView <TextView
android:id="@+id/hintCompletionText" android:id="@+id/hintCompletionHeader"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@android:color/transparent" android:background="@android:color/transparent"
android:padding="10dp" android:paddingBottom="10dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="0dp"
android:singleLine="true" android:singleLine="true"
android:ellipsize="end" android:ellipsize="end"
android:textColor="@color/holo_gray" android:textColor="@color/text_color_v1"
android:textSize="15.5sp" android:textSize="15.5sp"/>
android:textStyle="bold" />
<View <View
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_marginBottom="10dp"
android:layout_height="1dp" android:layout_height="1dp"
android:background="@color/white_dark" /> android:background="@color/white_dark" />

View File

@ -6,7 +6,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="@color/white" android:background="@color/white"
tools:context="com.darkweb.genesissearchengine.appManager.main_activity.application_controller"> tools:context="com.darkweb.genesissearchengine.appManager.home_activity.application_controller">
<FrameLayout <FrameLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
@ -153,14 +153,16 @@
android:textColorHighlight="@color/text_color_highlight_v1" android:textColorHighlight="@color/text_color_highlight_v1"
android:background="@xml/search_back_default" android:background="@xml/search_back_default"
android:textCursorDrawable="@xml/search_cursor_state" android:textCursorDrawable="@xml/search_cursor_state"
android:hint="@string/SearchHint" android:hint="@string/SearchHintMain"
android:text="@string/homeUrl" android:text="@string/homeUrl"
android:ems="10" android:ems="10"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:dropDownHeight="220dp"
android:inputType="textNoSuggestions" android:inputType="textNoSuggestions"
android:layout_marginBottom="8dp" android:layout_marginBottom="8dp"
android:completionHintView="@layout/hint_completion_layout" android:completionHintView="@layout/hint_view"
android:layout_marginEnd="0dp" android:layout_marginEnd="0dp"
android:dropDownSelector="@xml/rouned_corner"
android:layout_marginStart="10dp" android:layout_marginStart="10dp"
android:maxLines="1" android:maxLines="1"
android:id="@+id/search" android:layout_weight="1" android:importantForAutofill="no" android:id="@+id/search" android:layout_weight="1" android:importantForAutofill="no"

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
</android.support.constraint.ConstraintLayout> </RelativeLayout>

View File

@ -11,9 +11,9 @@
<LinearLayout <LinearLayout
android:layout_width="0dp" android:layout_width="0dp"
android:orientation="vertical" android:orientation="vertical"
android:layout_marginLeft="45px" android:layout_marginStart="20dp"
android:id="@+id/item_container" android:id="@+id/item_container"
android:paddingRight="8px" android:paddingEnd="8dp"
android:layout_weight="4" android:layout_weight="4"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
@ -21,6 +21,7 @@
android:id="@+id/header" android:id="@+id/header"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textColor="@color/black"
android:singleLine="true" android:singleLine="true"
/> />
@ -29,8 +30,10 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:singleLine="true" android:singleLine="true"
android:layout_marginTop="2dp"
android:ellipsize="end" android:ellipsize="end"
android:textColor="@color/ease_blue" android:textSize="12sp"
android:textColor="@color/holo_dark_gray"
/> />
</LinearLayout> </LinearLayout>
@ -38,7 +41,7 @@
android:layout_width="35dp" android:layout_width="35dp"
android:layout_height="35dp" android:layout_height="35dp"
android:layout_marginEnd="10dp" android:layout_marginEnd="10dp"
android:layout_marginTop="5dp" android:layout_marginTop="0dp"
android:id="@+id/message_button" android:id="@+id/message_button"
android:onClick="onHomeButtonPressed" android:onClick="onHomeButtonPressed"
android:scaleType="fitCenter" android:scaleType="fitCenter"

View File

@ -6,7 +6,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="@color/white" android:background="@color/white"
tools:context="com.darkweb.genesissearchengine.appManager.list_activity.list_controller"> tools:context="com.darkweb.genesissearchengine.appManager.list_manager.list_controller">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
@ -33,7 +33,7 @@
<EditText <EditText
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="match_parent" android:layout_height="match_parent"
android:textSize="16sp" android:textSize="15sp"
android:textColor="@color/text_color_v2" android:textColor="@color/text_color_v2"
android:selectAllOnFocus="true" android:selectAllOnFocus="true"
android:paddingLeft="18dp" android:paddingLeft="18dp"
@ -51,25 +51,18 @@
android:maxLines="1" android:maxLines="1"
android:id="@+id/search" android:layout_weight="1" android:importantForAutofill="no" android:id="@+id/search" android:layout_weight="1" android:importantForAutofill="no"
tools:targetApi="o"/> tools:targetApi="o"/>
<Button <ImageButton
android:layout_width="wrap_content" android:layout_width="30dp"
android:layout_height="wrap_content" android:layout_height="30dp"
android:layout_marginTop="0dp" android:layout_marginStart="10dp"
style="?android:attr/borderlessButtonStyle" android:layout_marginEnd="10dp"
android:layout_marginStart="0dp" android:layout_marginTop="12dp"
android:paddingBottom="19dp" android:layout_marginBottom="12dp"
android:paddingTop="19dp"
android:layout_marginEnd="0dp"
android:id="@+id/menu" android:id="@+id/menu"
android:onClick="clearHistory" android:onClick="onClearHistory"
android:scaleType="fitCenter" android:scaleType="fitCenter"
android:text="Clear" android:src="@drawable/dustbin"
android:background="?attr/selectableItemBackgroundBorderless"
android:bottomRightRadius="15dp"
android:bottomLeftRadius="15dp"
android:topLeftRadius="15dp"
android:topRightRadius="15dp"
android:contentDescription="@string/todo"/> android:contentDescription="@string/todo"/>
</LinearLayout> </LinearLayout>
@ -89,5 +82,5 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toStartOf="parent" app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
/> android:contentDescription="@string/todo"/>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -9,15 +9,15 @@
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:background="@color/white" android:background="@color/white"
android:layout_marginBottom="30dp" android:layout_marginBottom="0dp"
android:orientation="horizontal" android:orientation="horizontal"
android:layout_height="115dp"> android:layout_height="52dp">
<ImageButton <ImageButton
android:layout_width="30dp" android:layout_width="30dp"
android:layout_height="30dp" android:layout_height="30dp"
android:layout_marginStart="10dp" android:layout_marginStart="10dp"
android:layout_marginBottom="0dp" android:layout_marginBottom="0dp"
android:layout_marginTop="20dp" android:layout_marginTop="12dp"
android:id="@+id/home" android:id="@+id/home"
android:onClick="onBackPressed" android:onClick="onBackPressed"
android:scaleType="fitCenter" android:scaleType="fitCenter"
@ -26,37 +26,62 @@
android:background="?attr/selectableItemBackgroundBorderless" android:background="?attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/todo"/> android:contentDescription="@string/todo"/>
<TextView <TextView
android:textStyle="bold" android:textColor="@color/text_color_v1"
android:textColor="@color/cursor_blue" android:textSize="19sp"
android:textSize="20sp"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="40" android:layout_weight="40"
android:layout_marginTop="20dp" android:layout_marginTop="12dp"
android:textStyle="bold"
android:layout_marginStart="30dp" android:layout_marginStart="30dp"
android:text="@string/settings_header" android:text="@string/settings_header"
/> />
</LinearLayout> </LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginBottom="20dp"
android:background="@color/white_dark" />
<!-- Title Header -->
<LinearLayout
android:layout_width="match_parent"
android:background="@color/white"
android:layout_marginBottom="0dp"
android:orientation="horizontal"
android:layout_height="65dp">
<TextView
android:textColor="@color/cursor_blue"
android:textSize="17.5sp"
android:layout_width="0dp"
android:textStyle="bold"
android:layout_height="wrap_content"
android:layout_weight="40"
android:layout_marginTop="10dp"
android:layout_marginStart="20dp"
android:text="@string/basic_settings"
/>
</LinearLayout>
<!-- Title Search Engine --> <!-- Title Search Engine -->
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:background="@color/white" android:background="@color/white"
android:layout_marginTop="15dp" android:layout_marginTop="7dp"
android:orientation="horizontal" android:orientation="horizontal"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<TextView <TextView
android:textStyle="bold" android:textSize="16sp"
android:textSize="17sp"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="40" android:layout_weight="40"
android:layout_marginStart="30dp" android:layout_marginStart="20dp"
android:text="@string/settings_search_engine" android:text="@string/settings_search_engine"
/> />
<Spinner <Spinner
android:id="@+id/search_manager" android:id="@+id/search_manager"
android:textSize="13sp" android:textSize="12sp"
android:layout_width="150dp" android:layout_width="150dp"
android:layout_height="40dp" android:layout_height="40dp"
android:paddingRight="30dp" android:paddingRight="30dp"
@ -87,21 +112,20 @@
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:background="@color/white" android:background="@color/white"
android:layout_marginTop="30dp" android:layout_marginTop="20dp"
android:orientation="horizontal" android:orientation="horizontal"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<TextView <TextView
android:textStyle="bold" android:textSize="16sp"
android:textSize="17sp"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="40" android:layout_weight="40"
android:layout_marginStart="30dp" android:layout_marginStart="20dp"
android:text="@string/settings_javascript" android:text="@string/settings_javascript"
/> />
<Spinner <Spinner
android:id="@+id/javascript_manager" android:id="@+id/javascript_manager"
android:textSize="13sp" android:textSize="12sp"
android:layout_width="150dp" android:layout_width="150dp"
android:layout_height="40dp" android:layout_height="40dp"
android:layout_marginTop="1dp" android:layout_marginTop="1dp"
@ -131,26 +155,25 @@
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:background="@color/white" android:background="@color/white"
android:layout_marginTop="30dp" android:layout_marginTop="20dp"
android:orientation="horizontal" android:orientation="horizontal"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<TextView <TextView
android:textStyle="bold" android:textSize="16sp"
android:textSize="17sp"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="40" android:layout_weight="40"
android:layout_marginStart="30dp" android:layout_marginStart="20dp"
android:text="@string/settings_clear_history" android:text="@string/settings_clear_history"
/> />
<Spinner <Spinner
android:id="@+id/history_manager" android:id="@+id/history_manager"
android:textSize="13sp" android:textSize="12sp"
android:layout_width="150dp" android:layout_width="150dp"
android:layout_height="40dp" android:layout_height="40dp"
android:layout_marginTop="1dp" android:layout_marginTop="1dp"
android:paddingRight="30dp" android:paddingRight="30dp"
android:paddingLeft="30dp" android:paddingLeft="20dp"
android:stateListAnimator="@xml/spinner_style_animate" android:stateListAnimator="@xml/spinner_style_animate"
android:background="@xml/spinner_style_background" android:background="@xml/spinner_style_background"
android:drawSelectorOnTop="true" android:drawSelectorOnTop="true"

View File

@ -4,42 +4,34 @@
tools:context="example.javatpoint.com.optionmenu.MainActivity"> tools:context="example.javatpoint.com.optionmenu.MainActivity">
<item android:id="@+id/menu1" <item android:id="@+id/menu1"
android:onClick="onMenuOptionSelected"
android:title="History" android:title="History"
app:showAsAction="always" app:showAsAction="always"
android:icon="@android:drawable/btn_star"/> android:icon="@android:drawable/btn_star"/>
<item android:id="@+id/menu2" <item android:id="@+id/menu2"
android:onClick="onMenuOptionSelected"
android:title="Manager Search Engine" android:title="Manager Search Engine"
app:showAsAction="always" app:showAsAction="always"
android:icon="@android:drawable/btn_star"/> android:icon="@android:drawable/btn_star"/>
<item android:id="@+id/menu3" <item android:id="@+id/menu3"
android:onClick="onMenuOptionSelected"
android:title="Settings" android:title="Settings"
app:showAsAction="always" app:showAsAction="always"
android:icon="@android:drawable/btn_star"/> android:icon="@android:drawable/btn_star"/>
<group android:id="@+id/group_1" > <group android:id="@+id/group_1" >
<item android:id="@+id/menu4" <item android:id="@+id/menu4"
android:onClick="onMenuOptionSelected"
android:title="Bookmark This Page" android:title="Bookmark This Page"
app:showAsAction="always" app:showAsAction="always"
android:icon="@android:drawable/btn_star"/> android:icon="@android:drawable/btn_star"/>
<item android:id="@+id/menu5" <item android:id="@+id/menu5"
android:onClick="onMenuOptionSelected"
android:title="Open Bookmarks" android:title="Open Bookmarks"
app:showAsAction="ifRoom" app:showAsAction="ifRoom"
android:icon="@android:drawable/btn_plus"/> android:icon="@android:drawable/btn_plus"/>
</group> </group>
<group android:id="@+id/group_2" > <group android:id="@+id/group_2" >
<item android:id="@+id/menu6" <item android:id="@+id/menu6"
android:onClick="onMenuOptionSelected"
android:title="Report Website"/> android:title="Report Website"/>
<item android:id="@+id/menu7" <item android:id="@+id/menu7"
android:onClick="onMenuOptionSelected"
android:title="Rate This App" android:title="Rate This App"
app:showAsAction="withText"/> app:showAsAction="withText"/>
<item android:id="@+id/menu8" <item android:id="@+id/menu8"
android:onClick="onMenuOptionSelected"
android:title="Share" android:title="Share"
app:showAsAction="withText"/> app:showAsAction="withText"/>
</group> </group>

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 730 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 730 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 730 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 730 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

@ -13,6 +13,7 @@
<color name="text_color_v1">#4d4d4d</color> <color name="text_color_v1">#4d4d4d</color>
<color name="text_color_v2">#333333</color> <color name="text_color_v2">#333333</color>
<color name="holo_dark_gray">#737373</color>
<color name="holo_gray">#b3b3b3</color> <color name="holo_gray">#b3b3b3</color>
<color name="float_white">#bfbfbf</color> <color name="float_white">#bfbfbf</color>
<color name="button_gray">#d9d9d9</color> <color name="button_gray">#d9d9d9</color>
@ -22,5 +23,7 @@
<color name="progress_tint">#f32323</color> <color name="progress_tint">#f32323</color>
<color name="green_dark">#196619</color>
<color name="dark_purple">#CC212d45</color> <color name="dark_purple">#CC212d45</color>
</resources> </resources>

View File

@ -3,6 +3,7 @@
<!-- Application Strings --> <!-- Application Strings -->
<string name="app_name">Genesis</string> <string name="app_name">Genesis</string>
<string name="SearchHint">Search History</string> <string name="SearchHint">Search History</string>
<string name="SearchHintMain">Search or type web address</string>
<string name="homeUrl">https://genesis.onion</string> <string name="homeUrl">https://genesis.onion</string>
<string name="errorTiyle">\u0020\u0020\u0020Opps! Some Thing Went Wrong</string> <string name="errorTiyle">\u0020\u0020\u0020Opps! Some Thing Went Wrong</string>
<string name="todo">TODO</string> <string name="todo">TODO</string>
@ -28,11 +29,15 @@
<string name="attachment_summary_off">Only download attachments when manually requested</string> <string name="attachment_summary_off">Only download attachments when manually requested</string>
<!-- Settings --> <!-- Settings -->
<string name="basic_settings">Basic Settings</string>
<string name="settings_header">Settings</string> <string name="settings_header">Settings</string>
<string name="settings_search_engine">Search Engine</string> <string name="settings_search_engine">Search Engine</string>
<string name="settings_javascript">Javascript</string> <string name="settings_javascript">Javascript</string>
<string name="settings_clear_history">Auto Clear History</string> <string name="settings_clear_history">Auto Clear History</string>
<!-- List View -->
<string name="listview_clear">Clear</string>
<string-array name="search_engines"> <string-array name="search_engines">
<item>Darkweb</item> <item>Darkweb</item>
<item>Google</item> <item>Google</item>

View File

@ -9,24 +9,21 @@
<item name="android:windowBackground">@xml/splash_gradient</item> <item name="android:windowBackground">@xml/splash_gradient</item>
<item name="android:statusBarColor">#000000</item> <item name="android:statusBarColor">#000000</item>
</style> </style>
<style name="AppTheme.NoActionBar"> <style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item> <item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item> <item name="windowNoTitle">true</item>
</style> </style>
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar"/> <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar"/>
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light"> <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light">
<item name="android:paddingRight">21dp</item> <item name="android:paddingRight">24dp</item>
</style> </style>
<style name="AppTheme.popupMenuStyle" parent="Widget.AppCompat.PopupMenu">
<style name="SpinnerTheme" parent="android:Widget.DeviceDefault.Spinner"> <item name="android:popupBackground" >@android:color/white</item>
<item name="android:background">@xml/spinner_style_background</item> <item name="android:layout_marginTop" >1000dp</item>
<item name="android:padding">8dp</item>
<item name="android:paddingTop">5dp</item>
<item name="android:textSize">18sp</item>
<item name="android:textColor">@android:color/white</item>
<item name="android:paddingBottom">5dp</item>
<item name="android:paddingRight">15dp</item>
</style> </style>
</resources> </resources>

View File

@ -1,21 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<set>
<objectAnimator
android:duration="@android:integer/config_mediumAnimTime"
android:propertyName="translationZ"
android:valueTo="5dp" />
</set>
</item>
<item android:state_selected="true">
<set>
<objectAnimator
android:duration="@android:integer/config_shortAnimTime"
android:propertyName="translationZ"
android:valueTo="5dp" />
</set>
</item>
<item> <item>
<set> <set>
<objectAnimator <objectAnimator

View File

@ -1,11 +1,40 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" <selector xmlns:android="http://schemas.android.com/apk/res/android"
android:exitFadeDuration="@android:integer/config_mediumAnimTime"> android:exitFadeDuration="@android:integer/config_mediumAnimTime">
<item android:state_pressed="true" android:drawable="@android:color/white" />
<item android:state_selected="true" android:drawable="@android:color/white" /> <item android:state_selected="true">
<inset>
<shape android:shape="rectangle">
<corners
android:bottomRightRadius="5dp" android:bottomLeftRadius="5dp"
android:topLeftRadius="5dp" android:topRightRadius="5dp"/>
<stroke android:width="0dp"
android:color="#e6e6e6" />
<solid android:color="@color/button_gray" />
</shape>
</inset>
</item>
<item android:state_pressed="true">
<inset>
<shape android:shape="rectangle">
<corners
android:bottomRightRadius="5dp" android:bottomLeftRadius="5dp"
android:topLeftRadius="5dp" android:topRightRadius="5dp"/>
<stroke android:width="0dp"
android:color="#e6e6e6" />
<solid android:color="@color/button_gray" />
</shape>
</inset>
</item>
<item> <item>
<inset> <inset>
<shape android:shape="rectangle"> <shape android:shape="rectangle">
<corners
android:bottomRightRadius="5dp" android:bottomLeftRadius="5dp"
android:topLeftRadius="5dp" android:topRightRadius="5dp"/>
<stroke android:width="0dp" <stroke android:width="0dp"
android:color="#e6e6e6" /> android:color="#e6e6e6" />
<solid android:color="#f3f3f3" /> <solid android:color="#f3f3f3" />

View File

@ -7,7 +7,7 @@ buildscript {
maven { url 'https://maven.fabric.io/public' } maven { url 'https://maven.fabric.io/public' }
} }
dependencies { dependencies {
classpath 'com.android.tools.build:gradle:3.4.1' classpath 'com.android.tools.build:gradle:3.4.2'
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' classpath 'com.google.gms:google-services:4.2.0'
} }