mirror of https://github.com/LeOS-GSI/LeOS-Genesis
parent
c267a8f4eb
commit
a928d311ca
|
@ -29,5 +29,6 @@
|
|||
<option name="useQualifiedModuleNames" value="true" />
|
||||
</GradleProjectSettings>
|
||||
</option>
|
||||
<option name="offlineMode" value="true" />
|
||||
</component>
|
||||
</project>
|
Binary file not shown.
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"version": 2,
|
||||
"artifactType": {
|
||||
"type": "APK",
|
||||
"kind": "Directory"
|
||||
},
|
||||
"applicationId": "com.darkweb.genesissearchengine",
|
||||
"variantName": "processAarch64ReleaseResources",
|
||||
"elements": [
|
||||
{
|
||||
"type": "SINGLE",
|
||||
"filters": [],
|
||||
"versionCode": 600,
|
||||
"versionName": "600.0",
|
||||
"outputFile": "app-aarch64-release.apk"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -139,7 +139,7 @@
|
|||
<category android:name="android.intent.category.DEFAULT" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity android:name="com.darkweb.genesissearchengine.appManager.externalNavigationManager.externalNavigationController">
|
||||
<activity android:name="com.darkweb.genesissearchengine.externalNavigationManager.externalNavigationController">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
|
||||
|
@ -185,15 +185,6 @@
|
|||
android:name="com.google.android.gms.ads.APPLICATION_ID"
|
||||
android:value="ca-app-pub-5074525529134731~2926711128" />
|
||||
|
||||
<service
|
||||
android:name="com.darkweb.genesissearchengine.helperManager.autoFillService"
|
||||
android:label="Genesis | Secure Autofill"
|
||||
android:permission="android.permission.BIND_AUTOFILL_SERVICE"
|
||||
android:stopWithTask="true">
|
||||
<intent-filter>
|
||||
<action android:name="android.service.autofill.AutofillService" />
|
||||
</intent-filter>
|
||||
</service>
|
||||
<service
|
||||
android:name="com.darkweb.genesissearchengine.helperManager.downloadFileService"
|
||||
android:enabled="true"
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
<body class="clear_selection" id="pBody">
|
||||
<div class="hi_container_size">
|
||||
<!--top bar-->
|
||||
<p class="lh_light_header gs-disable-highlight" id="lh_light_header_identifier">
|
||||
<p class="lh_light_header gs-disable-highlight" id="">
|
||||
<span ><a href="https://boogle.store/search?q=random&p_num=1&s_type=image" class="lh_light_header__catagory lh_light_header__catagory_image">Images</a></span>
|
||||
<span ><a href="http://protonirockerxow.onion" class="lh_light_header__catagory lh_light_header__catagory_bold_mobile">Proton Mail</a></span>
|
||||
<span ><a href="https://www.bitfinex.com/" class="lh_light_header__catagory lh_light_header__bold lh_light_header__catagory-spacing-right" id="mobid">Bitcoin Market</a></span>
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
text-align: right;
|
||||
padding-top: 0px;
|
||||
border-bottom-color:#121212 !important;
|
||||
padding-top: 11px;
|
||||
padding-top: 10px;
|
||||
padding-bottom: 15px;
|
||||
border-style: solid;border-right-width: 0;
|
||||
border-left-width: 0;border-top-width: 0;
|
||||
|
@ -31,7 +31,7 @@
|
|||
@media only screen and (max-width: 943px) {
|
||||
.lh_light_header {
|
||||
border-bottom-width: 1px;
|
||||
padding-bottom: 12px;
|
||||
padding-bottom: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -66,11 +66,11 @@
|
|||
color: darkslategray;
|
||||
text-decoration: none !important;
|
||||
border-bottom: 4px solid lightslategray;
|
||||
background: whitesmoke;
|
||||
background: #18171c;
|
||||
}
|
||||
.lh_light_header__catagory:focus{
|
||||
color: darkslategray;
|
||||
text-decoration: none !important;
|
||||
border-bottom: 4px solid lightslategray;
|
||||
background: whitesmoke;
|
||||
background: #18171c;
|
||||
}
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
text-align: right;
|
||||
padding-top: 0px;
|
||||
border-bottom-color:#efefef;
|
||||
padding-top: 11px;
|
||||
padding-top: 10px;
|
||||
padding-bottom: 15px;
|
||||
border-style: solid;border-right-width: 0;
|
||||
border-left-width: 0;border-top-width: 0;
|
||||
|
@ -26,7 +26,7 @@
|
|||
@media only screen and (max-width: 943px) {
|
||||
.lh_light_header {
|
||||
border-bottom-width: 1px;
|
||||
padding-bottom: 12px;
|
||||
padding-bottom: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -9,29 +9,31 @@ import com.darkweb.genesissearchengine.appManager.orbotLogManager.orbotLogContro
|
|||
import com.darkweb.genesissearchengine.appManager.settingManager.generalManager.settingGeneralController;
|
||||
import com.darkweb.genesissearchengine.appManager.settingManager.settingHomePage.settingHomeController;
|
||||
import com.darkweb.genesissearchengine.appManager.tabManager.tabController;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class activityContextManager
|
||||
{
|
||||
/*Private Variables*/
|
||||
|
||||
private static final activityContextManager ourInstance = new activityContextManager();
|
||||
private static activityContextManager ourInstance = new activityContextManager();
|
||||
public static activityContextManager getInstance()
|
||||
{
|
||||
return ourInstance;
|
||||
}
|
||||
|
||||
/*Private Contexts*/
|
||||
private bridgeController pBridgeController;
|
||||
private historyController pHistoryController;
|
||||
private bookmarkController pBookmarkController;
|
||||
private homeController pHomeController;
|
||||
private tabController pTabController;
|
||||
private android.app.Activity pCurrentActivity = null;
|
||||
private settingHomeController pSettingController;
|
||||
private settingGeneralController pSettingGeneralController;
|
||||
private orbotLogController pOrbotLogController;
|
||||
private ArrayList<AppCompatActivity> mStackList;
|
||||
private WeakReference<bridgeController> pBridgeController;
|
||||
private WeakReference<historyController> pHistoryController;
|
||||
private WeakReference<bookmarkController> pBookmarkController;
|
||||
private WeakReference<homeController> pHomeController;
|
||||
private WeakReference<tabController> pTabController;
|
||||
private WeakReference<android.app.Activity> pCurrentActivity = null;
|
||||
private WeakReference<settingHomeController> pSettingController;
|
||||
private WeakReference<settingGeneralController> pSettingGeneralController;
|
||||
private WeakReference<orbotLogController> pOrbotLogController;
|
||||
private ArrayList<WeakReference<AppCompatActivity>> mStackList;
|
||||
|
||||
/*Initialization*/
|
||||
|
||||
|
@ -42,85 +44,128 @@ public class activityContextManager
|
|||
|
||||
/*List ContextGetterSetters*/
|
||||
public historyController getHistoryController(){
|
||||
return pHistoryController;
|
||||
if(pHistoryController==null){
|
||||
return null;
|
||||
}
|
||||
return pHistoryController.get();
|
||||
}
|
||||
public void setHistoryController(historyController history_controller){
|
||||
this.pHistoryController = history_controller;
|
||||
this.pHistoryController = new WeakReference(history_controller);
|
||||
}
|
||||
|
||||
public bookmarkController getBookmarkController(){
|
||||
return pBookmarkController;
|
||||
if(pBookmarkController==null){
|
||||
return null;
|
||||
}
|
||||
return pBookmarkController.get();
|
||||
}
|
||||
public void setBookmarkController(bookmarkController bookmark_controller){
|
||||
this.pBookmarkController = bookmark_controller;
|
||||
this.pBookmarkController = new WeakReference(bookmark_controller);
|
||||
}
|
||||
|
||||
public bridgeController getBridgeController(){
|
||||
return pBridgeController;
|
||||
if(pBridgeController==null){
|
||||
return null;
|
||||
}
|
||||
return pBridgeController.get();
|
||||
}
|
||||
public void setBridgeController(bridgeController bridge_controller){
|
||||
this.pBridgeController = bridge_controller;
|
||||
this.pBridgeController = new WeakReference(bridge_controller);
|
||||
}
|
||||
|
||||
public homeController getHomeController(){
|
||||
return pHomeController;
|
||||
if(pHomeController==null){
|
||||
return null;
|
||||
}
|
||||
return pHomeController.get();
|
||||
}
|
||||
public void setHomeController(homeController home_controller){
|
||||
this.pHomeController = home_controller;
|
||||
this.pHomeController = new WeakReference(home_controller);
|
||||
}
|
||||
|
||||
public tabController getTabController(){
|
||||
return pTabController;
|
||||
if(pTabController==null){
|
||||
return null;
|
||||
}
|
||||
return pTabController.get();
|
||||
}
|
||||
public void setTabController(tabController tab_controller){
|
||||
this.pTabController = tab_controller;
|
||||
this.pTabController = new WeakReference(tab_controller);
|
||||
}
|
||||
|
||||
public orbotLogController getOrbotLogController(){
|
||||
return pOrbotLogController;
|
||||
if(pOrbotLogController==null){
|
||||
return null;
|
||||
}
|
||||
return pOrbotLogController.get();
|
||||
}
|
||||
public void setOrbotLogController(orbotLogController pOrbotLogController){
|
||||
this.pOrbotLogController = pOrbotLogController;
|
||||
this.pOrbotLogController = new WeakReference(pOrbotLogController);
|
||||
}
|
||||
|
||||
|
||||
public settingGeneralController getSettingGeneralController(){
|
||||
return pSettingGeneralController;
|
||||
if(pSettingGeneralController==null){
|
||||
return null;
|
||||
}
|
||||
return pSettingGeneralController.get();
|
||||
}
|
||||
public void setSettingGeneralController(settingGeneralController pSettingGeneralController){
|
||||
this.pSettingGeneralController = pSettingGeneralController;
|
||||
this.pSettingGeneralController = new WeakReference(pSettingGeneralController);
|
||||
}
|
||||
|
||||
public settingHomeController getSettingController(){
|
||||
return pSettingController;
|
||||
if(pSettingController==null){
|
||||
return null;
|
||||
}
|
||||
return pSettingController.get();
|
||||
}
|
||||
public void setSettingController(settingHomeController pSettingController){
|
||||
this.pSettingController = pSettingController;
|
||||
this.pSettingController = new WeakReference(pSettingController);
|
||||
}
|
||||
|
||||
public void setCurrentActivity(android.app.Activity pCurrentActivity){
|
||||
this.pCurrentActivity = pCurrentActivity;
|
||||
this.pCurrentActivity = new WeakReference(pCurrentActivity);
|
||||
}
|
||||
public android.app.Activity getCurrentActivity(){
|
||||
return pCurrentActivity;
|
||||
if(pCurrentActivity==null){
|
||||
return null;
|
||||
}
|
||||
return pCurrentActivity.get();
|
||||
}
|
||||
|
||||
public void onStack(AppCompatActivity pActivity) {
|
||||
mStackList.add(pActivity);
|
||||
try{
|
||||
if (mStackList.size() > 0) {
|
||||
if (!mStackList.get(mStackList.size() - 1).get().getLocalClassName().equals(pActivity.getLocalClassName())) {
|
||||
mStackList.add(new WeakReference(pActivity));
|
||||
}
|
||||
}else {
|
||||
mStackList.add(new WeakReference(pActivity));
|
||||
}
|
||||
}catch (Exception ignored){}
|
||||
}
|
||||
|
||||
public void onRemoveStack(AppCompatActivity pActivity){
|
||||
if(mStackList.size()>0 && mStackList.get(mStackList.size()-1).equals(pActivity)){
|
||||
mStackList.remove(mStackList.size()-1);
|
||||
try{
|
||||
for(int mCounter=0;mCounter<mStackList.size();mCounter++){
|
||||
if(mStackList.get(mCounter).get().getLocalClassName().equals(pActivity.getLocalClassName())){
|
||||
mStackList.remove(mCounter);
|
||||
mCounter-=1;
|
||||
}
|
||||
}
|
||||
}catch (Exception ignored){}
|
||||
}
|
||||
|
||||
public void onClearStack(){
|
||||
for(int mCounter=0;mCounter<mStackList.size();mCounter++){
|
||||
if(!mStackList.get(mCounter).isFinishing()){
|
||||
mStackList.get(mCounter).finish();
|
||||
try{
|
||||
if(!mStackList.get(mCounter).get().isFinishing()){
|
||||
mStackList.get(mCounter).get().finish();
|
||||
mStackList.remove(mCounter);
|
||||
}
|
||||
mCounter-=1;
|
||||
}
|
||||
}catch (Exception ignored){}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -23,10 +23,9 @@ import androidx.recyclerview.widget.ItemTouchHelper;
|
|||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
||||
import com.darkweb.genesissearchengine.appManager.databaseManager.databaseController;
|
||||
import com.darkweb.genesissearchengine.databaseManager.databaseController;
|
||||
import com.darkweb.genesissearchengine.appManager.homeManager.homeController.editTextManager;
|
||||
import com.darkweb.genesissearchengine.appManager.homeManager.homeController.homeController;
|
||||
import com.darkweb.genesissearchengine.appManager.tabManager.tabEnums;
|
||||
import com.darkweb.genesissearchengine.constants.enums;
|
||||
import com.darkweb.genesissearchengine.constants.keys;
|
||||
import com.darkweb.genesissearchengine.constants.sql;
|
||||
|
@ -84,8 +83,8 @@ public class bookmarkController extends AppCompatActivity
|
|||
}
|
||||
@Override
|
||||
public void onConfigurationChanged(@NonNull Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
super.onConfigurationChanged(newConfig);
|
||||
|
||||
theme.getInstance().onConfigurationChanged(this);
|
||||
}
|
||||
|
@ -165,6 +164,12 @@ public class bookmarkController extends AppCompatActivity
|
|||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
activityContextManager.getInstance().setBookmarkController(null);
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
private void initSwipe(){
|
||||
ItemTouchHelper.SimpleCallback simpleItemTouchCallback = new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) {
|
||||
|
||||
|
|
|
@ -74,7 +74,8 @@ class bookmarkViewController
|
|||
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
|
||||
|
||||
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) {
|
||||
window.setStatusBarColor(ContextCompat.getColor(mContext, R.color.c_text_v3));
|
||||
window.setStatusBarColor(ContextCompat.getColor(mContext, R.color.blue_dark));
|
||||
mContext.getWindow().setStatusBarColor(ContextCompat.getColor(mContext, R.color.landing_ease_blue));
|
||||
}
|
||||
else {
|
||||
if(AppCompatDelegate.getDefaultNightMode() == AppCompatDelegate.MODE_NIGHT_NO){
|
||||
|
|
|
@ -49,8 +49,8 @@ public class bridgeController extends AppCompatActivity {
|
|||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
activityContextManager.getInstance().setBridgeController(this);
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.bridge_settings_view);
|
||||
|
||||
|
@ -61,8 +61,8 @@ public class bridgeController extends AppCompatActivity {
|
|||
|
||||
@Override
|
||||
public void onConfigurationChanged(@NonNull Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
super.onConfigurationChanged(newConfig);
|
||||
|
||||
theme.getInstance().onConfigurationChanged(this);
|
||||
}
|
||||
|
@ -171,6 +171,13 @@ public class bridgeController extends AppCompatActivity {
|
|||
super.onResume();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
activityContextManager.getInstance().setBridgeController(null);
|
||||
activityContextManager.getInstance().onRemoveStack(this);
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onStop() {
|
||||
super.onStop();
|
||||
|
@ -178,10 +185,11 @@ public class bridgeController extends AppCompatActivity {
|
|||
|
||||
@Override
|
||||
public void onBackPressed() {
|
||||
activityContextManager.getInstance().onRemoveStack(this);
|
||||
finish();
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*Helper Method*/
|
||||
|
||||
public void onClose(View view){
|
||||
|
|
|
@ -56,7 +56,8 @@ class bridgeViewController
|
|||
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
|
||||
|
||||
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) {
|
||||
window.setStatusBarColor(mContext.getResources().getColor(R.color.blue_dark));
|
||||
window.setStatusBarColor(ContextCompat.getColor(mContext, R.color.blue_dark));
|
||||
mContext.getWindow().setStatusBarColor(ContextCompat.getColor(mContext, R.color.landing_ease_blue));
|
||||
}
|
||||
else {
|
||||
if(AppCompatDelegate.getDefaultNightMode() == AppCompatDelegate.MODE_NIGHT_NO){
|
||||
|
|
|
@ -62,9 +62,7 @@ public class helpController extends AppCompatActivity {
|
|||
|
||||
@Override
|
||||
public void onConfigurationChanged(@NonNull Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
|
||||
theme.getInstance().onConfigurationChanged(this);
|
||||
}
|
||||
|
||||
|
|
|
@ -46,6 +46,7 @@ class helpViewController
|
|||
|
||||
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) {
|
||||
window.setStatusBarColor(mContext.getResources().getColor(R.color.blue_dark));
|
||||
mContext.getWindow().setStatusBarColor(ContextCompat.getColor(mContext, R.color.landing_ease_blue));
|
||||
}
|
||||
else {
|
||||
if(AppCompatDelegate.getDefaultNightMode() == AppCompatDelegate.MODE_NIGHT_NO){
|
||||
|
|
|
@ -24,8 +24,7 @@ import androidx.recyclerview.widget.ItemTouchHelper;
|
|||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
||||
import com.darkweb.genesissearchengine.appManager.bookmarkManager.bookmarkEnums;
|
||||
import com.darkweb.genesissearchengine.appManager.databaseManager.databaseController;
|
||||
import com.darkweb.genesissearchengine.databaseManager.databaseController;
|
||||
import com.darkweb.genesissearchengine.appManager.homeManager.homeController.editTextManager;
|
||||
import com.darkweb.genesissearchengine.appManager.homeManager.homeController.homeController;
|
||||
import com.darkweb.genesissearchengine.constants.enums;
|
||||
|
@ -87,8 +86,8 @@ public class historyController extends AppCompatActivity
|
|||
|
||||
@Override
|
||||
public void onConfigurationChanged(@NonNull Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
super.onConfigurationChanged(newConfig);
|
||||
|
||||
theme.getInstance().onConfigurationChanged(this);
|
||||
}
|
||||
|
@ -300,6 +299,8 @@ public class historyController extends AppCompatActivity
|
|||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
activityContextManager.getInstance().onRemoveStack(this);
|
||||
activityContextManager.getInstance().setHistoryController(null);
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
|
|
|
@ -72,7 +72,8 @@ class historyViewController
|
|||
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
|
||||
|
||||
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) {
|
||||
window.setStatusBarColor(ContextCompat.getColor(mContext, R.color.c_text_v3));
|
||||
window.setStatusBarColor(ContextCompat.getColor(mContext, R.color.blue_dark));
|
||||
mContext.getWindow().setStatusBarColor(ContextCompat.getColor(mContext, R.color.landing_ease_blue));
|
||||
}
|
||||
else {
|
||||
if(AppCompatDelegate.getDefaultNightMode() == AppCompatDelegate.MODE_NIGHT_NO){
|
||||
|
|
|
@ -17,7 +17,7 @@ public class NestedGeckoView extends GeckoView {
|
|||
private final int[] mScrollOffset = new int[2];
|
||||
private final int[] mScrollConsumed = new int[2];
|
||||
private int mNestedOffsetY;
|
||||
private final NestedScrollingChildHelper mChildHelper;
|
||||
private NestedScrollingChildHelper mChildHelper;
|
||||
private eventObserver.eventListener mEvent;
|
||||
|
||||
|
||||
|
@ -25,8 +25,13 @@ public class NestedGeckoView extends GeckoView {
|
|||
mEvent = pEvent;
|
||||
}
|
||||
|
||||
public void onDestroy() {
|
||||
mEvent = null;
|
||||
mChildHelper = null;
|
||||
}
|
||||
|
||||
public NestedGeckoView(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
super(context.getApplicationContext(), attrs);
|
||||
|
||||
mChildHelper = new NestedScrollingChildHelper(this);
|
||||
setNestedScrollingEnabled(true);
|
||||
|
|
|
@ -5,6 +5,8 @@ import android.content.Intent;
|
|||
import android.net.Uri;
|
||||
import android.widget.ImageView;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
||||
import com.darkweb.genesissearchengine.appManager.kotlinHelperLibraries.BrowserIconManager;
|
||||
import com.darkweb.genesissearchengine.constants.*;
|
||||
import com.darkweb.genesissearchengine.dataManager.dataController;
|
||||
|
@ -41,7 +43,6 @@ public class geckoClients
|
|||
private GeckoRuntime mRuntime = null;
|
||||
private BrowserIconManager mIconManager;
|
||||
private eventObserver.eventListener event;
|
||||
private AppCompatActivity context;
|
||||
|
||||
/*Local Variable*/
|
||||
|
||||
|
@ -49,7 +50,6 @@ public class geckoClients
|
|||
|
||||
public void initialize(GeckoView geckoView, eventObserver.eventListener event, AppCompatActivity context, boolean isForced)
|
||||
{
|
||||
this.context = context;
|
||||
this.event = event;
|
||||
mSessionID = helperMethod.createRandomID();
|
||||
initRuntimeSettings(context);
|
||||
|
@ -72,10 +72,10 @@ public class geckoClients
|
|||
onUpdateFont();
|
||||
}
|
||||
|
||||
public void onValidateInitializeFromStartup(NestedGeckoView mNestedGeckoView){
|
||||
public void onValidateInitializeFromStartup(NestedGeckoView mNestedGeckoView, AppCompatActivity pcontext){
|
||||
boolean mStatus = mSession.onValidateInitializeFromStartup();
|
||||
if(mStatus){
|
||||
loadURL(mSession.getCurrentURL(), mNestedGeckoView);
|
||||
loadURL(mSession.getCurrentURL(), mNestedGeckoView, pcontext);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -87,7 +87,7 @@ public class geckoClients
|
|||
public geckoSession initFreeSession(GeckoView pGeckoView, AppCompatActivity pcontext, eventObserver.eventListener event){
|
||||
this.event = event;
|
||||
initRuntimeSettings(pcontext);
|
||||
geckoSession mTempSession = new geckoSession(new geckoViewClientCallback(),mSessionID,context, pGeckoView);
|
||||
geckoSession mTempSession = new geckoSession(new geckoViewClientCallback(),mSessionID,pcontext, pGeckoView);
|
||||
mTempSession.open(mRuntime);
|
||||
mTempSession.getSettings().setUseTrackingProtection(status.sStatusDoNotTrack);
|
||||
mTempSession.getSettings().setFullAccessibilityTree(true);
|
||||
|
@ -96,6 +96,14 @@ public class geckoClients
|
|||
return mTempSession;
|
||||
}
|
||||
|
||||
public void onDestroy(){
|
||||
mSession.onDestroy();
|
||||
mSession = null;
|
||||
mRuntime = null;
|
||||
mIconManager = null;
|
||||
event = null;
|
||||
}
|
||||
|
||||
public GeckoRuntime getmRuntime(){
|
||||
return mRuntime;
|
||||
}
|
||||
|
@ -115,7 +123,7 @@ public class geckoClients
|
|||
@SuppressLint("WrongConstant")
|
||||
public void initRuntimeSettings(AppCompatActivity context){
|
||||
if(mRuntime==null){
|
||||
mRuntime = GeckoRuntime.getDefault(context);
|
||||
mRuntime = GeckoRuntime.getDefault(context.getApplicationContext());
|
||||
mRuntime.getSettings().setAboutConfigEnabled(true);
|
||||
mRuntime.getSettings().setAutomaticFontSizeAdjustment(false);
|
||||
mRuntime.getSettings().setWebFontsEnabled(status.sShowWebFonts);
|
||||
|
@ -132,14 +140,14 @@ public class geckoClients
|
|||
}
|
||||
}
|
||||
|
||||
public void onGetFavIcon(ImageView pImageView, String pURL){
|
||||
public void onGetFavIcon(ImageView pImageView, String pURL, AppCompatActivity pcontext){
|
||||
pURL = helperMethod.completeURL(helperMethod.getDomainName(pURL));
|
||||
mIconManager.onLoadIconIntoView(context,mRuntime, pImageView, pURL);
|
||||
mIconManager.onLoadIconIntoView(pcontext,mRuntime, pImageView, pURL);
|
||||
}
|
||||
|
||||
public void onLoadFavIcon(){
|
||||
public void onLoadFavIcon(AppCompatActivity pcontext){
|
||||
BrowserIconManager mIconManager = new BrowserIconManager();
|
||||
mIconManager.onLoadIcon(context, mRuntime);
|
||||
mIconManager.onLoadIcon(pcontext.getApplicationContext(), mRuntime);
|
||||
}
|
||||
|
||||
private int getCookiesBehaviour(){
|
||||
|
@ -147,7 +155,7 @@ public class geckoClients
|
|||
}
|
||||
|
||||
@SuppressLint("WrongConstant")
|
||||
public void updateSetting(NestedGeckoView mNestedGeckoView){
|
||||
public void updateSetting(NestedGeckoView mNestedGeckoView, AppCompatActivity pcontext){
|
||||
mRuntime.getSettings().setRemoteDebuggingEnabled(false);
|
||||
mRuntime.getSettings().setWebFontsEnabled(status.sShowWebFonts);
|
||||
mRuntime.getSettings().getContentBlocking().setCookieBehavior(getCookiesBehaviour());
|
||||
|
@ -168,7 +176,7 @@ public class geckoClients
|
|||
mSession.getSettings().setUserAgentMode(USER_AGENT_MODE_MOBILE );
|
||||
mSession.getSettings().setAllowJavascript(status.sSettingJavaStatus);
|
||||
onUpdateFont();
|
||||
onReload(mNestedGeckoView);
|
||||
onReload(mNestedGeckoView, pcontext);
|
||||
}
|
||||
|
||||
public void initSession(geckoSession mSession){
|
||||
|
@ -192,7 +200,7 @@ public class geckoClients
|
|||
mSession.initURL(url);
|
||||
}
|
||||
|
||||
public void loadURL(String url, NestedGeckoView mNestedGeckoView) {
|
||||
public void loadURL(String url, NestedGeckoView mNestedGeckoView, AppCompatActivity pcontext) {
|
||||
mSession = (geckoSession)mNestedGeckoView.getSession();
|
||||
if(mSession==null){
|
||||
return;
|
||||
|
@ -202,7 +210,7 @@ public class geckoClients
|
|||
if(!url.startsWith(CONST_REPORT_URL) && (url.startsWith("https://boogle.store/?pG") || url.startsWith("https://boogle.store?pG") || url.endsWith("boogle.store") || url.endsWith(constants.CONST_GENESIS_DOMAIN_URL_SLASHED))){
|
||||
try{
|
||||
mSession.initURL(constants.CONST_GENESIS_DOMAIN_URL);
|
||||
if(status.sTheme == enums.Theme.THEME_LIGHT || helperMethod.isDayMode(context)){
|
||||
if(status.sTheme == enums.Theme.THEME_LIGHT || helperMethod.isDayMode(pcontext)){
|
||||
String mURL = constants.CONST_GENESIS_URL_CACHED + "?pData="+ dataController.getInstance().invokeReferenceWebsite(dataEnums.eReferenceWebsiteCommands.M_FETCH,null);
|
||||
mSession.getSettings().setAllowJavascript(true);
|
||||
mSession.loadUri(mURL);
|
||||
|
@ -218,7 +226,7 @@ public class geckoClients
|
|||
try{
|
||||
mSession.initURL(constants.CONST_GENESIS_HELP_URL);
|
||||
|
||||
if(status.sTheme == enums.Theme.THEME_LIGHT || helperMethod.isDayMode(context)){
|
||||
if(status.sTheme == enums.Theme.THEME_LIGHT || helperMethod.isDayMode(pcontext)){
|
||||
mSession.getSettings().setAllowJavascript(true);
|
||||
mSession.loadUri(constants.CONST_GENESIS_HELP_URL_CACHE);
|
||||
}else {
|
||||
|
@ -235,9 +243,9 @@ public class geckoClients
|
|||
}
|
||||
}
|
||||
|
||||
public void onRedrawPixel(){
|
||||
public void onRedrawPixel(AppCompatActivity pcontext){
|
||||
mSession.onRedrawPixel();
|
||||
onLoadFavIcon();
|
||||
onLoadFavIcon(pcontext);
|
||||
}
|
||||
|
||||
public void onClearSiteData(){
|
||||
|
@ -312,9 +320,9 @@ public class geckoClients
|
|||
mSession.stop();
|
||||
}
|
||||
|
||||
public void onReload(NestedGeckoView mNestedGeckoView){
|
||||
public void onReload(NestedGeckoView mNestedGeckoView, AppCompatActivity pcontext){
|
||||
mSession.stop();
|
||||
loadURL(mSession.getCurrentURL(), mNestedGeckoView);
|
||||
loadURL(mSession.getCurrentURL(), mNestedGeckoView, pcontext);
|
||||
}
|
||||
|
||||
public void manual_download(String url, AppCompatActivity context){
|
||||
|
@ -337,16 +345,16 @@ public class geckoClients
|
|||
}
|
||||
}
|
||||
|
||||
public void downloadFile()
|
||||
public void downloadFile(AppCompatActivity pcontext)
|
||||
{
|
||||
if(helperMethod.checkPermissions(context)){
|
||||
if(helperMethod.checkPermissions(pcontext)){
|
||||
mSession.downloadRequestedFile();
|
||||
}
|
||||
}
|
||||
|
||||
public void downloadFile(String mURL)
|
||||
public void downloadFile(String mURL, AppCompatActivity pcontext)
|
||||
{
|
||||
if(helperMethod.checkPermissions(context)){
|
||||
if(helperMethod.checkPermissions(pcontext)){
|
||||
mSession.downloadRequestedFile();
|
||||
}
|
||||
}
|
||||
|
@ -374,7 +382,7 @@ public class geckoClients
|
|||
WebResponse responseInfo = (WebResponse)data.get(0);
|
||||
Intent intent = new Intent(Intent.ACTION_VIEW);
|
||||
intent.setDataAndTypeAndNormalize(Uri.parse(responseInfo.uri), responseInfo.headers.get("Content-Type"));
|
||||
context.startActivity(intent);
|
||||
activityContextManager.getInstance().getHomeController().startActivity(intent);
|
||||
}catch (Exception ignored){}
|
||||
} else
|
||||
{
|
||||
|
|
|
@ -32,20 +32,16 @@ import android.widget.ScrollView;
|
|||
import android.widget.Spinner;
|
||||
import android.widget.TextView;
|
||||
import android.widget.TimePicker;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
import com.darkweb.genesissearchengine.helperManager.PathUtil;
|
||||
import com.darkweb.genesissearchengine.helperManager.helperMethod;
|
||||
|
||||
import java.net.URISyntaxException;
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.Locale;
|
||||
|
||||
import org.mozilla.geckoview.AllowOrDeny;
|
||||
import org.mozilla.geckoview.GeckoResult;
|
||||
import org.mozilla.geckoview.GeckoSession;
|
||||
|
@ -55,24 +51,24 @@ import org.mozilla.geckoview.SlowScriptResponse;
|
|||
final class geckoPromptView implements GeckoSession.PromptDelegate {
|
||||
protected static final String LOGTAG = "geckoPromptView";
|
||||
|
||||
private final Activity mActivity;
|
||||
private final WeakReference<Activity> mActivity;
|
||||
public int filePickerRequestCode = 1;
|
||||
private int mFileType;
|
||||
private GeckoResult<PromptResponse> mFileResponse;
|
||||
private FilePrompt mFilePrompt;
|
||||
|
||||
public geckoPromptView(final Activity activity) {
|
||||
mActivity = activity;
|
||||
mActivity = new WeakReference(activity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public GeckoResult<PromptResponse> onAlertPrompt(final GeckoSession session,
|
||||
final AlertPrompt prompt) {
|
||||
final Activity activity = mActivity;
|
||||
final Activity activity = mActivity.get();
|
||||
if (activity == null) {
|
||||
return GeckoResult.fromValue(prompt.dismiss());
|
||||
}
|
||||
final AlertDialog.Builder builder = new AlertDialog.Builder(activity)
|
||||
final AlertDialog.Builder builder = new AlertDialog.Builder(activity.getApplicationContext())
|
||||
.setTitle(prompt.title)
|
||||
.setMessage(prompt.message)
|
||||
.setPositiveButton(android.R.string.ok, /* onClickListener */ null);
|
||||
|
@ -84,11 +80,11 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
|||
@Override
|
||||
public GeckoResult<PromptResponse> onButtonPrompt(final GeckoSession session,
|
||||
final ButtonPrompt prompt) {
|
||||
final Activity activity = mActivity;
|
||||
final Activity activity = mActivity.get();
|
||||
if (activity == null) {
|
||||
return GeckoResult.fromValue(prompt.dismiss());
|
||||
}
|
||||
final AlertDialog.Builder builder = new AlertDialog.Builder(activity)
|
||||
final AlertDialog.Builder builder = new AlertDialog.Builder(activity.getApplicationContext())
|
||||
.setTitle(prompt.title)
|
||||
.setMessage(prompt.message);
|
||||
|
||||
|
@ -157,11 +153,11 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
|||
@Override
|
||||
public GeckoResult<PromptResponse> onTextPrompt(final GeckoSession session,
|
||||
final TextPrompt prompt) {
|
||||
final Activity activity = mActivity;
|
||||
final Activity activity = mActivity.get();
|
||||
if (activity == null) {
|
||||
return GeckoResult.fromValue(prompt.dismiss());
|
||||
}
|
||||
final AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
||||
final AlertDialog.Builder builder = new AlertDialog.Builder(activity.getApplicationContext());
|
||||
final LinearLayout container = addStandardLayout(builder, prompt.title, prompt.message);
|
||||
final EditText editText = new EditText(builder.getContext());
|
||||
editText.setText(prompt.defaultValue);
|
||||
|
@ -185,11 +181,11 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
|||
@Override
|
||||
public GeckoResult<PromptResponse> onAuthPrompt(final GeckoSession session,
|
||||
final AuthPrompt prompt) {
|
||||
final Activity activity = mActivity;
|
||||
final Activity activity = mActivity.get();
|
||||
if (activity == null) {
|
||||
return GeckoResult.fromValue(prompt.dismiss());
|
||||
}
|
||||
final AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
||||
final AlertDialog.Builder builder = new AlertDialog.Builder(activity.getApplicationContext());
|
||||
final LinearLayout container = addStandardLayout(builder, prompt.title, prompt.message);
|
||||
|
||||
final int flags = prompt.authOptions.flags;
|
||||
|
@ -285,12 +281,12 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
|||
final String message, final int type,
|
||||
final ChoicePrompt.Choice[] choices, final ChoicePrompt prompt,
|
||||
final GeckoResult<PromptResponse> res) {
|
||||
final Activity activity = mActivity;
|
||||
final Activity activity = mActivity.get();
|
||||
if (activity == null) {
|
||||
res.complete(prompt.dismiss());
|
||||
return;
|
||||
}
|
||||
final AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
||||
final AlertDialog.Builder builder = new AlertDialog.Builder(activity.getApplicationContext());
|
||||
addStandardLayout(builder, title, message);
|
||||
|
||||
final ListView list = new ListView(builder.getContext());
|
||||
|
@ -476,11 +472,11 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
|||
@Override
|
||||
public GeckoResult<PromptResponse> onColorPrompt(final GeckoSession session,
|
||||
final ColorPrompt prompt) {
|
||||
final Activity activity = mActivity;
|
||||
final Activity activity = mActivity.get();
|
||||
if (activity == null) {
|
||||
return GeckoResult.fromValue(prompt.dismiss());
|
||||
}
|
||||
final AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
||||
final AlertDialog.Builder builder = new AlertDialog.Builder(activity.getApplicationContext());
|
||||
addStandardLayout(builder, prompt.title, /* msg */ null);
|
||||
|
||||
final int initial = parseColor(prompt.defaultValue, /* def */ 0);
|
||||
|
@ -587,7 +583,7 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
|||
@Override
|
||||
public GeckoResult<PromptResponse> onDateTimePrompt(final GeckoSession session,
|
||||
final DateTimePrompt prompt) {
|
||||
final Activity activity = mActivity;
|
||||
final Activity activity = mActivity.get();
|
||||
if (activity == null) {
|
||||
return GeckoResult.fromValue(prompt.dismiss());
|
||||
}
|
||||
|
@ -613,7 +609,7 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
|||
final Calendar cal = formatter.getCalendar();
|
||||
cal.setTime(date);
|
||||
|
||||
final AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
||||
final AlertDialog.Builder builder = new AlertDialog.Builder(activity.getApplicationContext());
|
||||
final LayoutInflater inflater = LayoutInflater.from(builder.getContext());
|
||||
final DatePicker datePicker;
|
||||
if (prompt.type == DateTimePrompt.Type.DATE || prompt.type == DateTimePrompt.Type.MONTH ||
|
||||
|
@ -706,12 +702,12 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
|||
@TargetApi(19)
|
||||
public GeckoResult<PromptResponse> onFilePrompt(GeckoSession session, FilePrompt prompt)
|
||||
{
|
||||
final Activity activity = mActivity;
|
||||
final Activity activity = mActivity.get();
|
||||
if (activity == null) {
|
||||
return GeckoResult.fromValue(prompt.dismiss());
|
||||
}
|
||||
|
||||
if(!helperMethod.checkPermissions((AppCompatActivity)mActivity)){
|
||||
if(!helperMethod.checkPermissions((AppCompatActivity)mActivity.get().getApplicationContext())){
|
||||
return GeckoResult.fromValue(prompt.dismiss());
|
||||
}
|
||||
|
||||
|
@ -787,7 +783,7 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
|||
|
||||
String filePath = null;
|
||||
|
||||
filePath = PathUtil.getPath(mActivity.getApplicationContext(),uri);
|
||||
filePath = PathUtil.getPath(mActivity.get().getApplicationContext(),uri);
|
||||
|
||||
if (filePath==null) {
|
||||
res.complete(prompt.dismiss());
|
||||
|
@ -800,7 +796,7 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
|||
|
||||
if (prompt.type == FilePrompt.Type.SINGLE ||
|
||||
(prompt.type == FilePrompt.Type.MULTIPLE && clip == null)) {
|
||||
res.complete(prompt.confirm(mActivity, uri));
|
||||
res.complete(prompt.confirm(mActivity.get().getApplicationContext(), uri));
|
||||
} else if (prompt.type == FilePrompt.Type.MULTIPLE) {
|
||||
if (clip == null) {
|
||||
Log.w(LOGTAG, "No selected file");
|
||||
|
@ -812,18 +808,18 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
|||
for (int i = 0; i < count; i++) {
|
||||
uris.add(clip.getItemAt(i).getUri());
|
||||
}
|
||||
res.complete(prompt.confirm(mActivity, uris.toArray(new Uri[uris.size()])));
|
||||
res.complete(prompt.confirm(mActivity.get().getApplicationContext(), uris.toArray(new Uri[uris.size()])));
|
||||
}
|
||||
}
|
||||
|
||||
public void onPermissionPrompt(final GeckoSession session, final String title,
|
||||
final GeckoSession.PermissionDelegate.Callback callback) {
|
||||
final Activity activity = mActivity;
|
||||
final Activity activity = mActivity.get();
|
||||
if (activity == null) {
|
||||
callback.reject();
|
||||
return;
|
||||
}
|
||||
final AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
||||
final AlertDialog.Builder builder = new AlertDialog.Builder(activity.getApplicationContext());
|
||||
builder.setTitle(title)
|
||||
.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
|
@ -843,11 +839,11 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
|||
}
|
||||
|
||||
public void onSlowScriptPrompt(GeckoSession geckoSession, String title, GeckoResult<SlowScriptResponse> reportAction) {
|
||||
final Activity activity = mActivity;
|
||||
final Activity activity = mActivity.get();
|
||||
if (activity == null) {
|
||||
return;
|
||||
}
|
||||
final AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
||||
final AlertDialog.Builder builder = new AlertDialog.Builder(activity.getApplicationContext());
|
||||
builder.setTitle(title)
|
||||
.setNegativeButton("Wait", new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
|
@ -904,12 +900,12 @@ final class geckoPromptView implements GeckoSession.PromptDelegate {
|
|||
final MediaSource[] video, final MediaSource[] audio,
|
||||
final String[] videoNames, final String[] audioNames,
|
||||
final GeckoSession.PermissionDelegate.MediaCallback callback) {
|
||||
final Activity activity = mActivity;
|
||||
final Activity activity = mActivity.get();
|
||||
if (activity == null || (video == null && audio == null)) {
|
||||
callback.reject();
|
||||
return;
|
||||
}
|
||||
final AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
||||
final AlertDialog.Builder builder = new AlertDialog.Builder(activity.getApplicationContext());
|
||||
final LinearLayout container = addStandardLayout(builder, title, /* msg */ null);
|
||||
|
||||
final Spinner videoSpinner;
|
||||
|
|
|
@ -60,6 +60,7 @@ import java.io.File;
|
|||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.net.URLEncoder;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
@ -92,7 +93,7 @@ public class geckoSession extends GeckoSession implements GeckoSession.MediaDele
|
|||
private String mCurrentTitle = "loading";
|
||||
private String mCurrentURL = "about:blank";
|
||||
private Uri mUriPermission = null;
|
||||
private AppCompatActivity mContext;
|
||||
private WeakReference<AppCompatActivity> mContext;
|
||||
private geckoDownloadManager mDownloadManager;
|
||||
private String mTheme = null;
|
||||
private boolean mPreviousErrorPage = false;
|
||||
|
@ -112,7 +113,7 @@ public class geckoSession extends GeckoSession implements GeckoSession.MediaDele
|
|||
geckoSession(eventObserver.eventListener event,String mSessionID,AppCompatActivity mContext, GeckoView pGeckoView){
|
||||
|
||||
this.mGeckoView = pGeckoView;
|
||||
this.mContext = mContext;
|
||||
this.mContext = new WeakReference(mContext);
|
||||
this.mSessionID = mSessionID;
|
||||
this.event = event;
|
||||
|
||||
|
@ -128,6 +129,25 @@ public class geckoSession extends GeckoSession implements GeckoSession.MediaDele
|
|||
setPromptDelegate(new geckoPromptView(mContext));
|
||||
}
|
||||
|
||||
public void onDestroy(){
|
||||
close();
|
||||
setProgressDelegate(null);
|
||||
setHistoryDelegate(null);
|
||||
setNavigationDelegate(null);
|
||||
setContentDelegate(null);
|
||||
setAutoFillDelegate();
|
||||
setPermissionDelegate(null);
|
||||
setScrollDelegate(null);
|
||||
mDownloadManager = null;
|
||||
setPromptDelegate(null);
|
||||
event = null;
|
||||
mContext = null;
|
||||
mDownloadManager = null;
|
||||
mHistoryList = null;
|
||||
mFindHandler = null;
|
||||
mGeckoView = null;
|
||||
}
|
||||
|
||||
public void onSetInitializeFromStartup(){
|
||||
mIsLoaded = true;
|
||||
}
|
||||
|
@ -162,7 +182,10 @@ public class geckoSession extends GeckoSession implements GeckoSession.MediaDele
|
|||
mFindHandler = new Handler();
|
||||
mFindHandler.postDelayed(() ->
|
||||
{
|
||||
mContext.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_USER);
|
||||
if(mContext!=null){
|
||||
mContext.get().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_USER);
|
||||
|
||||
}
|
||||
}, 1500);
|
||||
|
||||
}
|
||||
|
@ -220,7 +243,7 @@ public class geckoSession extends GeckoSession implements GeckoSession.MediaDele
|
|||
}
|
||||
|
||||
final AutofillManager manager =
|
||||
mContext.getSystemService(AutofillManager.class);
|
||||
mContext.get().getApplicationContext().getSystemService(AutofillManager.class);
|
||||
if (manager == null) {
|
||||
return;
|
||||
}
|
||||
|
@ -287,8 +310,10 @@ public class geckoSession extends GeckoSession implements GeckoSession.MediaDele
|
|||
{
|
||||
if(!mThemeChanged){
|
||||
mTheme = null;
|
||||
if(event!=null) {
|
||||
event.invokeObserver(Arrays.asList(mCurrentURL, mSessionID, mCurrentTitle, mTheme), enums.etype.ON_UPDATE_THEME);
|
||||
}
|
||||
}
|
||||
}, 500);
|
||||
}
|
||||
}
|
||||
|
@ -305,12 +330,12 @@ public class geckoSession extends GeckoSession implements GeckoSession.MediaDele
|
|||
if(progress==100){
|
||||
if(!mIsProgressBarChanging){
|
||||
mIsProgressBarChanging = true;
|
||||
mContext.runOnUiThread(() -> event.invokeObserver(Arrays.asList(mProgress,mSessionID), enums.etype.progress_update));
|
||||
mContext.get().runOnUiThread(() -> event.invokeObserver(Arrays.asList(mProgress,mSessionID), enums.etype.progress_update));
|
||||
event.invokeObserver(Arrays.asList(mCurrentURL,mSessionID,mCurrentTitle, m_current_url_id, mTheme), enums.etype.M_UPDATE_PIXEL_BACKGROUND);
|
||||
}
|
||||
}else {
|
||||
mIsProgressBarChanging = false;
|
||||
mContext.runOnUiThread(() -> event.invokeObserver(Arrays.asList(mProgress,mSessionID), enums.etype.progress_update));
|
||||
mContext.get().runOnUiThread(() -> event.invokeObserver(Arrays.asList(mProgress,mSessionID), enums.etype.progress_update));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -355,7 +380,7 @@ public class geckoSession extends GeckoSession implements GeckoSession.MediaDele
|
|||
setURL(constants.CONST_GENESIS_DOMAIN_URL);
|
||||
}
|
||||
else if(newUrl.equals(constants.CONST_GENESIS_HELP_URL_CACHE)){
|
||||
if(status.sTheme == enums.Theme.THEME_LIGHT || helperMethod.isDayMode(mContext)){
|
||||
if(status.sTheme == enums.Theme.THEME_LIGHT || helperMethod.isDayMode(mContext.get())){
|
||||
setURL(constants.CONST_GENESIS_HELP_URL);
|
||||
}else {
|
||||
setURL(constants.CONST_GENESIS_HELP_URL_CACHE_DARK);
|
||||
|
@ -414,7 +439,7 @@ public class geckoSession extends GeckoSession implements GeckoSession.MediaDele
|
|||
if(mCurrentURL.startsWith(CONST_GENESIS_URL_CACHED) || mCurrentURL.startsWith(CONST_GENESIS_URL_CACHED_DARK)){
|
||||
setURL(constants.CONST_GENESIS_DOMAIN_URL);
|
||||
}else if(mCurrentURL.equals(constants.CONST_GENESIS_HELP_URL_CACHE)){
|
||||
if(status.sTheme == enums.Theme.THEME_LIGHT || helperMethod.isDayMode(mContext)){
|
||||
if(status.sTheme == enums.Theme.THEME_LIGHT || helperMethod.isDayMode(mContext.get())){
|
||||
setURL(constants.CONST_GENESIS_HELP_URL);
|
||||
}else {
|
||||
setURL(constants.CONST_GENESIS_HELP_URL_CACHE_DARK);
|
||||
|
@ -459,7 +484,7 @@ public class geckoSession extends GeckoSession implements GeckoSession.MediaDele
|
|||
mPreviousErrorPage = true;
|
||||
event.invokeObserver(Arrays.asList(var2,mSessionID), enums.etype.on_load_error);
|
||||
event.invokeObserver(Arrays.asList(mCurrentURL,mSessionID,mCurrentTitle, mTheme), enums.etype.ON_UPDATE_THEME);
|
||||
return GeckoResult.fromValue("data:text/html," + handler.createErrorPage(var3.category, var3.code,mContext,var2));
|
||||
return GeckoResult.fromValue("data:text/html," + handler.createErrorPage(var3.category, var3.code,mContext.get(),var2));
|
||||
}
|
||||
|
||||
/*Content Delegate*/
|
||||
|
@ -468,7 +493,7 @@ public class geckoSession extends GeckoSession implements GeckoSession.MediaDele
|
|||
public void onExternalResponse(@NonNull GeckoSession session, @NonNull WebResponse response) {
|
||||
try {
|
||||
if(response.headers.containsKey("Content-Disposition")){
|
||||
mDownloadManager.downloadFile(response,this,mContext,event);
|
||||
mDownloadManager.downloadFile(response,this,mContext.get(),event);
|
||||
}else if(response.headers.containsKey("Content-Type")){
|
||||
event.invokeObserver(Arrays.asList(response,mSessionID), enums.etype.on_handle_external_intent);
|
||||
stop();
|
||||
|
@ -588,11 +613,11 @@ public class geckoSession extends GeckoSession implements GeckoSession.MediaDele
|
|||
}
|
||||
if(var4.type!=0){
|
||||
if(var4.linkUri!=null){
|
||||
event.invokeObserver(Arrays.asList(var4.linkUri,mSessionID,var4.srcUri,title, mTheme, mContext), M_LONG_PRESS_WITH_LINK);
|
||||
event.invokeObserver(Arrays.asList(var4.linkUri,mSessionID,var4.srcUri,title, mTheme, mContext.get()), M_LONG_PRESS_WITH_LINK);
|
||||
}
|
||||
else {
|
||||
try{
|
||||
event.invokeObserver(Arrays.asList(var4.srcUri,mSessionID,title, mTheme, mContext), enums.etype.on_long_press);
|
||||
event.invokeObserver(Arrays.asList(var4.srcUri,mSessionID,title, mTheme, mContext.get()), enums.etype.on_long_press);
|
||||
}catch (Exception ex){
|
||||
ex.printStackTrace();
|
||||
Log.i("","");
|
||||
|
@ -600,7 +625,7 @@ public class geckoSession extends GeckoSession implements GeckoSession.MediaDele
|
|||
}
|
||||
}
|
||||
else{
|
||||
event.invokeObserver(Arrays.asList(var4.linkUri,mSessionID,title, mTheme, mContext), M_LONG_PRESS_URL);
|
||||
event.invokeObserver(Arrays.asList(var4.linkUri,mSessionID,title, mTheme, mContext.get()), M_LONG_PRESS_URL);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -625,7 +650,7 @@ public class geckoSession extends GeckoSession implements GeckoSession.MediaDele
|
|||
{
|
||||
if(mDownloadManager.getDownloadURL()!=null && mDownloadManager.getDownloadFile()!=null){
|
||||
if(!createAndSaveFileFromBase64Url(mDownloadManager.getDownloadURL().toString())){
|
||||
mContext.startService(downloadFileService.getDownloadService(mContext, mDownloadManager.getDownloadURL()+"__"+mDownloadManager.getDownloadFile(), Environment.DIRECTORY_DOWNLOADS));
|
||||
mContext.get().startService(downloadFileService.getDownloadService(mContext.get().getApplicationContext(), mDownloadManager.getDownloadURL()+"__"+mDownloadManager.getDownloadFile(), Environment.DIRECTORY_DOWNLOADS));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -634,7 +659,7 @@ public class geckoSession extends GeckoSession implements GeckoSession.MediaDele
|
|||
{
|
||||
if(downloadURL!=null && downloadFile!=null){
|
||||
if(!createAndSaveFileFromBase64Url(downloadURL.toString())){
|
||||
mContext.startService(downloadFileService.getDownloadService(mContext, downloadURL + "__" + downloadFile, Environment.DIRECTORY_DOWNLOADS));
|
||||
mContext.get().startService(downloadFileService.getDownloadService(mContext.get().getApplicationContext(), downloadURL + "__" + downloadFile, Environment.DIRECTORY_DOWNLOADS));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -645,7 +670,7 @@ public class geckoSession extends GeckoSession implements GeckoSession.MediaDele
|
|||
return false;
|
||||
}
|
||||
else if(url.startsWith("blob")){
|
||||
Toast toast = Toast.makeText(mContext.getApplicationContext(),
|
||||
Toast toast = Toast.makeText(mContext.get().getApplicationContext(),
|
||||
"Unable to download urls that contain prefix blob. Not Supported",
|
||||
Toast.LENGTH_SHORT);
|
||||
|
||||
|
@ -681,7 +706,7 @@ public class geckoSession extends GeckoSession implements GeckoSession.MediaDele
|
|||
os.close();
|
||||
|
||||
//Tell the media scanner about the new file so that it is immediately available to the user.
|
||||
MediaScannerConnection.scanFile(mContext,
|
||||
MediaScannerConnection.scanFile(mContext.get().getApplicationContext(),
|
||||
new String[]{file.toString()}, null,
|
||||
(path1, uri) ->
|
||||
{
|
||||
|
@ -693,20 +718,20 @@ public class geckoSession extends GeckoSession implements GeckoSession.MediaDele
|
|||
String mimetype = url.substring(url.indexOf(":") + 1, url.indexOf("/"));
|
||||
Intent intent = new Intent();
|
||||
intent.setAction(android.content.Intent.ACTION_VIEW);
|
||||
Uri uri_temp = FileProvider.getUriForFile(mContext,mContext.getString(R.string.GENERAL_FILE_PROVIDER_AUTHORITY), file);
|
||||
Uri uri_temp = FileProvider.getUriForFile(mContext.get().getApplicationContext(),mContext.get().getString(R.string.GENERAL_FILE_PROVIDER_AUTHORITY), file);
|
||||
intent.setDataAndType(uri_temp, (mimetype + "/*"));
|
||||
|
||||
List<ResolveInfo> resInfoList = mContext.getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
|
||||
List<ResolveInfo> resInfoList = mContext.get().getApplicationContext().getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
|
||||
for (ResolveInfo resolveInfo : resInfoList) {
|
||||
String packageName = resolveInfo.activityInfo.packageName;
|
||||
mUriPermission = uri_temp;
|
||||
mContext.grantUriPermission(packageName, uri_temp, Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION);
|
||||
mContext.get().getApplicationContext().grantUriPermission(packageName, uri_temp, Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION);
|
||||
}
|
||||
PendingIntent pIntent = PendingIntent.getActivity(mContext, 0, intent, 0);
|
||||
PendingIntent pIntent = PendingIntent.getActivity(mContext.get().getApplicationContext(), 0, intent, 0);
|
||||
|
||||
String channel_id = createNotificationChannel(mContext);
|
||||
String channel_id = createNotificationChannel(mContext.get().getApplicationContext());
|
||||
assert channel_id != null;
|
||||
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(mContext, channel_id)
|
||||
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(mContext.get().getApplicationContext(), channel_id)
|
||||
.setSmallIcon(R.xml.ic_download)
|
||||
.setContentTitle(filename)
|
||||
.setContentIntent(pIntent);
|
||||
|
@ -714,7 +739,7 @@ public class geckoSession extends GeckoSession implements GeckoSession.MediaDele
|
|||
notificationBuilder.setAutoCancel(true);
|
||||
|
||||
int notificationId = 85851;
|
||||
NotificationManager notificationManager = (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
|
||||
NotificationManager notificationManager = (NotificationManager) mContext.get().getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE);
|
||||
notificationManager.notify(notificationId, notificationBuilder.build());
|
||||
|
||||
} catch (IOException e) {
|
||||
|
|
|
@ -32,6 +32,7 @@ import android.webkit.URLUtil;
|
|||
import android.widget.*;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.appcompat.app.AppCompatDelegate;
|
||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.core.widget.NestedScrollView;
|
||||
|
@ -40,7 +41,8 @@ import androidx.recyclerview.widget.LinearLayoutManager;
|
|||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
||||
import com.darkweb.genesissearchengine.appManager.bookmarkManager.bookmarkController;
|
||||
import com.darkweb.genesissearchengine.appManager.databaseManager.databaseController;
|
||||
import com.darkweb.genesissearchengine.appManager.tabManager.tabController;
|
||||
import com.darkweb.genesissearchengine.databaseManager.databaseController;
|
||||
import com.darkweb.genesissearchengine.appManager.historyManager.historyController;
|
||||
import com.darkweb.genesissearchengine.appManager.historyManager.historyRowModel;
|
||||
import com.darkweb.genesissearchengine.appManager.homeManager.geckoManager.NestedGeckoView;
|
||||
|
@ -73,6 +75,8 @@ import com.darkweb.genesissearchengine.pluginManager.pluginEnums;
|
|||
import com.darkweb.genesissearchengine.widget.progressBar.AnimatedProgressBar;
|
||||
import com.example.myapplication.R;
|
||||
import com.google.android.gms.ads.AdView;
|
||||
import com.google.firebase.installations.time.SystemClock;
|
||||
|
||||
import org.mozilla.geckoview.GeckoResult;
|
||||
import org.mozilla.geckoview.GeckoSession;
|
||||
import org.torproject.android.service.OrbotService;
|
||||
|
@ -96,7 +100,8 @@ import static com.darkweb.genesissearchengine.constants.constants.CONST_GENESIS_
|
|||
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_SINGLE;
|
||||
import static com.darkweb.genesissearchengine.constants.enums.etype.ON_OPEN_TAB_VIEW;
|
||||
import static com.darkweb.genesissearchengine.constants.enums.etype.M_NEW_LINK_IN_NEW_TAB;
|
||||
import static com.darkweb.genesissearchengine.constants.enums.etype.open_new_tab;
|
||||
import static com.darkweb.genesissearchengine.pluginManager.pluginEnums.eMessageManager.*;
|
||||
import static com.darkweb.genesissearchengine.pluginManager.pluginEnums.eMessageManagerCallbacks.M_RATE_APPLICATION;
|
||||
import static java.lang.Character.isLetter;
|
||||
|
@ -135,6 +140,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
private ImageButton mMenu;
|
||||
private NestedScrollView mNestedScroll;
|
||||
private ImageView mBlockerFullSceen;
|
||||
private ImageView mNewTabBlocker;
|
||||
private TextView mCopyright;
|
||||
private RecyclerView mHintListView;
|
||||
private ImageView mSearchLock;
|
||||
|
@ -167,16 +173,15 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState)
|
||||
{
|
||||
onInitTheme();
|
||||
onInitBooleans();
|
||||
orbotLocalConstants.mHomeIntent = getIntent();
|
||||
|
||||
|
||||
getWindow().getDecorView().setBackgroundColor(Color.WHITE);
|
||||
pluginController.getInstance().preInitialize(this);
|
||||
databaseController.getInstance().initialize(this);
|
||||
dataController.getInstance().initialize(this);
|
||||
status.initStatus();
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
status.initStatus(this);
|
||||
databaseController.getInstance().initialize(this);
|
||||
trueTime.getInstance().initTime();
|
||||
|
||||
super.onCreate(savedInstanceState);
|
||||
|
@ -233,7 +238,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
}
|
||||
|
||||
public void initAdmob(){
|
||||
pluginController.getInstance().onAdsInvoke(null, pluginEnums.eAdManager.M_INITIALIZE_BANNER_ADS);
|
||||
pluginController.getInstance().onAdsInvoke(Collections.singletonList(this), pluginEnums.eAdManager.M_INITIALIZE_BANNER_ADS);
|
||||
}
|
||||
|
||||
public void onInitBooleans(){
|
||||
|
@ -264,6 +269,14 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
mHomeViewController.splashScreenDisableInstant();
|
||||
onLoadTabOnResume();
|
||||
mSearchLock.setColorFilter(ContextCompat.getColor(this, R.color.c_lock_tint));
|
||||
}else {
|
||||
new Handler().postDelayed(() ->
|
||||
{
|
||||
mTabFragment.setAlpha(1f);
|
||||
mTabFragment.setVisibility(View.VISIBLE);
|
||||
activityContextManager.getInstance().getTabController().onInit();
|
||||
mTabFragment.setVisibility(View.GONE);
|
||||
}, 500);
|
||||
}
|
||||
initSuggestionView(new ArrayList<>(), strings.GENERIC_EMPTY_STR);
|
||||
}
|
||||
|
@ -284,7 +297,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
onLoadURL(model.getSession().getCurrentURL());
|
||||
}
|
||||
|
||||
mGeckoClient.onValidateInitializeFromStartup(mGeckoView);
|
||||
mGeckoClient.onValidateInitializeFromStartup(mGeckoView, homeController.this);
|
||||
mGeckoClient.onSessionReinit();
|
||||
}
|
||||
|
||||
|
@ -321,7 +334,6 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
if(!status.mThemeApplying){
|
||||
mHomeViewController.onUpdateSearchBar(mGeckoClient.getSession().getCurrentURL(), false, false, false);
|
||||
}
|
||||
status.mThemeApplying = false;
|
||||
}
|
||||
|
||||
@SuppressLint("ClickableViewAccessibility")
|
||||
|
@ -420,16 +432,17 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
mTabFragment = findViewById(R.id.mTabFragment);
|
||||
mPopupLoadNewTab = findViewById(R.id.pPopupLoadNewTab);
|
||||
mTopBarHider = findViewById(R.id.pTopBarHider);
|
||||
mNewTabBlocker = findViewById(R.id.pNewTabBlocker);
|
||||
|
||||
mGeckoView.setSaveEnabled(false);
|
||||
mGeckoView.setSaveFromParentEnabled(false);
|
||||
mGeckoView.setAutofillEnabled(true);
|
||||
|
||||
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, mProgressBarIndeterminate, mTabFragment, mTopBarContainer, mSearchLock, mPopupLoadNewTab, mTopBarHider);
|
||||
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, mTabFragment, mTopBarContainer, mSearchLock, mPopupLoadNewTab, mTopBarHider, mNewTabBlocker);
|
||||
mGeckoView.onSetHomeEvent(new nestedGeckoViewCallback());
|
||||
mGeckoClient.initialize(mGeckoView, new geckoViewCallback(), this,false);
|
||||
mGeckoClient.onValidateInitializeFromStartup(mGeckoView);
|
||||
mGeckoClient.onValidateInitializeFromStartup(mGeckoView, homeController.this);
|
||||
dataController.getInstance().initializeListData();
|
||||
}
|
||||
|
||||
|
@ -494,7 +507,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
/*-------------------------------------------------------Helper Methods-------------------------------------------------------*/
|
||||
|
||||
public void onGetFavIcon(ImageView pImageView, String pURL){
|
||||
mGeckoClient.onGetFavIcon(pImageView, pURL);
|
||||
mGeckoClient.onGetFavIcon(pImageView, pURL, homeController.this);
|
||||
}
|
||||
|
||||
public void onGetThumbnail(ImageView pImageView,boolean pLoadTabView){
|
||||
|
@ -524,7 +537,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
|
||||
public void initRuntimeSettings()
|
||||
{
|
||||
mGeckoClient.updateSetting(mGeckoView);
|
||||
mGeckoClient.updateSetting(mGeckoView, homeController.this);
|
||||
}
|
||||
|
||||
public void onReDrawGeckoview(){
|
||||
|
@ -540,7 +553,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
mAppBar.animate().cancel();
|
||||
mHomeViewController.onClearSelections(true);
|
||||
Objects.requireNonNull(mGeckoView.getSession()).stop();
|
||||
mGeckoClient.loadURL(url.replace("genesis.onion","boogle.store"),mGeckoView);
|
||||
mGeckoClient.loadURL(url.replace("genesis.onion","boogle.store"),mGeckoView, homeController.this);
|
||||
}
|
||||
|
||||
public void onLoadTab(geckoSession mTempSession, boolean isSessionClosed, boolean pExpandAppBar){
|
||||
|
@ -567,7 +580,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
mHomeViewController.progressBarReset();
|
||||
}
|
||||
|
||||
mGeckoClient.onValidateInitializeFromStartup(mGeckoView);
|
||||
mGeckoClient.onValidateInitializeFromStartup(mGeckoView, homeController.this);
|
||||
mGeckoClient.onSessionReinit();
|
||||
mHomeViewController.onUpdateStatusBarTheme(mTempSession.getTheme(), false);
|
||||
mHomeViewController.onUpdateSearchBar(mGeckoClient.getSession().getCurrentURL(), false, false, false);
|
||||
|
@ -590,11 +603,33 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
mHomeViewController.onProgressBarUpdate(mGeckoClient.getSession().getProgress(),true);
|
||||
dataController.getInstance().invokeTab(dataEnums.eTabCommands.M_UPDATE_PIXEL, Arrays.asList(mGeckoClient.getSession().getSessionID(), mRenderedBitmap, null, mGeckoView, false));
|
||||
|
||||
mGeckoView.invalidate();
|
||||
mGeckoView.refreshDrawableState();
|
||||
mGeckoView.requestFocus();
|
||||
|
||||
TouchView(mGeckoView);
|
||||
TouchView(mNestedScroll);
|
||||
|
||||
}
|
||||
|
||||
public void TouchView(View view)
|
||||
{
|
||||
long downTime = 3000;
|
||||
long eventTime = 3000;
|
||||
float x = 0f;
|
||||
float y = 100f;
|
||||
|
||||
int metaState = 0;
|
||||
MotionEvent motionEvent = MotionEvent.obtain(
|
||||
downTime,
|
||||
eventTime,
|
||||
MotionEvent.ACTION_SCROLL,
|
||||
x,
|
||||
y,
|
||||
metaState
|
||||
);
|
||||
|
||||
view.dispatchTouchEvent(motionEvent);
|
||||
|
||||
view.dispatchTouchEvent(MotionEvent.obtain(0,0,MotionEvent.ACTION_DOWN, 100,100,0.5f,5,0,1,1,0,0));
|
||||
}
|
||||
/*-------------------------------------------------------USER EVENTS-------------------------------------------------------*/
|
||||
|
||||
private BroadcastReceiver downloadStatus = new BroadcastReceiver()
|
||||
|
@ -649,12 +684,46 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
}
|
||||
}
|
||||
|
||||
@SuppressLint("ClickableViewAccessibility")
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
mBackSplash.setImageDrawable(null);
|
||||
mBackSplash.setBackground(null);
|
||||
if(!status.sSettingIsAppStarted){
|
||||
Intent intent = new Intent(getApplicationContext(), OrbotService.class);
|
||||
stopService(intent);
|
||||
}
|
||||
|
||||
|
||||
KeyboardUtils.removeAllKeyboardToggleListeners();
|
||||
mGatewaySplash.setOnTouchListener(null);
|
||||
|
||||
((ConstraintLayout)mGatewaySplash.getParent()).removeView(mGatewaySplash);
|
||||
((ConstraintLayout)mGeckoView.getParent()).removeView(mGeckoView);
|
||||
((ConstraintLayout)mTabFragment.getParent()).removeView(mTabFragment);
|
||||
((LinearLayout)mSearchbar.getParent()).removeView(mSearchbar);
|
||||
|
||||
mTabFragment = null;
|
||||
mNestedScroll = null;
|
||||
mGeckoView.setOnFocusChangeListener(null);
|
||||
mGeckoView.setOnTouchListener(null);
|
||||
mGeckoView.destroyDrawingCache();
|
||||
mGeckoView.releaseSession();
|
||||
mGeckoClient.onDestroy();
|
||||
|
||||
mGeckoView.onDestroy();
|
||||
mGeckoClient=null;
|
||||
mHomeViewController = null;
|
||||
activityContextManager.getInstance().setHomeController(null);
|
||||
mGeckoView.releaseSession();
|
||||
mGeckoView = null;
|
||||
|
||||
activityContextManager.getInstance().setHomeController(null);
|
||||
activityContextManager.getInstance().setCurrentActivity(null);
|
||||
pluginController.getInstance().onRemoveInstances();
|
||||
|
||||
unregisterReceiver(downloadStatus);
|
||||
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
|
@ -668,9 +737,9 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
mNewTab.setOnTouchListener((v, event) -> {
|
||||
if(event.getAction() == MotionEvent.ACTION_DOWN){
|
||||
onOpenTabViewBoundary(null);
|
||||
initTabCount(null, null);
|
||||
mNewTab.setPressed(true);
|
||||
}
|
||||
return false;
|
||||
return true;
|
||||
});
|
||||
|
||||
mFindText.addTextChangedListener(new TextWatcher() {
|
||||
|
@ -722,7 +791,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
});
|
||||
|
||||
mGeckoView.setOnTouchListener((v, event) -> {
|
||||
helperMethod.hideKeyboard(homeController.this);
|
||||
mHomeViewController.onClearSelections(true);
|
||||
return false;
|
||||
});
|
||||
|
||||
|
@ -851,7 +920,6 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
|
||||
KeyboardUtils.addKeyboardToggleListener(this, isVisible -> isKeyboardOpened = isVisible);
|
||||
|
||||
|
||||
mNestedScroll.setOnScrollChangeListener((NestedScrollView.OnScrollChangeListener) (v, scrollX, scrollY, oldScrollX, oldScrollY) -> {
|
||||
if(v.getChildAt(v.getChildCount() - 1) != null) {
|
||||
if ((scrollY >= (v.getChildAt(v.getChildCount() - 1).getMeasuredHeight() - v.getMeasuredHeight())) &&
|
||||
|
@ -968,7 +1036,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
initializeGeckoView(true, true);
|
||||
mHomeViewController.progressBarReset();
|
||||
mHomeViewController.onUpdateSearchBar(url,false,true, false);
|
||||
mGeckoClient.loadURL(url, mGeckoView);
|
||||
mGeckoClient.loadURL(url, mGeckoView, homeController.this);
|
||||
|
||||
if(isRemovable){
|
||||
mGeckoClient.setRemovableFromBackPressed(true);
|
||||
|
@ -976,8 +1044,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
}
|
||||
|
||||
public void postNewLinkTabAnimationInBackgroundTrigger(String url){
|
||||
postNewLinkTabAnimationInBackground(dataToStr(url));
|
||||
mHomeViewController.onShowLoadTabDialog();
|
||||
initTabCount(M_NEW_LINK_IN_NEW_TAB, Collections.singletonList(url));
|
||||
}
|
||||
|
||||
public void postNewLinkTabAnimationInBackground(String url){
|
||||
|
@ -987,7 +1054,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
mGeckoClient.initialize(mGeckoView, new geckoViewCallback(), this,true);
|
||||
mHomeViewController.progressBarReset();
|
||||
mGeckoClient.initURL(url);
|
||||
mGeckoClient.loadURL(url, mGeckoView);
|
||||
mGeckoClient.loadURL(url, mGeckoView, homeController.this);
|
||||
mGeckoClient.getSession().setURL(url);
|
||||
onSaveCurrentTab(mGeckoClient.getSession(),false);
|
||||
onLoadTab(mSession,false,false);
|
||||
|
@ -1017,6 +1084,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
}
|
||||
|
||||
public void onOpenLinkNewTab(String url){
|
||||
mNewTab.setPressed(true);
|
||||
final Handler handler = new Handler();
|
||||
handler.postDelayed(() -> {
|
||||
onGetThumbnail(null, false);
|
||||
|
@ -1035,7 +1103,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
if(!status.mThemeApplying){
|
||||
runOnUiThread(() -> {
|
||||
mHomeViewController.onShowTabContainer();
|
||||
activityContextManager.getInstance().getTabController().onInit();
|
||||
activityContextManager.getInstance().getTabController().onInitInvoked();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -1055,7 +1123,6 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
public void onOpenMenuItem(View view){
|
||||
pluginController.getInstance().onMessageManagerInvoke(null, M_RESET);
|
||||
initLocalLanguage();
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
|
||||
helperMethod.hideKeyboard(this);
|
||||
mHomeViewController.onOpenMenu(view,mGeckoClient.canGoForward(),!(mProgressBar.getAlpha()<=0 || mProgressBar.getVisibility() ==View.INVISIBLE),mGeckoClient.getUserAgent());
|
||||
|
@ -1082,7 +1149,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
@Override
|
||||
public void onBackPressed(){
|
||||
if(mTabFragment.getVisibility()==View.VISIBLE){
|
||||
if(activityContextManager.getInstance().getTabController().getSelectionCount()>0){
|
||||
if(activityContextManager.getInstance().getTabController().isSelectionOpened()){
|
||||
activityContextManager.getInstance().getTabController().onClearSelection(null);
|
||||
}else {
|
||||
onResumeDump();
|
||||
|
@ -1143,7 +1210,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
mHomeViewController.closeMenu();
|
||||
|
||||
final Handler handler = new Handler();
|
||||
handler.postDelayed(() -> mGeckoClient.onRedrawPixel(), 300);
|
||||
handler.postDelayed(() -> mGeckoClient.onRedrawPixel(homeController.this), 300);
|
||||
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
|
||||
mHomeViewController.setOrientation(true);
|
||||
if(mGeckoClient.getFullScreenStatus())
|
||||
|
@ -1171,7 +1238,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
if(mSearchEngineBar.getVisibility() == View.VISIBLE){
|
||||
mHomeViewController.onClearSelections(true);
|
||||
}
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_RESUME);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -1234,11 +1301,28 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
mAppRestarted = true;
|
||||
pluginController.getInstance().onNotificationInvoke(null, pluginEnums.eNotificationManager.M_CLEAR_NOTIFICATION );
|
||||
|
||||
if(!status.mThemeApplying){
|
||||
activityContextManager.getInstance().onClearStack();
|
||||
}
|
||||
initWidget();
|
||||
initTabCountForced();
|
||||
|
||||
if(status.sSettingIsAppStarted && !status.mThemeApplying){
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_INIT_LOCALE);
|
||||
}
|
||||
|
||||
status.mThemeApplying = false;
|
||||
|
||||
super.onResume();
|
||||
}
|
||||
|
||||
public void onChangeDefaultLanguage(){
|
||||
if(status.sSettingIsAppStarted){
|
||||
setContentView(R.layout.home_view);
|
||||
recreate();
|
||||
}
|
||||
}
|
||||
|
||||
public void onResumeDump()
|
||||
{
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_RESUME);
|
||||
|
@ -1336,7 +1420,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
}
|
||||
|
||||
public void onDownloadFile(){
|
||||
mGeckoClient.downloadFile();
|
||||
mGeckoClient.downloadFile(homeController.this);
|
||||
}
|
||||
|
||||
public void onManualDownload(String url){
|
||||
|
@ -1454,8 +1538,9 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
}
|
||||
else if (menuId == R.id.menu9) {
|
||||
helperMethod.hideKeyboard(this);
|
||||
mGeckoClient.onRedrawPixel();
|
||||
mGeckoClient.onRedrawPixel(homeController.this);
|
||||
mHomeViewController.onShowTabContainer();
|
||||
Log.i("I AM FUCKED,","I AM FUCKED : 1");
|
||||
activityContextManager.getInstance().getTabController().onInit();
|
||||
}
|
||||
else if (menuId == R.id.menu8) {
|
||||
|
@ -1478,6 +1563,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
else if (menuId == R.id.pMenuOpenRecentTab)
|
||||
{
|
||||
mHomeViewController.onShowTabContainer();
|
||||
Log.i("I AM FUCKED,","I AM FUCKED : 1");
|
||||
activityContextManager.getInstance().getTabController().onInit();
|
||||
// overridePendingTransition(R.anim.popup_anim_in, R.anim.popup_anim_out);
|
||||
}
|
||||
|
@ -1558,7 +1644,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
if (menuId == R.id.menu26 || menuId == R.id.menu27) {
|
||||
helperMethod.hideKeyboard(this);
|
||||
mGeckoClient.toogleUserAgent();
|
||||
mGeckoClient.onReload(mGeckoView);
|
||||
mGeckoClient.onReload(mGeckoView, homeController.this);
|
||||
}
|
||||
if(menuId == R.id.menu25){
|
||||
helperMethod.hideKeyboard(this);
|
||||
|
@ -1568,7 +1654,25 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
mHomeViewController.closeMenu();
|
||||
}
|
||||
|
||||
private void onInitTheme(){
|
||||
|
||||
if(status.mThemeApplying){
|
||||
if(status.sTheme == enums.Theme.THEME_DARK){
|
||||
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
|
||||
}else if(status.sTheme == enums.Theme.THEME_LIGHT){
|
||||
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
|
||||
}else {
|
||||
if(!status.sDefaultNightMode){
|
||||
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
|
||||
}else {
|
||||
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void onReInitTheme(){
|
||||
recreate();
|
||||
mHomeViewController.onUpdateStatusBarTheme(mGeckoClient.getSession().getTheme(), true);
|
||||
}
|
||||
|
||||
|
@ -1598,15 +1702,20 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
{
|
||||
initTabCountForced();
|
||||
}
|
||||
else if(e_type.equals(enums.etype.M_CACHE_UPDATE_TAB)){
|
||||
new Handler().postDelayed(() ->
|
||||
else if(e_type.equals(enums.etype.M_NEW_LINK_IN_NEW_TAB))
|
||||
{
|
||||
mTabFragment.setAlpha(0.01f);
|
||||
mTabFragment.setVisibility(View.VISIBLE);
|
||||
activityContextManager.getInstance().getTabController().onInit();
|
||||
mTabFragment.setVisibility(View.GONE);
|
||||
mHomeViewController.onHideTabContainer();
|
||||
}, 1000);
|
||||
postNewLinkTabAnimationInBackground(dataToStr(data.get(0)));
|
||||
mHomeViewController.onShowLoadTabDialog();
|
||||
}
|
||||
else if(e_type.equals(open_new_tab))
|
||||
{
|
||||
if(status.sSettingPopupStatus){
|
||||
pluginController.getInstance().onMessageManagerInvoke(Collections.singletonList(homeController.this), M_POPUP_BLOCKED);
|
||||
}else {
|
||||
postNewLinkTabAnimation(dataToStr(data.get(0)), true);
|
||||
}
|
||||
}
|
||||
else if(e_type.equals(enums.etype.M_CACHE_UPDATE_TAB)){
|
||||
}
|
||||
else if(e_type.equals(enums.etype.M_UPDATE_PIXEL_BACKGROUND)){
|
||||
onInvokePixelGenerator();
|
||||
|
@ -1623,8 +1732,10 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
}
|
||||
else if(e_type.equals(enums.etype.M_UPDATE_THEME))
|
||||
{
|
||||
if(mGeckoClient!=null) {
|
||||
mHomeViewController.onUpdateStatusBarTheme(mGeckoClient.getSession().getTheme(), true);
|
||||
}
|
||||
}
|
||||
else if(e_type.equals(enums.etype.ON_UPDATE_THEME)){
|
||||
mHomeViewController.onUpdateStatusBarTheme(mGeckoClient.getSession().getTheme(),false);
|
||||
}
|
||||
|
@ -1648,7 +1759,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
else if(e_type.equals(enums.etype.on_url_load)){
|
||||
if(status.sSettingIsAppRedirected){
|
||||
mHomeViewController.onPageFinished();
|
||||
mGeckoClient.onRedrawPixel();
|
||||
mGeckoClient.onRedrawPixel(homeController.this);
|
||||
|
||||
status.sSettingIsAppRedirected = false;
|
||||
onLoadURL(status.sSettingRedirectStatus);
|
||||
|
@ -1675,7 +1786,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
}
|
||||
else if(status.sSettingIsAppStarted){
|
||||
mHomeViewController.onPageFinished();
|
||||
mGeckoClient.onRedrawPixel();
|
||||
mGeckoClient.onRedrawPixel(homeController.this);
|
||||
mHomeViewController.onProgressBarUpdate(5, false);
|
||||
onLoadTabOnResume();
|
||||
}
|
||||
|
@ -1743,7 +1854,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
@Override
|
||||
public Object invokeObserver(List<Object> data, Object e_type) {
|
||||
if(e_type.equals(enums.etype.fetch_favicon)){
|
||||
mGeckoClient.onGetFavIcon((ImageView) data.get(0), (String) data.get(1));
|
||||
mGeckoClient.onGetFavIcon((ImageView) data.get(0), (String) data.get(1), homeController.this);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
@ -1763,7 +1874,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
|
||||
public void onInvokePixelGenerator(){
|
||||
|
||||
if(mTabFragment.getVisibility()==View.VISIBLE){
|
||||
if(mTabFragment==null || mTabFragment.getVisibility()==View.VISIBLE){
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1779,11 +1890,13 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
}catch (Exception ignored){}
|
||||
new Handler().postDelayed(() ->
|
||||
{
|
||||
if(mTabFragment!=null){
|
||||
if(mTabFragment.getVisibility()!=View.VISIBLE){
|
||||
dataController.getInstance().invokeTab(dataEnums.eTabCommands.M_UPDATE_PIXEL, Arrays.asList(mGeckoClient.getSession().getSessionID(), mRenderedBitmap, null, mGeckoView, true));
|
||||
}else {
|
||||
dataController.getInstance().invokeTab(dataEnums.eTabCommands.M_UPDATE_PIXEL, Arrays.asList(mGeckoClient.getSession().getSessionID(), mRenderedBitmap, null, mGeckoView, true));
|
||||
}
|
||||
}
|
||||
}, 150);
|
||||
|
||||
};
|
||||
|
@ -1851,7 +1964,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
else if(e_type.equals(enums.etype.on_page_loaded)){
|
||||
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_IS_BOOTSTRAPPED,true));
|
||||
mHomeViewController.onPageFinished();
|
||||
mGeckoClient.onRedrawPixel();
|
||||
mGeckoClient.onRedrawPixel(homeController.this);
|
||||
}
|
||||
else if(e_type.equals(M_RATE_APPLICATION)){
|
||||
if(!status.sSettingIsAppRated){
|
||||
|
@ -1864,7 +1977,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(homeController.this), pluginEnums.eLangManager.M_SET_LANGUAGE);
|
||||
initLocalLanguage();
|
||||
mHomeViewController.onPageFinished();
|
||||
mGeckoClient.onRedrawPixel();
|
||||
mGeckoClient.onRedrawPixel(homeController.this);
|
||||
mHomeViewController.onUpdateSearchBar(dataToStr(data.get(0),mGeckoClient.getSession().getCurrentURL()),false,true, false);
|
||||
}
|
||||
else if(e_type.equals(enums.etype.search_update)){
|
||||
|
@ -1893,12 +2006,8 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
else if(e_type.equals(M_LONG_PRESS_URL)){
|
||||
pluginController.getInstance().onMessageManagerInvoke(data, M_LONG_PRESS_URL);
|
||||
}
|
||||
else if(e_type.equals(enums.etype.open_new_tab)){
|
||||
if(status.sSettingPopupStatus){
|
||||
pluginController.getInstance().onMessageManagerInvoke(Collections.singletonList(homeController.this), M_POPUP_BLOCKED);
|
||||
}else {
|
||||
postNewLinkTabAnimation(dataToStr(data.get(0)), true);
|
||||
}
|
||||
else if(e_type.equals(open_new_tab)){
|
||||
initTabCount(open_new_tab, data);
|
||||
}
|
||||
else if(e_type.equals(enums.etype.on_close_sesson)){
|
||||
if(!onCloseCurrentTab(mGeckoClient.getSession())){
|
||||
|
|
|
@ -110,6 +110,7 @@ class homeViewController
|
|||
private ImageView mSearchLock;
|
||||
private View mPopupLoadNewTab;
|
||||
private ImageView mTopBarHider;
|
||||
private ImageView mNewTabBlocker;
|
||||
|
||||
/*Local Variables*/
|
||||
private Callable<String> mLogs = null;
|
||||
|
@ -119,7 +120,7 @@ class homeViewController
|
|||
private Handler mTabDialogHandler = null;
|
||||
private Runnable mTabDialogRunnable = 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, ProgressBar pProgressBarIndeterminate, FragmentContainerView pTabFragment, LinearLayout pTopBarContainer, ImageView pSearchLock, View pPopupLoadNewTab, ImageView pTopBarHider){
|
||||
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, FragmentContainerView pTabFragment, LinearLayout pTopBarContainer, ImageView pSearchLock, View pPopupLoadNewTab, ImageView pTopBarHider, ImageView pNewTabBlocker){
|
||||
this.mContext = context;
|
||||
this.mProgressBar = progressBar;
|
||||
this.mSearchbar = searchbar;
|
||||
|
@ -155,6 +156,7 @@ class homeViewController
|
|||
this.mSearchLock = pSearchLock;
|
||||
this.mPopupLoadNewTab = pPopupLoadNewTab;
|
||||
this.mTopBarHider = pTopBarHider;
|
||||
this.mNewTabBlocker = pNewTabBlocker;
|
||||
|
||||
initSplashScreen();
|
||||
createUpdateUiHandler();
|
||||
|
@ -237,25 +239,25 @@ class homeViewController
|
|||
|
||||
if(mTabFragment.getAlpha()==0 || mTabFragment.getAlpha()==1){
|
||||
|
||||
onUpdateStatusBarTheme(null, false);
|
||||
mTabFragment.animate().cancel();
|
||||
mTabFragment.setAlpha(0);
|
||||
mTabFragment.setVisibility(View.VISIBLE);
|
||||
mTabFragment.animate().alpha(1).setDuration(250);
|
||||
|
||||
onUpdateStatusBarTheme(null, false);
|
||||
mTabFragment.animate().alpha(1).setStartDelay(100).setDuration(150).withEndAction(() -> mNewTab.setPressed(false));
|
||||
}
|
||||
}
|
||||
|
||||
public void onHideTabContainer(){
|
||||
if(mTabFragment.getAlpha()>0 || mTabFragment.getVisibility()!=View.GONE){
|
||||
|
||||
mNewTab.setPressed(false);
|
||||
new Handler().postDelayed(() ->
|
||||
{
|
||||
mTopBarHider.animate().alpha(0).setDuration(250).setStartDelay(0).withEndAction(() -> mTopBarHider.setVisibility(View.GONE));
|
||||
mEvent.invokeObserver(null, enums.etype.M_UPDATE_THEME);
|
||||
}, 250);
|
||||
|
||||
mTabFragment.animate().setDuration(150).setStartDelay(150).alpha(0f).withEndAction(() -> {
|
||||
mTabFragment.animate().setDuration(150).alpha(0f).withEndAction(() -> {
|
||||
mTabFragment.setVisibility(View.GONE);
|
||||
mEvent.invokeObserver(null, enums.etype.M_UPDATE_PIXEL_BACKGROUND);
|
||||
});
|
||||
|
@ -320,6 +322,8 @@ class homeViewController
|
|||
if(!pStatus){
|
||||
this.mVoiceInput.animate().setDuration(0).alpha(0).withEndAction(() -> {
|
||||
|
||||
mVoiceInput.setClickable(true);
|
||||
mVoiceInput.setFocusable(true);
|
||||
onUpdateSearchIcon(1);
|
||||
mVoiceInput.setVisibility(View.GONE);
|
||||
mNewTab.setVisibility(View.VISIBLE);
|
||||
|
@ -360,6 +364,8 @@ class homeViewController
|
|||
ex.printStackTrace();
|
||||
}
|
||||
mVoiceInput.setVisibility(View.VISIBLE);
|
||||
mVoiceInput.setClickable(true);
|
||||
mVoiceInput.setFocusable(true);
|
||||
}, 0);
|
||||
|
||||
mNewTab.setVisibility(View.GONE);
|
||||
|
@ -414,6 +420,9 @@ class homeViewController
|
|||
});
|
||||
}
|
||||
|
||||
if(count==0){
|
||||
count=1;
|
||||
}
|
||||
mNewTab.setText((count+strings.GENERIC_EMPTY_STR));
|
||||
|
||||
}
|
||||
|
@ -433,6 +442,7 @@ class homeViewController
|
|||
}
|
||||
|
||||
public void initStatusBarColor(boolean mInstant) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
animatedColor oneToTwo = new animatedColor(ContextCompat.getColor(mContext, R.color.landing_ease_blue), ContextCompat.getColor(mContext, R.color.green_dark_v2));
|
||||
|
||||
int mDelay = 800;
|
||||
|
@ -470,6 +480,10 @@ class homeViewController
|
|||
});
|
||||
|
||||
animator.start();
|
||||
}else {
|
||||
mContext.getWindow().setStatusBarColor(ContextCompat.getColor(mContext, R.color.c_background));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void initializeSuggestionView(ArrayList<historyRowModel> suggestions){
|
||||
|
@ -614,6 +628,7 @@ class homeViewController
|
|||
mGatewaySplash.setVisibility(View.GONE);
|
||||
mConnectButton.setVisibility(View.GONE);
|
||||
mEvent.invokeObserver(null, enums.etype.M_CACHE_UPDATE_TAB);
|
||||
mEvent.invokeObserver(null, enums.etype.M_SPLASH_DISABLE);
|
||||
}));
|
||||
mEvent.invokeObserver(null, enums.etype.M_WELCOME_MESSAGE);
|
||||
mOrbotLogManager.setClickable(false);
|
||||
|
@ -673,7 +688,8 @@ class homeViewController
|
|||
helperMethod.hideKeyboard(mContext);
|
||||
popupWindow.setHeight(height);
|
||||
}
|
||||
if(status.sSettingLanguageRegion.equals("Ur")){
|
||||
|
||||
if(status.sSettingLanguageRegion.equals("Ur") || status.sSettingLanguage.equals("default") && status.mSystemLocale.getLanguage().equals("ur")){
|
||||
popupWindow.showAtLocation(parent, Gravity.TOP|Gravity.START,0,0);
|
||||
}else {
|
||||
popupWindow.showAtLocation(parent, Gravity.TOP|Gravity.END,0,0);
|
||||
|
@ -844,7 +860,10 @@ class homeViewController
|
|||
|
||||
public void onUpdateStatusBarTheme(String pTheme, boolean mForced)
|
||||
{
|
||||
if(mSplashScreen.getAlpha()<=0 && (status.sTheme != enums.Theme.THEME_DARK && !status.sDefaultNightMode) && mTabFragment.getAlpha()<=0 || mForced){
|
||||
if(mSplashScreen.getAlpha()<=0 && (status.sTheme != enums.Theme.THEME_DARK) && mTabFragment.getAlpha()<=0 || mForced){
|
||||
if(status.sDefaultNightMode && status.sTheme == enums.Theme.THEME_DEFAULT){
|
||||
return;
|
||||
}
|
||||
int mColor;
|
||||
try{
|
||||
mColor = Color.parseColor(pTheme);
|
||||
|
@ -899,7 +918,7 @@ class homeViewController
|
|||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
mContext.getWindow().setStatusBarColor(Color.parseColor(pTheme));
|
||||
}else {
|
||||
mContext.getWindow().setStatusBarColor(mContext.getResources().getColor(R.color.blue_dark));
|
||||
mContext.getWindow().setStatusBarColor(ContextCompat.getColor(mContext, R.color.landing_ease_blue));
|
||||
}
|
||||
|
||||
if(helperMethod.isColorDark(mColor)){
|
||||
|
@ -918,6 +937,7 @@ class homeViewController
|
|||
mContext.getWindow().setStatusBarColor(ContextCompat.getColor(mContext, R.color.c_background));
|
||||
}else {
|
||||
mContext.getWindow().setStatusBarColor(mContext.getResources().getColor(R.color.blue_dark));
|
||||
mContext.getWindow().setStatusBarColor(ContextCompat.getColor(mContext, R.color.landing_ease_blue));
|
||||
}
|
||||
|
||||
GradientDrawable gradientDrawable1 = new GradientDrawable();
|
||||
|
@ -948,7 +968,7 @@ class homeViewController
|
|||
onUpdateSearchIcon(1);
|
||||
}
|
||||
|
||||
if(status.sTheme != enums.Theme.THEME_DARK && !status.sDefaultNightMode){
|
||||
if(status.sTheme != enums.Theme.THEME_DARK || (status.sDefaultNightMode && status.sTheme != enums.Theme.THEME_DEFAULT)){
|
||||
mContext.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
|
||||
}else {
|
||||
View decorView = mContext.getWindow().getDecorView();
|
||||
|
@ -1097,7 +1117,61 @@ class homeViewController
|
|||
}
|
||||
|
||||
public void onNewTabAnimation(List<Object> data, Object e_type){
|
||||
mGeckoView.setPivotX(0);
|
||||
mGeckoView.setPivotY(0);
|
||||
mGeckoView.setClickable(false);
|
||||
mGeckoView.setFocusable(false);
|
||||
mGeckoView.setEnabled(false);
|
||||
ObjectAnimator scaleDown = ObjectAnimator.ofPropertyValuesHolder(mGeckoView,
|
||||
PropertyValuesHolder.ofFloat("scaleX", 1, 0.35f),
|
||||
PropertyValuesHolder.ofFloat("scaleY", 1, 0.35f));
|
||||
scaleDown.setDuration(300);
|
||||
mNewTabBlocker.setAlpha(0f);
|
||||
mNewTabBlocker.setVisibility(View.VISIBLE);
|
||||
mNewTabBlocker.animate().setDuration(300).alpha(1);
|
||||
mNewTabBlocker.setTranslationZ(100);
|
||||
scaleDown.start();
|
||||
|
||||
scaleDown.addListener(new Animator.AnimatorListener() {
|
||||
@Override
|
||||
public void onAnimationStart(Animator animation, boolean isReverse) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAnimationEnd(Animator animation, boolean isReverse) {
|
||||
mEvent.invokeObserver(data, e_type);
|
||||
ObjectAnimator scaleDown = ObjectAnimator.ofPropertyValuesHolder(mGeckoView,
|
||||
PropertyValuesHolder.ofFloat("scaleX", 0.35f, 1f),
|
||||
PropertyValuesHolder.ofFloat("scaleY", 0.35f, 1f));
|
||||
scaleDown.setDuration(300);
|
||||
scaleDown.setStartDelay(650);
|
||||
mNewTabBlocker.animate().setStartDelay(650).setDuration(300).alpha(0).withEndAction(() -> {
|
||||
mNewTabBlocker.setAlpha(0f);
|
||||
mNewTabBlocker.setVisibility(View.GONE);
|
||||
});
|
||||
scaleDown.start();
|
||||
mGeckoView.setClickable(true);
|
||||
mGeckoView.setFocusable(true);
|
||||
mGeckoView.setEnabled(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAnimationStart(Animator animation) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAnimationEnd(Animator animation) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAnimationCancel(Animator animation) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAnimationRepeat(Animator animation) {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
void onClearSelections(boolean hideKeyboard){
|
||||
|
|
|
@ -65,8 +65,8 @@ public class languageController extends AppCompatActivity {
|
|||
|
||||
@Override
|
||||
public void onConfigurationChanged(@NonNull Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
super.onConfigurationChanged(newConfig);
|
||||
|
||||
theme.getInstance().onConfigurationChanged(this);
|
||||
}
|
||||
|
@ -135,7 +135,7 @@ public class languageController extends AppCompatActivity {
|
|||
String mSystemLangugage = mSystemLocale.toString();
|
||||
status.sSettingLanguage = CONST_LANGUAGE_DEFAULT_LANG;
|
||||
status.sSettingLanguageRegion = CONST_LANGUAGE_DEFAULT_LANG;
|
||||
if(!mSystemLangugage.equals("en_US") && !mSystemLangugage.equals("de_DE") && !mSystemLangugage.equals("ca_ES") && !mSystemLangugage.equals("zh_CN") && !mSystemLangugage.equals("ch_CZ") && !mSystemLangugage.equals("nl_NL") && !mSystemLangugage.equals("fr_FR") && !mSystemLangugage.equals("el_GR") && !mSystemLangugage.equals("hu_HU") && !mSystemLangugage.equals("in_ID") && !mSystemLangugage.equals("it_IT") && !mSystemLangugage.equals("ja_JP") && !mSystemLangugage.equals("ko_KR") && !mSystemLangugage.equals("pt_PT") && !mSystemLangugage.equals("ro_RO") && !mSystemLangugage.equals("ru_RU") && !mSystemLangugage.equals("th_TH") && !mSystemLangugage.equals("tr_TR") && !mSystemLangugage.equals("uk_UA") && !mSystemLangugage.equals("vi_VN")){
|
||||
if(!mSystemLangugage.equals("cs_CZ") && !mSystemLangugage.equals("en_US") && !mSystemLangugage.equals("ur_PK") && !mSystemLangugage.equals("de_DE") && !mSystemLangugage.equals("ca_ES") && !mSystemLangugage.equals("zh_CN") && !mSystemLangugage.equals("ch_CZ") && !mSystemLangugage.equals("nl_NL") && !mSystemLangugage.equals("fr_FR") && !mSystemLangugage.equals("el_GR") && !mSystemLangugage.equals("hu_HU") && !mSystemLangugage.equals("in_ID") && !mSystemLangugage.equals("it_IT") && !mSystemLangugage.equals("ja_JP") && !mSystemLangugage.equals("ko_KR") && !mSystemLangugage.equals("pt_PT") && !mSystemLangugage.equals("ro_RO") && !mSystemLangugage.equals("ru_RU") && !mSystemLangugage.equals("th_TH") && !mSystemLangugage.equals("tr_TR") && !mSystemLangugage.equals("uk_UA") && !mSystemLangugage.equals("vi_VN")){
|
||||
mDefaultLanguageNotSupported = true;
|
||||
}
|
||||
}else {
|
||||
|
@ -167,12 +167,21 @@ public class languageController extends AppCompatActivity {
|
|||
|
||||
status.mThemeApplying = true;
|
||||
activityContextManager.getInstance().getHomeController().recreate();
|
||||
if(activityContextManager.getInstance().getSettingGeneralController()!=null){
|
||||
activityContextManager.getInstance().getSettingGeneralController().recreate();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/*View Callbacks*/
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
activityContextManager.getInstance().onRemoveStack(this);
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
private class languageViewCallback implements eventObserver.eventListener{
|
||||
|
||||
@Override
|
||||
|
|
|
@ -40,6 +40,7 @@ class languageViewController
|
|||
|
||||
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) {
|
||||
window.setStatusBarColor(mContext.getResources().getColor(R.color.blue_dark));
|
||||
mContext.getWindow().setStatusBarColor(ContextCompat.getColor(mContext, R.color.landing_ease_blue));
|
||||
}
|
||||
else {
|
||||
if(AppCompatDelegate.getDefaultNightMode() == AppCompatDelegate.MODE_NIGHT_NO){
|
||||
|
|
|
@ -52,9 +52,9 @@ public class orbotLogController extends AppCompatActivity {
|
|||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
overridePendingTransition(R.anim.push_anim_out_reverse, R.anim.push_anim_in_reverse);
|
||||
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.orbot_log_view);
|
||||
|
||||
|
@ -66,8 +66,8 @@ public class orbotLogController extends AppCompatActivity {
|
|||
|
||||
@Override
|
||||
public void onConfigurationChanged(@NonNull Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
super.onConfigurationChanged(newConfig);
|
||||
|
||||
theme.getInstance().onConfigurationChanged(this);
|
||||
}
|
||||
|
@ -226,6 +226,8 @@ public class orbotLogController extends AppCompatActivity {
|
|||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
activityContextManager.getInstance().onRemoveStack(this);
|
||||
activityContextManager.getInstance().setOrbotLogController(null);
|
||||
mActivityClosed = true;
|
||||
}
|
||||
|
||||
|
|
|
@ -50,6 +50,7 @@ class orbotLogViewController
|
|||
|
||||
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) {
|
||||
window.setStatusBarColor(mContext.getResources().getColor(R.color.blue_dark));
|
||||
mContext.getWindow().setStatusBarColor(ContextCompat.getColor(mContext, R.color.landing_ease_blue));
|
||||
}
|
||||
else {
|
||||
if(AppCompatDelegate.getDefaultNightMode() == AppCompatDelegate.MODE_NIGHT_NO){
|
||||
|
|
|
@ -47,9 +47,9 @@ public class orbotController extends AppCompatActivity {
|
|||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
overridePendingTransition(R.anim.push_anim_in, R.anim.push_anim_out);
|
||||
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.orbot_settings_view);
|
||||
|
||||
|
@ -59,8 +59,8 @@ public class orbotController extends AppCompatActivity {
|
|||
|
||||
@Override
|
||||
public void onConfigurationChanged(@NonNull Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
super.onConfigurationChanged(newConfig);
|
||||
|
||||
theme.getInstance().onConfigurationChanged(this);
|
||||
}
|
||||
|
@ -126,6 +126,12 @@ public class orbotController extends AppCompatActivity {
|
|||
|
||||
/* LOCAL OVERRIDES */
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
activityContextManager.getInstance().onRemoveStack(this);
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume()
|
||||
{
|
||||
|
|
|
@ -40,6 +40,7 @@ class orbotViewController
|
|||
|
||||
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) {
|
||||
window.setStatusBarColor(mContext.getResources().getColor(R.color.blue_dark));
|
||||
mContext.getWindow().setStatusBarColor(ContextCompat.getColor(mContext, R.color.landing_ease_blue));
|
||||
}
|
||||
else {
|
||||
if(AppCompatDelegate.getDefaultNightMode() == AppCompatDelegate.MODE_NIGHT_NO){
|
||||
|
|
|
@ -37,9 +37,9 @@ public class proxyStatusController extends AppCompatActivity {
|
|||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
overridePendingTransition(R.anim.push_anim_in, R.anim.push_anim_out);
|
||||
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.proxy_status_view);
|
||||
|
||||
|
@ -48,8 +48,8 @@ public class proxyStatusController extends AppCompatActivity {
|
|||
|
||||
@Override
|
||||
public void onConfigurationChanged(@NonNull Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
super.onConfigurationChanged(newConfig);
|
||||
|
||||
theme.getInstance().onConfigurationChanged(this);
|
||||
}
|
||||
|
@ -91,6 +91,12 @@ public class proxyStatusController extends AppCompatActivity {
|
|||
|
||||
/* LOCAL OVERRIDES */
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
activityContextManager.getInstance().onRemoveStack(this);
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume()
|
||||
{
|
||||
|
|
|
@ -45,6 +45,7 @@ class proxyStatusViewController
|
|||
|
||||
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) {
|
||||
window.setStatusBarColor(mContext.getResources().getColor(R.color.blue_dark));
|
||||
mContext.getWindow().setStatusBarColor(ContextCompat.getColor(mContext, R.color.landing_ease_blue));
|
||||
}
|
||||
else {
|
||||
if(AppCompatDelegate.getDefaultNightMode() == AppCompatDelegate.MODE_NIGHT_NO){
|
||||
|
|
|
@ -58,8 +58,8 @@ public class settingAccessibilityController extends AppCompatActivity {
|
|||
|
||||
@Override
|
||||
public void onConfigurationChanged(@NonNull Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
super.onConfigurationChanged(newConfig);
|
||||
|
||||
theme.getInstance().onConfigurationChanged(this);
|
||||
}
|
||||
|
@ -159,6 +159,12 @@ public class settingAccessibilityController extends AppCompatActivity {
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
activityContextManager.getInstance().onRemoveStack(this);
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
public void onZoomSettingUpdate(View view){
|
||||
mSettingAccessibilityModel.onTrigger(settingAccessibilityEnums.eAccessibilityViewController.M_ZOOM_SETTING, Collections.singletonList(!mZoom.isChecked()));
|
||||
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_ZOOM,status.sSettingEnableZoom));
|
||||
|
|
|
@ -52,6 +52,7 @@ class settingAccessibilityViewController
|
|||
|
||||
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) {
|
||||
window.setStatusBarColor(mContext.getResources().getColor(R.color.blue_dark));
|
||||
mContext.getWindow().setStatusBarColor(ContextCompat.getColor(mContext, R.color.landing_ease_blue));
|
||||
}
|
||||
else {
|
||||
if(AppCompatDelegate.getDefaultNightMode() == AppCompatDelegate.MODE_NIGHT_NO){
|
||||
|
|
|
@ -54,8 +54,8 @@ public class settingAdvanceController extends AppCompatActivity {
|
|||
|
||||
@Override
|
||||
public void onConfigurationChanged(@NonNull Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
super.onConfigurationChanged(newConfig);
|
||||
|
||||
theme.getInstance().onConfigurationChanged(this);
|
||||
}
|
||||
|
@ -135,6 +135,12 @@ public class settingAdvanceController extends AppCompatActivity {
|
|||
|
||||
/*UI Redirection*/
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
activityContextManager.getInstance().onRemoveStack(this);
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
public void onClose(View view){
|
||||
if(mIsChanged){
|
||||
pluginController.getInstance().onOrbotInvoke(null, pluginEnums.eOrbotManager.M_UPDATE_PRIVACY);
|
||||
|
|
|
@ -93,6 +93,7 @@ class settingAdvanceViewController
|
|||
|
||||
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) {
|
||||
window.setStatusBarColor(mContext.getResources().getColor(R.color.blue_dark));
|
||||
mContext.getWindow().setStatusBarColor(ContextCompat.getColor(mContext, R.color.landing_ease_blue));
|
||||
}
|
||||
else {
|
||||
if(AppCompatDelegate.getDefaultNightMode() == AppCompatDelegate.MODE_NIGHT_NO){
|
||||
|
|
|
@ -10,7 +10,7 @@ import androidx.annotation.NonNull;
|
|||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
||||
import com.darkweb.genesissearchengine.appManager.databaseManager.databaseController;
|
||||
import com.darkweb.genesissearchengine.databaseManager.databaseController;
|
||||
import com.darkweb.genesissearchengine.appManager.helpManager.helpController;
|
||||
import com.darkweb.genesissearchengine.constants.constants;
|
||||
import com.darkweb.genesissearchengine.constants.enums;
|
||||
|
@ -46,18 +46,17 @@ public class settingClearController extends AppCompatActivity {
|
|||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.setting_clear_view);
|
||||
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
|
||||
viewsInitializations();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onConfigurationChanged(@NonNull Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
super.onConfigurationChanged(newConfig);
|
||||
|
||||
theme.getInstance().onConfigurationChanged(this);
|
||||
}
|
||||
|
@ -147,7 +146,7 @@ public class settingClearController extends AppCompatActivity {
|
|||
mCheckBoxList.get(7).setChecked(false);
|
||||
mCheckBoxList.get(7).setButtonTintList(ColorStateList.valueOf(ContextCompat.getColor(this, R.color.c_checkbox_tint_default)));
|
||||
onClearSettings();
|
||||
status.initStatus();
|
||||
status.initStatus(activityContextManager.getInstance().getHomeController());
|
||||
dataController.getInstance().invokeTab(dataEnums.eTabCommands.M_CLEAR_TAB, null);
|
||||
mHomeInvoked = true;
|
||||
}
|
||||
|
@ -230,6 +229,12 @@ public class settingClearController extends AppCompatActivity {
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
activityContextManager.getInstance().onRemoveStack(this);
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
public void onClose(View view){
|
||||
activityContextManager.getInstance().onRemoveStack(this);
|
||||
finish();
|
||||
|
|
|
@ -40,6 +40,7 @@ class settingClearViewController
|
|||
|
||||
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) {
|
||||
window.setStatusBarColor(mContext.getResources().getColor(R.color.blue_dark));
|
||||
mContext.getWindow().setStatusBarColor(ContextCompat.getColor(mContext, R.color.landing_ease_blue));
|
||||
}
|
||||
else {
|
||||
if(AppCompatDelegate.getDefaultNightMode() == AppCompatDelegate.MODE_NIGHT_NO){
|
||||
|
|
|
@ -5,7 +5,6 @@ import android.os.Bundle;
|
|||
import android.view.View;
|
||||
import android.widget.RadioButton;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.appcompat.app.AppCompatDelegate;
|
||||
|
@ -50,6 +49,9 @@ public class settingGeneralController extends AppCompatActivity {
|
|||
protected void onCreate(Bundle savedInstanceState) {
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
super.onCreate(savedInstanceState);
|
||||
if(!status.mThemeApplying){
|
||||
activityContextManager.getInstance().onStack(this);
|
||||
}
|
||||
|
||||
setContentView(R.layout.setting_general_view);
|
||||
activityContextManager.getInstance().setSettingGeneralController(this);
|
||||
|
@ -58,8 +60,8 @@ public class settingGeneralController extends AppCompatActivity {
|
|||
|
||||
@Override
|
||||
public void onConfigurationChanged(@NonNull Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
super.onConfigurationChanged(newConfig);
|
||||
|
||||
theme.getInstance().onConfigurationChanged(this);
|
||||
}
|
||||
|
@ -73,30 +75,10 @@ public class settingGeneralController extends AppCompatActivity {
|
|||
mHomePageText = findViewById(R.id.pHomePageText);
|
||||
mOpenURLInNewTab = findViewById(R.id.pOpenURLInNewTab);
|
||||
|
||||
activityContextManager.getInstance().onStack(this);
|
||||
mSettingGeneralViewController = new settingGeneralViewController(this, new settingGeneralViewCallback(), mFullScreenMode, mThemeLight, mThemeDark, mThemeDefault, mHomePageText, mOpenURLInNewTab);
|
||||
mSettingGeneralModel = new settingGeneralModel(new settingGeneralModelCallback());
|
||||
}
|
||||
|
||||
private void onInitTheme(){
|
||||
|
||||
if(status.sTheme == enums.Theme.THEME_DARK){
|
||||
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
|
||||
activityContextManager.getInstance().getHomeController().recreate();
|
||||
}else if(status.sTheme == enums.Theme.THEME_LIGHT){
|
||||
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
|
||||
activityContextManager.getInstance().getHomeController().recreate();
|
||||
}else {
|
||||
if(!status.sDefaultNightMode){
|
||||
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
|
||||
activityContextManager.getInstance().getHomeController().recreate();
|
||||
}else {
|
||||
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
|
||||
activityContextManager.getInstance().getHomeController().recreate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*View Callbacks*/
|
||||
|
||||
private class settingGeneralViewCallback implements eventObserver.eventListener{
|
||||
|
@ -134,9 +116,9 @@ public class settingGeneralController extends AppCompatActivity {
|
|||
|
||||
if(mIsThemeChangable){
|
||||
status.mThemeApplying = true;
|
||||
onInitTheme();
|
||||
onBackPressed();
|
||||
overridePendingTransition(R.anim.fade_in_lang, R.anim.fade_out_lang);
|
||||
activityContextManager.getInstance().getHomeController().onReInitTheme();
|
||||
activityContextManager.getInstance().getSettingController().onReInitTheme();
|
||||
helperMethod.openActivity(settingGeneralController.class, constants.CONST_LIST_HISTORY, settingGeneralController.this,true);
|
||||
}
|
||||
|
@ -161,6 +143,9 @@ public class settingGeneralController extends AppCompatActivity {
|
|||
@Override
|
||||
public void onResume()
|
||||
{
|
||||
if(status.mThemeApplying){
|
||||
// activityContextManager.getInstance().onStack(this);
|
||||
}
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_RESUME);
|
||||
activityContextManager.getInstance().setCurrentActivity(this);
|
||||
super.onResume();
|
||||
|
@ -174,7 +159,6 @@ public class settingGeneralController extends AppCompatActivity {
|
|||
|
||||
@Override
|
||||
public void onBackPressed() {
|
||||
activityContextManager.getInstance().onRemoveStack(this);
|
||||
finish();
|
||||
}
|
||||
|
||||
|
@ -190,6 +174,15 @@ public class settingGeneralController extends AppCompatActivity {
|
|||
finish();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
if(!status.mThemeApplying){
|
||||
activityContextManager.getInstance().onRemoveStack(this);
|
||||
}
|
||||
activityContextManager.getInstance().setSettingGeneralController(null);
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
public void onManageLanguage(View view) {
|
||||
helperMethod.openActivity(languageController.class, constants.CONST_LIST_HISTORY, this,true);
|
||||
}
|
||||
|
|
|
@ -61,6 +61,7 @@ class settingGeneralViewController
|
|||
|
||||
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) {
|
||||
window.setStatusBarColor(mContext.getResources().getColor(R.color.blue_dark));
|
||||
mContext.getWindow().setStatusBarColor(ContextCompat.getColor(mContext, R.color.landing_ease_blue));
|
||||
}
|
||||
else {
|
||||
if(AppCompatDelegate.getDefaultNightMode() == AppCompatDelegate.MODE_NIGHT_NO){
|
||||
|
|
|
@ -45,8 +45,8 @@ public class settingLogController extends AppCompatActivity {
|
|||
|
||||
@Override
|
||||
public void onConfigurationChanged(@NonNull Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
super.onConfigurationChanged(newConfig);
|
||||
|
||||
theme.getInstance().onConfigurationChanged(this);
|
||||
}
|
||||
|
@ -100,7 +100,12 @@ public class settingLogController extends AppCompatActivity {
|
|||
@Override
|
||||
public void onBackPressed() {
|
||||
finish();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
activityContextManager.getInstance().onRemoveStack(this);
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
/*UI Redirection*/
|
||||
|
|
|
@ -51,6 +51,7 @@ class settingLogViewController
|
|||
|
||||
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) {
|
||||
window.setStatusBarColor(mContext.getResources().getColor(R.color.blue_dark));
|
||||
mContext.getWindow().setStatusBarColor(ContextCompat.getColor(mContext, R.color.landing_ease_blue));
|
||||
}
|
||||
else {
|
||||
if(AppCompatDelegate.getDefaultNightMode() == AppCompatDelegate.MODE_NIGHT_NO){
|
||||
|
|
|
@ -44,8 +44,8 @@ public class settingNotificationController extends AppCompatActivity {
|
|||
|
||||
@Override
|
||||
public void onConfigurationChanged(@NonNull Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
super.onConfigurationChanged(newConfig);
|
||||
|
||||
theme.getInstance().onConfigurationChanged(this);
|
||||
}
|
||||
|
@ -106,7 +106,12 @@ public class settingNotificationController extends AppCompatActivity {
|
|||
@Override
|
||||
public void onBackPressed() {
|
||||
finish();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
activityContextManager.getInstance().onRemoveStack(this);
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
/*UI Redirection*/
|
||||
|
|
|
@ -49,6 +49,7 @@ class settingNotificationViewController
|
|||
|
||||
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) {
|
||||
window.setStatusBarColor(mContext.getResources().getColor(R.color.blue_dark));
|
||||
mContext.getWindow().setStatusBarColor(ContextCompat.getColor(mContext, R.color.landing_ease_blue));
|
||||
}
|
||||
else {
|
||||
if(AppCompatDelegate.getDefaultNightMode() == AppCompatDelegate.MODE_NIGHT_NO){
|
||||
|
|
|
@ -51,8 +51,8 @@ public class settingPrivacyController extends AppCompatActivity {
|
|||
|
||||
@Override
|
||||
public void onConfigurationChanged(@NonNull Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
super.onConfigurationChanged(newConfig);
|
||||
|
||||
theme.getInstance().onConfigurationChanged(this);
|
||||
}
|
||||
|
@ -118,10 +118,15 @@ public class settingPrivacyController extends AppCompatActivity {
|
|||
activityContextManager.getInstance().setCurrentActivity(this);
|
||||
activityContextManager.getInstance().getHomeController().initRuntimeSettings();
|
||||
}
|
||||
activityContextManager.getInstance().onRemoveStack(this);
|
||||
finish();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
activityContextManager.getInstance().onRemoveStack(this);
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
/*UI Redirection*/
|
||||
|
||||
public void onClose(View view){
|
||||
|
|
|
@ -55,6 +55,7 @@ class settingPrivacyViewController
|
|||
|
||||
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) {
|
||||
window.setStatusBarColor(mContext.getResources().getColor(R.color.blue_dark));
|
||||
mContext.getWindow().setStatusBarColor(ContextCompat.getColor(mContext, R.color.landing_ease_blue));
|
||||
}
|
||||
else {
|
||||
if(AppCompatDelegate.getDefaultNightMode() == AppCompatDelegate.MODE_NIGHT_NO){
|
||||
|
|
|
@ -46,8 +46,8 @@ public class settingSearchController extends AppCompatActivity {
|
|||
|
||||
@Override
|
||||
public void onConfigurationChanged(@NonNull Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
super.onConfigurationChanged(newConfig);
|
||||
|
||||
theme.getInstance().onConfigurationChanged(this);
|
||||
}
|
||||
|
@ -111,6 +111,12 @@ public class settingSearchController extends AppCompatActivity {
|
|||
finish();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
activityContextManager.getInstance().onRemoveStack(this);
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
/*UI Redirection*/
|
||||
|
||||
public void onClose(View view){
|
||||
|
|
|
@ -54,6 +54,7 @@ class settingSearchViewController
|
|||
|
||||
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) {
|
||||
window.setStatusBarColor(mContext.getResources().getColor(R.color.blue_dark));
|
||||
mContext.getWindow().setStatusBarColor(ContextCompat.getColor(mContext, R.color.landing_ease_blue));
|
||||
}
|
||||
else {
|
||||
if(AppCompatDelegate.getDefaultNightMode() == AppCompatDelegate.MODE_NIGHT_NO){
|
||||
|
|
|
@ -56,16 +56,19 @@ public class settingHomeController extends AppCompatActivity
|
|||
{
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.setting);
|
||||
if(!status.mThemeApplying){
|
||||
activityContextManager.getInstance().onStack(this);
|
||||
}
|
||||
|
||||
setContentView(R.layout.setting);
|
||||
viewsInitializations();
|
||||
listenersInitializations();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onConfigurationChanged(@NonNull Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
super.onConfigurationChanged(newConfig);
|
||||
|
||||
theme.getInstance().onConfigurationChanged(this);
|
||||
}
|
||||
|
@ -117,10 +120,13 @@ public class settingHomeController extends AppCompatActivity
|
|||
@Override
|
||||
public void onResume()
|
||||
{
|
||||
if(status.mThemeApplying){
|
||||
// activityContextManager.getInstance().onStack(this);
|
||||
}
|
||||
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_RESUME);
|
||||
activityContextManager.getInstance().setCurrentActivity(this);
|
||||
status.sSettingIsAppPaused = false;
|
||||
activityContextManager.getInstance().onStack(this);
|
||||
super.onResume();
|
||||
}
|
||||
|
||||
|
@ -133,10 +139,18 @@ public class settingHomeController extends AppCompatActivity
|
|||
|
||||
@Override
|
||||
public void onBackPressed(){
|
||||
activityContextManager.getInstance().onRemoveStack(this);
|
||||
finish();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
if(!status.mThemeApplying){
|
||||
activityContextManager.getInstance().onRemoveStack(this);
|
||||
}
|
||||
activityContextManager.getInstance().setSettingController(null);
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
/*External Redirection*/
|
||||
|
||||
public void onRedrawXML(){
|
||||
|
@ -157,7 +171,7 @@ public class settingHomeController extends AppCompatActivity
|
|||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||
startActivity(new Intent(android.provider.Settings.ACTION_MANAGE_DEFAULT_APPS_SETTINGS));
|
||||
}else{
|
||||
pluginController.getInstance().onMessageManagerInvoke(Collections.singletonList(this), M_NOT_SUPPORTED);
|
||||
//pluginController.getInstance().onMessageManagerInvoke(Collections.singletonList(this), M_NOT_SUPPORTED);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -35,6 +35,7 @@ class settingHomeViewController
|
|||
|
||||
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) {
|
||||
window.setStatusBarColor(mContext.getResources().getColor(R.color.blue_dark));
|
||||
mContext.getWindow().setStatusBarColor(ContextCompat.getColor(mContext, R.color.landing_ease_blue));
|
||||
}
|
||||
else {
|
||||
if(AppCompatDelegate.getDefaultNightMode() == AppCompatDelegate.MODE_NIGHT_NO){
|
||||
|
|
|
@ -21,6 +21,9 @@ import com.darkweb.genesissearchengine.pluginManager.pluginController;
|
|||
import com.darkweb.genesissearchengine.pluginManager.pluginEnums;
|
||||
import com.example.myapplication.R;
|
||||
import com.google.android.material.switchmaterial.SwitchMaterial;
|
||||
|
||||
import org.mozilla.geckoview.ContentBlocking;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
|
@ -46,8 +49,8 @@ public class settingTrackingController extends AppCompatActivity {
|
|||
|
||||
@Override
|
||||
public void onConfigurationChanged(@NonNull Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
super.onConfigurationChanged(newConfig);
|
||||
|
||||
theme.getInstance().onConfigurationChanged(this);
|
||||
}
|
||||
|
@ -112,6 +115,12 @@ public class settingTrackingController extends AppCompatActivity {
|
|||
finish();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
activityContextManager.getInstance().onRemoveStack(this);
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
/*UI Redirection*/
|
||||
|
||||
public void onClose(View view){
|
||||
|
@ -122,7 +131,7 @@ public class settingTrackingController extends AppCompatActivity {
|
|||
mSettingChanged = true;
|
||||
mSettingPrivacyViewController.onTrigger(settingTrackingEnums.eTrackingViewController.M_SET_TRACKING_STATUS, Collections.singletonList(view));
|
||||
mSettingPrivacyModel.onTrigger(settingTrackingEnums.eTrackingModel.M_SET_TRACKING_PROTECTION, Collections.singletonList(view));
|
||||
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_INT, Arrays.asList(keys.SETTING_COOKIE_ADJUSTABLE,status.sSettingCookieStatus));
|
||||
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_INT, Arrays.asList(keys.SETTING_TRACKING_PROTECTION, status.sSettingTrackingProtection));
|
||||
}
|
||||
|
||||
public void onOpenInfo(View view) {
|
||||
|
|
|
@ -43,6 +43,7 @@ class settingTrackingViewController
|
|||
|
||||
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) {
|
||||
window.setStatusBarColor(mContext.getResources().getColor(R.color.blue_dark));
|
||||
mContext.getWindow().setStatusBarColor(ContextCompat.getColor(mContext, R.color.landing_ease_blue));
|
||||
}
|
||||
else {
|
||||
if(AppCompatDelegate.getDefaultNightMode() == AppCompatDelegate.MODE_NIGHT_NO){
|
||||
|
|
|
@ -4,18 +4,14 @@ import android.animation.Animator;
|
|||
import android.animation.ObjectAnimator;
|
||||
import android.animation.PropertyValuesHolder;
|
||||
import android.content.res.Resources;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.drawable.BitmapDrawable;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.graphics.drawable.TransitionDrawable;
|
||||
import android.os.Handler;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.animation.AlphaAnimation;
|
||||
import android.view.animation.Animation;
|
||||
import android.view.animation.AnimationSet;
|
||||
import android.view.animation.ScaleAnimation;
|
||||
import android.widget.Button;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.ImageButton;
|
||||
|
@ -101,74 +97,53 @@ public class tabAdapter extends RecyclerView.Adapter<tabAdapter.listViewHolder>
|
|||
holder.itemView.setTag(position);
|
||||
holder.itemView.findViewById(R.id.pRemoveRow).setTag(position);
|
||||
holder.itemView.findViewById(R.id.pLoadSession).setTag(position);
|
||||
|
||||
if(position == 0 && status.sTabGridLayoutEnabled && !mViewLoaded){
|
||||
onExpandScale(holder.itemView);
|
||||
mViewLoaded = true;
|
||||
}else if(position != mModelList.size()-1){
|
||||
holder.itemView.setScaleY(1f);
|
||||
holder.itemView.setScaleX(1f);
|
||||
|
||||
}else{
|
||||
}
|
||||
}
|
||||
|
||||
private boolean mFirstRowAnimating = false;
|
||||
public void onExpandScale(View v) {
|
||||
if(mFirstRowAnimating){
|
||||
return;
|
||||
}
|
||||
mFirstRowAnimating = true;
|
||||
public void scaleView(View v, tabRowModel mTabRowModel) {
|
||||
v.bringToFront();
|
||||
if(mFirstRow!=null){
|
||||
mFirstRow.end();
|
||||
mFirstRow.cancel();
|
||||
}
|
||||
v.setScaleY(0.85f);
|
||||
v.setScaleX(0.85f);
|
||||
mFirstRow = ObjectAnimator.ofPropertyValuesHolder(v,
|
||||
PropertyValuesHolder.ofFloat("scaleX", 0.85f, 1),
|
||||
PropertyValuesHolder.ofFloat("scaleY", 0.85f, 1));
|
||||
mFirstRow.setDuration(200);
|
||||
mFirstRow.setStartDelay(150);
|
||||
mFirstRow.start();
|
||||
mFirstRow.addListener(new Animator.AnimatorListener() {
|
||||
ObjectAnimator scaleDown = ObjectAnimator.ofPropertyValuesHolder(v,
|
||||
PropertyValuesHolder.ofFloat("scaleX", 1, 0.9f),
|
||||
PropertyValuesHolder.ofFloat("scaleY", 1, 0.9f));
|
||||
scaleDown.setDuration(130);
|
||||
scaleDown.start();
|
||||
v.setClickable(false);
|
||||
v.setFocusable(false);
|
||||
v.setEnabled(false);
|
||||
mEvent.invokeObserver(Arrays.asList(mTabRowModel.getSession(), false), tabEnums.eTabAdapterCallback.ON_LOAD_TAB);
|
||||
|
||||
scaleDown.addListener(new Animator.AnimatorListener() {
|
||||
@Override
|
||||
public void onAnimationStart(Animator animation, boolean isReverse) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAnimationEnd(Animator animation, boolean isReverse) {
|
||||
mFirstRowAnimating = false;
|
||||
onTriggerURL(mTabRowModel);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAnimationStart(Animator animation) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAnimationEnd(Animator animation) {
|
||||
mFirstRowAnimating = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAnimationCancel(Animator animation) {
|
||||
mFirstRowAnimating = false;
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAnimationRepeat(Animator animation) {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void scaleView(View v) {
|
||||
v.bringToFront();
|
||||
ObjectAnimator scaleDown = ObjectAnimator.ofPropertyValuesHolder(v,
|
||||
PropertyValuesHolder.ofFloat("scaleX", 1, 0.85f),
|
||||
PropertyValuesHolder.ofFloat("scaleY", 1, 0.85f));
|
||||
scaleDown.setDuration(200);
|
||||
scaleDown.start();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -183,7 +158,8 @@ public class tabAdapter extends RecyclerView.Adapter<tabAdapter.listViewHolder>
|
|||
}
|
||||
|
||||
private void onRemoveAllSelection() {
|
||||
if(mSelectedList!=null && mSelectedList.size()>0){
|
||||
if(mSelectedList.size()>0){
|
||||
int mSelectionInitialSize = mSelectedList.size();
|
||||
for(int mCounter=0;mCounter<mSelectedList.size();mCounter++){
|
||||
for(int mCounterInner=0;mCounterInner<mModelList.size();mCounterInner++){
|
||||
if(mSelectedList.get(mCounter).equals(mModelList.get(mCounterInner).getmId())){
|
||||
|
@ -191,7 +167,11 @@ public class tabAdapter extends RecyclerView.Adapter<tabAdapter.listViewHolder>
|
|||
mModelList.remove(mCounterInner);
|
||||
notifyItemRemoved(mCounterInner);
|
||||
notifyItemRangeChanged(mCounterInner,mModelList.size());
|
||||
mEvent.invokeObserver(Collections.singletonList(mCounterInner), tabEnums.eTabAdapterCallback.ON_REMOVE_TAB_VIEW_RETAIN_BACKUP);
|
||||
if(mSelectionInitialSize == 1){
|
||||
mEvent.invokeObserver(Arrays.asList(mCounterInner, true), tabEnums.eTabAdapterCallback.ON_REMOVE_TAB_VIEW_RETAIN_BACKUP);
|
||||
}else {
|
||||
mEvent.invokeObserver(Arrays.asList(mCounterInner, false), tabEnums.eTabAdapterCallback.ON_REMOVE_TAB_VIEW_RETAIN_BACKUP);
|
||||
}
|
||||
mCounter=-1;
|
||||
break;
|
||||
}
|
||||
|
@ -216,12 +196,17 @@ public class tabAdapter extends RecyclerView.Adapter<tabAdapter.listViewHolder>
|
|||
|
||||
private void onRemoveAll(){
|
||||
int mSize = mModelList.size()-1;
|
||||
if(mSize==1){
|
||||
mModelList.remove(0);
|
||||
notifyDataSetChanged();
|
||||
mEvent.invokeObserver(Arrays.asList(0, true), tabEnums.eTabAdapterCallback.ON_REMOVE_TAB_VIEW_RETAIN_BACKUP);
|
||||
}else {
|
||||
for(int mCounter=0;mCounter<mSize;mCounter++){
|
||||
mModelList.remove(0);
|
||||
notifyDataSetChanged();
|
||||
mEvent.invokeObserver(Collections.singletonList(0), tabEnums.eTabAdapterCallback.ON_REMOVE_TAB_VIEW_RETAIN_BACKUP);
|
||||
mEvent.invokeObserver(Arrays.asList(0, false), tabEnums.eTabAdapterCallback.ON_REMOVE_TAB_VIEW_RETAIN_BACKUP);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void onClearAllSelection(){
|
||||
|
@ -269,7 +254,6 @@ public class tabAdapter extends RecyclerView.Adapter<tabAdapter.listViewHolder>
|
|||
|
||||
private void onTriggerURL(tabRowModel model){
|
||||
if(model.getSession()!=null){
|
||||
mEvent.invokeObserver(Arrays.asList(model.getSession(), false), tabEnums.eTabAdapterCallback.ON_LOAD_TAB);
|
||||
mEvent.invokeObserver(null, tabEnums.eTabAdapterCallback.ON_BACK_PRESSED);
|
||||
mEvent.invokeObserver(null, tabEnums.eTabAdapterCallback.ON_INIT_TAB_COUNT);
|
||||
}
|
||||
|
@ -330,7 +314,11 @@ public class tabAdapter extends RecyclerView.Adapter<tabAdapter.listViewHolder>
|
|||
mItemSelectionMenuReference = itemView.findViewById(R.id.pRowContainer);
|
||||
mBorder = itemView.findViewById(R.id.pBorder);
|
||||
|
||||
itemView.setScaleX(1);
|
||||
itemView.setScaleY(1);
|
||||
itemView.setClickable(true);
|
||||
itemView.setFocusable(true);
|
||||
itemView.setEnabled(true);
|
||||
mRemoveRow.setEnabled(true);
|
||||
|
||||
if(model.getmId()==null){
|
||||
|
@ -340,6 +328,7 @@ public class tabAdapter extends RecyclerView.Adapter<tabAdapter.listViewHolder>
|
|||
mLoadSession.setOnLongClickListener(this);
|
||||
mRemoveRow.setOnClickListener(this);
|
||||
mLoadSession.setOnClickListener(this);
|
||||
|
||||
if(model.getSession().getTheme()==null){
|
||||
if(status.sTabGridLayoutEnabled){
|
||||
mBorder.setBackgroundColor(ContextCompat.getColor(itemView.getContext(), R.color.c_view_divier_background_inner));
|
||||
|
@ -361,7 +350,7 @@ public class tabAdapter extends RecyclerView.Adapter<tabAdapter.listViewHolder>
|
|||
}
|
||||
|
||||
mItemSelectionMenu.setVisibility(View.GONE);
|
||||
if(model.getSession().getTitle().equals("$TITLE") || model.getSession().getTitle().toLowerCase().equals("loading")){
|
||||
if(model.getSession().getTitle().contains("TITLE") || model.getSession().getTitle().contains("title") || model.getSession().getTitle().toLowerCase().equals("loading")){
|
||||
mHeader.setText(helperMethod.getDomainName(mURL));
|
||||
}else {
|
||||
mHeader.setText(model.getSession().getTitle());
|
||||
|
@ -377,21 +366,15 @@ public class tabAdapter extends RecyclerView.Adapter<tabAdapter.listViewHolder>
|
|||
if(mURL.equals("about:blank")){
|
||||
mWebThumbnail.setAlpha(0f);
|
||||
}else {
|
||||
Thread timer = new Thread()
|
||||
new Handler().postDelayed(() ->
|
||||
{
|
||||
public void run()
|
||||
{
|
||||
runOnUiThread(() -> {
|
||||
if(mWebThumbnail.getDrawable()==null){
|
||||
mWebThumbnail.setImageBitmap(model.getBitmap());
|
||||
}else {
|
||||
Drawable mDrawable = new BitmapDrawable(itemView.getContext().getResources(), model.getBitmap());
|
||||
helperMethod.setImageDrawableWithAnimation(mWebThumbnail, mDrawable,250);
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
timer.start();
|
||||
}, 1 * getLayoutPosition());
|
||||
}
|
||||
|
||||
if(mSelectedList.contains(model.getSession().getSessionID())){
|
||||
|
@ -411,6 +394,8 @@ public class tabAdapter extends RecyclerView.Adapter<tabAdapter.listViewHolder>
|
|||
}
|
||||
}
|
||||
|
||||
new Handler().postDelayed(() ->
|
||||
{
|
||||
itemView.setBackgroundColor(ContextCompat.getColor(activityContextManager.getInstance().getHomeController(), R.color.clear_alpha));
|
||||
if(!status.sTabGridLayoutEnabled){
|
||||
if(getLayoutPosition() == 0){
|
||||
|
@ -470,6 +455,8 @@ public class tabAdapter extends RecyclerView.Adapter<tabAdapter.listViewHolder>
|
|||
mItemSelectionMenuButton.animate().setDuration(250).alpha(1);
|
||||
}
|
||||
mRemoveRow.bringToFront();
|
||||
}, 10 * getLayoutPosition());
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -485,9 +472,8 @@ public class tabAdapter extends RecyclerView.Adapter<tabAdapter.listViewHolder>
|
|||
notifyItemChanged(mModelList.size()-1);
|
||||
|
||||
}else {
|
||||
onTriggerURL(mModelList.get(this.getLayoutPosition()));
|
||||
if(status.sTabGridLayoutEnabled){
|
||||
scaleView(itemView);
|
||||
scaleView(itemView, mModelList.get(this.getLayoutPosition()));
|
||||
}
|
||||
}
|
||||
}else {
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.darkweb.genesissearchengine.appManager.tabManager;
|
|||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.res.Configuration;
|
||||
import android.content.res.Resources;
|
||||
import android.graphics.Canvas;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
|
@ -26,9 +27,7 @@ import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
|||
import com.darkweb.genesissearchengine.appManager.homeManager.geckoManager.geckoSession;
|
||||
import com.darkweb.genesissearchengine.appManager.homeManager.homeController.homeController;
|
||||
import com.darkweb.genesissearchengine.appManager.settingManager.advanceManager.settingAdvanceController;
|
||||
import com.darkweb.genesissearchengine.appManager.settingManager.settingHomePage.settingHomeController;
|
||||
import com.darkweb.genesissearchengine.constants.constants;
|
||||
import com.darkweb.genesissearchengine.constants.enums;
|
||||
import com.darkweb.genesissearchengine.constants.status;
|
||||
import com.darkweb.genesissearchengine.dataManager.dataController;
|
||||
import com.darkweb.genesissearchengine.dataManager.dataEnums;
|
||||
|
@ -52,7 +51,7 @@ public class tabController extends Fragment
|
|||
private TextView mSelectionCount;
|
||||
private ImageView mBlocker;
|
||||
private View mRootView;
|
||||
private NestedScrollView mNestedScrollView;
|
||||
private NestedScrollView mNestedScrollView = null;
|
||||
|
||||
/*Private Variables*/
|
||||
|
||||
|
@ -71,6 +70,7 @@ public class tabController extends Fragment
|
|||
private float getmScreenWidth;
|
||||
private boolean mClosed = false;
|
||||
private boolean mClosedByNewTab = false;
|
||||
boolean mScrolled = true;
|
||||
|
||||
/*Initializations*/
|
||||
|
||||
|
@ -84,39 +84,61 @@ public class tabController extends Fragment
|
|||
return root;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
mListModel = null;
|
||||
mHomeController = null;
|
||||
mContextManager = null;
|
||||
mtabViewController = null;
|
||||
mRecycleView = null;
|
||||
mTabAdapter = null;
|
||||
mScrollHandler = null;
|
||||
mScrollRunnable = null;
|
||||
mScrolled = false;
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
public void onActivityCreated(Bundle savedInstanceState) {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
|
||||
activityContextManager.getInstance().setTabController(this);
|
||||
mTabGridLayoutEnabled = status.sTabGridLayoutEnabled;
|
||||
|
||||
onInit();
|
||||
}
|
||||
|
||||
|
||||
public void onInit(){
|
||||
if(mTabAdapter==null || mTabGridLayoutEnabled!=status.sTabGridLayoutEnabled){
|
||||
initializeActivity();
|
||||
initializeViews();
|
||||
initializeLocalEventHandlers();
|
||||
initializeList();
|
||||
initSwipe();
|
||||
|
||||
mClosed = false;
|
||||
mTabGridLayoutEnabled = status.sTabGridLayoutEnabled;
|
||||
}else {
|
||||
initializeList();
|
||||
mtabViewController.onTrigger(tabEnums.eTabViewCommands.ON_RELEASE_BLOCKER, null);
|
||||
mNestedScrollView.scrollTo(0,0);
|
||||
mtabViewController.onTrigger(tabEnums.eTabViewCommands.ON_HIDE_UNDO_DIALOG_INIT, null);
|
||||
mRecycleView.animate().setDuration(150).alpha(1);
|
||||
mRecycleView.setAlpha(1);
|
||||
}
|
||||
|
||||
public void onInitInvoked(){
|
||||
initializeList();
|
||||
|
||||
mClosed = false;
|
||||
mtabViewController.onTrigger(tabEnums.eTabViewCommands.ON_RELEASE_BLOCKER, null);
|
||||
mNestedScrollView.scrollTo(0,0);
|
||||
mtabViewController.onTrigger(tabEnums.eTabViewCommands.ON_HIDE_UNDO_DIALOG_INIT, null);
|
||||
mRecycleView.setAlpha(1);
|
||||
mTabAdapter.onTrigger(tabEnums.eTabAdapterCommands.M_INITIALIZE, Collections.singletonList(mListModel.getList()));
|
||||
mTabAdapter.notifyDataSetChanged();
|
||||
}
|
||||
|
||||
public void onInitFirstElement(){
|
||||
if(mTabAdapter!=null){
|
||||
mHomeController.runOnUiThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
mHomeController.runOnUiThread(() -> {
|
||||
if(mBlocker.getVisibility() != View.VISIBLE){
|
||||
mTabAdapter.notifyItemChanged(0);
|
||||
}
|
||||
});
|
||||
|
@ -147,6 +169,7 @@ public class tabController extends Fragment
|
|||
|
||||
@SuppressLint("ClickableViewAccessibility")
|
||||
public void initializeLocalEventHandlers(){
|
||||
|
||||
mTabs.setOnTouchListener((v, event) -> {
|
||||
if(event.getAction() == MotionEvent.ACTION_DOWN){
|
||||
onBackPressedInvoked(null);
|
||||
|
@ -168,15 +191,18 @@ public class tabController extends Fragment
|
|||
minScroll = scrollY;
|
||||
int orientation = this.getResources().getConfiguration().orientation;
|
||||
if (orientation == Configuration.ORIENTATION_PORTRAIT) {
|
||||
maxScroll = mRecycleView.computeVerticalScrollRange() - mScreenHeight*0.350f;
|
||||
maxScroll = mRecycleView.computeVerticalScrollRange() - mScreenHeight*0.350f + helperMethod.pxFromDp(helperMethod.getNavigationBarSize(getContext()).y);
|
||||
} else {
|
||||
maxScroll = mRecycleView.computeVerticalScrollRange() - getmScreenWidth*0.20f;
|
||||
maxScroll = mRecycleView.computeVerticalScrollRange() - getmScreenWidth*0.20f + helperMethod.pxFromDp(helperMethod.getNavigationBarSize(getContext()).y);
|
||||
}
|
||||
|
||||
if(!mScrolled){
|
||||
onSwipeBounce(300);
|
||||
}
|
||||
});
|
||||
|
||||
mNestedScrollView.setOnScrollChangeListener((NestedScrollView.OnScrollChangeListener) (v, scrollX, scrollY, oldScrollX, oldScrollY) -> {
|
||||
mScrolled = false;
|
||||
if (mRecycleView.getChildAt(mRecycleView.getChildCount() - 1) != null) {
|
||||
if ((scrollY >= (mRecycleView.getChildAt(mRecycleView.getChildCount() - 1).getMeasuredHeight() - mRecycleView.getMeasuredHeight())) && scrollY > oldScrollY) {
|
||||
Log.i("FUCK2:::::::",scrollY+"");
|
||||
|
@ -262,7 +288,7 @@ public class tabController extends Fragment
|
|||
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
|
||||
int position = viewHolder.getAdapterPosition();
|
||||
onExitAndClearBackup();
|
||||
boolean mStatus = onInitRemoveView(position, true);
|
||||
boolean mStatus = onInitRemoveView(position, true, true);
|
||||
if(mStatus){
|
||||
mTabAdapter.onTrigger(tabEnums.eTabAdapterCommands.NOTIFY_SWIPE, Collections.singletonList(position));
|
||||
}
|
||||
|
@ -303,12 +329,17 @@ public class tabController extends Fragment
|
|||
onSwipeBounce(0);
|
||||
}
|
||||
|
||||
public boolean onInitRemoveView(int pIndex, boolean pCreateBackup){
|
||||
public boolean onInitRemoveView(int pIndex, boolean pCreateBackup, boolean pShowPopupOnClearAll){
|
||||
if(mListModel.getList().size()<=pIndex){
|
||||
return false;
|
||||
}
|
||||
mListModel.onTrigger(tabEnums.eModelCallback.M_REMOVE_TAB,Collections.singletonList(pIndex));
|
||||
mListModel.getList().remove(pIndex);
|
||||
if(mListModel.getList().size()<1){
|
||||
mRecycleView.animate().setDuration(200).alpha(0).withEndAction(() -> {
|
||||
if(pShowPopupOnClearAll){
|
||||
onShowUndoDialog();
|
||||
}
|
||||
mTabAdapter.notifyDataSetChanged();
|
||||
});
|
||||
activityContextManager.getInstance().getHomeController().onLoadTabFromTabController();
|
||||
|
@ -341,13 +372,16 @@ public class tabController extends Fragment
|
|||
ArrayList<tabRowModel> mBackup = (ArrayList<tabRowModel>)mListModel.onTrigger(tabEnums.eModelCallback.M_GET_BACKUP,null);
|
||||
if(mListModel.getList().size()>=1 && mBackup.size()!=1){
|
||||
mHomeController.onNewTabBackground(true,false);
|
||||
}
|
||||
|
||||
mClosedByNewTab = false;
|
||||
onPostExit();
|
||||
onBackPressed();
|
||||
onClose();
|
||||
}
|
||||
else {
|
||||
onExitAndClearBackup();
|
||||
}
|
||||
}
|
||||
|
||||
public void onRestoreTab(View view){
|
||||
|
||||
|
@ -390,11 +424,13 @@ public class tabController extends Fragment
|
|||
if(mListModel!=null){
|
||||
for(int mCounter=0; mCounter<mListModel.getList().size();mCounter++){
|
||||
if(mListModel.getList().get(mCounter).getSession().getSessionID().equals(pId)){
|
||||
if(mBlocker.getVisibility() != View.VISIBLE){
|
||||
mTabAdapter.notifyItemChanged(mCounter);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*UI Triggers*/
|
||||
|
||||
|
@ -412,6 +448,10 @@ public class tabController extends Fragment
|
|||
return (int)mTabAdapter.onTrigger(tabEnums.eTabAdapterCommands.GET_SELECTION_SIZE,null);
|
||||
}
|
||||
|
||||
public boolean isSelectionOpened(){
|
||||
return mClearSelection.getVisibility() == View.VISIBLE;
|
||||
}
|
||||
|
||||
public void onRemoveSelection(View view) {
|
||||
int mSelectionSize = (int)mTabAdapter.onTrigger(tabEnums.eTabAdapterCommands.GET_SELECTION_SIZE,null);
|
||||
if(mSelectionSize >= mListModel.getList().size()){
|
||||
|
@ -458,19 +498,20 @@ public class tabController extends Fragment
|
|||
|
||||
public void onMenuTrigger(View pView){
|
||||
if(pView.getId() == R.id.pNewTab){
|
||||
new Handler().postDelayed(this::onNewTabInvoked, 350);
|
||||
onNewTabInvoked();
|
||||
mClosedByNewTab = true;
|
||||
mHomeController.onBackPressed();
|
||||
}
|
||||
if(pView.getId() == R.id.pNewTabMenu){
|
||||
new Handler().postDelayed(this::onNewTabInvoked, 350);
|
||||
onNewTabInvoked();
|
||||
mClosedByNewTab = true;
|
||||
mHomeController.onBackPressed();
|
||||
}
|
||||
else if(pView.getId() == R.id.pCloseTab){
|
||||
mRecycleView.animate().setDuration(200).alpha(0).withEndAction(() -> {
|
||||
onClearTabBackup();
|
||||
ArrayList<tabRowModel> mBackup = (ArrayList<tabRowModel>)mListModel.onTrigger(tabEnums.eModelCallback.M_GET_BACKUP,null);
|
||||
mTabAdapter.onTrigger(tabEnums.eTabAdapterCommands.REMOVE_ALL, null);
|
||||
onClearTabBackup();
|
||||
});
|
||||
}
|
||||
else if(pView.getId() == R.id.pOpenSetting){
|
||||
|
@ -545,11 +586,11 @@ public class tabController extends Fragment
|
|||
mHomeController.onLoadTab((geckoSession)data.get(0),(boolean)data.get(1),true);
|
||||
}
|
||||
else if(e_type.equals(tabEnums.eTabAdapterCallback.ON_REMOVE_TAB_VIEW)){
|
||||
onInitRemoveView((Integer) data.get(0), true);
|
||||
onInitRemoveView((Integer) data.get(0), true, true);
|
||||
initTabCount(400);
|
||||
}
|
||||
else if(e_type.equals(tabEnums.eTabAdapterCallback.ON_REMOVE_TAB_VIEW_RETAIN_BACKUP)){
|
||||
onInitRemoveView((Integer) data.get(0), false);
|
||||
onInitRemoveView((Integer) data.get(0), false, (boolean)data.get(1));
|
||||
}
|
||||
else if(e_type.equals(tabEnums.eTabAdapterCallback.M_CLEAR_BACKUP)){
|
||||
onExitAndClearBackup();
|
||||
|
|
|
@ -27,8 +27,10 @@ class tabModel
|
|||
}
|
||||
|
||||
private void onRemoveTab(int pIndex){
|
||||
if(mModelList.size()>pIndex){
|
||||
mBackupIndex.add(mModelList.get(pIndex));
|
||||
}
|
||||
}
|
||||
|
||||
private ArrayList<tabRowModel> onGetBackup(){
|
||||
return mBackupIndex;
|
||||
|
|
|
@ -79,7 +79,7 @@ class tabViewController
|
|||
@SuppressLint("ClickableViewAccessibility")
|
||||
public void onHoldInteraction(){
|
||||
final Handler handler = new Handler();
|
||||
handler.postDelayed(() -> mBlocker.setVisibility(View.GONE), 350);
|
||||
handler.postDelayed(() -> mBlocker.setVisibility(View.GONE), 250);
|
||||
}
|
||||
|
||||
private void initTabCount(int pCount){
|
||||
|
@ -103,23 +103,6 @@ class tabViewController
|
|||
}
|
||||
|
||||
private void initPostUI(){
|
||||
mRecycleView.setAlpha(1);
|
||||
mContext.getView().setBackgroundColor(Color.WHITE);
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||
Window window = mContext.getActivity().getWindow();
|
||||
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
|
||||
|
||||
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) {
|
||||
window.setStatusBarColor(mContext.getResources().getColor(R.color.blue_dark));
|
||||
}
|
||||
else {
|
||||
if(AppCompatDelegate.getDefaultNightMode() == AppCompatDelegate.MODE_NIGHT_NO){
|
||||
mContext.getActivity().getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
|
||||
}
|
||||
mContext.getActivity().getWindow().setStatusBarColor(ContextCompat.getColor(mContext.getActivity(), R.color.c_background));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void onOpenTabMenu(View view) {
|
||||
|
|
|
@ -6,7 +6,7 @@ public class enums
|
|||
public enum etype{
|
||||
on_update_favicon,ON_UPDATE_TAB_TITLE, ON_OPEN_TAB_VIEW,ON_NEW_TAB_ANIMATION, ON_LOAD_REQUEST,GECKO_SCROLL_CHANGED,GECKO_SCROLL_FINISHED,ON_UPDATE_SEARCH_BAR,M_ON_MAIL,SESSION_ID,M_UPDATE_PIXEL_BACKGROUND,M_CACHE_UPDATE_TAB,
|
||||
on_verify_selected_url_menu,FINDER_RESULT_CALLBACK,M_ADMOB_BANNER_RECHECK,M_OPEN_SESSION,
|
||||
welcome, reload,download_folder, M_UPDATE_THEME,M_ON_BANNER_UPDATE, M_LOAD_HOMEPAGE_GENESIS,M_INIT_TAB_COUNT,M_INIT_TAB_COUNT_FORCED,
|
||||
welcome, reload,download_folder, M_UPDATE_THEME,M_ON_BANNER_UPDATE, M_LOAD_HOMEPAGE_GENESIS,M_INIT_TAB_COUNT,M_INIT_TAB_COUNT_FORCED,M_SPLASH_DISABLE,M_NEW_LINK_IN_NEW_TAB,
|
||||
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,M_CLOSE_TAB,
|
||||
on_close_sesson,on_long_press, on_full_screen,on_handle_external_intent,on_update_suggestion_url,progress_update,progress_update_forced, ON_EXPAND_TOP_BAR,recheck_orbot,on_url_load,on_playstore_load,back_list_empty,start_proxy, ON_UPDATE_THEME, M_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
|
||||
}
|
||||
|
|
|
@ -24,46 +24,44 @@ public class keys
|
|||
|
||||
/*Settings*/
|
||||
|
||||
public static final String SETTING_LANGUAGE = "LANGUAGE";
|
||||
public static final String SETTING_LANGUAGE_REGION = "LANGUAGE_REGION";
|
||||
public static final String SETTING_SEARCH_ENGINE = "SEARCH_ENGINE";
|
||||
public static final String SETTING_FIRST_INSTALLED = "FIRST_INSTALLED";
|
||||
public static final String SETTING_JAVA_SCRIPT = "JAVA_SCRIPT";
|
||||
public static final String SETTING_POPUP = "POPUP";
|
||||
public static final String SETTING_HISTORY_CLEAR = "HISTORY_CLEAR";
|
||||
public static final String SETTING_GATEWAY = "pref_bridges_enabled_auto";
|
||||
public static final String SETTING_GATEWAY_MANUAL = "pref_bridges_enabled_manual";
|
||||
public static final String SETTING_IS_BOOTSTRAPPED = "IS_BOOTSTRAPPED";
|
||||
public static final String SETTING_IS_WELCOME_ENABLED = "IS_WELCOME_ENABLED";
|
||||
public static final String SETTING_ENGINE_SWITCHED = "ENGINE_SWITCHED";
|
||||
public static final String SETTING_FONT_SIZE = "FONT_SIZE";
|
||||
public static final String SETTING_FONT_ADJUSTABLE = "FONT_ADJUSTABLE";
|
||||
public static final String SETTING_COOKIE_ADJUSTABLE = "COOKIE_ADJUSTABLE_NEW";
|
||||
public static final String SETTING_NOTIFICATION_STATUS = "NOTIFICATION_STATUS";
|
||||
public static final String SETTING_SEARCH_HISTORY = "SETTING_SEARCH_HISTORY";
|
||||
public static final String SETTING_SEARCH_SUGGESTION = "SETTING_SEARCH_STATUS";
|
||||
public static final String SETTING_ZOOM = "SETTING_ZOOM";
|
||||
public static final String SETTING_VOICE_INPUT = "SETTING_VOICE_INPUT";
|
||||
public static final String SETTING_TRACKING_PROTECTION = "SETTING_TRACKING_PROTECTION";
|
||||
public static final String SETTING_DONOT_TRACK = "SETTING_DONOT_TRACK";
|
||||
public static final String SETTING_RESTORE_TAB = "SETTING_RESTORE_TAB";
|
||||
public static final String SETTING_CHARACTER_ENCODING = "SETTING_CHARACTER_ENCODING";
|
||||
public static final String SETTING_SHOW_IMAGES = "SETTING_SHOW_IMAGES";
|
||||
public static final String SETTING_SHOW_TAB_GRID = "SETTING_SHOW_TAB_GRID";
|
||||
public static final String SETTING_SHOW_FONTS = "SETTING_SHOW_FONTS";
|
||||
public static final String SETTING_TOOLBAR_THEME = "SETTING_TOOLBAR_THEME";
|
||||
public static final String SETTING_THEME = "SETTING_THEME_LIGHT";
|
||||
public static final String SETTING_FULL_SCREEN_BROWSIING = "SETTING_FULL_SCREEN_BROWSIING";
|
||||
public static final String SETTING_OPEN_URL_IN_NEW_TAB = "SETTING_OPEN_URL_IN_NEW_TAB";
|
||||
public static final String SETTING_LIST_VIEW = "SETTING_LIST_VIEW";
|
||||
public static final String SETTING_TOOLBAR_THEME_ALLOWED = "SETTING_TOOLBAR_THEME_ALLOWED";
|
||||
public static final String SETTING_VERSION = "VERSION_V1";
|
||||
public static final String SETTING_LANGUAGE = "LANGUAGE_V1";
|
||||
public static final String SETTING_LANGUAGE_REGION = "LANGUAGE_REGION_V1";
|
||||
public static final String SETTING_SEARCH_ENGINE = "SEARCH_ENGINE_V1";
|
||||
public static final String SETTING_FIRST_INSTALLED = "FIRST_INSTALLED_V1";
|
||||
public static final String SETTING_JAVA_SCRIPT = "JAVA_SCRIPT_V1";
|
||||
public static final String SETTING_POPUP = "POPUP_V1";
|
||||
public static final String SETTING_HISTORY_CLEAR = "HISTORY_CLEAR_V1";
|
||||
public static final String SETTING_GATEWAY = "pref_bridges_enabled_auto_V1";
|
||||
public static final String SETTING_GATEWAY_MANUAL = "pref_bridges_enabled_manual_V1";
|
||||
public static final String SETTING_IS_BOOTSTRAPPED = "IS_BOOTSTRAPPED_V1";
|
||||
public static final String SETTING_IS_WELCOME_ENABLED = "IS_WELCOME_ENABLED_V1";
|
||||
public static final String SETTING_FONT_SIZE = "FONT_SIZE_V1";
|
||||
public static final String SETTING_FONT_ADJUSTABLE = "FONT_ADJUSTABLE_V1";
|
||||
public static final String SETTING_COOKIE_ADJUSTABLE = "COOKIE_ADJUSTABLE_NEW_V1";
|
||||
public static final String SETTING_NOTIFICATION_STATUS = "NOTIFICATION_STATUS_V1";
|
||||
public static final String SETTING_SEARCH_HISTORY = "SETTING_SEARCH_HISTORY_V1";
|
||||
public static final String SETTING_SEARCH_SUGGESTION = "SETTING_SEARCH_STATUS_V1";
|
||||
public static final String SETTING_ZOOM = "SETTING_ZOOM_V1";
|
||||
public static final String SETTING_VOICE_INPUT = "SETTING_VOICE_INPUT_V1";
|
||||
public static final String SETTING_TRACKING_PROTECTION = "SETTING_TRACKING_PROTECTION_V1";
|
||||
public static final String SETTING_DONOT_TRACK = "SETTING_DONOT_TRACK_V1";
|
||||
public static final String SETTING_RESTORE_TAB = "SETTING_RESTORE_TAB_V1";
|
||||
public static final String SETTING_CHARACTER_ENCODING = "SETTING_CHARACTER_ENCODING_V1";
|
||||
public static final String SETTING_SHOW_IMAGES = "SETTING_SHOW_IMAGES_V1";
|
||||
public static final String SETTING_SHOW_TAB_GRID = "SETTING_SHOW_TAB_GRID_V1";
|
||||
public static final String SETTING_SHOW_FONTS = "SETTING_SHOW_FONTS_V1";
|
||||
public static final String SETTING_TOOLBAR_THEME = "SETTING_TOOLBAR_THEME_V1";
|
||||
public static final String SETTING_THEME = "SETTING_THEME_LIGHT_V1";
|
||||
public static final String SETTING_FULL_SCREEN_BROWSIING = "SETTING_FULL_SCREEN_BROWSIING_V1";
|
||||
public static final String SETTING_OPEN_URL_IN_NEW_TAB = "SETTING_OPEN_URL_IN_NEW_TAB_V1";
|
||||
public static final String SETTING_LIST_VIEW = "SETTING_LIST_VIEW_V1";
|
||||
|
||||
/*Bridge Settings*/
|
||||
|
||||
public static final String BRIDGE_CUSTOM_BRIDGE_1 = "CLEAR_PREFS";
|
||||
public static final String BRIDGE_CUSTOM_TYPE = "BRIDGE_CUSTOM_TYPE";
|
||||
public static final String BRIDGE_NOTIFICATION = "BRIDGE_NOTIFICATION";
|
||||
public static final String BRIDGE_ENABLES = "pref_bridges_enabled";
|
||||
public static final String VPN_ENABLED = "pref_vpn";
|
||||
public static final String BRIDGE_CUSTOM_BRIDGE_1 = "CLEAR_PREFS_V1";
|
||||
public static final String BRIDGE_CUSTOM_TYPE = "BRIDGE_CUSTOM_TYPE_V1";
|
||||
public static final String BRIDGE_ENABLES = "pref_bridges_enabled_V1";
|
||||
public static final String VPN_ENABLED = "pref_vpn_V1";
|
||||
|
||||
}
|
||||
|
|
|
@ -1,11 +1,14 @@
|
|||
package com.darkweb.genesissearchengine.constants;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import com.darkweb.genesissearchengine.dataManager.dataController;
|
||||
import com.darkweb.genesissearchengine.dataManager.dataEnums;
|
||||
|
||||
import org.mozilla.geckoview.ContentBlocking;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Locale;
|
||||
|
||||
import static org.mozilla.geckoview.ContentBlocking.CookieBehavior.ACCEPT_FIRST_PARTY;
|
||||
|
||||
|
@ -14,7 +17,6 @@ public class status
|
|||
/*App Status*/
|
||||
|
||||
public static boolean sPaidStatus = false;
|
||||
public static String mCurrentReloadURL = "";
|
||||
public static int mNotificationID = 1001;
|
||||
|
||||
/*Settings Status*/
|
||||
|
@ -26,6 +28,8 @@ public class status
|
|||
public static String mReferenceWebsites;
|
||||
public static String sBridgeCustomBridge = strings.GENERIC_EMPTY_STR;
|
||||
public static String sBridgeCustomType = strings.GENERIC_EMPTY_STR;
|
||||
public static String sVersion = "";
|
||||
public static Locale mSystemLocale = null;
|
||||
|
||||
public static boolean sSettingEnableZoom = true;
|
||||
public static boolean sSettingEnableVoiceInput = true;
|
||||
|
@ -67,8 +71,20 @@ public class status
|
|||
|
||||
public static float sSettingFontSize = 1;
|
||||
|
||||
public static void initStatus()
|
||||
private static void versionVerifier(Context pContext){
|
||||
status.sVersion = (String)dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_STRING, Arrays.asList(keys.SETTING_VERSION,strings.GENERIC_EMPTY_STR));
|
||||
if(!status.sVersion.equals("1.0.0.1")){
|
||||
pContext.deleteDatabase(constants.CONST_DATABASE_NAME);
|
||||
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_CLEAR_PREFS, null);
|
||||
status.sVersion = "1.0.0.1";
|
||||
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_STRING, Arrays.asList(keys.SETTING_VERSION,strings.SETTING_DEFAULT_VERSION));
|
||||
}
|
||||
}
|
||||
|
||||
public static void initStatus(Context pContext)
|
||||
{
|
||||
versionVerifier(pContext);
|
||||
|
||||
status.sSettingSearchHistory = (boolean)dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_BOOL, Arrays.asList(keys.SETTING_SEARCH_HISTORY,true));
|
||||
status.sSearchSuggestionStatus = (boolean)dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_BOOL, Arrays.asList(keys.SETTING_SEARCH_SUGGESTION,true));
|
||||
status.sSettingJavaStatus = (boolean)dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_BOOL, Arrays.asList(keys.SETTING_JAVA_SCRIPT,true));
|
||||
|
|
|
@ -36,12 +36,13 @@ public class strings
|
|||
public static final String GENERIC_EMPTY_SPACE = " ";
|
||||
|
||||
/*Language Manager*/
|
||||
public static final String LANGUAGE_NOT_SUPPORTED = "not supported";
|
||||
public static final String LANGUAGE_NOT_SUPPORTED = "is unsupported";
|
||||
|
||||
/*Settings Manager*/
|
||||
|
||||
public static final String SETTING_DEFAULT_LANGUAGE = "en";
|
||||
public static final String SETTING_DEFAULT_LANGUAGE_REGION = "Us";
|
||||
public static final String SETTING_DEFAULT_VERSION = "1.0.0.1";
|
||||
|
||||
/*Home Manager*/
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package com.darkweb.genesissearchengine.dataManager;
|
||||
|
||||
import com.darkweb.genesissearchengine.appManager.bookmarkManager.bookmarkRowModel;
|
||||
import com.darkweb.genesissearchengine.appManager.databaseManager.databaseController;
|
||||
import com.darkweb.genesissearchengine.databaseManager.databaseController;
|
||||
import com.darkweb.genesissearchengine.constants.constants;
|
||||
import com.darkweb.genesissearchengine.constants.strings;
|
||||
import java.util.ArrayList;
|
||||
|
|
|
@ -2,12 +2,10 @@ package com.darkweb.genesissearchengine.dataManager;
|
|||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
||||
import com.darkweb.genesissearchengine.appManager.databaseManager.databaseController;
|
||||
import com.darkweb.genesissearchengine.appManager.historyManager.historyRowModel;
|
||||
import com.darkweb.genesissearchengine.databaseManager.databaseController;
|
||||
import com.darkweb.genesissearchengine.constants.constants;
|
||||
import com.darkweb.genesissearchengine.constants.status;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
@ -89,6 +87,9 @@ public class dataController
|
|||
|
||||
/*Recieving Preferences*/
|
||||
public Object invokePrefs(dataEnums.ePreferencesCommands pCommands, List<Object> pData){
|
||||
if(mPreferenceModel==null){
|
||||
return null;
|
||||
}
|
||||
return mPreferenceModel.onTrigger(pCommands, pData);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package com.darkweb.genesissearchengine.dataManager;
|
||||
|
||||
import com.darkweb.genesissearchengine.appManager.databaseManager.databaseController;
|
||||
import com.darkweb.genesissearchengine.databaseManager.databaseController;
|
||||
import com.darkweb.genesissearchengine.appManager.historyManager.historyRowModel;
|
||||
import com.darkweb.genesissearchengine.constants.constants;
|
||||
import com.darkweb.genesissearchengine.constants.status;
|
||||
|
|
|
@ -10,7 +10,7 @@ import android.util.Log;
|
|||
import android.widget.ImageView;
|
||||
import androidx.annotation.NonNull;
|
||||
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
||||
import com.darkweb.genesissearchengine.appManager.databaseManager.databaseController;
|
||||
import com.darkweb.genesissearchengine.databaseManager.databaseController;
|
||||
import com.darkweb.genesissearchengine.appManager.homeManager.geckoManager.NestedGeckoView;
|
||||
import com.darkweb.genesissearchengine.appManager.homeManager.geckoManager.geckoSession;
|
||||
import com.darkweb.genesissearchengine.appManager.tabManager.tabRowModel;
|
||||
|
@ -18,6 +18,8 @@ import com.darkweb.genesissearchengine.constants.enums;
|
|||
import com.darkweb.genesissearchengine.constants.status;
|
||||
import com.darkweb.genesissearchengine.constants.strings;
|
||||
import org.mozilla.geckoview.GeckoResult;
|
||||
import org.mozilla.geckoview.GeckoView;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.text.SimpleDateFormat;
|
||||
|
@ -213,7 +215,7 @@ class tabDataModel
|
|||
};
|
||||
|
||||
// int isLoading = 0;
|
||||
public void updatePixels(String pSessionID, GeckoResult<Bitmap> pBitmapManager, ImageView pImageView, NestedGeckoView pGeckoView, boolean pOpenTabView){
|
||||
public void updatePixels(String pSessionID, GeckoResult<Bitmap> pBitmapManager, ImageView pImageView, GeckoView pGeckoView, boolean pOpenTabView){
|
||||
|
||||
new Thread(){
|
||||
public void run(){
|
||||
|
@ -241,14 +243,12 @@ class tabDataModel
|
|||
}
|
||||
|
||||
byte[] mThumbnail = out.toByteArray();
|
||||
if(status.sRestoreTabs){
|
||||
ContentValues mContentValues = new ContentValues();
|
||||
mContentValues.put("mThumbnail", mThumbnail);
|
||||
databaseController.getInstance().execTab("tab",mContentValues, mTabs.get(finalCounter).getmId());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} catch (Throwable throwable) {
|
||||
throwable.printStackTrace();
|
||||
|
@ -320,7 +320,7 @@ class tabDataModel
|
|||
return getSuggestions((String) pData.get(0));
|
||||
}
|
||||
else if(pCommands == dataEnums.eTabCommands.M_UPDATE_PIXEL){
|
||||
updatePixels((String)pData.get(0), (GeckoResult<Bitmap>)pData.get(1), (ImageView) pData.get(2), (NestedGeckoView) pData.get(3), (Boolean) pData.get(4));
|
||||
updatePixels((String)pData.get(0), (GeckoResult<Bitmap>)pData.get(1), (ImageView) pData.get(2), (GeckoView) pData.get(3), (Boolean) pData.get(4));
|
||||
}
|
||||
else if(pCommands == dataEnums.eTabCommands.M_HOME_PAGE){
|
||||
return getHomePage();
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package com.darkweb.genesissearchengine.appManager.databaseManager;
|
||||
package com.darkweb.genesissearchengine.databaseManager;
|
||||
|
||||
import android.content.ContentValues;
|
||||
import android.database.Cursor;
|
|
@ -1,26 +1,17 @@
|
|||
package com.darkweb.genesissearchengine.appManager.externalNavigationManager;
|
||||
package com.darkweb.genesissearchengine.externalNavigationManager;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
|
||||
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
||||
import com.darkweb.genesissearchengine.appManager.homeManager.homeController.homeController;
|
||||
import com.darkweb.genesissearchengine.appManager.landingManager.landingController;
|
||||
import com.darkweb.genesissearchengine.constants.constants;
|
||||
import com.darkweb.genesissearchengine.constants.status;
|
||||
import com.darkweb.genesissearchengine.helperManager.helperMethod;
|
||||
import com.example.myapplication.R;
|
||||
|
||||
import java.util.Collections;
|
||||
|
||||
import static com.darkweb.genesissearchengine.constants.enums.etype.M_INITIALIZE_TAB_LINK;
|
||||
|
||||
public class externalNavigationController extends AppCompatActivity {
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
|
@ -22,6 +22,7 @@ import android.graphics.drawable.ColorDrawable;
|
|||
import android.graphics.drawable.Drawable;
|
||||
import android.graphics.drawable.TransitionDrawable;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.Vibrator;
|
||||
import android.text.SpannableString;
|
||||
import android.text.Spanned;
|
||||
|
@ -32,6 +33,7 @@ import android.view.LayoutInflater;
|
|||
import android.view.View;
|
||||
import android.view.ViewAnimationUtils;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.WindowManager;
|
||||
import android.view.animation.Animation;
|
||||
import android.view.animation.AnimationUtils;
|
||||
import android.view.animation.RotateAnimation;
|
||||
|
@ -485,6 +487,42 @@ public class helperMethod
|
|||
}
|
||||
}
|
||||
|
||||
public static Point getNavigationBarSize(Context context) {
|
||||
Point appUsableSize = getAppUsableScreenSize(context);
|
||||
Point realScreenSize = getRealScreenSize(context);
|
||||
|
||||
// navigation bar on the side
|
||||
if (appUsableSize.x < realScreenSize.x) {
|
||||
return new Point(realScreenSize.x - appUsableSize.x, appUsableSize.y);
|
||||
}
|
||||
|
||||
// navigation bar at the bottom
|
||||
if (appUsableSize.y < realScreenSize.y) {
|
||||
return new Point(appUsableSize.x, realScreenSize.y - appUsableSize.y);
|
||||
}
|
||||
|
||||
// navigation bar is not present
|
||||
return new Point();
|
||||
}
|
||||
|
||||
public static Point getAppUsableScreenSize(Context context) {
|
||||
WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
|
||||
Display display = windowManager.getDefaultDisplay();
|
||||
Point size = new Point();
|
||||
display.getSize(size);
|
||||
return size;
|
||||
}
|
||||
|
||||
public static Point getRealScreenSize(Context context) {
|
||||
WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
|
||||
Display display = windowManager.getDefaultDisplay();
|
||||
Point size = new Point();
|
||||
|
||||
display.getRealSize(size);
|
||||
|
||||
return size;
|
||||
}
|
||||
|
||||
public static void openActivity( Class<?> cls,int type,AppCompatActivity context,boolean animation){
|
||||
Intent myIntent = new Intent(context, cls);
|
||||
myIntent.putExtra(keys.PROXY_LIST_TYPE, type);
|
||||
|
|
|
@ -59,7 +59,6 @@ public class theme {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public Context setupTheme(Context context) {
|
||||
|
|
|
@ -5,6 +5,8 @@ import android.view.View;
|
|||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import com.darkweb.genesissearchengine.helperManager.eventObserver;
|
||||
import com.google.android.gms.ads.*;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.util.List;
|
||||
import java.util.Timer;
|
||||
import java.util.TimerTask;
|
||||
|
@ -17,38 +19,36 @@ class adManager
|
|||
|
||||
/*Private Variables */
|
||||
|
||||
private AppCompatActivity mAppContext;
|
||||
private eventObserver.eventListener mEvent;
|
||||
private AdView mBannerAds;
|
||||
private WeakReference<AdView> mBannerAds;
|
||||
|
||||
private boolean bannerAdsLoading = false;
|
||||
private boolean bannerAdsLoaded = false;
|
||||
|
||||
/*Initializations*/
|
||||
|
||||
adManager(AppCompatActivity pAppContext, eventObserver.eventListener pEvent, AdView pBannerAds) {
|
||||
this.mAppContext = pAppContext;
|
||||
adManager(eventObserver.eventListener pEvent, AdView pBannerAds) {
|
||||
this.mEvent = pEvent;
|
||||
mBannerAds = pBannerAds;
|
||||
mBannerAds = new WeakReference(pBannerAds);
|
||||
}
|
||||
|
||||
private void initializeBannerAds(){
|
||||
if(!sPaidStatus){
|
||||
AdRequest request = new AdRequest.Builder().build();
|
||||
mBannerAds.loadAd(request);
|
||||
mBannerAds.get().loadAd(request);
|
||||
admobListeners();
|
||||
}
|
||||
}
|
||||
|
||||
/*Local Helper Methods*/
|
||||
|
||||
private void loadAds(){
|
||||
private void loadAds(AppCompatActivity pAppContext){
|
||||
if(!sPaidStatus)
|
||||
{
|
||||
if (!bannerAdsLoading)
|
||||
{
|
||||
bannerAdsLoading = true;
|
||||
MobileAds.initialize(mAppContext, initializationStatus -> { });
|
||||
MobileAds.initialize(pAppContext.getApplicationContext(), initializationStatus -> { });
|
||||
|
||||
initializeBannerAds();
|
||||
}
|
||||
|
@ -63,7 +63,7 @@ class adManager
|
|||
|
||||
private void admobListeners(){
|
||||
if(!sPaidStatus){
|
||||
mBannerAds.setAdListener(new AdListener() {
|
||||
mBannerAds.get().setAdListener(new AdListener() {
|
||||
@Override
|
||||
public void onAdLoaded() {
|
||||
bannerAdsLoaded = true;
|
||||
|
@ -93,7 +93,7 @@ class adManager
|
|||
Object onTrigger(List<Object> pData, pluginEnums.eAdManager pEventType) {
|
||||
if(pEventType.equals(pluginEnums.eAdManager.M_INITIALIZE_BANNER_ADS))
|
||||
{
|
||||
loadAds();
|
||||
loadAds((AppCompatActivity)pData.get(0));
|
||||
}
|
||||
else if(pEventType.equals(pluginEnums.eAdManager.M_IS_ADVERT_LOADED))
|
||||
{
|
||||
|
|
|
@ -3,17 +3,19 @@ package com.darkweb.genesissearchengine.pluginManager;
|
|||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import com.darkweb.genesissearchengine.helperManager.eventObserver;
|
||||
import com.flurry.android.FlurryAgent;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.util.List;
|
||||
|
||||
class analyticManager
|
||||
{
|
||||
/*Private Variables*/
|
||||
|
||||
private AppCompatActivity mAppContext;
|
||||
private WeakReference<AppCompatActivity> mAppContext;
|
||||
|
||||
/*Initializations*/
|
||||
|
||||
analyticManager(AppCompatActivity pAppContext, eventObserver.eventListener pEvent){
|
||||
analyticManager(WeakReference<AppCompatActivity> pAppContext, eventObserver.eventListener pEvent){
|
||||
this.mAppContext = pAppContext;
|
||||
initialize();
|
||||
}
|
||||
|
@ -22,7 +24,7 @@ class analyticManager
|
|||
{
|
||||
new FlurryAgent.Builder()
|
||||
.withLogEnabled(true)
|
||||
.build(mAppContext, "BKFSCH4CRS6RB9HSCM9H");
|
||||
.build(mAppContext.get().getApplicationContext(), "BKFSCH4CRS6RB9HSCM9H");
|
||||
}
|
||||
|
||||
/*External Triggers*/
|
||||
|
|
|
@ -5,6 +5,8 @@ import androidx.appcompat.app.AppCompatActivity;
|
|||
import com.darkweb.genesissearchengine.helperManager.localFileDownloader;
|
||||
import com.darkweb.genesissearchengine.helperManager.eventObserver;
|
||||
import com.darkweb.genesissearchengine.helperManager.helperMethod;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
@ -14,12 +16,12 @@ class downloadManager
|
|||
{
|
||||
/*Private Variables*/
|
||||
|
||||
private AppCompatActivity mAppContext;
|
||||
private WeakReference<AppCompatActivity> mAppContext;
|
||||
private Map<Integer, localFileDownloader> mDownloads = new HashMap<Integer, localFileDownloader>();
|
||||
|
||||
/*Initializations*/
|
||||
|
||||
downloadManager(AppCompatActivity pAppContext, eventObserver.eventListener pEvent){
|
||||
downloadManager(WeakReference<AppCompatActivity> pAppContext, eventObserver.eventListener pEvent){
|
||||
this.mAppContext = pAppContext;
|
||||
initialize();
|
||||
}
|
||||
|
@ -30,7 +32,7 @@ class downloadManager
|
|||
|
||||
private void startDownload(String pPath,String pFile) {
|
||||
int mID = helperMethod.createNotificationID();
|
||||
localFileDownloader mFileDownloader = (localFileDownloader)new localFileDownloader(mAppContext,pPath, pFile, mID).execute(pPath);
|
||||
localFileDownloader mFileDownloader = (localFileDownloader)new localFileDownloader(mAppContext.get().getApplicationContext(),pPath, pFile, mID).execute(pPath);
|
||||
mDownloads.put(mID,mFileDownloader);
|
||||
}
|
||||
|
||||
|
|
|
@ -3,38 +3,75 @@ package com.darkweb.genesissearchengine.pluginManager;
|
|||
import android.app.Activity;
|
||||
import android.content.res.Configuration;
|
||||
import android.content.res.Resources;
|
||||
import android.os.Build;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
||||
import com.darkweb.genesissearchengine.constants.status;
|
||||
import com.darkweb.genesissearchengine.helperManager.eventObserver;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Objects;
|
||||
|
||||
import static com.darkweb.genesissearchengine.constants.status.mSystemLocale;
|
||||
|
||||
class langManager {
|
||||
|
||||
/*Private Variables*/
|
||||
|
||||
private AppCompatActivity mAppContext;
|
||||
private eventObserver.eventListener mEvent;
|
||||
private Locale mLanguage;
|
||||
|
||||
/*Initializations*/
|
||||
|
||||
langManager(AppCompatActivity pAppContext, eventObserver.eventListener pEvent, Locale pLanguage) {
|
||||
this.mAppContext = pAppContext;
|
||||
this.mEvent = pEvent;
|
||||
this.mLanguage = pLanguage;
|
||||
|
||||
onInitLanguage(pAppContext);
|
||||
}
|
||||
|
||||
private boolean initLocale(){
|
||||
if(!status.mThemeApplying){
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||
Locale mSystemLocale = Resources.getSystem().getConfiguration().getLocales().get(0);
|
||||
if(mSystemLocale!=status.mSystemLocale || !mSystemLocale.getLanguage().equals(mLanguage.getLanguage()) ){
|
||||
status.mSystemLocale = mSystemLocale;
|
||||
/*if(activityContextManager.getInstance().getHomeController()!=null && status.sSettingLanguage.equals("default")){
|
||||
return true;
|
||||
}*/
|
||||
}
|
||||
} else {
|
||||
Locale mSystemLocale = Resources.getSystem().getConfiguration().locale;
|
||||
if(mSystemLocale!=status.mSystemLocale || !mSystemLocale.getLanguage().equals(mLanguage.getLanguage())){
|
||||
status.mSystemLocale = mSystemLocale;
|
||||
activityContextManager.getInstance().getCurrentActivity().recreate();
|
||||
/*if(activityContextManager.getInstance().getHomeController()!=null && status.sSettingLanguage.equals("default")){
|
||||
return true;
|
||||
}*/
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private void onInitLanguage(AppCompatActivity pAppContext) {
|
||||
if(status.sSettingLanguage.equals("default")){
|
||||
if(mLanguage==null || !mLanguage.getLanguage().equals(Resources.getSystem().getConfiguration().locale.getLanguage()) || !mLanguage.getCountry().equals(Resources.getSystem().getConfiguration().locale.getCountry()))
|
||||
if(!mLanguage.getLanguage().equals(Resources.getSystem().getConfiguration().locale.getLanguage()) || !mLanguage.getCountry().equals(Resources.getSystem().getConfiguration().locale.getCountry()))
|
||||
{
|
||||
Locale mSystemLocale = Resources.getSystem().getConfiguration().locale;
|
||||
if(mSystemLocale==null){
|
||||
initLocale();
|
||||
}
|
||||
String mSystemLangugage = mSystemLocale.toString();
|
||||
if(mSystemLangugage.equals("en_US") || mSystemLangugage.equals("de_DE") || mSystemLangugage.equals("ur_UR") || mSystemLangugage.equals("ca_ES") || mSystemLangugage.equals("zh_CN") || mSystemLangugage.equals("ch_CZ") || mSystemLangugage.equals("nl_NL") || mSystemLangugage.equals("fr_FR") || mSystemLangugage.equals("el_GR") || mSystemLangugage.equals("hu_HU") || mSystemLangugage.equals("in_ID") || mSystemLangugage.equals("it_IT") || mSystemLangugage.equals("ja_JP") || mSystemLangugage.equals("ko_KR") || mSystemLangugage.equals("pt_PT") || mSystemLangugage.equals("ro_RO") || mSystemLangugage.equals("ru_RU") || mSystemLangugage.equals("th_TH") || mSystemLangugage.equals("tr_TR") || mSystemLangugage.equals("uk_UA") || mSystemLangugage.equals("vi_VN")){
|
||||
if(mSystemLangugage.equals("en_US") || mSystemLangugage.equals("de_DE") || mSystemLangugage.equals("ur_UR") || mSystemLangugage.equals("ur_PK") || mSystemLangugage.equals("ca_ES") || mSystemLangugage.equals("zh_CN") || mSystemLangugage.equals("ch_CZ") || mSystemLangugage.equals("nl_NL") || mSystemLangugage.equals("fr_FR") || mSystemLangugage.equals("el_GR") || mSystemLangugage.equals("hu_HU") || mSystemLangugage.equals("in_ID") || mSystemLangugage.equals("it_IT") || mSystemLangugage.equals("ja_JP") || mSystemLangugage.equals("ko_KR") || mSystemLangugage.equals("pt_PT") || mSystemLangugage.equals("ro_RO") || mSystemLangugage.equals("ru_RU") || mSystemLangugage.equals("th_TH") || mSystemLangugage.equals("tr_TR") || mSystemLangugage.equals("uk_UA") || mSystemLangugage.equals("vi_VN")){
|
||||
if(mSystemLangugage.equals("ur_PK")){
|
||||
mLanguage = new Locale("ur", "Ur");
|
||||
} else if(mSystemLangugage.equals("vi_VN")){
|
||||
mLanguage = new Locale("ch", "Cz");
|
||||
} else {
|
||||
mLanguage = new Locale(mSystemLocale.getLanguage(), mSystemLocale.getCountry());
|
||||
}
|
||||
}else {
|
||||
mLanguage = new Locale("en", "Us");
|
||||
}
|
||||
|
@ -66,7 +103,8 @@ class langManager {
|
|||
if(status.sSettingLanguage.equals("default")){
|
||||
Locale mSystemLocale = Resources.getSystem().getConfiguration().locale;
|
||||
String mSystemLangugage = mSystemLocale.toString();
|
||||
if(mSystemLangugage.equals("en_US") || mSystemLangugage.equals("de_DE") || mSystemLangugage.equals("ca_ES") || mSystemLangugage.equals("zh_CN") || mSystemLangugage.equals("ch_CZ") || mSystemLangugage.equals("nl_NL") || mSystemLangugage.equals("fr_FR") || mSystemLangugage.equals("el_GR") || mSystemLangugage.equals("hu_HU") || mSystemLangugage.equals("in_ID") || mSystemLangugage.equals("it_IT") || mSystemLangugage.equals("ja_JP") || mSystemLangugage.equals("ko_KR") || mSystemLangugage.equals("pt_PT") || mSystemLangugage.equals("ro_RO") || mSystemLangugage.equals("ru_RU") || mSystemLangugage.equals("th_TH") || mSystemLangugage.equals("tr_TR") || mSystemLangugage.equals("uk_UA") || mSystemLangugage.equals("vi_VN")){
|
||||
|
||||
if(mSystemLangugage.equals("cs_CZ") || mSystemLangugage.equals("ur_PK") || mSystemLangugage.equals("en_US") || mSystemLangugage.equals("de_DE") || mSystemLangugage.equals("ca_ES") || mSystemLangugage.equals("zh_CN") || mSystemLangugage.equals("ch_CZ") || mSystemLangugage.equals("nl_NL") || mSystemLangugage.equals("fr_FR") || mSystemLangugage.equals("el_GR") || mSystemLangugage.equals("hu_HU") || mSystemLangugage.equals("in_ID") || mSystemLangugage.equals("it_IT") || mSystemLangugage.equals("ja_JP") || mSystemLangugage.equals("ko_KR") || mSystemLangugage.equals("pt_PT") || mSystemLangugage.equals("ro_RO") || mSystemLangugage.equals("ru_RU") || mSystemLangugage.equals("th_TH") || mSystemLangugage.equals("tr_TR") || mSystemLangugage.equals("uk_UA") || mSystemLangugage.equals("vi_VN")){
|
||||
return "Default | " + mSystemLocale.getDisplayName();
|
||||
}else {
|
||||
return mSystemLocale.getDisplayName() + " | is unsupported";
|
||||
|
@ -85,6 +123,7 @@ class langManager {
|
|||
}
|
||||
else if(pEventType.equals(pluginEnums.eLangManager.M_RESUME))
|
||||
{
|
||||
boolean mStatus = initLocale();
|
||||
onResume((AppCompatActivity) pData.get(0));
|
||||
}
|
||||
else if(pEventType.equals(pluginEnums.eLangManager.M_SET_LANGUAGE))
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.darkweb.genesissearchengine.pluginManager;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.content.res.Resources;
|
||||
import android.graphics.Color;
|
||||
|
@ -48,7 +49,13 @@ class messageManager
|
|||
|
||||
/*Initializations*/
|
||||
|
||||
private void onClearReference(){
|
||||
mContext = null;
|
||||
mData = null;
|
||||
}
|
||||
|
||||
private void initializeDialog(int pLayout, int pGravity){
|
||||
try {
|
||||
if(mDialog !=null && mDialog.isShowing()){
|
||||
mDialog.dismiss();
|
||||
}
|
||||
|
@ -74,6 +81,7 @@ class messageManager
|
|||
mDialog.getWindow().setLayout(helperMethod.pxFromDp(350), -1);
|
||||
mDialog.getWindow().setLayout(ConstraintLayout.LayoutParams.MATCH_PARENT, ConstraintLayout.LayoutParams.WRAP_CONTENT);
|
||||
mDialog.show();
|
||||
}catch (Exception ignored){}
|
||||
}
|
||||
|
||||
messageManager(eventObserver.eventListener event)
|
||||
|
@ -113,6 +121,8 @@ class messageManager
|
|||
mEvent.invokeObserver(null, M_CANCEL_WELCOME);
|
||||
mDialog.dismiss();
|
||||
});
|
||||
|
||||
mDialog.setOnDismissListener(dialog -> onClearReference());
|
||||
}
|
||||
|
||||
private void languageSupportFailure()
|
||||
|
@ -120,6 +130,7 @@ class messageManager
|
|||
initializeDialog(R.layout.popup_language_support, Gravity.CENTER);
|
||||
((TextView) mDialog.findViewById(R.id.pLanguage)).setText((mData.get(0).toString()));
|
||||
mDialog.findViewById(R.id.pDismiss).setOnClickListener(v -> mDialog.dismiss());
|
||||
mDialog.setOnDismissListener(dialog -> onClearReference());
|
||||
}
|
||||
|
||||
private void rateFailure()
|
||||
|
@ -140,12 +151,14 @@ class messageManager
|
|||
};
|
||||
handler.postDelayed(runnable, 1000);
|
||||
});
|
||||
mDialog.setOnDismissListener(dialog -> onClearReference());
|
||||
}
|
||||
|
||||
private void reportedSuccessfully()
|
||||
{
|
||||
initializeDialog(R.layout.popup_reported_successfully, Gravity.BOTTOM);
|
||||
mDialog.findViewById(R.id.pNext).setOnClickListener(v -> mDialog.dismiss());
|
||||
mDialog.setOnDismissListener(dialog -> onClearReference());
|
||||
}
|
||||
|
||||
private void newIdentityCreated()
|
||||
|
@ -156,7 +169,10 @@ class messageManager
|
|||
initializeDialog(R.layout.popup_new_circuit, Gravity.BOTTOM);
|
||||
mDialog.findViewById(R.id.pDismiss).setOnClickListener(v -> mDialog.dismiss());
|
||||
|
||||
mDialog.setOnDismissListener(dialog -> handler.removeCallbacks(runnable));
|
||||
mDialog.setOnDismissListener(dialog -> {
|
||||
handler.removeCallbacks(runnable);
|
||||
onClearReference();
|
||||
});
|
||||
|
||||
handler.postDelayed(runnable, 1500);
|
||||
}
|
||||
|
@ -175,10 +191,12 @@ class messageManager
|
|||
handler.removeCallbacks(runnable);
|
||||
});
|
||||
|
||||
mDialog.setOnDismissListener(dialog -> handler.removeCallbacks(runnable));
|
||||
mDialog.setOnDismissListener(dialog -> {
|
||||
handler.removeCallbacks(runnable);
|
||||
onClearReference();
|
||||
});
|
||||
|
||||
handler.postDelayed(runnable, 1500);
|
||||
|
||||
}
|
||||
|
||||
private void maxTabReached()
|
||||
|
@ -195,7 +213,10 @@ class messageManager
|
|||
handler.removeCallbacks(runnable);
|
||||
});
|
||||
|
||||
mDialog.setOnDismissListener(dialog -> handler.removeCallbacks(runnable));
|
||||
mDialog.setOnDismissListener(dialog -> {
|
||||
handler.removeCallbacks(runnable);
|
||||
onClearReference();
|
||||
});
|
||||
|
||||
handler.postDelayed(runnable, 1500);
|
||||
|
||||
|
@ -205,12 +226,14 @@ class messageManager
|
|||
{
|
||||
initializeDialog(R.layout.popup_not_supported, Gravity.BOTTOM);
|
||||
mDialog.findViewById(R.id.pDismiss).setOnClickListener(v -> mDialog.dismiss());
|
||||
mDialog.setOnDismissListener(dialog -> onClearReference());
|
||||
}
|
||||
|
||||
private void dataClearedSuccessfully()
|
||||
{
|
||||
initializeDialog(R.layout.popup_data_cleared, Gravity.BOTTOM);
|
||||
mDialog.findViewById(R.id.pDismiss).setOnClickListener(v -> mDialog.dismiss());
|
||||
mDialog.setOnDismissListener(dialog -> onClearReference());
|
||||
}
|
||||
|
||||
|
||||
|
@ -245,6 +268,7 @@ class messageManager
|
|||
}
|
||||
|
||||
((TextView) mDialog.findViewById(R.id.pHeaderSubpart)).setText(helperMethod.getDomainName(mData.get(0).toString()));
|
||||
mDialog.setOnDismissListener(dialog -> onClearReference());
|
||||
}
|
||||
|
||||
private void bookmark()
|
||||
|
@ -259,6 +283,7 @@ class messageManager
|
|||
helperMethod.hideKeyboard(activityContextManager.getInstance().getHomeController());
|
||||
dialog.dismiss();
|
||||
mContext.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
|
||||
onClearReference();
|
||||
};
|
||||
handler.postDelayed(runnable, 50);
|
||||
});
|
||||
|
@ -292,6 +317,7 @@ class messageManager
|
|||
helperMethod.hideKeyboard(activityContextManager.getInstance().getHomeController());
|
||||
dialog.dismiss();
|
||||
mContext.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
|
||||
onClearReference();
|
||||
};
|
||||
handler.postDelayed(runnable, 50);
|
||||
});
|
||||
|
@ -324,6 +350,7 @@ class messageManager
|
|||
mDialog.dismiss();
|
||||
mEvent.invokeObserver(null, M_CLEAR_HISTORY);
|
||||
});
|
||||
mDialog.setOnDismissListener(dialog -> onClearReference());
|
||||
}
|
||||
|
||||
private void clearBookmark()
|
||||
|
@ -334,6 +361,7 @@ class messageManager
|
|||
mDialog.dismiss();
|
||||
mEvent.invokeObserver(null, M_CLEAR_BOOKMARK);
|
||||
});
|
||||
mDialog.setOnDismissListener(dialog -> onClearReference());
|
||||
}
|
||||
|
||||
private void reportURL()
|
||||
|
@ -347,6 +375,7 @@ class messageManager
|
|||
Runnable runnable = () -> onTrigger(Arrays.asList(strings.GENERIC_EMPTY_STR, mContext),M_RATE_SUCCESS);
|
||||
handler.postDelayed(runnable, 1000);
|
||||
});
|
||||
mDialog.setOnDismissListener(dialog -> onClearReference());
|
||||
}
|
||||
|
||||
private void downloadSingle()
|
||||
|
@ -362,6 +391,7 @@ class messageManager
|
|||
};
|
||||
handler.postDelayed(runnable, 1000);
|
||||
});
|
||||
mDialog.setOnDismissListener(dialog -> onClearReference());
|
||||
}
|
||||
|
||||
private void rateApp()
|
||||
|
@ -387,6 +417,7 @@ class messageManager
|
|||
mDialog.dismiss();
|
||||
}
|
||||
});
|
||||
mDialog.setOnDismissListener(dialog -> onClearReference());
|
||||
}
|
||||
|
||||
private void downloadFileLongPress()
|
||||
|
@ -416,6 +447,7 @@ class messageManager
|
|||
mEvent.invokeObserver(Collections.singletonList(mData.get(0)), M_COPY_LINK);
|
||||
mDialog.dismiss();
|
||||
});
|
||||
mDialog.setOnDismissListener(dialog -> onClearReference());
|
||||
}
|
||||
|
||||
private void openURLLongPress()
|
||||
|
@ -437,6 +469,7 @@ class messageManager
|
|||
mEvent.invokeObserver(Collections.singletonList(mData.get(0)), M_COPY_LINK);
|
||||
mDialog.dismiss();
|
||||
});
|
||||
mDialog.setOnDismissListener(dialog -> onClearReference());
|
||||
}
|
||||
|
||||
private void popupDownloadFull(){
|
||||
|
@ -488,6 +521,7 @@ class messageManager
|
|||
mEvent.invokeObserver(Collections.singletonList(file), M_DOWNLOAD_FILE_MANUAL);
|
||||
mDialog.dismiss();
|
||||
});
|
||||
mDialog.setOnDismissListener(dialog -> onClearReference());
|
||||
}
|
||||
|
||||
private void sendBridgeMail()
|
||||
|
@ -507,6 +541,7 @@ class messageManager
|
|||
};
|
||||
handler.postDelayed(runnable, 1000);
|
||||
});
|
||||
mDialog.setOnDismissListener(dialog -> onClearReference());
|
||||
}
|
||||
|
||||
void onReset(){
|
||||
|
@ -519,6 +554,7 @@ class messageManager
|
|||
|
||||
void onTrigger(List<Object> pData, pluginEnums.eMessageManager pEventType)
|
||||
{
|
||||
onClearReference();
|
||||
if(pEventType.equals(pluginEnums.eMessageManager.M_RESET)){
|
||||
onReset();
|
||||
}
|
||||
|
|
|
@ -13,6 +13,8 @@ import com.darkweb.genesissearchengine.constants.status;
|
|||
import com.darkweb.genesissearchengine.helperManager.eventObserver;
|
||||
import com.darkweb.genesissearchengine.helperManager.userEngagementNotification;
|
||||
import com.example.myapplication.R;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.util.List;
|
||||
import static com.darkweb.genesissearchengine.constants.constants.*;
|
||||
|
||||
|
@ -20,17 +22,17 @@ class notifictionManager
|
|||
{
|
||||
/*Private Variables*/
|
||||
|
||||
private AppCompatActivity mAppContext;
|
||||
private WeakReference<AppCompatActivity> mAppContext;
|
||||
|
||||
/*Initializations*/
|
||||
|
||||
notifictionManager(AppCompatActivity pAppContext, eventObserver.eventListener pEvent){
|
||||
notifictionManager(WeakReference<AppCompatActivity> pAppContext, eventObserver.eventListener pEvent){
|
||||
this.mAppContext = pAppContext;
|
||||
onNotificationClear();
|
||||
}
|
||||
|
||||
private void onNotificationClear(){
|
||||
NotificationManager notificationManager = (NotificationManager) mAppContext.getSystemService(Context.NOTIFICATION_SERVICE);
|
||||
NotificationManager notificationManager = (NotificationManager) mAppContext.get().getSystemService(Context.NOTIFICATION_SERVICE);
|
||||
notificationManager.cancel(status.mNotificationID);
|
||||
}
|
||||
|
||||
|
@ -39,18 +41,18 @@ class notifictionManager
|
|||
}
|
||||
|
||||
private void onSchedule(Notification pNotification , int pDelay){
|
||||
Intent notificationIntent = new Intent( mAppContext, userEngagementNotification.class) ;
|
||||
Intent notificationIntent = new Intent( mAppContext.get().getApplicationContext(), userEngagementNotification.class) ;
|
||||
notificationIntent.putExtra(CONST_NOTIFICATION_ID_NAME, CONST_NOTIFICATION_ID_VALUE) ;
|
||||
notificationIntent.putExtra(CONST_NOTIFICATION_ID_NAME, pNotification) ;
|
||||
PendingIntent pendingIntent = PendingIntent. getBroadcast ( mAppContext, CONST_NOTIFICATION_REQUEST_CODE, notificationIntent , PendingIntent. FLAG_UPDATE_CURRENT ) ;
|
||||
PendingIntent pendingIntent = PendingIntent. getBroadcast ( mAppContext.get().getApplicationContext(), CONST_NOTIFICATION_REQUEST_CODE, notificationIntent , PendingIntent. FLAG_UPDATE_CURRENT ) ;
|
||||
long futureInMillis = SystemClock. elapsedRealtime () + pDelay ;
|
||||
AlarmManager alarmManager = (AlarmManager) mAppContext.getSystemService(Context. ALARM_SERVICE ) ;
|
||||
AlarmManager alarmManager = (AlarmManager) mAppContext.get().getSystemService(Context. ALARM_SERVICE ) ;
|
||||
assert alarmManager != null;
|
||||
alarmManager.set(AlarmManager. ELAPSED_REALTIME_WAKEUP , futureInMillis , pendingIntent) ;
|
||||
}
|
||||
|
||||
private Notification getNotification () {
|
||||
NotificationCompat.Builder builder = new NotificationCompat.Builder(mAppContext, CONST_NOTIFICATION_ID_NAME) ;
|
||||
NotificationCompat.Builder builder = new NotificationCompat.Builder(mAppContext.get().getApplicationContext(), CONST_NOTIFICATION_ID_NAME) ;
|
||||
builder.setContentTitle(CONST_NOTIFICATION_TITLE) ;
|
||||
builder.setSmallIcon(R.drawable.notification_logo);
|
||||
builder.setAutoCancel(true) ;
|
||||
|
|
|
@ -8,6 +8,8 @@ import org.mozilla.gecko.PrefsHelper;
|
|||
import org.torproject.android.service.OrbotService;
|
||||
import org.torproject.android.service.util.Prefs;
|
||||
import org.torproject.android.service.wrapper.orbotLocalConstants;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.util.List;
|
||||
import com.darkweb.genesissearchengine.constants.*;
|
||||
import com.darkweb.genesissearchengine.helperManager.eventObserver;
|
||||
|
@ -19,7 +21,7 @@ class orbotManager
|
|||
|
||||
/*Private Variables*/
|
||||
|
||||
private Context mAppContext;
|
||||
private WeakReference<Context> mAppContext;
|
||||
private boolean mLogsStarted = false;
|
||||
|
||||
/*Initialization*/
|
||||
|
@ -31,24 +33,28 @@ class orbotManager
|
|||
}
|
||||
|
||||
public void initialize(AppCompatActivity pAppContext, eventObserver.eventListener pEvent, int pNotificationStatus){
|
||||
this.mAppContext = pAppContext;
|
||||
this.mAppContext = new WeakReference(pAppContext);
|
||||
|
||||
onInitNotificationStatus(pNotificationStatus);
|
||||
}
|
||||
|
||||
public void onRemoveInstances(){
|
||||
this.mAppContext = null;
|
||||
}
|
||||
|
||||
private void onStartOrbot(){
|
||||
orbotLocalConstants.mBridges = status.sBridgeCustomBridge;
|
||||
orbotLocalConstants.mIsManualBridge = status.sBridgeGatewayManual;
|
||||
orbotLocalConstants.mManualBridgeType = status.sBridgeCustomType;
|
||||
Prefs.putBridgesEnabled(status.sBridgeStatus);
|
||||
Intent mServiceIntent = new Intent(mAppContext.getApplicationContext(), OrbotService.class);
|
||||
Intent mServiceIntent = new Intent(mAppContext.get().getApplicationContext(), OrbotService.class);
|
||||
mServiceIntent.setAction(ACTION_START);
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
mAppContext.startForegroundService(mServiceIntent);
|
||||
mAppContext.get().getApplicationContext().startForegroundService(mServiceIntent);
|
||||
}
|
||||
else
|
||||
{
|
||||
mAppContext.startService(mServiceIntent);
|
||||
mAppContext.get().getApplicationContext().startService(mServiceIntent);
|
||||
}
|
||||
|
||||
initializeProxy();
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
package com.darkweb.genesissearchengine.pluginManager;
|
||||
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
||||
import com.darkweb.genesissearchengine.appManager.homeManager.homeController.homeController;
|
||||
|
@ -14,6 +12,7 @@ import com.darkweb.genesissearchengine.dataManager.dataController;
|
|||
import com.darkweb.genesissearchengine.dataManager.dataEnums;
|
||||
import com.darkweb.genesissearchengine.helperManager.eventObserver;
|
||||
import com.darkweb.genesissearchengine.helperManager.helperMethod;
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
@ -38,7 +37,7 @@ public class pluginController
|
|||
/*Private Variables*/
|
||||
|
||||
private static pluginController ourInstance = new pluginController();
|
||||
private homeController mHomeController;
|
||||
private WeakReference<AppCompatActivity> mHomeController;
|
||||
private boolean mIsInitialized = false;
|
||||
|
||||
/*Initializations*/
|
||||
|
@ -57,13 +56,18 @@ public class pluginController
|
|||
mIsInitialized = true;
|
||||
}
|
||||
|
||||
public void onRemoveInstances(){
|
||||
mHomeController = null;
|
||||
mOrbotManager.onRemoveInstances();
|
||||
}
|
||||
|
||||
private void instanceObjectInitialization()
|
||||
{
|
||||
mHomeController = activityContextManager.getInstance().getHomeController();
|
||||
mHomeController = new WeakReference(activityContextManager.getInstance().getHomeController());
|
||||
mContextManager = activityContextManager.getInstance();
|
||||
|
||||
mNotificationManager = new notifictionManager(mHomeController,new notificationCallback());
|
||||
mAdManager = new adManager(mHomeController,new admobCallback(), mHomeController.getBannerAd());
|
||||
mAdManager = new adManager(new admobCallback(), ((homeController)mHomeController.get()).getBannerAd());
|
||||
mAnalyticsManager = new com.darkweb.genesissearchengine.pluginManager.analyticManager(mHomeController,new analyticManager());
|
||||
mMessageManager = new messageManager(new messageCallback());
|
||||
mOrbotManager = orbotManager.getInstance();
|
||||
|
@ -89,7 +93,7 @@ public class pluginController
|
|||
public Object invokeObserver(List<Object> data, Object event_type)
|
||||
{
|
||||
if(event_type.equals(M_SHOW_LOADED_ADS))
|
||||
mHomeController.onSetBannerAdMargin();
|
||||
((homeController)mHomeController.get()).onSetBannerAdMargin();
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
@ -165,6 +169,9 @@ public class pluginController
|
|||
|
||||
/*Lang Manager*/
|
||||
public Object onLanguageInvoke(List<Object> pData, pluginEnums.eLangManager pEventType){
|
||||
if(mLangManager==null){
|
||||
return null;
|
||||
}
|
||||
return mLangManager.onTrigger(pData, pEventType);
|
||||
}
|
||||
|
||||
|
@ -178,8 +185,10 @@ public class pluginController
|
|||
|
||||
/*Message Manager*/
|
||||
public void onMessageManagerInvoke(List<Object> pData, pluginEnums.eMessageManager pEventType){
|
||||
if(mMessageManager!=null){
|
||||
mMessageManager.onTrigger(pData,pEventType);
|
||||
}
|
||||
}
|
||||
|
||||
private class messageCallback implements eventObserver.eventListener{
|
||||
@Override
|
||||
|
@ -187,13 +196,13 @@ public class pluginController
|
|||
{
|
||||
if(pEventType.equals(enums.etype.welcome))
|
||||
{
|
||||
mHomeController.onLoadURL(pData.get(0).toString());
|
||||
((homeController)mHomeController.get()).onLoadURL(pData.get(0).toString());
|
||||
}
|
||||
else if(pEventType.equals(M_DOWNLOAD_SINGLE)){
|
||||
activityContextManager.getInstance().getHomeController().onManualDownloadFileName((String)pData.get(2),(String)pData.get(0));
|
||||
}
|
||||
else if(pEventType.equals(M_SECURE_CONNECTION)){
|
||||
helperMethod.openActivity(settingPrivacyController.class, constants.CONST_LIST_HISTORY, mHomeController,true);
|
||||
helperMethod.openActivity(settingPrivacyController.class, constants.CONST_LIST_HISTORY, mHomeController.get(),true);
|
||||
}
|
||||
else if(pEventType.equals(M_CANCEL_WELCOME)){
|
||||
status.sSettingIsWelcomeEnabled = false;
|
||||
|
@ -202,14 +211,14 @@ public class pluginController
|
|||
else if(pEventType.equals(enums.etype.reload)){
|
||||
if((Boolean) mOrbotManager.onTrigger(null, pluginEnums.eOrbotManager.M_IS_ORBOT_RUNNING))
|
||||
{
|
||||
mHomeController.onReload(null);
|
||||
((homeController)mHomeController.get()).onReload(null);
|
||||
}
|
||||
else {
|
||||
mMessageManager.onTrigger(Arrays.asList(mHomeController, Collections.singletonList(pData.get(0).toString())),M_START_ORBOT);
|
||||
}
|
||||
}
|
||||
else if(pEventType.equals(M_OPEN_PRIVACY)){
|
||||
helperMethod.openActivity(settingPrivacyController.class, constants.CONST_LIST_HISTORY, mHomeController,true);
|
||||
helperMethod.openActivity(settingPrivacyController.class, constants.CONST_LIST_HISTORY, mHomeController.get(),true);
|
||||
}
|
||||
else if(pEventType.equals(M_CLEAR_BOOKMARK)){
|
||||
dataController.getInstance().invokeBookmark(dataEnums.eBookmarkCommands.M_CLEAR_BOOKMARK ,pData);
|
||||
|
@ -227,24 +236,24 @@ public class pluginController
|
|||
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.PROXY_IS_APP_RATED,true));
|
||||
}
|
||||
else if(pEventType.equals(M_DOWNLOAD_FILE)){
|
||||
mHomeController.onDownloadFile();
|
||||
((homeController)mHomeController.get()).onDownloadFile();
|
||||
}
|
||||
else if(pEventType.equals(M_DOWNLOAD_FILE_MANUAL)){
|
||||
mHomeController.onManualDownload(pData.get(0).toString());
|
||||
((homeController)mHomeController.get()).onManualDownload(pData.get(0).toString());
|
||||
}
|
||||
else if(pEventType.equals(M_OPEN_LINK_NEW_TAB)){
|
||||
mHomeController.postNewLinkTabAnimationInBackgroundTrigger(pData.get(0).toString());
|
||||
((homeController)mHomeController.get()).postNewLinkTabAnimationInBackgroundTrigger(pData.get(0).toString());
|
||||
}
|
||||
else if(pEventType.equals(M_OPEN_LINK_CURRENT_TAB)){
|
||||
mHomeController.onLoadURL(pData.get(0).toString());
|
||||
((homeController)mHomeController.get()).onLoadURL(pData.get(0).toString());
|
||||
}
|
||||
else if(pEventType.equals(M_COPY_LINK)){
|
||||
helperMethod.copyURL(pData.get(0).toString(),mContextManager.getHomeController());
|
||||
}
|
||||
else if(pEventType.equals(M_CLEAR_TAB)){
|
||||
dataController.getInstance().invokeTab(dataEnums.eTabCommands.M_CLEAR_TAB, null);
|
||||
mHomeController.initTab(true);
|
||||
mHomeController.onDisableTabViewController();
|
||||
((homeController)mHomeController.get()).initTab(true);
|
||||
((homeController)mHomeController.get()).onDisableTabViewController();
|
||||
}
|
||||
else if(pEventType.equals(M_REQUEST_BRIDGES)){
|
||||
pluginController.getInstance().onMessageManagerInvoke(Arrays.asList(constants.CONST_BACKEND_GOOGLE_URL, this), M_BRIDGE_MAIL);
|
||||
|
|
|
@ -19,7 +19,7 @@ public class pluginEnums
|
|||
|
||||
/*Lanuage Manager*/
|
||||
public enum eLangManager{
|
||||
M_SET_LANGUAGE, M_ACTIVITY_CREATED, M_RESUME, M_SUPPORTED_SYSTEM_LANGUAGE_INFO
|
||||
M_SET_LANGUAGE, M_ACTIVITY_CREATED, M_RESUME, M_SUPPORTED_SYSTEM_LANGUAGE_INFO, M_INIT_LOCALE
|
||||
}
|
||||
|
||||
public enum eLangManagerCallbacks{
|
||||
|
|
|
@ -30,27 +30,14 @@
|
|||
<item android:state_pressed="true">
|
||||
<shape
|
||||
android:shape="rectangle" android:padding="15dp" >
|
||||
<!-- you can use any color you want I used here gray color-->
|
||||
<solid android:color="@color/c_background" />
|
||||
<corners android:radius="4dp"/>
|
||||
<stroke
|
||||
android:width="2.5dp"
|
||||
android:color="@color/c_text_v5" />
|
||||
<corners android:radius="4dp" />
|
||||
</shape>
|
||||
</item>
|
||||
|
||||
<!--<item android:state_pressed="true">
|
||||
<shape
|
||||
android:shape="rectangle" android:padding="15dp" >
|
||||
<solid android:color="@color/c_background" />
|
||||
<corners android:radius="4dp"/>
|
||||
<stroke
|
||||
android:width="2dp"
|
||||
android:color="@color/c_tab_border" />
|
||||
<corners android:radius="4dp" />
|
||||
</shape>
|
||||
</item>-->
|
||||
</item>
|
||||
</selector>
|
||||
</inset>
|
||||
</item>
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 196 KiB |
Binary file not shown.
Before Width: | Height: | Size: 16 KiB |
Binary file not shown.
Before Width: | Height: | Size: 1.8 MiB |
Binary file not shown.
Before Width: | Height: | Size: 231 KiB |
Binary file not shown.
Before Width: | Height: | Size: 864 KiB |
|
@ -42,6 +42,7 @@
|
|||
android:text="Deuche (de)"
|
||||
android:textDirection="locale"
|
||||
android:textAlignment="viewStart"
|
||||
android:textColor="@color/c_text_v6"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/pHeader" />
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">f
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:id="@+id/pAppbar"
|
||||
|
@ -258,6 +258,23 @@
|
|||
app:wrapShiftDrawable="true"
|
||||
tools:progress="0" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/pNewTabBlocker"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:alpha="0"
|
||||
android:background="@color/c_background"
|
||||
android:contentDescription="@string/GENERAL_TODO"
|
||||
android:focusable="false"
|
||||
android:translationZ="15dp"
|
||||
android:visibility="gone"
|
||||
android:elevation="100dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:ignore="MissingConstraints" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</androidx.core.widget.NestedScrollView>
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||
|
|
|
@ -147,41 +147,56 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layoutDirection="ltr"
|
||||
android:paddingTop="9dp"
|
||||
android:paddingBottom="13dp"
|
||||
android:layout_marginEnd="0dp"
|
||||
android:layout_marginStart="5dp"
|
||||
android:background="@xml/gx_ripple_gray"
|
||||
android:onClick="onTracking"
|
||||
android:orientation="vertical">
|
||||
<RadioButton
|
||||
android:id="@+id/pTrackingRadioOption1"
|
||||
android:layoutDirection="rtl"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_marginTop="8dp"
|
||||
android:clickable="false"
|
||||
android:background="@android:color/transparent"
|
||||
android:buttonTint="@color/c_radio_tint"
|
||||
android:textColor="@color/c_text_v1"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:layout_marginStart="15dp"
|
||||
android:paddingStart="10dp"
|
||||
android:paddingEnd="10dp"
|
||||
android:textSize="15sp"
|
||||
android:text="@string/SETTING_PRIVACY_TRACKING_OPTION1"
|
||||
tools:ignore="RtlHardcoded"
|
||||
android:layout_height="wrap_content" />
|
||||
android:orientation="horizontal">
|
||||
<LinearLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:orientation="vertical"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="20dp"
|
||||
android:layoutDirection="ltr"
|
||||
android:layout_marginEnd="42dp"
|
||||
android:layout_marginTop="-2dp"
|
||||
android:paddingEnd="17dp"
|
||||
android:textColor="@color/c_text_v1"
|
||||
android:textSize="15sp"
|
||||
android:text="@string/SETTING_PRIVACY_TRACKING_OPTION1"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="20dp"
|
||||
android:layoutDirection="ltr"
|
||||
android:layout_marginTop="5dp"
|
||||
android:textColor="@color/c_text_v6"
|
||||
android:textSize="13sp"
|
||||
android:text="@string/SETTING_PRIVACY_TRACKING_OPTION1_INFO"
|
||||
/>
|
||||
|
||||
</LinearLayout>
|
||||
<RadioButton
|
||||
android:id="@+id/pTrackingRadioOption1"
|
||||
android:layoutDirection="rtl"
|
||||
android:layout_width="wrap_content"
|
||||
android:clickable="false"
|
||||
android:background="@android:color/transparent"
|
||||
android:buttonTint="@color/c_radio_tint"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:layout_marginStart="15dp"
|
||||
android:paddingStart="10dp"
|
||||
android:paddingEnd="10dp"
|
||||
tools:ignore="RtlHardcoded"
|
||||
android:layout_height="wrap_content" />
|
||||
</LinearLayout>
|
||||
|
||||
<View
|
||||
|
@ -195,40 +210,56 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layoutDirection="ltr"
|
||||
android:paddingTop="9dp"
|
||||
android:paddingBottom="13dp"
|
||||
android:layout_marginEnd="0dp"
|
||||
android:layout_marginStart="5dp"
|
||||
android:background="@xml/gx_ripple_gray"
|
||||
android:onClick="onTracking"
|
||||
android:orientation="vertical">
|
||||
<RadioButton
|
||||
android:id="@+id/pTrackingRadioOption2"
|
||||
android:layoutDirection="rtl"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_marginTop="8dp"
|
||||
android:clickable="false"
|
||||
android:background="@android:color/transparent"
|
||||
android:buttonTint="@color/c_radio_tint"
|
||||
android:textColor="@color/c_text_v1"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:paddingStart="10dp"
|
||||
android:paddingEnd="10dp"
|
||||
android:textSize="15sp"
|
||||
android:text="@string/SETTING_PRIVACY_TRACKING_OPTION2"
|
||||
tools:ignore="RtlHardcoded"
|
||||
android:layout_height="wrap_content" />
|
||||
android:orientation="horizontal">
|
||||
<LinearLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:orientation="vertical"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="20dp"
|
||||
android:layout_marginEnd="42dp"
|
||||
android:layoutDirection="ltr"
|
||||
android:layout_marginTop="-2dp"
|
||||
android:textColor="@color/c_text_v1"
|
||||
android:textSize="15sp"
|
||||
android:text="@string/SETTING_PRIVACY_TRACKING_OPTION2"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="20dp"
|
||||
android:layoutDirection="ltr"
|
||||
android:layout_marginTop="5dp"
|
||||
android:textColor="@color/c_text_v6"
|
||||
android:paddingEnd="16dp"
|
||||
android:textSize="13sp"
|
||||
android:text="@string/SETTING_PRIVACY_TRACKING_OPTION2_INFO"
|
||||
/>
|
||||
|
||||
</LinearLayout>
|
||||
<RadioButton
|
||||
android:id="@+id/pTrackingRadioOption2"
|
||||
android:layoutDirection="rtl"
|
||||
android:layout_width="wrap_content"
|
||||
android:clickable="false"
|
||||
android:background="@android:color/transparent"
|
||||
android:buttonTint="@color/c_radio_tint"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:layout_marginStart="15dp"
|
||||
android:paddingStart="10dp"
|
||||
android:paddingEnd="10dp"
|
||||
tools:ignore="RtlHardcoded"
|
||||
android:layout_height="wrap_content" />
|
||||
</LinearLayout>
|
||||
|
||||
<View
|
||||
|
@ -239,43 +270,59 @@
|
|||
|
||||
<LinearLayout
|
||||
android:id="@+id/pTrackingOption3"
|
||||
android:layoutDirection="ltr"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layoutDirection="ltr"
|
||||
android:paddingTop="9dp"
|
||||
android:paddingBottom="13dp"
|
||||
android:layout_marginEnd="0dp"
|
||||
android:layout_marginStart="5dp"
|
||||
android:background="@xml/gx_ripple_gray"
|
||||
android:onClick="onTracking"
|
||||
android:orientation="vertical">
|
||||
android:orientation="horizontal">
|
||||
<LinearLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:orientation="vertical"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="20dp"
|
||||
android:layoutDirection="ltr"
|
||||
android:layout_marginTop="-2dp"
|
||||
android:textColor="@color/c_text_v1"
|
||||
android:textSize="15sp"
|
||||
android:text="@string/SETTING_PRIVACY_TRACKING_OPTION3"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="20dp"
|
||||
android:layoutDirection="ltr"
|
||||
android:layout_marginTop="5dp"
|
||||
android:textColor="@color/c_text_v6"
|
||||
android:textSize="13sp"
|
||||
android:text="@string/SETTING_PRIVACY_TRACKING_OPTION3_INFO"
|
||||
/>
|
||||
|
||||
</LinearLayout>
|
||||
<RadioButton
|
||||
android:id="@+id/pTrackingRadioOption3"
|
||||
android:layoutDirection="rtl"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_width="wrap_content"
|
||||
android:clickable="false"
|
||||
android:background="@android:color/transparent"
|
||||
android:buttonTint="@color/c_radio_tint"
|
||||
android:textColor="@color/c_text_v1"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:layout_marginStart="15dp"
|
||||
android:paddingStart="10dp"
|
||||
android:paddingEnd="10dp"
|
||||
android:textSize="15sp"
|
||||
android:text="@string/SETTING_PRIVACY_TRACKING_OPTION3"
|
||||
tools:ignore="RtlHardcoded"
|
||||
android:layout_height="wrap_content" />
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="20dp"
|
||||
android:layout_marginEnd="42dp"
|
||||
android:layout_marginTop="-2dp"
|
||||
android:paddingEnd="16dp"
|
||||
android:textSize="13sp"
|
||||
android:textColor="@color/c_text_v6"
|
||||
android:text="@string/SETTING_PRIVACY_TRACKING_OPTION3_INFO"
|
||||
/>
|
||||
</LinearLayout>
|
||||
|
||||
<View
|
||||
|
|
|
@ -7,6 +7,8 @@
|
|||
android:layout_marginTop="-5dp"
|
||||
android:layout_marginStart="0dp"
|
||||
android:clickable="true"
|
||||
android:scaleX="1"
|
||||
android:scaleY="1"
|
||||
android:background="@color/clear_alpha"
|
||||
android:focusable="true"
|
||||
android:orientation="horizontal"
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:background="@color/c_background"
|
||||
android:clickable="true"
|
||||
android:elevation="8dp"
|
||||
android:elevation="4dp"
|
||||
android:focusable="true"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
|
@ -26,7 +26,8 @@
|
|||
<LinearLayout
|
||||
android:id="@+id/pHeaderContainerTop"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="65dp"
|
||||
android:paddingTop="5dp"
|
||||
android:layout_height="60dp"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
android:orientation="horizontal"
|
||||
|
@ -148,11 +149,11 @@
|
|||
android:layout_height="match_parent"
|
||||
android:layout_gravity="fill_vertical"
|
||||
android:layout_marginTop="60dp"
|
||||
android:paddingEnd="5dp"
|
||||
android:paddingStart="5dp"
|
||||
android:paddingTop="10dp"
|
||||
android:background="@color/c_background"
|
||||
android:fillViewport="true"
|
||||
android:paddingStart="5dp"
|
||||
android:paddingTop="0dp"
|
||||
android:paddingEnd="5dp"
|
||||
android:translationZ="2dp"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
|
@ -167,10 +168,10 @@
|
|||
android:clickable="true"
|
||||
android:clipToPadding="false"
|
||||
android:elevation="8dp"
|
||||
android:paddingTop="5dp"
|
||||
android:focusable="true"
|
||||
android:onClick="onClearSelection"
|
||||
android:orientation="vertical"
|
||||
android:paddingTop="0dp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
@ -192,8 +193,10 @@
|
|||
android:id="@+id/pRecycleView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:alpha="0"
|
||||
android:background="@color/c_background"
|
||||
android:clickable="true"
|
||||
android:paddingTop="10dp"
|
||||
android:clipToPadding="false"
|
||||
android:focusable="true"
|
||||
android:onClick="onClearSelection"
|
||||
|
|
|
@ -451,12 +451,16 @@ public class OrbotService extends VpnService implements TorServiceConstants, Orb
|
|||
}
|
||||
|
||||
protected void logNotice(String msg) {
|
||||
try{
|
||||
if (msg != null && msg.trim().length() > 0) {
|
||||
if (Prefs.useDebugLogging())
|
||||
Log.d(OrbotConstants.TAG, msg);
|
||||
|
||||
sendCallbackLogMessage(msg);
|
||||
}
|
||||
}catch (Exception ignored){
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
Loading…
Reference in New Issue