bug fixes

master
Genesis 2021-06-22 10:48:26 +05:00
parent f7384e8b53
commit f86075c43b
47 changed files with 1129 additions and 165 deletions

View File

@ -134,6 +134,7 @@ dependencies {
implementation 'androidx.recyclerview:recyclerview:1.1.0'
implementation 'androidx.coordinatorlayout:coordinatorlayout:1.1.0'
implementation 'com.google.android.material:material:1.2.1'
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
/* Automated APK Generation */

View File

@ -2,7 +2,6 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.example.myapplication">
<!-- Permissions -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
@ -15,19 +14,21 @@
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<application
android:requestLegacyExternalStorage="true"
android:allowBackup="true"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:fullBackupContent="false"
android:extractNativeLibs="true"
android:fullBackupContent="false"
android:icon="@mipmap/ic_launcher_genesis"
android:label="@string/app_name"
android:networkSecurityConfig="@xml/gx_network_security_config"
android:requestLegacyExternalStorage="true"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme"
android:usesCleartextTraffic="true"
tools:targetApi="n">
<activity android:name="com.darkweb.genesissearchengine.appManager.bookmarkManager.BookmarkSettings.bookmarkSettingController"></activity>
<receiver android:name="com.widget.Genesis.widgetManager.widgetController">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
@ -55,7 +56,7 @@
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
android:windowSoftInputMode="adjustPan" />
<activity
android:name="com.darkweb.genesissearchengine.appManager.bookmarkManager.bookmarkController"
android:name="com.darkweb.genesissearchengine.appManager.bookmarkManager.bookmarkHome.bookmarkController"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
android:windowSoftInputMode="adjustPan" />
<activity
@ -84,8 +85,8 @@
android:windowSoftInputMode="adjustPan" />
<activity
android:name="com.darkweb.genesissearchengine.appManager.settingManager.notificationManager.settingNotificationController"
android:launchMode="singleTop"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
android:launchMode="singleTop"
android:windowSoftInputMode="adjustPan" />
<activity
android:name="com.darkweb.genesissearchengine.appManager.settingManager.privacyManager.settingPrivacyController"
@ -125,8 +126,10 @@
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan">
<meta-data android:name="android.app.shortcuts"
<meta-data
android:name="android.app.shortcuts"
android:resource="@xml/shortcuts" />
<intent-filter>
<category android:name="android.intent.category.LAUNCHER" />
@ -144,13 +147,12 @@
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:name="com.darkweb.genesissearchengine.appManager.externalCommandManager.externalShortcutController"
android:launchMode="singleTop"/>
<activity android:name="com.darkweb.genesissearchengine.appManager.externalCommandManager.externalURLNavigationContoller"
android:launchMode="singleTask"
>
<activity
android:name="com.darkweb.genesissearchengine.appManager.externalCommandManager.externalShortcutController"
android:launchMode="singleTop" />
<activity
android:name="com.darkweb.genesissearchengine.appManager.externalCommandManager.externalURLNavigationContoller"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
@ -191,19 +193,16 @@
<meta-data
android:name="io.fabric.ApiKey"
android:value="be76c64dae2519d4ab8daaed88298da14c7c294f" />
<!-- Live Build -->
<!-- --> <meta-data
android:value="be76c64dae2519d4ab8daaed88298da14c7c294f" /> <!-- Live Build -->
<!-- -->
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-5074525529134731~4717329156" />
<!-- Development Build -->
<!-- <meta-data
android:value="ca-app-pub-5074525529134731~4717329156" /> <!-- Development Build -->
<!--
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-6985886044951738~4177628900" /> -->
android:value="ca-app-pub-6985886044951738~4177628900" />
-->
<service
android:name="com.darkweb.genesissearchengine.pluginManager.downloadPluginManager.downloadService"
android:enabled="true"
@ -221,8 +220,8 @@
<action android:name="Download_Cancelled" />
</intent-filter>
</receiver>
<!-- Permissions File Provider Live
<!--
Permissions File Provider Live
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="com.darkweb.genesissearchengine.production.provider"
@ -232,9 +231,7 @@
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths" />
</provider>
-->
<!-- Permissions File Provider Dev -->
<provider
android:name="androidx.core.content.FileProvider"
@ -245,28 +242,22 @@
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths" />
</provider>
<provider
android:name="com.darkweb.genesissearchengine.libs.providers.HSContentProvider"
android:authorities="org.torproject.android.ui.hiddenservices.providers.genesis"
android:exported="false" />
<provider
android:name="com.darkweb.genesissearchengine.libs.providers.OnionServiceContentProvider"
android:authorities="org.torproject.android.ui.v3onionservice.genesis"
android:exported="false" />
<provider
android:authorities="org.torproject.android.ui.v3onionservice.genesis.clientauth"
android:name="com.darkweb.genesissearchengine.libs.providers.ClientAuthContentProviderGenesis"
android:exported="false"/>
android:authorities="org.torproject.android.ui.v3onionservice.genesis.clientauth"
android:exported="false" />
<provider
android:name="com.darkweb.genesissearchengine.libs.providers.CookieContentProvider"
android:authorities="org.torproject.android.ui.hiddenservices.providers.genesis.cookie"
android:exported="false" />
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.fileprovider"
@ -286,8 +277,6 @@
<action android:name="android.net.VpnService" />
</intent-filter>
</service>
</application>
</manifest>

View File

@ -3,7 +3,7 @@ package com.darkweb.genesissearchengine.appManager;
import android.content.Context;
import androidx.appcompat.app.AppCompatActivity;
import com.darkweb.genesissearchengine.appManager.bookmarkManager.bookmarkController;
import com.darkweb.genesissearchengine.appManager.bookmarkManager.bookmarkHome.bookmarkController;
import com.darkweb.genesissearchengine.appManager.bridgeManager.bridgeController;
import com.darkweb.genesissearchengine.appManager.historyManager.historyController;
import com.darkweb.genesissearchengine.appManager.homeManager.homeController.homeController;

View File

@ -0,0 +1,175 @@
package com.darkweb.genesissearchengine.appManager.bookmarkManager.BookmarkSettings;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.content.res.Configuration;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import com.darkweb.genesissearchengine.appManager.activityContextManager;
import com.darkweb.genesissearchengine.appManager.activityThemeManager;
import com.darkweb.genesissearchengine.constants.keys;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.eventObserver;
import com.darkweb.genesissearchengine.pluginManager.pluginController;
import com.darkweb.genesissearchengine.pluginManager.pluginEnums;
import com.example.myapplication.R;
import org.mozilla.geckoview.GeckoSession;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class bookmarkSettingController extends AppCompatActivity {
/* Private Variables */
private bookmarkSettingModel mBookmarkSettingModel;
private bookmarkSettingViewController mBookmarkSettingViewController;
/* UI Variables */
private EditText mBookmarName;
private EditText mBookmarURL;
private TextView mBookmarkNameError;
private TextView mBookmarkURLError;
/* Initializations */
@Override
protected void onCreate(Bundle savedInstanceState) {
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
activityContextManager.getInstance().onStack(this);
super.onCreate(savedInstanceState);
setContentView(R.layout.bookmark_setting_view);
initializeViews();
initializeModels();
initializeLocalEventHandlers();
}
private void initializeViews() {
mBookmarName = findViewById(R.id.pBookmarkName);
mBookmarURL = findViewById(R.id.pBookmarkURL);
mBookmarkNameError = findViewById(R.id.pBookmarkNameError);
mBookmarkURLError = findViewById(R.id.pBookmarkURLError);
}
private void initializeLocalEventHandlers() {
TextWatcher mTextWatcher = new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {
String mBookmarkName = (String) mBookmarkSettingViewController.onTrigger(bookmarkSettingEnums.eBookmarkSettingViewCommands.M_GET_BOOKMARK_NAME);
String mBookmarkURL = (String) mBookmarkSettingViewController.onTrigger(bookmarkSettingEnums.eBookmarkSettingViewCommands.M_GET_BOOKMARK_URL);
mBookmarkSettingModel.onTrigger(bookmarkSettingEnums.eBookmarkSettingModelCommands.M_VALIDATE_FORM, Arrays.asList(mBookmarkName, mBookmarkURL));
}
@Override
public void beforeTextChanged(CharSequence s, int start,int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start,int before, int count) {
}
};
mBookmarName.addTextChangedListener(mTextWatcher);
mBookmarURL.addTextChangedListener(mTextWatcher);
}
public void initializeModels(){
String mBookmarkName = getIntent().getStringExtra(keys.BOOKMARK_SETTING_NAME);
String mBookmarkURL = getIntent().getStringExtra(keys.BOOKMARK_SETTING_URL);
int mBookmarkID = getIntent().getIntExtra(keys.BOOKMARK_SETTING_ID, -1);
mBookmarkSettingViewController = new bookmarkSettingViewController(this, new bookmarkSettingViewCallback(), mBookmarName, mBookmarURL, mBookmarkNameError, mBookmarkURLError);
mBookmarkSettingViewController.onTrigger(bookmarkSettingEnums.eBookmarkSettingViewCommands.M_INITIALIZE, Arrays.asList(mBookmarkName,mBookmarkURL));
mBookmarkSettingModel = new bookmarkSettingModel(this, new bookmarkSettingModelCallback(), mBookmarkID);
}
/* Local Override */
@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();
activityThemeManager.getInstance().onConfigurationChanged(this);
}
}
@Override
public void onResume()
{
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_RESUME);
activityContextManager.getInstance().setCurrentActivity(this);
super.onResume();
}
@Override
protected void onDestroy() {
activityContextManager.getInstance().onRemoveStack(this);
super.onDestroy();
}
@Override
public void onBackPressed() {
onClose(null);
}
/* UI Redirection */
public void onClose(View view){
finish();
}
public void onUpdateBookmark(View view) {
String mBookmarkName = (String) mBookmarkSettingViewController.onTrigger(bookmarkSettingEnums.eBookmarkSettingViewCommands.M_GET_BOOKMARK_NAME);
String mBookmarkURL = (String) mBookmarkSettingViewController.onTrigger(bookmarkSettingEnums.eBookmarkSettingViewCommands.M_GET_BOOKMARK_URL);
mBookmarkSettingModel.onTrigger(bookmarkSettingEnums.eBookmarkSettingModelCommands.M_UPDATE_BOOKMARK, Arrays.asList(mBookmarkName, mBookmarkURL));
}
/* UI Callbacks */
private class bookmarkSettingViewCallback implements eventObserver.eventListener{
@Override
public Object invokeObserver(List<Object> data, Object e_type)
{
return null;
}
}
private class bookmarkSettingModelCallback implements eventObserver.eventListener{
@Override
public Object invokeObserver(List<Object> pData, Object pType)
{
if(pType.equals(bookmarkSettingEnums.eBookmarkSettingModelCallbackCommands.M_BOOKMARK_NAME_VALIDATION_ERROR)){
mBookmarkSettingViewController.onTrigger(bookmarkSettingEnums.eBookmarkSettingViewCommands.M_BOOKMARK_NAME_VALIDATION_ERROR, pData);
}
else if(pType.equals(bookmarkSettingEnums.eBookmarkSettingModelCallbackCommands.M_BOOKMARK_URL_VALIDATION_ERROR)){
mBookmarkSettingViewController.onTrigger(bookmarkSettingEnums.eBookmarkSettingViewCommands.M_BOOKMARK_URL_VALIDATION_ERROR, pData);
}
else if(pType.equals(bookmarkSettingEnums.eBookmarkSettingModelCallbackCommands.M_CLEAR_FORM)){
mBookmarkSettingViewController.onTrigger(bookmarkSettingEnums.eBookmarkSettingViewCommands.M_CLEAR_FORM);
}
else if(pType.equals(bookmarkSettingEnums.eBookmarkSettingModelCallbackCommands.M_CLOSE)){
onClose(null);
}
return null;
}
}
}

View File

@ -0,0 +1,20 @@
package com.darkweb.genesissearchengine.appManager.bookmarkManager.BookmarkSettings;
public class bookmarkSettingEnums
{
public enum eBookmarkSettingViewCommands {
M_INITIALIZE, M_GET_BOOKMARK_NAME, M_GET_BOOKMARK_URL, M_BOOKMARK_NAME_VALIDATION_ERROR, M_BOOKMARK_URL_VALIDATION_ERROR, M_CLEAR_FORM
}
public enum eBookmarkSettingModelCommands {
M_GET_BOOKMARK_ID, M_UPDATE_BOOKMARK, M_CLOSE, M_VALIDATE_FORM
}
public enum eBookmarkSettingViewAdapterCommands {
}
public enum eBookmarkSettingModelCallbackCommands {
M_CLEAR_FORM, M_BOOKMARK_NAME_VALIDATION_ERROR, M_BOOKMARK_URL_VALIDATION_ERROR,M_CLOSE
}
}

View File

@ -0,0 +1,79 @@
package com.darkweb.genesissearchengine.appManager.bookmarkManager.BookmarkSettings;
import androidx.appcompat.app.AppCompatActivity;
import com.darkweb.genesissearchengine.constants.strings;
import com.darkweb.genesissearchengine.dataManager.dataController;
import com.darkweb.genesissearchengine.dataManager.dataEnums;
import com.darkweb.genesissearchengine.eventObserver;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import static com.darkweb.genesissearchengine.constants.strings.BOOKMARK_SETTING_VALIDATION_ERROR_1;
import static com.darkweb.genesissearchengine.constants.strings.BOOKMARK_SETTING_VALIDATION_ERROR_2;
class bookmarkSettingModel
{
/* Private Variables */
private AppCompatActivity mContext;
private eventObserver.eventListener mEvent;
private int mBookmarkID;
public bookmarkSettingModel(AppCompatActivity pContext, eventObserver.eventListener pEvent, int pBookmarkID){
this.mContext = pContext;
this.mEvent = pEvent;
this.mBookmarkID = pBookmarkID;
}
/* Helper Methods */
private int getBookarkID(){
return mBookmarkID;
}
private void onUpdateBookmark(String pBookmarkName, String pBookmarkURL){
boolean status = validateForm(pBookmarkName, pBookmarkURL);
if(status){
dataController.getInstance().invokeBookmark(dataEnums.eBookmarkCommands.M_UPDATE_BOOKMARK, Arrays.asList(pBookmarkName, pBookmarkURL, mBookmarkID));
mEvent.invokeObserver(null, bookmarkSettingEnums.eBookmarkSettingModelCallbackCommands.M_CLOSE);
}
}
private boolean validateForm(String pBookmarkName, String pBookmarkURL){
mEvent.invokeObserver(null, bookmarkSettingEnums.eBookmarkSettingModelCallbackCommands.M_CLEAR_FORM);
boolean mStatus = true;
if(pBookmarkName.equals(strings.GENERIC_EMPTY_STR)){
mEvent.invokeObserver(Arrays.asList(BOOKMARK_SETTING_VALIDATION_ERROR_1, false), bookmarkSettingEnums.eBookmarkSettingModelCallbackCommands.M_BOOKMARK_NAME_VALIDATION_ERROR);
mStatus = false;
}else {
mEvent.invokeObserver(Arrays.asList(BOOKMARK_SETTING_VALIDATION_ERROR_1, true), bookmarkSettingEnums.eBookmarkSettingModelCallbackCommands.M_BOOKMARK_NAME_VALIDATION_ERROR);
}
if(pBookmarkURL.equals(strings.GENERIC_EMPTY_STR)){
mEvent.invokeObserver(Arrays.asList(strings.BOOKMARK_SETTING_VALIDATION_ERROR_2, false), bookmarkSettingEnums.eBookmarkSettingModelCallbackCommands.M_BOOKMARK_URL_VALIDATION_ERROR);
mStatus = false;
}else {
mEvent.invokeObserver(Arrays.asList(BOOKMARK_SETTING_VALIDATION_ERROR_2, true), bookmarkSettingEnums.eBookmarkSettingModelCallbackCommands.M_BOOKMARK_URL_VALIDATION_ERROR);
}
return mStatus;
}
/* Event Observer */
public Object onTrigger(bookmarkSettingEnums.eBookmarkSettingModelCommands pCommands, List<Object> pData){
if(bookmarkSettingEnums.eBookmarkSettingModelCommands.M_GET_BOOKMARK_ID.equals(pCommands)){
return getBookarkID();
}
if(bookmarkSettingEnums.eBookmarkSettingModelCommands.M_UPDATE_BOOKMARK.equals(pCommands)){
onUpdateBookmark((String) pData.get(0), (String) pData.get(1));
}
if(bookmarkSettingEnums.eBookmarkSettingModelCommands.M_VALIDATE_FORM.equals(pCommands)){
validateForm((String) pData.get(0), (String) pData.get(1));
}
return null;
}
}

View File

@ -0,0 +1,131 @@
package com.darkweb.genesissearchengine.appManager.bookmarkManager.BookmarkSettings;
import android.widget.EditText;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import com.darkweb.genesissearchengine.appManager.settingManager.settingHomeManager.settingHomeEnums;
import com.darkweb.genesissearchengine.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.darkweb.genesissearchengine.helperManager.sharedUIMethod;
import com.example.myapplication.R;
import org.xmlpull.v1.XmlPullParserException;
import java.io.IOException;
import java.util.List;
import static com.darkweb.genesissearchengine.appManager.bookmarkManager.BookmarkSettings.bookmarkSettingEnums.eBookmarkSettingModelCallbackCommands.M_BOOKMARK_NAME_VALIDATION_ERROR;
import static com.darkweb.genesissearchengine.appManager.bookmarkManager.BookmarkSettings.bookmarkSettingEnums.eBookmarkSettingModelCallbackCommands.M_BOOKMARK_URL_VALIDATION_ERROR;
class bookmarkSettingViewController
{
/* Private Variables */
private AppCompatActivity mContext;
private eventObserver.eventListener mEvent;
/* UI Variables */
private EditText mBookmarName;
private EditText mBookmarURL;
private TextView mBookmarkNameError;
private TextView mBookmarkURLError;
/* Initializations */
bookmarkSettingViewController(AppCompatActivity pContext, eventObserver.eventListener pEvent,EditText pBookmarName,EditText pBookmarURL, TextView pBookmarkNameError, TextView pBookmarkURLError)
{
this.mContext = pContext;
this.mEvent = pEvent;
this.mBookmarName = pBookmarName;
this.mBookmarURL = pBookmarURL;
this.mBookmarkNameError = pBookmarkNameError;
this.mBookmarkURLError = pBookmarkURLError;
initPostUI();
}
private void initPostUI(){
sharedUIMethod.updateStatusBar(mContext);
}
private void initializeBookmark(String pBookmarkName, String pBookmarkURL){
mBookmarName.setText(pBookmarkName);
mBookmarURL.setText(pBookmarkURL);
}
private String getBookmarkName(){
return mBookmarName.getText().toString();
}
private String getBookmarkURL(){
return mBookmarURL.getText().toString();
}
private void mBookmarkNameValidationError(bookmarkSettingEnums.eBookmarkSettingViewCommands pCommands, String pMessage, boolean pStatus){
try {
if(pCommands.equals(bookmarkSettingEnums.eBookmarkSettingViewCommands.M_BOOKMARK_NAME_VALIDATION_ERROR)){
if(!pStatus){
mBookmarName.setBackground(helperMethod.getDrawableXML(mContext, R.xml.gx_generic_input_error));
mBookmarkNameError.animate().setDuration(150).alpha(1);
mBookmarkNameError.setText(pMessage);
}else {
mBookmarName.setBackground(helperMethod.getDrawableXML(mContext, R.xml.gx_generic_input));
mBookmarkNameError.animate().setDuration(150).alpha(0);
mBookmarkNameError.setText(pMessage);
}
}
if(pCommands.equals(bookmarkSettingEnums.eBookmarkSettingViewCommands.M_BOOKMARK_URL_VALIDATION_ERROR)){
if(!pStatus){
mBookmarURL.setBackground(helperMethod.getDrawableXML(mContext, R.xml.gx_generic_input_error));
mBookmarkURLError.animate().setDuration(150).alpha(1);
mBookmarkURLError.setText(pMessage);
}else {
mBookmarURL.setBackground(helperMethod.getDrawableXML(mContext, R.xml.gx_generic_input));
mBookmarkURLError.animate().setDuration(150).alpha(0);
mBookmarkURLError.setText(pMessage);
}
}
} catch (Exception ignored) {
}
}
private void onClearForm(){
try {
mBookmarName.setBackground(helperMethod.getDrawableXML(mContext, R.xml.gx_generic_input));
mBookmarURL.setBackground(helperMethod.getDrawableXML(mContext, R.xml.gx_generic_input));
} catch (Exception ignored) {
}
}
/* Event Observer */
public Object onTrigger(bookmarkSettingEnums.eBookmarkSettingViewCommands pCommands, List<Object> pData){
if(bookmarkSettingEnums.eBookmarkSettingViewCommands.M_INITIALIZE.equals(pCommands)){
initializeBookmark((String)pData.get(0), (String) pData.get(1));
}
if(pCommands.equals(bookmarkSettingEnums.eBookmarkSettingViewCommands.M_BOOKMARK_NAME_VALIDATION_ERROR) || pCommands.equals(bookmarkSettingEnums.eBookmarkSettingViewCommands.M_BOOKMARK_URL_VALIDATION_ERROR)){
mBookmarkNameValidationError(pCommands, (String)pData.get(0), (boolean)pData.get(1));
}
return null;
}
public Object onTrigger(bookmarkSettingEnums.eBookmarkSettingViewCommands pCommands){
if(bookmarkSettingEnums.eBookmarkSettingViewCommands.M_GET_BOOKMARK_NAME.equals(pCommands)){
return getBookmarkName();
}
else if(bookmarkSettingEnums.eBookmarkSettingViewCommands.M_GET_BOOKMARK_URL.equals(pCommands)){
return getBookmarkURL();
}
else if(bookmarkSettingEnums.eBookmarkSettingViewCommands.M_CLEAR_FORM.equals(pCommands)){
onClearForm();
}
return null;
}
}

View File

@ -1,4 +1,4 @@
package com.darkweb.genesissearchengine.appManager.bookmarkManager;
package com.darkweb.genesissearchengine.appManager.bookmarkManager.bookmarkHome;
import android.annotation.SuppressLint;
import android.content.Context;
@ -19,7 +19,6 @@ import com.darkweb.genesissearchengine.dataManager.models.bookmarkRowModel;
import com.darkweb.genesissearchengine.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.example.myapplication.R;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@ -158,7 +157,7 @@ public class bookmarkAdapter extends RecyclerView.Adapter<bookmarkAdapter.listVi
@Override
public listViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
mListHolderContext = parent.getContext();
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.history_bookmark_row_view, parent, false);
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.bookmark_row_view, parent, false);
return new listViewHolder(view);
}
@ -377,7 +376,7 @@ public class bookmarkAdapter extends RecyclerView.Adapter<bookmarkAdapter.listVi
/*View Holder Extensions*/
class listViewHolder extends RecyclerView.ViewHolder
class listViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener
{
TextView mHeader;
TextView mDescription;
@ -390,6 +389,7 @@ public class bookmarkAdapter extends RecyclerView.Adapter<bookmarkAdapter.listVi
LinearLayout mDateContainer;
LinearLayout mLoadingContainer;
ImageView mHindTypeIconTemp;
ImageButton mBookmarkEdit;
listViewHolder(View itemView) {
super(itemView);
@ -406,6 +406,7 @@ public class bookmarkAdapter extends RecyclerView.Adapter<bookmarkAdapter.listVi
mWebLogo = itemView.findViewById(R.id.pWebLogo);
mLoadingContainer = itemView.findViewById(R.id.pLoadingContainer);
mFaviconLogo = itemView.findViewById(R.id.pFaviconLogo);
mBookmarkEdit = itemView.findViewById(R.id.pBookmarkEdit);
mHindTypeIconTemp = new ImageView(mContext);
if(model.getID() == -1){
@ -442,7 +443,11 @@ public class bookmarkAdapter extends RecyclerView.Adapter<bookmarkAdapter.listVi
mHeader.setText(model.getHeader());
mWebLogo.setText((helperMethod.getDomainName(model.getHeader()).toUpperCase().charAt(0)+""));
String header = model.getHeader();
mDescription.setText(("https://"+model.getDescription()));
mDescription.setText(model.getDescription());
if(!model.getDescription().startsWith("http://") && !model.getDescription().startsWith("https://"))
{
mDescription.setText("https://" + mDescription.getText().toString());
}
if(model.getDescription().contains("genesishiddentechnologies.com") || model.getDescription().contains("genesis.onion")){
mFaviconLogo.setImageDrawable(itemView.getResources().getDrawable(R.drawable.genesis));
@ -475,6 +480,7 @@ public class bookmarkAdapter extends RecyclerView.Adapter<bookmarkAdapter.listVi
}.start();
}
mRowMenu.setOnClickListener(this::onClick);
setItemViewOnClickListener(mRowContainer, mRowMenu, mDescription.getText().toString(), p_position, header, mRowMenu, mLogoImage, model.getID(), model.getDate());
}
@ -491,6 +497,15 @@ public class bookmarkAdapter extends RecyclerView.Adapter<bookmarkAdapter.listVi
}else if(mLogoImage.getAlpha()>0){
mPopupWindow = (PopupWindow) mHistroyAdapterView.onTrigger(bookmarkEnums.eBookmarkViewAdapterCommands.M_CLEAR_HIGHLIGHT, Arrays.asList(mRowContainer, mRowMenu, mLogoImage, true, false));
}
mBookmarkEdit.setOnClickListener(this::onClick);
}
@Override
public void onClick(View view) {
if(view.getId() == R.id.pBookmarkEdit){
mEvent.invokeObserver(Arrays.asList(mHeader.getText(), mDescription.getText(), mModelList.get(getLayoutPosition()).getID()), enums.etype.M_OPEN_BOOKMARK_SETTING);
}
}
}

View File

@ -1,4 +1,4 @@
package com.darkweb.genesissearchengine.appManager.bookmarkManager;
package com.darkweb.genesissearchengine.appManager.bookmarkManager.bookmarkHome;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;

View File

@ -1,6 +1,7 @@
package com.darkweb.genesissearchengine.appManager.bookmarkManager;
package com.darkweb.genesissearchengine.appManager.bookmarkManager.bookmarkHome;
import android.content.Context;
import android.content.Intent;
import android.content.res.Configuration;
import android.graphics.Canvas;
import android.graphics.Rect;
@ -23,6 +24,7 @@ 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.bookmarkManager.BookmarkSettings.bookmarkSettingController;
import com.darkweb.genesissearchengine.dataManager.models.bookmarkRowModel;
import com.darkweb.genesissearchengine.appManager.homeManager.homeController.editTextManager;
import com.darkweb.genesissearchengine.appManager.homeManager.homeController.homeController;
@ -43,7 +45,7 @@ import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import static com.darkweb.genesissearchengine.appManager.bookmarkManager.bookmarkEnums.eBookmarkViewCommands.M_VERTIFY_SELECTION_MENU;
import static com.darkweb.genesissearchengine.appManager.bookmarkManager.bookmarkHome.bookmarkEnums.eBookmarkViewCommands.M_VERTIFY_SELECTION_MENU;
import static com.darkweb.genesissearchengine.constants.sql.SQL_CLEAR_BOOKMARK;
import static com.darkweb.genesissearchengine.pluginManager.pluginEnums.eMessageManager.M_CLEAR_BOOKMARK;
@ -54,10 +56,10 @@ public class bookmarkController extends AppCompatActivity
private bookmarkModel mbookmarkModel;
private homeController mHomeController;
private activityContextManager mContextManager;
private bookmarkAdapter mbookmarkAdapter;
private LinearLayout mHeaderContainer;
private TextView mTitle;
/*Private Views*/
private ImageView mEmptyListNotification;
@ -96,10 +98,9 @@ public class bookmarkController extends AppCompatActivity
public void initializeListModel(){
mbookmarkModel = new bookmarkModel();
mContextManager = activityContextManager.getInstance();
mHomeController = activityContextManager.getInstance().getHomeController();
mContextManager.setBookmarkController(this);
}
public void initializeViews(){
mEmptyListNotification = findViewById(R.id.pEmptyListNotification);
mSearchInput = findViewById(R.id.pSearchInput);
@ -248,6 +249,10 @@ public class bookmarkController extends AppCompatActivity
activityContextManager.getInstance().setCurrentActivity(this);
status.sSettingIsAppPaused = false;
activityContextManager.getInstance().onStack(this);
if(mbookmarkAdapter!=null){
mbookmarkAdapter.notifyDataSetChanged();
}
super.onResume();
}
@ -271,7 +276,7 @@ public class bookmarkController extends AppCompatActivity
}
}
/*External XML Listeners*/
/* UI Redirection */
public void onBackPressed(View view){
onBackPressed();
@ -323,6 +328,13 @@ public class bookmarkController extends AppCompatActivity
mRecycleView.setAlpha(0);
}
public void onOpenBookmarkSetting() {
Intent intent = new Intent(getApplicationContext(), bookmarkSettingController.class);
startActivity(intent);
}
/*Event Observer*/
public class edittextManagerCallback implements eventObserver.eventListener {
@Override
@ -335,8 +347,6 @@ public class bookmarkController extends AppCompatActivity
}
}
/*Event Observer*/
public class adapterCallback implements eventObserver.eventListener{
@Override
public Object invokeObserver(List<Object> data, Object e_type)
@ -370,6 +380,13 @@ public class bookmarkController extends AppCompatActivity
else if(e_type.equals(enums.etype.on_verify_selected_url_menu)){
mbookmarkViewController.onTrigger(M_VERTIFY_SELECTION_MENU, data);
}
else if(e_type.equals(enums.etype.M_OPEN_BOOKMARK_SETTING)){
Intent intent = new Intent(getApplicationContext(), bookmarkSettingController.class);
intent.putExtra(keys.BOOKMARK_SETTING_NAME, (String) data.get(0));
intent.putExtra(keys.BOOKMARK_SETTING_URL, (String) data.get(1));
intent.putExtra(keys.BOOKMARK_SETTING_ID, (int) data.get(2));
startActivity(intent);
}
return null;
}
}

View File

@ -1,4 +1,4 @@
package com.darkweb.genesissearchengine.appManager.bookmarkManager;
package com.darkweb.genesissearchengine.appManager.bookmarkManager.bookmarkHome;
public class bookmarkEnums
{

View File

@ -1,4 +1,4 @@
package com.darkweb.genesissearchengine.appManager.bookmarkManager;
package com.darkweb.genesissearchengine.appManager.bookmarkManager.bookmarkHome;
import com.darkweb.genesissearchengine.dataManager.models.bookmarkRowModel;
@ -17,13 +17,13 @@ class bookmarkModel
mModelList = model;
}
private void removeFromMainList(int index)
private void removeFromList(int index)
{
mModelList.remove(index);
}
void onManualClear(int index){
removeFromMainList(index);
removeFromList(index);
}
void clearList(){

View File

@ -1,4 +1,4 @@
package com.darkweb.genesissearchengine.appManager.bookmarkManager;
package com.darkweb.genesissearchengine.appManager.bookmarkManager.bookmarkHome;
import android.content.Context;
import android.graphics.Bitmap;
@ -7,7 +7,6 @@ import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.RectF;
import android.os.Build;
import android.os.Handler;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
@ -29,15 +28,11 @@ import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.ItemTouchHelper;
import androidx.recyclerview.widget.RecyclerView;
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 java.util.Arrays;
import java.util.List;
import java.util.Objects;

View File

@ -192,7 +192,7 @@ public class geckoClients
mSession.getSettings().setUserAgentMode(USER_AGENT_MODE_MOBILE );
mSession.getSettings().setAllowJavascript(status.sSettingJavaStatus);
onUpdateFont();
onReload(mNestedGeckoView, pcontext);
onReload(mNestedGeckoView, pcontext,false);
}
public void resetSession(){
@ -308,7 +308,7 @@ public class geckoClients
public void onBackPressed(boolean isFinishAllowed, int mTabSize, NestedGeckoView mNestedGeckoView, AppCompatActivity pcontext){
if(mSession.canGoBack()){
mSession.goBackSession();
mSession.onUpdateBannerAdvert();
//mSession.onUpdateBannerAdvert();
}
else if(isFinishAllowed){
if(mSession.getRemovableFromBackPressed() && mTabSize>1){
@ -362,12 +362,12 @@ public class geckoClients
mSession.stop();
}
public void onReload(NestedGeckoView mNestedGeckoView, AppCompatActivity pcontext){
public void onReload(NestedGeckoView mNestedGeckoView, AppCompatActivity pcontext, boolean isThemeCall){
mSession.stop();
String url = mSession.getCurrentURL();
if(url.startsWith("https://genesishiddentechnologies.com/?pG") || url.startsWith("https://genesishiddentechnologies.com?pG") || url.endsWith("genesishiddentechnologies.com") || url.contains(constants.CONST_GENESIS_HELP_URL_SUB) || url.contains(constants.CONST_GENESIS_HELP_URL_CACHE) || url.contains(constants.CONST_GENESIS_HELP_URL_CACHE_DARK)){
loadURL(mSession.getCurrentURL(), mNestedGeckoView, pcontext);
}else{
}else if(!isThemeCall){
mSession.reload();
}
}

View File

@ -29,6 +29,7 @@ import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.NotificationCompat;
import androidx.core.content.FileProvider;
import com.darkweb.genesissearchengine.appManager.homeManager.homeController.homeController;
import com.darkweb.genesissearchengine.constants.constants;
import com.darkweb.genesissearchengine.constants.enums;
import com.darkweb.genesissearchengine.constants.status;
@ -74,6 +75,7 @@ import static com.darkweb.genesissearchengine.constants.constants.CONST_GENESIS_
import static com.darkweb.genesissearchengine.constants.constants.CONST_GENESIS_URL_CACHED_DARK;
import static com.darkweb.genesissearchengine.constants.enums.etype.M_DEFAULT_BROWSER;
import static com.darkweb.genesissearchengine.constants.enums.etype.M_RATE_COUNT;
import static com.darkweb.genesissearchengine.pluginManager.pluginEnums.eMessageManager.M_APPLICATION_CRASH;
import static com.darkweb.genesissearchengine.pluginManager.pluginEnums.eMessageManager.M_LONG_PRESS_URL;
import static com.darkweb.genesissearchengine.pluginManager.pluginEnums.eMessageManager.M_LONG_PRESS_WITH_LINK;
import static com.darkweb.genesissearchengine.pluginManager.pluginEnums.eMessageManagerCallbacks.M_RATE_APPLICATION;
@ -1081,8 +1083,18 @@ geckoSession extends GeckoSession implements GeckoSession.MediaDelegate,GeckoSes
goBack();
try {
if (mHistoryList!=null && mHistoryList.size()>=1)
event.invokeObserver(Arrays.asList(mHistoryList.get(mHistoryList.getCurrentIndex()-1).getUri(),mSessionID,mCurrentTitle, m_current_url_id, mTheme, this), enums.etype.ON_UPDATE_SEARCH_BAR);
if (mHistoryList!=null && mHistoryList.size()>=1){
if(mHistoryList.getCurrentIndex()-1>=0 && mHistoryList.getCurrentIndex()-1<mHistoryList.size()){
String mURL = mHistoryList.get(mHistoryList.getCurrentIndex()-1).getUri();
if(mURL.startsWith("resource://")){
new Handler().postDelayed(() ->
{
event.invokeObserver(Arrays.asList(mCurrentURL,mSessionID,mCurrentTitle, false), enums.etype.M_ON_BANNER_UPDATE);
}, 0);
}
}
event.invokeObserver(Arrays.asList(mCurrentURL,mSessionID,mCurrentTitle, m_current_url_id), enums.etype.ON_FIRST_PAINT);
}
}catch (Exception ignored){}
}

View File

@ -44,7 +44,7 @@ import androidx.fragment.app.FragmentContainerView;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.darkweb.genesissearchengine.appManager.activityContextManager;
import com.darkweb.genesissearchengine.appManager.bookmarkManager.bookmarkController;
import com.darkweb.genesissearchengine.appManager.bookmarkManager.bookmarkHome.bookmarkController;
import com.darkweb.genesissearchengine.appManager.historyManager.historyController;
import com.darkweb.genesissearchengine.dataManager.models.historyRowModel;
import com.darkweb.genesissearchengine.appManager.homeManager.geckoManager.NestedGeckoView;
@ -95,12 +95,12 @@ import java.util.Objects;
import java.util.concurrent.Callable;
import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
import static android.content.Intent.FLAG_ACTIVITY_NO_ANIMATION;
import static androidx.appcompat.app.AppCompatDelegate.setDefaultNightMode;
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 com.darkweb.genesissearchengine.constants.enums.etype.GECKO_SCROLL_DOWN;
import static com.darkweb.genesissearchengine.constants.enums.etype.GECKO_SCROLL_DOWN_MOVE;
import static com.darkweb.genesissearchengine.constants.enums.etype.GECKO_SCROLL_UP_MOVE;
import static com.darkweb.genesissearchengine.constants.enums.etype.M_INITIALIZE_TAB_LINK;
import static com.darkweb.genesissearchengine.constants.enums.etype.M_INITIALIZE_TAB_SINGLE;
@ -204,19 +204,6 @@ public class homeController extends AppCompatActivity implements ComponentCallba
super.onCreate(savedInstanceState);
setContentView(R.layout.home_view);
/* Thread.setDefaultUncaughtExceptionHandler((t, e) -> {
status.sSettingIsAppStarted = false;
finishAndRemoveTask();
Intent intent = new Intent(this, homeController.class);
intent.addFlags(FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_NO_ANIMATION);
intent.putExtra("crash",true);
this.startActivity(intent);
this.finish();
Runtime.getRuntime().exit(0);
}); */
initPreFixes();
activityContextManager.getInstance().setHomeController(this);
pluginController.getInstance().initializeAllServices(this);
@ -594,8 +581,9 @@ public class homeController extends AppCompatActivity implements ComponentCallba
dataController.getInstance().invokeTab(dataEnums.eTabCommands.MOVE_TAB_TO_TOP, Collections.singletonList(mTempSession));
}
if(mTempSession.isOpen()){
if(mTempSession.getSessionID().equals(mGeckoClient.getSession().getSessionID())){
if(mTempSession.isOpen() ){
Log.i("SUPERFUCKKKKK", "SUPERFUCKKKKK : " + (mTempSession.getSessionID()==null) + " -- " + (mGeckoClient == null) + " -- " + (mGeckoClient.getSession().getSessionID() == null));
if(mGeckoClient.getSession()!=null && mTempSession.getSessionID().equals(mGeckoClient.getSession().getSessionID())){
return;
}
}
@ -1177,11 +1165,10 @@ public class homeController extends AppCompatActivity implements ComponentCallba
}
public void onOpenTabViewBoundary(View view){
onInvokePixelGenerator();
if(mScrollHandler!=null){
mScrollHandler.removeCallbacksAndMessages(null);
// mScrollHandler.removeCallbacksAndMessages(null);
}
onInvokePixelGenerator();
// onInvokePixelGenerator();
mNewTab.setPressed(true);
onOpenTabReady();
}
@ -1441,7 +1428,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
if(status.sSettingIsAppStarted && !status.mThemeApplying){
if(mGeckoClient.getSession().wasPreviousErrorPage()){
pluginController.getInstance().onOrbotInvoke(null, pluginEnums.eOrbotManager.M_NEW_CIRCUIT);
mGeckoClient.onReload(mGeckoView, this);
mGeckoClient.onReload(mGeckoView, this, false);
}
}
@ -1735,7 +1722,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
{
pluginController.getInstance().onOrbotInvoke(null, pluginEnums.eOrbotManager.M_NEW_CIRCUIT);
pluginController.getInstance().onMessageManagerInvoke(Collections.singletonList(this), M_NEW_IDENTITY);
mGeckoClient.onReload(mGeckoView, this);
mGeckoClient.onReload(mGeckoView, this, false);
}
else if (menuId == R.id.pMenuOpenCurrentTab)
{
@ -1810,7 +1797,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
if (menuId == R.id.menu26 || menuId == R.id.menu27) {
helperMethod.hideKeyboard(this);
mGeckoClient.toogleUserAgent();
mGeckoClient.onReload(mGeckoView, homeController.this);
mGeckoClient.onReload(mGeckoView, homeController.this, false);
}
if(menuId == R.id.menu25){
helperMethod.hideKeyboard(this);
@ -1824,14 +1811,14 @@ public class homeController extends AppCompatActivity implements ComponentCallba
if(status.mThemeApplying){
if(status.sTheme == enums.Theme.THEME_DARK){
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
}else if(status.sTheme == enums.Theme.THEME_LIGHT){
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
}else {
if(!status.sDefaultNightMode){
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
}else {
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
}
}
}
@ -1861,7 +1848,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_GATEWAY_MANUAL,false));
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_IS_WELCOME_ENABLED,true));
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.PROXY_IS_APP_RATED,false));
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.VPN_ENABLED,false));
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.BRIDGE_VPN_ENABLED,false));
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.BRIDGE_ENABLES,false));
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_FONT_ADJUSTABLE,true));
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_ZOOM,true));
@ -2196,7 +2183,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
public void onInvokePixelGenerator(){
if(mTabFragment==null || mTabFragment.getVisibility()==View.VISIBLE){
if(mNewTab.isPressed() || mTabFragment==null || mTabFragment.getVisibility()==View.VISIBLE){
return;
}
@ -2209,9 +2196,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
try{
mRenderedBitmap = mGeckoView.capturePixels();
}catch (Exception ex){
Log.i("FIZZAHFUCK1","asd : " + ex.getMessage());
}
}catch (Exception ignored){}
new Handler().postDelayed(() ->
{
if(mTabFragment!=null && mGeckoClient.getSession()!=null){
@ -2250,6 +2235,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
else if(e_type.equals(enums.etype.M_ON_BANNER_UPDATE)){
Object mAdvertResponse = pluginController.getInstance().onAdsInvoke(null, pluginEnums.eAdManager.M_IS_ADVERT_LOADED);
if(mAdvertResponse != null){
mHomeViewController.onUpdateStatusBarTheme(mGeckoClient.getTheme(), true);
mHomeViewController.updateBannerAdvertStatus((boolean)data.get(3), (boolean)mAdvertResponse);
}
}
@ -2300,7 +2286,6 @@ public class homeController extends AppCompatActivity implements ComponentCallba
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_IS_BOOTSTRAPPED,true));
mHomeViewController.onPageFinished();
mGeckoClient.onRedrawPixel(homeController.this);
mHomeViewController.onFullScreen(true);
}
else if(e_type.equals(M_RATE_APPLICATION)){
if(!status.sSettingIsAppRated){
@ -2379,6 +2364,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
}
else if(e_type.equals(enums.etype.M_UPDATE_PIXEL_BACKGROUND)){
onInvokePixelGenerator();
mHomeViewController.onFullScreen(true);
}
else if(e_type.equals(enums.etype.M_INIT_PADDING)){
mHomeViewController.initTopBarPadding();
@ -2400,7 +2386,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
else if(e_type.equals(enums.etype.M_NEW_IDENTITY_MESSAGED)){
pluginController.getInstance().onOrbotInvoke(null, pluginEnums.eOrbotManager.M_NEW_CIRCUIT);
pluginController.getInstance().onMessageManagerInvoke(Collections.singletonList(homeController.this), M_NEW_IDENTITY);
mGeckoClient.onReload(mGeckoView, homeController.this);
mGeckoClient.onReload(mGeckoView, homeController.this, false);
}
return null;
}

View File

@ -595,8 +595,8 @@ class homeViewController
initSplashLoading();
});
mGatewaySplash.animate().setDuration(350).alpha(0.4f);
mPanicButton.animate().setDuration(250).alpha(0f);
mPanicButtonLandscape.animate().setDuration(250).alpha(0f);
mPanicButtonLandscape.animate().setDuration(200).translationXBy(helperMethod.pxFromDp(50));
mPanicButton.animate().setDuration(200).translationXBy(helperMethod.pxFromDp(50));
}
private void initSplashScreen(){
@ -930,10 +930,12 @@ class homeViewController
mBannerAds.setVisibility(View.GONE);
}
}
onFullScreen(false);
}
void updateBannerAdvertStatus(boolean status, boolean pIsAdvertLoaded){
if(status && pIsAdvertLoaded){
Object mCurrentURL = mEvent.invokeObserver(null, enums.etype.M_GET_CURRENT_URL);
if(status && pIsAdvertLoaded && !((String)mCurrentURL).contains("genesis")){
if(mBannerAds.getAlpha()==0){
mBannerAds.animate().cancel();
mBannerAds.setAlpha(0);
@ -941,19 +943,20 @@ class homeViewController
mBannerAds.setVisibility(View.VISIBLE);
}
onSetBannerAdMargin(true,true);
}else{
} /* else if(mBannerAds.getVisibility() != View.VISIBLE){
if(mBannerAds.getAlpha()==1){
mBannerAds.animate().cancel();
mBannerAds.animate().alpha(0).withEndAction(() -> mBannerAds.setVisibility(View.GONE));
}
onSetBannerAdMargin(false,true);
}
} */
}
private Handler searchBarUpdateHandler = new Handler();
private String handlerLocalUrl = "";
void onUpdateSearchBar(String url,boolean showProtocol, boolean pClearText, boolean pBypassFocus){
if(url.endsWith("genesisconfigurenewidentity.com/")){
return;
}
@ -1397,7 +1400,10 @@ class homeViewController
}
if(pStatus){
if(mProgressBar.getAlpha()>0){
onProgressBarUpdate(100, false);
}
this.mBlockerFullSceen.setVisibility(View.VISIBLE);
this.mBlockerFullSceen.setAlpha(0f);
this.mBlockerFullSceen.animate().setStartDelay(0).setDuration(200).alpha(1).withEndAction(() -> {

View File

@ -21,14 +21,12 @@ import java.util.Collections;
public class landingController extends AppIntro {
private landingViewController mLauncherViewController;
private landingViewController mLandingViewController;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Instead of fragments, you can also use our default slide
// Just set a title, description, background and image. AppIntro will do the rest.
CustomSlideBigText welcome = CustomSlideBigText.newInstance(R.layout.landing_view);
welcome.setTitle(getString(R.string.LANDING_HELLO));
welcome.setSubTitle(getString(R.string.LANDING_WELCOME));
@ -49,20 +47,16 @@ public class landingController extends AppIntro {
});
addSlide(cs2);
// OPTIONAL METHODS
// Override bar/separator color.
setBarColor(getResources().getColor(R.color.landing_ease_blue));
setSeparatorColor(getResources().getColor(R.color.headerblack));
// Hide Skip/Done button.
showSkipButton(false);
setProgressButtonEnabled(true);
initConnections();
}
private void initConnections(){
mLauncherViewController = new landingViewController(this,null);
mLandingViewController = new landingViewController(this,null);
}

View File

@ -11,6 +11,7 @@ import com.example.myapplication.R;
class landingViewController
{
/*Private Variables*/
private AppCompatActivity mContext;
/*Initializations*/
@ -23,16 +24,6 @@ class landingViewController
}
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) {
mContext.getWindow().setStatusBarColor(ContextCompat.getColor(mContext, R.color.landing_ease_blue));
}
else {
mContext.getWindow().setStatusBarColor(ContextCompat.getColor(mContext, R.color.landing_ease_blue));
}
}
}
}

View File

@ -2,7 +2,6 @@ package com.darkweb.genesissearchengine.appManager.orbotManager;
import android.content.res.Configuration;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.widget.LinearLayout;
@ -107,7 +106,7 @@ public class orbotController extends AppCompatActivity {
public void onVPNSwitch(View view){
mOrbotModel.onTrigger(orbotEnums.eOrbotModelCommands.M_VPN_SWITCH,Collections.singletonList(!mVpnSwitch.isChecked()));
mOrbotViewController.onTrigger(orbotEnums.eOrbotViewCommands.M_UPDATE_VPN,Collections.singletonList(status.sVPNStatus));
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.VPN_ENABLED,status.sVPNStatus));
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.BRIDGE_VPN_ENABLED,status.sVPNStatus));
}
public void onClose(View view){

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.bridgeManager.bridgeEnums;
import com.darkweb.genesissearchengine.appManager.helpManager.helpController;
import com.darkweb.genesissearchengine.constants.constants;
import com.darkweb.genesissearchengine.constants.enums;
@ -190,7 +189,7 @@ public class settingClearController extends AppCompatActivity {
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_GATEWAY_MANUAL,false));
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_IS_WELCOME_ENABLED,true));
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.PROXY_IS_APP_RATED,false));
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.VPN_ENABLED,false));
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.BRIDGE_VPN_ENABLED,false));
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.BRIDGE_ENABLES,false));
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_FONT_ADJUSTABLE,true));
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_ZOOM,true));

View File

@ -4,6 +4,7 @@ import android.content.Context;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.RadioButton;
import android.widget.TextView;
@ -12,6 +13,7 @@ import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.app.AppCompatDelegate;
import com.darkweb.genesissearchengine.appManager.activityContextManager;
import com.darkweb.genesissearchengine.appManager.helpManager.helpController;
import com.darkweb.genesissearchengine.appManager.homeManager.homeController.homeController;
import com.darkweb.genesissearchengine.appManager.languageManager.languageController;
import com.darkweb.genesissearchengine.constants.constants;
import com.darkweb.genesissearchengine.constants.enums;
@ -31,6 +33,8 @@ import java.util.Collections;
import java.util.List;
import java.util.Locale;
import static com.darkweb.genesissearchengine.pluginManager.pluginEnums.eMessageManager.M_APPLICATION_CRASH;
public class settingGeneralController extends AppCompatActivity {
/* PRIVATE VARIABLES */
@ -50,6 +54,7 @@ public class settingGeneralController extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
onInitTheme();
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
super.onCreate(savedInstanceState);
if(!status.mThemeApplying){
@ -61,6 +66,23 @@ public class settingGeneralController extends AppCompatActivity {
viewsInitializations();
}
private void onInitTheme(){
if(status.mThemeApplying){
if(status.sTheme == enums.Theme.THEME_DARK){
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
}else if(status.sTheme == enums.Theme.THEME_LIGHT){
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
}else {
if(!status.sDefaultNightMode){
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
}else {
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
}
}
}
}
@Override
public void onConfigurationChanged(@NonNull Configuration newConfig) {
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
@ -101,24 +123,20 @@ public class settingGeneralController extends AppCompatActivity {
boolean mIsThemeChangable = false;
if(status.sTheme == enums.Theme.THEME_DARK){
if(AppCompatDelegate.getDefaultNightMode() != AppCompatDelegate.MODE_NIGHT_YES){
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
mIsThemeChangable = true;
}
}
else if(status.sTheme == enums.Theme.THEME_LIGHT){
if(AppCompatDelegate.getDefaultNightMode() == AppCompatDelegate.MODE_NIGHT_YES){
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
mIsThemeChangable = true;
}
}else {
if(!status.sDefaultNightMode){
if(AppCompatDelegate.getDefaultNightMode() != AppCompatDelegate.MODE_NIGHT_NO){
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
mIsThemeChangable = true;
}
}else {
if(AppCompatDelegate.getDefaultNightMode() != AppCompatDelegate.MODE_NIGHT_YES){
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
mIsThemeChangable = true;
}
}
@ -128,9 +146,14 @@ public class settingGeneralController extends AppCompatActivity {
status.mThemeApplying = true;
onBackPressed();
overridePendingTransition(R.anim.fade_in_lang, R.anim.fade_out_lang);
helperMethod.openActivity(settingGeneralController.class, constants.CONST_LIST_HISTORY, settingGeneralController.this,true);
new Handler().postDelayed(() ->
{
activityContextManager.getInstance().getHomeController().onReInitTheme();
activityContextManager.getInstance().getSettingController().onReInitTheme();
helperMethod.openActivity(settingGeneralController.class, constants.CONST_LIST_HISTORY, settingGeneralController.this,true);
}, 100);
}
}
return null;

View File

@ -14,6 +14,8 @@ import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.app.AppCompatDelegate;
import com.darkweb.genesissearchengine.appManager.activityContextManager;
import com.darkweb.genesissearchengine.appManager.helpManager.helpController;
import com.darkweb.genesissearchengine.appManager.kotlinHelperLibraries.BrowserIconManager;
@ -28,6 +30,7 @@ import com.darkweb.genesissearchengine.appManager.settingManager.privacyManager.
import com.darkweb.genesissearchengine.appManager.settingManager.searchEngineManager.settingSearchController;
import com.darkweb.genesissearchengine.appManager.settingManager.trackingManager.settingTrackingController;
import com.darkweb.genesissearchengine.constants.constants;
import com.darkweb.genesissearchengine.constants.enums;
import com.darkweb.genesissearchengine.constants.keys;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.dataManager.dataController;
@ -46,6 +49,7 @@ import java.util.Collections;
import java.util.List;
import java.util.Locale;
import static androidx.appcompat.app.AppCompatDelegate.setDefaultNightMode;
import static com.darkweb.genesissearchengine.pluginManager.pluginEnums.eMessageManager.*;
public class settingHomeController extends AppCompatActivity
@ -87,6 +91,23 @@ public class settingHomeController extends AppCompatActivity
super.onConfigurationChanged(newConfig);
}
private void onInitTheme(){
if(status.mThemeApplying){
if(status.sTheme == enums.Theme.THEME_DARK){
setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
}else if(status.sTheme == enums.Theme.THEME_LIGHT){
setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
}else {
if(!status.sDefaultNightMode){
setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
}else {
setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
}
}
}
}
private void viewsInitializations()
{
activityContextManager.getInstance().setSettingController(this);

View File

@ -8,6 +8,7 @@ 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;
@ -388,9 +389,10 @@ public class tabAdapter extends RecyclerView.Adapter<tabAdapter.listViewHolder>
mWebThumbnail.setImageBitmap(model.getBitmap());
}else {
Drawable mDrawable = new BitmapDrawable(itemView.getContext().getResources(), model.getBitmap());
helperMethod.setImageDrawableWithAnimation(mWebThumbnail, mDrawable,250);
helperMethod.setImageDrawableWithAnimation(mWebThumbnail, mDrawable,150);
}
}, 1 * getLayoutPosition());
Log.i("SUPERFFF", "SUPERFFF : " + getLayoutPosition());
}, getLayoutPosition());
}
if(mSelectedList.contains(model.getSession().getSessionID())){

View File

@ -35,6 +35,7 @@ import com.darkweb.genesissearchengine.dataManager.dataEnums;
import com.darkweb.genesissearchengine.dataManager.models.tabRowModel;
import com.darkweb.genesissearchengine.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.darkweb.genesissearchengine.pluginManager.pluginController;
import com.example.myapplication.R;
import java.util.ArrayList;
import java.util.Arrays;
@ -43,6 +44,8 @@ import java.util.List;
import java.util.Objects;
import static com.darkweb.genesissearchengine.appManager.tabManager.tabEnums.eTabViewCommands.ON_HIDE_UNDO_DIALOG_FORCED;
import static com.darkweb.genesissearchengine.pluginManager.pluginEnums.eMessageManager.M_RESET;
import static org.mozilla.gecko.util.ThreadUtils.runOnUiThread;
public class tabController extends Fragment
{
@ -165,7 +168,7 @@ public class tabController extends Fragment
}
public void onInitFirstElement(){
mHomeController.runOnUiThread(() -> {
runOnUiThread(() -> {
if(mTabAdapter!=null){
if(mBlocker.getVisibility() != View.VISIBLE){
mTabAdapter.notifyItemChanged(0);

View File

@ -7,7 +7,7 @@ public class enums
M_CHANGE_HOME_THEME, M_IS_ERROR_PAGE, on_update_favicon,M_RELOAD,ON_UPDATE_TAB_TITLE, ON_OPEN_TAB_VIEW,ON_NEW_TAB_ANIMATION, M_UPDATE_SESSION_STATE,ON_LOAD_REQUEST, GECKO_SCROLL_UP, GECKO_SCROLL_UP_ALWAYS, GECKO_SCROLL_DOWN, WAS_SCROLL_CHANGED, GECKO_SCROLL_DOWN_MOVE, GECKO_SCROLL_UP_MOVE, GECKO_SCROLL_DOWN_CALLER,ON_UPDATE_SEARCH_BAR,M_ON_MAIL,SESSION_ID,M_UPDATE_PIXEL_BACKGROUND, M_ON_SCROLL_BOUNDARIES, M_ON_SCROLL_TOP_BOUNDARIES, M_ON_SCROLL_NO_BOUNDARIES, M_INIT_PADDING, M_RATE_COUNT,M_CACHE_UPDATE_TAB,M_DEFAULT_BROWSER,
on_verify_selected_url_menu,FINDER_RESULT_CALLBACK,M_ADMOB_BANNER_RECHECK,M_OPEN_SESSION,M_DOWNLOAD_FAILURE, M_ADVERT_LOADED,
welcome, reload,download_folder, M_UPDATE_THEME,M_ON_BANNER_UPDATE, M_LOAD_HOMEPAGE_GENESIS,M_INIT_TAB_COUNT_FORCED,M_SPLASH_DISABLE,M_NEW_LINK_IN_NEW_TAB,M_RESET_SUGGESTION,
url_triggered, url_triggered_new_tab,url_clear,fetch_favicon, M_COPY_URL,url_clear_at,remove_from_database,is_empty,M_HOME_PAGE,M_PRELOAD_URL,ON_KEYBOARD_CLOSE,M_CLOSE_TAB,
url_triggered, url_triggered_new_tab,url_clear,fetch_favicon,M_OPEN_BOOKMARK_SETTING, M_COPY_URL,url_clear_at,remove_from_database,is_empty,M_HOME_PAGE,M_PRELOAD_URL,ON_KEYBOARD_CLOSE,M_CLOSE_TAB,
on_close_sesson,on_long_press, on_full_screen,on_handle_external_intent,on_update_suggestion_url,progress_update,progress_update_forced, ON_EXPAND_TOP_BAR,recheck_orbot,on_url_load,on_playstore_load,back_list_empty,start_proxy, ON_UPDATE_THEME, M_NEW_IDENTITY, M_NEW_IDENTITY_MESSAGED, M_INITIALIZE_TAB_SINGLE, M_INITIALIZE_TAB_LINK,on_request_completed, on_update_history,on_update_suggestion,M_WELCOME_MESSAGE,ON_FIRST_PAINT, ON_LOAD_TAB_ON_RESUME, ON_SESSION_REINIT,on_page_loaded,on_load_error, M_ORBOT_LOADING,download_file_popup,on_init_ads, M_GET_CURRENT_URL,search_update, open_new_tab,open_new_tab_instant
}

View File

@ -64,7 +64,12 @@ public class keys
public static final String BRIDGE_CUSTOM_BRIDGE_1 = "CLEAR_PREFS_V1";
public static final String BRIDGE_CUSTOM_TYPE = "BRIDGE_CUSTOM_TYPE_V1";
public static final String BRIDGE_ENABLES = "pref_bridges_enabled_V1";
public static final String VPN_ENABLED = "pref_vpn_V1";
public static final String BRIDGE_VPN_ENABLED = "pref_vpn_V1";
public static final String BRIDGE_DEFAULT = "BRIDGE_DEFAULT";
/*Bookmark Settings*/
public static final String BOOKMARK_SETTING_NAME = "BOOKMARK_SETTING_NAME";
public static final String BOOKMARK_SETTING_URL = "BOOKMARK_SETTING_URL";
public static final String BOOKMARK_SETTING_ID = "BOOKMARK_SETTING_ID";
}

View File

@ -104,7 +104,7 @@ public class status
status.sBridgeGatewayManual = (boolean)dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_BOOL, Arrays.asList(keys.SETTING_GATEWAY_MANUAL,false));
status.sSettingIsWelcomeEnabled = (boolean)dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_BOOL, Arrays.asList(keys.SETTING_IS_WELCOME_ENABLED,true));
status.sSettingIsAppRated = (boolean)dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_BOOL, Arrays.asList(keys.PROXY_IS_APP_RATED,false));
status.sVPNStatus = (boolean)dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_BOOL, Arrays.asList(keys.VPN_ENABLED,false));
status.sVPNStatus = (boolean)dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_BOOL, Arrays.asList(keys.BRIDGE_VPN_ENABLED,false));
status.sBridgeStatus = (boolean)dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_BOOL, Arrays.asList(keys.BRIDGE_ENABLES,false));
status.sSettingFontAdjustable = (boolean)dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_BOOL, Arrays.asList(keys.SETTING_FONT_ADJUSTABLE,true));
status.sSettingFirstStart = (boolean)dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_BOOL, Arrays.asList(keys.SETTING_FIRST_INSTALLED,true));

View File

@ -63,5 +63,11 @@ public class strings
/*Message Manager*/
public static final String MESSAGE_PLAYSTORE_NOT_FOUND = "Playstore Not Found";
/*Bookmark Setting Manager*/
public static final String BOOKMARK_SETTING_VALIDATION_ERROR_1 = "➔ bookmark name empty";
public static final String BOOKMARK_SETTING_VALIDATION_ERROR_2 = "➔ bookmark url empty";
}

View File

@ -68,6 +68,22 @@ public class bookmarkDataModel {
mBookmarks.clear();
}
void updateBookmark(String pBookmarkName, String pBookmarkURL, int pBookmarkID){
for(int mCounter=0;mCounter<mBookmarks.size();mCounter++){
if(mBookmarks.get(mCounter).getID()==pBookmarkID){
mBookmarks.get(mCounter).setHeader(pBookmarkName);
mBookmarks.get(mCounter).setURL(pBookmarkURL);
}
}
int autoval = 0;
String[] params = new String[2];
params[0] = pBookmarkName;
params[1] = pBookmarkURL;
mExternalEvents.invokeObserver(Arrays.asList("REPLACE INTO bookmark(id,title,url) VALUES("+autoval+",?,?);",params), dataEnums.eBookmarkCallbackCommands.M_EXEC_SQL);
}
void deleteBookmark(int pID) {
for(int mCounter=0;mCounter<mBookmarks.size();mCounter++){
if(mBookmarks.get(mCounter).getID()==pID){
@ -80,19 +96,22 @@ public class bookmarkDataModel {
/* External Triggers */
public Object onTrigger(dataEnums.eBookmarkCommands p_commands, List<Object> pData){
if(p_commands == dataEnums.eBookmarkCommands.M_GET_BOOKMARK){
public Object onTrigger(dataEnums.eBookmarkCommands pCommands, List<Object> pData){
if(pCommands == dataEnums.eBookmarkCommands.M_GET_BOOKMARK){
return getBookmark();
}
else if(p_commands == dataEnums.eBookmarkCommands.M_ADD_BOOKMARK){
else if(pCommands == dataEnums.eBookmarkCommands.M_ADD_BOOKMARK){
addBookmark((String)pData.get(0), (String)pData.get(1));
}
else if(p_commands == dataEnums.eBookmarkCommands.M_DELETE_BOOKMARK){
else if(pCommands == dataEnums.eBookmarkCommands.M_DELETE_BOOKMARK){
deleteBookmark((int)pData.get(0));
}
else if(p_commands == dataEnums.eBookmarkCommands.M_CLEAR_BOOKMARK){
else if(pCommands == dataEnums.eBookmarkCommands.M_CLEAR_BOOKMARK){
clearBookmark();
}
else if(pCommands == dataEnums.eBookmarkCommands.M_UPDATE_BOOKMARK){
updateBookmark((String) pData.get(0),(String) pData.get(1),(int) pData.get(2));
}
return null;
}

View File

@ -213,7 +213,7 @@ public class dataController
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_GATEWAY_MANUAL,false));
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_IS_WELCOME_ENABLED,true));
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.PROXY_IS_APP_RATED,false));
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.VPN_ENABLED,false));
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.BRIDGE_VPN_ENABLED,false));
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.BRIDGE_ENABLES,false));
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_FONT_ADJUSTABLE,true));
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_ZOOM,true));

View File

@ -13,7 +13,7 @@ public class dataEnums
}
public enum eBookmarkCommands {
M_ADD_BOOKMARK, M_GET_BOOKMARK, M_DELETE_BOOKMARK, M_CLEAR_BOOKMARK;
M_ADD_BOOKMARK, M_GET_BOOKMARK, M_DELETE_BOOKMARK, M_CLEAR_BOOKMARK, M_UPDATE_BOOKMARK;
}
public enum eReferenceWebsiteCommands {

View File

@ -9,6 +9,10 @@ import com.darkweb.genesissearchengine.helperManager.helperMethod;
import org.mozilla.geckoview.GeckoSession;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.zip.Deflater;
public class tabRowModel
{
/*Private Variables*/
@ -30,8 +34,36 @@ public class tabRowModel
this.mId = pID;
this.mDate = pDate;
if(pBlob!=null){
mBitmap = BitmapFactory.decodeByteArray(pBlob,0,pBlob.length);
if(mBitmap!=null && !mBitmap.isRecycled()){
mBitmap.recycle();
mBitmap = null;
}
try {
byte[] pBlobTemp = compress(pBlob);
int mSize = pBlobTemp.length;
mBitmap = BitmapFactory.decodeByteArray(pBlobTemp,0,mSize);
} catch (IOException e) {
e.printStackTrace();
}
}
}
public byte[] compress(byte[] data) throws IOException {
Deflater deflater = new Deflater();
deflater.setInput(data);
ByteArrayOutputStream outputStream = new ByteArrayOutputStream(data.length);
deflater.finish();
byte[] buffer = new byte[1024];
while (!deflater.finished()) {
int count = deflater.deflate(buffer); // returns the generated code... index
outputStream.write(buffer, 0, count);
}
outputStream.close();
byte[] output = outputStream.toByteArray();
return output;
}
/*Helper Method*/

View File

@ -96,13 +96,25 @@ public class sqlCipherDataModel
};
private void execSQL(String query,Object params,boolean pContentValues)
{
if(params==null)
{
sDatabaseInstance.execSQL(query);
}
else
{
sDatabaseInstance.execSQL(query,(String[])params);
}
}
private void execSQL(String query,Object params,boolean pContentValues,String whereClause, String[] whereArgs)
{
if(params==null)
{
sDatabaseInstance.execSQL(query);
}
else if(pContentValues){
sDatabaseInstance.replace(query,null,(ContentValues)params);
sDatabaseInstance.update(query, (ContentValues)params, whereClause, whereArgs);
}
else
{
@ -209,7 +221,7 @@ public class sqlCipherDataModel
execSQL((String)pData.get(0), pData.get(1), false);
}
else if(pCommands == dataEnums.eSqlCipherCommands.M_EXEC_SQL_USING_CONTENT){
execSQL((String)pData.get(0), pData.get(1), true);
execSQL((String)pData.get(0), pData.get(1), true, (String)pData.get(3), (String[])pData.get(4));
}
else if(pCommands == dataEnums.eSqlCipherCommands.M_SELECT_BOOKMARK){
return selectBookmark();

View File

@ -38,6 +38,7 @@ class tabDataModel
private ArrayList<tabRowModel> mTabs = new ArrayList<>();
void initializeTab(ArrayList<tabRowModel> pTabMdel){
mTabs.clear();
mTabs.addAll(pTabMdel);
}
@ -79,7 +80,9 @@ class tabDataModel
return enums.AddTabCallback.TAB_ADDED;
}
mExternalEvents.invokeObserver(Arrays.asList("REPLACE INTO tab(mid,date,title,url,theme) VALUES('"+ mTabModel.getmId() +"','" + m_date + "',?,?,?);",params), dataEnums.eTabCallbackCommands.M_EXEC_SQL);
if(mTabModel.getmId()!=null){
//mExternalEvents.invokeObserver(Arrays.asList("REPLACE INTO tab(mid,date,title,url,theme) VALUES('"+ mTabModel.getmId() +"','" + m_date + "',?,?,?);",params), dataEnums.eTabCallbackCommands.M_EXEC_SQL);
}
}
return enums.AddTabCallback.TAB_ADDED;
}
@ -195,7 +198,9 @@ class tabDataModel
return false;
}
if(mTabs.get(counter).getmId()!=null){
mExternalEvents.invokeObserver(Arrays.asList("REPLACE INTO tab(mid,date,title,url,theme) VALUES('"+ mTabs.get(counter).getmId() +"','" + m_date + "',?,?,?);",params), dataEnums.eTabCallbackCommands.M_EXEC_SQL);
}
return true;
}
}
@ -260,7 +265,7 @@ class tabDataModel
byte[] mThumbnail = out.toByteArray();
ContentValues mContentValues = new ContentValues();
mContentValues.put("mThumbnail", mThumbnail);
mExternalEvents.invokeObserver(Arrays.asList("tab",mContentValues, mTabs.get(finalCounter).getmId()), dataEnums.eTabCallbackCommands.M_EXEC_SQL_USING_CONTENT);
mExternalEvents.invokeObserver(Arrays.asList("tab",mContentValues, "mid = ?", new String[]{mTabs.get(finalCounter).getmId()}), dataEnums.eTabCallbackCommands.M_EXEC_SQL_USING_CONTENT);
}
}
}

View File

@ -4,8 +4,6 @@ import android.appwidget.AppWidgetProvider;
import android.content.Context;
import android.view.View;
import android.widget.RemoteViews;
import com.darkweb.genesissearchengine.appManager.settingManager.settingHomeManager.settingHomeEnums;
import com.darkweb.genesissearchengine.eventObserver;
import com.example.myapplication.R;

View File

@ -1,4 +1,5 @@
<set xmlns:android="http://schemas.android.com/apk/res/android">
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:startOffset="0">
<alpha
android:duration="350"
android:fromAlpha="1.0"

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:top="113dp">
<shape
android:shape="rectangle" android:padding="10dp" >
<solid android:color="@color/c_edittext_background_error"/>
<corners android:radius="7dp"/>
<stroke android:width="2dp" android:color="@color/dark_red_soft"/>
</shape>
</item>
<item android:state_pressed="false"
android:top="113dp">
<shape
android:shape="rectangle" android:padding="10dp">
<solid android:color="@color/c_edittext_background_error"/>
<corners android:radius="7dp"/>
<stroke android:width="2dp" android:color="@color/dark_red_soft"/>
</shape>
</item>
</selector>

View File

@ -0,0 +1,5 @@
<vector android:height="24dp" android:tint="#3C5C7E"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M3,17.25V21h3.75L17.81,9.94l-3.75,-3.75L3,17.25zM20.71,7.04c0.39,-0.39 0.39,-1.02 0,-1.41l-2.34,-2.34c-0.39,-0.39 -1.02,-0.39 -1.41,0l-1.83,1.83 3.75,3.75 1.83,-1.83z"/>
</vector>

View File

@ -0,0 +1,181 @@
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@xml/hx_border"
android:baselineAligned="false">
<LinearLayout
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_marginStart="0dp"
android:paddingEnd="0dp"
android:layout_marginTop="0dp"
android:id="@+id/pRowContainer"
android:background="@xml/gx_ripple_blue"
android:layout_height="60dp"
tools:ignore="RtlSymmetry">
<TextView
android:id="@+id/pWebLogo"
android:layout_width="35dp"
android:layout_marginTop="9dp"
android:layout_marginStart="15dp"
android:layout_marginEnd="5dp"
android:alpha="0"
android:layout_height="35dp"
android:textStyle="bold"
android:textSize="17sp"
android:text="A"
android:textAlignment="center"
android:textColor="@color/white"
android:background="@xml/hx_circle_favicon"
android:gravity="center_vertical"
tools:ignore="RtlCompat" />
<androidx.cardview.widget.CardView
android:layout_width="35dp"
android:layout_height="35dp"
app:cardElevation="0dp"
android:padding="20dp"
android:layout_marginStart="-47dp"
android:layout_marginTop="12dp"
android:layout_marginEnd="5dp"
android:gravity="center_vertical"
app:cardCornerRadius="5dp">
<ImageView
android:id="@+id/pFaviconLogo"
android:layout_width="37dp"
android:layout_height="37dp"
android:layout_marginTop="-1dp"
android:background="@color/button_gray"
android:contentDescription="@string/GENERAL_TODO"
android:textAlignment="center"
android:textColor="@color/white"
tools:ignore="RtlCompat" />
</androidx.cardview.widget.CardView>
<ImageView
android:id="@+id/pLogoImage"
android:layout_width="48dp"
android:layout_marginTop="10dp"
android:layout_marginStart="-47dp"
android:layout_marginEnd="-1dp"
android:layout_height="48dp"
android:visibility="visible"
android:alpha="0"
android:translationZ="3dp"
android:src="@drawable/tick_recycler_view_green"
android:gravity="center_vertical"
tools:ignore="RtlCompat"
android:contentDescription="@string/GENERAL_TODO" />
<LinearLayout
android:layout_width="0dp"
android:orientation="vertical"
android:layout_marginStart="0dp"
android:paddingEnd="8dp"
android:layout_marginTop="0dp"
android:clickable="false"
android:layout_weight="1"
android:layout_height="match_parent"
tools:ignore="NestedWeights,RtlSymmetry">
<TextView
android:id="@+id/pHeader"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/c_text_v1"
android:singleLine="true"
android:layout_marginTop="10dp"
android:textSize="14.5sp"
android:layout_marginStart="10dp"
/>
<TextView
android:layout_marginStart="10dp"
android:id="@+id/pDescription"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:layout_marginTop="1dp"
android:ellipsize="end"
android:textSize="13sp"
android:textColor="@color/c_text_v2"
/>
</LinearLayout>
<ImageButton
android:id="@+id/pBookmarkEdit"
android:layout_width="60dp"
android:layout_height="60dp"
android:background="@xml/gx_ripple_gray"
android:contentDescription="@string/GENERAL_TODO"
android:paddingTop="20dp"
android:paddingBottom="20dp"
android:scaleType="fitCenter"
android:src="@xml/ic_baseline_edit"
android:tint="@color/c_navigation_tint"
tools:ignore="RtlSymmetry" />
<ImageButton
android:id="@+id/pRowMenu"
android:layout_width="40dp"
android:layout_height="60dp"
android:background="@xml/gx_ripple_gray"
android:contentDescription="@string/GENERAL_TODO"
android:paddingTop="22dp"
android:paddingBottom="22dp"
android:scaleType="fitCenter"
android:src="@drawable/menu_item"
android:tint="@color/c_navigation_tint"
tools:ignore="RtlSymmetry" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"
android:id="@+id/pDateContainer"
android:background="@xml/hx_border"
android:baselineAligned="false">
<TextView
android:id="@+id/pDate"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/c_text_v2"
android:singleLine="true"
android:layout_marginTop="15dp"
android:layout_marginBottom="15dp"
android:textSize="13sp"
android:layout_marginStart="15dp"/>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="60dp"
android:visibility="gone"
android:id="@+id/pLoadingContainer"
android:baselineAligned="false">
<ProgressBar
android:id="@+id/pLoading"
android:layout_marginTop="5dp"
style="?android:attr/progressBarStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</FrameLayout>

View File

@ -0,0 +1,203 @@
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/c_background"
tools:context="com.darkweb.genesissearchengine.appManager.bookmarkManager.BookmarkSettings.bookmarkSettingController">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="wrap_content">
<!-- Title Header -->
<LinearLayout
android:id="@+id/pHeaderContainerTop"
android:layout_width="match_parent"
android:layout_height="48dp"
android:clickable="true"
android:elevation="8dp"
android:background="@color/c_background"
android:paddingStart="5dp"
android:focusable="true"
android:orientation="horizontal"
tools:ignore="RtlSymmetry">
<ImageButton
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_marginStart="0dp"
android:layout_marginTop="1dp"
android:background="@xml/gx_ripple_default_round"
android:contentDescription="@string/GENERAL_TODO"
android:onClick="onClose"
android:src="@xml/ic_arrow_back"
android:tint="@color/c_navigation_tint" />
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:paddingStart="10dp"
android:paddingEnd="10dp"
android:onClick="onClose"
android:layout_marginTop="-3dp"
android:gravity="center_vertical|start"
android:text="@string/BOOKMARK_SETTING_HEADER"
android:textColor="@color/c_text_v1"
android:textSize="17sp"
android:textStyle="bold" />
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="1"/>
<ImageView
android:layout_width="44dp"
android:layout_height="44dp"
android:padding="8dp"
android:layout_marginEnd="3dp"
android:layout_gravity="center_vertical"
android:onClick="onUpdateBookmark"
android:background="@xml/gx_ripple_default_round"
android:contentDescription="@string/GENERAL_TODO"
android:src="@xml/ic_baseline_done"
app:tint="@color/c_navigation_tint" />
</LinearLayout>
<!-- Title Header -->
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/c_view_divier_background" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="35dp"
android:alpha="1"
android:background="@android:color/transparent"
android:clickable="false"
android:padding="0dp"
android:textStyle="bold"
android:paddingStart="15dp"
android:paddingEnd="5dp"
android:text="@string/BOOKMARK_SETTING_HEADER_URL"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v4"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
<com.darkweb.genesissearchengine.appManager.homeManager.homeController.editTextManager
android:id="@+id/pBookmarkName"
android:layout_width="match_parent"
android:layout_height="45dp"
android:background="@xml/gx_generic_input"
android:layout_margin="10dp"
android:fadingEdgeLength="20dp"
android:hint="@string/BOOKMARK_SETTING_HEADER_NAME_HINT"
android:inputType="text"
android:digits="0,1,2,3,4,5,6,7,8,9,*,qwertzuiopa sdfghjklyxcvbnm,_,-"
android:maxLines="1"
android:paddingStart="18dp"
android:paddingEnd="15dp"
android:maxLength="100"
android:layout_marginTop="5dp"
android:requiresFadingEdge="horizontal"
android:text="@string/GENERAL_HOME_URL"
android:textColor="@color/c_text_v8"
android:textColorHighlight="@color/text_color_highlight_v3"
android:textColorHint="@color/c_text_v2"
android:textCursorDrawable="@xml/gx_search_cursor_state"
android:textSize="16sp"
tools:targetApi="o"/>
<TextView
android:id="@+id/pBookmarkNameError"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:textStyle="bold"
android:layout_marginTop="-5dp"
android:alpha="0"
android:background="@android:color/transparent"
android:text="@string/BOOKMARK_SETTING_HEADER_NAME_ERROR"
android:textAlignment="textStart"
android:textColor="@color/dark_red_soft"
android:textSize="12sp"
tools:ignore="RtlSymmetry" />
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginStart="15dp"
android:layout_marginTop="15dp"
android:background="@color/c_view_divier_background" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:alpha="1"
android:background="@android:color/transparent"
android:clickable="false"
android:padding="0dp"
android:paddingStart="15dp"
android:paddingEnd="5dp"
android:text="@string/BOOKMARK_SETTING_HEADER_NAME"
android:textAlignment="textStart"
android:textStyle="bold"
android:textAllCaps="false"
android:textColor="@color/c_text_v4"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
<com.darkweb.genesissearchengine.appManager.homeManager.homeController.editTextManager
android:id="@+id/pBookmarkURL"
android:layout_width="match_parent"
android:layout_height="45dp"
android:background="@xml/gx_generic_input"
android:layout_margin="10dp"
android:fadingEdgeLength="20dp"
android:hint="@string/BOOKMARK_SETTING_HEADER_URL_HINT"
android:maxLength="350"
android:inputType="textWebEmailAddress"
android:maxLines="1"
android:paddingStart="18dp"
android:layout_marginTop="5dp"
android:paddingEnd="15dp"
android:requiresFadingEdge="horizontal"
android:text="@string/GENERAL_HOME_URL"
android:textColor="@color/c_text_v8"
android:textColorHighlight="@color/text_color_highlight_v3"
android:textColorHint="@color/c_text_v2"
android:textCursorDrawable="@xml/gx_search_cursor_state"
android:textSize="16sp"
tools:targetApi="o"/>
<TextView
android:id="@+id/pBookmarkURLError"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:layout_marginTop="-5dp"
android:alpha="0"
android:background="@android:color/transparent"
android:text="@string/BOOKMARK_SETTING_HEADER_URL_ERROR"
android:textAlignment="textStart"
android:textColor="@color/dark_red_soft"
android:textSize="12sp"
android:textStyle="bold"
tools:ignore="RtlSymmetry" />
</LinearLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -5,7 +5,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/c_background"
tools:context="com.darkweb.genesissearchengine.appManager.bookmarkManager.bookmarkController">
tools:context="com.darkweb.genesissearchengine.appManager.bookmarkManager.bookmarkHome.bookmarkController">
<LinearLayout
android:id="@+id/pHeaderContainer"

View File

@ -57,6 +57,7 @@
<color name="c_profile_radial_inner">#2c2b31</color>
<color name="c_profile_radial_outer">#2c2b31</color>
<color name="c_edittext_background">#3c3946</color>
<color name="c_edittext_background_error">#660b0b</color>
<color name="c_edittext_background_dark">#24222a</color>
<color name="c_menu_drop_shadow_05">#00000000</color>
<color name="c_menu_drop_shadow_10">#00000000</color>

View File

@ -40,7 +40,7 @@
<color name="c_checkbox_tint">#3385ff</color>
<color name="c_checkbox_tint_default">#3385ff</color>
<color name="c_border_background">#f9f9f9</color>
<color name="c_border_background_divider">#808080</color>
<color name="c_border_background_divider">#f7f7f7</color>
<color name="c_security_popup_background">#f5fff5</color>
<color name="c_security_popup_divider">#e0ffe0</color>
<color name="c_font_change_background">#e3e3e3</color>
@ -59,6 +59,7 @@
<color name="c_profile_radial_inner">#000000</color>
<color name="c_profile_radial_outer">#ffffff</color>
<color name="c_edittext_background">#f1f3f4</color>
<color name="c_edittext_background_error">#f9e2eb</color>
<color name="c_edittext_background_dark">#f5f5f5</color>
<color name="c_button_warning">#f65555</color>
<color name="c_rateus_warning">#b3b3b3</color>

View File

@ -326,6 +326,15 @@
We want to inform users of this Service that these third parties have access to your Personal Information. The reason is to perform the tasks assigned to them on our behalf. However, they are obligated not to disclose or use the information for any other purpose. We value your trust in providing us your Personal Information, thus we are striving to use commercially acceptable means of protecting it. But remember that no method of transmission over the internet, or method of electronic storage is 100% secure and reliable, and we cannot guarantee its absolute security\n\n
This Service only contain links to other sites. If you click on a third-party link, you will be directed to that site. Note that these external sites are not operated by us. Therefore, we strongly advise you to review the Privacy Policy of these websites. We have no control over and assume no responsibility for the content, privacy policies, or practices of any third-party sites or services. We may update our Privacy Policy from time to time. Thus, you are advised to review this page periodically for any changes. We will notify you of any changes by posting the new Privacy Policy on this page. These changes are effective immediately after they are posted on this page.</string>
<!-- Bookmark Setting -->
<string name="BOOKMARK_SETTING_HEADER" translatable="true">Edit Bookmark</string>
<string name="BOOKMARK_SETTING_HEADER_NAME" translatable="true">Bookmark URL</string>
<string name="BOOKMARK_SETTING_HEADER_URL" translatable="true">Bookmark Name</string>
<string name="BOOKMARK_SETTING_HEADER_NAME_HINT" translatable="true">enter bookmark name</string>
<string name="BOOKMARK_SETTING_HEADER_URL_HINT" translatable="true">enter bookmark url</string>
<string name="BOOKMARK_SETTING_HEADER_NAME_ERROR" translatable="true"> ➔ invalid bookmark name</string>
<string name="BOOKMARK_SETTING_HEADER_URL_ERROR" translatable="true"> ➔ invalid bookmark url</string>
<!-- Bridge Settings -->
<string name="BRIDGE_BASIC_SETTING" translatable="true">Security Settings</string>
<string name="BRIDGE_SETTING" translatable="true">Bridge Settings</string>

View File

@ -1,6 +1,6 @@
/* Version */
project.ext.vname = 'Build | Dark-Origin 1.4.1'
project.ext.vcode = 70
project.ext.vname = 'Build | Dark-Origin 1.4.2'
project.ext.vcode = 75
project.ext.buildType = 'release'
/* dimension */

View File

@ -1,5 +1,8 @@
buildscript {
ext {
kotlin_version = '1.5.10'
}
ext.kotlinVersion = '1.1.51'
repositories {
google()