Bug Fixes

master
msmannan00 2020-02-28 23:10:00 +05:00
parent 6306aafaf3
commit d7bad62faf
291 changed files with 16524 additions and 661 deletions

View File

@ -21,51 +21,24 @@ repositories {
} }
android { android {
compileSdkVersion 29 compileSdkVersion project.ext.compileSdkVersion
buildToolsVersion '29.0.2'
defaultConfig { defaultConfig {
applicationId project.ext.applicationId applicationId project.ext.applicationId
minSdkVersion 21 minSdkVersion project.ext.minSdkVersion
//targetSdkVersion project.ext.targetSdkVersion
versionCode project.ext.versionCode versionCode project.ext.versionCode
versionName project.ext.versionName versionName project.ext.versionName
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
multiDexEnabled true
} }
buildToolsVersion '28.0.3'
flavorDimensions "abi"
compileOptions { compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8 sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8
} }
dexOptions {
preDexLibraries true
}
lintOptions {
lintConfig file("lint.xml")
}
// We have a three dimensional build configuration:
// BUILD TYPE (debug, release) X PRODUCT FLAVOR (focus, klar) X ARCHITECTURE (x86, arm, aarch64)
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
splits {
abi {
enable true
reset()
include 'arm64-v8a'
include 'x86'
include 'armeabi-v7a'
include 'x86_64'
universalApk false
}
}
}
flavorDimensions project.ext.dimen flavorDimensions project.ext.dimen
@ -73,49 +46,86 @@ android {
arm { arm {
versionCode project.ext.arm_vcode versionCode project.ext.arm_vcode
versionName project.ext.arm_vname versionName project.ext.arm_vname
dimension project.ext.dimen dimension "abi"
ndk {
abiFilter "armeabi-v7a"
}
} }
aarch64 { aarch64 {
versionCode project.ext.aarch_vcode versionCode project.ext.aarch_vcode
versionName project.ext.aarch_vname versionName project.ext.aarch_vname
dimension project.ext.dimen dimension "abi"
ndk {
abiFilter "arm64-v8a"
}
} }
x86 { x86 {
versionCode project.ext.x86_vcode versionCode project.ext.x86_vcode
versionName project.ext.x86_vname versionName project.ext.x86_vname
dimension project.ext.dimen dimension "abi"
ndk {
abiFilter "x86"
}
} }
x86_64 { x86_64 {
versionCode project.ext.x64_vcode versionCode project.ext.x64_vcode
versionName project.ext.x64_vname versionName project.ext.x64_vname
dimension project.ext.dimen dimension "abi"
} ndk {
} abiFilter "x86_64"
sourceSets {
test {
resources {
srcDir "${projectDir}/src/main/assets/"
} }
} }
signingConfigs {
release {
keyAlias 'demo'
keyPassword 'demodemo'
storeFile file("${rootProject.projectDir}/demo.keystore")
storePassword 'demodemo'
}
}
} }
configurations.all {
resolutionStrategy.force 'com.android.support:support-v4:26.1.0' // the lib is old dependencies version;
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
lintOptions {
checkReleaseBuilds false
// Or, if you prefer, you can continue to check for errors in release builds,
// but continue the build even when errors are found:
abortOnError false
} }
} }
dependencies { dependencies {
// Android Support Repository dependencies
def supportVersion = '28.0.0'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.preference:preference:1.1.0'
implementation 'androidx.legacy:legacy-preference-v14:1.0.0'
implementation 'androidx.recyclerview:recyclerview:1.1.0'
// Testing-only dependencies
androidTestImplementation('androidx.test.espresso:espresso-core:3.2.0') {
exclude group: 'com.android.support', module: 'support-annotations'
}
/*Default Libraries*/ /*Default Libraries*/
implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support.constraint:constraint-layout:2.0.0-beta4'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta4' implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta4'
implementation 'com.google.android.material:material:1.2.0-alpha03' implementation 'com.google.android.material:material:1.2.0-alpha04'
implementation 'androidx.preference:preference:1.1.0' implementation 'androidx.preference:preference:1.1.0'
implementation 'com.google.android.material:material:1.0.0' implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support:appcompat-v7:28.0.0'
/*Firefox ABI Splits*/ /*Firefox ABI Splits*/
implementation "org.mozilla.components:browser-engine-gecko:$mozilla_components_version" implementation "org.mozilla.components:browser-engine-gecko:$mozilla_components_version"
@ -138,6 +148,8 @@ dependencies {
/*Orbot Service*/ /*Orbot Service*/
implementation project(path: ':orbotservice') implementation project(path: ':orbotservice')
implementation 'com.android.support:support-v4:28.0.0'
implementation 'com.github.apl-devs:appintro:v4.2.2'
} }

View File

@ -1,68 +1,70 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
package="com.example.myapplication"> package="com.example.myapplication">
<!-- Permissions -->
<!-- Permissions-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.READ_CLIPBOARD" />
<application <application
android:allowBackup="true" android:allowBackup="true"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:launchMode="singleTask"
android:fullBackupContent="false"
android:networkSecurityConfig="@xml/ex_network_security_config"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme"
android:usesCleartextTraffic="true">
<!-- Activities-->
<activity android:name="com.darkweb.genesissearchengine.appManager.orbotManager.orbotController"
android:launchMode= "singleTop"
/>
<activity
android:name="com.darkweb.genesissearchengine.appManager.settingManager.settingController"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize" android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:label="@string/title_activity_setting_controller" android:fullBackupContent="false"
android:windowSoftInputMode="adjustNothing" /> android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:launchMode="singleTask"
android:networkSecurityConfig="@xml/ex_network_security_config"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme"
android:usesCleartextTraffic="true">
<!-- Activities -->
<activity <activity
android:name="com.darkweb.genesissearchengine.appManager.historyManager.historyController" android:name="com.darkweb.genesissearchengine.appManager.orbotManager.orbotController"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize" android:launchMode="singleTop" />
android:windowSoftInputMode="adjustNothing" /> <activity
android:name="com.darkweb.genesissearchengine.appManager.settingManager.settingController"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:label="@string/title_activity_setting_controller"
android:windowSoftInputMode="adjustNothing" />
<activity
android:name="com.darkweb.genesissearchengine.appManager.historyManager.historyController"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:windowSoftInputMode="adjustNothing" />
<activity <activity
android:name="com.darkweb.genesissearchengine.appManager.bookmarkManager.bookmarkController" android:name="com.darkweb.genesissearchengine.appManager.bookmarkManager.bookmarkController"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize" android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:windowSoftInputMode="adjustNothing" /> android:windowSoftInputMode="adjustNothing" />
<activity
android:name="com.darkweb.genesissearchengine.appManager.bridgeManager.bridgeController"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:windowSoftInputMode="adjustResize" />
<activity <activity
android:name="com.darkweb.genesissearchengine.appManager.tabManager.tabController" android:name="com.darkweb.genesissearchengine.appManager.tabManager.tabController"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize" android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:launchMode="singleTask"
android:windowSoftInputMode="adjustNothing" />
<activity
android:name="com.darkweb.genesissearchengine.appManager.landingManager.landingController"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:windowSoftInputMode="adjustNothing" /> android:windowSoftInputMode="adjustNothing" />
<activity <activity
android:name="com.darkweb.genesissearchengine.appManager.homeManager.homeController" android:name="com.darkweb.genesissearchengine.appManager.homeManager.homeController"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize" android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:launchMode="singleTask"
android:screenOrientation="portrait" android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize"> android:windowSoftInputMode="adjustResize">
<intent-filter> <intent-filter>
<category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER" />
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
<action android:name="android.intent.action.VIEW" /> <action android:name="android.intent.action.VIEW" />
</intent-filter> </intent-filter>
<intent-filter> <intent-filter>
<action android:name="android.intent.action.VIEW" /> <action android:name="android.intent.action.VIEW" />
@ -81,51 +83,72 @@
<action android:name="org.torproject.android.START_TOR" /> <action android:name="org.torproject.android.START_TOR" />
</intent-filter> </intent-filter>
</activity> <intent-filter>
<action android:name="android.intent.action.VIEW" />
<!-- Services & Settings--> <category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" />
<data android:scheme="https" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="http" />
<data android:scheme="https" />
<data android:mimeType="text/html" />
<data android:mimeType="text/plain" />
<data android:mimeType="application/xhtml+xml" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="content"
android:scheme="rocket" />
</intent-filter>
</activity> <!-- Services & Settings -->
<uses-library <uses-library
android:name="org.apache.http.legacy" android:name="org.apache.http.legacy"
android:required="false" /> android:required="false" />
<meta-data <meta-data
android:name="io.fabric.ApiKey" android:name="io.fabric.ApiKey"
android:value="be76c64dae2519d4ab8daaed88298da14c7c294f" /> android:value="be76c64dae2519d4ab8daaed88298da14c7c294f" />
<meta-data <meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID" android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-5074525529134731~2926711128" /> android:value="ca-app-pub-5074525529134731~2926711128" />
<service <service
android:name="com.darkweb.genesissearchengine.pluginManager.exitManager" android:name="com.darkweb.genesissearchengine.pluginManager.exitManager"
android:stopWithTask="false" /> android:stopWithTask="false" />
<service <service
android:name="com.darkweb.genesissearchengine.helperManager.downloadFileService" android:name="com.darkweb.genesissearchengine.helperManager.downloadFileService"
android:enabled="true" android:enabled="true"
android:stopWithTask="true" android:exported="false"
android:exported="false" /> android:stopWithTask="true" />
<service <service
android:name="org.torproject.android.service.TorService" android:name="org.torproject.android.service.TorService"
android:enabled="true" android:enabled="true"
android:stopWithTask="true" android:exported="false"
android:exported="false"/> android:stopWithTask="true" />
<receiver <receiver
android:name="org.torproject.android.service.StartTorReceiver" android:name="org.torproject.android.service.StartTorReceiver"
android:exported="true" android:exported="true"
android:stopWithTask="true" android:permission="TODO"
android:permission="TODO"> android:stopWithTask="true">
<intent-filter> <intent-filter>
<action android:name="org.torproject.android.intent.action.USER_PRESENT" /> <action android:name="org.torproject.android.intent.action.USER_PRESENT" />
</intent-filter> </intent-filter>
</receiver> </receiver>
</application> </application>
</manifest> </manifest>

View File

@ -20,17 +20,17 @@
</head> </head>
<body> <body>
<div class="container"> <div class="container">
<h1 style="text-align: left;font-family: Arial, Helvetica, sans-serif;color: LightSlateGrey;font-size: 1.3em">This site can't be reached</h1> <h1 style="text-align: left;font-family: Arial, Helvetica, sans-serif;color: LightSlateGrey;font-size: 1.3em">$ERROR_M1</h1>
<p style="text-align: left;color: LightSlateGrey;font-size: 1em">An error occurred during a connection <br></p> <p style="text-align: left;color: LightSlateGrey;font-size: 1em">$ERROR_M2<br></p>
<p style="margin-top: -10px;text-align: left;color: LightSlateGrey;font-size: 0.8em">$ERROR</p> <p style="margin-top: -10px;text-align: left;color: LightSlateGrey;font-size: 0.8em">$ERROR</p>
<ul style="margin-left: -25px" > <ul style="margin-left: -25px" >
<li style="font-size: 0.9em;margin-top: 40px;text-align: left;color: LightSlateGrey">The page you are trying to view cannot be shown because the authenticity of the received data could not be verified</li> <li style="font-size: 0.9em;margin-top: 40px;text-align: left;color: LightSlateGrey">$ERROR_M3</li>
<li style="font-size: 0.9em;text-align: left;color: LightSlateGrey">The page is currently not live or down due to some reason</li> <li style="font-size: 0.9em;text-align: left;color: LightSlateGrey">$ERROR_M4</li>
<li style="font-size: 0.9em;text-align: left;color: LightSlateGrey">Please contact the website owners to inform them of this problem.</li> <li style="font-size: 0.9em;text-align: left;color: LightSlateGrey">$ERROR_M5</li>
</ul> </ul>
<a href="$URL"><button style="max-width: 450px;float:left;margin-top: 30px;width: 100%;font-weight: bold;font-family: Arial, Helvetica, sans-serif;font-size: 1em;border-radius: 5px;padding-bottom: 10px;padding-top: 10px;border: none;background:DodgerBlue;color: white"> Reload</button></a> <a href="$URL"><button style="max-width: 450px;float:left;margin-top: 30px;width: 100%;font-weight: bold;font-family: Arial, Helvetica, sans-serif;font-size: 1em;border-radius: 5px;padding-bottom: 10px;padding-top: 10px;border: none;background:DodgerBlue;color: white"> $ERROR_M6</button></a>
</div> </div>
</body> </body>
</html> </html>

0
app/src/main/assets/gpl.html Normal file → Executable file
View File

0
app/src/main/assets/licenses.html Normal file → Executable file
View File

0
app/src/main/assets/style.css Normal file → Executable file
View File

View File

@ -68,7 +68,7 @@ public class bookmarkController extends AppCompatActivity
mListView = findViewById(R.id.listview); mListView = findViewById(R.id.listview);
mClearButton = findViewById(R.id.clearButton); mClearButton = findViewById(R.id.clearButton);
mBookmarkViewController = new bookmarkViewController(mEmptyListNotifier, mSearchBar, mListView, mClearButton,this); mBookmarkViewController = new bookmarkViewController(mEmptyListNotifier, mSearchBar, mListView, mClearButton,this);
mClearButton.setText(strings.CLEAR_BOOKMARK); mClearButton.setText(R.string.tab_view_clear_bookmark);
} }
public void initializeList(){ public void initializeList(){
bookmarkAdapter adapter = new bookmarkAdapter(mListModel.getList(),new adapterCallback()); bookmarkAdapter adapter = new bookmarkAdapter(mListModel.getList(),new adapterCallback());

View File

@ -0,0 +1,170 @@
package com.darkweb.genesissearchengine.appManager.bridgeManager;
import android.os.Bundle;
import android.os.Handler;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.ScrollView;
import android.widget.Switch;
import androidx.appcompat.app.AppCompatActivity;
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.helperManager.helperMethod;
import com.darkweb.genesissearchengine.pluginManager.pluginController;
import com.example.myapplication.R;
import java.util.Collections;
public class bridgeController extends AppCompatActivity {
/*Private Variables*/
private bridgeViewController mBridgeViewController;
private Switch mAutoSwitch;
private Switch mManualSwitch;
private EditText mCustomBridgeInput1;
private RadioButton mObs4Proxy;
private RadioButton mMeekProxy;
private LinearLayout mTopPanel;
private LinearLayout mBottomPanel;
private Button mBridgeRequestButton;
/*Initializations*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.bridge_settings_view);
initializeAppModel();
initializeConnections();
initializeLocalEventHandlers();
}
public void initializeAppModel()
{
mBridgeViewController = new bridgeViewController();
}
public void initializeConnections()
{
mAutoSwitch = findViewById(R.id.bridgeSwitchAuto);
mManualSwitch = findViewById(R.id.bridgeSwitchManual);
mObs4Proxy = findViewById(R.id.bridge_obfs);
mMeekProxy = findViewById(R.id.bridge_china);
mTopPanel = findViewById(R.id.topPanel);
mBottomPanel = findViewById(R.id.bottomPanel);
mCustomBridgeInput1 = findViewById(R.id.port1);
mBridgeRequestButton = findViewById(R.id.bridgeButton);
mBridgeViewController.initialization(mAutoSwitch,mManualSwitch,mCustomBridgeInput1,this,mObs4Proxy,mMeekProxy,mTopPanel,mBottomPanel,mBridgeRequestButton);
}
private void initializeLocalEventHandlers()
{
mAutoSwitch.setOnClickListener(view ->
{
boolean isChecked = mAutoSwitch.isChecked();
status.sGatewayAuto = isChecked;
dataController.getInstance().setBool(keys.GATEWAY_AUTO, isChecked);
dataController.getInstance().setBool(keys.GATEWAY_MANUAL, !isChecked);
if (isChecked)
{
mBridgeViewController.setBridgeState(false, isChecked);
status.sGatewayManual = false;
} else
{
mBridgeViewController.setBridgeState(false, false);
}
});
mManualSwitch.setOnClickListener(view ->
{
boolean isChecked = mManualSwitch.isChecked();
status.sGatewayManual = isChecked;
dataController.getInstance().setBool(keys.GATEWAY_MANUAL, isChecked);
dataController.getInstance().setBool(keys.GATEWAY_AUTO, !isChecked);
if (isChecked)
{
mBridgeViewController.setBridgeState(isChecked, false);
status.sGatewayAuto = false;
} else
{
mBridgeViewController.setBridgeState(false, false);
}
});
mCustomBridgeInput1.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2)
{
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2)
{
}
@Override
public void afterTextChanged(Editable editable) {
status.sCustomBridge=mCustomBridgeInput1.getText().toString();
}
});
}
@Override
protected void onPause()
{
super.onPause();
dataController.getInstance().setString(keys.CUSTOM_BRIDGE_1,status.sCustomBridge);
dataController.getInstance().setBool(keys.GATEWAY_AUTO,status.sGatewayAuto);
dataController.getInstance().setBool(keys.GATEWAY_MANUAL,status.sGatewayManual);
}
@Override
public void onResume()
{
activityContextManager.getInstance().setCurrentActivity(this);
super.onResume();
}
@Override
public void onBackPressed() {
finish();
}
public void onClose(View view){
finish();
}
/*Helper Method*/
public void requestBridges(View view){
pluginController.getInstance().MessageManagerHandler(this, Collections.singletonList(constants.BACKEND_GOOGLE_URL), enums.etype.on_bridge_mail);
}
public void onMeekChecked(View view){
status.sCustomBridge = "meek";
dataController.getInstance().setString(keys.CUSTOM_BRIDGE_1,status.sCustomBridge);
}
public void onObfsChecked(View view){
status.sCustomBridge = "obfs4";
dataController.getInstance().setString(keys.CUSTOM_BRIDGE_1,status.sCustomBridge);
}
}

View File

@ -0,0 +1,129 @@
package com.darkweb.genesissearchengine.appManager.bridgeManager;
import android.animation.ValueAnimator;
import android.os.Build;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.view.animation.DecelerateInterpolator;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Switch;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.ContextCompat;
import com.darkweb.genesissearchengine.constants.status;
import com.example.myapplication.R;
class bridgeViewController
{
/*Private Variables*/
private Switch mAutoSwitch;
private Switch mManualSwitch;
private EditText mCustomBridgeInput1;
private RadioButton mObs4Proxy;
private RadioButton mMeekProxy;
private Button mBridgeRequestButton;
private LinearLayout mTopPanel;
private LinearLayout mBottomPanel;
/*ViewControllers*/
private int mPanelHeight = 0;
private AppCompatActivity mContext;
/*Initializations*/
void initialization(Switch mAutoSwitch,Switch mManualSwitch,EditText mCustomBridgeInput1,AppCompatActivity mContext,RadioButton mObs4Proxy,RadioButton mMeekProxy,LinearLayout mTopPanel,LinearLayout mBottomPanel,Button mBridgeRequestButton){
this.mContext = mContext;
this.mAutoSwitch = mAutoSwitch;
this.mManualSwitch = mManualSwitch;
this.mCustomBridgeInput1 = mCustomBridgeInput1;
this.mObs4Proxy = mObs4Proxy;
this.mMeekProxy = mMeekProxy;
this.mTopPanel = mTopPanel;
this.mBottomPanel = mBottomPanel;
this.mBridgeRequestButton = mBridgeRequestButton;
initPostUI();
initViews();
initPanels();
}
private void initPostUI(){
mPanelHeight = 1000;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Window window = mContext.getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) {
window.setStatusBarColor(mContext.getResources().getColor(R.color.blue_dark));
}
else {
mContext.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);// set status text dark
mContext.getWindow().setStatusBarColor(ContextCompat.getColor(mContext, R.color.white));
}
}
}
private void initViews(){
mAutoSwitch.setChecked(status.sGatewayAuto);
mManualSwitch.setChecked(status.sGatewayManual);
mMeekProxy.clearFocus();
mObs4Proxy.clearFocus();
if(status.sGatewayAuto){
if(status.sCustomBridge.contains("obfs")){
mObs4Proxy.setChecked(true);
}else {
mMeekProxy.setChecked(true);
}
setBridgeState(false,true);
}
else if(status.sGatewayManual){
mCustomBridgeInput1.setText(status.sCustomBridge);
setBridgeState(true,false);
}
else {
setBridgeState(false,false);
}
}
void setBridgeState(boolean manual, boolean auto){
mAutoSwitch.setChecked(auto);
mManualSwitch.setChecked(manual);
if(auto){
mTopPanel.animate().setDuration(300).alpha(0.55f).withEndAction((() -> mTopPanel.setClickable(true)));
mBottomPanel.animate().setDuration(300).alpha(0.55f).withEndAction((() -> mBottomPanel.setClickable(false)));
mCustomBridgeInput1.setEnabled(false);
mMeekProxy.setEnabled(true);
mObs4Proxy.setEnabled(true);
mBridgeRequestButton.setEnabled(false);
}
if(manual){
mTopPanel.animate().setDuration(300).alpha(0.55f).withEndAction((() -> mTopPanel.setClickable(false)));
mBottomPanel.animate().setDuration(300).alpha(1).withEndAction((() -> mBottomPanel.setClickable(true)));
mCustomBridgeInput1.setEnabled(true);
mMeekProxy.setEnabled(false);
mObs4Proxy.setEnabled(false);
mBridgeRequestButton.setEnabled(true);
}
if(!auto && !manual) {
mTopPanel.animate().setDuration(300).alpha(0.55f).withEndAction((() -> mTopPanel.setClickable(false)));
mBottomPanel.animate().setDuration(300).alpha(0.55f).withEndAction((() -> mBottomPanel.setClickable(false)));
mCustomBridgeInput1.setEnabled(false);
mMeekProxy.setEnabled(false);
mObs4Proxy.setEnabled(false);
mBridgeRequestButton.setEnabled(false);
}
}
private void initPanels(){
}
}

View File

@ -25,6 +25,9 @@ public class historyRowModel
public void updateTitle(String mTitle){ public void updateTitle(String mTitle){
this.mTitle = mTitle; this.mTitle = mTitle;
} }
public void updateHeader(String mHeader){
this.mHeader = mHeader;
}
public void updateURL(String url){ public void updateURL(String url){
this.mHeader = url; this.mHeader = url;
} }

View File

@ -3,6 +3,7 @@ package com.darkweb.genesissearchengine.appManager.homeManager;
import android.content.Intent; import android.content.Intent;
import android.graphics.Color; import android.graphics.Color;
import android.net.Uri; import android.net.Uri;
import android.util.Log;
import android.view.View; import android.view.View;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
@ -12,9 +13,14 @@ import com.darkweb.genesissearchengine.helperManager.helperMethod;
import java.io.File; import java.io.File;
import java.util.List; import java.util.List;
import static com.darkweb.genesissearchengine.constants.enums.etype.on_handle_external_intent; import static com.darkweb.genesissearchengine.constants.enums.etype.on_handle_external_intent;
import static org.mozilla.geckoview.GeckoSessionSettings.USER_AGENT_MODE_DESKTOP;
import static org.mozilla.geckoview.GeckoSessionSettings.USER_AGENT_MODE_MOBILE;
import static org.mozilla.geckoview.StorageController.ClearFlags.ALL; import static org.mozilla.geckoview.StorageController.ClearFlags.ALL;
import org.mozilla.geckoview.ContentBlocking;
import org.mozilla.geckoview.GeckoRuntime; import org.mozilla.geckoview.GeckoRuntime;
import org.mozilla.geckoview.GeckoSession; import org.mozilla.geckoview.GeckoSession;
import org.mozilla.geckoview.GeckoSessionSettings;
import org.mozilla.geckoview.GeckoView; import org.mozilla.geckoview.GeckoView;
@ -44,16 +50,26 @@ class geckoClients
} }
else { else {
geckoView.releaseSession(); geckoView.releaseSession();
Log.i("GCHECKS:","GCHECKS:"+mGlobalSessionCounter);
mSession = new geckoSession(new geckoViewClientCallback(),mGlobalSessionCounter,context); mSession = new geckoSession(new geckoViewClientCallback(),mGlobalSessionCounter,context);
mSession.open(mRuntime); mSession.open(mRuntime);
mSession.getSettings().setUseTrackingProtection(true); mSession.getSettings().setUseTrackingProtection(true);
mSession.getSettings().setFullAccessibilityTree(true);
mSession.getSettings().setUserAgentMode(USER_AGENT_MODE_MOBILE );
mSession.getSettings().setAllowJavascript(status.sJavaStatus); mSession.getSettings().setAllowJavascript(status.sJavaStatus);
geckoView.releaseSession(); geckoView.releaseSession();
geckoView.setSession(mSession); geckoView.setSession(mSession);
} }
onUpdateFont(); onUpdateFont();
}
void toogleUserAgent(){
mSession.toogleUserAgent();
}
int getUserAgent(){
return mSession.getUserAgentMode();
} }
private void runtimeSettings(AppCompatActivity context){ private void runtimeSettings(AppCompatActivity context){
@ -61,6 +77,8 @@ class geckoClients
mRuntime = GeckoRuntime.getDefault(context); mRuntime = GeckoRuntime.getDefault(context);
mRuntime.getSettings().getContentBlocking().setCookieBehavior(getCookiesBehaviour()); mRuntime.getSettings().getContentBlocking().setCookieBehavior(getCookiesBehaviour());
mRuntime.getSettings().setAutomaticFontSizeAdjustment(status.sFontAdjustable); mRuntime.getSettings().setAutomaticFontSizeAdjustment(status.sFontAdjustable);
mRuntime.getSettings().getContentBlocking().setAntiTracking(ContentBlocking.AntiTracking.AD);
mRuntime.getSettings().getContentBlocking().setAntiTracking(ContentBlocking.AntiTracking.FINGERPRINTING);
} }
} }
@ -77,8 +95,8 @@ class geckoClients
} }
void initSession(geckoSession mSession){ void initSession(geckoSession mSession){
this.mSession = mSession;
mSessionID = mSession.getSessionID(); mSessionID = mSession.getSessionID();
this.mSession = mSession;
} }
geckoSession getSession(){ geckoSession getSession(){
@ -148,6 +166,7 @@ class geckoClients
} }
} }
void onStop(){ void onStop(){
mSession.stop(); mSession.stop();
} }
@ -193,7 +212,7 @@ class geckoClients
@Override @Override
public void invokeObserver(List<Object> data, enums.etype e_type) public void invokeObserver(List<Object> data, enums.etype e_type)
{ {
if (mSessionID == (int)data.get(1)) if (mSessionID == (int)data.get(1) || e_type.equals(enums.etype.on_request_completed) || e_type.equals(enums.etype.on_update_suggestion) || e_type.equals(enums.etype.on_update_suggestion_url))
{ {
if (e_type.equals(on_handle_external_intent)) if (e_type.equals(on_handle_external_intent))
{ {

View File

@ -25,7 +25,9 @@ import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.NotificationCompat; import androidx.core.app.NotificationCompat;
import androidx.core.content.FileProvider; import androidx.core.content.FileProvider;
import com.darkweb.genesissearchengine.constants.enums; import com.darkweb.genesissearchengine.constants.enums;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.constants.strings; import com.darkweb.genesissearchengine.constants.strings;
import com.darkweb.genesissearchengine.helperManager.AdBlocker;
import com.darkweb.genesissearchengine.helperManager.JavaScriptInterface; import com.darkweb.genesissearchengine.helperManager.JavaScriptInterface;
import com.darkweb.genesissearchengine.helperManager.downloadFileService; import com.darkweb.genesissearchengine.helperManager.downloadFileService;
import com.darkweb.genesissearchengine.helperManager.errorHandler; import com.darkweb.genesissearchengine.helperManager.errorHandler;
@ -45,6 +47,9 @@ import java.io.OutputStream;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import static org.mozilla.geckoview.GeckoSessionSettings.USER_AGENT_MODE_DESKTOP;
import static org.mozilla.geckoview.GeckoSessionSettings.USER_AGENT_MODE_MOBILE;
public class geckoSession extends GeckoSession implements GeckoSession.PermissionDelegate,GeckoSession.ProgressDelegate, GeckoSession.HistoryDelegate,GeckoSession.NavigationDelegate,GeckoSession.ContentDelegate public class geckoSession extends GeckoSession implements GeckoSession.PermissionDelegate,GeckoSession.ProgressDelegate, GeckoSession.HistoryDelegate,GeckoSession.NavigationDelegate,GeckoSession.ContentDelegate
{ {
private eventObserver.eventListener event; private eventObserver.eventListener event;
@ -55,7 +60,7 @@ public class geckoSession extends GeckoSession implements GeckoSession.Permissio
private boolean mFullScreen = false; private boolean mFullScreen = false;
private boolean isPageLoading = false; private boolean isPageLoading = false;
private int mProgress = 0; private int mProgress = 0;
private String mCurrentTitle = strings.EMPTY_STR; private String mCurrentTitle = "loading";
private String mCurrentURL = "about:blank"; private String mCurrentURL = "about:blank";
private Uri mUriPermission = null; private Uri mUriPermission = null;
private AppCompatActivity mContext; private AppCompatActivity mContext;
@ -103,10 +108,10 @@ public class geckoSession extends GeckoSession implements GeckoSession.Permissio
@Override @Override
public void onPageStart(@NonNull GeckoSession var1, @NonNull String var2) { public void onPageStart(@NonNull GeckoSession var1, @NonNull String var2) {
if(!isPageLoading){ if(!isPageLoading){
mCurrentURL = "about:blank"; mCurrentTitle = "loading";
} }
isPageLoading = true; isPageLoading = true;
if(!var2.equals("about:blank")){ if(!var2.equals("about:blank") && !mCurrentTitle.equals("loading")){
mProgress = 5; mProgress = 5;
} }
@ -155,8 +160,8 @@ public class geckoSession extends GeckoSession implements GeckoSession.Permissio
public void onLocationChange(@NonNull GeckoSession var1, @Nullable String var2) { public void onLocationChange(@NonNull GeckoSession var1, @Nullable String var2) {
String newUrl = var2.split("#")[0]; String newUrl = var2.split("#")[0];
if(!mCurrentURL.equals("about:blank")){ if(!mCurrentTitle.equals("loading")){
event.invokeObserver(Arrays.asList(mCurrentURL,mSessionID,newUrl), enums.etype.on_update_suggestion_url); event.invokeObserver(Arrays.asList(mCurrentURL,mSessionID,mCurrentTitle), enums.etype.on_update_suggestion_url);
} }
mCurrentURL = newUrl; mCurrentURL = newUrl;
@ -224,7 +229,7 @@ public class geckoSession extends GeckoSession implements GeckoSession.Permissio
@UiThread @UiThread
public void onTitleChange(@NonNull GeckoSession var1, @Nullable String var2) { public void onTitleChange(@NonNull GeckoSession var1, @Nullable String var2) {
if(var2!=null && !var2.equals(strings.EMPTY_STR) && var2.length()>2 && !mCurrentURL.equals("about:blank")){ if(var2!=null && !var2.equals(strings.EMPTY_STR) && var2.length()>2 && !var2.equals("about:blank")){
mCurrentTitle = var2; mCurrentTitle = var2;
event.invokeObserver(Arrays.asList(mCurrentURL,mSessionID,mCurrentTitle), enums.etype.on_update_suggestion); event.invokeObserver(Arrays.asList(mCurrentURL,mSessionID,mCurrentTitle), enums.etype.on_update_suggestion);
} }
@ -471,6 +476,19 @@ public class geckoSession extends GeckoSession implements GeckoSession.Permissio
/*Helper Methods*/ /*Helper Methods*/
void toogleUserAgent(){
if(getSettings().getUserAgentMode()==USER_AGENT_MODE_DESKTOP){
getSettings().setUserAgentMode(USER_AGENT_MODE_MOBILE);
}else {
getSettings().setUserAgentMode(USER_AGENT_MODE_DESKTOP);
}
}
int getUserAgentMode(){
return getSettings().getUserAgentMode();
}
public String getCurrentURL(){ public String getCurrentURL(){
return mCurrentURL; return mCurrentURL;
} }

View File

@ -8,12 +8,15 @@ import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.IntentFilter; import android.content.IntentFilter;
import android.content.res.Configuration; import android.content.res.Configuration;
import android.content.res.Resources;
import android.database.Cursor; import android.database.Cursor;
import android.net.Uri;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.text.Editable; import android.text.Editable;
import android.text.TextWatcher; import android.text.TextWatcher;
import android.util.Log;
import android.view.MotionEvent; import android.view.MotionEvent;
import android.view.View; import android.view.View;
import android.view.inputmethod.EditorInfo; import android.view.inputmethod.EditorInfo;
@ -22,10 +25,13 @@ import android.widget.*;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import androidx.constraintlayout.widget.ConstraintLayout; import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.core.content.ContextCompat;
import com.darkweb.genesissearchengine.appManager.activityContextManager; import com.darkweb.genesissearchengine.appManager.activityContextManager;
import com.darkweb.genesissearchengine.appManager.bookmarkManager.bookmarkController; import com.darkweb.genesissearchengine.appManager.bookmarkManager.bookmarkController;
import com.darkweb.genesissearchengine.appManager.databaseManager.databaseController; import com.darkweb.genesissearchengine.appManager.databaseManager.databaseController;
import com.darkweb.genesissearchengine.appManager.historyManager.historyController; import com.darkweb.genesissearchengine.appManager.historyManager.historyController;
import com.darkweb.genesissearchengine.appManager.landingManager.landingController;
import com.darkweb.genesissearchengine.appManager.settingManager.settingController; import com.darkweb.genesissearchengine.appManager.settingManager.settingController;
import com.darkweb.genesissearchengine.appManager.tabManager.tabController; import com.darkweb.genesissearchengine.appManager.tabManager.tabController;
import com.darkweb.genesissearchengine.appManager.tabManager.tabRowModel; import com.darkweb.genesissearchengine.appManager.tabManager.tabRowModel;
@ -37,6 +43,7 @@ import com.darkweb.genesissearchengine.constants.strings;
import com.darkweb.genesissearchengine.dataManager.dataController; import com.darkweb.genesissearchengine.dataManager.dataController;
import com.darkweb.genesissearchengine.appManager.orbotManager.orbotController; import com.darkweb.genesissearchengine.appManager.orbotManager.orbotController;
import com.darkweb.genesissearchengine.helperManager.KeyboardUtils; import com.darkweb.genesissearchengine.helperManager.KeyboardUtils;
import com.darkweb.genesissearchengine.helperManager.LocaleUtils;
import com.darkweb.genesissearchengine.helperManager.eventObserver; import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod; import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.darkweb.genesissearchengine.pluginManager.pluginController; import com.darkweb.genesissearchengine.pluginManager.pluginController;
@ -54,6 +61,7 @@ import java.lang.reflect.Method;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Locale;
import java.util.Objects; import java.util.Objects;
import java.util.concurrent.Callable; import java.util.concurrent.Callable;
@ -93,8 +101,6 @@ public class homeController extends AppCompatActivity implements ComponentCallba
@Override @Override
protected void onCreate(Bundle savedInstanceState) protected void onCreate(Bundle savedInstanceState)
{ {
if(helperMethod.isBuildValid())
{
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.home_view); setContentView(R.layout.home_view);
initPreFixes(); initPreFixes();
@ -111,21 +117,45 @@ public class homeController extends AppCompatActivity implements ComponentCallba
pluginController.getInstance().initialize(); pluginController.getInstance().initialize();
initializeGeckoView(savedInstanceState == null); initializeGeckoView(savedInstanceState == null);
initializeLocalEventHandlers(); initializeLocalEventHandlers();
} initLandingPage();
else { onNewIntent(getIntent());
super.onCreate(savedInstanceState); initLocalLanguage();
setContentView(R.layout.invalid_setup_view); }
pluginController.getInstance().initializeWithAbiError();
pluginController.getInstance().MessageManagerHandler(this, Collections.singletonList(strings.EMPTY_STR),enums.etype.abi_error); private void initLocalLanguage() {
String lang = Resources.getSystem().getConfiguration().locale.getLanguage();
Locale locale = new Locale(lang);
Locale.setDefault(locale);
Configuration config = new Configuration();
if (Build.VERSION.SDK_INT >= 24) {
config.setLocale(locale);
getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
} else {
config.locale = locale;
getBaseContext().getApplicationContext().createConfigurationContext(config);
} }
} }
public void ignoreAbiError(){ @Override
protected void onNewIntent(Intent intent)
{
super.onNewIntent(intent);
Uri data = intent.getData();
if(data!=null){
status.sRedirectStatus = data.toString();
if(status.sIsAppStarted){
onLoadURL(status.sRedirectStatus);
}
}
} }
public void onClose(){ public void initLandingPage(){
mGeckoClient.onClose(); if(status.sFirstStart){
helperMethod.openActivity(landingController.class, constants.LIST_HISTORY, homeController.this,false);
status.sFirstStart = false;
dataController.getInstance().setBool(keys.FIRST_INSTALLED,false);
}
} }
public void initializeAppModel() public void initializeAppModel()
@ -172,7 +202,6 @@ public class homeController extends AppCompatActivity implements ComponentCallba
field.setAccessible(true); field.setAccessible(true);
method.invoke(field.get(null)); method.invoke(field.get(null));
} }
catch (Throwable e) { catch (Throwable e) {
e.printStackTrace(); e.printStackTrace();
@ -181,6 +210,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
public void initializeGeckoView(boolean isForced){ public void initializeGeckoView(boolean isForced){
mGeckoClient.initialize(mGeckoView, new geckoViewCallback(), this,isForced); mGeckoClient.initialize(mGeckoView, new geckoViewCallback(), this,isForced);
//mGeckoClient.loadURL("about:blank");
onSaveCurrentTab(mGeckoClient.getSession(),false); onSaveCurrentTab(mGeckoClient.getSession(),false);
mHomeViewController.initTab(dataController.getInstance().getTotalTabs()); mHomeViewController.initTab(dataController.getInstance().getTotalTabs());
} }
@ -224,7 +254,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
public void onLoadURL(String url){ public void onLoadURL(String url){
mHomeViewController.onClearSelections(true); mHomeViewController.onClearSelections(true);
mGeckoClient.loadURL(url.replace("genesis.onion","boogle.sts~>ore")); mGeckoClient.loadURL(url.replace("genesis.onion","boogle.store"));
} }
public void onLoadTab(geckoSession mTempSession,boolean isSessionClosed){ public void onLoadTab(geckoSession mTempSession,boolean isSessionClosed){
@ -232,18 +262,17 @@ public class homeController extends AppCompatActivity implements ComponentCallba
dataController.getInstance().moveTabToTop(mTempSession); dataController.getInstance().moveTabToTop(mTempSession);
} }
mHomeViewController.onUpdateSearchBar(mTempSession.getCurrentURL()); mGeckoView.releaseSession();
mGeckoClient.initSession(mTempSession);
mGeckoView.setSession(mTempSession);
mHomeViewController.onClearSelections(false);
mHomeViewController.onUpdateSearchBar(mTempSession.getCurrentURL(),false);
if(mTempSession.getProgress()>0 && mTempSession.getProgress()<100){ if(mTempSession.getProgress()>0 && mTempSession.getProgress()<100){
mHomeViewController.onProgressBarUpdate(mTempSession.getProgress()); mHomeViewController.onProgressBarUpdate(mTempSession.getProgress());
}else { }else {
mHomeViewController.progressBarReset(); mHomeViewController.progressBarReset();
} }
mGeckoView.releaseSession();
mGeckoView.setSession(mTempSession);
mGeckoClient.initSession(mTempSession);
mHomeViewController.onClearSelections(false);
} }
/*-------------------------------------------------------USER EVENTS-------------------------------------------------------*/ /*-------------------------------------------------------USER EVENTS-------------------------------------------------------*/
@ -310,7 +339,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
helperMethod.hideKeyboard(homeController.this); helperMethod.hideKeyboard(homeController.this);
status.sIsAppStarted = true; status.sIsAppStarted = true;
pluginController.getInstance().onResetMessage(); pluginController.getInstance().onResetMessage();
mHomeViewController.onUpdateSearchBar(mGeckoClient.getSession().getCurrentURL()); mHomeViewController.onUpdateSearchBar(mGeckoClient.getSession().getCurrentURL(),false);
} }
}); });
@ -332,12 +361,14 @@ public class homeController extends AppCompatActivity implements ComponentCallba
if(!hasFocus) if(!hasFocus)
{ {
if(!mGeckoClient.isLoading()){ if(!mGeckoClient.isLoading()){
mHomeViewController.onUpdateSearchBar(mGeckoClient.getSession().getCurrentURL()); mHomeViewController.onUpdateSearchBar(mGeckoClient.getSession().getCurrentURL(),false);
} }
if(isSuggestionChanged){ if(isSuggestionChanged){
isSuggestionChanged = false; isSuggestionChanged = false;
mHomeViewController.initializeSuggestionView(dataController.getInstance().getSuggestions()); mHomeViewController.initializeSuggestionView(dataController.getInstance().getSuggestions());
} }
}else {
mHomeViewController.onUpdateSearchBar(mGeckoClient.getSession().getCurrentURL(),true);
} }
}); });
pluginController.getInstance().logEvent(strings.APP_STARTED); pluginController.getInstance().logEvent(strings.APP_STARTED);
@ -351,14 +382,14 @@ public class homeController extends AppCompatActivity implements ComponentCallba
if(validated_url!=null){ if(validated_url!=null){
url = validated_url; url = validated_url;
} }
mHomeViewController.onUpdateSearchBar(url); mHomeViewController.onUpdateSearchBar(url,false);
onLoadURL(url); onLoadURL(url);
} }
public void onSuggestionInvoked(View view){ public void onSuggestionInvoked(View view){
String val = ((TextView)view.findViewById(R.id.hintCompletionUrl)).getText().toString(); String val = ((TextView)view.findViewById(R.id.hintCompletionUrl)).getText().toString();
mSearchbar.clearFocus(); mSearchbar.clearFocus();
mHomeViewController.onUpdateSearchBar(val); mHomeViewController.onUpdateSearchBar(val,false);
onLoadURL(val); onLoadURL(val);
} }
@ -388,13 +419,15 @@ public class homeController extends AppCompatActivity implements ComponentCallba
pluginController.getInstance().logEvent(strings.MENU_INVOKED); pluginController.getInstance().logEvent(strings.MENU_INVOKED);
status.sIsAppStarted = true; status.sIsAppStarted = true;
pluginController.getInstance().onResetMessage(); pluginController.getInstance().onResetMessage();
mHomeViewController.onOpenMenu(view,mGeckoClient.canGoBack(),mGeckoClient.canGoForward(),!(mProgressBar.getAlpha()<=0 || mProgressBar.getVisibility() ==View.INVISIBLE)); initLocalLanguage();
mHomeViewController.onOpenMenu(view,mGeckoClient.canGoBack(),mGeckoClient.canGoForward(),!(mProgressBar.getAlpha()<=0 || mProgressBar.getVisibility() ==View.INVISIBLE),mGeckoClient.getUserAgent());
} }
@Override @Override
public void onBackPressed(){ public void onBackPressed(){
pluginController.getInstance().logEvent(strings.ON_BACK); pluginController.getInstance().logEvent(strings.ON_BACK);
mGeckoView.clearFocus();
mSearchbar.clearFocus(); mSearchbar.clearFocus();
if(mGeckoClient.getFullScreenStatus()){ if(mGeckoClient.getFullScreenStatus()){
mGeckoClient.onBackPressed(true); mGeckoClient.onBackPressed(true);
@ -406,7 +439,6 @@ public class homeController extends AppCompatActivity implements ComponentCallba
} }
public void onSwitchSearch(View view){ public void onSwitchSearch(View view){
mHomeViewController.stopSearchButtonAnimation();
dataController.getInstance().setBool(keys.ENGINE_SWITCHED,true); dataController.getInstance().setBool(keys.ENGINE_SWITCHED,true);
pluginController.getInstance().logEvent(strings.SEARCH_SWITCH); pluginController.getInstance().logEvent(strings.SEARCH_SWITCH);
@ -475,7 +507,18 @@ public class homeController extends AppCompatActivity implements ComponentCallba
mHomeViewController.onSetBannerAdMargin(true,pluginController.getInstance().isAdvertLoaded()); mHomeViewController.onSetBannerAdMargin(true,pluginController.getInstance().isAdvertLoaded());
} }
} }
}
@Override
public void onPause(){
super.onPause();
if(mHomeViewController!=null){
mHomeViewController.closeMenu();
helperMethod.hideKeyboard(this);
}
mGeckoClient.onExitFullScreen();
pluginController.getInstance().onResetMessage();
} }
@Override @Override
@ -485,6 +528,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
if (mGeckoClient!=null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && mGeckoClient.getUriPermission()!=null) { if (mGeckoClient!=null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && mGeckoClient.getUriPermission()!=null) {
this.revokeUriPermission(mGeckoClient.getUriPermission(), Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION); this.revokeUriPermission(mGeckoClient.getUriPermission(), Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION);
} }
super.onResume(); super.onResume();
} }
@ -498,16 +542,6 @@ public class homeController extends AppCompatActivity implements ComponentCallba
} }
} }
@Override
public void onPause(){
super.onPause();
if(mHomeViewController!=null){
mHomeViewController.closeMenu();
helperMethod.hideKeyboard(this);
}
pluginController.getInstance().onResetMessage();
}
public void onSetBannerAdMargin(){ public void onSetBannerAdMargin(){
mHomeViewController.onSetBannerAdMargin(true,pluginController.getInstance().isAdvertLoaded()); mHomeViewController.onSetBannerAdMargin(true,pluginController.getInstance().isAdvertLoaded());
} }
@ -557,7 +591,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
initializeGeckoView(true); initializeGeckoView(true);
mHomeViewController.progressBarReset(); mHomeViewController.progressBarReset();
mHomeViewController.onNewTab(false,isKeyboardOpened); mHomeViewController.onNewTab(false,isKeyboardOpened);
mHomeViewController.onUpdateSearchBar(url); mHomeViewController.onUpdateSearchBar(url,false);
mGeckoClient.loadURL(url); mGeckoClient.loadURL(url);
} }
@ -633,7 +667,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
} }
else if (menuId == R.id.menu5) else if (menuId == R.id.menu5)
{ {
pluginController.getInstance().MessageManagerHandler(homeController.this, Collections.singletonList(mSearchbar.getText().toString()),enums.etype.bookmark); pluginController.getInstance().MessageManagerHandler(homeController.this, Collections.singletonList(mGeckoClient.getSession().getCurrentURL()),enums.etype.bookmark);
} }
else if (menuId == R.id.menu4) else if (menuId == R.id.menu4)
{ {
@ -668,6 +702,10 @@ public class homeController extends AppCompatActivity implements ComponentCallba
if (menuId == R.id.menu24) { if (menuId == R.id.menu24) {
onHomeButton(view); onHomeButton(view);
} }
if (menuId == R.id.menu26 || menuId == R.id.menu27 || menuId == R.id.menu28) {
mGeckoClient.toogleUserAgent();
mGeckoClient.onReload();
}
} }
mHomeViewController.closeMenu(); mHomeViewController.closeMenu();
} }
@ -724,7 +762,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
mHomeViewController.onProgressBarUpdate((int)data.get(0)); mHomeViewController.onProgressBarUpdate((int)data.get(0));
} }
else if(e_type.equals(enums.etype.on_url_load)){ else if(e_type.equals(enums.etype.on_url_load)){
mHomeViewController.onUpdateSearchBar(dataToStr(data.get(0),mSearchbar.getText().toString())); mHomeViewController.onUpdateSearchBar(dataToStr(data.get(0),mGeckoClient.getSession().getCurrentURL()),false);
} }
else if(e_type.equals(enums.etype.back_list_empty)){ else if(e_type.equals(enums.etype.back_list_empty)){
if(dataController.getInstance().getTotalTabs()>1){ if(dataController.getInstance().getTotalTabs()>1){
@ -739,6 +777,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
pluginController.getInstance().setProxy(dataToStr(data.get(0))); pluginController.getInstance().setProxy(dataToStr(data.get(0)));
} }
else if(e_type.equals(enums.etype.on_request_completed)){ else if(e_type.equals(enums.etype.on_request_completed)){
Log.i("RUQUEST_SEND","REQUREST_SEND"+data.get(0));
dataController.getInstance().addHistory(data.get(0).toString(),data.get(2).toString()); dataController.getInstance().addHistory(data.get(0).toString(),data.get(2).toString());
} }
else if(e_type.equals(enums.etype.on_update_suggestion)){ else if(e_type.equals(enums.etype.on_update_suggestion)){
@ -759,7 +798,12 @@ public class homeController extends AppCompatActivity implements ComponentCallba
}; };
handler.postDelayed(runnable, 1300); handler.postDelayed(runnable, 1300);
}else { }else {
pluginController.getInstance().initializeBannerAds(); final Handler handler = new Handler();
Runnable runnable = () ->
{
pluginController.getInstance().initializeBannerAds();
};
handler.postDelayed(runnable, 2000);
} }
} }
else if(e_type.equals(enums.etype.rate_application)){ else if(e_type.equals(enums.etype.rate_application)){
@ -770,11 +814,12 @@ public class homeController extends AppCompatActivity implements ComponentCallba
} }
} }
else if(e_type.equals(enums.etype.on_load_error)){ else if(e_type.equals(enums.etype.on_load_error)){
initLocalLanguage();
mHomeViewController.onPageFinished(); mHomeViewController.onPageFinished();
mHomeViewController.onUpdateSearchBar(dataToStr(data.get(0),mSearchbar.getText().toString())); mHomeViewController.onUpdateSearchBar(dataToStr(data.get(0),mGeckoClient.getSession().getCurrentURL()),false);
} }
else if(e_type.equals(enums.etype.search_update)){ else if(e_type.equals(enums.etype.search_update)){
mHomeViewController.onUpdateSearchBar(dataToStr(data.get(0),mSearchbar.getText().toString())); mHomeViewController.onUpdateSearchBar(dataToStr(data.get(0),mGeckoClient.getSession().getCurrentURL()),false);
} }
else if(e_type.equals(enums.etype.download_file_popup)){ else if(e_type.equals(enums.etype.download_file_popup)){
pluginController.getInstance().MessageManagerHandler(homeController.this,Collections.singletonList(dataToStr(data.get(0))),enums.etype.download_file); pluginController.getInstance().MessageManagerHandler(homeController.this,Collections.singletonList(dataToStr(data.get(0))),enums.etype.download_file);

View File

@ -2,6 +2,7 @@ package com.darkweb.genesissearchengine.appManager.homeManager;
import android.animation.Animator; import android.animation.Animator;
import android.animation.AnimatorListenerAdapter; import android.animation.AnimatorListenerAdapter;
import android.animation.LayoutTransition;
import android.animation.ObjectAnimator; import android.animation.ObjectAnimator;
import android.animation.ValueAnimator; import android.animation.ValueAnimator;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
@ -14,6 +15,7 @@ import android.graphics.drawable.Drawable;
import android.os.Build; import android.os.Build;
import android.os.Handler; import android.os.Handler;
import android.os.Message; import android.os.Message;
import android.transition.Explode;
import android.util.Log; import android.util.Log;
import android.util.TypedValue; import android.util.TypedValue;
import android.view.Gravity; import android.view.Gravity;
@ -23,7 +25,9 @@ import android.view.ViewGroup;
import android.view.ViewOutlineProvider; import android.view.ViewOutlineProvider;
import android.view.Window; import android.view.Window;
import android.view.WindowManager; import android.view.WindowManager;
import android.view.animation.Animation;
import android.view.animation.DecelerateInterpolator; import android.view.animation.DecelerateInterpolator;
import android.view.animation.ScaleAnimation;
import android.view.inputmethod.EditorInfo; import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.InputMethodManager;
import android.widget.*; import android.widget.*;
@ -51,6 +55,7 @@ import java.util.Objects;
import java.util.concurrent.Callable; import java.util.concurrent.Callable;
import static android.content.Context.LAYOUT_INFLATER_SERVICE; import static android.content.Context.LAYOUT_INFLATER_SERVICE;
import static androidx.appcompat.widget.ListPopupWindow.WRAP_CONTENT; import static androidx.appcompat.widget.ListPopupWindow.WRAP_CONTENT;
import static org.mozilla.geckoview.GeckoSessionSettings.USER_AGENT_MODE_DESKTOP;
class homeViewController class homeViewController
{ {
@ -108,11 +113,6 @@ class homeViewController
initLock(); initLock();
initSearchImage(); initSearchImage();
createUpdateUiHandler(); createUpdateUiHandler();
initSearchButtonAnimation(is_triggered);
initTopBar();
}
private void initTopBar(){
} }
private void initSearchImage(){ private void initSearchImage(){
@ -139,33 +139,12 @@ class homeViewController
.playOn(mNewTab); .playOn(mNewTab);
} }
private void initSearchButtonAnimation(boolean is_triggered){
if(!is_triggered){
//mEngineAnimator = ValueAnimator.ofFloat(0.3f, 1);
//mEngineAnimator.addUpdateListener(animation -> mSwitchEngineBack.setAlpha((Float) animation.getAnimatedValue()));
//mEngineAnimator.setDuration(1000);
//mEngineAnimator.setRepeatCount(ValueAnimator.INFINITE);
//mEngineAnimator.setRepeatMode(ValueAnimator.REVERSE);
//mEngineAnimator.start();
}
}
void stopSearchButtonAnimation(){
if(mEngineAnimator !=null){
//mEngineAnimator.end();
//TypedValue outValue = new TypedValue();
//mContext.getTheme().resolveAttribute(android.R.attr.selectableItemBackgroundBorderless, outValue, true);
//mEngineLogo.setBackgroundResource(outValue.resourceId);
//mEngineAnimator = null;
}
}
private void initPostUI(boolean isSplash){ private void initPostUI(boolean isSplash){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Window window = mContext.getWindow(); Window window = mContext.getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
if(isSplash){ if(isSplash){
window.setStatusBarColor(mContext.getResources().getColor(R.color.ease_blue)); window.setStatusBarColor(mContext.getResources().getColor(R.color.landing_ease_blue));
} }
else{ else{
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) { if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) {
@ -178,15 +157,14 @@ class homeViewController
} }
} }
@RequiresApi(api = Build.VERSION_CODES.M) @RequiresApi(api = Build.VERSION_CODES.M)
private void initStatusBarColor() { private void initStatusBarColor() {
animatedColor oneToTwo = new animatedColor(ContextCompat.getColor(mContext, R.color.ease_blue), ContextCompat.getColor(mContext, R.color.black_blue)); animatedColor oneToTwo = new animatedColor(ContextCompat.getColor(mContext, R.color.landing_ease_blue), ContextCompat.getColor(mContext, R.color.landing_ease_blue_light_1));
animatedColor twoToThree = new animatedColor(ContextCompat.getColor(mContext, R.color.ease_blue), ContextCompat.getColor(mContext, R.color.ease_blue_light)); animatedColor twoToThree = new animatedColor(ContextCompat.getColor(mContext, R.color.landing_ease_blue_light_1), ContextCompat.getColor(mContext, R.color.white));
animatedColor ThreeToFour = new animatedColor(ContextCompat.getColor(mContext, R.color.ease_blue_light), ContextCompat.getColor(mContext, R.color.white)); animatedColor ThreeToFour = new animatedColor(ContextCompat.getColor(mContext, R.color.white), ContextCompat.getColor(mContext, R.color.white));
ValueAnimator animator = ObjectAnimator.ofFloat(0f, 1f).setDuration(0); ValueAnimator animator = ObjectAnimator.ofFloat(0f, 1f).setDuration(0);
animator.setStartDelay(600);
animator.addUpdateListener(animation -> animator.addUpdateListener(animation ->
{ {
float v = (float) animation.getAnimatedValue(); float v = (float) animation.getAnimatedValue();
@ -225,13 +203,12 @@ class homeViewController
} }
}); });
animator.start(); animator.start();
} }
private void initLock(){ private void initLock(){
Drawable img = mContext.getResources().getDrawable( R.drawable.icon_lock); Drawable img = mContext.getResources().getDrawable( R.drawable.icon_lock);
mSearchbar.measure(0, 0); mSearchbar.measure(0, 0);
img.setBounds( 0, (int)(mSearchbar.getMeasuredHeight()*0.00), (int)(mSearchbar.getMeasuredHeight()*1.10), (int)(mSearchbar.getMeasuredHeight()*0.69) ); img.setBounds( -10, (int)(mSearchbar.getMeasuredHeight()*0.00), (int)(mSearchbar.getMeasuredHeight()*1.10)-10, (int)(mSearchbar.getMeasuredHeight()*0.69) );
mSearchbar.setCompoundDrawables( img, null, null, null ); mSearchbar.setCompoundDrawables( img, null, null, null );
} }
@ -294,6 +271,8 @@ class homeViewController
View root = mSearchbar.getRootView(); View root = mSearchbar.getRootView();
root.setBackgroundColor(ContextCompat.getColor(mContext, R.color.dark_purple)); root.setBackgroundColor(ContextCompat.getColor(mContext, R.color.dark_purple));
mGeckoView.setBackgroundResource( R.color.dark_purple);
} }
void initProxyLoading(Callable<String> logs){ void initProxyLoading(Callable<String> logs){
@ -303,7 +282,7 @@ class homeViewController
new Thread(){ new Thread(){
public void run(){ public void run(){
AppCompatActivity temp_context = mContext; AppCompatActivity temp_context = mContext;
while (!orbotLocalConstants.sIsTorInitialized){ while (!orbotLocalConstants.sIsTorInitialized || !orbotLocalConstants.sNetworkState){
try try
{ {
sleep(1000); sleep(1000);
@ -329,7 +308,7 @@ class homeViewController
void onPageFinished(){ void onPageFinished(){
mSearchbar.setEnabled(true); mSearchbar.setEnabled(true);
mProgressBar.bringToFront(); mProgressBar.bringToFront();
mSplashScreen.bringToFront();
if(mSplashScreen.getVisibility()!=View.GONE){ if(mSplashScreen.getVisibility()!=View.GONE){
mContext.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_USER);//Set Portrait mContext.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_USER);//Set Portrait
} }
@ -340,15 +319,22 @@ class homeViewController
if(mSplashScreen.getAlpha()>=1) if(mSplashScreen.getAlpha()>=1)
{ {
disableSplash = true; disableSplash = true;
mSplashScreen.animate().setDuration(300).alpha(0).withEndAction((() -> mSplashScreen.setVisibility(View.GONE))); mSplashScreen.animate().setDuration(300).setStartDelay(500).alpha(0).withEndAction((() -> triggerPostUI()));
mProgressBar.animate().setStartDelay(250).alpha(1);
initPostUI(false); initPostUI(false);
} }
} }
private void triggerPostUI(){
mSplashScreen.setVisibility(View.GONE);
if(mProgressBar.getProgress()>0 && mProgressBar.getProgress()<10000){
mProgressBar.animate().setStartDelay(0).alpha(1);
}
}
/*-------------------------------------------------------Helper Methods-------------------------------------------------------*/ /*-------------------------------------------------------Helper Methods-------------------------------------------------------*/
void onOpenMenu(View view,boolean canGoForward,boolean canGoBack,boolean isLoading){ void onOpenMenu(View view,boolean canGoForward,boolean canGoBack,boolean isLoading,int userAgent){
if(popupWindow!=null){ if(popupWindow!=null){
popupWindow.dismiss(); popupWindow.dismiss();
@ -383,6 +369,8 @@ class homeViewController
ImageButton back = popupView.findViewById(R.id.menu22); ImageButton back = popupView.findViewById(R.id.menu22);
ImageButton forward = popupView.findViewById(R.id.menu23); ImageButton forward = popupView.findViewById(R.id.menu23);
ImageButton close = popupView.findViewById(R.id.menu20); ImageButton close = popupView.findViewById(R.id.menu20);
CheckBox desktop = popupView.findViewById(R.id.menu27);
desktop.setChecked(userAgent==USER_AGENT_MODE_DESKTOP);
if(!canGoForward){ if(!canGoForward){
forward.setColorFilter(Color.argb(255, 191, 191, 191)); forward.setColorFilter(Color.argb(255, 191, 191, 191));
@ -452,9 +440,16 @@ class homeViewController
void onSetBannerAdMargin(boolean status,boolean isAdLoaded){ void onSetBannerAdMargin(boolean status,boolean isAdLoaded){
if(isAdLoaded){ if(isAdLoaded){
if(status && !isLandscape){ if(status && !isLandscape){
mWebviewContainer.setPadding(0,AdSize.SMART_BANNER.getHeightInPixels(mContext),0,0);
mBannerAds.setVisibility(View.VISIBLE); mBannerAds.setVisibility(View.VISIBLE);
mBannerAds.animate().setDuration(500).alpha(1f); mBannerAds.setAlpha(1f);
final Handler handler = new Handler();
handler.postDelayed(() ->
{
mWebviewContainer.clearAnimation();
mWebviewContainer.setPadding(0,AdSize.SMART_BANNER.getHeightInPixels(mContext)+1,0,0);
mProgressBar.bringToFront();
}, 250);
}else{ }else{
mWebviewContainer.setPadding(0,0,0,0); mWebviewContainer.setPadding(0,0,0,0);
mBannerAds.setVisibility(View.GONE); mBannerAds.setVisibility(View.GONE);
@ -462,13 +457,37 @@ class homeViewController
} }
} }
void onUpdateSearchBar(String url){ private Handler searchBarUpdateHandler = new Handler();
private String handlerLocalUrl = "";
void onUpdateSearchBar(String url,boolean showProtocol){
int delay = 50;
handlerLocalUrl = url;
if (mSearchbar == null || mSearchbar.isFocused() || url==null) if(searchBarUpdateHandler.hasMessages(100)){
delay=0;
return;
}
searchBarUpdateHandler.sendEmptyMessage(100);
searchBarUpdateHandler.postDelayed(() ->
{
searchBarUpdateHandler.removeMessages(100);
triggerUpdateSearchBar(handlerLocalUrl,showProtocol);
}, delay);
}
private void triggerUpdateSearchBar(String url, boolean showProtocol){
if (mSearchbar == null || url==null)
{ {
return; return;
} }
if(!showProtocol){
url=url.replace("https://","");
url=url.replace("http://","");
}
url = url.replace("boogle.store","genesis.onion"); url = url.replace("boogle.store","genesis.onion");
boolean isTextSelected = false; boolean isTextSelected = false;
@ -476,7 +495,9 @@ class homeViewController
isTextSelected = true; isTextSelected = true;
} }
if(url.length()<=300){ if(url.length()<=300){
url = removeEndingSlash(url);
mSearchbar.setText(helperMethod.urlDesigner(url)); mSearchbar.setText(helperMethod.urlDesigner(url));
mSearchbar.selectAll(); mSearchbar.selectAll();
@ -485,11 +506,23 @@ class homeViewController
} }
mSearchbar.setSelection(0); mSearchbar.setSelection(0);
}else {
url = removeEndingSlash(url);
mSearchbar.setText(url);
}
if(mSearchbar.isFocused()){
mSearchbar.setSelection(mSearchbar.getText().length());
mSearchbar.selectAll();
} }
} }
private String removeEndingSlash(String url){
return helperMethod.removeLastSlash(url);
}
void onNewTab(boolean keyboard,boolean isKeyboardOpen){ void onNewTab(boolean keyboard,boolean isKeyboardOpen){
mSearchbar.setText(strings.BLANK_PAGE); onUpdateSearchBar(strings.BLANK_PAGE,false);
if(keyboard){ if(keyboard){
if(!isKeyboardOpen){ if(!isKeyboardOpen){
@ -512,8 +545,10 @@ class homeViewController
mProgressBar.setProgress(5); mProgressBar.setProgress(5);
mProgressBar.setVisibility(View.INVISIBLE); mProgressBar.setVisibility(View.INVISIBLE);
} }
void onProgressBarUpdate(int value){ void onProgressBarUpdate(int value){
if(mSplashScreen.getAlpha()>0){
mProgressBar.setProgress(value*100);
}
if(value==100){ if(value==100){
mProgressBar.setAlpha(1f); mProgressBar.setAlpha(1f);
mProgressBar.animate().setStartDelay(200).alpha(0); mProgressBar.animate().setStartDelay(200).alpha(0);
@ -641,7 +676,11 @@ class homeViewController
{ {
if(msg.what == messages.ON_URL_LOAD) if(msg.what == messages.ON_URL_LOAD)
{ {
mEvent.invokeObserver(Collections.singletonList(status.sSearchStatus), enums.etype.on_url_load); if(status.sRedirectStatus.equals(strings.EMPTY_STR)){
mEvent.invokeObserver(Collections.singletonList(status.sSearchStatus), enums.etype.on_url_load);
}else {
mEvent.invokeObserver(Collections.singletonList(status.sRedirectStatus), enums.etype.on_url_load);
}
} }
if(msg.what == messages.UPDATE_LOADING_TEXT) if(msg.what == messages.UPDATE_LOADING_TEXT)
{ {

View File

@ -0,0 +1,82 @@
package com.darkweb.genesissearchengine.appManager.landingManager;
import android.os.Bundle;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import com.example.myapplication.R;
public class CustomSlideBigText extends Fragment {
private static final String ARG_LAYOUT_RES_ID = "layoutResId";
private int layoutResId;
private String mTitle;
private String mButtonText;
private String mSubTitle;
private View.OnClickListener mButtonListener;
public static CustomSlideBigText newInstance(int layoutResId) {
CustomSlideBigText sampleSlide = new CustomSlideBigText();
Bundle args = new Bundle();
args.putInt(ARG_LAYOUT_RES_ID, layoutResId);
sampleSlide.setArguments(args);
return sampleSlide;
}
public void setTitle (String title)
{
mTitle = title;
}
public void setSubTitle(String subTitle) { mSubTitle = subTitle; }
public void showButton (String buttonText, View.OnClickListener buttonListener)
{
mButtonText = buttonText;
mButtonListener = buttonListener;
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null && getArguments().containsKey(ARG_LAYOUT_RES_ID)) {
layoutResId = getArguments().getInt(ARG_LAYOUT_RES_ID);
}
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
View view = inflater.inflate(layoutResId, container, false);
((TextView)view.findViewById(R.id.custom_slide_big_text)).setText(mTitle);
if (!TextUtils.isEmpty(mSubTitle)) {
TextView tv =
(TextView)view.findViewById(R.id.custom_slide_big_text_sub);
tv.setText(mSubTitle);
tv.setVisibility(View.VISIBLE);
}
if (mButtonText != null)
{
Button button = (Button)view.findViewById(R.id.custom_slide_button);
button.setVisibility(View.VISIBLE);
button.setText(mButtonText);
button.setOnClickListener(mButtonListener);
}
return view;
}
}

View File

@ -0,0 +1,66 @@
package com.darkweb.genesissearchengine.appManager.landingManager;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import android.view.View;
import com.darkweb.genesissearchengine.appManager.bridgeManager.bridgeController;
import com.example.myapplication.R;
import com.github.paolorotolo.appintro.AppIntro;
public class landingController extends AppIntro {
private landingViewController mLauncherViewController;
@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.custom_slide_big_text);
welcome.setTitle(getString(R.string.hello));
welcome.setSubTitle(getString(R.string.welcome));
addSlide(welcome);
CustomSlideBigText intro2 = CustomSlideBigText.newInstance(R.layout.custom_slide_big_text);
intro2.setTitle(getString(R.string.browser_the_internet));
intro2.setSubTitle(getString(R.string.no_tracking));
addSlide(intro2);
CustomSlideBigText cs2 = CustomSlideBigText.newInstance(R.layout.custom_slide_big_text);
cs2.setTitle(getString(R.string.bridges_sometimes));
cs2.showButton(getString(R.string.action_more), new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(landingController.this,bridgeController.class));
}
});
addSlide(cs2);
// OPTIONAL METHODS
// Override bar/separator color.
setBarColor(getResources().getColor(R.color.landing_ease_blue));
setSeparatorColor(getResources().getColor(R.color.panel_background_main));
// Hide Skip/Done button.
showSkipButton(false);
setProgressButtonEnabled(true);
initConnections();
}
private void initConnections(){
mLauncherViewController = new landingViewController(this,null);
}
@Override
public void onDonePressed(Fragment currentFragment) {
super.onDonePressed(currentFragment);
finish();
}
}

View File

@ -0,0 +1,93 @@
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.Window;
import android.view.WindowManager;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.ContextCompat;
import com.darkweb.genesissearchengine.helperManager.animatedColor;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.example.myapplication.R;
class landingViewController
{
/*Private Variables*/
private AppCompatActivity mContext;
/*Initializations*/
landingViewController(AppCompatActivity mContext, eventObserver.eventListener event){
this.mContext = mContext;
initPostUI();
}
private void initPostUI(){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Window window = mContext.getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) {
window.setStatusBarColor(mContext.getResources().getColor(R.color.landing_ease_blue));
}
else {
initStatusBarColor();
}
}
}
@RequiresApi(api = Build.VERSION_CODES.M)
private void initStatusBarColor() {
animatedColor oneToTwo = new animatedColor(ContextCompat.getColor(mContext, R.color.landing_ease_blue), ContextCompat.getColor(mContext, R.color.landing_ease_blue));
animatedColor twoToThree = new animatedColor(ContextCompat.getColor(mContext, R.color.landing_ease_blue), ContextCompat.getColor(mContext, R.color.landing_ease_blue));
animatedColor ThreeToFour = new animatedColor(ContextCompat.getColor(mContext, R.color.landing_ease_blue), ContextCompat.getColor(mContext, R.color.landing_ease_blue));
ValueAnimator animator = ObjectAnimator.ofFloat(0f, 1f).setDuration(0);
animator.addUpdateListener(animation ->
{
float v = (float) animation.getAnimatedValue();
mContext.getWindow().setStatusBarColor(oneToTwo.with(v));
mContext.getWindow().setStatusBarColor(oneToTwo.with(v));
});
animator.start();
animator.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
final ValueAnimator animator2 = ObjectAnimator.ofFloat(0f, 1f).setDuration(217);
animator2.addUpdateListener(animation1 ->
{
float v = (float) animation1.getAnimatedValue();
mContext.getWindow().setStatusBarColor(twoToThree.with(v));
});
animator2.start();
animator2.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
final ValueAnimator animator3 = ObjectAnimator.ofFloat(0f, 1f).setDuration(0);
animator3.addUpdateListener(animation1 ->
{
float v = (float) animation1.getAnimatedValue();
mContext.getWindow().setStatusBarColor(ThreeToFour.with(v));
});
animator3.start();
}
});
animator2.start();
}
});
animator.start();
}
}

View File

@ -0,0 +1,15 @@
package com.darkweb.genesissearchengine.appManager.landingManager;
public class viewPagerModel
{
private int image_drawable;
public int getImage_drawable() {
return image_drawable;
}
public void setImage_drawable(int image_drawable) {
this.image_drawable = image_drawable;
}
}

View File

@ -1,15 +1,25 @@
package com.darkweb.genesissearchengine.appManager.orbotManager; package com.darkweb.genesissearchengine.appManager.orbotManager;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler;
import android.view.View; import android.view.View;
import android.widget.Switch; import android.widget.Switch;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import com.darkweb.genesissearchengine.appManager.activityContextManager; import com.darkweb.genesissearchengine.appManager.activityContextManager;
import com.darkweb.genesissearchengine.appManager.bridgeManager.bridgeController;
import com.darkweb.genesissearchengine.appManager.homeManager.homeController;
import com.darkweb.genesissearchengine.constants.constants;
import com.darkweb.genesissearchengine.constants.enums;
import com.darkweb.genesissearchengine.constants.keys; import com.darkweb.genesissearchengine.constants.keys;
import com.darkweb.genesissearchengine.constants.status; import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.constants.strings;
import com.darkweb.genesissearchengine.dataManager.dataController; import com.darkweb.genesissearchengine.dataManager.dataController;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.darkweb.genesissearchengine.pluginManager.pluginController;
import com.example.myapplication.R; import com.example.myapplication.R;
import java.util.Collections;
public class orbotController extends AppCompatActivity { public class orbotController extends AppCompatActivity {
private Switch mBridgeSwitch; private Switch mBridgeSwitch;
@ -28,6 +38,7 @@ public class orbotController extends AppCompatActivity {
public void onResume() public void onResume()
{ {
activityContextManager.getInstance().setCurrentActivity(this); activityContextManager.getInstance().setCurrentActivity(this);
mOrbotViewController.initViews();
super.onResume(); super.onResume();
} }
@ -54,11 +65,18 @@ public class orbotController extends AppCompatActivity {
public void listenersInitializations() { public void listenersInitializations() {
mBridgeSwitch.setOnCheckedChangeListener((buttonView, isChecked) -> mBridgeSwitch.setOnClickListener(view ->
{ {
status.sGateway = isChecked; Switch switch_view = (Switch)view;
dataController.getInstance().setBool(keys.GATEWAY,isChecked); switch_view.setChecked(!switch_view.isChecked());
helperMethod.openActivity(bridgeController.class, constants.LIST_HISTORY, orbotController.this,true);
}); });
} }
public void onClearCache(View view){
helperMethod.clearAppData(this);
((Switch)view).setChecked(false);
}
} }

View File

@ -46,8 +46,8 @@ class orbotViewController
} }
private void initViews(){ public void initViews(){
mBridgeSwitch.setChecked(status.sGateway); mBridgeSwitch.setChecked(status.sGatewayAuto || status.sGatewayManual);
} }

View File

@ -124,7 +124,7 @@ public class tabAdapter extends RecyclerView.Adapter<tabAdapter.listViewHolder>
descriptionText = itemView.findViewById(R.id.mDescription); descriptionText = itemView.findViewById(R.id.mDescription);
itemContainer = itemView.findViewById(R.id.item_container); itemContainer = itemView.findViewById(R.id.item_container);
if(model.getSession().getTitle().equals("")){ if(model.getSession().getTitle().equals("") || model.getSession().getTitle().equals("loading")){
heaaderText.setText(helperMethod.getDomainName(model.getSession().getCurrentURL())); heaaderText.setText(helperMethod.getDomainName(model.getSession().getCurrentURL()));
} }
else { else {

View File

@ -1,6 +1,7 @@
package com.darkweb.genesissearchengine.appManager.tabManager; package com.darkweb.genesissearchengine.appManager.tabManager;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler;
import android.text.Editable; import android.text.Editable;
import android.text.TextWatcher; import android.text.TextWatcher;
import android.view.View; import android.view.View;
@ -23,6 +24,8 @@ import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.darkweb.genesissearchengine.pluginManager.pluginController; import com.darkweb.genesissearchengine.pluginManager.pluginController;
import com.example.myapplication.R; import com.example.myapplication.R;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
@ -68,7 +71,7 @@ public class tabController extends AppCompatActivity
mListView = findViewById(R.id.listview); mListView = findViewById(R.id.listview);
mClearButton = findViewById(R.id.clearButton); mClearButton = findViewById(R.id.clearButton);
mtabViewController = new tabViewController(mEmptyListNotifier, mListView, mClearButton,this); mtabViewController = new tabViewController(mEmptyListNotifier, mListView, mClearButton,this);
mClearButton.setText(strings.CLEAR_TABS); mClearButton.setText(R.string.tab_view_clear_tab);
} }
public void initializeList(){ public void initializeList(){
tabAdapter adapter = new tabAdapter(mListModel.getList(),new adapterCallback()); tabAdapter adapter = new tabAdapter(mListModel.getList(),new adapterCallback());
@ -186,7 +189,7 @@ public class tabController extends AppCompatActivity
tabRowModel model = (tabRowModel)data.get(0); tabRowModel model = (tabRowModel)data.get(0);
pluginController.getInstance().logEvent(strings.TAB_TRIGGERED); pluginController.getInstance().logEvent(strings.TAB_TRIGGERED);
mHomeController.onLoadTab(model.getSession(),false); mHomeController.onLoadTab(model.getSession(),false);
finish(); tabController.this.finish();
} }
else if(e_type.equals(enums.etype.url_clear)){ else if(e_type.equals(enums.etype.url_clear)){
mListModel.onManualClear((int)data.get(0)); mListModel.onManualClear((int)data.get(0));

View File

@ -20,7 +20,7 @@ class tabModel
} }
private void removeFromMainList(int index) private void removeFromMainList(int index)
{ {
if(mModelList.size()>0){ if(mModelList.size()>index){
mModelList.remove(index); mModelList.remove(index);
} }
} }

View File

@ -27,6 +27,7 @@ public class constants
public static final boolean PROXY_MEMORY = true; public static final boolean PROXY_MEMORY = true;
public static final int DISK_CAPACITY = 10000; public static final int DISK_CAPACITY = 10000;
public static final String PROXY_USER_AGENT_OVERRIDE = "Mozilla/5.0 (Android 9; Mobile; rv:67.0) Gecko/67.0 Firefox/67.0"; public static final String PROXY_USER_AGENT_OVERRIDE = "Mozilla/5.0 (Android 9; Mobile; rv:67.0) Gecko/67.0 Firefox/67.0";
public static final String PROXY_USER_AGENT_OVERRIDE_DESKTOP = "Mozilla/5.0 (X11; Linux x86_64:68.0) Gecko/20100101 Firefox/68.0";
public static final boolean PROXY_DO_NOT_TRACK_HEADER_ENABLED = false; public static final boolean PROXY_DO_NOT_TRACK_HEADER_ENABLED = false;
public static final int PROXY_DO_NOT_TRACK_HEADER_VALUE = 1; public static final int PROXY_DO_NOT_TRACK_HEADER_VALUE = 1;

View File

@ -10,6 +10,6 @@ public class enums
welcome,abi_error,rate_success,reported_success,bookmark, clear_tab,clear_history,clear_bookmark,report_url,rate_app,version_warning,start_orbot,download_file,download_file_long_press,tor_banned,on_long_press_url, welcome,abi_error,rate_success,reported_success,bookmark, clear_tab,clear_history,clear_bookmark,report_url,rate_app,version_warning,start_orbot,download_file,download_file_long_press,tor_banned,on_long_press_url,
cancel_welcome,ignore_abi,reload,connect_vpn,start_home,disable_splash,app_rated,download_file_manual,download_folder, update_searcn, update_javascript,update_notification, update_history,update_cookies, update_font_size,update_font_adjustable,close_view,open_link_new_tab,open_link_current_tab,copy_link, cancel_welcome,ignore_abi,reload,connect_vpn,start_home,disable_splash,app_rated,download_file_manual,download_folder, update_searcn, update_javascript,update_notification, update_history,update_cookies, update_font_size,update_font_adjustable,close_view,open_link_new_tab,open_link_current_tab,copy_link,
url_triggered,url_clear,clear_recycler,url_clear_at,remove_from_database,is_empty,load_more, url_triggered,url_clear,clear_recycler,url_clear_at,remove_from_database,is_empty,load_more,
on_close_sesson,on_long_press,on_long_press_with_link,on_full_screen,on_error_cert,on_handle_external_intent,on_update_suggestion_url,progress_update,recheck_orbot,on_url_load,on_playstore_load,back_list_empty,redraw,start_proxy,start_proxy_back,start_proxy_forward,onMenuSelected,on_request_completed,on_update_suggestion,on_page_loaded,on_load_error,update_tab_title,download_file_popup,proxy_error,on_init_ads,rate_application,search_update, open_new_tab on_close_sesson,on_long_press,on_long_press_with_link,on_reset_app,on_bridge_mail,on_not_support,on_full_screen,on_error_cert,on_handle_external_intent,on_update_suggestion_url,progress_update,recheck_orbot,on_url_load,on_playstore_load,back_list_empty,redraw,start_proxy,start_proxy_back,start_proxy_forward,onMenuSelected,on_request_completed,on_update_suggestion,on_page_loaded,on_load_error,update_tab_title,download_file_popup,proxy_error,on_init_ads,rate_application,search_update, open_new_tab
} }
} }

View File

@ -25,10 +25,13 @@ public class keys
/*Settings*/ /*Settings*/
public static final String LANGUAGE = "LANGUAGE";
public static final String SEARCH_ENGINE = "SEARCH_ENGINE"; public static final String SEARCH_ENGINE = "SEARCH_ENGINE";
public static final String FIRST_INSTALLED = "FIRST_INSTALLED";
public static final String JAVA_SCRIPT = "JAVA_SCRIPT"; public static final String JAVA_SCRIPT = "JAVA_SCRIPT";
public static final String HISTORY_CLEAR = "HISTORY_CLEAR"; public static final String HISTORY_CLEAR = "HISTORY_CLEAR";
public static final String GATEWAY = "pref_bridges_enabled"; public static final String GATEWAY_AUTO = "pref_bridges_enabled_auto";
public static final String GATEWAY_MANUAL = "pref_bridges_enabled_manual";
public static final String IS_BOOTSTRAPPED = "IS_BOOTSTRAPPED"; public static final String IS_BOOTSTRAPPED = "IS_BOOTSTRAPPED";
public static final String IS_WELCOME_ENABLED = "IS_WELCOME_ENABLED"; public static final String IS_WELCOME_ENABLED = "IS_WELCOME_ENABLED";
public static final String ENGINE_SWITCHED = "ENGINE_SWITCHED"; public static final String ENGINE_SWITCHED = "ENGINE_SWITCHED";
@ -38,4 +41,7 @@ public class keys
public static final String CLEAR_PREFS = "CLEAR_PREFS"; public static final String CLEAR_PREFS = "CLEAR_PREFS";
public static final String NOTIFICATION_STATUS = "NOTIFICATION_STATUS"; public static final String NOTIFICATION_STATUS = "NOTIFICATION_STATUS";
/*Bridge Settings*/
public static final String CUSTOM_BRIDGE_1 = "CLEAR_PREFS";
} }

View File

@ -13,28 +13,42 @@ public class status
/*Settings Status*/ /*Settings Status*/
public static String sSearchStatus = constants.BACKEND_GENESIS_URL; public static String sSearchStatus = constants.BACKEND_GENESIS_URL;
public static String sRedirectStatus = strings.EMPTY_STR;
public static boolean sJavaStatus = true; public static boolean sJavaStatus = true;
public static boolean sHistoryStatus = true; public static boolean sHistoryStatus = true;
public static boolean sGateway = false;
public static boolean sIsAppPaused = false; public static boolean sIsAppPaused = false;
public static boolean sIsWelcomeEnabled = true; public static boolean sIsWelcomeEnabled = true;
public static boolean sIsAppStarted = false; public static boolean sIsAppStarted = false;
public static boolean sIsAppRated = false; public static boolean sIsAppRated = false;
public static boolean sFontAdjustable = true; public static boolean sFontAdjustable = true;
public static boolean sFirstStart = true;
public static boolean sDesktopSite = false;
public static int sCookieStatus = ACCEPT_FIRST_PARTY; public static int sCookieStatus = ACCEPT_FIRST_PARTY;
public static float sFontSize = 1; public static float sFontSize = 1;
public static String sLanguage = "ru";
/*Bridge Status*/
public static boolean sGatewayAuto = false;
public static boolean sGatewayManual = false;
public static String sCustomBridge = strings.CUSTOM_BRIDGE;
public static void initStatus() public static void initStatus()
{ {
status.sJavaStatus = dataController.getInstance().getBool(keys.JAVA_SCRIPT,true); status.sJavaStatus = dataController.getInstance().getBool(keys.JAVA_SCRIPT,true);
status.sHistoryStatus = dataController.getInstance().getBool(keys.HISTORY_CLEAR,true); status.sHistoryStatus = dataController.getInstance().getBool(keys.HISTORY_CLEAR,true);
status.sSearchStatus = dataController.getInstance().getString(keys.SEARCH_ENGINE,constants.BACKEND_GENESIS_URL); status.sSearchStatus = dataController.getInstance().getString(keys.SEARCH_ENGINE,constants.BACKEND_GENESIS_URL);
status.sGateway = dataController.getInstance().getBool(keys.GATEWAY,false); status.sGatewayAuto = dataController.getInstance().getBool(keys.GATEWAY_AUTO,false);
status.sGatewayManual = dataController.getInstance().getBool(keys.GATEWAY_MANUAL,false);
status.sIsWelcomeEnabled = dataController.getInstance().getBool(keys.IS_WELCOME_ENABLED,true); status.sIsWelcomeEnabled = dataController.getInstance().getBool(keys.IS_WELCOME_ENABLED,true);
status.sIsAppRated = dataController.getInstance().getBool(keys.IS_APP_RATED,false); status.sIsAppRated = dataController.getInstance().getBool(keys.IS_APP_RATED,false);
status.sFontSize = dataController.getInstance().getFloat(keys.FONT_SIZE,100); status.sFontSize = dataController.getInstance().getFloat(keys.FONT_SIZE,100);
status.sFontAdjustable = dataController.getInstance().getBool(keys.FONT_ADJUSTABLE,true); status.sFontAdjustable = dataController.getInstance().getBool(keys.FONT_ADJUSTABLE,true);
status.sCookieStatus = dataController.getInstance().getInt(keys.COOKIE_ADJUSTABLE,ACCEPT_FIRST_PARTY); status.sCookieStatus = dataController.getInstance().getInt(keys.COOKIE_ADJUSTABLE,ACCEPT_FIRST_PARTY);
status.sCustomBridge = dataController.getInstance().getString(keys.CUSTOM_BRIDGE_1,strings.CUSTOM_BRIDGE);
status.sFirstStart = dataController.getInstance().getBool(keys.FIRST_INSTALLED,true);
status.sLanguage = dataController.getInstance().getString(keys.LANGUAGE,strings.DEFAULT_LANGUAGE);
} }
} }

View File

@ -28,6 +28,10 @@ public class strings
public static final String ORBOT_INIT_BT_1 = "Dismiss"; public static final String ORBOT_INIT_BT_1 = "Dismiss";
public static final String ORBOT_INIT_BT_2 = "Try Again"; public static final String ORBOT_INIT_BT_2 = "Try Again";
public static final String ORBOT_CLEAR_TITLE = "Data Cleared";
public static final String ORBOT_CLEAR_DESC = "Genesis data has been cleared. Please try to start application from Homepage\n";
public static final String ORBOT_CLEAR_BT_1 = "Dismiss";
public static final String VERSION_TITLE = "Update Pending"; public static final String VERSION_TITLE = "Update Pending";
public static final String VERSION_DESC = "You have not updated this app for a while please update it to get best performance\n"; public static final String VERSION_DESC = "You have not updated this app for a while please update it to get best performance\n";
public static final String VERSION_BT_1 = "Update"; public static final String VERSION_BT_1 = "Update";
@ -63,11 +67,12 @@ public class strings
public static final String clear_bookmark_bt2 = "Dismiss"; public static final String clear_bookmark_bt2 = "Dismiss";
public static final String DOWNLOAD_TITLE = "Download Notification"; public static final String DOWNLOAD_TITLE = "Download Notification";
public static final String DOWNLOAD_LONG_PRESS_TITLE = "File Notification";
public static final String DOWNLOAD_LONG_PRESS_MESSAGE = "File | ";
public static final String DOWNLOAD_MESSAGE = "Download File | "; public static final String DOWNLOAD_MESSAGE = "Download File | ";
public static final String DOWNLOAD_POSITIVE = "Download"; public static final String DOWNLOAD_POSITIVE = "Download";
public static final String DOWNLOAD_NEGATIVE = "Dismiss";
public static final String BRIDGE_MAIL_TITLE = "Request New Bridge";
public static final String BRIDGE_MAIL_MESSAGE = "You can get a bridge address through email, the web or by scanning a bridge QR code. Select 'Email' below to request a bridge address.\n\nOnce you have an address, copy &amp; paste it into the above box and start.";
public static final String BRIDGE_MAIL_POSITIVE = "EMAIL";
public static final String LONG_URL_TITLE = "URL Notification"; public static final String LONG_URL_TITLE = "URL Notification";
public static final String LONG_URL_MESSAGE = ""; public static final String LONG_URL_MESSAGE = "";
@ -92,6 +97,10 @@ public class strings
public static final String CLEAR_TABS = "CLEAR TABS"; public static final String CLEAR_TABS = "CLEAR TABS";
/*Bridge Manager*/
public static final String CUSTOM_BRIDGE = "obfs4";
/*Text Manager*/ /*Text Manager*/
public static final String DARK_WEB = "Hidden Web"; public static final String DARK_WEB = "Hidden Web";
@ -102,6 +111,7 @@ public class strings
public static final String CUSTOM_FONTS = "Custom Font"; public static final String CUSTOM_FONTS = "Custom Font";
public static final String PERCENT_SIGN = "%"; public static final String PERCENT_SIGN = "%";
public static final String DEFAULT_LANGUAGE = "ru";
/*Bookmark Manager*/ /*Bookmark Manager*/

View File

@ -11,6 +11,7 @@ import com.darkweb.genesissearchengine.appManager.homeManager.geckoSession;
import com.darkweb.genesissearchengine.appManager.tabManager.tabRowModel; import com.darkweb.genesissearchengine.appManager.tabManager.tabRowModel;
import com.darkweb.genesissearchengine.constants.constants; import com.darkweb.genesissearchengine.constants.constants;
import com.darkweb.genesissearchengine.constants.status; import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import java.util.ArrayList; import java.util.ArrayList;
@ -39,6 +40,7 @@ public class dataController
mPreferencesModel.setHistorySize(databaseController.getInstance().getLargestHistoryID()); mPreferencesModel.setHistorySize(databaseController.getInstance().getLargestHistoryID());
} }
public void initializeListData(){ public void initializeListData(){
mPreferencesModel.initSuggestions();
if(!status.sHistoryStatus) if(!status.sHistoryStatus)
{ {
mPreferencesModel.initializeHistory(databaseController.getInstance().selectHistory(0,constants.START_LIST_SIZE)); mPreferencesModel.initializeHistory(databaseController.getInstance().selectHistory(0,constants.START_LIST_SIZE));
@ -47,7 +49,6 @@ public class dataController
{ {
databaseController.getInstance().execSQL("delete from history where 1",null); databaseController.getInstance().execSQL("delete from history where 1",null);
} }
mPreferencesModel.initSuggestions();
} }
/*Saving Preferences*/ /*Saving Preferences*/
@ -93,11 +94,13 @@ public class dataController
activityContextManager.getInstance().getHomeController().onSuggestionUpdate(); activityContextManager.getInstance().getHomeController().onSuggestionUpdate();
} }
public void updateSuggestionURL(String url,String title) { public void updateSuggestionURL(String url,String title) {
mPreferencesModel.updateSuggestionURL(url,title); url = helperMethod.removeLastSlash(url);
mPreferencesModel.updateSuggestionURL(url,title,false);
activityContextManager.getInstance().getHomeController().onSuggestionUpdate(); activityContextManager.getInstance().getHomeController().onSuggestionUpdate();
} }
public void addSuggesion(String url,String title) { public void addSuggesion(String url,String title) {
mPreferencesModel.addSuggenstions(url,title); url = helperMethod.removeLastSlash(url);
mPreferencesModel.addSuggenstions(url,title,false);
activityContextManager.getInstance().getHomeController().onSuggestionUpdate(); activityContextManager.getInstance().getHomeController().onSuggestionUpdate();
} }
public void removeHistory(String url){ public void removeHistory(String url){

View File

@ -12,6 +12,10 @@ import com.darkweb.genesissearchengine.appManager.historyManager.historyRowModel
import com.darkweb.genesissearchengine.appManager.homeManager.geckoSession; import com.darkweb.genesissearchengine.appManager.homeManager.geckoSession;
import com.darkweb.genesissearchengine.appManager.tabManager.tabRowModel; import com.darkweb.genesissearchengine.appManager.tabManager.tabRowModel;
import com.darkweb.genesissearchengine.constants.constants; import com.darkweb.genesissearchengine.constants.constants;
import com.darkweb.genesissearchengine.constants.status;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import java.net.URI;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
@ -79,52 +83,71 @@ class dataModel
void initializeHistory(ArrayList<historyRowModel> history){ void initializeHistory(ArrayList<historyRowModel> history){
this.mHistory = history; this.mHistory = history;
initializeCache(history); if(!status.sHistoryStatus){
Log.i("",""); initializeCache(history);
}else {
clearHistory();
}
} }
private void initializeCache(ArrayList<historyRowModel> history){ private void initializeCache(ArrayList<historyRowModel> history){
for(int count=0;count<=history.size()-1;count++){ for(int count=0;count<=history.size()-1;count++){
mHistoryCache.put(history.get(count).getmHeader(),true); mHistoryCache.put(history.get(count).getmHeader(),true);
historyRowModel tempSuggestion = new historyRowModel(history.get(count).getTitle(),history.get(count).getmHeader(),-1); historyRowModel tempSuggestion = new historyRowModel(history.get(count).getTitle(),history.get(count).getmHeader(),-1);
mSuggestions.add(tempSuggestion);
mSuggestionCache.put(history.get(count).getmHeader(),tempSuggestion); tempSuggestion.updateTitle(tempSuggestion.getmHeader());
tempSuggestion.updateURL(history.get(count).getmHeader());
addSuggenstions(tempSuggestion.getmHeader(),tempSuggestion.getTitle(),true);
mSuggestionCache.put(helperMethod.removeLastSlash(history.get(count).getmHeader()),tempSuggestion);
} }
} }
void updateSuggestionURL(String url, String newURL){
void updateSuggestionURL(String url, String newURL,boolean isLoading){
if(url.length()>1500){ if(url.length()>1500){
return; return;
} }
url = helperMethod.removeLastSlash(url);
url = helperMethod.urlWithoutPrefix(url);
historyRowModel model = mSuggestionCache.get(url); historyRowModel model = mSuggestionCache.get(url);
if(model!=null){ if(model!=null){
mSuggestionCache.remove(url); mSuggestionCache.remove(url);
model.updateURL(newURL); if(!newURL.equals("loading"))
mSuggestionCache.put(newURL,model); model.updateHeader(newURL);
model.updateTitle(model.getmHeader());
mSuggestionCache.put(url,model);
} }
String[] params = new String[2];
params[0] = newURL;
params[1] = url;
if(newURL.length()>0 && !isLoading){
databaseController.getInstance().execSQL("UPDATE history SET title = ? , date = DateTime('now') WHERE url = ?",params);
}
} }
void addSuggenstions(String url, String title){ void addSuggenstions(String url, String title,boolean isLoading){
if(url.length()>1500){ if(url.length()>1500 || title.equals("$TITLE") || title.equals("loading")){
return; return;
} }
url = helperMethod.removeLastSlash(url);
url = helperMethod.urlWithoutPrefix(url);
historyRowModel tempModel = mSuggestionCache.get(url); historyRowModel tempModel = mSuggestionCache.get(url);
if(tempModel==null){ if(tempModel==null){
historyRowModel model = new historyRowModel(title,url,-1); historyRowModel model = new historyRowModel(title,url,-1);
mSuggestions.add(0,model);
mSuggestionCache.put(url,model); mSuggestionCache.put(url,model);
mSuggestions.add(0,mSuggestionCache.get(url));
} }
else { else {
historyRowModel model = mSuggestionCache.get(url); updateSuggestionURL(url,title,isLoading);
if(model!=null){
model.updateTitle(title);
}
} }
String[] params = new String[2]; String[] params = new String[2];
params[0] = title; params[0] = title;
params[1] = url; params[1] = url;
if(title.length()>0){ if(title.length()>0 && !isLoading){
databaseController.getInstance().execSQL("UPDATE history SET title = ? , date = DateTime('now') WHERE url = ?",params); databaseController.getInstance().execSQL("UPDATE history SET title = ? , date = DateTime('now') WHERE url = ?",params);
} }
} }
@ -133,6 +156,9 @@ class dataModel
if(url.length()>1500){ if(url.length()>1500){
return; return;
} }
url = helperMethod.removeLastSlash(url);
url = helperMethod.urlWithoutPrefix(url);
@SuppressLint("SimpleDateFormat") SimpleDateFormat d_form = new SimpleDateFormat("dd MMMM | hh:mm a"); @SuppressLint("SimpleDateFormat") SimpleDateFormat d_form = new SimpleDateFormat("dd MMMM | hh:mm a");
String date = d_form.format(new Date()); String date = d_form.format(new Date());
@ -150,10 +176,15 @@ class dataModel
historyRowModel model = mSuggestionCache.get(url); historyRowModel model = mSuggestionCache.get(url);
if(model!=null){ if(model!=null){
Log.i("ERERER3",mSuggestions.size()+""); for(int e=0;e<mSuggestions.size();e++){
mSuggestions.remove(model); String temp_url = helperMethod.removeLastSlash(model.getmHeader());
temp_url = helperMethod.urlWithoutPrefix(temp_url);
if(temp_url.equals(mSuggestions.get(e).getmDescription())){
mSuggestions.remove(e);
}
}
mSuggestions.add(0,model); mSuggestions.add(0,model);
Log.i("ERERER4",mSuggestions.size()+"");
} }
return; return;
@ -191,9 +222,7 @@ class dataModel
mHistory.clear(); mHistory.clear();
mHistoryCache.clear(); mHistoryCache.clear();
mSuggestionCache.clear(); mSuggestionCache.clear();
Log.i("ERERER5",mSuggestions.size()+"");
mSuggestions.clear(); mSuggestions.clear();
Log.i("ERERER6",mSuggestions.size()+"");
initSuggestions(); initSuggestions();
} }
void loadMoreHistory(ArrayList<historyRowModel> history){ void loadMoreHistory(ArrayList<historyRowModel> history){
@ -263,7 +292,7 @@ class dataModel
mTabs.remove(0); mTabs.remove(0);
} }
if(mTabs.size()>0){ if(mTabs.size()>0){
Log.i("FUCKERRROR125:","_FERROR_"); //Log.i("FUCKERRROR125:","_FERROR_");
mTabs.get(0).getSession().closeSession(); mTabs.get(0).getSession().closeSession();
} }
} }
@ -318,111 +347,109 @@ class dataModel
} }
void initSuggestions(){ void initSuggestions(){
Log.i("ERERER9",mSuggestions.size()+""); addSuggenstions("https://duckduckgo.com","Duckduckgo",true);
mSuggestions.add(new historyRowModel("Youtube","https://youtube.com",-1)); addSuggenstions("https://bbc.com","BBC",true);
mSuggestions.add(new historyRowModel("Facebook","https://facebook.com",-1)); addSuggenstions("https://youtube.com","Youtube",true);
mSuggestions.add(new historyRowModel("Twitter","https://twitter.com",-1)); addSuggenstions("https://facebook.com","Facebook",true);
mSuggestions.add(new historyRowModel("Amazon","https://amazon.com",-1)); addSuggenstions("https://twitter.com","Twitter",true);
mSuggestions.add(new historyRowModel("IMDB","https://imdb.com",-1)); addSuggenstions("https://amazon.com","Amazon",true);
mSuggestions.add(new historyRowModel("Reddit","https://reddit.com",-1)); addSuggenstions("https://imdb.com","IMDB",true);
mSuggestions.add(new historyRowModel("Pinterest","https://pinterest.com",-1)); addSuggenstions("https://reddit.com","Reddit",true);
mSuggestions.add(new historyRowModel("EBay","https://ebay.com",-1)); addSuggenstions("https://pinterest.com","Pinterest",true);
mSuggestions.add(new historyRowModel("Trip Advisor","https://tripadvisor.com",-1)); addSuggenstions("https://ebay.com","EBay",true);
mSuggestions.add(new historyRowModel("Craigslist","https://craigslist.org",-1)); addSuggenstions("https://tripadvisor.com","Trip Advisor",true);
mSuggestions.add(new historyRowModel("Walmart","https://walmart.com",-1)); addSuggenstions("https://craigslist.org","Craigslist",true);
mSuggestions.add(new historyRowModel("Instagram","https://instagram.com",-1)); addSuggenstions("https://walmart.com","Walmart",true);
mSuggestions.add(new historyRowModel("Google","https://google.com",-1)); addSuggenstions("https://instagram.com","Instagram",true);
mSuggestions.add(new historyRowModel("NY Times","https://nytimes.com",-1)); addSuggenstions("https://google.com","Google",true);
mSuggestions.add(new historyRowModel("Apple","https://apple.com",-1)); addSuggenstions("https://nytimes.com","NY Times",true);
mSuggestions.add(new historyRowModel("Linkedin","https://linkedin.com",-1)); addSuggenstions("https://apple.com","Apple",true);
mSuggestions.add(new historyRowModel("Indeed","https://indeed.com",-1)); addSuggenstions("https://linkedin.com","Linkedin",true);
mSuggestions.add(new historyRowModel("Play.Google","https://play.google.com",-1)); addSuggenstions("https://indeed.com","Indeed",true);
mSuggestions.add(new historyRowModel("ESPN","https://espn.com",-1)); addSuggenstions("https://play.google.com","Play.Google",true);
mSuggestions.add(new historyRowModel("Webmd","https://webmd.com",-1)); addSuggenstions("https://espn.com","ESPN",true);
mSuggestions.add(new historyRowModel("CNN","https://cnn.com",-1)); addSuggenstions("https://webmd.com","Webmd",true);
mSuggestions.add(new historyRowModel("Homedepot","https://homedepot.com",-1)); addSuggenstions("https://cnn.com","CNN",true);
mSuggestions.add(new historyRowModel("ETSY","https://etsy.com",-1)); addSuggenstions("https://homedepot.com","Homedepot",true);
mSuggestions.add(new historyRowModel("Netflix","https://netflix.com",-1)); addSuggenstions("https://etsy.com","ETSY",true);
mSuggestions.add(new historyRowModel("Quora","https://quora.com",-1)); addSuggenstions("https://netflix.com","Netflix",true);
mSuggestions.add(new historyRowModel("Microsoft","https://microsoft.com",-1)); addSuggenstions("https://quora.com","Quora",true);
mSuggestions.add(new historyRowModel("Target","https://target.com",-1)); addSuggenstions("https://microsoft.com","Microsoft",true);
mSuggestions.add(new historyRowModel("Merriam Webster","https://merriam-webster.com",-1)); addSuggenstions("https://target.com","Target",true);
mSuggestions.add(new historyRowModel("Forbes","https://forbes.com",-1)); addSuggenstions("https://merriam-webster.com","Merriam Webster",true);
mSuggestions.add(new historyRowModel("Mapquest","https://mapquest.com",-1)); addSuggenstions("https://forbes.com","Forbes",true);
mSuggestions.add(new historyRowModel("NIH","https://nih.gov",-1)); addSuggenstions("https://mapquest.com","Mapquest",true);
mSuggestions.add(new historyRowModel("Gamepedia","https://gamepedia.com",-1)); addSuggenstions("https://nih.gov","NIH",true);
mSuggestions.add(new historyRowModel("Yahoo","https://yahoo.com",-1)); addSuggenstions("https://gamepedia.com","Gamepedia",true);
mSuggestions.add(new historyRowModel("Healthline","https://healthline.com",-1)); addSuggenstions("https://yahoo.com","Yahoo",true);
mSuggestions.add(new historyRowModel("Foxnews","https://foxnews.com",-1)); addSuggenstions("https://healthline.com","Healthline",true);
mSuggestions.add(new historyRowModel("All Recipes","https://allrecipes.com",-1)); addSuggenstions("https://foxnews.com","Foxnews",true);
mSuggestions.add(new historyRowModel("Quizlet","https://quizlet.com",-1)); addSuggenstions("https://allrecipes.com","All Recipes",true);
mSuggestions.add(new historyRowModel("Weather","https://weather.com",-1)); addSuggenstions("https://quizlet.com","Quizlet",true);
mSuggestions.add(new historyRowModel("Bestbuy","https://bestbuy.com",-1)); addSuggenstions("https://weather.com","Weather",true);
mSuggestions.add(new historyRowModel("Urbandictionary","https://urbandictionary.com",-1)); addSuggenstions("https://bestbuy.com","Bestbuy",true);
mSuggestions.add(new historyRowModel("Mayoclinic","https://mayoclinic.org",-1)); addSuggenstions("https://urbandictionary.com","Urbandictionary",true);
mSuggestions.add(new historyRowModel("AOL","https://aol.com",-1)); addSuggenstions("https://mayoclinic.org","Mayoclinic",true);
mSuggestions.add(new historyRowModel("Genius","https://genius.com",-1)); addSuggenstions("https://aol.com" ,"AOL",true);
mSuggestions.add(new historyRowModel("Zillow","https://zillow.com",-1)); addSuggenstions("https://genius.com","Genius",true);
mSuggestions.add(new historyRowModel("Usatoday","https://usatoday.com",-1)); addSuggenstions("https://zillow.com","Zillow",true);
mSuggestions.add(new historyRowModel("Glassdoor","https://glassdoor.com",-1)); addSuggenstions("https://usatoday.com","Usatoday",true);
mSuggestions.add(new historyRowModel("MSN","https://msn.com",-1)); addSuggenstions("https://glassdoor.com","Glassdoor",true);
mSuggestions.add(new historyRowModel("Rotten Tomatoes","https://rottentomatoes.com",-1)); addSuggenstions("https://msn.com","MSN",true);
mSuggestions.add(new historyRowModel("Lowes","https://lowes.com",-1)); addSuggenstions("https://rottentomatoes.com","Rotten Tomatoes",true);
mSuggestions.add(new historyRowModel("Dictionary","https://dictionary.com",-1)); addSuggenstions("https://lowes.com","Lowes",true);
mSuggestions.add(new historyRowModel("Business Insider","https://businessinsider.com",-1)); addSuggenstions("https://dictionary.com","Dictionary",true);
mSuggestions.add(new historyRowModel("US News","https://usnews.com",-1)); addSuggenstions("https://businessinsider.com","Business Insider",true);
mSuggestions.add(new historyRowModel("Medical News Today","https://medicalnewstoday.com",-1)); addSuggenstions("https://usnews.com","US News",true);
mSuggestions.add(new historyRowModel("Britannica","https://britannica.com",-1)); addSuggenstions("https://medicalnewstoday.com","Medical News Today",true);
mSuggestions.add(new historyRowModel("Washington Post","https://washingtonpost.com",-1)); addSuggenstions("https://britannica.com","Britannica",true);
mSuggestions.add(new historyRowModel("USPS","https://usps.com",-1)); addSuggenstions("https://washingtonpost.com","Washington Post",true);
mSuggestions.add(new historyRowModel("Finance Yahoo","https://finance.yahoo.com",-1)); addSuggenstions("https://usps.com","USPS",true);
mSuggestions.add(new historyRowModel("IRS","https://irs.gov",-1)); addSuggenstions("https://finance.yahoo.com","Finance Yahoo",true);
mSuggestions.add(new historyRowModel("Yellow Pages","https://yellowpages.com",-1)); addSuggenstions("https://irs.gov","IRS",true);
mSuggestions.add(new historyRowModel("Chase","https://chase.com",-1)); addSuggenstions("https://yellowpages.com","Yellow Pages",true);
mSuggestions.add(new historyRowModel("Retail Menot","https://retailmenot.com",-1)); addSuggenstions("https://chase.com","Chase",true);
mSuggestions.add(new historyRowModel("Accuweather","https://accuweather.com",-1)); addSuggenstions("https://retailmenot.com","Retail Menot",true);
mSuggestions.add(new historyRowModel("Way Fair","https://wayfair.com",-1)); addSuggenstions("https://accuweather.com","Accuweather",true);
mSuggestions.add(new historyRowModel("GO","https://go.com",-1)); addSuggenstions("https://wayfair.com","Way Fair",true);
mSuggestions.add(new historyRowModel("Live","https://live.com",-1)); addSuggenstions("https://go.com","GO",true);
mSuggestions.add(new historyRowModel("Login Yahoo","https://login.yahoo.com",-1)); addSuggenstions("https://live.com","Live",true);
mSuggestions.add(new historyRowModel("Steam Community","https://steamcommunity.com",-1)); addSuggenstions("https://login.yahoo.com","Login Yahoo",true);
mSuggestions.add(new historyRowModel("XFinity","https://xfinity.com",-1)); addSuggenstions("https://steamcommunity.com","Steam Community",true);
mSuggestions.add(new historyRowModel("CNET","https://cnet.com",-1)); addSuggenstions("https://xfinity.com","XFinity",true);
mSuggestions.add(new historyRowModel("IGN","https://ign.com",-1)); addSuggenstions("https://cnet.com","CNET",true);
mSuggestions.add(new historyRowModel("Steam Powered","https://steampowered.com",-1)); addSuggenstions("https://ign.com","IGN",true);
mSuggestions.add(new historyRowModel("Macys","https://macys.com",-1)); addSuggenstions("https://steampowered.com","Steam Powered",true);
mSuggestions.add(new historyRowModel("Wikihow","https://wikihow.com",-1)); addSuggenstions("https://macys.com","Macys",true);
mSuggestions.add(new historyRowModel("Mail Yahoo","https://mail.yahoo.com",-1)); addSuggenstions("https://wikihow.com","Wikihow",true);
mSuggestions.add(new historyRowModel("Wiktionary","wiktionary.org",-1)); addSuggenstions("https://mail.yahoo.com","Mail Yahoo",true);
mSuggestions.add(new historyRowModel("Cbssports","https://cbssports.com",-1)); addSuggenstions("wiktionary.org","Wiktionary",true);
mSuggestions.add(new historyRowModel("CNBC","https://cnbc.com",-1)); addSuggenstions("https://cbssports.com","Cbssports",true);
mSuggestions.add(new historyRowModel("Bank Of America","https://bankofamerica.com",-1)); addSuggenstions("https://cnbc.com","CNBC",true);
mSuggestions.add(new historyRowModel("Expedia","https://expedia.com",-1)); addSuggenstions("https://bankofamerica.com","Bank Of America",true);
mSuggestions.add(new historyRowModel("Wellsfargo","https://wellsfargo.com",-1)); addSuggenstions("https://expedia.com","Expedia",true);
mSuggestions.add(new historyRowModel("Groupon","https://groupon.com",-1)); addSuggenstions("https://wellsfargo.com","Wellsfargo",true);
mSuggestions.add(new historyRowModel("Twitch","https://twitch.tv",-1)); addSuggenstions("https://groupon.com","Groupon",true);
mSuggestions.add(new historyRowModel("Khan Academy","https://khanacademy.org",-1)); addSuggenstions("https://twitch.tv","Twitch",true);
mSuggestions.add(new historyRowModel("The Guardian","https://theguardian.com",-1)); addSuggenstions("https://khanacademy.org","Khan Academy",true);
mSuggestions.add(new historyRowModel("Paypal","https://paypal.com",-1)); addSuggenstions("https://theguardian.com","The Guardian",true);
mSuggestions.add(new historyRowModel("Spotify","https://spotify.com",-1)); addSuggenstions("https://paypal.com","Paypal",true);
mSuggestions.add(new historyRowModel("ATT","https://att.com",-1)); addSuggenstions("https://spotify.com","Spotify",true);
mSuggestions.add(new historyRowModel("NFL","https://nfl.com",-1)); addSuggenstions("https://att.com","ATT",true);
mSuggestions.add(new historyRowModel("Realtor","https://realtor.com",-1)); addSuggenstions("https://nfl.com","NFL",true);
mSuggestions.add(new historyRowModel("CA Gov","https://ca.gov",-1)); addSuggenstions("https://realtor.com","Realtor",true);
mSuggestions.add(new historyRowModel("Good Reads","https://goodreads.com",-1)); addSuggenstions("https://ca.gov","CA Gov",true);
mSuggestions.add(new historyRowModel("Office","https://office.com",-1)); addSuggenstions("https://goodreads.com","Good Reads",true);
mSuggestions.add(new historyRowModel("UFL","https://ufl.edu",-1)); addSuggenstions("https://office.com","Office",true);
mSuggestions.add(new historyRowModel("MLB","https://mlb.com",-1)); addSuggenstions("https://ufl.edu","UFL",true);
mSuggestions.add(new historyRowModel("Food Network","https://foodnetwork.com",-1)); addSuggenstions("https://mlb.com","MLB",true);
mSuggestions.add(new historyRowModel("BBC","https://bbc.com",-1)); addSuggenstions("https://foodnetwork.com","Food Network",true);
mSuggestions.add(new historyRowModel("Apartments","https://apartments.com",-1)); addSuggenstions("https://apartments.com","Apartments",true);
mSuggestions.add(new historyRowModel("NPR","https://npr.org",-1)); addSuggenstions("https://npr.org","NPR",true);
mSuggestions.add(new historyRowModel("Wow Head","https://wowhead.com",-1)); addSuggenstions("https://wowhead.com","Wow Head",true);
mSuggestions.add(new historyRowModel("Duckduckgo","https://duckduckgo.com",-1)); addSuggenstions("https://bing.com","Bing",true);
mSuggestions.add(new historyRowModel("Bing","https://bing.com",-1)); addSuggenstions("https://google.com","Google",true);
mSuggestions.add(new historyRowModel("Google","https://google.com",-1)); addSuggenstions("https://boogle.store","Genesis Search",true);
mSuggestions.add(new historyRowModel("Genesis Search","https://boogle.store",-1));
Log.i("ERERER10",mSuggestions.size()+"");
} }
} }

View File

@ -0,0 +1,28 @@
package com.darkweb.genesissearchengine.helperManager;
import android.content.Context;
import android.content.res.Resources;
import android.util.Log;
import com.example.myapplication.R;
/**
* Created by BrainWang on 05/01/2016.
*/
public class AdBlocker {
static String[] adUrls = null;
public static boolean isAd(Context context, String url) {
Resources res = context.getResources();
if(adUrls==null)
{
adUrls = res.getStringArray(R.array.adBlockUrl);
}
for (String adUrl : adUrls) {
if (url.contains(adUrl)) {
return true;
}
}
return false;
}
}

View File

@ -0,0 +1,82 @@
package com.darkweb.genesissearchengine.helperManager;
import android.app.Application;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.os.Build;
import android.preference.PreferenceManager;
import android.view.ContextThemeWrapper;
import com.darkweb.genesissearchengine.appManager.homeManager.homeController;
import java.util.Locale;
/**
* Created by Umesh on 10/10/16.
*/
public class LocaleUtils {
private static Locale mLocale;
public static void setLocale(Locale locale){
mLocale = locale;
if(mLocale != null){
Locale.setDefault(mLocale);
}
}
public static void updateConfiguration(ContextThemeWrapper wrapper){
if(mLocale != null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1){
Configuration configuration = new Configuration();
configuration.setLocale(mLocale);
wrapper.applyOverrideConfiguration(configuration);
}
}
public static void updateConfiguration(homeController application, Configuration configuration){
if(mLocale != null && Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1){
Configuration config = new Configuration(configuration);
config.locale = mLocale;
Resources res = application.getBaseContext().getResources();
res.updateConfiguration(configuration, res.getDisplayMetrics());
}
}
public static void updateConfiguration(Context context, String language, String country){
Locale locale = new Locale(language,country);
setLocale(locale);
if(mLocale != null){
Resources res = context.getResources();
Configuration configuration = res.getConfiguration();
configuration.locale = mLocale;
res.updateConfiguration(configuration,res.getDisplayMetrics());
}
}
public static String getPrefLangCode(Context context) {
return PreferenceManager.getDefaultSharedPreferences(context).getString("lang_code","en");
}
public static void setPrefLangCode(Context context, String mPrefLangCode) {
SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(context).edit();
editor.putString("lang_code",mPrefLangCode);
editor.commit();
}
public static String getPrefCountryCode(Context context) {
return PreferenceManager.getDefaultSharedPreferences(context).getString("country_code","US");
}
public static void setPrefCountryCode(Context context,String mPrefCountryCode) {
SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(context).edit();
editor.putString("country_code",mPrefCountryCode);
editor.commit();
}
}

View File

@ -2,6 +2,7 @@ package com.darkweb.genesissearchengine.helperManager;
import java.util.ArrayList; import java.util.ArrayList;
import android.content.Context; import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@ -59,7 +60,11 @@ public class autoCompleteAdapter extends ArrayAdapter<historyRowModel> {
Filter nameFilter = new Filter() { Filter nameFilter = new Filter() {
@Override @Override
public String convertResultToString(Object resultValue) { public String convertResultToString(Object resultValue) {
String str = ((historyRowModel)(resultValue)).getmHeader(); if(resultValue==null){
return strings.EMPTY_STR;
}
historyRowModel model = (historyRowModel)(resultValue);
String str = model.getmHeader();
return str; return str;
} }
@Override @Override
@ -70,8 +75,15 @@ public class autoCompleteAdapter extends ArrayAdapter<historyRowModel> {
if(suggestions.size()>10){ if(suggestions.size()>10){
break; break;
} }
if(customer.getmHeader().length()>2 && customer.getmDescription().toLowerCase().length()>2 && (customer.getmHeader().toLowerCase().contains(constraint.toString().toLowerCase()) || customer.getmDescription().toLowerCase().contains(constraint.toString().toLowerCase()))){
suggestions.add(customer);
if(!customer.getTitle().equals("$TITLE") && customer.getmHeader().length()>2 && customer.getmDescription().toLowerCase().length()>2 && (customer.getmHeader().toLowerCase().contains(constraint.toString().toLowerCase()) || customer.getmDescription().toLowerCase().contains(constraint.toString().toLowerCase()))){
Log.i("memememe:","memememe:"+constraint.toString().toLowerCase().replace("https://","").replace("http://",""));
Log.i("memememe1:","memememe2:"+customer.getmDescription().replace("https://","").replace("http://",""));
if(!constraint.toString().toLowerCase().replace("https://","").replace("http://","").equals(customer.getmDescription().replace("https://","").replace("http://",""))){
suggestions.add(customer);
}
} }
} }
FilterResults filterResults = new FilterResults(); FilterResults filterResults = new FilterResults();

View File

@ -5,6 +5,7 @@ import android.webkit.URLUtil;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import com.darkweb.genesissearchengine.constants.strings; import com.darkweb.genesissearchengine.constants.strings;
import com.example.myapplication.R;
import org.mozilla.geckoview.WebRequestError; import org.mozilla.geckoview.WebRequestError;
@ -47,14 +48,41 @@ public class errorHandler
if (reader != null) { if (reader != null) {
try { try {
reader.close(); reader.close();
} catch (IOException e) { } catch (IOException ignored) {
} }
} }
} }
} }
String title = helperMethod.getHost(url); String title = helperMethod.getHost(url);
return createErrorPage("CODE : " + categoryToString(category) + " <br>TYPE : " + errorToString(error)).replace("$URL",url).replace("$TITLE",title);
if(url==null){
url = "Hidden Error";
}
if(title==null){
title = "Hidden Error";
}
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);
errorPage = translateMessage(errorPage,"CODE : " + categoryToString(category));
return errorPage;
}
private String translateMessage(String message,String error){
message = message.replace("$ERROR_M1",mContext.getString(R.string.error_m1));
message = message.replace("$ERROR_M2",mContext.getString(R.string.error_m2));
message = message.replace("$ERROR_M3",mContext.getString(R.string.error_m3));
message = message.replace("$ERROR_M4",mContext.getString(R.string.error_m4));
message = message.replace("$ERROR_M5",mContext.getString(R.string.error_m5));
message = message.replace("$ERROR_M6",mContext.getString(R.string.error_m6));
message = message.replace("$ERROR", error);
return message;
} }
private String errorToString(final int error) { private String errorToString(final int error) {
@ -137,7 +165,7 @@ public class errorHandler
return "UNKNOWN"; return "UNKNOWN";
} }
} }
private String createErrorPage(final String error) { private String createErrorPage(final String error,String url) {
if(error==null){ if(error==null){
return strings.EMPTY_STR; return strings.EMPTY_STR;
} }
@ -175,8 +203,9 @@ public class errorHandler
} }
} }
} }
String replaceUrl = mErrorTemplate.replace("$URL",url);
return mErrorTemplate.replace("$ERROR", error); return replaceUrl;
} }
} }

View File

@ -1,6 +1,7 @@
package com.darkweb.genesissearchengine.helperManager; package com.darkweb.genesissearchengine.helperManager;
import android.Manifest; import android.Manifest;
import android.app.ActivityManager;
import android.app.DownloadManager; import android.app.DownloadManager;
import android.content.ClipData; import android.content.ClipData;
import android.content.ClipboardManager; import android.content.ClipboardManager;
@ -10,11 +11,13 @@ import android.content.pm.PackageManager;
import android.content.res.Resources; import android.content.res.Resources;
import android.graphics.Color; import android.graphics.Color;
import android.graphics.Point; import android.graphics.Point;
import android.net.NetworkInfo;
import android.net.Uri; import android.net.Uri;
import android.os.Build; import android.os.Build;
import android.text.SpannableString; import android.text.SpannableString;
import android.text.Spanned; import android.text.Spanned;
import android.text.style.ForegroundColorSpan; import android.text.style.ForegroundColorSpan;
import android.util.Log;
import android.view.Display; import android.view.Display;
import android.view.Gravity; import android.view.Gravity;
import android.view.View; import android.view.View;
@ -33,6 +36,7 @@ import com.darkweb.genesissearchengine.constants.keys;
import com.darkweb.genesissearchengine.dataManager.dataController; import com.darkweb.genesissearchengine.dataManager.dataController;
import com.example.myapplication.BuildConfig; import com.example.myapplication.BuildConfig;
import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.net.HttpURLConnection; import java.net.HttpURLConnection;
import java.net.MalformedURLException; import java.net.MalformedURLException;
@ -117,6 +121,16 @@ public class helperMethod
} }
} }
public static void sendBridgeEmail(Context context){
Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
String aEmailList[] = { "bridges@torproject.org"};
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, aEmailList);
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "get transport");
emailIntent.setType("plain/text");
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "get transport");
context.startActivity(emailIntent);
}
public static void hideKeyboard(AppCompatActivity context) { public static void hideKeyboard(AppCompatActivity context) {
View view = context.findViewById(android.R.id.content); View view = context.findViewById(android.R.id.content);
if (view != null) if (view != null)
@ -152,6 +166,10 @@ public class helperMethod
} }
} }
public static void openLocaleSettings(Context context){
Intent i = new Intent(android.provider.Settings.ACTION_LOCALE_SETTINGS);
context.startActivity(i);
}
static String getHost(String link){ static String getHost(String link){
URL url; URL url;
@ -168,6 +186,38 @@ public class helperMethod
} }
public static String capitalizeString(String string) {
char[] chars = string.toLowerCase().toCharArray();
boolean found = false;
for (int i = 0; i < chars.length; i++) {
if (!found && Character.isLetter(chars[i])) {
chars[i] = Character.toUpperCase(chars[i]);
found = true;
} else if (Character.isWhitespace(chars[i]) || chars[i]=='.' || chars[i]=='\'') { // You can add other chars here
found = false;
}
}
return String.valueOf(chars);
}
public static String removeLastSlash(String url){
if(url.length()>2){
if(url.charAt(url.length()-1)=='/'){
return url.substring(0,url.length()-1);
}
}
return url;
}
public static String urlWithoutPrefix(String url){
try{
url = url.substring(url.indexOf(getHost(url)),url.length()).replace("www.","").replace("m.","");
return url;
}catch (Exception ex){
return url;
}
}
public static void openActivity( Class<?> cls,int type,AppCompatActivity context,boolean animation){ public static void openActivity( Class<?> cls,int type,AppCompatActivity context,boolean animation){
Intent myIntent = new Intent(context, cls); Intent myIntent = new Intent(context, cls);
myIntent.putExtra(keys.list_type, type); myIntent.putExtra(keys.list_type, type);
@ -260,6 +310,7 @@ public class helperMethod
public static void copyURL(String url,Context context){ public static void copyURL(String url,Context context){
ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE); ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
ClipData clip = ClipData.newPlainText("link", url); ClipData clip = ClipData.newPlainText("link", url);
clipboard.setPrimaryClip(clip); clipboard.setPrimaryClip(clip);
@ -295,4 +346,9 @@ public class helperMethod
return true; return true;
} }
public static void clearAppData(Context context) {
Intent intent = new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
intent.setData(Uri.parse("package:" + context.getPackageName()));
context.startActivity(intent);
}
} }

View File

@ -58,7 +58,7 @@ class adManager
@Override @Override
public void onAdFailedToLoad(int errorCode) { public void onAdFailedToLoad(int errorCode) {
Log.i("Failure___",""+errorCode); //Log.i("Failure___",""+errorCode);
} }
@Override @Override

View File

@ -1,7 +1,6 @@
package com.darkweb.genesissearchengine.pluginManager; package com.darkweb.genesissearchengine.pluginManager;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.app.DownloadManager;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.graphics.Color; import android.graphics.Color;
@ -59,32 +58,32 @@ class messageManager
private void welcomeMessage() private void welcomeMessage()
{ {
popup_instance.setDialogStyle(CFAlertDialog.CFAlertStyle.ALERT) popup_instance.setDialogStyle(CFAlertDialog.CFAlertStyle.ALERT)
.setTitle(strings.WELCOME_MESSAGE_TITLE) .setTitle(app_context.getString(R.string.WELCOME_MESSAGE_TITLE))
.setBackgroundColor(app_context.getResources().getColor(R.color.holo_dark_gray_alpha_v1)) .setBackgroundColor(app_context.getResources().getColor(R.color.holo_dark_gray_alpha_v1))
.setTextColor(app_context.getResources().getColor(R.color.blue_dark)) .setTextColor(app_context.getResources().getColor(R.color.blue_dark))
.setMessage(strings.WELCOME_MESSAGE_DESC) .setMessage(app_context.getString(R.string.WELCOME_MESSAGE_DESC))
.onDismissListener(dialog -> is_popup_open = false) .onDismissListener(dialog -> is_popup_open = false)
.addButton(strings.WELCOME_MESSAGE_BT_1, -1, Color.rgb(77,136,255 ), CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (DialogInterface tempDialog, int which) -> .addButton(app_context.getString(R.string.WELCOME_MESSAGE_BT_1), -1, Color.rgb(77,136,255 ), CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (DialogInterface tempDialog, int which) ->
{ {
tempDialog.dismiss(); tempDialog.dismiss();
event.invokeObserver(Collections.singletonList(constants.BLACK_MARKET_URL), enums.etype.welcome); event.invokeObserver(Collections.singletonList(constants.BLACK_MARKET_URL), enums.etype.welcome);
}) })
.addButton(strings.WELCOME_MESSAGE_BT_2, -1, Color.rgb(77,136,255 ), CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (tempDialog, which) -> .addButton(app_context.getString(R.string.WELCOME_MESSAGE_BT_2), -1, Color.rgb(77,136,255 ), CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (tempDialog, which) ->
{ {
tempDialog.dismiss(); tempDialog.dismiss();
event.invokeObserver(Collections.singletonList(constants.LEAKED_DOCUMENT_URL), enums.etype.welcome); event.invokeObserver(Collections.singletonList(constants.LEAKED_DOCUMENT_URL), enums.etype.welcome);
}) })
.addButton(strings.WELCOME_MESSAGE_BT_3, -1, Color.rgb(77,136,255 ), CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (tempDialog, which) -> .addButton(app_context.getString(R.string.WELCOME_MESSAGE_BT_3), -1, Color.rgb(77,136,255 ), CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (tempDialog, which) ->
{ {
tempDialog.dismiss(); tempDialog.dismiss();
event.invokeObserver(Collections.singletonList(constants.NEWS_URL), enums.etype.welcome); event.invokeObserver(Collections.singletonList(constants.NEWS_URL), enums.etype.welcome);
}) })
.addButton(strings.WELCOME_MESSAGE_BT_4, -1, Color.rgb(77,136,255 ), CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (tempDialog, which) -> .addButton(app_context.getString(R.string.WELCOME_MESSAGE_BT_4), -1, Color.rgb(77,136,255 ), CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (tempDialog, which) ->
{ {
tempDialog.dismiss(); tempDialog.dismiss();
event.invokeObserver(Collections.singletonList(constants.SOFTWARE_URL), enums.etype.welcome); event.invokeObserver(Collections.singletonList(constants.SOFTWARE_URL), enums.etype.welcome);
}) })
.addButton(strings.WELCOME_MESSAGE_BT_5, -1, -1, CFAlertDialog.CFAlertActionStyle.NEGATIVE, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (tempDialog, which) -> .addButton(app_context.getString(R.string.WELCOME_MESSAGE_BT_5), -1, -1, CFAlertDialog.CFAlertActionStyle.NEGATIVE, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (tempDialog, which) ->
{ {
event.invokeObserver(null, enums.etype.cancel_welcome); event.invokeObserver(null, enums.etype.cancel_welcome);
tempDialog.dismiss(); tempDialog.dismiss();
@ -107,12 +106,12 @@ class messageManager
private void abiError() private void abiError()
{ {
popup_instance.setDialogStyle(CFAlertDialog.CFAlertStyle.BOTTOM_SHEET) popup_instance.setDialogStyle(CFAlertDialog.CFAlertStyle.BOTTOM_SHEET)
.setTitle(strings.ABI_ERROR_TITLE) .setTitle(app_context.getString(R.string.ABI_ERROR_TITLE))
.setBackgroundColor(app_context.getResources().getColor(R.color.holo_dark_gray_alpha)) .setBackgroundColor(app_context.getResources().getColor(R.color.holo_dark_gray_alpha))
.setTextColor(app_context.getResources().getColor(R.color.black)) .setTextColor(app_context.getResources().getColor(R.color.black))
.onDismissListener(dialog -> abiErrorRestart()) .onDismissListener(dialog -> abiErrorRestart())
.setMessage(strings.ABI_ERROR_DESC) .setMessage(app_context.getString(R.string.ABI_ERROR_DESC))
.addButton(strings.ABI_ERROR_BT_1, -1, -1, CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (tempDialog, which) -> .addButton(app_context.getString(R.string.ABI_ERROR_BT_1), -1, -1, CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (tempDialog, which) ->
{ {
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(constants.GENESIS_UPDATE_URL + status.current_ABI)); Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(constants.GENESIS_UPDATE_URL + status.current_ABI));
if(browserIntent.resolveActivity(app_context.getPackageManager()) != null) if(browserIntent.resolveActivity(app_context.getPackageManager()) != null)
@ -122,7 +121,7 @@ class messageManager
helperMethod.showToastMessage("Not Supported",app_context); helperMethod.showToastMessage("Not Supported",app_context);
} }
}) })
.addButton(strings.ABI_ERROR_BT_2, -1, -1, CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (tempDialog, which) -> .addButton(app_context.getString(R.string.ABI_ERROR_BT_2), -1, -1, CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (tempDialog, which) ->
{ {
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(constants.PLAYSTORE_URL)); Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(constants.PLAYSTORE_URL));
if(browserIntent.resolveActivity(app_context.getPackageManager()) != null) if(browserIntent.resolveActivity(app_context.getPackageManager()) != null)
@ -133,7 +132,7 @@ class messageManager
} }
}) })
/* /*
.addButton(strings.ABI_ERROR_BT_3, -1, -1, CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (tempDialog, which) -> .addButton(app_context.getString(R.string.ABI_ERROR_BT_3, -1, -1, CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (tempDialog, which) ->
{ {
event.invokeObserver(null, enums.etype.ignore_abi); event.invokeObserver(null, enums.etype.ignore_abi);
tempDialog.dismiss(); tempDialog.dismiss();
@ -145,28 +144,52 @@ class messageManager
private void ratedSuccessfully() private void ratedSuccessfully()
{ {
popup_instance.setDialogStyle(CFAlertDialog.CFAlertStyle.BOTTOM_SHEET) popup_instance.setDialogStyle(CFAlertDialog.CFAlertStyle.BOTTOM_SHEET)
.setTitle(strings.RATE_SUCCESS_TITLE) .setTitle(app_context.getString(R.string.RATE_SUCCESS_TITLE))
.onDismissListener(dialog -> is_popup_open = false) .onDismissListener(dialog -> is_popup_open = false)
.setBackgroundColor(app_context.getResources().getColor(R.color.holo_dark_gray_alpha)) .setBackgroundColor(app_context.getResources().getColor(R.color.holo_dark_gray_alpha))
.setTextColor(app_context.getResources().getColor(R.color.black)) .setTextColor(app_context.getResources().getColor(R.color.black))
.setMessage(strings.RATE_SUCCESS_DESC) .setMessage(app_context.getString(R.string.RATE_SUCCESS_DESC))
.addButton(strings.RATE_SUCCESS_BT_1, -1, -1, CFAlertDialog.CFAlertActionStyle.NEGATIVE, CFAlertDialog.CFAlertActionAlignment.END, (tempDialog, which) -> .addButton(app_context.getString(R.string.RATE_SUCCESS_BT_1), -1, -1, CFAlertDialog.CFAlertActionStyle.NEGATIVE, CFAlertDialog.CFAlertActionAlignment.END, (tempDialog, which) ->
{ {
helperMethod.sendRateEmail(app_context);
tempDialog.dismiss(); tempDialog.dismiss();
onFinish();
final Handler handler = new Handler();
Runnable runnable = () ->
{
try{
helperMethod.sendRateEmail(app_context);
}
catch (Exception ex){
createMessage(app_context,Collections.singletonList(app_context.getString(R.string.NOT_SUPPORTED_MESSAGE)),enums.etype.on_not_support);
}
};
handler.postDelayed(runnable, 250);
}); });
} }
private void reportedSuccessfully() private void reportedSuccessfully()
{ {
popup_instance.setDialogStyle(CFAlertDialog.CFAlertStyle.BOTTOM_SHEET) popup_instance.setDialogStyle(CFAlertDialog.CFAlertStyle.BOTTOM_SHEET)
.setTitle(strings.REPORT_SUCCESS_TITLE) .setTitle(app_context.getString(R.string.REPORT_SUCCESS_TITLE))
.onDismissListener(dialog -> is_popup_open = false) .onDismissListener(dialog -> is_popup_open = false)
.setBackgroundColor(app_context.getResources().getColor(R.color.holo_dark_gray_alpha)) .setBackgroundColor(app_context.getResources().getColor(R.color.holo_dark_gray_alpha))
.setTextColor(app_context.getResources().getColor(R.color.black)) .setTextColor(app_context.getResources().getColor(R.color.black))
.setMessage(strings.REPORT_SUCCESS_DESC) .setMessage(app_context.getString(R.string.REPORT_SUCCESS_DESC))
.addButton(strings.REPORT_SUCCESS_BT_1, -1, -1, CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.END, (tempDialog, which) -> .addButton(app_context.getString(R.string.REPORT_SUCCESS_BT_1), -1, -1, CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.END, (tempDialog, which) ->
tempDialog.dismiss()); onFinish());
}
private void notSupportMessage()
{
String message = data.get(0);
popup_instance.setDialogStyle(CFAlertDialog.CFAlertStyle.BOTTOM_SHEET)
.setTitle(app_context.getString(R.string.NOT_SUPPORTED_TITLE))
.onDismissListener(dialog -> is_popup_open = false)
.setBackgroundColor(app_context.getResources().getColor(R.color.holo_dark_gray_alpha))
.setTextColor(app_context.getResources().getColor(R.color.black))
.setMessage(message)
.addButton(app_context.getString(R.string.NOT_SUPPORTED_BT_1), -1, -1, CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.END, (tempDialog, which) ->
onFinish());
} }
@SuppressLint("ResourceType") @SuppressLint("ResourceType")
@ -187,25 +210,25 @@ class messageManager
.setHeaderView(input) .setHeaderView(input)
.onDismissListener(dialog -> is_popup_open = false) .onDismissListener(dialog -> is_popup_open = false)
.setMessage("Bookmark URL | " + data.get(0) + "\n") .setMessage("Bookmark URL | " + data.get(0) + "\n")
.addButton(strings.BOOKMARK_URL_BT_1, -1, -1, CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.END, (tempDialog, which) -> .addButton(app_context.getString(R.string.BOOKMARK_URL_BT_1), -1, -1, CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.END, (tempDialog, which) ->
{ {
event.invokeObserver(Collections.singletonList(data.get(0).replace("genesis.onion","boogle.store")+"split"+input.getText().toString()), enums.etype.bookmark); event.invokeObserver(Collections.singletonList(data.get(0).replace("genesis.onion","boogle.store")+"split"+input.getText().toString()), enums.etype.bookmark);
tempDialog.dismiss(); onFinish();
}); });
} }
private void clearHistory() private void clearHistory()
{ {
popup_instance.setDialogStyle(CFAlertDialog.CFAlertStyle.BOTTOM_SHEET) popup_instance.setDialogStyle(CFAlertDialog.CFAlertStyle.BOTTOM_SHEET)
.setTitle(strings.CLEAR_HISTORY_TITLE) .setTitle(app_context.getString(R.string.CLEAR_HISTORY_TITLE))
.setBackgroundColor(app_context.getResources().getColor(R.color.holo_dark_gray_alpha)) .setBackgroundColor(app_context.getResources().getColor(R.color.holo_dark_gray_alpha))
.setTextColor(app_context.getResources().getColor(R.color.black)) .setTextColor(app_context.getResources().getColor(R.color.black))
.onDismissListener(dialog -> is_popup_open = false) .onDismissListener(dialog -> is_popup_open = false)
.setMessage(strings.CLEAR_HISTORY_DESC) .setMessage(app_context.getString(R.string.CLEAR_HISTORY_DESC))
.addButton(strings.CLEAR_HISTORY_BT_1, -1, -1, CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.END, (tempDialog, which) -> .addButton(app_context.getString(R.string.CLEAR_HISTORY_BT_1), -1, -1, CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.END, (tempDialog, which) ->
{ {
tempDialog.dismiss(); onFinish();
final Handler handler = new Handler(); final Handler handler = new Handler();
Runnable runnable = () -> Runnable runnable = () ->
{ {
@ -219,14 +242,14 @@ class messageManager
private void clearTabs() private void clearTabs()
{ {
popup_instance.setDialogStyle(CFAlertDialog.CFAlertStyle.BOTTOM_SHEET) popup_instance.setDialogStyle(CFAlertDialog.CFAlertStyle.BOTTOM_SHEET)
.setTitle(strings.CLEAR_TAB_TITLE) .setTitle(app_context.getString(R.string.CLEAR_TAB_TITLE))
.setBackgroundColor(app_context.getResources().getColor(R.color.holo_dark_gray_alpha)) .setBackgroundColor(app_context.getResources().getColor(R.color.holo_dark_gray_alpha))
.setTextColor(app_context.getResources().getColor(R.color.black)) .setTextColor(app_context.getResources().getColor(R.color.black))
.onDismissListener(dialog -> is_popup_open = false) .onDismissListener(dialog -> is_popup_open = false)
.setMessage(strings.CLEAR_TAB_DESC) .setMessage(app_context.getString(R.string.CLEAR_TAB_DESC))
.addButton(strings.CLEAR_TAB_BT_1, -1, -1, CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.END, (tempDialog, which) -> .addButton(app_context.getString(R.string.CLEAR_TAB_BT_1), -1, -1, CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.END, (tempDialog, which) ->
{ {
tempDialog.dismiss(); onFinish();
final Handler handler = new Handler(); final Handler handler = new Handler();
Runnable runnable = () -> Runnable runnable = () ->
{ {
@ -240,30 +263,30 @@ class messageManager
private void clearBookmark() private void clearBookmark()
{ {
popup_instance.setDialogStyle(CFAlertDialog.CFAlertStyle.BOTTOM_SHEET) popup_instance.setDialogStyle(CFAlertDialog.CFAlertStyle.BOTTOM_SHEET)
.setTitle(strings.clear_bookmark_title) .setTitle(app_context.getString(R.string.clear_bookmark_title))
.setBackgroundColor(app_context.getResources().getColor(R.color.holo_dark_gray_alpha)) .setBackgroundColor(app_context.getResources().getColor(R.color.holo_dark_gray_alpha))
.setTextColor(app_context.getResources().getColor(R.color.black)) .setTextColor(app_context.getResources().getColor(R.color.black))
.onDismissListener(dialog -> is_popup_open = false) .onDismissListener(dialog -> is_popup_open = false)
.setMessage(strings.clear_bookmark_desc) .setMessage(app_context.getString(R.string.clear_bookmark_desc))
.addButton(strings.clear_bookmark_bt1, -1, -1, CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.END, (tempDialog, which) -> .addButton(app_context.getString(R.string.clear_bookmark_bt1), -1, -1, CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.END, (tempDialog, which) ->
{ {
is_popup_open = false; is_popup_open = false;
event.invokeObserver(null, enums.etype.clear_bookmark); event.invokeObserver(null, enums.etype.clear_bookmark);
tempDialog.dismiss(); onFinish();
}); });
} }
private void reportURL() private void reportURL()
{ {
popup_instance.setDialogStyle(CFAlertDialog.CFAlertStyle.BOTTOM_SHEET) popup_instance.setDialogStyle(CFAlertDialog.CFAlertStyle.BOTTOM_SHEET)
.setTitle(strings.REPORT_URL_TITLE) .setTitle(app_context.getString(R.string.REPORT_URL_TITLE))
.setBackgroundColor(app_context.getResources().getColor(R.color.holo_dark_gray_alpha)) .setBackgroundColor(app_context.getResources().getColor(R.color.holo_dark_gray_alpha))
.setTextColor(app_context.getResources().getColor(R.color.black)) .setTextColor(app_context.getResources().getColor(R.color.black))
.onDismissListener(dialog -> is_popup_open = false) .onDismissListener(dialog -> is_popup_open = false)
.setMessage(strings.REPORT_URL_DESC) .setMessage(app_context.getString(R.string.REPORT_URL_DESC))
.addButton(strings.REPORT_URL_BT_1, -1, -1, CFAlertDialog.CFAlertActionStyle.NEGATIVE, CFAlertDialog.CFAlertActionAlignment.END, (tempDialog, which) -> .addButton(app_context.getString(R.string.REPORT_URL_BT_1), -1, -1, CFAlertDialog.CFAlertActionStyle.NEGATIVE, CFAlertDialog.CFAlertActionAlignment.END, (tempDialog, which) ->
{ {
tempDialog.dismiss(); onFinish();
final Handler handler = new Handler(); final Handler handler = new Handler();
Runnable runnable = () -> createMessage(app_context,Collections.singletonList(strings.EMPTY_STR), enums.etype.reported_success); Runnable runnable = () -> createMessage(app_context,Collections.singletonList(strings.EMPTY_STR), enums.etype.reported_success);
@ -277,12 +300,12 @@ class messageManager
private void rateApp() private void rateApp()
{ {
popup_instance.setDialogStyle(CFAlertDialog.CFAlertStyle.ALERT) popup_instance.setDialogStyle(CFAlertDialog.CFAlertStyle.ALERT)
.setTitle(strings.RATE_TITLE) .setTitle(app_context.getString(R.string.RATE_TITLE))
.setBackgroundColor(app_context.getResources().getColor(R.color.holo_dark_gray_alpha_v1)) .setBackgroundColor(app_context.getResources().getColor(R.color.holo_dark_gray_alpha_v1))
.setTextColor(app_context.getResources().getColor(R.color.black)) .setTextColor(app_context.getResources().getColor(R.color.black))
.onDismissListener(dialog -> is_popup_open = false) .onDismissListener(dialog -> is_popup_open = false)
.setMessage(strings.RATE_MESSAGE) .setMessage(app_context.getString(R.string.RATE_MESSAGE))
.addButton(strings.RATE_POSITIVE, -1, -1, CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (tempDialog, which) -> .addButton(app_context.getString(R.string.RATE_POSITIVE), -1, -1, CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (tempDialog, which) ->
{ {
event.invokeObserver(null, enums.etype.app_rated); event.invokeObserver(null, enums.etype.app_rated);
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=com.darkweb.genesissearchengine")); Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=com.darkweb.genesissearchengine"));
@ -292,12 +315,12 @@ class messageManager
}else { }else {
helperMethod.showToastMessage("Playstore Not Found",app_context); helperMethod.showToastMessage("Playstore Not Found",app_context);
} }
tempDialog.dismiss(); onFinish();
}) })
.addButton(strings.RATE_NEGATIVE, -1, -1, CFAlertDialog.CFAlertActionStyle.NEGATIVE, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (tempDialog, which) -> .addButton(app_context.getString(R.string.RATE_NEGATIVE), -1, -1, CFAlertDialog.CFAlertActionStyle.NEGATIVE, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (tempDialog, which) ->
{ {
event.invokeObserver(null, enums.etype.app_rated); event.invokeObserver(null, enums.etype.app_rated);
tempDialog.dismiss(); onFinish();
final Handler handler = new Handler(); final Handler handler = new Handler();
handler.postDelayed(() -> handler.postDelayed(() ->
createMessage(app_context,Collections.singletonList(strings.EMPTY_STR), enums.etype.rate_success), 1000); createMessage(app_context,Collections.singletonList(strings.EMPTY_STR), enums.etype.rate_success), 1000);
@ -307,15 +330,15 @@ class messageManager
private void downloadFile() private void downloadFile()
{ {
popup_instance.setDialogStyle(CFAlertDialog.CFAlertStyle.BOTTOM_SHEET) popup_instance.setDialogStyle(CFAlertDialog.CFAlertStyle.BOTTOM_SHEET)
.setTitle(strings.DOWNLOAD_TITLE) .setTitle(app_context.getString(R.string.DOWNLOAD_TITLE))
.onDismissListener(dialog -> is_popup_open = false) .onDismissListener(dialog -> is_popup_open = false)
.setBackgroundColor(app_context.getResources().getColor(R.color.holo_dark_gray_alpha)) .setBackgroundColor(app_context.getResources().getColor(R.color.holo_dark_gray_alpha))
.setTextColor(app_context.getResources().getColor(R.color.black)) .setTextColor(app_context.getResources().getColor(R.color.black))
.setMessage(strings.DOWNLOAD_MESSAGE + data.get(0)) .setMessage(app_context.getString(R.string.DOWNLOAD_MESSAGE) + data.get(0))
.addButton(strings.DOWNLOAD_POSITIVE, -1, -1, CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.END, (dialog, which) -> .addButton(app_context.getString(R.string.DOWNLOAD_POSITIVE), -1, -1, CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.END, (dialog, which) ->
{ {
event.invokeObserver(null, enums.etype.download_file); event.invokeObserver(null, enums.etype.download_file);
dialog.dismiss(); onFinish();
}); });
} }
@ -338,25 +361,25 @@ class messageManager
.setTextColor(app_context.getResources().getColor(R.color.black)) .setTextColor(app_context.getResources().getColor(R.color.black))
.setMessage(title + f.getName().substring(0,size)+"...") .setMessage(title + f.getName().substring(0,size)+"...")
.setTextGravity(Gravity.START) .setTextGravity(Gravity.START)
.addButton(strings.LONG_URL_OPTION_4, -1, Color.rgb(242,242,242 ), CFAlertDialog.CFAlertActionStyle.DEFAULT, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) -> .addButton(app_context.getString(R.string.LONG_URL_OPTION_4), -1, Color.rgb(242,242,242 ), CFAlertDialog.CFAlertActionStyle.DEFAULT, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) ->
{ {
event.invokeObserver(Collections.singletonList(data.get(0)), enums.etype.download_file_manual); event.invokeObserver(Collections.singletonList(data.get(0)), enums.etype.download_file_manual);
dialog.dismiss(); onFinish();
}) })
.addButton(strings.LONG_URL_OPTION_1, -1, Color.rgb(242,242,242 ), CFAlertDialog.CFAlertActionStyle.DEFAULT, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) -> .addButton(app_context.getString(R.string.LONG_URL_OPTION_1), -1, Color.rgb(242,242,242 ), CFAlertDialog.CFAlertActionStyle.DEFAULT, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) ->
{ {
event.invokeObserver(Collections.singletonList(data.get(0)), enums.etype.open_link_new_tab); event.invokeObserver(Collections.singletonList(data.get(0)), enums.etype.open_link_new_tab);
dialog.dismiss(); onFinish();
}) })
.addButton(strings.LONG_URL_OPTION_2, -1, Color.rgb(242,242,242 ), CFAlertDialog.CFAlertActionStyle.DEFAULT, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) -> .addButton(app_context.getString(R.string.LONG_URL_OPTION_2), -1, Color.rgb(242,242,242 ), CFAlertDialog.CFAlertActionStyle.DEFAULT, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) ->
{ {
event.invokeObserver(Collections.singletonList(data.get(0)), enums.etype.open_link_current_tab); event.invokeObserver(Collections.singletonList(data.get(0)), enums.etype.open_link_current_tab);
dialog.dismiss(); onFinish();
}) })
.addButton(strings.LONG_URL_OPTION_3, -1, Color.rgb(242,242,242 ), CFAlertDialog.CFAlertActionStyle.DEFAULT, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) -> .addButton(app_context.getString(R.string.LONG_URL_OPTION_3), -1, Color.rgb(242,242,242 ), CFAlertDialog.CFAlertActionStyle.DEFAULT, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) ->
{ {
event.invokeObserver(Collections.singletonList(data.get(0)), enums.etype.copy_link); event.invokeObserver(Collections.singletonList(data.get(0)), enums.etype.copy_link);
dialog.dismiss(); onFinish();
}); });
} }
@ -375,30 +398,43 @@ class messageManager
.setBackgroundColor(app_context.getResources().getColor(R.color.holo_dark_gray_alpha)) .setBackgroundColor(app_context.getResources().getColor(R.color.holo_dark_gray_alpha))
.setTextColor(app_context.getResources().getColor(R.color.black)) .setTextColor(app_context.getResources().getColor(R.color.black))
.setMessage(title + data.get(0).substring(0,size)+"...") .setMessage(title + data.get(0).substring(0,size)+"...")
.addButton(strings.LONG_URL_OPTION_1, -1, Color.rgb(242,242,242 ), CFAlertDialog.CFAlertActionStyle.DEFAULT, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) -> .addButton(app_context.getString(R.string.LONG_URL_OPTION_1), -1, Color.rgb(242,242,242 ), CFAlertDialog.CFAlertActionStyle.DEFAULT, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) ->
{ {
event.invokeObserver(Collections.singletonList(data.get(0)), enums.etype.open_link_new_tab); event.invokeObserver(Collections.singletonList(data.get(0)), enums.etype.open_link_new_tab);
dialog.dismiss(); onFinish();
}) })
.addButton(strings.LONG_URL_OPTION_2, -1, Color.rgb(242,242,242 ), CFAlertDialog.CFAlertActionStyle.DEFAULT, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) -> .addButton(app_context.getString(R.string.LONG_URL_OPTION_2), -1, Color.rgb(242,242,242 ), CFAlertDialog.CFAlertActionStyle.DEFAULT, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) ->
{ {
event.invokeObserver(Collections.singletonList(data.get(0)), enums.etype.open_link_current_tab); event.invokeObserver(Collections.singletonList(data.get(0)), enums.etype.open_link_current_tab);
dialog.dismiss(); onFinish();
}) })
.addButton(strings.LONG_URL_OPTION_3, -1, Color.rgb(242,242,242 ), CFAlertDialog.CFAlertActionStyle.DEFAULT, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) -> .addButton(app_context.getString(R.string.LONG_URL_OPTION_3), -1, Color.rgb(242,242,242 ), CFAlertDialog.CFAlertActionStyle.DEFAULT, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) ->
{ {
event.invokeObserver(Collections.singletonList(data.get(0)), enums.etype.copy_link); event.invokeObserver(Collections.singletonList(data.get(0)), enums.etype.copy_link);
dialog.dismiss(); onFinish();
}); });
} }
private void onResetApp()
{
is_popup_open = true;
popup_instance.setDialogStyle(CFAlertDialog.CFAlertStyle.BOTTOM_SHEET)
.setTitle(app_context.getString(R.string.ORBOT_CLEAR_TITLE))
.setBackgroundColor(app_context.getResources().getColor(R.color.holo_dark_gray_alpha))
.setTextColor(app_context.getResources().getColor(R.color.black))
.setMessage(app_context.getString(R.string.ORBOT_CLEAR_DESC))
.onDismissListener(dialog -> is_popup_open = false)
.addButton(app_context.getString(R.string.ORBOT_CLEAR_BT_1), -1, -1, CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.END, (tempDialog, which) ->
onFinish());
}
private void popupDownloadFull(){ private void popupDownloadFull(){
String url = data.get(0); String url = data.get(0);
String file = data.get(1); String file = data.get(1);
String title = data.get(2); String title = data.get(2);
String data_local = strings.LONG_URL_MESSAGE; String data_local = app_context.getString(R.string.LONG_URL_MESSAGE);
int size = url.length(); int size = url.length();
if(size>35){ if(size>35){
@ -424,40 +460,40 @@ class messageManager
.setTextColor(app_context.getResources().getColor(R.color.black)) .setTextColor(app_context.getResources().getColor(R.color.black))
.setMessage(data_local) .setMessage(data_local)
.addButton(strings.LONG_URL_FULL_OPTION_1, -1, Color.rgb(242,242,242 ), CFAlertDialog.CFAlertActionStyle.DEFAULT, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) -> .addButton(app_context.getString(R.string.LONG_URL_FULL_OPTION_1), -1, Color.rgb(242,242,242 ), CFAlertDialog.CFAlertActionStyle.DEFAULT, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) ->
{ {
event.invokeObserver(Collections.singletonList(url), enums.etype.open_link_new_tab); event.invokeObserver(Collections.singletonList(url), enums.etype.open_link_new_tab);
dialog.dismiss(); onFinish();
}) })
.addButton(strings.LONG_URL_FULL_OPTION_2, -1, Color.rgb(242,242,242 ), CFAlertDialog.CFAlertActionStyle.DEFAULT, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) -> .addButton(app_context.getString(R.string.LONG_URL_FULL_OPTION_2), -1, Color.rgb(242,242,242 ), CFAlertDialog.CFAlertActionStyle.DEFAULT, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) ->
{ {
event.invokeObserver(Collections.singletonList(url), enums.etype.open_link_current_tab); event.invokeObserver(Collections.singletonList(url), enums.etype.open_link_current_tab);
dialog.dismiss(); onFinish();
}) })
.addButton(strings.LONG_URL_FULL_OPTION_3, -1, Color.rgb(242,242,242 ), CFAlertDialog.CFAlertActionStyle.DEFAULT, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) -> .addButton(app_context.getString(R.string.LONG_URL_FULL_OPTION_3), -1, Color.rgb(242,242,242 ), CFAlertDialog.CFAlertActionStyle.DEFAULT, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) ->
{ {
event.invokeObserver(Collections.singletonList(url), enums.etype.copy_link); event.invokeObserver(Collections.singletonList(url), enums.etype.copy_link);
dialog.dismiss(); onFinish();
}) })
.addButton(strings.LONG_URL_FULL_OPTION_7, -1, Color.rgb(242,242,242 ), CFAlertDialog.CFAlertActionStyle.DEFAULT, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) -> .addButton(app_context.getString(R.string.LONG_URL_FULL_OPTION_7), -1, Color.rgb(242,242,242 ), CFAlertDialog.CFAlertActionStyle.DEFAULT, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) ->
{ {
event.invokeObserver(Collections.singletonList(file), enums.etype.download_file_manual); event.invokeObserver(Collections.singletonList(file), enums.etype.download_file_manual);
dialog.dismiss(); onFinish();
}) })
.addButton(strings.LONG_URL_FULL_OPTION_4, -1, Color.rgb(242,242,242 ), CFAlertDialog.CFAlertActionStyle.DEFAULT, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) -> .addButton(app_context.getString(R.string.LONG_URL_FULL_OPTION_4), -1, Color.rgb(242,242,242 ), CFAlertDialog.CFAlertActionStyle.DEFAULT, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) ->
{ {
event.invokeObserver(Collections.singletonList(file), enums.etype.open_link_new_tab); event.invokeObserver(Collections.singletonList(file), enums.etype.open_link_new_tab);
dialog.dismiss(); onFinish();
}) })
.addButton(strings.LONG_URL_FULL_OPTION_5, -1, Color.rgb(242,242,242 ), CFAlertDialog.CFAlertActionStyle.DEFAULT, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) -> .addButton(app_context.getString(R.string.LONG_URL_FULL_OPTION_5), -1, Color.rgb(242,242,242 ), CFAlertDialog.CFAlertActionStyle.DEFAULT, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) ->
{ {
event.invokeObserver(Collections.singletonList(file), enums.etype.open_link_current_tab); event.invokeObserver(Collections.singletonList(file), enums.etype.open_link_current_tab);
dialog.dismiss(); onFinish();
}) })
.addButton(strings.LONG_URL_FULL_OPTION_6, -1, Color.rgb(242,242,242 ), CFAlertDialog.CFAlertActionStyle.DEFAULT, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) -> .addButton(app_context.getString(R.string.LONG_URL_FULL_OPTION_6), -1, Color.rgb(242,242,242 ), CFAlertDialog.CFAlertActionStyle.DEFAULT, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) ->
{ {
event.invokeObserver(Collections.singletonList(file), enums.etype.copy_link); event.invokeObserver(Collections.singletonList(file), enums.etype.copy_link);
dialog.dismiss(); onFinish();
}); });
} }
@ -465,15 +501,15 @@ class messageManager
{ {
is_popup_open = true; is_popup_open = true;
popup_instance.setDialogStyle(CFAlertDialog.CFAlertStyle.BOTTOM_SHEET) popup_instance.setDialogStyle(CFAlertDialog.CFAlertStyle.BOTTOM_SHEET)
.setTitle(strings.ORBOT_INIT_TITLE) .setTitle(app_context.getString(R.string.ORBOT_INIT_TITLE))
.setBackgroundColor(app_context.getResources().getColor(R.color.holo_dark_gray_alpha)) .setBackgroundColor(app_context.getResources().getColor(R.color.holo_dark_gray_alpha))
.setTextColor(app_context.getResources().getColor(R.color.black)) .setTextColor(app_context.getResources().getColor(R.color.black))
.setMessage(strings.ORBOT_INIT_DESC) .setMessage(app_context.getString(R.string.ORBOT_INIT_DESC))
.onDismissListener(dialog -> is_popup_open = false) .onDismissListener(dialog -> is_popup_open = false)
.addButton(strings.ORBOT_INIT_BT_1, -1, -1, CFAlertDialog.CFAlertActionStyle.NEGATIVE, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (tempDialog, which) -> .addButton(app_context.getString(R.string.ORBOT_INIT_BT_1), -1, -1, CFAlertDialog.CFAlertActionStyle.NEGATIVE, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (tempDialog, which) ->
tempDialog.dismiss()).addButton(strings.ORBOT_INIT_BT_2, -1, -1, CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) -> onFinish()).addButton(app_context.getString(R.string.ORBOT_INIT_BT_2), -1, -1, CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) ->
{ {
dialog.dismiss(); onFinish();
final Handler handler = new Handler(); final Handler handler = new Handler();
handler.postDelayed(() -> handler.postDelayed(() ->
@ -482,15 +518,41 @@ class messageManager
}); });
} }
private void sendBridgeMail()
{
popup_instance.setDialogStyle(CFAlertDialog.CFAlertStyle.BOTTOM_SHEET)
.setTitle(app_context.getString(R.string.BRIDGE_MAIL_TITLE))
.onDismissListener(dialog -> is_popup_open = false)
.setBackgroundColor(app_context.getResources().getColor(R.color.holo_dark_gray_alpha))
.setTextColor(app_context.getResources().getColor(R.color.black))
.setMessage(app_context.getString(R.string.BRIDGE_MAIL_MESSAGE))
.addButton(app_context.getString(R.string.BRIDGE_MAIL_POSITIVE), -1, -1, CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.END, (dialog, which) ->
{
onFinish();
final Handler handler = new Handler();
Runnable runnable = () ->
{
try
{
helperMethod.sendBridgeEmail(app_context);
onFinish();
}catch (Exception ex){
createMessage(app_context,Collections.singletonList(app_context.getString(R.string.NOT_SUPPORTED_MESSAGE)),enums.etype.on_not_support);
}
};
handler.postDelayed(runnable, 250);
});
}
private void versionWarning() private void versionWarning()
{ {
popup_instance.setDialogStyle(CFAlertDialog.CFAlertStyle.BOTTOM_SHEET) popup_instance.setDialogStyle(CFAlertDialog.CFAlertStyle.BOTTOM_SHEET)
.onDismissListener(dialog -> is_popup_open = false) .onDismissListener(dialog -> is_popup_open = false)
.setTitle(strings.VERSION_TITLE) .setTitle(app_context.getString(R.string.VERSION_TITLE))
.setBackgroundColor(app_context.getResources().getColor(R.color.holo_dark_gray_alpha)) .setBackgroundColor(app_context.getResources().getColor(R.color.holo_dark_gray_alpha))
.setTextColor(app_context.getResources().getColor(R.color.black)) .setTextColor(app_context.getResources().getColor(R.color.black))
.setMessage(strings.VERSION_DESC) .setMessage(app_context.getString(R.string.VERSION_DESC))
.addButton(strings.VERSION_BT_1, -1, -1, CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.END, (tempDialog, which) -> .addButton(app_context.getString(R.string.VERSION_BT_1), -1, -1, CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.END, (tempDialog, which) ->
{ {
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(constants.GENESIS_UPDATE_URL + data.get(0))); Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(constants.GENESIS_UPDATE_URL + data.get(0)));
app_context.startActivity(browserIntent); app_context.startActivity(browserIntent);
@ -499,13 +561,13 @@ class messageManager
private void torBanned() private void torBanned()
{ {
isDialogDismissed = true; /*isDialogDismissed = true;
popup_instance.setDialogStyle(CFAlertDialog.CFAlertStyle.BOTTOM_SHEET) popup_instance.setDialogStyle(CFAlertDialog.CFAlertStyle.BOTTOM_SHEET)
.setTitle(strings.BANNED_TITLE) .setTitle(app_context.getString(R.string.BANNED_TITLE)
.setBackgroundColor(app_context.getResources().getColor(R.color.holo_dark_gray_alpha)) .setBackgroundColor(app_context.getResources().getColor(R.color.holo_dark_gray_alpha))
.setTextColor(app_context.getResources().getColor(R.color.black)) .setTextColor(app_context.getResources().getColor(R.color.black))
.setMessage(strings.BANNED_DESC) .setMessage(app_context.getString(R.string.BANNED_DESC)
.onDismissListener(dialog -> is_popup_open = false) .onDismissListener(dialog -> is_popup_open = false)
.onDismissListener(dialog -> startHome()); .onDismissListener(dialog -> startHome());
@ -521,9 +583,9 @@ class messageManager
popup_instance.addButton(btn_text, -1, -1, CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (tempDialog, which) -> popup_instance.addButton(btn_text, -1, -1, CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (tempDialog, which) ->
{ {
isDialogDismissed = false; isDialogDismissed = false;
tempDialog.dismiss(); onFinish();
event.invokeObserver(Collections.singletonList(!status.sGateway), enums.etype.connect_vpn); event.invokeObserver(Collections.singletonList(!status.sGateway), enums.etype.connect_vpn);
}); });*/
} }
private void startHome(){ private void startHome(){
@ -534,9 +596,13 @@ class messageManager
} }
void onReset(){ void onReset(){
if(dialog_main!=null && dialog_main.isShowing() && !app_context.isFinishing()){ onFinish();
dialog_main = null;
}
private void onFinish(){
if(dialog_main!=null && dialog_main.isShowing() && !app_context.isFinishing() && !app_context.isFinishing()){
dialog_main.dismiss(); dialog_main.dismiss();
dialog_main = null;
} }
} }
@ -621,6 +687,14 @@ class messageManager
case on_long_press_with_link: case on_long_press_with_link:
popupDownloadFull(); popupDownloadFull();
break; break;
case on_bridge_mail:
sendBridgeMail();
break;
case on_not_support:
notSupportMessage();
break;
} }
dialog_main = popup_instance.show(); dialog_main = popup_instance.show();

View File

@ -8,6 +8,8 @@ import androidx.appcompat.app.AppCompatActivity;
import com.darkweb.genesissearchengine.constants.*; import com.darkweb.genesissearchengine.constants.*;
import com.darkweb.genesissearchengine.dataManager.dataController; import com.darkweb.genesissearchengine.dataManager.dataController;
import com.darkweb.genesissearchengine.helperManager.eventObserver; import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
import org.mozilla.gecko.PrefsHelper; import org.mozilla.gecko.PrefsHelper;
import org.torproject.android.service.TorService; import org.torproject.android.service.TorService;
import org.torproject.android.service.util.Prefs; import org.torproject.android.service.util.Prefs;
@ -35,8 +37,10 @@ class orbotManager
} }
void startOrbot(Context context){ void startOrbot(Context context){
orbotLocalConstants.bridges = status.sCustomBridge;
orbotLocalConstants.sIsManualBridge = status.sGatewayManual;
this.mAppContext = context; this.mAppContext = context;
Prefs.putBridgesEnabled(status.sGateway); Prefs.putBridgesEnabled(status.sGatewayManual|status.sGatewayAuto);
Intent mServiceIntent = new Intent(context, TorService.class); Intent mServiceIntent = new Intent(context, TorService.class);
mServiceIntent.setAction(ACTION_START); mServiceIntent.setAction(ACTION_START);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
@ -68,14 +72,6 @@ class orbotManager
/*------------------------------------------------------- POST TASK HANDLER -------------------------------------------------------*/ /*------------------------------------------------------- POST TASK HANDLER -------------------------------------------------------*/
void onClose(){
if(mAppContext!=null){
disableTorNotification();
//Intent intent = new Intent(orbotLocalConstants.sHomeContext, TorService.class);
//mAppContext.getApplicationContext().stopService(intent);
}
}
void setProxy(String url){ void setProxy(String url){
if(url.contains("boogle.store")){ if(url.contains("boogle.store")){
PrefsHelper.setPref(keys.PROXY_TYPE, 0); PrefsHelper.setPref(keys.PROXY_TYPE, 0);
@ -109,7 +105,6 @@ class orbotManager
PrefsHelper.setPref(keys.PROXY_CACHE,constants.PROXY_CACHE); PrefsHelper.setPref(keys.PROXY_CACHE,constants.PROXY_CACHE);
PrefsHelper.setPref(keys.PROXY_MEMORY,constants.PROXY_MEMORY); PrefsHelper.setPref(keys.PROXY_MEMORY,constants.PROXY_MEMORY);
PrefsHelper.setPref(keys.PROXY_USER_AGENT_OVERRIDE, constants.PROXY_USER_AGENT_OVERRIDE);
PrefsHelper.setPref(keys.PROXY_DO_NOT_TRACK_HEADER_ENABLED,constants.PROXY_DO_NOT_TRACK_HEADER_ENABLED); PrefsHelper.setPref(keys.PROXY_DO_NOT_TRACK_HEADER_ENABLED,constants.PROXY_DO_NOT_TRACK_HEADER_ENABLED);
PrefsHelper.setPref(keys.PROXY_DO_NOT_TRACK_HEADER_VALUE,constants.PROXY_DO_NOT_TRACK_HEADER_VALUE); PrefsHelper.setPref(keys.PROXY_DO_NOT_TRACK_HEADER_VALUE,constants.PROXY_DO_NOT_TRACK_HEADER_VALUE);
@ -124,8 +119,8 @@ class orbotManager
{ {
PrefsHelper.setPref("browser.cache.disk.enable",false); PrefsHelper.setPref("browser.cache.disk.enable",false);
PrefsHelper.setPref("browser.cache.memory.enable",true); PrefsHelper.setPref("browser.cache.memory.enable",true);
PrefsHelper.setPref(keys.PROXY_USER_AGENT_OVERRIDE, constants.PROXY_USER_AGENT_OVERRIDE);
PrefsHelper.setPref("browser.cache.disk.capacity",0); PrefsHelper.setPref("browser.cache.disk.capacity",0);
PrefsHelper.setPref("privacy.resistFingerprinting",true);
PrefsHelper.setPref("privacy.clearOnShutdown.cache",status.sHistoryStatus); PrefsHelper.setPref("privacy.clearOnShutdown.cache",status.sHistoryStatus);
PrefsHelper.setPref("privacy.clearOnShutdown.downloads",status.sHistoryStatus); PrefsHelper.setPref("privacy.clearOnShutdown.downloads",status.sHistoryStatus);
PrefsHelper.setPref("privacy.clearOnShutdown.formdata",status.sHistoryStatus); PrefsHelper.setPref("privacy.clearOnShutdown.formdata",status.sHistoryStatus);
@ -153,7 +148,9 @@ class orbotManager
mLogsStarted = true; mLogsStarted = true;
} }
else { else {
logs = logs.replace("(","").replace(":","_FERROR_").replace("NOTICE","").replace(")",""); logs = logs.replaceAll("[^a-zA-Z0-9%\\s+]", "");
logs = helperMethod.capitalizeString(logs);
logs = logs.replace("(","").replace(":","_FERROR_").replace("NOTICE","").replace(")","").replace("_FERROR_","");
} }

View File

@ -202,7 +202,7 @@ public class pluginController
dataController.getInstance().setBool(keys.IS_WELCOME_ENABLED,false); dataController.getInstance().setBool(keys.IS_WELCOME_ENABLED,false);
} }
else if(event_type.equals(enums.etype.ignore_abi)){ else if(event_type.equals(enums.etype.ignore_abi)){
mHomeController.ignoreAbiError(); //mHomeController.ignoreAbiError();
} }
else if(event_type.equals(enums.etype.reload)){ else if(event_type.equals(enums.etype.reload)){
if(orbotManager.getInstance().isOrbotRunning()) if(orbotManager.getInstance().isOrbotRunning())
@ -215,7 +215,6 @@ public class pluginController
} }
else if(event_type.equals(enums.etype.clear_history)){ else if(event_type.equals(enums.etype.clear_history)){
dataController.getInstance().clearHistory(); dataController.getInstance().clearHistory();
dataController.getInstance().clearSuggestions();
mContextManager.getHistoryController().onclearData(); mContextManager.getHistoryController().onclearData();
mHomeController.onClearSession(); mHomeController.onClearSession();
dataController.getInstance().clearTabs(); dataController.getInstance().clearTabs();

View File

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

View File

@ -7,6 +7,9 @@ import android.graphics.PorterDuff;
import android.graphics.Rect; import android.graphics.Rect;
import android.graphics.Region; import android.graphics.Region;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import androidx.annotation.IntRange;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import android.util.AttributeSet; import android.util.AttributeSet;
import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParser;
@ -14,10 +17,6 @@ import org.xmlpull.v1.XmlPullParserException;
import java.io.IOException; import java.io.IOException;
import androidx.annotation.IntRange;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
/** /**
* DrawableWrapper was added since API Level 23. But in v7 support library, it has annotation * DrawableWrapper was added since API Level 23. But in v7 support library, it has annotation
* "@RestrictTo(LIBRARY_GROUP)". Hence we should not extends it, so we create this wrapper for now. * "@RestrictTo(LIBRARY_GROUP)". Hence we should not extends it, so we create this wrapper for now.
@ -48,7 +47,7 @@ public class DrawableWrapper extends Drawable {
} }
@Override @Override
public ConstantState getConstantState() { public Drawable.ConstantState getConstantState() {
return mWrapped.getConstantState(); return mWrapped.getConstantState();
} }
@ -99,7 +98,7 @@ public class DrawableWrapper extends Drawable {
@Override @Override
public void inflate(Resources r, XmlPullParser parser, AttributeSet attrs) public void inflate(Resources r, XmlPullParser parser, AttributeSet attrs)
throws XmlPullParserException, IOException { throws XmlPullParserException, IOException {
mWrapped.inflate(r, parser, attrs); mWrapped.inflate(r, parser, attrs);
} }
@ -172,4 +171,4 @@ public class DrawableWrapper extends Drawable {
protected boolean onStateChange(int[] state) { protected boolean onStateChange(int[] state) {
return mWrapped.setState(state); return mWrapped.setState(state);
} }
} }

View File

@ -6,11 +6,10 @@ import android.graphics.Canvas;
import android.graphics.Path; import android.graphics.Path;
import android.graphics.Rect; import android.graphics.Rect;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.view.animation.Interpolator;
import android.view.animation.LinearInterpolator;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import android.view.animation.Interpolator;
import android.view.animation.LinearInterpolator;
public class ShiftDrawable extends DrawableWrapper { public class ShiftDrawable extends DrawableWrapper {
@ -104,7 +103,7 @@ public class ShiftDrawable extends DrawableWrapper {
private void updateBounds() { private void updateBounds() {
final Rect b = getBounds(); final Rect b = getBounds();
final int width = (int) ((float) b.width() * getLevel() / MAX_LEVEL); final int width = (int) ((float) b.width() * getLevel() / MAX_LEVEL);
final float radius = b.height() / 2.5f; final float radius = b.height() / 2f;
mVisibleRect.set(b.left, b.top, b.left + width, b.height()); mVisibleRect.set(b.left, b.top, b.left + width, b.height());
// draw round to head of progressbar. I know it looks stupid, don't blame me now. // draw round to head of progressbar. I know it looks stupid, don't blame me now.
@ -112,4 +111,4 @@ public class ShiftDrawable extends DrawableWrapper {
mPath.addRect(b.left, b.top, b.left + width - radius, b.height(), Path.Direction.CCW); mPath.addRect(b.left, b.top, b.left + width - radius, b.height(), Path.Direction.CCW);
mPath.addCircle(b.left + width - radius, radius, radius, Path.Direction.CCW); mPath.addCircle(b.left + width - radius, radius, radius, Path.Direction.CCW);
} }
} }

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<translate
xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_longAnimTime"
android:fromYDelta="100%p"
android:toYDelta="0%p"/>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<translate
xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_longAnimTime"
android:fromYDelta="0%p"
android:toYDelta="-100%p"/>

0
app/src/main/res/drawable-hdpi/duck_logo.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 106 KiB

After

Width:  |  Height:  |  Size: 106 KiB

0
app/src/main/res/drawable-hdpi/genesis_logo.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

0
app/src/main/res/drawable-hdpi/google_logo.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

View File

@ -0,0 +1,257 @@
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white">
<ScrollView
android:layout_width="match_parent"
android:isScrollContainer="true"
android:id="@+id/scollview"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:background="@color/white"
android:orientation="vertical"
android:paddingBottom="50dp"
android:layout_height="wrap_content">
<!-- Title Header -->
<LinearLayout
android:layout_width="match_parent"
android:background="@color/white"
android:layout_marginBottom="0dp"
android:orientation="horizontal"
android:layout_height="52dp">
<ImageButton
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_marginStart="10dp"
android:layout_marginBottom="0dp"
android:layout_marginTop="12dp"
android:id="@+id/newButton"
android:onClick="onClose"
android:scaleType="fitCenter"
android:tint="@color/black"
android:src="@drawable/back_arrow"
android:background="?attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/todo"/>
<TextView
android:textColor="@color/text_color_v1"
android:textSize="19sp"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="40"
android:layout_marginTop="12dp"
android:textStyle="bold"
android:layout_marginStart="30dp"
android:text="@string/bridge_header"
/>
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginBottom="20dp"
android:background="@color/white_dark" />
<!-- Title Header -->
<LinearLayout
android:layout_width="match_parent"
android:background="@color/white"
android:layout_marginBottom="0dp"
android:orientation="horizontal"
android:layout_height="65dp">
<TextView
android:textColor="@color/cursor_blue"
android:textSize="17.5sp"
android:layout_width="0dp"
android:textStyle="bold"
android:layout_height="wrap_content"
android:layout_weight="40"
android:layout_marginTop="10dp"
android:layout_marginStart="20dp"
android:text="@string/bridge_basic_settings"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:background="@color/clear_alpha"
android:layout_marginBottom="0dp"
android:layout_marginEnd = "20dp"
android:orientation="horizontal"
android:layout_height="wrap_content">
<TextView
android:textSize="16sp"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="40"
android:background="@color/clear_alpha"
android:layout_marginStart="20dp"
android:text="@string/bridge_desc"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_marginEnd = "20dp"
android:background="@color/clear_alpha"
android:layout_marginTop="8dp"
android:layout_marginBottom="5dp"
android:orientation="horizontal"
android:layout_height="wrap_content">
<TextView
android:textSize="16sp"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="40"
android:layout_marginStart="20dp"
android:textStyle="bold"
android:text="@string/bridge_Automatid_title"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:background="@color/clear_alpha"
android:layout_marginEnd = "10dp"
android:paddingEnd="10dp"
android:layout_marginBottom="0dp"
android:layout_marginTop="-12dp"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:orientation="horizontal"
android:layout_height="wrap_content"
tools:ignore="RtlSymmetry">
<Switch
android:id="@+id/bridgeSwitchAuto"
android:layout_width="wrap_content"
android:layout_marginStart="20dp"
android:layout_height="wrap_content"
android:text="@string/orbot_settings_bridges" />
</LinearLayout>
<LinearLayout
android:id="@+id/topPanel"
android:layout_width="match_parent"
android:background="@xml/sc_rounded_corner_bridge"
android:layout_marginStart="20dp"
android:layout_marginEnd = "20dp"
android:paddingEnd="10dp"
android:layout_marginBottom="0dp"
android:layout_marginTop="-8dp"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:orientation="vertical"
android:layout_height="wrap_content"
tools:ignore="RtlSymmetry">
<RadioGroup
android:layout_width="match_parent"
android:orientation="vertical"
android:id="@+id/proxyGroup"
android:paddingStart="10dp"
android:layout_height="match_parent" >
<RadioButton
android:id="@+id/bridge_obfs"
android:layout_width="match_parent"
android:checked="true"
android:onClick="onObfsChecked"
android:layout_height="wrap_content"
android:text="obfs4 (Recommended)" />
<RadioButton
android:id="@+id/bridge_china"
android:layout_width="match_parent"
android:onClick="onMeekChecked"
android:checked="false"
android:layout_height="wrap_content"
android:text="Meek-azure (China)" />
</RadioGroup>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_marginEnd = "20dp"
android:background="@color/clear_alpha"
android:layout_marginTop="8dp"
android:layout_marginBottom="5dp"
android:orientation="horizontal"
android:layout_height="wrap_content">
<TextView
android:textSize="16sp"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="40"
android:layout_marginStart="20dp"
android:textStyle="bold"
android:text="@string/bridge_Manual_desc"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:background="@color/clear_alpha"
android:layout_marginEnd = "10dp"
android:paddingEnd="10dp"
android:layout_marginBottom="0dp"
android:layout_marginTop="-12dp"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:orientation="horizontal"
android:layout_height="wrap_content"
tools:ignore="RtlSymmetry">
<Switch
android:id="@+id/bridgeSwitchManual"
android:layout_width="wrap_content"
android:layout_marginStart="20dp"
android:layout_height="wrap_content"
android:text="@string/orbot_settings_bridges" />
</LinearLayout>
<LinearLayout
android:id="@+id/bottomPanel"
android:layout_width="match_parent"
android:background="@xml/sc_rounded_corner_bridge"
android:paddingEnd="10dp"
android:layout_marginBottom="0dp"
android:layout_marginTop="-8dp"
android:paddingTop="10dp"
android:layout_marginStart="20dp"
android:layout_marginEnd = "20dp"
android:paddingBottom="10dp"
android:orientation="vertical"
android:layout_height="wrap_content"
android:focusableInTouchMode="true"
tools:ignore="RtlSymmetry">
<EditText
android:background="@xml/sc_generic_input"
android:textColorHighlight="@color/text_color_highlight_v1"
android:textCursorDrawable="@xml/sc_search_cursor_state"
android:id="@+id/port1"
android:layout_width="match_parent"
android:layout_height="45dp"
android:paddingLeft="30dp"
android:paddingRight="30dp"
android:layout_marginStart="15dp"
android:layout_marginEnd="15dp"
android:ems="10"
android:inputType="text"
android:maxLines="1"
android:hint="@string/bridge_port_hint"
android:textSize="14.5sp"
android:text="" />
<Button
android:layout_marginTop="15dp"
android:id="@+id/bridgeButton"
android:textSize="13sp"
android:layout_width="wrap_content"
android:textColor="@color/white"
android:paddingLeft="9dp"
android:onClick="requestBridges"
android:paddingRight="9dp"
android:layout_height="wrap_content"
android:background="@xml/sc_rounded_corner_suggestion_settings"
android:layout_marginStart="15dp"
android:text="@string/bridge_request" />
</LinearLayout>
</LinearLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
android:background="@color/landing_ease_blue"
>
<TextView
android:id="@+id/custom_slide_big_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textColor="@color/panel_background_main"
android:gravity="center"
android:layout_margin="12dp"
android:textStyle="bold"
android:textSize="28sp"/>
<TextView
android:id="@+id/custom_slide_big_text_sub"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textColor="@color/panel_background_main"
android:gravity="center"
android:layout_margin="12dp"
android:textStyle="bold"
android:textSize="16sp"
android:visibility="gone"
/>
<Button
android:id="@+id/custom_slide_button"
android:layout_width="120dp"
android:layout_height="40dp"
android:layout_margin="10dp"
android:background="@xml/round_drawable"
android:textColor="@color/panel_background_main"
android:visibility="gone"
/>
</LinearLayout>

View File

@ -20,7 +20,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginTop="0dp" android:layout_marginTop="0dp"
android:background="@color/clear_alpha_white" android:background="@color/white"
android:alpha="1" android:alpha="1"
tools:layout_editor_absoluteX="8dp" tools:layout_editor_absoluteX="8dp"
tools:layout_editor_absoluteY="8dp" > tools:layout_editor_absoluteY="8dp" >
@ -73,15 +73,15 @@
android:contentDescription="@string/todo" android:contentDescription="@string/todo"
android:onClick="onSwitchSearch" android:onClick="onSwitchSearch"
android:scaleType="fitCenter" android:scaleType="fitCenter"
android:src="@drawable/google_logo" /> android:src="@drawable/genesis_logo" />
<AutoCompleteTextView <AutoCompleteTextView
android:id="@+id/search" android:id="@+id/search"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginStart="5dp" android:layout_marginStart="5dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="0dp" android:layout_marginEnd="0dp"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp" android:layout_marginBottom="8dp"
android:layout_weight="1" android:layout_weight="1"
android:background="@xml/sc_generic_input" android:background="@xml/sc_generic_input"
@ -92,7 +92,7 @@
android:inputType="textNoSuggestions" android:inputType="textNoSuggestions"
android:importantForAutofill="no" android:importantForAutofill="no"
android:maxLines="1" android:maxLines="1"
android:paddingLeft="12dp" android:paddingLeft="20dp"
android:paddingRight="15dp" android:paddingRight="15dp"
android:selectAllOnFocus="true" android:selectAllOnFocus="true"
android:text="@string/homeUrl" android:text="@string/homeUrl"
@ -149,8 +149,8 @@
android:progressDrawable="@xml/sc_photon_progress" android:progressDrawable="@xml/sc_photon_progress"
app:shiftDuration="@integer/progress_shift_duration" app:shiftDuration="@integer/progress_shift_duration"
app:wrapShiftDrawable="true" app:wrapShiftDrawable="true"
android:layout_marginTop="53.5dp" android:layout_marginTop="51.9dp"
android:progress="50" android:progress="0"
android:max="10000" android:max="10000"
android:scaleY="0.7" android:scaleY="0.7"
tools:progress="0" tools:progress="0"
@ -160,7 +160,7 @@
android:id="@+id/splashScreen" android:id="@+id/splashScreen"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="@color/ease_blue" android:background="@color/landing_ease_blue"
android:clickable="true" android:clickable="true"
android:focusable="true"> android:focusable="true">
@ -259,17 +259,17 @@
<com.google.android.gms.ads.AdView xmlns:ads="http://schemas.android.com/apk/res-auto" <com.google.android.gms.ads.AdView xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/adView" android:id="@+id/adView"
android:layout_width="395dp" android:layout_width="395dp"
android:background="@color/holo_dark_gray"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentTop="true" android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" android:layout_centerHorizontal="true"
android:layout_marginTop="56dp" android:layout_marginTop="54.9dp"
android:alpha="0" android:alpha="0"
ads:adSize="SMART_BANNER" ads:adSize="BANNER"
ads:adUnitId="ca-app-pub-5074525529134731/7816565677" ads:adUnitId="ca-app-pub-5074525529134731/7816565677"
ads:layout_constraintEnd_toEndOf="parent" ads:layout_constraintEnd_toEndOf="parent"
ads:layout_constraintHorizontal_bias="0.5" ads:layout_constraintHorizontal_bias="0.5"
ads:layout_constraintStart_toStartOf="parent" ads:layout_constraintStart_toStartOf="parent"
app:elevation="10dp"
ads:layout_constraintTop_toTopOf="parent" /> ads:layout_constraintTop_toTopOf="parent" />

View File

@ -0,0 +1,43 @@
<RelativeLayout
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:background="@color/green_dark"
android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.darkweb.genesissearchengine.appManager.landingManager.SwipeDisabledViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:layout_marginStart="-10dp"
android:layout_marginTop="-10dp"
android:layout_marginEnd="-15dp"
android:layout_marginBottom="-10dp"
android:background="@color/white"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="25dp"
android:layout_marginBottom="25dp"
android:background="@xml/sc_rounded_corner"
android:onClick="nextPage"
android:text="@string/landing_next_page"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</RelativeLayout>

View File

@ -171,7 +171,53 @@
</LinearLayout> </LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_marginEnd = "20dp"
android:background="@color/clear_alpha"
android:layout_marginTop="30dp"
android:layout_marginBottom="5dp"
android:orientation="horizontal"
android:layout_height="wrap_content">
<TextView
android:textSize="16sp"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="40"
android:layout_marginStart="20dp"
android:textStyle="bold"
android:text="@string/orbot_option_title_reset"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:background="@color/clear_alpha"
android:layout_marginEnd = "10dp"
android:paddingEnd="10dp"
android:layout_marginBottom="0dp"
android:layout_marginTop="-12dp"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:orientation="horizontal"
android:layout_height="wrap_content"
tools:ignore="RtlSymmetry">
<TextView
android:textSize="16sp"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="40"
android:layout_marginStart="20dp"
android:text="@string/orbot_option_desc_reset"
/>
<Switch
android:id="@+id/reset"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="40"
android:onClick="onClearCache"
android:text="@string/orbot_option_desc_reset_button" />
</LinearLayout>
</LinearLayout> </LinearLayout>
</ScrollView> </ScrollView>

View File

@ -87,7 +87,7 @@
android:gravity="left|center_vertical" android:gravity="left|center_vertical"
android:onClick="onMenuItemInvoked" android:onClick="onMenuItemInvoked"
android:paddingLeft="15dp" android:paddingLeft="15dp"
android:text="New Tabs" android:text="@string/popup_new_tabs"
android:textSize="14dp" /> android:textSize="14dp" />
<Button <Button
@ -98,7 +98,7 @@
android:gravity="left|center_vertical" android:gravity="left|center_vertical"
android:onClick="onMenuItemInvoked" android:onClick="onMenuItemInvoked"
android:paddingLeft="15dp" android:paddingLeft="15dp"
android:text="Close Tab" android:text="@string/popup_close_tabs"
android:textSize="14dp" /> android:textSize="14dp" />
<Button <Button
@ -109,7 +109,7 @@
android:gravity="left|center_vertical" android:gravity="left|center_vertical"
android:onClick="onMenuItemInvoked" android:onClick="onMenuItemInvoked"
android:paddingLeft="15dp" android:paddingLeft="15dp"
android:text="Open Recent Tabs" android:text="@string/popup_open_Recent_tab"
android:textSize="14dp" /> android:textSize="14dp" />
<View <View
@ -118,6 +118,23 @@
android:layout_height="1dp" android:layout_height="1dp"
android:background="?android:attr/listDivider" /> android:background="?android:attr/listDivider" />
<Button
android:id="@+id/menu6"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@xml/sc_side_item"
android:gravity="left|center_vertical"
android:onClick="onMenuItemInvoked"
android:paddingLeft="15dp"
android:text="@string/popup_settings"
android:textSize="14dp" />
<View
android:id="@+id/divider4"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="?android:attr/listDivider" />
<Button <Button
android:id="@+id/menu8" android:id="@+id/menu8"
android:layout_width="match_parent" android:layout_width="match_parent"
@ -126,7 +143,7 @@
android:gravity="left|center_vertical" android:gravity="left|center_vertical"
android:onClick="onMenuItemInvoked" android:onClick="onMenuItemInvoked"
android:paddingLeft="15dp" android:paddingLeft="15dp"
android:text="Downloads" android:text="@string/popup_download"
android:textSize="14dp" /> android:textSize="14dp" />
<Button <Button
@ -137,20 +154,56 @@
android:gravity="left|center_vertical" android:gravity="left|center_vertical"
android:onClick="onMenuItemInvoked" android:onClick="onMenuItemInvoked"
android:paddingLeft="15dp" android:paddingLeft="15dp"
android:text="History" android:text="@string/popup_history"
android:textSize="14dp" /> android:textSize="14dp" />
<Button <Button
android:id="@+id/menu6" android:id="@+id/menu25"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="50dp" android:layout_height="50dp"
android:background="@xml/sc_side_item" android:background="@xml/sc_side_item"
android:gravity="left|center_vertical" android:gravity="left|center_vertical"
android:onClick="onMenuItemInvoked" android:onClick="onMenuItemInvoked"
android:paddingLeft="15dp" android:paddingLeft="15dp"
android:text="Settings" android:text="@string/popup_languages"
android:textSize="14dp" /> android:textSize="14dp" />
<LinearLayout
android:id="@+id/menu26"
android:background="@xml/sc_side_item"
android:layout_width="259dp"
android:layout_height="wrap_content"
android:layout_marginLeft="1dp"
android:layout_marginTop="1dp"
android:layout_marginRight="1dp"
android:orientation="horizontal"
android:onClick="onMenuItemInvoked"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent">
<Button
android:id="@+id/menu28"
android:layout_width="0dp"
android:layout_weight="3"
android:layout_height="50dp"
android:background="@xml/sc_side_item"
android:gravity="left|center_vertical"
android:clickable="false"
android:onClick="onMenuItemInvoked"
android:paddingLeft="15dp"
android:text="@string/popup_desktop"
android:textSize="14dp" />
<com.google.android.material.checkbox.MaterialCheckBox
android:id="@+id/menu27"
android:clickable="false"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="50dp"
android:background="@color/white"
android:onClick="onMenuItemInvoked"
android:gravity="left|center_vertical"
android:paddingLeft="15dp"
android:textSize="14dp" />
</LinearLayout>
<View <View
android:id="@+id/divider2" android:id="@+id/divider2"
android:layout_width="match_parent" android:layout_width="match_parent"
@ -165,7 +218,7 @@
android:gravity="left|center_vertical" android:gravity="left|center_vertical"
android:onClick="onMenuItemInvoked" android:onClick="onMenuItemInvoked"
android:paddingLeft="15dp" android:paddingLeft="15dp"
android:text="Bookmark This Page" android:text="@string/popup_bookmark_page"
android:textSize="14dp" /> android:textSize="14dp" />
<Button <Button
@ -176,7 +229,7 @@
android:gravity="left|center_vertical" android:gravity="left|center_vertical"
android:onClick="onMenuItemInvoked" android:onClick="onMenuItemInvoked"
android:paddingLeft="15dp" android:paddingLeft="15dp"
android:text="Open Bookmarks" android:text="@string/popup_open_bookmark"
android:textSize="14dp" /> android:textSize="14dp" />
<View <View
@ -193,7 +246,7 @@
android:gravity="left|center_vertical" android:gravity="left|center_vertical"
android:onClick="onMenuItemInvoked" android:onClick="onMenuItemInvoked"
android:paddingLeft="15dp" android:paddingLeft="15dp"
android:text="Report Website" android:text="@string/popup_report"
android:textSize="14dp" /> android:textSize="14dp" />
<Button <Button
@ -204,7 +257,7 @@
android:gravity="left|center_vertical" android:gravity="left|center_vertical"
android:onClick="onMenuItemInvoked" android:onClick="onMenuItemInvoked"
android:paddingLeft="15dp" android:paddingLeft="15dp"
android:text="Rate This App" android:text="@string/popup_rate"
android:textSize="14dp" /> android:textSize="14dp" />
<Button <Button
@ -215,7 +268,7 @@
android:gravity="left|center_vertical" android:gravity="left|center_vertical"
android:onClick="onMenuItemInvoked" android:onClick="onMenuItemInvoked"
android:paddingLeft="15dp" android:paddingLeft="15dp"
android:text="Share" android:text="@string/popup_share"
android:textSize="14dp" /> android:textSize="14dp" />
</LinearLayout> </LinearLayout>
</ScrollView> </ScrollView>

View File

@ -51,16 +51,16 @@
<View <View
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="1dp" android:layout_height="1dp"
android:layout_marginBottom="20dp" android:layout_marginBottom="10dp"
android:background="@color/white_dark" /> android:background="@color/white_dark" />
<!-- Title Header --> <!-- Title Header -->
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:background="@color/white" android:background="@color/white"
android:layout_marginBottom="0dp" android:layout_marginBottom="25dp"
android:orientation="horizontal" android:orientation="horizontal"
android:layout_height="65dp"> android:layout_height="wrap_content">
<TextView <TextView
android:textColor="@color/cursor_blue" android:textColor="@color/cursor_blue"
android:textSize="17.5sp" android:textSize="17.5sp"
@ -68,7 +68,7 @@
android:textStyle="bold" android:textStyle="bold"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="40" android:layout_weight="40"
android:layout_marginTop="10dp" android:layout_marginTop="00dp"
android:layout_marginStart="20dp" android:layout_marginStart="20dp"
android:text="@string/settings_basic_settings" android:text="@string/settings_basic_settings"
/> />
@ -76,15 +76,16 @@
<!-- Title Search Engine --> <!-- Title Search Engine -->
<LinearLayout <LinearLayout
android:layout_width="match_parent"
android:background="@color/white" android:background="@color/white"
android:layout_marginTop="7dp" android:layout_width="match_parent"
android:orientation="horizontal" android:orientation="horizontal"
android:layout_marginBottom="20dp"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<TextView <TextView
android:textSize="16sp" android:textSize="16sp"
android:layout_gravity="top"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="match_parent"
android:layout_weight="40" android:layout_weight="40"
android:layout_marginStart="20dp" android:layout_marginStart="20dp"
android:text="@string/settings_search_engine" android:text="@string/settings_search_engine"
@ -93,6 +94,7 @@
android:id="@+id/search_manager" android:id="@+id/search_manager"
android:textSize="12sp" android:textSize="12sp"
android:layout_width="150dp" android:layout_width="150dp"
android:paddingEnd="20dp"
android:layout_height="40dp" android:layout_height="40dp"
android:paddingRight="30dp" android:paddingRight="30dp"
android:paddingLeft="30dp" android:paddingLeft="30dp"
@ -100,15 +102,13 @@
android:background="@xml/sc_spinner_style_background" android:background="@xml/sc_spinner_style_background"
android:drawSelectorOnTop="true" android:drawSelectorOnTop="true"
android:entries="@array/search_engines" android:entries="@array/search_engines"
android:layout_marginTop="1dp"
style="@style/Widget.AppCompat.DropDownItem.Spinner" style="@style/Widget.AppCompat.DropDownItem.Spinner"
android:dropDownWidth="160dp" android:dropDownWidth="160dp"
android:popupBackground="@android:color/white" android:popupBackground="@android:color/white"
android:layout_marginTop="1dp"
android:overlapAnchor="false" android:overlapAnchor="false"
android:popupTheme="@style/AppTheme.PopupOverlay" android:popupTheme="@style/AppTheme.PopupOverlay"
android:popupElevation="3dp" android:popupElevation="3dp"
/> />
<ImageView android:layout_width="15dp" android:layout_height="15dp" <ImageView android:layout_width="15dp" android:layout_height="15dp"
android:layout_marginEnd="35dp" android:layout_marginEnd="35dp"
@ -121,15 +121,15 @@
<!-- Title Enable Javascript --> <!-- Title Enable Javascript -->
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:background="@color/white" android:layout_marginBottom="20dp"
android:layout_marginTop="20dp"
android:orientation="horizontal" android:orientation="horizontal"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<TextView <TextView
android:textSize="16sp" android:textSize="16sp"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="match_parent"
android:layout_weight="40" android:layout_weight="40"
android:layout_gravity="top"
android:layout_marginStart="20dp" android:layout_marginStart="20dp"
android:text="@string/settings_javascript" android:text="@string/settings_javascript"
/> />
@ -137,6 +137,7 @@
android:id="@+id/javascript_manager" android:id="@+id/javascript_manager"
android:textSize="12sp" android:textSize="12sp"
android:layout_width="150dp" android:layout_width="150dp"
android:paddingEnd="20dp"
android:layout_height="40dp" android:layout_height="40dp"
android:layout_marginTop="1dp" android:layout_marginTop="1dp"
android:paddingRight="30dp" android:paddingRight="30dp"
@ -165,13 +166,13 @@
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:background="@color/white" android:background="@color/white"
android:layout_marginTop="20dp" android:layout_marginBottom="20dp"
android:orientation="horizontal" android:orientation="horizontal"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<TextView <TextView
android:textSize="16sp" android:textSize="16sp"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="match_parent"
android:layout_weight="40" android:layout_weight="40"
android:layout_marginStart="20dp" android:layout_marginStart="20dp"
android:text="@string/settings_clear_history" android:text="@string/settings_clear_history"
@ -180,6 +181,7 @@
android:id="@+id/history_manager" android:id="@+id/history_manager"
android:textSize="12sp" android:textSize="12sp"
android:layout_width="150dp" android:layout_width="150dp"
android:paddingEnd="20dp"
android:layout_height="40dp" android:layout_height="40dp"
android:layout_marginTop="1dp" android:layout_marginTop="1dp"
android:paddingRight="30dp" android:paddingRight="30dp"
@ -208,21 +210,23 @@
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:background="@color/white" android:background="@color/white"
android:layout_marginTop="20dp" android:layout_marginBottom="20dp"
android:orientation="horizontal" android:orientation="horizontal"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<TextView <TextView
android:textSize="16sp" android:textSize="16sp"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="match_parent"
android:layout_weight="40" android:layout_weight="40"
android:layout_marginStart="20dp" android:layout_marginStart="20dp"
android:layout_gravity="top"
android:text="@string/settings_notification" android:text="@string/settings_notification"
/> />
<Spinner <Spinner
android:id="@+id/notification_manager" android:id="@+id/notification_manager"
android:textSize="12sp" android:textSize="12sp"
android:layout_width="150dp" android:layout_width="150dp"
android:paddingEnd="20dp"
android:layout_height="40dp" android:layout_height="40dp"
android:layout_marginTop="1dp" android:layout_marginTop="1dp"
android:paddingRight="30dp" android:paddingRight="30dp"
@ -248,14 +252,18 @@
</LinearLayout> </LinearLayout>
<!-- Title Header --> <!-- Title Header -->
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginBottom="0dp"
android:background="@color/white_dark" />
<!-- Title Header --> <!-- Title Header -->
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:background="@color/white" android:background="@color/white"
android:layout_marginBottom="0dp" android:layout_marginBottom="25dp"
android:layout_marginTop="20dp"
android:orientation="horizontal" android:orientation="horizontal"
android:layout_height="65dp"> android:layout_height="wrap_content">
<TextView <TextView
android:textColor="@color/cursor_blue" android:textColor="@color/cursor_blue"
android:textSize="17.5sp" android:textSize="17.5sp"
@ -279,10 +287,10 @@
android:id="@+id/font_size_percentage" android:id="@+id/font_size_percentage"
android:textSize="16sp" android:textSize="16sp"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="match_parent"
android:layout_weight="40" android:layout_weight="40"
android:layout_marginTop="10dp"
android:layout_marginStart="20dp" android:layout_marginStart="20dp"
android:layout_gravity="top"
android:text="@string/settings_adjust_font" android:text="@string/settings_adjust_font"
/> />
<SeekBar <SeekBar
@ -292,7 +300,7 @@
android:ems="10" android:ems="10"
android:progress="100" android:progress="100"
android:max="200" android:max="200"
android:layout_marginTop="-5dp" android:layout_marginTop="-15dp"
android:layout_marginEnd="18dp" android:layout_marginEnd="18dp"
android:layout_weight="1" android:layout_weight="1"
android:paddingRight="30dp" android:paddingRight="30dp"
@ -304,20 +312,22 @@
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:background="@color/white" android:background="@color/white"
android:layout_marginTop="20dp" android:layout_marginBottom="20dp"
android:orientation="horizontal" android:orientation="horizontal"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<TextView <TextView
android:textSize="16sp" android:textSize="16sp"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="match_parent"
android:layout_weight="40" android:layout_weight="40"
android:layout_marginStart="20dp" android:layout_marginStart="20dp"
android:layout_gravity="top"
android:text="@string/settings_manual_font" android:text="@string/settings_manual_font"
/> />
<Spinner <Spinner
android:id="@+id/font_adjustable" android:id="@+id/font_adjustable"
android:textSize="12sp" android:textSize="12sp"
android:paddingEnd="20dp"
android:layout_width="150dp" android:layout_width="150dp"
android:layout_height="40dp" android:layout_height="40dp"
android:layout_marginTop="1dp" android:layout_marginTop="1dp"
@ -343,13 +353,18 @@
android:contentDescription="@string/todo"/> android:contentDescription="@string/todo"/>
</LinearLayout> </LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginBottom="10dp"
android:background="@color/white_dark" />
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:background="@color/white" android:background="@color/white"
android:layout_marginBottom="0dp"
android:layout_marginTop="20dp"
android:orientation="horizontal" android:orientation="horizontal"
android:layout_height="65dp"> android:layout_marginBottom="25dp"
android:layout_height="wrap_content">
<TextView <TextView
android:textColor="@color/cursor_blue" android:textColor="@color/cursor_blue"
android:textSize="17.5sp" android:textSize="17.5sp"
@ -357,7 +372,6 @@
android:textStyle="bold" android:textStyle="bold"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="40" android:layout_weight="40"
android:layout_marginTop="10dp"
android:layout_marginStart="20dp" android:layout_marginStart="20dp"
android:text="@string/settings_cookies" android:text="@string/settings_cookies"
/> />
@ -367,21 +381,22 @@
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:background="@color/white" android:background="@color/white"
android:layout_marginTop="10dp"
android:orientation="horizontal" android:orientation="horizontal"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<TextView <TextView
android:textSize="16sp" android:textSize="16sp"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="match_parent"
android:layout_weight="40" android:layout_weight="40"
android:layout_marginStart="20dp" android:layout_marginStart="20dp"
android:layout_gravity="top"
android:text="@string/settings_cookie" android:text="@string/settings_cookie"
/> />
<Spinner <Spinner
android:id="@+id/cookies_manager" android:id="@+id/cookies_manager"
android:textSize="12sp" android:textSize="12sp"
android:layout_width="200dp" android:layout_width="200dp"
android:paddingEnd="20dp"
android:layout_height="40dp" android:layout_height="40dp"
android:layout_marginTop="1dp" android:layout_marginTop="1dp"
android:paddingRight="10dp" android:paddingRight="10dp"

0
app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml Normal file → Executable file
View File

View File

View File

@ -1,4 +1,4 @@
obfs4 38.229.33.140:57275 EC4F9DA66F520A094E5B534AA08DFC1AB5E95B64 cert=OJJtSTddonrjXMCWGX97lIagsGtGiFnUI6t/OGFbKtpvWiFEfS0sLBnhLmHUENLoW1soeg iat-mode=1 obfs4 212.21.66.66:20621 986E06A61EC62DC0DD58E0A1BB6EE54463EF408A cert=ifbMX0EZ6eqTfCuyiiR0LDEZVX2UVGHEFvqbu5qb6wCZELi5WYhEEWIIBek5MSvyTQx3CA iat-mode=0
obfs4 185.72.156.57:80 7CF242F28CFF8095DCCB32CC3F3DF6B7FD393612 cert=pYwVe/EMAHCin+wF85S2z/TyI49g0334jdgER3KznFHFP8iINqzxH6fr4q5tF6YGqpkBdQ iat-mode=0 obfs4 107.161.122.123:443 2AE7DECA0503D7EC3EC36E05A288DF02D253A8F6 cert=yDSCNEdxDFxjN/mCBKTN9inUQPZk/L4WMscpsYNDFZ2mE0hK6c+t6HYwWk7JwugzqA0qfg iat-mode=0
obfs4 194.135.89.229:443 90B4C8183C733782BA413DEE381E58DA4DBA647B cert=3h22RhXT25QH1658Y90bhJ/ueHtd8PBWTXTWZ+aXm0UGhlaeiyiF6DYxMKsjQDiLVDyqQg iat-mode=0 obfs4 92.223.72.163:8080 38C33A4956DD31CA29B0BE00135DB5D60B20EAFD cert=Av+pzqmvUCpPbjjiXCFClIEKdcDgB97cN3wfWbRGdHNC3PFck6dHbDow+hvr01vzjZmvVw iat-mode=0
meek_lite 0.0.2.0:2 97700DFE9F483596DDA6264C4D7DF7641E1E39CE url=https://meek.azureedge.net/ front=ajax.aspnetcdn.com meek_lite 0.0.2.0:2 97700DFE9F483596DDA6264C4D7DF7641E1E39CE url=https://meek.azureedge.net/ front=ajax.aspnetcdn.com

View File

@ -0,0 +1,313 @@
<resources>
<!-- Generated by Automatic String Resource Translation
--><!-- https://asrt.gluege.boerde.de
--><string name="app_name" translatable="false">Genesis</string>
<string name="SearchHint">Suchverlauf</string>
<string name="SearchHintMain">Suchen oder geben Sie die Webadresse ein</string>
<string name="homeUrl" translatable="false">https://genesis.onion</string>
<string name="errorTiyle">\ u0020 \ u0020 \ u0020Opps! Etwas ist schief gelaufen</string>
<string name="todo">ALLES</string>
<string name="projectName">Genesis-Suchmaschine</string>
<string name="loadingText">Online Freedom</string>
<string name="reload">Neu laden</string>
<string name="internetErrorMessage">Dies können die Probleme sein, mit denen Sie konfrontiert sind \ n \ n • Die Webseite oder Website ist möglicherweise ausgefallen \ n • Ihre Internetverbindung ist möglicherweise schlecht \ n • Sie verwenden möglicherweise einen Proxy \ n • Die Website ist möglicherweise durch eine Firewall blockiert</string>
<string name="title_activity_list_manager">list_manager</string>
<string name="title_activity_setting_controller">die Einstellungen</string>
<string name="file_provider_authority">com.darkweb.genesissearchengine.fileprovider</string>
<string name="preferences_messages_header">Mitteilungen</string>
<string name="preferences_sync_header">Synchronisieren</string>
<string name="messages_signature_title">Ihre Unterschrift</string>
<string name="messages_reply_title">Standardantwortaktion</string>
<string name="settings_basic_settings">Grundeinstellungen</string>
<string name="settings_header">die Einstellungen</string>
<string name="settings_search_engine">Suchmaschine</string>
<string name="settings_javascript">Javascript</string>
<string name="settings_clear_history">Verlauf automatisch löschen</string>
<string name="settings_font_title">Schriftarteneinstellungen</string>
<string name="settings_adjust_font">Kundenspezifische Schriftart</string>
<string name="settings_manual_font">Schriftart automatisch anpassen</string>
<string name="settings_cookies">Cookie-Einstellungen</string>
<string name="settings_cookie">Kekse</string>
<string name="settings_notification">Benachrichtigung verwalten</string>
<string name="bridge_basic_settings">Grundeinstellungen</string>
<string name="bridge_Automatid_title">Automatisch erstellen</string>
<string name="bridge_Manual_desc">Stellen Sie eine Brücke zur Verfügung, die ich kenne</string>
<string name="bridge_Auto_switch">Auto</string>
<string name="bridge_Manual_switch">Handbuch</string>
<string name="bridge_port_hint">Adresse: Port</string>
<string name="bridge_header">Brückeneinstellungen</string>
<string name="bridge_desc">Bridges sind nicht aufgeführte Tor-Relais, die das Blockieren von Verbindungen in das Tor-Netzwerk erschweren. Aufgrund der Art und Weise, wie einige Länder versuchen, Tor zu blockieren, funktionieren bestimmte Brücken in einigen Ländern, in anderen jedoch nicht</string>
<string name="bridge_default_title">Wählen Sie Standardbrücke</string>
<string name="bridge_request">Grundeinstellungen</string>
public <string name="WELCOME_MESSAGE_TITLE">Willkommen | Verstecktes Web-Gateway</string>
public <string name="WELCOME_MESSAGE_DESC">Diese Anwendung bietet Ihnen eine Plattform zum Suchen und Öffnen von versteckten Web-URLs. Hier einige Vorschläge \ n</string>
public <string name="WELCOME_MESSAGE_BT_1">Deep Web Online Market</string>
public <string name="WELCOME_MESSAGE_BT_2">Durchgesickerte Dokumente und Bücher</string>
public <string name="WELCOME_MESSAGE_BT_3">Dark Web News und Artikel</string>
public <string name="WELCOME_MESSAGE_BT_4">Geheime Software und Hacking Tools</string>
public <string name="WELCOME_MESSAGE_BT_5">Nicht mehr anzeigen</string>
public <string name="ABI_ERROR_TITLE">Ungültige Setup-Datei</string>
public <string name="ABI_ERROR_DESC">Sieht so aus, als hätten Sie die Installation durcheinander gebracht. Installieren Sie es entweder im Playstore oder folgen Sie dem Link</string>
public <string name="ABI_ERROR_BT_1">Lokales Upgrade</string>
public <string name="ABI_ERROR_BT_2">Aktualisieren Sie den Playstore</string>
public <string name="ABI_ERROR_BT_3">Mache trotzdem weiter</string>
public <string name="REPORT_URL_TITLE">Diese Website melden</string>
public <string name="REPORT_URL_DESC">Wenn Sie der Meinung sind, dass die URL illegal oder störend ist, melden Sie uns, damit wir unsere Datenbank aktualisieren können \ n</string>
public <string name="REPORT_URL_BT_1">Bericht</string>
public <string name="REPORT_URL_BT_2">Entlassen</string>
public <string name="ORBOT_INIT_TITLE">Initialisieren</string>
public <string name="ORBOT_INIT_DESC">Warten Sie mal! Während wir Sie mit verstecktem Web verbinden. Dies kann einige Minuten dauern \ n</string>
public <string name="ORBOT_INIT_BT_1">Entlassen</string>
public <string name="ORBOT_INIT_BT_2">Versuch es noch einmal</string>
public <string name="ORBOT_CLEAR_TITLE">Daten gelöscht</string>
public <string name="ORBOT_CLEAR_DESC">Genesis-Daten wurden gelöscht. Bitte versuchen Sie die Bewerbung von der Homepage aus zu starten \ n</string>
public <string name="ORBOT_CLEAR_BT_1">Entlassen</string>
public <string name="VERSION_TITLE">Update ausstehend</string>
public <string name="VERSION_DESC">Sie haben diese App eine Weile nicht aktualisiert. Bitte aktualisieren Sie sie, um die beste Leistung zu erzielen \ n</string>
public <string name="VERSION_BT_1">Aktualisieren</string>
public <string name="REPORT_SUCCESS_TITLE">URL erfolgreich gemeldet</string>
public <string name="REPORT_SUCCESS_DESC">URL wurde erfolgreich gemeldet. Es wird ungefähr eine Woche dauern, bis diese Website vollständig von unseren Servern entfernt ist \ n</string>
public <string name="REPORT_SUCCESS_BT_1">Entlassen</string>
public <string name="RATE_TITLE">Bewerten Sie uns</string>
public <string name="RATE_MESSAGE">Wir nehmen keine Spenden entgegen oder verdienen kein Geld mit dieser App. Wir versuchen, ein privates anonymes Internet zu schaffen \ n \ nWenn Sie der Meinung sind, dass diese App funktioniert, bewerten Sie uns bitte. Sie gibt uns Hoffnung und Kraft, weiterzumachen</string>
public <string name="RATE_POSITIVE">Gefällt mir diese App</string>
public <string name="RATE_NEGATIVE">Diese App gefällt mir nicht</string>
public <string name="RATE_SUCCESS_TITLE">Tut mir leid das zu hören!</string>
public <string name="RATE_SUCCESS_DESC">Wenn Sie Probleme haben und uns kontaktieren möchten, senden Sie uns bitte eine E-Mail an gamesolstudios@gmail.com. Wir werden versuchen, Ihr Problem so schnell wie möglich zu lösen</string>
public <string name="RATE_SUCCESS_BT_1">Send Mail</string>
public <string name="BOOKMARK_URL_BT_1">Lesezeichen</string>
public <string name="BOOKMARK_URL_BT_2">Entlassen</string>
public <string name="CLEAR_HISTORY_TITLE">Site-Speicher löschen?</string>
public <string name="CLEAR_HISTORY_DESC">Dadurch werden Daten für alle Sites gelöscht</string>
public <string name="CLEAR_HISTORY_BT_1">klar</string>
public <string name="CLEAR_HISTORY_BT_2">Entlassen</string>
public <string name="CLEAR_TAB_TITLE">Offene Tabs löschen?</string>
public <string name="CLEAR_TAB_DESC">Dadurch werden alle gespeicherten Registerkarten gelöscht</string>
public <string name="CLEAR_TAB_BT_1">klar</string>
public <string name="clear_bookmark_title">Site-Lesezeichen löschen?</string>
public <string name="clear_bookmark_desc">Dadurch werden Daten für alle gespeicherten Sites gelöscht \ n</string>
public <string name="clear_bookmark_bt1">klar</string>
public <string name="clear_bookmark_bt2">Entlassen</string>
public <string name="DOWNLOAD_TITLE">Benachrichtigung herunterladen</string>
public <string name="DOWNLOAD_MESSAGE">Datei herunterladen |</string>
public <string name="DOWNLOAD_POSITIVE">Herunterladen</string>
public <string name="BRIDGE_MAIL_TITLE">Neue Brücke anfordern</string>
public <string name="BRIDGE_MAIL_MESSAGE">Sie können eine Bridge-Adresse per E-Mail, im Internet oder durch Scannen eines Bridge-QR-Codes erhalten. Wählen Sie unten E-Mail , um eine Bridge-Adresse anzufordern. \ N \ nWenn Sie eine Adresse haben, kopieren Sie diese</string>
public <string name="BRIDGE_MAIL_POSITIVE">EMAIL</string>
public <string name="LONG_URL_TITLE">URL-Benachrichtigung</string>
public <string name="LONG_URL_MESSAGE" />
public <string name="LONG_URL_OPTION_1">In neuem Tab öffnen</string>
public <string name="LONG_URL_OPTION_2">In der Registerkarte "Aktuell" öffnen</string>
public <string name="LONG_URL_OPTION_3">In die Zwischenablage kopieren</string>
public <string name="LONG_URL_OPTION_4">Laden Sie diese Datei herunter</string>
public <string name="LONG_URL_FULL_MESSAGE">URL Beschreibung</string>
public <string name="LONG_URL_FULL_OPTION_1">Öffnen Sie die URL in einem neuen Tab</string>
public <string name="LONG_URL_FULL_OPTION_2">Öffnen Sie die URL im aktuellen Tab</string>
public <string name="LONG_URL_FULL_OPTION_3">URL in Zwischenablage kopieren</string>
public <string name="LONG_URL_FULL_OPTION_4">Öffne das Bild in einem neuen Tab</string>
public <string name="LONG_URL_FULL_OPTION_5">Öffnen Sie die Registerkarte "Bild aktuell"</string>
public <string name="LONG_URL_FULL_OPTION_6">Bild in Zwischenablage kopieren</string>
public <string name="LONG_URL_FULL_OPTION_7">Bilddatei herunterladen</string>
public <string name="BANNED_TITLE">Ist Tor in Ihrem Land verboten?</string>
public <string name="BANNED_DESC">Aktivieren Sie free GATEWAY, um durch gesperrte Konfiguration zu tunneln Verwenden Sie es nur, wenn tor in Ihrem Land verboten ist</string>
/*Tab Manager*/
public <string name="CLEAR_TABS">CLEAR TABS</string>
/*Bridge Manager*/
public <string name="CUSTOM_BRIDGE">obfs4</string>
/*Text Manager*/
public <string name="DARK_WEB">Verstecktes Web</string>
public <string name="EMPTY_STR" />
public <string name="EMPTY_SPACE" />
/*Settings Manager*/
public <string name="CUSTOM_FONTS">Benutzerdefinierte Schriftart</string>
public <string name="PERCENT_SIGN">%.</string>
public <string name="DEFAULT_LANGUAGE">ru</string>
/*Bookmark Manager*/
public <string name="CLEAR_BOOKMARK">LESEN SIE BUCHMARKE</string>
/*Home Manager*/
public <string name="BLANK_PAGE">ungefähr: leer</string>
/*Events*/
public <string name="APP_STARTED">APP_STARTED</string>
public <string name="PROXY_CHANGED">PROXY_CHANGED</string>
public <string name="APP_RESTARTED">APP_RESTARTED</string>
public <string name="APP_FINISHED">APP_FINISHED</string>
public <string name="SEARCH_SWITCH">SEARCH_SWITCH</string>
public <string name="SETTINGS_OPENED">SETTINGS_OPENED</string>
public <string name="URL_BOOKMARKED">URL_BOOKMARKED</string>
public <string name="BOOKMARK_OPENED" translatable="false">BOOKMARK_OPENED</string>
public <string name="TAB_OPENED">TAB_OPENED</string>
public <string name="GATEWAY_OPENED">GATEWAY_OPENED</string>
public <string name="HISTORY_OPENED">HISTORY_OPENED</string>
public <string name="HISTORY_TRIGGERED">HISTORY_TRIGGERED</string>
public <string name="BOOKMARK_TRIGGERED">BOOKMARK_TRIGGERED</string>
public <string name="TAB_TRIGGERED">TAB_TRIGGERED</string>
public <string name="URL_ERROR">URL_ERROR</string>
public <string name="URL_ERROR_NOT_LOADED">URL_ERROR_NOT_LOADED</string>
public <string name="PAGE_OPENED_SUCCESS">PAGE_OPENED_SUCCESS</string>
public <string name="HOME_INVOKED">HOME_INVOKED</string>
public <string name="SEARCH_INVOKED">SEARCH_INVOKED</string>
public <string name="MENU_INVOKED">MENU_INVOKED</string>
public <string name="ON_BACK">AUF DER RÜCKSEITE</string>
<string name="landing_next_page">Nächster</string>
<string name="listview_clear">klar</string>
<string name="popup_new_tabs">Neue Registerkarten</string>
<string name="popup_close_tabs">Tab schließen</string>
<string name="popup_open_Recent_tab">Öffnen Sie die letzten Registerkarten</string>
<string name="popup_languages">Sprache</string>
<string name="popup_download">Downloads</string>
<string name="popup_history">Geschichte</string>
<string name="popup_settings">die Einstellungen</string>
<string name="popup_bookmark_page">Ein Lesezeichen auf diese Seite setzen</string>
<string name="popup_open_bookmark">Offene Lesezeichen</string>
<string name="popup_report">Report Website</string>
<string name="popup_rate">Bewerte diese App</string>
<string name="popup_share">Teilen</string>
<string name="orbot_settings_warning">⚠ Warnung</string>
<string name="orbot_settings_bridges">Brücken aktivieren</string>
<string name="gateway_info">Gateway aktivieren</string>
<string name="gateway_button">Gateway aktivieren</string>
<string name="loading_please_wait">Laden, bitte warten</string>
<string name="orbot_option_title_reset">App beim Laden hängen geblieben</string>
<string name="orbot_option_desc_reset">Lager räumen</string>
<string name="orbot_option_desc_reset_button">Einstellungen öffnen</string>
<string name="orbot_header">Proxy-Einstellungen</string>
<string name="orbot_desc">Genesis Browser verbindet Sie mit dem Tor-Netzwerk, das von Tausenden von Freiwilligen auf der ganzen Welt betrieben wird! Können Ihnen diese Optionen helfen?</string>
<string name="orbot_option_title">Das Internet wird hier zensiert</string>
<string name="orbot_option_desc">Firewall umgehen</string>
<string name="orbot_option_warning_slow_speed">Bridges führt dazu, dass das Internet sehr langsam läuft. Verwenden Sie sie nur, wenn das Internet in Ihrem Land zensiert oder das Tor-Netzwerk blockiert ist</string>
<string name="bookmark_clear_history">Verlauf löschen</string>
<string name="tab_view_clear_bookmark">Lesezeichen löschen</string>
<string name="hint_default_suggession">BBC | Israel schlägt erneut zu</string>
<string name="notification_default_label">default.jpg</string>
<string name="notification_open_text">Öffnen</string>
<string name="tab_view_increment">1</string>
<string name="tab_view_search_tab">Registerkarten suchen</string>
<string name="tab_view_clear_tab">Tab löschen</string>
<string name="home_tab_text">1</string>
<string name="home_connect">Verbinden</string>
<string name="home_loading">Laden, bitte warten</string>
<string name="bridges_sometimes">"Manchmal braucht man eine Brücke, um nach Tor zu gelangen."</string>
<string name="action_more">"ERZÄHL MIR MEHR"</string>
<string name="vpn_setup">"Mit unserem integrierten VPN können Sie jeder App ermöglichen, Tor zu durchlaufen."</string>
<string name="vpn_setup_sub">"Das macht dich nicht anonym, aber es hilft dir, durch Firewalls zu kommen."</string>
<string name="action_vpn_choose">"APPS WÄHLEN"</string>
<string name="hello">"Hallo"</string>
<string name="welcome">"Willkommen bei Tor auf dem Handy."</string>
<string name="browser_the_internet">"Surfen Sie im Internet, wie Sie es erwarten."</string>
<string name="no_tracking">"Keine Verfolgung. Keine Zensur."</string>
<string name="error_m1">Diese Seite kann nicht erreicht werden</string>
<string name="error_m2">Während einer Verbindung ist ein Fehler aufgetreten</string>
<string name="error_m3">Die Seite, die Sie anzeigen möchten, kann nicht angezeigt werden, da die Authentizität der empfangenen Daten nicht überprüft werden konnte</string>
<string name="error_m4">Die Seite ist derzeit aus irgendeinem Grund nicht aktiv oder nicht verfügbar</string>
<string name="error_m5">Bitte wenden Sie sich an die Eigentümer der Website, um sie über dieses Problem zu informieren.</string>
<string name="error_m6" >Neu laden</string>
<string-array name="fonts">
<item>55 Prozent</item>
<item>70 Prozent</item>
<item>85 Prozent</item>
<item>100 Prozent</item>
<item>115 Prozent</item>
<item>130 Prozent</item>
<item>145 Prozent</item>
</string-array>
<string-array name="search_engines">
<item>Verstecktes Web</item>
<item>Google</item>
<item>Duck Duck Go</item>
</string-array>
<string-array name="boolean_option">
<item>aktiviert</item>
<item>Deaktiviert</item>
</string-array>
<string-array name="notification">
<item>Alles aktivieren</item>
<item>Alle deaktivieren</item>
<item>Keine Bandbreite</item>
</string-array>
<string-array name="cookies">
<item>Alles erlauben</item>
<item>Vertrauenswürdig zulassen</item>
<item>Keine zulassen</item>
<item>Besuch zulassen</item>
<item>Nicht-Tracker zulassen</item>
</string-array>
<!-- Generated by Automatic String Resource Translation
--><!-- https://asrt.gluege.boerde.de
--></resources>

View File

@ -0,0 +1,313 @@
<resources>
<!-- Generated by Automatic String Resource Translation
--><!-- https://asrt.gluege.boerde.de
--><string name="app_name" translatable="false">Genesis</string>
<string name="SearchHint">Cronologia delle ricerche</string>
<string name="SearchHintMain">Cerca o digita l\'indirizzo web</string>
<string name="homeUrl" translatable="false">https://genesis.onion</string>
<string name="errorTiyle">\ U0020 \ u0020 \ u0020Opps! Qualcosa è andato storto</string>
<string name="todo">TUTTI</string>
<string name="projectName">Motore di ricerca Genesis</string>
<string name="loadingText">Libertà online</string>
<string name="reload">Ricaricare</string>
<string name="internetErrorMessage">Questi potrebbero essere i problemi che stai riscontrando \ n \ n • Pagina Web o Sito Web potrebbero essere inattivi \ n • La tua connessione Internet potrebbe essere scarsa \ n • Potresti utilizzare un proxy \ n • Il sito Web potrebbe essere bloccato dal firewall</string>
<string name="title_activity_list_manager">list_manager</string>
<string name="title_activity_setting_controller">impostazioni</string>
<string name="file_provider_authority">com.darkweb.genesissearchengine.fileprovider</string>
<string name="preferences_messages_header">messaggi</string>
<string name="preferences_sync_header">Sync</string>
<string name="messages_signature_title">La tua firma</string>
<string name="messages_reply_title">Azione di risposta predefinita</string>
<string name="settings_basic_settings">Impostazioni di base</string>
<string name="settings_header">impostazioni</string>
<string name="settings_search_engine">Motore di ricerca</string>
<string name="settings_javascript">Javascript</string>
<string name="settings_clear_history">Cancella cronologia automatica</string>
<string name="settings_font_title">Impostazioni dei caratteri</string>
<string name="settings_adjust_font">Carattere personalizzato</string>
<string name="settings_manual_font">Carattere regolazione automatica</string>
<string name="settings_cookies">Impostazioni dei cookie</string>
<string name="settings_cookie">biscotti</string>
<string name="settings_notification">Gestisci notifica</string>
<string name="bridge_basic_settings">Impostazioni di base</string>
<string name="bridge_Automatid_title">Crea automaticamente</string>
<string name="bridge_Manual_desc">Fornire un ponte che conosco</string>
<string name="bridge_Auto_switch">Auto</string>
<string name="bridge_Manual_switch">Manuale</string>
<string name="bridge_port_hint">indirizzo: porta</string>
<string name="bridge_header">Impostazioni Bridge</string>
<string name="bridge_desc">I bridge sono relè Tor non elencati che rendono più difficile il blocco delle connessioni nella rete Tor. A causa di come alcuni paesi cercano di bloccare Tor, alcuni ponti funzionano in alcuni paesi ma non in altri</string>
<string name="bridge_default_title">Seleziona Bridge predefinito</string>
<string name="bridge_request">Impostazioni di base</string>
public <string name="WELCOME_MESSAGE_TITLE">Benvenuti | Gateway Web nascosto</string>
public <string name="WELCOME_MESSAGE_DESC">Questa applicazione fornisce una piattaforma per la ricerca e l\'apertura di URL Web nascosti. Ecco alcuni suggerimenti \ n</string>
public <string name="WELCOME_MESSAGE_BT_1">Deep Web Online Market</string>
public <string name="WELCOME_MESSAGE_BT_2">Documenti e libri trapelati</string>
public <string name="WELCOME_MESSAGE_BT_3">Notizie e articoli di Dark Web</string>
public <string name="WELCOME_MESSAGE_BT_4">Software segreti e strumenti di hacking</string>
public <string name="WELCOME_MESSAGE_BT_5">Non mostrare più</string>
public <string name="ABI_ERROR_TITLE">File di installazione non valido</string>
public <string name="ABI_ERROR_DESC">Sembra che tu abbia incasinato l\'installazione. Installalo dalla Playstore o segui il link</string>
public <string name="ABI_ERROR_BT_1">Aggiornamento locale</string>
public <string name="ABI_ERROR_BT_2">Aggiorna Playstore</string>
public <string name="ABI_ERROR_BT_3">Continua comunque</string>
public <string name="REPORT_URL_TITLE">Segnala questo sito Web</string>
public <string name="REPORT_URL_DESC">Se ritieni che l\'URL sia illegale o inquietante segnalaci in modo che possiamo aggiornare il nostro database \ n</string>
public <string name="REPORT_URL_BT_1">rapporto</string>
public <string name="REPORT_URL_BT_2">Respingere</string>
public <string name="ORBOT_INIT_TITLE">L\'inizializzazione</string>
public <string name="ORBOT_INIT_DESC">Attendere prego! Mentre ti colleghiamo al Web nascosto. Questa operazione potrebbe richiedere alcuni minuti \ n</string>
public <string name="ORBOT_INIT_BT_1">Respingere</string>
public <string name="ORBOT_INIT_BT_2">Riprova</string>
public <string name="ORBOT_CLEAR_TITLE">Dati cancellati</string>
public <string name="ORBOT_CLEAR_DESC">I dati della genesi sono stati cancellati. Prova ad avviare l\'applicazione dalla home page \ n</string>
public <string name="ORBOT_CLEAR_BT_1">Respingere</string>
public <string name="VERSION_TITLE">Aggiornamento in sospeso</string>
public <string name="VERSION_DESC">Non hai aggiornato questa app per un po \', aggiornala per ottenere le migliori prestazioni \ n</string>
public <string name="VERSION_BT_1">Aggiornare</string>
public <string name="REPORT_SUCCESS_TITLE">URL segnalato correttamente</string>
public <string name="REPORT_SUCCESS_DESC">L\'URL è stato segnalato correttamente. Ci vorrà circa una settimana per rimuovere completamente questo sito Web dai nostri server \ n</string>
public <string name="REPORT_SUCCESS_BT_1">Respingere</string>
public <string name="RATE_TITLE">Valuta gli Stati Uniti</string>
public <string name="RATE_MESSAGE">Non accettiamo donazioni o guadagniamo denaro da questa app. Stiamo cercando di creare un Internet anonimo privato \ n \ nSe pensi che questa app funzioni, ti preghiamo di valutarci, ci dà speranza e forza per continuare</string>
public <string name="RATE_POSITIVE">Mi piace questa app</string>
public <string name="RATE_NEGATIVE">Non ti piace questa app</string>
public <string name="RATE_SUCCESS_TITLE">Mi dispiace sentirlo!</string>
public <string name="RATE_SUCCESS_DESC">Se hai problemi e vuoi contattarci, scrivici a gamesolstudios@gmail.com. Proveremo a risolvere il tuo problema il prima possibile</string>
public <string name="RATE_SUCCESS_BT_1">Invia posta</string>
public <string name="BOOKMARK_URL_BT_1">Segnalibro</string>
public <string name="BOOKMARK_URL_BT_2">Respingere</string>
public <string name="CLEAR_HISTORY_TITLE">Cancella l\'archiviazione del sito?</string>
public <string name="CLEAR_HISTORY_DESC">Questo cancellerà i dati per tutti i siti</string>
public <string name="CLEAR_HISTORY_BT_1">Chiaro</string>
public <string name="CLEAR_HISTORY_BT_2">Respingere</string>
public <string name="CLEAR_TAB_TITLE">Cancella le schede aperte?</string>
public <string name="CLEAR_TAB_DESC">Questo cancellerà tutte le schede memorizzate</string>
public <string name="CLEAR_TAB_BT_1">Chiaro</string>
public <string name="clear_bookmark_title">Cancellare il segnalibro del sito?</string>
public <string name="clear_bookmark_desc">Ciò cancellerà i dati per tutti i siti salvati \ n</string>
public <string name="clear_bookmark_bt1">Chiaro</string>
public <string name="clear_bookmark_bt2">Respingere</string>
public <string name="DOWNLOAD_TITLE">Scarica la notifica</string>
public <string name="DOWNLOAD_MESSAGE">Download File |</string>
public <string name="DOWNLOAD_POSITIVE">Scarica</string>
public <string name="BRIDGE_MAIL_TITLE">Richiedi nuovo ponte</string>
public <string name="BRIDGE_MAIL_MESSAGE">Puoi ottenere un indirizzo bridge tramite e-mail, web o scansionando un codice QR bridge. Seleziona Email in basso per richiedere un indirizzo bridge. \ N \ nUna volta che hai un indirizzo, copia</string>
public <string name="BRIDGE_MAIL_POSITIVE">E-MAIL</string>
public <string name="LONG_URL_TITLE">Notifica URL</string>
public <string name="LONG_URL_MESSAGE" />
public <string name="LONG_URL_OPTION_1">Apri in una nuova scheda</string>
public <string name="LONG_URL_OPTION_2">Apri nella scheda corrente</string>
public <string name="LONG_URL_OPTION_3">Copia negli appunti</string>
public <string name="LONG_URL_OPTION_4">Scarica questo file</string>
public <string name="LONG_URL_FULL_MESSAGE">Descrizione URL</string>
public <string name="LONG_URL_FULL_OPTION_1">Apri l\'URL in una nuova scheda</string>
public <string name="LONG_URL_FULL_OPTION_2">Apri l\'URL nella scheda corrente</string>
public <string name="LONG_URL_FULL_OPTION_3">Copia l\'URL negli appunti</string>
public <string name="LONG_URL_FULL_OPTION_4">Apri l\'immagine in una nuova scheda</string>
public <string name="LONG_URL_FULL_OPTION_5">Apri la scheda corrente dell\'immagine</string>
public <string name="LONG_URL_FULL_OPTION_6">Copia l\'immagine negli appunti</string>
public <string name="LONG_URL_FULL_OPTION_7">Scarica il file immagine</string>
public <string name="BANNED_TITLE">Tor è vietato nel tuo paese?</string>
public <string name="BANNED_DESC">Abilita GATEWAY gratuito per tunnel attraverso la configurazione vietata | Usalo solo se tor è vietato nel tuo paese</string>
/*Tab Manager*/
public <string name="CLEAR_TABS">SCHEDE TRASPARENTI</string>
/*Bridge Manager*/
public <string name="CUSTOM_BRIDGE">obfs4</string>
/*Text Manager*/
public <string name="DARK_WEB">Hidden Web</string>
public <string name="EMPTY_STR" />
public <string name="EMPTY_SPACE" />
/*Settings Manager*/
public <string name="CUSTOM_FONTS">Carattere personalizzato</string>
public <string name="PERCENT_SIGN">%</string>
public <string name="DEFAULT_LANGUAGE">ru</string>
/*Bookmark Manager*/
public <string name="CLEAR_BOOKMARK">LIBRO SEGNALIBRO</string>
/*Home Manager*/
public <string name="BLANK_PAGE">su bianco</string>
/*Events*/
public <string name="APP_STARTED">APP_STARTED</string>
public <string name="PROXY_CHANGED">PROXY_CHANGED</string>
public <string name="APP_RESTARTED">APP_RESTARTED</string>
public <string name="APP_FINISHED">APP_FINISHED</string>
public <string name="SEARCH_SWITCH">SEARCH_SWITCH</string>
public <string name="SETTINGS_OPENED">SETTINGS_OPENED</string>
public <string name="URL_BOOKMARKED">URL_BOOKMARKED</string>
public <string name="BOOKMARK_OPENED" translatable="false">BOOKMARK_OPENED</string>
public <string name="TAB_OPENED">TAB_OPENED</string>
public <string name="GATEWAY_OPENED">GATEWAY_OPENED</string>
public <string name="HISTORY_OPENED">HISTORY_OPENED</string>
public <string name="HISTORY_TRIGGERED">HISTORY_TRIGGERED</string>
public <string name="BOOKMARK_TRIGGERED">BOOKMARK_TRIGGERED</string>
public <string name="TAB_TRIGGERED">TAB_TRIGGERED</string>
public <string name="URL_ERROR">URL_ERROR</string>
public <string name="URL_ERROR_NOT_LOADED">URL_ERROR_NOT_LOADED</string>
public <string name="PAGE_OPENED_SUCCESS">PAGE_OPENED_SUCCESS</string>
public <string name="HOME_INVOKED">HOME_INVOKED</string>
public <string name="SEARCH_INVOKED">SEARCH_INVOKED</string>
public <string name="MENU_INVOKED">MENU_INVOKED</string>
public <string name="ON_BACK">ON_BACK</string>
<string name="landing_next_page">Il prossimo</string>
<string name="listview_clear">Chiaro</string>
<string name="popup_new_tabs">Nuove schede</string>
<string name="popup_close_tabs">Chiudi scheda</string>
<string name="popup_open_Recent_tab">Apri le schede recenti</string>
<string name="popup_languages">linguaggio</string>
<string name="popup_download">download</string>
<string name="popup_history">Storia</string>
<string name="popup_settings">impostazioni</string>
<string name="popup_bookmark_page">Metti questa pagina nei preferiti</string>
<string name="popup_open_bookmark">Apri segnalibri</string>
<string name="popup_report">Segnala sito Web</string>
<string name="popup_rate">Valuta questa applicazione</string>
<string name="popup_share">Condividere</string>
<string name="orbot_settings_warning">⚠ Avvertenza</string>
<string name="orbot_settings_bridges">Abilita ponti</string>
<string name="gateway_info">Abilita gateway</string>
<string name="gateway_button">Abilita gateway</string>
<string name="loading_please_wait">Attendere il caricamento prego</string>
<string name="orbot_option_title_reset">App bloccata nel caricamento</string>
<string name="orbot_option_desc_reset">Spazio pulito</string>
<string name="orbot_option_desc_reset_button">Apri Impostazioni</string>
<string name="orbot_header">Impostazioni proxy</string>
<string name="orbot_desc">Genesis Browser ti collega alla rete Tor gestita da migliaia di volontari in tutto il mondo! Queste opzioni possono aiutarti?</string>
<string name="orbot_option_title">Internet è censurato qui</string>
<string name="orbot_option_desc">Bypass Firewall</string>
<string name="orbot_option_warning_slow_speed">Bridges causa il rallentamento di Internet. Usali solo se Internet è censurato nel tuo paese o la rete Tor è bloccata</string>
<string name="bookmark_clear_history">Cancellare la cronologia</string>
<string name="tab_view_clear_bookmark">Cancella segnalibro</string>
<string name="hint_default_suggession">BBC | Israele colpisce ancora</string>
<string name="notification_default_label">default.jpg</string>
<string name="notification_open_text">Aperto</string>
<string name="tab_view_increment">1</string>
<string name="tab_view_search_tab">Schede di ricerca</string>
<string name="tab_view_clear_tab">Cancella scheda</string>
<string name="home_tab_text">1</string>
<string name="home_connect">Collegare</string>
<string name="home_loading">Attendere il caricamento prego</string>
<string name="bridges_sometimes">"A volte hai bisogno di un ponte per arrivare a Tor."</string>
<string name="action_more">"DIMMI DI PIÙ"</string>
<string name="vpn_setup">"Puoi abilitare qualsiasi app a passare attraverso Tor utilizzando la nostra VPN integrata."</string>
<string name="vpn_setup_sub">"Questo non ti renderà anonimo, ma ti aiuterà a superare i firewall."</string>
<string name="action_vpn_choose">"SCEGLI LE APP"</string>
<string name="hello">"Ciao"</string>
<string name="welcome">"Benvenuto in Tor su dispositivo mobile."</string>
<string name="browser_the_internet">"Naviga in Internet come ti aspetti che dovresti".</string>
<string name="no_tracking">"Nessun monitoraggio. Nessuna censura."</string>
<string name="error_m1">Questo sito non è raggiungibile</string>
<string name="error_m2">Si è verificato un errore durante una connessione</string>
<string name="error_m3">Non è possibile visualizzare la pagina che si sta tentando di visualizzare perché non è stato possibile verificare l\'autenticità dei dati ricevuti</string>
<string name="error_m4">La pagina al momento non è attiva o inattiva per qualche motivo</string>
<string name="error_m5">Si prega di contattare i proprietari del sito Web per informarli di questo problema.</string>
<string name="error_m6" >Ricaricare</string>
<string-array name="fonts">
<item>55 per cento</item>
<item>70 per cento</item>
<item>85 per cento</item>
<item>100 percento</item>
<item>115 percento</item>
<item>130 per cento</item>
<item>145 per cento</item>
</string-array>
<string-array name="search_engines">
<item>Hidden Web</item>
<item>Google</item>
<item>Duck Duck Go</item>
</string-array>
<string-array name="boolean_option">
<item>Abilitato</item>
<item>Disabilitato</item>
</string-array>
<string-array name="notification">
<item>Attiva tutto</item>
<item>Disabilitare tutto</item>
<item>Nessuna larghezza di banda</item>
</string-array>
<string-array name="cookies">
<item>Permettere tutto</item>
<item>Consenti affidabile</item>
<item>Consenti nessuno</item>
<item>Consenti visitato</item>
<item>Allow Non Tracker</item>
</string-array>
<!-- Generated by Automatic String Resource Translation
--><!-- https://asrt.gluege.boerde.de
--></resources>

View File

@ -0,0 +1,313 @@
<resources>
<!-- Generated by Automatic String Resource Translation
--><!-- https://asrt.gluege.boerde.de
--><string name="app_name" translatable="false">Genesis</string>
<string name="SearchHint">Histórico de busca</string>
<string name="SearchHintMain">Pesquise ou digite o endereço da web</string>
<string name="homeUrl" translatable="false">https://genesis.onion</string>
<string name="errorTiyle">\ u0020 \ u0020 \ u0020Opps! Alguma coisa deu errado</string>
<string name="todo">TODO</string>
<string name="projectName">Genesis Search Engine</string>
<string name="loadingText">Liberdade Online</string>
<string name="reload">recarregar</string>
<string name="internetErrorMessage">Estes podem ser os problemas que você está enfrentando \ n \ n • Página ou site pode estar inoperante \ n • Sua conexão com a Internet pode estar ruim \ n • Você pode estar usando um proxy \ n • O site pode estar bloqueado por firewall</string>
<string name="title_activity_list_manager">list_manager</string>
<string name="title_activity_setting_controller">Configurações</string>
<string name="file_provider_authority">com.darkweb.genesissearchengine.fileprovider</string>
<string name="preferences_messages_header">Mensagens</string>
<string name="preferences_sync_header">Sincronizar</string>
<string name="messages_signature_title">Sua assinatura</string>
<string name="messages_reply_title">Ação de resposta padrão</string>
<string name="settings_basic_settings">Configurações básicas</string>
<string name="settings_header">Configurações</string>
<string name="settings_search_engine">Mecanismo de busca</string>
<string name="settings_javascript">Javascript</string>
<string name="settings_clear_history">Limpar histórico automaticamente</string>
<string name="settings_font_title">Configurações de fonte</string>
<string name="settings_adjust_font">Fonte Personalizada</string>
<string name="settings_manual_font">Fonte de ajuste automático</string>
<string name="settings_cookies">Configurações de cookies</string>
<string name="settings_cookie">bolinhos</string>
<string name="settings_notification">Gerenciar notificação</string>
<string name="bridge_basic_settings">Configurações básicas</string>
<string name="bridge_Automatid_title">Criar automaticamente</string>
<string name="bridge_Manual_desc">Forneça uma ponte que eu conheço</string>
<string name="bridge_Auto_switch">Auto</string>
<string name="bridge_Manual_switch">Manual</string>
<string name="bridge_port_hint">endereço: porta</string>
<string name="bridge_header">Configurações de ponte</string>
<string name="bridge_desc">Pontes são relés Tor não listados que dificultam o bloqueio de conexões na rede Tor. Por causa de como alguns países tentam bloquear o Tor, certas pontes funcionam em alguns países, mas não em outros.</string>
<string name="bridge_default_title">Selecionar ponte padrão</string>
<string name="bridge_request">Configurações básicas</string>
public <string name="WELCOME_MESSAGE_TITLE">Bem-vindo | Gateway da Web oculto</string>
public <string name="WELCOME_MESSAGE_DESC">Este aplicativo fornece uma plataforma para pesquisar e abrir URLs da Web ocultos. Aqui estão algumas sugestões \ n</string>
public <string name="WELCOME_MESSAGE_BT_1">Mercado Online da Deep Web</string>
public <string name="WELCOME_MESSAGE_BT_2">Documentos e Livros Vazados</string>
public <string name="WELCOME_MESSAGE_BT_3">Notícias e Artigos da Dark Web</string>
public <string name="WELCOME_MESSAGE_BT_4">Softwares secretos e ferramentas de hackers</string>
public <string name="WELCOME_MESSAGE_BT_5">Não mostre novamente</string>
public <string name="ABI_ERROR_TITLE">Arquivo de instalação inválido</string>
public <string name="ABI_ERROR_DESC">Parece que você estragou a instalação. Instale-o no playstore ou siga o link</string>
public <string name="ABI_ERROR_BT_1">Atualização local</string>
public <string name="ABI_ERROR_BT_2">Atualizar Playstore</string>
public <string name="ABI_ERROR_BT_3">Continue de qualquer maneira</string>
public <string name="REPORT_URL_TITLE">Denunciar este site</string>
public <string name="REPORT_URL_DESC">Se você acha que o URL é ilegal ou perturbador, informe-nos para que possamos atualizar nosso banco de dados \ n</string>
public <string name="REPORT_URL_BT_1">Relatório</string>
public <string name="REPORT_URL_BT_2">Dispensar</string>
public <string name="ORBOT_INIT_TITLE">Inicializando</string>
public <string name="ORBOT_INIT_DESC">Por favor, espere! Enquanto o conectamos à Web oculta. Isso pode levar alguns minutos \ n</string>
public <string name="ORBOT_INIT_BT_1">Dispensar</string>
public <string name="ORBOT_INIT_BT_2">Tente novamente</string>
public <string name="ORBOT_CLEAR_TITLE">Dados apagados</string>
public <string name="ORBOT_CLEAR_DESC">Os dados do Genesis foram limpos. Tente iniciar o aplicativo na página inicial \ n</string>
public <string name="ORBOT_CLEAR_BT_1">Dispensar</string>
public <string name="VERSION_TITLE">Atualização pendente</string>
public <string name="VERSION_DESC">Você não atualiza este aplicativo há um tempo. Atualize-o para obter o melhor desempenho \ n</string>
public <string name="VERSION_BT_1">Atualizar</string>
public <string name="REPORT_SUCCESS_TITLE">URL relatado com sucesso</string>
public <string name="REPORT_SUCCESS_DESC">URL foi relatado com sucesso. Levará cerca de uma semana para remover completamente este site dos nossos servidores \ n</string>
public <string name="REPORT_SUCCESS_BT_1">Dispensar</string>
public <string name="RATE_TITLE">Nos avalie</string>
public <string name="RATE_MESSAGE">Não aceitamos doações ou ganhamos dinheiro com este aplicativo. Estamos tentando criar uma Internet anônima privada \ n \ nSe você acha que esse aplicativo funciona, avalie-nos, isso nos dá esperança e força para continuar</string>
public <string name="RATE_POSITIVE">Like This App</string>
public <string name="RATE_NEGATIVE">Não gosto deste aplicativo</string>
public <string name="RATE_SUCCESS_TITLE">Desculpe ouvir isso!</string>
public <string name="RATE_SUCCESS_DESC">Se você estiver tendo algum problema e quiser entrar em contato, envie um email para gamesolstudios@gmail.com Vamos tentar resolver o seu problema o mais rápido possível</string>
public <string name="RATE_SUCCESS_BT_1">Enviar correio</string>
public <string name="BOOKMARK_URL_BT_1">marca páginas</string>
public <string name="BOOKMARK_URL_BT_2">Dispensar</string>
public <string name="CLEAR_HISTORY_TITLE">Limpar o armazenamento do site?</string>
public <string name="CLEAR_HISTORY_DESC">Isso limpará os dados de todos os sites</string>
public <string name="CLEAR_HISTORY_BT_1">Claro</string>
public <string name="CLEAR_HISTORY_BT_2">Dispensar</string>
public <string name="CLEAR_TAB_TITLE">Limpar abas abertas?</string>
public <string name="CLEAR_TAB_DESC">Isso limpará todas as guias armazenadas</string>
public <string name="CLEAR_TAB_BT_1">Claro</string>
public <string name="clear_bookmark_title">Limpar marcador de site?</string>
public <string name="clear_bookmark_desc">Isso limpará os dados de todos os sites salvos \ n</string>
public <string name="clear_bookmark_bt1">Claro</string>
public <string name="clear_bookmark_bt2">Dispensar</string>
public <string name="DOWNLOAD_TITLE">Notificação de Download</string>
public <string name="DOWNLOAD_MESSAGE">Baixar arquivo |</string>
public <string name="DOWNLOAD_POSITIVE">Baixar</string>
public <string name="BRIDGE_MAIL_TITLE">Solicitar nova ponte</string>
public <string name="BRIDGE_MAIL_MESSAGE">Você pode obter um endereço de ponte por email, na Web ou digitalizando um código QR da ponte. Selecione Email abaixo para solicitar um endereço de ponte. \ N \ nQuando você tiver um endereço, copie</string>
public <string name="BRIDGE_MAIL_POSITIVE">O EMAIL</string>
public <string name="LONG_URL_TITLE">Notificação de URL</string>
public <string name="LONG_URL_MESSAGE" />
public <string name="LONG_URL_OPTION_1">Abrir em uma nova guia</string>
public <string name="LONG_URL_OPTION_2">Abrir na guia atual</string>
public <string name="LONG_URL_OPTION_3">Copiar para área de transferência</string>
public <string name="LONG_URL_OPTION_4">Baixe este arquivo</string>
public <string name="LONG_URL_FULL_MESSAGE">URL Descrição</string>
public <string name="LONG_URL_FULL_OPTION_1">Abrir URL em uma nova guia</string>
public <string name="LONG_URL_FULL_OPTION_2">Abrir URL na guia atual</string>
public <string name="LONG_URL_FULL_OPTION_3">Copiar URL para a área de transferência</string>
public <string name="LONG_URL_FULL_OPTION_4">Abra a imagem em uma nova aba</string>
public <string name="LONG_URL_FULL_OPTION_5">Abrir guia atual da imagem</string>
public <string name="LONG_URL_FULL_OPTION_6">Copiar imagem para a área de transferência</string>
public <string name="LONG_URL_FULL_OPTION_7">Baixar arquivo de imagem</string>
public <string name="BANNED_TITLE">Tor é banido no seu país?</string>
public <string name="BANNED_DESC">Ativar o GATEWAY gratuito para fazer um túnel através da configuração proibida | Use-o somente se o tor for banido no seu país</string>
/*Tab Manager*/
public <string name="CLEAR_TABS">LIMPAR TABS</string>
/*Bridge Manager*/
public <string name="CUSTOM_BRIDGE">obfs4</string>
/*Text Manager*/
public <string name="DARK_WEB">Web oculta</string>
public <string name="EMPTY_STR" />
public <string name="EMPTY_SPACE" />
/*Settings Manager*/
public <string name="CUSTOM_FONTS">Fonte Personalizada</string>
public <string name="PERCENT_SIGN">%</string>
public <string name="DEFAULT_LANGUAGE">ru</string>
/*Bookmark Manager*/
public <string name="CLEAR_BOOKMARK">LIMPAR MARCADOR</string>
/*Home Manager*/
public <string name="BLANK_PAGE">sobre: blank</string>
/*Events*/
public <string name="APP_STARTED">APP_STARTED</string>
public <string name="PROXY_CHANGED">PROXY_CHANGED</string>
public <string name="APP_RESTARTED">APP_RESTARTED</string>
public <string name="APP_FINISHED">APP_FINISHED</string>
public <string name="SEARCH_SWITCH">SEARCH_SWITCH</string>
public <string name="SETTINGS_OPENED">SETTINGS_OPENED</string>
public <string name="URL_BOOKMARKED">URL_BOOKMARKED</string>
public <string name="BOOKMARK_OPENED" translatable="false">BOOKMARK_OPENED</string>
public <string name="TAB_OPENED">TAB_OPENED</string>
public <string name="GATEWAY_OPENED">GATEWAY_OPENED</string>
public <string name="HISTORY_OPENED">HISTORY_OPENED</string>
public <string name="HISTORY_TRIGGERED">HISTORY_TRIGGERED</string>
public <string name="BOOKMARK_TRIGGERED">BOOKMARK_TRIGGERED</string>
public <string name="TAB_TRIGGERED">TAB_TRIGGERED</string>
public <string name="URL_ERROR">URL_ERROR</string>
public <string name="URL_ERROR_NOT_LOADED">URL_ERROR_NOT_LOADED</string>
public <string name="PAGE_OPENED_SUCCESS">PAGE_OPENED_SUCCESS</string>
public <string name="HOME_INVOKED">HOME_INVOKED</string>
public <string name="SEARCH_INVOKED">SEARCH_INVOKED</string>
public <string name="MENU_INVOKED">MENU_INVOKED</string>
public <string name="ON_BACK">ON_BACK</string>
<string name="landing_next_page">Próximo</string>
<string name="listview_clear">Claro</string>
<string name="popup_new_tabs">Novas guias</string>
<string name="popup_close_tabs">Aba fechada</string>
<string name="popup_open_Recent_tab">Abrir separadores recentes</string>
<string name="popup_languages">Língua</string>
<string name="popup_download">Downloads</string>
<string name="popup_history">História</string>
<string name="popup_settings">Configurações</string>
<string name="popup_bookmark_page">Favoritar esta página</string>
<string name="popup_open_bookmark">Favoritos abertos</string>
<string name="popup_report">Denunciar site</string>
<string name="popup_rate">Avalie este aplicativo</string>
<string name="popup_share">Compartilhar</string>
<string name="orbot_settings_warning">⚠ Atenção</string>
<string name="orbot_settings_bridges">Ativar pontes</string>
<string name="gateway_info">Ativar gateway</string>
<string name="gateway_button">Ativar gateway</string>
<string name="loading_please_wait">Carregando, por favor espere</string>
<string name="orbot_option_title_reset">App preso no carregamento</string>
<string name="orbot_option_desc_reset">Armazenagem limpa</string>
<string name="orbot_option_desc_reset_button">Abrir configurações</string>
<string name="orbot_header">Configurações de proxy</string>
<string name="orbot_desc">O Genesis Browser conecta você à rede Tor, administrada por milhares de voluntários em todo o mundo! Essas opções podem ajudá-lo</string>
<string name="orbot_option_title">Internet é censurada aqui</string>
<string name="orbot_option_desc">Ignorar firewall</string>
<string name="orbot_option_warning_slow_speed">Pontes faz com que a internet corra muito lentamente. Use-os somente se a Internet for censurada em seu país ou a rede Tor estiver bloqueada</string>
<string name="bookmark_clear_history">Limpar histórico</string>
<string name="tab_view_clear_bookmark">Limpar marcador</string>
<string name="hint_default_suggession">BBC Israel ataca novamente</string>
<string name="notification_default_label">default.jpg</string>
<string name="notification_open_text">Aberto</string>
<string name="tab_view_increment">1</string>
<string name="tab_view_search_tab">Guias de pesquisa</string>
<string name="tab_view_clear_tab">Guia Limpar</string>
<string name="home_tab_text">1</string>
<string name="home_connect">Conectar</string>
<string name="home_loading">Carregando, por favor espere</string>
<string name="bridges_sometimes">"Às vezes você precisa de uma ponte para chegar ao Tor."</string>
<string name="action_more">"ME DIGA MAIS"</string>
<string name="vpn_setup">"Você pode permitir que qualquer aplicativo passe pelo Tor usando nossa VPN integrada".</string>
<string name="vpn_setup_sub">"Isso não o tornará anônimo, mas ajudará a ultrapassar os firewalls."</string>
<string name="action_vpn_choose">"ESCOLHA APLICATIVOS"</string>
<string name="hello">"Olá"</string>
<string name="welcome">"Bem-vindo ao Tor no celular."</string>
<string name="browser_the_internet">"Navegue na internet como você espera."</string>
<string name="no_tracking">"Sem rastreamento. Sem censura."</string>
<string name="error_m1">Este site não pode ser acessado</string>
<string name="error_m2">Ocorreu um erro durante uma conexão</string>
<string name="error_m3">A página que você está tentando visualizar não pode ser mostrada porque a autenticidade dos dados recebidos não pôde ser verificada</string>
<string name="error_m4">No momento, a página não está ativa ou inativa devido a algum motivo</string>
<string name="error_m5">Entre em contato com os proprietários do site para informá-los sobre esse problema.</string>
<string name="error_m6" >recarregar</string>
<string-array name="fonts">
<item>55%</item>
<item>70%</item>
<item>85%</item>
<item>100 por cento</item>
<item>115%</item>
<item>130%</item>
<item>145%</item>
</string-array>
<string-array name="search_engines">
<item>Web oculta</item>
<item>Google</item>
<item>Duck Duck Go</item>
</string-array>
<string-array name="boolean_option">
<item>ativado</item>
<item>Desativado</item>
</string-array>
<string-array name="notification">
<item>Habilitar todos</item>
<item>Desativar tudo</item>
<item>No Bandwidth</item>
</string-array>
<string-array name="cookies">
<item>Permitir todos</item>
<item>Permitir Confiável</item>
<item>Permitir Nenhum</item>
<item>Permitir visitas</item>
<item>Permitir não rastreador</item>
</string-array>
<!-- Generated by Automatic String Resource Translation
--><!-- https://asrt.gluege.boerde.de
--></resources>

View File

@ -0,0 +1,313 @@
<resources>
<!-- Generated by Automatic String Resource Translation
--><!-- https://asrt.gluege.boerde.de
--><string name="app_name" translatable="false">Genesis</string>
<string name="SearchHint">История поиска</string>
<string name="SearchHintMain">Поиск или введите веб-адрес</string>
<string name="homeUrl" translatable="false">https://genesis.onion</string>
<string name="errorTiyle">\ U0020 \ u0020 \ u0020Opps! Что-то пошло не так</string>
<string name="todo">ВСЕ</string>
<string name="projectName">Genesis Search Engine</string>
<string name="loadingText">Интернет Свобода</string>
<string name="reload">Reload</string>
<string name="internetErrorMessage">Это могут быть проблемы, с которыми вы столкнулись \ n \ n • Возможно, веб-страница или веб-сайт не работают \ n • Возможно, ваше интернет-соединение плохое \ n • Возможно, вы используете прокси-сервер \ n • Веб-сайт может быть заблокирован брандмауэром</string>
<string name="title_activity_list_manager">list_manager</string>
<string name="title_activity_setting_controller">настройки</string>
<string name="file_provider_authority">com.darkweb.genesissearchengine.fileprovider</string>
<string name="preferences_messages_header">Сообщения</string>
<string name="preferences_sync_header">Синхронизация</string>
<string name="messages_signature_title">Ваша подпись</string>
<string name="messages_reply_title">Действие ответа по умолчанию</string>
<string name="settings_basic_settings">Базовые настройки</string>
<string name="settings_header">настройки</string>
<string name="settings_search_engine">Поисковый движок</string>
<string name="settings_javascript">Javascript</string>
<string name="settings_clear_history">Авто Очистить Историю</string>
<string name="settings_font_title">Настройки шрифта</string>
<string name="settings_adjust_font">Индивидуальный шрифт</string>
<string name="settings_manual_font">Авторегулировка шрифта</string>
<string name="settings_cookies">Настройки Cookie</string>
<string name="settings_cookie">печенье</string>
<string name="settings_notification">Управление уведомлением</string>
<string name="bridge_basic_settings">Базовые настройки</string>
<string name="bridge_Automatid_title">Создать автоматически</string>
<string name="bridge_Manual_desc">Предоставь мост, который я знаю</string>
<string name="bridge_Auto_switch">Авто</string>
<string name="bridge_Manual_switch">Руководство</string>
<string name="bridge_port_hint">адрес: порт</string>
<string name="bridge_header">Настройки моста</string>
<string name="bridge_desc">Мосты - это не включенные в список реле Tor, которые затрудняют блокировку соединений в сети Tor. Из-за того, что некоторые страны пытаются заблокировать Tor, в некоторых странах работают определенные мосты, а в других - нет.</string>
<string name="bridge_default_title">Выберите мост по умолчанию</string>
<string name="bridge_request">Базовые настройки</string>
public <string name="WELCOME_MESSAGE_TITLE">Добро пожаловать Скрытый веб-шлюз</string>
public <string name="WELCOME_MESSAGE_DESC">Это приложение предоставит вам платформу для поиска и открытия скрытых веб-адресов. Вот несколько предложений \ n</string>
public <string name="WELCOME_MESSAGE_BT_1">Deep Web Online Market</string>
public <string name="WELCOME_MESSAGE_BT_2">Утечка документов и книг</string>
public <string name="WELCOME_MESSAGE_BT_3">Dark Web Новости и статьи</string>
public <string name="WELCOME_MESSAGE_BT_4">Секретные программы и инструменты взлома</string>
public <string name="WELCOME_MESSAGE_BT_5">Не показывать снова</string>
public <string name="ABI_ERROR_TITLE">Неверный установочный файл</string>
public <string name="ABI_ERROR_DESC">Похоже, вы испортили установку. Либо установите его из playstore, либо перейдите по ссылке</string>
public <string name="ABI_ERROR_BT_1">Локальный апгрейд</string>
public <string name="ABI_ERROR_BT_2">Обновление PlayStore</string>
public <string name="ABI_ERROR_BT_3">Продолжай в любом случае</string>
public <string name="REPORT_URL_TITLE">Сообщить об этом сайте</string>
public <string name="REPORT_URL_DESC">Если вы считаете, что URL-адрес недопустим или беспокоит, сообщите нам, чтобы мы могли обновить нашу базу данных \ n</string>
public <string name="REPORT_URL_BT_1">отчет</string>
public <string name="REPORT_URL_BT_2">отклонять</string>
public <string name="ORBOT_INIT_TITLE">Инициализация</string>
public <string name="ORBOT_INIT_DESC">Пожалуйста, подождите! Пока мы подключаем вас к скрытой сети. Это может занять несколько минут \ n</string>
public <string name="ORBOT_INIT_BT_1">отклонять</string>
public <string name="ORBOT_INIT_BT_2">Попробуйте еще раз</string>
public <string name="ORBOT_CLEAR_TITLE">Данные очищены</string>
public <string name="ORBOT_CLEAR_DESC">Данные Бытия были очищены. Пожалуйста, попробуйте запустить приложение с домашней страницы \ n</string>
public <string name="ORBOT_CLEAR_BT_1">отклонять</string>
public <string name="VERSION_TITLE">Ожидание обновления</string>
public <string name="VERSION_DESC">Вы еще не обновляли это приложение, пожалуйста, обновите его, чтобы добиться максимальной производительности \ n</string>
public <string name="VERSION_BT_1">Обновить</string>
public <string name="REPORT_SUCCESS_TITLE">URL успешно отправлен</string>
public <string name="REPORT_SUCCESS_DESC">URL был успешно сообщен. Полное удаление этого сайта с наших серверов займет около недели \ n</string>
public <string name="REPORT_SUCCESS_BT_1">отклонять</string>
public <string name="RATE_TITLE">Оцените нас</string>
public <string name="RATE_MESSAGE">Мы не принимаем пожертвования и не зарабатываем деньги с помощью этого приложения. Мы пытаемся сделать частный анонимный интернет \ n \ nЕсли вы думаете, что это приложение работает, пожалуйста, оцените нас, оно дает нам надежду и силы для продолжения</string>
public <string name="RATE_POSITIVE">Нравится это приложение</string>
public <string name="RATE_NEGATIVE">Не нравится это приложение</string>
public <string name="RATE_SUCCESS_TITLE">Жаль это слышать!</string>
public <string name="RATE_SUCCESS_DESC">Если у вас возникли проблемы и вы хотите связаться с нами, пожалуйста, напишите нам по адресу gamesolstudios@gmail.com. Мы постараемся решить вашу проблему как можно скорее.</string>
public <string name="RATE_SUCCESS_BT_1">Отправить письмо</string>
public <string name="BOOKMARK_URL_BT_1">закладка</string>
public <string name="BOOKMARK_URL_BT_2">отклонять</string>
public <string name="CLEAR_HISTORY_TITLE">Очистить хранилище сайта?</string>
public <string name="CLEAR_HISTORY_DESC">Это очистит данные для всех сайтов</string>
public <string name="CLEAR_HISTORY_BT_1">ясно</string>
public <string name="CLEAR_HISTORY_BT_2">отклонять</string>
public <string name="CLEAR_TAB_TITLE">Очистить открытые вкладки?</string>
public <string name="CLEAR_TAB_DESC">Это очистит все сохраненные вкладки</string>
public <string name="CLEAR_TAB_BT_1">ясно</string>
public <string name="clear_bookmark_title">Очистить закладку сайта?</string>
public <string name="clear_bookmark_desc">Это очистит данные для всех сохраненных сайтов \ n</string>
public <string name="clear_bookmark_bt1">ясно</string>
public <string name="clear_bookmark_bt2">отклонять</string>
public <string name="DOWNLOAD_TITLE">Скачать уведомление</string>
public <string name="DOWNLOAD_MESSAGE">Скачать файл |</string>
public <string name="DOWNLOAD_POSITIVE">Скачать</string>
public <string name="BRIDGE_MAIL_TITLE">Запросить новый мост</string>
public <string name="BRIDGE_MAIL_MESSAGE">Вы можете получить адрес моста через электронную почту, Интернет или отсканировав QR-код моста. Выберите Email ниже, чтобы запросить адрес моста. \ N \ nКогда у вас есть адрес, скопируйте</string>
public <string name="BRIDGE_MAIL_POSITIVE">ЭЛ. АДРЕС</string>
public <string name="LONG_URL_TITLE">URL-уведомление</string>
public <string name="LONG_URL_MESSAGE" />
public <string name="LONG_URL_OPTION_1">Открыть в новой вкладке</string>
public <string name="LONG_URL_OPTION_2">Открыть в текущей вкладке</string>
public <string name="LONG_URL_OPTION_3">Скопировать в буфер обмена</string>
public <string name="LONG_URL_OPTION_4">Скачать этот файл</string>
public <string name="LONG_URL_FULL_MESSAGE">Описание URL</string>
public <string name="LONG_URL_FULL_OPTION_1">Открыть URL в новой вкладке</string>
public <string name="LONG_URL_FULL_OPTION_2">Открыть URL в текущей вкладке</string>
public <string name="LONG_URL_FULL_OPTION_3">Скопировать URL в буфер обмена</string>
public <string name="LONG_URL_FULL_OPTION_4">Открыть изображение в новой вкладке</string>
public <string name="LONG_URL_FULL_OPTION_5">Открыть текущую вкладку изображения</string>
public <string name="LONG_URL_FULL_OPTION_6">Скопировать изображение в буфер обмена</string>
public <string name="LONG_URL_FULL_OPTION_7">Скачать файл изображения</string>
public <string name="BANNED_TITLE">Tor запрещен в вашей стране?</string>
public <string name="BANNED_DESC">Включить бесплатный GATEWAY для туннелирования через запрещенную конфигурацию | Используйте его, только если tor запрещен в вашей стране</string>
/*Tab Manager*/
public <string name="CLEAR_TABS">ЧИСТЫЕ вкладки</string>
/*Bridge Manager*/
public <string name="CUSTOM_BRIDGE">obfs4</string>
/*Text Manager*/
public <string name="DARK_WEB">Скрытая сеть</string>
public <string name="EMPTY_STR" />
public <string name="EMPTY_SPACE" />
/*Settings Manager*/
public <string name="CUSTOM_FONTS">Пользовательский шрифт</string>
public <string name="PERCENT_SIGN">%</string>
public <string name="DEFAULT_LANGUAGE">RU</string>
/*Bookmark Manager*/
public <string name="CLEAR_BOOKMARK">ЧИСТАЯ ЗАКЛАДКА</string>
/*Home Manager*/
public <string name="BLANK_PAGE">о: пусто</string>
/*Events*/
public <string name="APP_STARTED">APP_STARTED</string>
public <string name="PROXY_CHANGED">PROXY_CHANGED</string>
public <string name="APP_RESTARTED">APP_RESTARTED</string>
public <string name="APP_FINISHED">APP_FINISHED</string>
public <string name="SEARCH_SWITCH">SEARCH_SWITCH</string>
public <string name="SETTINGS_OPENED">SETTINGS_OPENED</string>
public <string name="URL_BOOKMARKED">URL_BOOKMARKED</string>
public <string name="BOOKMARK_OPENED" translatable="false">BOOKMARK_OPENED</string>
public <string name="TAB_OPENED">TAB_OPENED</string>
public <string name="GATEWAY_OPENED">GATEWAY_OPENED</string>
public <string name="HISTORY_OPENED">HISTORY_OPENED</string>
public <string name="HISTORY_TRIGGERED">HISTORY_TRIGGERED</string>
public <string name="BOOKMARK_TRIGGERED">BOOKMARK_TRIGGERED</string>
public <string name="TAB_TRIGGERED">TAB_TRIGGERED</string>
public <string name="URL_ERROR">URL_ERROR</string>
public <string name="URL_ERROR_NOT_LOADED">URL_ERROR_NOT_LOADED</string>
public <string name="PAGE_OPENED_SUCCESS">PAGE_OPENED_SUCCESS</string>
public <string name="HOME_INVOKED">HOME_INVOKED</string>
public <string name="SEARCH_INVOKED">SEARCH_INVOKED</string>
public <string name="MENU_INVOKED">MENU_INVOKED</string>
public <string name="ON_BACK">СЗАДИ</string>
<string name="landing_next_page">следующий</string>
<string name="listview_clear">ясно</string>
<string name="popup_new_tabs">Новые вкладки</string>
<string name="popup_close_tabs">Закрыть вкладку</string>
<string name="popup_open_Recent_tab">Открыть последние вкладки</string>
<string name="popup_languages">язык</string>
<string name="popup_download">Загрузки</string>
<string name="popup_history">история</string>
<string name="popup_settings">настройки</string>
<string name="popup_bookmark_page">Добавить эту страницу в закладки</string>
<string name="popup_open_bookmark">Открытые закладки</string>
<string name="popup_report">Сайт отчета</string>
<string name="popup_rate">Оцените это приложение</string>
<string name="popup_share">Поделиться</string>
<string name="orbot_settings_warning">⚠ Предупреждение</string>
<string name="orbot_settings_bridges">Включить мосты</string>
<string name="gateway_info">Включить шлюз</string>
<string name="gateway_button">Включить шлюз</string>
<string name="loading_please_wait">Загрузка, пожалуйста подождите</string>
<string name="orbot_option_title_reset">Приложение застряло в загрузке</string>
<string name="orbot_option_desc_reset">Чистое хранилище</string>
<string name="orbot_option_desc_reset_button">Открыть настройки</string>
<string name="orbot_header">Настройки прокси</string>
<string name="orbot_desc">Браузер Genesis подключает вас к сети Tor, управляемой тысячами добровольцев по всему миру! Могут ли эти варианты помочь вам</string>
<string name="orbot_option_title">Интернет здесь подвергается цензуре</string>
<string name="orbot_option_desc">Обход брандмауэра</string>
<string name="orbot_option_warning_slow_speed">Мосты заставляют интернет работать очень медленно. Используйте их, только если в вашей стране есть цензура или если сеть Tor заблокирована</string>
<string name="bookmark_clear_history">Чистая история</string>
<string name="tab_view_clear_bookmark">Очистить закладку</string>
<string name="hint_default_suggession">Би-би-си | Израиль снова наносит удар</string>
<string name="notification_default_label">default.jpg</string>
<string name="notification_open_text">открыто</string>
<string name="tab_view_increment">1</string>
<string name="tab_view_search_tab">Вкладки поиска</string>
<string name="tab_view_clear_tab">Очистить вкладку</string>
<string name="home_tab_text">1</string>
<string name="home_connect">Connect</string>
<string name="home_loading">Загрузка, пожалуйста подождите</string>
<string name="bridges_sometimes">«Иногда тебе нужен мост, чтобы добраться до Тор».</string>
<string name="action_more">"Скажи мне больше"</string>
<string name="vpn_setup">«Вы можете включить любое приложение для прохождения через Tor, используя наш встроенный VPN».</string>
<string name="vpn_setup_sub">«Это не сделает вас анонимным, но поможет через брандмауэры».</string>
<string name="action_vpn_choose">"ВЫБЕРИТЕ ПРИЛОЖЕНИЯ"</string>
<string name="hello">"Здравствуйте"</string>
<string name="welcome">«Добро пожаловать в Tor на мобильном телефоне».</string>
<string name="browser_the_internet">"Просматривайте Интернет, как вы ожидаете."</string>
<string name="no_tracking">«Нет отслеживания. Нет цензуры».</string>
<string name="error_m1">Этот сайт не может быть достигнут</string>
<string name="error_m2">Произошла ошибка во время соединения</string>
<string name="error_m3">Невозможно отобразить страницу, которую вы пытаетесь просмотреть, поскольку не удалось проверить подлинность полученных данных.</string>
<string name="error_m4">Страница в настоящее время не работает или не работает по какой-либо причине</string>
<string name="error_m5">Пожалуйста, свяжитесь с владельцами сайта, чтобы сообщить им об этой проблеме.</string>
<string name="error_m6" >Reload</string>
<string-array name="fonts">
<item>55 процентов</item>
<item>70 процентов</item>
<item>85 процентов</item>
<item>100 процентов</item>
<item>115 процентов</item>
<item>130 процентов</item>
<item>145 процентов</item>
</string-array>
<string-array name="search_engines">
<item>Скрытая сеть</item>
<item>Google</item>
<item>Утка утка идти</item>
</string-array>
<string-array name="boolean_option">
<item>Включено</item>
<item>Отключено</item>
</string-array>
<string-array name="notification">
<item>Включить все</item>
<item>Отключить все</item>
<item>Нет пропускной способности</item>
</string-array>
<string-array name="cookies">
<item>Позволять все</item>
<item>Разрешить Доверенные</item>
<item>Разрешить нет</item>
<item>Разрешить посещение</item>
<item>Разрешить не трекер</item>
</string-array>
<!-- Generated by Automatic String Resource Translation
--><!-- https://asrt.gluege.boerde.de
--></resources>

View File

@ -0,0 +1,313 @@
<resources>
<!-- Generated by Automatic String Resource Translation
--><!-- https://asrt.gluege.boerde.de
--><string name="app_name" translatable="false">Genesis</string>
<string name="SearchHint">Історія пошуку</string>
<string name="SearchHintMain">Шукайте або введіть веб-адресу</string>
<string name="homeUrl" translatable="false">https://genesis.onion</string>
<string name="errorTiyle">\ u0020 \ u0020 \ u0020Оп! Щось пішло не так</string>
<string name="todo">ВСЕ</string>
<string name="projectName">Пошукова система Genesis</string>
<string name="loadingText">Інтернет-свобода</string>
<string name="reload">Перезавантажити</string>
<string name="internetErrorMessage">Це можуть бути проблеми, з якими ви стикаєтесь \ n \ n • Веб-сторінка або веб-сайт можуть бути відключені \ n • Ваш Інтернет-зв’язок може бути поганим \ n • Можливо, ви використовуєте проксі \ n • Веб-сайт може бути заблокований брандмауером</string>
<string name="title_activity_list_manager">list_manager</string>
<string name="title_activity_setting_controller">Налаштування</string>
<string name="file_provider_authority">com.darkweb.genesissearchengine.fileprovider</string>
<string name="preferences_messages_header">Повідомлення</string>
<string name="preferences_sync_header">Синхронізація</string>
<string name="messages_signature_title">Твій підпис</string>
<string name="messages_reply_title">Дія відповіді за замовчуванням</string>
<string name="settings_basic_settings">Основні налаштування</string>
<string name="settings_header">Налаштування</string>
<string name="settings_search_engine">Пошукова система</string>
<string name="settings_javascript">Javascript</string>
<string name="settings_clear_history">Автоматично очистити історію</string>
<string name="settings_font_title">Налаштування шрифту</string>
<string name="settings_adjust_font">Індивідуальний шрифт</string>
<string name="settings_manual_font">Автоматичне регулювання шрифту</string>
<string name="settings_cookies">Налаштування файлів cookie</string>
<string name="settings_cookie">печиво</string>
<string name="settings_notification">Управління сповіщенням</string>
<string name="bridge_basic_settings">Основні налаштування</string>
<string name="bridge_Automatid_title">Створюйте автоматично</string>
<string name="bridge_Manual_desc">Забезпечте міст, який я знаю</string>
<string name="bridge_Auto_switch">Авто</string>
<string name="bridge_Manual_switch">Посібник</string>
<string name="bridge_port_hint">адреса: порт</string>
<string name="bridge_header">Налаштування мосту</string>
<string name="bridge_desc">Мости - це нереєстровані реле Tor, які ускладнюють блокування підключень до мережі Tor. Через те, як деякі країни намагаються блокувати Тор, деякі мости працюють у деяких країнах, а не в інших</string>
<string name="bridge_default_title">Виберіть Bridge Bridge</string>
<string name="bridge_request">Основні налаштування</string>
public <string name="WELCOME_MESSAGE_TITLE">Ласкаво просимо | Прихований веб-шлюз</string>
public <string name="WELCOME_MESSAGE_DESC">Ця програма надає вам платформу для пошуку та відкриття прихованих веб-адрес. Ось кілька пропозицій \ n</string>
public <string name="WELCOME_MESSAGE_BT_1">Інтернет-ринок Deep Web</string>
public <string name="WELCOME_MESSAGE_BT_2">Просочені документи та книги</string>
public <string name="WELCOME_MESSAGE_BT_3">Темні веб-новини та статті</string>
public <string name="WELCOME_MESSAGE_BT_4">Секретні програмні засоби та засоби для злому</string>
public <string name="WELCOME_MESSAGE_BT_5">Не показуй знову</string>
public <string name="ABI_ERROR_TITLE">Недійсний файл налаштування</string>
public <string name="ABI_ERROR_DESC">Схоже, ви зіпсували установку. Або встановіть його з магазину чи перейдіть за посиланням</string>
public <string name="ABI_ERROR_BT_1">Локальне оновлення</string>
public <string name="ABI_ERROR_BT_2">Оновіть Playstore</string>
public <string name="ABI_ERROR_BT_3">Продовжуйте все одно</string>
public <string name="REPORT_URL_TITLE">Повідомте про цей веб-сайт</string>
public <string name="REPORT_URL_DESC">Якщо ви вважаєте, що URL незаконне чи заважає, повідомте про нас, щоб ми могли оновити нашу базу даних \ n</string>
public <string name="REPORT_URL_BT_1">Звіт</string>
public <string name="REPORT_URL_BT_2">Відхилити</string>
public <string name="ORBOT_INIT_TITLE">Ініціалізація</string>
public <string name="ORBOT_INIT_DESC">Будь ласка, зачекайте! Поки ми підключаємо вас до прихованої павутини. Це може зайняти кілька хвилин \ n</string>
public <string name="ORBOT_INIT_BT_1">Відхилити</string>
public <string name="ORBOT_INIT_BT_2">Спробуйте ще раз</string>
public <string name="ORBOT_CLEAR_TITLE">Дані очищені</string>
public <string name="ORBOT_CLEAR_DESC">Дані генезису очищені. Спробуйте запустити програму з домашньої сторінки \ n</string>
public <string name="ORBOT_CLEAR_BT_1">Відхилити</string>
public <string name="VERSION_TITLE">Оновлення очікує на розгляд</string>
public <string name="VERSION_DESC">Ви не оновлювали цю програму деякий час, будь ласка, оновіть її, щоб отримати найкращу ефективність \ n</string>
public <string name="VERSION_BT_1">Оновлення</string>
public <string name="REPORT_SUCCESS_TITLE">URL зареєстровано успішно</string>
public <string name="REPORT_SUCCESS_DESC">Про URL-адресу було успішно повідомлено. Щоб повністю видалити цей веб-сайт із наших серверів, знадобиться близько тижня \ n</string>
public <string name="REPORT_SUCCESS_BT_1">Відхилити</string>
public <string name="RATE_TITLE">Оцініть нас</string>
public <string name="RATE_MESSAGE">Ми не беремо пожертви і не заробляємо гроші на цьому додатку. Ми намагаємося зробити приватний анонімний Інтернет \ n \ n Якщо ви думаєте, що ця програма працює, будь ласка, оцініть нас, це дає нам надію та сили продовжувати</string>
public <string name="RATE_POSITIVE">Як ця програма</string>
public <string name="RATE_NEGATIVE">Не подобається це додаток</string>
public <string name="RATE_SUCCESS_TITLE">Прикро це чути!</string>
public <string name="RATE_SUCCESS_DESC">Якщо у вас виникли проблеми і ви хочете зв’язатися з нами, напишіть нам електронною поштою gamesolstudios@gmail.com. Ми постараємося вирішити вашу проблему якнайшвидше.</string>
public <string name="RATE_SUCCESS_BT_1">Надіслати пошту</string>
public <string name="BOOKMARK_URL_BT_1">Закладка</string>
public <string name="BOOKMARK_URL_BT_2">Відхилити</string>
public <string name="CLEAR_HISTORY_TITLE">Очистити сховище сайту?</string>
public <string name="CLEAR_HISTORY_DESC">Це очистить дані для всіх сайтів</string>
public <string name="CLEAR_HISTORY_BT_1">Ясно</string>
public <string name="CLEAR_HISTORY_BT_2">Відхилити</string>
public <string name="CLEAR_TAB_TITLE">Очистити відкриті вкладки?</string>
public <string name="CLEAR_TAB_DESC">Це очистить усі збережені вкладки</string>
public <string name="CLEAR_TAB_BT_1">Ясно</string>
public <string name="clear_bookmark_title">Очистити закладку сайту?</string>
public <string name="clear_bookmark_desc">Це очистить дані для всіх збережених сайтів \ n</string>
public <string name="clear_bookmark_bt1">Ясно</string>
public <string name="clear_bookmark_bt2">Відхилити</string>
public <string name="DOWNLOAD_TITLE">Повідомлення про завантаження</string>
public <string name="DOWNLOAD_MESSAGE">Завантажити файл |</string>
public <string name="DOWNLOAD_POSITIVE">Завантажити</string>
public <string name="BRIDGE_MAIL_TITLE">Запит нового мосту</string>
public <string name="BRIDGE_MAIL_MESSAGE">Ви можете отримати мостову адресу через електронну пошту, Інтернет або скануючи QR-код мосту. Виберіть \ "Електронна пошта \" нижче, щоб надіслати запит на адресу моста. \ N \ nЗалиця, скопіюйте адресу</string>
public <string name="BRIDGE_MAIL_POSITIVE">EMAIL</string>
public <string name="LONG_URL_TITLE">Повідомлення URL</string>
public <string name="LONG_URL_MESSAGE" />
public <string name="LONG_URL_OPTION_1">Відкрити в новій вкладці</string>
public <string name="LONG_URL_OPTION_2">Відкрити в поточній вкладці</string>
public <string name="LONG_URL_OPTION_3">Копіювати в буфер обміну</string>
public <string name="LONG_URL_OPTION_4">Завантажте цей файл</string>
public <string name="LONG_URL_FULL_MESSAGE">Опис URL-адреси</string>
public <string name="LONG_URL_FULL_OPTION_1">Відкрийте URL-адресу на новій вкладці</string>
public <string name="LONG_URL_FULL_OPTION_2">Відкрийте URL-адресу на поточній вкладці</string>
public <string name="LONG_URL_FULL_OPTION_3">Скопіюйте URL у буфер обміну</string>
public <string name="LONG_URL_FULL_OPTION_4">Відкрити зображення в новій вкладці</string>
public <string name="LONG_URL_FULL_OPTION_5">Відкрити поточну вкладку зображення</string>
public <string name="LONG_URL_FULL_OPTION_6">Скопіюйте зображення у буфер обміну</string>
public <string name="LONG_URL_FULL_OPTION_7">Завантажити файл зображення</string>
public <string name="BANNED_TITLE">Чи заборонено тор у вашій країні?</string>
public <string name="BANNED_DESC">Увімкнути безкоштовний GATEWAY для тунелю через заборонену конфігурацію | Використовуйте його, лише якщо tor заборонено у вашій країні</string>
/*Tab Manager*/
public <string name="CLEAR_TABS">ЧИСТІ ТАБЛИЦІ</string>
/*Bridge Manager*/
public <string name="CUSTOM_BRIDGE">obfs4</string>
/*Text Manager*/
public <string name="DARK_WEB">Прихована павутина</string>
public <string name="EMPTY_STR" />
public <string name="EMPTY_SPACE" />
/*Settings Manager*/
public <string name="CUSTOM_FONTS">Спеціальний шрифт</string>
public <string name="PERCENT_SIGN">%</string>
public <string name="DEFAULT_LANGUAGE">ru</string>
/*Bookmark Manager*/
public <string name="CLEAR_BOOKMARK">ЧИСТА КНИГА</string>
/*Home Manager*/
public <string name="BLANK_PAGE">про: порожній</string>
/*Events*/
public <string name="APP_STARTED">APP_STARTED</string>
public <string name="PROXY_CHANGED">PROXY_CHANGED</string>
public <string name="APP_RESTARTED">APP_RESTARTED</string>
public <string name="APP_FINISHED">APP_FINISHED</string>
public <string name="SEARCH_SWITCH">SEARCH_SWITCH</string>
public <string name="SETTINGS_OPENED">SETTINGS_OPENED</string>
public <string name="URL_BOOKMARKED">URL_BOOKMARKED</string>
public <string name="BOOKMARK_OPENED" translatable="false">BOOKMARK_OPENED</string>
public <string name="TAB_OPENED">TAB_OPENED</string>
public <string name="GATEWAY_OPENED">GATEWAY_OPENED</string>
public <string name="HISTORY_OPENED">HISTORY_OPENED</string>
public <string name="HISTORY_TRIGGERED">HISTORY_TRIGGERED</string>
public <string name="BOOKMARK_TRIGGERED">BOOKMARK_TRIGGERED</string>
public <string name="TAB_TRIGGERED">TAB_TRIGGERED</string>
public <string name="URL_ERROR">URL_ERROR</string>
public <string name="URL_ERROR_NOT_LOADED">URL_ERROR_NOT_LOADED</string>
public <string name="PAGE_OPENED_SUCCESS">PAGE_OPENED_SUCCESS</string>
public <string name="HOME_INVOKED">HOME_INVOKED</string>
public <string name="SEARCH_INVOKED">SEARCH_INVOKED</string>
public <string name="MENU_INVOKED">MENU_INVOKED</string>
public <string name="ON_BACK">ON_BACK</string>
<string name="landing_next_page">Далі</string>
<string name="listview_clear">Ясно</string>
<string name="popup_new_tabs">Нові вкладки</string>
<string name="popup_close_tabs">Закрити вкладку</string>
<string name="popup_open_Recent_tab">Відкрийте останні вкладки</string>
<string name="popup_languages">Мову</string>
<string name="popup_download">Завантаження</string>
<string name="popup_history">Історія</string>
<string name="popup_settings">Налаштування</string>
<string name="popup_bookmark_page">Закладка цієї сторінки</string>
<string name="popup_open_bookmark">Відкрийте закладки</string>
<string name="popup_report">Повідомте веб-сайт</string>
<string name="popup_rate">Оцініть цей додаток</string>
<string name="popup_share">Поділитися</string>
<string name="orbot_settings_warning">⚠ Попередження</string>
<string name="orbot_settings_bridges">Увімкнути мости</string>
<string name="gateway_info">Увімкнути шлюз</string>
<string name="gateway_button">Увімкнути шлюз</string>
<string name="loading_please_wait">Завантаження, будь ласка, зачекайте</string>
<string name="orbot_option_title_reset">Додаток застряг у завантаженні</string>
<string name="orbot_option_desc_reset">Очистити сховище</string>
<string name="orbot_option_desc_reset_button">Відкрийте Налаштування</string>
<string name="orbot_header">Налаштування проксі</string>
<string name="orbot_desc">Веб-переглядач Genesis підключає вас до мережі Tor, якою керують тисячі добровольців по всьому світу! Чи можуть ці варіанти вам допомогти</string>
<string name="orbot_option_title">Інтернет цензурується тут</string>
<string name="orbot_option_desc">Обхід брандмауера</string>
<string name="orbot_option_warning_slow_speed">Мости змушують Інтернет працювати дуже повільно. Використовуйте їх лише в тому випадку, якщо Інтернет піддається цензурі у вашій країні або заблокована мережа Tor</string>
<string name="bookmark_clear_history">Чиста історія</string>
<string name="tab_view_clear_bookmark">Очистити закладку</string>
<string name="hint_default_suggession">BBC | Ізраїль завдає удару знову</string>
<string name="notification_default_label">default.jpg</string>
<string name="notification_open_text">відчинено</string>
<string name="tab_view_increment">1</string>
<string name="tab_view_search_tab">Вкладки пошуку</string>
<string name="tab_view_clear_tab">Очистити вкладку</string>
<string name="home_tab_text">1</string>
<string name="home_connect">Підключення</string>
<string name="home_loading">Завантаження, будь ласка, зачекайте</string>
<string name="bridges_sometimes">"Іноді потрібен міст, щоб дістатися до Тор".</string>
<string name="action_more">"РОЗКАЖИ МЕНІ БІЛЬШЕ"</string>
<string name="vpn_setup">"Ви можете дозволити будь-якій програмі пройти через Tor за допомогою вбудованої VPN."</string>
<string name="vpn_setup_sub">"Це не зробить вас анонімним, але це допоможе пройти через брандмауері."</string>
<string name="action_vpn_choose">"ВИБРАТИ APPS"</string>
<string name="hello">"Здравствуйте"</string>
<string name="welcome">"Ласкаво просимо в Tor на мобільний".</string>
<string name="browser_the_internet">"Перегляньте Інтернет, як ви очікуєте."</string>
<string name="no_tracking">"Ні відстеження. Ні цензури".</string>
<string name="error_m1">Цей сайт неможливо отримати</string>
<string name="error_m2">Під час з\'єднання сталася помилка</string>
<string name="error_m3">Сторінка, яку ви намагаєтеся переглянути, не може бути показана, оскільки не вдалося перевірити справжність отриманих даних</string>
<string name="error_m4">Наразі сторінка не з’являється в режимі "жива" чи "знищена" через певні причини</string>
<string name="error_m5">Зверніться до власників веб-сайтів, щоб повідомити їх про цю проблему.</string>
<string name="error_m6" >Перезавантажити</string>
<string-array name="fonts">
<item>55 відсотків</item>
<item>70 відсотків</item>
<item>85 відсотків</item>
<item>100 відсотків</item>
<item>115 відсотків</item>
<item>130 відсотків</item>
<item>145 відсотків</item>
</string-array>
<string-array name="search_engines">
<item>Прихована павутина</item>
<item>Google</item>
<item>Качка Качка Іди</item>
</string-array>
<string-array name="boolean_option">
<item>Увімкнено</item>
<item>Інваліди</item>
</string-array>
<string-array name="notification">
<item>Увімкнути всіх</item>
<item>Відключити все</item>
<item>Немає пропускної здатності</item>
</string-array>
<string-array name="cookies">
<item>Дозволити всім</item>
<item>Дозволити довірену</item>
<item>Дозволити жодне</item>
<item>Дозволити відвідуванню</item>
<item>Дозволити не відстежувати</item>
</string-array>
<!-- Generated by Automatic String Resource Translation
--><!-- https://asrt.gluege.boerde.de
--></resources>

View File

@ -0,0 +1,312 @@
<resources>
<!-- Generated by Automatic String Resource Translation
--><!-- https://asrt.gluege.boerde.de
--><string name="app_name" translatable="false">Genesis</string>
<string name="SearchHint">搜索历史记录</string>
<string name="SearchHintMain">搜索或键入网址</string>
<string name="homeUrl" translatable="false">https://genesis.onion</string>
<string name="errorTiyle">\ u0020 \ u0020 \ u0020有些不对劲</string>
<string name="todo">一切</string>
<string name="projectName">创世纪搜索引擎</string>
<string name="loadingText">在线自由</string>
<string name="reload">重装</string>
<string name="internetErrorMessage">这些可能是您面临的问题\ n \ n•网页或网站可能已关闭\ n•您的Internet连接可能不正常\ n•您可能正在使用代理\ n•网站可能已被防火墙阻止</string>
<string name="title_activity_list_manager">list_manager</string>
<string name="title_activity_setting_controller">设定值</string>
<string name="file_provider_authority">com.darkweb.genesissearchengine.fileprovider</string>
<string name="preferences_messages_header">留言内容</string>
<string name="preferences_sync_header">同步</string>
<string name="messages_signature_title">你的签名</string>
<string name="messages_reply_title">默认回复动作</string>
<string name="settings_basic_settings">基本设置</string>
<string name="settings_header">设定值</string>
<string name="settings_search_engine">搜索引擎</string>
<string name="settings_javascript">Java脚本</string>
<string name="settings_clear_history">自动清除记录</string>
<string name="settings_font_title">字型设定</string>
<string name="settings_adjust_font">定制字体</string>
<string name="settings_manual_font">自动调整字体</string>
<string name="settings_cookies">Cookie设置</string>
<string name="settings_cookie">曲奇饼</string>
<string name="settings_notification">管理通知</string>
<string name="bridge_basic_settings">基本设置</string>
<string name="bridge_Automatid_title">自动创建</string>
<string name="bridge_Manual_desc">提供我知道的桥梁</string>
<string name="bridge_Auto_switch">汽车</string>
<string name="bridge_Manual_switch">手册</string>
<string name="bridge_port_hint">地址:港口</string>
<string name="bridge_header">桥接设置</string>
<string name="bridge_desc">桥接器是未列出的Tor中继器这使得阻止连接到Tor网络的难度更大。由于某些国家/地区试图阻止Tor某些桥梁在某些国家/地区有效,而其他国家/地区则无法</string>
<string name="bridge_default_title">选择默认桥</string>
<string name="bridge_request">基本设置</string>
public <string name="WELCOME_MESSAGE_TITLE">欢迎光临|隐藏的Web网关</string>
public <string name="WELCOME_MESSAGE_DESC">此应用程序为您提供了一个搜索和打开隐藏的Web网址的平台。以下是一些建议\ n</string>
public <string name="WELCOME_MESSAGE_BT_1">深度网络在线市场</string>
public <string name="WELCOME_MESSAGE_BT_2">泄漏的文件和书籍</string>
public <string name="WELCOME_MESSAGE_BT_3">黑暗网新闻和文章</string>
public <string name="WELCOME_MESSAGE_BT_4">秘密软件和黑客工具</string>
public <string name="WELCOME_MESSAGE_BT_5">不再显示</string>
public <string name="ABI_ERROR_TITLE">无效的安装文件</string>
public <string name="ABI_ERROR_DESC">看起来您搞砸了安装。从playstore安装它或点击链接</string>
public <string name="ABI_ERROR_BT_1">本地升级</string>
public <string name="ABI_ERROR_BT_2">升级Playstore</string>
public <string name="ABI_ERROR_BT_3">仍然继续</string>
public <string name="REPORT_URL_TITLE">举报此网站</string>
public <string name="REPORT_URL_DESC">如果您认为url非法或令人不安请向我们报告以便我们更新数据库\ n</string>
public <string name="REPORT_URL_BT_1">报告</string>
public <string name="REPORT_URL_BT_2">解雇</string>
public <string name="ORBOT_INIT_TITLE">初始化中</string>
public <string name="ORBOT_INIT_DESC">请耐心等待!当我们将您连接到隐藏的网站时。这可能需要几分钟\ n</string>
public <string name="ORBOT_INIT_BT_1">解雇</string>
public <string name="ORBOT_INIT_BT_2">再试一次</string>
public <string name="ORBOT_CLEAR_TITLE">资料已清除</string>
public <string name="ORBOT_CLEAR_DESC">创世数据已清除。请尝试从首页启动应用程序\ n</string>
public <string name="ORBOT_CLEAR_BT_1">解雇</string>
public <string name="VERSION_TITLE">更新待处理</string>
public <string name="VERSION_DESC">您有一段时间没有更新过此应用,请对其进行更新以获得最佳性能\ n</string>
public <string name="VERSION_BT_1">更新资料</string>
public <string name="REPORT_SUCCESS_TITLE">URL成功报告</string>
public <string name="REPORT_SUCCESS_DESC">URL已成功报告。从我们的服务器中完全删除此网站大约需要一周的时间\ n</string>
public <string name="REPORT_SUCCESS_BT_1">解雇</string>
public <string name="RATE_TITLE">评价我们</string>
public <string name="RATE_MESSAGE">我们不接受任何捐赠或通过此应用赚钱。我们正在尝试建立私人匿名互联网\ n \ n如果您认为此应用有效请给我们评分它为我们提供了继续前进的希望和力量</string>
public <string name="RATE_POSITIVE">喜欢这个程序</string>
public <string name="RATE_NEGATIVE">不喜欢这个程序</string>
public <string name="RATE_SUCCESS_TITLE">抱歉听到!</string>
public <string name="RATE_SUCCESS_DESC">如果您有任何问题并想与我们联系请给我们发送电子邮件至gameolstudios@gmail.com。我们将尽力尽快解决您的问题</string>
public <string name="RATE_SUCCESS_BT_1">发邮件</string>
public <string name="BOOKMARK_URL_BT_1">书签</string>
public <string name="BOOKMARK_URL_BT_2">解雇</string>
public <string name="CLEAR_HISTORY_TITLE">清除网站存储空间?</string>
public <string name="CLEAR_HISTORY_DESC">这将清除所有站点的数据</string>
public <string name="CLEAR_HISTORY_BT_1">明确</string>
public <string name="CLEAR_HISTORY_BT_2">解雇</string>
public <string name="CLEAR_TAB_TITLE">清除打开的标签页?</string>
public <string name="CLEAR_TAB_DESC">这将清除所有存储的标签</string>
public <string name="CLEAR_TAB_BT_1">明确</string>
public <string name="clear_bookmark_title">清除网站书签?</string>
public <string name="clear_bookmark_desc">这将清除所有已保存网站的数据\ n</string>
public <string name="clear_bookmark_bt1">明确</string>
public <string name="clear_bookmark_bt2">解雇</string>
public <string name="DOWNLOAD_TITLE">下载通知</string>
public <string name="DOWNLOAD_MESSAGE">下载文件|</string>
public <string name="DOWNLOAD_POSITIVE">下载</string>
public <string name="BRIDGE_MAIL_TITLE">申请新桥</string>
public <string name="BRIDGE_MAIL_MESSAGE">您可以通过电子邮件网络或扫描桥QR码来获得桥地址。选择下面的\“电子邮件\”以请求网桥地址。\ n \ n一旦您有地址请复制</string>
public <string name="BRIDGE_MAIL_POSITIVE">电子邮件</string>
public <string name="LONG_URL_TITLE">网址通知</string>
public <string name="LONG_URL_MESSAGE" />
public <string name="LONG_URL_OPTION_1">在新标签页中打开</string>
public <string name="LONG_URL_OPTION_2">在当前标签页中打开</string>
public <string name="LONG_URL_OPTION_3">复制到剪贴板</string>
public <string name="LONG_URL_OPTION_4">下载此文件</string>
public <string name="LONG_URL_FULL_MESSAGE">网址说明</string>
public <string name="LONG_URL_FULL_OPTION_1">在新标签页中打开网址</string>
public <string name="LONG_URL_FULL_OPTION_2">在当前标签页中打开网址</string>
public <string name="LONG_URL_FULL_OPTION_3">将网址复制到剪贴板</string>
public <string name="LONG_URL_FULL_OPTION_4">在新标签页中打开图片</string>
public <string name="LONG_URL_FULL_OPTION_5">打开图像当前选项卡</string>
public <string name="LONG_URL_FULL_OPTION_6">将图像复制到剪贴板</string>
public <string name="LONG_URL_FULL_OPTION_7">下载图片文件</string>
public <string name="BANNED_TITLE">Tor在您的国家被禁止了吗</string>
public <string name="BANNED_DESC">启用免费网关以通过禁止的配置进行隧道传输仅在您的国家/地区禁止使用Tor时使用</string>
/*Tab Manager*/
public <string name="CLEAR_TABS">清除标签</string>
/*Bridge Manager*/
public <string name="CUSTOM_BRIDGE">obfs4</string>
/*Text Manager*/
public <string name="DARK_WEB">隐藏的网</string>
public <string name="EMPTY_STR" />
public <string name="EMPTY_SPACE"> </string>
/*Settings Manager*/
public <string name="CUSTOM_FONTS">自定义字体</string>
public <string name="PERCENT_SIGN"></string>
public <string name="DEFAULT_LANGUAGE">ru</string>
/*Bookmark Manager*/
public <string name="CLEAR_BOOKMARK">清除书签</string>
/*Home Manager*/
public <string name="BLANK_PAGE">关于:空白</string>
/*Events*/
public <string name="APP_STARTED">APP_STARTED</string>
public <string name="PROXY_CHANGED">PROXY_CHANGED</string>
public <string name="APP_RESTARTED">APP_RESTARTED</string>
public <string name="APP_FINISHED">APP_FINISHED</string>
public <string name="SEARCH_SWITCH">SEARCH_SWITCH</string>
public <string name="SETTINGS_OPENED">SETTINGS_OPENED</string>
public <string name="URL_BOOKMARKED">URL_BOOKMARKED</string>
public <string name="BOOKMARK_OPENED" translatable="false">BOOKMARK_OPENED</string>
public <string name="TAB_OPENED">TAB_OPENED</string>
public <string name="GATEWAY_OPENED">GATEWAY_OPENED</string>
public <string name="HISTORY_OPENED">HISTORY_OPENED</string>
public <string name="HISTORY_TRIGGERED">HISTORY_TRIGGERED</string>
public <string name="BOOKMARK_TRIGGERED">BOOKMARK_TRIGGERED</string>
public <string name="TAB_TRIGGERED">TAB_TRIGGERED</string>
public <string name="URL_ERROR">URL_ERROR</string>
public <string name="URL_ERROR_NOT_LOADED">URL_ERROR_NOT_LOADED</string>
public <string name="PAGE_OPENED_SUCCESS">PAGE_OPENED_SUCCESS</string>
public <string name="HOME_INVOKED">HOME_INVOKED</string>
public <string name="SEARCH_INVOKED">SEARCH_INVOKED</string>
public <string name="MENU_INVOKED">MENU_INVOKED</string>
public <string name="ON_BACK">背部</string>
<string name="landing_next_page">下一个</string>
<string name="listview_clear">明确</string>
<string name="popup_new_tabs">新标签</string>
<string name="popup_close_tabs">关闭标签</string>
<string name="popup_open_Recent_tab">打开最近的标签页</string>
<string name="popup_languages">语言</string>
<string name="popup_download">资料下载</string>
<string name="popup_history">历史</string>
<string name="popup_settings">设定值</string>
<string name="popup_bookmark_page">收藏此页</string>
<string name="popup_open_bookmark">打开书签</string>
<string name="popup_report">报告网站</string>
<string name="popup_rate">为这个应用软件评分</string>
<string name="popup_share">分享</string>
<string name="orbot_settings_warning">Warning警告</string>
<string name="orbot_settings_bridges">启用网桥</string>
<string name="gateway_info">启用网关</string>
<string name="gateway_button">启用网关</string>
<string name="loading_please_wait">加载请稍候</string>
<string name="orbot_option_title_reset">应用卡在加载中</string>
<string name="orbot_option_desc_reset">清除存储</string>
<string name="orbot_option_desc_reset_button">打开设置</string>
<string name="orbot_header">代理设定</string>
<string name="orbot_desc">创世记浏览器将您连接到由全球数千名志愿者运营的Tor网络这些选项可以帮助您吗</string>
<string name="orbot_option_title">互联网在这里进行审查</string>
<string name="orbot_option_desc">绕过防火墙</string>
<string name="orbot_option_warning_slow_speed">桥梁导致互联网运行非常缓慢。仅当您所在国家的互联网受到审查或Tor网络被阻止时才使用它们</string>
<string name="bookmark_clear_history">清除历史记录</string>
<string name="tab_view_clear_bookmark">清除书签</string>
<string name="hint_default_suggession">英国广播公司|以色列再次罢工</string>
<string name="notification_default_label">default.jpg</string>
<string name="notification_open_text">打开</string>
<string name="tab_view_increment"> 1个</string>
<string name="tab_view_search_tab">搜索标签</string>
<string name="tab_view_clear_tab">清除标签</string>
<string name="home_tab_text">1个</string>
<string name="home_connect">连接</string>
<string name="home_loading">加载请稍候</string>
<string name="bridges_sometimes">“有时您需要一座通往Tor的桥梁。”</string>
<string name="action_more">“告诉我更多”</string>
<string name="vpn_setup">“您可以使用我们的内置VPN使任何应用程序都可以通过Tor。”</string>
<string name="vpn_setup_sub">“这不会使您匿名,但是它将帮助您穿过防火墙。”</string>
<string name="action_vpn_choose">“选择应用”</string>
<string name="hello">“你好”</string>
<string name="welcome">“欢迎使用手机上的Tor。”</string>
<string name="browser_the_internet">“按照您的期望浏览互联网。”</string>
<string name="no_tracking">“没有跟踪。没有审查制度。”</string>
<string name="error_m1">无法访问该网站</string>
<string name="error_m2">连接期间发生错误</string>
<string name="error_m3">您尝试查看的页面无法显示,因为无法验证所接收数据的真实性</string>
<string name="error_m4">由于某种原因,该页面当前未激活或关闭</string>
<string name="error_m5">请与网站所有者联系,以告知他们该问题。</string>
<string name="error_m6">重装</string>
<string-array name="fonts">
<item>55</item>
<item>70</item>
<item>85</item>
<item>100</item>
<item>115</item>
<item>130</item>
<item>145</item>
</string-array>
<string-array name="search_engines">
<item>隐藏的网</item>
<item>谷歌</item>
<item>鸭鸭去</item>
</string-array>
<string-array name="boolean_option">
<item>已启用</item>
<item>残障人士</item>
</string-array>
<string-array name="notification">
<item>全部启用</item>
<item>禁用所有</item>
<item>无带宽</item>
</string-array>
<string-array name="cookies">
<item>允许所有</item>
<item>允许信任</item>
<item>禁止无</item>
<item>允许访问</item>
<item>允许非追踪者</item>
</string-array>
<!-- Generated by Automatic String Resource Translation
--><!-- https://asrt.gluege.boerde.de
--></resources>

File diff suppressed because it is too large Load Diff

View File

@ -1,13 +1,14 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<color name="blue">#0066FF</color> <color name="blue">#0066FF</color>
<color name="ease_blue_light">#fdfeff</color>
4d88ff
<color name="ease_blue_light">#fdfeff</color>
<color name="ease_blue">#4d88ff</color> <color name="ease_blue">#4d88ff</color>
<color name="landing_ease_blue">#212d45</color>
<color name="landing_ease_blue_light_1">#eef1f7</color>
<color name="landing_ease_blue_light_2">#eef1f7</color>
<color name="cursor_blue">#3385ff</color> <color name="cursor_blue">#3385ff</color>
<color name="text_color_highlight_v1">#b3d1ff</color> <color name="text_color_highlight_v1">#b3d1ff</color>
<color name="blue_dark">#00264d</color> <color name="blue_dark">#212d45</color>
<color name="blue_dark_v1">#212d45</color> <color name="blue_dark_v1">#212d45</color>
<color name="blue_dark_v2">#55212d45</color> <color name="blue_dark_v2">#55212d45</color>
@ -32,7 +33,7 @@
<color name="white">#ffffff</color> <color name="white">#ffffff</color>
<color name="progress_tint">#f32323</color> <color name="progress_tint">#f32323</color>
<color name="green_dark">#196619</color> <color name="green_dark">#212d45</color>
<color name="dark_purple">#CC212d45</color> <color name="dark_purple">#CC212d45</color>
<color name="warning">#ffc107</color> <color name="warning">#ffc107</color>
<color name="colorProgressGradientStart">#00d9ff</color> <color name="colorProgressGradientStart">#00d9ff</color>

View File

@ -1,78 +1,293 @@
<resources> <resources>
<!-- Application Strings --> <!-- Application Strings -->
<string name="app_name">Genesis</string> <string name="app_name" translatable="false">Genesis</string>
<string name="SearchHint" translatable="false">Search History</string> <string name="SearchHint">Search History</string>
<string name="SearchHintMain" translatable="false">Search or type web address</string> <string name="SearchHintMain">Search or type web address</string>
<string name="homeUrl" translatable="false">https://genesis.onion</string> <string name="homeUrl" translatable="false">https://genesis.onion</string>
<string name="errorTiyle" translatable="false">\u0020\u0020\u0020Opps! Some Thing Went Wrong</string> <string name="errorTiyle">\u0020\u0020\u0020Opps! Some Thing Went Wrong</string>
<string name="todo" translatable="false">TODO</string> <string name="todo">TODO</string>
<string name="projectName" translatable="false">Genesis Search Engine</string> <string name="projectName">Genesis Search Engine</string>
<string name="loadingText" translatable="false">Online Freedom</string> <string name="loadingText">Online Freedom</string>
<string name="reload" translatable="false">Reload</string> <string name="reload">Reload</string>
<string name="internetErrorMessage" translatable="false">These might be the problems you are facing \n\n• Webpage or Website might be down \n• Your Internet connection might be poor \n• You might be using a proxy \n• Website might be blocked by firewall</string> <string name="internetErrorMessage">These might be the problems you are facing \n\n• Webpage or Website might be down \n• Your Internet connection might be poor \n• You might be using a proxy \n• Website might be blocked by firewall</string>
<string name="title_activity_list_manager" translatable="false">list_manager</string> <string name="title_activity_list_manager">list_manager</string>
<string name="title_activity_setting_controller" translatable="false">Settings</string> <string name="title_activity_setting_controller">Settings</string>
<string name="file_provider_authority" translatable="false">com.darkweb.genesissearchengine.fileprovider</string> <string name="file_provider_authority">com.darkweb.genesissearchengine.fileprovider</string>
<!-- Preference Titles --> <!-- Preference Titles -->
<string name="preferences_messages_header" translatable="false">Messages</string> <string name="preferences_messages_header">Messages</string>
<string name="preferences_sync_header" translatable="false">Sync</string> <string name="preferences_sync_header">Sync</string>
<!-- Messages Preferences --> <!-- Messages Preferences -->
<string name="messages_signature_title" translatable="false">Your signature</string> <string name="messages_signature_title">Your signature</string>
<string name="messages_reply_title" translatable="false">Default reply action</string> <string name="messages_reply_title">Default reply action</string>
<!-- Settings --> <!-- Settings -->
<string name="settings_basic_settings" translatable="false">Basic Settings</string> <string name="settings_basic_settings">Basic Settings</string>
<string name="settings_header" translatable="false">Settings</string> <string name="settings_header">Settings</string>
<string name="settings_search_engine" translatable="false">Search Engine</string> <string name="settings_search_engine">Search Engine</string>
<string name="settings_javascript" translatable="false">Javascript</string> <string name="settings_javascript">Javascript</string>
<string name="settings_clear_history" translatable="false">Auto Clear History</string> <string name="settings_clear_history">Auto Clear History</string>
<string name="settings_font_title" translatable="false">Font Settings</string> <string name="settings_font_title">Font Settings</string>
<string name="settings_adjust_font" translatable="false">Customized Font</string> <string name="settings_adjust_font">Customized Font</string>
<string name="settings_manual_font" translatable="false">Auto Adjust Font</string> <string name="settings_manual_font">Auto Adjust Font</string>
<string name="settings_cookies" translatable="false">Cookie Settings</string> <string name="settings_cookies">Cookie Settings</string>
<string name="settings_cookie" translatable="false">Cookies</string> <string name="settings_cookie">Cookies</string>
<string name="settings_notification" translatable="false">Manage Notification</string> <string name="settings_notification">Manage Notification</string>
<!-- Bridge Settings -->
<string name="bridge_basic_settings">Basic Settings</string>
<string name="bridge_Automatid_title">Create Automatically</string>
<string name="bridge_Manual_desc">Provide a Bridge I know</string>
<string name="bridge_Auto_switch">Auto</string>
<string name="bridge_Manual_switch">Manual</string>
<string name="bridge_port_hint">address:port Single Line</string>
<string name="bridge_header">Bridge Settings</string>
<string name="bridge_desc">Bridges are unlisted Tor relays that make it more difficult to block connections into the Tor network. Because of how some countries try to block Tor, certain bridges work in some countries but not others</string>
<string name="bridge_default_title">Select Default Bridge</string>
<string name="bridge_request" translatable="false">Request Bridge</string>
<!-- Message Manager -->
<string name="WELCOME_MESSAGE_TITLE">Welcome | Hidden Web Gateway</string>
<string name="WELCOME_MESSAGE_DESC">This application provide you a platform to Search and Open Hidden Web urls.Here are few Suggestions\n</string>
<string name="WELCOME_MESSAGE_BT_1">Deep Web Online Market</string>
<string name="WELCOME_MESSAGE_BT_2">Leaked Documents and Books</string>
<string name="WELCOME_MESSAGE_BT_3">Dark Web News and Articles</string>
<string name="WELCOME_MESSAGE_BT_4">Secret Softwares and Hacking Tools</string>
<string name="WELCOME_MESSAGE_BT_5">Don\'t Show Again</string>
<string name="ABI_ERROR_TITLE">Invalid Setup File</string>
<string name="ABI_ERROR_DESC">Looks like you messed up the installation. Either Install it from playstore or follow the link</string>
<string name="ABI_ERROR_BT_1">Local Upgrade</string>
<string name="ABI_ERROR_BT_2">Playstore Upgrade</string>
<string name="ABI_ERROR_BT_3">Continue Anyway</string>
<string name="REPORT_URL_TITLE">Report This Website</string>
<string name="REPORT_URL_DESC">If you think url is illegal or disturbing report us so that we can update our database\n</string>
<string name="REPORT_URL_BT_1">Report</string>
<string name="REPORT_URL_BT_2">Dismiss</string>
<string name="ORBOT_INIT_TITLE">Initializing</string>
<string name="ORBOT_INIT_DESC">Please wait! While we connect you to hidden web. This might take few minutes\n</string>
<string name="ORBOT_INIT_BT_1">Dismiss</string>
<string name="ORBOT_INIT_BT_2">Try Again</string>
<string name="ORBOT_CLEAR_TITLE">Data Cleared</string>
<string name="ORBOT_CLEAR_DESC">Genesis data has been cleared. Please try to start application from Homepage\n</string>
<string name="ORBOT_CLEAR_BT_1">Dismiss</string>
<string name="VERSION_TITLE">Update Pending</string>
<string name="VERSION_DESC">You have not updated this app for a while please update it to get best performance\n</string>
<string name="VERSION_BT_1">Update</string>
<string name="REPORT_SUCCESS_TITLE">URL Reported Successfully</string>
<string name="REPORT_SUCCESS_DESC">URL has been successfully reported. It will take about a week to completely remove this website from our servers\n</string>
<string name="REPORT_SUCCESS_BT_1">Dismiss</string>
<string name="NOT_SUPPORTED_TITLE">Action not Supported</string>
<string name="NOT_SUPPORTED_MESSAGE">No application found to handle email</string>
<string name="NOT_SUPPORTED_BT_1">Dismiss</string>
<string name="RATE_TITLE">Rate US</string>
<string name="RATE_MESSAGE">We don\'t take donations or earn money from this app. We are trying to make a private anonymous internet \n\nIf you think this app works please rate us it gives us hope and strength to continue</string>
<string name="RATE_POSITIVE">Like This App</string>
<string name="RATE_NEGATIVE">Don\'t Like This App</string>
<string name="RATE_SUCCESS_TITLE">Sorry To Hear That!</string>
<string name="RATE_SUCCESS_DESC">If you are having any trouble and want to contact us please email us at gamesolstudios@gmail.com We will try to solve your problem as soon as possible</string>
<string name="RATE_SUCCESS_BT_1">Send Mail</string>
<string name="BOOKMARK_URL_BT_1">Bookmark</string>
<string name="BOOKMARK_URL_BT_2">Dismiss</string>
<string name="CLEAR_HISTORY_TITLE">Clear site storage?</string>
<string name="CLEAR_HISTORY_DESC">This will clear data for all sites</string>
<string name="CLEAR_HISTORY_BT_1">Clear</string>
<string name="CLEAR_HISTORY_BT_2">Dismiss</string>
<string name="CLEAR_TAB_TITLE">Clear open tabs?</string>
<string name="CLEAR_TAB_DESC">This will clear all stored tabs</string>
<string name="CLEAR_TAB_BT_1">Clear</string>
<string name="clear_bookmark_title">Clear site bookmark?</string>
<string name="clear_bookmark_desc">This will clear data for all saved sites\n</string>
<string name="clear_bookmark_bt1">Clear</string>
<string name="clear_bookmark_bt2">Dismiss</string>
<string name="DOWNLOAD_TITLE">Download Notification</string>
<string name="DOWNLOAD_MESSAGE">Download File | </string>
<string name="DOWNLOAD_POSITIVE">Download</string>
<string name="BRIDGE_MAIL_TITLE">Request New Bridge</string>
<string name="BRIDGE_MAIL_MESSAGE">You can get a bridge address through email, the web or by scanning a bridge QR code. Select \'Email\' below to request a bridge address.\n\nOnce you have an address, copy &amp; paste it into the above box and start.</string>
<string name="BRIDGE_MAIL_POSITIVE">EMAIL</string>
<string name="LONG_URL_TITLE">URL Notification</string>
<string name="LONG_URL_MESSAGE"></string>
<string name="LONG_URL_OPTION_1">Open In New Tab</string>
<string name="LONG_URL_OPTION_2">Open In Current Tab</string>
<string name="LONG_URL_OPTION_3">Copy to Clipboard</string>
<string name="LONG_URL_OPTION_4">Download this file</string>
<string name="LONG_URL_FULL_MESSAGE">URL Description</string>
<string name="LONG_URL_FULL_OPTION_1">Open url in new tab</string>
<string name="LONG_URL_FULL_OPTION_2">Open url in current tab</string>
<string name="LONG_URL_FULL_OPTION_3">Copy url to clipboard</string>
<string name="LONG_URL_FULL_OPTION_4">Open image in new tab</string>
<string name="LONG_URL_FULL_OPTION_5">Open image current tab</string>
<string name="LONG_URL_FULL_OPTION_6">Copy image to clipboard</string>
<string name="LONG_URL_FULL_OPTION_7">Download image file</string>
<string name="BANNED_TITLE">Is Tor Bannned In Your Country?</string>
<string name="BANNED_DESC">Enable free GATEWAY to tunnel through banned configuration | Use it only if tor is banned in your country</string>
/*Tab Manager*/
public
<string name="CLEAR_TABS">CLEAR TABS</string>
/*Bridge Manager*/
public
<string name="CUSTOM_BRIDGE">obfs4</string>
/*Text Manager*/
public
<string name="DARK_WEB">Hidden Web</string>
public
<string name="EMPTY_STR"></string>
public
<string name="EMPTY_SPACE"> </string>
/*Settings Manager*/
public
<string name="CUSTOM_FONTS">Custom Font</string>
public
<string name="PERCENT_SIGN">%</string>
public
<string name="DEFAULT_LANGUAGE">ru</string>
/*Bookmark Manager*/
public
<string name="CLEAR_BOOKMARK">CLEAR BOOKMARK</string>
/*Home Manager*/
public
<string name="BLANK_PAGE">about:blank</string>
/*Events*/
public
<string name="APP_STARTED">APP_STARTED</string>
public
<string name="PROXY_CHANGED">PROXY_CHANGED</string>
public
<string name="APP_RESTARTED">APP_RESTARTED</string>
public
<string name="APP_FINISHED">APP_FINISHED</string>
public
<string name="SEARCH_SWITCH">SEARCH_SWITCH</string>
public
<string name="SETTINGS_OPENED">SETTINGS_OPENED</string>
public
<string name="URL_BOOKMARKED">URL_BOOKMARKED</string>
public
<string name="BOOKMARK_OPENED" translatable="false">BOOKMARK_OPENED</string>
public
<string name="TAB_OPENED">TAB_OPENED</string>
public
<string name="GATEWAY_OPENED">GATEWAY_OPENED</string>
public
<string name="HISTORY_OPENED">HISTORY_OPENED</string>
public
<string name="HISTORY_TRIGGERED">HISTORY_TRIGGERED</string>
public
<string name="BOOKMARK_TRIGGERED">BOOKMARK_TRIGGERED</string>
public
<string name="TAB_TRIGGERED">TAB_TRIGGERED</string>
public
<string name="URL_ERROR">URL_ERROR</string>
public
<string name="URL_ERROR_NOT_LOADED">URL_ERROR_NOT_LOADED</string>
public
<string name="PAGE_OPENED_SUCCESS">PAGE_OPENED_SUCCESS</string>
public
<string name="HOME_INVOKED">HOME_INVOKED</string>
public
<string name="SEARCH_INVOKED">SEARCH_INVOKED</string>
public
<string name="MENU_INVOKED">MENU_INVOKED</string>
public
<string name="ON_BACK">ON_BACK</string>
<!-- Landing View -->
<string name="landing_next_page">Next</string>
<!-- List View --> <!-- List View -->
<string name="listview_clear" translatable="false">Clear</string> <string name="listview_clear">Clear</string>
<!-- Popup Menu -->
<string name="popup_new_tabs">New Tabs</string>
<string name="popup_close_tabs">Close Tab</string>
<string name="popup_open_Recent_tab">Open Recent Tabs</string>
<string name="popup_languages">Language</string>
<string name="popup_download">Downloads</string>
<string name="popup_history">History</string>
<string name="popup_settings">Settings</string>
<string name="popup_desktop">Desktop Site</string>
<string name="popup_bookmark_page">Bookmark This Page</string>
<string name="popup_open_bookmark">Open Bookmarks</string>
<string name="popup_report">Report Website</string>
<string name="popup_rate">Rate This App</string>
<string name="popup_share">Share</string>
<!-- Orbot Settings --> <!-- Orbot Settings -->
<string name="orbot_settings_warning" translatable="false">⚠️ Warning</string> <string name="orbot_settings_warning">⚠️ Warning</string>
<string name="orbot_settings_bridges" translatable="false">Enable Bridges</string> <string name="orbot_settings_bridges">Enable Bridges</string>
<string name="gateway_info">Enable Gateway</string>
<string name="gateway_button">Enable Gateway</string>
<string name="loading_please_wait">Loading Please Wait</string>
<string name="orbot_option_title_reset">App Stuck in loading</string>
<string name="orbot_option_desc_reset">Clear Storage</string>
<string name="orbot_option_desc_reset_button">Open Settings</string>
<!-- Orbot View --> <!-- Orbot View -->
<string name="orbot_header" translatable="false">Proxy Settings</string> <string name="orbot_header">Proxy Settings</string>
<string name="orbot_desc" translatable="false">Genesis Browser connects you to the Tor Network run by thousands of volunteers around the world! Can these options help you</string> <string name="orbot_desc">Genesis Browser connects you to the Tor Network run by thousands of volunteers around the world! Can these options help you</string>
<string name="orbot_option_title" translatable="false">Internet is censored here</string> <string name="orbot_option_title">Internet is censored here</string>
<string name="orbot_option_desc" translatable="false">Bypass Firewall</string> <string name="orbot_option_desc">Bypass Firewall</string>
<string name="orbot_option_warning_slow_speed" translatable="false">Bridges causes internet to run very slow. Use them only if internet is censored in your country or Tor network is blocked</string> <string name="orbot_option_warning_slow_speed">Bridges causes internet to run very slow. Use them only if internet is censored in your country or Tor network is blocked</string>
<!-- Splash --> <!-- Splash -->
<string name="gateway_info" translatable="false">Enable Gateway</string>
<string name="gateway_button" translatable="false">Enable Gateway</string>
<string name="gateway_loading_please_wait" translatable="false">Loading Please Wait</string>
<!-- Bookmark --> <!-- Bookmark -->
<string name="bookmark_clear_history" translatable="false">Clear History</string> <string name="bookmark_clear_history">Clear History</string>
<string name="tab_view_clear_bookmark">Clear Bookmark</string>
<!-- Hint View --> <!-- Hint View -->
<string name="hint_default_suggession" translatable="false">BBC | Israel Strikes Again</string> <string name="hint_default_suggession">BBC | Israel Strikes Again</string>
<!-- Notification Menu --> <!-- Notification Menu -->
<string name="notification_default_label" translatable="false">default.jpg</string> <string name="notification_default_label">default.jpg</string>
<string name="notification_open_text" translatable="false">Open</string> <string name="notification_open_text">Open</string>
<!-- Tab View --> <!-- Tab View -->
<string name="tab_view_increment" translatable="false">+1</string> <string name="tab_view_increment">+1</string>
<string name="tab_view_search_tab" translatable="false">Search Tabs</string> <string name="tab_view_search_tab">Search Tabs</string>
<string name="tab_view_clear_tab">Clear Tab</string>
<!-- Home View --> <!-- Home View -->
<string name="home_tab_text" translatable="false">1</string> <string name="home_tab_text">1</string>
<string name="home_connect" translatable="false">Connect</string> <string name="home_connect">Connect</string>
<string name="home_loading" translatable="false">Loading Please Wait</string> <string name="home_loading">Loading Please Wait</string>
<!-- Landing Page -->
<string name="bridges_sometimes">"Sometimes you need a bridge to get to Tor."</string>
<string name="action_more">"TELL ME MORE"</string>
<string name="vpn_setup">"You can enable any app to go through Tor using our built-in VPN."</string>
<string name="vpn_setup_sub">"This won\'t make you anonymous, but it will help get through firewalls."</string>
<string name="action_vpn_choose">"CHOOSE APPS"</string>
<string name="hello">"Hello"</string>
<string name="welcome">"Welcome to Tor on mobile."</string>
<string name="browser_the_internet">"Browse the internet how you expect you should."</string>
<string name="no_tracking">"No tracking. No censorship."</string>
<!-- Error Page -->
<string name="error_m1">This site can\'t be reached</string>
<string name="error_m2">An error occurred during a connection</string>
<string name="error_m3">The page you are trying to view cannot be shown because the authenticity of the received data could not be verified</string>
<string name="error_m4">The page is currently not live or down due to some reason</string>
<string name="error_m5">Please contact the website owners to inform them of this problem.</string>
<string name="error_m6">Reload</string>
<string-array name="fonts"> <string-array name="fonts">
<item>55 Percent</item> <item>55 Percent</item>

View File

@ -4,7 +4,7 @@
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. --> <!-- Customize your theme here. -->
<item name="colorPrimary">@color/ease_blue</item> <item name="colorPrimary">@color/ease_blue</item>
<item name="colorPrimaryDark">@color/ease_blue</item> <item name="colorPrimaryDark">@color/landing_ease_blue</item>
<item name="colorAccent">@color/ease_blue</item> <item name="colorAccent">@color/ease_blue</item>
<item name="android:windowBackground">@xml/sc_splash_gradient</item> <item name="android:windowBackground">@xml/sc_splash_gradient</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item> <item name="android:windowDrawsSystemBarBackgrounds">true</item>

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FF000000"
android:pathData="M20,8h-2.81c-0.45,-0.78 -1.07,-1.45 -1.82,-1.96L17,4.41 15.59,3l-2.17,2.17C12.96,5.06 12.49,5 12,5c-0.49,0 -0.96,0.06 -1.41,0.17L8.41,3 7,4.41l1.62,1.63C7.88,6.55 7.26,7.22 6.81,8L4,8v2h2.09c-0.05,0.33 -0.09,0.66 -0.09,1v1L4,12v2h2v1c0,0.34 0.04,0.67 0.09,1L4,16v2h2.81c1.04,1.79 2.97,3 5.19,3s4.15,-1.21 5.19,-3L20,18v-2h-2.09c0.05,-0.33 0.09,-0.66 0.09,-1v-1h2v-2h-2v-1c0,-0.34 -0.04,-0.67 -0.09,-1L20,10L20,8zM14,16h-4v-2h4v2zM14,12h-4v-2h4v2z"/>
</vector>

0
app/src/main/res/xml/ic_download.xml Normal file → Executable file
View File

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke
android:width="3dp"
android:color="#ffffff" />
<padding
android:left="5dp"
android:right="5dp"/>
<corners
android:bottomLeftRadius="7dp"
android:bottomRightRadius="7dp"
android:topLeftRadius="7dp"
android:topRightRadius="7dp" />
</shape>

0
app/src/main/res/xml/sc_file_provider_path.xml Normal file → Executable file
View File

View File

@ -0,0 +1,21 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/white"/>
<stroke
android:width="2dp"
android:color="@color/holo_gray" />
<corners
android:bottomLeftRadius="4dp"
android:bottomRightRadius="4dp"
android:topLeftRadius="4dp"
android:topRightRadius="4dp"/>
<padding
android:bottom="4dp"
android:top="4dp"
android:left="4dp"
android:right="4dp"/>
</shape>

View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/holo_gray">
<item android:id="@android:id/mask">
<shape android:shape="rectangle">
<solid android:color="@color/holo_dark_gray_alpha" />
<corners android:radius="5.5dp" />
</shape>
</item>
<item android:id="@android:id/background">
<shape android:shape="rectangle">
<gradient
android:angle="90"
android:endColor="@color/ease_blue"
android:startColor="@color/ease_blue"
android:type="linear" />
<corners android:radius="5.5dp" />
</shape>
</item>
</ripple>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@color/ease_blue"/> <item android:drawable="@color/landing_ease_blue"/>
<item> <item>
<bitmap <bitmap
android:gravity="center" android:gravity="center"

View File

@ -1,41 +1,41 @@
/*arm versions*/ /*arm versions*/
project.ext.arm_vname = '520' project.ext.arm_vname = '600'
project.ext.arm_vcode = 520 project.ext.arm_vcode = 600
/*aarch versions*/ /*aarch versions*/
project.ext.aarch_vname = '521' project.ext.aarch_vname = '601'
project.ext.aarch_vcode = 521 project.ext.aarch_vcode = 601
/*x86 versions*/ /*x86 versions*/
project.ext.x86_vname = '522' project.ext.x86_vname = '602'
project.ext.x86_vcode = 522 project.ext.x86_vcode = 602
/*x64 versions*/ /*x64 versions*/
project.ext.x64_vname = '523' project.ext.x64_vname = '603'
project.ext.x64_vcode = 523 project.ext.x64_vcode = 603
/*dimension*/ /*dimension*/
project.ext.dimen = 'abi' project.ext.dimen = 'abi'
/*firefox version*/ /*firefox version*/
project.ext.firefox_version = "73.0.20191220095035" project.ext.firefox_version = "75.0.20200219095352"
project.ext.firefox_channel = "nightly" project.ext.firefox_channel = "nightly"
/*Application Preferences*/ /*Application Preferences*/
project.ext.compileSdkVersion = 28 project.ext.compileSdkVersion = 28
project.ext.minSdkVersion = 21 project.ext.minSdkVersion = 21
project.ext.targetSdkVersion = 29 project.ext.targetSdkVersion = 29
project.ext.versionCode = 130 project.ext.versionCode = 130
project.ext.versionName = "130.0" project.ext.versionName = "130.0"
project.ext.applicationId = "com.darkweb.genesissearchengine" project.ext.applicationId = "com.darkweb.genesissearchengine"
/*test*/ /*test*/
project.ext.architecture_components_version = '2.1.0' project.ext.architecture_components_version = '2.1.0'
project.ext.support_libraries_version = '1.0.0' project.ext.support_libraries_version = '1.0.0'
project.ext.espresso_version = '3.1.0-alpha4' project.ext.espresso_version = '3.1.0-alpha4'
project.ext.kotlin_version = '1.3.50' project.ext.kotlin_version = '1.3.50'
project.ext.coroutines_version = '1.3.0' project.ext.coroutines_version = '1.3.0'
project.ext.spotbugs_version = '3.1.4' project.ext.spotbugs_version = '3.1.4'
project.ext.mozilla_components_version = '12.0.0' project.ext.mozilla_components_version = '12.0.0'
project.ext.gecko_nightly_version = '72.0.20200107212822' project.ext.gecko_nightly_version = '72.0.20200107212822'

0
genesisnoads.jks Normal file → Executable file
View File

0
orbotservice/.gitignore vendored Normal file → Executable file
View File

0
orbotservice/build.gradle Normal file → Executable file
View File

0
orbotservice/proguard-rules.pro vendored Normal file → Executable file
View File

0
orbotservice/src/main/AndroidManifest.xml Normal file → Executable file
View File

View File

@ -303,7 +303,7 @@ public class TorService extends Service implements TorServiceConstants, OrbotC
intent.setFlags(Intent. FLAG_ACTIVITY_CLEAR_TOP | Intent. FLAG_ACTIVITY_SINGLE_TOP ); intent.setFlags(Intent. FLAG_ACTIVITY_CLEAR_TOP | Intent. FLAG_ACTIVITY_SINGLE_TOP );
PendingIntent pendingIntentNewNym = PendingIntent.getBroadcast(this, 0, intentRefresh, PendingIntent.FLAG_UPDATE_CURRENT); PendingIntent pendingIntentNewNym = PendingIntent.getBroadcast(orbotLocalConstants.sHomeContext.get(), 0, intentRefresh, PendingIntent.FLAG_UPDATE_CURRENT);
if(pendingIntentNewNym==null){ if(pendingIntentNewNym==null){
return; return;
@ -362,7 +362,7 @@ public class TorService extends Service implements TorServiceConstants, OrbotC
*/ */
public int onStartCommand(Intent intent, int flags, int startId) { public int onStartCommand(Intent intent, int flags, int startId) {
Log.i("FUCK YOU ALL1","FUCK YOU ALL"); //Log.i("FUCK YOU ALL1","FUCK YOU ALL");
self = this; self = this;
try{ try{
@ -419,7 +419,7 @@ public class TorService extends Service implements TorServiceConstants, OrbotC
@Override @Override
public void onTaskRemoved(Intent rootIntent){ public void onTaskRemoved(Intent rootIntent){
Log.i("FUCK YOU ALL2","FUCK YOU ALL"); //Log.i("FUCK YOU ALL2","FUCK YOU ALL");
/*Intent restartServiceIntent = new Intent(getApplicationContext(), this.getClass()); /*Intent restartServiceIntent = new Intent(getApplicationContext(), this.getClass());
restartServiceIntent.setPackage(getPackageName()); restartServiceIntent.setPackage(getPackageName());
@ -459,7 +459,7 @@ public class TorService extends Service implements TorServiceConstants, OrbotC
} }
private void stopTorAsync () { private void stopTorAsync () {
Log.i("TorService", "stopTor"); //Log.i("TorService", "stopTor");
try { try {
sendCallbackStatus(STATUS_STOPPING); sendCallbackStatus(STATUS_STOPPING);
sendCallbackLogMessage(getString(R.string.status_shutting_down)); sendCallbackLogMessage(getString(R.string.status_shutting_down));
@ -621,7 +621,7 @@ public class TorService extends Service implements TorServiceConstants, OrbotC
logNotice("There was an error installing Orbot binaries"); logNotice("There was an error installing Orbot binaries");
} }
Log.i("TorService", "onCreate end"); //Log.i("TorService", "onCreate end");
} }
protected String getCurrentStatus () protected String getCurrentStatus ()
@ -1111,7 +1111,7 @@ public class TorService extends Service implements TorServiceConstants, OrbotC
if (conn != null) if (conn != null)
{ {
logNotice( "SUCCESS connected to Tor control port."); logNotice( "Starting Bootstrap Please Wait.");
File fileCookie = new File(appCacheHome, TOR_CONTROL_COOKIE); File fileCookie = new File(appCacheHome, TOR_CONTROL_COOKIE);
@ -1487,7 +1487,7 @@ public class TorService extends Service implements TorServiceConstants, OrbotC
private void sendCallbackLogMessage (String logMessage) private void sendCallbackLogMessage (String logMessage)
{ {
Log.i("FUCK","FUCK:"+logMessage); //Log.i("FUCK","FUCK:"+logMessage);
Intent intent = new Intent(LOCAL_ACTION_LOG); Intent intent = new Intent(LOCAL_ACTION_LOG);
// You can also include some extra data. // You can also include some extra data.
intent.putExtra(LOCAL_EXTRA_LOG, logMessage); intent.putExtra(LOCAL_EXTRA_LOG, logMessage);
@ -1518,11 +1518,11 @@ public class TorService extends Service implements TorServiceConstants, OrbotC
protected void sendCallbackStatus(String currentStatus) { protected void sendCallbackStatus(String currentStatus) {
Log.i("MFUCKER","MFUCKER : " + currentStatus); //Log.i("MFUCKER","MFUCKER : " + currentStatus);
if(currentStatus.equals("ON")){ if(currentStatus.equals("ON")){
orbotLocalConstants.sIsTorInitialized = true; orbotLocalConstants.sIsTorInitialized = true;
} }
Log.i("FUCKSS","FUCKSS:"+currentStatus); //Log.i("FUCKSS","FUCKSS:"+currentStatus);
mCurrentStatus = currentStatus; mCurrentStatus = currentStatus;
Intent intent = getActionStatusIntent(currentStatus); Intent intent = getActionStatusIntent(currentStatus);
// send for Orbot internals, using secure local broadcast // send for Orbot internals, using secure local broadcast
@ -1582,6 +1582,7 @@ public class TorService extends Service implements TorServiceConstants, OrbotC
if (newConnectivityState != mConnectivity) { if (newConnectivityState != mConnectivity) {
mConnectivity = newConnectivityState; mConnectivity = newConnectivityState;
orbotLocalConstants.sNetworkState = mConnectivity;
if (mConnectivity) if (mConnectivity)
newIdentity(); newIdentity();
@ -1692,6 +1693,8 @@ public class TorService extends Service implements TorServiceConstants, OrbotC
// extraLines.append("UpdateBridgesFromAuthority 1").append('\n'); // extraLines.append("UpdateBridgesFromAuthority 1").append('\n');
String bridgeList = Prefs.getBridgesList(); String bridgeList = Prefs.getBridgesList();
bridgeList = orbotLocalConstants.bridges;
boolean obfs3Bridges = bridgeList.contains("obfs3"); boolean obfs3Bridges = bridgeList.contains("obfs3");
boolean obfs4Bridges = bridgeList.contains("obfs4"); boolean obfs4Bridges = bridgeList.contains("obfs4");
boolean meekBridges = bridgeList.contains("meek"); boolean meekBridges = bridgeList.contains("meek");
@ -1741,7 +1744,8 @@ public class TorService extends Service implements TorServiceConstants, OrbotC
} }
else else
{ {
throw new IOException("Bridge binary does not exist: " + fileObfsclient.getCanonicalPath()); orbotLocalConstants.tor_logs_status = "Bridge binary does not exist";
throw new IOException("Bridge binary does not exist: " + fileObfsclient.getCanonicalPath());
} }
} }

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