mirror of https://github.com/LeOS-GSI/LeOS-Genesis
parent
f86075c43b
commit
e77e1bfbf3
|
@ -83,7 +83,6 @@ dependencies {
|
|||
implementation 'androidx.recyclerview:recyclerview:1.2.0'
|
||||
implementation 'androidx.cardview:cardview:1.0.0'
|
||||
implementation 'androidx.coordinatorlayout:coordinatorlayout:1.1.0'
|
||||
implementation 'com.google.firebase:firebase-messaging:21.1.0'
|
||||
implementation 'com.android.support:support-core-utils:28.0.0'
|
||||
|
||||
/* Default Libraries */
|
||||
|
@ -101,7 +100,7 @@ dependencies {
|
|||
|
||||
implementation "org.mozilla.components:browser-engine-gecko:73.0.8"
|
||||
implementation "org.mozilla.components:browser-icons:73.0.9"
|
||||
implementation "org.mozilla.geckoview:geckoview:89.0.20210524222230"
|
||||
implementation "org.mozilla.geckoview:geckoview:89.0.20210622155641"
|
||||
implementation "org.mozilla.components:concept-fetch:73.0.9"
|
||||
implementation "org.mozilla.components:concept-base:73.0.9"
|
||||
implementation "org.mozilla.components:support-utils:73.0.9"
|
||||
|
@ -112,7 +111,7 @@ dependencies {
|
|||
|
||||
/* Ads Manager */
|
||||
|
||||
implementation 'com.google.android.gms:play-services-ads:20.0.0'
|
||||
implementation 'com.google.android.gms:play-services-ads:20.1.0'
|
||||
|
||||
/* Orbot Service */
|
||||
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
android:allowBackup="true"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
|
||||
android:extractNativeLibs="true"
|
||||
android:largeHeap = "false"
|
||||
android:fullBackupContent="false"
|
||||
android:icon="@mipmap/ic_launcher_genesis"
|
||||
android:label="@string/app_name"
|
||||
|
@ -49,6 +50,7 @@
|
|||
android:name="com.darkweb.genesissearchengine.appManager.settingManager.settingHomeManager.settingHomeController"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||
android:label="@string/SETTING_HEADER"
|
||||
android:exported="true"
|
||||
android:launchMode="singleTop"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
<activity
|
||||
|
@ -220,6 +222,15 @@
|
|||
<action android:name="Download_Cancelled" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<receiver
|
||||
android:name="org.torproject.android.service.StartTorReceiver"
|
||||
android:exported="true"
|
||||
tools:ignore="ExportedReceiver">
|
||||
<intent-filter>
|
||||
<action android:name="org.torproject.android.intent.action.START" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
<!--
|
||||
Permissions File Provider Live
|
||||
<provider
|
||||
|
|
|
@ -19,12 +19,14 @@ import com.darkweb.genesissearchengine.dataManager.models.bookmarkRowModel;
|
|||
import com.darkweb.genesissearchengine.eventObserver;
|
||||
import com.darkweb.genesissearchengine.helperManager.helperMethod;
|
||||
import com.example.myapplication.R;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import systems.intelligo.slight.ImageLoader;
|
||||
|
||||
import static android.content.Context.LAYOUT_INFLATER_SERVICE;
|
||||
|
||||
public class bookmarkAdapter extends RecyclerView.Adapter<bookmarkAdapter.listViewHolder>
|
||||
|
@ -40,7 +42,6 @@ public class bookmarkAdapter extends RecyclerView.Adapter<bookmarkAdapter.listVi
|
|||
private ArrayList<String> mLongSelectedIndex = new ArrayList<>();
|
||||
private ArrayList<Integer> mLongSelectedID = new ArrayList<>();
|
||||
|
||||
private ImageLoader imageLoader;
|
||||
private AppCompatActivity mContext;
|
||||
private bookmarkAdapterView mHistroyAdapterView;
|
||||
private Context mListHolderContext;
|
||||
|
@ -60,7 +61,6 @@ public class bookmarkAdapter extends RecyclerView.Adapter<bookmarkAdapter.listVi
|
|||
this.mPassedList = pModelList;
|
||||
this.mContext = pMainContext;
|
||||
this.mHistroyAdapterView = new bookmarkAdapterView(mContext);
|
||||
this.imageLoader = new ImageLoader(mContext);
|
||||
|
||||
initializeModelWithDate(false);
|
||||
}
|
||||
|
@ -383,7 +383,7 @@ public class bookmarkAdapter extends RecyclerView.Adapter<bookmarkAdapter.listVi
|
|||
TextView mDate;
|
||||
TextView mWebLogo;
|
||||
ImageButton mRowMenu;
|
||||
ImageView mLogoImage;
|
||||
ImageView mSelectionImage;
|
||||
ImageView mFaviconLogo;
|
||||
LinearLayout mRowContainer;
|
||||
LinearLayout mDateContainer;
|
||||
|
@ -402,7 +402,7 @@ public class bookmarkAdapter extends RecyclerView.Adapter<bookmarkAdapter.listVi
|
|||
mRowContainer = itemView.findViewById(R.id.pRowContainer);
|
||||
mRowMenu = itemView.findViewById(R.id.pRowMenu);
|
||||
mDate = itemView.findViewById(R.id.pDate);
|
||||
mLogoImage = itemView.findViewById(R.id.pLogoImage);
|
||||
mSelectionImage = itemView.findViewById(R.id.pLogoImage);
|
||||
mWebLogo = itemView.findViewById(R.id.pWebLogo);
|
||||
mLoadingContainer = itemView.findViewById(R.id.pLoadingContainer);
|
||||
mFaviconLogo = itemView.findViewById(R.id.pFaviconLogo);
|
||||
|
@ -452,36 +452,11 @@ public class bookmarkAdapter extends RecyclerView.Adapter<bookmarkAdapter.listVi
|
|||
if(model.getDescription().contains("genesishiddentechnologies.com") || model.getDescription().contains("genesis.onion")){
|
||||
mFaviconLogo.setImageDrawable(itemView.getResources().getDrawable(R.drawable.genesis));
|
||||
}else{
|
||||
new Thread(){
|
||||
public void run(){
|
||||
try {
|
||||
mHindTypeIconTemp.setImageDrawable(null);
|
||||
mEvent.invokeObserver(Arrays.asList(mHindTypeIconTemp, "http://" + helperMethod.getDomainName(model.getDescription())), enums.etype.fetch_favicon);
|
||||
while (true){
|
||||
int mCounter=0;
|
||||
if(mHindTypeIconTemp.isAttachedToWindow() || mHindTypeIconTemp.getDrawable()==null){
|
||||
sleep(50);
|
||||
mCounter+=1;
|
||||
}else {
|
||||
break;
|
||||
}
|
||||
if(mCounter>6){
|
||||
break;
|
||||
}
|
||||
}
|
||||
mContext.runOnUiThread(() -> {
|
||||
Bitmap mBitmap = helperMethod.drawableToBitmap(mHindTypeIconTemp.getDrawable());
|
||||
mFaviconLogo.setImageBitmap(mBitmap);
|
||||
});
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}.start();
|
||||
mEvent.invokeObserver(Arrays.asList(mFaviconLogo, "http://" + helperMethod.getDomainName(model.getDescription())), enums.etype.fetch_favicon);
|
||||
}
|
||||
|
||||
mRowMenu.setOnClickListener(this::onClick);
|
||||
setItemViewOnClickListener(mRowContainer, mRowMenu, mDescription.getText().toString(), p_position, header, mRowMenu, mLogoImage, model.getID(), model.getDate());
|
||||
setItemViewOnClickListener(mRowContainer, mRowMenu, mDescription.getText().toString(), p_position, header, mRowMenu, mSelectionImage, model.getID(), model.getDate());
|
||||
}
|
||||
|
||||
if(mLongSelectedID.size()>0){
|
||||
|
@ -493,9 +468,9 @@ public class bookmarkAdapter extends RecyclerView.Adapter<bookmarkAdapter.listVi
|
|||
}
|
||||
|
||||
if(mLongSelectedIndex.contains("https://" + model.getDescription()) && mLongSelectedID.contains(model.getID())){
|
||||
mPopupWindow = (PopupWindow) mHistroyAdapterView.onTrigger(bookmarkEnums.eBookmarkViewAdapterCommands.M_SELECT_VIEW, Arrays.asList(mRowContainer, mRowMenu, mLogoImage, true, false));
|
||||
}else if(mLogoImage.getAlpha()>0){
|
||||
mPopupWindow = (PopupWindow) mHistroyAdapterView.onTrigger(bookmarkEnums.eBookmarkViewAdapterCommands.M_CLEAR_HIGHLIGHT, Arrays.asList(mRowContainer, mRowMenu, mLogoImage, true, false));
|
||||
mPopupWindow = (PopupWindow) mHistroyAdapterView.onTrigger(bookmarkEnums.eBookmarkViewAdapterCommands.M_SELECT_VIEW, Arrays.asList(mRowContainer, mRowMenu, mSelectionImage, true, false));
|
||||
}else if(mSelectionImage.getAlpha()>0){
|
||||
mPopupWindow = (PopupWindow) mHistroyAdapterView.onTrigger(bookmarkEnums.eBookmarkViewAdapterCommands.M_CLEAR_HIGHLIGHT, Arrays.asList(mRowContainer, mRowMenu, mSelectionImage, true, false));
|
||||
}
|
||||
|
||||
mBookmarkEdit.setOnClickListener(this::onClick);
|
||||
|
|
|
@ -3,6 +3,8 @@ package com.darkweb.genesissearchengine.appManager.externalCommandManager;
|
|||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
||||
import com.darkweb.genesissearchengine.appManager.homeManager.homeController.homeController;
|
||||
|
@ -18,7 +20,9 @@ public class externalURLNavigationContoller extends AppCompatActivity {
|
|||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
Uri data = externalURLNavigationContoller.this.getIntent().getData();
|
||||
if(data == null || status.sSettingIsAppStarted){
|
||||
boolean mConnect = false;
|
||||
|
||||
if(activityContextManager.getInstance().getHomeController()!=null && (data == null || status.sSettingIsAppStarted)){
|
||||
|
||||
/* Close Activity */
|
||||
|
||||
|
@ -39,6 +43,7 @@ public class externalURLNavigationContoller extends AppCompatActivity {
|
|||
bringToForegroundIntent.setFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
startActivity(bringToForegroundIntent);
|
||||
overridePendingTransition(R.anim.fade_in_instant, R.anim.fade_out_instant);
|
||||
mConnect = true;
|
||||
}
|
||||
else if(status.sSettingIsAppRunning){
|
||||
|
||||
|
@ -66,6 +71,7 @@ public class externalURLNavigationContoller extends AppCompatActivity {
|
|||
Intent launchIntent = getPackageManager().getLaunchIntentForPackage(CONST_PACKAGE_NAME);
|
||||
startActivity(launchIntent);
|
||||
overridePendingTransition(R.anim.fade_in_instant, R.anim.fade_out_instant);
|
||||
mConnect = true;
|
||||
|
||||
/* Close Activity */
|
||||
|
||||
|
@ -74,5 +80,8 @@ public class externalURLNavigationContoller extends AppCompatActivity {
|
|||
return null;
|
||||
});
|
||||
}
|
||||
if(mConnect){
|
||||
new Handler().postDelayed(() -> activityContextManager.getInstance().getHomeController().onStartApplication(null), 3000);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -529,48 +529,7 @@ public class historyAdapter extends RecyclerView.Adapter<historyAdapter.listView
|
|||
mFaviconLogo.setImageDrawable(mWebIcon.get(model.getDescription()));
|
||||
}
|
||||
else{
|
||||
new Thread(){
|
||||
public void run(){
|
||||
try {
|
||||
mHindTypeIconTemp.setImageDrawable(null);
|
||||
mEvent.invokeObserver(Arrays.asList(mHindTypeIconTemp, "https://" + helperMethod.getDomainName(model.getDescription())), enums.etype.fetch_favicon);
|
||||
while (true){
|
||||
int mCounter=0;
|
||||
if(mHindTypeIconTemp.isAttachedToWindow() || mHindTypeIconTemp.getDrawable()==null){
|
||||
sleep(10);
|
||||
mCounter+=1;
|
||||
}else {
|
||||
Log.i("BREAK","");
|
||||
break;
|
||||
}
|
||||
if(mCounter>6){
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
mContext.runOnUiThread(() -> {
|
||||
mFaviconLogo.setColorFilter(null);
|
||||
mFaviconLogo.clearColorFilter();
|
||||
mFaviconLogo.setImageTintList(null);
|
||||
mFaviconLogo.setClipToOutline(true);
|
||||
mWebIcon.put(model.getDescription(),mHindTypeIconTemp.getDrawable());
|
||||
if(mHindTypeIconTemp.getDrawable() != null){
|
||||
mFaviconLogo.setImageDrawable(mHindTypeIconTemp.getDrawable());
|
||||
}else {
|
||||
Resources res = itemView.getContext().getResources();
|
||||
try {
|
||||
mFaviconLogo.setImageDrawable(Drawable.createFromXml(res, res.getXml(R.xml.ic_baseline_browser)));
|
||||
} catch (Exception ignored) {
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}.start();
|
||||
mEvent.invokeObserver(Arrays.asList(mFaviconLogo, "https://" + helperMethod.getDomainName(model.getDescription())), enums.etype.fetch_favicon);
|
||||
}
|
||||
|
||||
setItemViewOnClickListener(mRowContainer, mRowMenu, mDescription.getText().toString(), p_position, header, mRowMenu, mLogoImage, model.getID(), model.getDate());
|
||||
|
|
|
@ -420,12 +420,10 @@ geckoSession extends GeckoSession implements GeckoSession.MediaDelegate,GeckoSes
|
|||
|
||||
@UiThread
|
||||
public void onSessionStateChange(@NonNull GeckoSession session, @NonNull SessionState sessionState) {
|
||||
try{
|
||||
event.invokeObserver(Arrays.asList(mCurrentURL,mSessionID,mCurrentTitle, m_current_url_id, mTheme, sessionState.toString()), enums.etype.M_UPDATE_SESSION_STATE);
|
||||
mSessionState = sessionState;
|
||||
// if(!status.sRestoreTabs){
|
||||
// mSessionState = null;
|
||||
// }
|
||||
// if(mSessionState!=null)
|
||||
event.invokeObserver(Arrays.asList(mCurrentURL,mSessionID,mCurrentTitle, m_current_url_id, mTheme, mSessionState.toString()), enums.etype.M_UPDATE_SESSION_STATE);
|
||||
}catch (Exception ignored){}
|
||||
}
|
||||
|
||||
public boolean onRestoreState(){
|
||||
|
@ -764,8 +762,8 @@ geckoSession extends GeckoSession implements GeckoSession.MediaDelegate,GeckoSes
|
|||
if(var4.title!=null){
|
||||
title = var4.title;
|
||||
}
|
||||
if(var4.type!=0){
|
||||
if(var4.linkUri!=null){
|
||||
if(var4.type!=0 && var4.srcUri!=null){
|
||||
if(1!=1 && var4.linkUri!=null){
|
||||
event.invokeObserver(Arrays.asList(var4.linkUri,mSessionID,var4.srcUri,title, mTheme, mContext.get()), M_LONG_PRESS_WITH_LINK);
|
||||
}
|
||||
else {
|
||||
|
@ -777,7 +775,7 @@ geckoSession extends GeckoSession implements GeckoSession.MediaDelegate,GeckoSes
|
|||
}
|
||||
}
|
||||
}
|
||||
else{
|
||||
else if(var4.linkUri!=null){
|
||||
event.invokeObserver(Arrays.asList(var4.linkUri,mSessionID,title, mTheme, mContext.get()), M_LONG_PRESS_URL);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -33,6 +33,8 @@ import java.util.HashMap;
|
|||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static java.lang.Thread.sleep;
|
||||
|
||||
public class hintAdapter extends RecyclerView.Adapter<hintAdapter.listViewHolder>
|
||||
{
|
||||
/*Private Variables*/
|
||||
|
@ -192,16 +194,11 @@ public class hintAdapter extends RecyclerView.Adapter<hintAdapter.listViewHolder
|
|||
mPastWebIcon.put(getLayoutPosition(),mHintWebIcon.getDrawable());
|
||||
}else
|
||||
{
|
||||
new Thread(){
|
||||
|
||||
public void run(){
|
||||
try {
|
||||
String mURLPast = mURLLink;
|
||||
mPastIconFlicker.put(getLayoutPosition(),mURLPast);
|
||||
|
||||
mHindTypeIconTemp.setImageDrawable(null);
|
||||
mEvent.invokeObserver(Arrays.asList(mHindTypeIconTemp, "https://" + helperMethod.getDomainName(model.getDescription())), enums.etype.fetch_favicon);
|
||||
sleep(200);
|
||||
|
||||
mContext.runOnUiThread(() -> new Handler().postDelayed(() ->
|
||||
{
|
||||
|
@ -215,13 +212,7 @@ public class hintAdapter extends RecyclerView.Adapter<hintAdapter.listViewHolder
|
|||
Log.i("FUSSSS1111","FUSSSS4444");
|
||||
}
|
||||
}
|
||||
}, 200));
|
||||
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}.start();
|
||||
}, 300));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -633,7 +633,6 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
//}
|
||||
dataController.getInstance().invokeTab(dataEnums.eTabCommands.M_UPDATE_PIXEL, Arrays.asList(mGeckoClient.getSession().getSessionID(), mRenderedBitmap, null, mGeckoView, false));
|
||||
|
||||
|
||||
TouchView(mGeckoView);
|
||||
TouchView(mNestedScroll);
|
||||
|
||||
|
@ -747,6 +746,8 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
@SuppressLint("ClickableViewAccessibility")
|
||||
private void initializeLocalEventHandlers() {
|
||||
|
||||
|
||||
mSearchbar.setMovementMethod(null);
|
||||
startService(new Intent(getBaseContext(), activityStateManager.class));
|
||||
|
||||
registerReceiver(downloadStatus,new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE));
|
||||
|
@ -1012,7 +1013,6 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
}
|
||||
|
||||
public void onLoadRecentTab(View view){
|
||||
mHomeViewController.onHideLoadTabDialog();
|
||||
tabRowModel model = (tabRowModel)dataController.getInstance().invokeTab(dataEnums.eTabCommands.GET_RECENT_TAB, null);
|
||||
if(model!=null && !mGeckoClient.getSession().getSessionID().equals(model.getSession().getSessionID())){
|
||||
mHomeViewController.onUpdateSearchBar(model.getSession().getCurrentURL(),false,false,true);
|
||||
|
@ -1069,26 +1069,29 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
if(!url.startsWith("data") && !url.startsWith("blob") && (mExtention == null || mExtention.equals("text/html") || mExtention.equals("application/vnd.ms-htmlhelp") || mExtention.equals("application/vnd.sun.xml.writer") || mExtention.equals("application/vnd.sun.xml.writer.global") || mExtention.equals("application/vnd.sun.xml.writer.template") || mExtention.equals("application/xhtml+xml"))){
|
||||
initTabCount(M_NEW_LINK_IN_NEW_TAB, Collections.singletonList(url));
|
||||
}else {
|
||||
postNewLinkTabAnimation(url, true);
|
||||
//postNewLinkTabAnimation(url, true);
|
||||
}
|
||||
}
|
||||
|
||||
public void postNewLinkTabAnimationInBackground(String url){
|
||||
mAppBar.setTag(R.id.expandableBar,false);
|
||||
geckoSession mSession = mGeckoClient.getSession();
|
||||
dataController.getInstance().invokeTab(dataEnums.eTabCommands.M_UPDATE_PIXEL, Arrays.asList(mGeckoClient.getSession().getSessionID(), mRenderedBitmap, null, mGeckoView,false));
|
||||
|
||||
geckoSession mSession = mGeckoClient.getSession();
|
||||
mGeckoClient.initialize(mGeckoView, new geckoViewCallback(), this,true);
|
||||
geckoSession mNewSession = mGeckoClient.getSession();
|
||||
|
||||
mGeckoClient.initURL(url);
|
||||
mGeckoClient.loadURL(url, mGeckoView, homeController.this);
|
||||
mGeckoClient.getSession().setURL(url);
|
||||
onSaveCurrentTab(mGeckoClient.getSession(),false);
|
||||
onLoadTab(mSession,false,false, false);
|
||||
mHomeViewController.progressBarReset();
|
||||
|
||||
|
||||
mAppBar.setTag(R.id.expandableBar,true);
|
||||
initTabCountForced();
|
||||
mHomeViewController.onUpdateSearchBar(mSession.getCurrentURL(),false,true, false);
|
||||
mNewSession.loadUri(url);
|
||||
|
||||
mAppBar.setTag(R.id.expandableBar,true);
|
||||
}
|
||||
|
||||
public void onNewTab(boolean isKeyboardOpenedTemp, boolean isKeyboardOpened){
|
||||
|
@ -1401,6 +1404,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
|
||||
if(status.sSettingIsAppStarted){
|
||||
mHomeViewController.onClearSelections(isKeyboardOpened);
|
||||
pluginController.getInstance().onMessageManagerInvoke(null, M_RESET);
|
||||
}
|
||||
|
||||
if(mAppBar!=null){
|
||||
|
@ -1964,8 +1968,8 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
}
|
||||
else if(e_type.equals(enums.etype.M_NEW_LINK_IN_NEW_TAB))
|
||||
{
|
||||
pluginController.getInstance().onMessageManagerInvoke(Collections.singletonList(homeController.this), M_LOAD_NEW_TAB);
|
||||
postNewLinkTabAnimationInBackground(dataToStr(data.get(0)));
|
||||
mHomeViewController.onShowLoadTabDialog();
|
||||
}
|
||||
else if(e_type.equals(enums.etype.M_RESET_SUGGESTION))
|
||||
{
|
||||
|
@ -2034,7 +2038,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
mHomeViewController.closeMenu();
|
||||
mHomeViewController.onUpdateSearchBar(mGeckoClient.getSession().getCurrentURL(),false,true, true);
|
||||
mSearchbar.clearFocus();
|
||||
pluginController.getInstance().onMessageManagerInvoke(Arrays.asList(strings.GENERIC_EMPTY_STR, homeController.this), M_WELCOME);
|
||||
// pluginController.getInstance().onMessageManagerInvoke(Arrays.asList(strings.GENERIC_EMPTY_STR, homeController.this), M_WELCOME);
|
||||
status.sUIInteracted = true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -274,33 +274,7 @@ class homeViewController
|
|||
}
|
||||
}
|
||||
|
||||
public void onShowLoadTabDialog() {
|
||||
mPopupLoadNewTab.findViewById(R.id.pBlockerUndo).setVisibility(View.GONE);
|
||||
mPopupLoadNewTab.animate().cancel();
|
||||
mPopupLoadNewTab.setAlpha(0);
|
||||
mPopupLoadNewTab.setVisibility(View.VISIBLE);
|
||||
mPopupLoadNewTab.animate().setStartDelay(400).setDuration(250).alpha(1);
|
||||
|
||||
if(mTabDialogHandler!=null){
|
||||
mTabDialogHandler.removeCallbacksAndMessages(null);
|
||||
}
|
||||
|
||||
mTabDialogHandler = new Handler();
|
||||
mTabDialogRunnable = this::onHideLoadTabDialog;
|
||||
mTabDialogHandler.postDelayed(mTabDialogRunnable, 3500);
|
||||
}
|
||||
|
||||
public void onHideLoadTabDialog() {
|
||||
mPopupLoadNewTab.findViewById(R.id.pBlockerUndo).setVisibility(View.VISIBLE);
|
||||
mPopupLoadNewTab.animate().cancel();
|
||||
|
||||
mPopupLoadNewTab.animate().setDuration(250).alpha(0).withEndAction(() -> {
|
||||
mPopupLoadNewTab.setVisibility(View.GONE);
|
||||
});
|
||||
}
|
||||
|
||||
public void onShowTabContainer(){
|
||||
onHideLoadTabDialog();
|
||||
if(mTabFragment.getAlpha()==0 || mTabFragment.getAlpha()==1){
|
||||
|
||||
onUpdateStatusBarTheme(null, false);
|
||||
|
@ -312,7 +286,6 @@ class homeViewController
|
|||
}
|
||||
|
||||
public void onHideTabContainer(){
|
||||
onHideLoadTabDialog();
|
||||
if(mTabFragment.getAlpha()>0 || mTabFragment.getVisibility()!=View.GONE){
|
||||
mNewTab.setPressed(false);
|
||||
new Handler().postDelayed(() ->
|
||||
|
@ -386,11 +359,11 @@ class homeViewController
|
|||
mSearchbar.setMovementMethod(null);
|
||||
|
||||
if(status.sSettingLanguageRegion.equals("Ur")){
|
||||
mSearchbar.setPadding(helperMethod.pxFromDp(17),0,mSearchbar.getPaddingRight(),0);
|
||||
mSearchbar.setPadding(helperMethod.pxFromDp(17),0,mSearchbar.getPaddingRight(),3);
|
||||
ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) mSearchbar.getLayoutParams();
|
||||
params.leftMargin = helperMethod.pxFromDp(5);
|
||||
}else {
|
||||
mSearchbar.setPadding(mSearchbar.getPaddingLeft(),0,helperMethod.pxFromDp(5),0);
|
||||
mSearchbar.setPadding(mSearchbar.getPaddingLeft(),0,helperMethod.pxFromDp(5),3);
|
||||
ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) mSearchbar.getLayoutParams();
|
||||
params.rightMargin = helperMethod.pxFromDp(5);
|
||||
}
|
||||
|
@ -432,11 +405,11 @@ class homeViewController
|
|||
this.mMenu.setVisibility(View.GONE);
|
||||
|
||||
if(status.sSettingLanguageRegion.equals("Ur")){
|
||||
mSearchbar.setPadding(helperMethod.pxFromDp(45),0,mSearchbar.getPaddingRight(),0);
|
||||
mSearchbar.setPadding(helperMethod.pxFromDp(45),0,mSearchbar.getPaddingRight(),3);
|
||||
ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) mSearchbar.getLayoutParams();
|
||||
params.leftMargin = helperMethod.pxFromDp(17);
|
||||
}else {
|
||||
mSearchbar.setPadding(mSearchbar.getPaddingLeft(),0,helperMethod.pxFromDp(45),0);
|
||||
mSearchbar.setPadding(mSearchbar.getPaddingLeft(),0,helperMethod.pxFromDp(45),3);
|
||||
ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) mSearchbar.getLayoutParams();
|
||||
params.rightMargin = helperMethod.pxFromDp(17);
|
||||
}
|
||||
|
@ -595,8 +568,8 @@ class homeViewController
|
|||
initSplashLoading();
|
||||
});
|
||||
mGatewaySplash.animate().setDuration(350).alpha(0.4f);
|
||||
mPanicButtonLandscape.animate().setDuration(200).translationXBy(helperMethod.pxFromDp(50));
|
||||
mPanicButton.animate().setDuration(200).translationXBy(helperMethod.pxFromDp(50));
|
||||
mPanicButtonLandscape.animate().setDuration(170).translationXBy(helperMethod.pxFromDp(55));
|
||||
mPanicButton.animate().setDuration(170).translationXBy(helperMethod.pxFromDp(55));
|
||||
}
|
||||
|
||||
private void initSplashScreen(){
|
||||
|
@ -625,6 +598,8 @@ class homeViewController
|
|||
new Thread(){
|
||||
public void run(){
|
||||
AppCompatActivity temp_context = mContext;
|
||||
int mCounter = 0;
|
||||
int mCounterInternet = 0;
|
||||
while (!orbotLocalConstants.mIsTorInitialized || !orbotLocalConstants.mNetworkState){
|
||||
try
|
||||
{
|
||||
|
@ -639,10 +614,20 @@ class homeViewController
|
|||
}else{
|
||||
orbotLocalConstants.mTorLogsStatus = "No internet connection";
|
||||
startPostTask(messages.MESSAGE_UPDATE_LOADING_TEXT);
|
||||
if(mCounterInternet>10){
|
||||
// break;
|
||||
}else {
|
||||
mCounterInternet += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sleep(500);
|
||||
if(mCounter>20){
|
||||
break;
|
||||
}else {
|
||||
mCounter+=1;
|
||||
}
|
||||
if(mFastConnect){
|
||||
continue;
|
||||
}
|
||||
|
@ -1303,9 +1288,7 @@ class homeViewController
|
|||
mGeckoView.setPivotY(0);
|
||||
|
||||
ObjectAnimator scaleDown = ObjectAnimator.ofPropertyValuesHolder(mGeckoView,
|
||||
PropertyValuesHolder.ofFloat("scaleX", 1, 0.8f),
|
||||
PropertyValuesHolder.ofFloat("scaleY", 1, 0.8f));
|
||||
|
||||
PropertyValuesHolder.ofFloat("translationX", 0, helperMethod.pxFromDp(-50)));
|
||||
mNewTabBlocker.setVisibility(View.VISIBLE);
|
||||
ObjectAnimator alpha = ObjectAnimator.ofPropertyValuesHolder(mNewTabBlocker,
|
||||
PropertyValuesHolder.ofFloat("alpha", 0, 1f));
|
||||
|
@ -1325,8 +1308,7 @@ class homeViewController
|
|||
public void onAnimationEnd(Animator animation, boolean isReverse) {
|
||||
mEvent.invokeObserver(data, e_type);
|
||||
ObjectAnimator scaleDown = ObjectAnimator.ofPropertyValuesHolder(mGeckoView,
|
||||
PropertyValuesHolder.ofFloat("scaleX", 0.8f, 1f),
|
||||
PropertyValuesHolder.ofFloat("scaleY", 0.8f, 1f));
|
||||
PropertyValuesHolder.ofFloat("translationX", 0, 0));
|
||||
|
||||
scaleDown.setDuration(150);
|
||||
scaleDown.setStartDelay(0);
|
||||
|
|
|
@ -151,8 +151,10 @@ public class settingGeneralController extends AppCompatActivity {
|
|||
|
||||
new Handler().postDelayed(() ->
|
||||
{
|
||||
if(activityContextManager.getInstance().getHomeController() != null){
|
||||
activityContextManager.getInstance().getHomeController().onReInitTheme();
|
||||
activityContextManager.getInstance().getSettingController().onReInitTheme();
|
||||
}
|
||||
}, 100);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -119,8 +119,10 @@ public class settingPrivacyController extends AppCompatActivity {
|
|||
public void onBackPressed() {
|
||||
if(mSettingChanged){
|
||||
activityContextManager.getInstance().setCurrentActivity(this);
|
||||
if(activityContextManager.getInstance().getHomeController()!=null){
|
||||
activityContextManager.getInstance().getHomeController().initRuntimeSettings();
|
||||
}
|
||||
}
|
||||
finish();
|
||||
}
|
||||
|
||||
|
|
|
@ -204,11 +204,13 @@ public class tabAdapter extends RecyclerView.Adapter<tabAdapter.listViewHolder>
|
|||
mModelList.remove(0);
|
||||
mEvent.invokeObserver(Arrays.asList(0, false), tabEnums.eTabAdapterCallback.ON_REMOVE_TAB_VIEW_RETAIN_BACKUP);
|
||||
}
|
||||
mEvent.invokeObserver(Arrays.asList(0, true), tabEnums.eTabAdapterCallback.ON_SHOW_UNDO_POPUP);
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
}
|
||||
|
||||
private void onClearAllSelection(){
|
||||
mLongPressMenuEnabled = false;
|
||||
mEvent.invokeObserver(Arrays.asList(false, mSelectedList.size()), tabEnums.eTabAdapterCallback.ON_SHOW_SELECTION_MENU);
|
||||
|
||||
for(int mCounter=0;mCounter<mSelectedList.size();mCounter++){
|
||||
|
@ -246,9 +248,10 @@ public class tabAdapter extends RecyclerView.Adapter<tabAdapter.listViewHolder>
|
|||
|
||||
private void onSelectionClear(FrameLayout mSelectedView){
|
||||
mSelectedView.animate().alpha(0).withEndAction(() -> mSelectedView.setVisibility(View.GONE));
|
||||
if(mSelectedList.size()==0){
|
||||
mEvent.invokeObserver(null, tabEnums.eTabAdapterCallback.ON_HIDE_SELECTION);
|
||||
}
|
||||
//if(mSelectedList.size()==0){
|
||||
// mEvent.invokeObserver(null, tabEnums.eTabAdapterCallback.ON_HIDE_SELECTION);
|
||||
// mLongPressMenuEnabled = false;
|
||||
//}
|
||||
}
|
||||
|
||||
private void onTriggerURL(tabRowModel model){
|
||||
|
@ -270,13 +273,14 @@ public class tabAdapter extends RecyclerView.Adapter<tabAdapter.listViewHolder>
|
|||
break;
|
||||
}
|
||||
}
|
||||
if(mSelectedList.size()<=0){
|
||||
mEvent.invokeObserver(Arrays.asList(true, mSelectedList.size()), tabEnums.eTabAdapterCallback.ON_HIDE_SELECTION);
|
||||
onClearAllSelection();
|
||||
}
|
||||
|
||||
mModelList.remove(mIndex);
|
||||
if(mModelList.size()!=1){
|
||||
notifyItemRemoved(mIndex);
|
||||
notifyItemChanged(mModelList.size()-1);
|
||||
notifyItemRangeChanged(mIndex, mModelList.size());
|
||||
}
|
||||
|
||||
mEvent.invokeObserver(Collections.singletonList(mIndex), tabEnums.eTabAdapterCallback.M_CLEAR_BACKUP);
|
||||
mEvent.invokeObserver(Collections.singletonList(mIndex), tabEnums.eTabAdapterCallback.ON_REMOVE_TAB_VIEW);
|
||||
|
@ -380,7 +384,7 @@ public class tabAdapter extends RecyclerView.Adapter<tabAdapter.listViewHolder>
|
|||
|
||||
mDate.setText(model.getDate());
|
||||
|
||||
if(mURL.equals("about:blank")){
|
||||
if(model.getSession().getTitle().equals("about:blank")){
|
||||
mWebThumbnail.setAlpha(0f);
|
||||
}else {
|
||||
new Handler().postDelayed(() ->
|
||||
|
@ -460,16 +464,13 @@ public class tabAdapter extends RecyclerView.Adapter<tabAdapter.listViewHolder>
|
|||
if(this.getLayoutPosition()==mModelList.size()-1){
|
||||
if(mSelectedList.size()>0){
|
||||
itemView.setVisibility(View.GONE);
|
||||
mLongPressMenuEnabled = true;
|
||||
}else {
|
||||
itemView.setVisibility(View.VISIBLE);
|
||||
mLongPressMenuEnabled = false;
|
||||
mItemSelectionMenuButton.animate().cancel();
|
||||
mItemSelectionMenuButton.animate().setDuration(250).alpha(1);
|
||||
}
|
||||
}else {
|
||||
itemView.setVisibility(View.VISIBLE);
|
||||
mLongPressMenuEnabled = false;
|
||||
mItemSelectionMenuButton.animate().setDuration(250).alpha(1);
|
||||
}
|
||||
mRemoveRow.bringToFront();
|
||||
|
@ -529,6 +530,7 @@ public class tabAdapter extends RecyclerView.Adapter<tabAdapter.listViewHolder>
|
|||
@Override
|
||||
public boolean onLongClick(View v) {
|
||||
if(v.getId() == R.id.pLoadSession){
|
||||
onEnableLongClickMenu();
|
||||
if(mSelectedView.getVisibility() == View.GONE){
|
||||
mSelectedList.add(mModelList.get(this.getLayoutPosition()).getSession().getSessionID());
|
||||
onSelectionCreate(mSelectedView);
|
||||
|
|
|
@ -44,7 +44,9 @@ import java.util.List;
|
|||
import java.util.Objects;
|
||||
|
||||
import static com.darkweb.genesissearchengine.appManager.tabManager.tabEnums.eTabViewCommands.ON_HIDE_UNDO_DIALOG_FORCED;
|
||||
import static com.darkweb.genesissearchengine.pluginManager.pluginEnums.eMessageManager.M_LOAD_NEW_TAB;
|
||||
import static com.darkweb.genesissearchengine.pluginManager.pluginEnums.eMessageManager.M_RESET;
|
||||
import static com.darkweb.genesissearchengine.pluginManager.pluginEnums.eMessageManager.M_UNDO;
|
||||
import static org.mozilla.gecko.util.ThreadUtils.runOnUiThread;
|
||||
|
||||
public class tabController extends Fragment
|
||||
|
@ -81,6 +83,7 @@ public class tabController extends Fragment
|
|||
private boolean mClosedByNewTab = false;
|
||||
private boolean mFirstLaunch = true;
|
||||
boolean mScrolled = true;
|
||||
boolean mTouchable = true;
|
||||
|
||||
/*Initializations*/
|
||||
|
||||
|
@ -140,6 +143,7 @@ public class tabController extends Fragment
|
|||
if(mFirstLaunch){
|
||||
mRecycleView.setAlpha(0);
|
||||
mFirstLaunch = false;
|
||||
mTouchable = true;
|
||||
|
||||
ObjectAnimator alpha = ObjectAnimator.ofPropertyValuesHolder(mRecycleView, PropertyValuesHolder.ofFloat("alpha", 0, 1f));
|
||||
alpha.setDuration(300);
|
||||
|
@ -156,6 +160,7 @@ public class tabController extends Fragment
|
|||
mTabAdapter.notifyDataSetChanged();
|
||||
mEmptyView.animate().setStartDelay(1200).setDuration(0).alpha(1);
|
||||
}else {
|
||||
mTouchable = true;
|
||||
initializeList();
|
||||
mRecycleView.setAlpha(1);
|
||||
mEmptyView.setAlpha(1);
|
||||
|
@ -219,6 +224,13 @@ public class tabController extends Fragment
|
|||
return false;
|
||||
});
|
||||
|
||||
mRecycleView.addOnItemTouchListener(new RecyclerView.SimpleOnItemTouchListener() {
|
||||
@Override
|
||||
public boolean onInterceptTouchEvent(RecyclerView view, MotionEvent e) {
|
||||
return !mTouchable;
|
||||
}
|
||||
});
|
||||
|
||||
mNestedScrollView.getViewTreeObserver().addOnScrollChangedListener(() -> {
|
||||
float scrollY = mNestedScrollView.getScrollY();
|
||||
|
||||
|
@ -387,7 +399,9 @@ public class tabController extends Fragment
|
|||
}, 500);
|
||||
return true;
|
||||
}else{
|
||||
if(pShowPopupOnClearAll){
|
||||
onShowUndoDialog();
|
||||
}
|
||||
mTabAdapter.notifyItemRangeChanged(pIndex, mTabAdapter.getItemCount() - pIndex);
|
||||
mTabAdapter.notifyItemChanged(0);
|
||||
new Handler().postDelayed(() -> {
|
||||
|
@ -424,11 +438,11 @@ public class tabController extends Fragment
|
|||
|
||||
public void onRestoreTab(View view){
|
||||
|
||||
mTouchable = true;
|
||||
final Handler handler = new Handler();
|
||||
handler.postDelayed(() ->
|
||||
{
|
||||
ArrayList<tabRowModel> mBackup = (ArrayList<tabRowModel>)mListModel.onTrigger(tabEnums.eModelCallback.M_LOAD_BACKUP,null);
|
||||
mPopupUndo.findViewById(R.id.pBlockerUndo).setVisibility(View.VISIBLE);
|
||||
mListModel.onTrigger(tabEnums.eModelCallback.M_CLEAR_BACKUP_RETAIN_DATABASE,null);
|
||||
|
||||
if(mRecycleView.getAlpha()==0){
|
||||
|
@ -450,7 +464,7 @@ public class tabController extends Fragment
|
|||
}
|
||||
|
||||
public void onShowUndoDialog(){
|
||||
mtabViewController.onTrigger(tabEnums.eTabViewCommands.ON_SHOW_UNDO_DIALOG, Collections.singletonList(mListModel.getList().size()));
|
||||
pluginController.getInstance().onMessageManagerInvoke(Collections.singletonList(mHomeController), M_UNDO);
|
||||
}
|
||||
|
||||
public void onClearTabBackup(){
|
||||
|
@ -558,12 +572,11 @@ public class tabController extends Fragment
|
|||
mClosedByNewTab = true;
|
||||
}
|
||||
else if(pView.getId() == R.id.pCloseTab){
|
||||
mTouchable = false;
|
||||
onClearTabBackup();
|
||||
mListModel.onTrigger(tabEnums.eModelCallback.M_CLEAR_BACKUP_RETAIN_DATABASE,null);
|
||||
mRecycleView.animate().setDuration(250).alpha(0).withEndAction(() -> {
|
||||
mTabAdapter.onTrigger(tabEnums.eTabAdapterCommands.REMOVE_ALL, null);
|
||||
onClearSelection(null);
|
||||
});
|
||||
}
|
||||
else if(pView.getId() == R.id.pOpenSetting){
|
||||
activityContextManager.getInstance().getHomeController().onBackPressed();
|
||||
|
@ -591,6 +604,7 @@ public class tabController extends Fragment
|
|||
public void onPause()
|
||||
{
|
||||
status.sSettingIsAppPaused = true;
|
||||
pluginController.getInstance().onMessageManagerInvoke(Collections.singletonList(this), M_RESET);
|
||||
super.onPause();
|
||||
}
|
||||
|
||||
|
@ -647,6 +661,9 @@ public class tabController extends Fragment
|
|||
else if(e_type.equals(tabEnums.eTabAdapterCallback.ON_REMOVE_TAB_VIEW_RETAIN_BACKUP)){
|
||||
onInitRemoveView((Integer) data.get(0), false, (boolean)data.get(1));
|
||||
}
|
||||
else if(e_type.equals(tabEnums.eTabAdapterCallback.ON_SHOW_UNDO_POPUP)){
|
||||
onShowUndoDialog();
|
||||
}
|
||||
else if(e_type.equals(tabEnums.eTabAdapterCallback.M_CLEAR_BACKUP)){
|
||||
onExitAndClearBackup();
|
||||
}
|
||||
|
|
|
@ -12,7 +12,7 @@ public class tabEnums
|
|||
}
|
||||
|
||||
public enum eTabAdapterCallback {
|
||||
ON_HIDE_SELECTION, ON_SHOW_SELECTION, ON_CLEAR_TAB_BACKUP, ON_REMOVE_TAB, ON_INIT_TAB_COUNT, ON_BACK_PRESSED, ON_LOAD_TAB, ON_REMOVE_TAB_VIEW,ON_REMOVE_TAB_VIEW_RETAIN_BACKUP, M_CLEAR_BACKUP, ON_SHOW_SELECTION_MENU
|
||||
ON_HIDE_SELECTION, ON_SHOW_SELECTION, ON_CLEAR_TAB_BACKUP, ON_REMOVE_TAB, ON_INIT_TAB_COUNT, ON_BACK_PRESSED, ON_LOAD_TAB, ON_REMOVE_TAB_VIEW,ON_REMOVE_TAB_VIEW_RETAIN_BACKUP, ON_SHOW_UNDO_POPUP, M_CLEAR_BACKUP, ON_SHOW_SELECTION_MENU
|
||||
}
|
||||
|
||||
public enum eModelCallback {
|
||||
|
|
|
@ -171,41 +171,6 @@ class tabViewController
|
|||
mNewTab.setFocusable(true);
|
||||
}
|
||||
|
||||
private void onShowUndoDialog(int pTabCount) {
|
||||
mUndoLayout.findViewById(R.id.pBlockerUndo).setVisibility(View.GONE);
|
||||
mUndoLayout.animate().cancel();
|
||||
mUndoLayout.setVisibility(View.VISIBLE);
|
||||
|
||||
mUndoLayout.animate().cancel();
|
||||
|
||||
int mDuration = 220;
|
||||
if(mUndoLayout.getAlpha()>0){
|
||||
mUndoLayout.setTranslationY(360);
|
||||
mDuration = 400;
|
||||
}else {
|
||||
mUndoLayout.setTranslationY(60);
|
||||
}
|
||||
mUndoLayout.setAlpha(0);
|
||||
|
||||
mUndoLayout.animate().withLayer()
|
||||
.translationY(0)
|
||||
.alpha(1f)
|
||||
.setDuration(mDuration).start();
|
||||
|
||||
|
||||
initTabCount(pTabCount);
|
||||
mDelayHandler.removeCallbacksAndMessages(null);
|
||||
mDelayHandler.postDelayed(() -> {
|
||||
mUndoLayout.animate().cancel();
|
||||
mUndoLayout.animate().alpha(0).withEndAction(() -> mUndoLayout.setVisibility(View.GONE));
|
||||
}, 3000);
|
||||
}
|
||||
|
||||
private void onHideUndoDialog() {
|
||||
mUndoLayout.animate().cancel();
|
||||
mUndoLayout.animate().alpha(0).withEndAction(() -> mUndoLayout.setVisibility(View.GONE));
|
||||
}
|
||||
|
||||
private void onHideUndoDialogForced() {
|
||||
if(mUndoLayout.getAlpha()<1){
|
||||
mUndoLayout.animate().cancel();
|
||||
|
@ -283,10 +248,6 @@ class tabViewController
|
|||
}
|
||||
else if(pCommands.equals(tabEnums.eTabViewCommands.ON_SHOW_SELECTION)){
|
||||
onShowSelection();
|
||||
}else if(pCommands.equals(tabEnums.eTabViewCommands.ON_SHOW_UNDO_DIALOG)){
|
||||
onShowUndoDialog((int)pData.get(0));
|
||||
}else if(pCommands.equals(tabEnums.eTabViewCommands.ON_HIDE_UNDO_DIALOG)){
|
||||
onHideUndoDialog();
|
||||
}else if(pCommands.equals(tabEnums.eTabViewCommands.ON_GENERATE_SWIPABLE_BACKGROUND)){
|
||||
onDrawSwipableBackground((Canvas)pData.get(0), (RecyclerView.ViewHolder)pData.get(1), (float)pData.get(2), (int)pData.get(3));
|
||||
}else if(pCommands.equals(tabEnums.eTabViewCommands.ON_EXIT)){
|
||||
|
|
|
@ -96,8 +96,8 @@ class imageDataModel
|
|||
InputStream input = connection.getInputStream();
|
||||
Bitmap myBitmap = BitmapFactory.decodeStream(input);
|
||||
return myBitmap;
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,7 +12,6 @@ public class bookmarkRowModel
|
|||
private String m_header;
|
||||
private String m_description;
|
||||
private Date m_date;
|
||||
private ImageView m_logo;
|
||||
|
||||
/*Initializations*/
|
||||
|
||||
|
@ -31,9 +30,6 @@ public class bookmarkRowModel
|
|||
public void setURL(String p_url){
|
||||
this.m_description = p_url;
|
||||
}
|
||||
public void setLogo(ImageView p_logo){
|
||||
this.m_logo = p_logo;
|
||||
}
|
||||
public void setDate(Date p_date) {
|
||||
m_date = p_date;
|
||||
}
|
||||
|
@ -52,9 +48,6 @@ public class bookmarkRowModel
|
|||
public int getID() {
|
||||
return m_id;
|
||||
}
|
||||
public ImageView getLogo() {
|
||||
return m_logo;
|
||||
}
|
||||
public Date getDate() {
|
||||
return m_date;
|
||||
}
|
||||
|
|
|
@ -9,6 +9,7 @@ import com.darkweb.genesissearchengine.helperManager.helperMethod;
|
|||
|
||||
import org.mozilla.geckoview.GeckoSession;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.util.zip.Deflater;
|
||||
|
@ -38,33 +39,9 @@ public class tabRowModel
|
|||
mBitmap.recycle();
|
||||
mBitmap = null;
|
||||
}
|
||||
try {
|
||||
byte[] pBlobTemp = compress(pBlob);
|
||||
int mSize = pBlobTemp.length;
|
||||
mBitmap = BitmapFactory.decodeByteArray(pBlobTemp,0,mSize);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
mBitmap = BitmapFactory.decodeStream(new ByteArrayInputStream(pBlob));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public byte[] compress(byte[] data) throws IOException {
|
||||
Deflater deflater = new Deflater();
|
||||
deflater.setInput(data);
|
||||
|
||||
ByteArrayOutputStream outputStream = new ByteArrayOutputStream(data.length);
|
||||
|
||||
deflater.finish();
|
||||
byte[] buffer = new byte[1024];
|
||||
while (!deflater.finished()) {
|
||||
int count = deflater.deflate(buffer); // returns the generated code... index
|
||||
outputStream.write(buffer, 0, count);
|
||||
}
|
||||
outputStream.close();
|
||||
byte[] output = outputStream.toByteArray();
|
||||
|
||||
return output;
|
||||
}
|
||||
|
||||
/*Helper Method*/
|
||||
|
||||
|
@ -97,7 +74,7 @@ public class tabRowModel
|
|||
return mId;
|
||||
}
|
||||
|
||||
public void setmBitmap(Bitmap pBitmap) {
|
||||
public void decodeByteArraysetmBitmap(Bitmap pBitmap) {
|
||||
mBitmap = null;
|
||||
mBitmap = pBitmap;
|
||||
}
|
||||
|
|
|
@ -2,6 +2,8 @@ package com.darkweb.genesissearchengine.dataManager;
|
|||
|
||||
import android.content.ContentValues;
|
||||
import android.database.Cursor;
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
||||
import com.darkweb.genesissearchengine.dataManager.models.bookmarkRowModel;
|
||||
|
@ -97,6 +99,7 @@ public class sqlCipherDataModel
|
|||
|
||||
private void execSQL(String query,Object params,boolean pContentValues)
|
||||
{
|
||||
try {
|
||||
if(params==null)
|
||||
{
|
||||
sDatabaseInstance.execSQL(query);
|
||||
|
@ -105,10 +108,14 @@ public class sqlCipherDataModel
|
|||
{
|
||||
sDatabaseInstance.execSQL(query,(String[])params);
|
||||
}
|
||||
}catch (Exception ex){
|
||||
Log.i("Memory Error", "Memory Full");
|
||||
}
|
||||
}
|
||||
|
||||
private void execSQL(String query,Object params,boolean pContentValues,String whereClause, String[] whereArgs)
|
||||
{
|
||||
try {
|
||||
if(params==null)
|
||||
{
|
||||
sDatabaseInstance.execSQL(query);
|
||||
|
@ -120,6 +127,9 @@ public class sqlCipherDataModel
|
|||
{
|
||||
sDatabaseInstance.execSQL(query,(String[])params);
|
||||
}
|
||||
}catch (Exception ex){
|
||||
Log.i("Memory Error", "Memory Full");
|
||||
}
|
||||
}
|
||||
|
||||
private ArrayList<historyRowModel> selectHistory(int pStartIndex,int pEndIndex){
|
||||
|
@ -221,7 +231,7 @@ public class sqlCipherDataModel
|
|||
execSQL((String)pData.get(0), pData.get(1), false);
|
||||
}
|
||||
else if(pCommands == dataEnums.eSqlCipherCommands.M_EXEC_SQL_USING_CONTENT){
|
||||
execSQL((String)pData.get(0), pData.get(1), true, (String)pData.get(3), (String[])pData.get(4));
|
||||
execSQL((String)pData.get(0), pData.get(1), true, (String)pData.get(2), (String[])pData.get(3));
|
||||
}
|
||||
else if(pCommands == dataEnums.eSqlCipherCommands.M_SELECT_BOOKMARK){
|
||||
return selectBookmark();
|
||||
|
|
|
@ -4,6 +4,8 @@ import android.annotation.SuppressLint;
|
|||
import android.content.ContentValues;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.BitmapFactory;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Handler;
|
||||
import android.util.Log;
|
||||
import android.widget.ImageView;
|
||||
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
||||
|
@ -12,6 +14,8 @@ import com.darkweb.genesissearchengine.dataManager.models.tabRowModel;
|
|||
import com.darkweb.genesissearchengine.constants.enums;
|
||||
import com.darkweb.genesissearchengine.constants.strings;
|
||||
import com.darkweb.genesissearchengine.eventObserver;
|
||||
import com.darkweb.genesissearchengine.helperManager.helperMethod;
|
||||
|
||||
import org.mozilla.geckoview.GeckoResult;
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
|
@ -22,6 +26,8 @@ import java.util.Calendar;
|
|||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import static java.lang.Thread.sleep;
|
||||
|
||||
@SuppressLint("CommitPrefEdits")
|
||||
class tabDataModel
|
||||
{
|
||||
|
@ -236,54 +242,67 @@ class tabDataModel
|
|||
}
|
||||
}
|
||||
|
||||
// int isLoading = 0;
|
||||
public void updatePixels(String pSessionID, GeckoResult<Bitmap> pBitmapManager, ImageView pImageView, boolean pOpenTabView){
|
||||
updatePixelThread mThread = new updatePixelThread();
|
||||
mThread.pBitmapManager = pBitmapManager;
|
||||
mThread.pImageView = pImageView;
|
||||
mThread.pOpenTabView = pOpenTabView;
|
||||
mThread.pSessionID = pSessionID;
|
||||
mThread.execute();
|
||||
}
|
||||
|
||||
new Thread(){
|
||||
public void run(){
|
||||
@SuppressLint("StaticFieldLeak")
|
||||
private class updatePixelThread extends AsyncTask<String, String, String> {
|
||||
|
||||
public String pSessionID;
|
||||
public GeckoResult<Bitmap> pBitmapManager;
|
||||
public ImageView pImageView;
|
||||
public boolean pOpenTabView;
|
||||
|
||||
@Override
|
||||
protected void onPreExecute() {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String doInBackground(String... strings) {
|
||||
try {
|
||||
Log.i("FIZZAHFUCK3","asd : ");
|
||||
for(int counter = 0; counter< mTabs.size(); counter++) {
|
||||
int finalCounter = counter;
|
||||
if (mTabs.get(counter).getSession().getSessionID().equals(pSessionID)) {
|
||||
Bitmap mBitmap = pBitmapManager.poll(10000);
|
||||
|
||||
ByteArrayOutputStream out = new ByteArrayOutputStream();
|
||||
mBitmap.compress(Bitmap.CompressFormat.PNG, 20, out);
|
||||
mBitmap.compress(Bitmap.CompressFormat.JPEG, 40, out);
|
||||
mTabs.get(finalCounter).decodeByteArraysetmBitmap(mBitmap);
|
||||
|
||||
Bitmap decoded = BitmapFactory.decodeStream(new ByteArrayInputStream(out.toByteArray()));
|
||||
|
||||
|
||||
Bitmap emptyBitmap = Bitmap.createBitmap(decoded.getWidth(), decoded.getHeight(), decoded.getConfig());
|
||||
if (!decoded.sameAs(emptyBitmap)) {
|
||||
|
||||
mTabs.get(finalCounter).setmBitmap(decoded);
|
||||
|
||||
if(pImageView!=null){
|
||||
activityContextManager.getInstance().getHomeController().runOnUiThread(() -> pImageView.setImageBitmap(mBitmap));
|
||||
}
|
||||
|
||||
byte[] mThumbnail = out.toByteArray();
|
||||
ContentValues mContentValues = new ContentValues();
|
||||
mContentValues.put("mThumbnail", mThumbnail);
|
||||
mContentValues.put("mThumbnail", out.toByteArray());
|
||||
mExternalEvents.invokeObserver(Arrays.asList("tab",mContentValues, "mid = ?", new String[]{mTabs.get(finalCounter).getmId()}), dataEnums.eTabCallbackCommands.M_EXEC_SQL_USING_CONTENT);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
Log.i("FIZZAHFUCK4","asd : ");
|
||||
} catch (Exception ex) {
|
||||
Log.i("FIZZAHFUCK2","asd : " + ex.getMessage());
|
||||
} catch (Throwable ex) {
|
||||
ex.printStackTrace();
|
||||
} catch (Throwable throwable) {
|
||||
throwable.printStackTrace();
|
||||
}
|
||||
if(pOpenTabView){
|
||||
activityContextManager.getInstance().getHomeController().onLoadFirstElement();
|
||||
}
|
||||
|
||||
}
|
||||
}.start();
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(String bitmap) {
|
||||
}
|
||||
}
|
||||
public ArrayList<ArrayList<String>> getSuggestions(String pQuery){
|
||||
ArrayList<ArrayList<String>> mModel = new ArrayList<>();
|
||||
for(int count = 0; count<= mTabs.size()-1 && mTabs.size()<500; count++){
|
||||
|
|
|
@ -70,6 +70,7 @@ import java.net.SocketException;
|
|||
import java.net.URI;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.security.Key;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
|
@ -242,16 +243,16 @@ public class helperMethod
|
|||
mColor = Color.argb(255, 0, 153, 54);
|
||||
}
|
||||
|
||||
if (url.contains("https://"))
|
||||
if (url.startsWith("https://"))
|
||||
{
|
||||
SpannableString ss = new SpannableString(url);
|
||||
ss.setSpan(new ForegroundColorSpan(mColor), 0, 8, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
ss.setSpan(new ForegroundColorSpan(mColor), 0, 5, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
ss.setSpan(new ForegroundColorSpan(Color.GRAY), 5, 8, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
return ss;
|
||||
} else if (url.contains("http://"))
|
||||
} else if (url.startsWith("http://"))
|
||||
{
|
||||
SpannableString ss = new SpannableString(url);
|
||||
ss.setSpan(new ForegroundColorSpan(mColor), 0, 7, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
ss.setSpan(new ForegroundColorSpan(mColor), 0, 4, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
ss.setSpan(new ForegroundColorSpan(Color.GRAY), 4, 7, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
return ss;
|
||||
} else
|
||||
|
@ -361,6 +362,7 @@ public class helperMethod
|
|||
}
|
||||
|
||||
public static void hideKeyboard(AppCompatActivity context) {
|
||||
if(context!=null){
|
||||
View view = context.findViewById(android.R.id.content);
|
||||
if (view != null)
|
||||
{
|
||||
|
@ -369,6 +371,7 @@ public class helperMethod
|
|||
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void shareApp(AppCompatActivity context) {
|
||||
ShareCompat.IntentBuilder.from(context)
|
||||
|
@ -769,10 +772,12 @@ public class helperMethod
|
|||
}
|
||||
|
||||
public static void showToastMessage(String message,Context context){
|
||||
if(context!=null){
|
||||
Toast toast=Toast.makeText(context.getApplicationContext(),message,Toast.LENGTH_SHORT);
|
||||
toast.setGravity(Gravity.CENTER_HORIZONTAL|Gravity.BOTTOM, 0, 0);
|
||||
toast.show();
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean checkPermissions(AppCompatActivity context) {
|
||||
String[] permissions = new String[]{
|
||||
|
|
|
@ -24,6 +24,7 @@ public class adManager
|
|||
private eventObserver.eventListener mEvent;
|
||||
private WeakReference<AdView> mBannerAds;
|
||||
private boolean mPaidStatus;
|
||||
private int mRequestCount = 0;
|
||||
|
||||
private boolean bannerAdsLoading = false;
|
||||
private boolean bannerAdsLoaded = false;
|
||||
|
@ -90,8 +91,12 @@ public class adManager
|
|||
public void onAdFailedToLoad(@NonNull LoadAdError var1) {
|
||||
new Handler().postDelayed(() ->
|
||||
{
|
||||
if(mRequestCount<2){
|
||||
mRequestCount+=1;
|
||||
initializeBannerAds();
|
||||
}, 10000);
|
||||
}
|
||||
|
||||
}, 30000);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -25,7 +25,7 @@ public class analyticManager
|
|||
|
||||
private void initialize()
|
||||
{
|
||||
new FlurryAgent.Builder() .withLogEnabled(true) .build(mAppContext.get().getApplicationContext(), "4C4K4T5ND9RJKT4H47GQ");
|
||||
new FlurryAgent.Builder() .withLogEnabled(false) .build(mAppContext.get().getApplicationContext(), "4C4K4T5ND9RJKT4H47GQ");
|
||||
}
|
||||
|
||||
/*External Triggers*/
|
||||
|
|
|
@ -272,7 +272,7 @@ public class downloadReciever extends AsyncTask<String, Integer, String> {
|
|||
mStream.close();
|
||||
}catch (Exception ex){
|
||||
if(mRequestCode!=200){
|
||||
pluginController.getInstance().onMessageManagerInvoke(Arrays.asList(Collections.singletonList(mRequestCode), activityContextManager.getInstance().getHomeController()), pluginEnums.eMessageManager.M_DOWNLOAD_FAILURE);
|
||||
mEvent.invokeObserver(Collections.singletonList(mRequestCode), M_DOWNLOAD_FAILURE);
|
||||
onCancel();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -48,8 +48,14 @@ public class messageManager
|
|||
/*Initializations*/
|
||||
|
||||
private void onClearReference(){
|
||||
if(mContext != null){
|
||||
mContext.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
|
||||
mContext = null;
|
||||
}
|
||||
if(mDialog!=null){
|
||||
mDialog.dismiss();
|
||||
}
|
||||
}
|
||||
|
||||
private void initializeDialog(int pLayout, int pGravity){
|
||||
try {
|
||||
|
@ -73,7 +79,7 @@ public class messageManager
|
|||
mDialog.setContentView(pLayout);
|
||||
|
||||
ColorDrawable back = new ColorDrawable(Color.TRANSPARENT);
|
||||
InsetDrawable inset = new InsetDrawable(back, helperMethod.pxFromDp(15),0,helperMethod.pxFromDp(15),0);
|
||||
InsetDrawable inset = new InsetDrawable(back, helperMethod.pxFromDp(10),0,helperMethod.pxFromDp(10),0);
|
||||
mDialog.getWindow().setBackgroundDrawable(inset);
|
||||
mDialog.getWindow().setLayout(helperMethod.pxFromDp(350), -1);
|
||||
mDialog.getWindow().setLayout(ConstraintLayout.LayoutParams.MATCH_PARENT, ConstraintLayout.LayoutParams.WRAP_CONTENT);
|
||||
|
@ -143,7 +149,7 @@ public class messageManager
|
|||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
onTrigger(Arrays.asList(mContext, mContext.getString(R.string.ALERT_NOT_SUPPORTED_MESSAGE)),M_NOT_SUPPORTED);
|
||||
onTrigger(Arrays.asList(mContext.getString(R.string.ALERT_NOT_SUPPORTED_MESSAGE), mContext),M_NOT_SUPPORTED);
|
||||
onClearReference();
|
||||
}
|
||||
};
|
||||
|
@ -181,7 +187,13 @@ public class messageManager
|
|||
Runnable runnable = () -> mDialog.dismiss();
|
||||
|
||||
initializeDialog(R.layout.popup_download_failure, Gravity.BOTTOM);
|
||||
((TextView)mDialog.findViewById(R.id.pDescription)).setText(("Request denied Error " + mData.get(0)));
|
||||
String mMessage;
|
||||
if(mData == null || mData.get(0) == null || (mData.get(0)).equals("0")){
|
||||
mMessage = "\"Unknown\"";
|
||||
}else {
|
||||
mMessage = (String) mData.get(0);
|
||||
}
|
||||
((TextView)mDialog.findViewById(R.id.pDescription)).setText(("Request denied Error " + mMessage));
|
||||
mDialog.findViewById(R.id.pDismiss).setOnClickListener(v -> mDialog.dismiss());
|
||||
|
||||
mDialog.setOnDismissListener(dialog -> {
|
||||
|
@ -214,6 +226,48 @@ public class messageManager
|
|||
handler.postDelayed(runnable, 1500);
|
||||
}
|
||||
|
||||
private void popupLoadNewTab()
|
||||
{
|
||||
final Handler handler = new Handler();
|
||||
Runnable runnable = () -> mDialog.dismiss();
|
||||
|
||||
initializeDialog(R.layout.popup_load_new_tab, Gravity.BOTTOM);
|
||||
mDialog.getWindow().setDimAmount(0.3f);
|
||||
mDialog.findViewById(R.id.pRestore).setOnClickListener(v -> {
|
||||
mEvent.invokeObserver(null, M_UNDO_SESSION);
|
||||
mDialog.dismiss();
|
||||
handler.removeCallbacks(runnable);
|
||||
});
|
||||
|
||||
mDialog.setOnDismissListener(dialog -> {
|
||||
handler.removeCallbacks(runnable);
|
||||
onClearReference();
|
||||
});
|
||||
|
||||
handler.postDelayed(runnable, 1500);
|
||||
}
|
||||
|
||||
private void popupUndo()
|
||||
{
|
||||
final Handler handler = new Handler();
|
||||
Runnable runnable = () -> mDialog.dismiss();
|
||||
|
||||
initializeDialog(R.layout.popup_undo, Gravity.BOTTOM);
|
||||
mDialog.getWindow().setDimAmount(0.3f);
|
||||
mDialog.findViewById(R.id.pUndo).setOnClickListener(v -> {
|
||||
mEvent.invokeObserver(null, M_UNDO_TAB);
|
||||
mDialog.dismiss();
|
||||
handler.removeCallbacks(runnable);
|
||||
});
|
||||
|
||||
mDialog.setOnDismissListener(dialog -> {
|
||||
handler.removeCallbacks(runnable);
|
||||
onClearReference();
|
||||
});
|
||||
|
||||
handler.postDelayed(runnable, 1500);
|
||||
}
|
||||
|
||||
private void maxTabReached()
|
||||
{
|
||||
final Handler handler = new Handler();
|
||||
|
@ -238,8 +292,17 @@ public class messageManager
|
|||
private void notSupportMessage()
|
||||
{
|
||||
initializeDialog(R.layout.popup_not_supported, Gravity.BOTTOM);
|
||||
mDialog.findViewById(R.id.pDismiss).setOnClickListener(v -> mDialog.dismiss());
|
||||
mDialog.findViewById(R.id.pDismiss).setOnClickListener(view -> mDialog.dismiss());
|
||||
mDialog.setOnDismissListener(dialog -> onClearReference());
|
||||
|
||||
final Handler handler = new Handler();
|
||||
Runnable runnable = () -> {
|
||||
if(mDialog!=null){
|
||||
mDialog.dismiss();
|
||||
onClearReference();
|
||||
}
|
||||
};
|
||||
handler.postDelayed(runnable, 2500);
|
||||
}
|
||||
|
||||
private void onPanic(){
|
||||
|
@ -329,22 +392,19 @@ public class messageManager
|
|||
mDialog.setOnDismissListener(dialog -> {
|
||||
final Handler handler = new Handler();
|
||||
Runnable runnable = () -> {
|
||||
helperMethod.hideKeyboard(activityContextManager.getInstance().getHomeController());
|
||||
helperMethod.hideKeyboard(mContext);
|
||||
dialog.dismiss();
|
||||
mContext.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
|
||||
onClearReference();
|
||||
};
|
||||
handler.postDelayed(runnable, 50);
|
||||
});
|
||||
mDialog.findViewById(R.id.pDismiss).setOnClickListener(v -> {
|
||||
mDialog.dismiss();
|
||||
mContext.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
|
||||
helperMethod.hideKeyboard(activityContextManager.getInstance().getHomeController());
|
||||
helperMethod.hideKeyboard(mContext);
|
||||
});
|
||||
|
||||
mDialog.findViewById(R.id.pNext).setOnClickListener(v -> {
|
||||
mDialog.dismiss();
|
||||
mContext.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
|
||||
helperMethod.hideKeyboard(mContext);
|
||||
mEvent.invokeObserver(Collections.singletonList(mData.get(0).toString().replace("genesis.onion","genesishiddentechnologies.com")+"split"+((EditText) mDialog.findViewById(R.id.pBridgeInput)).getText().toString()), M_BOOKMARK);
|
||||
});
|
||||
|
@ -366,9 +426,8 @@ public class messageManager
|
|||
mDialog.setOnDismissListener(dialog -> {
|
||||
final Handler handler = new Handler();
|
||||
Runnable runnable = () -> {
|
||||
helperMethod.hideKeyboard(activityContextManager.getInstance().getHomeController());
|
||||
helperMethod.hideKeyboard(mContext);
|
||||
dialog.dismiss();
|
||||
mContext.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
|
||||
onClearReference();
|
||||
};
|
||||
handler.postDelayed(runnable, 50);
|
||||
|
@ -506,8 +565,13 @@ public class messageManager
|
|||
});
|
||||
}
|
||||
|
||||
private void downloadFileLongPress()
|
||||
private void
|
||||
downloadFileLongPress()
|
||||
{
|
||||
if(mData==null || mData.size()<1){
|
||||
return;
|
||||
}
|
||||
|
||||
String title = mData.get(2).toString();
|
||||
|
||||
if(title.length()>0){
|
||||
|
@ -518,20 +582,28 @@ public class messageManager
|
|||
((TextView) mDialog.findViewById(R.id.pDescription)).setText((title + mData.get(0).toString()));
|
||||
mDialog.findViewById(R.id.pDismiss).setOnClickListener(v -> mDialog.dismiss());
|
||||
mDialog.findViewById(R.id.pOption1).setOnClickListener(v -> {
|
||||
if(mData!=null){
|
||||
mEvent.invokeObserver(Collections.singletonList(mData.get(0)), M_DOWNLOAD_FILE_MANUAL);
|
||||
mDialog.dismiss();
|
||||
}
|
||||
});
|
||||
mDialog.findViewById(R.id.pOption2).setOnClickListener(v -> {
|
||||
if(mData!=null){
|
||||
mEvent.invokeObserver(Collections.singletonList(mData.get(0)), M_OPEN_LINK_NEW_TAB);
|
||||
mDialog.dismiss();
|
||||
}
|
||||
});
|
||||
mDialog.findViewById(R.id.pOption3).setOnClickListener(v -> {
|
||||
if(mData!=null){
|
||||
mEvent.invokeObserver(Collections.singletonList(mData.get(0)), M_OPEN_LINK_CURRENT_TAB);
|
||||
mDialog.dismiss();
|
||||
}
|
||||
});
|
||||
mDialog.findViewById(R.id.pOption4).setOnClickListener(v -> {
|
||||
if(mData!=null){
|
||||
mEvent.invokeObserver(Collections.singletonList(mData.get(0)), M_COPY_LINK);
|
||||
mDialog.dismiss();
|
||||
}
|
||||
});
|
||||
mDialog.setOnDismissListener(dialog -> onClearReference());
|
||||
}
|
||||
|
@ -544,16 +616,22 @@ public class messageManager
|
|||
((TextView) mDialog.findViewById(R.id.pDescription)).setText((title + mData.get(0)));
|
||||
mDialog.findViewById(R.id.pDismiss).setOnClickListener(v -> mDialog.dismiss());
|
||||
mDialog.findViewById(R.id.pOption1).setOnClickListener(v -> {
|
||||
if(mData!=null){
|
||||
mEvent.invokeObserver(Collections.singletonList(mData.get(0)), M_OPEN_LINK_NEW_TAB);
|
||||
mDialog.dismiss();
|
||||
}
|
||||
});
|
||||
mDialog.findViewById(R.id.pOption2).setOnClickListener(v -> {
|
||||
if(mData!=null){
|
||||
mEvent.invokeObserver(Collections.singletonList(mData.get(0)), M_OPEN_LINK_CURRENT_TAB);
|
||||
mDialog.dismiss();
|
||||
}
|
||||
});
|
||||
mDialog.findViewById(R.id.pOption3).setOnClickListener(v -> {
|
||||
if(mData!=null){
|
||||
mEvent.invokeObserver(Collections.singletonList(mData.get(0)), M_COPY_LINK);
|
||||
mDialog.dismiss();
|
||||
}
|
||||
});
|
||||
mDialog.setOnDismissListener(dialog -> onClearReference());
|
||||
}
|
||||
|
@ -580,32 +658,46 @@ public class messageManager
|
|||
((TextView) mDialog.findViewById(R.id.pHeader)).setText(mTitle);
|
||||
((TextView) mDialog.findViewById(R.id.pDescription)).setText((data_local));
|
||||
mDialog.findViewById(R.id.pOption1).setOnClickListener(v -> {
|
||||
if(mData!=null){
|
||||
mEvent.invokeObserver(Collections.singletonList(url), M_OPEN_LINK_NEW_TAB);
|
||||
mDialog.dismiss();
|
||||
}
|
||||
});
|
||||
mDialog.findViewById(R.id.pOption2).setOnClickListener(v -> {
|
||||
if(mData!=null){
|
||||
mEvent.invokeObserver(Collections.singletonList(url), M_OPEN_LINK_CURRENT_TAB);
|
||||
mDialog.dismiss();
|
||||
}
|
||||
});
|
||||
mDialog.findViewById(R.id.pOption3).setOnClickListener(v -> {
|
||||
if(mData!=null){
|
||||
mEvent.invokeObserver(Collections.singletonList(url), M_COPY_LINK);
|
||||
mDialog.dismiss();
|
||||
}
|
||||
});
|
||||
mDialog.findViewById(R.id.pOption4).setOnClickListener(v -> {
|
||||
if(mData!=null){
|
||||
mEvent.invokeObserver(Collections.singletonList(file), M_OPEN_LINK_NEW_TAB);
|
||||
mDialog.dismiss();
|
||||
}
|
||||
});
|
||||
mDialog.findViewById(R.id.pOption5).setOnClickListener(v -> {
|
||||
if(mData!=null){
|
||||
mEvent.invokeObserver(Collections.singletonList(file), M_OPEN_LINK_CURRENT_TAB);
|
||||
mDialog.dismiss();
|
||||
}
|
||||
});
|
||||
mDialog.findViewById(R.id.pOption6).setOnClickListener(v -> {
|
||||
if(mData!=null){
|
||||
mEvent.invokeObserver(Collections.singletonList(file), M_COPY_LINK);
|
||||
mDialog.dismiss();
|
||||
}
|
||||
});
|
||||
mDialog.findViewById(R.id.pOption7).setOnClickListener(v -> {
|
||||
if(mData!=null){
|
||||
mEvent.invokeObserver(Collections.singletonList(file), M_DOWNLOAD_FILE_MANUAL);
|
||||
mDialog.dismiss();
|
||||
}
|
||||
});
|
||||
mDialog.setOnDismissListener(dialog -> onClearReference());
|
||||
}
|
||||
|
@ -696,11 +788,6 @@ public class messageManager
|
|||
rateApp();
|
||||
break;
|
||||
|
||||
case M_DOWNLOAD_FILE :
|
||||
/*VERIFIED*/
|
||||
//downloadFileLongPress();
|
||||
break;
|
||||
|
||||
case M_LONG_PRESS_DOWNLOAD :
|
||||
/*VERIFIED*/
|
||||
downloadFileLongPress();
|
||||
|
@ -780,6 +867,16 @@ public class messageManager
|
|||
/*VERIFIED*/
|
||||
orbotLoading();
|
||||
break;
|
||||
|
||||
case M_LOAD_NEW_TAB:
|
||||
/*VERIFIED*/
|
||||
popupLoadNewTab();
|
||||
break;
|
||||
|
||||
case M_UNDO:
|
||||
/*VERIFIED*/
|
||||
popupUndo();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,8 +1,12 @@
|
|||
package com.darkweb.genesissearchengine.pluginManager.orbotPluginManager;
|
||||
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.ServiceConnection;
|
||||
import android.os.Build;
|
||||
import android.os.Handler;
|
||||
import android.os.IBinder;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
@ -62,19 +66,35 @@ public class orbotManager
|
|||
orbotLocalConstants.mManualBridgeType = pBridgeCustomType;
|
||||
orbotLocalConstants.mBridgesDefault = pBridgesDefault;
|
||||
Prefs.putBridgesEnabled(pBridgeStatus);
|
||||
|
||||
bindService();
|
||||
initializeProxy(pShowImages, mClearOnExit);
|
||||
}
|
||||
|
||||
private void bindService(){
|
||||
ServiceConnection mServerConn = new ServiceConnection() {
|
||||
@Override
|
||||
public void onServiceConnected(ComponentName name, IBinder binder) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onServiceDisconnected(ComponentName name) {
|
||||
}
|
||||
};
|
||||
|
||||
Intent mServiceIntent = new Intent(mAppContext.get().getApplicationContext(), OrbotService.class);
|
||||
mServiceIntent.setAction(ACTION_START);
|
||||
|
||||
mAppContext.get().bindService(mServiceIntent, mServerConn, Context.BIND_AUTO_CREATE);
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
mAppContext.get().stopService(mServiceIntent);
|
||||
mAppContext.get().startForegroundService(mServiceIntent);
|
||||
}
|
||||
else
|
||||
{
|
||||
mAppContext.get().stopService(mServiceIntent);
|
||||
mAppContext.get().startService(mServiceIntent);
|
||||
}
|
||||
|
||||
initializeProxy(pShowImages, mClearOnExit);
|
||||
}
|
||||
|
||||
/*Helper Methods*/
|
||||
|
@ -116,19 +136,7 @@ public class orbotManager
|
|||
}
|
||||
|
||||
private void onRestartProxy(){
|
||||
|
||||
Intent mServiceIntent = new Intent(mAppContext.get().getApplicationContext(), OrbotService.class);
|
||||
mServiceIntent.setAction(ACTION_START);
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
mAppContext.get().stopService(mServiceIntent);
|
||||
mAppContext.get().startForegroundService(mServiceIntent);
|
||||
}
|
||||
else
|
||||
{
|
||||
mAppContext.get().stopService(mServiceIntent);
|
||||
mAppContext.get().startService(mServiceIntent);
|
||||
}
|
||||
bindService();
|
||||
}
|
||||
|
||||
private void initializeProxy(int pShowImages, boolean mClearOnExit)
|
||||
|
|
|
@ -155,7 +155,7 @@ public class pluginController
|
|||
{
|
||||
if(event_type.equals(enums.etype.M_DOWNLOAD_FAILURE))
|
||||
{
|
||||
mMessageManager.onTrigger(Arrays.asList(Collections.singletonList(pData.get(0).toString()), mHomeController.get()),M_DOWNLOAD_FAILURE);
|
||||
mMessageManager.onTrigger(Arrays.asList(pData.get(0).toString(), mHomeController.get()),M_DOWNLOAD_FAILURE);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
@ -303,6 +303,12 @@ public class pluginController
|
|||
else if(pEventType.equals(M_SET_BRIDGES)){
|
||||
activityContextManager.getInstance().getBridgeController().onUpdateBridges((String) pData.get(0), (String) pData.get(1));
|
||||
}
|
||||
else if(pEventType.equals(M_UNDO_SESSION)){
|
||||
activityContextManager.getInstance().getHomeController().onLoadRecentTab(null);
|
||||
}
|
||||
else if(pEventType.equals(M_UNDO_TAB)){
|
||||
activityContextManager.getInstance().getTabController().onRestoreTab(null);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -28,10 +28,10 @@ public class pluginEnums
|
|||
|
||||
/*Message Manager*/
|
||||
public enum eMessageManager{
|
||||
M_RESET, M_DATA_CLEARED, M_APPLICATION_CRASH, M_SECURE_CONNECTION, M_POPUP_BLOCKED, M_PANIC, M_MAX_TAB_REACHED, M_ORBOT_LOADING,M_DOWNLOAD_SINGLE, M_UPDATE_BRIDGES, M_NEW_IDENTITY, M_NOT_SUPPORTED, M_BRIDGE_MAIL, M_LONG_PRESS_WITH_LINK, M_LONG_PRESS_URL, M_LONG_PRESS_DOWNLOAD, M_START_ORBOT, M_DOWNLOAD_FAILURE, M_DOWNLOAD_FILE, M_RATE_APP, M_REPORT_URL, M_CLEAR_BOOKMARK, M_CLEAR_HISTORY, M_BOOKMARK, M_PANIC_RESET, M_RATE_SUCCESS, M_RATE_FAILURE, M_LANGUAGE_SUPPORT_FAILURE, M_WELCOME
|
||||
M_RESET, M_DATA_CLEARED, M_APPLICATION_CRASH, M_SECURE_CONNECTION, M_POPUP_BLOCKED, M_PANIC, M_MAX_TAB_REACHED, M_ORBOT_LOADING, M_LOAD_NEW_TAB, M_UNDO,M_DOWNLOAD_SINGLE, M_UPDATE_BRIDGES, M_NEW_IDENTITY, M_NOT_SUPPORTED, M_BRIDGE_MAIL, M_LONG_PRESS_WITH_LINK, M_LONG_PRESS_URL, M_LONG_PRESS_DOWNLOAD, M_START_ORBOT, M_DOWNLOAD_FAILURE, M_DOWNLOAD_FILE, M_RATE_APP, M_REPORT_URL, M_CLEAR_BOOKMARK, M_CLEAR_HISTORY, M_BOOKMARK, M_PANIC_RESET, M_RATE_SUCCESS, M_RATE_FAILURE, M_LANGUAGE_SUPPORT_FAILURE, M_WELCOME
|
||||
}
|
||||
public enum eMessageManagerCallbacks{
|
||||
M_CANCEL_WELCOME, M_APP_RATED, M_DOWNLOAD_FILE_MANUAL, M_OPEN_LINK_CURRENT_TAB, M_COPY_LINK, M_REQUEST_BRIDGES, M_SET_BRIDGES, M_OPEN_LINK_NEW_TAB, M_CLEAR_TAB, M_RATE_APPLICATION, M_OPEN_PRIVACY, M_CUSTOM_BRIDGE, M_BRIDGE_TYPE
|
||||
M_CANCEL_WELCOME, M_APP_RATED, M_DOWNLOAD_FILE_MANUAL, M_OPEN_LINK_CURRENT_TAB, M_COPY_LINK, M_REQUEST_BRIDGES, M_SET_BRIDGES, M_OPEN_LINK_NEW_TAB, M_CLEAR_TAB, M_RATE_APPLICATION, M_OPEN_PRIVACY, M_UNDO_SESSION, M_UNDO_TAB, M_CUSTOM_BRIDGE, M_BRIDGE_TYPE
|
||||
}
|
||||
|
||||
/*Download Manager*/
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<translate
|
||||
android:duration="250"
|
||||
android:fromXDelta="0%"
|
||||
android:fromYDelta="-8%"
|
||||
android:fromYDelta="-13%"
|
||||
android:toXDelta="0%"
|
||||
android:toYDelta="0%"
|
||||
/>
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
android:fromXDelta="0%"
|
||||
android:fromYDelta="0%"
|
||||
android:toXDelta="0%"
|
||||
android:toYDelta="-8%"
|
||||
android:toYDelta="-10%"
|
||||
/>
|
||||
|
||||
<alpha android:fromAlpha="1.0"
|
||||
|
|
|
@ -15,7 +15,11 @@
|
|||
android:endColor="#264d73"
|
||||
android:startColor="#264d73"
|
||||
android:type="linear" />
|
||||
<corners android:radius="5.5dp" />
|
||||
<corners
|
||||
android:bottomLeftRadius="8dp"
|
||||
android:bottomRightRadius="8dp"
|
||||
android:topLeftRadius="8dp"
|
||||
android:topRightRadius="8dp"/>
|
||||
</shape>
|
||||
</item>
|
||||
</ripple>
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 6.2 MiB |
|
@ -11,8 +11,8 @@
|
|||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/pMainLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="60dp"
|
||||
android:layout_marginBottom="15dp"
|
||||
android:layout_height="55dp"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:background="@xml/ax_background_inverted"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
|
|
|
@ -11,8 +11,8 @@
|
|||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/pMainLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="60dp"
|
||||
android:layout_marginBottom="15dp"
|
||||
android:layout_height="55dp"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:background="@xml/ax_background_inverted"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
|
|
|
@ -3,18 +3,15 @@
|
|||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:id="@+id/pToastLayoutRoot"
|
||||
android:translationZ="5dp"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_marginEnd="15dp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/pMainLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="60dp"
|
||||
android:layout_marginBottom="25dp"
|
||||
android:layout_height="55dp"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:background="@xml/ax_load_new_tab"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
|
@ -30,7 +27,7 @@
|
|||
android:paddingEnd="15dp"
|
||||
android:text="@string/ALERT_OPEN_NEW_TAB"
|
||||
android:textAlignment="textStart"
|
||||
android:textColor="@color/c_alert_text_inverted"
|
||||
android:textColor="@color/c_alert_text_inverted_v1"
|
||||
android:textSize="14sp"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
|
@ -39,7 +36,7 @@
|
|||
tools:ignore="SmallSp" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/pDismiss"
|
||||
android:id="@+id/pRestore"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="10dp"
|
||||
|
@ -47,7 +44,6 @@
|
|||
android:layout_marginBottom="10dp"
|
||||
android:layout_weight="1"
|
||||
android:background="@xml/ax_ripple_default_round"
|
||||
android:onClick="onLoadRecentTab"
|
||||
android:padding="0dp"
|
||||
android:text="@string/ALERT_OPEN_NEW_TAB_LOAD"
|
||||
android:textAllCaps="false"
|
||||
|
@ -58,21 +54,6 @@
|
|||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/pBlockerUndo"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="55dp"
|
||||
android:clickable="true"
|
||||
android:contentDescription="@string/GENERAL_TODO"
|
||||
android:focusable="true"
|
||||
android:focusableInTouchMode="true"
|
||||
android:translationZ="211dp"
|
||||
android:visibility="visible"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@+id/pMainLayout" />
|
||||
|
||||
<View
|
||||
android:id="@+id/view4"
|
||||
android:layout_width="1dp"
|
||||
|
@ -80,7 +61,7 @@
|
|||
android:layout_marginEnd="10dp"
|
||||
android:background="#3973ac"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@+id/pDismiss"
|
||||
app:layout_constraintEnd_toStartOf="@+id/pRestore"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
|
||||
|
|
|
@ -11,8 +11,8 @@
|
|||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/pMainLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="60dp"
|
||||
android:layout_marginBottom="15dp"
|
||||
android:layout_height="55dp"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:background="@xml/ax_background_inverted"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
|
|
|
@ -2,85 +2,72 @@
|
|||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:id="@+id/pToastLayoutRoot"
|
||||
android:translationZ="5dp"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:id="@+id/pMainLayout"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@xml/hox_rounded_corner"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="60dp"
|
||||
android:layout_marginBottom="25dp"
|
||||
android:background="@xml/ax_background_inverted"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0.5"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/pHeader"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp"
|
||||
android:paddingEnd="15dp"
|
||||
android:paddingStart="15dp"
|
||||
android:text="@string/ALERT_NOT_SUPPORTED"
|
||||
android:textAlignment="textStart"
|
||||
android:textColor="@color/c_text_setting_heading_v2"
|
||||
android:textSize="17sp"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
app:layout_constraintStart_toStartOf="parent">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/pDescription"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="5dp"
|
||||
android:paddingEnd="15dp"
|
||||
android:layout_marginStart="10dp"
|
||||
android:alpha="0.8"
|
||||
android:paddingStart="15dp"
|
||||
android:text="@string/ALERT_NOT_SUPPORTED_INFO"
|
||||
android:paddingEnd="15dp"
|
||||
android:text="@string/ALERT_NOT_SUPPORTED"
|
||||
android:textAlignment="textStart"
|
||||
android:textColor="@color/c_alert_text"
|
||||
android:textSize="13sp"
|
||||
android:alpha="0.6"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/pHeader"
|
||||
android:textColor="@color/c_alert_text_inverted"
|
||||
android:textSize="14sp"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="@+id/pMainLayout"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:ignore="SmallSp" />
|
||||
|
||||
<View
|
||||
android:id="@+id/pDivider"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:layout_marginTop="25dp"
|
||||
android:background="@color/c_view_divier_background"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/pDescription" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="50dp"
|
||||
android:id="@+id/pNavigationContainer"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/pDivider"
|
||||
android:orientation="horizontal">
|
||||
<Button
|
||||
android:id="@+id/pDismiss"
|
||||
android:textColor="@color/c_button_text_v1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:padding="0dp"
|
||||
android:background="@xml/ax_ripple_default_round_bottom"
|
||||
android:textSize="15sp"
|
||||
android:textAllCaps="false"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:layout_weight="1"
|
||||
android:background="@xml/ax_ripple_default_round"
|
||||
android:onClick="onRestoreTab"
|
||||
android:padding="0dp"
|
||||
android:text="@string/ALERT_DISMISS"
|
||||
android:textAllCaps="false"
|
||||
android:textColor="@color/c_button_text_v1_inverted"
|
||||
android:textSize="15sp"
|
||||
android:textStyle="bold"
|
||||
android:text="@string/ALERT_DISMISS" />
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
</LinearLayout>
|
||||
<View
|
||||
android:id="@+id/view6"
|
||||
android:layout_width="1dp"
|
||||
android:layout_height="30dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:background="@color/c_border_background_divider"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@+id/pDismiss"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
@ -5,17 +5,15 @@
|
|||
android:id="@+id/pToastLayoutRoot"
|
||||
android:translationZ="5dp"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_marginEnd="15dp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/pMainLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="60dp"
|
||||
android:layout_marginBottom="25dp"
|
||||
android:background="@xml/ax_background_inverted"
|
||||
android:layout_height="55dp"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:background="@xml/ax_load_new_tab"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent">
|
||||
|
@ -39,7 +37,7 @@
|
|||
tools:ignore="SmallSp" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/pDismiss"
|
||||
android:id="@+id/pUndo"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="10dp"
|
||||
|
@ -58,20 +56,6 @@
|
|||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/pBlockerUndo"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="55dp"
|
||||
android:clickable="true"
|
||||
android:contentDescription="@string/GENERAL_TODO"
|
||||
android:focusable="true"
|
||||
android:focusableInTouchMode="true"
|
||||
android:translationZ="211dp"
|
||||
android:visibility="visible"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@+id/pMainLayout" />
|
||||
|
||||
<View
|
||||
android:id="@+id/view6"
|
||||
|
@ -80,7 +64,7 @@
|
|||
android:layout_marginEnd="10dp"
|
||||
android:background="@color/c_border_background_divider"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@+id/pDismiss"
|
||||
app:layout_constraintEnd_toStartOf="@+id/pUndo"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
|
|
@ -54,7 +54,7 @@
|
|||
android:layout_width="37dp"
|
||||
android:layout_height="37dp"
|
||||
android:layout_marginTop="-1dp"
|
||||
android:background="@color/button_gray"
|
||||
android:src="@xml/ic_baseline_browser"
|
||||
android:contentDescription="@string/GENERAL_TODO"
|
||||
android:textAlignment="center"
|
||||
android:textColor="@color/white"
|
||||
|
|
|
@ -104,7 +104,7 @@
|
|||
android:fadingEdgeLength="20dp"
|
||||
android:hint="@string/BOOKMARK_SETTING_HEADER_NAME_HINT"
|
||||
android:inputType="text"
|
||||
android:digits="0,1,2,3,4,5,6,7,8,9,*,qwertzuiopa sdfghjklyxcvbnm,_,-"
|
||||
android:digits="0,1,2,3,4,5,6,7,8,9,*,qwertzuiopa sdfghjklyxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM|+-,_,-"
|
||||
android:maxLines="1"
|
||||
android:paddingStart="18dp"
|
||||
android:paddingEnd="15dp"
|
||||
|
|
|
@ -75,10 +75,10 @@
|
|||
|
||||
<ImageButton
|
||||
android:id="@+id/pSearchLogo"
|
||||
android:layout_width="31dp"
|
||||
android:layout_height="31dp"
|
||||
android:layout_width="33dp"
|
||||
android:layout_height="33dp"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_marginStart="14dp"
|
||||
android:background="@xml/gx_ripple_default_round"
|
||||
android:contentDescription="@string/GENERAL_TODO"
|
||||
android:onClick="onLockSecure"
|
||||
|
@ -89,11 +89,21 @@
|
|||
app:tint="@color/c_lock_tint"
|
||||
tools:ignore="RtlSymmetry" />
|
||||
|
||||
<View
|
||||
android:id="@+id/pSearchDivider"
|
||||
android:layout_width="1px"
|
||||
android:translationZ="1dp"
|
||||
android:layout_height="20dp"
|
||||
android:layout_marginLeft="3dp"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:background="@color/c_text_v6"
|
||||
tools:ignore="RtlSymmetry" />
|
||||
|
||||
<com.darkweb.genesissearchengine.appManager.homeManager.homeController.editTextManager
|
||||
android:id="@+id/pSearchInput"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginStart="-36dp"
|
||||
android:layout_marginStart="-41dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:imeOptions="flagNoExtractUi"
|
||||
android:layout_marginEnd="5dp"
|
||||
|
@ -111,8 +121,9 @@
|
|||
android:importantForAutofill="no"
|
||||
android:inputType="textNoSuggestions"
|
||||
android:maxLines="1"
|
||||
android:paddingStart="38dp"
|
||||
android:paddingStart="52dp"
|
||||
android:paddingEnd="15dp"
|
||||
android:paddingBottom="2dp"
|
||||
android:popupElevation="0dp"
|
||||
android:requiresFadingEdge="horizontal"
|
||||
android:selectAllOnFocus="true"
|
||||
|
@ -856,7 +867,7 @@
|
|||
android:id="@+id/pPopupLoadNewTab"
|
||||
layout="@layout/popup_load_new_tab"
|
||||
android:alpha="0"
|
||||
android:translationZ="0dp"
|
||||
android:elevation="5dp"
|
||||
android:visibility="gone" />
|
||||
|
||||
<androidx.fragment.app.FragmentContainerView
|
||||
|
|
|
@ -54,7 +54,7 @@
|
|||
android:layout_width="37dp"
|
||||
android:layout_height="37dp"
|
||||
android:layout_marginTop="-1dp"
|
||||
android:background="@color/button_gray"
|
||||
android:src="@xml/ic_baseline_browser"
|
||||
android:contentDescription="@string/GENERAL_TODO"
|
||||
android:textAlignment="center"
|
||||
android:textColor="@color/white"
|
||||
|
|
|
@ -221,7 +221,7 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@color/clear_alpha"
|
||||
android:translationZ="2dp"
|
||||
android:translationZ="112dp"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
android:contentDescription="@string/GENERAL_TODO" />
|
||||
|
|
|
@ -57,6 +57,7 @@
|
|||
<color name="c_profile_radial_inner">#2c2b31</color>
|
||||
<color name="c_profile_radial_outer">#2c2b31</color>
|
||||
<color name="c_edittext_background">#3c3946</color>
|
||||
<color name="c_border_background_dark">#2c2b31</color>
|
||||
<color name="c_edittext_background_error">#660b0b</color>
|
||||
<color name="c_edittext_background_dark">#24222a</color>
|
||||
<color name="c_menu_drop_shadow_05">#00000000</color>
|
||||
|
@ -73,6 +74,7 @@
|
|||
<color name="c_home_side">#28282a</color>
|
||||
<color name="c_alert_text">#ffffff</color>
|
||||
<color name="c_alert_text_inverted">#242B64</color>
|
||||
<color name="c_alert_text_inverted_v1">#ffffff</color>
|
||||
<color name="c_long_button">#3c3946</color>
|
||||
<color name="c_button_warning">#f65555</color>
|
||||
<color name="c_rateus_warning">#b3b3b3</color>
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
<color name="c_checkbox_tint">#3385ff</color>
|
||||
<color name="c_checkbox_tint_default">#3385ff</color>
|
||||
<color name="c_border_background">#f9f9f9</color>
|
||||
<color name="c_border_background_dark">#e2e7e9</color>
|
||||
<color name="c_border_background_divider">#f7f7f7</color>
|
||||
<color name="c_security_popup_background">#f5fff5</color>
|
||||
<color name="c_security_popup_divider">#e0ffe0</color>
|
||||
|
@ -83,6 +84,7 @@
|
|||
<color name="c_menu_drop_shadow_25">#25e6e6e6</color>
|
||||
<color name="c_alert_text">#212d45</color>
|
||||
<color name="c_alert_text_inverted">#ffffff</color>
|
||||
<color name="c_alert_text_inverted_v1">#ffffff</color>
|
||||
<color name="c_long_button">#7591bd</color>
|
||||
<color name="c_ripple_light">#e6e6e6</color>
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* Version */
|
||||
project.ext.vname = 'Build | Dark-Origin 1.4.2'
|
||||
project.ext.vcode = 75
|
||||
project.ext.vname = 'Build | Dark-Origin 1.4.4'
|
||||
project.ext.vcode = 85
|
||||
project.ext.buildType = 'release'
|
||||
|
||||
/* dimension */
|
||||
|
|
|
@ -512,9 +512,42 @@ public class OrbotService extends VpnService implements TorServiceConstants, Orb
|
|||
super.onCreate();
|
||||
|
||||
try {
|
||||
if (Build.VERSION.SDK_INT <= 25) {
|
||||
Intent notificationIntent = new Intent(this, OrbotService.class);
|
||||
|
||||
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0,
|
||||
notificationIntent, 0);
|
||||
|
||||
Notification notification = new NotificationCompat.Builder(this)
|
||||
.setSmallIcon(R.mipmap.ic_stat_tor_logo)
|
||||
.setContentTitle("Starting Genesis")
|
||||
.setContentIntent(pendingIntent).build();
|
||||
|
||||
startForeground(11337, notification);
|
||||
}else if(Build.VERSION.SDK_INT == 26){
|
||||
String id = "_channel_01";
|
||||
int importance = NotificationManager.IMPORTANCE_LOW;
|
||||
NotificationChannel mChannel = new NotificationChannel(id, "notification", importance);
|
||||
mChannel.enableLights(true);
|
||||
|
||||
Notification notification = new Notification.Builder(getApplicationContext(), id)
|
||||
.setSmallIcon(R.mipmap.ic_stat_tor_logo)
|
||||
.setContentTitle("Starting Genesis")
|
||||
.build();
|
||||
|
||||
NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
|
||||
if (mNotificationManager != null) {
|
||||
mNotificationManager.createNotificationChannel(mChannel);
|
||||
mNotificationManager.notify(11337, notification);
|
||||
}
|
||||
|
||||
startForeground(11337, notification);
|
||||
}
|
||||
|
||||
|
||||
mHandler = new Handler();
|
||||
|
||||
appBinHome = getFilesDir();//getDir(TorServiceConstants.DIRECTORY_TOR_BINARY, Application.MODE_PRIVATE);
|
||||
appBinHome = getFilesDir();
|
||||
if (!appBinHome.exists())
|
||||
appBinHome.mkdirs();
|
||||
|
||||
|
|
Loading…
Reference in New Issue