Bug Fixes

Bug Fixes
master
msmannan00 2021-05-14 17:43:40 +05:00
parent d3529cfe11
commit 1c5282f031
103 changed files with 727 additions and 1137 deletions

View File

@ -6,6 +6,7 @@
<inspection_tool class="BooleanMethodIsAlwaysInverted" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="BusyWait" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="CollectionAddAllCanBeReplacedWithConstructor" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="Deprecation" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="DifferentKotlinGradleVersion" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="EmptyStatementBody" enabled="false" level="WARNING" enabled_by_default="false">
<option name="m_reportEmptyBlocks" value="true" />

View File

@ -1,11 +1,11 @@
import com.android.build.OutputFile
apply from: 'variables.gradle'
apply plugin: 'com.android.application'
apply plugin: 'maven-publish'
apply plugin: 'com.google.gms.google-services'
apply plugin: 'kotlin-android'
import com.android.build.OutputFile
android {
compileSdkVersion project.ext.compile_sdk_version

View File

@ -209,7 +209,7 @@
android:exported="false"
android:stopWithTask="true" />
<service
android:name="com.darkweb.genesissearchengine.helperManager.OnClearFromRecentService"
android:name="com.darkweb.genesissearchengine.helperManager.clearAllRecentServices"
android:stopWithTask="true" />
<receiver android:name="com.darkweb.genesissearchengine.helperManager.userEngagementNotification" />

View File

@ -3,7 +3,6 @@ package com.darkweb.genesissearchengine.appManager.bookmarkManager;
import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Handler;
import android.view.LayoutInflater;
import android.view.MotionEvent;
@ -16,15 +15,12 @@ import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.RecyclerView;
import com.darkweb.genesissearchengine.constants.enums;
import com.darkweb.genesissearchengine.constants.strings;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.example.myapplication.R;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Collections;
import java.util.Date;
import java.util.List;

View File

@ -23,7 +23,6 @@ import androidx.recyclerview.widget.ItemTouchHelper;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.darkweb.genesissearchengine.appManager.activityContextManager;
import com.darkweb.genesissearchengine.appManager.historyManager.historyEnums;
import com.darkweb.genesissearchengine.databaseManager.databaseController;
import com.darkweb.genesissearchengine.appManager.homeManager.homeController.editTextManager;
import com.darkweb.genesissearchengine.appManager.homeManager.homeController.homeController;
@ -34,7 +33,7 @@ import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.constants.strings;
import com.darkweb.genesissearchengine.dataManager.dataController;
import com.darkweb.genesissearchengine.dataManager.dataEnums;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.darkweb.genesissearchengine.helperManager.theme;
import com.darkweb.genesissearchengine.pluginManager.pluginController;

View File

@ -19,7 +19,7 @@ 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.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.darkweb.genesissearchengine.helperManager.theme;
import com.darkweb.genesissearchengine.pluginManager.pluginController;

View File

@ -3,17 +3,14 @@ package com.darkweb.genesissearchengine.appManager.bridgeManager;
import androidx.appcompat.app.AppCompatActivity;
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.constants.strings;
import com.darkweb.genesissearchengine.dataManager.dataController;
import com.darkweb.genesissearchengine.dataManager.dataEnums;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.eventObserver;
import com.darkweb.genesissearchengine.pluginManager.pluginController;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import static com.darkweb.genesissearchengine.constants.strings.BRIDGE_CUSTOM_BRIDGE_MEEK;

View File

@ -6,7 +6,7 @@ import android.view.KeyEvent;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.darkweb.genesissearchengine.constants.enums;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.eventObserver;
public class editViewController extends androidx.appcompat.widget.AppCompatAutoCompleteTextView {

View File

@ -20,7 +20,7 @@ import com.darkweb.genesissearchengine.appManager.activityContextManager;
import com.darkweb.genesissearchengine.constants.constants;
import com.darkweb.genesissearchengine.constants.enums;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.darkweb.genesissearchengine.helperManager.theme;
import com.darkweb.genesissearchengine.pluginManager.pluginController;

View File

@ -5,11 +5,10 @@ import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import com.darkweb.genesissearchengine.constants.constants;
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.eventObserver;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

View File

@ -5,7 +5,6 @@ import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import androidx.appcompat.app.AppCompatActivity;
@ -14,9 +13,7 @@ import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.RecyclerView;
import com.darkweb.genesissearchengine.appManager.orbotLogManager.orbotLogEnums;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.eventObserver;
import com.example.myapplication.R;
import java.util.List;

View File

@ -3,8 +3,6 @@ package com.darkweb.genesissearchengine.appManager.historyManager;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.util.Log;
@ -20,12 +18,10 @@ import androidx.recyclerview.widget.RecyclerView;
import com.darkweb.genesissearchengine.constants.enums;
import com.darkweb.genesissearchengine.constants.strings;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.example.myapplication.R;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;

View File

@ -34,7 +34,7 @@ import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.constants.strings;
import com.darkweb.genesissearchengine.dataManager.dataController;
import com.darkweb.genesissearchengine.dataManager.dataEnums;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.darkweb.genesissearchengine.helperManager.theme;
import com.darkweb.genesissearchengine.pluginManager.pluginController;

View File

@ -7,7 +7,7 @@ import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.eventObserver;
import org.mozilla.geckoview.GeckoView;
import java.util.Collections;

View File

@ -12,7 +12,7 @@ import com.darkweb.genesissearchengine.appManager.kotlinHelperLibraries.BrowserI
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.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import java.io.File;

View File

@ -10,8 +10,8 @@ import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import com.darkweb.genesissearchengine.constants.enums;
import com.darkweb.genesissearchengine.constants.strings;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import org.mozilla.geckoview.GeckoSession;
import com.darkweb.genesissearchengine.eventObserver;
import org.mozilla.geckoview.WebResponse;
import java.util.Arrays;

View File

@ -32,23 +32,14 @@ import android.widget.ScrollView;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.TimePicker;
import androidx.annotation.Nullable;
import androidx.annotation.UiThread;
import androidx.appcompat.app.AppCompatActivity;
import com.darkweb.genesissearchengine.helperManager.PathUtil;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.example.myapplication.R;
import java.lang.ref.WeakReference;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import org.jetbrains.annotations.NotNull;
import org.mozilla.geckoview.AllowOrDeny;
import org.mozilla.geckoview.GeckoResult;
import org.mozilla.geckoview.GeckoSession;

View File

@ -29,18 +29,14 @@ import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.NotificationCompat;
import androidx.core.content.FileProvider;
import com.darkweb.genesissearchengine.appManager.activityContextManager;
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.constants.strings;
import com.darkweb.genesissearchengine.dataManager.dataController;
import com.darkweb.genesissearchengine.dataManager.dataEnums;
import com.darkweb.genesissearchengine.helperManager.JavaScriptInterface;
import com.darkweb.genesissearchengine.helperManager.internalFileDownloadManager;
import com.darkweb.genesissearchengine.helperManager.downloadFileService;
import com.darkweb.genesissearchengine.helperManager.errorHandler;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.darkweb.genesissearchengine.helperManager.trueTime;
import com.example.myapplication.R;
@ -56,6 +52,7 @@ import org.mozilla.geckoview.WebRequestError;
import org.mozilla.geckoview.WebResponse;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.lang.ref.WeakReference;
import java.net.URLEncoder;
@ -65,6 +62,9 @@ import java.util.Date;
import java.util.List;
import java.util.Objects;
import javax.crypto.spec.SecretKeySpec;
import static com.darkweb.genesissearchengine.constants.constants.CONST_GENESIS_ERROR_CACHED;
import static com.darkweb.genesissearchengine.constants.constants.CONST_GENESIS_ERROR_CACHED_DARK;
import static com.darkweb.genesissearchengine.constants.constants.CONST_GENESIS_HELP_URL_CACHE;
import static com.darkweb.genesissearchengine.constants.constants.CONST_GENESIS_HELP_URL_CACHE_DARK;
import static com.darkweb.genesissearchengine.constants.constants.CONST_GENESIS_URL_CACHED;
@ -528,12 +528,24 @@ public class geckoSession extends GeckoSession implements GeckoSession.MediaDele
public GeckoResult<String> onLoadError(@NonNull GeckoSession var1, @Nullable String var2, WebRequestError var3) {
if(status.sSettingIsAppStarted){
errorHandler handler = new errorHandler();
pageErrorHandler handler = new pageErrorHandler();
mProgress = 0;
mPreviousErrorPage = true;
event.invokeObserver(Arrays.asList(var2,mSessionID), enums.etype.on_load_error);
event.invokeObserver(Arrays.asList(mCurrentURL,mSessionID,mCurrentTitle, mTheme), enums.etype.ON_UPDATE_THEME);
return GeckoResult.fromValue("data:text/html," + handler.createErrorPage(var3.category, var3.code,mContext.get(),var2));
InputStream mResourceURL = null;
try {
if(status.sTheme == enums.Theme.THEME_LIGHT || helperMethod.isDayMode(mContext.get())){
mResourceURL = mContext.get().getResources().getAssets().open(CONST_GENESIS_ERROR_CACHED);
}else {
mResourceURL = mContext.get().getResources().getAssets().open(CONST_GENESIS_ERROR_CACHED_DARK);
}
}catch (Exception ignored){
}
return GeckoResult.fromValue("data:text/html," + handler.loadErrorPage(var3.category, var3.code,mContext.get(),var2, mResourceURL));
}
return null;
}
@ -763,7 +775,7 @@ public class geckoSession extends GeckoSession implements GeckoSession.MediaDele
String filename;
if(url.startsWith("blob")){
loadUri(JavaScriptInterface.getBase64StringFromBlobUrl(url));
loadUri(internalFileDownloadManager.getBase64StringFromBlobUrl(url));
return true;
}

View File

@ -1,43 +1,28 @@
package com.darkweb.genesissearchengine.helperManager;
package com.darkweb.genesissearchengine.appManager.homeManager.geckoManager;
import androidx.appcompat.app.AppCompatActivity;
import com.darkweb.genesissearchengine.constants.constants;
import com.darkweb.genesissearchengine.constants.enums;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.constants.strings;
import com.darkweb.genesissearchengine.dataManager.dataController;
import com.darkweb.genesissearchengine.dataManager.dataEnums;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.example.myapplication.R;
import org.mozilla.geckoview.WebRequestError;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import static com.darkweb.genesissearchengine.constants.constants.CONST_GENESIS_ERROR_CACHED;
import static com.darkweb.genesissearchengine.constants.constants.CONST_GENESIS_ERROR_CACHED_DARK;
public class errorHandler
public class pageErrorHandler
{
private AppCompatActivity mContext;
private String mErrorTemplate;
public String createErrorPage(final int category, final int error,AppCompatActivity mContext,String url) {
this.mContext = mContext;
if (mErrorTemplate == null) {
InputStream stream = null;
BufferedReader reader = null;
StringBuilder builder = new StringBuilder();
try {
if(status.sTheme == enums.Theme.THEME_LIGHT || helperMethod.isDayMode(mContext)){
stream = mContext.getResources().getAssets().open(CONST_GENESIS_ERROR_CACHED);
}else {
stream = mContext.getResources().getAssets().open(CONST_GENESIS_ERROR_CACHED_DARK);
}
reader = new BufferedReader(new InputStreamReader(stream));
public String loadErrorPage(final int category, final int error, AppCompatActivity mContext, String url, InputStream mResourceURL) {
this.mContext = mContext;
try {
if (mErrorTemplate == null) {
StringBuilder builder = new StringBuilder();
InputStream stream = mResourceURL;
BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
String line;
while ((line = reader.readLine()) != null) {
@ -46,23 +31,6 @@ public class errorHandler
}
mErrorTemplate = builder.toString();
} catch (IOException e) {
return null;
} finally {
if (stream != null) {
try {
stream.close();
} catch (IOException e) {
}
}
if (reader != null) {
try {
reader.close();
} catch (IOException ignored) {
}
}
}
}
String title = helperMethod.getHost(url);
@ -74,14 +42,35 @@ public class errorHandler
}
String replaceUrl = errorToString(error).replace("$URL",url);
// String replaceUrl = errorToString(error).replace("$URL",url);
// if(replaceUrl==null){
// replaceUrl = "Hidden Error";
// }
String errorPage = createErrorPage("CODE : " + categoryToString(category) + " <br>TYPE : " + replaceUrl.replace("$TITLE",title),url);
String errorPage = createErrorPage("CODE : " + categoryToString(category) + " <br>TYPE : " + replaceUrl.replace("$TITLE",title),url,mResourceURL);
errorPage = translateMessage(errorPage,"CODE : " + categoryToString(category));
return errorPage;
}catch (Exception ex){
return strings.GENERIC_EMPTY_STR;
}
}
private String createErrorPage(final String error, String url, InputStream mResourceURL) throws IOException {
if(error==null){
return strings.GENERIC_EMPTY_STR;
}
StringBuilder builder = new StringBuilder();
InputStream stream = mResourceURL;
BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
String line;
while ((line = reader.readLine()) != null) {
builder.append(line);
builder.append("\n");
}
mErrorTemplate = builder.toString();
String replaceUrl = mErrorTemplate.replace("$URL",url);
return replaceUrl;
}
private String translateMessage(String message,String error){
@ -176,51 +165,5 @@ public class errorHandler
return "UNKNOWN";
}
}
private String createErrorPage(final String error,String url) {
if(error==null){
return strings.GENERIC_EMPTY_STR;
}
if (mErrorTemplate == null) {
InputStream stream = null;
BufferedReader reader = null;
StringBuilder builder = new StringBuilder();
try {
if(status.sTheme == enums.Theme.THEME_LIGHT || helperMethod.isDayMode(mContext)){
stream = mContext.getResources().getAssets().open(CONST_GENESIS_ERROR_CACHED);
}else {
stream = mContext.getResources().getAssets().open(CONST_GENESIS_ERROR_CACHED_DARK);
}
reader = new BufferedReader(new InputStreamReader(stream));
String line;
while ((line = reader.readLine()) != null) {
builder.append(line);
builder.append("\n");
}
mErrorTemplate = builder.toString();
} catch (IOException e) {
return null;
} finally {
if (stream != null) {
try {
stream.close();
} catch (IOException e) {
}
}
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
}
}
}
}
String replaceUrl = mErrorTemplate.replace("$URL",url);
return replaceUrl;
}
}

View File

@ -3,8 +3,6 @@ package com.darkweb.genesissearchengine.appManager.homeManager.hintManager;
import android.annotation.SuppressLint;
import android.content.res.ColorStateList;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.util.Log;
@ -19,21 +17,15 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.RecyclerView;
import androidx.room.Ignore;
import com.darkweb.genesissearchengine.appManager.historyManager.historyRowModel;
import com.darkweb.genesissearchengine.appManager.tabManager.tabEnums;
import com.darkweb.genesissearchengine.constants.enums;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.constants.strings;
import com.darkweb.genesissearchengine.dataManager.dataController;
import com.darkweb.genesissearchengine.dataManager.dataEnums;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.example.myapplication.R;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;

View File

@ -8,7 +8,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.darkweb.genesissearchengine.constants.enums;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.eventObserver;
public class editTextManager extends androidx.appcompat.widget.AppCompatAutoCompleteTextView {

View File

@ -29,7 +29,6 @@ import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputMethodManager;
import android.webkit.URLUtil;
import android.widget.*;
import androidx.annotation.NonNull;
@ -68,9 +67,9 @@ import com.darkweb.genesissearchengine.constants.strings;
import com.darkweb.genesissearchengine.dataManager.dataController;
import com.darkweb.genesissearchengine.dataManager.dataEnums;
import com.darkweb.genesissearchengine.helperManager.KeyboardUtils;
import com.darkweb.genesissearchengine.helperManager.OnClearFromRecentService;
import com.darkweb.genesissearchengine.helperManager.clearAllRecentServices;
import com.darkweb.genesissearchengine.helperManager.SimpleGestureFilter;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.darkweb.genesissearchengine.helperManager.theme;
import com.darkweb.genesissearchengine.helperManager.trueTime;
@ -480,6 +479,10 @@ public class homeController extends AppCompatActivity implements ComponentCallba
public void initPreFixes() {
try {
if(!status.mThemeApplying){
orbotLocalConstants.mTorLogsStatus = strings.GENERIC_EMPTY_STR;
}
Class clazz = Class.forName("java.lang.Daemons$FinalizerWatchdogDaemon");
Method method = Objects.requireNonNull(clazz.getSuperclass()).getDeclaredMethod("stop");
@ -758,7 +761,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
@SuppressLint("ClickableViewAccessibility")
private void initializeLocalEventHandlers() {
startService(new Intent(getBaseContext(), OnClearFromRecentService.class));
startService(new Intent(getBaseContext(), clearAllRecentServices.class));
registerReceiver(downloadStatus,new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE));

View File

@ -17,7 +17,6 @@ import android.graphics.drawable.GradientDrawable;
import android.graphics.drawable.InsetDrawable;
import android.graphics.drawable.StateListDrawable;
import android.os.Build;
import android.os.Debug;
import android.os.Handler;
import android.os.Message;
import android.text.method.MovementMethod;
@ -42,8 +41,8 @@ import androidx.recyclerview.widget.RecyclerView;
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.eventObserver;
import com.darkweb.genesissearchengine.helperManager.colorAnimationReciever;
import com.darkweb.genesissearchengine.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.darkweb.genesissearchengine.widget.progressBar.AnimatedProgressBar;
import com.example.myapplication.R;
@ -57,9 +56,6 @@ import java.util.List;
import java.util.concurrent.Callable;
import static android.content.Context.LAYOUT_INFLATER_SERVICE;
import static com.darkweb.genesissearchengine.constants.constants.CONST_GENESIS_DOMAIN_URL;
import static com.darkweb.genesissearchengine.constants.constants.CONST_GENESIS_HELP_URL;
import static com.darkweb.genesissearchengine.constants.constants.CONST_GENESIS_HELP_URL_CACHE;
import static com.darkweb.genesissearchengine.constants.constants.CONST_GENESIS_HELP_URL_CACHE_DARK;
import static com.darkweb.genesissearchengine.constants.constants.CONST_GENESIS_URL_CACHED;
import static com.darkweb.genesissearchengine.constants.constants.CONST_GENESIS_URL_CACHED_DARK;
import static org.mozilla.geckoview.GeckoSessionSettings.USER_AGENT_MODE_DESKTOP;
@ -493,7 +489,7 @@ class homeViewController
public void initStatusBarColor(boolean mInstant) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
animatedColor oneToTwo = new animatedColor(ContextCompat.getColor(mContext, R.color.landing_ease_blue), ContextCompat.getColor(mContext, R.color.green_dark_v2));
colorAnimationReciever oneToTwo = new colorAnimationReciever(ContextCompat.getColor(mContext, R.color.landing_ease_blue), ContextCompat.getColor(mContext, R.color.green_dark_v2));
int mDelay = 1350;
if(status.mThemeApplying || mInstant){

View File

@ -1,19 +1,11 @@
package com.darkweb.genesissearchengine.appManager.landingManager;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ObjectAnimator;
import android.animation.ValueAnimator;
import android.os.Build;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.app.AppCompatDelegate;
import androidx.core.content.ContextCompat;
import com.darkweb.genesissearchengine.helperManager.animatedColor;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.eventObserver;
import com.example.myapplication.R;
class landingViewController

View File

@ -14,7 +14,7 @@ import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.RecyclerView;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.eventObserver;
import com.example.myapplication.R;
import java.util.ArrayList;
import java.util.Arrays;

View File

@ -14,13 +14,12 @@ import androidx.recyclerview.widget.SimpleItemAnimator;
import com.darkweb.genesissearchengine.appManager.activityContextManager;
import com.darkweb.genesissearchengine.appManager.helpManager.helpController;
import com.darkweb.genesissearchengine.appManager.tabManager.tabController;
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.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.darkweb.genesissearchengine.helperManager.theme;
import com.darkweb.genesissearchengine.pluginManager.pluginController;

View File

@ -4,15 +4,13 @@ import android.os.Build;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.ImageView;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.app.AppCompatDelegate;
import androidx.core.content.ContextCompat;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.eventObserver;
import com.example.myapplication.R;
import java.util.ArrayList;
import java.util.List;
class languageViewController

View File

@ -10,10 +10,10 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.recyclerview.widget.RecyclerView;
import com.darkweb.genesissearchengine.appManager.activityContextManager;
import com.darkweb.genesissearchengine.appManager.tabManager.tabEnums;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.constants.constants;
import com.darkweb.genesissearchengine.eventObserver;
import com.example.myapplication.R;
import org.torproject.android.service.wrapper.logRowModel;
import java.util.ArrayList;
@ -26,9 +26,9 @@ public class orbotLogAdapter extends RecyclerView.Adapter<orbotLogAdapter.listVi
private ArrayList<logRowModel> mModelList;
private eventObserver.eventListener mEvent;
orbotLogAdapter(ArrayList<logRowModel> model_list, eventObserver.eventListener event) {
this.mModelList = model_list;
this.mEvent = event;
orbotLogAdapter(ArrayList<logRowModel> pModelList, eventObserver.eventListener pEvent) {
this.mModelList = pModelList;
this.mEvent = pEvent;
}
@NonNull @Override
@ -71,12 +71,13 @@ public class orbotLogAdapter extends RecyclerView.Adapter<orbotLogAdapter.listVi
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://duckduckgo.com/?q=tor logs " + mHeader.getText()));
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(constants.CONST_LOG_DUCKDUCK + mHeader.getText()));
intent.putExtra(SearchManager.QUERY, mDescription.getText());
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
activityContextManager.getInstance().getHomeController().startActivity(intent);
}
}
public Object onTrigger(tabEnums.eTabAdapterCommands pCommands, List<Object> pData){
return null;
}

View File

@ -1,23 +1,25 @@
package com.darkweb.genesissearchengine.appManager.orbotLogManager;
import android.annotation.SuppressLint;
import android.content.res.Configuration;
import android.os.Build;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewTreeObserver;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.widget.NestedScrollView;
import androidx.recyclerview.widget.DefaultItemAnimator;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.darkweb.genesissearchengine.appManager.activityContextManager;
import com.darkweb.genesissearchengine.appManager.settingManager.logManager.settingLogController;
import com.darkweb.genesissearchengine.constants.constants;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.helperManager.SimpleGestureFilter;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.darkweb.genesissearchengine.helperManager.theme;
import com.darkweb.genesissearchengine.pluginManager.pluginController;
@ -27,38 +29,46 @@ import com.google.android.material.floatingactionbutton.FloatingActionButton;
import org.torproject.android.service.wrapper.orbotLocalConstants;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import static com.darkweb.genesissearchengine.appManager.orbotLogManager.orbotLogEnums.eOrbotLogViewCommands.M_SCROLL_THEME_UPDATE;
public class orbotLogController extends AppCompatActivity {
/* PRIVATE VARIABLES */
private orbotLogModel mOrbotModel;
private orbotLogViewController mOrbotViewController;
private RecyclerView mRecycleView;
private orbotLogAdapter mOrbotAdapter;
private NestedScrollView mMainScroll;
private FloatingActionButton mFloatingScroller;
private TextView mLogs;
private orbotLogModel mOrbotModel;
private orbotLogViewController mOrbotLogViewController;
private orbotLogAdapter mOrbotAdapter;
private boolean mActivityClosed = false;
private int mLogCounter = 0;
private GestureDetector mSwipeDirectionDetector;
private boolean mIsLayoutChanging = false;
private boolean mIsRecycleviewInteracting = false;
/* UI VARIABLES */
private TextView mLogs;
private RecyclerView mLogRecycleView;
private NestedScrollView mNestedScrollView;
private FloatingActionButton mFloatingScroller;
/* INITIALIZATIONS */
@RequiresApi(api = Build.VERSION_CODES.M)
@Override
protected void onCreate(Bundle savedInstanceState) {
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
overridePendingTransition(R.anim.push_anim_out_reverse, R.anim.push_anim_in_reverse);
activityContextManager.getInstance().setOrbotLogController(this);
activityContextManager.getInstance().onStack(this);
super.onCreate(savedInstanceState);
setContentView(R.layout.orbot_log_view);
viewsInitializations();
onUpdateLogs();
initializeViews();
initializeLogs();
onInitListener();
initListener();
updateLogs();
}
@Override
@ -72,22 +82,19 @@ public class orbotLogController extends AppCompatActivity {
super.onConfigurationChanged(newConfig);
}
public void viewsInitializations() {
mRecycleView = findViewById(R.id.pLogRecycleView);
public void initializeViews() {
mLogRecycleView = findViewById(R.id.pLogRecycleView);
mLogs = findViewById(R.id.pLogs);
mMainScroll = findViewById(R.id.mMainScroll);
mNestedScrollView = findViewById(R.id.pNestedScrollView);
mFloatingScroller = findViewById(R.id.pFloatingScroller);
activityContextManager.getInstance().setOrbotLogController(this);
activityContextManager.getInstance().onStack(this);
mOrbotViewController = new orbotLogViewController(this, mLogs, mRecycleView);
mOrbotLogViewController = new orbotLogViewController(this, new orbotLogViewCallback() , mLogs, mLogRecycleView, mNestedScrollView, mFloatingScroller);
mOrbotModel = new orbotLogModel();
}
public void initializeLogs(){
mLogCounter = 0;
if(status.sLogListView){
if(status.sLogThemeStyleAdvanced){
mLogCounter = orbotLocalConstants.mTorLogsHistory.size();
mOrbotModel.setList(orbotLocalConstants.mTorLogsHistory);
LinearLayoutManager layoutManager = new LinearLayoutManager(orbotLogController.this);
@ -95,105 +102,116 @@ public class orbotLogController extends AppCompatActivity {
mOrbotAdapter = adapter;
layoutManager.setReverseLayout(true);
mLogRecycleView.setAdapter(adapter);
Objects.requireNonNull(mLogRecycleView.getItemAnimator()).setAddDuration(250);
mLogRecycleView.setNestedScrollingEnabled(false);
mLogRecycleView.setLayoutManager(new LinearLayoutManager(orbotLogController.this));
mRecycleView.setNestedScrollingEnabled(false);
mRecycleView.setLayoutManager(new LinearLayoutManager(orbotLogController.this));
mOrbotAdapter.notifyDataSetChanged();
}else {
logToString();
}
mOrbotViewController.onTrigger(orbotLogEnums.eOrbotLogViewCommands.M_INIT_VIEWS, null);
mRecycleView.smoothScrollToPosition(mOrbotModel.getList().size());
mOrbotLogViewController.onTrigger(orbotLogEnums.eOrbotLogViewCommands.M_INIT_VIEWS, Collections.singletonList(status.sLogThemeStyleAdvanced));
mLogRecycleView.smoothScrollToPosition(mOrbotModel.getList().size());
}
/* LISTENERS */
@SuppressLint("ClickableViewAccessibility")
private void initListener(){
mLogRecycleView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@SuppressLint("NewApi") @SuppressWarnings("deprecation")
@Override
public void onGlobalLayout() {
if(orbotLogStatus.sScrollPosition!=-1){
mNestedScrollView.scrollTo(0, orbotLogStatus.sScrollPosition);
}else if(mNestedScrollView.canScrollVertically(1)){
onScrollBottom(null);
}
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
mNestedScrollView.setOnScrollChangeListener((View.OnScrollChangeListener) (v, scrollX, scrollY, oldScrollX, oldScrollY) -> {
orbotLogStatus.sScrollPosition = scrollY;
});
}
mOrbotLogViewController.onTrigger(M_SCROLL_THEME_UPDATE);
mLogRecycleView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
}
});
mNestedScrollView.setOnTouchListener((v, event) -> {
if(mNestedScrollView.canScrollVertically(1)){
orbotLogStatus.sUIInteracted = true;
}
if(event.getAction() == MotionEvent.ACTION_UP){
mOrbotLogViewController.onTrigger(M_SCROLL_THEME_UPDATE);
}
if(event.getAction() == MotionEvent.ACTION_UP){
mIsRecycleviewInteracting = false;
}else if(event.getAction() == MotionEvent.ACTION_DOWN){
mIsRecycleviewInteracting = true;
}
return false;
});
mNestedScrollView.getViewTreeObserver() .addOnScrollChangedListener(() -> {
if (mNestedScrollView.getChildAt(0).getBottom() <= (mNestedScrollView.getHeight() + mNestedScrollView.getScrollY())) {
mOrbotLogViewController.onTrigger(M_SCROLL_THEME_UPDATE);
if(!mIsRecycleviewInteracting){
orbotLogStatus.sUIInteracted = false;
}
}
});
}
public void logToString(){
for(int mCounter=0;mCounter<orbotLocalConstants.mTorLogsHistory.size();mCounter++){
mOrbotViewController.onTrigger(orbotLogEnums.eOrbotLogViewCommands.M_UPDATE_LOGS, Collections.singletonList(orbotLocalConstants.mTorLogsHistory.get(mCounter).getLog()));
mOrbotLogViewController.onTrigger(orbotLogEnums.eOrbotLogViewCommands.M_UPDATE_LOGS, Collections.singletonList(orbotLocalConstants.mTorLogsHistory.get(mCounter).getLog()));
mLogCounter+=1;
}
}
/* LISTENERS */
private void onInitListener(){
mRecycleView.getViewTreeObserver().addOnGlobalLayoutListener(() -> mIsLayoutChanging = false);
mMainScroll.getViewTreeObserver().addOnScrollChangedListener(() -> {
if(status.sLogListView){
if(mMainScroll.canScrollVertically(1)){
if(mFloatingScroller.getAlpha()==0){
mFloatingScroller.setVisibility(View.VISIBLE);
mFloatingScroller.animate().cancel();
mFloatingScroller.animate().alpha(1);
}
}else {
mFloatingScroller.animate().cancel();
mFloatingScroller.animate().alpha(0).withEndAction(() -> mFloatingScroller.setVisibility(View.GONE));
}
}
});
mSwipeDirectionDetector=new GestureDetector(this,new SimpleGestureFilter(){
@Override
public boolean onSwipe(Direction direction) {
if (direction==Direction.right){
finish();
overridePendingTransition(R.anim.push_anim_in, R.anim.push_anim_out);
}
return true;
}
});
}
public void onUpdateLogs(){
public void updateLogs(){
new Thread(){
public void run(){
while (true){
while (!mActivityClosed){
try {
if(mActivityClosed){
break;
}
boolean mLayoutChangeTemp = mIsLayoutChanging;
if(mIsLayoutChanging){
if(status.sLogListView){
sleep(1000);
if(status.sLogThemeStyleAdvanced){
sleep(800);
}else {
sleep(50);
}
continue;
}else {
if(status.sLogListView){
sleep(500);
}else {
sleep(50);
}
if(mLayoutChangeTemp != mIsLayoutChanging){
continue;
}
sleep(100);
}
if(orbotLocalConstants.mTorLogsHistory.size()>0){
mIsLayoutChanging = true;
runOnUiThread(() -> {
if(orbotLocalConstants.mTorLogsHistory.size()>mLogCounter){
mOrbotModel.getList().add(orbotLocalConstants.mTorLogsHistory.get(mLogCounter));
if(!status.sLogListView){
mOrbotViewController.onTrigger(orbotLogEnums.eOrbotLogViewCommands.M_UPDATE_LOGS, Collections.singletonList(orbotLocalConstants.mTorLogsHistory.get(mLogCounter).getLog()));
mIsLayoutChanging = false;
onScrollBottom(null);
if(!status.sLogThemeStyleAdvanced){
mOrbotLogViewController.onTrigger(orbotLogEnums.eOrbotLogViewCommands.M_UPDATE_LOGS, Collections.singletonList(orbotLocalConstants.mTorLogsHistory.get(mLogCounter).getLog()));
}else {
if(mOrbotAdapter!=null){
mOrbotAdapter.notifyItemInserted(mOrbotModel.getList().size()-1);
}
}
}else {
mIsLayoutChanging = false;
}
mLogCounter+=1;
}
});
}
sleep(100);
if(!orbotLogStatus.sUIInteracted){
runOnUiThread(() -> {
if(orbotLocalConstants.mTorLogsHistory.size()>mLogCounter) {
onScrollBottom(null);
}
});
sleep(500);
}
} catch (InterruptedException e) {
e.printStackTrace();
@ -203,8 +221,11 @@ public class orbotLogController extends AppCompatActivity {
}.start();
}
/* View Callback */
public void onScrollBottom(View view) {
mMainScroll.fullScroll(View.FOCUS_DOWN);
mNestedScrollView.fullScroll(View.FOCUS_DOWN);
orbotLogStatus.sUIInteracted = false;
}
public void onOpenInfo(View view) {
@ -218,12 +239,15 @@ public class orbotLogController extends AppCompatActivity {
mActivityClosed = true;
}
/* View Callback */
private class orbotLogViewCallback implements eventObserver.eventListener{
@Override
protected void onDestroy() {
super.onDestroy();
activityContextManager.getInstance().onRemoveStack(this);
activityContextManager.getInstance().setOrbotLogController(null);
mActivityClosed = true;
public Object invokeObserver(List<Object> data, Object e_type)
{
return null;
}
}
/* Model Callback */
@ -238,23 +262,13 @@ public class orbotLogController extends AppCompatActivity {
/* LOCAL OVERRIDES */
@Override
protected void onStop() {
super.onStop();
}
@Override
public void onResume()
{
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_RESUME);
activityContextManager.getInstance().setCurrentActivity(this);
super.onResume();
}
@Override
public void onPause()
{
super.onPause();
super.onResume();
}
@Override
@ -263,19 +277,20 @@ public class orbotLogController extends AppCompatActivity {
}
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
if(inSignatureArea(event)){
try{
mSwipeDirectionDetector.onTouchEvent(event);
}catch (Exception ignored){ }
}
return super.dispatchTouchEvent(event);
protected void onDestroy() {
super.onDestroy();
activityContextManager.getInstance().onRemoveStack(this);
activityContextManager.getInstance().setOrbotLogController(null);
mActivityClosed = true;
}
public boolean inSignatureArea(MotionEvent ev) {
float mEventY = ev.getY();
return mEventY>helperMethod.pxFromDp(300) || ev.getX()<helperMethod.pxFromDp(80);
}
/* External Calls */
public void onRefreshLayoutTheme(){
orbotLogStatus.sScrollPosition = 0;
orbotLogStatus.sUIInteracted = false;
mIsRecycleviewInteracting = false;
recreate();
}
}

View File

@ -2,11 +2,14 @@ package com.darkweb.genesissearchengine.appManager.orbotLogManager;
public class orbotLogEnums
{
/*Settings Manager*/
/*Orbot Log View Manager*/
public enum eOrbotLogViewCommands {
M_UPDATE_LOGS, M_INIT_VIEWS
M_UPDATE_LOGS, M_INIT_VIEWS, M_SCROLL_THEME_UPDATE
}
/*Orbot Log Model Manager*/
public enum eOrbotLogModelCommands {
}
}

View File

@ -13,11 +13,11 @@ class orbotLogModel
/*Helper Methods*/
void setList(ArrayList<logRowModel> model)
void setList(ArrayList<logRowModel> pModel)
{
if(model.size()>0){
if(pModel.size()>0){
mModelList.clear();
mModelList.addAll(model);
mModelList.addAll(pModel);
}
else {
mModelList.add(new logRowModel(constants.CONST_LOGS_DEFAULT_MESSAGE, helperMethod.getCurrentTime()));

View File

@ -0,0 +1,8 @@
package com.darkweb.genesissearchengine.appManager.orbotLogManager;
public class orbotLogStatus {
public static boolean sUIInteracted = false;
public static int sScrollPosition = -1;
}

View File

@ -1,16 +1,15 @@
package com.darkweb.genesissearchengine.appManager.orbotLogManager;
import android.os.Build;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.app.AppCompatDelegate;
import androidx.core.content.ContextCompat;
import androidx.core.widget.NestedScrollView;
import androidx.recyclerview.widget.RecyclerView;
import com.darkweb.genesissearchengine.constants.status;
import com.example.myapplication.R;
import com.darkweb.genesissearchengine.eventObserver;
import com.darkweb.genesissearchengine.helperManager.sharedUIMethod;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import java.util.List;
class orbotLogViewController
@ -18,61 +17,77 @@ class orbotLogViewController
/*Private Variables*/
private AppCompatActivity mContext;
private eventObserver.eventListener mEvent;
private TextView mLogs;
private RecyclerView mRecycleView;
private RecyclerView mLogRecycleView;
private NestedScrollView mNestedScrollView;
private FloatingActionButton mFloatingScroller;
/*Initializations*/
orbotLogViewController(AppCompatActivity pContext, TextView pLogs, RecyclerView pRecycleView)
orbotLogViewController(AppCompatActivity pContext, eventObserver.eventListener pEvent, TextView pLogs, RecyclerView pLogRecycleView, NestedScrollView pNestedScrollView, FloatingActionButton pFloatingScroller)
{
this.mContext = pContext;
this.mLogs = pLogs;
this.mRecycleView = pRecycleView;
this.mLogRecycleView = pLogRecycleView;
this.mNestedScrollView = pNestedScrollView;
this.mFloatingScroller = pFloatingScroller;
this.mEvent = pEvent;
initViews();
initPostUI();
}
private void initViews(){
if(status.sLogListView){
mRecycleView.setVisibility(View.VISIBLE);
private void initViews(boolean pLogThemeStyleAdvanced){
if(pLogThemeStyleAdvanced){
mLogRecycleView.setVisibility(View.VISIBLE);
mLogs.setVisibility(View.GONE);
}else {
mRecycleView.setVisibility(View.GONE);
mLogRecycleView.setVisibility(View.GONE);
mLogs.setVisibility(View.VISIBLE);
}
}
/*Helper Methods*/
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));
mContext.getWindow().setStatusBarColor(ContextCompat.getColor(mContext, R.color.landing_ease_blue));
sharedUIMethod.updateStatusBar(mContext);
}
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));
}
}
}
private void onUpdateLogs(String pLogs){
pLogs = "~ " + pLogs;
mLogs.setText(String.format("%s%s",mLogs.getText() ,pLogs + "\n\n"));
}
private void onScrollThemeUpdate(){
if(mNestedScrollView.canScrollVertically(1)){
if(mFloatingScroller.getAlpha()==0){
mFloatingScroller.setVisibility(View.VISIBLE);
mFloatingScroller.animate().cancel();
mFloatingScroller.animate().alpha(1);
}
}else {
mFloatingScroller.animate().cancel();
mFloatingScroller.animate().alpha(0).withEndAction(() -> mFloatingScroller.setVisibility(View.GONE));
}
}
/*Triggers*/
public void onTrigger(orbotLogEnums.eOrbotLogViewCommands pCommands, List<Object> pData){
if(pCommands.equals(orbotLogEnums.eOrbotLogViewCommands.M_UPDATE_LOGS)){
onUpdateLogs((String) pData.get(0));
}
else if(pCommands.equals(orbotLogEnums.eOrbotLogViewCommands.M_INIT_VIEWS)){
initViews();
initViews((boolean)pData.get(0));
}
else if(pCommands.equals(orbotLogEnums.eOrbotLogViewCommands.M_SCROLL_THEME_UPDATE)){
onScrollThemeUpdate();
}
}
public void onTrigger(orbotLogEnums.eOrbotLogViewCommands pCommands){
onTrigger(pCommands, null);
}
}

View File

@ -1,10 +1,7 @@
package com.darkweb.genesissearchengine.appManager.orbotManager;
import android.content.Intent;
import android.content.res.Configuration;
import android.net.VpnService;
import android.os.Bundle;
import android.os.Debug;
import android.util.Log;
import android.view.GestureDetector;
import android.view.MotionEvent;
@ -22,7 +19,7 @@ import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.dataManager.dataController;
import com.darkweb.genesissearchengine.dataManager.dataEnums;
import com.darkweb.genesissearchengine.helperManager.SimpleGestureFilter;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.darkweb.genesissearchengine.helperManager.theme;
import com.darkweb.genesissearchengine.pluginManager.pluginController;

View File

@ -1,7 +1,7 @@
package com.darkweb.genesissearchengine.appManager.orbotManager;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.eventObserver;
import com.darkweb.genesissearchengine.pluginManager.pluginController;
import com.darkweb.genesissearchengine.pluginManager.pluginEnums;

View File

@ -12,7 +12,7 @@ import com.darkweb.genesissearchengine.appManager.activityContextManager;
import com.darkweb.genesissearchengine.appManager.orbotLogManager.orbotLogController;
import com.darkweb.genesissearchengine.constants.constants;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.darkweb.genesissearchengine.helperManager.theme;
import com.darkweb.genesissearchengine.pluginManager.pluginController;

View File

@ -1,6 +1,6 @@
package com.darkweb.genesissearchengine.appManager.proxyStatusManager;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.eventObserver;
class proxyStatusModel
{

View File

@ -16,7 +16,7 @@ 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.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.darkweb.genesissearchengine.helperManager.theme;
import com.darkweb.genesissearchengine.pluginManager.pluginController;

View File

@ -1,7 +1,7 @@
package com.darkweb.genesissearchengine.appManager.settingManager.accessibilityManager;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.eventObserver;
import java.util.List;
class settingAccessibilityModel

View File

@ -11,7 +11,7 @@ import androidx.appcompat.app.AppCompatDelegate;
import androidx.core.content.ContextCompat;
import com.darkweb.genesissearchengine.constants.constants;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.eventObserver;
import com.example.myapplication.R;
import com.google.android.material.switchmaterial.SwitchMaterial;
import java.util.List;

View File

@ -14,7 +14,7 @@ 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.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.darkweb.genesissearchengine.helperManager.theme;
import com.darkweb.genesissearchengine.pluginManager.pluginController;

View File

@ -3,7 +3,7 @@ package com.darkweb.genesissearchengine.appManager.settingManager.advanceManager
import android.view.View;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.eventObserver;
import com.example.myapplication.R;
import java.util.List;

View File

@ -10,7 +10,7 @@ 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.darkweb.genesissearchengine.eventObserver;
import com.example.myapplication.R;
import com.google.android.material.switchmaterial.SwitchMaterial;
import java.util.ArrayList;

View File

@ -11,7 +11,6 @@ import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.app.AppCompatDelegate;
import androidx.core.content.ContextCompat;
import com.darkweb.genesissearchengine.appManager.activityContextManager;
import com.darkweb.genesissearchengine.appManager.settingManager.generalManager.settingGeneralController;
import com.darkweb.genesissearchengine.databaseManager.databaseController;
import com.darkweb.genesissearchengine.appManager.helpManager.helpController;
import com.darkweb.genesissearchengine.constants.constants;
@ -22,7 +21,7 @@ import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.constants.strings;
import com.darkweb.genesissearchengine.dataManager.dataController;
import com.darkweb.genesissearchengine.dataManager.dataEnums;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.darkweb.genesissearchengine.helperManager.theme;
import com.darkweb.genesissearchengine.pluginManager.pluginController;

View File

@ -1,6 +1,6 @@
package com.darkweb.genesissearchengine.appManager.settingManager.clearManager;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.eventObserver;
class settingClearModel
{

View File

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

View File

@ -17,7 +17,7 @@ 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.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.darkweb.genesissearchengine.helperManager.theme;
import com.darkweb.genesissearchengine.pluginManager.pluginController;

View File

@ -1,7 +1,7 @@
package com.darkweb.genesissearchengine.appManager.settingManager.generalManager;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.eventObserver;
import java.util.List;
class settingGeneralModel

View File

@ -12,7 +12,7 @@ import androidx.appcompat.app.AppCompatDelegate;
import androidx.core.content.ContextCompat;
import com.darkweb.genesissearchengine.constants.enums;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.example.myapplication.R;
import com.google.android.material.switchmaterial.SwitchMaterial;

View File

@ -2,9 +2,7 @@ package com.darkweb.genesissearchengine.appManager.settingManager.logManager;
import android.content.res.Configuration;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import com.darkweb.genesissearchengine.appManager.activityContextManager;
@ -14,51 +12,58 @@ 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.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.darkweb.genesissearchengine.helperManager.theme;
import com.darkweb.genesissearchengine.pluginManager.pluginController;
import com.darkweb.genesissearchengine.pluginManager.pluginEnums;
import com.example.myapplication.R;
import com.google.android.material.switchmaterial.SwitchMaterial;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import static com.darkweb.genesissearchengine.appManager.settingManager.logManager.settingLogEnums.eLogViewController.M_TOOGLE_LOG_VIEW;
public class settingLogController extends AppCompatActivity {
/* PRIVATE VARIABLES */
private SwitchMaterial mListView;
/* UI Variables */
private SwitchMaterial mLogThemeToggle;
/* Private Variables */
private settingLogModel mSettingLogModel;
private settingLogViewController mSettingLogViewController;
/* Initializations */
@Override
protected void onCreate(Bundle savedInstanceState) {
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
super.onCreate(savedInstanceState);
setContentView(R.layout.setting_log_view);
activityContextManager.getInstance().onStack(this);
viewsInitializations();
super.onCreate(savedInstanceState);
setContentView(R.layout.setting_log_view);
initializeViews();
}
@Override
public void onConfigurationChanged(@NonNull Configuration newConfig) {
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
super.onConfigurationChanged(newConfig);
if(newConfig.uiMode != getResources().getConfiguration().uiMode){
activityContextManager.getInstance().onResetTheme();
theme.getInstance().onConfigurationChanged(this);
}
}
private void viewsInitializations() {
mListView = findViewById(R.id.pListView);
activityContextManager.getInstance().onStack(this);
mSettingLogViewController = new settingLogViewController(this, new settingLogViewCallback(), mListView);
private void initializeViews() {
mLogThemeToggle = findViewById(R.id.pLogThemeToggle);
mSettingLogViewController = new settingLogViewController(this, new settingLogViewCallback(), mLogThemeToggle);
mSettingLogViewController.onTrigger(settingLogEnums.eLogViewController.M_INIT_VIEW, Collections.singletonList(status.sLogThemeStyleAdvanced));
mSettingLogModel = new settingLogModel(new settingLogModelCallback());
}
@ -94,15 +99,9 @@ public class settingLogController extends AppCompatActivity {
super.onResume();
}
@Override
public void onPause()
{
super.onPause();
}
@Override
public void onBackPressed() {
finish();
onClose(null);
}
@Override
@ -118,15 +117,14 @@ public class settingLogController extends AppCompatActivity {
}
public void onSwitchLogUIMode(View view){
mSettingLogModel.onTrigger(settingLogEnums.eLogModel.M_SWITCH_LOG_VIEW, Collections.singletonList(!mListView.isChecked()));
mListView.toggle();
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_LIST_VIEW, status.sLogListView));
mSettingLogModel.onTrigger(settingLogEnums.eLogModel.M_SWITCH_LOG_VIEW, Collections.singletonList(!mLogThemeToggle.isChecked()));
mSettingLogViewController.onTrigger(M_TOOGLE_LOG_VIEW);
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_LIST_VIEW, status.sLogThemeStyleAdvanced));
final Handler handler = new Handler();
handler.postDelayed(() ->
{
activityContextManager.getInstance().getOrbotLogController().recreate();
}, 250);
helperMethod.onDelayHandler(this, 250, () -> {
activityContextManager.getInstance().getOrbotLogController().onRefreshLayoutTheme();
return null;
});
}
public void onOpenInfo(View view) {

View File

@ -2,13 +2,15 @@ package com.darkweb.genesissearchengine.appManager.settingManager.logManager;
class settingLogEnums
{
/*History Manager*/
/* Log Model */
public enum eLogModel {
M_SWITCH_LOG_VIEW
}
/* Log View Controller */
public enum eLogViewController {
M_INIT_VIEW, M_TOOGLE_LOG_VIEW
}
}

View File

@ -1,11 +1,8 @@
package com.darkweb.genesissearchengine.appManager.settingManager.logManager;
import com.darkweb.genesissearchengine.constants.keys;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.dataManager.dataEnums;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.eventObserver;
import java.util.Arrays;
import java.util.List;
class settingLogModel
@ -20,8 +17,8 @@ class settingLogModel
this.mEvent = mEvent;
}
public void onUpdateLogView(boolean pIsListView){
status.sLogListView = pIsListView;
private void onUpdateLogView(boolean pLogThemeStyle){
status.sLogThemeStyleAdvanced = pLogThemeStyle;
}
/*Helper Methods*/

View File

@ -1,18 +1,10 @@
package com.darkweb.genesissearchengine.appManager.settingManager.logManager;
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;
import com.darkweb.genesissearchengine.eventObserver;
import com.darkweb.genesissearchengine.helperManager.sharedUIMethod;
import com.google.android.material.switchmaterial.SwitchMaterial;
import java.util.List;
class settingLogViewController
{
@ -21,44 +13,52 @@ class settingLogViewController
private eventObserver.eventListener mEvent;
private AppCompatActivity mContext;
private SwitchMaterial mLogUI;
private SwitchMaterial mLogThemeToggle;
/*Initializations*/
settingLogViewController(settingLogController pContext, eventObserver.eventListener pEvent, SwitchMaterial pLogManual)
settingLogViewController(settingLogController pContext, eventObserver.eventListener pEvent, SwitchMaterial pLogThemeToggle)
{
this.mLogUI = pLogManual;
this.mLogThemeToggle = pLogThemeToggle;
this.mEvent = pEvent;
this.mContext = pContext;
initViews();
initPostUI();
}
private void initViews()
private void initViews(boolean pLogThemeStyle)
{
if(status.sLogListView){
mLogUI.setChecked(true);
if(pLogThemeStyle){
mLogThemeToggle.setChecked(true);
}else {
mLogUI.setChecked(false);
mLogThemeToggle.setChecked(false);
}
}
/*Helper Methods*/
private void toggleLogThemeStyle()
{
mLogThemeToggle.toggle();
}
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);
sharedUIMethod.updateStatusBar(mContext);
}
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) {
window.setStatusBarColor(mContext.getResources().getColor(R.color.blue_dark));
mContext.getWindow().setStatusBarColor(ContextCompat.getColor(mContext, R.color.landing_ease_blue));
/*Triggers*/
public Object onTrigger(settingLogEnums.eLogViewController pCommands, List<Object> pData){
if(settingLogEnums.eLogViewController.M_TOOGLE_LOG_VIEW.equals(pCommands)){
toggleLogThemeStyle();
}
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));
else if(settingLogEnums.eLogViewController.M_INIT_VIEW.equals(pCommands)){
initViews((boolean)pData.get(0));
}
return null;
}
public Object onTrigger(settingLogEnums.eLogViewController pCommands){
return onTrigger(pCommands, null);
}
}

View File

@ -13,7 +13,7 @@ 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.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.darkweb.genesissearchengine.helperManager.theme;
import com.darkweb.genesissearchengine.pluginManager.pluginController;

View File

@ -1,14 +1,10 @@
package com.darkweb.genesissearchengine.appManager.settingManager.notificationManager;
import com.darkweb.genesissearchengine.constants.keys;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.dataManager.dataEnums;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.eventObserver;
import com.darkweb.genesissearchengine.pluginManager.pluginController;
import com.darkweb.genesissearchengine.pluginManager.pluginEnums;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
class settingNotificationModel

View File

@ -8,7 +8,7 @@ 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.darkweb.genesissearchengine.eventObserver;
import com.example.myapplication.R;
import com.google.android.material.switchmaterial.SwitchMaterial;

View File

@ -15,7 +15,7 @@ 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.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.darkweb.genesissearchengine.helperManager.theme;
import com.darkweb.genesissearchengine.pluginManager.pluginController;

View File

@ -1,12 +1,11 @@
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.dataEnums;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.eventObserver;
import com.example.myapplication.R;
import java.util.Arrays;
import java.util.List;
import static org.mozilla.geckoview.ContentBlocking.CookieBehavior.ACCEPT_ALL;
import static org.mozilla.geckoview.ContentBlocking.CookieBehavior.ACCEPT_FIRST_PARTY;

View File

@ -10,7 +10,7 @@ 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.darkweb.genesissearchengine.eventObserver;
import com.example.myapplication.R;
import com.google.android.material.switchmaterial.SwitchMaterial;
import java.util.ArrayList;

View File

@ -14,7 +14,7 @@ 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.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.darkweb.genesissearchengine.helperManager.theme;
import com.darkweb.genesissearchengine.pluginManager.pluginController;

View File

@ -1,7 +1,7 @@
package com.darkweb.genesissearchengine.appManager.settingManager.searchEngineManager;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.eventObserver;
import java.util.List;

View File

@ -11,7 +11,7 @@ import androidx.appcompat.app.AppCompatDelegate;
import androidx.core.content.ContextCompat;
import com.darkweb.genesissearchengine.constants.constants;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.eventObserver;
import com.example.myapplication.R;
import com.google.android.material.switchmaterial.SwitchMaterial;
import java.util.ArrayList;

View File

@ -1,8 +1,5 @@
package com.darkweb.genesissearchengine.appManager.settingManager.settingHomePage;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.content.Intent;
import android.content.res.Configuration;
import android.os.Build;
@ -28,7 +25,7 @@ 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.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.darkweb.genesissearchengine.helperManager.theme;
import com.darkweb.genesissearchengine.pluginManager.pluginController;

View File

@ -1,6 +1,6 @@
package com.darkweb.genesissearchengine.appManager.settingManager.settingHomePage;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.eventObserver;
class settingHomeModel
{

View File

@ -7,7 +7,7 @@ import android.view.WindowManager;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.app.AppCompatDelegate;
import androidx.core.content.ContextCompat;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.eventObserver;
import com.example.myapplication.R;
import java.util.List;

View File

@ -14,15 +14,12 @@ 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.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.darkweb.genesissearchengine.helperManager.theme;
import com.darkweb.genesissearchengine.pluginManager.pluginController;
import com.darkweb.genesissearchengine.pluginManager.pluginEnums;
import com.example.myapplication.R;
import com.google.android.material.switchmaterial.SwitchMaterial;
import org.mozilla.geckoview.ContentBlocking;
import java.util.ArrayList;
import java.util.Arrays;

View File

@ -1,20 +1,14 @@
package com.darkweb.genesissearchengine.appManager.settingManager.trackingManager;
import android.view.View;
import com.darkweb.genesissearchengine.constants.keys;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.dataManager.dataEnums;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.eventObserver;
import com.example.myapplication.R;
import org.mozilla.geckoview.ContentBlocking;
import java.util.Arrays;
import java.util.List;
import static org.mozilla.geckoview.ContentBlocking.CookieBehavior.ACCEPT_ALL;
import static org.mozilla.geckoview.ContentBlocking.CookieBehavior.ACCEPT_FIRST_PARTY;
import static org.mozilla.geckoview.ContentBlocking.CookieBehavior.ACCEPT_NONE;
import static org.mozilla.geckoview.ContentBlocking.CookieBehavior.ACCEPT_NON_TRACKERS;
class settingTrackingModel
{

View File

@ -10,7 +10,7 @@ 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.darkweb.genesissearchengine.eventObserver;
import com.example.myapplication.R;
import org.mozilla.geckoview.ContentBlocking;
import java.util.ArrayList;

View File

@ -8,7 +8,6 @@ import android.graphics.Color;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@ -26,7 +25,7 @@ import com.darkweb.genesissearchengine.appManager.activityContextManager;
import com.darkweb.genesissearchengine.constants.enums;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.helperManager.TopCropImageView;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.example.myapplication.R;
import java.util.ArrayList;
@ -39,7 +38,6 @@ import static com.darkweb.genesissearchengine.constants.constants.CONST_GENESIS_
import static com.darkweb.genesissearchengine.constants.constants.CONST_GENESIS_HELP_URL_CACHE_DARK;
import static com.darkweb.genesissearchengine.constants.constants.CONST_GENESIS_URL_CACHED;
import static com.darkweb.genesissearchengine.constants.constants.CONST_GENESIS_URL_CACHED_DARK;
import static org.mozilla.gecko.util.ThreadUtils.runOnUiThread;
public class tabAdapter extends RecyclerView.Adapter<tabAdapter.listViewHolder>
{

View File

@ -1,7 +1,5 @@
package com.darkweb.genesissearchengine.appManager.tabManager;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ObjectAnimator;
import android.animation.PropertyValuesHolder;
import android.annotation.SuppressLint;
@ -34,7 +32,7 @@ import com.darkweb.genesissearchengine.constants.constants;
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.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.example.myapplication.R;
import java.util.ArrayList;

View File

@ -14,6 +14,7 @@ public class constants
public static final String CONST_PRIVACY_POLICY_URL = "https://genesishiddentechnologies.com/privacy";
public static final String CONST_REPORT_URL = "https://genesishiddentechnologies.com/reportus?url=";
public static final String CONST_SITEMAP = "https://genesishiddentechnologies.com/create";
public static final String CONST_PACKAGE_NAME = "com.darkweb.genesissearchengine";
/*DRIVE URL DEV*/
@ -46,6 +47,7 @@ public class constants
public static final String CONST_BACKEND_DUCK_DUCK_GO_URL = "https://duckduckgo.com?q=$s&ia=web";
public static final String CONST_BACKEND_BING_URL = "https://bing.com/search?q=$s";
public static final String CONST_BACKEND_WIKI_URL = "https://en.wikipedia.org/wiki/$s";
public static final String CONST_LOG_DUCKDUCK = "https://duckduckgo.com/?q=tor logs";
/*PROXY CONSTANTS*/

View File

@ -61,7 +61,7 @@ public class status
public static boolean sFullScreenBrowsing = false;
public static boolean sOpenURLInNewTab = true;
public static boolean sDefaultNightMode;
public static boolean sLogListView;
public static boolean sLogThemeStyleAdvanced;
public static boolean sBridgeGatewayAuto = false;
public static boolean sBridgeGatewayManual = false;
public static boolean sVPNStatus = false;
@ -128,7 +128,7 @@ public class status
status.sToolbarTheme = (boolean)dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_BOOL, Arrays.asList(keys.SETTING_TOOLBAR_THEME,true));
status.sTheme = (int)dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_INT, Arrays.asList(keys.SETTING_THEME,enums.Theme.THEME_DEFAULT));
status.sOpenURLInNewTab = (boolean)dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_BOOL, Arrays.asList(keys.SETTING_OPEN_URL_IN_NEW_TAB,true));
status.sLogListView = (boolean)dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_BOOL, Arrays.asList(keys.SETTING_LIST_VIEW,true));
status.sLogThemeStyleAdvanced = (boolean)dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_BOOL, Arrays.asList(keys.SETTING_LIST_VIEW,true));
status.sTabGridLayoutEnabled = (boolean)dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_BOOL, Arrays.asList(keys.SETTING_SHOW_TAB_GRID,true));
status.sRateCount = (int)dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_INT, Arrays.asList(keys.SETTING_RATE_COUNT, 0));
}

View File

@ -63,22 +63,5 @@ public class strings
/*Message Manager*/
public static final String MESSAGE_PLAYSTORE_NOT_FOUND = "Playstore Not Found";
/*Events*/
/* public static final String EVENT_APP_STARTED = "APP_STARTED";
public static final String EVENT_SETTINGS_OPENED = "SETTINGS_OPENED";
public static final String EVENT_URL_BOOKMARKED = "URL_BOOKMARKED";
public static final String EVENT_BOOKMARK_OPENED = "BOOKMARK_OPENED";
public static final String EVENT_TAB_OPENED = "TAB_OPENED";
public static final String EVENT_GATEWAY_OPENED = "GATEWAY_OPENED";
public static final String EVENT_HISTORY_OPENED = "HISTORY_OPENED";
public static final String EVENT_HISTORY_TRIGGERED = "HISTORY_TRIGGERED";
public static final String EVENT_BOOKMARK_TRIGGERED = "BOOKMARK_TRIGGERED";
public static final String EVENT_PAGE_OPENED_SUCCESS = "PAGE_OPENED_SUCCESS";
public static final String EVENT_HOME_INVOKED = "HOME_INVOKED";
public static final String EVENT_SEARCH_INVOKED = "SEARCH_INVOKED";
public static final String EVENT_MENU_INVOKED = "MENU_INVOKED";
public static final String EVENT_ON_BACK = "ON_BACK"; */
}

View File

@ -9,23 +9,16 @@ import com.darkweb.genesissearchengine.appManager.historyManager.historyRowModel
import com.darkweb.genesissearchengine.appManager.homeManager.geckoManager.geckoSession;
import com.darkweb.genesissearchengine.appManager.tabManager.tabRowModel;
import com.darkweb.genesissearchengine.constants.constants;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.dataManager.dataController;
import com.darkweb.genesissearchengine.dataManager.dataEnums;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import net.sqlcipher.database.SQLiteDatabaseHook;
import net.sqlcipher.database.SQLiteDatabase;
import org.mozilla.geckoview.GeckoSession;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import java.util.Objects;
import static com.darkweb.genesissearchengine.constants.constants.CONST_DATABASE_NAME;
@ -36,24 +29,20 @@ public class databaseController
/*Private Variables*/
private static final databaseController sOurInstance = new databaseController();
private static SQLiteDatabase mDatabaseInstance;
private static SQLiteDatabase sDatabaseInstance;
public static databaseController getInstance()
{
return sOurInstance;
}
private databaseController()
{
}
/*Initializations*/
public void prepareDatabaseEnvironment(AppCompatActivity app_context) {
File databaseFile = app_context.getDatabasePath(CONST_DATABASE_NAME + "_SECURE");
if (!databaseFile.exists()) {
databaseFile.getParentFile().mkdirs();
Objects.requireNonNull(databaseFile.getParentFile()).mkdirs();
}
}
@ -63,11 +52,11 @@ public class databaseController
{
SQLiteDatabase.loadLibs(app_context);
prepareDatabaseEnvironment(app_context);
mDatabaseInstance = mDatabaseInstance.openOrCreateDatabase(app_context.getDatabasePath(CONST_DATABASE_NAME + "_SECURE"), constants.CONST_ENCRYPTION_KEY_DATABASE,null, wrapHook(null));
sDatabaseInstance = SQLiteDatabase.openOrCreateDatabase(app_context.getDatabasePath(CONST_DATABASE_NAME + "_SECURE"), constants.CONST_ENCRYPTION_KEY_DATABASE,null, wrapHook(null));
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, theme VARCHAR, session VARCHAR);");
sDatabaseInstance.execSQL("CREATE TABLE IF NOT EXISTS " + "history" + " (id INT(4) PRIMARY KEY,date DATETIME,url VARCHAR,title VARCHAR);");
sDatabaseInstance.execSQL("CREATE TABLE IF NOT EXISTS " + "bookmark" + " (id INT(4) PRIMARY KEY,title VARCHAR,url VARCHAR);");
sDatabaseInstance.execSQL("CREATE TABLE IF NOT EXISTS " + "tab" + " (mid INT(4) PRIMARY KEY,date,title VARCHAR,url VARCHAR,mThumbnail BLOB, theme VARCHAR, session VARCHAR);");
}
catch (Exception ex)
@ -115,11 +104,11 @@ public class databaseController
{
if(params==null)
{
mDatabaseInstance.execSQL(query);
sDatabaseInstance.execSQL(query);
}
else
{
mDatabaseInstance.execSQL(query,params);
sDatabaseInstance.execSQL(query,params);
}
}
@ -127,14 +116,14 @@ public class databaseController
{
if(params!=null)
{
mDatabaseInstance.update(query, params, "mid = ?", new String[]{pID});
sDatabaseInstance.update(query, params, "mid = ?", new String[]{pID});
}
}
public ArrayList<historyRowModel> selectHistory(int startIndex,int endIndex){
public ArrayList<historyRowModel> selectHistory(int pStartIndex,int pEndIndex){
ArrayList<historyRowModel> tempmodel = new ArrayList<>();
Cursor c = mDatabaseInstance.rawQuery("SELECT * FROM history ORDER BY date DESC LIMIT " + endIndex + " OFFSET "+startIndex, null);
Cursor c = sDatabaseInstance.rawQuery("SELECT * FROM history ORDER BY date DESC LIMIT " + pEndIndex + " OFFSET "+pStartIndex, null);
if (c.moveToFirst()){
do {
historyRowModel model = new historyRowModel(c.getString(3), c.getString(2),Integer.parseInt(c.getString(0)));
@ -159,7 +148,7 @@ public class databaseController
public ArrayList<tabRowModel> selectTabs(){
ArrayList<tabRowModel> mTempListModel = new ArrayList<>();
Cursor c = mDatabaseInstance.rawQuery("SELECT * FROM tab ORDER BY date ASC", null);
Cursor c = sDatabaseInstance.rawQuery("SELECT * FROM tab ORDER BY date ASC", null);
if (c.moveToFirst()){
do {
geckoSession mSession = activityContextManager.getInstance().getHomeController().onNewTabInit();
@ -188,7 +177,7 @@ public class databaseController
public int getLargestHistoryID(){
int id = 0;
Cursor c = mDatabaseInstance.rawQuery("SELECT max(id) FROM history", null);
Cursor c = sDatabaseInstance.rawQuery("SELECT max(id) FROM history", null);
if (c.moveToFirst()){
do {
@ -206,7 +195,7 @@ public class databaseController
public ArrayList<bookmarkRowModel> selectBookmark(){
ArrayList<bookmarkRowModel> tempmodel = new ArrayList<>();
Cursor c = mDatabaseInstance.rawQuery("SELECT * FROM bookmark ORDER BY id DESC ", null);
Cursor c = sDatabaseInstance.rawQuery("SELECT * FROM bookmark ORDER BY id DESC ", null);
if (c.moveToFirst()){
do {

View File

@ -1,4 +1,4 @@
package com.darkweb.genesissearchengine.helperManager;
package com.darkweb.genesissearchengine;
import com.darkweb.genesissearchengine.constants.enums;

View File

@ -4,16 +4,17 @@ import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import androidx.appcompat.app.AppCompatActivity;
import com.darkweb.genesissearchengine.appManager.activityContextManager;
import com.darkweb.genesissearchengine.appManager.homeManager.homeController.homeController;
import com.darkweb.genesissearchengine.constants.status;
import com.example.myapplication.R;
import org.torproject.android.service.wrapper.orbotLocalConstants;
import static com.darkweb.genesissearchengine.constants.constants.CONST_PACKAGE_NAME;
public class externalNavigationController extends AppCompatActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Uri data = externalNavigationController.this.getIntent().getData();
@ -30,11 +31,10 @@ public class externalNavigationController extends AppCompatActivity {
finish();
activityContextManager.getInstance().onClearStack();
new Handler().postDelayed(() ->
{
new Handler(Looper.getMainLooper()).postDelayed(() -> {
activityContextManager.getInstance().getHomeController().onOpenLinkNewTab(activityContextManager.getInstance().getHomeController().completeURL(data.toString()));
activityContextManager.getInstance().getHomeController().onClearSelectionTab();
}, 500);
}, 3000);
Intent bringToForegroundIntent = new Intent(activityContextManager.getInstance().getHomeController(), homeController.class);
bringToForegroundIntent.setFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | Intent.FLAG_ACTIVITY_NEW_TASK);
@ -50,13 +50,13 @@ public class externalNavigationController extends AppCompatActivity {
Intent intent = new Intent(this.getIntent());
intent.setClassName(this.getApplicationContext(), homeController.class.getName());
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
if(data!=null){
if(activityContextManager.getInstance().getHomeController()!=null){
activityContextManager.getInstance().getHomeController().onOpenLinkNewTab(data.toString());
}else {
status.sExternalWebsite = data.toString();
}
}
this.startActivity(intent);
this.overridePendingTransition(0, 0);
@ -71,12 +71,11 @@ public class externalNavigationController extends AppCompatActivity {
}
}.start();
Intent launchIntent = getPackageManager().getLaunchIntentForPackage("com.darkweb.genesissearchengine");
Intent launchIntent = getPackageManager().getLaunchIntentForPackage(CONST_PACKAGE_NAME);
startActivity(launchIntent);
}
@Override
protected void onNewIntent(Intent intent)
{
@ -84,9 +83,8 @@ public class externalNavigationController extends AppCompatActivity {
Uri data = intent.getData();
if(data!=null){
activityContextManager.getInstance().getHomeController().onOpenLinkNewTab(data.toString());
Intent launchIntent = getPackageManager().getLaunchIntentForPackage("com.darkweb.genesissearchengine");
Intent launchIntent = getPackageManager().getLaunchIntentForPackage(CONST_PACKAGE_NAME);
startActivity(launchIntent);
}
}
}

View File

@ -1,14 +1,10 @@
package com.darkweb.genesissearchengine.externalNavigationManager;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
import com.darkweb.genesissearchengine.appManager.activityContextManager;
import com.darkweb.genesissearchengine.appManager.homeManager.homeController.homeController;
import com.darkweb.genesissearchengine.constants.constants;
@ -20,17 +16,12 @@ import com.darkweb.genesissearchengine.constants.strings;
import com.darkweb.genesissearchengine.dataManager.dataController;
import com.darkweb.genesissearchengine.dataManager.dataEnums;
import com.darkweb.genesissearchengine.databaseManager.databaseController;
import com.darkweb.genesissearchengine.pluginManager.pluginController;
import com.example.myapplication.R;
import org.mozilla.geckoview.ContentBlocking;
import org.torproject.android.service.wrapper.orbotLocalConstants;
import java.util.Arrays;
import java.util.Collections;
import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
import static com.darkweb.genesissearchengine.pluginManager.pluginEnums.eMessageManager.M_DATA_CLEARED;
import static com.darkweb.genesissearchengine.constants.constants.CONST_PACKAGE_NAME;
import static org.mozilla.geckoview.ContentBlocking.CookieBehavior.ACCEPT_FIRST_PARTY;
public class externalShortcuts extends AppCompatActivity {
@ -62,10 +53,7 @@ public class externalShortcuts extends AppCompatActivity {
setContentView(R.layout.empty_view);
if(mConnect){
new Handler().postDelayed(() ->
{
activityContextManager.getInstance().getHomeController().onStartApplication(null);
}, 2000);
new Handler().postDelayed(() -> activityContextManager.getInstance().getHomeController().onStartApplication(null), 2000);
}
new Handler().postDelayed(() ->
@ -106,13 +94,13 @@ public class externalShortcuts extends AppCompatActivity {
Intent intent = new Intent(this.getIntent());
intent.setClassName(this.getApplicationContext(), homeController.class.getName());
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
if(data!=null){
if(activityContextManager.getInstance().getHomeController()!=null){
activityContextManager.getInstance().getHomeController().onOpenLinkNewTab(data.toString());
}else {
status.sExternalWebsite = data.toString();
}
}
this.startActivity(intent);
overridePendingTransition(R.anim.fade_in_instant, R.anim.fade_out_instant);
@ -127,11 +115,10 @@ public class externalShortcuts extends AppCompatActivity {
}
}.start();
Intent launchIntent = getPackageManager().getLaunchIntentForPackage("com.darkweb.genesissearchengine");
Intent launchIntent = getPackageManager().getLaunchIntentForPackage(CONST_PACKAGE_NAME);
startActivity(launchIntent);
overridePendingTransition(R.anim.fade_in_instant, R.anim.fade_out_instant);
}, 800);
}

View File

@ -1,9 +0,0 @@
package org.mozilla.focus.generated;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class LocaleList {
public static final List<String> BUNDLED_LOCALES = Collections.unmodifiableList(Arrays.asList(new String[] { "ca", "ch", "de", "el", "en-US", "fr", "hu", "in-ID", "it", "ja-JP", "ko", "night", "nl", "pt", "ro", "ru", "th", "tr", "uk", "ur", "vi", "zh" }));
}

View File

@ -1,96 +0,0 @@
package com.darkweb.genesissearchengine.helperManager;
import android.animation.ValueAnimator;
import android.animation.ValueAnimator.AnimatorUpdateListener;
import android.content.Context;
import android.util.AttributeSet;
import android.view.animation.AccelerateDecelerateInterpolator;
import android.view.animation.Interpolator;
import android.widget.ProgressBar;
public class AnimatingProgressBar extends ProgressBar {
private static final Interpolator DEFAULT_INTERPOLATER = new AccelerateDecelerateInterpolator();
private ValueAnimator animator;
private ValueAnimator animatorSecondary;
private boolean animate = true;
public AnimatingProgressBar(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public AnimatingProgressBar(Context context, AttributeSet attrs) {
super(context, attrs);
}
public AnimatingProgressBar(Context context) {
super(context);
}
public boolean isAnimate() {
return animate;
}
public void setAnimate(boolean animate) {
this.animate = animate;
}
@Override
public synchronized void setProgress(int progress) {
if (!animate) {
super.setProgress(progress);
return;
}
if (animator != null)
animator.cancel();
if (animator == null) {
animator = ValueAnimator.ofInt(getProgress(), progress);
animator.setInterpolator(DEFAULT_INTERPOLATER);
animator.addUpdateListener(new AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
AnimatingProgressBar.super.setProgress((Integer) animation.getAnimatedValue());
}
});
} else
animator.setIntValues(getProgress(), progress);
animator.start();
}
@Override
public synchronized void setSecondaryProgress(int secondaryProgress) {
if (!animate) {
super.setSecondaryProgress(secondaryProgress);
return;
}
if (animatorSecondary != null)
animatorSecondary.cancel();
if (animatorSecondary == null) {
animatorSecondary = ValueAnimator.ofInt(getProgress(), secondaryProgress);
animatorSecondary.setInterpolator(DEFAULT_INTERPOLATER);
animatorSecondary.addUpdateListener(new AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
AnimatingProgressBar.super.setSecondaryProgress((Integer) animation
.getAnimatedValue());
}
});
} else
animatorSecondary.setIntValues(getProgress(), secondaryProgress);
animatorSecondary.start();
}
@Override
protected void onDetachedFromWindow() {
super.onDetachedFromWindow();
if (animator != null)
animator.cancel();
if (animatorSecondary != null)
animatorSecondary.cancel();
}
}

View File

@ -7,30 +7,25 @@ import android.view.ViewGroup;
import android.view.ViewTreeObserver;
import android.content.Context;
import android.view.inputmethod.InputMethodManager;
import java.util.HashMap;
import java.util.Objects;
/**
* Based on the following Stackoverflow answer:
* http://stackoverflow.com/questions/2150078/how-to-check-visibility-of-software-keyboard-in-android
*/
@SuppressWarnings("WeakerAccess")
public class KeyboardUtils implements ViewTreeObserver.OnGlobalLayoutListener
{
private final static int MAGIC_NUMBER = 200;
private SoftKeyboardToggleListener mCallback;
private View mRootView;
private Boolean prevValue = null;
private float mScreenDensity;
private final static int sMagicNumber = 200;
private static HashMap<SoftKeyboardToggleListener, KeyboardUtils> sListenerMap = new HashMap<>();
private Boolean mPrevValue = null;
private float mScreenDensity;
public interface SoftKeyboardToggleListener
{
void onToggleSoftKeyboard(boolean isVisible);
}
@Override
public void onGlobalLayout()
{
@ -39,88 +34,67 @@ public class KeyboardUtils implements ViewTreeObserver.OnGlobalLayoutListener
int heightDiff = mRootView.getRootView().getHeight() - (r.bottom - r.top);
float dp = heightDiff/ mScreenDensity;
boolean isVisible = dp > MAGIC_NUMBER;
boolean isVisible = dp > sMagicNumber;
if (mCallback != null && (prevValue == null || isVisible != prevValue)) {
prevValue = isVisible;
if (mCallback != null && (mPrevValue == null || isVisible != mPrevValue)) {
mPrevValue = isVisible;
mCallback.onToggleSoftKeyboard(isVisible);
}
}
/**
* Add a new keyboard listener
* @param act calling activity
* @param listener callback
*/
public static void addKeyboardToggleListener(Activity act, SoftKeyboardToggleListener listener)
{
removeKeyboardToggleListener(listener);
sListenerMap.put(listener, new KeyboardUtils(act, listener));
}
/**
* Remove a registered listener
* @param listener {@link SoftKeyboardToggleListener}
*/
public static void removeKeyboardToggleListener(SoftKeyboardToggleListener listener)
{
if(sListenerMap.containsKey(listener))
{
KeyboardUtils k = sListenerMap.get(listener);
assert k != null;
k.removeListener();
sListenerMap.remove(listener);
}
}
/**
* Remove all registered keyboard listeners
*/
public static void removeAllKeyboardToggleListeners()
{
for(SoftKeyboardToggleListener l : sListenerMap.keySet())
sListenerMap.get(l).removeListener();
for(SoftKeyboardToggleListener l : sListenerMap.keySet()){
Objects.requireNonNull(sListenerMap.get(l)).removeListener();
}
sListenerMap.clear();
}
/**
* Manually toggle soft keyboard visibility
* @param context calling context
*/
public static void toggleKeyboardVisibility(Context context)
{
InputMethodManager inputMethodManager = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
if(inputMethodManager != null)
if(inputMethodManager != null){
inputMethodManager.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
}
}
/**
* Force closes the soft keyboard
* @param activeView the view with the keyboard focus
*/
public static void forceCloseKeyboard(View activeView)
{
InputMethodManager inputMethodManager = (InputMethodManager) activeView.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
if(inputMethodManager != null)
if(inputMethodManager != null){
inputMethodManager.hideSoftInputFromWindow(activeView.getWindowToken(), 0);
}
}
private void removeListener()
{
mCallback = null;
mRootView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
}
private KeyboardUtils(Activity act, SoftKeyboardToggleListener listener)
{
mCallback = listener;
mRootView = ((ViewGroup) act.findViewById(android.R.id.content)).getChildAt(0);
mRootView.getViewTreeObserver().addOnGlobalLayoutListener(this);
mScreenDensity = act.getResources().getDisplayMetrics().density;
}

View File

@ -1,103 +0,0 @@
package com.darkweb.genesissearchengine.helperManager;
import android.annotation.SuppressLint;
import android.content.ContentUris;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import android.os.Build;
import android.os.Environment;
import android.provider.DocumentsContract;
import android.provider.MediaStore;
import java.net.URISyntaxException;
/**
* Created by Aki on 1/7/2017.
*/
public class PathUtil {
/*
* Gets the file path of the given Uri.
*/
@SuppressLint("NewApi")
public static String getPath(Context context, Uri uri)
{
final boolean needToCheckUri = Build.VERSION.SDK_INT >= 19;
String selection = null;
String[] selectionArgs = null;
if(uri==null){
return null;
}
if (uri.getPathSegments()!=null && needToCheckUri && DocumentsContract.isDocumentUri(context.getApplicationContext(), uri)) {
if (isExternalStorageDocument(uri)) {
final String docId = DocumentsContract.getDocumentId(uri);
final String[] split = docId.split(":");
return Environment.getExternalStorageDirectory() + "/" + split[1];
} else if (isDownloadsDocument(uri)) {
final String id = DocumentsContract.getDocumentId(uri);
uri = ContentUris.withAppendedId(
Uri.parse("content://downloads/public_downloads"), Long.valueOf(id));
} else if (isMediaDocument(uri)) {
final String docId = DocumentsContract.getDocumentId(uri);
final String[] split = docId.split(":");
final String type = split[0];
if ("image".equals(type)) {
uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
} else if ("video".equals(type)) {
uri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
} else if ("audio".equals(type)) {
uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
}
selection = "_id=?";
selectionArgs = new String[]{ split[1] };
}
}
if(uri.getScheme()!=null){
if ("content".equalsIgnoreCase(uri.getScheme())) {
String[] projection = { MediaStore.Images.Media.DATA };
Cursor cursor = null;
try {
cursor = context.getContentResolver().query(uri, projection, selection, selectionArgs, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
if (cursor.moveToFirst()) {
return cursor.getString(column_index);
}
} catch (Exception e) {
}
} else if ("file".equalsIgnoreCase(uri.getScheme())) {
return uri.getPath();
}
}
return null;
}
/**
* @param uri The Uri to check.
* @return Whether the Uri authority is ExternalStorageProvider.
*/
public static boolean isExternalStorageDocument(Uri uri) {
return "com.android.externalstorage.documents".equals(uri.getAuthority());
}
/**
* @param uri The Uri to check.
* @return Whether the Uri authority is DownloadsProvider.
*/
public static boolean isDownloadsDocument(Uri uri) {
return "com.android.providers.downloads.documents".equals(uri.getAuthority());
}
/**
* @param uri The Uri to check.
* @return Whether the Uri authority is MediaProvider.
*/
public static boolean isMediaDocument(Uri uri) {
return "com.android.providers.media.documents".equals(uri.getAuthority());
}
}

View File

@ -1,120 +0,0 @@
package com.darkweb.genesissearchengine.helperManager;
import java.util.ArrayList;
import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Filter;
import android.widget.ImageButton;
import android.widget.TextView;
import com.darkweb.genesissearchengine.appManager.historyManager.historyRowModel;
import com.darkweb.genesissearchengine.constants.strings;
import com.example.myapplication.R;
public class autoCompleteAdapter extends ArrayAdapter<historyRowModel> {
private final String MY_DEBUG_TAG = "CustomerAdapter";
private ArrayList<historyRowModel> items;
private ArrayList<historyRowModel> itemsAll;
private ArrayList<historyRowModel> suggestions;
private int viewResourceId;
public autoCompleteAdapter(Context context, int viewResourceId, ArrayList<historyRowModel> items) {
super(context, viewResourceId, items);
this.items = items;
this.itemsAll = (ArrayList<historyRowModel>) items.clone();
this.suggestions = new ArrayList<>();
this.viewResourceId = viewResourceId;
}
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(viewResourceId, null);
}
historyRowModel customer = items.get(position);
if (customer != null) {
TextView customerNameLabel = v.findViewById(R.id.pHeader);
TextView myTv = v.findViewById( R.id.pURL);
ImageButton mMoveURL = v.findViewById( R.id.pMoveURL);
if (customerNameLabel != null) {
if(customer.getHeader().equals(strings.GENERIC_EMPTY_STR)){
customerNameLabel.setText(customer.getHeader() );
}else {
customerNameLabel.setText(customer.getHeader());
}
myTv.setText(customer.getDescription());
mMoveURL.setTag(customer.getDescription());
}
}
return v;
}
@Override
public Filter getFilter() {
return nameFilter;
}
Filter nameFilter = new Filter() {
@Override
public String convertResultToString(Object resultValue) {
if(resultValue==null){
return strings.GENERIC_EMPTY_STR;
}
historyRowModel model = (historyRowModel)(resultValue);
String str = model.getHeader();
return str;
}
@Override
protected FilterResults performFiltering(CharSequence constraint) {
if(constraint != null && !constraint.equals("about:blank")) {
suggestions.clear();
if(constraint.toString().startsWith("https://")){
constraint = constraint.subSequence(0,8);
}else if (constraint.toString().startsWith("http://")){
constraint = constraint.subSequence(0,7);
}
for (historyRowModel customer : itemsAll) {
if(suggestions.size()>4){
break;
}
if(!customer.getHeader().equals("$TITLE") && customer.getHeader().length()>2 && customer.getDescription().toLowerCase().length()>2 && (customer.getHeader().toLowerCase().contains(constraint.toString().toLowerCase()) || constraint.toString().toLowerCase().toLowerCase().contains(customer.getHeader()) || constraint.toString().toLowerCase().contains(customer.getDescription().toLowerCase()) || customer.getDescription().toLowerCase().contains(constraint.toString().toLowerCase()))){
Log.i("memememe:","memememe:"+constraint.toString().toLowerCase().replace("https://","").replace("http://",""));
Log.i("memememe1:","memememe2:"+customer.getDescription().replace("https://","").replace("http://",""));
suggestions.add(customer);
}
}
FilterResults filterResults = new FilterResults();
filterResults.values = suggestions;
filterResults.count = suggestions.size();
return filterResults;
} else {
return new FilterResults();
}
}
@Override
protected void publishResults(CharSequence constraint, FilterResults results)
{
try{
if(results != null) {
ArrayList<historyRowModel> filteredList = (ArrayList<historyRowModel>)((ArrayList<historyRowModel>)results.values).clone();
clear();
for (historyRowModel c : filteredList) {
add(c);
}
notifyDataSetChanged();
}
}catch (Exception ignored){
}
}
};
}

View File

@ -5,7 +5,7 @@ import android.content.Intent;
import android.os.IBinder;
import com.darkweb.genesissearchengine.constants.status;
public class OnClearFromRecentService extends Service {
public class clearAllRecentServices extends Service {
@Override
public IBinder onBind(Intent intent) {

View File

@ -2,14 +2,14 @@ package com.darkweb.genesissearchengine.helperManager;
import android.graphics.Color;
public class animatedColor
public class colorAnimationReciever
{
private final int mStartColor, mEndColor;
private final float[] mStartHSV, mEndHSV;
private float[] mMove = new float[3];
public animatedColor(int start, int end) {
public colorAnimationReciever(int start, int end) {
mStartColor = start;
mEndColor = end;
mStartHSV = toHSV(start);

View File

@ -19,10 +19,9 @@ import static java.lang.Thread.sleep;
public class downloadFileService extends IntentService
{
private static final String PROXY_ADDRESS = CONST_PROXY_SOCKS;
private static final int PROXY_PORT = 9050;
private static final String DOWNLOAD_PATH = "com.spartons.androiddownloadmanager_DownloadSongService_Download_path";
private static final String DESTINATION_PATH = "com.spartons.androiddownloadmanager_DownloadSongService_Destination_path";
public downloadFileService() {
super("DownloadSongService");
}

View File

@ -16,5 +16,4 @@ public class downloadNotification extends BroadcastReceiver {
pluginController.getInstance().onDownloadInvoke(Collections.singletonList(intent.getExtras().getInt("N_ID")), pluginEnums.eDownloadManager.M_CANCEL);
}
}
}

View File

@ -4,6 +4,7 @@ import android.Manifest;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.annotation.SuppressLint;
import android.app.ActivityManager;
import android.app.DownloadManager;
import android.content.ActivityNotFoundException;
import android.content.ClipData;
@ -25,6 +26,7 @@ import android.graphics.drawable.TransitionDrawable;
import android.net.Uri;
import android.os.Build;
import android.os.Environment;
import android.os.Handler;
import android.os.Vibrator;
import android.text.SpannableString;
import android.text.Spanned;
@ -52,6 +54,7 @@ import androidx.core.content.ContextCompat;
import androidx.core.content.FileProvider;
import androidx.core.graphics.ColorUtils;
import com.darkweb.genesissearchengine.appManager.activityContextManager;
import com.darkweb.genesissearchengine.appManager.homeManager.FakeLauncherActivity;
import com.darkweb.genesissearchengine.constants.enums;
import com.darkweb.genesissearchengine.constants.keys;
@ -80,6 +83,7 @@ import java.util.Date;
import java.util.List;
import java.util.Locale;
import java.util.UUID;
import java.util.concurrent.Callable;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@ -133,6 +137,18 @@ public class helperMethod
}
}
public static void onDelayHandler(AppCompatActivity pActivity, int pTime, Callable<Void> pMethodParam) {
final Handler handler = new Handler();
handler.postDelayed(() ->
{
try {
pMethodParam.call();
} catch (Exception e) {
e.printStackTrace();
}
}, pTime);
}
public static void onOpenHelpExternal(AppCompatActivity context, String pURL){
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(pURL));
context.startActivity(browserIntent);

View File

@ -17,10 +17,10 @@ import java.io.IOException;
import java.text.DateFormat;
import java.util.Date;
public class JavaScriptInterface {
public class internalFileDownloadManager {
private Context context;
private NotificationManager nm;
public JavaScriptInterface(Context context) {
public internalFileDownloadManager(Context context) {
this.context = context;
}

View File

@ -18,12 +18,12 @@ import android.os.Environment;
import android.os.Handler;
import android.os.StrictMode;
import android.provider.MediaStore;
import android.widget.Toast;
import androidx.core.app.NotificationCompat;
import androidx.core.content.FileProvider;
import com.darkweb.genesissearchengine.appManager.activityContextManager;
import com.darkweb.genesissearchengine.eventObserver;
import com.darkweb.genesissearchengine.netcipher.client.StrongHttpsClient;
import com.darkweb.genesissearchengine.pluginManager.pluginController;
import com.darkweb.genesissearchengine.pluginManager.pluginEnums;
@ -39,15 +39,12 @@ import java.net.InetSocketAddress;
import java.net.Proxy;
import java.net.URI;
import java.net.URL;
import java.net.URLConnection;
import java.text.DecimalFormat;
import java.util.Arrays;
import java.util.Collections;
import ch.boye.httpclientandroidlib.HttpHost;
import ch.boye.httpclientandroidlib.HttpResponse;
import ch.boye.httpclientandroidlib.client.methods.HttpGet;
import ch.boye.httpclientandroidlib.conn.params.ConnRoutePNames;
import static com.darkweb.genesissearchengine.constants.enums.etype.M_DOWNLOAD_FAILURE;
import static java.lang.Thread.sleep;

View File

@ -0,0 +1,34 @@
package com.darkweb.genesissearchengine.helperManager;
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.example.myapplication.R;
public class sharedUIMethod
{
/*Shared UI Helper Methods General*/
public static void updateStatusBar(AppCompatActivity mContext) {
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));
mContext.getWindow().setStatusBarColor(ContextCompat.getColor(mContext, R.color.landing_ease_blue));
}
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

@ -1,7 +1,7 @@
package com.darkweb.genesissearchengine.pluginManager;
import androidx.appcompat.app.AppCompatActivity;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.eventObserver;
import com.google.android.gms.ads.*;
import java.lang.ref.WeakReference;
import java.util.List;

View File

@ -3,7 +3,7 @@ package com.darkweb.genesissearchengine.pluginManager;
import androidx.appcompat.app.AppCompatActivity;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.eventObserver;
import com.flurry.android.FlurryAgent;
import java.lang.ref.WeakReference;
import java.util.List;

View File

@ -2,7 +2,7 @@ package com.darkweb.genesissearchengine.pluginManager;
import androidx.appcompat.app.AppCompatActivity;
import com.darkweb.genesissearchengine.helperManager.localFileDownloader;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import java.lang.ref.WeakReference;
import java.util.HashMap;

View File

@ -5,7 +5,7 @@ import android.content.res.Resources;
import android.os.Build;
import androidx.appcompat.app.AppCompatActivity;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.eventObserver;
import java.util.List;
import java.util.Locale;

View File

@ -21,7 +21,7 @@ import com.darkweb.genesissearchengine.appManager.activityContextManager;
import com.darkweb.genesissearchengine.constants.constants;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.constants.strings;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.example.myapplication.R;
import com.google.android.material.switchmaterial.SwitchMaterial;

View File

@ -11,7 +11,7 @@ import android.os.SystemClock;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.NotificationCompat;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.eventObserver;
import com.darkweb.genesissearchengine.helperManager.userEngagementNotification;
import com.example.myapplication.R;
import java.lang.ref.WeakReference;

View File

@ -11,7 +11,7 @@ import org.torproject.android.service.wrapper.orbotLocalConstants;
import java.lang.ref.WeakReference;
import java.util.List;
import com.darkweb.genesissearchengine.constants.*;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.eventObserver;
import static org.torproject.android.proxy.TorServiceConstants.ACTION_START;

View File

@ -1,7 +1,6 @@
package com.darkweb.genesissearchengine.pluginManager;
import android.os.Handler;
import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
import com.darkweb.genesissearchengine.appManager.activityContextManager;
@ -13,7 +12,7 @@ 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.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import java.lang.ref.WeakReference;
import java.util.Arrays;

View File

@ -65,7 +65,7 @@
</LinearLayout>
<androidx.core.widget.NestedScrollView
android:id="@+id/mMainScroll"
android:id="@+id/pNestedScrollView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fillViewport="true"
@ -129,10 +129,12 @@
android:layout_marginEnd="12dp"
android:background="@xml/sx_border_left"
android:layout_marginStart="10dp"
android:paddingStart="10dp"
android:paddingTop="5dp"
android:layout_marginBottom="25dp"
android:paddingBottom="25dp"
android:paddingStart="15dp"
android:paddingEnd="10dp"
android:paddingTop="25dp"
android:paddingBottom="5dp"
android:layout_marginBottom="190dp"
android:layout_marginTop="20dp"
android:textColor="@color/c_text_v4"
android:textSize="14sp"
android:visibility="gone"
@ -141,6 +143,8 @@
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/pLogRecycleView"
android:fillViewport="true"
android:paddingBottom="150dp"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:nestedScrollingEnabled="false"/>

View File

@ -130,7 +130,7 @@
<com.google.android.material.switchmaterial.SwitchMaterial
android:layout_width="0dp"
android:id="@+id/pListView"
android:id="@+id/pLogThemeToggle"
android:layout_height="match_parent"
android:clickable="false"
android:focusable="false"

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