Bug Fixes

master
msmannan00 2020-12-11 12:05:08 +05:00
parent 245efd77d6
commit d84ff0f18c
107 changed files with 2170 additions and 1354 deletions

View File

@ -20,6 +20,7 @@
<inspection_tool class="LambdaParameterTypeCanBeSpecified" enabled="false" level="INFORMATION" enabled_by_default="false" />
<inspection_tool class="RawUseOfParameterizedType" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="SameParameterValue" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="SingleStatementInBlock" enabled="false" level="INFORMATION" enabled_by_default="false" />
<inspection_tool class="SpellCheckingInspection" enabled="false" level="TYPO" enabled_by_default="false">
<option name="processCode" value="true" />
<option name="processLiterals" value="true" />

View File

@ -76,6 +76,7 @@ android {
res.srcDirs =
[
'src/main/res/layouts/history',
'src/main/res/layouts/help',
'src/main/res/layouts/tab',
'src/main/res/layouts/language',
'src/main/res/layouts/orbot',
@ -178,7 +179,7 @@ dependencies {
implementation 'com.chauthai.overscroll:overscroll-bouncy:0.1.1'
androidTestImplementation "junit:junit:4.13.1"
implementation 'jp.wasabeef:recyclerview-animators:2.2.7'
compile 'com.android.support:design:24.0.0'
implementation 'com.android.support:design:24.0.0'
}
apply plugin: 'com.android.application'

View File

@ -48,6 +48,13 @@
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
android:label="@string/SETTING_HEADER"
android:windowSoftInputMode="adjustNothing" />
<activity
android:name="com.darkweb.genesissearchengine.appManager.helpManager.helpController"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
android:label="@string/SETTING_HEADER"
android:windowSoftInputMode="adjustNothing" />
<activity
android:name="com.darkweb.genesissearchengine.appManager.settingManager.accessibilityManager.settingAccessibilityController"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"

View File

@ -24,7 +24,6 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.darkweb.genesissearchengine.appManager.activityContextManager;
import com.darkweb.genesissearchengine.appManager.databaseManager.databaseController;
import com.darkweb.genesissearchengine.appManager.historyManager.historyEnums;
import com.darkweb.genesissearchengine.appManager.homeManager.homeController;
import com.darkweb.genesissearchengine.constants.enums;
import com.darkweb.genesissearchengine.constants.keys;
@ -36,13 +35,14 @@ import com.darkweb.genesissearchengine.dataManager.dataEnums;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.darkweb.genesissearchengine.pluginManager.pluginController;
import com.darkweb.genesissearchengine.pluginManager.pluginEnums;
import com.example.myapplication.R;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import jp.wasabeef.recyclerview.animators.FadeInRightAnimator;
import static com.darkweb.genesissearchengine.appManager.bookmarkManager.bookmarkEnums.eBookmarkViewCommands.M_VERTIFY_SELECTION_MENU;
@ -116,7 +116,7 @@ public class bookmarkController extends AppCompatActivity
public void initCustomListeners(){
mClearButton.requestFocusFromTouch();
mClearButton.setOnClickListener(v -> pluginController.getInstance().MessageManagerHandler(activityContextManager.getInstance().getBookmarkController(), Collections.singletonList(strings.GENERIC_EMPTY_STR), enums.etype.clear_bookmark));
mClearButton.setOnClickListener(v -> pluginController.getInstance().MessageManagerHandler(activityContextManager.getInstance().getBookmarkController(), Collections.singletonList(strings.GENERIC_EMPTY_STR), enums.eMessageEnums.M_CLEAR_BOOKMARK));
mSearchInput.setOnEditorActionListener((v, actionId, event) ->{
if (actionId == EditorInfo.IME_ACTION_NEXT)

View File

@ -1,20 +1,16 @@
package com.darkweb.genesissearchengine.appManager.bridgeManager;
import android.content.Context;
import android.graphics.Rect;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.MotionEvent;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.RadioButton;
import androidx.appcompat.app.AppCompatActivity;
import com.darkweb.genesissearchengine.appManager.activityContextManager;
import com.darkweb.genesissearchengine.appManager.historyManager.historyAdapter;
import com.darkweb.genesissearchengine.appManager.helpManager.helpController;
import com.darkweb.genesissearchengine.constants.constants;
import com.darkweb.genesissearchengine.constants.enums;
import com.darkweb.genesissearchengine.constants.keys;
@ -24,11 +20,11 @@ import com.darkweb.genesissearchengine.dataManager.dataEnums;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.darkweb.genesissearchengine.pluginManager.pluginController;
import com.darkweb.genesissearchengine.pluginManager.pluginEnums;
import com.example.myapplication.R;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
public class bridgeController extends AppCompatActivity {
@ -102,6 +98,10 @@ public class bridgeController extends AppCompatActivity {
});
}
public void onOpenInfo(View view) {
helperMethod.openActivity(helpController.class, constants.CONST_LIST_HISTORY, this,true);
}
/* LISTENERS */
public class bridgeModelCallback implements eventObserver.eventListener{
@ -145,7 +145,7 @@ public class bridgeController extends AppCompatActivity {
public void requestBridges(View view){
mBridgeModel.onTrigger(bridgeEnums.eBridgeModelCommands.M_REQUEST_BRIDGE, null);
pluginController.getInstance().MessageManagerHandler(this, Collections.singletonList(constants.CONST_BACKEND_GOOGLE_URL), enums.etype.on_bridge_mail);
pluginController.getInstance().MessageManagerHandler(this, Collections.singletonList(constants.CONST_BACKEND_GOOGLE_URL), enums.eMessageEnums.M_BRIDGE_MAIL);
}
public void onCustomChecked(View view){

View File

@ -11,6 +11,7 @@ import com.darkweb.genesissearchengine.dataManager.dataController;
import com.darkweb.genesissearchengine.dataManager.dataEnums;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.pluginManager.pluginController;
import com.darkweb.genesissearchengine.pluginManager.pluginEnums;
import java.util.Arrays;
import java.util.Collections;
@ -33,7 +34,7 @@ class bridgeModel
/*Helper Methods*/
public void requestBridges(){
pluginController.getInstance().MessageManagerHandler(mContext, Collections.singletonList(constants.CONST_BACKEND_GOOGLE_URL), enums.etype.on_bridge_mail);
pluginController.getInstance().MessageManagerHandler(mContext, Collections.singletonList(constants.CONST_BACKEND_GOOGLE_URL), enums.eMessageEnums.M_BRIDGE_MAIL);
}
public void onCustomChecked(){

View File

@ -89,8 +89,8 @@ class bridgeViewController
helperMethod.hideKeyboard(mContext);
mCustomPort.clearFocus();
mCustomPort.animate().setDuration(p_duration).alpha(0.2f);
mBridgeButton.animate().setDuration(p_duration).alpha(0.2f);
mCustomPort.animate().setDuration(p_duration).alpha(0.35f);
mBridgeButton.animate().setDuration(p_duration).alpha(0.35f);
mCustomBridgeBlocker.setVisibility(View.VISIBLE);
}
@ -102,17 +102,23 @@ class bridgeViewController
mBridgeObfs.setHighlightColor(Color.BLACK);
mBridgeObfs.setButtonTintList(ColorStateList.valueOf(ContextCompat.getColor(mContext, R.color.c_radio_tint)));
mBridgeObfs.setChecked(true);
mBridgeChina.setChecked(false);
mBridgeCustom.setChecked(false);
break;
case strings.BRIDGE_CUSTOM_BRIDGE_MEEK:
animateColor(mBridgeChina, mBridgeChina.getCurrentTextColor(), mContext.getResources().getColor(R.color.c_text_v1), "textColor", p_duration);
mBridgeChina.setHighlightColor(Color.BLACK);
mBridgeChina.setButtonTintList(ColorStateList.valueOf(ContextCompat.getColor(mContext, R.color.c_radio_tint)));
mBridgeObfs.setChecked(false);
mBridgeChina.setChecked(true);
mBridgeCustom.setChecked(false);
break;
case strings.BRIDGE_CUSTOM_BRIDGE_CUSTOM:
animateColor(mBridgeCustom, mBridgeCustom.getCurrentTextColor(), mContext.getResources().getColor(R.color.c_text_v1), "textColor", p_duration);
mBridgeCustom.setHighlightColor(Color.BLACK);
mBridgeCustom.setButtonTintList(ColorStateList.valueOf(ContextCompat.getColor(mContext, R.color.c_radio_tint)));
mBridgeObfs.setChecked(false);
mBridgeChina.setChecked(false);
mBridgeCustom.setChecked(true);
mCustomPort.animate().setDuration(p_duration).alpha(1f);

View File

@ -1,19 +1,20 @@
package com.darkweb.genesissearchengine.appManager.databaseManager;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import androidx.appcompat.app.AppCompatActivity;
import com.darkweb.genesissearchengine.appManager.activityContextManager;
import com.darkweb.genesissearchengine.appManager.bookmarkManager.bookmarkRowModel;
import com.darkweb.genesissearchengine.appManager.historyManager.historyRowModel;
import com.darkweb.genesissearchengine.appManager.homeManager.geckoSession;
import com.darkweb.genesissearchengine.appManager.tabManager.tabRowModel;
import com.darkweb.genesissearchengine.constants.constants;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import static android.content.Context.MODE_PRIVATE;
public class databaseController
@ -43,6 +44,7 @@ public class databaseController
mDatabaseInstance.execSQL("CREATE TABLE IF NOT EXISTS " + "history" + " (id INT(4) PRIMARY KEY,date DATETIME,url VARCHAR,title VARCHAR);");
mDatabaseInstance.execSQL("CREATE TABLE IF NOT EXISTS " + "bookmark" + " (id INT(4) PRIMARY KEY,title VARCHAR,url VARCHAR);");
mDatabaseInstance.execSQL("CREATE TABLE IF NOT EXISTS " + "tab" + " (mid INT(4) PRIMARY KEY,date,title VARCHAR,url VARCHAR,mThumbnail BLOB);");
}
catch (Exception ex)
@ -54,6 +56,7 @@ public class databaseController
/*Helper Methods*/
public void execSQL(String query,String[] params)
{
if(params==null)
@ -66,6 +69,14 @@ public class databaseController
}
}
public void execTab(String query, ContentValues params,String pID)
{
if(params!=null)
{
mDatabaseInstance.update(query, params, "mid = ?", new String[]{pID});
}
}
public ArrayList<historyRowModel> selectHistory(int startIndex,int endIndex){
ArrayList<historyRowModel> tempmodel = new ArrayList<>();
@ -91,6 +102,24 @@ public class databaseController
return tempmodel;
}
public ArrayList<tabRowModel> selectTabs(){
ArrayList<tabRowModel> mTempListModel = new ArrayList<>();
Cursor c = mDatabaseInstance.rawQuery("SELECT * FROM tab ORDER BY date DESC", null);
if (c.moveToFirst()){
do {
geckoSession mSession = activityContextManager.getInstance().getHomeController().onNewTabInit();
tabRowModel model = new tabRowModel(c.getString(0), c.getString(1),c.getBlob(4));
model.setSession(mSession, c.getString(2),c.getString(3));
model.getSession().setSessionID(model.getmId());
mTempListModel.add(model);
} while(c.moveToNext());
}
c.close();
return mTempListModel;
}
public int getLargestHistoryID(){
int id = 0;
Cursor c = mDatabaseInstance.rawQuery("SELECT max(id) FROM history", null);

View File

@ -0,0 +1,61 @@
package com.darkweb.genesissearchengine.appManager.helpManager;
import android.os.Bundle;
import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
import com.darkweb.genesissearchengine.constants.constants;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.darkweb.genesissearchengine.pluginManager.pluginController;
import com.example.myapplication.R;
import java.util.Arrays;
import java.util.List;
import java.util.Locale;
@SuppressWarnings("FieldCanBeLocal")
public class helpController extends AppCompatActivity {
/*Initializations*/
private helpViewController mHelpViewController;
private helpModel mHelpModel;
@Override
protected void onCreate(Bundle savedInstanceState) {
pluginController.getInstance().onCreate(this);
super.onCreate(savedInstanceState);
setContentView(R.layout.help_view);
initializeAppModel();
initializeConnections();
}
public void initializeAppModel()
{
mHelpViewController = new helpViewController();
mHelpModel = new helpModel();
}
public void initializeConnections()
{
mHelpViewController.initialization(new helpViewCallback(),this);
}
public class helpViewCallback implements eventObserver.eventListener{
@Override
public Object invokeObserver(List<Object> data, Object e_type)
{
return null;
}
}
/*UI Redirection*/
public void onClose(View view) {
finish();
}
}

View File

@ -0,0 +1,7 @@
package com.darkweb.genesissearchengine.appManager.helpManager;
class helpModel
{
}

View File

@ -0,0 +1,42 @@
package com.darkweb.genesissearchengine.appManager.helpManager;
import android.os.Build;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.app.AppCompatDelegate;
import androidx.core.content.ContextCompat;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.example.myapplication.R;
class helpViewController
{
/*ViewControllers*/
private AppCompatActivity mContext;
private eventObserver.eventListener mEvent;
void initialization(eventObserver.eventListener event, AppCompatActivity context){
this.mContext = context;
initPostUI();
}
private void initPostUI(){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Window window = mContext.getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) {
window.setStatusBarColor(mContext.getResources().getColor(R.color.blue_dark));
}
else {
if(AppCompatDelegate.getDefaultNightMode() == AppCompatDelegate.MODE_NIGHT_NO){
mContext.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}
mContext.getWindow().setStatusBarColor(ContextCompat.getColor(mContext, R.color.c_background));
}
}
}
}

View File

@ -35,6 +35,7 @@ import com.darkweb.genesissearchengine.dataManager.dataEnums;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.darkweb.genesissearchengine.pluginManager.pluginController;
import com.darkweb.genesissearchengine.pluginManager.pluginEnums;
import com.example.myapplication.R;
import java.util.ArrayList;
import java.util.Arrays;
@ -140,7 +141,7 @@ public class historyController extends AppCompatActivity
mClearButton.requestFocusFromTouch();
mClearButton.setOnClickListener(v -> {
pluginController.getInstance().MessageManagerHandler(activityContextManager.getInstance().getHistoryController(), Collections.singletonList(strings.GENERIC_EMPTY_STR), enums.etype.clear_history);
pluginController.getInstance().MessageManagerHandler(activityContextManager.getInstance().getHistoryController(), Collections.singletonList(strings.GENERIC_EMPTY_STR), enums.eMessageEnums.M_CLEAR_HISTORY);
});
mSearchInput.setOnEditorActionListener((v, actionId, event) ->{

View File

@ -2,16 +2,11 @@ package com.darkweb.genesissearchengine.appManager.homeManager;
import android.content.Intent;
import android.net.Uri;
import androidx.appcompat.app.AppCompatActivity;
import com.darkweb.genesissearchengine.constants.*;
import com.darkweb.genesissearchengine.dataManager.dataController;
import com.darkweb.genesissearchengine.dataManager.dataEnums;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import java.io.File;
import java.net.URI;
import java.util.Arrays;
import java.util.List;
import static com.darkweb.genesissearchengine.constants.enums.etype.on_handle_external_intent;
import static org.mozilla.geckoview.GeckoSessionSettings.USER_AGENT_MODE_MOBILE;
@ -23,22 +18,18 @@ import static org.mozilla.geckoview.StorageController.ClearFlags.NETWORK_CACHE;
import static org.mozilla.geckoview.StorageController.ClearFlags.PERMISSIONS;
import static org.mozilla.geckoview.StorageController.ClearFlags.SITE_DATA;
import static org.mozilla.geckoview.StorageController.ClearFlags.SITE_SETTINGS;
import org.mozilla.geckoview.ContentBlocking;
import org.mozilla.geckoview.GeckoRuntime;
import org.mozilla.geckoview.GeckoSession;
import org.mozilla.geckoview.GeckoView;
class geckoClients
{
/*Gecko Variables*/
private geckoSession mSession = null;
private GeckoRuntime mRuntime = null;
private int mSessionID=0;
private int mGlobalSessionCounter=0;
private String mSessionID;
private eventObserver.eventListener event;
private AppCompatActivity context;
@ -47,8 +38,7 @@ class geckoClients
{
this.context = context;
this.event = event;
mGlobalSessionCounter+=1;
mSessionID = mGlobalSessionCounter;
mSessionID = helperMethod.createRandomID();
initRuntimeSettings(context);
if(!isForced && geckoView.getSession()!=null && geckoView.getSession().isOpen()){
@ -56,7 +46,7 @@ class geckoClients
}
else {
geckoView.releaseSession();
mSession = new geckoSession(new geckoViewClientCallback(),mGlobalSessionCounter,context, geckoView);
mSession = new geckoSession(new geckoViewClientCallback(),mSessionID,context, geckoView);
mSession.open(mRuntime);
mSession.getSettings().setUseTrackingProtection(status.sStatusDoNotTrack);
mSession.getSettings().setFullAccessibilityTree(true);
@ -64,11 +54,31 @@ class geckoClients
mSession.getSettings().setAllowJavascript(status.sSettingJavaStatus);
geckoView.releaseSession();
geckoView.setSession(mSession);
}
mSession.onSetInitializeFromStartup();
onUpdateFont();
}
public void onValidateInitializeFromStartup(){
mSession.onValidateInitializeFromStartup();
}
public boolean onGetInitializeFromStartup(){
return mSession.onGetInitializeFromStartup();
}
public geckoSession initFreeSession(GeckoView pGeckoView, AppCompatActivity pcontext, eventObserver.eventListener event){
this.event = event;
initRuntimeSettings(pcontext);
geckoSession mTempSession = new geckoSession(new geckoViewClientCallback(),mSessionID,context, pGeckoView);
mTempSession.open(mRuntime);
mTempSession.getSettings().setUseTrackingProtection(status.sStatusDoNotTrack);
mTempSession.getSettings().setFullAccessibilityTree(true);
mTempSession.getSettings().setUserAgentMode(USER_AGENT_MODE_MOBILE);
mTempSession.getSettings().setAllowJavascript(status.sSettingJavaStatus);
return mTempSession;
}
void toogleUserAgent(){
mSession.toogleUserAgent();
}
@ -129,13 +139,6 @@ class geckoClients
return mSession;
}
void updateJavascript(){
mSession.getSettings().setAllowJavascript(status.sSettingJavaStatus);
if(status.sSettingJavaStatus){
mSession.reload();
}
}
void onUploadRequest(int resultCode,Intent data){
mSession.onFileUploadRequest(resultCode,data);
}
@ -145,8 +148,10 @@ class geckoClients
}
void loadURL(String url){
mSession.initURL(url);
mSession.loadUri(url);
if(mSession.onGetInitializeFromStartup()){
mSession.initURL(url);
mSession.loadUri(url);
}
}
public void onRedrawPixel(){
@ -186,10 +191,6 @@ class geckoClients
return mSession.canGoBack();
}
boolean canGoForward(){
return mSession.canGoForward();
}
boolean isLoading(){
return mSession.isLoading();
}
@ -221,10 +222,15 @@ class geckoClients
mSession.reload();
}
void onReloadStatic(){
mSession.loadUri(mSession.getCurrentURL());
}
void manual_download(String url, AppCompatActivity context){
Uri downloadURL = Uri.parse(url);
File f = new File(url);
String downloadFile = f.getName() != null ? f.getName() : downloadURL.getLastPathSegment();
f.getName();
String downloadFile = f.getName();
/*EXTERNAL STORAGE REQUEST*/
if(helperMethod.checkPermissions(context)){
@ -241,10 +247,6 @@ class geckoClients
/*Session Updates*/
void onUpdateSettings(){
mSession.reload();
}
void onUpdateFont(){
float font = (status.sSettingFontSize -100)/3+100;
mRuntime.getSettings().setAutomaticFontSizeAdjustment(status.sSettingFontAdjustable);
@ -258,7 +260,7 @@ class geckoClients
@Override
public Object invokeObserver(List<Object> data, Object e_type)
{
if (mSessionID == (int)data.get(1) || e_type.equals(enums.etype.FINDER_RESULT_CALLBACK) || e_type.equals(enums.etype.ON_UPDATE_TAB_TITLE) || e_type.equals(enums.etype.on_update_favicon) ||e_type.equals(enums.etype.on_update_history) || e_type.equals(enums.etype.on_request_completed) || e_type.equals(enums.etype.on_update_suggestion) || e_type.equals(enums.etype.on_update_suggestion_url))
if (mSessionID!=null && mSessionID.equals(data.get(1)) || e_type.equals(enums.etype.FINDER_RESULT_CALLBACK) || e_type.equals(enums.etype.ON_UPDATE_TAB_TITLE) || e_type.equals(enums.etype.on_update_favicon) ||e_type.equals(enums.etype.on_update_history) || e_type.equals(enums.etype.on_request_completed) || e_type.equals(enums.etype.on_update_suggestion) || e_type.equals(enums.etype.on_update_suggestion_url))
{
if (e_type.equals(on_handle_external_intent))
{

View File

@ -18,15 +18,11 @@ import android.os.Environment;
import android.os.Handler;
import android.util.Base64;
import android.util.Log;
import android.view.View;
import android.view.autofill.AutofillManager;
import android.view.autofill.AutofillValue;
import android.widget.Toast;
import org.mozilla.gecko.EventDispatcher;
import androidx.annotation.AnyThread;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import androidx.annotation.UiThread;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.NotificationCompat;
@ -39,6 +35,7 @@ import com.darkweb.genesissearchengine.helperManager.JavaScriptInterface;
import com.darkweb.genesissearchengine.helperManager.downloadFileService;
import com.darkweb.genesissearchengine.helperManager.errorHandler;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.pluginManager.pluginEnums;
import com.example.myapplication.R;
import org.mozilla.gecko.util.ThreadUtils;
import org.mozilla.geckoview.AllowOrDeny;
@ -46,27 +43,22 @@ import org.mozilla.geckoview.Autofill;
import org.mozilla.geckoview.GeckoResult;
import org.mozilla.geckoview.GeckoSession;
import org.mozilla.geckoview.GeckoView;
import org.mozilla.geckoview.SessionFinder;
import org.mozilla.geckoview.WebRequestError;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import mozilla.components.browser.engine.gecko.GleanMetrics.Geckoview;
import static org.mozilla.geckoview.GeckoSessionSettings.USER_AGENT_MODE_DESKTOP;
import static org.mozilla.geckoview.GeckoSessionSettings.USER_AGENT_MODE_MOBILE;
public class geckoSession extends GeckoSession implements GeckoSession.ScrollDelegate,GeckoSession.PermissionDelegate,GeckoSession.ProgressDelegate, GeckoSession.HistoryDelegate,GeckoSession.NavigationDelegate,GeckoSession.ContentDelegate
public class geckoSession extends GeckoSession implements GeckoSession.MediaDelegate,GeckoSession.ScrollDelegate,GeckoSession.PermissionDelegate,GeckoSession.ProgressDelegate, GeckoSession.HistoryDelegate,GeckoSession.NavigationDelegate,GeckoSession.ContentDelegate
{
private eventObserver.eventListener event;
private int mSessionID;
private String mSessionID;
private boolean mCanGoBack = false;
private boolean mCanGoForward = false;
private boolean mFullScreen = false;
@ -83,8 +75,9 @@ public class geckoSession extends GeckoSession implements GeckoSession.ScrollDel
private int rateCount=0;
private int m_current_url_id = -1;
private GeckoView mGeckoView;
private boolean mIsLoaded = false;
geckoSession(eventObserver.eventListener event,int mSessionID,AppCompatActivity mContext, GeckoView pGeckoView){
geckoSession(eventObserver.eventListener event,String mSessionID,AppCompatActivity mContext, GeckoView pGeckoView){
this.mGeckoView = pGeckoView;
this.mContext = mContext;
@ -101,6 +94,22 @@ public class geckoSession extends GeckoSession implements GeckoSession.ScrollDel
this.event = event;
}
public void onSetInitializeFromStartup(){
mIsLoaded = true;
}
public boolean onGetInitializeFromStartup(){
return mIsLoaded;
}
public void onValidateInitializeFromStartup(){
if(!mIsLoaded){
mIsLoaded = true;
initURL(mCurrentURL);
loadUri(mCurrentURL);
}
}
void onFileUploadRequest(int resultCode, Intent data){
geckoPromptView mPromptDelegate = (geckoPromptView)getPromptDelegate();
@ -108,17 +117,19 @@ public class geckoSession extends GeckoSession implements GeckoSession.ScrollDel
}
void initURL(String url){
isPageLoading = true;
mCurrentURL = url;
mCurrentTitle = mCurrentURL;
if(mIsLoaded){
isPageLoading = true;
mCurrentURL = url;
mCurrentTitle = mCurrentURL;
event.invokeObserver(Arrays.asList(mCurrentURL,mSessionID,mCurrentTitle), enums.etype.on_update_suggestion);
if(!url.equals("about:blank") && !url.equals("about:config"))
{
mProgress = 5;
event.invokeObserver(Arrays.asList(5, mSessionID), enums.etype.progress_update);
event.invokeObserver(Arrays.asList(mCurrentURL,mSessionID,mCurrentTitle), enums.etype.on_update_suggestion);
if(!url.equals("about:blank") && !url.equals("about:config"))
{
mProgress = 5;
event.invokeObserver(Arrays.asList(5, mSessionID), enums.etype.progress_update);
}
m_current_url_id = -1;
}
m_current_url_id = -1;
}
/*Scroll Delegate*/
@ -190,15 +201,16 @@ public class geckoSession extends GeckoSession implements GeckoSession.ScrollDel
@Override
public void onPageStart(@NonNull GeckoSession var1, @NonNull String var2) {
if(!isPageLoading){
mCurrentTitle = "loading";
m_current_url_id = -1;
if(mIsLoaded){
if(!isPageLoading){
mCurrentTitle = "loading";
m_current_url_id = -1;
}
isPageLoading = true;
if(!var2.equals("about:blank") && !mCurrentTitle.equals("loading")){
mProgress = 5;
}
}
isPageLoading = true;
if(!var2.equals("about:blank") && !mCurrentTitle.equals("loading")){
mProgress = 5;
}
}
@UiThread
@ -245,6 +257,10 @@ public class geckoSession extends GeckoSession implements GeckoSession.ScrollDel
/*Navigation Delegate*/
public void onLocationChange(@NonNull GeckoSession var1, @Nullable String var2) {
if(!mIsLoaded){
return;
}
String newUrl = Objects.requireNonNull(var2).split("#")[0];
if(!mCurrentTitle.equals("loading")){
m_current_url_id = (int)event.invokeObserver(Arrays.asList(mCurrentURL,mSessionID,mCurrentTitle, m_current_url_id), enums.etype.on_update_history);
@ -270,7 +286,7 @@ public class geckoSession extends GeckoSession implements GeckoSession.ScrollDel
event.invokeObserver(Arrays.asList(var1.uri,mSessionID), enums.etype.on_playstore_load);
return GeckoResult.fromValue(AllowOrDeny.DENY);
}
else if(var1.uri.equals("about:blank")){
else if(var1.uri.equals("about:blank") && mIsLoaded){
return GeckoResult.fromValue(AllowOrDeny.ALLOW);
}
else if(var1.target==2){
@ -316,7 +332,7 @@ public class geckoSession extends GeckoSession implements GeckoSession.ScrollDel
@UiThread
public void onTitleChange(@NonNull GeckoSession var1, @Nullable String var2) {
if(var2!=null && !var2.equals(strings.GENERIC_EMPTY_STR) && var2.length()>2 && !var2.equals("about:blank")){
if(var2!=null && !var2.equals(strings.GENERIC_EMPTY_STR) && var2.length()>2 && !var2.equals("about:blank") && mIsLoaded){
mCurrentTitle = var2;
m_current_url_id = (int)event.invokeObserver(Arrays.asList(mCurrentURL,mSessionID,mCurrentTitle, m_current_url_id), enums.etype.on_update_history);
event.invokeObserver(Arrays.asList(var2,mSessionID,mCurrentTitle, m_current_url_id), dataEnums.eTabCommands.M_UPDATE_PIXEL);
@ -338,14 +354,14 @@ public class geckoSession extends GeckoSession implements GeckoSession.ScrollDel
}
if(var4.type!=0){
if(var4.linkUri!=null){
event.invokeObserver(Arrays.asList(var4.linkUri,mSessionID,var4.srcUri,title), enums.etype.on_long_press_with_link);
event.invokeObserver(Arrays.asList(var4.linkUri,mSessionID,var4.srcUri,title), enums.eMessageEnums.M_LONG_PRESS_WITH_LINK);
}
else {
event.invokeObserver(Arrays.asList(var4.srcUri,mSessionID,title), enums.etype.on_long_press);
}
}
else{
event.invokeObserver(Arrays.asList(var4.linkUri,mSessionID,title), enums.etype.on_long_press_url);
event.invokeObserver(Arrays.asList(var4.linkUri,mSessionID,title), enums.eMessageEnums.M_LONG_PRESS_URL);
}
}
@ -525,6 +541,10 @@ public class geckoSession extends GeckoSession implements GeckoSession.ScrollDel
mCurrentTitle = title;
}
public void setURL(String pURL){
mCurrentURL = pURL;
}
boolean canGoBack(){
return mCanGoBack;
}
@ -533,10 +553,14 @@ public class geckoSession extends GeckoSession implements GeckoSession.ScrollDel
return mCanGoForward;
}
public int getSessionID(){
public String getSessionID(){
return mSessionID;
}
public void setSessionID(String pSession){
mSessionID = pSession;
}
void exitScreen(){
this.exitFullScreen();
}
@ -610,7 +634,7 @@ public class geckoSession extends GeckoSession implements GeckoSession.ScrollDel
private void checkApplicationRate(){
if(rateCount==7){
event.invokeObserver(Arrays.asList(mCurrentURL,mSessionID,mCurrentTitle), enums.etype.rate_application);
event.invokeObserver(Arrays.asList(mCurrentURL,mSessionID,mCurrentTitle), enums.eMessageEnums.M_RATE_APPLICATION);
}
rateCount+=1;
}

View File

@ -2,6 +2,7 @@ package com.darkweb.genesissearchengine.appManager.homeManager;
import android.annotation.SuppressLint;
import android.app.DownloadManager;
import android.content.ActivityNotFoundException;
import android.content.BroadcastReceiver;
import android.content.ComponentCallbacks2;
import android.content.Context;
@ -14,9 +15,9 @@ import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.speech.RecognizerIntent;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.inputmethod.EditorInfo;
@ -26,8 +27,6 @@ import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.app.AppCompatDelegate;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.core.widget.NestedScrollView;
import com.darkweb.genesissearchengine.appManager.activityContextManager;
import com.darkweb.genesissearchengine.appManager.bookmarkManager.bookmarkController;
import com.darkweb.genesissearchengine.appManager.databaseManager.databaseController;
@ -51,15 +50,14 @@ import com.darkweb.genesissearchengine.helperManager.KeyboardUtils;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.darkweb.genesissearchengine.pluginManager.pluginController;
import com.darkweb.genesissearchengine.pluginManager.pluginEnums;
import com.darkweb.genesissearchengine.widget.progressBar.AnimatedProgressBar;
import com.example.myapplication.R;
import com.google.android.gms.ads.AdView;
import org.mozilla.geckoview.GeckoSession;
import org.mozilla.geckoview.GeckoView;
import org.torproject.android.service.util.Prefs;
import org.torproject.android.service.wrapper.LocaleHelper;
import org.torproject.android.service.wrapper.orbotLocalConstants;
import java.lang.ref.WeakReference;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
@ -70,7 +68,6 @@ import java.util.List;
import java.util.Locale;
import java.util.Objects;
import java.util.concurrent.Callable;
import static com.darkweb.genesissearchengine.constants.enums.etype.GECKO_SCROLL_CHANGED;
public class homeController extends AppCompatActivity implements ComponentCallbacks2
@ -86,7 +83,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
private FrameLayout mWebViewContainer;
/*View Objects*/
private com.darkweb.genesissearchengine.widget.AnimatedProgressBar mProgressBar;
private AnimatedProgressBar mProgressBar;
private ConstraintLayout mSplashScreen;
private AutoCompleteTextView mSearchbar;
private ImageView mLoadingIcon;
@ -100,6 +97,8 @@ public class homeController extends AppCompatActivity implements ComponentCallba
private View mFindBar;
private EditText mFindText;
private TextView mFindCount;
private ImageButton mVoiceInput;
private ImageButton mMenu;
/*Redirection Objects*/
private boolean mPageClosed = false;
@ -121,18 +120,16 @@ public class homeController extends AppCompatActivity implements ComponentCallba
super.onCreate(savedInstanceState);
setContentView(R.layout.home_view);
initPreFixes();
activityContextManager.getInstance().setHomeController(this);
pluginController.getInstance().initializeAllServices(this);
dataController.getInstance().initializeListData();
initializeAppModel();
initializeAppModel();
initializeConnections();
pluginController.getInstance().initialize();
initializeGeckoView(savedInstanceState == null);
initializeLocalEventHandlers();
initLandingPage();
onNewIntent(getIntent());
//onNewIntent(getIntent());
initLocalLanguage();
}
@ -197,7 +194,6 @@ public class homeController extends AppCompatActivity implements ComponentCallba
if(status.sSettingIsAppStarted){
mHomeViewController.onPageFinished();
mSplashScreen.setAlpha(0);
onLoadURL(status.mCurrentReloadURL);
mHomeViewController.onProgressBarUpdate(100);
}
}
@ -228,13 +224,30 @@ public class homeController extends AppCompatActivity implements ComponentCallba
mFindBar = findViewById(R.id.pFindBar);
mFindText = findViewById(R.id.pFindText);
mFindCount = findViewById(R.id.pFindCount);
mVoiceInput = findViewById(R.id.pVoiceInput);
mMenu = findViewById(R.id.pMenu);
mGeckoView.setSaveEnabled(false);
mGeckoView.setSaveFromParentEnabled(false);
mGeckoClient = new geckoClients();
mHomeViewController.initialization(new homeViewCallback(),this,mNewTab, mWebViewContainer, mLoadingText, mProgressBar, mSearchbar, mSplashScreen, mLoadingIcon, mBannerAds,(ArrayList<historyRowModel>)dataController.getInstance().invokeSuggestion(dataEnums.eSuggestionCommands.M_GET_SUGGESTION, null), mGatewaySplash, mTopBar, mGeckoView, mBackSplash, mConnectButton, mFindBar, mFindText, mFindCount, mTopLayout);
mHomeViewController.initialization(new homeViewCallback(),this,mNewTab, mWebViewContainer, mLoadingText, mProgressBar, mSearchbar, mSplashScreen, mLoadingIcon, mBannerAds,(ArrayList<historyRowModel>)dataController.getInstance().invokeSuggestion(dataEnums.eSuggestionCommands.M_GET_SUGGESTION, null), mGatewaySplash, mTopBar, mGeckoView, mBackSplash, mConnectButton, mFindBar, mFindText, mFindCount, mTopLayout, mVoiceInput, mMenu);
mGeckoView.onSetHomeEvent(new nestedGeckoViewCallback());
mGeckoClient.initialize(mGeckoView, new geckoViewCallback(), this,false);
mGeckoClient.onValidateInitializeFromStartup();
dataController.getInstance().initializeListData();
if(status.sSettingIsAppStarted){
Object mTempModel = dataController.getInstance().invokeTab(dataEnums.eTabCommands.GET_CURRENT_TAB, null);
if(mTempModel!=null){
tabRowModel model = (tabRowModel)mTempModel;
onLoadTab(model.getSession(),false);
onLoadURL(mGeckoClient.getSession().getCurrentURL());
mGeckoClient.initSession(model.getSession());
}else {
onNewIntent(getIntent());
}
}
}
public void onChangeTheme(){
@ -260,9 +273,9 @@ public class homeController extends AppCompatActivity implements ComponentCallba
}
}
public void initializeGeckoView(boolean isForced){
public void initializeGeckoView(boolean isForced, boolean pDatabaseSavable){
mGeckoClient.initialize(mGeckoView, new geckoViewCallback(), this,isForced);
onSaveCurrentTab(mGeckoClient.getSession(),false);
onSaveCurrentTab(mGeckoClient.getSession(),pDatabaseSavable);
mHomeViewController.initTab((int)dataController.getInstance().invokeTab(dataEnums.eTabCommands.GET_TOTAL_TAB, null));
}
@ -312,7 +325,6 @@ public class homeController extends AppCompatActivity implements ComponentCallba
mGeckoClient.initSession(mTempSession);
mGeckoView.releaseSession();
mGeckoView.setSession(mTempSession);
mGeckoClient.onRedrawPixel();
mHomeViewController.onClearSelections(false);
mHomeViewController.onUpdateSearchBar(mTempSession.getCurrentURL(),false);
@ -321,7 +333,10 @@ public class homeController extends AppCompatActivity implements ComponentCallba
}else {
mHomeViewController.progressBarReset();
}
mGeckoClient.onRedrawPixel();
if(mGeckoClient.getSession().onGetInitializeFromStartup()){
mGeckoClient.onRedrawPixel();
}
mGeckoClient.onValidateInitializeFromStartup();
}
/*-------------------------------------------------------USER EVENTS-------------------------------------------------------*/
@ -368,7 +383,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
@Override
public void onTextChanged(CharSequence s, int start,int before, int count) {
if(mFindText.getText().length()==0){
if(mFindText.getText().length()==0 && mGeckoClient!=null){
mGeckoClient.getSession().getFinder().clear();
mHomeViewController.onUpdateFindBarCount(0,0);
}else {
@ -430,6 +445,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
mSearchbar.setOnFocusChangeListener((v, hasFocus) -> {
if(!hasFocus)
{
mHomeViewController.initSearchBarFocus(false);
if(!mGeckoClient.isLoading()){
mHomeViewController.onUpdateSearchBar(mGeckoClient.getSession().getCurrentURL(),false);
}
@ -438,6 +454,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
mHomeViewController.initializeSuggestionView((ArrayList<historyRowModel>)dataController.getInstance().invokeSuggestion(dataEnums.eSuggestionCommands.M_GET_SUGGESTION, null));
}
}else {
mHomeViewController.initSearchBarFocus(true);
mHomeViewController.onUpdateSearchBar(mGeckoClient.getSession().getCurrentURL(),true);
}
});
@ -458,9 +475,10 @@ public class homeController extends AppCompatActivity implements ComponentCallba
public void onSuggestionInvoked(View view){
String val = ((TextView)view.findViewById(R.id.hintCompletionUrl)).getText().toString();
mSearchbar.clearFocus();
mHomeViewController.onUpdateSearchBar(val,false);
onLoadURL(val);
mSearchbar.clearFocus();
mSearchbar.setSelection(0);
mHomeViewController.onUpdateSearchBar(val,false);
}
public void applyTheme(){
@ -474,9 +492,13 @@ public class homeController extends AppCompatActivity implements ComponentCallba
mHomeViewController.onUpdateLogo();
}
public geckoSession onNewTabInit(){
return mGeckoClient.initFreeSession(mGeckoView, this, new geckoViewCallback());
}
public void onNewTab(boolean isKeyboardOpenedTemp, boolean isKeyboardOpened){
mGeckoClient.onRedrawPixel();
initializeGeckoView(true);
initializeGeckoView(true, true);
if(status.sOpenURLInNewTab){
onLoadURL(helperMethod.getDomainName(status.sSettingSearchStatus));
mHomeViewController. onUpdateSearchBar(helperMethod.getDomainName(status.sSettingSearchStatus),false);
@ -598,14 +620,14 @@ public class homeController extends AppCompatActivity implements ComponentCallba
{
pluginController.getInstance().onResume(this);
activityContextManager.getInstance().setCurrentActivity(this);
if (mGeckoClient!=null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && mGeckoClient.getUriPermission()!=null) {
if (mGeckoClient.getSession()!=null && mGeckoClient!=null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && mGeckoClient.getUriPermission()!=null) {
this.revokeUriPermission(mGeckoClient.getUriPermission(), Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION);
}
if(status.sSettingIsAppStarted){
onStartApplication(null);
}
if((int)dataController.getInstance().invokeTab(dataEnums.eTabCommands.GET_TOTAL_TAB, null)<=0){
onNewTab(false, false);
//onNewTab(false, false);
}
super.onResume();
@ -613,7 +635,23 @@ public class homeController extends AppCompatActivity implements ComponentCallba
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
if(requestCode==1){
if(requestCode==100){
if(resultCode == RESULT_OK && null != data){
ArrayList<String> result = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
mHomeViewController.onUpdateSearchBar(result.get(0),false);
helperMethod.hideKeyboard(homeController.this);
mGeckoClient.setLoading(true);
final Handler handler = new Handler();
handler.postDelayed(() ->
{
pluginController.getInstance().logEvent(strings.EVENT_SEARCH_INVOKED);
onSearchBarInvoked(mSearchbar);
mGeckoView.clearFocus();
}, 500);
}
}
else if(requestCode==1){
mGeckoClient.onUploadRequest(resultCode,data);
}
else {
@ -625,6 +663,19 @@ public class homeController extends AppCompatActivity implements ComponentCallba
mHomeViewController.onSetBannerAdMargin(true,pluginController.getInstance().isAdvertLoaded());
}
public void onVoiceClick(View view) {
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault());
intent.putExtra(RecognizerIntent.EXTRA_PROMPT,
"Voice2Text \n Say Something!!");
try {
startActivityForResult(intent, 100);
} catch (ActivityNotFoundException ignored) {
}
}
/*-------------------------------------------------------External Callback Methods-------------------------------------------------------*/
public void onSuggestionUpdate(){
@ -668,7 +719,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
public void onOpenLinkNewTab(String url){
mGeckoClient.onRedrawPixel();
initializeGeckoView(true);
initializeGeckoView(true, true);
mHomeViewController.progressBarReset();
mHomeViewController.onNewTab(false,isKeyboardOpened);
mHomeViewController.onUpdateSearchBar(url,false);
@ -730,11 +781,11 @@ public class homeController extends AppCompatActivity implements ComponentCallba
public void onMenuItemInvoked(View view){
int menuId = view.getId();
if (menuId == R.id.menu11) {
onNewTab(true, isKeyboardOpened);
onNewTab(isKeyboardOpened, true);
}
else if (menuId == R.id.menu10) {
if(!onCloseCurrentTab(mGeckoClient.getSession())){
onNewTab(true, isKeyboardOpened);
onNewTab(isKeyboardOpened, true);
}
}
else {
@ -763,7 +814,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
}
else if (menuId == R.id.pMenuDelete)
{
pluginController.getInstance().MessageManagerHandler(homeController.this, Collections.singletonList(mGeckoClient.getSession().getCurrentURL()),enums.etype.bookmark);
pluginController.getInstance().MessageManagerHandler(homeController.this, Collections.singletonList(mGeckoClient.getSession().getCurrentURL()), enums.eMessageEnums.M_BOOKMARK);
}
else if (menuId == R.id.pMenuOpenNewTab)
{
@ -773,14 +824,14 @@ public class homeController extends AppCompatActivity implements ComponentCallba
else if (menuId == R.id.pMenuOpenCurrentTab)
{
helperMethod.hideKeyboard(this);
pluginController.getInstance().MessageManagerHandler(homeController.this,null,enums.etype.report_url);
pluginController.getInstance().MessageManagerHandler(homeController.this,null,enums.eMessageEnums.M_REPORT_URL);
}
else if (menuId == R.id.pMenuShare)
{
helperMethod.hideKeyboard(this);
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.PROXY_IS_APP_RATED,true));
status.sSettingIsAppRated = true;
pluginController.getInstance().MessageManagerHandler(activityContextManager.getInstance().getHomeController(), Collections.singletonList(strings.GENERIC_EMPTY_STR), enums.etype.rate_app);
pluginController.getInstance().MessageManagerHandler(activityContextManager.getInstance().getHomeController(), Collections.singletonList(strings.GENERIC_EMPTY_STR), enums.eMessageEnums.M_RATE_APP);
}
else if (menuId == R.id.pMenuCopy)
{
@ -806,7 +857,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
}
if (menuId == R.id.menu23) {
helperMethod.hideKeyboard(this);
pluginController.getInstance().MessageManagerHandler(homeController.this, Collections.singletonList(mGeckoClient.getSession().getCurrentURL()),enums.etype.bookmark);
pluginController.getInstance().MessageManagerHandler(homeController.this, Collections.singletonList(mGeckoClient.getSession().getCurrentURL()),enums.eMessageEnums.M_BOOKMARK);
}
if (menuId == R.id.menu24) {
helperMethod.hideKeyboard(this);
@ -862,7 +913,14 @@ public class homeController extends AppCompatActivity implements ComponentCallba
else if(e_type.equals(enums.etype.recheck_orbot)){
pluginController.getInstance().isOrbotRunning();
}
return null;
else if(e_type.equals(enums.etype.M_HOME_PAGE)){
geckoSession mSession = (geckoSession)dataController.getInstance().invokeTab(dataEnums.eTabCommands.M_HOME_PAGE, null);
if(mSession!=null){
onLoadTab(mSession, false);
}
return dataController.getInstance().invokeTab(dataEnums.eTabCommands.M_HOME_PAGE, null);
}
return null;
}
}
@ -929,7 +987,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
Runnable runnable = () ->
{
if(!status.sSettingIsAppStarted){
pluginController.getInstance().MessageManagerHandler(activityContextManager.getInstance().getHomeController(), Collections.singletonList(strings.GENERIC_EMPTY_STR), enums.etype.welcome);
pluginController.getInstance().MessageManagerHandler(activityContextManager.getInstance().getHomeController(), Collections.singletonList(strings.GENERIC_EMPTY_STR), enums.eMessageEnums.M_WELCOME);
}
status.sSettingIsAppStarted = true;
};
@ -940,11 +998,11 @@ public class homeController extends AppCompatActivity implements ComponentCallba
handler.postDelayed(runnable, 2000);
}
}
else if(e_type.equals(enums.etype.rate_application)){
else if(e_type.equals(enums.eMessageEnums.M_RATE_APPLICATION)){
if(!status.sSettingIsAppRated){
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.PROXY_IS_APP_RATED,true));
status.sSettingIsAppRated = true;
pluginController.getInstance().MessageManagerHandler(activityContextManager.getInstance().getHomeController(), Collections.singletonList(strings.GENERIC_EMPTY_STR), enums.etype.rate_app);
pluginController.getInstance().MessageManagerHandler(activityContextManager.getInstance().getHomeController(), Collections.singletonList(strings.GENERIC_EMPTY_STR), enums.eMessageEnums.M_RATE_APP);
}
}
else if(e_type.equals(enums.etype.on_load_error)){
@ -957,7 +1015,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
mHomeViewController.onUpdateSearchBar(dataToStr(data.get(0),mGeckoClient.getSession().getCurrentURL()),false);
}
else if(e_type.equals(enums.etype.download_file_popup)){
pluginController.getInstance().MessageManagerHandler(homeController.this,Collections.singletonList(dataToStr(data.get(0))),enums.etype.download_file);
pluginController.getInstance().MessageManagerHandler(homeController.this,Collections.singletonList(dataToStr(data.get(0))),enums.eMessageEnums.M_DOWNLOAD_FILE);
}
else if(e_type.equals(enums.etype.on_full_screen)){
boolean status = (Boolean)data.get(0);
@ -966,14 +1024,14 @@ public class homeController extends AppCompatActivity implements ComponentCallba
else if(e_type.equals(enums.etype.on_update_favicon)){
dataController.getInstance().invokeImageCache(dataEnums.eImageCacheCommands.M_SET_IMAGE ,data);
}
else if(e_type.equals(enums.etype.on_long_press_with_link)){
pluginController.getInstance().MessageManagerHandler(homeController.this, Arrays.asList(dataToStr(data.get(0)),dataToStr(data.get(2)),dataToStr(data.get(3))),enums.etype.on_long_press_with_link);
else if(e_type.equals(enums.eMessageEnums.M_LONG_PRESS_WITH_LINK)){
pluginController.getInstance().MessageManagerHandler(homeController.this, Arrays.asList(dataToStr(data.get(0)),dataToStr(data.get(2)),dataToStr(data.get(3))),enums.eMessageEnums.M_LONG_PRESS_WITH_LINK);
}
else if(e_type.equals(enums.etype.on_long_press)){
pluginController.getInstance().MessageManagerHandler(homeController.this,Arrays.asList(dataToStr(data.get(0)),dataToStr(data.get(2))),enums.etype.download_file_long_press);
pluginController.getInstance().MessageManagerHandler(homeController.this,Arrays.asList(dataToStr(data.get(0)),dataToStr(data.get(2))),enums.eMessageEnums.M_LONG_PRESS_DOWNLOAD);
}
else if(e_type.equals(enums.etype.on_long_press_url)){
pluginController.getInstance().MessageManagerHandler(homeController.this,Arrays.asList(dataToStr(data.get(0)),dataToStr(data.get(2))),enums.etype.on_long_press_url);
else if(e_type.equals(enums.eMessageEnums.M_LONG_PRESS_URL)){
pluginController.getInstance().MessageManagerHandler(homeController.this,Arrays.asList(dataToStr(data.get(0)),dataToStr(data.get(2))),enums.eMessageEnums.M_LONG_PRESS_URL);
}
else if(e_type.equals(enums.etype.open_new_tab)){
onOpenLinkNewTab(dataToStr(data.get(0)));
@ -991,10 +1049,11 @@ public class homeController extends AppCompatActivity implements ComponentCallba
}
else if(e_type.equals(enums.etype.ON_UPDATE_TAB_TITLE)){
if(activityContextManager.getInstance().getTabController()!=null && !activityContextManager.getInstance().getTabController().isDestroyed())
activityContextManager.getInstance().getTabController().onTabRowChanged((int)data.get(1));
activityContextManager.getInstance().getTabController().onTabRowChanged((String) data.get(1));
}
else if(e_type.equals(dataEnums.eTabCommands.M_UPDATE_PIXEL)){
try{
dataController.getInstance().invokeTab(dataEnums.eTabCommands.M_UPDATE_PIXEL, Arrays.asList(data.get(1), mGeckoView.capturePixels()));
}catch (Exception ignored){

View File

@ -34,16 +34,20 @@ import androidx.core.content.ContextCompat;
import com.darkweb.genesissearchengine.appManager.historyManager.historyRowModel;
import com.darkweb.genesissearchengine.constants.*;
import com.darkweb.genesissearchengine.dataManager.dataController;
import com.darkweb.genesissearchengine.dataManager.dataEnums;
import com.darkweb.genesissearchengine.helperManager.animatedColor;
import com.darkweb.genesissearchengine.helperManager.autoCompleteAdapter;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.darkweb.genesissearchengine.widget.progressBar.AnimatedProgressBar;
import com.example.myapplication.R;
import com.google.android.gms.ads.AdSize;
import com.google.android.gms.ads.AdView;
import org.mozilla.geckoview.GeckoView;
import org.torproject.android.service.wrapper.orbotLocalConstants;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Objects;
import java.util.concurrent.Callable;
@ -59,7 +63,7 @@ class homeViewController
/*ViewControllers*/
private FrameLayout mWebviewContainer;
private com.darkweb.genesissearchengine.widget.AnimatedProgressBar mProgressBar;
private AnimatedProgressBar mProgressBar;
private AutoCompleteTextView mSearchbar;
private ConstraintLayout mSplashScreen;
private ImageView mLoading;
@ -77,12 +81,14 @@ class homeViewController
private EditText mFindText;
private TextView mFindCount;
private FrameLayout mTopLayout;
private ImageButton mVoiceInput;
private ImageButton mMenu;
/*Local Variables*/
private Callable<String> mLogs = null;
private boolean isLandscape = false;
void initialization(eventObserver.eventListener event, AppCompatActivity context, Button mNewTab, FrameLayout webviewContainer, TextView loadingText, com.darkweb.genesissearchengine.widget.AnimatedProgressBar progressBar, AutoCompleteTextView searchbar, ConstraintLayout splashScreen, ImageView loading, AdView banner_ads, ArrayList<historyRowModel> suggestions, ImageButton gateway_splash, LinearLayout top_bar, GeckoView gecko_view, ImageView backsplash, Button connect_button, View pFindBar, EditText pFindText, TextView pFindCount, FrameLayout pTopLayout){
void initialization(eventObserver.eventListener event, AppCompatActivity context, Button mNewTab, FrameLayout webviewContainer, TextView loadingText, AnimatedProgressBar progressBar, AutoCompleteTextView searchbar, ConstraintLayout splashScreen, ImageView loading, AdView banner_ads, ArrayList<historyRowModel> suggestions, ImageButton gateway_splash, LinearLayout top_bar, GeckoView gecko_view, ImageView backsplash, Button connect_button, View pFindBar, EditText pFindText, TextView pFindCount, FrameLayout pTopLayout, ImageButton pVoiceInput, ImageButton pMenu){
this.mContext = context;
this.mProgressBar = progressBar;
this.mSearchbar = searchbar;
@ -103,11 +109,11 @@ class homeViewController
this.mFindText = pFindText;
this.mFindCount = pFindCount;
this.mTopLayout = pTopLayout;
this.mVoiceInput = pVoiceInput;
this.mMenu = pMenu;
initSplashScreen();
initializeSuggestionView(suggestions);
initLock();
initSearchImage();
createUpdateUiHandler();
recreateStatusBar();
initTopBarPadding();
@ -127,36 +133,42 @@ class homeViewController
}
}
private void initSearchImage(){
public void initSearchBarFocus(boolean pStatus){
if(!pStatus){
this.mVoiceInput.animate().setDuration(250).alpha(0).withEndAction(() -> {
mVoiceInput.setVisibility(View.GONE);
((LinearLayout)mNewTab.getParent()).setVisibility(View.VISIBLE);
mMenu.setVisibility(View.VISIBLE);
});
}else {
Drawable drawable;
Resources res = mContext.getResources();
try {
if(status.sSettingEnableVoiceInput){
drawable = Drawable.createFromXml(res, res.getXml(R.xml.ic_baseline_keyboard_voice));
}else {
drawable = Drawable.createFromXml(res, res.getXml(R.xml.ic_search_small));
}
mVoiceInput.setImageDrawable(drawable);
} catch (Exception ignored) {
}
final Handler handler = new Handler();
handler.postDelayed(() ->
{
mVoiceInput.setVisibility(View.VISIBLE);
}, 250);
((LinearLayout)this.mNewTab.getParent()).setVisibility(View.GONE);
this.mMenu.setVisibility(View.GONE);
}
}
void initTab(int count){
mNewTab.setText((count+strings.GENERIC_EMPTY_STR));
}
private void initPostUI(boolean isSplash){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Window window = mContext.getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
if(isSplash){
window.setStatusBarColor(mContext.getResources().getColor(R.color.landing_ease_blue));
}
else{
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) {
window.setStatusBarColor(ContextCompat.getColor(mContext, R.color.c_text_v3));
}
else {
if(AppCompatDelegate.getDefaultNightMode() == AppCompatDelegate.MODE_NIGHT_NO){
mContext.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}
mContext.getWindow().setStatusBarColor(ContextCompat.getColor(mContext, R.color.c_background));
}
}
}
}
public void recreateStatusBar(){
if(status.sSettingIsAppStarted){
Window window = mContext.getWindow();
@ -234,13 +246,6 @@ class homeViewController
animator.start();
}
private void initLock(){
@SuppressLint("UseCompatLoadingForDrawables") Drawable img = mContext.getResources().getDrawable( R.drawable.icon_lock);
mSearchbar.measure(0, 0);
img.setBounds( -10, (int)(mSearchbar.getMeasuredHeight()*0.00), (int)(mSearchbar.getMeasuredHeight()*1.10)-10, (int)(mSearchbar.getMeasuredHeight()*0.69) );
mSearchbar.setCompoundDrawables( img, null, null, null );
}
void initializeSuggestionView(ArrayList<historyRowModel> suggestions){
if(mSearchbar.isFocused()){
@ -269,7 +274,7 @@ class homeViewController
mSearchbar.setInputType(EditorInfo.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
}
private void initSplashLoading(){
public void initSplashLoading(){
mLoading.setAnimation(helperMethod.getRotationAnimation());
mLoading.setLayoutParams(helperMethod.getCenterScreenPoint(mLoading.getLayoutParams()));
@ -293,7 +298,6 @@ class homeViewController
private void initSplashScreen(){
mSearchbar.setEnabled(false);
helperMethod.hideKeyboard(mContext);
//initPostUI(true);
mBackSplash.getLayoutParams().height = helperMethod.getScreenHeight(mContext) - helperMethod.getStatusBarHeight(mContext)*2;
mSearchbar.setEnabled(false);
@ -494,7 +498,7 @@ class homeViewController
private Handler searchBarUpdateHandler = new Handler();
private String handlerLocalUrl = "";
void onUpdateSearchBar(String url,boolean showProtocol){
int delay = 50;
int delay = 0;
handlerLocalUrl = url;
if(searchBarUpdateHandler.hasMessages(100)){
@ -710,6 +714,8 @@ class homeViewController
params.setMargins(0, 0, 0, 0);
mWebviewContainer.setLayoutParams(params);
mBannerAds.setVisibility(View.GONE);
com.darkweb.genesissearchengine.constants.status.sFullScreenBrowsing = false;
mGeckoView.setPadding(0,0,0,0);
}
else {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
@ -726,6 +732,8 @@ class homeViewController
mWebviewContainer.setLayoutParams(params);
mBannerAds.setVisibility(View.GONE);
mEvent.invokeObserver(Collections.singletonList(!isLandscape), enums.etype.on_init_ads);
com.darkweb.genesissearchengine.constants.status.sFullScreenBrowsing = (boolean) dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_BOOL, Arrays.asList(keys.SETTING_FULL_SCREEN_BROWSIING,true));
initTopBarPadding();
}
}
@ -765,10 +773,13 @@ class homeViewController
{
if(msg.what == messages.MESSAGE_ON_URL_LOAD)
{
if(status.sSettingRedirectStatus.equals(strings.GENERIC_EMPTY_STR)){
mEvent.invokeObserver(Collections.singletonList(helperMethod.getDomainName(status.sSettingSearchStatus)), enums.etype.on_url_load);
}else {
mEvent.invokeObserver(Collections.singletonList(helperMethod.getDomainName(status.sSettingRedirectStatus)), enums.etype.on_url_load);
if(mEvent.invokeObserver(null, enums.etype.M_HOME_PAGE)==null){
mEvent.invokeObserver(null, enums.etype.M_PRELOAD_URL);
if(status.sSettingRedirectStatus.equals(strings.GENERIC_EMPTY_STR)){
mEvent.invokeObserver(Collections.singletonList(helperMethod.getDomainName(status.sSettingSearchStatus)), enums.etype.on_url_load);
}else {
mEvent.invokeObserver(Collections.singletonList(helperMethod.getDomainName(status.sSettingRedirectStatus)), enums.etype.on_url_load);
}
}
}
if(msg.what == messages.MESSAGE_UPDATE_LOADING_TEXT)

View File

@ -4,15 +4,16 @@ package com.darkweb.genesissearchengine.appManager.languageManager;
import android.os.Bundle;
import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
import com.darkweb.genesissearchengine.constants.enums;
import com.darkweb.genesissearchengine.appManager.helpManager.helpController;
import com.darkweb.genesissearchengine.constants.constants;
import com.darkweb.genesissearchengine.constants.keys;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.dataManager.dataController;
import com.darkweb.genesissearchengine.dataManager.dataEnums;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.darkweb.genesissearchengine.pluginManager.pluginController;
import com.example.myapplication.R;
import java.util.Arrays;
import java.util.List;
import java.util.Locale;
@ -45,6 +46,10 @@ public class languageController extends AppCompatActivity {
mLanguageViewController.initialization(new languageViewCallback(),this);
}
public void onOpenInfo(View view) {
helperMethod.openActivity(helpController.class, constants.CONST_LIST_HISTORY, this,true);
}
public class languageViewCallback implements eventObserver.eventListener{
@Override

View File

@ -7,8 +7,6 @@ import android.view.WindowManager;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.app.AppCompatDelegate;
import androidx.core.content.ContextCompat;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.example.myapplication.R;

View File

@ -6,8 +6,12 @@ import android.widget.LinearLayout;
import androidx.appcompat.app.AppCompatActivity;
import com.darkweb.genesissearchengine.appManager.activityContextManager;
import com.darkweb.genesissearchengine.appManager.bridgeManager.bridgeController;
import com.darkweb.genesissearchengine.appManager.helpManager.helpController;
import com.darkweb.genesissearchengine.constants.constants;
import com.darkweb.genesissearchengine.constants.keys;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.dataManager.dataController;
import com.darkweb.genesissearchengine.dataManager.dataEnums;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.darkweb.genesissearchengine.pluginManager.pluginController;
@ -48,6 +52,10 @@ public class orbotController extends AppCompatActivity {
mOrbotModel = new com.darkweb.genesissearchengine.appManager.orbotManager.orbotModel(new orbotModelCallback());
}
public void onOpenInfo(View view) {
helperMethod.openActivity(helpController.class, constants.CONST_LIST_HISTORY, this,true);
}
/* LISTENERS */
public class orbotModelCallback implements eventObserver.eventListener{
@ -61,6 +69,7 @@ public class orbotController extends AppCompatActivity {
public void onBridgeSwitch(View view){
mOrbotModel.onTrigger(orbotEnums.eOrbotModelCommands.M_BRIDGE_SWITCH,Collections.singletonList(!mBridgeSwitch.isChecked()));
mOrbotViewController.onTrigger(orbotEnums.eOrbotViewCommands.M_UPDATE_BRIDGE_SETTINGS_VIEWS, Collections.singletonList(status.sBridgeStatus));
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.BRIDGE_BRIDGE_ENABLES,status.sBridgeVPNStatus));
}
public void openBridgeSettings(View view){
@ -70,6 +79,7 @@ public class orbotController extends AppCompatActivity {
public void onVPNSwitch(View view){
mOrbotModel.onTrigger(orbotEnums.eOrbotModelCommands.M_VPN_SWITCH,Collections.singletonList(!mVpnSwitch.isChecked()));
mOrbotViewController.onTrigger(orbotEnums.eOrbotViewCommands.M_UPDATE_VPN,Collections.singletonList(status.sBridgeVPNStatus));
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.BRIDGE_VPN_ENABLED,status.sBridgeVPNStatus));
}
/* LOCAL OVERRIDES */

View File

@ -1,12 +1,8 @@
package com.darkweb.genesissearchengine.appManager.orbotManager;
import com.darkweb.genesissearchengine.constants.keys;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.dataManager.dataController;
import com.darkweb.genesissearchengine.dataManager.dataEnums;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.pluginManager.pluginController;
import java.util.Arrays;
import java.util.List;
class orbotModel
@ -25,13 +21,11 @@ class orbotModel
public void onBridgeSwitch(boolean pStatus){
status.sBridgeStatus = pStatus;
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.BRIDGE_BRIDGE_ENABLES,status.sBridgeStatus));
pluginController.getInstance().updateBridges(status.sBridgeStatus);
}
public void onVPNSwitch(boolean pStatus){
status.sBridgeVPNStatus = pStatus;
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.BRIDGE_VPN_ENABLED,status.sBridgeVPNStatus));
pluginController.getInstance().updateVPN(status.sBridgeVPNStatus);
}

View File

@ -8,7 +8,6 @@ import android.widget.LinearLayout;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.app.AppCompatDelegate;
import androidx.core.content.ContextCompat;
import com.example.myapplication.R;
import com.google.android.material.switchmaterial.SwitchMaterial;
import java.util.List;

View File

@ -6,13 +6,14 @@ import android.widget.SeekBar;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import com.darkweb.genesissearchengine.appManager.activityContextManager;
import com.darkweb.genesissearchengine.appManager.helpManager.helpController;
import com.darkweb.genesissearchengine.constants.constants;
import com.darkweb.genesissearchengine.constants.enums;
import com.darkweb.genesissearchengine.constants.keys;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.dataManager.dataController;
import com.darkweb.genesissearchengine.dataManager.dataEnums;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.darkweb.genesissearchengine.pluginManager.pluginController;
import com.example.myapplication.R;
import com.google.android.material.switchmaterial.SwitchMaterial;
@ -117,17 +118,24 @@ public class settingAccessibilityController extends AppCompatActivity {
}
/*UI Redirection*/
public void onOpenInfo(View view) {
helperMethod.openActivity(helpController.class, constants.CONST_LIST_HISTORY, this,true);
}
public void onClose(View view){
finish();
}
public void onZoomSettingUpdate(View view){
mSettingAccessibilityModel.onTrigger(settingAccessibilityEnums.eAccessibilityViewController.M_ZOOM_SETTING, Collections.singletonList(!mZoom.isChecked()));
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_ZOOM,status.sSettingEnableZoom));
mZoom.toggle();
}
public void onVoiceInputSettingUpdate(View view){
mSettingAccessibilityModel.onTrigger(settingAccessibilityEnums.eAccessibilityViewController.M_VOICE_INPUT_SETTING, Collections.singletonList(!mVoiceInput.isChecked()));
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_VOICE_INPUT,status.sSettingEnableVoiceInput));
mVoiceInput.toggle();
}

View File

@ -1,11 +1,7 @@
package com.darkweb.genesissearchengine.appManager.settingManager.accessibilityManager;
import com.darkweb.genesissearchengine.constants.keys;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.dataManager.dataController;
import com.darkweb.genesissearchengine.dataManager.dataEnums;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import java.util.Arrays;
import java.util.List;
class settingAccessibilityModel
@ -24,12 +20,10 @@ class settingAccessibilityModel
private void onZoomSettingUpdate(boolean pStatus){
status.sSettingEnableZoom = pStatus;
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_ZOOM,pStatus));
}
private void onVoiceInputSettingUpdate(boolean pStatus){
status.sSettingEnableVoiceInput = pStatus;
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_VOICE_INPUT,pStatus));
}
public Object onTrigger(settingAccessibilityEnums.eAccessibilityViewController pCommands, List<Object> pData){
@ -41,5 +35,4 @@ class settingAccessibilityModel
}
return null;
}
}

View File

@ -5,11 +5,19 @@ import android.view.View;
import android.widget.RadioButton;
import androidx.appcompat.app.AppCompatActivity;
import com.darkweb.genesissearchengine.appManager.activityContextManager;
import com.darkweb.genesissearchengine.appManager.helpManager.helpController;
import com.darkweb.genesissearchengine.constants.constants;
import com.darkweb.genesissearchengine.constants.keys;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.dataManager.dataController;
import com.darkweb.genesissearchengine.dataManager.dataEnums;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.darkweb.genesissearchengine.pluginManager.pluginController;
import com.example.myapplication.R;
import com.google.android.material.switchmaterial.SwitchMaterial;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
@ -44,6 +52,10 @@ public class settingAdvanceController extends AppCompatActivity {
mSettingAdvanceModel = new settingAdvanceModel(new settingAdvanceModelCallback());
}
public void onOpenInfo(View view) {
helperMethod.openActivity(helpController.class, constants.CONST_LIST_HISTORY, this,true);
}
/* LISTENERS */
public class settingAdvanceViewCallback implements eventObserver.eventListener{
@ -108,6 +120,7 @@ public class settingAdvanceController extends AppCompatActivity {
public void onRestoreTabs(View view) {
mSettingAdvanceModel.onTrigger(settingAdvanceEnums.eAdvanceModel.M_RESTORE_TAB, Collections.singletonList(!mRestoreTabs.isChecked()));
mRestoreTabs.toggle();
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_RESTORE_TAB, status.sRestoreTabs));
}
public void onShowImages(View view) {
@ -115,17 +128,20 @@ public class settingAdvanceController extends AppCompatActivity {
mSettingAdvanceViewController.onTrigger(settingAdvanceEnums.eAdvanceViewController.M_CLEAR_IMAGE, Collections.singletonList(null));
mSettingAdvanceModel.onTrigger(settingAdvanceEnums.eAdvanceModel.M_SHOW_IMAGE, Collections.singletonList(view));
mSettingAdvanceViewController.onTrigger(settingAdvanceEnums.eAdvanceViewController.M_SET_IMAGE, Collections.singletonList(view));
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_INT, Arrays.asList(keys.SETTING_SHOW_IMAGES,status.sShowImages));
}
public void onShowWebFonts(View view) {
mIsChanged = true;
mSettingAdvanceModel.onTrigger(settingAdvanceEnums.eAdvanceModel.M_SHOW_WEB_FONTS, Collections.singletonList(!mShowWebFonts.isChecked()));
mShowWebFonts.toggle();
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_SHOW_FONTS,status.sShowWebFonts));
}
public void onAllowAutoPlay(View view) {
mIsChanged = true;
mSettingAdvanceModel.onTrigger(settingAdvanceEnums.eAdvanceModel.M_ALLOW_AUTOPLAY, Collections.singletonList(!mAllowAutoPlay.isChecked()));
mAllowAutoPlay.toggle();
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_AUTO_PLAY,status.sAutoPlay));
}
}

View File

@ -4,7 +4,6 @@ import android.view.View;
import com.darkweb.genesissearchengine.constants.keys;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.dataManager.dataController;
import com.darkweb.genesissearchengine.dataManager.dataEnums;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.example.myapplication.R;
@ -27,7 +26,6 @@ class settingAdvanceModel
private void onRestoreTabs(boolean pStatus) {
status.sRestoreTabs = pStatus;
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_RESTORE_TAB,pStatus));
}
private void onShowImages(View pView) {
@ -38,18 +36,14 @@ class settingAdvanceModel
else if(pView.getId() == R.id.pAdvanceOption2){
status.sShowImages = 2;
}
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_INT, Arrays.asList(keys.SETTING_SHOW_IMAGES,status.sShowImages));
}
private void onShowWebFonts(boolean pStatus) {
status.sShowWebFonts = pStatus;
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_SHOW_FONTS,pStatus));
}
private void onAllowAutoPlay(boolean pStatus) {
status.sAutoPlay = pStatus;
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_AUTO_PLAY,pStatus));
}
public Object onTrigger(settingAdvanceEnums.eAdvanceModel pCommands, List<Object> pData){

View File

@ -6,15 +6,17 @@ import android.view.View;
import android.widget.CheckBox;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.ContextCompat;
import com.darkweb.genesissearchengine.appManager.activityContextManager;
import com.darkweb.genesissearchengine.appManager.databaseManager.databaseController;
import com.darkweb.genesissearchengine.appManager.helpManager.helpController;
import com.darkweb.genesissearchengine.constants.constants;
import com.darkweb.genesissearchengine.constants.enums;
import com.darkweb.genesissearchengine.constants.sql;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.dataManager.dataController;
import com.darkweb.genesissearchengine.dataManager.dataEnums;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.darkweb.genesissearchengine.pluginManager.pluginController;
import com.example.myapplication.R;
import java.util.ArrayList;
@ -43,15 +45,19 @@ public class settingClearController extends AppCompatActivity {
mCheckBoxList.add(findViewById(R.id.pClearChecked_2));
mCheckBoxList.add(findViewById(R.id.pClearChecked_3));
mCheckBoxList.add(findViewById(R.id.pClearChecked_4));
mCheckBoxList.add(findViewById(R.id.pClearChecked_5));
mCheckBoxList.add(findViewById(R.id.pClearChecked_6));
mCheckBoxList.add(findViewById(R.id.pClearChecked_7));
mCheckBoxList.add(findViewById(R.id.pClearChecked_8));
mCheckBoxList.add(findViewById(R.id.pClearChecked_9));
mSettingClearViewController = new settingClearViewController(this, new settingClearController.settingClearViewCallback(), mCheckBoxList);
mSettingClearModel = new settingClearModel(new settingClearController.settingClearModelCallback());
}
public void onOpenInfo(View view) {
helperMethod.openActivity(helpController.class, constants.CONST_LIST_HISTORY, this,true);
}
/* LISTENERS */
public class settingClearViewCallback implements eventObserver.eventListener{
@ -125,15 +131,9 @@ public class settingClearController extends AppCompatActivity {
mCheckBoxList.get(7).setButtonTintList(ColorStateList.valueOf(ContextCompat.getColor(this, R.color.c_checkbox_tint_default)));
activityContextManager.getInstance().getHomeController().onClearCookies();
}
if(mCheckBoxList.get(8).isChecked()){
mCheckBoxList.get(8).setChecked(false);
mCheckBoxList.get(8).setButtonTintList(ColorStateList.valueOf(ContextCompat.getColor(this, R.color.c_checkbox_tint_default)));
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_CLEAR_PREFS, null);
status.initStatus();
}
activityContextManager.getInstance().getHomeController().initRuntimeSettings();
pluginController.getInstance().MessageManagerHandler(this, null, enums.etype.data_cleared);
pluginController.getInstance().MessageManagerHandler(this, null, enums.eMessageEnums.M_DATA_CLEARED);
}catch (Exception ex){
ex.printStackTrace();
}

View File

@ -9,7 +9,6 @@ import android.widget.CheckBox;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.app.AppCompatDelegate;
import androidx.core.content.ContextCompat;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.example.myapplication.R;
import java.util.ArrayList;

View File

@ -8,15 +8,21 @@ import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.app.AppCompatDelegate;
import com.darkweb.genesissearchengine.appManager.activityContextManager;
import com.darkweb.genesissearchengine.appManager.helpManager.helpController;
import com.darkweb.genesissearchengine.appManager.languageManager.languageController;
import com.darkweb.genesissearchengine.constants.constants;
import com.darkweb.genesissearchengine.constants.enums;
import com.darkweb.genesissearchengine.constants.keys;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.dataManager.dataController;
import com.darkweb.genesissearchengine.dataManager.dataEnums;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.darkweb.genesissearchengine.pluginManager.pluginController;
import com.example.myapplication.R;
import com.google.android.material.switchmaterial.SwitchMaterial;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
@ -71,6 +77,10 @@ public class settingGeneralController extends AppCompatActivity {
}
}
public void onOpenInfo(View view) {
helperMethod.openActivity(helpController.class, constants.CONST_LIST_HISTORY, this,true);
}
/* LISTENERS */
public class settingGeneralViewCallback implements eventObserver.eventListener{
@ -136,6 +146,7 @@ public class settingGeneralController extends AppCompatActivity {
mSettingGeneralModel.onTrigger(settingGeneralEnums.eGeneralModel.M_FULL_SCREEN_BROWSING, Collections.singletonList(!mFullScreenMode.isChecked()));
mFullScreenMode.toggle();
activityContextManager.getInstance().getHomeController().onFullScreenSettingChanged();
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_FULL_SCREEN_BROWSIING,status.sFullScreenBrowsing));
}
public void onSelectTheme(View view){
@ -145,6 +156,7 @@ public class settingGeneralController extends AppCompatActivity {
mSettingGeneralViewController.onTrigger(settingGeneralEnums.eGeneralViewController.M_SET_THEME, Collections.singletonList(enums.Theme.THEME_DARK));
mSettingGeneralModel.onTrigger(settingGeneralEnums.eGeneralModel.M_SELECT_THEME, Collections.singletonList(enums.Theme.THEME_DARK));
mSettingGeneralViewController.onTrigger(settingGeneralEnums.eGeneralViewController.M_UPDATE_THEME_BLOCKER, Collections.singletonList(enums.Theme.THEME_DARK));
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_INT, Arrays.asList(keys.SETTING_THEME,status.sTheme));
}
}else if(view.getId() == R.id.pOption2) {
if(status.sTheme != enums.Theme.THEME_LIGHT) {
@ -152,6 +164,7 @@ public class settingGeneralController extends AppCompatActivity {
mSettingGeneralViewController.onTrigger(settingGeneralEnums.eGeneralViewController.M_SET_THEME, Collections.singletonList(enums.Theme.THEME_LIGHT));
mSettingGeneralModel.onTrigger(settingGeneralEnums.eGeneralModel.M_SELECT_THEME, Collections.singletonList(enums.Theme.THEME_LIGHT));
mSettingGeneralViewController.onTrigger(settingGeneralEnums.eGeneralViewController.M_UPDATE_THEME_BLOCKER, Collections.singletonList(enums.Theme.THEME_LIGHT));
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_INT, Arrays.asList(keys.SETTING_THEME,status.sTheme));
}
}else {
if(status.sTheme != enums.Theme.THEME_DEFAULT) {
@ -159,6 +172,7 @@ public class settingGeneralController extends AppCompatActivity {
mSettingGeneralViewController.onTrigger(settingGeneralEnums.eGeneralViewController.M_SET_THEME, Collections.singletonList(enums.Theme.THEME_DEFAULT));
mSettingGeneralModel.onTrigger(settingGeneralEnums.eGeneralModel.M_SELECT_THEME, Collections.singletonList(enums.Theme.THEME_DEFAULT));
mSettingGeneralViewController.onTrigger(settingGeneralEnums.eGeneralViewController.M_UPDATE_THEME_BLOCKER, Collections.singletonList(enums.Theme.THEME_DEFAULT));
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_INT, Arrays.asList(keys.SETTING_THEME,status.sTheme));
}
}
}
@ -166,6 +180,7 @@ public class settingGeneralController extends AppCompatActivity {
public void onURLInNewTab(View view) {
mSettingGeneralModel.onTrigger(settingGeneralEnums.eGeneralModel.M_URL_NEW_TAB, Collections.singletonList(!mOpenURLInNewTab.isChecked()));
mOpenURLInNewTab.toggle();
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_OPEN_URL_IN_NEW_TAB,status.sOpenURLInNewTab));
}
}

View File

@ -1,11 +1,7 @@
package com.darkweb.genesissearchengine.appManager.settingManager.generalManager;
import com.darkweb.genesissearchengine.constants.keys;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.dataManager.dataController;
import com.darkweb.genesissearchengine.dataManager.dataEnums;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import java.util.Arrays;
import java.util.List;
class settingGeneralModel
@ -23,17 +19,14 @@ class settingGeneralModel
/*Helper Methods*/
private void onFullScreenBrowsing(boolean pStatus){
status.sFullScreenBrowsing = pStatus;
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_FULL_SCREEN_BROWSIING,pStatus));
}
private void onSelectThemeLight(int pStatus){
status.sTheme = pStatus;
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_INT, Arrays.asList(keys.SETTING_THEME,pStatus));
}
private void onURLInNewTab(boolean pStatus) {
status.sOpenURLInNewTab = pStatus;
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_OPEN_URL_IN_NEW_TAB,pStatus));
}
public Object onTrigger(settingGeneralEnums.eGeneralModel pCommands, List<Object> pData){

View File

@ -4,10 +4,19 @@ import android.os.Bundle;
import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
import com.darkweb.genesissearchengine.appManager.activityContextManager;
import com.darkweb.genesissearchengine.appManager.helpManager.helpController;
import com.darkweb.genesissearchengine.constants.constants;
import com.darkweb.genesissearchengine.constants.keys;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.dataManager.dataController;
import com.darkweb.genesissearchengine.dataManager.dataEnums;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.darkweb.genesissearchengine.pluginManager.pluginController;
import com.example.myapplication.R;
import com.google.android.material.switchmaterial.SwitchMaterial;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
@ -34,6 +43,10 @@ public class settingLogController extends AppCompatActivity {
mSettingLogModel = new settingLogModel(new settingLogModelCallback());
}
public void onOpenInfo(View view) {
helperMethod.openActivity(helpController.class, constants.CONST_LIST_HISTORY, this,true);
}
/* LISTENERS */
public class settingLogViewCallback implements eventObserver.eventListener{
@ -84,5 +97,6 @@ public class settingLogController extends AppCompatActivity {
mSettingLogModel.onTrigger(settingLogEnums.eLogModel.M_SWITCH_LOG_VIEW, Collections.singletonList(!mListView.isChecked()));
mListView.toggle();
activityContextManager.getInstance().getOrbotLogController().initializeLogs();
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_LIST_VIEW, status.sLogListView));
}
}

View File

@ -2,7 +2,6 @@ package com.darkweb.genesissearchengine.appManager.settingManager.logManager;
import com.darkweb.genesissearchengine.constants.keys;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.dataManager.dataController;
import com.darkweb.genesissearchengine.dataManager.dataEnums;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
@ -23,7 +22,6 @@ class settingLogModel
public void onUpdateLogView(boolean pIsListView){
status.sLogListView = pIsListView;
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_LIST_VIEW, pIsListView));
}
/*Helper Methods*/

View File

@ -4,12 +4,19 @@ import android.os.Bundle;
import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
import com.darkweb.genesissearchengine.appManager.activityContextManager;
import com.darkweb.genesissearchengine.constants.enums;
import com.darkweb.genesissearchengine.appManager.helpManager.helpController;
import com.darkweb.genesissearchengine.constants.constants;
import com.darkweb.genesissearchengine.constants.keys;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.dataManager.dataController;
import com.darkweb.genesissearchengine.dataManager.dataEnums;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.darkweb.genesissearchengine.pluginManager.pluginController;
import com.example.myapplication.R;
import com.google.android.material.switchmaterial.SwitchMaterial;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
@ -85,6 +92,10 @@ public class settingNotificationController extends AppCompatActivity {
/*UI Redirection*/
public void onOpenInfo(View view) {
helperMethod.openActivity(helpController.class, constants.CONST_LIST_HISTORY, this,true);
}
public void onClose(View view){
finish();
}
@ -96,5 +107,6 @@ public class settingNotificationController extends AppCompatActivity {
public void onSaveLocalNotificationSettings(View view){
mSettingNotificationModel.onTrigger(settingNotificationEnums.eNotificationModel.M_UPDATE_LOCAL_NOTIFICATION, Collections.singletonList(!mNotificationManual.isChecked()));
mNotificationManual.toggle();
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_INT, Arrays.asList(keys.SETTING_NOTIFICATION_STATUS, status.sBridgeNotificationManual));
}
}

View File

@ -2,7 +2,6 @@ package com.darkweb.genesissearchengine.appManager.settingManager.notificationMa
import com.darkweb.genesissearchengine.constants.keys;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.dataManager.dataController;
import com.darkweb.genesissearchengine.dataManager.dataEnums;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.pluginManager.pluginController;
@ -28,7 +27,6 @@ class settingNotificationModel
int mStatus = pStatus ? 1 : 0;
status.sBridgeNotificationManual = mStatus;
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_INT, Arrays.asList(keys.SETTING_NOTIFICATION_STATUS, mStatus));
pluginController.getInstance().setNotificationStatus(mStatus);
int notificationStatus = pluginController.getInstance().getNotificationStatus();
if(notificationStatus==0){

View File

@ -4,11 +4,9 @@ import android.os.Build;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.app.AppCompatDelegate;
import androidx.core.content.ContextCompat;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.example.myapplication.R;

View File

@ -5,12 +5,19 @@ import android.view.View;
import android.widget.RadioButton;
import androidx.appcompat.app.AppCompatActivity;
import com.darkweb.genesissearchengine.appManager.activityContextManager;
import com.darkweb.genesissearchengine.appManager.helpManager.helpController;
import com.darkweb.genesissearchengine.constants.constants;
import com.darkweb.genesissearchengine.constants.keys;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.dataManager.dataController;
import com.darkweb.genesissearchengine.dataManager.dataEnums;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.darkweb.genesissearchengine.pluginManager.pluginController;
import com.example.myapplication.R;
import com.google.android.material.switchmaterial.SwitchMaterial;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
@ -50,6 +57,10 @@ public class settingPrivacyController extends AppCompatActivity {
mSettingPrivacyModel = new settingPrivacyModel(new settingPrivacyController.settingAccessibilityModelCallback());
}
public void onOpenInfo(View view) {
helperMethod.openActivity(helpController.class, constants.CONST_LIST_HISTORY, this,true);
}
/* LISTENERS */
public class settingAccessibilityViewCallback implements eventObserver.eventListener{
@ -100,38 +111,42 @@ public class settingPrivacyController extends AppCompatActivity {
/*UI Redirection*/
public void onClose(View view){
activityContextManager.getInstance().getHomeController().initRuntimeSettings();
finish();
onBackPressed();
}
public void onJavaScript(View view){
mSettingChanged = true;
mSettingPrivacyModel.onTrigger(settingPrivacyEnums.ePrivacyModel.M_SET_JAVASCRIPT, Collections.singletonList(!status.sSettingJavaStatus));
mJavaScript.toggle();
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_JAVA_SCRIPT,status.sSettingJavaStatus));
}
public void onDoNotTrack(View view){
mSettingChanged = true;
mSettingPrivacyModel.onTrigger(settingPrivacyEnums.ePrivacyModel.M_SET_DONOT_TRACK, Collections.singletonList(!status.sStatusDoNotTrack));
mDoNotTrack.toggle();
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_DONOT_TRACK,status.sSettingTrackingProtection));
}
public void onTrackingProtection(View view){
mSettingChanged = true;
mSettingPrivacyModel.onTrigger(settingPrivacyEnums.ePrivacyModel.M_SET_TRACKING_PROTECTION, Collections.singletonList(!status.sSettingTrackingProtection));
mTrackingProtection.toggle();
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_TRACKING_PROTECTION,status.sSettingTrackingProtection));
}
public void onCookies(View view){
mSettingChanged = true;
mSettingPrivacyViewController.onTrigger(settingPrivacyEnums.ePrivacyViewController.M_SET_COOKIE_STATUS, Collections.singletonList(view));
mSettingPrivacyModel.onTrigger(settingPrivacyEnums.ePrivacyModel.M_SET_COOKIES, Collections.singletonList(view));
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_INT, Arrays.asList(keys.SETTING_COOKIE_ADJUSTABLE,status.sSettingCookieStatus));
}
public void onClearPrivateData(View view){
mSettingChanged = true;
mSettingPrivacyModel.onTrigger(settingPrivacyEnums.ePrivacyModel.M_SET_CLEAR_PRIVATE_DATA, Collections.singletonList(!status.sClearOnExit));
mClearDataOnExit.toggle();
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_HISTORY_CLEAR,status.sClearOnExit));
}
}

View File

@ -3,7 +3,6 @@ package com.darkweb.genesissearchengine.appManager.settingManager.privacyManager
import android.view.View;
import com.darkweb.genesissearchengine.constants.keys;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.dataManager.dataController;
import com.darkweb.genesissearchengine.dataManager.dataEnums;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.example.myapplication.R;
@ -29,18 +28,15 @@ class settingPrivacyModel
/*Helper Methods*/
private void onJavaScript(boolean pStatus){
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_JAVA_SCRIPT,pStatus));
status.sSettingJavaStatus = pStatus;
}
private void onDoNotTrack(boolean pStatus){
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_DONOT_TRACK,pStatus));
status.sStatusDoNotTrack = pStatus;
}
private void onTrackingProtection(boolean pStatus){
status.sSettingTrackingProtection = pStatus;
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_TRACKING_PROTECTION,pStatus));
}
private void onCookies(View pView){
@ -56,12 +52,9 @@ class settingPrivacyModel
if(pView.getId() == R.id.pCookieOption4){
status.sSettingCookieStatus = ACCEPT_NONE;
}
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_INT, Arrays.asList(keys.SETTING_COOKIE_ADJUSTABLE,status.sSettingCookieStatus));
}
private void onClearPrivateData(boolean pStatus){
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_HISTORY_CLEAR,pStatus));
status.sClearOnExit = pStatus;
}

View File

@ -5,13 +5,19 @@ import android.view.View;
import android.widget.RadioButton;
import androidx.appcompat.app.AppCompatActivity;
import com.darkweb.genesissearchengine.appManager.activityContextManager;
import com.darkweb.genesissearchengine.appManager.helpManager.helpController;
import com.darkweb.genesissearchengine.constants.constants;
import com.darkweb.genesissearchengine.constants.enums;
import com.darkweb.genesissearchengine.constants.keys;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.dataManager.dataController;
import com.darkweb.genesissearchengine.dataManager.dataEnums;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.darkweb.genesissearchengine.pluginManager.pluginController;
import com.example.myapplication.R;
import com.google.android.material.switchmaterial.SwitchMaterial;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
@ -49,18 +55,23 @@ public class settingSearchController extends AppCompatActivity {
public void onSelectSearchEngine(View view) {
if(view.getId() == R.id.pOption1){
mSettingSearchModel.onTrigger(settingSearchEnums.eSearchModel.M_SET_SEARCH_ENGINE, Collections.singletonList(constants.CONST_BACKEND_GENESIS_URL));
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_STRING, Arrays.asList(keys.SETTING_SEARCH_ENGINE, status.sSettingSearchStatus));
}
else if(view.getId() == R.id.pOption2){
mSettingSearchModel.onTrigger(settingSearchEnums.eSearchModel.M_SET_SEARCH_ENGINE, Collections.singletonList(constants.CONST_BACKEND_DUCK_DUCK_GO_URL));
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_STRING, Arrays.asList(keys.SETTING_SEARCH_ENGINE, status.sSettingSearchStatus));
}
else if(view.getId() == R.id.pOption3){
mSettingSearchModel.onTrigger(settingSearchEnums.eSearchModel.M_SET_SEARCH_ENGINE, Collections.singletonList(constants.CONST_BACKEND_GOOGLE_URL));
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_STRING, Arrays.asList(keys.SETTING_SEARCH_ENGINE, status.sSettingSearchStatus));
}
else if(view.getId() == R.id.pOption4){
mSettingSearchModel.onTrigger(settingSearchEnums.eSearchModel.M_SET_SEARCH_ENGINE, Collections.singletonList(constants.CONST_BACKEND_BING_URL));
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_STRING, Arrays.asList(keys.SETTING_SEARCH_ENGINE, status.sSettingSearchStatus));
}
else if(view.getId() == R.id.pOption5){
mSettingSearchModel.onTrigger(settingSearchEnums.eSearchModel.M_SET_SEARCH_ENGINE, Collections.singletonList(constants.CONST_BACKEND_WIKI_URL));
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_STRING, Arrays.asList(keys.SETTING_SEARCH_ENGINE, status.sSettingSearchStatus));
}
mSettingSearchViewController.onTrigger(settingSearchEnums.eSearchViewController.M_RESET_SEARCH_ENGINE, Collections.singletonList(null));
@ -70,11 +81,17 @@ public class settingSearchController extends AppCompatActivity {
public void setSearchHistory(View view){
mSettingSearchModel.onTrigger(settingSearchEnums.eSearchModel.M_SET_SEARCH_HISTORY, Collections.singletonList(!mSearchHistory.isChecked()));
mSearchHistory.toggle();
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_SEARCH_HISTORY, status.sSettingSearchHistory));
}
public void setSearchStatus(View view){
mSettingSearchModel.onTrigger(settingSearchEnums.eSearchModel.M_SET_SEARCH_HISTORY, Collections.singletonList(!mSearchSuggestions.isChecked()));
mSearchSuggestions.toggle();
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_SEARCH_SUGGESTION, status.getsSettingSearchSuggestion));
}
public void onOpenInfo(View view) {
helperMethod.openActivity(helpController.class, constants.CONST_LIST_HISTORY, this,true);
}
/* LISTENERS */

View File

@ -1,14 +1,7 @@
package com.darkweb.genesissearchengine.appManager.settingManager.searchEngineManager;
import android.view.View;
import com.darkweb.genesissearchengine.appManager.historyManager.historyEnums;
import com.darkweb.genesissearchengine.constants.keys;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.dataManager.dataController;
import com.darkweb.genesissearchengine.dataManager.dataEnums;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import java.util.Arrays;
import java.util.List;
@ -29,15 +22,12 @@ class settingSearchModel
private void onSetSearchEngine(String pUrl){
status.sSettingSearchStatus = pUrl;
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_STRING, Arrays.asList(keys.SETTING_SEARCH_ENGINE, pUrl));
}
private void setSearchHistory(boolean pStatus){
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_SEARCH_HISTORY, pStatus));
status.sSettingSearchHistory = pStatus;
}
private void setSearchStatus(boolean pStatus){
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_SEARCH_SUGGESTION, pStatus));
status.getsSettingSearchSuggestion = pStatus;
}

View File

@ -8,6 +8,7 @@ import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.app.AppCompatDelegate;
import com.darkweb.genesissearchengine.appManager.activityContextManager;
import com.darkweb.genesissearchengine.appManager.helpManager.helpController;
import com.darkweb.genesissearchengine.appManager.settingManager.accessibilityManager.settingAccessibilityController;
import com.darkweb.genesissearchengine.appManager.settingManager.advanceManager.settingAdvanceController;
import com.darkweb.genesissearchengine.appManager.settingManager.clearManager.settingClearController;
@ -28,7 +29,8 @@ import com.darkweb.genesissearchengine.pluginManager.pluginController;
import com.example.myapplication.R;
import java.util.Arrays;
import java.util.List;
import static com.darkweb.genesissearchengine.constants.enums.etype.on_not_support;
import static com.darkweb.genesissearchengine.constants.enums.eMessageEnums.M_NOT_SUPPORTED;
public class settingController extends AppCompatActivity
{
@ -129,7 +131,7 @@ public class settingController extends AppCompatActivity
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
startActivity(new Intent(android.provider.Settings.ACTION_MANAGE_DEFAULT_APPS_SETTINGS));
}else{
pluginController.getInstance().MessageManagerHandler(this, null, on_not_support);
pluginController.getInstance().MessageManagerHandler(this, null, M_NOT_SUPPORTED);
}
}
@ -161,6 +163,10 @@ public class settingController extends AppCompatActivity
helperMethod.openActivity(settingAdvanceController.class, constants.CONST_LIST_HISTORY, this,true);
}
public void onOpenInfo(View view) {
helperMethod.openActivity(helpController.class, constants.CONST_LIST_HISTORY, this,true);
}
/*Event Observer*/
public class settingViewCallback implements eventObserver.eventListener{

View File

@ -1,6 +1,5 @@
package com.darkweb.genesissearchengine.appManager.tabManager;
import android.graphics.Color;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@ -10,9 +9,7 @@ import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import androidx.core.content.res.ResourcesCompat;
import androidx.recyclerview.widget.RecyclerView;
import com.darkweb.genesissearchengine.appManager.activityContextManager;
import com.darkweb.genesissearchengine.helperManager.TopCropImageView;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
@ -28,7 +25,7 @@ public class tabAdapter extends RecyclerView.Adapter<tabAdapter.listViewHolder>
private ArrayList<tabRowModel> mModelList;
private eventObserver.eventListener mEvent;
private ArrayList<Integer> mSelectedList = new ArrayList<>();
private ArrayList<String> mSelectedList = new ArrayList<>();
tabAdapter(ArrayList<tabRowModel> model_list, eventObserver.eventListener event) {
this.mModelList = model_list;
@ -68,7 +65,7 @@ public class tabAdapter extends RecyclerView.Adapter<tabAdapter.listViewHolder>
mEvent.invokeObserver(null, tabEnums.eTabAdapterCallback.ON_CLEAR_TAB_BACKUP);
for(int mCounter=0;mCounter<mModelList.size();mCounter++){
if(mSelectedList.contains(mModelList.get(mCounter).getSession().getSessionID())){
mSelectedList.remove((Integer) mModelList.get(mCounter).getSession().getSessionID());
mSelectedList.remove((String) mModelList.get(mCounter).getSession().getSessionID());
mEvent.invokeObserver(Collections.singletonList(mCounter), tabEnums.eTabAdapterCallback.ON_REMOVE_TAB);
notifyItemRemoved(mCounter);
mCounter-=1;
@ -158,7 +155,7 @@ public class tabAdapter extends RecyclerView.Adapter<tabAdapter.listViewHolder>
}
}else {
for(int mCounter=0;mCounter<mSelectedList.size();mCounter++){
if(mSelectedList.get(mCounter) == mModelList.get(this.getLayoutPosition()).getSession().getSessionID()){
if(mSelectedList.get(mCounter).equals(mModelList.get(this.getLayoutPosition()).getSession().getSessionID())){
mSelectedList.remove(mCounter);
}
}

View File

@ -154,8 +154,9 @@ public class tabController extends AppCompatActivity
}
public void onRemoveView(int pIndex){
mHomeController.onCloseCurrentTab(mListModel.getList().get(pIndex).getSession());
onClearTabBackup();
onRemoveTab(pIndex);
//onRemoveTab(pIndex);
mTabAdapter.notifyItemRemoved(pIndex);
onShowUndoDialog();
}
@ -182,9 +183,9 @@ public class tabController extends AppCompatActivity
mtabViewController.onTrigger(tabEnums.eTabViewCommands.ON_SHOW_UNDO_DIALOG, null);
}
public void onTabRowChanged(int pId){
public void onTabRowChanged(String pId){
for(int mCounter=0; mCounter<mListModel.getList().size();mCounter++){
if(mListModel.getList().get(mCounter).getSession().getSessionID() == pId){
if(mListModel.getList().get(mCounter).getSession().getSessionID().equals(pId)){
mTabAdapter.notifyItemChanged(mCounter);
}
}

View File

@ -1,42 +1,63 @@
package com.darkweb.genesissearchengine.appManager.tabManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.se.omapi.Session;
import com.darkweb.genesissearchengine.appManager.activityContextManager;
import com.darkweb.genesissearchengine.appManager.homeManager.geckoSession;
import com.darkweb.genesissearchengine.dataManager.dataController;
import com.darkweb.genesissearchengine.dataManager.dataEnums;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import org.mozilla.geckoview.GeckoSession;
import org.mozilla.geckoview.GeckoView;
import java.sql.Blob;
import java.util.Calendar;
import java.util.UUID;
public class tabRowModel
{
/*Private Variables*/
private geckoSession mSession;
private int mId;
private GeckoView mGeckoView = null;
private String mId;
private Bitmap mBitmap = null;
private String mDate;
/*Initializations*/
public tabRowModel(geckoSession mSession,int mId) {
public tabRowModel(geckoSession mSession) {
this.mSession = mSession;
this.mId = mId;
this.mId = mSession.getSessionID();
this.mDate = helperMethod.getCurrentDate();
}
/*Helper Method*/
public tabRowModel(String pID, String pDate, byte[] pBlob) {
this.mId = pID;
this.mDate = pDate;
if(pBlob!=null){
mBitmap = BitmapFactory.decodeByteArray(pBlob,0,pBlob.length);
}
}
/*Helper Method*/
public geckoSession getSession()
{
return mSession;
}
public int getmId() {
return mId;
public void setSession(geckoSession pSession, String pURL, String pTitle)
{
mSession = pSession;
mSession.setTitle(pTitle);
mSession.setURL(pURL);
}
public void setId(int id) {
mId = id;
public String getmId() {
return mId;
}
public void setmBitmap(Bitmap pBitmap) {

View File

@ -4,17 +4,22 @@ public class enums
{
/*Settings Manager*/
public enum etype{
ON_UPDATE_VIEW_PIXEL,on_update_favicon,ON_UPDATE_TAB_TITLE,GECKO_SCROLL_CHANGED,
on_update_favicon,ON_UPDATE_TAB_TITLE,GECKO_SCROLL_CHANGED,
on_verify_selected_url_menu,FINDER_RESULT_CALLBACK,
welcome,abi_error, rate_failure,reported_success,bookmark, clear_tab,clear_history,clear_bookmark,report_url,rate_app,start_orbot,download_file,download_file_long_press,on_long_press_url,
cancel_welcome,ignore_abi,reload,connect_vpn,app_rated,download_file_manual,download_folder, open_link_new_tab,open_link_current_tab,copy_link,
url_triggered, url_triggered_new_tab,url_clear,url_clear_at,remove_from_database,is_empty,
on_close_sesson,on_long_press,on_long_press_with_link,on_bridge_mail,on_not_support, data_cleared,on_full_screen,on_handle_external_intent,on_update_suggestion_url,progress_update,recheck_orbot,on_url_load,on_playstore_load,back_list_empty,start_proxy,on_request_completed, on_update_history,on_update_suggestion,ON_UPDATE_TITLE_BAR,on_page_loaded,on_load_error,download_file_popup,on_init_ads,rate_application,search_update, open_new_tab
welcome, reload,download_folder,
url_triggered, url_triggered_new_tab,url_clear,url_clear_at,remove_from_database,is_empty,M_HOME_PAGE,M_PRELOAD_URL,
on_close_sesson,on_long_press, on_full_screen,on_handle_external_intent,on_update_suggestion_url,progress_update,recheck_orbot,on_url_load,on_playstore_load,back_list_empty,start_proxy,on_request_completed, on_update_history,on_update_suggestion,ON_UPDATE_TITLE_BAR,on_page_loaded,on_load_error,download_file_popup,on_init_ads,search_update, open_new_tab
}
/*General Enums*/
public static class Theme {
public static final int THEME_LIGHT = 0;
public static final int THEME_DARK = 1;
public static final int THEME_DEFAULT = 2;
}
public enum eMessageEnums {
M_DATA_CLEARED, M_NOT_SUPPORTED, M_BRIDGE_MAIL, M_LONG_PRESS_WITH_LINK, M_LONG_PRESS_URL, M_LONG_PRESS_DOWNLOAD, M_START_ORBOT, M_DOWNLOAD_FILE, M_RATE_APP, M_REPORT_URL, M_CLEAR_BOOKMARK, M_CLEAR_HISTORY, M_BOOKMARK, M_RATE_SUCCESS, M_RATE_FAILURE, M_ABI_ERROR, M_WELCOME, M_CANCEL_WELCOME, M_APP_RATED, M_DOWNLOAD_FILE_MANUAL, M_OPEN_LINK_CURRENT_TAB, M_COPY_LINK, M_OPEN_LINK_NEW_TAB, M_CLEAR_TAB, M_CONNECT_VPN, M_IGNORE_ABI, M_RATE_APPLICATION
}
}

View File

@ -49,10 +49,21 @@ public class dataController
{
databaseController.getInstance().execSQL("delete from history where 1",null);
}
if(status.sRestoreTabs){
mTabModel.initializeTab(databaseController.getInstance().selectTabs());
activityContextManager.getInstance().getHomeController().initTabCount();
}else{
invokeTab(dataEnums.eTabCommands.M_CLEAR_TAB, null);
}
}
/*Recieving History*/
public Object invokeHistory(dataEnums.eHistoryCommands p_commands, List<Object> p_data){
if(p_commands == dataEnums.eHistoryCommands.M_ADD_HISTORY){
mTabModel.onTrigger(dataEnums.eTabCommands.M_UPDATE_TAB, p_data);
}
if(p_commands.equals(dataEnums.eHistoryCommands.M_LOAD_MORE_HISTORY)){
int m_history_size = (int) mHistoryModel.onTrigger(dataEnums.eHistoryCommands.M_HISTORY_SIZE,null);
return mHistoryModel.onTrigger(p_commands, Collections.singletonList(databaseController.getInstance().selectHistory(m_history_size+1,constants.CONST_FETCHABLE_LIST_SIZE)));

View File

@ -24,6 +24,6 @@ public class dataEnums
}
public enum eTabCommands{
M_ADD_TAB, M_CLEAR_TAB, M_CLOSE_TAB_PARAMETERIZED, CLOSE_TAB, GET_TAB, GET_CURRENT_TAB, GET_TOTAL_TAB, MOVE_TAB_TO_TOP, M_UPDATE_PIXEL
M_UPDATE_TAB, M_ADD_TAB, M_CLEAR_TAB, CLOSE_TAB, GET_TAB, GET_CURRENT_TAB, GET_LAST_TAB, GET_TOTAL_TAB, MOVE_TAB_TO_TOP, M_UPDATE_PIXEL, M_HOME_PAGE
}
}

View File

@ -1,36 +1,62 @@
package com.darkweb.genesissearchengine.dataManager;
import android.annotation.SuppressLint;
import android.content.ContentValues;
import android.graphics.Bitmap;
import android.os.Handler;
import com.darkweb.genesissearchengine.appManager.databaseManager.databaseController;
import com.darkweb.genesissearchengine.appManager.homeManager.geckoSession;
import com.darkweb.genesissearchengine.appManager.tabManager.tabRowModel;
import com.google.android.gms.ads.AdSize;
import org.mozilla.geckoview.GeckoResult;
import java.io.ByteArrayOutputStream;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.Locale;
@SuppressLint("CommitPrefEdits")
class tabDataModel
{
private ArrayList<tabRowModel> mTabs = new ArrayList<>();
/*List Tabs*/
void addTabs(geckoSession mSession,boolean isHardCopy){
if(!isHardCopy){
mTabs.add(0,new tabRowModel(mSession,mTabs.size()));
}
else {
mTabs.add(0,new tabRowModel(mSession,mTabs.size()));
}
}
ArrayList<tabRowModel> getTab(){
return mTabs;
}
/*List Tabs*/
void initializeTab(ArrayList<tabRowModel> pTabMdel){
mTabs.addAll(pTabMdel);
}
geckoSession getHomePage(){
for(int counter = 0; counter< mTabs.size(); counter++){
if(mTabs.get(counter).getSession().getCurrentURL().equals("https://boogle.store/")){
moveTabToTop(mTabs.get(counter).getSession());
return mTabs.get(0).getSession();
}
}
return null;
}
void addTabs(geckoSession mSession,boolean pIsDataSavable){
tabRowModel mTabModel = new tabRowModel(mSession);
mTabs.add(0,mTabModel);
if(mTabs.size()>20){
closeTab(mTabs.get(mTabs.size()-1).getSession());
}
if(pIsDataSavable){
String[] params = new String[2];
params[0] = mTabModel.getSession().getTitle();
params[1] = mTabModel.getSession().getCurrentURL();
String m_date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS", Locale.ENGLISH).format(Calendar.getInstance().getTime());
databaseController.getInstance().execSQL("INSERT INTO tab(mid,date,title,url) VALUES('"+ mTabModel.getmId() +"','" + m_date + "',?,?);",params);
}
}
void clearTab() {
int size = mTabs.size();
for(int counter = 0; counter< size; counter++){
@ -40,34 +66,54 @@ class tabDataModel
if(mTabs.size()>0){
mTabs.get(0).getSession().closeSession();
}
databaseController.getInstance().execSQL("DELETE FROM tab WHERE 1",null);
}
void closeTab(geckoSession mSession) {
for(int counter = 0; counter< mTabs.size(); counter++){
if(mTabs.get(counter).getSession().getSessionID()==mSession.getSessionID())
if(mTabs.get(counter).getSession().getSessionID().equals(mSession.getSessionID()))
{
databaseController.getInstance().execSQL("DELETE FROM tab WHERE mid='" + mTabs.get(counter).getmId() + "'",null);
mTabs.remove(counter);
break;
}
else {
mTabs.get(counter).setId(mTabs.get(counter).getmId()+1);
}
}
}
void moveTabToTop(geckoSession mSession) {
for(int counter = 0; counter< mTabs.size(); counter++){
if(mTabs.get(counter).getSession().getSessionID()==mSession.getSessionID())
if(mTabs.get(counter).getSession().getSessionID().equals(mSession.getSessionID()))
{
/* BIG PROBLEM */
mTabs.remove(counter);
mTabs.add(0,new tabRowModel(mSession,0));
String m_date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS", Locale.ENGLISH).format(Calendar.getInstance().getTime());
databaseController.getInstance().execSQL("UPDATE tab SET date = '" + m_date + "' WHERE mid='"+mTabs.get(counter).getmId() + "'",null);
mTabs.add(0,mTabs.remove(counter));
break;
}else {
mTabs.get(counter).setId(mTabs.get(counter).getmId()+1);
}
}
}
boolean updateTab(String mSessionID) {
for(int counter = 0; counter< mTabs.size(); counter++){
if(mTabs.get(counter).getSession().getSessionID().equals(mSessionID))
{
String[] params = new String[2];
params[0] = mTabs.get(counter).getSession().getTitle();
params[1] = mTabs.get(counter).getSession().getCurrentURL();
String m_date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS", Locale.ENGLISH).format(Calendar.getInstance().getTime());
databaseController.getInstance().execSQL("UPDATE tab SET date = '" + m_date + "' , url = ? , title = ? WHERE mid='"+mTabs.get(counter).getmId() + "'",params);
return true;
}
}
return false;
}
tabRowModel getCurrentTab(){
if(mTabs.size()>0){
return mTabs.get(0);
@ -77,17 +123,38 @@ class tabDataModel
}
}
public void updatePixels(int pSessionID, GeckoResult<Bitmap> pBitmapManager){
tabRowModel getLastTab(){
if(mTabs.size()>0){
return mTabs.get(mTabs.size()-1);
}
else {
return null;
}
}
public void updatePixels(String pSessionID, GeckoResult<Bitmap> pBitmapManager){
for(int counter = 0; counter< mTabs.size(); counter++){
if(mTabs.get(counter).getSession().getSessionID()==pSessionID)
if(mTabs.get(counter).getSession().getSessionID().equals(pSessionID))
{
final Handler handler = new Handler();
int finalCounter = counter;
int finalCounter1 = counter;
handler.postDelayed(() ->
{
try {
Bitmap mBitmap = pBitmapManager.poll(0);
mTabs.get(finalCounter).setmBitmap(mBitmap);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
mBitmap.compress(Bitmap.CompressFormat.PNG, 100, bos);
byte[] mThumbnail = bos.toByteArray();
ContentValues mContentValues = new ContentValues();
mContentValues.put("mThumbnail", mThumbnail);
databaseController.getInstance().execTab("tab",mContentValues, mTabs.get(finalCounter1).getmId());
} catch (Throwable throwable) {
throwable.printStackTrace();
}
@ -108,6 +175,9 @@ class tabDataModel
else if(p_commands == dataEnums.eTabCommands.GET_CURRENT_TAB){
return getCurrentTab();
}
else if(p_commands == dataEnums.eTabCommands.GET_LAST_TAB){
return getLastTab();
}
else if(p_commands == dataEnums.eTabCommands.MOVE_TAB_TO_TOP){
moveTabToTop((geckoSession)p_data.get(0));
}
@ -117,17 +187,20 @@ class tabDataModel
else if(p_commands == dataEnums.eTabCommands.M_CLEAR_TAB){
clearTab();
}
else if(p_commands == dataEnums.eTabCommands.M_CLOSE_TAB_PARAMETERIZED){
closeTab((geckoSession)p_data.get(0));
}
else if(p_commands == dataEnums.eTabCommands.M_ADD_TAB){
addTabs((geckoSession)p_data.get(0), (boolean)p_data.get(1));
}
else if(p_commands == dataEnums.eTabCommands.M_UPDATE_TAB){
updateTab((String) p_data.get(1));
}
else if(p_commands == dataEnums.eTabCommands.GET_TAB){
return getTab();
}
else if(p_commands == dataEnums.eTabCommands.M_UPDATE_PIXEL){
updatePixels((int)p_data.get(0), (GeckoResult<Bitmap>)p_data.get(1));
updatePixels((String)p_data.get(0), (GeckoResult<Bitmap>)p_data.get(1));
}
else if(p_commands == dataEnums.eTabCommands.M_HOME_PAGE){
return getHomePage();
}
return null;

View File

@ -13,7 +13,6 @@ import android.graphics.Color;
import android.graphics.Point;
import android.graphics.drawable.ColorDrawable;
import android.net.Uri;
import android.os.Build;
import android.os.Vibrator;
import android.text.SpannableString;
import android.text.Spanned;
@ -29,33 +28,25 @@ import android.view.inputmethod.InputMethodManager;
import android.widget.ActionMenuView;
import android.widget.PopupWindow;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.app.ShareCompat;
import androidx.core.content.ContextCompat;
import com.darkweb.genesissearchengine.constants.keys;
import com.darkweb.genesissearchengine.dataManager.dataController;
import com.darkweb.genesissearchengine.dataManager.dataEnums;
import com.example.myapplication.BuildConfig;
import com.example.myapplication.R;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URL;
import java.net.URLConnection;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import javax.net.ssl.HttpsURLConnection;
import static android.content.Context.LAYOUT_INFLATER_SERVICE;
import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
import static android.content.Intent.FLAG_ACTIVITY_NO_ANIMATION;
@ -68,7 +59,7 @@ public class helperMethod
if(pURL.equals("about:blank")){
return pURL;
}
URL weburl = null;
URL weburl;
try
{
weburl = new URL(pURL);
@ -77,12 +68,6 @@ public class helperMethod
if (result instanceof HttpsURLConnection) {
}
else if (result instanceof HttpURLConnection) {
// http
}
else {
// null or something bad happened
}
} catch (IOException e)
{
e.printStackTrace();
@ -97,6 +82,17 @@ public class helperMethod
return pURL;
}
public static String createRandomID(){
return UUID.randomUUID().toString();
}
public static int getScreenHeight(AppCompatActivity context) {
Display display = context.getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getRealSize(size);
return size.y;
}
public static SpannableString urlDesigner(String url, Context pContext){
if (url.contains("https://"))
@ -133,7 +129,7 @@ public class helperMethod
public static void sendBridgeEmail(Context context){
Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
String aEmailList[] = { "bridges@torproject.org"};
String[] aEmailList = { "bridges@torproject.org"};
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, aEmailList);
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "get transport");
emailIntent.setType("plain/text");
@ -151,11 +147,6 @@ public class helperMethod
}
}
public static void rateApp(AppCompatActivity context){
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.PROXY_IS_APP_RATED,true));
context.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=com.darkweb.genesissearchengine")));
}
public static void shareApp(AppCompatActivity context) {
ShareCompat.IntentBuilder.from(context)
.setType("text/plain")
@ -199,11 +190,6 @@ public class helperMethod
}
}
public static void openLocaleSettings(Context context){
Intent i = new Intent(android.provider.Settings.ACTION_LOCALE_SETTINGS);
context.startActivity(i);
}
static String getHost(String link){
URL url;
try
@ -244,7 +230,7 @@ public class helperMethod
public static String urlWithoutPrefix(String url){
try{
url = url.substring(url.indexOf(getHost(url)),url.length()).replace("www.","").replace("m.","");
url = url.substring(url.indexOf(getHost(url))).replace("www.","").replace("m.","");
return url;
}catch (Exception ex){
return url;
@ -292,15 +278,6 @@ public class helperMethod
pContext.startActivity(intent);
}
public static String ellipsize(String input, int maxLength) {
String ellip = "...";
if (input == null || input.length() <= maxLength
|| input.length() < ellip.length()) {
return input;
}
return input.substring(0, maxLength - ellip.length()).concat(ellip);
}
public static String getDomainName(String url)
{
try{
@ -320,11 +297,6 @@ public class helperMethod
return params_loading;
}
@SuppressWarnings("ConstantConditions")
public static boolean isBuildValid (){
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");
}
public static void openPlayStore(String packageName,AppCompatActivity context)
{
Intent intent = new Intent(Intent.ACTION_VIEW);
@ -347,13 +319,6 @@ public class helperMethod
return (int) (dp * Resources.getSystem().getDisplayMetrics().density);
}
public static int getScreenHeight(AppCompatActivity context) {
Display display = context.getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getRealSize(size);
return size.y;
}
public static int getStatusBarHeight(Context context) {
int result = 0;
int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android");
@ -395,20 +360,14 @@ public class helperMethod
}
}
if (!listPermissionsNeeded.isEmpty()) {
ActivityCompat.requestPermissions(context, listPermissionsNeeded.toArray(new String[listPermissionsNeeded.size()]), 100);
ActivityCompat.requestPermissions(context, listPermissionsNeeded.toArray(new String[0]), 100);
return false;
}
return true;
}
public static void clearAppData(Context context) {
Intent intent = new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
intent.setData(Uri.parse("package:" + context.getPackageName()));
context.startActivity(intent);
}
public static String getCurrentDate(){
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
@SuppressLint("SimpleDateFormat") SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
Date date = new Date();
sdf.applyPattern("E | MMM dd,yyyy");
return sdf.format(date);
@ -429,10 +388,7 @@ public class helperMethod
}
public static PopupWindow onCreateMenu(View p_view, int p_layout) {
PopupWindow popupWindow = null;
if(popupWindow!=null){
popupWindow.dismiss();
}
PopupWindow popupWindow;
LayoutInflater layoutInflater
= (LayoutInflater) p_view.getContext()

View File

@ -15,6 +15,7 @@ class adManager
private AppCompatActivity mAppContext;
private eventObserver.eventListener mEvent;
private AdView mBannerAds;
private boolean bannerAdsLoading = false;
private boolean bannerAdsLoaded = false;
@ -56,7 +57,6 @@ class adManager
@Override
public void onAdFailedToLoad(int errorCode) {
//Log.i("Failure___",""+errorCode);
}
@Override
@ -82,10 +82,9 @@ class adManager
private void initializeBannerAds(){
if(!sPaidStatus){
AdRequest request = new AdRequest.Builder().addTestDevice("E731DE5933CDC0E42B335787CE3E23EF").build();
AdRequest request = new AdRequest.Builder().build();
mBannerAds.loadAd(request);
admobListeners();
}
}
}

View File

@ -1,34 +0,0 @@
package com.darkweb.genesissearchengine.pluginManager;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
/*
public class exitManager extends Service {
@Override
public IBinder onBind(Intent intent) {
return null;
}
public exitManager(){
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return START_NOT_STICKY;
}
@Override
public void onDestroy() {
super.onDestroy();
pluginController.getInstance().proxyManagerExitInvoke();
}
@Override
public void onTaskRemoved(Intent rootIntent) {
stopSelf();
pluginController.getInstance().proxyManagerExitInvoke();
}
}*/

View File

@ -17,7 +17,6 @@ class firebaseManager
firebaseManager(AppCompatActivity app_context, eventObserver.eventListener event){
this.mAppContext = app_context;
initialize();
}
@ -36,5 +35,4 @@ class firebaseManager
FlurryAgent.logEvent(value);
}
}
}

View File

@ -5,16 +5,18 @@ import android.app.Dialog;
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.InsetDrawable;
import android.net.Uri;
import android.os.Handler;
import android.view.Gravity;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.RatingBar;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import com.darkweb.genesissearchengine.appManager.activityContextManager;
import com.darkweb.genesissearchengine.constants.constants;
@ -27,7 +29,6 @@ import com.example.myapplication.R;
import java.io.File;
import java.util.Collections;
import java.util.List;
import static android.view.WindowManager.LayoutParams.FLAG_DIM_BEHIND;
class messageManager
{
@ -43,7 +44,7 @@ class messageManager
/*Initializations*/
private void initializeDialog(int pLayout,int pGravity,int pFlag){
private void initializeDialog(int pLayout, int pGravity){
if(dialog!=null && dialog.isShowing()){
dialog.dismiss();
}
@ -63,7 +64,6 @@ class messageManager
dialog.setCancelable(true);
dialog.setContentView(pLayout);
dialog.show();
//dialog.getWindow().clearFlags(pFlag);
}
messageManager(eventObserver.eventListener event)
@ -74,33 +74,33 @@ class messageManager
/*Helper Methods*/
private void welcomeMessage()
{
initializeDialog(R.layout.popup_welcome, Gravity.CENTER, FLAG_DIM_BEHIND);
initializeDialog(R.layout.popup_welcome, Gravity.CENTER);
dialog.findViewById(R.id.pOption1).setOnClickListener(v -> {
event.invokeObserver(Collections.singletonList(constants.CONST_BLACK_MARKET_URL), enums.etype.welcome);
event.invokeObserver(Collections.singletonList(constants.CONST_BLACK_MARKET_URL), enums.eMessageEnums.M_WELCOME);
dialog.dismiss();
});
dialog.findViewById(R.id.pOption2).setOnClickListener(v -> {
event.invokeObserver(Collections.singletonList(constants.CONST_LEAKED_DOCUMENT_URL), enums.etype.welcome);
event.invokeObserver(Collections.singletonList(constants.CONST_LEAKED_DOCUMENT_URL), enums.eMessageEnums.M_WELCOME);
dialog.dismiss();
});
dialog.findViewById(R.id.pOption3).setOnClickListener(v -> {
event.invokeObserver(Collections.singletonList(constants.CONST_NEWS_URL), enums.etype.welcome);
event.invokeObserver(Collections.singletonList(constants.CONST_NEWS_URL), enums.eMessageEnums.M_WELCOME);
dialog.dismiss();
});
dialog.findViewById(R.id.pOption4).setOnClickListener(v -> {
event.invokeObserver(Collections.singletonList(constants.CONST_SOFTWARE_URL), enums.etype.welcome);
event.invokeObserver(Collections.singletonList(constants.CONST_SOFTWARE_URL), enums.eMessageEnums.M_WELCOME);
dialog.dismiss();
});
dialog.findViewById(R.id.pOption5).setOnClickListener(v -> {
event.invokeObserver(Collections.singletonList(constants.CONST_SOFTWARE_FINANCE), enums.etype.welcome);
event.invokeObserver(Collections.singletonList(constants.CONST_SOFTWARE_FINANCE), enums.eMessageEnums.M_WELCOME);
dialog.dismiss();
});
dialog.findViewById(R.id.pOption6).setOnClickListener(v -> {
event.invokeObserver(Collections.singletonList(constants.CONST_COMMUNITIES), enums.etype.welcome);
event.invokeObserver(Collections.singletonList(constants.CONST_COMMUNITIES), enums.eMessageEnums.M_WELCOME);
dialog.dismiss();
});
dialog.findViewById(R.id.pDontShowAgain).setOnClickListener(v -> {
event.invokeObserver(null, enums.etype.cancel_welcome);
event.invokeObserver(null, enums.eMessageEnums.M_CANCEL_WELCOME);
dialog.dismiss();
});
}
@ -108,7 +108,7 @@ class messageManager
@SuppressLint("QueryPermissionsNeeded")
private void abiError()
{
initializeDialog(R.layout.popup_abi_error, Gravity.CENTER, FLAG_DIM_BEHIND);
initializeDialog(R.layout.popup_abi_error, Gravity.CENTER);
dialog.findViewById(R.id.pOption1).setOnClickListener(v -> {
dialog.dismiss();
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(constants.CONST_GENESIS_UPDATE_URL + status.sAppCurrentABI));
@ -119,6 +119,7 @@ class messageManager
helperMethod.showToastMessage("Not Supported", mContext);
}
});
dialog.findViewById(R.id.pOption2).setOnClickListener(v -> {
dialog.dismiss();
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(constants.CONST_PLAYSTORE_URL));
@ -133,7 +134,7 @@ class messageManager
private void rateFailure()
{
initializeDialog(R.layout.popup_rate_failure, Gravity.CENTER, FLAG_DIM_BEHIND);
initializeDialog(R.layout.popup_rate_failure, Gravity.CENTER);
dialog.findViewById(R.id.pDismiss).setOnClickListener(v -> dialog.dismiss());
dialog.findViewById(R.id.pNext).setOnClickListener(v -> {
dialog.dismiss();
@ -143,7 +144,7 @@ class messageManager
helperMethod.sendRateEmail(mContext);
}
catch (Exception ex){
createMessage(mContext,Collections.singletonList(mContext.getString(R.string.ALERT_NOT_SUPPORTED_MESSAGE)),enums.etype.on_not_support);
createMessage(mContext,Collections.singletonList(mContext.getString(R.string.ALERT_NOT_SUPPORTED_MESSAGE)),enums.eMessageEnums.M_NOT_SUPPORTED);
}
};
handler.postDelayed(runnable, 1000);
@ -152,27 +153,31 @@ class messageManager
private void reportedSuccessfully()
{
initializeDialog(R.layout.popup_reported_successfully, Gravity.CENTER, FLAG_DIM_BEHIND);
initializeDialog(R.layout.popup_reported_successfully, Gravity.CENTER);
dialog.findViewById(R.id.pNext).setOnClickListener(v -> dialog.dismiss());
}
private void notSupportMessage()
{
initializeDialog(R.layout.popup_not_supported, Gravity.BOTTOM, FLAG_DIM_BEHIND);
initializeDialog(R.layout.popup_not_supported, Gravity.BOTTOM);
dialog.findViewById(R.id.pDismiss).setOnClickListener(v -> dialog.dismiss());
}
private void dataClearedSuccessfully()
{
initializeDialog(R.layout.popup_data_cleared, Gravity.BOTTOM, FLAG_DIM_BEHIND);
dialog.findViewById(R.id.pDismiss).setOnClickListener(v -> dialog.dismiss());
initializeDialog(R.layout.popup_data_cleared, Gravity.BOTTOM);
ColorDrawable back = new ColorDrawable(Color.TRANSPARENT);
InsetDrawable inset = new InsetDrawable(back, 0,0,0,helperMethod.pxFromDp(25));
dialog.getWindow().setBackgroundDrawable(inset);
dialog.findViewById(R.id.pNext).setOnClickListener(v -> dialog.dismiss());
}
@SuppressLint("ResourceType")
private void bookmark()
{
initializeDialog(R.layout.popup_create_bookmark, Gravity.CENTER, FLAG_DIM_BEHIND);
initializeDialog(R.layout.popup_create_bookmark, Gravity.CENTER);
EditText mBoomMarkTitle = dialog.findViewById(R.id.pBookmark);
dialog.setOnDismissListener(dialog -> {
final Handler handler = new Handler();
@ -194,38 +199,38 @@ class messageManager
dialog.findViewById(R.id.pNext).setOnClickListener(v -> {
dialog.dismiss();
helperMethod.hideKeyboard(mContext);
event.invokeObserver(Collections.singletonList(data.get(0).toString().replace("genesis.onion","boogle.store")+"split"+((EditText)dialog.findViewById(R.id.pBookmark)).getText().toString()), enums.etype.bookmark);
event.invokeObserver(Collections.singletonList(data.get(0).toString().replace("genesis.onion","boogle.store")+"split"+((EditText)dialog.findViewById(R.id.pBookmark)).getText().toString()), enums.eMessageEnums.M_BOOKMARK);
});
}
private void clearHistory()
{
initializeDialog(R.layout.popup_clear_history, Gravity.CENTER, FLAG_DIM_BEHIND);
initializeDialog(R.layout.popup_clear_history, Gravity.CENTER);
dialog.findViewById(R.id.pDismiss).setOnClickListener(v -> dialog.dismiss());
dialog.findViewById(R.id.pNext).setOnClickListener(v -> {
dialog.dismiss();
event.invokeObserver(null, enums.etype.clear_history);
event.invokeObserver(null, enums.eMessageEnums.M_CLEAR_HISTORY);
});
}
private void clearBookmark()
{
initializeDialog(R.layout.popup_clear_bookmark, Gravity.CENTER, FLAG_DIM_BEHIND);
initializeDialog(R.layout.popup_clear_bookmark, Gravity.CENTER);
dialog.findViewById(R.id.pDismiss).setOnClickListener(v -> dialog.dismiss());
dialog.findViewById(R.id.pNext).setOnClickListener(v -> {
dialog.dismiss();
event.invokeObserver(null, enums.etype.clear_bookmark);
event.invokeObserver(null, enums.eMessageEnums.M_CLEAR_BOOKMARK);
});
}
private void reportURL()
{
initializeDialog(R.layout.popup_report_url, Gravity.CENTER, FLAG_DIM_BEHIND);
initializeDialog(R.layout.popup_report_url, Gravity.CENTER);
dialog.findViewById(R.id.pDismiss).setOnClickListener(v -> dialog.dismiss());
dialog.findViewById(R.id.pNext).setOnClickListener(v -> {
dialog.dismiss();
final Handler handler = new Handler();
Runnable runnable = () -> createMessage(mContext,Collections.singletonList(strings.GENERIC_EMPTY_STR), enums.etype.reported_success);
Runnable runnable = () -> createMessage(mContext,Collections.singletonList(strings.GENERIC_EMPTY_STR), enums.eMessageEnums.M_RATE_SUCCESS);
handler.postDelayed(runnable, 1000);
});
}
@ -233,12 +238,12 @@ class messageManager
@SuppressLint("QueryPermissionsNeeded")
private void rateApp()
{
initializeDialog(R.layout.popup_rate_us, Gravity.CENTER, FLAG_DIM_BEHIND);
initializeDialog(R.layout.popup_rate_us, Gravity.CENTER);
dialog.findViewById(R.id.pDismiss).setOnClickListener(v -> dialog.dismiss());
dialog.findViewById(R.id.pNext).setOnClickListener(v -> {
RatingBar mRatingBar = dialog.findViewById(R.id.pRating);
if(mRatingBar.getRating()>=3){
event.invokeObserver(null, enums.etype.app_rated);
event.invokeObserver(null, enums.eMessageEnums.M_APP_RATED);
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=com.darkweb.genesissearchengine"));
if(intent.resolveActivity(mContext.getPackageManager()) != null)
{
@ -248,9 +253,9 @@ class messageManager
}
dialog.dismiss();
}else if(mRatingBar.getRating()>0) {
event.invokeObserver(null, enums.etype.app_rated);
event.invokeObserver(null, enums.eMessageEnums.M_APP_RATED);
final Handler handler = new Handler();
handler.postDelayed(() -> createMessage(mContext,Collections.singletonList(strings.GENERIC_EMPTY_STR), enums.etype.rate_failure), 1000);
handler.postDelayed(() -> createMessage(mContext,Collections.singletonList(strings.GENERIC_EMPTY_STR), enums.eMessageEnums.M_RATE_FAILURE), 1000);
dialog.dismiss();
}
});
@ -258,7 +263,7 @@ class messageManager
private void downloadFile()
{
initializeDialog(R.layout.popup_download_file, Gravity.BOTTOM, FLAG_DIM_BEHIND);
initializeDialog(R.layout.popup_download_file, Gravity.BOTTOM);
((TextView)dialog.findViewById(R.id.pDescription)).setText((mContext.getString(R.string.ALERT_DOWNLOAD_MESSAGE) + data.get(0)));
dialog.findViewById(R.id.pDismiss).setOnClickListener(v -> dialog.dismiss());
}
@ -275,23 +280,23 @@ class messageManager
size = 235;
}
initializeDialog(R.layout.popup_file_longpress, Gravity.CENTER, FLAG_DIM_BEHIND);
initializeDialog(R.layout.popup_file_longpress, Gravity.CENTER);
((TextView)dialog.findViewById(R.id.pDescription)).setText((title + " | " + data.get(0).toString().substring(0,size)+"..."));
dialog.findViewById(R.id.pDismiss).setOnClickListener(v -> dialog.dismiss());
dialog.findViewById(R.id.pOption1).setOnClickListener(v -> {
event.invokeObserver(Collections.singletonList(data.get(0)), enums.etype.download_file_manual);
event.invokeObserver(Collections.singletonList(data.get(0)), enums.eMessageEnums.M_DOWNLOAD_FILE_MANUAL);
dialog.dismiss();
});
dialog.findViewById(R.id.pOption2).setOnClickListener(v -> {
event.invokeObserver(Collections.singletonList(data.get(0)), enums.etype.open_link_current_tab);
event.invokeObserver(Collections.singletonList(data.get(0)), enums.eMessageEnums.M_OPEN_LINK_CURRENT_TAB);
dialog.dismiss();
});
dialog.findViewById(R.id.pOption3).setOnClickListener(v -> {
event.invokeObserver(Collections.singletonList(data.get(0)), enums.etype.copy_link);
event.invokeObserver(Collections.singletonList(data.get(0)), enums.eMessageEnums.M_COPY_LINK);
dialog.dismiss();
});
dialog.findViewById(R.id.pOption3).setOnClickListener(v -> {
event.invokeObserver(Collections.singletonList(data.get(0)), enums.etype.copy_link);
event.invokeObserver(Collections.singletonList(data.get(0)), enums.eMessageEnums.M_COPY_LINK);
dialog.dismiss();
});
}
@ -305,19 +310,19 @@ class messageManager
size = 235;
}
initializeDialog(R.layout.popup_url_longpress, Gravity.CENTER, FLAG_DIM_BEHIND);
initializeDialog(R.layout.popup_url_longpress, Gravity.CENTER);
((TextView)dialog.findViewById(R.id.pDescription)).setText((title + data.get(0).toString().substring(0,size)+"..."));
dialog.findViewById(R.id.pDismiss).setOnClickListener(v -> dialog.dismiss());
dialog.findViewById(R.id.pOption1).setOnClickListener(v -> {
event.invokeObserver(Collections.singletonList(data.get(0)), enums.etype.open_link_new_tab);
event.invokeObserver(Collections.singletonList(data.get(0)), enums.eMessageEnums.M_OPEN_LINK_NEW_TAB);
dialog.dismiss();
});
dialog.findViewById(R.id.pOption2).setOnClickListener(v -> {
event.invokeObserver(Collections.singletonList(data.get(0)), enums.etype.open_link_current_tab);
event.invokeObserver(Collections.singletonList(data.get(0)), enums.eMessageEnums.M_OPEN_LINK_CURRENT_TAB);
dialog.dismiss();
});
dialog.findViewById(R.id.pOption3).setOnClickListener(v -> {
event.invokeObserver(Collections.singletonList(data.get(0)), enums.etype.copy_link);
event.invokeObserver(Collections.singletonList(data.get(0)), enums.eMessageEnums.M_COPY_LINK);
dialog.dismiss();
});
}
@ -350,49 +355,49 @@ class messageManager
mTitle = data.get(0).toString().substring(0,size)+"...";
}
initializeDialog(R.layout.popup_download_full, Gravity.CENTER, FLAG_DIM_BEHIND);
initializeDialog(R.layout.popup_download_full, Gravity.CENTER);
((TextView)dialog.findViewById(R.id.pHeader)).setText(mTitle);
((TextView)dialog.findViewById(R.id.pDescription)).setText((data_local));
dialog.findViewById(R.id.pDismiss).setOnClickListener(v -> dialog.dismiss());
dialog.findViewById(R.id.pOption1).setOnClickListener(v -> {
event.invokeObserver(Collections.singletonList(data.get(0)), enums.etype.open_link_new_tab);
event.invokeObserver(Collections.singletonList(data.get(0)), enums.eMessageEnums.M_OPEN_LINK_NEW_TAB);
dialog.dismiss();
});
dialog.findViewById(R.id.pOption2).setOnClickListener(v -> {
event.invokeObserver(Collections.singletonList(data.get(0)), enums.etype.open_link_current_tab);
event.invokeObserver(Collections.singletonList(data.get(0)), enums.eMessageEnums.M_OPEN_LINK_CURRENT_TAB);
dialog.dismiss();
});
dialog.findViewById(R.id.pOption3).setOnClickListener(v -> {
event.invokeObserver(Collections.singletonList(data.get(0)), enums.etype.copy_link);
event.invokeObserver(Collections.singletonList(data.get(0)), enums.eMessageEnums.M_COPY_LINK);
dialog.dismiss();
});
dialog.findViewById(R.id.pOption3).setOnClickListener(v -> {
event.invokeObserver(Collections.singletonList(data.get(0)), enums.etype.copy_link);
event.invokeObserver(Collections.singletonList(data.get(0)), enums.eMessageEnums.M_COPY_LINK);
dialog.dismiss();
});
dialog.findViewById(R.id.pOption3).setOnClickListener(v -> {
event.invokeObserver(Collections.singletonList(data.get(0)), enums.etype.copy_link);
event.invokeObserver(Collections.singletonList(data.get(0)), enums.eMessageEnums.M_COPY_LINK);
dialog.dismiss();
});
dialog.findViewById(R.id.pOption3).setOnClickListener(v -> {
event.invokeObserver(Collections.singletonList(data.get(0)), enums.etype.copy_link);
event.invokeObserver(Collections.singletonList(data.get(0)), enums.eMessageEnums.M_COPY_LINK);
dialog.dismiss();
});
dialog.findViewById(R.id.pOption3).setOnClickListener(v -> {
event.invokeObserver(Collections.singletonList(data.get(0)), enums.etype.copy_link);
event.invokeObserver(Collections.singletonList(data.get(0)), enums.eMessageEnums.M_COPY_LINK);
dialog.dismiss();
});
}
private void startingOrbotInfo()
{
initializeDialog(R.layout.popup_starting_orbot_info, Gravity.BOTTOM, FLAG_DIM_BEHIND);
initializeDialog(R.layout.popup_starting_orbot_info, Gravity.BOTTOM);
dialog.findViewById(R.id.pDismiss).setOnClickListener(v -> dialog.dismiss());
}
private void sendBridgeMail()
{
initializeDialog(R.layout.popup_bridge_mail, Gravity.CENTER, FLAG_DIM_BEHIND);
initializeDialog(R.layout.popup_bridge_mail, Gravity.CENTER);
dialog.findViewById(R.id.pDismiss).setOnClickListener(v -> dialog.dismiss());
dialog.findViewById(R.id.pNext).setOnClickListener(v -> {
dialog.dismiss();
@ -402,7 +407,7 @@ class messageManager
helperMethod.sendBridgeEmail(mContext);
}
catch (Exception ex){
createMessage(mContext,Collections.singletonList(mContext.getString(R.string.ALERT_NOT_SUPPORTED_MESSAGE)),enums.etype.on_not_support);
createMessage(mContext,Collections.singletonList(mContext.getString(R.string.ALERT_NOT_SUPPORTED_MESSAGE)),enums.eMessageEnums.M_NOT_SUPPORTED);
}
};
handler.postDelayed(runnable, 1000);
@ -417,78 +422,78 @@ class messageManager
/*External Helper Methods*/
void createMessage(AppCompatActivity app_context, List<Object> data, enums.etype type)
void createMessage(AppCompatActivity app_context, List<Object> data, enums.eMessageEnums type)
{
this.mContext = app_context;
this.data = data;
switch (type)
{
case welcome:
case M_WELCOME:
welcomeMessage();
break;
case abi_error:
case M_ABI_ERROR:
abiError();
break;
case rate_failure:
case M_RATE_FAILURE:
rateFailure();
break;
case reported_success:
case M_RATE_SUCCESS:
reportedSuccessfully();
break;
case bookmark:
case M_BOOKMARK:
bookmark();
break;
case clear_history:
case M_CLEAR_HISTORY:
clearHistory();
break;
case clear_bookmark:
case M_CLEAR_BOOKMARK:
clearBookmark();
break;
case report_url:
case M_REPORT_URL:
reportURL();
break;
case rate_app:
case M_RATE_APP:
rateApp();
break;
case download_file:
case M_DOWNLOAD_FILE:
downloadFile();
break;
case start_orbot:
case M_START_ORBOT:
startingOrbotInfo();
break;
case download_file_long_press:
case M_LONG_PRESS_DOWNLOAD:
downloadFileLongPress();
break;
case on_long_press_url:
case M_LONG_PRESS_URL:
openURLLongPress();
break;
case on_long_press_with_link:
case M_LONG_PRESS_WITH_LINK:
popupDownloadFull();
break;
case on_bridge_mail:
case M_BRIDGE_MAIL:
sendBridgeMail();
break;
case on_not_support:
case M_NOT_SUPPORTED:
notSupportMessage();
break;
case data_cleared:
case M_DATA_CLEARED:
dataClearedSuccessfully();
break;
}

View File

@ -3,8 +3,12 @@ package com.darkweb.genesissearchengine.pluginManager;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import androidx.appcompat.app.AppCompatActivity;
import org.mozilla.gecko.PrefsHelper;
import org.torproject.android.service.OrbotService;
import org.torproject.android.service.util.Prefs;
import org.torproject.android.service.wrapper.orbotLocalConstants;
import java.util.Arrays;
import com.darkweb.genesissearchengine.constants.*;
import com.darkweb.genesissearchengine.dataManager.dataController;
@ -12,13 +16,6 @@ import com.darkweb.genesissearchengine.dataManager.dataEnums;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import org.mozilla.gecko.PrefsHelper;
import org.torproject.android.service.OrbotService;
import org.torproject.android.service.util.Prefs;
import org.torproject.android.service.wrapper.orbotLocalConstants;
import java.util.Arrays;
import static org.torproject.android.service.TorServiceConstants.ACTION_START;
class orbotManager

View File

@ -13,8 +13,6 @@ import com.darkweb.genesissearchengine.dataManager.dataController;
import com.darkweb.genesissearchengine.dataManager.dataEnums;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
//import org.torproject.android.service.wrapper.orbotLocalConstants;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
@ -63,7 +61,6 @@ public class pluginController
mAnalyticManager = new analyticManager(getAppContext(),new analyticCallback());
mFirebaseManager = new firebaseManager(getAppContext(),new firebaseCallback());
mMessageManager = new messageManager(new messageCallback());
}
public void initializeAllServices(AppCompatActivity context){
@ -84,7 +81,7 @@ public class pluginController
/*---------------------------------------------- EXTERNAL REQUEST LISTENER-------------------------------------------------------*/
/*Message Manager*/
public void MessageManagerHandler(AppCompatActivity app_context,List<Object> data,enums.etype type){
public void MessageManagerHandler(AppCompatActivity app_context,List<Object> data,enums.eMessageEnums type){
mMessageManager.createMessage(app_context,data,type);
}
public void onResetMessage(){
@ -169,15 +166,6 @@ public class pluginController
}
}
/*Fabric Manager*/
private class fabricCallback implements eventObserver.eventListener{
@Override
public Object invokeObserver(List<Object> data, Object event_type)
{
return null;
}
}
/*Firebase Manager*/
private class firebaseCallback implements eventObserver.eventListener{
@Override
@ -210,7 +198,7 @@ public class pluginController
mLangManager.setDefaultLanguage(new Locale(status.sSettingLanguage));
}
public void onCreate(Activity activity) {
if(activity==null || !activity.isDestroyed()){
if(activity==null && mLangManager!=null){
mLangManager.onCreate(activity);
}
}
@ -227,10 +215,10 @@ public class pluginController
{
mHomeController.onLoadURL(data.get(0).toString());
}
else if(event_type.equals(enums.etype.cancel_welcome)){
else if(event_type.equals(enums.eMessageEnums.M_CANCEL_WELCOME)){
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_IS_WELCOME_ENABLED,false));
}
else if(event_type.equals(enums.etype.ignore_abi)){
else if(event_type.equals(enums.eMessageEnums.M_IGNORE_ABI)){
//mHomeController.ignoreAbiError();
}
else if(event_type.equals(enums.etype.reload)){
@ -239,21 +227,21 @@ public class pluginController
mHomeController.onReload(null);
}
else {
mMessageManager.createMessage(mHomeController, Collections.singletonList(data.get(0).toString()),enums.etype.start_orbot);
mMessageManager.createMessage(mHomeController, Collections.singletonList(data.get(0).toString()),enums.eMessageEnums.M_START_ORBOT);
}
}
else if(event_type.equals(enums.etype.clear_history)){
else if(event_type.equals(enums.eMessageEnums.M_CLEAR_HISTORY)){
dataController.getInstance().invokeHistory(dataEnums.eHistoryCommands.M_CLEAR_HISTORY ,null);
mContextManager.getHistoryController().onclearData();
mHomeController.onClearSession();
dataController.getInstance().invokeTab(dataEnums.eTabCommands.M_CLEAR_TAB, null);
mHomeController.initTab(false);
}
else if(event_type.equals(enums.etype.clear_bookmark)){
else if(event_type.equals(enums.eMessageEnums.M_CLEAR_BOOKMARK)){
dataController.getInstance().invokeBookmark(dataEnums.eBookmarkCommands.M_CLEAR_BOOKMARK ,data);
mContextManager.getBookmarkController().onclearData();
}
else if(event_type.equals(enums.etype.bookmark)){
else if(event_type.equals(enums.eMessageEnums.M_BOOKMARK)){
String [] dataParser = data.get(0).toString().split("split");
if(dataParser.length>1){
logEvent(strings.EVENT_URL_BOOKMARKED);
@ -262,28 +250,28 @@ public class pluginController
dataController.getInstance().invokeBookmark(dataEnums.eBookmarkCommands.M_ADD_BOOKMARK ,Arrays.asList(dataParser[0],""));
}
}
else if(event_type.equals(enums.etype.app_rated)){
else if(event_type.equals(enums.eMessageEnums.M_APP_RATED)){
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.PROXY_IS_APP_RATED,true));
}
else if(event_type.equals(enums.etype.download_file)){
else if(event_type.equals(enums.eMessageEnums.M_DOWNLOAD_FILE)){
mHomeController.onDownloadFile();
}
else if(event_type.equals(enums.etype.download_file_manual)){
else if(event_type.equals(enums.eMessageEnums.M_DOWNLOAD_FILE_MANUAL)){
mHomeController.onManualDownload(data.get(0).toString());
}
else if(event_type.equals(enums.etype.connect_vpn)){
else if(event_type.equals(enums.eMessageEnums.M_CONNECT_VPN)){
//orbotLocalConstants.sIsTorInitialized = (boolean)data.get(0);
}
else if(event_type.equals(enums.etype.open_link_new_tab)){
else if(event_type.equals(enums.eMessageEnums.M_OPEN_LINK_NEW_TAB)){
mHomeController.onOpenLinkNewTab(data.get(0).toString());
}
else if(event_type.equals(enums.etype.open_link_current_tab)){
else if(event_type.equals(enums.eMessageEnums.M_OPEN_LINK_CURRENT_TAB)){
mHomeController.onLoadURL(data.get(0).toString());
}
else if(event_type.equals(enums.etype.copy_link)){
else if(event_type.equals(enums.eMessageEnums.M_COPY_LINK)){
helperMethod.copyURL(data.get(0).toString(),mContextManager.getHomeController());
}
else if(event_type.equals(enums.etype.clear_tab)){
else if(event_type.equals(enums.eMessageEnums.M_CLEAR_TAB)){
dataController.getInstance().invokeTab(dataEnums.eTabCommands.M_CLEAR_TAB, null);
mHomeController.initTab(true);
activityContextManager.getInstance().getTabController().finish();

View File

@ -0,0 +1,5 @@
package com.darkweb.genesissearchengine.pluginManager;
public class pluginEnums
{
}

View File

@ -1,16 +0,0 @@
package com.darkweb.genesissearchengine.securityManager;
public class securityController
{
private static final securityController ourInstance = new securityController();
public static securityController getInstance()
{
return ourInstance;
}
private securityController()
{
}
}

View File

@ -3,7 +3,7 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
package com.darkweb.genesissearchengine.widget;
package com.darkweb.genesissearchengine.widget.progressBar;
import android.animation.Animator;
import android.animation.ValueAnimator;

View File

@ -1,4 +1,4 @@
package com.darkweb.genesissearchengine.widget;
package com.darkweb.genesissearchengine.widget.progressBar;
import android.content.res.Resources;
import android.graphics.Canvas;

View File

@ -1,4 +1,4 @@
package com.darkweb.genesissearchengine.widget;
package com.darkweb.genesissearchengine.widget.progressBar;
import android.animation.Animator;
import android.animation.ValueAnimator;

View File

@ -6,7 +6,7 @@
<shape
android:shape="rectangle" android:padding="10dp" >
<solid android:color="@color/c_edittext_background"/>
<corners android:radius="5dp"/>
<corners android:radius="7dp"/>
</shape>
</item>
<item android:state_pressed="false"
@ -14,7 +14,7 @@
<shape
android:shape="rectangle" android:padding="10dp">
<solid android:color="@color/c_edittext_background"/>
<corners android:radius="5dp"/>
<corners android:radius="7dp"/>
</shape>
</item>
</selector>

View File

@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M12,15c1.66,0 2.99,-1.34 2.99,-3L15,6c0,-1.66 -1.34,-3 -3,-3S9,4.34 9,6v6c0,1.66 1.34,3 3,3zM17.3,12c0,3 -2.54,5.1 -5.3,5.1S6.7,15 6.7,12L5,12c0,3.42 2.72,6.23 6,6.72L11,22h2v-3.28c3.28,-0.48 6,-3.3 6,-6.72h-1.7z"/>
</vector>

View File

@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M18,8h-1L17,6c0,-2.76 -2.24,-5 -5,-5S7,3.24 7,6v2L6,8c-1.1,0 -2,0.9 -2,2v10c0,1.1 0.9,2 2,2h12c1.1,0 2,-0.9 2,-2L20,10c0,-1.1 -0.9,-2 -2,-2zM12,17c-1.1,0 -2,-0.9 -2,-2s0.9,-2 2,-2 2,0.9 2,2 -0.9,2 -2,2zM15.1,8L8.9,8L8.9,6c0,-1.71 1.39,-3.1 3.1,-3.1 1.71,0 3.1,1.39 3.1,3.1v2z"/>
</vector>

View File

@ -0,0 +1,8 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path android:fillColor="@android:color/white" android:pathData="M15.5,14h-0.79l-0.28,-0.27C15.41,12.59 16,11.11 16,9.5 16,5.91 13.09,3 9.5,3S3,5.91 3,9.5 5.91,16 9.5,16c1.61,0 3.09,-0.59 4.23,-1.57l0.27,0.28v0.79l5,4.99L20.49,19l-4.99,-5zM9.5,14C7.01,14 5,11.99 5,9.5S7.01,5 9.5,5 14,7.01 14,9.5 11.99,14 9.5,14z"/>
</vector>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 720 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 831 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 344 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 730 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 270 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -7,14 +7,15 @@
android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:id="@+id/pMainLayout"
android:layout_width="360dp"
android:layout_height="wrap_content"
android:layout_marginBottom="25dp"
android:background="@xml/hox_rounded_corner"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent">
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/pHeader"
@ -34,16 +35,14 @@
android:id="@+id/pDescription"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="0dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="5dp"
android:paddingEnd="15dp"
android:textColor="@color/c_alert_text"
android:alpha="0.6"
android:paddingEnd="10dp"
android:text="@string/ALERT_DATA_CLEARED_INFO"
android:textAlignment="textStart"
android:paddingStart="15dp"
android:textColor="@color/c_alert_text"
android:textSize="13sp"
android:alpha="0.6"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/pHeader"
@ -53,33 +52,32 @@
android:id="@+id/pDivider"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="30dp"
android:layout_marginTop="25dp"
android:background="@color/c_view_divier_background"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/pDescription" />
<LinearLayout
android:id="@+id/pNavigationContainer"
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal"
android:id="@+id/pNavigationContainer"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/pDivider">
app:layout_constraintTop_toBottomOf="@+id/pDivider"
android:orientation="horizontal">
<Button
android:id="@+id/pDismiss"
android:textColor="@color/c_button_text_v1"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@xml/ax_ripple_default_round_right"
android:padding="0dp"
android:text="@string/ALERT_DISMISS"
android:textAllCaps="false"
android:textColor="@color/c_button_text_v1"
android:background="@xml/ax_ripple_default_round_bottom"
android:textSize="15sp"
android:textStyle="bold" />
android:textAllCaps="false"
android:layout_weight="1"
android:textStyle="bold"
android:text="@string/ALERT_DISMISS" />
</LinearLayout>

View File

@ -1,5 +1,6 @@
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:focusableInTouchMode="true"
android:clickable="true"
@ -58,42 +59,23 @@
android:layout_height="0dp"
android:layout_weight="1"/>
<ImageButton
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_marginStart="0dp"
android:scaleX="1.08"
android:scaleY="1.08"
android:layout_marginTop="3dp"
android:layout_marginEnd="7dp"
android:background="@xml/gx_ripple_default_round"
<ImageView
android:layout_width="47dp"
android:layout_height="match_parent"
android:padding="0dp"
android:layout_marginEnd="0dp"
android:layout_gravity="center_vertical"
android:layout_marginStart="6dp"
android:paddingStart="3dp"
android:onClick="onOpenInfo"
android:background="@xml/gx_ripple_gray"
android:contentDescription="@string/GENERAL_TODO"
android:src="@xml/ic_baseline_info"
android:tint="@color/c_navigation_light" />
android:src="@drawable/info"
app:tint="@color/c_icon_tint_light" />
</LinearLayout>
<!-- Title Header -->
<LinearLayout
android:layout_width="match_parent"
android:background="@color/c_background"
android:focusable="true"
android:layout_marginBottom="0dp"
android:orientation="horizontal"
android:layout_height="40dp">
<TextView
android:textColor="@color/c_text_setting_heading"
android:textSize="16sp"
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/BRIDGE_SETTING"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:background="@color/clear_alpha"
@ -101,12 +83,13 @@
android:focusable="true"
android:layout_marginEnd = "20dp"
android:orientation="horizontal"
android:layout_marginTop="20dp"
android:layout_height="wrap_content">
<TextView
android:textSize="14sp"
android:layout_width="0dp"
android:textColor="@color/c_text_v2"
android:paddingBottom="30dp"
android:paddingBottom="10dp"
android:layout_height="wrap_content"
android:layout_weight="40"
android:background="@color/clear_alpha"
@ -119,14 +102,13 @@
android:layout_width="match_parent"
android:layout_marginEnd = "20dp"
android:background="@color/clear_alpha"
android:layout_marginTop="8dp"
android:layout_marginTop="10dp"
android:focusable="true"
android:layout_marginBottom="5dp"
android:orientation="horizontal"
android:orientation="vertical"
android:layout_height="wrap_content">
<TextView
android:textSize="14sp"
android:layout_width="0dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="40"
android:textColor="@color/c_text_setting_heading"
@ -134,6 +116,17 @@
android:textStyle="bold"
android:text="@string/BRIDGE_AUTO"
/>
<TextView
android:textSize="14sp"
android:layout_width="wrap_content"
android:textColor="@color/c_text_v2"
android:layout_height="wrap_content"
android:layout_weight="40"
android:background="@color/clear_alpha"
android:layout_marginStart="20dp"
android:text="@string/BRIDGE_AUTO_INFO"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
@ -150,75 +143,207 @@
tools:ignore="RtlSymmetry">
</LinearLayout>
<LinearLayout
android:id="@+id/pTopPanel"
<LinearLayout
android:layout_width="match_parent"
android:paddingStart="4dp"
android:id="@+id/pTopPanel"
android:layout_marginTop="0dp"
android:orientation="vertical"
android:layout_height="wrap_content"
tools:ignore="RtlSymmetry">
<LinearLayout
android:layout_width="match_parent"
android:layout_marginStart="0dp"
android:layout_marginEnd = "00dp"
android:paddingEnd="5dp"
android:focusable="true"
android:layout_marginBottom="0dp"
android:layout_marginTop="-8dp"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:background="@xml/sx_border_left"
android:layout_marginStart="15dp"
android:paddingStart="4dp"
android:layout_marginTop="15dp"
android:orientation="vertical"
android:layout_height="wrap_content"
tools:ignore="RtlSymmetry">
<RadioGroup
android:layout_width="match_parent"
android:orientation="vertical"
android:id="@+id/pProxyGroup"
android:paddingStart="5dp"
android:layout_height="match_parent" >
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/c_view_divier_background" />
<RadioButton
android:layout_marginTop="-1dp"
android:elevation="2dp"
android:background="@color/white"/>
<LinearLayout
android:id="@+id/pOption1"
android:layout_width="match_parent"
android:layout_height="55dp"
android:background="@xml/gx_ripple_gray"
android:clickable="true"
android:paddingStart="0dp"
android:onClick="onObfsChecked"
android:orientation="horizontal"
android:weightSum="8"
android:focusable="true"
tools:ignore="RtlSymmetry">
<LinearLayout
android:layout_width="0dp"
android:layout_weight="7"
android:layout_height="55dp"
android:orientation="vertical">
<Button
android:layout_width="wrap_content"
android:layout_height="20dp"
android:layout_marginTop="18dp"
android:alpha="1"
android:paddingStart="15dp"
android:background="@android:color/transparent"
android:clickable="false"
android:padding="0dp"
android:text="@string/BRIDGE_OBFS4"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textSize="15sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
<RadioButton
android:id="@+id/pBridgeObfs"
android:layout_width="match_parent"
android:layout_width="0dp"
android:layout_height="match_parent"
android:clickable="false"
android:layout_weight="1"
android:layout_marginEnd="10dp"
android:layout_marginStart="50dp"
android:checked="true"
android:textSize="14sp"
android:paddingTop="15dp"
android:buttonTint="@color/c_radio_tint"
android:paddingBottom="15dp"
android:onClick="onObfsChecked"
android:layout_height="wrap_content"
android:textColor="@color/c_text_v1"
android:text="@string/BRIDGE_OBFS4" />
android:background="@android:color/transparent"
android:src="@xml/ic_arrow_right"
android:contentDescription="@string/GENERAL_TODO" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/c_view_divier_background" />
<RadioButton
android:id="@+id/pBridgeChina"
android:background="@color/c_view_divier_background_inner"/>
<LinearLayout
android:id="@+id/pOption2"
android:layout_width="match_parent"
android:layout_height="55dp"
android:background="@xml/gx_ripple_gray"
android:clickable="true"
android:onClick="onMeekChecked"
android:checked="false"
android:textSize="14sp"
android:paddingTop="15dp"
android:paddingBottom="15dp"
android:layout_height="wrap_content"
android:buttonTint="@color/c_radio_tint"
android:textColor="@color/c_text_v1"
android:text="@string/BRIDGE_MEEK" />
android:orientation="horizontal"
android:weightSum="8"
android:focusable="true"
tools:ignore="RtlSymmetry">
<LinearLayout
android:layout_width="0dp"
android:layout_weight="7"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginStart="0dp"
android:alpha="1"
android:background="@android:color/transparent"
android:clickable="false"
android:text="@string/BRIDGE_MEEK"
android:padding="0dp"
android:paddingStart="15dp"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textSize="15sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
<RadioButton
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginEnd="10dp"
android:id="@+id/pBridgeChina"
android:layout_weight="1"
android:background="@android:color/transparent"
android:layout_marginStart="50dp"
android:src="@xml/ic_arrow_right"
android:buttonTint="@color/c_radio_tint"
android:clickable="false"
android:contentDescription="@string/GENERAL_TODO" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/c_view_divier_background" />
<RadioButton
android:id="@+id/pBridgeCustom"
android:background="@color/c_view_divier_background_inner"/>
<LinearLayout
android:id="@+id/pOption3"
android:layout_width="match_parent"
android:layout_height="55dp"
android:background="@xml/gx_ripple_gray"
android:clickable="true"
android:onClick="onCustomChecked"
android:checked="false"
android:textSize="14sp"
android:textColor="@color/c_text_v1"
android:paddingTop="15dp"
android:paddingBottom="15dp"
android:layout_height="wrap_content"
android:buttonTint="@color/c_radio_tint"
android:text="@string/BRIDGE_MANUAL" />
</RadioGroup>
android:orientation="horizontal"
android:weightSum="8"
android:focusable="true"
tools:ignore="RtlSymmetry">
<LinearLayout
android:layout_width="0dp"
android:layout_weight="7"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginBottom="5dp"
android:layout_marginStart="0dp"
android:alpha="1"
android:background="@android:color/transparent"
android:clickable="false"
android:text="@string/BRIDGE_MANUAL"
android:padding="0dp"
android:paddingStart="15dp"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textSize="15sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
<RadioButton
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginEnd="10dp"
android:id="@+id/pBridgeCustom"
android:layout_weight="1"
android:background="@android:color/transparent"
android:layout_marginStart="50dp"
android:src="@xml/ic_arrow_right"
android:buttonTint="@color/c_radio_tint"
android:clickable="false"
android:contentDescription="@string/GENERAL_TODO" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:elevation="4dp"
android:background="@color/c_view_divier_background_inner"/>
</LinearLayout>
<LinearLayout
android:id="@+id/pBottomPanel"
@ -229,6 +354,7 @@
android:onClick="onCustomChecked"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:layout_marginEnd="10dp"
android:orientation="horizontal"
android:layout_height="wrap_content"
android:focusableInTouchMode="true"
@ -274,13 +400,7 @@
android:contentDescription="@string/GENERAL_TODO">
</ImageView>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginBottom="10dp"
android:background="@color/c_view_divier_background" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/c_background"
tools:context="com.darkweb.genesissearchengine.appManager.helpManager.helpController">
<!-- Title Header -->
<LinearLayout
android:id="@+id/pHeaderContainerTop"
android:layout_width="match_parent"
android:layout_height="48dp"
android:elevation="8dp"
android:background="@color/c_background"
android:clickable="true"
android:focusable="true"
android:orientation="horizontal"
android:paddingStart="5dp"
android:paddingEnd="7dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlSymmetry">
<ImageButton
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_marginStart="0dp"
android:layout_marginTop="1dp"
android:background="@xml/gx_ripple_default_round"
android:contentDescription="@string/GENERAL_TODO"
android:onClick="onClose"
android:src="@xml/ic_arrow_back"
android:tint="@color/c_navigation_tint" />
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginTop="-3dp"
android:onClick="onClose"
android:layout_weight="40"
android:gravity="center_vertical|start"
android:text="@string/HELP_TITLE"
android:textColor="@color/c_text_v1"
android:textSize="17sp"
android:textStyle="bold" />
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="1"/>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -18,7 +18,6 @@
android:focusable="true"
android:orientation="horizontal"
android:paddingStart="5dp"
android:paddingEnd="7dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
@ -36,11 +35,12 @@
android:tint="@color/c_navigation_tint" />
<TextView
android:layout_width="0dp"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginTop="-3dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:onClick="onClose"
android:layout_weight="40"
android:layout_marginTop="-3dp"
android:gravity="center_vertical|start"
android:text="@string/LANGUAGE_TITLE"
android:textColor="@color/c_text_v1"
@ -52,17 +52,20 @@
android:layout_height="0dp"
android:layout_weight="1"/>
<ImageButton
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_marginStart="0dp"
android:scaleX="1.08"
android:scaleY="1.08"
android:layout_marginTop="1dp"
android:background="@xml/gx_ripple_default_round"
<ImageView
android:layout_width="47dp"
android:layout_height="match_parent"
android:padding="0dp"
android:layout_marginEnd="0dp"
android:layout_gravity="center_vertical"
android:layout_marginStart="6dp"
android:paddingStart="3dp"
android:onClick="onOpenInfo"
android:background="@xml/gx_ripple_gray"
android:contentDescription="@string/GENERAL_TODO"
android:src="@xml/ic_baseline_info"
android:tint="@color/c_navigation_light" />
android:src="@drawable/info"
app:tint="@color/c_icon_tint_light" />
</LinearLayout>

View File

@ -51,18 +51,19 @@
android:layout_height="0dp"
android:layout_weight="1"/>
<ImageButton
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_marginStart="0dp"
android:scaleX="1.08"
android:scaleY="1.08"
android:layout_marginTop="3dp"
android:layout_marginEnd="7dp"
android:background="@xml/gx_ripple_default_round"
<ImageView
android:layout_width="47dp"
android:layout_height="match_parent"
android:padding="0dp"
android:layout_marginEnd="0dp"
android:layout_gravity="center_vertical"
android:layout_marginStart="6dp"
android:paddingStart="3dp"
android:onClick="onOpenInfo"
android:background="@xml/gx_ripple_gray"
android:contentDescription="@string/GENERAL_TODO"
android:src="@xml/ic_baseline_info"
android:tint="@color/c_navigation_light" />
android:src="@drawable/info"
app:tint="@color/c_icon_tint_light" />
</LinearLayout>
@ -127,6 +128,7 @@
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginStart="15dp"
android:background="@color/c_view_divier_background"/>
<LinearLayout
android:layout_width="match_parent"
@ -160,10 +162,13 @@
android:theme="@style/SCBSwitch"
tools:ignore="UseSwitchCompatOrMaterialXml" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginStart="16dp"
android:background="@color/c_view_divier_background"/>
<LinearLayout
android:layout_width="match_parent"
android:background="@xml/gx_ripple_blue"
@ -198,6 +203,7 @@
<View
android:layout_width="match_parent"
android:layout_marginStart="15dp"
android:layout_height="1dp"
android:background="@color/c_view_divier_background"/>
@ -258,6 +264,7 @@
android:layout_marginTop="-5dp"
android:clickable="false"
android:scaleType="fitCenter"
android:padding="2dp"
android:src="@xml/ic_arrow_right"
android:layout_marginEnd="12dp"
android:contentDescription="@string/GENERAL_TODO"
@ -269,7 +276,7 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_marginEnd = "10dp"
android:layout_marginStart = "10dp"
android:layout_marginStart = "15dp"
android:paddingTop="5dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="15dp"

View File

@ -16,6 +16,7 @@
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:translationZ="10dp"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<FrameLayout
@ -23,9 +24,12 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#00000000"
app:layout_scrollFlags="scroll|enterAlways|snap|exitUntilCollapsed"
android:clipToPadding="false"
android:layout_marginBottom="-1dp"
app:layout_scrollFlags="scroll|enterAlways|snap"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:animateLayoutChanges="true"
app:layout_constraintTop_toTopOf="parent">
<LinearLayout
@ -33,11 +37,11 @@
android:layout_width="match_parent"
android:layout_height="60dp"
android:background="@xml/ic_secondary_gradinet"
android:elevation="7dp"
android:gravity="left"
android:elevation="4dp"
android:orientation="vertical"
android:paddingBottom="1dp"
app:layout_constraintEnd_toEndOf="parent"
android:animateLayoutChanges="true"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlHardcoded,UselessParent">
@ -45,21 +49,32 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:elevation="7dp"
android:gravity="left"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
android:animateLayoutChanges="true"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlHardcoded,UselessParent">
<ImageView
android:layout_width="20dp"
android:src="@xml/ic_baseline_lock"
android:layout_height="20dp"
android:layout_gravity="center_vertical"
android:layout_marginStart="21dp"
android:translationZ="10dp"
android:contentDescription="@string/GENERAL_TODO"
app:tint="@color/c_lock_tint" />
<AutoCompleteTextView
android:id="@+id/pSearchInput"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginStart="10dp"
android:layout_marginStart="-31dp"
android:animateLayoutChanges="true"
android:layout_marginTop="8dp"
android:layout_marginEnd="0dp"
android:layout_marginEnd="18dp"
android:layout_marginBottom="8dp"
android:layout_weight="1"
android:background="@xml/gx_generic_input"
@ -69,8 +84,8 @@
android:importantForAutofill="no"
android:inputType="textNoSuggestions"
android:maxLines="1"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:paddingLeft="38dp"
android:paddingRight="40dp"
android:popupElevation="5dp"
android:selectAllOnFocus="true"
android:text="@string/GENERAL_HOME_URL"
@ -79,10 +94,30 @@
android:textColorHint="@color/c_text_v1"
android:textCursorDrawable="@xml/gx_search_cursor_state"
android:textSize="16sp"
tools:targetApi="o" />
tools:targetApi="o" >
</AutoCompleteTextView>
<ImageButton
android:id="@+id/pVoiceInput"
android:layout_width="36dp"
android:layout_height="36dp"
android:scaleX="1.1"
android:scaleY="1.1"
android:onClick="onVoiceClick"
android:layout_marginTop="-1dp"
android:layout_marginEnd="15dp"
android:layout_marginStart="-60dp"
android:visibility="gone"
android:src="@xml/ic_baseline_keyboard_voice"
android:tint="@color/c_navigation_tint"
android:background="@color/clear_alpha"
android:layout_gravity="center_vertical"
android:contentDescription="@string/GENERAL_TODO" />
<LinearLayout
android:layout_width="40dp"
android:layout_marginStart="-10dp"
android:layout_height="match_parent"
android:gravity="left"
android:onClick="onOpenTabViewBoundary"
@ -93,11 +128,12 @@
android:layout_width="22dp"
android:layout_height="22dp"
android:layout_marginStart="12dp"
android:layout_marginTop="17dp"
android:layout_gravity="center_vertical"
android:layout_marginEnd="13dp"
android:layout_marginBottom="0dp"
android:background="@xml/gx_generic_tab_button"
android:clickable="false"
android:layout_marginTop="-1dp"
android:contentDescription="@string/GENERAL_TODO"
android:scaleType="fitCenter"
android:text="@string/HOME_TAB_TEXT"
@ -107,7 +143,7 @@
</LinearLayout>
<ImageButton
android:id="@+id/menu"
android:id="@+id/pMenu"
android:layout_width="35dp"
android:layout_height="wrap_content"
android:layout_marginTop="-4dp"
@ -137,29 +173,31 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="fill_vertical"
android:layout_marginTop="0dp"
android:fillViewport="true"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<FrameLayout
android:id="@+id/pWebLayoutView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="0dp"
android:background="@color/c_background"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/pTopLayout">
<com.darkweb.genesissearchengine.widget.AnimatedProgressBar
<com.darkweb.genesissearchengine.widget.progressBar.AnimatedProgressBar
android:id="@+id/progressBar"
style="@style/Base.Widget.AppCompat.ProgressBar.Horizontal"
android:layout_width="match_parent"
android:layout_height="5dp"
android:layout_height="2.5dp"
android:alpha="0"
android:max="10000"
android:layout_marginTop="-1dp"
android:background="@color/clear_alpha"
android:layout_marginTop="0dp"
android:progress="0"
android:elevation="7dp"
android:progressDrawable="@xml/hox_photon_progress"
android:scaleY="0.7"
android:scaleY="1"
app:shiftDuration="@integer/progress_shift_duration"
app:wrapShiftDrawable="true"
tools:progress="0" />
@ -168,7 +206,7 @@
android:id="@+id/pWebView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="0dp"
android:layout_marginTop="2dp"
android:alpha="1"
android:background="@color/c_background"
tools:layout_editor_absoluteX="8dp"

View File

@ -59,18 +59,20 @@
android:layout_height="0dp"
android:layout_weight="1"/>
<ImageButton
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_marginStart="0dp"
android:scaleX="1.08"
android:layout_marginEnd="7dp"
android:scaleY="1.08"
android:layout_marginTop="1dp"
android:background="@xml/gx_ripple_default_round"
<ImageView
android:layout_width="47dp"
android:layout_height="match_parent"
android:padding="0dp"
android:layout_marginEnd="0dp"
android:layout_gravity="center_vertical"
android:layout_marginStart="6dp"
android:paddingStart="3dp"
android:onClick="onOpenInfo"
android:background="@xml/gx_ripple_gray"
android:contentDescription="@string/GENERAL_TODO"
android:src="@xml/ic_baseline_info"
android:tint="@color/c_navigation_light" />
android:src="@drawable/info"
app:tint="@color/c_icon_tint_light" />
</LinearLayout>
<!-- Title Header -->
@ -86,7 +88,8 @@
<ImageView
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:padding="10dp"
android:layout_marginStart="5dp"
android:layout_marginEnd="5dp"
@ -109,17 +112,6 @@
android:textSize="15sp"
tools:ignore="RtlSymmetry" />
<ImageButton
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:layout_marginEnd="4.5dp"
android:clickable="false"
android:background="@android:color/transparent"
android:contentDescription="@string/GENERAL_TODO"
android:tint="@color/c_navigation_tint"
android:src="@xml/ic_arrow_right" />
</LinearLayout>
<View
@ -138,7 +130,8 @@
<ImageView
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:padding="10dp"
android:layout_marginStart="5dp"
android:layout_marginEnd="5dp"
@ -179,7 +172,7 @@
android:text="@string/SETTING_GENERAL_INFO"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
@ -214,7 +207,8 @@
<ImageView
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:padding="10dp"
android:layout_marginStart="5dp"
android:layout_marginEnd="5dp"
@ -255,7 +249,7 @@
android:text="@string/SETTING_SEARCH_INFO"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
@ -290,7 +284,8 @@
<ImageView
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:padding="10dp"
app:tint="@color/c_icon_tint"
android:layout_marginStart="5dp"
@ -331,7 +326,7 @@
android:text="@string/SETTING_PRIVACY_INFO"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
@ -366,7 +361,8 @@
<ImageView
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
app:tint="@color/c_icon_tint"
android:padding="10dp"
android:layout_marginStart="5dp"
@ -405,7 +401,7 @@
android:text="@string/SETTING_NOTIFICATION_INFO"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
@ -440,7 +436,8 @@
<ImageView
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:padding="10dp"
android:layout_marginStart="5dp"
android:layout_marginEnd="5dp"
@ -480,7 +477,7 @@
android:text="@string/SETTING_ACCESSIBILITY_INFO"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
@ -515,7 +512,8 @@
<ImageView
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:padding="10dp"
app:tint="@color/c_icon_tint"
android:layout_marginStart="5dp"
@ -555,7 +553,7 @@
android:text="@string/SETTING_CLEAR_INFO"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
@ -591,7 +589,8 @@
android:layout_weight="1"
android:layout_width="0dp"
app:tint="@color/c_icon_tint"
android:layout_height="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:padding="10dp"
android:layout_marginStart="5dp"
android:layout_marginEnd="5dp"
@ -630,7 +629,7 @@
android:text="@string/SETTING_ADVANCE_INFO"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>

View File

@ -1,4 +1,5 @@
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
@ -56,47 +57,40 @@
android:layout_height="0dp"
android:layout_weight="1"/>
<ImageButton
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_marginStart="0dp"
android:scaleX="1.08"
android:scaleY="1.08"
android:layout_marginTop="1dp"
android:layout_marginEnd="7dp"
android:background="@xml/gx_ripple_default_round"
<ImageView
android:layout_width="47dp"
android:layout_height="match_parent"
android:padding="0dp"
android:layout_marginEnd="0dp"
android:layout_gravity="center_vertical"
android:layout_marginStart="6dp"
android:paddingStart="3dp"
android:onClick="onOpenInfo"
android:background="@xml/gx_ripple_gray"
android:contentDescription="@string/GENERAL_TODO"
android:src="@xml/ic_baseline_info"
android:tint="@color/c_navigation_light" />
android:src="@drawable/info"
app:tint="@color/c_icon_tint_light" />
</LinearLayout>
<!-- Title Header -->
<LinearLayout
android:id="@+id/pOption2"
android:layout_width="match_parent"
android:layout_height="35dp"
android:background="@xml/gx_ripple_gray"
android:layout_marginTop="15dp"
android:orientation="horizontal"
android:weightSum="7">
<Button
android:layout_width="wrap_content"
android:layout_height="20dp"
android:layout_marginTop="12dp"
android:alpha="1"
android:background="@android:color/transparent"
android:clickable="false"
android:padding="0dp"
android:paddingStart="15dp"
android:text="@string/SETTING_ACCESSIBILITY_FONT"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:layout_height="wrap_content">
<TextView
android:textColor="@color/c_text_setting_heading"
android:textSize="15sp"
tools:ignore="RtlSymmetry" />
android:layout_width="0dp"
android:textStyle="bold"
android:layout_height="wrap_content"
android:layout_weight="40"
android:layout_marginTop="00dp"
android:layout_marginStart="15dp"
android:text="@string/SETTING_ACCESSIBILITY_FONT"
/>
</LinearLayout>
<LinearLayout
@ -127,7 +121,7 @@
android:text="@string/SETTING_ACCESSIBILITY_FONT_CUSTOM"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
@ -184,7 +178,7 @@
android:textAlignment="textStart"
android:textAllCaps="false"
android:background="@xml/sx_font_change_round_background"
android:textColor="@color/c_font_change_foreground"
android:textColor="@color/c_text_v6"
android:textSize="12sp"
tools:ignore="RtlSymmetry" />
@ -194,12 +188,53 @@
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginBottom="5dp"
android:layout_marginTop="12dp"
android:layout_marginStart="15dp"
android:background="@color/c_view_divier_background"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:orientation="vertical"
android:layout_height="wrap_content">
<TextView
android:textColor="@color/c_text_setting_heading"
android:textSize="15sp"
android:layout_width="wrap_content"
android:textStyle="bold"
android:layout_height="wrap_content"
android:layout_weight="40"
android:layout_marginTop="00dp"
android:layout_marginStart="15dp"
android:text="@string/SETTING_INTERACTION"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:alpha="1"
android:background="@android:color/transparent"
android:clickable="false"
android:padding="0dp"
android:paddingStart="15dp"
android:text="@string/SETTING_INTERACTION_INFO"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
<LinearLayout
android:id="@+id/pOption4"
android:layout_width="match_parent"
android:layout_height="65dp"
android:background="@xml/gx_ripple_gray"
android:layout_marginTop="10dp"
android:layout_marginTop="5dp"
android:onClick="onZoomSettingUpdate"
android:orientation="horizontal"
android:weightSum="7">
@ -211,7 +246,7 @@
android:clickable="false"
android:orientation="vertical">
<Button
<TextView
android:layout_width="wrap_content"
android:layout_height="20dp"
android:layout_marginTop="12dp"
@ -224,7 +259,7 @@
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textSize="15sp"
android:textSize="14sp"
tools:ignore="RtlSymmetry" />
<TextView
@ -239,7 +274,7 @@
android:text="@string/SETTING_ACCESSIBILITY_ZOOM_INFO"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
@ -256,11 +291,6 @@
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/c_view_divier_background"/>
<LinearLayout
android:id="@+id/pOption5"
android:layout_width="match_parent"
@ -277,7 +307,7 @@
android:clickable="false"
android:orientation="vertical">
<Button
<TextView
android:layout_width="wrap_content"
android:layout_height="20dp"
android:layout_marginTop="12dp"
@ -290,7 +320,7 @@
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textSize="15sp"
android:textSize="14sp"
tools:ignore="RtlSymmetry" />
<TextView
@ -305,7 +335,7 @@
android:text="@string/SETTING_ACCESSIBILITY_VOICE_INFO"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
@ -322,11 +352,6 @@
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/c_view_divier_background"/>
</LinearLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -1,4 +1,5 @@
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
@ -55,23 +56,58 @@
android:layout_height="0dp"
android:layout_weight="1"/>
<ImageButton
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_marginStart="0dp"
android:scaleX="1.08"
android:scaleY="1.08"
android:layout_marginTop="1dp"
android:layout_marginEnd="7dp"
android:background="@xml/gx_ripple_default_round"
<ImageView
android:layout_width="47dp"
android:layout_height="match_parent"
android:padding="0dp"
android:layout_marginEnd="0dp"
android:layout_gravity="center_vertical"
android:layout_marginStart="6dp"
android:paddingStart="3dp"
android:onClick="onOpenInfo"
android:background="@xml/gx_ripple_gray"
android:contentDescription="@string/GENERAL_TODO"
android:src="@xml/ic_baseline_info"
android:tint="@color/c_navigation_light" />
android:src="@drawable/info"
app:tint="@color/c_icon_tint_light" />
</LinearLayout>
<!-- Title Header -->
<LinearLayout
android:layout_width="match_parent"
android:layout_marginTop="15dp"
android:layout_marginBottom="10dp"
android:orientation="vertical"
android:layout_height="wrap_content">
<TextView
android:textColor="@color/c_text_setting_heading"
android:textSize="15sp"
android:layout_width="wrap_content"
android:textStyle="bold"
android:layout_height="wrap_content"
android:layout_weight="40"
android:layout_marginTop="00dp"
android:layout_marginStart="15dp"
android:text="@string/SETTING_ADVANCE_TAB"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="0dp"
android:alpha="1"
android:background="@android:color/transparent"
android:clickable="false"
android:padding="0dp"
android:paddingStart="15dp"
android:text="@string/SETTING_ADVANCE_TAB_INFO"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
<LinearLayout
android:id="@+id/pOption1"
android:layout_width="match_parent"
@ -85,7 +121,7 @@
android:layout_weight="6"
android:layout_height="65dp"
android:orientation="vertical">
<Button
<TextView
android:layout_width="wrap_content"
android:layout_height="20dp"
android:layout_marginTop="12dp"
@ -98,7 +134,7 @@
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textSize="15sp"
android:textSize="14sp"
tools:ignore="RtlSymmetry" />
<TextView
@ -113,7 +149,7 @@
android:text="@string/SETTING_ADVANCE_RESTORE_TAB_INFO"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
@ -133,17 +169,19 @@
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginStart="15dp"
android:background="@color/c_view_divier_background" />
<LinearLayout
android:layout_width="match_parent"
android:layout_marginTop="15dp"
android:orientation="horizontal"
android:layout_marginBottom="10dp"
android:orientation="vertical"
android:layout_height="wrap_content">
<TextView
android:textColor="@color/c_text_setting_heading"
android:textSize="14sp"
android:layout_width="0dp"
android:textSize="15sp"
android:layout_width="wrap_content"
android:textStyle="bold"
android:layout_height="wrap_content"
android:layout_weight="40"
@ -151,55 +189,20 @@
android:layout_marginStart="15dp"
android:text="@string/SETTING_ADVANCE_DATA_SAVER"
/>
</LinearLayout>
<LinearLayout
android:id="@+id/pOption3"
android:layout_width="match_parent"
android:layout_height="65dp"
android:background="@xml/gx_ripple_gray"
android:orientation="horizontal"
android:weightSum="7"
android:baselineAligned="false">
<LinearLayout
android:layout_width="0dp"
android:layout_weight="6"
android:layout_height="65dp"
android:orientation="vertical"
tools:ignore="UselessParent">
<Button
android:layout_width="wrap_content"
android:layout_height="20dp"
android:layout_marginTop="12dp"
android:alpha="1"
android:background="@android:color/transparent"
android:clickable="false"
android:padding="0dp"
android:paddingStart="15dp"
android:text="@string/SETTING_ADVANCE_SHOW_IMAGES"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textSize="15sp"
tools:ignore="RtlSymmetry" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:alpha="1"
android:background="@android:color/transparent"
android:clickable="false"
android:padding="0dp"
android:paddingStart="15dp"
android:text="@string/SETTING_ADVANCE_WEB_FONTS_INFO"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:alpha="1"
android:background="@android:color/transparent"
android:clickable="false"
android:padding="0dp"
android:paddingStart="15dp"
android:text="@string/SETTING_ADVANCE_DATA_SAVER_INFO"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
<LinearLayout
@ -211,6 +214,13 @@
android:orientation="vertical"
android:layout_height="wrap_content" >
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="-1dp"
android:elevation="2dp"
android:background="@color/white"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="55dp"
@ -258,6 +268,7 @@
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
@ -308,8 +319,16 @@
android:contentDescription="@string/GENERAL_TODO" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:elevation="4dp"
android:background="@color/c_view_divier_background_inner"/>
</LinearLayout>
<LinearLayout
android:id="@+id/pOption4"
android:layout_width="match_parent"
@ -324,7 +343,7 @@
android:layout_weight="6"
android:layout_height="65dp"
android:orientation="vertical">
<Button
<TextView
android:layout_width="wrap_content"
android:layout_height="20dp"
android:layout_marginTop="12dp"
@ -337,7 +356,7 @@
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textSize="15sp"
android:textSize="14sp"
tools:ignore="RtlSymmetry" />
<TextView
@ -352,7 +371,7 @@
android:text="@string/SETTING_ADVANCE_WEB_FONTS_INFO"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
@ -372,18 +391,19 @@
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginStart="15dp"
android:background="@color/c_view_divier_background" />
<LinearLayout
android:layout_width="match_parent"
android:layout_marginTop="15dp"
android:layout_marginBottom="10dp"
android:orientation="horizontal"
android:layout_marginBottom="15dp"
android:orientation="vertical"
android:layout_height="wrap_content">
<TextView
android:textColor="@color/c_text_setting_heading"
android:textSize="14sp"
android:layout_width="0dp"
android:layout_width="wrap_content"
android:textStyle="bold"
android:layout_height="wrap_content"
android:layout_weight="40"
@ -391,6 +411,20 @@
android:layout_marginStart="15dp"
android:text="@string/SETTING_ADVANCE_MEDIA_SUB_HEADER"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:alpha="1"
android:background="@android:color/transparent"
android:clickable="false"
android:padding="0dp"
android:paddingStart="15dp"
android:text="@string/SETTING_ADVANCE_MEDIA_SUB_HEADER_INFO"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
<LinearLayout
@ -406,7 +440,7 @@
android:layout_weight="6"
android:layout_height="65dp"
android:orientation="vertical">
<Button
<TextView
android:layout_width="wrap_content"
android:layout_height="20dp"
android:layout_marginTop="12dp"
@ -419,7 +453,7 @@
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textSize="15sp"
android:textSize="14sp"
tools:ignore="RtlSymmetry" />
<TextView
@ -434,7 +468,7 @@
android:text="@string/SETTING_ADVANCE_MEDIA_INFO"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
@ -451,11 +485,6 @@
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/c_view_divier_background" />
</LinearLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -1,5 +1,6 @@
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
@ -57,18 +58,19 @@
android:layout_height="0dp"
android:layout_weight="1"/>
<ImageButton
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_marginStart="0dp"
android:scaleX="1.08"
android:scaleY="1.08"
android:layout_marginTop="1dp"
android:background="@xml/gx_ripple_default_round"
<ImageView
android:layout_width="47dp"
android:layout_height="match_parent"
android:padding="0dp"
android:layout_marginEnd="0dp"
android:layout_gravity="center_vertical"
android:layout_marginStart="6dp"
android:paddingStart="3dp"
android:onClick="onOpenInfo"
android:background="@xml/gx_ripple_gray"
android:contentDescription="@string/GENERAL_TODO"
android:src="@xml/ic_baseline_info"
android:layout_marginEnd="7dp"
android:tint="@color/c_navigation_light" />
android:src="@drawable/info"
app:tint="@color/c_icon_tint_light" />
</LinearLayout>
@ -104,7 +106,7 @@
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textSize="15sp"
android:textSize="14sp"
tools:ignore="RtlSymmetry" />
<TextView
@ -119,7 +121,7 @@
android:text="@string/SETTING_CLEAR_CACHE_OPTION_1"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
@ -140,11 +142,6 @@
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/c_view_divier_background" />
<LinearLayout
android:id="@+id/pOption2"
android:layout_width="match_parent"
@ -175,7 +172,7 @@
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textSize="15sp"
android:textSize="14sp"
tools:ignore="RtlSymmetry" />
<TextView
@ -190,7 +187,7 @@
android:text="@string/SETTING_CLEAR_CACHE_OPTION_2"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
@ -211,11 +208,6 @@
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/c_view_divier_background" />
<LinearLayout
android:id="@+id/pOption3"
android:tag="2"
@ -246,7 +238,7 @@
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textSize="15sp"
android:textSize="14sp"
tools:ignore="RtlSymmetry" />
<TextView
android:layout_width="wrap_content"
@ -260,7 +252,7 @@
android:text="@string/SETTING_CLEAR_CACHE_OPTION_3"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
@ -281,11 +273,6 @@
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/c_view_divier_background" />
<LinearLayout
android:id="@+id/pOption4"
android:tag="3"
@ -316,7 +303,7 @@
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textSize="15sp"
android:textSize="14sp"
tools:ignore="RtlSymmetry" />
<TextView
android:layout_width="wrap_content"
@ -330,7 +317,7 @@
android:text="@string/SETTING_CLEAR_CACHE_OPTION_4"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
@ -352,13 +339,8 @@
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/c_view_divier_background" />
<LinearLayout
android:id="@+id/pOption6"
android:id="@+id/pOption5"
android:tag="4"
android:layout_width="match_parent"
android:layout_height="65dp"
@ -387,7 +369,7 @@
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textSize="15sp"
android:textSize="14sp"
tools:ignore="RtlSymmetry" />
<TextView
android:layout_width="wrap_content"
@ -401,7 +383,7 @@
android:text="@string/SETTING_CLEAR_CACHE_OPTION_6"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
@ -410,7 +392,7 @@
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:id="@+id/pClearChecked_6"
android:id="@+id/pClearChecked_5"
android:tag="4"
android:checked="true"
android:layout_marginStart="100dp"
@ -422,13 +404,8 @@
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/c_view_divier_background" />
<LinearLayout
android:id="@+id/pOption7"
android:id="@+id/pOption6"
android:tag="5"
android:layout_width="match_parent"
android:layout_height="65dp"
@ -457,7 +434,7 @@
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textSize="15sp"
android:textSize="14sp"
tools:ignore="RtlSymmetry" />
<TextView
android:layout_width="wrap_content"
@ -471,7 +448,7 @@
android:text="@string/SETTING_CLEAR_CACHE_OPTION_7"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
@ -480,7 +457,7 @@
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:id="@+id/pClearChecked_7"
android:id="@+id/pClearChecked_6"
android:tag="5"
android:layout_marginStart="100dp"
android:checked="true"
@ -492,13 +469,8 @@
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/c_view_divier_background" />
<LinearLayout
android:id="@+id/pOption8"
android:id="@+id/pOption7"
android:tag="6"
android:layout_width="match_parent"
android:layout_height="65dp"
@ -527,7 +499,7 @@
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textSize="15sp"
android:textSize="14sp"
tools:ignore="RtlSymmetry" />
<TextView
android:layout_width="wrap_content"
@ -541,7 +513,7 @@
android:text="@string/SETTING_CLEAR_CACHE_OPTION_8"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
@ -550,7 +522,7 @@
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:id="@+id/pClearChecked_8"
android:id="@+id/pClearChecked_7"
android:tag="6"
android:layout_marginStart="100dp"
android:checked="true"
@ -562,14 +534,8 @@
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginBottom="0dp"
android:background="@color/c_view_divier_background" />
<LinearLayout
android:id="@+id/pOption9"
android:id="@+id/pOption8"
android:tag="7"
android:layout_width="match_parent"
android:layout_height="65dp"
@ -598,7 +564,7 @@
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textSize="15sp"
android:textSize="14sp"
tools:ignore="RtlSymmetry" />
<TextView
android:layout_width="wrap_content"
@ -612,7 +578,7 @@
android:text="@string/SETTING_CLEAR_CACHE_OPTION_9"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
@ -621,7 +587,7 @@
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:id="@+id/pClearChecked_9"
android:id="@+id/pClearChecked_8"
android:tag="7"
android:layout_marginStart="100dp"
android:checked="false"

View File

@ -2,6 +2,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="@color/c_background"
tools:context="com.darkweb.genesissearchengine.appManager.settingManager.generalManager.settingGeneralController">
<ScrollView
@ -17,7 +18,7 @@
<LinearLayout
android:id="@+id/pHeaderContainerTop"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_height="48dp"
android:elevation="8dp"
android:background="@color/c_background"
android:clickable="true"
@ -55,45 +56,47 @@
android:layout_height="0dp"
android:layout_weight="1"/>
<ImageButton
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_marginStart="0dp"
android:scaleX="1.08"
android:scaleY="1.08"
android:layout_marginTop="1dp"
android:background="@xml/gx_ripple_default_round"
<ImageView
android:layout_width="47dp"
android:layout_height="match_parent"
android:padding="0dp"
android:layout_marginEnd="0dp"
android:layout_gravity="center_vertical"
android:layout_marginStart="6dp"
android:paddingStart="3dp"
android:onClick="onOpenInfo"
android:background="@xml/gx_ripple_gray"
android:contentDescription="@string/GENERAL_TODO"
android:src="@xml/ic_baseline_info"
android:layout_marginEnd="7dp"
android:tint="@color/c_navigation_light" />
android:src="@drawable/info"
app:tint="@color/c_icon_tint_light" />
</LinearLayout>
<!-- Title Header -->
<LinearLayout
android:layout_width="match_parent"
android:layout_marginTop="15dp"
android:orientation="horizontal"
android:layout_height="wrap_content">
<TextView
android:textColor="@color/c_text_setting_heading"
android:textSize="15sp"
android:layout_width="0dp"
android:textStyle="bold"
android:layout_height="wrap_content"
android:layout_weight="40"
android:layout_marginTop="00dp"
android:layout_marginStart="15dp"
android:text="@string/SETTING_GENERAL_HOME"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@xml/gx_ripple_gray"
android:orientation="vertical">
<Button
android:layout_width="wrap_content"
android:layout_height="20dp"
android:layout_marginTop="12dp"
android:alpha="1"
android:background="@android:color/transparent"
android:clickable="false"
android:padding="0dp"
android:paddingStart="15dp"
android:text="@string/SETTING_GENERAL_HOME"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textSize="15sp"
tools:ignore="RtlSymmetry" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -107,7 +110,7 @@
android:text="@string/SETTING_GENERAL_HOME_INFO"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
@ -116,9 +119,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:background="@xml/sx_border_left"
android:layout_marginStart="15dp"
android:paddingStart="5dp"
android:layout_marginStart="0dp"
android:paddingStart="0dp"
android:weightSum="7"
tools:ignore="RtlSymmetry">
@ -136,7 +138,7 @@
android:layout_marginStart="0dp"
android:orientation="vertical">
<Button
<TextView
android:layout_width="wrap_content"
android:layout_height="20dp"
android:layout_marginTop="12dp"
@ -149,7 +151,7 @@
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textSize="15sp"
android:textSize="14sp"
tools:ignore="RtlSymmetry" />
<TextView
@ -164,7 +166,7 @@
android:text="@string/SETTING_GENERAL_OPEN_URL_IN_NEW_tAB_INFO"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
@ -184,7 +186,287 @@
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:paddingTop="10dp"
android:layout_marginStart="15dp"
android:background="@color/c_view_divier_background"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_marginTop="10dp"
android:orientation="horizontal"
android:layout_height="wrap_content">
<TextView
android:textColor="@color/c_text_setting_heading"
android:textSize="15sp"
android:layout_width="0dp"
android:textStyle="bold"
android:layout_height="wrap_content"
android:layout_weight="40"
android:layout_marginTop="00dp"
android:layout_marginStart="15dp"
android:text="@string/SETTING_GENERAL_THEME"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@xml/gx_ripple_gray"
android:orientation="vertical"
android:weightSum="7">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:alpha="1"
android:background="@android:color/transparent"
android:clickable="false"
android:padding="0dp"
android:paddingStart="15dp"
android:text="@string/SETTING_GENERAL_THEME_INFO"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:background="@xml/sx_border_left"
android:layout_marginStart="15dp"
android:paddingStart="4dp"
android:layout_marginTop="15dp"
android:orientation="vertical"
android:layout_height="wrap_content"
tools:ignore="RtlSymmetry">
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="-1dp"
android:elevation="2dp"
android:background="@color/white"/>
<LinearLayout
android:id="@+id/pOption1"
android:layout_width="match_parent"
android:layout_height="55dp"
android:background="@xml/gx_ripple_gray"
android:clickable="true"
android:paddingStart="0dp"
android:onClick="onSelectTheme"
android:orientation="horizontal"
android:weightSum="8"
android:focusable="true"
tools:ignore="RtlSymmetry">
<LinearLayout
android:layout_width="0dp"
android:layout_weight="7"
android:layout_height="55dp"
android:orientation="vertical">
<Button
android:layout_width="wrap_content"
android:layout_height="20dp"
android:layout_marginTop="18dp"
android:alpha="1"
android:paddingStart="15dp"
android:background="@android:color/transparent"
android:clickable="false"
android:padding="0dp"
android:text="@string/SETTING_GENERAL_THEME_DARK"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textSize="15sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
<RadioButton
android:id="@+id/pThemeDark"
android:layout_width="0dp"
android:layout_height="match_parent"
android:clickable="false"
android:layout_weight="1"
android:layout_marginEnd="10dp"
android:layout_marginStart="50dp"
android:buttonTint="@color/c_radio_tint"
android:background="@android:color/transparent"
android:src="@xml/ic_arrow_right"
android:contentDescription="@string/GENERAL_TODO" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/c_view_divier_background_inner"/>
<LinearLayout
android:id="@+id/pOption2"
android:layout_width="match_parent"
android:layout_height="55dp"
android:background="@xml/gx_ripple_gray"
android:clickable="true"
android:onClick="onSelectTheme"
android:orientation="horizontal"
android:weightSum="8"
android:focusable="true"
tools:ignore="RtlSymmetry">
<LinearLayout
android:layout_width="0dp"
android:layout_weight="7"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginStart="0dp"
android:alpha="1"
android:background="@android:color/transparent"
android:clickable="false"
android:text="@string/SETTING_GENERAL_THEME_LIGHT"
android:padding="0dp"
android:paddingStart="15dp"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textSize="15sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
<RadioButton
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginEnd="10dp"
android:id="@+id/pThemeLight"
android:layout_weight="1"
android:background="@android:color/transparent"
android:layout_marginStart="50dp"
android:src="@xml/ic_arrow_right"
android:buttonTint="@color/c_radio_tint"
android:clickable="false"
android:contentDescription="@string/GENERAL_TODO" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/c_view_divier_background_inner"/>
<LinearLayout
android:id="@+id/pOption3"
android:layout_width="match_parent"
android:layout_height="55dp"
android:background="@xml/gx_ripple_gray"
android:clickable="true"
android:onClick="onSelectTheme"
android:orientation="horizontal"
android:weightSum="8"
android:focusable="true"
tools:ignore="RtlSymmetry">
<LinearLayout
android:layout_width="0dp"
android:layout_weight="7"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginBottom="5dp"
android:layout_marginStart="0dp"
android:alpha="1"
android:background="@android:color/transparent"
android:clickable="false"
android:text="@string/SETTING_GENERAL_THEME_DEFAULT"
android:padding="0dp"
android:paddingStart="15dp"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textSize="15sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
<RadioButton
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginEnd="10dp"
android:id="@+id/pThemeDefault"
android:layout_weight="1"
android:background="@android:color/transparent"
android:layout_marginStart="50dp"
android:src="@xml/ic_arrow_right"
android:buttonTint="@color/c_radio_tint"
android:clickable="false"
android:contentDescription="@string/GENERAL_TODO" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:elevation="4dp"
android:background="@color/c_view_divier_background_inner"/>
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="20dp"
android:layout_marginBottom="7dp"
android:layout_marginStart="15dp"
android:background="@color/c_view_divier_background"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_marginTop="5dp"
android:layout_marginBottom="15dp"
android:orientation="vertical"
android:layout_height="wrap_content">
<TextView
android:textColor="@color/c_text_setting_heading"
android:textSize="15sp"
android:layout_width="wrap_content"
android:textStyle="bold"
android:layout_height="wrap_content"
android:layout_weight="40"
android:layout_marginTop="00dp"
android:layout_marginStart="15dp"
android:text="@string/SETTING_GENERAL"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="0dp"
android:alpha="1"
android:background="@android:color/transparent"
android:clickable="false"
android:padding="0dp"
android:paddingStart="15dp"
android:text="@string/SETTING_GENERAL_INFO_OPTION"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
@ -202,10 +484,10 @@
android:clickable="false"
android:orientation="vertical">
<Button
<TextView
android:layout_width="wrap_content"
android:layout_height="20dp"
android:layout_marginTop="12dp"
android:layout_marginTop="8dp"
android:alpha="1"
android:background="@android:color/transparent"
android:clickable="false"
@ -215,7 +497,7 @@
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textSize="15sp"
android:textSize="14sp"
tools:ignore="RtlSymmetry" />
<TextView
@ -231,7 +513,7 @@
android:text="@string/SETTING_GENERAL_FULLSCREEN_BROWSING_INFO"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
@ -247,11 +529,6 @@
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/c_view_divier_background"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="65dp"
@ -267,7 +544,7 @@
android:clickable="false"
android:orientation="vertical">
<Button
<TextView
android:layout_width="wrap_content"
android:layout_height="20dp"
android:layout_marginTop="12dp"
@ -280,7 +557,7 @@
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textSize="15sp"
android:textSize="14sp"
tools:ignore="RtlSymmetry" />
<TextView
@ -295,7 +572,7 @@
android:text="@string/SETTING_GENERAL_LANGUAGE_INFO"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
@ -311,227 +588,6 @@
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/c_view_divier_background"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@xml/gx_ripple_gray"
android:orientation="vertical"
android:weightSum="7">
<Button
android:layout_width="wrap_content"
android:layout_height="20dp"
android:layout_marginTop="12dp"
android:alpha="1"
android:background="@android:color/transparent"
android:clickable="false"
android:padding="0dp"
android:paddingStart="15dp"
android:text="@string/SETTING_GENERAL_THEME"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textSize="15sp"
tools:ignore="RtlSymmetry" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:alpha="1"
android:background="@android:color/transparent"
android:clickable="false"
android:padding="0dp"
android:paddingStart="15dp"
android:text="@string/SETTING_GENERAL_THEME_INFO"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_marginTop="10dp"
android:background="@xml/sx_border_left"
android:layout_marginStart="15dp"
android:paddingStart="5dp"
android:orientation="vertical"
android:layout_height="wrap_content"
tools:ignore="RtlSymmetry">
<LinearLayout
android:id="@+id/pOption1"
android:layout_width="match_parent"
android:layout_height="55dp"
android:background="@xml/gx_ripple_gray"
android:clickable="true"
android:paddingStart="0dp"
android:onClick="onSelectTheme"
android:orientation="horizontal"
android:weightSum="8"
android:focusable="true"
tools:ignore="RtlSymmetry">
<LinearLayout
android:layout_width="0dp"
android:layout_weight="7"
android:layout_height="55dp"
android:orientation="vertical">
<Button
android:layout_width="wrap_content"
android:layout_height="20dp"
android:layout_marginTop="18dp"
android:alpha="1"
android:paddingStart="15dp"
android:background="@android:color/transparent"
android:clickable="false"
android:padding="0dp"
android:text="@string/SETTING_GENERAL_THEME_DARK"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textSize="15sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
<RadioButton
android:id="@+id/pThemeDark"
android:layout_width="0dp"
android:layout_height="match_parent"
android:clickable="false"
android:layout_weight="1"
android:layout_marginEnd="10dp"
android:layout_marginStart="50dp"
android:buttonTint="@color/c_radio_tint"
android:background="@android:color/transparent"
android:src="@xml/ic_arrow_right"
android:contentDescription="@string/GENERAL_TODO" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/c_view_divier_background_inner"/>
<LinearLayout
android:id="@+id/pOption2"
android:layout_width="match_parent"
android:layout_height="55dp"
android:background="@xml/gx_ripple_gray"
android:clickable="true"
android:onClick="onSelectTheme"
android:orientation="horizontal"
android:weightSum="8"
android:focusable="true"
tools:ignore="RtlSymmetry">
<LinearLayout
android:layout_width="0dp"
android:layout_weight="7"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginStart="0dp"
android:alpha="1"
android:background="@android:color/transparent"
android:clickable="false"
android:text="@string/SETTING_GENERAL_THEME_LIGHT"
android:padding="0dp"
android:paddingStart="15dp"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textSize="15sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
<RadioButton
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginEnd="10dp"
android:id="@+id/pThemeLight"
android:layout_weight="1"
android:background="@android:color/transparent"
android:layout_marginStart="50dp"
android:src="@xml/ic_arrow_right"
android:buttonTint="@color/c_radio_tint"
android:clickable="false"
android:contentDescription="@string/GENERAL_TODO" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/c_view_divier_background_inner"/>
<LinearLayout
android:id="@+id/pOption3"
android:layout_width="match_parent"
android:layout_height="55dp"
android:background="@xml/gx_ripple_gray"
android:clickable="true"
android:onClick="onSelectTheme"
android:orientation="horizontal"
android:weightSum="8"
android:focusable="true"
tools:ignore="RtlSymmetry">
<LinearLayout
android:layout_width="0dp"
android:layout_weight="7"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginStart="0dp"
android:alpha="1"
android:background="@android:color/transparent"
android:clickable="false"
android:text="@string/SETTING_GENERAL_THEME_DEFAULT"
android:padding="0dp"
android:paddingStart="15dp"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textSize="15sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
<RadioButton
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginEnd="10dp"
android:id="@+id/pThemeDefault"
android:layout_weight="1"
android:background="@android:color/transparent"
android:layout_marginStart="50dp"
android:src="@xml/ic_arrow_right"
android:buttonTint="@color/c_radio_tint"
android:clickable="false"
android:contentDescription="@string/GENERAL_TODO" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</ScrollView>

View File

@ -1,4 +1,5 @@
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
@ -55,18 +56,19 @@
android:layout_height="0dp"
android:layout_weight="1"/>
<ImageButton
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_marginStart="0dp"
android:scaleX="1.08"
android:scaleY="1.08"
android:layout_marginTop="1dp"
android:layout_marginEnd="7dp"
android:background="@xml/gx_ripple_default_round"
<ImageView
android:layout_width="47dp"
android:layout_height="match_parent"
android:padding="0dp"
android:layout_marginEnd="0dp"
android:layout_gravity="center_vertical"
android:layout_marginStart="6dp"
android:paddingStart="3dp"
android:onClick="onOpenInfo"
android:background="@xml/gx_ripple_gray"
android:contentDescription="@string/GENERAL_TODO"
android:src="@xml/ic_baseline_info"
android:tint="@color/c_navigation_light" />
android:src="@drawable/info"
app:tint="@color/c_icon_tint_light" />
</LinearLayout>
@ -81,7 +83,7 @@
android:orientation="horizontal"
android:weightSum="7">
<Button
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="6"
@ -89,12 +91,13 @@
android:background="@android:color/transparent"
android:clickable="false"
android:padding="0dp"
android:layout_marginTop="20dp"
android:paddingStart="15dp"
android:text="@string/SETTING_ORBOT_LIST_VIEW"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textSize="15sp"
android:textSize="14sp"
tools:ignore="RtlSymmetry" />
<com.google.android.material.switchmaterial.SwitchMaterial

View File

@ -2,6 +2,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="@color/c_background"
tools:context="com.darkweb.genesissearchengine.appManager.settingManager.notificationManager.settingNotificationController">
<ScrollView
@ -55,108 +56,179 @@
android:layout_height="0dp"
android:layout_weight="1"/>
<ImageButton
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_marginStart="0dp"
android:scaleX="1.08"
android:scaleY="1.08"
android:layout_marginEnd="7dp"
android:layout_marginTop="1dp"
android:background="@xml/gx_ripple_default_round"
<ImageView
android:layout_width="47dp"
android:layout_height="match_parent"
android:padding="0dp"
android:layout_marginEnd="0dp"
android:layout_gravity="center_vertical"
android:layout_marginStart="6dp"
android:paddingStart="3dp"
android:onClick="onOpenInfo"
android:background="@xml/gx_ripple_gray"
android:contentDescription="@string/GENERAL_TODO"
android:src="@xml/ic_baseline_info"
android:tint="@color/c_navigation_light" />
android:src="@drawable/info"
app:tint="@color/c_icon_tint_light" />
</LinearLayout>
<!-- Title Header -->
<LinearLayout
android:id="@+id/pOption2"
android:layout_width="match_parent"
android:layout_height="55dp"
android:onClick="onSaveLocalNotificationSettings"
android:background="@xml/gx_ripple_gray"
android:orientation="horizontal"
android:weightSum="7">
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="6"
android:layout_marginTop="15dp"
android:layout_marginBottom="15dp"
android:orientation="vertical"
android:layout_height="wrap_content">
<TextView
android:textColor="@color/c_text_setting_heading"
android:textSize="15sp"
android:layout_width="wrap_content"
android:textStyle="bold"
android:layout_height="wrap_content"
android:layout_weight="40"
android:layout_marginTop="00dp"
android:layout_marginStart="15dp"
android:text="@string/SETTING_NOTIFICATION_HEADER_1"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:alpha="1"
android:id="@+id/pHomePageText"
android:background="@android:color/transparent"
android:clickable="false"
android:padding="0dp"
android:paddingStart="15dp"
android:text="@string/SETTING_NOTIFICATION_DISABLE_STATUS_NOTIFICATION"
android:text="@string/SETTING_NOTIFICATION_HEADER_1_INFO"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textSize="15sp"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="10dp"
android:background="@xml/gx_ripple_gray"
android:onClick="onSaveLocalNotificationSettings"
android:orientation="horizontal"
android:weightSum="7">
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="6"
android:clickable="false"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="20dp"
android:layout_marginTop="8dp"
android:alpha="1"
android:background="@android:color/transparent"
android:clickable="false"
android:padding="0dp"
android:paddingStart="15dp"
android:text="@string/SETTING_NOTIFICATION_DISABLE_STATUS_NOTIFICATION"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textSize="14sp"
tools:ignore="RtlSymmetry" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:layout_marginEnd="30dp"
android:alpha="1"
android:background="@android:color/transparent"
android:clickable="false"
android:padding="0dp"
android:paddingStart="15dp"
android:text="@string/SETTING_NOTIFICATION_DISABLE_STATUS_NOTIFICATION_INFO"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
<com.google.android.material.switchmaterial.SwitchMaterial
android:layout_width="0dp"
android:id="@+id/pNotificationManual"
android:layout_height="match_parent"
android:clickable="false"
android:id="@+id/pNotificationManual"
android:layout_marginEnd="10dp"
android:theme="@style/SCBSwitch"
android:layout_weight="1"
android:background="@android:color/transparent">
</com.google.android.material.switchmaterial.SwitchMaterial>
android:theme="@style/SCBSwitch"
android:contentDescription="@string/GENERAL_TODO" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/c_view_divier_background"/>
<LinearLayout
android:id="@+id/pOption3"
android:layout_width="match_parent"
android:layout_height="55dp"
android:onClick="onSwitchLogUIMode"
android:layout_height="65dp"
android:background="@xml/gx_ripple_gray"
android:onClick="onOpenNotificationSettings"
android:orientation="horizontal"
android:weightSum="7">
<Button
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_height="65dp"
android:layout_weight="6"
android:alpha="1"
android:background="@android:color/transparent"
android:clickable="false"
android:padding="0dp"
android:paddingStart="15dp"
android:text="@string/SETTING_NOTIFICATION_OPEN_NOTIFICATION_MANAGER"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textSize="15sp"
tools:ignore="RtlSymmetry" />
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="20dp"
android:layout_marginTop="12dp"
android:alpha="1"
android:background="@android:color/transparent"
android:clickable="false"
android:padding="0dp"
android:paddingStart="15dp"
android:text="@string/SETTING_NOTIFICATION_OPEN_NOTIFICATION_MANAGER"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textSize="14sp"
tools:ignore="RtlSymmetry" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:alpha="1"
android:background="@android:color/transparent"
android:clickable="false"
android:padding="0dp"
android:paddingStart="15dp"
android:text="@string/SETTING_NOTIFICATION_OPEN_NOTIFICATION_MANAGER_INFO"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
<ImageButton
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@android:color/transparent"
android:scaleX="1"
android:scaleY="1"
android:tint="@color/c_navigation_tint"
android:src="@xml/ic_arrow_right"
android:contentDescription="@string/GENERAL_TODO" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/c_view_divier_background"/>
</LinearLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -1,4 +1,5 @@
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
@ -55,23 +56,59 @@
android:layout_height="0dp"
android:layout_weight="1"/>
<ImageButton
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_marginStart="0dp"
android:scaleX="1.08"
android:scaleY="1.08"
android:layout_marginTop="1dp"
android:layout_marginEnd="7dp"
android:background="@xml/gx_ripple_default_round"
<ImageView
android:layout_width="47dp"
android:layout_height="match_parent"
android:padding="0dp"
android:layout_marginEnd="0dp"
android:layout_gravity="center_vertical"
android:layout_marginStart="6dp"
android:paddingStart="3dp"
android:onClick="onOpenInfo"
android:background="@xml/gx_ripple_gray"
android:contentDescription="@string/GENERAL_TODO"
android:src="@xml/ic_baseline_info"
android:tint="@color/c_navigation_light" />
android:src="@drawable/info"
app:tint="@color/c_icon_tint_light" />
</LinearLayout>
<!-- Title Header -->
<LinearLayout
android:layout_width="match_parent"
android:layout_marginTop="15dp"
android:layout_marginBottom="15dp"
android:orientation="vertical"
android:layout_height="wrap_content">
<TextView
android:textColor="@color/c_text_setting_heading"
android:textSize="15sp"
android:layout_width="wrap_content"
android:textStyle="bold"
android:layout_height="wrap_content"
android:layout_weight="40"
android:layout_marginTop="00dp"
android:layout_marginStart="15dp"
android:text="@string/SETTING_PRIVACY_CLEAR_PRIVATE_HEADER"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:alpha="1"
android:id="@+id/pHomePageText"
android:background="@android:color/transparent"
android:clickable="false"
android:padding="0dp"
android:paddingStart="15dp"
android:text="@string/SETTING_PRIVACY_CLEAR_PRIVATE_HEADER_INFO"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
<LinearLayout
android:id="@+id/pOption0"
android:layout_width="match_parent"
@ -89,7 +126,7 @@
android:clickable="false"
android:orientation="vertical">
<Button
<TextView
android:layout_width="wrap_content"
android:layout_height="20dp"
android:layout_marginTop="12dp"
@ -102,7 +139,7 @@
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textSize="15sp"
android:textSize="14sp"
tools:ignore="RtlSymmetry" />
<TextView
@ -117,7 +154,7 @@
android:text="@string/SETTING_PRIVACY_JAVASCRIPT_INFO"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
@ -135,11 +172,6 @@
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/c_view_divier_background"/>
<LinearLayout
android:id="@+id/pOption1"
android:layout_width="match_parent"
@ -158,7 +190,7 @@
android:clickable="false"
android:orientation="vertical">
<Button
<TextView
android:layout_width="wrap_content"
android:layout_height="20dp"
android:layout_marginTop="12dp"
@ -171,7 +203,7 @@
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textSize="15sp"
android:textSize="14sp"
tools:ignore="RtlSymmetry" />
<TextView
@ -186,7 +218,7 @@
android:text="@string/SETTING_PRIVACY_DONOT_TRACK_INFO"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
@ -204,11 +236,6 @@
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/c_view_divier_background"/>
<LinearLayout
android:id="@+id/pOption2"
android:layout_width="match_parent"
@ -227,7 +254,7 @@
android:clickable="false"
android:orientation="vertical">
<Button
<TextView
android:layout_width="wrap_content"
android:layout_height="20dp"
android:layout_marginTop="12dp"
@ -240,7 +267,7 @@
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textSize="15sp"
android:textSize="14sp"
tools:ignore="RtlSymmetry" />
<TextView
@ -255,7 +282,7 @@
android:text="@string/SETTING_PRIVACY_TRACKING_PROTECTION_INFO"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
@ -274,16 +301,10 @@
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/c_view_divier_background"/>
<LinearLayout
android:id="@+id/pOption3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:orientation="horizontal"
android:weightSum="7">
@ -294,7 +315,7 @@
android:orientation="vertical"
tools:ignore="UselessParent">
<Button
<TextView
android:layout_width="wrap_content"
android:layout_height="20dp"
android:layout_marginTop="12dp"
@ -307,7 +328,7 @@
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textSize="15sp"
android:textSize="14sp"
tools:ignore="RtlSymmetry" />
<TextView
@ -323,19 +344,27 @@
android:text="@string/SETTING_PRIVACY_COOKIES_INFO"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
<RadioGroup
<LinearLayout
android:layout_width="match_parent"
android:layout_marginTop="10dp"
android:background="@xml/sx_border_left"
android:paddingStart="5dp"
android:paddingStart="4dp"
android:layout_marginStart="15dp"
android:layout_height="wrap_content"
android:orientation="vertical"
tools:ignore="RtlSymmetry">
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="-1dp"
android:elevation="2dp"
android:background="@color/white"/>
<LinearLayout
android:id="@+id/pCookieOption1"
@ -439,12 +468,21 @@
android:text="@string/SETTING_PRIVACY_COOKIES_OPTION4"
tools:ignore="RtlHardcoded" />
</LinearLayout>
</RadioGroup>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:elevation="4dp"
android:layout_marginTop="0.5dp"
android:background="@color/c_view_divier_background_inner"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/pOption4"
android:layout_width="match_parent"
@ -464,7 +502,7 @@
android:clickable="false"
android:orientation="vertical">
<Button
<TextView
android:layout_width="wrap_content"
android:layout_height="20dp"
android:layout_marginTop="12dp"
@ -472,7 +510,7 @@
android:background="@android:color/transparent"
android:clickable="false"
android:padding="0dp"
android:paddingStart="15dp"
android:paddingStart="14dp"
android:text="@string/SETTING_PRIVACY_CLEAR_PRIVATE_DATA"
android:textAlignment="textStart"
android:textAllCaps="false"
@ -493,7 +531,7 @@
android:text="@string/SETTING_PRIVACY_CLEAR_PRIVATE_DATA_INFO"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
@ -511,11 +549,6 @@
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/c_view_divier_background"/>
</LinearLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -2,6 +2,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="@color/c_background"
tools:context="com.darkweb.genesissearchengine.appManager.settingManager.searchEngineManager.settingSearchController">
<ScrollView
@ -57,18 +58,19 @@
android:layout_height="0dp"
android:layout_weight="1"/>
<ImageButton
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_marginStart="0dp"
android:scaleX="1.08"
android:scaleY="1.08"
android:layout_marginEnd="7dp"
android:layout_marginTop="1dp"
android:background="@xml/gx_ripple_default_round"
<ImageView
android:layout_width="47dp"
android:layout_height="match_parent"
android:padding="0dp"
android:layout_marginEnd="0dp"
android:layout_gravity="center_vertical"
android:layout_marginStart="6dp"
android:paddingStart="3dp"
android:onClick="onOpenInfo"
android:background="@xml/gx_ripple_gray"
android:contentDescription="@string/GENERAL_TODO"
android:src="@xml/ic_baseline_info"
android:tint="@color/c_navigation_light" />
android:src="@drawable/info"
app:tint="@color/c_icon_tint_light" />
</LinearLayout>
<!-- Title Header -->
@ -76,21 +78,44 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_marginTop="15dp"
android:layout_marginBottom="15dp"
android:orientation="horizontal"
android:layout_marginBottom="10dp"
android:orientation="vertical"
android:layout_height="wrap_content">
<TextView
android:textColor="@color/c_text_setting_heading"
android:textSize="14sp"
android:layout_width="0dp"
android:textSize="15sp"
android:layout_width="wrap_content"
android:textStyle="bold"
android:layout_height="wrap_content"
android:layout_weight="40"
android:layout_marginTop="00dp"
android:layout_marginStart="15dp"
android:text="@string/SETTING_SEARCH_HEADER_1"/>
android:text="@string/SETTING_SEARCH_HEADER_1"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:alpha="1"
android:id="@+id/pHomePageText"
android:background="@android:color/transparent"
android:clickable="false"
android:padding="0dp"
android:paddingStart="15dp"
android:text="@string/SETTING_SEARCH_HEADER_1_INFO"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginStart="15dp"
android:background="@color/c_view_divier_background"/>
<LinearLayout
android:id="@+id/pOption1"
android:layout_width="match_parent"
@ -145,7 +170,7 @@
android:text="@string/SETTING_SEARCH_DEFAULT"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
@ -167,6 +192,7 @@
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginStart="15dp"
android:background="@color/c_view_divier_background"/>
<LinearLayout
@ -224,7 +250,7 @@
android:text="@string/SETTING_SEARCH_DUCK"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
@ -246,6 +272,7 @@
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginStart="15dp"
android:background="@color/c_view_divier_background"/>
<LinearLayout
@ -302,7 +329,7 @@
android:text="@string/SETTING_SEARCH_GOOGLE"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
@ -324,6 +351,7 @@
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginStart="15dp"
android:background="@color/c_view_divier_background"/>
<LinearLayout
@ -380,7 +408,7 @@
android:text="@string/SETTING_SEARCH_AMAZON"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
@ -402,6 +430,7 @@
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginStart="15dp"
android:background="@color/c_view_divier_background"/>
<LinearLayout
@ -458,7 +487,7 @@
android:text="@string/SETTING_SEARCH_BING"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
@ -480,18 +509,19 @@
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginStart="15dp"
android:background="@color/c_view_divier_background"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_marginTop="15dp"
android:layout_marginBottom="10dp"
android:orientation="horizontal"
android:layout_marginBottom="15dp"
android:orientation="vertical"
android:layout_height="wrap_content">
<TextView
android:textColor="@color/c_text_setting_heading"
android:textSize="14sp"
android:layout_width="0dp"
android:textSize="15sp"
android:layout_width="wrap_content"
android:textStyle="bold"
android:layout_height="wrap_content"
android:layout_weight="40"
@ -499,6 +529,20 @@
android:layout_marginStart="15dp"
android:text="@string/SETTING_SEARCH_HEADER_2"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:alpha="1"
android:background="@android:color/transparent"
android:clickable="false"
android:padding="0dp"
android:paddingStart="15dp"
android:text="@string/SETTING_SEARCH_HEADER_2_INFO"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
<LinearLayout
@ -506,7 +550,6 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="65dp"
android:paddingBottom="10dp"
android:background="@xml/gx_ripple_gray"
android:clickable="true"
android:onClick="setSearchHistory"
@ -519,10 +562,10 @@
android:layout_weight="6"
android:layout_height="wrap_content"
android:orientation="vertical">
<Button
<TextView
android:layout_width="wrap_content"
android:layout_height="20dp"
android:layout_marginTop="6dp"
android:layout_marginTop="3dp"
android:alpha="1"
android:background="@android:color/transparent"
android:clickable="false"
@ -532,7 +575,7 @@
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textSize="15sp"
android:textSize="14sp"
tools:ignore="RtlSymmetry" />
<TextView
@ -548,7 +591,7 @@
android:text="@string/SETTING_SEARCH_HISTORY_INFO"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
@ -569,11 +612,6 @@
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/c_view_divier_background"/>
<LinearLayout
android:id="@+id/pOption7"
android:layout_width="match_parent"
@ -592,7 +630,7 @@
android:layout_weight="6"
android:layout_height="wrap_content"
android:orientation="vertical">
<Button
<TextView
android:layout_width="wrap_content"
android:layout_height="20dp"
android:layout_marginTop="6dp"
@ -605,7 +643,7 @@
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textSize="15sp"
android:textSize="14sp"
tools:ignore="RtlSymmetry" />
<TextView
@ -621,7 +659,7 @@
android:text="@string/SETTING_SEARCH_SUGGESTION_INFO"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
@ -641,11 +679,6 @@
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/c_view_divier_background"/>
</LinearLayout>
</ScrollView>

View File

@ -3,13 +3,14 @@
<color name="c_background_inverted">#ffffff</color>
<color name="c_view_divier_background_inner">#0f0f0f</color>
<color name="c_view_divier_background_inner_v1">#666666</color>
<color name="c_view_divier_background">#141316</color>
<color name="c_view_divier_background">#0f0f0f</color>
<color name="c_text_v1">#ffffff</color>
<color name="c_text_v2">#b3b3b3</color>
<color name="c_text_v3">#666666</color>
<color name="c_text_v4">#a6a6a6</color>
<color name="c_text_v5">#ffffff</color>
<color name="c_icon_tint">#7591bd</color>
<color name="c_icon_tint">#ffffff</color>
<color name="c_icon_tint_light">#a6a6a6</color>
<color name="c_text_setting_heading">#ffad33</color>
<color name="c_button_text_v1">#ffffff</color>
<color name="c_button_text_v1_inverted">#3385ff</color>
@ -34,7 +35,7 @@
<color name="c_ripple_v1">#0c0b0e</color>
<color name="c_ripple_v2">#ededed</color>
<color name="c_button_text">#1c1b21</color>
<color name="c_button_background">#ffad33</color>
<color name="c_button_background">#a6a6a6</color>
<color name="c_alert_background">#3c3946</color>
<color name="c_view_divier_background_v1">#24222a</color>
<color name="c_view_divier_background_v2">#302e38</color>
@ -49,6 +50,8 @@
<color name="c_text_home_menu">#ffffff</color>
<color name="c_hint_text">#b3b3b3</color>
<color name="c_list_item_current">#0c0b0e</color>
<color name="c_lock_tint">#f2f2f2</color>
<color name="c_text_v6">#a6a6a6</color>
<color name="c_alert_text">#ffffff</color>
<color name="c_alert_text_inverted">#242B64</color>

View File

@ -4,13 +4,15 @@
<color name="c_background_inverted">#1c1b21</color>
<color name="c_view_divier_background_inner">#ebebeb</color>
<color name="c_view_divier_background_inner_v1">#e6e6e6</color>
<color name="c_view_divier_background">#f2f2f2</color>
<color name="c_text_v1">#192234</color>
<color name="c_view_divier_background">#e6e6e6</color>
<color name="c_text_v1">#111722</color>
<color name="c_text_v2">#999999</color>
<color name="c_text_v3">#bfbfbf</color>
<color name="c_text_v4">#425e8a</color>
<color name="c_text_v5">#000000</color>
<color name="c_text_v6">#8c8c8c</color>
<color name="c_icon_tint">#425e8a</color>
<color name="c_icon_tint_light">#7591bd</color>
<color name="c_text_setting_heading">#3385ff</color>
<color name="c_button_text_v1">#3385ff</color>
<color name="c_button_text_v1_inverted">#ffffff</color>
@ -53,6 +55,7 @@
<color name="c_text_home_menu">#212d45</color>
<color name="c_hint_text">#b3b3b3</color>
<color name="c_list_item_current">#f1f3f4</color>
<color name="c_lock_tint">#00b300</color>
<color name="c_menu_drop_shadow_05">#05e6e6e6</color>
<color name="c_menu_drop_shadow_10">#10e6e6e6</color>

View File

@ -28,8 +28,12 @@
<string name="SETTING_COOKIE_TEXT_INFO" translatable="false">Cookie Settings</string>
<string name="SETTING_COOKIE" translatable="false">Cookies</string>
<string name="SETTING_NOTIFICATION_HEADER" translatable="false">Settings | Notification</string>
<string name="SETTING_NOTIFICATION_HEADER_1" translatable="false">Notifications</string>
<string name="SETTING_NOTIFICATION_HEADER_1_INFO" translatable="false">Manage network stats notification</string>
<string name="SETTING_NOTIFICATION_DISABLE_STATUS_NOTIFICATION" translatable="false">Network Status Notification</string>
<string name="SETTING_NOTIFICATION_DISABLE_STATUS_NOTIFICATION_INFO" translatable="false">Local Notification</string>
<string name="SETTING_NOTIFICATION_OPEN_NOTIFICATION_MANAGER" translatable="false">Device Notification Settings</string>
<string name="SETTING_NOTIFICATION_OPEN_NOTIFICATION_MANAGER_INFO" translatable="false">System Notification</string>
<string name="SETTING_ORBOT_LOG_HEADER" translatable="false">Log Settings</string>
<string name="SETTING_ORBOT_LIST_VIEW" translatable="false">Show Logs in Advance List View</string>
<string name="SETTING_SEARCH" translatable="false">Manage Search</string>
@ -38,7 +42,9 @@
<string name="SETTING_NOTIFICATION_INFO" translatable="false">New features, network status</string>
<string name="SETTING_SEARCH_HEADER" translatable="false">Settings | Search</string>
<string name="SETTING_SEARCH_HEADER_1" translatable="false">Supported search engines</string>
<string name="SETTING_SEARCH_HEADER_1_INFO" translatable="false">Choose to search directly from search bar</string>
<string name="SETTING_SEARCH_HEADER_2" translatable="false">Search setting</string>
<string name="SETTING_SEARCH_HEADER_2_INFO" translatable="false">Manage how searches appear</string>
<string name="SETTING_SEARCH_DEFAULT" translatable="false">Default</string>
<string name="SETTING_SEARCH_GENESIS" translatable="false">Genesis</string>
<string name="SETTING_SEARCH_DUCK" translatable="false">DuckDuckGo</string>
@ -74,6 +80,8 @@
<string name="SETTING_ACCESSIBILITY_FONT_CUSTOM" translatable="false">Select custom font scale</string>
<string name="SETTING_ACCESSIBILITY_FONT_CUSTOM_SAMPLE" translatable="false">Drag the slider until you can read this comfortably. Text should look at least this big after double-tapping on a paragraph</string>
<string name="SETTING_ACCESSIBILITY_200_PERCENT" translatable="false">200%</string>
<string name="SETTING_INTERACTION" translatable="false">Interactions</string>
<string name="SETTING_INTERACTION_INFO" translatable="false">Change how you interact with the content</string>
<string name="SETTING_PRIVACY" translatable="false">Privacy</string>
<string name="SETTING_PRIVACY_INFO" translatable="false">Tracking, logins, data choices</string>
<string name="SETTING_PRIVACY_HEADER" translatable="false">Settings | Privacy</string>
@ -85,6 +93,8 @@
<string name="SETTING_PRIVACY_COOKIES_INFO" translatable="false">Select cookies preferences according to your security needs</string>
<string name="SETTING_PRIVACY_CLEAR_PRIVATE_DATA" translatable="false">Clear private data on exit</string>
<string name="SETTING_PRIVACY_CLEAR_PRIVATE_DATA_INFO" translatable="false">Clear data automatically upon application close</string>
<string name="SETTING_PRIVACY_CLEAR_PRIVATE_HEADER" translatable="false">Private Browsing</string>
<string name="SETTING_PRIVACY_CLEAR_PRIVATE_HEADER_INFO" translatable="false">Keep your identity safe and use the options below</string>
<string name="SETTING_PRIVACY_COOKIES_OPTION1" translatable="false">Enabled</string>
<string name="SETTING_PRIVACY_COOKIES_OPTION2" translatable="false">Enabled, excluding tracking cookies</string>
<string name="SETTING_PRIVACY_COOKIES_OPTION3" translatable="false">Enabled, excluding 3rd party</string>
@ -103,7 +113,11 @@
<string name="SETTING_ADVANCE_MEDIA" translatable="false">Allow autoplay</string>
<string name="SETTING_ADVANCE_MEDIA_INFO" translatable="false">Allow media to auto start</string>
<string name="SETTING_ADVANCE_DATA_SAVER" translatable="false">Data saver</string>
<string name="SETTING_ADVANCE_TAB" translatable="false">Tab</string>
<string name="SETTING_ADVANCE_TAB_INFO" translatable="false">Change how tab behave after restarting application</string>
<string name="SETTING_ADVANCE_MEDIA_SUB_HEADER" translatable="false">Media</string>
<string name="SETTING_ADVANCE_DATA_SAVER_INFO" translatable="false">Change default data saver settings</string>
<string name="SETTING_ADVANCE_MEDIA_SUB_HEADER_INFO" translatable="false">Change default media settings</string>
<string name="SETTING_ADVANCE_IMAGE_OPTION_1" translatable="false">Always show images</string>
<string name="SETTING_ADVANCE_IMAGE_OPTION_2" translatable="false">Only show images over WI-FI</string>
<string name="SETTING_ADVANCE_IMAGE_OPTION_3" translatable="false">Block all images</string>
@ -120,6 +134,7 @@
<string name="SETTING_GENERAL_THEME_INFO" translatable="false">Choose light and dark or theme</string>
<string name="SETTING_GENERAL_THEME_LIGHT" translatable="false">Theme Light</string>
<string name="SETTING_GENERAL_THEME_DARK" translatable="false">Theme Dark</string>
<string name="SETTING_GENERAL_INFO_OPTION" translatable="false">Change full screen browsing and language settings</string>
<string name="SETTING_GENERAL_THEME_DEFAULT" translatable="false">System Default</string>
<string name="SETTING_GENERAL_HOME" translatable="false">Home</string>
<string name="SETTING_GENERAL_HOME_INFO" translatable="false">about:blank</string>
@ -203,6 +218,7 @@
<string name="BRIDGE_BASIC_SETTING" translatable="false">Security Settings</string>
<string name="BRIDGE_SETTING" translatable="false">Bridge Settings</string>
<string name="BRIDGE_AUTO" translatable="false">Create Automatically</string>
<string name="BRIDGE_AUTO_INFO" translatable="false">Automatically configure bridges settings</string>
<string name="BRIDGE_MANUAL" translatable="false">Provide a Bridge I know</string>
<string name="BRIDGE_PORT_HINT" translatable="false">address:port Single Line</string>
<string name="BRIDGE_HEADER" translatable="false">Proxy Settings | Bridges</string>
@ -259,6 +275,9 @@
<string name="BOOKMARK_CLEAR" translatable="false">Clear</string>
<string name="BOOKMARK_SEARCH_HINT" translatable="false">Search ...</string>
<!-- Help -->
<string name="HELP_TITLE" translatable="false">Support</string>
<!-- Language Manager Manager -->
<string name="LANGUAGE_TITLE" translatable="false">Language</string>
<string name="LANGUAGE_LANGUAGE_MESSAGE_TITLE" translatable="false">Change Language</string>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 359 B

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 508 B

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 675 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 901 B

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 262 B

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 326 B

After

Width:  |  Height:  |  Size: 6.4 KiB

Some files were not shown because too many files have changed in this diff Show More