Bug Fixes

Bug Fixes
master
msmannan00 2021-02-25 19:26:43 +05:00
parent 8418376554
commit 61122498ea
1090 changed files with 60236 additions and 2015 deletions

View File

@ -64,6 +64,7 @@
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode" android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
android:label="@string/SETTING_HEADER" android:label="@string/SETTING_HEADER"
android:windowSoftInputMode="adjustPan" /> android:windowSoftInputMode="adjustPan" />
<activity <activity
android:name="com.darkweb.genesissearchengine.appManager.settingManager.clearManager.settingClearController" android:name="com.darkweb.genesissearchengine.appManager.settingManager.clearManager.settingClearController"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode" android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"

File diff suppressed because one or more lines are too long

View File

@ -20,4 +20,5 @@ var ReferenceWebsitesDataID = {
mIcon : "mIcon", mIcon : "mIcon",
mHeader : "mHeader", mHeader : "mHeader",
mBody : "mBody", mBody : "mBody",
mUrl : "mUrl",
}; };

View File

@ -19,7 +19,7 @@ class homepage {
Object.keys(obj).forEach(function(key) { Object.keys(obj).forEach(function(key) {
var mObject = obj[key]; var mObject = obj[key];
mReferenceHTML += '<div class="hi_reference"><div class="clearfix content-heading"> <img style="float:left" src='+mObject[ReferenceWebsitesDataID.mIcon]+' alt="" /><h6 style="margin-left: 40px;padding-top:5px">'+mObject[ReferenceWebsitesDataID.mHeader]+'</h5><p style="margin-left: 0px;line-height: 18px;margin-top: 20px;color: #8c8c8c;font-size: 15px">'+mObject[ReferenceWebsitesDataID.mBody]+'</p></div></div>' mReferenceHTML += '<div class="hi_reference" onclick="location.href=\' ' + mObject[ReferenceWebsitesDataID.mUrl] + ' \';"><div class="hi_reference_website content-heading"> <div class="hi_image_container"><img class="hi_reference_image" alt="&#10063;" src="'+mObject[ReferenceWebsitesDataID.mIcon]+'"/></div><h6 class="hi_reference_header">'+mObject[ReferenceWebsitesDataID.mHeader]+'</h5><p class="hi_reference_body">'+mObject[ReferenceWebsitesDataID.mBody]+'</p></div></div>'
}); });
@ -52,5 +52,10 @@ function onTriggerScriptHandler(pCommand) {
/*Default Loaders*/ /*Default Loaders*/
$(window).on('load', function() { $(window).on('load', function() {
/* For Local Testing */
//var mResponseJson = '[{ "mIcon":"https://cdn.sstatic.net/Sites/stackoverflow/Img/favicon.ico?v=ec617d715196", "mHeader":"Experience", "mBody":"Donec id elit non mi porta gravida at eget metus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui"},{ "mIcon":"https://wikileaks.org/static/img/wl-logo.png", "mHeader":"Experience", "mBody":"Donec id elit non mi porta gravida at eget metus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui"},{ "mIcon":"https://cdn.sstatic.net/Sites/stackoverflow/Img/favicon.ico?v=ec617d715196", "mHeader":"Experience", "mBody":"Donec id elit non mi porta gravida at eget metus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui"},{ "mIcon":"https://cdn.sstatic.net/Sites/stackoverflow/Img/favicon.ico?v=ec617d715196", "mHeader":"Experience", "mBody":"Donec id elit non mi porta gravida at eget metus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui"},{ "mIcon":"https://cdn.sstatic.net/Sites/stackoverflow/Img/favicon.ico?v=ec617d715196", "mHeader":"Experience", "mBody":"Donec id elit non mi porta gravida at eget metus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui"},{ "mIcon":"https://cdn.sstatic.net/Sites/stackoverflow/Img/favicon.ico?v=ec617d715196", "mHeader":"Experience", "mBody":"Donec id elit non mi porta gravida at eget metus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui"}]';
//setTimeout(mHomepageLoader.onLoadReferenceWebsites, 500);
//setTimeout(mHomepageLoader.onLoadReferenceWebsiteContent, 1000, mResponseJson);
onTriggerScriptHandler(Commands.onLoadReferenceWebsites) onTriggerScriptHandler(Commands.onLoadReferenceWebsites)
}); });

View File

@ -1,6 +1,15 @@
/*Search*/ /*Search*/
.clear_selection{
moz-user-select: none;
-webkit-user-select: none;
-ms-user-select:none;
user-select:none;
-o-user-select:none;
}
#hi_search_container { #hi_search_container {
margin-top:15vh; margin-top:15vh;
margin-bottom: -25px;
} }
@media only screen and (max-width: 943px) { @media only screen and (max-width: 943px) {
@ -207,6 +216,10 @@
} }
} }
.hi_reference_website{
cursor: pointer;
}
.hi_container_size .hi_container_size
{ {
min-height: 100% !important; min-height: 100% !important;
@ -228,6 +241,54 @@
-webkit-animation: spin 2s linear infinite; /* Safari */ -webkit-animation: spin 2s linear infinite; /* Safari */
animation: spin 2s linear infinite; animation: spin 2s linear infinite;
} }
.hi_loader_item{
height:10px;
border-width:0;
color:gray;
background-color:#cccccc;
}
.hi_reference_body{
margin-left: 0px;
line-height: 18px;
margin-top: 15px;
color: #8c8c8c;
font-size: 14px;
}
.hi_reference_header{
margin-left: 50px;
padding-left: 10px;
border-left: 4px solid #ecf2f9;
font-weight: bold;
font-size: 16px;
color: #4080bf;
height: 40px;
padding-top:9px;
}
.hi_image_container{
width: 40px;
height: 40px;
border-radius: 100px;
float: left;
background-color: #f5f5f5;
display: flex;
}
.hi_reference_image{
max-width: 22px; /* Or whatever */
max-height: 22px; /* Or whatever */
margin: auto; /* Magic! */
border-radius: 4px;
float:left;
font-size: 20px;
color: #bfbfbf;
font-weight: bold;
}
line-style line-style
/* Safari */ /* Safari */
@-webkit-keyframes spin { @-webkit-keyframes spin {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 33 KiB

View File

@ -240,8 +240,8 @@ public class geckoClients
} }
} }
public boolean canGoBack(){ public boolean canGoForward(){
return mSession.canGoBack(); return mSession.canGoForward();
} }
public boolean isLoading(){ public boolean isLoading(){

View File

@ -339,6 +339,10 @@ public class geckoSession extends GeckoSession implements GeckoSession.MediaDele
loadUri(mVerificationURL); loadUri(mVerificationURL);
return GeckoResult.fromValue(AllowOrDeny.DENY); return GeckoResult.fromValue(AllowOrDeny.DENY);
} }
else if(var1.uri.startsWith("mailto")){
event.invokeObserver(Arrays.asList(var1.uri,mSessionID), enums.etype.M_ON_MAIL);
return GeckoResult.fromValue(AllowOrDeny.ALLOW);
}
else if(var1.uri.contains("boogle.store/advert__")){ else if(var1.uri.contains("boogle.store/advert__")){
event.invokeObserver(Arrays.asList(var1.uri,mSessionID), enums.etype.on_playstore_load); event.invokeObserver(Arrays.asList(var1.uri,mSessionID), enums.etype.on_playstore_load);
return GeckoResult.fromValue(AllowOrDeny.DENY); return GeckoResult.fromValue(AllowOrDeny.DENY);
@ -358,7 +362,6 @@ public class geckoSession extends GeckoSession implements GeckoSession.MediaDele
return GeckoResult.fromValue(AllowOrDeny.DENY); return GeckoResult.fromValue(AllowOrDeny.DENY);
} }
else if(!var1.uri.equals("about:blank")){ else if(!var1.uri.equals("about:blank")){
mCurrentURL = var1.uri;
if(mCurrentURL.startsWith(CONST_GENESIS_URL_CACHED)){ if(mCurrentURL.startsWith(CONST_GENESIS_URL_CACHED)){
mCurrentURL = constants.CONST_GENESIS_DOMAIN_URL; mCurrentURL = constants.CONST_GENESIS_DOMAIN_URL;
}else if(mCurrentURL.equals(constants.CONST_GENESIS_HELP_URL_CACHE)){ }else if(mCurrentURL.equals(constants.CONST_GENESIS_HELP_URL_CACHE)){
@ -370,6 +373,12 @@ public class geckoSession extends GeckoSession implements GeckoSession.MediaDele
checkApplicationRate(); checkApplicationRate();
event.invokeObserver(Arrays.asList(mCurrentURL,mSessionID,mCurrentTitle, mTheme), enums.etype.ON_EXPAND_TOP_BAR); event.invokeObserver(Arrays.asList(mCurrentURL,mSessionID,mCurrentTitle, mTheme), enums.etype.ON_EXPAND_TOP_BAR);
/* Its Absence causes delay on first launch*/
if(mCurrentURL.contains("boogle.store")){
event.invokeObserver(Arrays.asList(5, mSessionID), enums.etype.progress_update_forced);
}
mCurrentURL = var1.uri;
return GeckoResult.fromValue(AllowOrDeny.ALLOW); return GeckoResult.fromValue(AllowOrDeny.ALLOW);
}else { }else {
return GeckoResult.fromValue(AllowOrDeny.DENY); return GeckoResult.fromValue(AllowOrDeny.DENY);
@ -748,7 +757,7 @@ public class geckoSession extends GeckoSession implements GeckoSession.MediaDele
if (mHistoryList != null && index >= 0 && index < mHistoryList.size()) if (mHistoryList != null && index >= 0 && index < mHistoryList.size())
{ {
event.invokeObserver(Arrays.asList(mHistoryList.get(index), mSessionID), enums.etype.start_proxy); event.invokeObserver(Arrays.asList(mHistoryList.get(index).getUri(), mSessionID), enums.etype.start_proxy);
new Handler().postDelayed(this::goForward, 100); new Handler().postDelayed(this::goForward, 100);
} }
}else { }else {

View File

@ -33,10 +33,11 @@ public class hintAdapter extends RecyclerView.Adapter<hintAdapter.listViewHolder
private ArrayList<historyRowModel> mHintList; private ArrayList<historyRowModel> mHintList;
private AppCompatActivity mContext; private AppCompatActivity mContext;
private eventObserver.eventListener mEvent; private eventObserver.eventListener mEvent;
ImageView[] mWebIcon = new ImageView[15]; private String mSearch;
private ImageView[] mWebIcon = new ImageView[15];
private boolean mCounters=false;
boolean mCounters=false; public hintAdapter(ArrayList<historyRowModel> pHintList, eventObserver.eventListener pEvent, AppCompatActivity pContext, String pSearch) {
public hintAdapter(ArrayList<historyRowModel> pHintList, eventObserver.eventListener pEvent, AppCompatActivity pContext) {
this.mHintList = new ArrayList(); this.mHintList = new ArrayList();
int maxCounter=5; int maxCounter=5;
if(pHintList.size()<maxCounter){ if(pHintList.size()<maxCounter){
@ -46,12 +47,13 @@ public class hintAdapter extends RecyclerView.Adapter<hintAdapter.listViewHolder
this.mHintList.addAll(pHintList.subList(0,maxCounter)); this.mHintList.addAll(pHintList.subList(0,maxCounter));
this.mContext = pContext; this.mContext = pContext;
this.mEvent = pEvent; this.mEvent = pEvent;
this.mSearch = pSearch;
} }
public void onUpdateAdapter(ArrayList<historyRowModel> pHintList, String pSearch){
public void onUpdateAdapter(ArrayList<historyRowModel> pHintList){ //mHintList.clear();
mHintList.clear(); mHintList = pHintList;
mHintList.addAll(pHintList); mSearch = pSearch;
notifyDataSetChanged(); notifyDataSetChanged();
} }
@ -131,7 +133,7 @@ public class hintAdapter extends RecyclerView.Adapter<hintAdapter.listViewHolder
Drawable mDrawable = null; Drawable mDrawable = null;
Resources res = itemView.getContext().getResources(); Resources res = itemView.getContext().getResources();
try { try {
if(model.getDescription().equals(strings.GENERIC_EMPTY_STR)){ if(model.getDescription().equals(strings.GENERIC_EMPTY_STR) && !model.getHeader().contains(".")){
mDrawable = Drawable.createFromXml(res, res.getXml(R.xml.ic_baseline_search)); mDrawable = Drawable.createFromXml(res, res.getXml(R.xml.ic_baseline_search));
mMoveURL.setVisibility(View.GONE); mMoveURL.setVisibility(View.GONE);
}else { }else {

View File

@ -87,6 +87,8 @@ import java.util.List;
import java.util.Locale; import java.util.Locale;
import java.util.Objects; import java.util.Objects;
import java.util.concurrent.Callable; import java.util.concurrent.Callable;
import static com.darkweb.genesissearchengine.constants.constants.CONST_GENESIS_URL_CACHED;
import static com.darkweb.genesissearchengine.constants.enums.etype.GECKO_SCROLL_CHANGED; import static com.darkweb.genesissearchengine.constants.enums.etype.GECKO_SCROLL_CHANGED;
import static com.darkweb.genesissearchengine.constants.enums.etype.M_INITIALIZE_TAB_LINK; import static com.darkweb.genesissearchengine.constants.enums.etype.M_INITIALIZE_TAB_LINK;
import static com.darkweb.genesissearchengine.constants.enums.etype.M_INITIALIZE_TAB_SINGLE; import static com.darkweb.genesissearchengine.constants.enums.etype.M_INITIALIZE_TAB_SINGLE;
@ -134,6 +136,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
private ConstraintLayout mInfoPortrait; private ConstraintLayout mInfoPortrait;
private ConstraintLayout mInfoLandscape; private ConstraintLayout mInfoLandscape;
private com.google.android.material.appbar.AppBarLayout mAppBar; private com.google.android.material.appbar.AppBarLayout mAppBar;
private ProgressBar mProgressBarIndeterminate;
/*Redirection Objects*/ /*Redirection Objects*/
private GeckoResult<Bitmap> mRenderedBitmap = null; private GeckoResult<Bitmap> mRenderedBitmap = null;
@ -177,6 +180,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
initLandingPage(); initLandingPage();
initLocalLanguage(); initLocalLanguage();
onInitResume(false); onInitResume(false);
initSuggestions();
} }
public void onInitBooleans(){ public void onInitBooleans(){
@ -189,6 +193,10 @@ public class homeController extends AppCompatActivity implements ComponentCallba
mSearchBarLoading = false; mSearchBarLoading = false;
} }
public void initSuggestions(){
mSuggestions = (ArrayList<historyRowModel>)dataController.getInstance().invokeSuggestions(dataEnums.eSuggestionCommands.M_GET_SUGGESTIONS, Collections.singletonList(mSearchbar.getText().toString()));
}
public void onInitResume(boolean pStatus){ public void onInitResume(boolean pStatus){
if(status.mThemeApplying){ if(status.mThemeApplying){
mSplashScreen.setAlpha(0); mSplashScreen.setAlpha(0);
@ -204,7 +212,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
onLoadTabOnResume(); onLoadTabOnResume();
mSearchLock.setColorFilter(ContextCompat.getColor(this, R.color.c_lock_tint)); mSearchLock.setColorFilter(ContextCompat.getColor(this, R.color.c_lock_tint));
} }
initSuggestionView(new ArrayList<>()); initSuggestionView(new ArrayList<>(), strings.GENERIC_EMPTY_STR);
} }
public void onLoadTabOnResume(){ public void onLoadTabOnResume(){
@ -262,18 +270,12 @@ public class homeController extends AppCompatActivity implements ComponentCallba
} }
@SuppressLint("ClickableViewAccessibility") @SuppressLint("ClickableViewAccessibility")
private void initSuggestionView(ArrayList<historyRowModel> pList){ private void initSuggestionView(ArrayList<historyRowModel> pList, String pSearch){
LinearLayoutManager layoutManager = new LinearLayoutManager(this); LinearLayoutManager layoutManager = new LinearLayoutManager(this);
hintAdapter mAdapter = new hintAdapter(pList,new hintViewCallback(), this); hintAdapter mAdapter = new hintAdapter(pList,new hintViewCallback(), this, pSearch);
layoutManager.setReverseLayout(true); layoutManager.setReverseLayout(true);
mHintListView.setAdapter(mAdapter); mHintListView.setAdapter(mAdapter);
mHintListView.setNestedScrollingEnabled(false);
mHintListView.setHasFixedSize(true);
mHintListView.setItemViewCacheSize(10);
mHintListView.setDrawingCacheEnabled(true);
mHintListView.setDrawingCacheEnabled(true);
mHintListView.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_HIGH);
mHintListView.setLayoutManager(new LinearLayoutManager(this)); mHintListView.setLayoutManager(new LinearLayoutManager(this));
Objects.requireNonNull(mHintListView.getItemAnimator()).setChangeDuration(0); Objects.requireNonNull(mHintListView.getItemAnimator()).setChangeDuration(0);
@ -286,7 +288,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
} }
public void onUpdateSuggestionList(ArrayList<historyRowModel> pList){ public void onUpdateSuggestionList(ArrayList<historyRowModel> pList){
((hintAdapter) Objects.requireNonNull(mHintListView.getAdapter())).onUpdateAdapter(pList); ((hintAdapter) Objects.requireNonNull(mHintListView.getAdapter())).onUpdateAdapter(pList, mSearchbar.getText().toString());
} }
private void initLocalLanguage() { private void initLocalLanguage() {
@ -358,13 +360,14 @@ public class homeController extends AppCompatActivity implements ComponentCallba
mFindBar = findViewById(R.id.pFindBar); mFindBar = findViewById(R.id.pFindBar);
mInfoPortrait = findViewById(R.id.pInfoPortrait); mInfoPortrait = findViewById(R.id.pInfoPortrait);
mInfoLandscape = findViewById(R.id.pInfoLandscape); mInfoLandscape = findViewById(R.id.pInfoLandscape);
mProgressBarIndeterminate = findViewById(R.id.pProgressBarIndeterminate);
mGeckoView.setSaveEnabled(false); mGeckoView.setSaveEnabled(false);
mGeckoView.setSaveFromParentEnabled(false); mGeckoView.setSaveFromParentEnabled(false);
mGeckoView.setAutofillEnabled(true); mGeckoView.setAutofillEnabled(true);
mGeckoClient = new geckoClients(); mGeckoClient = new geckoClients();
mHomeViewController.initialization(new homeViewCallback(),this,mNewTab, mWebViewContainer, mLoadingText, mProgressBar, mSearchbar, mSplashScreen, mLoadingIcon, mBannerAds, mGatewaySplash, mTopBar, mGeckoView, mBackSplash, mConnectButton, mFindBar, mFindText, mFindCount, mTopLayout, mVoiceInput, mMenu, mNestedScroll, mBlocker, mBlockerFullSceen, mSearchEngineBar, mCopyright, mHintListView, mAppBar, mOrbotLogManager, mInfoLandscape, mInfoPortrait); mHomeViewController.initialization(new homeViewCallback(),this,mNewTab, mWebViewContainer, mLoadingText, mProgressBar, mSearchbar, mSplashScreen, mLoadingIcon, mBannerAds, mGatewaySplash, mTopBar, mGeckoView, mBackSplash, mConnectButton, mFindBar, mFindText, mFindCount, mTopLayout, mVoiceInput, mMenu, mNestedScroll, mBlocker, mBlockerFullSceen, mSearchEngineBar, mCopyright, mHintListView, mAppBar, mOrbotLogManager, mInfoLandscape, mInfoPortrait, mProgressBarIndeterminate);
mGeckoView.onSetHomeEvent(new nestedGeckoViewCallback()); mGeckoView.onSetHomeEvent(new nestedGeckoViewCallback());
mGeckoClient.initialize(mGeckoView, new geckoViewCallback(), this,false); mGeckoClient.initialize(mGeckoView, new geckoViewCallback(), this,false);
mGeckoClient.onValidateInitializeFromStartup(); mGeckoClient.onValidateInitializeFromStartup();
@ -491,7 +494,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
mHomeViewController.onClearSelections(false); mHomeViewController.onClearSelections(false);
mHomeViewController.onUpdateSearchBar(mTempSession.getCurrentURL(),false,true); mHomeViewController.onUpdateSearchBar(mTempSession.getCurrentURL(),false,true);
if(mTempSession.getProgress()>0 && mTempSession.getProgress()<100){ if(mTempSession.getProgress()>0 && mTempSession.getProgress()<100){
mHomeViewController.onProgressBarUpdate(mTempSession.getProgress()); mHomeViewController.onProgressBarUpdate(mTempSession.getProgress(), false);
}else { }else {
mHomeViewController.progressBarReset(); mHomeViewController.progressBarReset();
} }
@ -663,6 +666,10 @@ public class homeController extends AppCompatActivity implements ComponentCallba
public void afterTextChanged(Editable s) { public void afterTextChanged(Editable s) {
if(status.sSearchSuggestionStatus && isSuggestionChanged){ if(status.sSearchSuggestionStatus && isSuggestionChanged){
if(!mSearchBarLoading && mSearchEngineBar.getVisibility() != View.VISIBLE){
mSuggestions = (ArrayList<historyRowModel>)dataController.getInstance().invokeSuggestions(dataEnums.eSuggestionCommands.M_GET_SUGGESTIONS, Collections.singletonList(mSearchbar.getText().toString()));
initSuggestionView(mSuggestions, s.toString());
}
mSuggestions = (ArrayList<historyRowModel>)dataController.getInstance().invokeSuggestions(dataEnums.eSuggestionCommands.M_GET_SUGGESTIONS, Collections.singletonList(mSearchbar.getText().toString())); mSuggestions = (ArrayList<historyRowModel>)dataController.getInstance().invokeSuggestions(dataEnums.eSuggestionCommands.M_GET_SUGGESTIONS, Collections.singletonList(mSearchbar.getText().toString()));
if(mSuggestions.size()>0){ if(mSuggestions.size()>0){
if(!isSuggestionSearchOpened && mSearchbar.isFocused()){ if(!isSuggestionSearchOpened && mSearchbar.isFocused()){
@ -671,7 +678,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
} }
} }
if(mHintListView.getAdapter()==null){ if(mHintListView.getAdapter()==null){
initSuggestionView(mSuggestions); initSuggestionView(mSuggestions, s.toString());
mSearchEngineBar.setVisibility(View.VISIBLE); mSearchEngineBar.setVisibility(View.VISIBLE);
mSearchEngineBar.setAlpha(1); mSearchEngineBar.setAlpha(1);
}else { }else {
@ -682,7 +689,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
mSearchBarLoading = true; mSearchBarLoading = true;
mEdittextChanged.postDelayed(postToServerRunnable, 0); mEdittextChanged.postDelayed(postToServerRunnable, 0);
}else{ }else{
mEdittextChanged.postDelayed(postToServerRunnable, 300); mEdittextChanged.postDelayed(postToServerRunnable, 500);
} }
} }
} }
@ -833,6 +840,10 @@ public class homeController extends AppCompatActivity implements ComponentCallba
}, 100); }, 100);
} }
public void onNewTabBackground(boolean isKeyboardOpenedTemp, boolean isKeyboardOpened){
mHomeViewController.onNewTabAnimation(Arrays.asList(isKeyboardOpenedTemp, isKeyboardOpened), M_INITIALIZE_TAB_SINGLE);
}
public void onOpenLinkNewTab(String url){ public void onOpenLinkNewTab(String url){
onGetThumbnail(null); onGetThumbnail(null);
@ -862,7 +873,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED); pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
helperMethod.hideKeyboard(this); helperMethod.hideKeyboard(this);
mHomeViewController.onOpenMenu(view,mGeckoClient.canGoBack(),!(mProgressBar.getAlpha()<=0 || mProgressBar.getVisibility() ==View.INVISIBLE),mGeckoClient.getUserAgent()); mHomeViewController.onOpenMenu(view,mGeckoClient.canGoForward(),!(mProgressBar.getAlpha()<=0 || mProgressBar.getVisibility() ==View.INVISIBLE),mGeckoClient.getUserAgent());
} }
public void onFullScreenSettingChanged(){ public void onFullScreenSettingChanged(){
@ -929,12 +940,20 @@ public class homeController extends AppCompatActivity implements ComponentCallba
{ {
mHomeViewController.onSetBannerAdMargin(false, true); mHomeViewController.onSetBannerAdMargin(false, true);
} }
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){ } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
mHomeViewController.setOrientation(false); mHomeViewController.setOrientation(false);
if(mGeckoClient.getFullScreenStatus()) if(mGeckoClient.getFullScreenStatus())
{ {
mHomeViewController.onSetBannerAdMargin(true,(boolean)pluginController.getInstance().onAdsInvoke(null, pluginEnums.eAdManager.M_IS_ADVERT_LOADED)); mHomeViewController.onSetBannerAdMargin(true,(boolean)pluginController.getInstance().onAdsInvoke(null, pluginEnums.eAdManager.M_IS_ADVERT_LOADED));
} }
if(mGeckoClient.getSession().getCurrentURL().contains("boogle.store") || mGeckoClient.getSession().getCurrentURL().startsWith(CONST_GENESIS_URL_CACHED)){
mHomeViewController.updateBannerAdvertStatus(false);
}else {
mHomeViewController.updateBannerAdvertStatus(true);
}
} }
if(mSplashScreen.getAlpha()>0){ if(mSplashScreen.getAlpha()>0){
mHomeViewController.initSplashOrientation(); mHomeViewController.initSplashOrientation();
@ -1198,6 +1217,11 @@ public class homeController extends AppCompatActivity implements ComponentCallba
{ {
pluginController.getInstance().onMessageManagerInvoke(Arrays.asList(this, mGeckoClient.getSession().getCurrentURL()), M_BOOKMARK); pluginController.getInstance().onMessageManagerInvoke(Arrays.asList(this, mGeckoClient.getSession().getCurrentURL()), M_BOOKMARK);
} }
else if (menuId == R.id.pMenuOpenRecentTab)
{
helperMethod.openActivity(tabController.class, constants.CONST_LIST_HISTORY, homeController.this,true);
overridePendingTransition(R.anim.popup_anim_in, R.anim.popup_anim_out);
}
else if (menuId == R.id.pMenuOpenNewTab) else if (menuId == R.id.pMenuOpenNewTab)
{ {
helperMethod.hideKeyboard(this); helperMethod.hideKeyboard(this);
@ -1240,6 +1264,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
} }
if (menuId == R.id.menu22) { if (menuId == R.id.menu22) {
helperMethod.hideKeyboard(this); helperMethod.hideKeyboard(this);
mHomeViewController.onProgressBarUpdate(5,true);
mGeckoClient.onForwardPressed(); mGeckoClient.onForwardPressed();
} }
if (menuId == R.id.menu23) { if (menuId == R.id.menu23) {
@ -1250,7 +1275,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
helperMethod.hideKeyboard(this); helperMethod.hideKeyboard(this);
onHomeButton(view); onHomeButton(view);
} }
if (menuId == R.id.menu26 || menuId == R.id.menu27 || menuId == R.id.menu28) { if (menuId == R.id.menu26 || menuId == R.id.menu27) {
helperMethod.hideKeyboard(this); helperMethod.hideKeyboard(this);
mGeckoClient.toogleUserAgent(); mGeckoClient.toogleUserAgent();
mGeckoClient.onReload(); mGeckoClient.onReload();
@ -1346,7 +1371,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
else if(status.sSettingIsAppStarted){ else if(status.sSettingIsAppStarted){
mHomeViewController.onPageFinished(); mHomeViewController.onPageFinished();
mGeckoClient.onRedrawPixel(); mGeckoClient.onRedrawPixel();
mHomeViewController.onProgressBarUpdate(5); mHomeViewController.onProgressBarUpdate(5, false);
onLoadTabOnResume(); onLoadTabOnResume();
} }
} }
@ -1431,7 +1456,10 @@ public class homeController extends AppCompatActivity implements ComponentCallba
mHomeViewController.updateBannerAdvertStatus((boolean)data.get(3)); mHomeViewController.updateBannerAdvertStatus((boolean)data.get(3));
} }
else if(e_type.equals(enums.etype.progress_update)){ else if(e_type.equals(enums.etype.progress_update)){
mHomeViewController.onProgressBarUpdate((int)data.get(0)); mHomeViewController.onProgressBarUpdate((int)data.get(0), false);
}
else if(e_type.equals(enums.etype.progress_update_forced)){
mHomeViewController.onProgressBarUpdate((int)data.get(0), true);
} }
else if(e_type.equals(enums.etype.ON_UPDATE_SEARCH_BAR)){ else if(e_type.equals(enums.etype.ON_UPDATE_SEARCH_BAR)){
mHomeViewController.onUpdateSearchBar((String)data.get(0), false, false); mHomeViewController.onUpdateSearchBar((String)data.get(0), false, false);
@ -1527,7 +1555,9 @@ public class homeController extends AppCompatActivity implements ComponentCallba
else if(e_type.equals(enums.etype.FINDER_RESULT_CALLBACK)){ else if(e_type.equals(enums.etype.FINDER_RESULT_CALLBACK)){
mHomeViewController.onUpdateFindBarCount((int)data.get(0),(int)data.get(1)); mHomeViewController.onUpdateFindBarCount((int)data.get(0),(int)data.get(1));
} }
else if(e_type.equals(enums.etype.M_ON_MAIL)){
helperMethod.sendCustomMail(homeController.this, (String)data.get(0));
}
return null; return null;
} }
} }

View File

@ -19,6 +19,7 @@ import android.graphics.drawable.StateListDrawable;
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.text.method.MovementMethod;
import android.view.Gravity; import android.view.Gravity;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
@ -93,12 +94,15 @@ class homeViewController
private ConstraintLayout mInfoPortrait; private ConstraintLayout mInfoPortrait;
private ConstraintLayout mInfoLandscape; private ConstraintLayout mInfoLandscape;
private NestedScrollView mNestedScroll; private NestedScrollView mNestedScroll;
private ProgressBar mProgressBarIndeterminate;
/*Local Variables*/ /*Local Variables*/
private Callable<String> mLogs = null; private Callable<String> mLogs = null;
private boolean isLandscape = false; private boolean isLandscape = false;
private boolean isFullScreen = false;
private MovementMethod mSearchBarMovementMethod = null;
void initialization(eventObserver.eventListener event, AppCompatActivity context, Button mNewTab, ConstraintLayout webviewContainer, TextView loadingText, AnimatedProgressBar progressBar, editTextManager searchbar, ConstraintLayout splashScreen, ImageView loading, AdView banner_ads, ImageButton gateway_splash, LinearLayout top_bar, GeckoView gecko_view, ImageView backsplash, Button connect_button, View pFindBar, EditText pFindText, TextView pFindCount, androidx.constraintlayout.widget.ConstraintLayout pTopLayout, ImageButton pVoiceInput, ImageButton pMenu, androidx.core.widget.NestedScrollView pNestedScroll, ImageView pBlocker, ImageView pBlockerFullSceen, View mSearchEngineBar, TextView pCopyright, RecyclerView pHistListView, com.google.android.material.appbar.AppBarLayout pAppBar, ImageButton pOrbotLogManager, ConstraintLayout pInfoLandscape, ConstraintLayout pInfoPortrait){ void initialization(eventObserver.eventListener event, AppCompatActivity context, Button mNewTab, ConstraintLayout webviewContainer, TextView loadingText, AnimatedProgressBar progressBar, editTextManager searchbar, ConstraintLayout splashScreen, ImageView loading, AdView banner_ads, ImageButton gateway_splash, LinearLayout top_bar, GeckoView gecko_view, ImageView backsplash, Button connect_button, View pFindBar, EditText pFindText, TextView pFindCount, androidx.constraintlayout.widget.ConstraintLayout pTopLayout, ImageButton pVoiceInput, ImageButton pMenu, androidx.core.widget.NestedScrollView pNestedScroll, ImageView pBlocker, ImageView pBlockerFullSceen, View mSearchEngineBar, TextView pCopyright, RecyclerView pHistListView, com.google.android.material.appbar.AppBarLayout pAppBar, ImageButton pOrbotLogManager, ConstraintLayout pInfoLandscape, ConstraintLayout pInfoPortrait, ProgressBar pProgressBarIndeterminate){
this.mContext = context; this.mContext = context;
this.mProgressBar = progressBar; this.mProgressBar = progressBar;
this.mSearchbar = searchbar; this.mSearchbar = searchbar;
@ -129,6 +133,7 @@ class homeViewController
this.mInfoPortrait = pInfoPortrait; this.mInfoPortrait = pInfoPortrait;
this.mInfoLandscape = pInfoLandscape; this.mInfoLandscape = pInfoLandscape;
this.mNestedScroll = pNestedScroll; this.mNestedScroll = pNestedScroll;
this.mProgressBarIndeterminate = pProgressBarIndeterminate;
initSplashScreen(); initSplashScreen();
createUpdateUiHandler(); createUpdateUiHandler();
@ -140,6 +145,8 @@ class homeViewController
public void initializeViews(){ public void initializeViews(){
mNestedScroll.setNestedScrollingEnabled(true); mNestedScroll.setNestedScrollingEnabled(true);
this.mBlockerFullSceen.setVisibility(View.GONE); this.mBlockerFullSceen.setVisibility(View.GONE);
mSearchBarMovementMethod = mSearchbar.getMovementMethod();
mSearchbar.setMovementMethod(null);
final Handler handler = new Handler(); final Handler handler = new Handler();
handler.postDelayed(() -> handler.postDelayed(() ->
@ -182,19 +189,23 @@ class homeViewController
mVoiceInput.setVisibility(View.GONE); mVoiceInput.setVisibility(View.GONE);
mNewTab.setVisibility(View.VISIBLE); mNewTab.setVisibility(View.VISIBLE);
mMenu.setVisibility(View.VISIBLE); mMenu.setVisibility(View.VISIBLE);
mSearchbar.setFadingEdgeLength(helperMethod.pxFromDp(20));
mSearchbar.setMovementMethod(null);
if(status.sSettingLanguageRegion.equals("Ur")){ if(status.sSettingLanguageRegion.equals("Ur")){
mSearchbar.setPadding(helperMethod.pxFromDp(17),0,mSearchbar.getPaddingRight(),0); mSearchbar.setPadding(helperMethod.pxFromDp(17),0,mSearchbar.getPaddingRight(),0);
ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) mSearchbar.getLayoutParams(); ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) mSearchbar.getLayoutParams();
params.leftMargin = helperMethod.pxFromDp(5); params.leftMargin = helperMethod.pxFromDp(5);
}else { }else {
mSearchbar.setPadding(mSearchbar.getPaddingLeft(),0,helperMethod.pxFromDp(45),0); mSearchbar.setPadding(mSearchbar.getPaddingLeft(),0,helperMethod.pxFromDp(5),0);
ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) mSearchbar.getLayoutParams(); ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) mSearchbar.getLayoutParams();
params.rightMargin = helperMethod.pxFromDp(10); params.rightMargin = helperMethod.pxFromDp(10);
} }
}); });
}else { }else {
mSearchbar.setMovementMethod(mSearchBarMovementMethod);
mSearchbar.setFadingEdgeLength(helperMethod.pxFromDp(0));
Drawable drawable; Drawable drawable;
Resources res = mContext.getResources(); Resources res = mContext.getResources();
try { try {
@ -255,7 +266,7 @@ class homeViewController
public void initStatusBarColor(boolean mInstant) { public void initStatusBarColor(boolean mInstant) {
animatedColor oneToTwo = new animatedColor(ContextCompat.getColor(mContext, R.color.landing_ease_blue), ContextCompat.getColor(mContext, R.color.green_dark_v2)); animatedColor oneToTwo = new animatedColor(ContextCompat.getColor(mContext, R.color.landing_ease_blue), ContextCompat.getColor(mContext, R.color.green_dark_v2));
int mDelay = 200; int mDelay = 450;
if(status.mThemeApplying || mInstant){ if(status.mThemeApplying || mInstant){
mDelay = 0; mDelay = 0;
} }
@ -318,6 +329,8 @@ class homeViewController
mLoadingText.setVisibility(View.VISIBLE); mLoadingText.setVisibility(View.VISIBLE);
mLoadingText.animate().setStartDelay(0).alpha(1); mLoadingText.animate().setStartDelay(0).alpha(1);
mProgressBarIndeterminate.setVisibility(View.VISIBLE);
mProgressBarIndeterminate.animate().alpha(1);
mConnectButton.setEnabled(false); mConnectButton.setEnabled(false);
mSplashScreen.setEnabled(false); mSplashScreen.setEnabled(false);
mBlocker.setClickable(true); mBlocker.setClickable(true);
@ -414,12 +427,20 @@ class homeViewController
triggerPostUI(); triggerPostUI();
mProgressBar.setVisibility(View.GONE); mProgressBar.setVisibility(View.GONE);
mSplashScreen.animate().cancel(); mSplashScreen.animate().cancel();
mSplashScreen.animate().setDuration(350).setStartDelay(200).alpha(0).withEndAction(() -> { mProgressBarIndeterminate.animate().setDuration(250).alpha(0).withEndAction(() -> mSplashScreen.animate().setDuration(350).setStartDelay(200).alpha(0).withEndAction(() -> {
mProgressBarIndeterminate.setVisibility(View.GONE);
mSplashScreen.setClickable(false); mSplashScreen.setClickable(false);
mSplashScreen.setFocusable(false); mSplashScreen.setFocusable(false);
mProgressBarIndeterminate.setVisibility(View.GONE);
mSearchbar.setEnabled(true); mSearchbar.setEnabled(true);
mBlocker.setEnabled(false); mBlocker.setEnabled(false);
});
mProgressBarIndeterminate.setVisibility(View.GONE);
mBlocker.setVisibility(View.GONE);
mGatewaySplash.setVisibility(View.GONE);
mConnectButton.setVisibility(View.GONE);
}));
mEvent.invokeObserver(null, enums.etype.M_WELCOME_MESSAGE); mEvent.invokeObserver(null, enums.etype.M_WELCOME_MESSAGE);
mOrbotLogManager.setClickable(false); mOrbotLogManager.setClickable(false);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
@ -443,7 +464,7 @@ class homeViewController
/*-------------------------------------------------------Helper Methods-------------------------------------------------------*/ /*-------------------------------------------------------Helper Methods-------------------------------------------------------*/
void onOpenMenu(View view, boolean canGoBack, boolean isLoading, int userAgent){ void onOpenMenu(View view, boolean canGoForward, boolean isLoading, int userAgent){
if(popupWindow!=null){ if(popupWindow!=null){
popupWindow.dismiss(); popupWindow.dismiss();
@ -482,7 +503,7 @@ class homeViewController
CheckBox desktop = popupView.findViewById(R.id.menu27); CheckBox desktop = popupView.findViewById(R.id.menu27);
desktop.setChecked(userAgent==USER_AGENT_MODE_DESKTOP); desktop.setChecked(userAgent==USER_AGENT_MODE_DESKTOP);
if(!canGoBack){ if(!canGoForward){
back.setEnabled(false); back.setEnabled(false);
back.setColorFilter(Color.argb(255, 191, 191, 191)); back.setColorFilter(Color.argb(255, 191, 191, 191));
} }
@ -548,7 +569,7 @@ class homeViewController
void onSetBannerAdMargin(boolean status,boolean isAdLoaded){ void onSetBannerAdMargin(boolean status,boolean isAdLoaded){
if(isAdLoaded){ if(isAdLoaded){
if(status && !isLandscape){ if(status && !isLandscape && !isFullScreen){
mBannerAds.setVisibility(View.VISIBLE); mBannerAds.setVisibility(View.VISIBLE);
final Handler handler = new Handler(); final Handler handler = new Handler();
@ -565,14 +586,18 @@ class homeViewController
void updateBannerAdvertStatus(boolean status){ void updateBannerAdvertStatus(boolean status){
if(status){ if(status){
mBannerAds.animate().cancel(); if(mBannerAds.getAlpha()==0){
mBannerAds.setAlpha(0); mBannerAds.animate().cancel();
mBannerAds.animate().alpha(1); mBannerAds.setAlpha(0);
mBannerAds.setVisibility(View.VISIBLE); mBannerAds.animate().alpha(1);
mBannerAds.setVisibility(View.VISIBLE);
}
onSetBannerAdMargin(true,true); onSetBannerAdMargin(true,true);
}else{ }else{
mBannerAds.animate().cancel(); if(mBannerAds.getAlpha()==1){
mBannerAds.animate().alpha(0).withEndAction(() -> mBannerAds.setVisibility(View.GONE)); mBannerAds.animate().cancel();
mBannerAds.animate().alpha(0).withEndAction(() -> mBannerAds.setVisibility(View.GONE));
}
onSetBannerAdMargin(false,true); onSetBannerAdMargin(false,true);
} }
} }
@ -803,8 +828,8 @@ class homeViewController
mGeckoView.setForeground(ContextCompat.getDrawable(mContext, R.color.c_background)); mGeckoView.setForeground(ContextCompat.getDrawable(mContext, R.color.c_background));
} }
void onProgressBarUpdate(int value){ void onProgressBarUpdate(int value, boolean mForced){
if(mSearchbar.getText().toString().equals("genesis.onion")){ if(mSearchbar.getText().toString().equals("genesis.onion") && !mForced){
mProgressBar.setProgress(0); mProgressBar.setProgress(0);
mProgressBar.setVisibility(View.GONE); mProgressBar.setVisibility(View.GONE);
return; return;
@ -857,12 +882,15 @@ class homeViewController
int value = !status ? 1 : 0; int value = !status ? 1 : 0;
if(status) { if(status) {
isFullScreen = true;
}else { }else {
this.mBlockerFullSceen.setVisibility(View.VISIBLE); this.mBlockerFullSceen.setVisibility(View.VISIBLE);
this.mBlockerFullSceen.setAlpha(1f); this.mBlockerFullSceen.setAlpha(1f);
isFullScreen = false;
} }
if(status){ if(status){
onProgressBarUpdate(100, false);
this.mBlockerFullSceen.setVisibility(View.VISIBLE); this.mBlockerFullSceen.setVisibility(View.VISIBLE);
this.mBlockerFullSceen.setAlpha(0f); this.mBlockerFullSceen.setAlpha(0f);
this.mBlockerFullSceen.animate().setStartDelay(0).setDuration(200).alpha(1).withEndAction(() -> { this.mBlockerFullSceen.animate().setStartDelay(0).setDuration(200).alpha(1).withEndAction(() -> {

View File

@ -136,6 +136,9 @@ public class languageController extends AppCompatActivity {
mDefaultLanguageNotSupported = true; mDefaultLanguageNotSupported = true;
} }
}else { }else {
if(status.sSettingLanguage.equals(pLanguageCode)){
return true;
}
status.sSettingLanguage = pLanguageCode; status.sSettingLanguage = pLanguageCode;
status.sSettingLanguageRegion = pLanguageRegion; status.sSettingLanguageRegion = pLanguageRegion;
} }
@ -160,7 +163,7 @@ public class languageController extends AppCompatActivity {
} }
status.mThemeApplying = true; status.mThemeApplying = true;
activityContextManager.getInstance().getHomeController().recreate(); //activityContextManager.getInstance().getHomeController().recreate();
return true; return true;
} }

View File

@ -29,6 +29,9 @@ import com.darkweb.genesissearchengine.helperManager.helperMethod;
import com.darkweb.genesissearchengine.pluginManager.pluginController; import com.darkweb.genesissearchengine.pluginManager.pluginController;
import com.darkweb.genesissearchengine.pluginManager.pluginEnums; import com.darkweb.genesissearchengine.pluginManager.pluginEnums;
import com.example.myapplication.R; import com.example.myapplication.R;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
@ -192,7 +195,22 @@ public class settingHomeController extends AppCompatActivity
} }
public void onReportWebsite(View view) { public void onReportWebsite(View view) {
pluginController.getInstance().onMessageManagerInvoke(Arrays.asList(activityContextManager.getInstance().getHomeController().onGetCurrentURL(), this), M_REPORT_URL); try {
finish();
activityContextManager.getInstance().getHomeController().onLoadURL(constants.CONST_REPORT_URL + URLEncoder.encode(activityContextManager.getInstance().getHomeController().onGetCurrentURL(), "UTF-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
public void onSitemap(View view) {
finish();
activityContextManager.getInstance().getHomeController().onLoadURL(constants.CONST_SITEMAP);
}
public void onPrivacyPolicy(View view) {
finish();
activityContextManager.getInstance().getHomeController().onLoadURL(constants.CONST_PRIVACY_POLICY_URL);
} }
public void onRateApplication(View view) { public void onRateApplication(View view) {

View File

@ -189,7 +189,7 @@ public class tabController extends AppCompatActivity
} }
public void onNewTabInvoked(){ public void onNewTabInvoked(){
mHomeController.onNewTab(true,false); mHomeController.onNewTabBackground(true,false);
onClose(); onClose();
overridePendingTransition(R.anim.popup_anim_in, R.anim.popup_anim_out); overridePendingTransition(R.anim.popup_anim_in, R.anim.popup_anim_out);
} }

View File

@ -13,6 +13,9 @@ public class constants
public static final String CONST_MARKET_URL = "https://boogle.store/search?q=news&p_num=1&s_type=all&p_num=1&s_type=all"; public static final String CONST_MARKET_URL = "https://boogle.store/search?q=news&p_num=1&s_type=all&p_num=1&s_type=all";
public static final String CONST_SERVER = "https://drive.google.com/uc?export=download&id=1es7XOAWCktGGfSnJu_o8W4_LZuudjR-T"; public static final String CONST_SERVER = "https://drive.google.com/uc?export=download&id=1es7XOAWCktGGfSnJu_o8W4_LZuudjR-T";
public static final String CONST_PLAYSTORE_URL = "http://play.google.com/store/apps/details?id=com.darkweb.genesissearchengine"; public static final String CONST_PLAYSTORE_URL = "http://play.google.com/store/apps/details?id=com.darkweb.genesissearchengine";
public static final String CONST_PRIVACY_POLICY_URL = "https://boogle.store/privacy";
public static final String CONST_REPORT_URL = "https://boogle.store/reportus?url=";
public static final String CONST_SITEMAP = "https://boogle.store/create";
/*URL CONSTANTS*/ /*URL CONSTANTS*/

View File

@ -4,11 +4,11 @@ public class enums
{ {
/*Settings Manager*/ /*Settings Manager*/
public enum etype{ public enum etype{
on_update_favicon,ON_UPDATE_TAB_TITLE, ON_LOAD_REQUEST,GECKO_SCROLL_CHANGED,ON_UPDATE_SEARCH_BAR, on_update_favicon,ON_UPDATE_TAB_TITLE, ON_LOAD_REQUEST,GECKO_SCROLL_CHANGED,ON_UPDATE_SEARCH_BAR,M_ON_MAIL,
on_verify_selected_url_menu,FINDER_RESULT_CALLBACK, on_verify_selected_url_menu,FINDER_RESULT_CALLBACK,
welcome, reload,download_folder,M_ON_BANNER_UPDATE, welcome, reload,download_folder,M_ON_BANNER_UPDATE,
url_triggered, url_triggered_new_tab,url_clear,fetch_favicon, fetch_thumbnail,url_clear_at,remove_from_database,is_empty,M_HOME_PAGE,M_PRELOAD_URL,ON_KEYBOARD_CLOSE, url_triggered, url_triggered_new_tab,url_clear,fetch_favicon, fetch_thumbnail,url_clear_at,remove_from_database,is_empty,M_HOME_PAGE,M_PRELOAD_URL,ON_KEYBOARD_CLOSE,
on_close_sesson,on_long_press, on_full_screen,on_handle_external_intent,on_update_suggestion_url,progress_update, ON_EXPAND_TOP_BAR,recheck_orbot,on_url_load,on_playstore_load,back_list_empty,start_proxy, ON_UPDATE_THEME, M_INITIALIZE_TAB_SINGLE, M_INITIALIZE_TAB_LINK,on_request_completed, on_update_history,on_update_suggestion,M_WELCOME_MESSAGE,ON_UPDATE_TITLE_BAR,ON_FIRST_PAINT, ON_LOAD_TAB_ON_RESUME, ON_SESSION_REINIT,on_page_loaded,on_load_error,download_file_popup,on_init_ads,search_update, open_new_tab on_close_sesson,on_long_press, on_full_screen,on_handle_external_intent,on_update_suggestion_url,progress_update,progress_update_forced, ON_EXPAND_TOP_BAR,recheck_orbot,on_url_load,on_playstore_load,back_list_empty,start_proxy, ON_UPDATE_THEME, M_INITIALIZE_TAB_SINGLE, M_INITIALIZE_TAB_LINK,on_request_completed, on_update_history,on_update_suggestion,M_WELCOME_MESSAGE,ON_UPDATE_TITLE_BAR,ON_FIRST_PAINT, ON_LOAD_TAB_ON_RESUME, ON_SESSION_REINIT,on_page_loaded,on_load_error,download_file_popup,on_init_ads,search_update, open_new_tab
} }
/*General Enums*/ /*General Enums*/

View File

@ -88,9 +88,9 @@ public class status
status.sStatusDoNotTrack = (boolean)dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_BOOL, Arrays.asList(keys.SETTING_DONOT_TRACK,true)); status.sStatusDoNotTrack = (boolean)dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_BOOL, Arrays.asList(keys.SETTING_DONOT_TRACK,true));
status.sSettingCookieStatus = (int)dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_INT, Arrays.asList(keys.SETTING_COOKIE_ADJUSTABLE,ACCEPT_FIRST_PARTY)); status.sSettingCookieStatus = (int)dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_INT, Arrays.asList(keys.SETTING_COOKIE_ADJUSTABLE,ACCEPT_FIRST_PARTY));
status.sSettingFontSize = (int)dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_FLOAT, Arrays.asList(keys.SETTING_FONT_SIZE,100)); status.sSettingFontSize = (int)dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_FLOAT, Arrays.asList(keys.SETTING_FONT_SIZE,100));
status.mReferenceWebsites = (String)dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_STRING, Arrays.asList(keys.SETTING_LANGUAGE,strings.SETTING_DEFAULT_LANGUAGE)); status.sSettingLanguage = (String)dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_STRING, Arrays.asList(keys.SETTING_LANGUAGE,strings.SETTING_DEFAULT_LANGUAGE));
status.sSettingLanguage = (String)dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_STRING, Arrays.asList(keys.HOME_REFERENCE_WEBSITES,strings.HOME_REFERENCE_WEBSITES_DEFAULT)); status.mReferenceWebsites = (String)dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_STRING, Arrays.asList(keys.HOME_REFERENCE_WEBSITES,strings.HOME_REFERENCE_WEBSITES_DEFAULT));
status.sSettingLanguageRegion = (String)dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_STRING, Arrays.asList(keys.SETTING_LANGUAGE_REGION,strings.SETTING_DEFAULT_LANGUAGE_REGION)); status.sSettingLanguageRegion = (String)dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_STRING, Arrays.asList(keys.SETTING_LANGUAGE_REGION,strings.SETTING_DEFAULT_LANGUAGE_REGION));
status.sSettingSearchStatus = (String)dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_STRING, Arrays.asList(keys.SETTING_SEARCH_ENGINE,constants.CONST_BACKEND_GENESIS_URL)); status.sSettingSearchStatus = (String)dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_STRING, Arrays.asList(keys.SETTING_SEARCH_ENGINE,constants.CONST_BACKEND_GENESIS_URL));
status.sBridgeCustomBridge = (String)dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_STRING, Arrays.asList(keys.BRIDGE_CUSTOM_BRIDGE_1,strings.BRIDGE_CUSTOM_BRIDGE_OBFS4)); status.sBridgeCustomBridge = (String)dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_STRING, Arrays.asList(keys.BRIDGE_CUSTOM_BRIDGE_1,strings.BRIDGE_CUSTOM_BRIDGE_OBFS4));

View File

@ -20,7 +20,7 @@ public class dataEnums
} }
public enum eSuggestionCommands{ public enum eSuggestionCommands{
M_GET_SUGGESTIONS M_GET_SUGGESTIONS, M_GET_DEFAULT_SUGGESTION
} }
public enum eTabCommands{ public enum eTabCommands{

View File

@ -5,8 +5,11 @@ import com.android.volley.Request;
import com.android.volley.RequestQueue; import com.android.volley.RequestQueue;
import com.android.volley.toolbox.StringRequest; import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley; import com.android.volley.toolbox.Volley;
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.constants.strings;
import java.util.Arrays;
import java.util.List; import java.util.List;
import static com.darkweb.genesissearchengine.constants.constants.CONST_GENESIS_REFERENCE_WEBSITES; import static com.darkweb.genesissearchengine.constants.constants.CONST_GENESIS_REFERENCE_WEBSITES;
@ -25,10 +28,19 @@ public class referenceWebsiteDataModel {
StringRequest stringRequest = new StringRequest(Request.Method.GET, CONST_GENESIS_REFERENCE_WEBSITES, StringRequest stringRequest = new StringRequest(Request.Method.GET, CONST_GENESIS_REFERENCE_WEBSITES,
response -> { response -> {
mReferenceWebsiteData = response; if(response.length()>10){
mLoading = false; mReferenceWebsiteData = response;
status.mReferenceWebsites = response;
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_STRING, Arrays.asList(keys.HOME_REFERENCE_WEBSITES,status.mReferenceWebsites));
mLoading = false;
}else {
mReferenceWebsiteData = status.mReferenceWebsites;
}
}, },
error -> {}); error -> {
mReferenceWebsiteData = status.mReferenceWebsites;
mLoading = false;
});
RequestQueue requestQueue = Volley.newRequestQueue(pContext); RequestQueue requestQueue = Volley.newRequestQueue(pContext);
requestQueue.add(stringRequest); requestQueue.add(stringRequest);

View File

@ -7,7 +7,6 @@ import android.text.style.SuggestionSpan;
import android.view.textservice.SentenceSuggestionsInfo; import android.view.textservice.SentenceSuggestionsInfo;
import android.view.textservice.SpellCheckerSession; import android.view.textservice.SpellCheckerSession;
import android.view.textservice.SuggestionsInfo; import android.view.textservice.SuggestionsInfo;
import android.view.textservice.TextInfo;
import android.view.textservice.TextServicesManager; import android.view.textservice.TextServicesManager;
import com.darkweb.genesissearchengine.appManager.bookmarkManager.bookmarkRowModel; import com.darkweb.genesissearchengine.appManager.bookmarkManager.bookmarkRowModel;
@ -25,6 +24,8 @@ public class suggestionDataModel implements SpellCheckerSession.SpellCheckerSess
private SpellCheckerSession mSpellCheckerSession; private SpellCheckerSession mSpellCheckerSession;
private TextServicesManager mTextServicesManager; private TextServicesManager mTextServicesManager;
private ArrayList<historyRowModel> mHintListLocalCache; private ArrayList<historyRowModel> mHintListLocalCache;
private ArrayList<historyRowModel> mCurrentList = new ArrayList<>();
/*Initializations*/ /*Initializations*/
@ -36,202 +37,214 @@ public class suggestionDataModel implements SpellCheckerSession.SpellCheckerSess
/*Helper Methods*/ /*Helper Methods*/
private ArrayList<historyRowModel> getDefaultSuggestions(String pQuery){
for(int count = 0; count<= mHintListLocalCache.size()-1 && mHintListLocalCache.size()<500; count++){
if(mHintListLocalCache.get(count).getHeader().toLowerCase().contains(pQuery)){
mCurrentList.add(new historyRowModel(mHintListLocalCache.get(count).getHeader(),mHintListLocalCache.get(count).getDescription(),-1));
}else if(mHintListLocalCache.get(count).getDescription().toLowerCase().contains(pQuery)){
if(mCurrentList.size()==0){
mCurrentList.add(new historyRowModel(mHintListLocalCache.get(count).getHeader(),mHintListLocalCache.get(count).getDescription(),-1));
}else {
mCurrentList.add(new historyRowModel(mHintListLocalCache.get(count).getHeader(),mHintListLocalCache.get(count).getDescription(),-1));
}
}
}
return mCurrentList;
}
private ArrayList<historyRowModel> getSuggestions(String pQuery, ArrayList<historyRowModel> pHistory, ArrayList<bookmarkRowModel> pBookmarks){ private ArrayList<historyRowModel> getSuggestions(String pQuery, ArrayList<historyRowModel> pHistory, ArrayList<bookmarkRowModel> pBookmarks){
mCurrentList = new ArrayList<>();
mCurrentList.clear();
pQuery = pQuery.replace("+","%").replace(" ","+");
ArrayList<historyRowModel> mHistory = pHistory; ArrayList<historyRowModel> mHistory = pHistory;
ArrayList<bookmarkRowModel> mBookmarks = pBookmarks; ArrayList<bookmarkRowModel> mBookmarks = pBookmarks;
pQuery = pQuery.toLowerCase(); pQuery = pQuery.toLowerCase();
ArrayList<historyRowModel> mList = new ArrayList<>(); ArrayList<String> mDuplicationHandler = new ArrayList<>();
if(status.sSettingSearchHistory) {
for (int count = 0; count <= mBookmarks.size() - 1 && mBookmarks.size() < 500; count++) {
if (mBookmarks.get(count).getHeader().toLowerCase().contains(pQuery)) {
mList.add(0, new historyRowModel(mBookmarks.get(count).getHeader(), mBookmarks.get(count).getDescription(), -1));
} else if (mList.size() > 0 && mBookmarks.get(count).getDescription().toLowerCase().contains(pQuery)) {
mList.add(mList.size() - 1, new historyRowModel(mBookmarks.get(count).getHeader(), mBookmarks.get(count).getDescription(), -1));
}
}
}
String mQueryOriginal = pQuery;
if(status.sSettingSearchHistory){ if(status.sSettingSearchHistory){
pQuery = pQuery.toLowerCase(); pQuery = pQuery.toLowerCase();
for(int count = 0; count<= mHistory.size()-1 && mHistory.size()<500; count++){ for(int count = 0; count<= mHistory.size()-1 && mHistory.size()<500; count++){
historyRowModel mTempModel; historyRowModel mTempModel;
if(mHistory.get(count).getHeader().toLowerCase().contains(pQuery)){ if(!mDuplicationHandler.contains(mHistory.get(count).getDescription())){
mTempModel = new historyRowModel(mHistory.get(count).getHeader(),mHistory.get(count).getDescription(),-1); if(mHistory.get(count).getHeader().toLowerCase().contains(pQuery)){
if(!mList.contains(mTempModel)){ mTempModel = new historyRowModel(mHistory.get(count).getHeader(),mHistory.get(count).getDescription(),-1);
mList.add(mTempModel); if(!mCurrentList.contains(mTempModel)){
mDuplicationHandler.add(mTempModel.getDescription());
mCurrentList.add(mTempModel);
}
}else if(mHistory.get(count).getDescription().toLowerCase().contains(pQuery)){
mTempModel = new historyRowModel(mHistory.get(count).getHeader(),mHistory.get(count).getDescription(),-1);
if(!mCurrentList.contains(mTempModel)){
mDuplicationHandler.add(mTempModel.getDescription());
mCurrentList.add(mTempModel);
}
} }
}else if(mHistory.get(count).getDescription().toLowerCase().contains(pQuery)){ if(mCurrentList.size()>8){
mTempModel = new historyRowModel(mHistory.get(count).getHeader(),mHistory.get(count).getDescription(),-1); break;
if(!mList.contains(mTempModel)){
mList.add(mTempModel);
} }
} }
} }
} }
for(int count = 0; count<= mHintListLocalCache.size()-1 && mHintListLocalCache.size()<500; count++){ if(status.sSettingSearchHistory && mCurrentList.size()>8) {
if(mHintListLocalCache.get(count).getHeader().toLowerCase().contains(pQuery)){ for (int count = 0; count <= mBookmarks.size() - 1 && mBookmarks.size() < 500; count++) {
mList.add(new historyRowModel(mHintListLocalCache.get(count).getHeader(),mHintListLocalCache.get(count).getDescription(),-1)); if(!mDuplicationHandler.contains(mBookmarks.get(count).getDescription())){
}else if(mHintListLocalCache.get(count).getDescription().toLowerCase().contains(pQuery)){ if (mBookmarks.get(count).getHeader().toLowerCase().contains(pQuery)) {
if(mList.size()==0){ mDuplicationHandler.add(mBookmarks.get(count).getDescription());
mList.add(new historyRowModel(mHintListLocalCache.get(count).getHeader(),mHintListLocalCache.get(count).getDescription(),-1)); mCurrentList.add(mCurrentList.size() - 1,new historyRowModel(mBookmarks.get(count).getHeader(), mBookmarks.get(count).getDescription(), -1));
}else { } else if (mCurrentList.size() > 0 && mBookmarks.get(count).getDescription().toLowerCase().contains(pQuery)) {
mList.add(new historyRowModel(mHintListLocalCache.get(count).getHeader(),mHintListLocalCache.get(count).getDescription(),-1)); mDuplicationHandler.add(mBookmarks.get(count).getDescription());
} mCurrentList.add(mCurrentList.size() - 1, new historyRowModel(mBookmarks.get(count).getHeader(), mBookmarks.get(count).getDescription(), -1));
}
}
/*Duplicate handler*/
ArrayList<String> mDuplicateHandler = new ArrayList<>();
for(int mCounter=0;mCounter<mList.size();mCounter++){
if(mDuplicateHandler.contains(mList.get(mCounter).getDescription())){
mList.remove(mCounter);
mCounter-=1;
}else {
mDuplicateHandler.add(0,mList.get(mCounter).getDescription());
}
}
if(!pQuery.equals(strings.GENERIC_EMPTY_STR) && !pQuery.equals("about:blank") && !pQuery.contains("?") && !pQuery.contains("/") && !pQuery.contains(" ") && !pQuery.contains(" ") && !pQuery.contains("\n")){
if(mList.size()<3){
int sepPos = pQuery.indexOf(".");
if (sepPos == -1) {
mList.add( 0,new historyRowModel(mQueryOriginal+".com", strings.GENERIC_EMPTY_STR,-1));
mList.add( 0,new historyRowModel(mQueryOriginal+".onion", strings.GENERIC_EMPTY_STR,-1));
}else
{
if(!pQuery.equals(pQuery.substring(0,sepPos)+".com")){
mList.add( 0,new historyRowModel(pQuery.substring(0,sepPos)+".com", strings.GENERIC_EMPTY_STR,-1));
} }
if(!pQuery.equals(pQuery.substring(0,sepPos)+".onion")){ if(mCurrentList.size()>8){
mList.add( 0,new historyRowModel(pQuery.substring(0,sepPos)+".onion", strings.GENERIC_EMPTY_STR,-1)); break;
} }
} }
} }
mList.add( 0,new historyRowModel(mQueryOriginal, strings.GENERIC_EMPTY_STR,-1));
} }
if (Pattern.matches("[a-zA-Z]+",pQuery)){ if(mCurrentList.size()<8) {
Spannable str = new SpannableString(pQuery); getDefaultSuggestions(pQuery);
SuggestionSpan[] spanned = str.getSpans(0, pQuery.length(), SuggestionSpan.class); }
for (SuggestionSpan suggestionSpan : spanned) {
mList.add(0, new historyRowModel(suggestionSpan.toString(), strings.GENERIC_EMPTY_STR, -1)); if(mCurrentList.size()<8){
String mQueryOriginal = pQuery;
if(!pQuery.equals(strings.GENERIC_EMPTY_STR) && !pQuery.equals("about:blank") && !pQuery.contains("?") && !pQuery.contains("/") && !pQuery.contains(" ") && !pQuery.contains(" ") && !pQuery.contains("\n")){
if(mCurrentList.size()<3){
int sepPos = pQuery.indexOf(".");
if (sepPos == -1) {
mCurrentList.add( 0,new historyRowModel(mQueryOriginal+".com", strings.GENERIC_EMPTY_STR,-1));
mCurrentList.add( 0,new historyRowModel(mQueryOriginal+".onion", strings.GENERIC_EMPTY_STR,-1));
}else
{
if(!pQuery.equals(pQuery.substring(0,sepPos)+".com")){
mCurrentList.add( 0,new historyRowModel(pQuery.substring(0,sepPos)+".com", strings.GENERIC_EMPTY_STR,-1));
}
if(!pQuery.equals(pQuery.substring(0,sepPos)+".onion")){
mCurrentList.add( 0,new historyRowModel(pQuery.substring(0,sepPos)+".onion", strings.GENERIC_EMPTY_STR,-1));
}
}
}
} }
} }
return mList; if(pQuery.length()>0){
mCurrentList.add( 0,new historyRowModel(pQuery, strings.GENERIC_EMPTY_STR,-1));
}
return mCurrentList;
} }
private ArrayList<historyRowModel> initSuggestions(){ private ArrayList<historyRowModel> initSuggestions(){
ArrayList<historyRowModel> mHintList = new ArrayList<>(); mHintListLocalCache = new ArrayList<>();
mHintList.add(new historyRowModel("Duckduckgo","https://duckduckgo.com",-1 )); mHintListLocalCache.add(new historyRowModel("Duckduckgo","https://duckduckgo.com",-1 ));
mHintList.add(new historyRowModel("BBC","https://bbc.com",-1 )); mHintListLocalCache.add(new historyRowModel("BBC","https://bbc.com",-1 ));
mHintList.add(new historyRowModel("Youtube","https://youtube.com",-1 )); mHintListLocalCache.add(new historyRowModel("Youtube","https://youtube.com",-1 ));
mHintList.add(new historyRowModel("Facebook","https://facebook.com",-1 )); mHintListLocalCache.add(new historyRowModel("Facebook","https://facebook.com",-1 ));
mHintList.add(new historyRowModel("Twitter","https://twitter.com",-1 )); mHintListLocalCache.add(new historyRowModel("Twitter","https://twitter.com",-1 ));
mHintList.add(new historyRowModel("Amazon","https://amazon.com",-1 )); mHintListLocalCache.add(new historyRowModel("Amazon","https://amazon.com",-1 ));
mHintList.add(new historyRowModel("IMDB","https://imdb.com",-1 )); mHintListLocalCache.add(new historyRowModel("IMDB","https://imdb.com",-1 ));
mHintList.add(new historyRowModel("Reddit","https://reddit.com",-1 )); mHintListLocalCache.add(new historyRowModel("Reddit","https://reddit.com",-1 ));
mHintList.add(new historyRowModel("Pinterest","https://pinterest.com",-1 )); mHintListLocalCache.add(new historyRowModel("Pinterest","https://pinterest.com",-1 ));
mHintList.add(new historyRowModel("EBay","https://ebay.com",-1 )); mHintListLocalCache.add(new historyRowModel("EBay","https://ebay.com",-1 ));
mHintList.add(new historyRowModel("Trip Advisor","https://tripadvisor.com",-1 )); mHintListLocalCache.add(new historyRowModel("Trip Advisor","https://tripadvisor.com",-1 ));
mHintList.add(new historyRowModel("Craigslist","https://craigslist.com",-1 )); mHintListLocalCache.add(new historyRowModel("Craigslist","https://craigslist.com",-1 ));
mHintList.add(new historyRowModel("Walmart","https://walmart.com",-1 )); mHintListLocalCache.add(new historyRowModel("Walmart","https://walmart.com",-1 ));
mHintList.add(new historyRowModel("Instagram","https://instagram.com",-1 )); mHintListLocalCache.add(new historyRowModel("Instagram","https://instagram.com",-1 ));
mHintList.add(new historyRowModel("Google","https://google.com",-1 )); mHintListLocalCache.add(new historyRowModel("Google","https://google.com",-1 ));
mHintList.add(new historyRowModel("NY Times","https://nytimes.com",-1 )); mHintListLocalCache.add(new historyRowModel("NY Times","https://nytimes.com",-1 ));
mHintList.add(new historyRowModel("Apple","https://apple.com",-1 )); mHintListLocalCache.add(new historyRowModel("Apple","https://apple.com",-1 ));
mHintList.add(new historyRowModel("Linkedin","https://linkedin.com",-1 )); mHintListLocalCache.add(new historyRowModel("Linkedin","https://linkedin.com",-1 ));
mHintList.add(new historyRowModel("Play.Google","https://play.google.com",-1 )); mHintListLocalCache.add(new historyRowModel("Play.Google","https://play.google.com",-1 ));
mHintList.add(new historyRowModel("ESPN","https://espn.com",-1 )); mHintListLocalCache.add(new historyRowModel("ESPN","https://espn.com",-1 ));
mHintList.add(new historyRowModel("Webmd","https://webmd.com",-1 )); mHintListLocalCache.add(new historyRowModel("Webmd","https://webmd.com",-1 ));
mHintList.add(new historyRowModel("CNN","https://cnn.com",-1 )); mHintListLocalCache.add(new historyRowModel("CNN","https://cnn.com",-1 ));
mHintList.add(new historyRowModel("Homedepot","https://homedepot.com",-1 )); mHintListLocalCache.add(new historyRowModel("Homedepot","https://homedepot.com",-1 ));
mHintList.add(new historyRowModel("ETSY","https://etsy.com",-1 )); mHintListLocalCache.add(new historyRowModel("ETSY","https://etsy.com",-1 ));
mHintList.add(new historyRowModel("Netflix","https://netflix.com",-1 )); mHintListLocalCache.add(new historyRowModel("Netflix","https://netflix.com",-1 ));
mHintList.add(new historyRowModel("Quora","https://quora.com",-1 )); mHintListLocalCache.add(new historyRowModel("Quora","https://quora.com",-1 ));
mHintList.add(new historyRowModel("Microsoft","https://microsoft.com",-1 )); mHintListLocalCache.add(new historyRowModel("Microsoft","https://microsoft.com",-1 ));
mHintList.add(new historyRowModel("Target","https://target.com",-1 )); mHintListLocalCache.add(new historyRowModel("Target","https://target.com",-1 ));
mHintList.add(new historyRowModel("Merriam Webster","https://merriam-webster.com",-1 )); mHintListLocalCache.add(new historyRowModel("Merriam Webster","https://merriam-webster.com",-1 ));
mHintList.add(new historyRowModel("Forbes","https://forbes.com",-1 )); mHintListLocalCache.add(new historyRowModel("Forbes","https://forbes.com",-1 ));
mHintList.add(new historyRowModel("Mapquest","https://mapquest.com",-1 )); mHintListLocalCache.add(new historyRowModel("Mapquest","https://mapquest.com",-1 ));
mHintList.add(new historyRowModel("NIH","https://nih.gov",-1 )); mHintListLocalCache.add(new historyRowModel("NIH","https://nih.gov",-1 ));
mHintList.add(new historyRowModel("Gamepedia","https://gamepedia.com",-1 )); mHintListLocalCache.add(new historyRowModel("Gamepedia","https://gamepedia.com",-1 ));
mHintList.add(new historyRowModel("Yahoo","https://yahoo.com",-1 )); mHintListLocalCache.add(new historyRowModel("Yahoo","https://yahoo.com",-1 ));
mHintList.add(new historyRowModel("Healthline","https://healthline.com",-1 )); mHintListLocalCache.add(new historyRowModel("Healthline","https://healthline.com",-1 ));
mHintList.add(new historyRowModel("Foxnews","https://foxnews.com",-1 )); mHintListLocalCache.add(new historyRowModel("Foxnews","https://foxnews.com",-1 ));
mHintList.add(new historyRowModel("All Recipes","https://allrecipes.com",-1 )); mHintListLocalCache.add(new historyRowModel("All Recipes","https://allrecipes.com",-1 ));
mHintList.add(new historyRowModel("Quizlet","https://quizlet.com",-1 )); mHintListLocalCache.add(new historyRowModel("Quizlet","https://quizlet.com",-1 ));
mHintList.add(new historyRowModel("Weather","https://weather.com",-1 )); mHintListLocalCache.add(new historyRowModel("Weather","https://weather.com",-1 ));
mHintList.add(new historyRowModel("Bestbuy","https://bestbuy.com",-1 )); mHintListLocalCache.add(new historyRowModel("Bestbuy","https://bestbuy.com",-1 ));
mHintList.add(new historyRowModel("Urbandictionary","https://urbandictionary.com",-1 )); mHintListLocalCache.add(new historyRowModel("Urbandictionary","https://urbandictionary.com",-1 ));
mHintList.add(new historyRowModel("Mayoclinic","https://mayoclinic.org",-1 )); mHintListLocalCache.add(new historyRowModel("Mayoclinic","https://mayoclinic.org",-1 ));
mHintList.add(new historyRowModel("AOL","https://aol.com",-1 )); mHintListLocalCache.add(new historyRowModel("AOL","https://aol.com",-1 ));
mHintList.add(new historyRowModel("Genius","https://genius.com",-1 )); mHintListLocalCache.add(new historyRowModel("Genius","https://genius.com",-1 ));
mHintList.add(new historyRowModel("Zillow","https://zillow.com",-1 )); mHintListLocalCache.add(new historyRowModel("Zillow","https://zillow.com",-1 ));
mHintList.add(new historyRowModel("Usatoday","https://usatoday.com",-1 )); mHintListLocalCache.add(new historyRowModel("Usatoday","https://usatoday.com",-1 ));
mHintList.add(new historyRowModel("Glassdoor","https://glassdoor.com",-1 )); mHintListLocalCache.add(new historyRowModel("Glassdoor","https://glassdoor.com",-1 ));
mHintList.add(new historyRowModel("MSN","https://msn.com",-1 )); mHintListLocalCache.add(new historyRowModel("MSN","https://msn.com",-1 ));
mHintList.add(new historyRowModel("Rotten Tomatoes","https://rottentomatoes.com",-1 )); mHintListLocalCache.add(new historyRowModel("Rotten Tomatoes","https://rottentomatoes.com",-1 ));
mHintList.add(new historyRowModel("Lowes","https://lowes.com",-1 )); mHintListLocalCache.add(new historyRowModel("Lowes","https://lowes.com",-1 ));
mHintList.add(new historyRowModel("Dictionary","https://dictionary.com",-1 )); mHintListLocalCache.add(new historyRowModel("Dictionary","https://dictionary.com",-1 ));
mHintList.add(new historyRowModel("Business Insider","https://businessinsider.com",-1 )); mHintListLocalCache.add(new historyRowModel("Business Insider","https://businessinsider.com",-1 ));
mHintList.add(new historyRowModel("US News","https://usnews.com",-1 )); mHintListLocalCache.add(new historyRowModel("US News","https://usnews.com",-1 ));
mHintList.add(new historyRowModel("Medical News Today","https://medicalnewstoday.com",-1 )); mHintListLocalCache.add(new historyRowModel("Medical News Today","https://medicalnewstoday.com",-1 ));
mHintList.add(new historyRowModel("Britannica","https://britannica.com",-1 )); mHintListLocalCache.add(new historyRowModel("Britannica","https://britannica.com",-1 ));
mHintList.add(new historyRowModel("Washington Post","https://washingtonpost.com",-1 )); mHintListLocalCache.add(new historyRowModel("Washington Post","https://washingtonpost.com",-1 ));
mHintList.add(new historyRowModel("USPS","https://usps.com",-1 )); mHintListLocalCache.add(new historyRowModel("USPS","https://usps.com",-1 ));
mHintList.add(new historyRowModel("Finance Yahoo","https://finance.yahoo.com",-1 )); mHintListLocalCache.add(new historyRowModel("Finance Yahoo","https://finance.yahoo.com",-1 ));
mHintList.add(new historyRowModel("IRS","https://finance.irs.gov",-1 )); mHintListLocalCache.add(new historyRowModel("IRS","https://finance.irs.gov",-1 ));
mHintList.add(new historyRowModel("Yellow Pages","https://yellowpages.com",-1 )); mHintListLocalCache.add(new historyRowModel("Yellow Pages","https://yellowpages.com",-1 ));
mHintList.add(new historyRowModel("Chase","https://chase.com",-1 )); mHintListLocalCache.add(new historyRowModel("Chase","https://chase.com",-1 ));
mHintList.add(new historyRowModel("Retail Menot","https://retailmenot.com",-1 )); mHintListLocalCache.add(new historyRowModel("Retail Menot","https://retailmenot.com",-1 ));
mHintList.add(new historyRowModel("Accuweather","https://accuweather.com",-1 )); mHintListLocalCache.add(new historyRowModel("Accuweather","https://accuweather.com",-1 ));
mHintList.add(new historyRowModel("Way Fair","https://wayfair.com",-1 )); mHintListLocalCache.add(new historyRowModel("Way Fair","https://wayfair.com",-1 ));
mHintList.add(new historyRowModel("GO","https://go.com",-1 )); mHintListLocalCache.add(new historyRowModel("GO","https://go.com",-1 ));
mHintList.add(new historyRowModel("Live","https://live.com",-1 )); mHintListLocalCache.add(new historyRowModel("Live","https://live.com",-1 ));
mHintList.add(new historyRowModel("Login Yahoo","https://login.yahoo.com",-1 )); mHintListLocalCache.add(new historyRowModel("Login Yahoo","https://login.yahoo.com",-1 ));
mHintList.add(new historyRowModel("Steam Community","https://steamcommunity.com",-1 )); mHintListLocalCache.add(new historyRowModel("Steam Community","https://steamcommunity.com",-1 ));
mHintList.add(new historyRowModel("XFinity","https://xfinity.com",-1 )); mHintListLocalCache.add(new historyRowModel("XFinity","https://xfinity.com",-1 ));
mHintList.add(new historyRowModel("CNET","https://cnet.com",-1 )); mHintListLocalCache.add(new historyRowModel("CNET","https://cnet.com",-1 ));
mHintList.add(new historyRowModel("IGN","https://ign.com",-1 )); mHintListLocalCache.add(new historyRowModel("IGN","https://ign.com",-1 ));
mHintList.add(new historyRowModel("Steam Powered","https://steampowered.com",-1 )); mHintListLocalCache.add(new historyRowModel("Steam Powered","https://steampowered.com",-1 ));
mHintList.add(new historyRowModel("Macys","https://macys.com",-1 )); mHintListLocalCache.add(new historyRowModel("Macys","https://macys.com",-1 ));
mHintList.add(new historyRowModel("Wikihow","https://wikihow.com",-1 )); mHintListLocalCache.add(new historyRowModel("Wikihow","https://wikihow.com",-1 ));
mHintList.add(new historyRowModel("Mail Yahoo","https://mail.yahoo.com",-1 )); mHintListLocalCache.add(new historyRowModel("Mail Yahoo","https://mail.yahoo.com",-1 ));
mHintList.add(new historyRowModel("Wiktionary","https://wiktionary.com",-1 )); mHintListLocalCache.add(new historyRowModel("Wiktionary","https://wiktionary.com",-1 ));
mHintList.add(new historyRowModel("Cbssports","https://cbssports.com",-1 )); mHintListLocalCache.add(new historyRowModel("Cbssports","https://cbssports.com",-1 ));
mHintList.add(new historyRowModel("CNBC","https://cnbc.com",-1 )); mHintListLocalCache.add(new historyRowModel("CNBC","https://cnbc.com",-1 ));
mHintList.add(new historyRowModel("Bank Of America","https://bankofamerica.com",-1 )); mHintListLocalCache.add(new historyRowModel("Bank Of America","https://bankofamerica.com",-1 ));
mHintList.add(new historyRowModel("Expedia","https://expedia.com",-1 )); mHintListLocalCache.add(new historyRowModel("Expedia","https://expedia.com",-1 ));
mHintList.add(new historyRowModel("Wellsfargo","https://wellsfargo.com",-1 )); mHintListLocalCache.add(new historyRowModel("Wellsfargo","https://wellsfargo.com",-1 ));
mHintList.add(new historyRowModel("Groupon","https://groupon.com",-1 )); mHintListLocalCache.add(new historyRowModel("Groupon","https://groupon.com",-1 ));
mHintList.add(new historyRowModel("Twitch","https://twitch.com",-1 )); mHintListLocalCache.add(new historyRowModel("Twitch","https://twitch.com",-1 ));
mHintList.add(new historyRowModel("Khan Academy","https://khanacademy.com",-1 )); mHintListLocalCache.add(new historyRowModel("Khan Academy","https://khanacademy.com",-1 ));
mHintList.add(new historyRowModel("The Guardian","https://theguardian.com",-1 )); mHintListLocalCache.add(new historyRowModel("The Guardian","https://theguardian.com",-1 ));
mHintList.add(new historyRowModel("Paypal","https://paypal.com",-1 )); mHintListLocalCache.add(new historyRowModel("Paypal","https://paypal.com",-1 ));
mHintList.add(new historyRowModel("Spotify","https://spotify.com",-1 )); mHintListLocalCache.add(new historyRowModel("Spotify","https://spotify.com",-1 ));
mHintList.add(new historyRowModel("ATT","https://att.com",-1 )); mHintListLocalCache.add(new historyRowModel("ATT","https://att.com",-1 ));
mHintList.add(new historyRowModel("NFL","https://nfl.com",-1 )); mHintListLocalCache.add(new historyRowModel("NFL","https://nfl.com",-1 ));
mHintList.add(new historyRowModel("Realtor","https://realtor.com",-1 )); mHintListLocalCache.add(new historyRowModel("Realtor","https://realtor.com",-1 ));
mHintList.add(new historyRowModel("CA Gov","https://ca.gov",-1 )); mHintListLocalCache.add(new historyRowModel("CA Gov","https://ca.gov",-1 ));
mHintList.add(new historyRowModel("Good Reads","https://goodreads.com",-1 )); mHintListLocalCache.add(new historyRowModel("Good Reads","https://goodreads.com",-1 ));
mHintList.add(new historyRowModel("Office","https://office.com",-1 )); mHintListLocalCache.add(new historyRowModel("Office","https://office.com",-1 ));
mHintList.add(new historyRowModel("UFL","https://ufl.com",-1 )); mHintListLocalCache.add(new historyRowModel("UFL","https://ufl.com",-1 ));
mHintList.add(new historyRowModel("MLB","https://mlb.com",-1 )); mHintListLocalCache.add(new historyRowModel("MLB","https://mlb.com",-1 ));
mHintList.add(new historyRowModel("Food Network","https://foodnetwork.com",-1 )); mHintListLocalCache.add(new historyRowModel("Food Network","https://foodnetwork.com",-1 ));
mHintList.add(new historyRowModel("Apartments","https://apartments.com",-1 )); mHintListLocalCache.add(new historyRowModel("Apartments","https://apartments.com",-1 ));
mHintList.add(new historyRowModel("NPR","https://npr.com",-1 )); mHintListLocalCache.add(new historyRowModel("NPR","https://npr.com",-1 ));
mHintList.add(new historyRowModel("Wow Head","https://wowhead.com",-1 )); mHintListLocalCache.add(new historyRowModel("Wow Head","https://wowhead.com",-1 ));
mHintList.add(new historyRowModel("Bing","https://bing.com",-1 )); mHintListLocalCache.add(new historyRowModel("Bing","https://bing.com",-1 ));
mHintList.add(new historyRowModel("Google","https://google.com",-1 )); mHintListLocalCache.add(new historyRowModel("Google","https://google.com",-1 ));
mHintList.add(new historyRowModel("Genesis Search","https://genesis.onion",-1 )); mHintListLocalCache.add(new historyRowModel("Genesis Search","https://genesis.onion",-1 ));
return mHintList; return mHintListLocalCache;
} }
/*External Redirections*/ /*External Redirections*/
@ -240,7 +253,11 @@ public class suggestionDataModel implements SpellCheckerSession.SpellCheckerSess
if(pCommands == dataEnums.eSuggestionCommands.M_GET_SUGGESTIONS) if(pCommands == dataEnums.eSuggestionCommands.M_GET_SUGGESTIONS)
{ {
return getSuggestions((String) pData.get(0), (ArrayList<historyRowModel>)pData.get(1), (ArrayList<bookmarkRowModel>)pData.get(2)); return getSuggestions((String) pData.get(0), (ArrayList<historyRowModel>)pData.get(1), (ArrayList<bookmarkRowModel>)pData.get(2));
}
else if(pCommands == dataEnums.eSuggestionCommands.M_GET_DEFAULT_SUGGESTION)
{
return getDefaultSuggestions((String) pData.get(0));
} }
return null; return null;

View File

@ -189,6 +189,20 @@ public class helperMethod
context.startActivity(Intent.createChooser(emailIntent, "Send email...")); context.startActivity(Intent.createChooser(emailIntent, "Send email..."));
} }
public static void sendCustomMail(Context context, String pURL){
String mail = pURL.replaceFirst("mailto:", "");
Intent selectorIntent = new Intent(Intent.ACTION_SENDTO);
selectorIntent.setData(Uri.parse("mailto:"));
final Intent emailIntent = new Intent(Intent.ACTION_SEND);
emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[]{mail});
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "get bridges");
emailIntent.putExtra(Intent.EXTRA_TEXT, "get bridges");
emailIntent.setSelector( selectorIntent );
context.startActivity(Intent.createChooser(emailIntent, "get transport"));
}
public static void sendBridgeEmail(Context context){ public static void sendBridgeEmail(Context context){
Intent selectorIntent = new Intent(Intent.ACTION_SENDTO); Intent selectorIntent = new Intent(Intent.ACTION_SENDTO);
selectorIntent.setData(Uri.parse("mailto:")); selectorIntent.setData(Uri.parse("mailto:"));

View File

@ -339,7 +339,7 @@ class messageManager
mDialog.dismiss(); mDialog.dismiss();
}); });
mDialog.findViewById(R.id.pOption3).setOnClickListener(v -> { mDialog.findViewById(R.id.pOption3).setOnClickListener(v -> {
mEvent.invokeObserver(Collections.singletonList(mData.get(0)), M_COPY_LINK); mEvent.invokeObserver(Collections.singletonList(mData.get(0)), M_OPEN_LINK_NEW_TAB);
mDialog.dismiss(); mDialog.dismiss();
}); });
mDialog.findViewById(R.id.pOption3).setOnClickListener(v -> { mDialog.findViewById(R.id.pOption3).setOnClickListener(v -> {
@ -390,7 +390,6 @@ class messageManager
initializeDialog(R.layout.popup_download_full, Gravity.CENTER); initializeDialog(R.layout.popup_download_full, Gravity.CENTER);
((TextView) mDialog.findViewById(R.id.pHeader)).setText(mTitle); ((TextView) mDialog.findViewById(R.id.pHeader)).setText(mTitle);
((TextView) mDialog.findViewById(R.id.pDescription)).setText((data_local)); ((TextView) mDialog.findViewById(R.id.pDescription)).setText((data_local));
mDialog.findViewById(R.id.pDismiss).setOnClickListener(v -> mDialog.dismiss());
mDialog.findViewById(R.id.pOption1).setOnClickListener(v -> { mDialog.findViewById(R.id.pOption1).setOnClickListener(v -> {
mEvent.invokeObserver(Collections.singletonList(url), M_OPEN_LINK_NEW_TAB); mEvent.invokeObserver(Collections.singletonList(url), M_OPEN_LINK_NEW_TAB);
mDialog.dismiss(); mDialog.dismiss();

View File

@ -82,7 +82,7 @@ class orbotManager
/*Proxy Manager*/ /*Proxy Manager*/
private void onSetProxy(String url){ private void onSetProxy(String url){
if(url.contains("boogle.store")){ /* if(url.contains("boogle.store")){
PrefsHelper.setPref(keys.PROXY_TYPE, 0); PrefsHelper.setPref(keys.PROXY_TYPE, 0);
PrefsHelper.setPref(keys.PROXY_SOCKS,null); PrefsHelper.setPref(keys.PROXY_SOCKS,null);
PrefsHelper.setPref(keys.PROXY_SOCKS_PORT, null); PrefsHelper.setPref(keys.PROXY_SOCKS_PORT, null);
@ -95,7 +95,13 @@ class orbotManager
PrefsHelper.setPref(keys.PROXY_SOCKS_PORT, 9050); PrefsHelper.setPref(keys.PROXY_SOCKS_PORT, 9050);
PrefsHelper.setPref(keys.PROXY_SOCKS_VERSION,constants.CONST_PROXY_SOCKS_VERSION); PrefsHelper.setPref(keys.PROXY_SOCKS_VERSION,constants.CONST_PROXY_SOCKS_VERSION);
PrefsHelper.setPref(keys.PROXY_SOCKS_REMOTE_DNS,constants.CONST_PROXY_SOCKS_REMOTE_DNS); PrefsHelper.setPref(keys.PROXY_SOCKS_REMOTE_DNS,constants.CONST_PROXY_SOCKS_REMOTE_DNS);
} } */
PrefsHelper.setPref(keys.PROXY_TYPE, 1);
PrefsHelper.setPref(keys.PROXY_SOCKS,constants.CONST_PROXY_SOCKS);
PrefsHelper.setPref(keys.PROXY_SOCKS_PORT, 9050);
PrefsHelper.setPref(keys.PROXY_SOCKS_VERSION,constants.CONST_PROXY_SOCKS_VERSION);
PrefsHelper.setPref(keys.PROXY_SOCKS_REMOTE_DNS,constants.CONST_PROXY_SOCKS_REMOTE_DNS);
} }
private void initializeProxy() private void initializeProxy()

View File

@ -0,0 +1,6 @@
<vector android:autoMirrored="true" android:height="24dp"
android:tint="?attr/colorControlNormal" android:viewportHeight="24"
android:viewportWidth="24" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M21,5l-9,-4L3,5v6c0,5.55 3.84,10.74 9,12c2.3,-0.56 4.33,-1.9 5.88,-3.71l-3.12,-3.12c-1.94,1.29 -4.58,1.07 -6.29,-0.64c-1.95,-1.95 -1.95,-5.12 0,-7.07c1.95,-1.95 5.12,-1.95 7.07,0c1.71,1.71 1.92,4.35 0.64,6.29l2.9,2.9C20.29,15.69 21,13.38 21,11V5z"/>
<path android:fillColor="@android:color/white" android:pathData="M12,12m-3,0a3,3 0,1 1,6 0a3,3 0,1 1,-6 0"/>
</vector>

View File

@ -1,10 +1,5 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android" <vector android:autoMirrored="true" android:height="24dp"
android:width="24dp" android:tint="?attr/colorControlNormal" android:viewportHeight="24"
android:height="24dp" android:viewportWidth="24" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
android:viewportWidth="24" <path android:fillColor="@android:color/white" android:pathData="M15.73,3L8.27,3L3,8.27v7.46L8.27,21h7.46L21,15.73L21,8.27L15.73,3zM12,17.3c-0.72,0 -1.3,-0.58 -1.3,-1.3 0,-0.72 0.58,-1.3 1.3,-1.3 0.72,0 1.3,0.58 1.3,1.3 0,0.72 -0.58,1.3 -1.3,1.3zM13,13h-2L11,7h2v6z"/>
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M15.73,3L8.27,3L3,8.27v7.46L8.27,21h7.46L21,15.73L21,8.27L15.73,3zM12,17.3c-0.72,0 -1.3,-0.58 -1.3,-1.3 0,-0.72 0.58,-1.3 1.3,-1.3 0.72,0 1.3,0.58 1.3,1.3 0,0.72 -0.58,1.3 -1.3,1.3zM13,13h-2L11,7h2v6z"/>
</vector> </vector>

View File

@ -0,0 +1,5 @@
<vector android:autoMirrored="true" android:height="24dp"
android:tint="?attr/colorControlNormal" android:viewportHeight="24"
android:viewportWidth="24" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M3.9,12c0,-1.71 1.39,-3.1 3.1,-3.1h4L11,7L7,7c-2.76,0 -5,2.24 -5,5s2.24,5 5,5h4v-1.9L7,15.1c-1.71,0 -3.1,-1.39 -3.1,-3.1zM8,13h8v-2L8,11v2zM17,7h-4v1.9h4c1.71,0 3.1,1.39 3.1,3.1s-1.39,3.1 -3.1,3.1h-4L13,17h4c2.76,0 5,-2.24 5,-5s-2.24,-5 -5,-5z"/>
</vector>

View File

@ -0,0 +1,5 @@
<vector android:autoMirrored="true" android:height="24dp"
android:tint="?attr/colorControlNormal" android:viewportHeight="24"
android:viewportWidth="24" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M12,17.27L18.18,21l-1.64,-7.03L22,9.24l-7.19,-0.61L12,2 9.19,8.63 2,9.24l5.46,4.73L5.82,21z"/>
</vector>

View File

@ -0,0 +1,48 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="#FFFFFF">
<group android:scaleX="0.09195211"
android:scaleY="0.09195211"
android:translateX="-3.5858824"
android:translateY="-2.7065904">
<group>
<clip-path
android:pathData="M0,0h339v334h-339z"/>
<group>
<clip-path
android:pathData="M-0,1l338,0l0,332l-338,0z"/>
<group>
<clip-path
android:pathData="M-0,1l338,0l0,332l-338,0z"/>
</group>
</group>
<group>
<clip-path
android:pathData="M50,39h236v236h-236z"/>
<group>
<clip-path
android:pathData="M52,41h234v234h-234z"/>
<path
android:pathData="M59,158C59,97.249 108.249,48 169,48 229.751,48 279,97.249 279,158 279,218.751 229.751,268 169,268 108.249,268 59,218.751 59,158Z"
android:fillColor="#FFFFFF"
android:fillType="evenOdd"/>
</group>
</group>
<path
android:pathData="M59,154C59,93.249 108.25,44 169,44 229.75,44 279,93.249 279,154 279,214.751 229.75,264 169,264 108.25,264 59,214.751 59,154Z"
android:fillColor="#FFFFFF"
android:fillType="evenOdd"/>
<group>
<clip-path
android:pathData="M66,56l207.001,0l0,203.001l-207.001,0z"/>
<group>
<clip-path
android:pathData="M66,56l207.001,0l0,203.001l-207.001,0z"/>
</group>
</group>
</group>
</group>
</vector>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 KiB

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 498 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 888 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 498 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 723 B

After

Width:  |  Height:  |  Size: 996 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 342 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 606 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 342 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 489 B

After

Width:  |  Height:  |  Size: 637 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 653 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 653 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 958 B

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 999 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 999 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 101 KiB

After

Width:  |  Height:  |  Size: 82 KiB

View File

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -411,30 +411,6 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/pDescription" /> app:layout_constraintTop_toBottomOf="@+id/pDescription" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/pDivider">
<Button
android:id="@+id/pDismiss"
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_weight="1"
android:background="@xml/ax_ripple_default_round_bottom"
android:padding="0dp"
android:text="@string/ALERT_WELCOME_MESSAGE_BT_5"
android:textAlignment="center"
android:textAllCaps="false"
android:textColor="@color/c_button_text_v3"
android:textSize="14sp"
android:textStyle="bold" />
</LinearLayout>
</LinearLayout> </LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -71,9 +71,57 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/pDivider" app:layout_constraintTop_toBottomOf="@+id/pDivider"
android:orientation="vertical"> android:orientation="vertical">
<LinearLayout <LinearLayout
android:id="@+id/pOption1" android:id="@+id/pOption1"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@xml/gx_ripple_gray"
android:orientation="horizontal"
android:weightSum="7"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/pDivider">
<Button
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_weight="6"
android:alpha="0.7"
android:background="@android:color/transparent"
android:clickable="false"
android:padding="0dp"
android:paddingStart="15dp"
android:text="@string/ALERT_LONG_URL_OPTION_4"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_alert_text"
android:textSize="14sp" />
<ImageView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@android:color/transparent"
android:scaleX="0.5"
android:scaleY="0.5"
app:srcCompat="@xml/ic_arrow_right"
app:tint="@color/c_navigation_tint" />
</LinearLayout>
<View
android:id="@+id/view5"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/c_view_divier_background"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/pDescription" />
<LinearLayout
android:id="@+id/pOption2"
android:layout_width="match_parent"
android:layout_height="45dp" android:layout_height="45dp"
android:background="@xml/gx_ripple_gray" android:background="@xml/gx_ripple_gray"
android:orientation="horizontal" android:orientation="horizontal"
@ -118,7 +166,7 @@
app:layout_constraintTop_toBottomOf="@+id/pDescription" /> app:layout_constraintTop_toBottomOf="@+id/pDescription" />
<LinearLayout <LinearLayout
android:id="@+id/pOption2" android:id="@+id/pOption3"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="45dp" android:layout_height="45dp"
android:background="@xml/gx_ripple_gray" android:background="@xml/gx_ripple_gray"
@ -164,7 +212,7 @@
app:layout_constraintTop_toBottomOf="@+id/pDescription" /> app:layout_constraintTop_toBottomOf="@+id/pDescription" />
<LinearLayout <LinearLayout
android:id="@+id/pOption3" android:id="@+id/pOption4"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="45dp" android:layout_height="45dp"
android:background="@xml/gx_ripple_gray" android:background="@xml/gx_ripple_gray"

View File

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -89,6 +89,9 @@
android:layout_marginBottom="8dp" android:layout_marginBottom="8dp"
android:layout_weight="1" android:layout_weight="1"
android:animateLayoutChanges="true" android:animateLayoutChanges="true"
android:textIsSelectable="false"
android:requiresFadingEdge="horizontal"
android:fadingEdgeLength="20dp"
android:background="@xml/gx_generic_input" android:background="@xml/gx_generic_input"
android:completionHintView="@layout/hint_view" android:completionHintView="@layout/hint_view"
android:dropDownAnchor="@id/pSearchEngineBar" android:dropDownAnchor="@id/pSearchEngineBar"
@ -570,6 +573,21 @@
app:layout_constraintBottom_toTopOf="@+id/pCopyright" app:layout_constraintBottom_toTopOf="@+id/pCopyright"
app:layout_constraintStart_toStartOf="parent" /> app:layout_constraintStart_toStartOf="parent" />
<ProgressBar
android:id="@+id/pProgressBarIndeterminate"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="16dp"
android:alpha="0"
android:elevation="5dp"
android:indeterminate="true"
android:indeterminateTint="#99ffff"
android:translationY="6.5dp"
android:visibility="gone"
app:layout_constraintBottom_toTopOf="@+id/pCopyright"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<View <View
android:id="@+id/pDivider1" android:id="@+id/pDivider1"
android:layout_width="match_parent" android:layout_width="match_parent"

View File

@ -10,10 +10,11 @@
<ScrollView <ScrollView
android:textDirection="locale" android:textDirection="locale"
android:textAlignment="viewStart" android:textAlignment="viewStart"
android:layout_width="240dp" android:layout_width="260dp"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginStart="5dp" android:layout_marginStart="5dp"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:paddingBottom="1px"
android:layout_marginEnd="5dp" android:layout_marginEnd="5dp"
android:layout_marginBottom="20dp" android:layout_marginBottom="20dp"
android:background="@xml/gx_side_menu" android:background="@xml/gx_side_menu"
@ -31,7 +32,7 @@
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintTop_toTopOf="parent">
<LinearLayout <LinearLayout
android:layout_width="238dp" android:layout_width="258dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="1dp" android:layout_marginStart="1dp"
android:layout_marginTop="1dp" android:layout_marginTop="1dp"
@ -43,8 +44,10 @@
<ImageButton <ImageButton
android:id="@+id/menu24" android:id="@+id/menu24"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="52dp" android:layout_height="47dp"
android:layout_weight="1" android:layout_weight="1"
android:scaleX="0.95"
android:scaleY="0.95"
android:background="@xml/gx_ripple_gray_top_left" android:background="@xml/gx_ripple_gray_top_left"
android:contentDescription="@string/GENERAL_TODO" android:contentDescription="@string/GENERAL_TODO"
android:onClick="onMenuItemInvoked" android:onClick="onMenuItemInvoked"
@ -54,8 +57,10 @@
<ImageButton <ImageButton
android:id="@+id/menu23" android:id="@+id/menu23"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="52dp" android:layout_height="47dp"
android:layout_weight="1" android:layout_weight="1"
android:scaleX="0.95"
android:scaleY="0.95"
android:background="@xml/gx_ripple_gray" android:background="@xml/gx_ripple_gray"
android:contentDescription="@string/GENERAL_TODO" android:contentDescription="@string/GENERAL_TODO"
android:onClick="onMenuItemInvoked" android:onClick="onMenuItemInvoked"
@ -65,8 +70,10 @@
<ImageButton <ImageButton
android:id="@+id/menu22" android:id="@+id/menu22"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="52dp" android:layout_height="47dp"
android:layout_weight="1" android:layout_weight="1"
android:scaleX="0.95"
android:scaleY="0.95"
android:background="@xml/gx_ripple_gray" android:background="@xml/gx_ripple_gray"
android:contentDescription="@string/GENERAL_TODO" android:contentDescription="@string/GENERAL_TODO"
android:onClick="onMenuItemInvoked" android:onClick="onMenuItemInvoked"
@ -76,7 +83,9 @@
<ImageButton <ImageButton
android:id="@+id/menu21" android:id="@+id/menu21"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="52dp" android:layout_height="47dp"
android:scaleX="0.95"
android:scaleY="0.95"
android:layout_weight="1" android:layout_weight="1"
android:background="@xml/gx_ripple_gray" android:background="@xml/gx_ripple_gray"
android:contentDescription="@string/GENERAL_TODO" android:contentDescription="@string/GENERAL_TODO"
@ -87,8 +96,10 @@
<ImageButton <ImageButton
android:id="@+id/menu20" android:id="@+id/menu20"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="52dp" android:layout_height="47dp"
android:layout_gravity="center" android:layout_gravity="center"
android:scaleX="0.95"
android:scaleY="0.95"
android:layout_weight="1" android:layout_weight="1"
android:background="@xml/gx_ripple_gray_top_right" android:background="@xml/gx_ripple_gray_top_right"
android:contentDescription="@string/GENERAL_TODO" android:contentDescription="@string/GENERAL_TODO"
@ -100,7 +111,7 @@
<LinearLayout <LinearLayout
android:id="@+id/menu11" android:id="@+id/menu11"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="52dp" android:layout_height="47dp"
android:layout_marginStart="1dp" android:layout_marginStart="1dp"
android:layout_marginTop="0dp" android:layout_marginTop="0dp"
android:layout_marginEnd="1dp" android:layout_marginEnd="1dp"
@ -113,17 +124,17 @@
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintTop_toTopOf="parent">
<ImageView <ImageView
android:layout_width="20dp" android:layout_width="21dp"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginStart="16dp" android:layout_marginStart="15dp"
android:contentDescription="@string/GENERAL_TODO" android:contentDescription="@string/GENERAL_TODO"
android:src="@xml/ic_baseline_new_tab" android:src="@xml/ic_baseline_new_tab"
app:tint="@color/c_navigation_medium" /> app:tint="@color/c_navigation_medium" />
<TextView <TextView
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="50dp" android:layout_height="45dp"
android:layout_marginStart="10dp" android:layout_marginStart="17dp"
android:layout_weight="1" android:layout_weight="1"
android:gravity="start|center_vertical" android:gravity="start|center_vertical"
android:paddingStart="3dp" android:paddingStart="3dp"
@ -134,85 +145,19 @@
tools:ignore="RtlHardcoded,RtlSymmetry" /> tools:ignore="RtlHardcoded,RtlSymmetry" />
</LinearLayout> </LinearLayout>
<LinearLayout <View
android:id="@+id/menu12"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="52dp" android:layout_height="1dp"
android:layout_marginStart="1dp" android:layout_marginStart="15dp"
android:layout_marginTop="1dp" android:layout_marginTop="5dp"
android:layout_marginEnd="1dp" android:layout_marginBottom="5dp"
android:background="@xml/gx_side_item" android:layout_marginEnd="15dp"
android:clickable="true" android:background="@color/button_light" />
android:focusable="true"
android:onClick="onMenuItemInvoked"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:id="@+id/markerTab"
android:layout_width="20dp"
android:layout_height="match_parent"
android:layout_marginStart="16dp"
android:contentDescription="@string/GENERAL_TODO"
android:src="@xml/ic_baseline_vpn"
app:tint="@color/c_navigation_medium" />
<TextView
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_marginStart="10dp"
android:layout_weight="1"
android:gravity="start|center_vertical"
android:paddingStart="3dp"
android:text="@string/HOME_MENU__ORBOT_LOGS"
android:textAllCaps="false"
android:textColor="@color/c_text_home_menu"
android:textSize="15sp"
tools:ignore="RtlHardcoded,RtlSymmetry" />
</LinearLayout>
<LinearLayout
android:id="@+id/pMenuOpenNewTab"
android:layout_width="match_parent"
android:layout_height="52dp"
android:layout_marginStart="1dp"
android:layout_marginTop="1dp"
android:layout_marginEnd="1dp"
android:background="@xml/gx_side_item"
android:clickable="true"
android:focusable="true"
android:onClick="onMenuItemInvoked"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:layout_width="20dp"
android:layout_height="match_parent"
android:layout_marginStart="16dp"
android:contentDescription="@string/GENERAL_TODO"
android:src="@xml/ic_baseline_bookmark_menu"
app:tint="@color/c_navigation_medium" />
<TextView
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_marginStart="10dp"
android:layout_weight="1"
android:gravity="start|center_vertical"
android:paddingStart="3dp"
android:text="@string/HOME_MENU_OPEN_BOOKMARK"
android:textAllCaps="false"
android:textColor="@color/c_text_home_menu"
android:textSize="15sp"
tools:ignore="RtlHardcoded,RtlSymmetry" />
</LinearLayout>
<LinearLayout <LinearLayout
android:id="@+id/menu7" android:id="@+id/menu7"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="52dp" android:layout_height="47dp"
android:layout_marginStart="1dp" android:layout_marginStart="1dp"
android:layout_marginTop="1dp" android:layout_marginTop="1dp"
android:layout_marginEnd="1dp" android:layout_marginEnd="1dp"
@ -225,17 +170,17 @@
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintTop_toTopOf="parent">
<ImageView <ImageView
android:layout_width="20dp" android:layout_width="21dp"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginStart="16dp" android:layout_marginStart="15dp"
android:contentDescription="@string/GENERAL_TODO" android:contentDescription="@string/GENERAL_TODO"
android:src="@xml/ic_baseline_history" android:src="@xml/ic_baseline_history"
app:tint="@color/c_navigation_medium" /> app:tint="@color/c_navigation_medium" />
<TextView <TextView
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="50dp" android:layout_height="45dp"
android:layout_marginStart="10dp" android:layout_marginStart="17dp"
android:layout_weight="1" android:layout_weight="1"
android:gravity="start|center_vertical" android:gravity="start|center_vertical"
android:paddingStart="3dp" android:paddingStart="3dp"
@ -249,7 +194,7 @@
<LinearLayout <LinearLayout
android:id="@+id/menu8" android:id="@+id/menu8"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="52dp" android:layout_height="47dp"
android:layout_marginStart="1dp" android:layout_marginStart="1dp"
android:layout_marginTop="1dp" android:layout_marginTop="1dp"
android:layout_marginEnd="1dp" android:layout_marginEnd="1dp"
@ -262,17 +207,17 @@
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintTop_toTopOf="parent">
<ImageView <ImageView
android:layout_width="20dp" android:layout_width="21dp"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginStart="16dp" android:layout_marginStart="15dp"
android:contentDescription="@string/GENERAL_TODO" android:contentDescription="@string/GENERAL_TODO"
android:src="@xml/ic_arrow_down" android:src="@xml/ic_arrow_down"
app:tint="@color/c_navigation_medium" /> app:tint="@color/c_navigation_medium" />
<TextView <TextView
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="50dp" android:layout_height="45dp"
android:layout_marginStart="10dp" android:layout_marginStart="17dp"
android:layout_weight="1" android:layout_weight="1"
android:gravity="start|center_vertical" android:gravity="start|center_vertical"
android:paddingStart="3dp" android:paddingStart="3dp"
@ -284,9 +229,9 @@
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
android:id="@+id/menu25" android:id="@+id/pMenuOpenRecentTab"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="52dp" android:layout_height="47dp"
android:layout_marginStart="1dp" android:layout_marginStart="1dp"
android:layout_marginTop="1dp" android:layout_marginTop="1dp"
android:layout_marginEnd="1dp" android:layout_marginEnd="1dp"
@ -299,17 +244,138 @@
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintTop_toTopOf="parent">
<ImageView <ImageView
android:layout_width="20dp" android:layout_width="21dp"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginStart="16dp" android:layout_marginStart="15dp"
android:contentDescription="@string/GENERAL_TODO"
android:src="@xml/ic_baseline_bookmark_menu"
app:tint="@color/c_navigation_medium" />
<TextView
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_marginStart="17dp"
android:layout_weight="1"
android:gravity="start|center_vertical"
android:paddingStart="3dp"
android:text="@string/HOME_MENU_OPEN_RECENT_TAB"
android:textAllCaps="false"
android:textColor="@color/c_text_home_menu"
android:textSize="15sp"
tools:ignore="RtlHardcoded,RtlSymmetry" />
</LinearLayout>
<LinearLayout
android:id="@+id/pMenuOpenNewTab"
android:layout_width="match_parent"
android:layout_height="47dp"
android:layout_marginStart="1dp"
android:layout_marginTop="1dp"
android:layout_marginEnd="1dp"
android:background="@xml/gx_side_item"
android:clickable="true"
android:focusable="true"
android:onClick="onMenuItemInvoked"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:layout_width="21dp"
android:layout_height="match_parent"
android:layout_marginStart="15dp"
android:contentDescription="@string/GENERAL_TODO"
android:src="@xml/ic_baseline_star_fill"
app:tint="@color/c_navigation_medium" />
<TextView
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_marginStart="17dp"
android:layout_weight="1"
android:gravity="start|center_vertical"
android:paddingStart="3dp"
android:text="@string/HOME_MENU_OPEN_BOOKMARK"
android:textAllCaps="false"
android:textColor="@color/c_text_home_menu"
android:textSize="15sp"
tools:ignore="RtlHardcoded,RtlSymmetry" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginStart="15dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:layout_marginEnd="15dp"
android:background="@color/button_light" />
<LinearLayout
android:id="@+id/menu12"
android:layout_width="match_parent"
android:layout_height="47dp"
android:layout_marginStart="1dp"
android:layout_marginTop="1dp"
android:layout_marginEnd="1dp"
android:background="@xml/gx_side_item"
android:clickable="true"
android:focusable="true"
android:onClick="onMenuItemInvoked"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:id="@+id/markerTab"
android:layout_width="21dp"
android:layout_height="match_parent"
android:layout_marginStart="15dp"
android:contentDescription="@string/GENERAL_TODO"
android:src="@xml/ic_baseline_vpn"
app:tint="@color/c_navigation_medium" />
<TextView
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_marginStart="17dp"
android:layout_weight="1"
android:gravity="start|center_vertical"
android:paddingStart="3dp"
android:text="@string/HOME_MENU__ORBOT_LOGS"
android:textAllCaps="false"
android:textColor="@color/c_text_home_menu"
android:textSize="15sp"
tools:ignore="RtlHardcoded,RtlSymmetry" />
</LinearLayout>
<LinearLayout
android:id="@+id/menu25"
android:layout_width="match_parent"
android:layout_height="47dp"
android:layout_marginStart="1dp"
android:layout_marginTop="1dp"
android:layout_marginEnd="1dp"
android:background="@xml/gx_side_item"
android:clickable="true"
android:focusable="true"
android:onClick="onMenuItemInvoked"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:layout_width="21dp"
android:layout_height="match_parent"
android:layout_marginStart="15dp"
android:contentDescription="@string/GENERAL_TODO" android:contentDescription="@string/GENERAL_TODO"
android:src="@xml/ic_baseline_language" android:src="@xml/ic_baseline_language"
app:tint="@color/c_navigation_medium" /> app:tint="@color/c_navigation_medium" />
<TextView <TextView
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="50dp" android:layout_height="45dp"
android:layout_marginStart="10dp" android:layout_marginStart="17dp"
android:layout_weight="1" android:layout_weight="1"
android:gravity="start|center_vertical" android:gravity="start|center_vertical"
android:paddingStart="3dp" android:paddingStart="3dp"
@ -323,7 +389,7 @@
<LinearLayout <LinearLayout
android:id="@+id/pMenuFind" android:id="@+id/pMenuFind"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="52dp" android:layout_height="47dp"
android:layout_marginStart="1dp" android:layout_marginStart="1dp"
android:layout_marginTop="1dp" android:layout_marginTop="1dp"
android:layout_marginEnd="1dp" android:layout_marginEnd="1dp"
@ -336,17 +402,17 @@
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintTop_toTopOf="parent">
<ImageView <ImageView
android:layout_width="20dp" android:layout_width="21dp"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginStart="16dp" android:layout_marginStart="15dp"
android:contentDescription="@string/GENERAL_TODO" android:contentDescription="@string/GENERAL_TODO"
android:src="@xml/ic_baseline_find" android:src="@xml/ic_baseline_find"
app:tint="@color/c_navigation_medium" /> app:tint="@color/c_navigation_medium" />
<TextView <TextView
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="50dp" android:layout_height="45dp"
android:layout_marginStart="10dp" android:layout_marginStart="17dp"
android:layout_weight="1" android:layout_weight="1"
android:gravity="start|center_vertical" android:gravity="start|center_vertical"
android:paddingStart="3dp" android:paddingStart="3dp"
@ -357,11 +423,10 @@
tools:ignore="RtlHardcoded,RtlSymmetry" /> tools:ignore="RtlHardcoded,RtlSymmetry" />
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
android:id="@+id/menu26" android:id="@+id/menu26"
android:layout_width="239dp" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="47dp"
android:layout_marginStart="1dp" android:layout_marginStart="1dp"
android:layout_marginTop="1dp" android:layout_marginTop="1dp"
android:layout_marginEnd="1dp" android:layout_marginEnd="1dp"
@ -370,31 +435,24 @@
android:focusable="true" android:focusable="true"
android:onClick="onMenuItemInvoked" android:onClick="onMenuItemInvoked"
android:orientation="horizontal" android:orientation="horizontal"
android:paddingEnd="10dp"
android:textAllCaps="false"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintTop_toTopOf="parent">
<ImageView <ImageView
android:layout_width="20dp" android:layout_width="21dp"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginStart="16dp" android:layout_marginStart="15dp"
android:contentDescription="@string/GENERAL_TODO" android:contentDescription="@string/GENERAL_TODO"
android:src="@xml/ic_baseline_desktop" android:src="@xml/ic_baseline_desktop"
app:tint="@color/c_navigation_medium" /> app:tint="@color/c_navigation_medium" />
<TextView <TextView
android:id="@+id/menu28"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="50dp" android:layout_height="45dp"
android:layout_marginStart="4dp" android:layout_marginStart="17dp"
android:layout_weight="4" android:layout_weight="3"
android:background="@color/clear_alpha"
android:clickable="false"
android:focusable="false"
android:gravity="start|center_vertical" android:gravity="start|center_vertical"
android:onClick="onMenuItemInvoked" android:paddingStart="3dp"
android:paddingStart="8dp"
android:text="@string/HOME_MENU_DESKTOP" android:text="@string/HOME_MENU_DESKTOP"
android:textAllCaps="false" android:textAllCaps="false"
android:textColor="@color/c_text_home_menu" android:textColor="@color/c_text_home_menu"
@ -404,7 +462,7 @@
<com.google.android.material.checkbox.MaterialCheckBox <com.google.android.material.checkbox.MaterialCheckBox
android:id="@+id/menu27" android:id="@+id/menu27"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="50dp" android:layout_height="45dp"
android:layout_marginStart="0dp" android:layout_marginStart="0dp"
android:layout_weight="1" android:layout_weight="1"
android:background="@color/clear_alpha" android:background="@color/clear_alpha"
@ -416,12 +474,22 @@
android:textColor="@color/c_text_home_menu" android:textColor="@color/c_text_home_menu"
android:textSize="16sp" android:textSize="16sp"
tools:ignore="RtlHardcoded,RtlSymmetry" /> tools:ignore="RtlHardcoded,RtlSymmetry" />
</LinearLayout> </LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:layout_marginStart="15dp"
android:layout_marginEnd="15dp"
android:background="@color/button_light" />
<LinearLayout <LinearLayout
android:id="@+id/menu6" android:id="@+id/menu6"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="52dp" android:layout_height="47dp"
android:layout_marginStart="1dp" android:layout_marginStart="1dp"
android:layout_marginTop="1dp" android:layout_marginTop="1dp"
android:layout_marginEnd="1dp" android:layout_marginEnd="1dp"
@ -434,17 +502,17 @@
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintTop_toTopOf="parent">
<ImageView <ImageView
android:layout_width="20dp" android:layout_width="21dp"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginStart="16dp" android:layout_marginStart="15dp"
android:contentDescription="@string/GENERAL_TODO" android:contentDescription="@string/GENERAL_TODO"
android:src="@xml/ic_baseline_setting" android:src="@xml/ic_baseline_setting"
app:tint="@color/c_navigation_medium" /> app:tint="@color/c_navigation_medium" />
<TextView <TextView
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="50dp" android:layout_height="45dp"
android:layout_marginStart="10dp" android:layout_marginStart="17.5dp"
android:layout_weight="1" android:layout_weight="1"
android:gravity="start|center_vertical" android:gravity="start|center_vertical"
android:paddingStart="3dp" android:paddingStart="3dp"
@ -458,7 +526,7 @@
<LinearLayout <LinearLayout
android:id="@+id/pMenuQuit" android:id="@+id/pMenuQuit"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="52dp" android:layout_height="47dp"
android:layout_marginStart="1dp" android:layout_marginStart="1dp"
android:layout_marginTop="1dp" android:layout_marginTop="1dp"
android:layout_marginEnd="1dp" android:layout_marginEnd="1dp"
@ -471,17 +539,17 @@
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintTop_toTopOf="parent">
<ImageView <ImageView
android:layout_width="20dp" android:layout_width="21dp"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginStart="16dp" android:layout_marginStart="15dp"
android:contentDescription="@string/GENERAL_TODO" android:contentDescription="@string/GENERAL_TODO"
android:src="@xml/ic_baseline_quit" android:src="@xml/ic_baseline_quit"
app:tint="@color/c_navigation_medium" /> app:tint="@color/c_navigation_medium" />
<TextView <TextView
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="50dp" android:layout_height="45dp"
android:layout_marginStart="10dp" android:layout_marginStart="17.5dp"
android:layout_weight="1" android:layout_weight="1"
android:gravity="start|center_vertical" android:gravity="start|center_vertical"
android:paddingStart="3dp" android:paddingStart="3dp"

View File

@ -815,88 +815,15 @@
android:layout_marginStart="15dp" android:layout_marginStart="15dp"
android:background="@color/c_view_divier_background" /> android:background="@color/c_view_divier_background" />
<LinearLayout
android:id="@+id/pOption11"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:background="@xml/gx_ripple_gray"
android:onClick="onReportWebsite"
android:orientation="horizontal"
android:weightSum="8">
<ImageView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="5dp"
android:layout_marginEnd="5dp"
android:layout_weight="1"
android:contentDescription="@string/GENERAL_TODO"
android:padding="10dp"
android:src="@xml/ic_baseline_report"
app:tint="@color/c_icon_tint" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="6"
android:clickable="false"
android:orientation="vertical">
<Button
android:layout_width="match_parent"
android:layout_height="20dp"
android:alpha="1"
android:background="@android:color/transparent"
android:clickable="false"
android:padding="0dp"
android:text="@string/SETTING_REPORT"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textSize="15sp"
tools:ignore="RtlSymmetry" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:alpha="1"
android:background="@android:color/transparent"
android:clickable="false"
android:padding="0dp"
android:text="@string/SETTING_REPORT_INFO"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
<ImageButton
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginEnd="5dp"
android:layout_weight="1"
android:background="@android:color/transparent"
android:clickable="false"
android:contentDescription="@string/GENERAL_TODO"
android:src="@xml/ic_arrow_right"
android:tint="@color/c_navigation_tint" />
</LinearLayout>
<LinearLayout <LinearLayout
android:id="@+id/pOption12" android:id="@+id/pOption12"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:background="@xml/gx_ripple_gray" android:background="@xml/gx_ripple_gray"
android:onClick="onRateApplication" android:onClick="onRateApplication"
android:orientation="horizontal" android:orientation="horizontal"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:weightSum="8"> android:weightSum="8">
<ImageView <ImageView
@ -965,11 +892,11 @@
android:id="@+id/pOption13" android:id="@+id/pOption13"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:background="@xml/gx_ripple_gray" android:background="@xml/gx_ripple_gray"
android:onClick="onShareApplication" android:onClick="onShareApplication"
android:orientation="horizontal" android:orientation="horizontal"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:weightSum="8"> android:weightSum="8">
<ImageView <ImageView
@ -1034,6 +961,232 @@
</LinearLayout> </LinearLayout>
<View
android:id="@+id/view4"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginStart="15dp"
android:background="@color/c_view_divier_background" />
<LinearLayout
android:id="@+id/pOption14"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@xml/gx_ripple_gray"
android:onClick="onPrivacyPolicy"
android:orientation="horizontal"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:weightSum="8">
<ImageView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="5dp"
android:layout_marginEnd="5dp"
android:layout_weight="1"
android:contentDescription="@string/GENERAL_TODO"
android:padding="10dp"
android:src="@xml/ic_baseline_policy"
app:tint="@color/c_icon_tint" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="6"
android:clickable="false"
android:orientation="vertical">
<Button
android:layout_width="match_parent"
android:layout_height="20dp"
android:alpha="1"
android:background="@android:color/transparent"
android:clickable="false"
android:padding="0dp"
android:text="@string/SETTING_PRIVACY_POLICY"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textSize="15sp"
tools:ignore="RtlSymmetry" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:alpha="1"
android:background="@android:color/transparent"
android:clickable="false"
android:padding="0dp"
android:text="@string/SETTING_PRIVACY_POLICY_INFO"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
<ImageButton
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginEnd="5dp"
android:layout_weight="1"
android:background="@android:color/transparent"
android:clickable="false"
android:contentDescription="@string/GENERAL_TODO"
android:src="@xml/ic_arrow_right"
android:tint="@color/c_navigation_tint" />
</LinearLayout>
<LinearLayout
android:id="@+id/pOption15"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@xml/gx_ripple_gray"
android:onClick="onReportWebsite"
android:orientation="horizontal"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:weightSum="8">
<ImageView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="5dp"
android:layout_marginEnd="5dp"
android:layout_weight="1"
android:contentDescription="@string/GENERAL_TODO"
android:padding="10dp"
android:src="@xml/ic_baseline_report"
app:tint="@color/c_icon_tint" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="6"
android:clickable="false"
android:orientation="vertical">
<Button
android:layout_width="match_parent"
android:layout_height="20dp"
android:alpha="1"
android:background="@android:color/transparent"
android:clickable="false"
android:padding="0dp"
android:text="@string/SETTING_REPORT_WEBSITE"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textSize="15sp"
tools:ignore="RtlSymmetry" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:alpha="1"
android:background="@android:color/transparent"
android:clickable="false"
android:padding="0dp"
android:text="@string/SETTING_REPORT_WEBSITE_INFO"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
<ImageButton
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginEnd="5dp"
android:layout_weight="1"
android:background="@android:color/transparent"
android:clickable="false"
android:contentDescription="@string/GENERAL_TODO"
android:src="@xml/ic_arrow_right"
android:tint="@color/c_navigation_tint" />
</LinearLayout>
<LinearLayout
android:id="@+id/pOption16"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@xml/gx_ripple_gray"
android:onClick="onSitemap"
android:orientation="horizontal"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:weightSum="8">
<ImageView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="5dp"
android:layout_marginEnd="5dp"
android:layout_weight="1"
android:contentDescription="@string/GENERAL_TODO"
android:padding="10dp"
android:src="@xml/ic_baseline_sitemap"
app:tint="@color/c_icon_tint" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="6"
android:clickable="false"
android:orientation="vertical">
<Button
android:layout_width="match_parent"
android:layout_height="20dp"
android:alpha="1"
android:background="@android:color/transparent"
android:clickable="false"
android:padding="0dp"
android:text="@string/SETTING_SITEMAP"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v1"
android:textSize="15sp"
tools:ignore="RtlSymmetry" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:alpha="1"
android:background="@android:color/transparent"
android:clickable="false"
android:padding="0dp"
android:text="@string/SETTING_SITEMAP_INFO"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
<ImageButton
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginEnd="5dp"
android:layout_weight="1"
android:background="@android:color/transparent"
android:clickable="false"
android:contentDescription="@string/GENERAL_TODO"
android:src="@xml/ic_arrow_right"
android:tint="@color/c_navigation_tint" />
</LinearLayout>
</LinearLayout> </LinearLayout>
</ScrollView> </ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.0 KiB

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.5 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -0,0 +1,428 @@
<resources>
<!-- Generated by Automatic String Resource Translation -->
<!-- https://asrt.gluege.boerde.de -->
<string name="app_name" translatable="false">Genesis</string>
<string name="GENERAL_SEARCH_HINT" translatable="true">cerqueu alguna cosa o escriviu un enllaç web</string>
<string name="GENERAL_FIND_HINT" translatable="true">trobar a la pàgina</string>
<string name="GENERAL_SEARCH_ENGINE" translatable="true">motor de cerca</string>
<string name="GENERAL_HOME_URL" translatable="false">https://genesis.onion</string>
<string name="GENERAL_ERROR_TITLE" translatable="true">opps! alguna cosa ha fallat</string>
<string name="GENERAL_TODO" translatable="true">tot</string>
<string name="GENERAL_PROJECT_NAME" translatable="false">Genesis search engine</string>
<string name="GENERAL_LOADING" translatable="true">llibertat digital</string>
<string name="GENERAL_RELOAD" translatable="true">recarregar</string>
<string name="GENERAL_INTERNET_ERROR_MESSAGE" translatable="true">us trobeu amb el problema següent. pot ser que la pàgina web o el lloc web no funcionin. és possible que la vostra connexió a Internet sigui deficient. és possible que utilitzeu un servidor intermediari. el tallafoc podria bloquejar el lloc web</string>
<string name="GENERAL_FILE_PROVIDER_AUTHORITY" translatable="false">com.darkweb.genesissearchengine.fileprovider</string>
<string name="GENERAL_DEFAULT_HINT_SUGGESTION" translatable="true">BBC, Israel torna a atacar</string>
<string name="SETTING_DEFAULT_LANGUAGE" translatable="false">ru</string>
<string name="SETTING_BASIC_SETTING" translatable="true">Configuració del sistema</string>
<string name="SETTING_DEFAULT_BROWSER" translatable="true">fes de Genesis el navegador predeterminat</string>
<string name="SETTING_HEADER" translatable="true">Configuració del sistema</string>
<string name="SETTING_SEARCH_ENGINE" translatable="true">motor de cerca</string>
<string name="SETTING_JAVASCRIPT" translatable="true">javascript</string>
<string name="SETTING_CLEAR_HISTORY" translatable="true">eliminar els enllaços web navegats</string>
<string name="SETTING_FONT_TITLE" translatable="true">personalitzar la font</string>
<string name="SETTING_ADJUST_FONT" translatable="true">Constomització de tipus de lletra del sistema</string>
<string name="SETTING_MANUAL_FONT" translatable="true">canvia el tipus de lletra automàticament</string>
<string name="SETTING_COOKIE_TEXT_INFO" translatable="true">Configuració de galetes</string>
<string name="SETTING_COOKIE" translatable="true">galetes</string>
<string name="SETTING_NOTIFICATION_HEADER" translatable="true">Configuració del sistema. Notificació</string>
<string name="SETTING_NOTIFICATION_HEADER_1" translatable="true">notificacions</string>
<string name="SETTING_NOTIFICATION_HEADER_1_INFO" translatable="true">canviar les preferències de notificació</string>
<string name="SETTING_NOTIFICATION_DISABLE_STATUS_NOTIFICATION" translatable="true">estat de la xarxa i notificacions</string>
<string name="SETTING_NOTIFICATION_DISABLE_STATUS_NOTIFICATION_INFO" translatable="true">notificacions locals</string>
<string name="SETTING_NOTIFICATION_OPEN_NOTIFICATION_MANAGER" translatable="true">personalitzar la notificació de programari</string>
<string name="SETTING_NOTIFICATION_OPEN_NOTIFICATION_MANAGER_INFO" translatable="true">notificacions del sistema</string>
<string name="SETTING_ORBOT_LOG_HEADER" translatable="true">canvieu la forma en què apareix el registre del sistema</string>
<string name="SETTING_ORBOT_LIST_VIEW" translatable="true">mostra Registre mitjançant la vista de llista moderna</string>
<string name="SETTING_ORBOT_LIST_VIEW_INFO" translatable="true">canvia entre la visualització de llista clàssica i moderna</string>
<string name="SETTING_SEARCH" translatable="true">gestiona el motor de cerca</string>
<string name="SETTING_SEARCH_INFO" translatable="true">afegir, establir per defecte. mostra suggeriments</string>
<string name="SETTING_NOTIFICATION" translatable="true">gestionar les notificacions</string>
<string name="SETTING_NOTIFICATION_INFO" translatable="true">noves funcions, estat de la xarxa</string>
<string name="SETTING_SEARCH_HEADER" translatable="true">Personalitzeu el programari. Motor de cerca</string>
<string name="SETTING_SEARCH_HEADER_1" translatable="true">motors de cerca compatibles</string>
<string name="SETTING_SEARCH_HEADER_1_INFO" translatable="true">trieu Motor de cerca per defecte</string>
<string name="SETTING_SEARCH_HEADER_2" translatable="true">Personalitzeu el programari. Motor de cerca</string>
<string name="SETTING_SEARCH_HEADER_2_INFO" translatable="true">canvieu com apareixen les cerques web</string>
<string name="SETTING_SEARCH_DEFAULT" translatable="false">default</string>
<string name="SETTING_SEARCH_GENESIS" translatable="false">Genesis</string>
<string name="SETTING_SEARCH_DUCK" translatable="false">DuckDuckGo</string>
<string name="SETTING_SEARCH_GOOGLE" translatable="false">Google</string>
<string name="SETTING_SEARCH_AMAZON" translatable="false">Bing</string>
<string name="SETTING_SEARCH_BING" translatable="false">Wikipedia</string>
<string name="SETTING_SEARCH_HISTORY" translatable="true">mostra els enllaços web navegats</string>
<string name="SETTING_SEARCH_SUGGESTIONS" translatable="true">mostra suggeriments durant la cerca</string>
<string name="SETTING_SEARCH_HISTORY_INFO" translatable="true">els suggeriments dels enllaços web navegats apareixen quan escriviu a la barra de cerca</string>
<string name="SETTING_SEARCH_SUGGESTION_INFO" translatable="true">apareixen suggeriments centrats quan escriviu a la barra de cerca</string>
<string name="SETTING_ACCESSIBILITY" translatable="true">accessibilitat</string>
<string name="SETTING_ACCESSIBILITY_INFO" translatable="true">mida del text, zoom, introducció mitjançant veu</string>
<string name="SETTING_ACCESSIBILITY_HEADER" translatable="true">personalitzar, accessibilitat</string>
<string name="SETTING_CLEAR" translatable="true">esborra les dades privades</string>
<string name="SETTING_CLEAR_INFO" translatable="true">pestanyes, enllaços web navegats, marcador, galetes, memòria cau</string>
<string name="SETTING_CLEAR_HEADER" translatable="true">Canvia la configuració del sistema. Esborra les dades del sistema</string>
<string name="SETTING_CLEAR_BUTTON" translatable="true">esborrar dades</string>
<string name="SETTING_CLEAR_OPTION_1" translatable="true">suprimiu totes les pestanyes</string>
<string name="SETTING_CLEAR_OPTION_2" translatable="true">suprimir els enllaços web navegats</string>
<string name="SETTING_CLEAR_OPTION_3" translatable="true">suprimir adreces d\'interès</string>
<string name="SETTING_CLEAR_OPTION_4" translatable="true">esborra la memòria cau</string>
<string name="SETTING_CLEAR_OPTION_5" translatable="true">suprimir suggeriments</string>
<string name="SETTING_CLEAR_OPTION_6" translatable="true">suprimir dades</string>
<string name="SETTING_CLEAR_OPTION_7" translatable="true">eliminar sessió</string>
<string name="SETTING_CLEAR_OPTION_8" translatable="true">suprimir galetes</string>
<string name="SETTING_CLEAR_OPTION_9" translatable="true">esborrar personalitzar</string>
<string name="SETTING_ACCESSIBILITY_FONT" translatable="true">escala de tipus de lletra</string>
<string name="SETTING_ACCESSIBILITY_FONT_INFO" translatable="true">redimensionar el contingut web segons la mida del tipus de lletra del sistema</string>
<string name="SETTING_ACCESSIBILITY_ZOOM" translatable="true">activeu el zoom</string>
<string name="SETTING_ACCESSIBILITY_ZOOM_INFO" translatable="true">activar i forçar el zoom a totes les pàgines web</string>
<string name="SETTING_ACCESSIBILITY_VOICE" translatable="true">entrada mitjançant veu</string>
<string name="SETTING_ACCESSIBILITY_VOICE_INFO" translatable="true">permet el dictat de veu a la barra d\'URL</string>
<string name="SETTING_ACCESSIBILITY_FONT_CUSTOM" translatable="true">seleccioneu l\'escala de tipus de lletra personalitzada</string>
<string name="SETTING_ACCESSIBILITY_FONT_CUSTOM_SAMPLE" translatable="true">arrossegueu el control lliscant fins que pugueu llegir-lo còmodament. el text hauria de semblar almenys tan gran després de fer doble toc en un paràgraf</string>
<string name="SETTING_ACCESSIBILITY_200_PERCENT" translatable="true">200%</string>
<string name="SETTING_INTERACTION" translatable="true">interaccions</string>
<string name="SETTING_INTERACTION_INFO" translatable="true">canviar la forma dinteractuar amb el contingut del lloc web</string>
<string name="SETTING_PRIVACY" translatable="true">Usuari activat</string>
<string name="SETTING_PRIVACY_INFO" translatable="true">sorpresa dels usuaris, inicis de sessió, opcions de dades</string>
<string name="SETTING_TRACKING" translatable="true">Protecció de vigilància de l\'usuari</string>
<string name="SETTING_TRACKING_INFO" translatable="true">adblock, rastrejadors, empremta digital</string>
<string name="SETTING_PRIVACY_HEADER" translatable="true">Configuració del sistema. privadesa</string>
<string name="SETTING_TRACKING_HEADER" translatable="true">Configuració del sistema. protecció contra la superació de l\'usuari</string>
<string name="SETTING_TRACKING_SUB_HEADER" translatable="true">protegir la vostra identitat en línia</string>
<string name="SETTING_TRACKING_SUB_HEADER_INFO" translatable="true">mantingueu la vostra identitat privada. podem protegir-lo de diversos seguidors que el segueixen en línia. aquesta configuració del sistema també es pot utilitzar per bloquejar la publicitat</string>
<string name="SETTING_PRIVACY_DONOT_TRACK" translatable="true">estalvieu-vos de lusuari Survelance Protection</string>
<string name="SETTING_PRIVACY_DONOT_TRACK_INFO" translatable="true">Genesis dirà als llocs que no em facin un seguiment</string>
<string name="SETTING_PRIVACY_DONOT_TRACK_INFO_SECURITY" translatable="true">digueu al lloc web que no em faci un seguiment</string>
<string name="SETTING_PRIVACY_TRACKING_PROTECTION" translatable="true">Protecció de vigilància de l\'usuari</string>
<string name="SETTING_PRIVACY_TRACKING_PROTECTION_INFO" translatable="true">habilitar la protecció contra la supervivència de l\'usuari proporcionada per Genesis</string>
<string name="SETTING_PRIVACY_COOKIES" translatable="true">cookies del lloc web</string>
<string name="SETTING_PRIVACY_COOKIES_INFO" translatable="true">seleccioneu les preferències de cookies del lloc web segons les vostres necessitats de seguretat</string>
<string name="SETTING_PRIVACY_CLEAR_PRIVATE_DATA" translatable="true">esborreu les dades privades a la sortida</string>
<string name="SETTING_PRIVACY_CLEAR_PRIVATE_DATA_INFO" translatable="true">esborreu les dades automàticament un cop es tanca el programari</string>
<string name="SETTING_PRIVACY_CLEAR_PRIVATE_HEADER" translatable="true">navegació privada</string>
<string name="SETTING_PRIVACY_CLEAR_PRIVATE_HEADER_INFO" translatable="true">mantingueu segura la vostra identitat i utilitzeu les opcions següents</string>
<string name="SETTING_PRIVACY_COOKIES_OPTION1" translatable="true">activat</string>
<string name="SETTING_PRIVACY_COOKIES_OPTION2" translatable="true">activat, excloent les cookies de seguiment del lloc web</string>
<string name="SETTING_PRIVACY_COOKIES_OPTION3" translatable="true">activat, excloent tercers</string>
<string name="SETTING_PRIVACY_COOKIES_OPTION4" translatable="true">discapacitat</string>
<string name="SETTING_PRIVACY_TRACKING_OPTION1" translatable="true">desactiva la protecció</string>
<string name="SETTING_PRIVACY_TRACKING_OPTION1_INFO" translatable="true">permet la protecció contra la superació de la identitat. això pot provocar el robatori de la vostra identitat en línia</string>
<string name="SETTING_PRIVACY_TRACKING_OPTION2" translatable="true">predeterminat (recomanat)</string>
<string name="SETTING_PRIVACY_TRACKING_OPTION2_INFO" translatable="true">bloquejar la publicitat en línia i lusuari de la xarxa social Survelance. les pàgines es carregaran per defecte</string>
<string name="SETTING_PRIVACY_TRACKING_OPTION3" translatable="true">política estricta</string>
<string name="SETTING_PRIVACY_TRACKING_OPTION3_INFO" translatable="true">atureu tots els rastrejadors coneguts, les pàgines es carregaran més ràpidament, però és possible que algunes funcions no funcionin</string>
<string name="SETTING_PRIVACY_JAVASCRIPT" translatable="true">javascript</string>
<string name="SETTING_PRIVACY_JAVASCRIPT_INFO" translatable="true">desactiva la creació de scripts Java per a diversos atacs de scripts</string>
<string name="SETTING_ADVANCE_HEADER" translatable="true">Configuració del sistema. Configuració del sistema complexa</string>
<string name="SETTING_ADVANCE_RESTORE_TAB" translatable="true">restaura les pestanyes</string>
<string name="SETTING_ADVANCE_RESTORE_TAB_INFO" translatable="true">no es restauri després de sortir del navegador</string>
<string name="SETTING_ADVANCE_TITILE_THEME" translatable="true">tema de la barra d\'eines</string>
<string name="SETTING_ADVANCE_TITILE_THEME_INFO" translatable="true">defineix el tema de la barra d\'eines tal com es defineix al lloc web</string>
<string name="SETTING_ADVANCE_SHOW_IMAGES" translatable="true">mostrar imatges</string>
<string name="SETTING_ADVANCE_SHOW_IMAGES_INFO" translatable="true">carregueu sempre imatges del lloc web</string>
<string name="SETTING_ADVANCE_WEB_FONTS" translatable="true">mostra els tipus de lletra web</string>
<string name="SETTING_ADVANCE_WEB_FONTS_INFO" translatable="true">descarregueu fonts remotes en carregar una pàgina</string>
<string name="SETTING_ADVANCE_MEDIA" translatable="true">permetre la reproducció automàtica</string>
<string name="SETTING_ADVANCE_MEDIA_INFO" translatable="true">permet que els mitjans siniciïn automàticament</string>
<string name="SETTING_ADVANCE_DATA_SAVER" translatable="true">estalviador de dades</string>
<string name="SETTING_ADVANCE_TAB" translatable="true">fitxa</string>
<string name="SETTING_ADVANCE_TAB_INFO" translatable="true">canvieu el comportament de la pestanya després de reiniciar el programari</string>
<string name="SETTING_ADVANCE_MEDIA_SUB_HEADER" translatable="true">mitjans de comunicació</string>
<string name="SETTING_ADVANCE_DATA_SAVER_INFO" translatable="true">canviar personalitzar l\'estalvi de dades per defecte</string>
<string name="SETTING_ADVANCE_MEDIA_SUB_HEADER_INFO" translatable="true">canviar personalitzar el contingut predeterminat</string>
<string name="SETTING_ADVANCE_IMAGE_OPTION_1" translatable="true">mostrar sempre imatges</string>
<string name="SETTING_ADVANCE_IMAGE_OPTION_2" translatable="true">només mostreu imatges quan utilitzeu wifi</string>
<string name="SETTING_ADVANCE_IMAGE_OPTION_3" translatable="true">bloqueja totes les imatges</string>
<string name="SETTING_ADVANCE" translatable="true">Configuració avançada del sistema</string>
<string name="SETTING_ADVANCE_INFO" translatable="true">restaurar pestanyes, estalvi de dades, eines per a desenvolupadors</string>
<string name="SETTING_PROXY" translatable="true">onion condició de representació</string>
<string name="SETTING_PROXY_INFO" translatable="true">comproveu l\'estat de la xarxa onion</string>
<string name="SETTING_REPORT" translatable="true">lloc web d\'informes</string>
<string name="SETTING_REPORT_INFO" translatable="true">lloc web dinformes abusius</string>
<string name="SETTING_RATEUS" translatable="true">valora aquesta app</string>
<string name="SETTING_RATEUS_INFO" translatable="true">valora i comenta playstore</string>
<string name="SETTING_SHARE" translatable="true">comparteix aquesta aplicació</string>
<string name="SETTING_SHARE_INFO" translatable="true">Comparteix aquest programari amb els teus amics</string>
<string name="SETTING_GENERAL_HEADER" translatable="true">Configuració del sistema. personalitzar en general</string>
<string name="SETTING_GENERAL" translatable="true">Configuració del sistema per defecte</string>
<string name="SETTING_GENERAL_INFO" translatable="true">pàgina d\'inici, idioma</string>
<string name="SETTING_GENERAL_FULLSCREEN_BROWSING" translatable="true">navegació a pantalla completa</string>
<string name="SETTING_GENERAL_FULLSCREEN_BROWSING_INFO" translatable="true">amagueu la barra d\'eines del navegador quan desplaceu-vos cap avall per una pàgina</string>
<string name="SETTING_GENERAL_LANGUAGE" translatable="true">llenguatge</string>
<string name="SETTING_GENERAL_LANGUAGE_INFO" translatable="true">canvieu lidioma del vostre navegador</string>
<string name="SETTING_GENERAL_THEME" translatable="true">tema del programari</string>
<string name="SETTING_GENERAL_THEME_INFO" translatable="true">trieu un tema brillant i fosc</string>
<string name="SETTING_GENERAL_THEME_LIGHT" translatable="true">tema brillant</string>
<string name="SETTING_GENERAL_THEME_DARK" translatable="true">tema Fosc</string>
<string name="SETTING_GENERAL_INFO_OPTION" translatable="true">canvieu la navegació i l\'idioma de pantalla completa</string>
<string name="SETTING_GENERAL_THEME_DEFAULT" translatable="true">sistema per defecte</string>
<string name="SETTING_GENERAL_HOME" translatable="true">pàgina d\'inici</string>
<string name="SETTING_GENERAL_HOME_INFO" translatable="false">about:blank</string>
<string name="SETTING_GENERAL_OPEN_URL_IN_NEW_tAB" translatable="true">nova pestanya</string>
<string name="SETTING_GENERAL_OPEN_URL_IN_NEW_tAB_INFO" translatable="true">obre la pàgina d\'inici a la pestanya nova</string>
<string name="SETTING_CLEAR_CACHE_OPTION_1" translatable="true">elimineu totes les pestanyes</string>
<string name="SETTING_CLEAR_CACHE_OPTION_2" translatable="true">eliminar els enllaços web navegats</string>
<string name="SETTING_CLEAR_CACHE_OPTION_3" translatable="true">elimina els marcadors</string>
<string name="SETTING_CLEAR_CACHE_OPTION_4" translatable="true">eliminar la memòria cau de navegació</string>
<string name="SETTING_CLEAR_CACHE_OPTION_5" translatable="true">elimina els suggeriments</string>
<string name="SETTING_CLEAR_CACHE_OPTION_6" translatable="true">elimineu les dades del lloc</string>
<string name="SETTING_CLEAR_CACHE_OPTION_7" translatable="true">elimina les dades de la sessió</string>
<string name="SETTING_CLEAR_CACHE_OPTION_8" translatable="true">eliminar les cookies de navegació web</string>
<string name="SETTING_CLEAR_CACHE_OPTION_9" translatable="true">elimineu la personalització del navegador</string>
<string name="ALERT_UPDATE_BRIDGES" translatable="true">proporcioneu un Bridge que ja sabeu</string>
<string name="ALERT_UPDATE_BRIDGES_INFO" translatable="true">introduïu bridge informació d\'una font de confiança</string>
<string name="ALERT_ADD_BRIDGES_HINT" translatable="false">Bridge ...</string>
<string name="ALERT_REQUEST_BRIDGE" translatable="true">sol·licitud</string>
<string name="ALERT_SAVE_BRIDGE" translatable="true">D\'acord</string>
<string name="ALERT_CREATE_BOOKMARK" translatable="true">lloc web de marcadors</string>
<string name="ALERT_CREATE_BOOKMARK_INFO" translatable="true">afegiu aquesta pàgina als vostres marcadors</string>
<string name="ALERT_CLEAR_HISTORY" translatable="true">suprimiu els enllaços web i les dades navegats</string>
<string name="ALERT_CLEAR_BOOKMARK" translatable="true">neteja el marcador i les dades</string>
<string name="ALERT_CLEAR_HISTORY_INFO" translatable="true">en esborrar dades, seliminaran els enllaços web, les galetes i altres dades de navegació</string>
<string name="ALERT_CLEAR_BOOKMARK_INFO" translatable="true">suprimir dades eliminarà llocs web marcats</string>
<string name="ALERT_DISMISS" translatable="true">acomiadar</string>
<string name="ALERT_CLEAR" translatable="true">cancel · lar</string>
<string name="ALERT_ADD" translatable="true">D\'acord</string>
<string name="ALERT_TITLE_ADD" translatable="true">nou marcador</string>
<string name="ALERT_SECURE" translatable="false">https://</string>
<string name="ALERT_SECURE_INFO" translatable="true">la connexió és segura</string>
<string name="ALERT_SECURE_INFO_DETAIL" translatable="true">la vostra informació (per exemple, la contrasenya o els números de la targeta de crèdit) és privada quan senvia a aquest lloc</string>
<string name="ALERT_SECURE_INFO_SETTINGS" translatable="true">Configuració de la vigilància del sistema i de l\'usuari</string>
<string name="ALERT_REPORT" translatable="true">informe</string>
<string name="ALERT_REPORT_URL" translatable="true">lloc web d\'informes</string>
<string name="ALERT_REPORT_URL_INFO" translatable="true">si creieu que aquest URL és il·legal o inquietant, informeu-nos-el perquè puguem emprendre accions legals</string>
<string name="ALERT_REPORT_URL_SUCCESS" translatable="true">s\'ha informat correctament</string>
<string name="ALERT_REPORT_URL_SUCCESS_INFO" translatable="true">l\'URL s\'ha informat correctament. si es troba alguna cosa, es prendran mesures legals</string>
<string name="ALERT_RATEUS" translatable="true">puntua\'ns</string>
<string name="ALERT_RATEUS_INFO" translatable="true">digueu als altres què en penseu sobre aquesta aplicació</string>
<string name="ALERT_RATE" translatable="true">taxa</string>
<string name="ALERT_RATEUS_FAILURE" translatable="true">ens sap greu escoltar-ho!</string>
<string name="ALERT_RATEUS_FAILURE_INFO" translatable="true">si teniu dificultats mentre utilitzeu aquest programari, contacteu amb nosaltres per correu electrònic. intentarem resoldre el vostre problema al més aviat possible</string>
<string name="ALERT_MAIL" translatable="true">correu electrònic</string>
<string name="ALERT_BRIDGE_MAIL" translatable="true">sol·licita Bridge nou</string>
<string name="ALERT_BRIDGE_MAIL_INFO" translatable="true">seleccioneu el correu per sol·licitar una adreça bridge. un cop rebut, copieu-lo i enganxeu-lo al quadre anterior i inicieu el programari.</string>
<string name="ALERT_LANGUAGE_SUPPORT_FAILURE" translatable="true">no s\'admet l\'idioma</string>
<string name="ALERT_LANGUAGE_SUPPORT_FAILURE_INFO" translatable="true">aquest programari no admet l\'idioma del sistema. estem treballant per incloure-ho aviat</string>
<string name="ALERT_ORBOT_INIT" translatable="true">inicialitzant Orbot</string>
<string name="ALERT_NOT_SUPPORTED" translatable="true">l\'acció no és compatible</string>
<string name="ALERT_NOT_SUPPORTED_INFO" translatable="true">no s\'ha trobat cap programari que gestioni l\'ordre següent</string>
<string name="ALERT_WELCOME_MESSAGE" translatable="true">benvingut, web oculta Gateway</string>
<string name="ALERT_WELCOME_MESSAGE_INFO" translatable="true">aquest programari us proporciona una plataforma per cercar i obrir URL web ocults. aquí hi ha alguns suggeriments \n</string>
<string name="ALERT_WELCOME_MESSAGE_BT_1" translatable="true">mercat web ocult en línia</string>
<string name="ALERT_WELCOME_MESSAGE_BT_2" translatable="true">documents i llibres filtrats</string>
<string name="ALERT_WELCOME_MESSAGE_BT_3" translatable="true">notícies i articles de la web fosca</string>
<string name="ALERT_WELCOME_MESSAGE_BT_4" translatable="true">programes secrets i eines de pirateig</string>
<string name="ALERT_WELCOME_MESSAGE_BT_5" translatable="true">no es mostri de nou</string>
<string name="ALERT_WELCOME_MESSAGE_BT_6" translatable="true">finances i diners</string>
<string name="ALERT_WELCOME_MESSAGE_BT_7" translatable="true">societats socials</string>
<string name="ALERT_LOCAL_UPGRADE" translatable="true">manual</string>
<string name="ALERT_PLAYSTORE_UPGRADE" translatable="true">Play Store</string>
<string name="ALERT_LONG_URL" translatable="true">notificació denllaç web</string>
<string name="ALERT_LONG_URL_OPTION_1" translatable="true">obriu en una pestanya nova</string>
<string name="ALERT_LONG_URL_OPTION_2" translatable="true">obriu a la pestanya actual</string>
<string name="ALERT_LONG_URL_OPTION_3" translatable="true">copiar al portapapers</string>
<string name="ALERT_LONG_FILE" translatable="true">notificació darxiu</string>
<string name="ALERT_DOWNLOAD" translatable="true">notificació de descàrrega</string>
<string name="ALERT_DOWNLOAD_OPTION_1" translatable="true">obre l\'URL a la pestanya nova</string>
<string name="ALERT_DOWNLOAD_OPTION_2" translatable="true">obre l\'URL a la pestanya actual</string>
<string name="ALERT_DOWNLOAD_OPTION_3" translatable="true">copia lURL al porta-retalls</string>
<string name="ALERT_DOWNLOAD_OPTION_4" translatable="true">obre la imatge a la pestanya nova</string>
<string name="ALERT_DOWNLOAD_OPTION_5" translatable="true">obre la imatge a la pestanya actual</string>
<string name="ALERT_DOWNLOAD_OPTION_6" translatable="true">copia la imatge al porta-retalls</string>
<string name="ALERT_DOWNLOAD_OPTION_7" translatable="true">descarregar fitxer d\'imatges</string>
<string name="ALERT_DOWNLOAD_NOTIFICATION" translatable="true">notificació de descàrrega</string>
<string name="ALERT_LONG_URL_TITLE" translatable="true">notificació denllaç web</string>
<string name="ALERT_LONG_URL_MESSAGE" translatable="true"/>
<string name="ALERT_NOT_SUPPORTED_MESSAGE" translatable="true">no s\'ha trobat cap programari per gestionar el correu electrònic</string>
<string name="ALERT_DOWNLOAD_MESSAGE" translatable="true">Descarrega l\'arxiu ,</string>
<string name="ALERT_DATA_CLEARED" translatable="true">dades esborrades, cal reiniciar-les</string>
<string name="ALERT_DATA_CLEARED_INFO" translatable="true">les dades privades s\'han esborrat correctament. alguns paràmetres del sistema per defecte requeriran que aquest programari es reiniciï. ara podeu continuar navegant amb seguretat</string>
<string name="ALERT_UNDO_TAB_REMOVE_INFO" translatable="true">pestanya tancada</string>
<string name="ALERT_UNDO_TAB_REMOVE_BUTTON" translatable="true">desfer</string>
<string name="BRIDGE_BASIC_SETTING" translatable="true">personalitzar la seguretat</string>
<string name="BRIDGE_SETTING" translatable="true">Bridge personalitzar</string>
<string name="BRIDGE_AUTO" translatable="true">crear automàticament</string>
<string name="BRIDGE_AUTO_INFO" translatable="true">configurar automàticament bridge personalitzar</string>
<string name="BRIDGE_MANUAL" translatable="true">proporcioneu un bridge que coneixeu</string>
<string name="BRIDGE_PORT_HINT" translatable="true">enganxa el bridge personalitzat</string>
<string name="BRIDGE_HEADER" translatable="true">personalització de proxy, Bridge</string>
<string name="BRIDGE_DESC" translatable="true">Bridges són Tor relés no cotitzats que fan que sigui més difícil bloquejar les connexions a la xarxa Tor. a causa de com alguns països intenten bloquejar Tor, alguns bridges funcionen en alguns països, però no en d\'altres</string>
<string name="BRIDGE_TITLE" translatable="true">seleccioneu bridge per defecte</string>
<string name="BRIDGE_REQUEST" translatable="true">sol·licitud</string>
<string name="BRIDGE_OBFS4" translatable="true">obfs4 (recomanat)</string>
<string name="BRIDGE_MEEK" translatable="false">meek-azure (china)</string>
<string name="ORBOT_LOG" translatable="true">registres de proxy</string>
<string name="ORBOT_LOG_HEADER" translatable="true">Informació del registre del sistema</string>
<string name="ORBOT_LOG_INFO" translatable="true">si teniu problemes de connectivitat mentre comenceu el Genesis, copieu el codi següent i cerqueu el problema en línia o envieu-nos-el perquè puguem intentar ajudar-vos</string>
<string name="HOME_MENU__ORBOT_LOGS" translatable="true">Orbot registres</string>
<string name="HOME_MENU__NEW_TABS" translatable="true">noves pestanyes</string>
<string name="HOME_MENU_CLOSE_TABS" translatable="true">tanca la pestanya</string>
<string name="HOME_MENU_OPEN_RECENT_TABS" translatable="true">obriu pestanyes recents</string>
<string name="HOME_MENU_LANGUAGE" translatable="true">llenguatge</string>
<string name="HOME_MENU_DOWNLOAD" translatable="true">descàrregues</string>
<string name="HOME_MENU_HISTORY" translatable="true">enllaços web navegats</string>
<string name="HOME_MENU_SETTING" translatable="true">Configuració del sistema</string>
<string name="HOME_MENU_DESKTOP" translatable="true">lloc d\'escriptori</string>
<string name="HOME_MENU_BOOKMARK" translatable="true">deseu aquesta pàgina</string>
<string name="HOME_MENU_OPEN_BOOKMARK" translatable="true">marcadors</string>
<string name="HOME_MENU_REPORT" translatable="true">lloc web d\'informes</string>
<string name="HOME_MENU_RATE" translatable="true">valora aquesta app</string>
<string name="HOME_MENU_FIND" translatable="true">trobar a la pàgina</string>
<string name="HOME_MENU_QUIT" translatable="true">sortir</string>
<string name="HOME_MENU_SHARE" translatable="true">Compartir</string>
<string name="TAB_MENU_OPEN_TAB" translatable="true">noves pestanyes</string>
<string name="TAB_MENU_CLOSE_TAB" translatable="true">tanqueu totes les pestanyes</string>
<string name="TAB_MENU_SETTINGS" translatable="true">Configuració del sistema</string>
<string name="TAB_LIST_SELECT" translatable="true">seleccioneu les pestanyes</string>
<string name="SHARED_RECYCLER_VIEW_OPEN" translatable="true">obriu pestanyes</string>
<string name="SHARED_RECYCLER_VIEW_COPY" translatable="true">còpia</string>
<string name="SHARED_RECYCLER_VIEW_SHARE" translatable="true">Compartir</string>
<string name="SHARED_RECYCLER_VIEW_CLEAR_LONG_PRESSES" translatable="true">selecció clara</string>
<string name="SHARED_RECYCLER_VIEW_OPEN_CURRENT_TAB" translatable="true">obriu a la pestanya actual</string>
<string name="SHARED_RECYCLER_VIEW_OPEN_NEW_TAB" translatable="true">obriu en una pestanya nova</string>
<string name="SHARED_RECYCLER_VIEW_DELETE" translatable="true">esborrar</string>
<string name="HISTORY_TITLE" translatable="true">enllaços web navegats</string>
<string name="HISTORY_CLEAR" translatable="true">elimina això</string>
<string name="HISTORY_SEARCH_HINT" translatable="true">cerca ...</string>
<string name="BOOKMARK_TITLE" translatable="true">marcador</string>
<string name="BOOKMARK_CLEAR" translatable="true">elimina això</string>
<string name="BOOKMARK_SEARCH_HINT" translatable="true">cerca ...</string>
<string name="HELP_RETRY" translatable="true">torneu-ho a provar</string>
<string name="HELP_RETRY_INFO" translatable="true">opps! error de connexió de xarxa. xarxa no connectada</string>
<string name="HELP_TITLE" translatable="true">ajuda i suport</string>
<string name="LANGUAGE_TITLE" translatable="true">llenguatge</string>
<string name="LANGUAGE_LANGUAGE_MESSAGE_TITLE" translatable="true">canviar d\'idioma</string>
<string name="LANGUAGE_LANGUAGE_MESSAGE_DESC" translatable="true">només funcionem en els idiomes següents. nafegiríem més aviat</string>
<string name="LANGUAGE_LANGUAGE_MESSAGE_BT_DEFAULT" translatable="true">anglès (estats units)</string>
<string name="LANGUAGE_LANGUAGE_MESSAGE_BT_1" translatable="true">alemany (alemanya)</string>
<string name="LANGUAGE_LANGUAGE_MESSAGE_BT_2" translatable="true">italià (itàlia)</string>
<string name="LANGUAGE_LANGUAGE_MESSAGE_BT_3" translatable="true">portuguès (brasil)</string>
<string name="LANGUAGE_LANGUAGE_MESSAGE_BT_4" translatable="true">rus (russia)</string>
<string name="LANGUAGE_LANGUAGE_MESSAGE_BT_5" translatable="true">ucraïnès (ucraïna)</string>
<string name="LANGUAGE_LANGUAGE_MESSAGE_BT_6" translatable="true">xinès simplificat (xina continental)</string>
<string name="ORBOT_SETTING_WARNING" translatable="true">Warning avís</string>
<string name="ORBOT_SETTING_CUSTOM_BRIDGE" translatable="true">personalitza Bridges</string>
<string name="ORBOT_SETTING_BRIDGE_ENABLE" translatable="true">activa Bridges</string>
<string name="ORBOT_SETTING_ENABLE_VPN" translatable="true">activeu VPN serveis</string>
<string name="ORBOT_SETTING_GATEWAY_INFO" translatable="true">habilitar Bridge Gateway</string>
<string name="ORBOT_SETTING_GATEWAY_BUTTON" translatable="true">habilitar Gateway</string>
<string name="PROXY_STATUS_HEADER" translatable="true">condició del representant</string>
<string name="ORBOT_PROXY_STATUS_INFO" translatable="true">estat actual del proxy orbot</string>
<string name="PROXY_SUB_HEADER1" translatable="true">Orbot condició del representant</string>
<string name="PROXY_SUB_HEADER2" translatable="true">onion</string>
<string name="PROXY_VPN_STATUS" translatable="true">VPN condició de connectivitat</string>
<string name="PROXY_BRIDGE_STATUS" translatable="true">Bridge condició de representant</string>
<string name="PROXY_SUB_HEADER3" translatable="true">info, canvieu la configuració del sistema</string>
<string name="PROXY_CONNECTIVITY_SETTING_INFO" translatable="true">Podeu canviar el servidor intermediari reiniciant el programari i anar al gestor de servidor intermediari. es pot obrir fent clic a una icona d\'engranatge a la part inferior</string>
<string name="ORBOT_HEADER" translatable="true">personalitzar el servidor intermediari</string>
<string name="ORBOT_DESCRIPTION" translatable="true">us connectem a la xarxa Tor gestionada per milers de voluntaris a tot el món. Aquestes opcions us poden ajudar?</string>
<string name="ORBOT_TITLE" translatable="true">Internet està censurat aquí (ignora el tallafoc)</string>
<string name="ORBOT_OPTION_DESCRIPTION" translatable="true">ignora el tallafoc</string>
<string name="ORBOT_BRIDGE_WARNING" translatable="true">Bridges fa que Internet funcioni molt lent. utilitzeu-los només si Internet està censurat al vostre país o si la xarxa Tor està bloquejada</string>
<string name="NOTIFICATION_DEFAULT_LABEL" translatable="true">default.jpg</string>
<string name="NOTIFICATION_OPEN_TEXT" translatable="true">obriu això</string>
<string name="HOME_TAB_TEXT" translatable="true">1</string>
<string name="HOME_CONNECT" translatable="false">connect</string>
<string name="HOME_LOADING" translatable="false">Genesis is paused at the moment</string>
<string name="HOME_LOADING_STATIC" translatable="false">~ Genesis on standby at the moment</string>
<string name="HOME_TAB_EMPTY" translatable="true">les pestanyes obertes es mostraran aquí</string>
<string name="LANDING_BRIDGES_INFO" translatable="true">"de vegades necessiteu un Bridge per arribar a Tor"</string>
<string name="LANDING_MORE" translatable="true">"Explica\'m més"</string>
<string name="LANDING_VPN_SETUP" translatable="true">"podeu activar qualsevol programari per Tor mitjançant Onion"</string>
<string name="LANDING_VPN_SETUP_SUB_INFO" translatable="true">"això no us farà anònim, però us ajudarà a evitar els tallafocs"</string>
<string name="LANDING_VPN_CHOOSE_APPS" translatable="true">"tria aplicacions"</string>
<string name="LANDING_HELLO" translatable="true">"Hola"</string>
<string name="LANDING_WELCOME" translatable="true">"Benvingut al Tor al mòbil".</string>
<string name="LANDING_BROWSE_INFO" translatable="true">"navega per Internet com esperes que hauries de fer."</string>
<string name="LANDING_NO_TRACKING" translatable="true">"sense protecció de vigilància de l\'usuari. sense censura."</string>
<string name="ERROR_M1" translatable="true">aquest lloc no és accessible</string>
<string name="ERROR_M2" translatable="true">s\'ha produït un error en connectar amb el lloc web</string>
<string name="ERROR_M3" translatable="true">la pàgina que intenteu visualitzar no es pot mostrar perquè no s\'ha pogut verificar l\'autenticitat de les dades rebudes</string>
<string name="ERROR_M4" translatable="true">actualment la pàgina no funciona per algun motiu</string>
<string name="ERROR_M5" translatable="true">poseu-vos en contacte amb els propietaris del lloc web per informar-los daquest problema.</string>
<string name="ERROR_M6" translatable="true">recarregar</string>
<string name="PREF_LANGUAGE" translatable="true">idioma_pref</string>
<string name="invalid_package_signature" translatable="true">Signatura del paquet no vàlida</string>
<string name="autofill_sign_in_prompt" translatable="true">feu clic per iniciar la sessió.</string>
<string name="autofill_manual_prompt" translatable="true">feu clic per seleccionar manualment les dades.</string>
<string name="security_exception" translatable="true">Excepció de seguretat del domini web.</string>
<string name="dal_exception" translatable="true">Error de verificació DAL.</string>
<item name="LaguageID" type="id"/>
<item name="LaguageRegion" type="id"/>
<string-array name="ARRAY_FONTS" translatable="true">
<item>55 per cent</item>
<item>70 per cent</item>
<item>85 per cent</item>
<item>100 per cent</item>
<item>115 per cent</item>
<item>130 per cent</item>
<item>145 per cent</item>
</string-array>
<string-array name="ARRAY_DEFAULT_BOOLEAN" translatable="true">
<item>Activat</item>
<item>Desactivat</item>
</string-array>
<string-array name="ARRAY_NOTIFICATION" translatable="true">
<item>Activa-ho tot</item>
<item>Inhabilita tot</item>
<item>Sense amplada de banda</item>
</string-array>
<string-array name="ARRAY_COOKIES" translatable="true">
<item>Permet-ho tot</item>
<item>Permet confiar</item>
<item>No permetis cap</item>
<item>Permet la visita</item>
<item>Permet el no rastrejador</item>
</string-array>
<!-- Generated by Automatic String Resource Translation -->
<!-- https://asrt.gluege.boerde.de -->
</resources>

View File

@ -1,428 +0,0 @@
<resources>
<!-- Generated by Automatic String Resource Translation -->
<!-- https://asrt.gluege.boerde.de -->
<string name="app_name" translatable="false">Genesis</string>
<string name="GENERAL_SEARCH_HINT" translatable="true">buscar algo o escribir un enlace web</string>
<string name="GENERAL_FIND_HINT" translatable="true">encontrar en la página</string>
<string name="GENERAL_SEARCH_ENGINE" translatable="true">buscador</string>
<string name="GENERAL_HOME_URL" translatable="false">https://genesis.onion</string>
<string name="GENERAL_ERROR_TITLE" translatable="true">opps! algo salió mal</string>
<string name="GENERAL_TODO" translatable="true">todo</string>
<string name="GENERAL_PROJECT_NAME" translatable="false">Genesis search engine</string>
<string name="GENERAL_LOADING" translatable="true">libertad digital</string>
<string name="GENERAL_RELOAD" translatable="true">recargar</string>
<string name="GENERAL_INTERNET_ERROR_MESSAGE" translatable="true">se enfrenta a uno de los siguientes problemas. Es posible que la página web o el sitio web no funcionen. su conexión a Internet puede ser deficiente. es posible que esté utilizando un proxy. el sitio web puede estar bloqueado por el firewall</string>
<string name="GENERAL_FILE_PROVIDER_AUTHORITY" translatable="false">com.darkweb.genesissearchengine.fileprovider</string>
<string name="GENERAL_DEFAULT_HINT_SUGGESTION" translatable="true">BBC | Israel ataca de nuevo</string>
<string name="SETTING_DEFAULT_LANGUAGE" translatable="false">ru</string>
<string name="SETTING_BASIC_SETTING" translatable="true">Configuración del sistema</string>
<string name="SETTING_DEFAULT_BROWSER" translatable="true">hacer Genesis su navegador predeterminado</string>
<string name="SETTING_HEADER" translatable="true">Configuración del sistema</string>
<string name="SETTING_SEARCH_ENGINE" translatable="true">buscador</string>
<string name="SETTING_JAVASCRIPT" translatable="true">javascript</string>
<string name="SETTING_CLEAR_HISTORY" translatable="true">eliminar enlaces web navegados</string>
<string name="SETTING_FONT_TITLE" translatable="true">fuente personalizar</string>
<string name="SETTING_ADJUST_FONT" translatable="true">Constomización de fuentes del sistema</string>
<string name="SETTING_MANUAL_FONT" translatable="true">cambiar la fuente automáticamente</string>
<string name="SETTING_COOKIE_TEXT_INFO" translatable="true">Configuración de cookies</string>
<string name="SETTING_COOKIE" translatable="true">galletas</string>
<string name="SETTING_NOTIFICATION_HEADER" translatable="true">Configuración del sistema . Notificación</string>
<string name="SETTING_NOTIFICATION_HEADER_1" translatable="true">notificaciones</string>
<string name="SETTING_NOTIFICATION_HEADER_1_INFO" translatable="true">cambiar las preferencias de notificación</string>
<string name="SETTING_NOTIFICATION_DISABLE_STATUS_NOTIFICATION" translatable="true">estado de la red y notificaciones</string>
<string name="SETTING_NOTIFICATION_DISABLE_STATUS_NOTIFICATION_INFO" translatable="true">notificaciones locales</string>
<string name="SETTING_NOTIFICATION_OPEN_NOTIFICATION_MANAGER" translatable="true">personalizar notificación de software</string>
<string name="SETTING_NOTIFICATION_OPEN_NOTIFICATION_MANAGER_INFO" translatable="true">notificaciones del sistema</string>
<string name="SETTING_ORBOT_LOG_HEADER" translatable="true">cambiar la forma en que aparece el registro del sistema</string>
<string name="SETTING_ORBOT_LIST_VIEW" translatable="true">muestre el registro usando la vista de lista moderna</string>
<string name="SETTING_ORBOT_LIST_VIEW_INFO" translatable="true">toogle entre vista de lista clásica y moderna</string>
<string name="SETTING_SEARCH" translatable="true">gestionar motor de búsqueda</string>
<string name="SETTING_SEARCH_INFO" translatable="true">agregar, establecer predeterminado. mostrar sugerencias</string>
<string name="SETTING_NOTIFICATION" translatable="true">administrar notificaciones</string>
<string name="SETTING_NOTIFICATION_INFO" translatable="true">nuevas características, estado de la red</string>
<string name="SETTING_SEARCH_HEADER" translatable="true">Personalice el software. Buscador</string>
<string name="SETTING_SEARCH_HEADER_1" translatable="true">motores de búsqueda compatibles</string>
<string name="SETTING_SEARCH_HEADER_1_INFO" translatable="true">elija motor de búsqueda predeterminado</string>
<string name="SETTING_SEARCH_HEADER_2" translatable="true">Personalice el software. Buscador</string>
<string name="SETTING_SEARCH_HEADER_2_INFO" translatable="true">cambiar cómo aparecen las búsquedas web</string>
<string name="SETTING_SEARCH_DEFAULT" translatable="false">default</string>
<string name="SETTING_SEARCH_GENESIS" translatable="false">Genesis</string>
<string name="SETTING_SEARCH_DUCK" translatable="false">DuckDuckGo</string>
<string name="SETTING_SEARCH_GOOGLE" translatable="false">Google</string>
<string name="SETTING_SEARCH_AMAZON" translatable="false">Bing</string>
<string name="SETTING_SEARCH_BING" translatable="false">Wikipedia</string>
<string name="SETTING_SEARCH_HISTORY" translatable="true">mostrar enlaces web navegados</string>
<string name="SETTING_SEARCH_SUGGESTIONS" translatable="true">mostrar sugerencias durante la búsqueda</string>
<string name="SETTING_SEARCH_HISTORY_INFO" translatable="true">Las sugerencias de los enlaces web navegados aparecen cuando escribe en la barra de búsqueda.</string>
<string name="SETTING_SEARCH_SUGGESTION_INFO" translatable="true">las sugerencias enfocadas aparecen cuando escribe en la barra de búsqueda</string>
<string name="SETTING_ACCESSIBILITY" translatable="true">accesibilidad</string>
<string name="SETTING_ACCESSIBILITY_INFO" translatable="true">tamaño de texto, zoom, entrada mediante voz</string>
<string name="SETTING_ACCESSIBILITY_HEADER" translatable="true">personalizar | accesibilidad</string>
<string name="SETTING_CLEAR" translatable="true">borrar datos privados</string>
<string name="SETTING_CLEAR_INFO" translatable="true">pestañas, enlaces web navegados, marcadores, cookies, caché</string>
<string name="SETTING_CLEAR_HEADER" translatable="true">Cambiar la configuración del sistema. Borrar datos del sistema</string>
<string name="SETTING_CLEAR_BUTTON" translatable="true">borrar datos</string>
<string name="SETTING_CLEAR_OPTION_1" translatable="true">eliminar todas las pestañas</string>
<string name="SETTING_CLEAR_OPTION_2" translatable="true">eliminar enlaces web navegados</string>
<string name="SETTING_CLEAR_OPTION_3" translatable="true">eliminar marcadores</string>
<string name="SETTING_CLEAR_OPTION_4" translatable="true">eliminar caché</string>
<string name="SETTING_CLEAR_OPTION_5" translatable="true">eliminar sugerencias</string>
<string name="SETTING_CLEAR_OPTION_6" translatable="true">borrar datos</string>
<string name="SETTING_CLEAR_OPTION_7" translatable="true">eliminar sesión</string>
<string name="SETTING_CLEAR_OPTION_8" translatable="true">eliminar las cookies</string>
<string name="SETTING_CLEAR_OPTION_9" translatable="true">eliminar personalizar</string>
<string name="SETTING_ACCESSIBILITY_FONT" translatable="true">escala de fuente</string>
<string name="SETTING_ACCESSIBILITY_FONT_INFO" translatable="true">escalar el contenido web de acuerdo con el tamaño de fuente del sistema</string>
<string name="SETTING_ACCESSIBILITY_ZOOM" translatable="true">activar el zoom</string>
<string name="SETTING_ACCESSIBILITY_ZOOM_INFO" translatable="true">activar y forzar el zoom para todas las páginas web</string>
<string name="SETTING_ACCESSIBILITY_VOICE" translatable="true">entrada usando voz</string>
<string name="SETTING_ACCESSIBILITY_VOICE_INFO" translatable="true">permitir el dictado de voz en la barra de URL</string>
<string name="SETTING_ACCESSIBILITY_FONT_CUSTOM" translatable="true">seleccionar escala de fuente personalizada</string>
<string name="SETTING_ACCESSIBILITY_FONT_CUSTOM_SAMPLE" translatable="true">arrastre el control deslizante hasta que pueda leer esto cómodamente. el texto debe verse al menos así de grande después de tocar dos veces un párrafo</string>
<string name="SETTING_ACCESSIBILITY_200_PERCENT" translatable="true">200%</string>
<string name="SETTING_INTERACTION" translatable="true">interacciones</string>
<string name="SETTING_INTERACTION_INFO" translatable="true">cambiar la forma de interactuar con el contenido del sitio web</string>
<string name="SETTING_PRIVACY" translatable="true">Usuario activado</string>
<string name="SETTING_PRIVACY_INFO" translatable="true">vigilancia del usuario, inicios de sesión, opciones de datos</string>
<string name="SETTING_TRACKING" translatable="true">Protección de vigilancia del usuario</string>
<string name="SETTING_TRACKING_INFO" translatable="true">adblock, rastreadores, huellas digitales</string>
<string name="SETTING_PRIVACY_HEADER" translatable="true">Configuración del sistema . intimidad</string>
<string name="SETTING_TRACKING_HEADER" translatable="true">Configuración del sistema . protección de vigilancia del usuario</string>
<string name="SETTING_TRACKING_SUB_HEADER" translatable="true">proteger su identidad en línea</string>
<string name="SETTING_TRACKING_SUB_HEADER_INFO" translatable="true">mantenga su identidad privada. podemos protegerlo de varios rastreadores que lo siguen en línea. esta configuración del sistema también se puede utilizar para bloquear anuncios</string>
<string name="SETTING_PRIVACY_DONOT_TRACK" translatable="true">sálvese de la protección de vigilancia del usuario</string>
<string name="SETTING_PRIVACY_DONOT_TRACK_INFO" translatable="true">Genesis le dirá a los sitios que no me rastreen</string>
<string name="SETTING_PRIVACY_DONOT_TRACK_INFO_SECURITY" translatable="true">dile al sitio web que no me rastree</string>
<string name="SETTING_PRIVACY_TRACKING_PROTECTION" translatable="true">Protección de vigilancia del usuario</string>
<string name="SETTING_PRIVACY_TRACKING_PROTECTION_INFO" translatable="true">habilitar la protección de vigilancia del usuario proporcionada por Genesis</string>
<string name="SETTING_PRIVACY_COOKIES" translatable="true">cookies del sitio web</string>
<string name="SETTING_PRIVACY_COOKIES_INFO" translatable="true">seleccione las preferencias de cookies del sitio web de acuerdo con sus necesidades de seguridad</string>
<string name="SETTING_PRIVACY_CLEAR_PRIVATE_DATA" translatable="true">borrar datos privados al salir</string>
<string name="SETTING_PRIVACY_CLEAR_PRIVATE_DATA_INFO" translatable="true">borrar datos automáticamente una vez que se cierra el software</string>
<string name="SETTING_PRIVACY_CLEAR_PRIVATE_HEADER" translatable="true">navegación privada</string>
<string name="SETTING_PRIVACY_CLEAR_PRIVATE_HEADER_INFO" translatable="true">mantenga su identidad segura y use las opciones a continuación</string>
<string name="SETTING_PRIVACY_COOKIES_OPTION1" translatable="true">activado</string>
<string name="SETTING_PRIVACY_COOKIES_OPTION2" translatable="true">habilitado, excluidas las cookies de seguimiento del sitio web</string>
<string name="SETTING_PRIVACY_COOKIES_OPTION3" translatable="true">habilitado, excluyendo a terceros</string>
<string name="SETTING_PRIVACY_COOKIES_OPTION4" translatable="true">discapacitado</string>
<string name="SETTING_PRIVACY_TRACKING_OPTION1" translatable="true">deshabilitar la protección</string>
<string name="SETTING_PRIVACY_TRACKING_OPTION1_INFO" translatable="true">Permitir protección de vigilancia de identidad. esto podría provocar el robo de su identidad en línea</string>
<string name="SETTING_PRIVACY_TRACKING_OPTION2" translatable="true">predeterminado (recomendado)</string>
<string name="SETTING_PRIVACY_TRACKING_OPTION2_INFO" translatable="true">bloquear la publicidad en línea y el usuario de la web social Survelance. las páginas se cargarán por defecto</string>
<string name="SETTING_PRIVACY_TRACKING_OPTION3" translatable="true">política estricta</string>
<string name="SETTING_PRIVACY_TRACKING_OPTION3_INFO" translatable="true">detener todos los rastreadores conocidos, las páginas se cargarán más rápido, pero es posible que algunas funciones no funcionen</string>
<string name="SETTING_PRIVACY_JAVASCRIPT" translatable="true">javascript</string>
<string name="SETTING_PRIVACY_JAVASCRIPT_INFO" translatable="true">deshabilitar las secuencias de comandos de Java para varios ataques de secuencias de comandos</string>
<string name="SETTING_ADVANCE_HEADER" translatable="true">Configuración del sistema . Configuración compleja del sistema</string>
<string name="SETTING_ADVANCE_RESTORE_TAB" translatable="true">restaurar pestañas</string>
<string name="SETTING_ADVANCE_RESTORE_TAB_INFO" translatable="true">no restaurar después de salir del navegador</string>
<string name="SETTING_ADVANCE_TITILE_THEME" translatable="true">tema de la barra de herramientas</string>
<string name="SETTING_ADVANCE_TITILE_THEME_INFO" translatable="true">establecer el tema de la barra de herramientas como se define en el sitio web</string>
<string name="SETTING_ADVANCE_SHOW_IMAGES" translatable="true">mostrar imagenes</string>
<string name="SETTING_ADVANCE_SHOW_IMAGES_INFO" translatable="true">cargar siempre imágenes del sitio web</string>
<string name="SETTING_ADVANCE_WEB_FONTS" translatable="true">mostrar fuentes web</string>
<string name="SETTING_ADVANCE_WEB_FONTS_INFO" translatable="true">descargar fuentes remotas al cargar una página</string>
<string name="SETTING_ADVANCE_MEDIA" translatable="true">permitir reproducción automática</string>
<string name="SETTING_ADVANCE_MEDIA_INFO" translatable="true">permitir que los medios se inicien automáticamente</string>
<string name="SETTING_ADVANCE_DATA_SAVER" translatable="true">ahorrador de datos</string>
<string name="SETTING_ADVANCE_TAB" translatable="true">pestaña</string>
<string name="SETTING_ADVANCE_TAB_INFO" translatable="true">cambiar la forma en que se comporta la pestaña después de reiniciar el software</string>
<string name="SETTING_ADVANCE_MEDIA_SUB_HEADER" translatable="true">media</string>
<string name="SETTING_ADVANCE_DATA_SAVER_INFO" translatable="true">cambiar el ahorro de datos predeterminado personalizar</string>
<string name="SETTING_ADVANCE_MEDIA_SUB_HEADER_INFO" translatable="true">cambiar medios predeterminados personalizar</string>
<string name="SETTING_ADVANCE_IMAGE_OPTION_1" translatable="true">mostrar siempre imágenes</string>
<string name="SETTING_ADVANCE_IMAGE_OPTION_2" translatable="true">solo mostrar imágenes cuando se usa wifi</string>
<string name="SETTING_ADVANCE_IMAGE_OPTION_3" translatable="true">bloquear todas las imágenes</string>
<string name="SETTING_ADVANCE" translatable="true">Configuración avanzada del sistema</string>
<string name="SETTING_ADVANCE_INFO" translatable="true">restaurar pestañas, ahorro de datos, herramientas de desarrollo</string>
<string name="SETTING_PROXY" translatable="true">onion condición de apoderado</string>
<string name="SETTING_PROXY_INFO" translatable="true">comprobar el estado de la red onion</string>
<string name="SETTING_REPORT" translatable="true">informe del sitio web</string>
<string name="SETTING_REPORT_INFO" translatable="true">denunciar sitio web abusivo</string>
<string name="SETTING_RATEUS" translatable="true">califica esta aplicación</string>
<string name="SETTING_RATEUS_INFO" translatable="true">calificar y comentar en la tienda de juegos</string>
<string name="SETTING_SHARE" translatable="true">Comparte esta aplicación</string>
<string name="SETTING_SHARE_INFO" translatable="true">comparte este software con tus amigos</string>
<string name="SETTING_GENERAL_HEADER" translatable="true">Configuración del sistema . personalización general</string>
<string name="SETTING_GENERAL" translatable="true">Configuración predeterminada del sistema</string>
<string name="SETTING_GENERAL_INFO" translatable="true">página de inicio, idioma</string>
<string name="SETTING_GENERAL_FULLSCREEN_BROWSING" translatable="true">navegación a pantalla completa</string>
<string name="SETTING_GENERAL_FULLSCREEN_BROWSING_INFO" translatable="true">ocultar la barra de herramientas del navegador al desplazarse hacia abajo en una página</string>
<string name="SETTING_GENERAL_LANGUAGE" translatable="true">idioma</string>
<string name="SETTING_GENERAL_LANGUAGE_INFO" translatable="true">cambia el idioma de tu navegador</string>
<string name="SETTING_GENERAL_THEME" translatable="true">tema de software</string>
<string name="SETTING_GENERAL_THEME_INFO" translatable="true">elige tema brillante y oscuro</string>
<string name="SETTING_GENERAL_THEME_LIGHT" translatable="true">tema brillante</string>
<string name="SETTING_GENERAL_THEME_DARK" translatable="true">tema oscuro</string>
<string name="SETTING_GENERAL_INFO_OPTION" translatable="true">cambiar la navegación y el idioma en pantalla completa</string>
<string name="SETTING_GENERAL_THEME_DEFAULT" translatable="true">sistema por defecto</string>
<string name="SETTING_GENERAL_HOME" translatable="true">página principal</string>
<string name="SETTING_GENERAL_HOME_INFO" translatable="false">about:blank</string>
<string name="SETTING_GENERAL_OPEN_URL_IN_NEW_tAB" translatable="true">nueva pestaña</string>
<string name="SETTING_GENERAL_OPEN_URL_IN_NEW_tAB_INFO" translatable="true">abrir la página de inicio en una nueva pestaña</string>
<string name="SETTING_CLEAR_CACHE_OPTION_1" translatable="true">eliminar todas las pestañas</string>
<string name="SETTING_CLEAR_CACHE_OPTION_2" translatable="true">eliminar enlaces web navegados</string>
<string name="SETTING_CLEAR_CACHE_OPTION_3" translatable="true">eliminar marcadores</string>
<string name="SETTING_CLEAR_CACHE_OPTION_4" translatable="true">eliminar caché de navegación</string>
<string name="SETTING_CLEAR_CACHE_OPTION_5" translatable="true">eliminar sugerencias</string>
<string name="SETTING_CLEAR_CACHE_OPTION_6" translatable="true">eliminar datos del sitio</string>
<string name="SETTING_CLEAR_CACHE_OPTION_7" translatable="true">eliminar datos de la sesión</string>
<string name="SETTING_CLEAR_CACHE_OPTION_8" translatable="true">eliminar las cookies de navegación web</string>
<string name="SETTING_CLEAR_CACHE_OPTION_9" translatable="true">eliminar la personalización del navegador</string>
<string name="ALERT_UPDATE_BRIDGES" translatable="true">proporcionar un Bridge que conoces</string>
<string name="ALERT_UPDATE_BRIDGES_INFO" translatable="true">ingrese bridge información de una fuente confiable</string>
<string name="ALERT_ADD_BRIDGES_HINT" translatable="false">Bridge ...</string>
<string name="ALERT_REQUEST_BRIDGE" translatable="true">petición</string>
<string name="ALERT_SAVE_BRIDGE" translatable="true">OK</string>
<string name="ALERT_CREATE_BOOKMARK" translatable="true">marcador de sitio web</string>
<string name="ALERT_CREATE_BOOKMARK_INFO" translatable="true">agregue esta página a sus marcadores</string>
<string name="ALERT_CLEAR_HISTORY" translatable="true">eliminar enlaces web y datos navegados</string>
<string name="ALERT_CLEAR_BOOKMARK" translatable="true">marcador claro y datos</string>
<string name="ALERT_CLEAR_HISTORY_INFO" translatable="true">borrar datos eliminará los enlaces web navegados, las cookies y otros datos de navegación</string>
<string name="ALERT_CLEAR_BOOKMARK_INFO" translatable="true">eliminar datos eliminará sitios web marcados como favoritos</string>
<string name="ALERT_DISMISS" translatable="true">despedir</string>
<string name="ALERT_CLEAR" translatable="true">cancelar</string>
<string name="ALERT_ADD" translatable="true">OK</string>
<string name="ALERT_TITLE_ADD" translatable="true">nuevo marcador</string>
<string name="ALERT_SECURE" translatable="false">https://</string>
<string name="ALERT_SECURE_INFO" translatable="true">la conexión es segura</string>
<string name="ALERT_SECURE_INFO_DETAIL" translatable="true">su información (por ejemplo, contraseña o números de tarjeta de crédito) es privada cuando se envía a este sitio</string>
<string name="ALERT_SECURE_INFO_SETTINGS" translatable="true">Configuración de vigilancia del sistema y del usuario</string>
<string name="ALERT_REPORT" translatable="true">reporte</string>
<string name="ALERT_REPORT_URL" translatable="true">informe del sitio web</string>
<string name="ALERT_REPORT_URL_INFO" translatable="true">Si cree que esta URL es ilegal o perturbadora, infórmenos para que podamos emprender acciones legales.</string>
<string name="ALERT_REPORT_URL_SUCCESS" translatable="true">fue informado con éxito</string>
<string name="ALERT_REPORT_URL_SUCCESS_INFO" translatable="true">URL se informó correctamente. si se encuentra algo, se emprenderán acciones legales</string>
<string name="ALERT_RATEUS" translatable="true">Nos califica</string>
<string name="ALERT_RATEUS_INFO" translatable="true">cuénteles a los demás lo que piensa sobre esta aplicación</string>
<string name="ALERT_RATE" translatable="true">Velocidad</string>
<string name="ALERT_RATEUS_FAILURE" translatable="true">¡Lamentamos oir eso!</string>
<string name="ALERT_RATEUS_FAILURE_INFO" translatable="true">Si tiene dificultades al utilizar este software, comuníquese con nosotros por correo electrónico. Intentaremos resolver su problema lo antes posible.</string>
<string name="ALERT_MAIL" translatable="true">correo</string>
<string name="ALERT_BRIDGE_MAIL" translatable="true">solicitar nuevo Bridge</string>
<string name="ALERT_BRIDGE_MAIL_INFO" translatable="true">seleccione correo para solicitar una dirección bridge. una vez que lo reciba, cópielo y péguelo en el cuadro anterior e inicie el software.</string>
<string name="ALERT_LANGUAGE_SUPPORT_FAILURE" translatable="true">idioma no admitido</string>
<string name="ALERT_LANGUAGE_SUPPORT_FAILURE_INFO" translatable="true">El idioma del sistema no es compatible con este software. estamos trabajando para incluirlo pronto</string>
<string name="ALERT_ORBOT_INIT" translatable="true">inicializando Orbot</string>
<string name="ALERT_NOT_SUPPORTED" translatable="true">acción no admitida</string>
<string name="ALERT_NOT_SUPPORTED_INFO" translatable="true">no se encontró software para manejar el siguiente comando</string>
<string name="ALERT_WELCOME_MESSAGE" translatable="true">bienvenido | web oculta Gateway</string>
<string name="ALERT_WELCOME_MESSAGE_INFO" translatable="true">este software le proporciona una plataforma para buscar y abrir URL web ocultas. aquí hay algunas sugerencias \n</string>
<string name="ALERT_WELCOME_MESSAGE_BT_1" translatable="true">mercado online oculto web</string>
<string name="ALERT_WELCOME_MESSAGE_BT_2" translatable="true">documentos y libros filtrados</string>
<string name="ALERT_WELCOME_MESSAGE_BT_3" translatable="true">noticias y artículos de la web oscura</string>
<string name="ALERT_WELCOME_MESSAGE_BT_4" translatable="true">software secreto y herramientas de piratería</string>
<string name="ALERT_WELCOME_MESSAGE_BT_5" translatable="true">no volver a mostrar</string>
<string name="ALERT_WELCOME_MESSAGE_BT_6" translatable="true">finanzas y dinero</string>
<string name="ALERT_WELCOME_MESSAGE_BT_7" translatable="true">sociedades sociales</string>
<string name="ALERT_LOCAL_UPGRADE" translatable="true">manual</string>
<string name="ALERT_PLAYSTORE_UPGRADE" translatable="true">tienda de juegos</string>
<string name="ALERT_LONG_URL" translatable="true">notificación de enlace web</string>
<string name="ALERT_LONG_URL_OPTION_1" translatable="true">abrir en una pestaña nueva</string>
<string name="ALERT_LONG_URL_OPTION_2" translatable="true">abrir en la pestaña actual</string>
<string name="ALERT_LONG_URL_OPTION_3" translatable="true">copiar al portapapeles</string>
<string name="ALERT_LONG_FILE" translatable="true">notificación de archivo</string>
<string name="ALERT_DOWNLOAD" translatable="true">descargar notificación</string>
<string name="ALERT_DOWNLOAD_OPTION_1" translatable="true">abrir URL en una nueva pestaña</string>
<string name="ALERT_DOWNLOAD_OPTION_2" translatable="true">abrir URL en la pestaña actual</string>
<string name="ALERT_DOWNLOAD_OPTION_3" translatable="true">copiar URL al portapapeles</string>
<string name="ALERT_DOWNLOAD_OPTION_4" translatable="true">abierta la imagen en una nueva pestaña</string>
<string name="ALERT_DOWNLOAD_OPTION_5" translatable="true">abrir imagen en la pestaña actual</string>
<string name="ALERT_DOWNLOAD_OPTION_6" translatable="true">copiar imagen al portapapeles</string>
<string name="ALERT_DOWNLOAD_OPTION_7" translatable="true">descargar archivo de imagen</string>
<string name="ALERT_DOWNLOAD_NOTIFICATION" translatable="true">descargar notificación</string>
<string name="ALERT_LONG_URL_TITLE" translatable="true">notificación de enlace web</string>
<string name="ALERT_LONG_URL_MESSAGE" translatable="true"/>
<string name="ALERT_NOT_SUPPORTED_MESSAGE" translatable="true">no se encontró ningún software para manejar el correo electrónico</string>
<string name="ALERT_DOWNLOAD_MESSAGE" translatable="true">descargar archivo |</string>
<string name="ALERT_DATA_CLEARED" translatable="true">datos borrados | Reinicio requerido</string>
<string name="ALERT_DATA_CLEARED_INFO" translatable="true">datos privados borrados con éxito. Algunas configuraciones predeterminadas del sistema requerirán que este software se reinicie. ahora puedes seguir navegando de forma segura</string>
<string name="ALERT_UNDO_TAB_REMOVE_INFO" translatable="true">pestaña cerrada</string>
<string name="ALERT_UNDO_TAB_REMOVE_BUTTON" translatable="true">deshacer</string>
<string name="BRIDGE_BASIC_SETTING" translatable="true">seguridad personalizar</string>
<string name="BRIDGE_SETTING" translatable="true">Bridge personalizar</string>
<string name="BRIDGE_AUTO" translatable="true">crear automáticamente</string>
<string name="BRIDGE_AUTO_INFO" translatable="true">configurar automáticamente bridge personalizar</string>
<string name="BRIDGE_MANUAL" translatable="true">proporcione un bridge que sepa</string>
<string name="BRIDGE_PORT_HINT" translatable="true">pegar personalizado bridge</string>
<string name="BRIDGE_HEADER" translatable="true">proxy personalizar | Bridge</string>
<string name="BRIDGE_DESC" translatable="true">Bridges son relés Tor no listados que dificultan el bloqueo de conexiones en la red Tor. debido a cómo algunos países intentan bloquear Tor, ciertos bridges funcionan en algunos países pero no en otros</string>
<string name="BRIDGE_TITLE" translatable="true">seleccionar por defecto bridge</string>
<string name="BRIDGE_REQUEST" translatable="true">petición</string>
<string name="BRIDGE_OBFS4" translatable="true">obfs4 (recomendado)</string>
<string name="BRIDGE_MEEK" translatable="false">meek-azure (china)</string>
<string name="ORBOT_LOG" translatable="true">registros de proxy</string>
<string name="ORBOT_LOG_HEADER" translatable="true">Información de registro del sistema</string>
<string name="ORBOT_LOG_INFO" translatable="true">Si tiene problemas de conectividad al iniciar Genesis, copie el siguiente código y encuentre el problema en línea o envíenoslo para que podamos intentar ayudarlo</string>
<string name="HOME_MENU__ORBOT_LOGS" translatable="true">Orbot registros</string>
<string name="HOME_MENU__NEW_TABS" translatable="true">nuevas pestañas</string>
<string name="HOME_MENU_CLOSE_TABS" translatable="true">cerrar pestaña</string>
<string name="HOME_MENU_OPEN_RECENT_TABS" translatable="true">abrir pestañas recientes</string>
<string name="HOME_MENU_LANGUAGE" translatable="true">idioma</string>
<string name="HOME_MENU_DOWNLOAD" translatable="true">descargas</string>
<string name="HOME_MENU_HISTORY" translatable="true">enlaces web navegados</string>
<string name="HOME_MENU_SETTING" translatable="true">Configuración del sistema</string>
<string name="HOME_MENU_DESKTOP" translatable="true">sitio de escritorio</string>
<string name="HOME_MENU_BOOKMARK" translatable="true">guardar esta página</string>
<string name="HOME_MENU_OPEN_BOOKMARK" translatable="true">marcadores</string>
<string name="HOME_MENU_REPORT" translatable="true">informe del sitio web</string>
<string name="HOME_MENU_RATE" translatable="true">califica esta aplicación</string>
<string name="HOME_MENU_FIND" translatable="true">encontrar en la página</string>
<string name="HOME_MENU_QUIT" translatable="true">Salida</string>
<string name="HOME_MENU_SHARE" translatable="true">Cuota</string>
<string name="TAB_MENU_OPEN_TAB" translatable="true">nuevas pestañas</string>
<string name="TAB_MENU_CLOSE_TAB" translatable="true">cierra todas las pestañas</string>
<string name="TAB_MENU_SETTINGS" translatable="true">Configuración del sistema</string>
<string name="TAB_LIST_SELECT" translatable="true">seleccionar pestañas</string>
<string name="SHARED_RECYCLER_VIEW_OPEN" translatable="true">pestañas abiertas</string>
<string name="SHARED_RECYCLER_VIEW_COPY" translatable="true">Copiar</string>
<string name="SHARED_RECYCLER_VIEW_SHARE" translatable="true">Cuota</string>
<string name="SHARED_RECYCLER_VIEW_CLEAR_LONG_PRESSES" translatable="true">selección clara</string>
<string name="SHARED_RECYCLER_VIEW_OPEN_CURRENT_TAB" translatable="true">abrir en la pestaña actual</string>
<string name="SHARED_RECYCLER_VIEW_OPEN_NEW_TAB" translatable="true">abrir en una pestaña nueva</string>
<string name="SHARED_RECYCLER_VIEW_DELETE" translatable="true">Eliminar</string>
<string name="HISTORY_TITLE" translatable="true">enlaces web navegados</string>
<string name="HISTORY_CLEAR" translatable="true">quita esto</string>
<string name="HISTORY_SEARCH_HINT" translatable="true">buscar ...</string>
<string name="BOOKMARK_TITLE" translatable="true">marcador</string>
<string name="BOOKMARK_CLEAR" translatable="true">quita esto</string>
<string name="BOOKMARK_SEARCH_HINT" translatable="true">buscar ...</string>
<string name="HELP_RETRY" translatable="true">rever</string>
<string name="HELP_RETRY_INFO" translatable="true">opps! error de conexión a la red. red no conectada</string>
<string name="HELP_TITLE" translatable="true">ayuda y apoyo</string>
<string name="LANGUAGE_TITLE" translatable="true">idioma</string>
<string name="LANGUAGE_LANGUAGE_MESSAGE_TITLE" translatable="true">cambiar idioma</string>
<string name="LANGUAGE_LANGUAGE_MESSAGE_DESC" translatable="true">solo corremos en los siguientes idiomas. pronto estaríamos agregando más</string>
<string name="LANGUAGE_LANGUAGE_MESSAGE_BT_DEFAULT" translatable="true">Inglés Estados Unidos)</string>
<string name="LANGUAGE_LANGUAGE_MESSAGE_BT_1" translatable="true">alemán Alemania)</string>
<string name="LANGUAGE_LANGUAGE_MESSAGE_BT_2" translatable="true">italiano (italia)</string>
<string name="LANGUAGE_LANGUAGE_MESSAGE_BT_3" translatable="true">portugués (brasil)</string>
<string name="LANGUAGE_LANGUAGE_MESSAGE_BT_4" translatable="true">ruso (rusia)</string>
<string name="LANGUAGE_LANGUAGE_MESSAGE_BT_5" translatable="true">ucraniano (ucrania)</string>
<string name="LANGUAGE_LANGUAGE_MESSAGE_BT_6" translatable="true">chino simplificado (China continental)</string>
<string name="ORBOT_SETTING_WARNING" translatable="true">⚠️ advertencia</string>
<string name="ORBOT_SETTING_CUSTOM_BRIDGE" translatable="true">personalizar Bridges</string>
<string name="ORBOT_SETTING_BRIDGE_ENABLE" translatable="true">habilitar Bridges</string>
<string name="ORBOT_SETTING_ENABLE_VPN" translatable="true">habilitar VPN servicios</string>
<string name="ORBOT_SETTING_GATEWAY_INFO" translatable="true">habilitar Bridge Gateway</string>
<string name="ORBOT_SETTING_GATEWAY_BUTTON" translatable="true">habilitar Gateway</string>
<string name="PROXY_STATUS_HEADER" translatable="true">condición de apoderado</string>
<string name="ORBOT_PROXY_STATUS_INFO" translatable="true">condición actual del proxy orbot</string>
<string name="PROXY_SUB_HEADER1" translatable="true">Orbot condición de poder</string>
<string name="PROXY_SUB_HEADER2" translatable="true">onion</string>
<string name="PROXY_VPN_STATUS" translatable="true">VPN condición de conectividad</string>
<string name="PROXY_BRIDGE_STATUS" translatable="true">Bridge condición de poder</string>
<string name="PROXY_SUB_HEADER3" translatable="true">info | cambiar la configuración del sistema</string>
<string name="PROXY_CONNECTIVITY_SETTING_INFO" translatable="true">puede cambiar el proxy reiniciando el software y yendo al administrador de proxy. se puede abrir haciendo clic en un icono de engranaje en la parte inferior</string>
<string name="ORBOT_HEADER" translatable="true">proxy personalizar</string>
<string name="ORBOT_DESCRIPTION" translatable="true">¡Lo conectamos a la red Tor dirigida por miles de voluntarios en todo el mundo! ¿Pueden estas opciones ayudarlo?</string>
<string name="ORBOT_TITLE" translatable="true">Internet está censurado aquí (eludir el firewall)</string>
<string name="ORBOT_OPTION_DESCRIPTION" translatable="true">evitar el firewall</string>
<string name="ORBOT_BRIDGE_WARNING" translatable="true">Bridges hace que Internet funcione muy lento. Úselos solo si Internet está censurado en su país o si la red Tor está bloqueada</string>
<string name="NOTIFICATION_DEFAULT_LABEL" translatable="true">default.jpg</string>
<string name="NOTIFICATION_OPEN_TEXT" translatable="true">Abre esto</string>
<string name="HOME_TAB_TEXT" translatable="true">1</string>
<string name="HOME_CONNECT" translatable="false">connect</string>
<string name="HOME_LOADING" translatable="false">Genesis is paused at the moment</string>
<string name="HOME_LOADING_STATIC" translatable="false">~ Genesis on standby at the moment</string>
<string name="HOME_TAB_EMPTY" translatable="true">las pestañas abiertas se mostrarán aquí</string>
<string name="LANDING_BRIDGES_INFO" translatable="true">"a veces necesitas un Bridge para llegar a Tor"</string>
<string name="LANDING_MORE" translatable="true">"Dime más"</string>
<string name="LANDING_VPN_SETUP" translatable="true">"puede habilitar cualquier software para pasar por Tor usando Onion"</string>
<string name="LANDING_VPN_SETUP_SUB_INFO" translatable="true">"esto no te hará anónimo, pero te ayudará a evitar los firewalls"</string>
<string name="LANDING_VPN_CHOOSE_APPS" translatable="true">"elegir aplicaciones"</string>
<string name="LANDING_HELLO" translatable="true">"Hola"</string>
<string name="LANDING_WELCOME" translatable="true">"bienvenido a Tor en el móvil".</string>
<string name="LANDING_BROWSE_INFO" translatable="true">"navegue por Internet como espera que lo haga".</string>
<string name="LANDING_NO_TRACKING" translatable="true">"Sin protección de vigilancia del usuario. Sin censura".</string>
<string name="ERROR_M1" translatable="true">este sitio no es accesible</string>
<string name="ERROR_M2" translatable="true">se produjo un error al conectarse con el sitio web</string>
<string name="ERROR_M3" translatable="true">la página que está intentando ver no se puede mostrar porque no se pudo verificar la autenticidad de los datos recibidos</string>
<string name="ERROR_M4" translatable="true">la página no funciona actualmente por alguna razón</string>
<string name="ERROR_M5" translatable="true">póngase en contacto con los propietarios del sitio web para informarles de este problema.</string>
<string name="ERROR_M6" translatable="true">recargar</string>
<string name="PREF_LANGUAGE" translatable="true">pref_language</string>
<string name="invalid_package_signature" translatable="true">Firma de paquete no válida</string>
<string name="autofill_sign_in_prompt" translatable="true">haga clic para iniciar sesión.</string>
<string name="autofill_manual_prompt" translatable="true">haga clic para seleccionar manualmente los datos.</string>
<string name="security_exception" translatable="true">Excepción de seguridad de dominio web.</string>
<string name="dal_exception" translatable="true">Fallo de verificación DAL.</string>
<item name="LaguageID" type="id"/>
<item name="LaguageRegion" type="id"/>
<string-array name="ARRAY_FONTS" translatable="true">
<item>55 por ciento</item>
<item>70 por ciento</item>
<item>85 por ciento</item>
<item>100 por ciento</item>
<item>115 por ciento</item>
<item>130 por ciento</item>
<item>145 por ciento</item>
</string-array>
<string-array name="ARRAY_DEFAULT_BOOLEAN" translatable="true">
<item>Activado</item>
<item>Discapacitado</item>
</string-array>
<string-array name="ARRAY_NOTIFICATION" translatable="true">
<item>Permitir a todos</item>
<item>Desactivar todo</item>
<item>Sin ancho de banda</item>
</string-array>
<string-array name="ARRAY_COOKIES" translatable="true">
<item>Permitir todo</item>
<item>Permitir de confianza</item>
<item>No permitir ninguno</item>
<item>Permitir visitados</item>
<item>Permitir no rastreador</item>
</string-array>
<!-- Generated by Automatic String Resource Translation -->
<!-- https://asrt.gluege.boerde.de -->
</resources>

View File

@ -0,0 +1,407 @@
<resources>
<!-- Application Strings -->
<string name="GENERAL_SEARCH_HINT" translatable="true">zoek iets of typ een weblink</string>
<string name="GENERAL_FIND_HINT" translatable="true">vind op pagina</string>
<string name="GENERAL_SEARCH_ENGINE" translatable="true">zoekmachine</string>
<string name="GENERAL_ERROR_TITLE" translatable="true">opps! er is iets misgegaan</string>
<string name="GENERAL_TODO" translatable="true">todo</string>
<string name="GENERAL_LOADING" translatable="true">digitale vrijheid</string>
<string name="GENERAL_RELOAD" translatable="true">herladen</string>
<string name="GENERAL_INTERNET_ERROR_MESSAGE" translatable="true">u wordt geconfronteerd met een van de volgende problemen. webpagina of website werkt mogelijk niet. uw internetverbinding is mogelijk slecht. misschien gebruikt u een proxy. website wordt mogelijk geblokkeerd door firewall</string>
<string name="GENERAL_DEFAULT_HINT_SUGGESTION" translatable="true">BBC, Israël Slaat Weer Toe</string>
<!-- Settings -->
<string name="SETTING_BASIC_SETTING" translatable="true">Systeeminstelling</string>
<string name="SETTING_DEFAULT_BROWSER" translatable="true">maak Genesis uw standaardbrowser</string>
<string name="SETTING_HEADER" translatable="true">Systeeminstelling</string>
<string name="SETTING_SEARCH_ENGINE" translatable="true">zoekmachine</string>
<string name="SETTING_JAVASCRIPT" translatable="true">javascript</string>
<string name="SETTING_CLEAR_HISTORY" translatable="true">verwijderde weblinks</string>
<string name="SETTING_FONT_TITLE" translatable="true">lettertype aanpassen</string>
<string name="SETTING_ADJUST_FONT" translatable="true">Systeemlettertypeconstructie</string>
<string name="SETTING_MANUAL_FONT" translatable="true">lettertype automatisch wijzigen</string>
<string name="SETTING_COOKIE_TEXT_INFO" translatable="true">Cookie-instelling</string>
<string name="SETTING_COOKIE" translatable="true">koekjes</string>
<string name="SETTING_NOTIFICATION_HEADER" translatable="true">Systeeminstellingen . Kennisgeving</string>
<string name="SETTING_NOTIFICATION_HEADER_1" translatable="true">meldingen</string>
<string name="SETTING_NOTIFICATION_HEADER_1_INFO" translatable="true">meldingsvoorkeuren wijzigen</string>
<string name="SETTING_NOTIFICATION_DISABLE_STATUS_NOTIFICATION" translatable="true">conditie van netwerk en meldingen</string>
<string name="SETTING_NOTIFICATION_DISABLE_STATUS_NOTIFICATION_INFO" translatable="true">lokale meldingen</string>
<string name="SETTING_NOTIFICATION_OPEN_NOTIFICATION_MANAGER" translatable="true">Softwaremelding aanpassen</string>
<string name="SETTING_NOTIFICATION_OPEN_NOTIFICATION_MANAGER_INFO" translatable="true">systeemmeldingen</string>
<string name="SETTING_ORBOT_LOG_HEADER" translatable="true">de manier wijzigen waarop het systeemlogboek wordt weergegeven</string>
<string name="SETTING_ORBOT_LIST_VIEW" translatable="true">logboek weergeven met moderne lijstweergave</string>
<string name="SETTING_ORBOT_LIST_VIEW_INFO" translatable="true">schakelen tussen klassieke en moderne lijstweergave</string>
<string name="SETTING_SEARCH" translatable="true">zoekmachine beheren</string>
<string name="SETTING_SEARCH_INFO" translatable="true">toevoegen, standaard instellen. suggesties weergeven</string>
<string name="SETTING_NOTIFICATION" translatable="true">meldingen beheren</string>
<string name="SETTING_NOTIFICATION_INFO" translatable="true">nieuwe features, conditie van netwerk</string>
<string name="SETTING_SEARCH_HEADER" translatable="true">Software Aanpassen. Zoekmachine</string>
<string name="SETTING_SEARCH_HEADER_1" translatable="true">ondersteunde zoekmachines</string>
<string name="SETTING_SEARCH_HEADER_1_INFO" translatable="true">kies Standaardzoekmachine</string>
<string name="SETTING_SEARCH_HEADER_2" translatable="true">Software Aanpassen. Zoekmachine</string>
<string name="SETTING_SEARCH_HEADER_2_INFO" translatable="true">wijzigen hoe webzoekopdrachten worden weergegeven</string>
<string name="SETTING_SEARCH_HISTORY" translatable="true">doorbladerde weblinks weergeven</string>
<string name="SETTING_SEARCH_SUGGESTIONS" translatable="true">suggesties weergeven tijdens het zoeken</string>
<string name="SETTING_SEARCH_HISTORY_INFO" translatable="true">suggesties van doorbladerde webkoppelingen worden weergegeven wanneer u in de zoekbalk</string>
<string name="SETTING_SEARCH_SUGGESTION_INFO" translatable="true">typt gerichte suggesties verschijnen wanneer u typt in de zoekbalk</string>
<string name="SETTING_ACCESSIBILITY" translatable="true">toegankelijkheid</string>
<string name="SETTING_ACCESSIBILITY_INFO" translatable="true">tekstgrootte, zoom, invoer met spraak</string>
<string name="SETTING_ACCESSIBILITY_HEADER" translatable="true">aanpassen, toegankelijkheid</string>
<string name="SETTING_CLEAR" translatable="true">privégegevens wissen</string>
<string name="SETTING_CLEAR_INFO" translatable="true">tabbladen, doorbladerde weblinks, bladwijzer, cookies, cache</string>
<string name="SETTING_CLEAR_HEADER" translatable="true">Wijzig De Systeeminstelling. Systeemgegevens Wissen</string>
<string name="SETTING_CLEAR_BUTTON" translatable="true">duidelijke gegevens</string>
<string name="SETTING_CLEAR_OPTION_1" translatable="true">verwijder alle tabbladen</string>
<string name="SETTING_CLEAR_OPTION_2" translatable="true">verwijderde weblinks</string>
<string name="SETTING_CLEAR_OPTION_3" translatable="true">bladwijzers verwijderen</string>
<string name="SETTING_CLEAR_OPTION_4" translatable="true">cache verwijderen</string>
<string name="SETTING_CLEAR_OPTION_5" translatable="true">suggesties verwijderen</string>
<string name="SETTING_CLEAR_OPTION_6" translatable="true">gegevens verwijderen</string>
<string name="SETTING_CLEAR_OPTION_7" translatable="true">sessie verwijderen</string>
<string name="SETTING_CLEAR_OPTION_8" translatable="true">verwijder cookies</string>
<string name="SETTING_CLEAR_OPTION_9" translatable="true">verwijderen aanpassen</string>
<string name="SETTING_ACCESSIBILITY_FONT" translatable="true">lettertype schalen</string>
<string name="SETTING_ACCESSIBILITY_FONT_INFO" translatable="true">webinhoud schalen volgens systeemlettergrootte</string>
<string name="SETTING_ACCESSIBILITY_ZOOM" translatable="true">zoom</string>
<string name="SETTING_ACCESSIBILITY_ZOOM_INFO" translatable="true">inschakelen inschakelen en zoom forceren voor alle webpagina\'s</string>
<string name="SETTING_ACCESSIBILITY_VOICE" translatable="true">invoer met spraak</string>
<string name="SETTING_ACCESSIBILITY_VOICE_INFO" translatable="true">spraakdictatie toestaan in de url-balk</string>
<string name="SETTING_ACCESSIBILITY_FONT_CUSTOM" translatable="true">selecteer aangepaste lettertypeschaling</string>
<string name="SETTING_ACCESSIBILITY_FONT_CUSTOM_SAMPLE" translatable="true">versleep de schuifregelaar totdat u dit comfortabel kunt lezen. tekst moet er minstens zo groot uitzien na dubbeltikken op een alinea</string>
<string name="SETTING_ACCESSIBILITY_200_PERCENT" translatable="true">200%</string>
<string name="SETTING_INTERACTION" translatable="true">interacties</string>
<string name="SETTING_INTERACTION_INFO" translatable="true">verander de manier van interactie met website-inhoud</string>
<string name="SETTING_PRIVACY" translatable="true">Gebruiker Sur</string>
<string name="SETTING_PRIVACY_INFO" translatable="true">gebruikersoverzicht, logins, gegevenskeuzes</string>
<string name="SETTING_TRACKING" translatable="true">Bescherming Van Gebruikersbewaking</string>
<string name="SETTING_TRACKING_INFO" translatable="true">adblock, trackers, vingerafdrukken</string>
<string name="SETTING_PRIVACY_HEADER" translatable="true">Systeeminstellingen . privacy</string>
<string name="SETTING_TRACKING_HEADER" translatable="true">Systeeminstellingen . bescherming van de gebruiker</string>
<string name="SETTING_TRACKING_SUB_HEADER" translatable="true">bescherm uw online identiteit</string>
<string name="SETTING_TRACKING_SUB_HEADER_INFO" translatable="true">houd uw identiteit privé. we kunnen je beschermen tegen verschillende trackers die je online volgen. deze systeeminstelling kan ook worden gebruikt om advertenties te blokkeren</string>
<string name="SETTING_PRIVACY_DONOT_TRACK" translatable="true">bespaar uzelf van Survelance Protection</string>
<string name="SETTING_PRIVACY_DONOT_TRACK_INFO" translatable="true">Genesis zal sites vertellen mij niet te volgen</string>
<string name="SETTING_PRIVACY_DONOT_TRACK_INFO_SECURITY" translatable="true">vertel de website om mij niet te volgen</string>
<string name="SETTING_PRIVACY_TRACKING_PROTECTION" translatable="true">Bescherming Van Gebruikersbewaking</string>
<string name="SETTING_PRIVACY_TRACKING_PROTECTION_INFO" translatable="true">Schakel Survelance Protection voor gebruikers in die wordt geboden door Genesis</string>
<string name="SETTING_PRIVACY_COOKIES" translatable="true">website cookies</string>
<string name="SETTING_PRIVACY_COOKIES_INFO" translatable="true">selecteer websitecookievoorkeuren op basis van uw beveiligingsbehoeften</string>
<string name="SETTING_PRIVACY_CLEAR_PRIVATE_DATA" translatable="true">privégegevens wissen bij afsluiten</string>
<string name="SETTING_PRIVACY_CLEAR_PRIVATE_DATA_INFO" translatable="true">gegevens automatisch wissen zodra de software is gesloten</string>
<string name="SETTING_PRIVACY_CLEAR_PRIVATE_HEADER" translatable="true">privé browsen</string>
<string name="SETTING_PRIVACY_CLEAR_PRIVATE_HEADER_INFO" translatable="true">houd uw identiteit veilig en gebruik de onderstaande opties</string>
<string name="SETTING_PRIVACY_COOKIES_OPTION1" translatable="true">ingeschakeld</string>
<string name="SETTING_PRIVACY_COOKIES_OPTION2" translatable="true">ingeschakeld, met uitzondering van website-tracking cookies</string>
<string name="SETTING_PRIVACY_COOKIES_OPTION3" translatable="true">ingeschakeld, met uitzondering van derde partij</string>
<string name="SETTING_PRIVACY_COOKIES_OPTION4" translatable="true">uitgeschakeld</string>
<string name="SETTING_PRIVACY_TRACKING_OPTION1" translatable="true">beveiliging uitschakelen</string>
<string name="SETTING_PRIVACY_TRACKING_OPTION1_INFO" translatable="true">bescherming van identiteitsbewaking toestaan. hierdoor kan uw online identiteit worden gestolen</string>
<string name="SETTING_PRIVACY_TRACKING_OPTION2" translatable="true">default (aanbevolen)</string>
<string name="SETTING_PRIVACY_TRACKING_OPTION2_INFO" translatable="true">blokkeer online advertenties en sociale webgebruiker Survelance. pagina\'s worden standaard geladen</string>
<string name="SETTING_PRIVACY_TRACKING_OPTION3" translatable="true">strikt beleid</string>
<string name="SETTING_PRIVACY_TRACKING_OPTION3_INFO" translatable="true">stop alle bekende trackers, pagina\'s worden sneller geladen, maar sommige functies werken mogelijk niet</string>
<string name="SETTING_PRIVACY_JAVASCRIPT" translatable="true">javascript</string>
<string name="SETTING_PRIVACY_JAVASCRIPT_INFO" translatable="true">schakel java-scripting uit voor verschillende scriptaanvallen</string>
<string name="SETTING_ADVANCE_HEADER" translatable="true">Systeeminstellingen . complexe systeeminstelling</string>
<string name="SETTING_ADVANCE_RESTORE_TAB" translatable="true">tabbladen herstellen</string>
<string name="SETTING_ADVANCE_RESTORE_TAB_INFO" translatable="true">niet herstellen na het afsluiten van browser</string>
<string name="SETTING_ADVANCE_TITILE_THEME" translatable="true">werkbalkthema</string>
<string name="SETTING_ADVANCE_TITILE_THEME_INFO" translatable="true">werkbalkthema instellen zoals gedefinieerd in website</string>
<string name="SETTING_ADVANCE_SHOW_IMAGES" translatable="true">toon afbeeldingen</string>
<string name="SETTING_ADVANCE_SHOW_IMAGES_INFO" translatable="true">altijd website-afbeeldingen laden</string>
<string name="SETTING_ADVANCE_WEB_FONTS" translatable="true">weblettertypen weergeven</string>
<string name="SETTING_ADVANCE_WEB_FONTS_INFO" translatable="true">download externe lettertypen bij het laden van een pagina</string>
<string name="SETTING_ADVANCE_MEDIA" translatable="true">autoplay toestaan </string>
<string name="SETTING_ADVANCE_MEDIA_INFO" translatable="true">media automatisch laten starten</string>
<string name="SETTING_ADVANCE_DATA_SAVER" translatable="true">gegevensbesparing</string>
<string name="SETTING_ADVANCE_TAB" translatable="true">tabblad</string>
<string name="SETTING_ADVANCE_TAB_INFO" translatable="true">verander de manier waarop het tabblad zich gedraagt na het herstarten van de software</string>
<string name="SETTING_ADVANCE_MEDIA_SUB_HEADER" translatable="true">media</string>
<string name="SETTING_ADVANCE_DATA_SAVER_INFO" translatable="true">wijzigen standaard databesparing aanpassen</string>
<string name="SETTING_ADVANCE_MEDIA_SUB_HEADER_INFO" translatable="true">verander standaard media aanpassen</string>
<string name="SETTING_ADVANCE_IMAGE_OPTION_1" translatable="true">altijd afbeeldingen weergeven</string>
<string name="SETTING_ADVANCE_IMAGE_OPTION_2" translatable="true">alleen afbeeldingen weergeven bij gebruik van wifi</string>
<string name="SETTING_ADVANCE_IMAGE_OPTION_3" translatable="true">blokkeer alle afbeeldingen</string>
<string name="SETTING_ADVANCE" translatable="true">Geavanceerde Systeeminstelling</string>
<string name="SETTING_ADVANCE_INFO" translatable="true">tabbladen herstellen, gegevensbesparing, ontwikkelaarstools</string>
<string name="SETTING_PROXY" translatable="true">onion voorwaarde van volmacht</string>
<string name="SETTING_PROXY_INFO" translatable="true">controleer onion conditie van netwerk</string>
<string name="SETTING_REPORT" translatable="true">rapport website</string>
<string name="SETTING_REPORT_INFO" translatable="true">beledigende website melden</string>
<string name="SETTING_RATEUS" translatable="true">beoordeel deze app</string>
<string name="SETTING_RATEUS_INFO" translatable="true">beoordeel en reageer op playstore</string>
<string name="SETTING_SHARE" translatable="true">deel deze app</string>
<string name="SETTING_SHARE_INFO" translatable="true">deel deze software met je vrienden</string>
<string name="SETTING_GENERAL_HEADER" translatable="true">Systeeminstellingen . algemeen aanpassen</string>
<string name="SETTING_GENERAL" translatable="true">Standaard Systeeminstelling</string>
<string name="SETTING_GENERAL_INFO" translatable="true">homepage, taal</string>
<string name="SETTING_GENERAL_FULLSCREEN_BROWSING" translatable="true">browsen op volledig scherm</string>
<string name="SETTING_GENERAL_FULLSCREEN_BROWSING_INFO" translatable="true">verberg de browserwerkbalk wanneer u naar beneden scrolt</string>
<string name="SETTING_GENERAL_LANGUAGE" translatable="true">taal</string>
<string name="SETTING_GENERAL_LANGUAGE_INFO" translatable="true">verander de taal van uw browser</string>
<string name="SETTING_GENERAL_THEME" translatable="true">softwarethema</string>
<string name="SETTING_GENERAL_THEME_INFO" translatable="true">kies een helder en donker thema</string>
<string name="SETTING_GENERAL_THEME_LIGHT" translatable="true">thema helder</string>
<string name="SETTING_GENERAL_THEME_DARK" translatable="true">thema Donker</string>
<string name="SETTING_GENERAL_INFO_OPTION" translatable="true">browsen op volledig scherm en taal wijzigen</string>
<string name="SETTING_GENERAL_THEME_DEFAULT" translatable="true">systeem Standaard</string>
<string name="SETTING_GENERAL_HOME" translatable="true">startpagina</string>
<string name="SETTING_GENERAL_OPEN_URL_IN_NEW_tAB" translatable="true">nieuw tabblad</string>
<string name="SETTING_GENERAL_OPEN_URL_IN_NEW_tAB_INFO" translatable="true">open homepage in nieuw tabblad</string>
<string name="SETTING_CLEAR_CACHE_OPTION_1" translatable="true">verwijder alle tabbladen</string>
<string name="SETTING_CLEAR_CACHE_OPTION_2" translatable="true">verwijderde weblinks</string>
<string name="SETTING_CLEAR_CACHE_OPTION_3" translatable="true">bladwijzers verwijderen</string>
<string name="SETTING_CLEAR_CACHE_OPTION_4" translatable="true">verwijder browsercache</string>
<string name="SETTING_CLEAR_CACHE_OPTION_5" translatable="true">suggesties verwijderen</string>
<string name="SETTING_CLEAR_CACHE_OPTION_6" translatable="true">sitegegevens verwijderen</string>
<string name="SETTING_CLEAR_CACHE_OPTION_7" translatable="true">sessiegegevens verwijderen</string>
<string name="SETTING_CLEAR_CACHE_OPTION_8" translatable="true">cookies voor webbrowsen verwijderen</string>
<string name="SETTING_CLEAR_CACHE_OPTION_9" translatable="true">browseraanpassing verwijderen</string>
<!-- Alerts -->
<string name="ALERT_UPDATE_BRIDGES" translatable="true">geef een Bridge weet je</string>
<string name="ALERT_UPDATE_BRIDGES_INFO" translatable="true">voer bridge informatie in van een vertrouwde bron</string>
<string name="ALERT_REQUEST_BRIDGE" translatable="true">verzoek</string>
<string name="ALERT_SAVE_BRIDGE" translatable="true">OK</string>
<string name="ALERT_CREATE_BOOKMARK" translatable="true">bladwijzerwebsite</string>
<string name="ALERT_CREATE_BOOKMARK_INFO" translatable="true">voeg deze pagina toe aan je bladwijzers</string>
<string name="ALERT_CLEAR_HISTORY" translatable="true">verwijder doorbladerde weblinks en gegevens</string>
<string name="ALERT_CLEAR_BOOKMARK" translatable="true">duidelijke bladwijzer en gegevens</string>
<string name="ALERT_CLEAR_HISTORY_INFO" translatable="true">als u gegevens wist, worden doorbladerde weblinks, cookies en andere browsegegevens verwijderd</string>
<string name="ALERT_CLEAR_BOOKMARK_INFO" translatable="true">Als u gegevens verwijdert, worden websites met bladwijzers verwijderd</string>
<string name="ALERT_DISMISS" translatable="true">ontslaan</string>
<string name="ALERT_CLEAR" translatable="true">annuleren</string>
<string name="ALERT_ADD" translatable="true">oké</string>
<string name="ALERT_TITLE_ADD" translatable="true">nieuwe bladwijzer</string>
<string name="ALERT_SECURE_INFO" translatable="true">verbinding is beveiligd</string>
<string name="ALERT_SECURE_INFO_DETAIL" translatable="true">uw informatie (bijvoorbeeld wachtwoord of creditcardnummers) is privé wanneer deze naar deze site wordt verzonden</string>
<string name="ALERT_SECURE_INFO_SETTINGS" translatable="true">Instelling voor systeem- en gebruikersbewaking</string>
<string name="ALERT_REPORT" translatable="true">rapport</string>
<string name="ALERT_REPORT_URL" translatable="true">rapport website</string>
<string name="ALERT_REPORT_URL_INFO" translatable="true">als u denkt dat deze URL illegaal of storend is, meld dit dan aan ons, zodat we juridische stappen kunnen ondernemen</string>
<string name="ALERT_REPORT_URL_SUCCESS" translatable="true">is met succes gerapporteerd</string>
<string name="ALERT_REPORT_URL_SUCCESS_INFO" translatable="true">url is succesvol gerapporteerd. als er iets wordt gevonden, wordt juridische actie ondernomen</string>
<string name="ALERT_RATEUS" translatable="true">beoordeel ons</string>
<string name="ALERT_RATEUS_INFO" translatable="true">vertel anderen wat je van deze app vindt</string>
<string name="ALERT_RATE" translatable="true">tarief</string>
<string name="ALERT_RATEUS_FAILURE" translatable="true">het spijt ons dat te horen!Als u problemen ondervindt bij het gebruik van deze software, neem dan contact met ons op via e-mail. wij zullen proberen uw probleem zo snel mogelijk op te lossen</string>
<string name="ALERT_RATEUS_FAILURE_INFO" translatable="true">nieuwe Bridge</string>
<string name="ALERT_MAIL" translatable="true">mail</string>
<string name="ALERT_BRIDGE_MAIL" translatable="true">aanvragen selecteer mail om een bridge-adres aan te vragen. Zodra u het heeft ontvangen, kopieert en plakt u het in het bovenstaande vak en start u de software.taal niet ondersteund</string>
<string name="ALERT_BRIDGE_MAIL_INFO" translatable="true">systeemtaal wordt niet ondersteund door deze software. we werken eraan om het binnenkort op te nemen</string>
<string name="ALERT_LANGUAGE_SUPPORT_FAILURE" translatable="true">initialiseren Orbot</string>
<string name="ALERT_LANGUAGE_SUPPORT_FAILURE_INFO" translatable="true">actie niet ondersteund</string>
<string name="ALERT_ORBOT_INIT" translatable="true">geen software gevonden om de volgende opdracht</string>
<string name="ALERT_NOT_SUPPORTED" translatable="true">welkom, verborgen web Gateway</string>
<string name="ALERT_NOT_SUPPORTED_INFO" translatable="true">deze software biedt u een platform om verborgen web-URL\'s te zoeken en te openen. hier zijn enkele suggesties \ n</string>
<string name="ALERT_WELCOME_MESSAGE" translatable="true">verborgen web online markt</string>
<string name="ALERT_WELCOME_MESSAGE_INFO" translatable="true">gelekte documenten en boeken</string>
<string name="ALERT_WELCOME_MESSAGE_BT_1" translatable="true">dark web nieuws en artikelen</string>
<string name="ALERT_WELCOME_MESSAGE_BT_2" translatable="true">geheime software en hacktools</string>
<string name="ALERT_WELCOME_MESSAGE_BT_3" translatable="true">niet meer weergeven</string>
<string name="ALERT_WELCOME_MESSAGE_BT_4" translatable="true">financiën en geld</string>
<string name="ALERT_WELCOME_MESSAGE_BT_5" translatable="true">sociale samenlevingen</string>
<string name="ALERT_WELCOME_MESSAGE_BT_6" translatable="true">handleiding</string>
<string name="ALERT_WELCOME_MESSAGE_BT_7" translatable="true">speelwinkel</string>
<string name="ALERT_LOCAL_UPGRADE" translatable="true">melding weblink</string>
<string name="ALERT_PLAYSTORE_UPGRADE" translatable="true">open in nieuw tabblad</string>
<string name="ALERT_LONG_URL" translatable="true">open in huidig tabblad</string>
<string name="ALERT_LONG_URL_OPTION_1" translatable="true">kopiëren naar klembord</string>
<string name="ALERT_LONG_URL_OPTION_2" translatable="true">bestandsmelding</string>
<string name="ALERT_LONG_URL_OPTION_3" translatable="true">download melding</string>
<string name="ALERT_LONG_FILE" translatable="true">open url in nieuw tabblad</string>
<string name="ALERT_DOWNLOAD" translatable="true">open url in huidig tabblad</string>
<string name="ALERT_DOWNLOAD_OPTION_1" translatable="true">kopieer url naar klembord</string>
<string name="ALERT_DOWNLOAD_OPTION_2" translatable="true">open afbeelding in nieuw tabblad</string>
<string name="ALERT_DOWNLOAD_OPTION_3" translatable="true">afbeelding openen in huidig tabblad</string>
<string name="ALERT_DOWNLOAD_OPTION_4" translatable="true">kopieer afbeelding naar klembord</string>
<string name="ALERT_DOWNLOAD_OPTION_5" translatable="true">download afbeeldingsbestand</string>
<string name="ALERT_DOWNLOAD_OPTION_6" translatable="true">download melding</string>
<string name="ALERT_DOWNLOAD_OPTION_7" translatable="true">melding weblink</string>
<string name="ALERT_DOWNLOAD_NOTIFICATION" translatable="true">geen software gevonden om e-mail te verwerken</string>
<string name="ALERT_LONG_URL_TITLE" translatable="true">downloadbestand,</string>
<string name="ALERT_LONG_URL_MESSAGE" translatable="true" />
<string name="ALERT_NOT_SUPPORTED_MESSAGE" translatable="true">gegevens gewist, herstart vereist</string>
<string name="ALERT_DOWNLOAD_MESSAGE" translatable="true">download file , </string>
<string name="ALERT_DATA_CLEARED" translatable="true">tabblad gesloten</string>
<string name="ALERT_DATA_CLEARED_INFO" translatable="true">ongedaan maken</string>
<string name="ALERT_UNDO_TAB_REMOVE_INFO" translatable="true">beveiliging aanpassen</string>
<string name="ALERT_UNDO_TAB_REMOVE_BUTTON" translatable="true">Bridge aanpassen</string>
<!-- Bridge Settings -->
<string name="BRIDGE_BASIC_SETTING" translatable="true">automatisch aanmaken</string>
<string name="BRIDGE_SETTING" translatable="true">automatisch configureren bridge aanpassen</string>
<string name="BRIDGE_AUTO" translatable="true">geef een bridge waarvan u weet</string>
<string name="BRIDGE_AUTO_INFO" translatable="true">plak custom bridge</string>
<string name="BRIDGE_MANUAL" translatable="true">proxy aanpassen, Bridge</string>
<string name="BRIDGE_PORT_HINT" translatable="true">Bridges zijn niet-vermelde Tor-relais die het moeilijker maken om verbindingen in het Tor-netwerk te blokkeren. vanwege hoe sommige landen Tor proberen te blokkeren, werken sommige bridges in sommige landen maar niet in andere</string>
<string name="BRIDGE_HEADER" translatable="true">selecteer standaard bridge</string>
<string name="BRIDGE_DESC" translatable="true">verzoek</string>
<string name="BRIDGE_TITLE" translatable="true">obfs4 (aanbevolen)</string>
<string name="BRIDGE_REQUEST" translatable="true">meek-azuur (china)</string>
<string name="BRIDGE_OBFS4" translatable="true">proxy-logboeken</string>
<!-- Orbot Log -->
<string name="ORBOT_LOG" translatable="true">als u een verbindingsprobleem ondervindt bij het starten van Genesis, kopieer dan de volgende code en zoek het probleem online of stuur het naar ons, zodat we kunnen proberen u te helpen</string>
<string name="ORBOT_LOG_HEADER" translatable="true">Orbot logboeken</string>
<string name="ORBOT_LOG_INFO" translatable="true">if you are facing connectivity issue while starting Genesis please copy the following code and find issue online or send it to us, so we can try to help you out </string>
<!-- Popup Menu -->
<string name="HOME_MENU__ORBOT_LOGS" translatable="true">tabblad sluiten</string>
<string name="HOME_MENU__NEW_TABS" translatable="true">open recente tabbladen</string>
<string name="HOME_MENU_CLOSE_TABS" translatable="true">taal</string>
<string name="HOME_MENU_OPEN_RECENT_TABS" translatable="true">Systeeminstelling</string>
<string name="HOME_MENU_LANGUAGE" translatable="true">doorzochte weblinks</string>
<string name="HOME_MENU_DOWNLOAD" translatable="true">downloads</string>
<string name="HOME_MENU_HISTORY" translatable="true">bladwijzers</string>
<string name="HOME_MENU_SETTING" translatable="true">Sla Deze Pagina Op</string>
<string name="HOME_MENU_DESKTOP" translatable="true">desktop site</string>
<string name="HOME_MENU_BOOKMARK" translatable="true">rapport website</string>
<string name="HOME_MENU_OPEN_BOOKMARK" translatable="true">beoordeel deze app</string>
<string name="HOME_MENU_REPORT" translatable="true">vind op pagina</string>
<string name="HOME_MENU_RATE" translatable="true">afsluiten</string>
<string name="HOME_MENU_FIND" translatable="true">delen</string>
<string name="HOME_MENU_QUIT" translatable="true">exit</string>
<string name="HOME_MENU_SHARE" translatable="true">share</string>
<!-- Tab View -->
<string name="TAB_MENU_OPEN_TAB" translatable="true">nieuwe tabbladen</string>
<string name="TAB_MENU_CLOSE_TAB" translatable="true">sluit alle tabbladen</string>
<string name="TAB_MENU_SETTINGS" translatable="true">Systeeminstelling</string>
<string name="TAB_LIST_SELECT" translatable="true">selecteer tabbladen</string>
<!-- Shared Recycler View -->
<string name="SHARED_RECYCLER_VIEW_OPEN" translatable="true">geopende tabbladen</string>
<string name="SHARED_RECYCLER_VIEW_COPY" translatable="true">kopiëren</string>
<string name="SHARED_RECYCLER_VIEW_SHARE" translatable="true">delen</string>
<string name="SHARED_RECYCLER_VIEW_CLEAR_LONG_PRESSES" translatable="true">selectie wissen</string>
<string name="SHARED_RECYCLER_VIEW_OPEN_CURRENT_TAB" translatable="true">open in huidig tabblad</string>
<string name="SHARED_RECYCLER_VIEW_OPEN_NEW_TAB" translatable="true">open in nieuw tabblad</string>
<string name="SHARED_RECYCLER_VIEW_DELETE" translatable="true">verwijderen</string>
<!-- History Popup Menu -->
<string name="HISTORY_TITLE" translatable="true">doorzochte weblinks</string>
<string name="HISTORY_CLEAR" translatable="true">verwijder deze</string>
<string name="HISTORY_SEARCH_HINT" translatable="true">zoeken ...</string>
<!-- BOOKMARK Popup Menu -->
<string name="BOOKMARK_TITLE" translatable="true">bladwijzer</string>
<string name="BOOKMARK_CLEAR" translatable="true">verwijder dit</string>
<string name="BOOKMARK_SEARCH_HINT" translatable="true">zoeken ...</string>
<!-- Help -->
<string name="HELP_RETRY" translatable="true">opnieuw proberen</string>
<string name="HELP_RETRY_INFO" translatable="true">opps! netwerkverbindingsfout. netwerk niet verbonden</string>
<string name="HELP_TITLE" translatable="true">hulp en ondersteuning</string>
<!-- Language Manager Manager -->
<string name="LANGUAGE_TITLE" translatable="true">taal</string>
<string name="LANGUAGE_LANGUAGE_MESSAGE_TITLE" translatable="true">taal wijzigen</string>
<string name="LANGUAGE_LANGUAGE_MESSAGE_DESC" translatable="true">we draaien alleen op de volgende talen. we zouden binnenkort meer toevoegen</string>
<string name="LANGUAGE_LANGUAGE_MESSAGE_BT_DEFAULT" translatable="true">engels (verenigde staten)</string>
<string name="LANGUAGE_LANGUAGE_MESSAGE_BT_1" translatable="true">duits (duitsland)</string>
<string name="LANGUAGE_LANGUAGE_MESSAGE_BT_2" translatable="true">italiaans (italië)</string>
<string name="LANGUAGE_LANGUAGE_MESSAGE_BT_3" translatable="true">portugees (brazilië)</string>
<string name="LANGUAGE_LANGUAGE_MESSAGE_BT_4" translatable="true">russisch (rusland)</string>
<string name="LANGUAGE_LANGUAGE_MESSAGE_BT_5" translatable="true">Oekraïens (oekraïne)</string>
<string name="LANGUAGE_LANGUAGE_MESSAGE_BT_6" translatable="true">chinees vereenvoudigd (vasteland china)</string>
<!-- Orbot Settings -->
<string name="ORBOT_SETTING_WARNING" translatable="true">⚠️ waarschuwing</string>
<string name="ORBOT_SETTING_CUSTOM_BRIDGE" translatable="true">aanpassen Bridges</string>
<string name="ORBOT_SETTING_BRIDGE_ENABLE" translatable="true">Bridges</string>
<string name="ORBOT_SETTING_ENABLE_VPN" translatable="true">inschakelen VPN-services inschakelen</string>
<string name="ORBOT_SETTING_GATEWAY_INFO" translatable="true">Bridge Gateway</string>
<string name="ORBOT_SETTING_GATEWAY_BUTTON" translatable="true">inschakelen Gateway</string>
<!-- Proxy Status -->
<string name="PROXY_STATUS_HEADER" translatable="true">inschakelen voorwaarde van volmacht</string>
<string name="ORBOT_PROXY_STATUS_INFO" translatable="true">huidige toestand van orbot proxy</string>
<string name="PROXY_SUB_HEADER1" translatable="true">Orbot voorwaarde van volmacht</string>
<string name="PROXY_SUB_HEADER2" translatable="true">onion Bridges status</string>
<string name="PROXY_VPN_STATUS" translatable="true">VPN voorwaarde van connectiviteit</string>
<string name="PROXY_BRIDGE_STATUS" translatable="true">Bridge voorwaarde van volmacht</string>
<string name="PROXY_SUB_HEADER3" translatable="true">info, wijzig Systeeminstelling</string>
<string name="PROXY_CONNECTIVITY_SETTING_INFO" translatable="true">u kunt de proxy wijzigen door de software opnieuw te starten en naar proxymanager te gaan. het kan worden geopend door op een tandwielpictogram onderaan</string>
<!-- Orbot View -->
<string name="ORBOT_HEADER" translatable="true">te klikken proxy aanpassen</string>
<string name="ORBOT_DESCRIPTION" translatable="true">we verbinden je met het Tor-netwerk dat wordt gerund door duizenden vrijwilligers over de hele wereld! Kunnen deze opties u helpen</string>
<string name="ORBOT_TITLE" translatable="true">internet wordt hier gecensureerd (bypass firewall)</string>
<string name="ORBOT_OPTION_DESCRIPTION" translatable="true">omzeil firewall</string>
<string name="ORBOT_BRIDGE_WARNING" translatable="true">Bridges zorgt ervoor dat internet erg traag werkt. gebruik ze alleen als internet in uw land wordt gecensureerd of als het Tor-netwerk is geblokkeerd</string>
<!-- Notification Menu -->
<string name="NOTIFICATION_DEFAULT_LABEL" translatable="true">default.jpg</string>
<string name="NOTIFICATION_OPEN_TEXT" translatable="true">open deze</string>
<!-- Home View -->
<string name="HOME_TAB_TEXT" translatable="true">1</string>
<string name="HOME_TAB_EMPTY" translatable="true">geopende tabbladen worden hier weergegeven</string>
<!-- Landing Page -->
<string name="LANDING_BRIDGES_INFO" translatable="true">"soms heb je een Bridge nodig om bij Tor te komen"</string>
<string name="LANDING_MORE" translatable="true">"vertel me meer"</string>
<string name="LANDING_VPN_SETUP" translatable="true">"u kunt alle software inschakelen om door Tor te gaan met Onion"</string>
<string name="LANDING_VPN_SETUP_SUB_INFO" translatable="true">"dit maakt je niet anoniem, maar het helpt je wel om firewalls te omzeilen"</string>
<string name="LANDING_VPN_CHOOSE_APPS" translatable="true">"apps kiezen"</string>
<string name="LANDING_HELLO" translatable="true">"hallo"</string>
<string name="LANDING_WELCOME" translatable="true">"welkom bij Tor op mobiel.""Surfen op internet zoals u verwacht dat u zou moeten.""geen bescherming van gebruikersbewaking. geen censuur."deze site is niet bereikbaar</string>
<string name="LANDING_BROWSE_INFO" translatable="true">er is een fout opgetreden bij het verbinden met website</string>
<string name="LANDING_NO_TRACKING" translatable="true">de pagina die u probeert te bekijken, kan niet worden weergegeven omdat de authenticiteit van de ontvangen gegevens niet kon worden geverifieerd</string>
<!-- Error Page -->
<string name="ERROR_M1" translatable="true">de pagina werkt momenteel niet vanwege de een of andere reden</string>
<string name="ERROR_M2" translatable="true">Neem contact op met de website-eigenaren om hen over dit probleem te informeren.herladen</string>
<string name="ERROR_M3" translatable="true">pref_language</string>
<string name="ERROR_M4" translatable="true">Ongeldige pakkethandtekening</string>
<string name="ERROR_M5" translatable="true">klik om in te loggen.</string>
<string name="ERROR_M6" translatable="true">klik om handmatig gegevens te selecteren.Uitzondering beveiliging webdomein.DAL-verificatiefout.</string>
<!-- Others -->
<string name="PREF_LANGUAGE" translatable="true">pref_language</string>
<string name="invalid_package_signature" translatable="true">Invalid package signature</string>
<string name="autofill_sign_in_prompt" translatable="true">click to sign in.</string>
<string name="autofill_manual_prompt" translatable="true">click to manually select data.</string>
<string name="security_exception" translatable="true">Web domain security exception.</string>
<string name="dal_exception" translatable="true">DAL verification failure.</string>
<item type="id" name="LaguageID"/>
<item type="id" name="LaguageRegion"/>
<string-array name="ARRAY_FONTS" translatable="true">
<item>55 Percent</item>
<item>70 Percent</item>
<item>85 Percent</item>
<item>100 Percent</item>
<item>115 Percent</item>
<item>130 Percent</item>
<item>145 Percent</item>
</string-array>
<string-array name="ARRAY_DEFAULT_BOOLEAN" translatable="true">
<item>Enabled</item>
<item>Disabled</item>
</string-array>
<string-array name="ARRAY_NOTIFICATION" translatable="true">
<item>Enable All</item>
<item>Disable All</item>
<item>No Bandwidth</item>
</string-array>
<string-array name="ARRAY_COOKIES" translatable="true">
<item>Allow All</item>
<item>Allow Trusted</item>
<item>Allow None</item>
<item>Allow Visited</item>
<item>Allow Non Tracker</item>
</string-array>
</resources>

View File

@ -1,428 +0,0 @@
<resources>
<!-- Generated by Automatic String Resource Translation -->
<!-- https://asrt.gluege.boerde.de -->
<string name="app_name" translatable="false">Genesis</string>
<string name="GENERAL_SEARCH_HINT" translatable="true">search something or type a weblink</string>
<string name="GENERAL_FIND_HINT" translatable="true">find in page</string>
<string name="GENERAL_SEARCH_ENGINE" translatable="true">search engine</string>
<string name="GENERAL_HOME_URL" translatable="false">https://genesis.onion</string>
<string name="GENERAL_ERROR_TITLE" translatable="true">opps! something has went wrong</string>
<string name="GENERAL_TODO" translatable="true">everything</string>
<string name="GENERAL_PROJECT_NAME" translatable="false">Genesis search engine</string>
<string name="GENERAL_LOADING" translatable="true">digital freedom</string>
<string name="GENERAL_RELOAD" translatable="true">reload</string>
<string name="GENERAL_INTERNET_ERROR_MESSAGE" translatable="true">you are facing the one of the following problem. webpage or website might not be working. your internet connection might be poor. you might be using a proxy. website might be blocked by firewall</string>
<string name="GENERAL_FILE_PROVIDER_AUTHORITY" translatable="false">com.darkweb.genesissearchengine.fileprovider</string>
<string name="GENERAL_DEFAULT_HINT_SUGGESTION" translatable="true">BBC | Israel Strikes Again</string>
<string name="SETTING_DEFAULT_LANGUAGE" translatable="false">ru</string>
<string name="SETTING_BASIC_SETTING" translatable="true">System Setting</string>
<string name="SETTING_DEFAULT_BROWSER" translatable="true">make Genesis your default browser</string>
<string name="SETTING_HEADER" translatable="true">System Setting</string>
<string name="SETTING_SEARCH_ENGINE" translatable="true">search Engine</string>
<string name="SETTING_JAVASCRIPT" translatable="true">javascript</string>
<string name="SETTING_CLEAR_HISTORY" translatable="true">remove browsed web links</string>
<string name="SETTING_FONT_TITLE" translatable="true">font customize</string>
<string name="SETTING_ADJUST_FONT" translatable="true">System Font Constomization</string>
<string name="SETTING_MANUAL_FONT" translatable="true">change font automatically</string>
<string name="SETTING_COOKIE_TEXT_INFO" translatable="true">Cookie Setting</string>
<string name="SETTING_COOKIE" translatable="true">cookies</string>
<string name="SETTING_NOTIFICATION_HEADER" translatable="true">System Setting . Notification</string>
<string name="SETTING_NOTIFICATION_HEADER_1" translatable="true">notifications</string>
<string name="SETTING_NOTIFICATION_HEADER_1_INFO" translatable="true">change notification preferences</string>
<string name="SETTING_NOTIFICATION_DISABLE_STATUS_NOTIFICATION" translatable="true">condition of network and notifications</string>
<string name="SETTING_NOTIFICATION_DISABLE_STATUS_NOTIFICATION_INFO" translatable="true">local notifications</string>
<string name="SETTING_NOTIFICATION_OPEN_NOTIFICATION_MANAGER" translatable="true">customize Software notification</string>
<string name="SETTING_NOTIFICATION_OPEN_NOTIFICATION_MANAGER_INFO" translatable="true">system notifications</string>
<string name="SETTING_ORBOT_LOG_HEADER" translatable="true">change the way how system Log appear</string>
<string name="SETTING_ORBOT_LIST_VIEW" translatable="true">show Log using modern list view</string>
<string name="SETTING_ORBOT_LIST_VIEW_INFO" translatable="true">toogle between classic and modern list view</string>
<string name="SETTING_SEARCH" translatable="true">manage search engine</string>
<string name="SETTING_SEARCH_INFO" translatable="true">add, set default. show suggestions</string>
<string name="SETTING_NOTIFICATION" translatable="true">manage notifications</string>
<string name="SETTING_NOTIFICATION_INFO" translatable="true">new features, condition of network</string>
<string name="SETTING_SEARCH_HEADER" translatable="true">Customize Software . Search Engine</string>
<string name="SETTING_SEARCH_HEADER_1" translatable="true">supported search engines</string>
<string name="SETTING_SEARCH_HEADER_1_INFO" translatable="true">choose Default search engine</string>
<string name="SETTING_SEARCH_HEADER_2" translatable="true">Customize Software . Search Engine</string>
<string name="SETTING_SEARCH_HEADER_2_INFO" translatable="true">change how Web Searches appear</string>
<string name="SETTING_SEARCH_DEFAULT" translatable="false">default</string>
<string name="SETTING_SEARCH_GENESIS" translatable="false">Genesis</string>
<string name="SETTING_SEARCH_DUCK" translatable="false">DuckDuckGo</string>
<string name="SETTING_SEARCH_GOOGLE" translatable="false">Google</string>
<string name="SETTING_SEARCH_AMAZON" translatable="false">Bing</string>
<string name="SETTING_SEARCH_BING" translatable="false">Wikipedia</string>
<string name="SETTING_SEARCH_HISTORY" translatable="true">show browsed web links</string>
<string name="SETTING_SEARCH_SUGGESTIONS" translatable="true">show suggestions during searching</string>
<string name="SETTING_SEARCH_HISTORY_INFO" translatable="true">suggestions from browsed web links appear when you type in the search bar</string>
<string name="SETTING_SEARCH_SUGGESTION_INFO" translatable="true">focused suggestions appear when you type in the search bar</string>
<string name="SETTING_ACCESSIBILITY" translatable="true">accessibility</string>
<string name="SETTING_ACCESSIBILITY_INFO" translatable="true">text size, zoom, input using voice</string>
<string name="SETTING_ACCESSIBILITY_HEADER" translatable="true">customize | accessibility</string>
<string name="SETTING_CLEAR" translatable="true">clear private data</string>
<string name="SETTING_CLEAR_INFO" translatable="true">tabs, browsed web links, bookmark, cookies, cache</string>
<string name="SETTING_CLEAR_HEADER" translatable="true">Change System Setting. Clear System Data</string>
<string name="SETTING_CLEAR_BUTTON" translatable="true">clear Data</string>
<string name="SETTING_CLEAR_OPTION_1" translatable="true">delete all tabs</string>
<string name="SETTING_CLEAR_OPTION_2" translatable="true">delete browsed web links</string>
<string name="SETTING_CLEAR_OPTION_3" translatable="true">delete bookmarks</string>
<string name="SETTING_CLEAR_OPTION_4" translatable="true">delete cache</string>
<string name="SETTING_CLEAR_OPTION_5" translatable="true">delete suggestions</string>
<string name="SETTING_CLEAR_OPTION_6" translatable="true">delete data</string>
<string name="SETTING_CLEAR_OPTION_7" translatable="true">delete session</string>
<string name="SETTING_CLEAR_OPTION_8" translatable="true">delete cookies</string>
<string name="SETTING_CLEAR_OPTION_9" translatable="true">delete customize</string>
<string name="SETTING_ACCESSIBILITY_FONT" translatable="true">font scaling</string>
<string name="SETTING_ACCESSIBILITY_FONT_INFO" translatable="true">scale web content according to system font size</string>
<string name="SETTING_ACCESSIBILITY_ZOOM" translatable="true">turn on zoom</string>
<string name="SETTING_ACCESSIBILITY_ZOOM_INFO" translatable="true">turn on and force zoom for all webpages</string>
<string name="SETTING_ACCESSIBILITY_VOICE" translatable="true">input using voice</string>
<string name="SETTING_ACCESSIBILITY_VOICE_INFO" translatable="true">allow voice dictation in the url bar</string>
<string name="SETTING_ACCESSIBILITY_FONT_CUSTOM" translatable="true">select custom font scaling</string>
<string name="SETTING_ACCESSIBILITY_FONT_CUSTOM_SAMPLE" translatable="true">drag the slider until you can read this comfortably. text should look at least this big after double-tapping on a paragraph</string>
<string name="SETTING_ACCESSIBILITY_200_PERCENT" translatable="true">200%</string>
<string name="SETTING_INTERACTION" translatable="true">interactions</string>
<string name="SETTING_INTERACTION_INFO" translatable="true">change the way of interacting with website content</string>
<string name="SETTING_PRIVACY" translatable="true">User On</string>
<string name="SETTING_PRIVACY_INFO" translatable="true">user survelance, logins, data choices</string>
<string name="SETTING_TRACKING" translatable="true">User Surveillance Protection</string>
<string name="SETTING_TRACKING_INFO" translatable="true">adblock, trackers, fingerprinting</string>
<string name="SETTING_PRIVACY_HEADER" translatable="true">System Setting . privacy</string>
<string name="SETTING_TRACKING_HEADER" translatable="true">System Setting . user survelance protection</string>
<string name="SETTING_TRACKING_SUB_HEADER" translatable="true">protect your online identity</string>
<string name="SETTING_TRACKING_SUB_HEADER_INFO" translatable="true">keep your identity private. we can protect you from several trackers which follow you online. this System Setting can also be used to block advertisement</string>
<string name="SETTING_PRIVACY_DONOT_TRACK" translatable="true">save yourself from user Survelance Protection</string>
<string name="SETTING_PRIVACY_DONOT_TRACK_INFO" translatable="true">Genesis will tell sites not to track me</string>
<string name="SETTING_PRIVACY_DONOT_TRACK_INFO_SECURITY" translatable="true">tell website not to track me</string>
<string name="SETTING_PRIVACY_TRACKING_PROTECTION" translatable="true">User Surveillance Protection</string>
<string name="SETTING_PRIVACY_TRACKING_PROTECTION_INFO" translatable="true">enable user Survelance Protection provided by Genesis</string>
<string name="SETTING_PRIVACY_COOKIES" translatable="true">website cookies</string>
<string name="SETTING_PRIVACY_COOKIES_INFO" translatable="true">select website cookies preferences according to your security needs</string>
<string name="SETTING_PRIVACY_CLEAR_PRIVATE_DATA" translatable="true">clear private data on exit</string>
<string name="SETTING_PRIVACY_CLEAR_PRIVATE_DATA_INFO" translatable="true">clear data automatically once the software is closed</string>
<string name="SETTING_PRIVACY_CLEAR_PRIVATE_HEADER" translatable="true">private Browsing</string>
<string name="SETTING_PRIVACY_CLEAR_PRIVATE_HEADER_INFO" translatable="true">keep your identity safe and use the options below</string>
<string name="SETTING_PRIVACY_COOKIES_OPTION1" translatable="true">enabled</string>
<string name="SETTING_PRIVACY_COOKIES_OPTION2" translatable="true">enabled, excluding website tracking cookies</string>
<string name="SETTING_PRIVACY_COOKIES_OPTION3" translatable="true">enabled, excluding 3rd party</string>
<string name="SETTING_PRIVACY_COOKIES_OPTION4" translatable="true">disabled</string>
<string name="SETTING_PRIVACY_TRACKING_OPTION1" translatable="true">disable protection</string>
<string name="SETTING_PRIVACY_TRACKING_OPTION1_INFO" translatable="true">allow identity Survelance Protection. this might cause your online identity to be stolen</string>
<string name="SETTING_PRIVACY_TRACKING_OPTION2" translatable="true">default (recommended)</string>
<string name="SETTING_PRIVACY_TRACKING_OPTION2_INFO" translatable="true">block online advertisement and social web user Survelance. pages will load as default</string>
<string name="SETTING_PRIVACY_TRACKING_OPTION3" translatable="true">strict policy</string>
<string name="SETTING_PRIVACY_TRACKING_OPTION3_INFO" translatable="true">stop all known trackers, pages will load faster but some functionality might not work</string>
<string name="SETTING_PRIVACY_JAVASCRIPT" translatable="true">javascript</string>
<string name="SETTING_PRIVACY_JAVASCRIPT_INFO" translatable="true">disable java scripting for various script attacks</string>
<string name="SETTING_ADVANCE_HEADER" translatable="true">System Setting . complex System Setting</string>
<string name="SETTING_ADVANCE_RESTORE_TAB" translatable="true">restore tabs</string>
<string name="SETTING_ADVANCE_RESTORE_TAB_INFO" translatable="true">dont restore after exiting browser</string>
<string name="SETTING_ADVANCE_TITILE_THEME" translatable="true">toolbar theme</string>
<string name="SETTING_ADVANCE_TITILE_THEME_INFO" translatable="true">set toolbar theme as defined in website</string>
<string name="SETTING_ADVANCE_SHOW_IMAGES" translatable="true">show images</string>
<string name="SETTING_ADVANCE_SHOW_IMAGES_INFO" translatable="true">always load website images</string>
<string name="SETTING_ADVANCE_WEB_FONTS" translatable="true">show web fonts</string>
<string name="SETTING_ADVANCE_WEB_FONTS_INFO" translatable="true">download remote fonts when loading a page</string>
<string name="SETTING_ADVANCE_MEDIA" translatable="true">allow autoplay</string>
<string name="SETTING_ADVANCE_MEDIA_INFO" translatable="true">allow media to start automatically</string>
<string name="SETTING_ADVANCE_DATA_SAVER" translatable="true">data saver</string>
<string name="SETTING_ADVANCE_TAB" translatable="true">tab</string>
<string name="SETTING_ADVANCE_TAB_INFO" translatable="true">change the way how the tab behaves after restarting the software</string>
<string name="SETTING_ADVANCE_MEDIA_SUB_HEADER" translatable="true">media</string>
<string name="SETTING_ADVANCE_DATA_SAVER_INFO" translatable="true">change default data saver customize</string>
<string name="SETTING_ADVANCE_MEDIA_SUB_HEADER_INFO" translatable="true">change default media customize</string>
<string name="SETTING_ADVANCE_IMAGE_OPTION_1" translatable="true">always show images</string>
<string name="SETTING_ADVANCE_IMAGE_OPTION_2" translatable="true">only show images when using wifi</string>
<string name="SETTING_ADVANCE_IMAGE_OPTION_3" translatable="true">block all images</string>
<string name="SETTING_ADVANCE" translatable="true">Advance System Setting</string>
<string name="SETTING_ADVANCE_INFO" translatable="true">restore tabs, data saver, developer tools</string>
<string name="SETTING_PROXY" translatable="true">onion condition of proxy</string>
<string name="SETTING_PROXY_INFO" translatable="true">check onion condition of network</string>
<string name="SETTING_REPORT" translatable="true">report website</string>
<string name="SETTING_REPORT_INFO" translatable="true">report abusive website</string>
<string name="SETTING_RATEUS" translatable="true">rate this app</string>
<string name="SETTING_RATEUS_INFO" translatable="true">rate and comment on playstore</string>
<string name="SETTING_SHARE" translatable="true">share this app</string>
<string name="SETTING_SHARE_INFO" translatable="true">share this software with your friends</string>
<string name="SETTING_GENERAL_HEADER" translatable="true">System Setting . general customize</string>
<string name="SETTING_GENERAL" translatable="true">Default System Setting</string>
<string name="SETTING_GENERAL_INFO" translatable="true">homepage, language</string>
<string name="SETTING_GENERAL_FULLSCREEN_BROWSING" translatable="true">full-screen browsing</string>
<string name="SETTING_GENERAL_FULLSCREEN_BROWSING_INFO" translatable="true">hide the browser toolbar when scrolling down a page</string>
<string name="SETTING_GENERAL_LANGUAGE" translatable="true">language</string>
<string name="SETTING_GENERAL_LANGUAGE_INFO" translatable="true">change the language of your browser</string>
<string name="SETTING_GENERAL_THEME" translatable="true">software theme</string>
<string name="SETTING_GENERAL_THEME_INFO" translatable="true">choose bright and dark theme</string>
<string name="SETTING_GENERAL_THEME_LIGHT" translatable="true">theme bright</string>
<string name="SETTING_GENERAL_THEME_DARK" translatable="true">theme Dark</string>
<string name="SETTING_GENERAL_INFO_OPTION" translatable="true">change full-screen browsing and language</string>
<string name="SETTING_GENERAL_THEME_DEFAULT" translatable="true">system Default</string>
<string name="SETTING_GENERAL_HOME" translatable="true">homepage</string>
<string name="SETTING_GENERAL_HOME_INFO" translatable="false">about:blank</string>
<string name="SETTING_GENERAL_OPEN_URL_IN_NEW_tAB" translatable="true">new tab</string>
<string name="SETTING_GENERAL_OPEN_URL_IN_NEW_tAB_INFO" translatable="true">open homepage in new tab</string>
<string name="SETTING_CLEAR_CACHE_OPTION_1" translatable="true">remove all tabs</string>
<string name="SETTING_CLEAR_CACHE_OPTION_2" translatable="true">remove browsed web links</string>
<string name="SETTING_CLEAR_CACHE_OPTION_3" translatable="true">remove bookmarks</string>
<string name="SETTING_CLEAR_CACHE_OPTION_4" translatable="true">remove browsing cache</string>
<string name="SETTING_CLEAR_CACHE_OPTION_5" translatable="true">remove suggestions</string>
<string name="SETTING_CLEAR_CACHE_OPTION_6" translatable="true">remove site data</string>
<string name="SETTING_CLEAR_CACHE_OPTION_7" translatable="true">remove session data</string>
<string name="SETTING_CLEAR_CACHE_OPTION_8" translatable="true">remove web browsing cookies</string>
<string name="SETTING_CLEAR_CACHE_OPTION_9" translatable="true">remove browser customization</string>
<string name="ALERT_UPDATE_BRIDGES" translatable="true">provide a Bridge you know</string>
<string name="ALERT_UPDATE_BRIDGES_INFO" translatable="true">enter bridge information from a trusted source</string>
<string name="ALERT_ADD_BRIDGES_HINT" translatable="false">Bridge ...</string>
<string name="ALERT_REQUEST_BRIDGE" translatable="true">request</string>
<string name="ALERT_SAVE_BRIDGE" translatable="true">ok</string>
<string name="ALERT_CREATE_BOOKMARK" translatable="true">bookmark website</string>
<string name="ALERT_CREATE_BOOKMARK_INFO" translatable="true">add this page to your bookmarks</string>
<string name="ALERT_CLEAR_HISTORY" translatable="true">delete browsed web links and Data</string>
<string name="ALERT_CLEAR_BOOKMARK" translatable="true">clear bookmark and Data</string>
<string name="ALERT_CLEAR_HISTORY_INFO" translatable="true">clearing data will remove browsed web links, cookies, and other browsing data</string>
<string name="ALERT_CLEAR_BOOKMARK_INFO" translatable="true">deleting data will deleting bookmarked websites</string>
<string name="ALERT_DISMISS" translatable="true">dismiss</string>
<string name="ALERT_CLEAR" translatable="true">cancel</string>
<string name="ALERT_ADD" translatable="true">ok</string>
<string name="ALERT_TITLE_ADD" translatable="true">new bookmark</string>
<string name="ALERT_SECURE" translatable="false">https://</string>
<string name="ALERT_SECURE_INFO" translatable="true">connection is secure</string>
<string name="ALERT_SECURE_INFO_DETAIL" translatable="true">your information(for example, password or credit card numbers) is private when it is sent to this site</string>
<string name="ALERT_SECURE_INFO_SETTINGS" translatable="true">System and User Surveillance Setting</string>
<string name="ALERT_REPORT" translatable="true">report</string>
<string name="ALERT_REPORT_URL" translatable="true">report website</string>
<string name="ALERT_REPORT_URL_INFO" translatable="true">if you think this URL is illegal or disturbing, report it to us, so we can take legal action</string>
<string name="ALERT_REPORT_URL_SUCCESS" translatable="true">was reported successfully</string>
<string name="ALERT_REPORT_URL_SUCCESS_INFO" translatable="true">url was reported successfully. if something found, legal action will be taken</string>
<string name="ALERT_RATEUS" translatable="true">rate us</string>
<string name="ALERT_RATEUS_INFO" translatable="true">tell others what you think about this app</string>
<string name="ALERT_RATE" translatable="true">rate</string>
<string name="ALERT_RATEUS_FAILURE" translatable="true">we are sorry to hear that!</string>
<string name="ALERT_RATEUS_FAILURE_INFO" translatable="true">if you are having difficulty while using this software please reach out to us via email. we will try to solve your problem as soon as possible</string>
<string name="ALERT_MAIL" translatable="true">mail</string>
<string name="ALERT_BRIDGE_MAIL" translatable="true">request new Bridge</string>
<string name="ALERT_BRIDGE_MAIL_INFO" translatable="true">select mail to request a bridge address. once you recieve it, copy and paste it into the above box and start the software.</string>
<string name="ALERT_LANGUAGE_SUPPORT_FAILURE" translatable="true">language not supported</string>
<string name="ALERT_LANGUAGE_SUPPORT_FAILURE_INFO" translatable="true">system language is not supported by this software. we are working to include it soon</string>
<string name="ALERT_ORBOT_INIT" translatable="true">initializing Orbot</string>
<string name="ALERT_NOT_SUPPORTED" translatable="true">action not supported</string>
<string name="ALERT_NOT_SUPPORTED_INFO" translatable="true">no software found to handle the following command</string>
<string name="ALERT_WELCOME_MESSAGE" translatable="true">welcome | hidden web Gateway</string>
<string name="ALERT_WELCOME_MESSAGE_INFO" translatable="true">this software provide you a platform to search and open hidden web urls. here are few suggestions\n</string>
<string name="ALERT_WELCOME_MESSAGE_BT_1" translatable="true">hidden web online market</string>
<string name="ALERT_WELCOME_MESSAGE_BT_2" translatable="true">leaked documents and books</string>
<string name="ALERT_WELCOME_MESSAGE_BT_3" translatable="true">dark web news and articles</string>
<string name="ALERT_WELCOME_MESSAGE_BT_4" translatable="true">secret softwares and hacking tools</string>
<string name="ALERT_WELCOME_MESSAGE_BT_5" translatable="true">dont show again</string>
<string name="ALERT_WELCOME_MESSAGE_BT_6" translatable="true">finance and money</string>
<string name="ALERT_WELCOME_MESSAGE_BT_7" translatable="true">social societies</string>
<string name="ALERT_LOCAL_UPGRADE" translatable="true">manual</string>
<string name="ALERT_PLAYSTORE_UPGRADE" translatable="true">playstore</string>
<string name="ALERT_LONG_URL" translatable="true">web link notification</string>
<string name="ALERT_LONG_URL_OPTION_1" translatable="true">open in new tab</string>
<string name="ALERT_LONG_URL_OPTION_2" translatable="true">open in current tab</string>
<string name="ALERT_LONG_URL_OPTION_3" translatable="true">copy to clipboard</string>
<string name="ALERT_LONG_FILE" translatable="true">file notification</string>
<string name="ALERT_DOWNLOAD" translatable="true">download notification</string>
<string name="ALERT_DOWNLOAD_OPTION_1" translatable="true">open url in new tab</string>
<string name="ALERT_DOWNLOAD_OPTION_2" translatable="true">open url in current tab</string>
<string name="ALERT_DOWNLOAD_OPTION_3" translatable="true">copy url to clipboard</string>
<string name="ALERT_DOWNLOAD_OPTION_4" translatable="true">open image in new tab</string>
<string name="ALERT_DOWNLOAD_OPTION_5" translatable="true">open image in current tab</string>
<string name="ALERT_DOWNLOAD_OPTION_6" translatable="true">copy image to clipboard</string>
<string name="ALERT_DOWNLOAD_OPTION_7" translatable="true">download image file</string>
<string name="ALERT_DOWNLOAD_NOTIFICATION" translatable="true">download notification</string>
<string name="ALERT_LONG_URL_TITLE" translatable="true">web link notification</string>
<string name="ALERT_LONG_URL_MESSAGE" translatable="true"/>
<string name="ALERT_NOT_SUPPORTED_MESSAGE" translatable="true">no software found to handle email</string>
<string name="ALERT_DOWNLOAD_MESSAGE" translatable="true">download file |</string>
<string name="ALERT_DATA_CLEARED" translatable="true">data cleared | restart required</string>
<string name="ALERT_DATA_CLEARED_INFO" translatable="true">private data cleared successfully. some default system settings will require this software to restart. now you can safely continue browsing</string>
<string name="ALERT_UNDO_TAB_REMOVE_INFO" translatable="true">tab closed</string>
<string name="ALERT_UNDO_TAB_REMOVE_BUTTON" translatable="true">undo</string>
<string name="BRIDGE_BASIC_SETTING" translatable="true">security customize</string>
<string name="BRIDGE_SETTING" translatable="true">Bridge customize</string>
<string name="BRIDGE_AUTO" translatable="true">create automatically</string>
<string name="BRIDGE_AUTO_INFO" translatable="true">automatically configure bridge customize</string>
<string name="BRIDGE_MANUAL" translatable="true">provide a bridge that you know</string>
<string name="BRIDGE_PORT_HINT" translatable="true">paste custom bridge</string>
<string name="BRIDGE_HEADER" translatable="true">proxy customize | Bridge</string>
<string name="BRIDGE_DESC" translatable="true">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_TITLE" translatable="true">select default bridge</string>
<string name="BRIDGE_REQUEST" translatable="true">request</string>
<string name="BRIDGE_OBFS4" translatable="true">obfs4 (recommended)</string>
<string name="BRIDGE_MEEK" translatable="false">meek-azure (china)</string>
<string name="ORBOT_LOG" translatable="true">proxy logs</string>
<string name="ORBOT_LOG_HEADER" translatable="true">System Log info</string>
<string name="ORBOT_LOG_INFO" translatable="true">if you are facing connectivity issue while starting Genesis please copy the following code and find issue online or send it to us, so we can try to help you out</string>
<string name="HOME_MENU__ORBOT_LOGS" translatable="true">Orbot logs</string>
<string name="HOME_MENU__NEW_TABS" translatable="true">new tabs</string>
<string name="HOME_MENU_CLOSE_TABS" translatable="true">close tab</string>
<string name="HOME_MENU_OPEN_RECENT_TABS" translatable="true">open recent tabs</string>
<string name="HOME_MENU_LANGUAGE" translatable="true">language</string>
<string name="HOME_MENU_DOWNLOAD" translatable="true">downloads</string>
<string name="HOME_MENU_HISTORY" translatable="true">browsed web links</string>
<string name="HOME_MENU_SETTING" translatable="true">System Setting</string>
<string name="HOME_MENU_DESKTOP" translatable="true">desktop site</string>
<string name="HOME_MENU_BOOKMARK" translatable="true">save this page</string>
<string name="HOME_MENU_OPEN_BOOKMARK" translatable="true">bookmarks</string>
<string name="HOME_MENU_REPORT" translatable="true">report website</string>
<string name="HOME_MENU_RATE" translatable="true">rate this app</string>
<string name="HOME_MENU_FIND" translatable="true">find in page</string>
<string name="HOME_MENU_QUIT" translatable="true">exit</string>
<string name="HOME_MENU_SHARE" translatable="true">share</string>
<string name="TAB_MENU_OPEN_TAB" translatable="true">new tabs</string>
<string name="TAB_MENU_CLOSE_TAB" translatable="true">close all tabs</string>
<string name="TAB_MENU_SETTINGS" translatable="true">System Setting</string>
<string name="TAB_LIST_SELECT" translatable="true">select tabs</string>
<string name="SHARED_RECYCLER_VIEW_OPEN" translatable="true">open tabs</string>
<string name="SHARED_RECYCLER_VIEW_COPY" translatable="true">copy</string>
<string name="SHARED_RECYCLER_VIEW_SHARE" translatable="true">share</string>
<string name="SHARED_RECYCLER_VIEW_CLEAR_LONG_PRESSES" translatable="true">clear selection</string>
<string name="SHARED_RECYCLER_VIEW_OPEN_CURRENT_TAB" translatable="true">open in current tab</string>
<string name="SHARED_RECYCLER_VIEW_OPEN_NEW_TAB" translatable="true">open in new tab</string>
<string name="SHARED_RECYCLER_VIEW_DELETE" translatable="true">delete</string>
<string name="HISTORY_TITLE" translatable="true">browsed web links</string>
<string name="HISTORY_CLEAR" translatable="true">remove this</string>
<string name="HISTORY_SEARCH_HINT" translatable="true">search ...</string>
<string name="BOOKMARK_TITLE" translatable="true">bookmark</string>
<string name="BOOKMARK_CLEAR" translatable="true">remove this</string>
<string name="BOOKMARK_SEARCH_HINT" translatable="true">search ...</string>
<string name="HELP_RETRY" translatable="true">retry</string>
<string name="HELP_RETRY_INFO" translatable="true">opps! network connection error. network not connected</string>
<string name="HELP_TITLE" translatable="true">help and support</string>
<string name="LANGUAGE_TITLE" translatable="true">language</string>
<string name="LANGUAGE_LANGUAGE_MESSAGE_TITLE" translatable="true">change language</string>
<string name="LANGUAGE_LANGUAGE_MESSAGE_DESC" translatable="true">we only run on the following languages. we would be adding more soon</string>
<string name="LANGUAGE_LANGUAGE_MESSAGE_BT_DEFAULT" translatable="true">english (united states)</string>
<string name="LANGUAGE_LANGUAGE_MESSAGE_BT_1" translatable="true">german (germany)</string>
<string name="LANGUAGE_LANGUAGE_MESSAGE_BT_2" translatable="true">italian (italy)</string>
<string name="LANGUAGE_LANGUAGE_MESSAGE_BT_3" translatable="true">portuguese (brazil)</string>
<string name="LANGUAGE_LANGUAGE_MESSAGE_BT_4" translatable="true">russian (russia)</string>
<string name="LANGUAGE_LANGUAGE_MESSAGE_BT_5" translatable="true">ukrainian (ukraine)</string>
<string name="LANGUAGE_LANGUAGE_MESSAGE_BT_6" translatable="true">chinese simplified (mainland china)</string>
<string name="ORBOT_SETTING_WARNING" translatable="true">⚠️ warning</string>
<string name="ORBOT_SETTING_CUSTOM_BRIDGE" translatable="true">customize Bridges</string>
<string name="ORBOT_SETTING_BRIDGE_ENABLE" translatable="true">enable Bridges</string>
<string name="ORBOT_SETTING_ENABLE_VPN" translatable="true">enable VPN serivces</string>
<string name="ORBOT_SETTING_GATEWAY_INFO" translatable="true">enable Bridge Gateway</string>
<string name="ORBOT_SETTING_GATEWAY_BUTTON" translatable="true">enable Gateway</string>
<string name="PROXY_STATUS_HEADER" translatable="true">condition of proxy</string>
<string name="ORBOT_PROXY_STATUS_INFO" translatable="true">current condition of orbot proxy</string>
<string name="PROXY_SUB_HEADER1" translatable="true">Orbot condition of proxy</string>
<string name="PROXY_SUB_HEADER2" translatable="true">onion</string>
<string name="PROXY_VPN_STATUS" translatable="true">VPN condition of connectivity</string>
<string name="PROXY_BRIDGE_STATUS" translatable="true">Bridge condition of proxy</string>
<string name="PROXY_SUB_HEADER3" translatable="true">info | change System Setting</string>
<string name="PROXY_CONNECTIVITY_SETTING_INFO" translatable="true">you can change proxy by restarting the software and going to proxy manager. it can be opened by clicking on a gear icon at bottom</string>
<string name="ORBOT_HEADER" translatable="true">proxy customize</string>
<string name="ORBOT_DESCRIPTION" translatable="true">we connect you to the Tor network run by thousands of volunteers around the world! Can these options help you</string>
<string name="ORBOT_TITLE" translatable="true">internet is censored here (bypass firewall)</string>
<string name="ORBOT_OPTION_DESCRIPTION" translatable="true">bypass firewall</string>
<string name="ORBOT_BRIDGE_WARNING" translatable="true">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="NOTIFICATION_DEFAULT_LABEL" translatable="true">default.jpg</string>
<string name="NOTIFICATION_OPEN_TEXT" translatable="true">open this</string>
<string name="HOME_TAB_TEXT" translatable="true">1</string>
<string name="HOME_CONNECT" translatable="false">connect</string>
<string name="HOME_LOADING" translatable="false">Genesis is paused at the moment</string>
<string name="HOME_LOADING_STATIC" translatable="false">~ Genesis on standby at the moment</string>
<string name="HOME_TAB_EMPTY" translatable="true">open tabs will show here</string>
<string name="LANDING_BRIDGES_INFO" translatable="true">"sometimes you need a Bridge to get to Tor"</string>
<string name="LANDING_MORE" translatable="true">"tell me more"</string>
<string name="LANDING_VPN_SETUP" translatable="true">"you can enable any software to go through Tor using Onion"</string>
<string name="LANDING_VPN_SETUP_SUB_INFO" translatable="true">"this won\\'t make you anonymous, but it will help you bypass firewalls"</string>
<string name="LANDING_VPN_CHOOSE_APPS" translatable="true">"choose apps"</string>
<string name="LANDING_HELLO" translatable="true">"hello"</string>
<string name="LANDING_WELCOME" translatable="true">"welcome to Tor on mobile."</string>
<string name="LANDING_BROWSE_INFO" translatable="true">"browse the internet how you expect you should."</string>
<string name="LANDING_NO_TRACKING" translatable="true">"no User Surveillance Protection. no censorship."</string>
<string name="ERROR_M1" translatable="true">this site is not reachable</string>
<string name="ERROR_M2" translatable="true">an error occurred while connecting with website</string>
<string name="ERROR_M3" translatable="true">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" translatable="true">the page is currently not working due to some reason</string>
<string name="ERROR_M5" translatable="true">please contact the website owners to inform them of this problem.</string>
<string name="ERROR_M6" translatable="true">reload</string>
<string name="PREF_LANGUAGE" translatable="true">pref_language</string>
<string name="invalid_package_signature" translatable="true">Invalid package signature</string>
<string name="autofill_sign_in_prompt" translatable="true">click to sign in.</string>
<string name="autofill_manual_prompt" translatable="true">click to manually select data.</string>
<string name="security_exception" translatable="true">Web domain security exception.</string>
<string name="dal_exception" translatable="true">DAL verification failure.</string>
<item name="LaguageID" type="id"/>
<item name="LaguageRegion" type="id"/>
<string-array name="ARRAY_FONTS" translatable="true">
<item>55 Percent</item>
<item>70 Percent</item>
<item>85 Percent</item>
<item>100 Percent</item>
<item>115 Percent</item>
<item>130 Percent</item>
<item>145 Percent</item>
</string-array>
<string-array name="ARRAY_DEFAULT_BOOLEAN" translatable="true">
<item>Enabled</item>
<item>Disabled</item>
</string-array>
<string-array name="ARRAY_NOTIFICATION" translatable="true">
<item>Enable All</item>
<item>Disable All</item>
<item>No Bandwidth</item>
</string-array>
<string-array name="ARRAY_COOKIES" translatable="true">
<item>Allow All</item>
<item>Allow Trusted</item>
<item>Allow None</item>
<item>Allow Visited</item>
<item>Allow Non Tracker</item>
</string-array>
<!-- Generated by Automatic String Resource Translation -->
<!-- https://asrt.gluege.boerde.de -->
</resources>

View File

@ -1,22 +1,17 @@
<resources> <resources>
<!-- Application Strings --> <!-- Application Strings -->
<string name="app_name" translatable="false">Genesis</string>
<string name="GENERAL_SEARCH_HINT" translatable="true">Zoek of typ een webadres</string> <string name="GENERAL_SEARCH_HINT" translatable="true">Zoek of typ een webadres</string>
<string name="GENERAL_FIND_HINT" translatable="true">Zoek op pagina</string> <string name="GENERAL_FIND_HINT" translatable="true">Zoek op pagina</string>
<string name="GENERAL_SEARCH_ENGINE" translatable="true">Zoekmachine</string> <string name="GENERAL_SEARCH_ENGINE" translatable="true">Zoekmachine</string>
<string name="GENERAL_HOME_URL" translatable="false">https://genesis.onion</string>
<string name="GENERAL_ERROR_TITLE" translatable="true">\ U0020 \ U0020 \ U0020Opps! Er Is Iets Misgegaan</string> <string name="GENERAL_ERROR_TITLE" translatable="true">\ U0020 \ U0020 \ U0020Opps! Er Is Iets Misgegaan</string>
<string name="GENERAL_TODO" translatable="true">TODO</string> <string name="GENERAL_TODO" translatable="true">TODO</string>
<string name="GENERAL_PROJECT_NAME" translatable="false">Genesis-zoekmachine</string>
<string name="GENERAL_LOADING" translatable="true">Online Vrijheid</string> <string name="GENERAL_LOADING" translatable="true">Online Vrijheid</string>
<string name="GENERAL_RELOAD" translatable="true">Opnieuw laden</string> <string name="GENERAL_RELOAD" translatable="true">Opnieuw laden</string>
<string name="GENERAL_INTERNET_ERROR_MESSAGE" translatable="true">Dit kunnen de problemen zijn waarmee u wordt geconfronteerd \ n \ n • De webpagina of website is mogelijk niet beschikbaar \ n • Uw internetverbinding is mogelijk slecht \ n • U gebruikt mogelijk een proxy \ n • De website is mogelijk geblokkeerd door een firewall</string> <string name="GENERAL_INTERNET_ERROR_MESSAGE" translatable="true">Dit kunnen de problemen zijn waarmee u wordt geconfronteerd \ n \ n • De webpagina of website is mogelijk niet beschikbaar \ n • Uw internetverbinding is mogelijk slecht \ n • U gebruikt mogelijk een proxy \ n • De website is mogelijk geblokkeerd door een firewall</string>
<string name="GENERAL_FILE_PROVIDER_AUTHORITY" translatable="false">com.darkweb.genesissearchengine.fileprovider</string>
<string name="GENERAL_DEFAULT_HINT_SUGGESTION" translatable="true">BBC | Israel Strikes Again</string> <string name="GENERAL_DEFAULT_HINT_SUGGESTION" translatable="true">BBC | Israel Strikes Again</string>
<!-- Settings --> <!-- Settings -->
<string name="SETTING_DEFAULT_LANGUAGE" translatable="false">ru</string>
<string name="SETTING_BASIC_SETTING" translatable="true">Basisinstellingen</string> <string name="SETTING_BASIC_SETTING" translatable="true">Basisinstellingen</string>
<string name="SETTING_DEFAULT_BROWSER" translatable="true">Stel Genesis in als uw standaardbrowser</string> <string name="SETTING_DEFAULT_BROWSER" translatable="true">Stel Genesis in als uw standaardbrowser</string>
<string name="SETTING_HEADER" translatable="true">Instellingen</string> <string name="SETTING_HEADER" translatable="true">Instellingen</string>
@ -38,7 +33,6 @@
<string name="SETTING_ORBOT_LOG_HEADER" translatable="true">Logboekinstellingen</string> <string name="SETTING_ORBOT_LOG_HEADER" translatable="true">Logboekinstellingen</string>
<string name="SETTING_ORBOT_LIST_VIEW" translatable="true">Toon logboeken in geavanceerde lijstweergave</string> <string name="SETTING_ORBOT_LIST_VIEW" translatable="true">Toon logboeken in geavanceerde lijstweergave</string>
<string name="SETTING_ORBOT_LIST_VIEW_INFO" translatable="true">Toogle tussen klassieke en geavanceerde weergave</string> <string name="SETTING_ORBOT_LIST_VIEW_INFO" translatable="true">Toogle tussen klassieke en geavanceerde weergave</string>
<string name="SETTING_SEARCH" translatable="false">Zoekopdracht Beheren</string>
<string name="SETTING_SEARCH_INFO" translatable="true">Toevoegen, standaard instellen. suggesties weergeven</string> <string name="SETTING_SEARCH_INFO" translatable="true">Toevoegen, standaard instellen. suggesties weergeven</string>
<string name="SETTING_NOTIFICATION" translatable="true">Meldingen Beheren</string> <string name="SETTING_NOTIFICATION" translatable="true">Meldingen Beheren</string>
<string name="SETTING_NOTIFICATION_INFO" translatable="true">Nieuwe functies, netwerkstatus</string> <string name="SETTING_NOTIFICATION_INFO" translatable="true">Nieuwe functies, netwerkstatus</string>
@ -47,12 +41,6 @@
<string name="SETTING_SEARCH_HEADER_1_INFO" translatable="true">Kies standaard zoekmachine</string> <string name="SETTING_SEARCH_HEADER_1_INFO" translatable="true">Kies standaard zoekmachine</string>
<string name="SETTING_SEARCH_HEADER_2" translatable="true">Zoekinstelling</string> <string name="SETTING_SEARCH_HEADER_2" translatable="true">Zoekinstelling</string>
<string name="SETTING_SEARCH_HEADER_2_INFO" translatable="true">Beheer hoe zoekopdrachten worden weergegeven</string> <string name="SETTING_SEARCH_HEADER_2_INFO" translatable="true">Beheer hoe zoekopdrachten worden weergegeven</string>
<string name="SETTING_SEARCH_DEFAULT" translatable="false">Standaard</string>
<string name="SETTING_SEARCH_GENESIS" translatable="false">Genesis</string>
<string name="SETTING_SEARCH_DUCK" translatable="false">DuckDuckGo</string>
<string name="SETTING_SEARCH_GOOGLE" translatable="false">Google</string>
<string name="SETTING_SEARCH_AMAZON" translatable="false">Bing</string>
<string name="SETTING_SEARCH_BING" translatable="false">Wikipedia</string>
<string name="SETTING_SEARCH_HISTORY" translatable="true">Zoekgeschiedenis weergeven</string> <string name="SETTING_SEARCH_HISTORY" translatable="true">Zoekgeschiedenis weergeven</string>
<string name="SETTING_SEARCH_SUGGESTIONS" translatable="true">Zoeksuggesties weergeven</string> <string name="SETTING_SEARCH_SUGGESTIONS" translatable="true">Zoeksuggesties weergeven</string>
<string name="SETTING_SEARCH_HISTORY_INFO" translatable="true">Suggesties uit de zoekgeschiedenis verschijnen wanneer u typt in de zoekbalk</string> <string name="SETTING_SEARCH_HISTORY_INFO" translatable="true">Suggesties uit de zoekgeschiedenis verschijnen wanneer u typt in de zoekbalk</string>
@ -191,7 +179,6 @@
<string name="ALERT_CLEAR" translatable="true">Wissen</string> <string name="ALERT_CLEAR" translatable="true">Wissen</string>
<string name="ALERT_ADD" translatable="true">Klaar</string> <string name="ALERT_ADD" translatable="true">Klaar</string>
<string name="ALERT_TITLE_ADD" translatable="true">Nieuwe Bladwijzer</string> <string name="ALERT_TITLE_ADD" translatable="true">Nieuwe Bladwijzer</string>
<string name="ALERT_SECURE" translatable="false">https: //</string>
<string name="ALERT_SECURE_INFO" translatable="true">Verbinding is veilig</string> <string name="ALERT_SECURE_INFO" translatable="true">Verbinding is veilig</string>
<string name="ALERT_SECURE_INFO_DETAIL" translatable="true">Uw informatie (bijvoorbeeld wachtwoord of creditcardnummers) is privé wanneer deze naar deze site wordt verzonden</string> <string name="ALERT_SECURE_INFO_DETAIL" translatable="true">Uw informatie (bijvoorbeeld wachtwoord of creditcardnummers) is privé wanneer deze naar deze site wordt verzonden</string>
<string name="ALERT_SECURE_INFO_SETTINGS" translatable="true">Privacy-instellingen</string> <string name="ALERT_SECURE_INFO_SETTINGS" translatable="true">Privacy-instellingen</string>
@ -253,7 +240,6 @@
<string name="BRIDGE_AUTO" translatable="true">Zorg Voor Een Brug Die Ik Ken</string> <string name="BRIDGE_AUTO" translatable="true">Zorg Voor Een Brug Die Ik Ken</string>
<string name="BRIDGE_AUTO_INFO" translatable="true">Plak aangepaste bridge</string> <string name="BRIDGE_AUTO_INFO" translatable="true">Plak aangepaste bridge</string>
<string name="BRIDGE_MANUAL" translatable="true">Proxy-instellingen</string> <string name="BRIDGE_MANUAL" translatable="true">Proxy-instellingen</string>
<string name="BRIDGE_PORT_HINT" translatable="false">Brug</string>
<string name="BRIDGE_HEADER" translatable="true">Proxy Settings | Bridge</string> <string name="BRIDGE_HEADER" translatable="true">Proxy Settings | Bridge</string>
<string name="BRIDGE_DESC" translatable="true">Verzoek</string> <string name="BRIDGE_DESC" translatable="true">Verzoek</string>
<string name="BRIDGE_TITLE" translatable="true">obfs4 (aanbevolen)</string> <string name="BRIDGE_TITLE" translatable="true">obfs4 (aanbevolen)</string>
@ -357,8 +343,6 @@
<!-- Home View --> <!-- Home View -->
<string name="HOME_TAB_TEXT" translatable="true">1</string> <string name="HOME_TAB_TEXT" translatable="true">1</string>
<string name="HOME_CONNECT" translatable="false">Verbinden</string>
<string name="HOME_COPYRIGHT" translatable="false">Copyright © by Genesis Technologies | Built 1.0.2.2</string>
<string name="HOME_LOADING" translatable="true">Idle | Genesis on standby at the moment</string> <string name="HOME_LOADING" translatable="true">Idle | Genesis on standby at the moment</string>
<string name="HOME_LOADING_STATIC" translatable="true">Genesis op standby op dit moment</string> <string name="HOME_LOADING_STATIC" translatable="true">Genesis op standby op dit moment</string>
<string name="HOME_TAB_EMPTY" translatable="true">Open tabbladen worden hier weergegeven</string> <string name="HOME_TAB_EMPTY" translatable="true">Open tabbladen worden hier weergegeven</string>

View File

@ -1,22 +1,17 @@
<resources> <resources>
<!-- Application Strings --> <!-- Application Strings -->
<string name="app_name" translatable="false">Вікіпедія</string>
<string name="GENERAL_SEARCH_HINT" translatable="true">щось шукати або ввести веб-посилання</string> <string name="GENERAL_SEARCH_HINT" translatable="true">щось шукати або ввести веб-посилання</string>
<string name="GENERAL_FIND_HINT" translatable="true">знайти на сторінці</string> <string name="GENERAL_FIND_HINT" translatable="true">знайти на сторінці</string>
<string name="GENERAL_SEARCH_ENGINE" translatable="true">пошукова система</string> <string name="GENERAL_SEARCH_ENGINE" translatable="true">пошукова система</string>
<string name="GENERAL_HOME_URL" translatable="false">https://genesis.onion</string>
<string name="GENERAL_ERROR_TITLE" translatable="true">Опс! щось пішло не так</string> <string name="GENERAL_ERROR_TITLE" translatable="true">Опс! щось пішло не так</string>
<string name="GENERAL_TODO" translatable="true">todo</string> <string name="GENERAL_TODO" translatable="true">todo</string>
<string name="GENERAL_PROJECT_NAME" translatable="false">1111 пошукова система</string>
<string name="GENERAL_LOADING" translatable="true">цифрова свобода</string> <string name="GENERAL_LOADING" translatable="true">цифрова свобода</string>
<string name="GENERAL_RELOAD" translatable="true">перезавантажити</string> <string name="GENERAL_RELOAD" translatable="true">перезавантажити</string>
<string name="GENERAL_INTERNET_ERROR_MESSAGE" translatable="true">Ви стикаєтесь із однією з наведених нижче проблем. веб-сторінка або веб-сайт можуть не працювати. з’єднання з Інтернетом може бути поганим. можливо, ви використовуєте проксі. веб-сайт може бути заблокований брандмауером</string> <string name="GENERAL_INTERNET_ERROR_MESSAGE" translatable="true">Ви стикаєтесь із однією з наведених нижче проблем. веб-сторінка або веб-сайт можуть не працювати. з’єднання з Інтернетом може бути поганим. можливо, ви використовуєте проксі. веб-сайт може бути заблокований брандмауером</string>
<string name="GENERAL_FILE_PROVIDER_AUTHORITY" translatable="false">com.darkweb.genesissearchengine.fileprovider</string>
<string name="GENERAL_DEFAULT_HINT_SUGGESTION" translatable="true">ВВС, Ізраїль знову страйкує Ru</string> <string name="GENERAL_DEFAULT_HINT_SUGGESTION" translatable="true">ВВС, Ізраїль знову страйкує Ru</string>
<!-- Settings --> <!-- Settings -->
<string name="SETTING_DEFAULT_LANGUAGE" translatable="false">Налаштування системи</string>
<string name="SETTING_BASIC_SETTING" translatable="true">Зробити 1111 браузером за замовчуванням</string> <string name="SETTING_BASIC_SETTING" translatable="true">Зробити 1111 браузером за замовчуванням</string>
<string name="SETTING_DEFAULT_BROWSER" translatable="true">Налаштування системи</string> <string name="SETTING_DEFAULT_BROWSER" translatable="true">Налаштування системи</string>
<string name="SETTING_HEADER" translatable="true">Пошукова система</string> <string name="SETTING_HEADER" translatable="true">Пошукова система</string>
@ -47,12 +42,6 @@
<string name="SETTING_SEARCH_HEADER_1_INFO" translatable="true">змінити спосіб відображення веб-пошуків</string> <string name="SETTING_SEARCH_HEADER_1_INFO" translatable="true">змінити спосіб відображення веб-пошуків</string>
<string name="SETTING_SEARCH_HEADER_2" translatable="true">За замовчуванням</string> <string name="SETTING_SEARCH_HEADER_2" translatable="true">За замовчуванням</string>
<string name="SETTING_SEARCH_HEADER_2_INFO" translatable="true">1111</string> <string name="SETTING_SEARCH_HEADER_2_INFO" translatable="true">1111</string>
<string name="SETTING_SEARCH_DEFAULT" translatable="false">Бінг</string>
<string name="SETTING_SEARCH_GENESIS" translatable="false">1111</string>
<string name="SETTING_SEARCH_DUCK" translatable="false">DuckDuckGo</string>
<string name="SETTING_SEARCH_GOOGLE" translatable="false">Google</string>
<string name="SETTING_SEARCH_AMAZON" translatable="false">показати переглянуті веб-посилання</string>
<string name="SETTING_SEARCH_BING" translatable="false">показати пропозиції під час пошуку</string>
<string name="SETTING_SEARCH_HISTORY" translatable="true">пропозиції з переглянутих веб-посилань з’являються, коли ви вводите в рядок пошуку</string> <string name="SETTING_SEARCH_HISTORY" translatable="true">пропозиції з переглянутих веб-посилань з’являються, коли ви вводите в рядок пошуку</string>
<string name="SETTING_SEARCH_SUGGESTIONS" translatable="true">сфокусовані пропозиції з’являються, коли ви вводите в рядок пошуку</string> <string name="SETTING_SEARCH_SUGGESTIONS" translatable="true">сфокусовані пропозиції з’являються, коли ви вводите в рядок пошуку</string>
<string name="SETTING_SEARCH_HISTORY_INFO" translatable="true">доступність</string> <string name="SETTING_SEARCH_HISTORY_INFO" translatable="true">доступність</string>
@ -192,7 +181,6 @@
<string name="ALERT_CLEAR" translatable="true">Очистити</string> <string name="ALERT_CLEAR" translatable="true">Очистити</string>
<string name="ALERT_ADD" translatable="true">Готово</string> <string name="ALERT_ADD" translatable="true">Готово</string>
<string name="ALERT_TITLE_ADD" translatable="true">Нова закладка</string> <string name="ALERT_TITLE_ADD" translatable="true">Нова закладка</string>
<string name="ALERT_SECURE" translatable="false">https: //</string>
<string name="ALERT_SECURE_INFO" translatable="true">З\'єднання безпечне</string> <string name="ALERT_SECURE_INFO" translatable="true">З\'єднання безпечне</string>
<string name="ALERT_SECURE_INFO_DETAIL" translatable="true">Ваша інформація (наприклад, пароль або номери кредитних карток) є приватною, коли вона надсилається на цей сайт</string> <string name="ALERT_SECURE_INFO_DETAIL" translatable="true">Ваша інформація (наприклад, пароль або номери кредитних карток) є приватною, коли вона надсилається на цей сайт</string>
<string name="ALERT_SECURE_INFO_SETTINGS" translatable="true">Налаштування конфіденційності</string> <string name="ALERT_SECURE_INFO_SETTINGS" translatable="true">Налаштування конфіденційності</string>
@ -254,7 +242,6 @@
<string name="BRIDGE_AUTO" translatable="true">Створювати автоматично</string> <string name="BRIDGE_AUTO" translatable="true">Створювати автоматично</string>
<string name="BRIDGE_AUTO_INFO" translatable="true">Автоматично налаштовувати параметри мосту</string> <string name="BRIDGE_AUTO_INFO" translatable="true">Автоматично налаштовувати параметри мосту</string>
<string name="BRIDGE_MANUAL" translatable="true">Надайте міст, який я знаю</string> <string name="BRIDGE_MANUAL" translatable="true">Надайте міст, який я знаю</string>
<string name="BRIDGE_PORT_HINT" translatable="false">Вставити спеціальний міст</string>
<string name="BRIDGE_HEADER" translatable="true">Proxy Settings | Bridge</string> <string name="BRIDGE_HEADER" translatable="true">Proxy Settings | Bridge</string>
<string name="BRIDGE_DESC" translatable="true">Мости - це недоступні реле Tor, які ускладнюють блокування з\'єднань у мережу Tor. Через те, як деякі країни намагаються заблокувати Tor, деякі мости працюють в деяких країнах, але не в інших</string> <string name="BRIDGE_DESC" translatable="true">Мости - це недоступні реле Tor, які ускладнюють блокування з\'єднань у мережу Tor. Через те, як деякі країни намагаються заблокувати Tor, деякі мости працюють в деяких країнах, але не в інших</string>
<string name="BRIDGE_TITLE" translatable="true">Виберіть Типовий міст</string> <string name="BRIDGE_TITLE" translatable="true">Виберіть Типовий міст</string>
@ -358,8 +345,6 @@
<!-- Home View --> <!-- Home View -->
<string name="HOME_TAB_TEXT" translatable="true">1</string> <string name="HOME_TAB_TEXT" translatable="true">1</string>
<string name="HOME_CONNECT" translatable="false">Підключити</string>
<string name="HOME_COPYRIGHT" translatable="false">Copyright © by Genesis Technologies | Built 1.0.2.2</string>
<string name="HOME_LOADING" translatable="true">Idle | Genesis on standby at the moment</string> <string name="HOME_LOADING" translatable="true">Idle | Genesis on standby at the moment</string>
<string name="HOME_LOADING_STATIC" translatable="true">Буття в режимі очікування на даний момент</string> <string name="HOME_LOADING_STATIC" translatable="true">Буття в режимі очікування на даний момент</string>
<string name="HOME_TAB_EMPTY" translatable="true">Тут відкриються відкриті вкладки</string> <string name="HOME_TAB_EMPTY" translatable="true">Тут відкриються відкриті вкладки</string>

View File

@ -142,6 +142,12 @@
<string name="SETTING_PROXY" translatable="true">Onion Proxy Status</string> <string name="SETTING_PROXY" translatable="true">Onion Proxy Status</string>
<string name="SETTING_PROXY_INFO" translatable="true">Check onion network or status</string> <string name="SETTING_PROXY_INFO" translatable="true">Check onion network or status</string>
<string name="SETTING_REPORT" translatable="true">Report website</string> <string name="SETTING_REPORT" translatable="true">Report website</string>
<string name="SETTING_PRIVACY_POLICY" translatable="true">Privacy Policy</string>
<string name="SETTING_PRIVACY_POLICY_INFO" translatable="true">Genesis browser privacy policy</string>
<string name="SETTING_REPORT_WEBSITE" translatable="true">Report Website</string>
<string name="SETTING_REPORT_WEBSITE_INFO" translatable="true">Report website you find disturbing</string>
<string name="SETTING_SITEMAP" translatable="true">Sitemap</string>
<string name="SETTING_SITEMAP_INFO" translatable="true">Add your website to our search engine</string>
<string name="SETTING_REPORT_INFO" translatable="true">Report abusive website</string> <string name="SETTING_REPORT_INFO" translatable="true">Report abusive website</string>
<string name="SETTING_RATEUS" translatable="true">Rate this app</string> <string name="SETTING_RATEUS" translatable="true">Rate this app</string>
<string name="SETTING_RATEUS_INFO" translatable="true">Rate and comment on playstore</string> <string name="SETTING_RATEUS_INFO" translatable="true">Rate and comment on playstore</string>
@ -228,6 +234,7 @@
<string name="ALERT_LONG_URL_OPTION_1" translatable="true">Open In New Tab</string> <string name="ALERT_LONG_URL_OPTION_1" translatable="true">Open In New Tab</string>
<string name="ALERT_LONG_URL_OPTION_2" translatable="true">Open In Current Tab</string> <string name="ALERT_LONG_URL_OPTION_2" translatable="true">Open In Current Tab</string>
<string name="ALERT_LONG_URL_OPTION_3" translatable="true">Copy to Clipboard</string> <string name="ALERT_LONG_URL_OPTION_3" translatable="true">Copy to Clipboard</string>
<string name="ALERT_LONG_URL_OPTION_4" translatable="true">Download File</string>
<string name="ALERT_LONG_FILE" translatable="true">File Notification</string> <string name="ALERT_LONG_FILE" translatable="true">File Notification</string>
<string name="ALERT_DOWNLOAD" translatable="true">Download Notification</string> <string name="ALERT_DOWNLOAD" translatable="true">Download Notification</string>
<string name="ALERT_DOWNLOAD_OPTION_1" translatable="true">Open url in new tab</string> <string name="ALERT_DOWNLOAD_OPTION_1" translatable="true">Open url in new tab</string>
@ -247,6 +254,32 @@
<string name="ALERT_UNDO_TAB_REMOVE_INFO" translatable="true">Tab Closed</string> <string name="ALERT_UNDO_TAB_REMOVE_INFO" translatable="true">Tab Closed</string>
<string name="ALERT_UNDO_TAB_REMOVE_BUTTON" translatable="true">Undo</string> <string name="ALERT_UNDO_TAB_REMOVE_BUTTON" translatable="true">Undo</string>
<!-- Privacy Policy -->
<string name="PRIVACY_HEADER" translatable="true">Privacy Policy</string>
<string name="PRIVACY_DESCRIPTION" translatable="true">We don\'t collect information and thats our privacy in a nutshell</string>
<string name="HEADER_1" translatable="true">Search Leakages</string>
<string name="HEADER_1_DESC" translatable="true">At other search engines, when you do a search and then click on a link, your search terms are sent to that site you clicked on (in the HTTP referrer header). We call this sharing of personal information "search leakage”, For example, when you search for something private, you are sharing that private search not only with your search engine, but also with all the sites that you clicked on (for that search). In addition, when you visit any site, your computer automatically sends information about it to that site (including your User agent and IP address). This information can often be used to identify you directly. So when you do that private search, not only can those other sites know your search terms, but they can also know that you searched it. It is this combination of available information about you that raises privacy concerns. Genesis prevents search leakage by default. Instead, when you click on a link on our site, we route (redirect) that request in such a way so that it does not send your search terms to other sites. The other sites will still know that you visited them, but they will not know what search you entered beforehand.\n\nAt some other search engines (including us), you can also use an encrypted version (HTTPS), which as a byproduct doesn't usually send your search terms to sites. However, it is slower to connect to these versions and if you click on a site that also uses HTTPS then your search is sent. Nevertheless, the encrypted version does protect your search from being leaked onto the computers it travels on between you and us.\n\nAt Genesis, our encrypted version goes even further and automatically changes links from a number of major Web sites to point to the encrypted versions of those sites. It is modeled after (and uses code from) the HTTPS Everywhere. These sites include Wikipedia, Facebook, Twitter, and Amazon to name a few. Another way to prevent search leakage is by using something called a POST request, which has the effect of not showing your search in your browser, and, as a consequence, does not send it to other sites. You can turn on POST requests on our settings page, but it has its own issues. POST requests usually break browser back buttons, and they make it impossible for you to easily share your search by copying and pasting it out of your Web browser's address bar.\n\nFinally, if you want to prevent sites from knowing you visited them at all, you can use a proxy like Tor. Genesis actually operates a Tor exit enclave, which means you can get end to end anonymous and encrypted searching using Tor and DDG together. You can enter !proxy domain into Genesis as well, and we will route you through a proxy, e.g. !proxy breadpig.com. Unfortunately, proxies can also be slow, and free proxies (like the one we use) are funded by arguably excessive advertising. Because of these drawbacks in HTTPS, POST and proxies we decided to take the redirect approach to combat search leakage. However, we leave the choice up to you. You can deviate from the default on our settings page by toggling the redirect or address bar settings. You can also use our encrypted version.</string>
<string name="HEADER_2" translatable="true">Search History</string>
<string name="HEADER_2_DESC" translatable="true">Other search engines save your search history. Usually your searches are saved along with the date and time of the search, some information about your computer (e.g. your IP address, User agent and often a unique identifier stored in a browser cookie), and if you are logged in, your account information (e.g. name and email address). With only the timestamp and computer information, your searches can often be traced directly to you. With the additional account information, they are associated directly with you. Also, note that with this information your searches can be tied together. This means someone can see everything youve been searching, not just one isolated search. You can usually find out a lot about a person from their search history. Its sort of creepy that people at search engines can see all this info about you, but that is not the main concern. The main concern is when they either a) release it to the public or b) give it to law enforcement. Why would they release it to the public? AOL famously released supposedly anonymous search terms for research purposes, except they didnt do a good job of making them completely anonymous, and they were ultimately.\n\n The other way to release it to the public is by accident. Search engines could lose data, or get hacked, or accidentally expose data due to security holes or incompetence, all of which has happened with personal information on the Internet. Why would search engines give your search history to law enforcement? Simply because law enforcement asked for it, usually as part of a legal investigation. If you read privacy policies and terms of service carefully you will notice that they say they can give your information on court order. This makes sense because they may be legally obligated to do so. However, search engines are not legally obligated to collect personal information in the first place. They do it on their own volition. The bottom line is if search engines have your information, it could get out, even if they have the best intentions. And this information (your search history) can be pretty personal.\n\nFor these reasons, Genesis takes the approach to not collect any personal information. The decisions of whether and how to comply with law enforcement requests, whether and how to anonymize data, and how to best protect your information from hackers are out of our hands. Your search history is safe with us because it cannot be tied to you in any way.</string>
<string name="HEADER_3" translatable="true">Information Not Collected</string>
<string name="HEADER_3_DESC" translatable="true">When you search at Genesis, we dont know who you are and there is no way to tie your searches together. When you access Genesis (or any Web site), your Web browser automatically sends information about your computer, e.g. your User agent and IP address because this information could be used to link you to your searches, we do not log (store) it at all. This is a very unusual practice, but we feel it is an important step to protect your privacy. It is unusual for a few reasons. First, most server software auto-stores this information, so you have to go out of your way not to store it. Second, most businesses want to keep as much information as possible because they dont know when it will be useful. Third, many search engines actively use this information, for example to show you more targeted advertising.\n\nAnother way that your searches are often tied together at other search engines are through browser cookies, which are pieces of information that sit on your computer and get sent to the search engine on each request. What search engines often do is store a unique identifier in your browser and then associate that identifier with your searches.\n\nAt Genesis, no cookies are used by default. In response to efforts by the EFF and others, the major search engines have begun "anonymizing" their search log data after periods of time. Sure, this is better than not doing so, but you should note that this does not make your search history anonymous in the same way that it is at Genesis. What search engines generally do when they anonymize data is get rid of part of your IP address or turn it into something that doesnt look exactly like an IP address. And they do the same thing for uniquely identifying cookies. However, in many cases, this so-called anonymous data can still tie your searches together, which can be used to reconstruct who you are and what you searched for. Additionally, search engines usually are silent on what they do with the User agent, which has been shown to also have enough information to often be personally identifiable, especially if isolated to a particular search session (day).</string>
<string name="HEADER_4" translatable="true">Information Collected</string>
<string name="HEADER_4_DESC" translatable="true">At Genesis, no cookies are used by default. If you have changed any settings, then cookies are used to store those changes. However, in that case, they are not stored in a personally identifiable way. For example, the large size setting is stored as s=l; no unique identifier is in there. Furthermore, if you prefer not to use cookies to store settings, you can use URL parameters instead.\n\nWe do not use any third parties to do the code insertion, and we do not work with any sites that share personally identifiable information (e.g. name, address, etc.) via their affiliate programs. This means that no information is shared from Genesis to the sites, and the only information that is collected from this process is product information, which is not tied to any particular user and which we do not save or store on our end. It is completely analogous to the search result case from the previous paragraph--we can see anonymous product info such that we cannot tie them to any particular person (or even tie multiple purchases together).\n\nThis whole affiliate process is an attempt to keep advertising to a minimal level on Genesis. Finally, if you give us feedback, it may be stored in our email. However, you can give anonymous feedback (by not entering your email or other personal info on the feedback form).</string>
<string name="HEADER_5" translatable="true">Information Shared</string>
<string name="HEADER_5_DESC" translatable="true">If you turn redirects off in the settings and you dont either turn POST on or use our encrypted site, then your search could leak to sites you click on. Yet as explained above, this does not happen by default. Also, like anyone else, we will comply with court ordered legal requests. However, in our case, we dont expect any because there is nothing useful to give them since we dont collect any personal information</string>
<string name="HEADER_6" translatable="true">Website Content Policy</string>
<string name="HEADER_6_DESC" translatable="true">This SERVICE is provided by at no cost and is intended for use as is. This page is used to inform visitors regarding my policies with the collection, use, and disclosure of Personal Information if anyone decided to use my Service. If you choose to use my Service, then you agree to the collection and use of information in relation to this policy. The Personal Information that we collect is used for providing and improving the Service. We will not use or share your information with anyone except as described in this Privacy Policy.\n\nThe terms used in this Privacy Policy have the same meanings as in our Terms and Conditions, which is accessible at https://boogle.store/privacy unless otherwise defined in this Privacy Policy.
For a better experience, while using our Service, we may collect a certain personally identifiable information that is Advertisement Identifier. The information that we collect is retained on your device and is not collected by me in any way. The app does use third party services that may collect information used to identify you. Link to privacy policy of third party service providers used by the app are\n
Google Play Services: https://policies.google.com/privacy
https://support.google.com/admob/answer/6128543?hl=en
This application collects user android advertisement identifier and sends it to third party that is google admob for displaying best advertisement suited for that individual but We dont personally maintain or use this advertisement identifier in any way. We may employ third-party companies and individuals due to the following reasons:\n
To facilitate our Service
To provide the Service on our behalf
To perform Service-related services or
To analyzing service usage
We want to inform users of this Service that these third parties have access to your Personal Information. The reason is to perform the tasks assigned to them on our behalf. However, they are obligated not to disclose or use the information for any other purpose. We value your trust in providing us your Personal Information, thus we are striving to use commercially acceptable means of protecting it. But remember that no method of transmission over the internet, or method of electronic storage is 100% secure and reliable, and we cannot guarantee its absolute security\n\n
This Service only contain links to other sites. If you click on a third-party link, you will be directed to that site. Note that these external sites are not operated by us. Therefore, we strongly advise you to review the Privacy Policy of these websites. We have no control over and assume no responsibility for the content, privacy policies, or practices of any third-party sites or services. We may update our Privacy Policy from time to time. Thus, you are advised to review this page periodically for any changes. We will notify you of any changes by posting the new Privacy Policy on this page. These changes are effective immediately after they are posted on this page.</string>
<!-- Bridge Settings --> <!-- Bridge Settings -->
<string name="BRIDGE_BASIC_SETTING" translatable="true">Security Settings</string> <string name="BRIDGE_BASIC_SETTING" translatable="true">Security Settings</string>
<string name="BRIDGE_SETTING" translatable="true">Bridge Settings</string> <string name="BRIDGE_SETTING" translatable="true">Bridge Settings</string>
@ -278,6 +311,7 @@
<string name="HOME_MENU_DESKTOP" translatable="true">Desktop site</string> <string name="HOME_MENU_DESKTOP" translatable="true">Desktop site</string>
<string name="HOME_MENU_BOOKMARK" translatable="true">Bookmark This Page</string> <string name="HOME_MENU_BOOKMARK" translatable="true">Bookmark This Page</string>
<string name="HOME_MENU_OPEN_BOOKMARK" translatable="true">Bookmarks</string> <string name="HOME_MENU_OPEN_BOOKMARK" translatable="true">Bookmarks</string>
<string name="HOME_MENU_OPEN_RECENT_TAB" translatable="true">Recent tabs</string>
<string name="HOME_MENU_REPORT" translatable="true">Report website</string> <string name="HOME_MENU_REPORT" translatable="true">Report website</string>
<string name="HOME_MENU_RATE" translatable="true">Rate this app</string> <string name="HOME_MENU_RATE" translatable="true">Rate this app</string>
<string name="HOME_MENU_FIND" translatable="true">Find in page</string> <string name="HOME_MENU_FIND" translatable="true">Find in page</string>

1
orbotOld/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/build

61
orbotOld/build.gradle Normal file
View File

@ -0,0 +1,61 @@
apply plugin: 'com.android.library'
android {
compileSdkVersion 30
buildToolsVersion '29.0.3'
sourceSets {
main {
jniLibs.srcDirs = ['./src/main/libs']
}
}
defaultConfig {
minSdkVersion 21
targetSdkVersion 30
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
aaptOptions {
cruncherEnabled = false
}
lintOptions {
abortOnError false
}
packagingOptions {
exclude 'assets/arm/obfs4proxy' //this is redundant
}
}
dependencies {
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'org.torproject:tor-android-binary:0.4.3.6-actual'
implementation 'info.pluggabletransports.aptds:apt-dispatch-library:1.0.9'
implementation 'info.pluggabletransports.aptds:apt-meek-obfs4-legacy:1.0.9'
implementation 'info.pluggabletransports.aptds:jsocksAndroid:1.0.4'
implementation 'com.jaredrummler:android-shell:1.0.0'
implementation fileTree(dir: 'libs', include: ['.so'])
testImplementation 'junit:junit:4.13.1'
implementation 'com.offbynull.portmapper:portmapper:2.0.5'
implementation 'info.guardianproject:jtorctl:0.4'
implementation 'com.github.tladesignz:IPtProxy:0.5.2'
}

0
orbotOld/proguard-rules.pro vendored Normal file
View File

View File

@ -0,0 +1,6 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.torproject.android.service">
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
</manifest>

View File

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 44 KiB

View File

@ -0,0 +1,38 @@
/* Copyright (c) 2009, Nathan Freitas, Orbot/The Guardian Project - http://openideals.com/guardian */
/* See LICENSE for licensing information */
package org.torproject.android.service;
public interface OrbotConstants {
String TAG = "Orbot";
String PREF_OR = "pref_or";
String PREF_OR_PORT = "pref_or_port";
String PREF_OR_NICKNAME = "pref_or_nickname";
String PREF_REACHABLE_ADDRESSES = "pref_reachable_addresses";
String PREF_REACHABLE_ADDRESSES_PORTS = "pref_reachable_addresses_ports";
String PREF_DISABLE_NETWORK = "pref_disable_network";
String PREF_TOR_SHARED_PREFS = "org.torproject.android_preferences";
String PREF_SOCKS = "pref_socks";
String PREF_HTTP = "pref_http";
String PREF_ISOLATE_DEST = "pref_isolate_dest";
String PREF_CONNECTION_PADDING = "pref_connection_padding";
String PREF_REDUCED_CONNECTION_PADDING = "pref_reduced_connection_padding";
String PREF_CIRCUIT_PADDING = "pref_circuit_padding";
String PREF_REDUCED_CIRCUIT_PADDING = "pref_reduced_circuit_padding";
String PREF_PREFER_IPV6 = "pref_prefer_ipv6";
String PREF_DISABLE_IPV4 = "pref_disable_ipv4";
String APP_TOR_KEY = "_app_tor";
String APP_DATA_KEY = "_app_data";
String APP_WIFI_KEY = "_app_wifi";
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,42 @@
package org.torproject.android.service;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.text.TextUtils;
import org.torproject.android.service.util.Prefs;
public class StartTorReceiver extends BroadcastReceiver implements TorServiceConstants {
@Override
public void onReceive(Context context, Intent intent) {
/* sanitize the Intent before forwarding it to OrbotService */
Prefs.setContext(context);
String action = intent.getAction();
if (TextUtils.equals(action, ACTION_START)) {
String packageName = intent.getStringExtra(EXTRA_PACKAGE_NAME);
if (Prefs.allowBackgroundStarts()) {
Intent startTorIntent = new Intent(context, OrbotService.class);
startTorIntent.setAction(action);
if (packageName != null) {
startTorIntent.putExtra(OrbotService.EXTRA_PACKAGE_NAME, packageName);
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && Prefs.persistNotifications()) {
context.startForegroundService(startTorIntent);
} else {
context.startService(startTorIntent);
}
} else if (!TextUtils.isEmpty(packageName)) {
// let the requesting app know that the user has disabled
// starting via Intent
Intent startsDisabledIntent = new Intent(ACTION_STATUS);
startsDisabledIntent.putExtra(EXTRA_STATUS, STATUS_STARTS_DISABLED);
startsDisabledIntent.setPackage(packageName);
context.sendBroadcast(startsDisabledIntent);
}
}
}
}

View File

@ -0,0 +1,243 @@
package org.torproject.android.service;
import android.text.TextUtils;
import net.freehaven.tor.control.EventHandler;
import org.torproject.android.service.util.ExternalIPFetcher;
import org.torproject.android.service.util.Prefs;
import java.text.NumberFormat;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.StringTokenizer;
/**
* Created by n8fr8 on 9/25/16.
*/
public class TorEventHandler implements EventHandler, TorServiceConstants {
private final static int BW_THRESDHOLD = 10000;
private OrbotService mService;
private long lastRead = -1;
private long lastWritten = -1;
private long mTotalTrafficWritten = 0;
private long mTotalTrafficRead = 0;
private NumberFormat mNumberFormat;
private HashMap<String, Node> hmBuiltNodes = new HashMap<>();
public TorEventHandler(OrbotService service) {
mService = service;
mNumberFormat = NumberFormat.getInstance(Locale.getDefault()); //localized numbers!
}
public HashMap<String, Node> getNodes() {
return hmBuiltNodes;
}
@Override
public void message(String severity, String msg) {
if (severity.equalsIgnoreCase("debug"))
mService.debug(severity + ": " + msg);
else
mService.logNotice(severity + ": " + msg);
}
@Override
public void newDescriptors(List<String> orList) {
for (String desc : orList)
mService.debug("descriptors: " + desc);
}
@Override
public void orConnStatus(String status, String orName) {
String sb = "orConnStatus (" +
parseNodeName(orName) +
"): " +
status;
mService.debug(sb);
}
@Override
public void streamStatus(String status, String streamID, String target) {
String sb = "StreamStatus (" +
(streamID) +
"): " +
status;
mService.debug(sb);
}
@Override
public void unrecognized(String type, String msg) {
String sb = "Message (" +
type +
"): " +
msg;
mService.logNotice(sb);
}
@Override
public void bandwidthUsed(long read, long written) {
if (lastWritten > BW_THRESDHOLD || lastRead > BW_THRESDHOLD) {
int iconId = R.drawable.ic_stat_tor_logo;
if (read > 0 || written > 0)
iconId = R.drawable.ic_stat_tor_logo;
String sb = formatCount(read) +
" \u2193" +
" / " +
formatCount(written) +
" \u2191";
mService.showToolbarNotification(sb, mService.getNotifyId(), iconId);
mTotalTrafficWritten += written;
mTotalTrafficRead += read;
mService.sendCallbackBandwidth(lastWritten, lastRead, mTotalTrafficWritten, mTotalTrafficRead);
lastWritten = 0;
lastRead = 0;
}
lastWritten += written;
lastRead += read;
}
private String formatCount(long count) {
// Converts the supplied argument into a string.
// Under 2Mb, returns "xxx.xKb"
// Over 2Mb, returns "xxx.xxMb"
if (mNumberFormat != null)
if (count < 1e6)
return mNumberFormat.format(Math.round((float) ((int) (count * 10 / 1024)) / 10)) + "kbps";
else
return mNumberFormat.format(Math.round((float) ((int) (count * 100 / 1024 / 1024)) / 100)) + "mbps";
else
return "";
//return count+" kB";
}
public void circuitStatus(String status, String circID, String path) {
/* once the first circuit is complete, then announce that Orbot is on*/
if (mService.getCurrentStatus() == STATUS_STARTING && TextUtils.equals(status, "BUILT"))
mService.sendCallbackStatus(STATUS_ON);
if (Prefs.useDebugLogging()) {
StringBuilder sb = new StringBuilder();
sb.append("Circuit (");
sb.append((circID));
sb.append(") ");
sb.append(status);
sb.append(": ");
StringTokenizer st = new StringTokenizer(path, ",");
Node node;
boolean isFirstNode = true;
int nodeCount = st.countTokens();
while (st.hasMoreTokens()) {
String nodePath = st.nextToken();
String nodeId = null, nodeName = null;
String[] nodeParts;
if (nodePath.contains("="))
nodeParts = nodePath.split("=");
else
nodeParts = nodePath.split("~");
if (nodeParts.length == 1) {
nodeId = nodeParts[0].substring(1);
nodeName = nodeId;
} else if (nodeParts.length == 2) {
nodeId = nodeParts[0].substring(1);
nodeName = nodeParts[1];
}
if (nodeId == null)
continue;
node = hmBuiltNodes.get(nodeId);
if (node == null) {
node = new Node();
node.id = nodeId;
node.name = nodeName;
}
node.status = status;
sb.append(node.name);
if (!TextUtils.isEmpty(node.ipAddress))
sb.append("(").append(node.ipAddress).append(")");
if (st.hasMoreTokens())
sb.append(" > ");
if (status.equals("EXTENDED")) {
if (isFirstNode) {
hmBuiltNodes.put(node.id, node);
if (node.ipAddress == null && (!node.isFetchingInfo) && Prefs.useDebugLogging()) {
node.isFetchingInfo = true;
mService.exec(new ExternalIPFetcher(mService, node, OrbotService.mPortHTTP));
}
isFirstNode = false;
}
} else if (status.equals("BUILT")) {
// mService.logNotice(sb.toString());
if (Prefs.useDebugLogging() && nodeCount > 3)
mService.debug(sb.toString());
} else if (status.equals("CLOSED")) {
// mService.logNotice(sb.toString());
hmBuiltNodes.remove(node.id);
}
}
}
}
private String parseNodeName(String node) {
if (node.indexOf('=') != -1) {
return (node.substring(node.indexOf("=") + 1));
} else if (node.indexOf('~') != -1) {
return (node.substring(node.indexOf("~") + 1));
} else
return node;
}
public static class Node {
public String status;
public String id;
public String name;
public String ipAddress;
public String country;
public String organization;
public boolean isFetchingInfo = false;
}
}

View File

@ -0,0 +1,117 @@
/* Copyright (c) 2009, Nathan Freitas, Orbot / The Guardian Project - http://openideals.com/guardian */
/* See LICENSE for licensing information */
package org.torproject.android.service;
import android.content.Intent;
public interface TorServiceConstants {
String DIRECTORY_TOR_DATA = "tordata";
String TOR_CONTROL_PORT_FILE = "control.txt";
String TOR_PID_FILE = "torpid";
//torrc (tor config file)
String TORRC_ASSET_KEY = "torrc";
String TOR_CONTROL_COOKIE = "control_auth_cookie";
//geoip data file asset key
String GEOIP_ASSET_KEY = "geoip";
String GEOIP6_ASSET_KEY = "geoip6";
String IP_LOCALHOST = "127.0.0.1";
int TOR_TRANSPROXY_PORT_DEFAULT = 9040;
int TOR_DNS_PORT_DEFAULT = 5400;
String HTTP_PROXY_PORT_DEFAULT = "8118"; // like Privoxy!
String SOCKS_PROXY_PORT_DEFAULT = "9050";
//control port
String LOG_NOTICE_HEADER = "NOTICE";
String LOG_NOTICE_BOOTSTRAPPED = "Bootstrapped";
/**
* A request to Orbot to transparently start Tor services
*/
String ACTION_START = "org.torproject.android.intent.action.START";
String ACTION_STOP = "org.torproject.android.intent.action.STOP";
String ACTION_START_VPN = "org.torproject.android.intent.action.START_VPN";
String ACTION_STOP_VPN = "org.torproject.android.intent.action.STOP_VPN";
String ACTION_START_ON_BOOT = "org.torproject.android.intent.action.START_BOOT";
int REQUEST_VPN = 7777;
/**
* {@link Intent} send by Orbot with {@code ON/OFF/STARTING/STOPPING} status
*/
String ACTION_STATUS = "org.torproject.android.intent.action.STATUS";
/**
* {@code String} that contains a status constant: {@link #STATUS_ON},
* {@link #STATUS_OFF}, {@link #STATUS_STARTING}, or
* {@link #STATUS_STOPPING}
*/
String EXTRA_STATUS = "org.torproject.android.intent.extra.STATUS";
/**
* A {@link String} {@code packageName} for Orbot to direct its status reply
* to, used in {@link #ACTION_START} {@link Intent}s sent to Orbot
*/
String EXTRA_PACKAGE_NAME = "org.torproject.android.intent.extra.PACKAGE_NAME";
/**
* The SOCKS proxy settings in URL form.
*/
String EXTRA_SOCKS_PROXY = "org.torproject.android.intent.extra.SOCKS_PROXY";
String EXTRA_SOCKS_PROXY_HOST = "org.torproject.android.intent.extra.SOCKS_PROXY_HOST";
String EXTRA_SOCKS_PROXY_PORT = "org.torproject.android.intent.extra.SOCKS_PROXY_PORT";
/**
* The HTTP proxy settings in URL form.
*/
String EXTRA_HTTP_PROXY = "org.torproject.android.intent.extra.HTTP_PROXY";
String EXTRA_HTTP_PROXY_HOST = "org.torproject.android.intent.extra.HTTP_PROXY_HOST";
String EXTRA_HTTP_PROXY_PORT = "org.torproject.android.intent.extra.HTTP_PROXY_PORT";
String EXTRA_DNS_PORT = "org.torproject.android.intent.extra.DNS_PORT";
String EXTRA_TRANS_PORT = "org.torproject.android.intent.extra.TRANS_PORT";
String LOCAL_ACTION_LOG = "log";
String LOCAL_ACTION_BANDWIDTH = "bandwidth";
String LOCAL_EXTRA_LOG = "log";
String LOCAL_ACTION_PORTS = "ports";
/**
* All tor-related services and daemons are stopped
*/
String STATUS_OFF = "OFF";
/**
* All tor-related services and daemons have completed starting
*/
String STATUS_ON = "ON";
String STATUS_STARTING = "STARTING";
String STATUS_STOPPING = "STOPPING";
/**
* The user has disabled the ability for background starts triggered by
* apps. Fallback to the old {@link Intent} action that brings up Orbot:
* {@link org.torproject.android.OrbotMainActivity#INTENT_ACTION_REQUEST_START_TOR}
*/
String STATUS_STARTS_DISABLED = "STARTS_DISABLED";
// actions for internal command Intents
String CMD_SIGNAL_HUP = "signal_hup";
String CMD_NEWNYM = "newnym";
String CMD_SET_EXIT = "setexit";
String CMD_ACTIVE = "ACTIVE";
String PREF_BINARY_TOR_VERSION_INSTALLED = "BINARY_TOR_VERSION_INSTALLED";
//obfsproxy
String OBFSCLIENT_ASSET_KEY = "obfs4proxy";
String HIDDEN_SERVICES_DIR = "hidden_services";
}

View File

@ -0,0 +1,126 @@
package org.torproject.android.service.util;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.os.Build;
import android.util.Log;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
public class CustomNativeLoader {
private final static String TAG = "CNL";
private static boolean loadFromZip(Context context, String libname, File destLocalFile, String arch) {
ZipFile zipFile = null;
InputStream stream = null;
try {
zipFile = new ZipFile(context.getApplicationInfo().sourceDir);
ZipEntry entry = zipFile.getEntry("lib/" + arch + "/" + libname + ".so");
if (entry == null) {
entry = zipFile.getEntry("jni/" + arch + "/" + libname + ".so");
if (entry == null)
throw new Exception("Unable to find file in apk:" + "lib/" + arch + "/" + libname);
}
//how we wrap this in another stream because the native .so is zipped itself
stream = zipFile.getInputStream(entry);
OutputStream out = new FileOutputStream(destLocalFile);
byte[] buf = new byte[4096];
int len;
while ((len = stream.read(buf)) > 0) {
Thread.yield();
out.write(buf, 0, len);
}
out.close();
destLocalFile.setReadable(true, false);
destLocalFile.setExecutable(true, false);
destLocalFile.setWritable(true);
return true;
} catch (Exception e) {
Log.e(TAG, e.getMessage());
} finally {
if (stream != null) {
try {
stream.close();
} catch (Exception e) {
Log.e(TAG, e.getMessage());
}
}
if (zipFile != null) {
try {
zipFile.close();
} catch (Exception e) {
Log.e(TAG, e.getMessage());
}
}
}
return false;
}
public static File loadNativeBinary(Context context, String libname, File destLocalFile) {
try {
File fileNativeBin = new File(getNativeLibraryDir(context), libname + ".so");
if (!fileNativeBin.exists())
fileNativeBin = new File(getNativeLibraryDir(context), "lib" + libname + ".so");
if (fileNativeBin.exists()) {
if (fileNativeBin.canExecute())
return fileNativeBin;
else {
setExecutable(fileNativeBin);
if (fileNativeBin.canExecute())
return fileNativeBin;
}
}
String folder = Build.CPU_ABI;
String javaArch = System.getProperty("os.arch");
if (javaArch != null && javaArch.contains("686")) {
folder = "x86";
}
if (loadFromZip(context, libname, destLocalFile, folder)) {
return destLocalFile;
}
} catch (Throwable e) {
Log.e(TAG, e.getMessage(), e);
}
return null;
}
private static void setExecutable(File fileBin) {
fileBin.setReadable(true);
fileBin.setExecutable(true);
fileBin.setWritable(false);
fileBin.setWritable(true, true);
}
// Return Full path to the directory where native JNI libraries are stored.
private static String getNativeLibraryDir(Context context) {
ApplicationInfo appInfo = context.getApplicationInfo();
return appInfo.nativeLibraryDir;
}
}

View File

@ -0,0 +1,80 @@
package org.torproject.android.service.util;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.WorkerThread;
import com.jaredrummler.android.shell.CommandResult;
import com.jaredrummler.android.shell.Shell;
import com.jaredrummler.android.shell.ShellExitCode;
import com.jaredrummler.android.shell.StreamGobbler;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
public class CustomShell extends Shell {
@WorkerThread
public static CommandResult run(@NonNull String shell, boolean waitFor, @Nullable Map<String, String> env, @NonNull String command) {
List<String> stdout = Collections.synchronizedList(new ArrayList<>());
List<String> stderr = Collections.synchronizedList(new ArrayList<>());
int exitCode = -1;
try {
// setup our process, retrieve stdin stream, and stdout/stderr gobblers
//Process process = runWithEnv(command, env);
ProcessBuilder builder = new ProcessBuilder();
if (env != null && (!env.isEmpty()))
builder.environment().putAll(env);
builder.command("/system/bin/" + shell, "-c", command);
Process process = builder.start();
StreamGobbler stdoutGobbler = null;
StreamGobbler stderrGobbler = null;
if (waitFor) {
stdoutGobbler = new StreamGobbler(process.getInputStream(), stdout);
stderrGobbler = new StreamGobbler(process.getErrorStream(), stderr);
// start gobbling and write our commands to the shell
stdoutGobbler.start();
stderrGobbler.start();
}
// wait for our process to finish, while we gobble away in the background
if (waitFor)
exitCode = process.waitFor();
else
exitCode = 0;
// make sure our threads are done gobbling, our streams are closed, and the process is destroyed - while the
// latter two shouldn't be needed in theory, and may even produce warnings, in "normal" Java they are required
// for guaranteed cleanup of resources, so lets be safe and do this on Android as well
/**
try {
stdin.close();
} catch (IOException e) {
// might be closed already
}**/
if (waitFor) {
stdoutGobbler.join();
stderrGobbler.join();
}
} catch (InterruptedException e) {
exitCode = ShellExitCode.WATCHDOG_EXIT;
} catch (IOException e) {
exitCode = ShellExitCode.SHELL_WRONG_UID;
}
return new CommandResult(stdout, stderr, exitCode);
}
}

View File

@ -0,0 +1,184 @@
package org.torproject.android.service.util;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.util.Log;
import org.torproject.android.binary.TorServiceConstants;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.concurrent.TimeoutException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
public class CustomTorResourceInstaller implements TorServiceConstants {
private File installFolder;
private Context context;
private File fileTorrc;
private File fileTor;
public CustomTorResourceInstaller(Context context, File installFolder) {
this.installFolder = installFolder;
this.context = context;
}
// Return Full path to the directory where native JNI libraries are stored.
private static String getNativeLibraryDir(Context context) {
ApplicationInfo appInfo = context.getApplicationInfo();
return appInfo.nativeLibraryDir;
}
/*
* Write the inputstream contents to the file
*/
private static boolean streamToFile(InputStream stm, File outFile, boolean append, boolean zip) throws IOException {
byte[] buffer = new byte[FILE_WRITE_BUFFER_SIZE];
int bytecount;
OutputStream stmOut = new FileOutputStream(outFile.getAbsolutePath(), append);
ZipInputStream zis = null;
if (zip) {
zis = new ZipInputStream(stm);
ZipEntry ze = zis.getNextEntry();
stm = zis;
}
while ((bytecount = stm.read(buffer)) > 0) {
stmOut.write(buffer, 0, bytecount);
}
stmOut.close();
stm.close();
if (zis != null)
zis.close();
return true;
}
/*
* Extract the Tor binary from the APK file using ZIP
*/
private static File[] listf(String directoryName) {
// .............list file
File directory = new File(directoryName);
// get all the files from a directory
File[] fList = directory.listFiles();
if (fList != null)
for (File file : fList) {
if (file.isFile()) {
Log.d(TAG, file.getAbsolutePath());
} else if (file.isDirectory()) {
listf(file.getAbsolutePath());
}
}
return fList;
}
//
/*
* Extract the Tor resources from the APK file using ZIP
*
* @File path to the Tor executable
*/
public File installResources() throws IOException, TimeoutException {
fileTor = new File(installFolder, TOR_ASSET_KEY);
if (!installFolder.exists())
installFolder.mkdirs();
installGeoIP();
fileTorrc = assetToFile(COMMON_ASSET_KEY + TORRC_ASSET_KEY, TORRC_ASSET_KEY, false, false);
File fileNativeDir = new File(getNativeLibraryDir(context));
fileTor = new File(fileNativeDir, TOR_ASSET_KEY + ".so");
if (fileTor.exists()) {
if (fileTor.canExecute())
return fileTor;
else {
setExecutable(fileTor);
if (fileTor.canExecute())
return fileTor;
}
}
File fileTorBin = new File(installFolder, TOR_BINARY_KEY);
//it exists but we can't execute it, so copy it to a new path
if (fileTor.exists()) {
InputStream is = new FileInputStream(fileTor);
streamToFile(is, fileTorBin, false, true);
setExecutable(fileTorBin);
if (fileTorBin.exists() && fileTorBin.canExecute())
return fileTorBin;
}
//let's try another approach
fileTor = CustomNativeLoader.loadNativeBinary(context, TOR_ASSET_KEY, fileTorBin);
if (fileTor != null && fileTor.exists())
setExecutable(fileTor);
if (fileTor != null && fileTor.exists() && fileTor.canExecute())
return fileTor;
return null;
}
private boolean installGeoIP() throws IOException {
assetToFile(COMMON_ASSET_KEY + GEOIP_ASSET_KEY, GEOIP_ASSET_KEY, false, false);
assetToFile(COMMON_ASSET_KEY + GEOIP6_ASSET_KEY, GEOIP6_ASSET_KEY, false, false);
return true;
}
/*
* Reads file from assetPath/assetKey writes it to the install folder
*/
private File assetToFile(String assetPath, String assetKey, boolean isZipped, boolean isExecutable) throws IOException {
InputStream is = context.getAssets().open(assetPath);
File outFile = new File(installFolder, assetKey);
streamToFile(is, outFile, false, isZipped);
if (isExecutable) {
setExecutable(outFile);
}
return outFile;
}
private void setExecutable(File fileBin) {
fileBin.setReadable(true);
fileBin.setExecutable(true);
fileBin.setWritable(false);
fileBin.setWritable(true, true);
}
}

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