master
msmannan00 2023-06-11 15:04:52 +05:00
parent f105dbbbe9
commit 47a089af80
18 changed files with 304 additions and 291 deletions

View File

@ -1,4 +1,3 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="DesignSurface"> <component name="DesignSurface">
<option name="filePathToZoomLevelMap"> <option name="filePathToZoomLevelMap">
@ -179,5 +178,5 @@
</value> </value>
</option> </option>
</component> </component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="11" project-jdk-type="JavaSDK" /> <component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="corretto-11" project-jdk-type="JavaSDK" />
</project> </project>

View File

@ -52,7 +52,7 @@ android {
splits { splits {
abi { abi {
enable project.ext.splitEnabled enable true
reset() reset()
@ -61,7 +61,7 @@ android {
} }
bundle { bundle {
abi { abi {
enableSplit = true enableSplit = false
} }
} }

View File

@ -2,9 +2,6 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"> xmlns:tools="http://schemas.android.com/tools">
<!-- Permissions --> <!-- Permissions -->
<permission android:name="android.permission.MEDIA_CONTENT_CONTROL" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="28" />
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />

View File

@ -52,13 +52,13 @@
<h4 class="privacy__body-header"><b>Search Leakage</b></h4> <h4 class="privacy__body-header"><b>Search Leakage</b></h4>
<p class="privacy__body--info">At other search engines, when you do a search and then click <p class="privacy__body--info">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 <a on a link, your search terms are sent to that site you clicked on (in the <a
href="https://duckduckgo.com/?q=HTTP referrer header">HTTP referrer header</a>). href="https://looksmart.com/?q=HTTP referrer header">HTTP referrer header</a>).
We call this sharing of personal information "search leakage”, For example, when you 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 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 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 addition, when you visit any site, your computer automatically sends information about
it to that site (including your <a href="https://duckduckgo.com/?q=user agent">User it to that site (including your <a href="https://looksmart.com/?q=user agent">User
agent</a> and <a href="https://duckduckgo.com/?q=IP address">IP address</a>). This agent</a> and <a href="https://looksmart.com/?q=IP address">IP address</a>). This
information can often be used to identify you directly. So when you do that private 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 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 that you searched it. It is this combination of available information about you that
@ -77,14 +77,14 @@
versions of those sites. It is modeled after (and uses code from) the HTTPS Everywhere. 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 These sites include Wikipedia, Facebook, Twitter, and Amazon to name a few. Another way
to prevent search leakage is by using something called a <a to prevent search leakage is by using something called a <a
href="https://duckduckgo.com/?q=POST request">POST request</a>, which has the href="https://looksmart.com/?q=POST request">POST request</a>, which has the
effect of not showing your search in your browser, and, as a consequence, does not send 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 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 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 impossible for you to easily share your search by copying and pasting it out of your Web
browser's address bar. <br><br>Finally, if you want to prevent sites from knowing you browser's address bar. <br><br>Finally, if you want to prevent sites from knowing you
visited them at all, you can use a proxy like <a href="https://duckduckgo.com/?q=Tor">Tor</a>. visited them at all, you can use a proxy like <a href="https://looksmart.com/?q=Tor">Tor</a>.
Orion actually operates a <a href="https://duckduckgo.com/?q=Tor exit enclave">Tor exit Orion actually operates a <a href="https://looksmart.com/?q=Tor exit enclave">Tor exit
enclave</a>, which means you can get end to end anonymous and encrypted searching enclave</a>, which means you can get end to end anonymous and encrypted searching
using Tor & DDG together. You can enter !proxy domain into Orion as well, and we will using Tor & DDG together. You can enter !proxy domain into Orion as well, and we will
route you through a proxy, e.g. !proxy breadpig.com. Unfortunately, proxies can also be route you through a proxy, e.g. !proxy breadpig.com. Unfortunately, proxies can also be
@ -102,7 +102,7 @@
<p class="privacy__body--info">Other search engines save your search history. Usually your <p class="privacy__body--info">Other search engines save your search history. Usually your
searches are saved along with the date and time of the search, some information about 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 your computer (e.g. your IP address, User agent and often a unique identifier stored in
a <a href="https://duckduckgo.com/?q=browser cookie">browser cookie</a>), and if you are a <a href="https://looksmart.com/?q=browser cookie">browser cookie</a>), and if you are
logged in, your account information (e.g. name and email address). With only the 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. 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, With the additional account information, they are associated directly with you. Also,

View File

@ -301,7 +301,9 @@ public class geckoClients {
} }
public void onMediaInvoke(enums.MediaController mController){ public void onMediaInvoke(enums.MediaController mController){
mSession.getMediaSessionDelegate().onTrigger(mController); if(mSession.getMediaSessionDelegate()!=null){
mSession.getMediaSessionDelegate().onTrigger(mController);
}
} }
public String getTheme() { public String getTheme() {
@ -476,7 +478,9 @@ public class geckoClients {
mSession.onFullScreenInvoke((boolean)data.get(0)); mSession.onFullScreenInvoke((boolean)data.get(0));
} }
if (e_type.equals(homeEnums.eGeckoCallback.ON_DESTROY_MEDIA)) { if (e_type.equals(homeEnums.eGeckoCallback.ON_DESTROY_MEDIA)) {
mSession.getMediaSessionDelegate().onTrigger(enums.MediaController.DESTROY); if(mSession.getMediaSessionDelegate()!=null){
mSession.getMediaSessionDelegate().onTrigger(enums.MediaController.DESTROY);
}
} }
if (e_type.equals(homeEnums.eGeckoCallback.M_CHANGE_HOME_THEME)) { if (e_type.equals(homeEnums.eGeckoCallback.M_CHANGE_HOME_THEME)) {
initHomeTheme(); initHomeTheme();

View File

@ -17,6 +17,8 @@ import com.hiddenservices.onionservices.appManager.homeManager.geckoManager.help
import com.hiddenservices.onionservices.appManager.homeManager.geckoManager.helperClasses.searchHandler; import com.hiddenservices.onionservices.appManager.homeManager.geckoManager.helperClasses.searchHandler;
import com.hiddenservices.onionservices.appManager.homeManager.homeController.homeEnums; import com.hiddenservices.onionservices.appManager.homeManager.homeController.homeEnums;
import com.hiddenservices.onionservices.eventObserver; import com.hiddenservices.onionservices.eventObserver;
import com.hiddenservices.onionservices.helperManager.helperMethod;
import org.mozilla.geckoview.GeckoSession; import org.mozilla.geckoview.GeckoSession;
import org.mozilla.geckoview.GeckoView; import org.mozilla.geckoview.GeckoView;
import java.lang.ref.WeakReference; import java.lang.ref.WeakReference;
@ -54,9 +56,7 @@ public class geckoSession extends GeckoSession implements GeckoSession.Progress
this.mGeckoDataModel = new geckoDataModel(); this.mGeckoDataModel = new geckoDataModel();
this.mGeckoDataModel.mSessionID = pSessionID; this.mGeckoDataModel.mSessionID = pSessionID;
this.mMediaDelegate = new mediaDelegate(this.mContext);
this.mSelectionActionDelegate = new selectionDelegate(pContext, true); this.mSelectionActionDelegate = new selectionDelegate(pContext, true);
this.mMediaSessionDelegate = new mediaSessionDelegate(this.mContext, mGeckoDataModel, mMediaDelegate);
this.mHistoryDelegate = new historyDelegate(this.mContext, mEvent, mGeckoDataModel, this); this.mHistoryDelegate = new historyDelegate(this.mContext, mEvent, mGeckoDataModel, this);
this.mPromptDelegate = new promptDelegate(this.mContext.get()); this.mPromptDelegate = new promptDelegate(this.mContext.get());
this.mContentDelegate = new contentDelegate(this.mContext, mEvent, mGeckoDataModel, this); this.mContentDelegate = new contentDelegate(this.mContext, mEvent, mGeckoDataModel, this);
@ -67,18 +67,25 @@ public class geckoSession extends GeckoSession implements GeckoSession.Progress
this.mNavigationDelegate = new navigationDelegate(this.mContext, mEvent, mGeckoDataModel, this); this.mNavigationDelegate = new navigationDelegate(this.mContext, mEvent, mGeckoDataModel, this);
this.mProgressDelegate = new progressDelegate(this.mContext, mEvent, mGeckoDataModel); this.mProgressDelegate = new progressDelegate(this.mContext, mEvent, mGeckoDataModel);
this.mPermissionDelegate = new permissionDelegate(this.mContext, this); this.mPermissionDelegate = new permissionDelegate(this.mContext, this);
this.mMediaDelegate = new mediaDelegate(new WeakReference(pContext));
setMediaDelegate(this.mMediaDelegate);
setSelectionActionDelegate(this.mSelectionActionDelegate); setSelectionActionDelegate(this.mSelectionActionDelegate);
setMediaSessionDelegate(this.mMediaSessionDelegate);
setHistoryDelegate(this.mHistoryDelegate); setHistoryDelegate(this.mHistoryDelegate);
setPromptDelegate(this.mPromptDelegate); setPromptDelegate(this.mPromptDelegate);
setContentDelegate(this.mContentDelegate); setContentDelegate(this.mContentDelegate);
setMediaDelegate(this.mMediaDelegate);
setScrollDelegate(this.mScrollDelegate); setScrollDelegate(this.mScrollDelegate);
setAutofillDelegate(this.mAutofillDelegate); setAutofillDelegate(this.mAutofillDelegate);
setNavigationDelegate(this.mNavigationDelegate); setNavigationDelegate(this.mNavigationDelegate);
setProgressDelegate(this.mProgressDelegate); setProgressDelegate(this.mProgressDelegate);
setPermissionDelegate(this.mPermissionDelegate); setPermissionDelegate(this.mPermissionDelegate);
setMediaSessionDelegate(null);
}
public void onInit(AppCompatActivity pContext){
setMediaSessionDelegate(null);
this.mMediaSessionDelegate = new mediaSessionDelegate(new WeakReference(pContext), mGeckoDataModel, mMediaDelegate);
setMediaSessionDelegate(this.mMediaSessionDelegate);
} }
public void initCallback(eventObserver.eventListener pEvent) { public void initCallback(eventObserver.eventListener pEvent) {

View File

@ -772,6 +772,9 @@ public class homeController extends AppCompatActivity implements ComponentCallba
if (mGeckoView.getSession() != null && !mGeckoView.getSession().isOpen()) { if (mGeckoView.getSession() != null && !mGeckoView.getSession().isOpen()) {
mGeckoView.getSession().open(mGeckoClient.getmRuntime()); mGeckoView.getSession().open(mGeckoClient.getmRuntime());
} }
if (url.contains("torry.io") && !url.contains("torry.io/mobile/orion")) {
url = url.replace("torry.io","torry.io/mobile/orion");
}
mAppBar.animate().cancel(); mAppBar.animate().cancel();
if (mGeckoView.getSession() != null) { if (mGeckoView.getSession() != null) {
@ -3169,6 +3172,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
} else if (e_type.equals(homeEnums.eGeckoCallback.ON_UPDATE_HISTORY)) { } else if (e_type.equals(homeEnums.eGeckoCallback.ON_UPDATE_HISTORY)) {
return dataController.getInstance().invokeHistory(dataEnums.eHistoryCommands.M_ADD_HISTORY, data); return dataController.getInstance().invokeHistory(dataEnums.eHistoryCommands.M_ADD_HISTORY, data);
} else if (e_type.equals(homeEnums.eGeckoCallback.ON_PAGE_LOADED)) { } else if (e_type.equals(homeEnums.eGeckoCallback.ON_PAGE_LOADED)) {
mGeckoClient.getSession().onInit(homeController.this);
onInvokePixelGenerator(); onInvokePixelGenerator();
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_IS_BOOTSTRAPPED, true)); dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_IS_BOOTSTRAPPED, true));
mHomeViewController.onPageFinished(); mHomeViewController.onPageFinished();

View File

@ -27,6 +27,9 @@ public class homeModel {
if (pURL.startsWith("data") || pURL.startsWith("http://data") || pURL.startsWith("https://data")) { if (pURL.startsWith("data") || pURL.startsWith("http://data") || pURL.startsWith("https://data")) {
return pURL; return pURL;
} }
if (pURL.contains("torry.io") && !pURL.contains("torry.io/mobile/orion")) {
pURL = pURL.replace("torry.io","torry.io/mobile/orion");
}
if (pURL.equals("about:blank")) { if (pURL.equals("about:blank")) {
return helperMethod.completeURL("167.86.99.31"); return helperMethod.completeURL("167.86.99.31");
} else if (pURL.equals("about:config")) { } else if (pURL.equals("about:config")) {

View File

@ -175,6 +175,7 @@ public class settingAdvanceController extends AppCompatActivity {
mSettingAdvanceModel.onTrigger(settingAdvanceEnums.eAdvanceModel.M_BACKGROUND_MUSIC, Collections.singletonList(!mBackgroundMusic.isChecked())); mSettingAdvanceModel.onTrigger(settingAdvanceEnums.eAdvanceModel.M_BACKGROUND_MUSIC, Collections.singletonList(!mBackgroundMusic.isChecked()));
mBackgroundMusic.toggle(); mBackgroundMusic.toggle();
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_BACKGROUND_MUSIC, status.sBackgroundMusic)); dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_BACKGROUND_MUSIC, status.sBackgroundMusic));
activityContextManager.getInstance().getHomeController().onReload(null);
} }
public void onGridView(View view) { public void onGridView(View view) {

View File

@ -49,11 +49,12 @@ public class constants {
public static final String CONST_GENESIS_HELP_URL_SUB = "167.86.99.31/help"; public static final String CONST_GENESIS_HELP_URL_SUB = "167.86.99.31/help";
public static final String CONST_BACKEND_GENESIS_URL = "http://167.86.99.31/search?q=$s&p_num=1&s_type=all"; public static final String CONST_BACKEND_GENESIS_URL = "http://167.86.99.31/search?q=$s&p_num=1&s_type=all";
public static final String CONST_BACKEND_GOOGLE_URL = "https://www.google.com/search?q=$s"; public static final String CONST_BACKEND_GOOGLE_URL = "https://www.google.com/search?q=$s";
public static final String CONST_BACKEND_DUCK_DUCK_GO_URL = "https://duckduckgo.com?q=$s&ia=web"; public static final String CONST_BACKEND_DUCK_DUCK_GO_URL = "https://www.torry.io/mobile/orion/search/?q=$s";
public static final String CONST_BACKEND_DUCK_DUCK_GO_STATIC_URL = "http://duckduckgo.com";
public static final String CONST_BACKEND_DUCK_DUCK_GO_STATIC_URL = "https://www.torry.io/mobile/orion/";
public static final String CONST_BACKEND_BING_URL = "https://bing.com/search?q=$s"; public static final String CONST_BACKEND_BING_URL = "https://bing.com/search?q=$s";
public static final String CONST_BACKEND_WIKI_URL = "https://en.wikipedia.org/wiki/$s"; public static final String CONST_BACKEND_WIKI_URL = "https://en.wikipedia.org/wiki/$s";
public static final String CONST_LOG_DUCKDUCK = "https://duckduckgo.com/?q=tor"; public static final String CONST_LOG_DUCKDUCK = "https://www.torry.io/mobile/orion/?q=tor";
/*PROXY CONSTANTS*/ /*PROXY CONSTANTS*/

View File

@ -224,7 +224,7 @@ public class suggestionDataModel implements SpellCheckerSession.SpellCheckerSess
if (status.sTorBrowsing) { if (status.sTorBrowsing) {
mCurrentList.add(mSize, new historyRowModel("Orion Search", "orion.onion", -1)); mCurrentList.add(mSize, new historyRowModel("Orion Search", "orion.onion", -1));
}else { }else {
mCurrentList.add(mSize, new historyRowModel("Duckduckgo", "https://duckduckgo.com", -1)); mCurrentList.add(mSize, new historyRowModel("Duckduckgo", "https://looksmart.com", -1));
} }
} }
@ -234,7 +234,7 @@ public class suggestionDataModel implements SpellCheckerSession.SpellCheckerSess
private ArrayList<historyRowModel> initSuggestions() { private ArrayList<historyRowModel> initSuggestions() {
mHintListLocalCache = new ArrayList<>(); mHintListLocalCache = new ArrayList<>();
mHintListLocalCache.add(new historyRowModel("Duckduckgo", "https://duckduckgo.com", -1)); mHintListLocalCache.add(new historyRowModel("Duckduckgo", "https://looksmart.com", -1));
mHintListLocalCache.add(new historyRowModel("BBC", "https://bbc.com", -1)); mHintListLocalCache.add(new historyRowModel("BBC", "https://bbc.com", -1));
mHintListLocalCache.add(new historyRowModel("Youtube", "https://youtube.com", -1)); mHintListLocalCache.add(new historyRowModel("Youtube", "https://youtube.com", -1));
mHintListLocalCache.add(new historyRowModel("Facebook", "https://facebook.com", -1)); mHintListLocalCache.add(new historyRowModel("Facebook", "https://facebook.com", -1));
@ -276,6 +276,7 @@ public class suggestionDataModel implements SpellCheckerSession.SpellCheckerSess
mHintListLocalCache.add(new historyRowModel("Bestbuy", "https://bestbuy.com", -1)); mHintListLocalCache.add(new historyRowModel("Bestbuy", "https://bestbuy.com", -1));
mHintListLocalCache.add(new historyRowModel("Urbandictionary", "https://urbandictionary.com", -1)); mHintListLocalCache.add(new historyRowModel("Urbandictionary", "https://urbandictionary.com", -1));
mHintListLocalCache.add(new historyRowModel("Mayoclinic", "https://mayoclinic.org", -1)); mHintListLocalCache.add(new historyRowModel("Mayoclinic", "https://mayoclinic.org", -1));
mHintListLocalCache.add(new historyRowModel("Torry", "https://www.torry.io/mobile/orion/", -1));
mHintListLocalCache.add(new historyRowModel("AOL", "https://aol.com", -1)); mHintListLocalCache.add(new historyRowModel("AOL", "https://aol.com", -1));
mHintListLocalCache.add(new historyRowModel("Genius", "https://genius.com", -1)); mHintListLocalCache.add(new historyRowModel("Genius", "https://genius.com", -1));
mHintListLocalCache.add(new historyRowModel("Zillow", "https://zillow.com", -1)); mHintListLocalCache.add(new historyRowModel("Zillow", "https://zillow.com", -1));

View File

@ -1,6 +1,8 @@
package com.hiddenservices.onionservices.pluginManager.pluginReciever; package com.hiddenservices.onionservices.pluginManager.pluginReciever;
import static com.hiddenservices.onionservices.constants.constants.CONST_NOTIFICATION_COMMAND; import static com.hiddenservices.onionservices.constants.constants.CONST_NOTIFICATION_COMMAND;
import static java.lang.System.exit;
import android.content.BroadcastReceiver; import android.content.BroadcastReceiver;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
@ -19,8 +21,12 @@ public class defaultNotificationReciever extends BroadcastReceiver {
} else if (mCommand == 1) { } else if (mCommand == 1) {
if(activityContextManager.getInstance().getHomeController() == null){ if(activityContextManager.getInstance().getHomeController() == null){
onDestroy(context); onDestroy(context);
NotificationManagerCompat.from(context).cancelAll();
exit(1);
}else { }else {
NotificationManagerCompat.from(activityContextManager.getInstance().getHomeController()).cancelAll();
activityContextManager.getInstance().getHomeController().onCloseApplication(); activityContextManager.getInstance().getHomeController().onCloseApplication();
exit(1);
} }
} }
} }
@ -43,7 +49,7 @@ public class defaultNotificationReciever extends BroadcastReceiver {
NotificationManagerCompat.from(context).cancel(1025); NotificationManagerCompat.from(context).cancel(1025);
android.os.Process.killProcess(android.os.Process.myPid()); android.os.Process.killProcess(android.os.Process.myPid());
System.exit(1); exit(1);
}, 100); }, 100);
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View File

@ -16,7 +16,6 @@
android:paddingBottom="50dp" android:paddingBottom="50dp"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<!-- Title Header -->
<LinearLayout <LinearLayout
android:id="@+id/pHeaderSupport" android:id="@+id/pHeaderSupport"
android:layout_width="match_parent" android:layout_width="match_parent"
@ -128,14 +127,6 @@
</LinearLayout> </LinearLayout>
<View
android:id="@+id/view4"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginStart="15dp"
android:background="@color/c_orbot_setting_divider" />
<!-- Title Header -->
<LinearLayout <LinearLayout
android:id="@+id/pSearchSettingOption2" android:id="@+id/pSearchSettingOption2"
android:layout_width="match_parent" android:layout_width="match_parent"
@ -179,6 +170,76 @@
android:layout_height="0dp" android:layout_height="0dp"
android:background="@color/c_orbot_setting_divider" /> android:background="@color/c_orbot_setting_divider" />
<LinearLayout
android:id="@+id/pSearchSettingOption4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:background="@xml/gx_ripple_gray"
android:onClick="onManageSearchEngine"
android:orientation="horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:padding="10dp"
android:layout_marginStart="5dp"
android:layout_marginEnd="5dp"
app:tint="@color/c_setting_icon_tint"
android:src="@xml/ic_baseline_search"
android:contentDescription="@string/GENERAL_TODO" />
<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:textAlignment="textStart"
android:layout_height="20dp"
android:alpha="1"
android:background="@android:color/transparent"
android:clickable="false"
android:padding="0dp"
android:text="@string/SETTING_SEARCH"
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_SEARCH_INFO"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="#757575"
android:textSize="13.5sp"
tools:ignore="RtlSymmetry" />
</LinearLayout>
<ImageButton
android:layout_width="45dp"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:contentDescription="@string/GENERAL_TODO"
android:clickable="false"
android:layout_marginEnd="5dp"
android:src="@xml/ic_arrow_right"
app:tint="@color/c_navigation_tint" />
</LinearLayout>
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -1207,77 +1268,6 @@
</LinearLayout> </LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@xml/gx_ripple_gray"
android:clickable="true"
android:onClick="cicadaClipboard"
android:focusable="true"
android:orientation="horizontal"
android:paddingTop="10dp"
android:paddingBottom="13dp">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="5dp"
android:layout_marginEnd="5dp"
android:contentDescription="@string/GENERAL_TODO"
android:padding="10dp"
android:src="@xml/ic_baseline_fingerprint"
app:tint="@color/c_setting_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/GENERAL_CICADA"
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/GENERAL_CICADA_KEY"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/c_text_v6"
android:textSize="13.5sp"
tools:ignore="HardcodedText,RtlSymmetry" />
</LinearLayout>
<ImageButton
android:layout_width="45dp"
android:layout_height="match_parent"
android:layout_marginEnd="5dp"
android:background="@android:color/transparent"
android:clickable="false"
android:contentDescription="@string/GENERAL_TODO"
android:src="@xml/ic_arrow_right"
app:tint="@color/c_navigation_tint" />
</LinearLayout>
</LinearLayout> </LinearLayout>
</ScrollView> </ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -235,7 +235,7 @@
android:clickable="false" android:clickable="false"
android:padding="0dp" android:padding="0dp"
android:paddingStart="15dp" android:paddingStart="15dp"
android:text="@string/SETTING_SEARCH_DUCK" android:text="Torry.IO"
android:textAlignment="textStart" android:textAlignment="textStart"
android:textAllCaps="false" android:textAllCaps="false"
android:textColor="@color/c_text_v1" android:textColor="@color/c_text_v1"

View File

@ -85,7 +85,7 @@
<!-- Alert TOR --> <!-- Alert TOR -->
<string name="ALERT_TOR_HEADER" translatable="true">Switch Tor</string> <string name="ALERT_TOR_HEADER" translatable="true">Switch Tor</string>
<string name="ALERT_TOR_DESCRIPTION" translatable="true">Using this you can switch between normal browsing using duckduckgo or advance secure dark web browsing using Orion search</string> <string name="ALERT_TOR_DESCRIPTION" translatable="true">Using this you can switch between normal browsing using tory io or advance secure dark web browsing using Orion search</string>
<string name="ALERT_TOR_TRIGGER" translatable="true">Switch</string> <string name="ALERT_TOR_TRIGGER" translatable="true">Switch</string>
<!-- Alert Secure --> <!-- Alert Secure -->
@ -272,7 +272,7 @@
<string name="SETTING_SEARCH_HEADER_2_INFO" translatable="true">Manage how searches appear</string> <string name="SETTING_SEARCH_HEADER_2_INFO" translatable="true">Manage how searches appear</string>
<string name="SETTING_SEARCH_DEFAULT" translatable="false">Default Engine (Recommended)</string> <string name="SETTING_SEARCH_DEFAULT" translatable="false">Default Engine (Recommended)</string>
<string name="SETTING_SEARCH_GENESIS" translatable="false">Orion</string> <string name="SETTING_SEARCH_GENESIS" translatable="false">Orion</string>
<string name="SETTING_SEARCH_DUCK" translatable="false">DuckDuckGo (Recommended)</string> <string name="SETTING_SEARCH_DUCK" translatable="false">Torry IO (Recommended)</string>
<string name="SETTING_SEARCH_GOOGLE" translatable="false">Google by Google inc</string> <string name="SETTING_SEARCH_GOOGLE" translatable="false">Google by Google inc</string>
<string name="SETTING_SEARCH_AMAZON" translatable="false">Bing by Microsoft</string> <string name="SETTING_SEARCH_AMAZON" translatable="false">Bing by Microsoft</string>
<string name="SETTING_SEARCH_BING" translatable="false">Browse articles freely</string> <string name="SETTING_SEARCH_BING" translatable="false">Browse articles freely</string>

View File

@ -1,6 +1,6 @@
/* Version */ /* Version */
project.ext.vname = 'Build | Dark-Origin 1.1.0.11' project.ext.vname = 'Build | Dark-Origin 1.1.0.12'
project.ext.vcode = 575 project.ext.vcode = 580
project.ext.buildType = 'release' project.ext.buildType = 'release'
project.ext.jvmTarget = "1.8" project.ext.jvmTarget = "1.8"
project.ext.applovin_key = "pCPe4EeU2ZQVwQPeHLgseRqHBX1V5pvo9Piuu4J809dRhadEgukXa1A8po_UeXu5hmPOTaP1v4QPaMKIEOhh50" project.ext.applovin_key = "pCPe4EeU2ZQVwQPeHLgseRqHBX1V5pvo9Piuu4J809dRhadEgukXa1A8po_UeXu5hmPOTaP1v4QPaMKIEOhh50"