mirror of https://github.com/LeOS-GSI/LeOS-Genesis
Bug Fixes
parent
248b434418
commit
320e33b48f
|
@ -101,10 +101,9 @@ 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:80.0.20200903001900"
|
||||
implementation "org.mozilla.components:concept-fetch:73.0.9"
|
||||
implementation "org.mozilla.components:concept-base:73.0.9"
|
||||
implementation 'com.coolerfall:android-http-download-manager:1.6.3'
|
||||
implementation "org.mozilla.components:support-utils:73.0.9"
|
||||
|
||||
/*Crashlytics*/
|
||||
|
@ -122,6 +121,7 @@ dependencies {
|
|||
/* Helper Libraries */
|
||||
|
||||
implementation files('libs/httpclientandroidlib-1.2.1.jar')
|
||||
implementation 'com.coolerfall:android-http-download-manager:1.6.3'
|
||||
implementation 'com.github.intelligo-systems:slight:1.1.3'
|
||||
implementation 'com.github.apl-devs:appintro:v4.2.2'
|
||||
implementation 'com.android.support:design:28.0.0'
|
||||
|
|
|
@ -198,6 +198,7 @@
|
|||
android:name="com.google.android.gms.ads.APPLICATION_ID"
|
||||
android:value="ca-app-pub-6985886044951738~4671482729" />
|
||||
|
||||
|
||||
<!-- Development Build -->
|
||||
<!-- <meta-data
|
||||
android:name="com.google.android.gms.ads.APPLICATION_ID"
|
||||
|
@ -274,6 +275,7 @@
|
|||
</intent-filter>
|
||||
</service>
|
||||
|
||||
|
||||
</application>
|
||||
|
||||
</manifest>
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -31,7 +31,10 @@ public class activityStateManager extends Service {
|
|||
public void onDestroy() {
|
||||
Intent mServiceIntent = new Intent(this.getApplicationContext(), OrbotService.class);
|
||||
this.stopService(mServiceIntent);
|
||||
OrbotService.getServiceObject().onDestroy();
|
||||
|
||||
if(OrbotService.getServiceObject()!=null){
|
||||
OrbotService.getServiceObject().onDestroy();
|
||||
}
|
||||
|
||||
status.sSettingIsAppStarted = false;
|
||||
super.onDestroy();
|
||||
|
@ -43,7 +46,9 @@ public class activityStateManager extends Service {
|
|||
public void onTaskRemoved(Intent rootIntent) {
|
||||
Intent mServiceIntent = new Intent(this.getApplicationContext(), OrbotService.class);
|
||||
this.stopService(mServiceIntent);
|
||||
OrbotService.getServiceObject().onDestroy();
|
||||
if(OrbotService.getServiceObject()!=null){
|
||||
OrbotService.getServiceObject().onDestroy();
|
||||
}
|
||||
|
||||
status.sSettingIsAppStarted = false;
|
||||
|
||||
|
|
|
@ -3,16 +3,29 @@ package com.darkweb.genesissearchengine.appManager.homeManager.geckoManager;
|
|||
import android.content.Context;
|
||||
import androidx.core.view.NestedScrollingChildHelper;
|
||||
import androidx.core.view.ViewCompat;
|
||||
|
||||
import android.os.Handler;
|
||||
import android.util.AttributeSet;
|
||||
import android.util.Log;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
import android.view.ViewTreeObserver;
|
||||
|
||||
import com.darkweb.genesissearchengine.constants.status;
|
||||
import com.darkweb.genesissearchengine.dataManager.dataController;
|
||||
import com.darkweb.genesissearchengine.dataManager.dataEnums;
|
||||
import com.darkweb.genesissearchengine.eventObserver;
|
||||
import org.mozilla.geckoview.GeckoView;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
|
||||
import static com.darkweb.genesissearchengine.constants.enums.etype.GECKO_SCROLL_DOWN;
|
||||
import static com.darkweb.genesissearchengine.constants.enums.etype.GECKO_SCROLL_DOWN_MOVE;
|
||||
import static com.darkweb.genesissearchengine.constants.enums.etype.GECKO_SCROLL_UP;
|
||||
import static com.darkweb.genesissearchengine.constants.enums.etype.GECKO_SCROLL_UP_ALWAYS;
|
||||
import static com.darkweb.genesissearchengine.constants.enums.etype.GECKO_SCROLL_UP_MOVE;
|
||||
import static com.darkweb.genesissearchengine.constants.enums.etype.WAS_SCROLL_CHANGED;
|
||||
|
||||
public class NestedGeckoView extends GeckoView {
|
||||
private int mLastY;
|
||||
|
@ -23,6 +36,10 @@ public class NestedGeckoView extends GeckoView {
|
|||
private eventObserver.eventListener mEvent;
|
||||
private boolean mScrollable = true;
|
||||
private int mSwipeDistance = 0;
|
||||
private boolean mPressed = false;
|
||||
private boolean mForcedScroll = false;
|
||||
private int mScrollOffsetRoot = -1;
|
||||
private int mBottomOffsetRange = 0;
|
||||
|
||||
public void onSetHomeEvent(eventObserver.eventListener pEvent){
|
||||
mEvent = pEvent;
|
||||
|
@ -58,17 +75,34 @@ public class NestedGeckoView extends GeckoView {
|
|||
|
||||
switch (action) {
|
||||
case MotionEvent.ACTION_MOVE:
|
||||
// mEvent.invokeObserver(Collections.singletonList(null), GECKO_SCROLL_FINISHED);
|
||||
|
||||
boolean mBottomReached = false;
|
||||
Object mTemp = mEvent.invokeObserver(Collections.singletonList(null), WAS_SCROLL_CHANGED);
|
||||
|
||||
int deltaY = mLastY - eventY;
|
||||
mSwipeDistance += deltaY;
|
||||
|
||||
if(mSwipeDistance>=100 || mSwipeDistance<=-150){
|
||||
if(mTemp!=null && (int)mTemp==mScrollOffsetRoot){
|
||||
mBottomOffsetRange += 1;
|
||||
if(mBottomOffsetRange>5){
|
||||
mBottomReached = true;
|
||||
}
|
||||
}else {
|
||||
mBottomOffsetRange = 0;
|
||||
mBottomReached = false;
|
||||
}
|
||||
|
||||
if(mTemp!=null){
|
||||
mScrollOffsetRoot = (int)mTemp;
|
||||
}
|
||||
|
||||
Log.i("wow", eventY + " -- " + deltaY);
|
||||
|
||||
if(mSwipeDistance>=350 || mSwipeDistance<=-350){
|
||||
mScrollable = true;
|
||||
}
|
||||
|
||||
final boolean allowScroll = status.sFullScreenBrowsing && !status.sDisableExpandTemp && mScrollable;
|
||||
|
||||
final boolean allowScroll = status.sFullScreenBrowsing && !status.sDisableExpandTemp && (mScrollOffsetRoot>0 && mScrollable || mForcedScroll || mBottomReached);
|
||||
|
||||
if (allowScroll && dispatchNestedPreScroll(0, deltaY, mScrollConsumed, mScrollOffset)) {
|
||||
deltaY -= mScrollConsumed[1];
|
||||
|
@ -86,7 +120,6 @@ public class NestedGeckoView extends GeckoView {
|
|||
}
|
||||
|
||||
if(status.sFullScreenBrowsing){
|
||||
Log.i("wow1", eventY + "");
|
||||
}
|
||||
|
||||
break;
|
||||
|
@ -97,17 +130,34 @@ public class NestedGeckoView extends GeckoView {
|
|||
mLastY = eventY;
|
||||
startNestedScroll(ViewCompat.SCROLL_AXIS_VERTICAL);
|
||||
mEvent.invokeObserver(Collections.singletonList(null), GECKO_SCROLL_DOWN);
|
||||
mPressed = true;
|
||||
|
||||
new Handler().postDelayed(() ->
|
||||
{
|
||||
if(!mPressed && status.sFullScreenBrowsing && !status.sDisableExpandTemp){
|
||||
if(mSwipeDistance>75){
|
||||
mEvent.invokeObserver(Collections.singletonList(null), GECKO_SCROLL_UP_MOVE);
|
||||
mScrollable = true;
|
||||
}
|
||||
else if(mSwipeDistance<-75){
|
||||
mEvent.invokeObserver(Collections.singletonList(null), GECKO_SCROLL_DOWN_MOVE);
|
||||
mScrollable = true;
|
||||
}
|
||||
}
|
||||
}, 100);
|
||||
|
||||
break;
|
||||
|
||||
case MotionEvent.ACTION_UP:
|
||||
mPressed = false;
|
||||
mEvent.invokeObserver(Collections.singletonList(null), GECKO_SCROLL_UP_ALWAYS);
|
||||
case MotionEvent.ACTION_CANCEL:
|
||||
// mEvent.invokeObserver(Collections.singletonList(null), GECKO_SCROLL_FINISHED);
|
||||
mPressed = false;
|
||||
stopNestedScroll();
|
||||
break;
|
||||
|
||||
default:
|
||||
// mEvent.invokeObserver(Collections.singletonList(null), GECKO_SCROLL_FINISHED);
|
||||
mPressed = false;
|
||||
}
|
||||
|
||||
// Execute event handler from parent class in all cases
|
||||
|
@ -163,4 +213,12 @@ public class NestedGeckoView extends GeckoView {
|
|||
return 1;
|
||||
}
|
||||
|
||||
public boolean getPressedState(){
|
||||
return mPressed;
|
||||
}
|
||||
|
||||
public void setmForcedScroll(boolean pScroll){
|
||||
mForcedScroll = pScroll;
|
||||
}
|
||||
|
||||
}
|
|
@ -62,57 +62,57 @@ public class errorHandler
|
|||
private String errorToString(final int error) {
|
||||
switch (error) {
|
||||
case WebRequestError.ERROR_UNKNOWN:
|
||||
return "ERROR_UNKNOWN" ;
|
||||
return "ERROR_UNKNOWN | The network request tried to use an unknown socket type" ;
|
||||
case WebRequestError.ERROR_SECURITY_SSL:
|
||||
return "ERROR_SECURITY_SSL";
|
||||
return "ERROR_SECURITY_SSL | SSL negotiation problems has occured";
|
||||
case WebRequestError.ERROR_SECURITY_BAD_CERT:
|
||||
return "ERROR_SECURITY_BAD_CERT";
|
||||
return "ERROR_SECURITY_BAD_CERT | SSL certificate validation error has occured";
|
||||
case WebRequestError.ERROR_NET_RESET:
|
||||
return "ERROR_NET_RESET";
|
||||
return "ERROR_NET_RESET | The connection was reset";
|
||||
case WebRequestError.ERROR_NET_INTERRUPT:
|
||||
return "ERROR_NET_INTERRUPT";
|
||||
return "ERROR_NET_INTERRUPT | The network connection was interrupted";
|
||||
case WebRequestError.ERROR_NET_TIMEOUT:
|
||||
return "ERROR_NET_TIMEOUT";
|
||||
return "ERROR_NET_TIMEOUT | The network request timed out";
|
||||
case WebRequestError.ERROR_CONNECTION_REFUSED:
|
||||
return "ERROR_CONNECTION_REFUSED";
|
||||
return "ERROR_CONNECTION_REFUSED | The network request was refused by the server";
|
||||
case WebRequestError.ERROR_UNKNOWN_PROTOCOL:
|
||||
return "ERROR_UNKNOWN_PROTOCOL";
|
||||
return "ERROR_UNKNOWN_PROTOCOL | An unknown protocol was specified";
|
||||
case WebRequestError.ERROR_UNKNOWN_HOST:
|
||||
return "ERROR_UNKNOWN_HOST";
|
||||
return "ERROR_UNKNOWN_HOST | The host could not be resolved";
|
||||
case WebRequestError.ERROR_UNKNOWN_SOCKET_TYPE:
|
||||
return "ERROR_UNKNOWN_SOCKET_TYPE";
|
||||
return "ERROR_UNKNOWN_SOCKET_TYPE | The network request tried to use an unknown socket type";
|
||||
case WebRequestError.ERROR_UNKNOWN_PROXY_HOST:
|
||||
return "ERROR_UNKNOWN_PROXY_HOST";
|
||||
return "ERROR_UNKNOWN_PROXY_HOST | The host name of the proxy server could not be resolved";
|
||||
case WebRequestError.ERROR_MALFORMED_URI:
|
||||
return "ERROR_MALFORMED_URI";
|
||||
return "ERROR_MALFORMED_URI | An invalid URL was specified";
|
||||
case WebRequestError.ERROR_REDIRECT_LOOP:
|
||||
return "ERROR_REDIRECT_LOOP";
|
||||
return "ERROR_REDIRECT_LOOP | A redirect loop was detected";
|
||||
case WebRequestError.ERROR_SAFEBROWSING_PHISHING_URI:
|
||||
return "ERROR_SAFEBROWSING_PHISHING_URI";
|
||||
return "ERROR_SAFEBROWSING_PHISHING_URI | The requested URI was present in the \"phishing\" blocklist";
|
||||
case WebRequestError.ERROR_SAFEBROWSING_MALWARE_URI:
|
||||
return "ERROR_SAFEBROWSING_MALWARE_URI";
|
||||
return "ERROR_SAFEBROWSING_MALWARE_URI | The requested URI was present in the \"malware\" blocklist";
|
||||
case WebRequestError.ERROR_SAFEBROWSING_UNWANTED_URI:
|
||||
return "ERROR_SAFEBROWSING_UNWANTED_URI";
|
||||
return "ERROR_SAFEBROWSING_UNWANTED_URI | The requested URI was present in the \"unwanted\" blocklist";
|
||||
case WebRequestError.ERROR_SAFEBROWSING_HARMFUL_URI:
|
||||
return "ERROR_SAFEBROWSING_HARMFUL_URI";
|
||||
return "ERROR_SAFEBROWSING_HARMFUL_URI | The requested URI was present in the \"harmful\" blocklist";
|
||||
case WebRequestError.ERROR_CONTENT_CRASHED:
|
||||
return "ERROR_CONTENT_CRASHED";
|
||||
return "ERROR_CONTENT_CRASHED | The content process crashed";
|
||||
case WebRequestError.ERROR_OFFLINE:
|
||||
return "ERROR_OFFLINE";
|
||||
return "ERROR_OFFLINE | This device does not have a network connection";
|
||||
case WebRequestError.ERROR_PORT_BLOCKED:
|
||||
return "ERROR_PORT_BLOCKED";
|
||||
return "ERROR_PORT_BLOCKED | The request tried to use a port that is blocked by either the OS or Gecko";
|
||||
case WebRequestError.ERROR_PROXY_CONNECTION_REFUSED:
|
||||
return "ERROR_PROXY_CONNECTION_REFUSED";
|
||||
return "ERROR_PROXY_CONNECTION_REFUSED | The proxy server refused the connection";
|
||||
case WebRequestError.ERROR_FILE_NOT_FOUND:
|
||||
return "ERROR_FILE_NOT_FOUND";
|
||||
return "ERROR_FILE_NOT_FOUND | A file was not found";
|
||||
case WebRequestError.ERROR_FILE_ACCESS_DENIED:
|
||||
return "ERROR_FILE_ACCESS_DENIED";
|
||||
return "ERROR_FILE_ACCESS_DENIED | The OS blocked access to a file";
|
||||
case WebRequestError.ERROR_INVALID_CONTENT_ENCODING:
|
||||
return "ERROR_INVALID_CONTENT_ENCODING";
|
||||
return "ERROR_INVALID_CONTENT_ENCODING | The content has an invalid encoding";
|
||||
case WebRequestError.ERROR_UNSAFE_CONTENT_TYPE:
|
||||
return "ERROR_UNSAFE_CONTENT_TYPE";
|
||||
return "ERROR_UNSAFE_CONTENT_TYPE | A content type was returned which was deemed unsafe";
|
||||
case WebRequestError.ERROR_CORRUPTED_CONTENT:
|
||||
return "ERROR_CORRUPTED_CONTENT";
|
||||
return "ERROR_CORRUPTED_CONTENT | The content returned was corrupted";
|
||||
default:
|
||||
return "UNKNOWN";
|
||||
}
|
||||
|
@ -122,13 +122,13 @@ public class errorHandler
|
|||
switch (category)
|
||||
{
|
||||
case WebRequestError.ERROR_CATEGORY_UNKNOWN:
|
||||
return "ERROR_CATEGORY_UNKNOWN";
|
||||
return "ERROR_CATEGORY_UNKNOWN | " + "Unknown error occured from the server side";
|
||||
case WebRequestError.ERROR_CATEGORY_SECURITY:
|
||||
return "ERROR_CATEGORY_SECURITY";
|
||||
return "ERROR_CATEGORY_SECURITY | SSL certificate validation error has occured";
|
||||
case WebRequestError.ERROR_CATEGORY_NETWORK:
|
||||
return "ERROR_CATEGORY_NETWORK";
|
||||
return "ERROR_CATEGORY_NETWORK | A network related problem has occured";
|
||||
case WebRequestError.ERROR_CATEGORY_CONTENT:
|
||||
return "ERROR_CATEGORY_CONTENT";
|
||||
return "ERROR_CATEGORY_CONTENT | Invalid or corrupt webpage";
|
||||
case WebRequestError.ERROR_CATEGORY_URI:
|
||||
return "ERROR_CATEGORY_URI";
|
||||
case WebRequestError.ERROR_CATEGORY_PROXY:
|
||||
|
|
|
@ -453,6 +453,10 @@ public class geckoClients
|
|||
|
||||
}
|
||||
|
||||
public int getScrollOffset(){
|
||||
return mSession.getScrollOffset();
|
||||
}
|
||||
|
||||
public class geckoViewClientCallback implements eventObserver.eventListener{
|
||||
@Override
|
||||
public Object invokeObserver(List<Object> data, Object e_type)
|
||||
|
@ -460,14 +464,15 @@ public class geckoClients
|
|||
if(e_type.equals(enums.etype.M_CHANGE_HOME_THEME)){
|
||||
reinitHomeTheme();
|
||||
}
|
||||
else if(mSession!=null && mSession.isClosed()){
|
||||
return null;
|
||||
}else if(mSession!=null) {
|
||||
else if(mSession!=null) {
|
||||
if(e_type.equals(enums.etype.SESSION_ID)){
|
||||
return mSession.getSessionID();
|
||||
}
|
||||
else if (mSessionID!=null && mSessionID.equals(data.get(1)) || e_type.equals(enums.etype.M_RATE_COUNT) || e_type.equals(enums.etype.FINDER_RESULT_CALLBACK) || e_type.equals(enums.etype.ON_UPDATE_TAB_TITLE) || e_type.equals(enums.etype.on_update_favicon) ||e_type.equals(enums.etype.on_update_history) || e_type.equals(enums.etype.on_request_completed) || e_type.equals(enums.etype.on_update_suggestion) || e_type.equals(enums.etype.on_update_suggestion_url))
|
||||
{
|
||||
if(mSession!=null && mSession.isClosed()){
|
||||
return null;
|
||||
}
|
||||
if (e_type.equals(on_handle_external_intent))
|
||||
{
|
||||
try {
|
||||
|
|
|
@ -101,6 +101,7 @@ geckoSession extends GeckoSession implements GeckoSession.MediaDelegate,GeckoSes
|
|||
private boolean mPreviousErrorPage = false;
|
||||
private boolean mRemovableFromBackPressed = false;
|
||||
private boolean mThemeChanged = false;
|
||||
private int mScollOffset = 0;
|
||||
|
||||
/*Temp Variables*/
|
||||
private GeckoSession.HistoryDelegate.HistoryList mHistoryList = null;
|
||||
|
@ -177,6 +178,10 @@ geckoSession extends GeckoSession implements GeckoSession.MediaDelegate,GeckoSes
|
|||
}
|
||||
|
||||
public void onSessionReinit(){
|
||||
if(mClosed){
|
||||
return;
|
||||
}
|
||||
|
||||
mCrashCount = 0;
|
||||
if(!isFirstPaintExecuted){
|
||||
event.invokeObserver(Arrays.asList(mCurrentURL,mSessionID,mCurrentTitle, m_current_url_id), enums.etype.ON_SESSION_REINIT);
|
||||
|
@ -215,7 +220,19 @@ geckoSession extends GeckoSession implements GeckoSession.MediaDelegate,GeckoSes
|
|||
/*Scroll Delegate*/
|
||||
@UiThread
|
||||
public void onScrollChanged(@NonNull GeckoSession session, int scrollX, int scrollY) {
|
||||
mScollOffset = scrollY;
|
||||
event.invokeObserver(Arrays.asList(mCurrentURL,mSessionID,mCurrentTitle, m_current_url_id, mTheme), enums.etype.M_UPDATE_PIXEL_BACKGROUND);
|
||||
if(scrollY<=3){
|
||||
event.invokeObserver(Arrays.asList(mCurrentURL,mSessionID,mCurrentTitle, m_current_url_id, mTheme), enums.etype.M_ON_SCROLL_TOP_BOUNDARIES);
|
||||
}else if(scrollY<=helperMethod.pxFromDp(30)){
|
||||
event.invokeObserver(Arrays.asList(mCurrentURL,mSessionID,mCurrentTitle, m_current_url_id, mTheme), enums.etype.M_ON_SCROLL_BOUNDARIES);
|
||||
}else {
|
||||
event.invokeObserver(Arrays.asList(mCurrentURL,mSessionID,mCurrentTitle, m_current_url_id, mTheme), enums.etype.M_ON_SCROLL_NO_BOUNDARIES);
|
||||
}
|
||||
}
|
||||
|
||||
public int getScrollOffset(){
|
||||
return mScollOffset;
|
||||
}
|
||||
|
||||
/*Autofill Delegate*/
|
||||
|
@ -462,6 +479,12 @@ geckoSession extends GeckoSession implements GeckoSession.MediaDelegate,GeckoSes
|
|||
|
||||
public GeckoResult<AllowOrDeny> onLoadRequest(@NonNull GeckoSession var2, @NonNull GeckoSession.NavigationDelegate.LoadRequest var1) {
|
||||
mPreviousErrorPage = false;
|
||||
|
||||
if(var1.uri.endsWith("genesisconfigurenewidentity.com/")){
|
||||
initURL(mPrevURL);
|
||||
event.invokeObserver(Arrays.asList(mCurrentURL,mSessionID,mCurrentTitle, mTheme), enums.etype.M_NEW_IDENTITY_MESSAGED);
|
||||
return GeckoResult.fromValue(AllowOrDeny.DENY);
|
||||
}
|
||||
if(!var1.uri.startsWith(CONST_GENESIS_URL_CACHED) && !var1.uri.startsWith(CONST_GENESIS_URL_CACHED_DARK) && var1.uri.startsWith("https://genesishiddentechnologies.com") && !var1.uri.contains(constants.CONST_GENESIS_LOCAL_TIME_GET_KEY) && !var1.uri.contains(constants.CONST_GENESIS_LOCAL_TIME_GET_KEY)){
|
||||
String mVerificationURL = setGenesisVerificationToken(var1.uri);
|
||||
initURL(mVerificationURL);
|
||||
|
@ -548,6 +571,9 @@ geckoSession extends GeckoSession implements GeckoSession.MediaDelegate,GeckoSes
|
|||
|
||||
|
||||
public GeckoResult<String> onLoadError(@NonNull GeckoSession var1, @Nullable String var2, WebRequestError var3) {
|
||||
if(mCurrentURL.contains("genesis.onion")){
|
||||
event.invokeObserver(Arrays.asList(mCurrentURL,mSessionID,mCurrentTitle, mTheme), enums.etype.M_NEW_IDENTITY);
|
||||
}
|
||||
if(status.sSettingIsAppStarted && orbotLocalConstants.mIsTorInitialized){
|
||||
errorHandler handler = new errorHandler();
|
||||
mProgress = 0;
|
||||
|
@ -651,15 +677,22 @@ geckoSession extends GeckoSession implements GeckoSession.MediaDelegate,GeckoSes
|
|||
int mCrashCount = 0;
|
||||
@UiThread
|
||||
public void onCrash(@NonNull GeckoSession session) {
|
||||
if(!mClosed){
|
||||
String mSessionID = (String) event.invokeObserver(null, enums.etype.SESSION_ID);
|
||||
if(!mClosed && status.sSettingIsAppStarted){
|
||||
if(event!=null){
|
||||
return;
|
||||
}
|
||||
Object mSessionObject = event.invokeObserver(null, enums.etype.SESSION_ID);
|
||||
if(mSessionObject==null || getSessionID()==null){
|
||||
return;
|
||||
}
|
||||
String mSessionID = (String) mSessionObject;
|
||||
if(mSessionID.equals(getSessionID())){
|
||||
if(mCrashCount<=5){
|
||||
final Handler handler = new Handler();
|
||||
handler.postDelayed(() -> {
|
||||
if(!session.isOpen()){
|
||||
try {
|
||||
event.invokeObserver(Arrays.asList(mCurrentURL,mSessionID,mCurrentTitle, m_current_url_id, mTheme, this), enums.etype.M_OPEN_SESSION);
|
||||
}
|
||||
}catch (Exception ignored){}
|
||||
}, mCrashCount*500);
|
||||
}
|
||||
mCrashCount+=1;
|
||||
|
@ -669,14 +702,25 @@ geckoSession extends GeckoSession implements GeckoSession.MediaDelegate,GeckoSes
|
|||
|
||||
@UiThread
|
||||
public void onKill(@NonNull GeckoSession session) {
|
||||
if(!mClosed){
|
||||
String mSessionID = (String) event.invokeObserver(null, enums.etype.SESSION_ID);
|
||||
if(!mClosed && status.sSettingIsAppStarted){
|
||||
if(event!=null){
|
||||
return;
|
||||
}
|
||||
Object mSessionObject = event.invokeObserver(null, enums.etype.SESSION_ID);
|
||||
if(mSessionObject==null || getSessionID()==null){
|
||||
return;
|
||||
}
|
||||
String mSessionID = (String) mSessionObject;
|
||||
|
||||
|
||||
if(mSessionID.equals(getSessionID())){
|
||||
if(mCrashCount<=5){
|
||||
final Handler handler = new Handler();
|
||||
handler.postDelayed(() -> {
|
||||
if(!session.isOpen()){
|
||||
event.invokeObserver(Arrays.asList(mCurrentURL,mSessionID,mCurrentTitle, m_current_url_id, mTheme, this), enums.etype.M_OPEN_SESSION);
|
||||
if(status.sSettingIsAppStarted && !session.isOpen()){
|
||||
try {
|
||||
event.invokeObserver(Arrays.asList(mCurrentURL,mSessionID,mCurrentTitle, m_current_url_id, mTheme, this), enums.etype.M_OPEN_SESSION);
|
||||
}catch (Exception ignored){}
|
||||
}
|
||||
}, mCrashCount*500);
|
||||
}
|
||||
|
@ -971,7 +1015,10 @@ geckoSession extends GeckoSession implements GeckoSession.MediaDelegate,GeckoSes
|
|||
|
||||
public void closeSessionInstant(){
|
||||
mSessionID = "-1";
|
||||
mClosed = true;
|
||||
new Handler().postDelayed(() ->
|
||||
{
|
||||
mClosed = true;
|
||||
}, 250);
|
||||
close();
|
||||
}
|
||||
|
||||
|
@ -1013,6 +1060,11 @@ geckoSession extends GeckoSession implements GeckoSession.MediaDelegate,GeckoSes
|
|||
void goBackSession(){
|
||||
wasBackPressed = true;
|
||||
goBack();
|
||||
|
||||
try {
|
||||
if (mHistoryList!=null && mHistoryList.size()>=1)
|
||||
event.invokeObserver(Arrays.asList(mHistoryList.get(mHistoryList.getCurrentIndex()-1).getUri(),mSessionID,mCurrentTitle, m_current_url_id, mTheme, this), enums.etype.ON_UPDATE_SEARCH_BAR);
|
||||
}catch (Exception ignored){}
|
||||
}
|
||||
|
||||
void goForwardSession(){
|
||||
|
@ -1053,7 +1105,7 @@ geckoSession extends GeckoSession implements GeckoSession.MediaDelegate,GeckoSes
|
|||
|
||||
private void checkApplicationRate(){
|
||||
if(status.sSettingIsAppStarted){
|
||||
if(status.sRateCount==40){
|
||||
if(status.sRateCount==10){
|
||||
event.invokeObserver(Arrays.asList(mCurrentURL,mSessionID,mCurrentTitle, mTheme), M_RATE_APPLICATION);
|
||||
}
|
||||
status.sRateCount+=1;
|
||||
|
|
|
@ -232,7 +232,9 @@ public class selectionActionDelegate implements ActionMode.Callback,
|
|||
return false;
|
||||
}
|
||||
if (id.equals("SEARCH")) {
|
||||
activityContextManager.getInstance().getHomeController().onSearchString(mSelection.text);
|
||||
if(activityContextManager.getInstance()!=null && activityContextManager.getInstance().getHomeController()!=null){
|
||||
activityContextManager.getInstance().getHomeController().onSearchString(mSelection.text);
|
||||
}
|
||||
clearSelection();
|
||||
mActionMode.finish();
|
||||
return false;
|
||||
|
@ -415,12 +417,13 @@ public class selectionActionDelegate implements ActionMode.Callback,
|
|||
return;
|
||||
}
|
||||
|
||||
if (mUseFloatingToolbar) {
|
||||
mActionMode = mActivity.startActionMode(new Callback2Wrapper(),
|
||||
ActionMode.TYPE_FLOATING);
|
||||
} else {
|
||||
mActionMode = mActivity.startActionMode(this);
|
||||
}
|
||||
try{
|
||||
if (mUseFloatingToolbar) {
|
||||
mActionMode = mActivity.startActionMode(new Callback2Wrapper(),ActionMode.TYPE_FLOATING);
|
||||
} else {
|
||||
mActionMode = mActivity.startActionMode(this);
|
||||
}
|
||||
}catch (Exception ignored){}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
package com.darkweb.genesissearchengine.appManager.homeManager.homeController;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.ActivityOptions;
|
||||
import android.app.DownloadManager;
|
||||
import android.app.Notification;
|
||||
import android.content.ActivityNotFoundException;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.ComponentCallbacks2;
|
||||
|
@ -14,6 +14,7 @@ import android.content.res.Configuration;
|
|||
import android.database.Cursor;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.Rect;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
|
@ -31,6 +32,7 @@ import android.view.inputmethod.EditorInfo;
|
|||
import android.webkit.URLUtil;
|
||||
import android.widget.*;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.RequiresApi;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.appcompat.app.AppCompatDelegate;
|
||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
|
@ -81,7 +83,6 @@ import org.torproject.android.proxy.util.Prefs;
|
|||
import org.torproject.android.proxy.wrapper.LocaleHelper;
|
||||
import org.torproject.android.proxy.wrapper.orbotLocalConstants;
|
||||
|
||||
import java.io.StringWriter;
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
|
@ -99,9 +100,12 @@ import static com.darkweb.genesissearchengine.constants.constants.CONST_GENESIS_
|
|||
import static com.darkweb.genesissearchengine.constants.constants.CONST_GENESIS_URL_CACHED;
|
||||
import static com.darkweb.genesissearchengine.constants.constants.CONST_GENESIS_URL_CACHED_DARK;
|
||||
import static com.darkweb.genesissearchengine.constants.enums.etype.GECKO_SCROLL_DOWN;
|
||||
import static com.darkweb.genesissearchengine.constants.enums.etype.GECKO_SCROLL_DOWN_MOVE;
|
||||
import static com.darkweb.genesissearchengine.constants.enums.etype.GECKO_SCROLL_UP_MOVE;
|
||||
import static com.darkweb.genesissearchengine.constants.enums.etype.M_INITIALIZE_TAB_LINK;
|
||||
import static com.darkweb.genesissearchengine.constants.enums.etype.M_INITIALIZE_TAB_SINGLE;
|
||||
import static com.darkweb.genesissearchengine.constants.enums.etype.M_NEW_LINK_IN_NEW_TAB;
|
||||
import static com.darkweb.genesissearchengine.constants.enums.etype.WAS_SCROLL_CHANGED;
|
||||
import static com.darkweb.genesissearchengine.constants.enums.etype.open_new_tab;
|
||||
import static com.darkweb.genesissearchengine.constants.sql.SQL_CLEAR_HISTORY;
|
||||
import static com.darkweb.genesissearchengine.pluginManager.pluginEnums.eMessageManager.*;
|
||||
|
@ -178,6 +182,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
|
||||
/*-------------------------------------------------------INITIALIZATION-------------------------------------------------------*/
|
||||
|
||||
@RequiresApi(api = Build.VERSION_CODES.M)
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState)
|
||||
{
|
||||
|
@ -195,7 +200,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.home_view);
|
||||
|
||||
Thread.setDefaultUncaughtExceptionHandler((t, e) -> {
|
||||
/* Thread.setDefaultUncaughtExceptionHandler((t, e) -> {
|
||||
status.sSettingIsAppStarted = false;
|
||||
finishAndRemoveTask();
|
||||
|
||||
|
@ -206,7 +211,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
this.finish();
|
||||
|
||||
Runtime.getRuntime().exit(0);
|
||||
});
|
||||
}); */
|
||||
|
||||
initPreFixes();
|
||||
activityContextManager.getInstance().setHomeController(this);
|
||||
|
@ -339,7 +344,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
if(!status.mThemeApplying){
|
||||
mHomeViewController.onUpdateSearchBar(model.getSession().getCurrentURL(), false, false, false);
|
||||
}
|
||||
onLoadTab(model.getSession(),false,true);
|
||||
onLoadTab(model.getSession(),false,true, false);
|
||||
}else {
|
||||
onNewIntent(getIntent());
|
||||
onOpenLinkNewTab(helperMethod.getDomainName(mHomeModel.getSearchEngine()));
|
||||
|
@ -580,7 +585,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
mGeckoClient.loadURL(url.replace("genesis.onion","genesishiddentechnologies.com"),mGeckoView, homeController.this);
|
||||
}
|
||||
|
||||
public void onLoadTab(geckoSession mTempSession, boolean isSessionClosed, boolean pExpandAppBar){
|
||||
public void onLoadTab(geckoSession mTempSession, boolean isSessionClosed, boolean pExpandAppBar, boolean pForced){
|
||||
|
||||
if(!isSessionClosed){
|
||||
dataController.getInstance().invokeTab(dataEnums.eTabCommands.MOVE_TAB_TO_TOP, Collections.singletonList(mTempSession));
|
||||
|
@ -630,7 +635,11 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
mHomeViewController.updateBannerAdvertStatus(true, (boolean)pluginController.getInstance().onAdsInvoke(null, pluginEnums.eAdManager.M_IS_ADVERT_LOADED));
|
||||
}
|
||||
|
||||
mHomeViewController.onProgressBarUpdate(mGeckoClient.getSession().getProgress(),true);
|
||||
//if(!pForced){
|
||||
if(mGeckoClient.getSession().getProgress()!=100){
|
||||
mHomeViewController.onProgressBarUpdate(mTempSession.getProgress(),true);
|
||||
}
|
||||
//}
|
||||
dataController.getInstance().invokeTab(dataEnums.eTabCommands.M_UPDATE_PIXEL, Arrays.asList(mGeckoClient.getSession().getSessionID(), mRenderedBitmap, null, mGeckoView, false));
|
||||
|
||||
|
||||
|
@ -769,6 +778,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
super.onDestroy();
|
||||
}
|
||||
|
||||
@RequiresApi(api = Build.VERSION_CODES.M)
|
||||
@SuppressLint("ClickableViewAccessibility")
|
||||
private void initializeLocalEventHandlers() {
|
||||
|
||||
|
@ -814,11 +824,12 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
if (actionId == EditorInfo.IME_ACTION_NEXT || actionId == EditorInfo.IME_ACTION_GO || actionId == EditorInfo.IME_ACTION_DONE)
|
||||
{
|
||||
onSearchBarInvoked(v);
|
||||
mHomeViewController.onUpdateSearchBar(mGeckoClient.getSession().getCurrentURL(),true,true, false);
|
||||
mHomeViewController.onUpdateSearchBar(mGeckoClient.getSession().getCurrentURL(),false,true, false);
|
||||
mHomeViewController.onClearSelections(true);
|
||||
mGeckoClient.setLoading(true);
|
||||
final Handler handler = new Handler();
|
||||
handler.postDelayed(() -> mHomeViewController.onClearSelections(false), 500);
|
||||
|
||||
mSearchbar.clearFocus();
|
||||
mHomeViewController.onUpdateSearchBar(mGeckoClient.getSession().getCurrentURL(),false,false, true);
|
||||
}
|
||||
return true;
|
||||
});
|
||||
|
@ -953,6 +964,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
if(!isFocusChanging){
|
||||
if(!status.mThemeApplying){
|
||||
mHomeViewController.initSearchBarFocus(true, isKeyboardOpened);
|
||||
mHomeViewController.onUpdateSearchBar(mGeckoClient.getSession().getCurrentURL(),true,true, false);
|
||||
}
|
||||
isSuggestionChanged = true;
|
||||
isSuggestionSearchOpened = false;
|
||||
|
@ -961,14 +973,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())) && scrollY > oldScrollY) {
|
||||
}
|
||||
}
|
||||
onInvokePixelGenerator();
|
||||
});
|
||||
}
|
||||
|
||||
private ArrayList<historyRowModel> mSuggestions;
|
||||
|
@ -1022,11 +1026,10 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
}
|
||||
|
||||
public void onHomeButton(View view){
|
||||
|
||||
pluginController.getInstance().onAdsInvoke(Collections.singletonList(this), pluginEnums.eAdManager.M_INITIALIZE_BANNER_ADS);
|
||||
mGeckoClient.getSession().setTheme(null);
|
||||
mHomeViewController.onUpdateStatusBarTheme(mGeckoClient.getTheme(), true);
|
||||
onLoadURL(helperMethod.getDomainName(mHomeModel.getSearchEngine()));
|
||||
mHomeViewController.onUpdateLogo();
|
||||
}
|
||||
|
||||
/*TAB CONTROLLER EVENTS*/
|
||||
|
@ -1046,11 +1049,8 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
mHomeViewController.onHideLoadTabDialog();
|
||||
tabRowModel model = (tabRowModel)dataController.getInstance().invokeTab(dataEnums.eTabCommands.GET_RECENT_TAB, null);
|
||||
if(model!=null && !mGeckoClient.getSession().getSessionID().equals(model.getSession().getSessionID())){
|
||||
Log.i("FUCK::1",model.getSession().getCurrentURL());
|
||||
mHomeViewController.onUpdateSearchBar(model.getSession().getCurrentURL(),false,false,true);
|
||||
Log.i("FUCK::2",model.getSession().getCurrentURL());
|
||||
onLoadTab(model.getSession(), false,true);
|
||||
Log.i("FUCK::3",model.getSession().getCurrentURL());
|
||||
onLoadTab(model.getSession(), false,true, false);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1100,7 +1100,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
|
||||
public void postNewLinkTabAnimationInBackgroundTrigger(String url){
|
||||
String mExtention = helperMethod.getMimeType(url, this);
|
||||
if(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")){
|
||||
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);
|
||||
|
@ -1112,12 +1112,12 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
geckoSession mSession = mGeckoClient.getSession();
|
||||
dataController.getInstance().invokeTab(dataEnums.eTabCommands.M_UPDATE_PIXEL, Arrays.asList(mGeckoClient.getSession().getSessionID(), mRenderedBitmap, null, mGeckoView,false));
|
||||
mGeckoClient.initialize(mGeckoView, new geckoViewCallback(), this,true);
|
||||
mHomeViewController.progressBarReset();
|
||||
mGeckoClient.initURL(url);
|
||||
mGeckoClient.loadURL(url, mGeckoView, homeController.this);
|
||||
mGeckoClient.getSession().setURL(url);
|
||||
onSaveCurrentTab(mGeckoClient.getSession(),false);
|
||||
onLoadTab(mSession,false,false);
|
||||
onLoadTab(mSession,false,false, false);
|
||||
mHomeViewController.progressBarReset();
|
||||
|
||||
|
||||
mAppBar.setTag(R.id.expandableBar,true);
|
||||
|
@ -1494,13 +1494,24 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
|
||||
tabRowModel model = (tabRowModel)dataController.getInstance().invokeTab(dataEnums.eTabCommands.GET_CURRENT_TAB, null);
|
||||
if(model==null){
|
||||
mHomeViewController.onUpdateSearchBar(status.sSettingSearchStatus,false,true, false);
|
||||
mHomeViewController.onProgressBarUpdate(5, false);
|
||||
mGeckoView.releaseSession();
|
||||
initializeGeckoView(false,false);
|
||||
onLoadURL(helperMethod.getDomainName(status.sSettingSearchStatus));
|
||||
if(mGeckoClient.getSession().getProgress()!=100){
|
||||
mHomeViewController.onProgressBarUpdate(mGeckoClient.getSession().getProgress(),true);
|
||||
}else{
|
||||
mProgressBar.setProgress(0);
|
||||
}
|
||||
}else {
|
||||
if(model.getSession().getSessionID() != mGeckoClient.getSession().getSessionID()){
|
||||
onLoadTab(model.getSession(),false,true);
|
||||
onLoadTab(model.getSession(),false,true, false);
|
||||
}
|
||||
if(mGeckoClient.getSession().getProgress()!=100){
|
||||
mHomeViewController.onProgressBarUpdate(mGeckoClient.getSession().getProgress(),true);
|
||||
}else{
|
||||
mProgressBar.setProgress(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1545,6 +1556,9 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
}
|
||||
|
||||
public void onVoiceClick(View view) {
|
||||
mSearchbar.clearFocus();
|
||||
mHomeViewController.onUpdateSearchBar(mGeckoClient.getSession().getCurrentURL(),false,false, true);
|
||||
|
||||
if(status.sSettingEnableVoiceInput || status.sWidgetResponse == enums.WidgetResponse.VOICE){
|
||||
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
|
||||
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
|
||||
|
@ -1556,7 +1570,6 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
|
||||
}
|
||||
}else {
|
||||
mSearchbar.clearFocus();
|
||||
new Handler().postDelayed(() ->
|
||||
{
|
||||
mHomeViewController.onUpdateSearchBar(mGeckoClient.getSession().getCurrentURL(),false,true, false);
|
||||
|
@ -1624,7 +1637,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
|
||||
if(model!=null){
|
||||
if(mTabFragment.getVisibility()!=View.VISIBLE){
|
||||
onLoadTab(model.getSession(),true, true);
|
||||
onLoadTab(model.getSession(),true, true, false);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -1654,7 +1667,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
}
|
||||
|
||||
public void onClearSearchBar(View view){
|
||||
mHomeViewController.onUpdateSearchBar(strings.GENERIC_EMPTY_STR, false, true, false);
|
||||
mHomeViewController.onUpdateSearchBar(strings.GENERIC_EMPTY_STR, false, true, true);
|
||||
}
|
||||
|
||||
public void onFindNext(View view){
|
||||
|
@ -1662,6 +1675,9 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
}
|
||||
|
||||
public void onOpenSearchEngine(View view){
|
||||
mSearchbar.clearFocus();
|
||||
mHomeViewController.onUpdateSearchBar(mGeckoClient.getSession().getCurrentURL(),false,false, true);
|
||||
|
||||
mSearchBarPreviousText = mSearchbar.getText().toString();
|
||||
isSuggestionSearchOpened = true;
|
||||
helperMethod.openActivity(settingSearchController.class,constants.CONST_LIST_HISTORY, homeController.this,true);
|
||||
|
@ -1930,16 +1946,26 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
mHomeViewController.onClearSelections(isKeyboardOpened);
|
||||
mSearchbar.clearFocus();
|
||||
}
|
||||
else if(e_type.equals(GECKO_SCROLL_DOWN_MOVE)){
|
||||
mAppBar.setExpanded(true,false);
|
||||
}
|
||||
else if(e_type.equals(GECKO_SCROLL_UP_MOVE)){
|
||||
mAppBar.setExpanded(false,false);
|
||||
}
|
||||
else if(e_type.equals(WAS_SCROLL_CHANGED)){
|
||||
return mGeckoClient.getScrollOffset();
|
||||
}
|
||||
else {
|
||||
int[] locatiosn = new int[2];
|
||||
mSearchbar.getLocationOnScreen(locatiosn);
|
||||
int ys = locatiosn[1];
|
||||
if(ys!=0){
|
||||
if(ys<=8){
|
||||
mHomeViewController.shrinkTopBar(true, mGeckoView.getMaxY());
|
||||
}else {
|
||||
mHomeViewController.expandTopBar(true, mGeckoView.getMaxY());
|
||||
}
|
||||
Rect rectf = new Rect();
|
||||
mAppBar.getLocalVisibleRect(rectf);
|
||||
int height = mAppBar.getHeight();
|
||||
|
||||
Log.i("asddasas","asdasd : " + rectf.top + " : " + height);
|
||||
if(rectf.top!=0 && rectf.top + height!=0)
|
||||
if(rectf.top<=height/2){
|
||||
mHomeViewController.expandTopBar(true, mGeckoView.getMaxY());
|
||||
}else {
|
||||
mHomeViewController.shrinkTopBar(true, mGeckoView.getMaxY());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2006,6 +2032,10 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
{
|
||||
mHomeViewController.onSetBannerAdMargin((boolean)data.get(0),(boolean)pluginController.getInstance().onAdsInvoke(null, pluginEnums.eAdManager.M_IS_ADVERT_LOADED));
|
||||
}
|
||||
else if(e_type.equals(enums.etype.M_GET_CURRENT_URL))
|
||||
{
|
||||
return mGeckoClient.getSession().getCurrentURL();
|
||||
}
|
||||
else if(e_type.equals(enums.etype.M_SPLASH_DISABLE))
|
||||
{
|
||||
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_INSTALLED,true));
|
||||
|
@ -2071,7 +2101,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
else if(e_type.equals(enums.etype.M_HOME_PAGE)){
|
||||
geckoSession mSession = (geckoSession)dataController.getInstance().invokeTab(dataEnums.eTabCommands.M_HOME_PAGE, null);
|
||||
if(mSession!=null){
|
||||
onLoadTab(mSession, false,true);
|
||||
onLoadTab(mSession, false,true, false);
|
||||
}
|
||||
return dataController.getInstance().invokeTab(dataEnums.eTabCommands.M_HOME_PAGE, null);
|
||||
}
|
||||
|
@ -2187,7 +2217,18 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
public Object invokeObserver(List<Object> data, Object e_type)
|
||||
{
|
||||
|
||||
if(e_type.equals(enums.etype.ON_EXPAND_TOP_BAR)){
|
||||
if(e_type.equals(enums.etype.M_ON_SCROLL_BOUNDARIES)){
|
||||
mGeckoView.setmForcedScroll(true);
|
||||
}
|
||||
else if(e_type.equals(enums.etype.M_ON_SCROLL_TOP_BOUNDARIES)){
|
||||
if(!mGeckoView.getPressedState()){
|
||||
mHomeViewController.expandTopBar(true, mGeckoView.getMaxY());
|
||||
}
|
||||
}
|
||||
else if(e_type.equals(enums.etype.M_ON_SCROLL_NO_BOUNDARIES)){
|
||||
mGeckoView.setmForcedScroll(false);
|
||||
}
|
||||
else if(e_type.equals(enums.etype.ON_EXPAND_TOP_BAR)){
|
||||
mHomeViewController.expandTopBar(false, mGeckoView.getMaxY());
|
||||
}
|
||||
else if(e_type.equals(enums.etype.M_ON_BANNER_UPDATE)){
|
||||
|
@ -2315,7 +2356,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
else if(e_type.equals(enums.etype.M_OPEN_SESSION)){
|
||||
tabRowModel model = (tabRowModel)dataController.getInstance().invokeTab(dataEnums.eTabCommands.GET_CURRENT_TAB, null);
|
||||
if(model!=null){
|
||||
onLoadTab(model.getSession(),true,true);
|
||||
onLoadTab(model.getSession(),true,true, false);
|
||||
onLoadURL(model.getSession().getCurrentURL());
|
||||
}
|
||||
}
|
||||
|
@ -2331,7 +2372,14 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
else if(e_type.equals(enums.etype.M_ORBOT_LOADING)){
|
||||
pluginController.getInstance().onMessageManagerInvoke(Collections.singletonList(homeController.this), M_ORBOT_LOADING);
|
||||
}
|
||||
|
||||
else if(e_type.equals(enums.etype.M_NEW_IDENTITY)){
|
||||
pluginController.getInstance().onOrbotInvoke(null, pluginEnums.eOrbotManager.M_NEW_CIRCUIT);
|
||||
}
|
||||
else if(e_type.equals(enums.etype.M_NEW_IDENTITY_MESSAGED)){
|
||||
pluginController.getInstance().onOrbotInvoke(null, pluginEnums.eOrbotManager.M_NEW_CIRCUIT);
|
||||
pluginController.getInstance().onMessageManagerInvoke(Collections.singletonList(homeController.this), M_NEW_IDENTITY);
|
||||
mGeckoClient.onReload(mGeckoView, homeController.this);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -305,7 +305,6 @@ class homeViewController
|
|||
public void onHideTabContainer(){
|
||||
onHideLoadTabDialog();
|
||||
if(mTabFragment.getAlpha()>0 || mTabFragment.getVisibility()!=View.GONE){
|
||||
Log.i("SUPERFUCK4","SUPERFUCK");
|
||||
mNewTab.setPressed(false);
|
||||
new Handler().postDelayed(() ->
|
||||
{
|
||||
|
@ -384,13 +383,17 @@ class homeViewController
|
|||
}else {
|
||||
mSearchbar.setPadding(mSearchbar.getPaddingLeft(),0,helperMethod.pxFromDp(5),0);
|
||||
ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) mSearchbar.getLayoutParams();
|
||||
params.rightMargin = helperMethod.pxFromDp(10);
|
||||
params.rightMargin = helperMethod.pxFromDp(5);
|
||||
}
|
||||
|
||||
});
|
||||
}else {
|
||||
|
||||
onUpdateSearchIcon(0);
|
||||
if(!mSearchbar.getText().toString().contains(".")){
|
||||
onUpdateSearchIcon(0);
|
||||
}else {
|
||||
onUpdateSearchIcon(2);
|
||||
}
|
||||
mSearchbar.setMovementMethod(mSearchBarMovementMethod);
|
||||
mSearchbar.setFadingEdgeLength(helperMethod.pxFromDp(0));
|
||||
|
||||
|
@ -600,12 +603,15 @@ class homeViewController
|
|||
{
|
||||
boolean mFastConnect = !status.sRestoreTabs && status.sAppInstalled && status.sSettingSearchStatus.equals(constants.CONST_BACKEND_GENESIS_URL) && !status.sBridgeStatus;
|
||||
if(mFastConnect){
|
||||
sleep(1000);
|
||||
if(orbotLocalConstants.mNetworkState){
|
||||
sleep(1000);
|
||||
orbotLocalConstants.mTorLogsStatus = "Starting Genesis | Please Wait ...";
|
||||
mEvent.invokeObserver(Collections.singletonList(status.sSettingSearchStatus), enums.etype.recheck_orbot);
|
||||
startPostTask(messages.MESSAGE_UPDATE_LOADING_TEXT);
|
||||
break;
|
||||
}else{
|
||||
orbotLocalConstants.mTorLogsStatus = "No internet connection";
|
||||
startPostTask(messages.MESSAGE_UPDATE_LOADING_TEXT);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -750,6 +756,8 @@ class homeViewController
|
|||
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void shrinkTopBar(boolean pForced, int pOffsetY){
|
||||
|
||||
if(pOffsetY == -1){
|
||||
|
@ -823,7 +831,7 @@ class homeViewController
|
|||
desktop.setChecked(userAgent==USER_AGENT_MODE_DESKTOP);
|
||||
|
||||
String mExtention = helperMethod.getMimeType(mURL, mContext);
|
||||
if(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")){
|
||||
if(!mURL.startsWith("data") && !mURL.startsWith("blob") && (mExtention == null || mExtention.equals("application/x-msdos-program") || 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"))){
|
||||
mDownload.setEnabled(false);
|
||||
mDownload.setColorFilter(Color.argb(255, 191, 191, 191));
|
||||
}
|
||||
|
@ -941,12 +949,16 @@ class homeViewController
|
|||
private Handler searchBarUpdateHandler = new Handler();
|
||||
private String handlerLocalUrl = "";
|
||||
void onUpdateSearchBar(String url,boolean showProtocol, boolean pClearText, boolean pBypassFocus){
|
||||
|
||||
if(url.endsWith("genesisconfigurenewidentity.com/")){
|
||||
return;
|
||||
}
|
||||
|
||||
if(url.startsWith(CONST_GENESIS_URL_CACHED) || url.startsWith(CONST_GENESIS_URL_CACHED_DARK)){
|
||||
mSearchbar.setTag(R.id.msearchbarProcessing,true);
|
||||
url = CONST_GENESIS_DOMAIN_URL;
|
||||
}
|
||||
|
||||
|
||||
Log.i("FUCK::5",url);
|
||||
if(!mSearchbar.hasFocus() || pClearText || pBypassFocus){
|
||||
if(mSearchEngineBar.getVisibility() == View.GONE || pBypassFocus){
|
||||
|
@ -1218,7 +1230,7 @@ class homeViewController
|
|||
}
|
||||
|
||||
void progressBarReset(){
|
||||
mProgressBar.setProgress(5);
|
||||
mProgressBar.setProgress(0);
|
||||
mProgressBar.setVisibility(View.INVISIBLE);
|
||||
}
|
||||
|
||||
|
@ -1239,15 +1251,15 @@ class homeViewController
|
|||
status.sDisableExpandTemp = false;
|
||||
}
|
||||
|
||||
if(mProgressBar.getProgress() == value || mProgressBar.getProgress() == 0 && value == 100){
|
||||
return;
|
||||
}
|
||||
//if(mProgressBar.getProgress() == value || mProgressBar.getProgress() <= && value == 100){
|
||||
// return;
|
||||
//}
|
||||
|
||||
if(progressAnimator!=null){
|
||||
progressAnimator.cancel();
|
||||
}
|
||||
|
||||
if(mSearchbar.getText().toString().equals("genesis.onion") && !mForced || (boolean)mSearchbar.getTag(R.id.msearchbarProcessing)){
|
||||
if((mSearchbar.getText().toString().equals("genesis.onion/search?q=$s&p_num=1&s_type=all") || mSearchbar.getText().toString().equals("genesis.onion")) && !mForced || (boolean)mSearchbar.getTag(R.id.msearchbarProcessing)){
|
||||
mProgressBar.setProgress(0);
|
||||
mProgressBar.setVisibility(View.GONE);
|
||||
return;
|
||||
|
@ -1470,13 +1482,6 @@ class homeViewController
|
|||
void onSessionChanged(){
|
||||
}
|
||||
|
||||
void onUpdateLogo(){
|
||||
|
||||
switch (status.sSettingSearchStatus)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------POST UI TASK HANDLER-------------------------------------------------------*/
|
||||
|
||||
private void startPostTask(int m_id) {
|
||||
|
|
|
@ -42,6 +42,8 @@ import java.util.Collections;
|
|||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
import static com.darkweb.genesissearchengine.appManager.tabManager.tabEnums.eTabViewCommands.ON_HIDE_UNDO_DIALOG_FORCED;
|
||||
|
||||
public class tabController extends Fragment
|
||||
{
|
||||
/*Private Views*/
|
||||
|
@ -591,6 +593,8 @@ public class tabController extends Fragment
|
|||
|
||||
|
||||
public boolean onBackPressed() {
|
||||
mtabViewController.onTrigger(ON_HIDE_UNDO_DIALOG_FORCED, null);
|
||||
|
||||
if(mTabAdapter!=null){
|
||||
boolean mStatus = (boolean) mTabAdapter.onTrigger(tabEnums.eTabAdapterCommands.M_SELECTION_MENU_SHOWING, null);
|
||||
onClearTabBackup();
|
||||
|
@ -631,7 +635,7 @@ public class tabController extends Fragment
|
|||
else if(e_type.equals(tabEnums.eTabAdapterCallback.ON_LOAD_TAB)){
|
||||
mClosed = true;
|
||||
mtabViewController.onTrigger(tabEnums.eTabViewCommands.ON_HOLD_BLOCKER, null);
|
||||
mHomeController.onLoadTab((geckoSession)data.get(0),(boolean)data.get(1),true);
|
||||
mHomeController.onLoadTab((geckoSession)data.get(0),(boolean)data.get(1),true, true);
|
||||
}
|
||||
else if(e_type.equals(tabEnums.eTabAdapterCallback.ON_REMOVE_TAB_VIEW)){
|
||||
onInitRemoveView((Integer) data.get(0), true, true);
|
||||
|
|
|
@ -4,7 +4,7 @@ public class tabEnums
|
|||
{
|
||||
/*Settings Manager*/
|
||||
public enum eTabViewCommands {
|
||||
M_DISMISS_MENU, M_SHOW_MENU, INIT_TAB_COUNT, ON_HIDE_SELECTION, ON_SHOW_SELECTION, ON_SHOW_SELECTION_MENU, ON_SHOW_UNDO_DIALOG, ON_HIDE_UNDO_DIALOG, ON_GENERATE_SWIPABLE_BACKGROUND, ON_EXIT, ON_HIDE_UNDO_DIALOG_INIT, ON_HOLD_BLOCKER, ON_RELEASE_BLOCKER
|
||||
M_DISMISS_MENU, M_SHOW_MENU, INIT_TAB_COUNT, ON_HIDE_SELECTION, ON_SHOW_SELECTION, ON_SHOW_SELECTION_MENU, ON_SHOW_UNDO_DIALOG, ON_HIDE_UNDO_DIALOG, ON_GENERATE_SWIPABLE_BACKGROUND, ON_EXIT, ON_HIDE_UNDO_DIALOG_INIT, ON_HOLD_BLOCKER, ON_RELEASE_BLOCKER, ON_HIDE_UNDO_DIALOG_FORCED
|
||||
}
|
||||
|
||||
public enum eTabAdapterCommands {
|
||||
|
|
|
@ -206,6 +206,16 @@ class tabViewController
|
|||
mUndoLayout.animate().alpha(0).withEndAction(() -> mUndoLayout.setVisibility(View.GONE));
|
||||
}
|
||||
|
||||
private void onHideUndoDialogForced() {
|
||||
if(mUndoLayout.getAlpha()<1){
|
||||
mUndoLayout.animate().cancel();
|
||||
mUndoLayout.setAlpha(0);
|
||||
mUndoLayout.setVisibility(View.GONE);
|
||||
}else {
|
||||
mUndoLayout.animate().setDuration(200).alpha(0).withEndAction(() -> mUndoLayout.setVisibility(View.GONE));
|
||||
}
|
||||
}
|
||||
|
||||
private void onHideUndoDialogInit() {
|
||||
mUndoLayout.animate().cancel();
|
||||
mUndoLayout.setAlpha(0);
|
||||
|
@ -291,6 +301,9 @@ class tabViewController
|
|||
else if(pCommands.equals(tabEnums.eTabViewCommands.ON_RELEASE_BLOCKER)){
|
||||
blockUI(false);
|
||||
}
|
||||
else if(pCommands.equals(tabEnums.eTabViewCommands.ON_HIDE_UNDO_DIALOG_FORCED)){
|
||||
onHideUndoDialogForced();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,11 +4,11 @@ public class enums
|
|||
{
|
||||
/*Settings Manager*/
|
||||
public enum etype{
|
||||
M_CHANGE_HOME_THEME, on_update_favicon,M_RELOAD,ON_UPDATE_TAB_TITLE, ON_OPEN_TAB_VIEW,ON_NEW_TAB_ANIMATION, M_UPDATE_SESSION_STATE,ON_LOAD_REQUEST, GECKO_SCROLL_UP, GECKO_SCROLL_UP_ALWAYS, GECKO_SCROLL_DOWN, GECKO_SCROLL_DOWN_CALLER,ON_UPDATE_SEARCH_BAR,M_ON_MAIL,SESSION_ID,M_UPDATE_PIXEL_BACKGROUND, M_INIT_PADDING, M_RATE_COUNT,M_CACHE_UPDATE_TAB,
|
||||
M_CHANGE_HOME_THEME, on_update_favicon,M_RELOAD,ON_UPDATE_TAB_TITLE, ON_OPEN_TAB_VIEW,ON_NEW_TAB_ANIMATION, M_UPDATE_SESSION_STATE,ON_LOAD_REQUEST, GECKO_SCROLL_UP, GECKO_SCROLL_UP_ALWAYS, GECKO_SCROLL_DOWN, WAS_SCROLL_CHANGED, GECKO_SCROLL_DOWN_MOVE, GECKO_SCROLL_UP_MOVE, GECKO_SCROLL_DOWN_CALLER,ON_UPDATE_SEARCH_BAR,M_ON_MAIL,SESSION_ID,M_UPDATE_PIXEL_BACKGROUND, M_ON_SCROLL_BOUNDARIES, M_ON_SCROLL_TOP_BOUNDARIES, M_ON_SCROLL_NO_BOUNDARIES, M_INIT_PADDING, M_RATE_COUNT,M_CACHE_UPDATE_TAB,
|
||||
on_verify_selected_url_menu,FINDER_RESULT_CALLBACK,M_ADMOB_BANNER_RECHECK,M_OPEN_SESSION,M_DOWNLOAD_FAILURE,
|
||||
welcome, reload,download_folder, M_UPDATE_THEME,M_ON_BANNER_UPDATE, M_LOAD_HOMEPAGE_GENESIS,M_INIT_TAB_COUNT_FORCED,M_SPLASH_DISABLE,M_NEW_LINK_IN_NEW_TAB,M_RESET_SUGGESTION,
|
||||
url_triggered, url_triggered_new_tab,url_clear,fetch_favicon,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_FIRST_PAINT, ON_LOAD_TAB_ON_RESUME, ON_SESSION_REINIT,on_page_loaded,on_load_error, M_ORBOT_LOADING,download_file_popup,on_init_ads,search_update, open_new_tab,open_new_tab_instant
|
||||
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_NEW_IDENTITY, M_NEW_IDENTITY_MESSAGED, M_INITIALIZE_TAB_SINGLE, M_INITIALIZE_TAB_LINK,on_request_completed, on_update_history,on_update_suggestion,M_WELCOME_MESSAGE,ON_FIRST_PAINT, ON_LOAD_TAB_ON_RESUME, ON_SESSION_REINIT,on_page_loaded,on_load_error, M_ORBOT_LOADING,download_file_popup,on_init_ads, M_GET_CURRENT_URL,search_update, open_new_tab,open_new_tab_instant
|
||||
}
|
||||
|
||||
/*General Enums*/
|
||||
|
|
|
@ -58,7 +58,7 @@ public class strings
|
|||
/*Home Manager*/
|
||||
|
||||
public static final String HOME_BLANK_PAGE = "about:blank";
|
||||
public static final String HOME_REFERENCE_WEBSITES_DEFAULT = "[{\"mUrl\":\"https://wikileaks.org/-Leaks-.html\",\"mIcon\":\"https://wikileaks.org/static/img/wl-logo.png\",\"mHeader\":\"WikiLeaks (en)\",\"mBody\":\"WikiLeaks specializes in the publication of censored or otherwise restricted official materials involving war, and corruption\"},{\"mUrl\":\"https://p53lf57qovyuvwsc6xnrppyply3vtqm7l6pcobkmyqsiofyeznfu5uqd.onion/\",\"mIcon\":\"http://assets.p53lf57qovyuvwsc6xnrppyply3vtqm7l6pcobkmyqsiofyeznfu5uqd.onion/static/prod/v4/images/favicon-32x32.png\",\"mHeader\":\"Pro Publica\",\"mBody\":\"ProPublica is an independent, nonprofit newsroom that produces investigative journalism with moral force\"},{\"mUrl\":\"http://nzh3fv6jc6jskki3.onion/\",\"mIcon\":\"http://nzh3fv6jc6jskki3.onion/assets/images/favicon.png\",\"mHeader\":\"Rise UP | Communication Service\",\"mBody\":\"We are a project to create democratic alternatives and practiceself-determination by controlling our own secure means of communications\"},{\"mUrl\":\"http://answerszuvs3gg2l64e6hmnryudl5zgrmwm3vh65hzszdghblddvfiqd.onion/\",\"mIcon\":\"https://www.freeiconspng.com/uploads/questions-and-answers-icon-1.png\",\"mHeader\":\"Hidden Answer\",\"mBody\":\"Once you access the site, you’ll soon notice that the questions on Hidden Answers touch upon a variety of topics\"},{\"mUrl\":\"http://zerobinqmdqd236y.onion/\",\"mIcon\":\"https://icon-library.net//images/zero-icon/zero-icon-15.jpg\",\"mHeader\":\"Zero Bin\",\"mBody\":\"ZeroBin.net is a minimalist, open source online pastebin where the server has zero knowledge of pasted data\"},{\"mUrl\":\"http://kx5thpx2olielkihfyo4jgjqfb7zx7wxr3sd4xzt26ochei4m6f7tayd.onion/\",\"mIcon\":\"http://kx5thpx2olielkihfyo4jgjqfb7zx7wxr3sd4xzt26ochei4m6f7tayd.onion/img/favicon.ico\",\"mHeader\":\"Imperial Library\",\"mBody\":\"The Imperial Library of Trantor (also known as Galactic Library) is a repository of DRM-free ebooks on ePub format\"},{\"mUrl\":\"http://zqktlwiuavvvqqt4ybvgvi7tyo4hjl5xgfuvpdf6otjiycgwqbym2qad.onion/wiki/index.php/Main_Page\",\"mIcon\":\"http://zqktlwiuavvvqqt4ybvgvi7tyo4hjl5xgfuvpdf6otjiycgwqbym2qad.onion/wiki/resources/favicon.ico\",\"mHeader\":\"Hidden Wiki\",\"mBody\":\"One of the largest repository of categorized hidden web URL's\"},{\"mUrl\":\"https://www.facebookcorewwwi.onion/\",\"mIcon\":\"https://cdn1.iconfinder.com/data/icons/logotypes/32/square-facebook-512.png\",\"mHeader\":\"Facebook\",\"mBody\":\"Connect with friends and the world around you on Facebook\"},{\"mUrl\":\"https://www.bbcnewsv2vjtpsuy.onion/\",\"mIcon\":\"https://gn-web-assets.api.bbc.com/wwhp/20210105-1702-7302953dc6fd22d3eb4efd4d73bfd2a8d91bb7df/responsive/img/apple-touch/apple-touch-180.jpg\",\"mHeader\":\"BBC News\",\"mBody\":\"We’re impartial and independent, and every day we create distinctive, world class programmes and content which inform millions of people around the world\"},{\"mUrl\":\"http://archivecaslytosk.onion/\",\"mIcon\":\"https://archive.is/apple-touch-icon-144x144.png\",\"mHeader\":\"Archieve Today\",\"mBody\":\"It takes a 'snapshot' of a webpage that will always be online even if the original page disappears. It saves a text and a graphical copy of the legacy page\"},{\"mUrl\":\"http://wasabiukrxmkdgve5kynjztuovbg43uxcbcxn6y2okcrsg7gb6jdmbad.onion/\",\"mIcon\":\"http://wasabiukrxmkdgve5kynjztuovbg43uxcbcxn6y2okcrsg7gb6jdmbad.onion/images/favicon.ico\",\"mHeader\":\"Wasabi Wallet\",\"mBody\":\"Wasabi is an open-source, non-custodial, privacy-focused Bitcoin wallet for Desktop, that implements trustless CoinJoin\"},{\"mUrl\":\"http://ow24et3tetp6tvmk.onion/\",\"mIcon\":\"http://ow24et3tetp6tvmk.onion/favicon.ico\",\"mHeader\":\"Onion Wallet\",\"mBody\":\"When using Bitcoin together with Tor you are combining the best online money with the best encryption and privacy technology available\"},{\"mUrl\":\"http://piratebayztemzmv.onion/\",\"mIcon\":\"http://piratebayztemzmv.onion/images/tpb.jpg\",\"mHeader\":\"The Pirate Bay\",\"mBody\":\"The Pirate Bay allows users to search for Magnet links. These are used to reference resources available for download via peer-to-peer networks\"}]";
|
||||
public static final String HOME_REFERENCE_WEBSITES_DEFAULT = "[{\"mUrl\":\"https://www.wikileaks.org/wiki/Wikileaks\",\"mIcon\":\"https://www.wikileaks.org/wiki/Wikileaks/w/images/favicon.ico\",\"mHeader\":\"WikiLeaks (en)\",\"mBody\":\"WikiLeaks specializes in the publication of censored or otherwise restricted official materials involving war, and corruption\"},{\"mUrl\":\"http://p53lf57qovyuvwsc6xnrppyply3vtqm7l6pcobkmyqsiofyeznfu5uqd.onion/\",\"mIcon\":\"http://assets.p53lf57qovyuvwsc6xnrppyply3vtqm7l6pcobkmyqsiofyeznfu5uqd.onion/static/prod/v4/images/favicon-32x32.png\",\"mHeader\":\"Pro Publica\",\"mBody\":\"ProPublica is an independent, nonprofit newsroom that produces investigative journalism with moral force\"},{\"mUrl\":\"http://nzh3fv6jc6jskki3.onion/\",\"mIcon\":\"http://nzh3fv6jc6jskki3.onion/assets/images/favicon.png\",\"mHeader\":\"Rise UP | Communication Service\",\"mBody\":\"We are a project to create democratic alternatives and practiceself-determination by controlling our own secure means of communications\"},{\"mUrl\":\"http://answerszuvs3gg2l64e6hmnryudl5zgrmwm3vh65hzszdghblddvfiqd.onion/\",\"mIcon\":\"https://www.freeiconspng.com/uploads/questions-and-answers-icon-1.png\",\"mHeader\":\"Hidden Answer\",\"mBody\":\"Once you access the site, you’ll soon notice that the questions on Hidden Answers touch upon a variety of topics\"},{\"mUrl\":\"http://zerobinqmdqd236y.onion/\",\"mIcon\":\"https://icon-library.net//images/zero-icon/zero-icon-15.jpg\",\"mHeader\":\"Zero Bin\",\"mBody\":\"ZeroBin.net is a minimalist, open source online pastebin where the server has zero knowledge of pasted data\"},{\"mUrl\":\"http://kx5thpx2olielkihfyo4jgjqfb7zx7wxr3sd4xzt26ochei4m6f7tayd.onion/\",\"mIcon\":\"http://kx5thpx2olielkihfyo4jgjqfb7zx7wxr3sd4xzt26ochei4m6f7tayd.onion/img/favicon.ico\",\"mHeader\":\"Imperial Library\",\"mBody\":\"The Imperial Library of Trantor (also known as Galactic Library) is a repository of DRM-free ebooks on ePub format\"},{\"mUrl\":\"http://zqktlwiuavvvqqt4ybvgvi7tyo4hjl5xgfuvpdf6otjiycgwqbym2qad.onion/wiki/index.php/Main_Page\",\"mIcon\":\"http://zqktlwiuavvvqqt4ybvgvi7tyo4hjl5xgfuvpdf6otjiycgwqbym2qad.onion/wiki/resources/favicon.ico\",\"mHeader\":\"Hidden Wiki\",\"mBody\":\"One of the largest repository of categorized hidden web URL's\"},{\"mUrl\":\"https://www.facebookcorewwwi.onion/\",\"mIcon\":\"https://cdn1.iconfinder.com/data/icons/logotypes/32/square-facebook-512.png\",\"mHeader\":\"Facebook\",\"mBody\":\"Connect with friends and the world around you on Facebook\"},{\"mUrl\":\"https://www.bbcnewsv2vjtpsuy.onion/\",\"mIcon\":\"https://gn-web-assets.api.bbc.com/wwhp/20210105-1702-7302953dc6fd22d3eb4efd4d73bfd2a8d91bb7df/responsive/img/apple-touch/apple-touch-180.jpg\",\"mHeader\":\"BBC News\",\"mBody\":\"We’re impartial and independent, and every day we create distinctive, world class programmes and content which inform millions of people around the world\"},{\"mUrl\":\"http://archivecaslytosk.onion/\",\"mIcon\":\"https://archive.is/apple-touch-icon-144x144.png\",\"mHeader\":\"Archieve Today\",\"mBody\":\"It takes a 'snapshot' of a webpage that will always be online even if the original page disappears. It saves a text and a graphical copy of the legacy page\"},{\"mUrl\":\"http://wasabiukrxmkdgve5kynjztuovbg43uxcbcxn6y2okcrsg7gb6jdmbad.onion/\",\"mIcon\":\"http://wasabiukrxmkdgve5kynjztuovbg43uxcbcxn6y2okcrsg7gb6jdmbad.onion/images/favicon.ico\",\"mHeader\":\"Wasabi Wallet\",\"mBody\":\"Wasabi is an open-source, non-custodial, privacy-focused Bitcoin wallet for Desktop, that implements trustless CoinJoin\"},{\"mUrl\":\"http://ow24et3tetp6tvmk.onion/\",\"mIcon\":\"http://ow24et3tetp6tvmk.onion/favicon.ico\",\"mHeader\":\"Onion Wallet\",\"mBody\":\"When using Bitcoin together with Tor you are combining the best online money with the best encryption and privacy technology available\"},{\"mUrl\":\"http://piratebayztemzmv.onion/\",\"mIcon\":\"http://piratebayztemzmv.onion/images/tpb.jpg\",\"mHeader\":\"The Pirate Bay\",\"mBody\":\"The Pirate Bay allows users to search for Magnet links. These are used to reference resources available for download via peer-to-peer networks\"}]";
|
||||
|
||||
/*Message Manager*/
|
||||
|
||||
|
|
|
@ -167,6 +167,9 @@ public class dataController
|
|||
/*Trigger Tabs*/
|
||||
|
||||
public Object invokeTab(dataEnums.eTabCommands pCommands, List<Object> pData){
|
||||
if(mTabModel==null){
|
||||
return null;
|
||||
}
|
||||
return mTabModel.onTrigger(pCommands, pData);
|
||||
}
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ import android.Manifest;
|
|||
import android.animation.Animator;
|
||||
import android.animation.AnimatorListenerAdapter;
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.ActivityManager;
|
||||
import android.app.DownloadManager;
|
||||
import android.content.ActivityNotFoundException;
|
||||
import android.content.ClipData;
|
||||
|
@ -28,6 +29,7 @@ import android.os.Vibrator;
|
|||
import android.text.SpannableString;
|
||||
import android.text.Spanned;
|
||||
import android.text.style.ForegroundColorSpan;
|
||||
import android.util.Log;
|
||||
import android.view.Display;
|
||||
import android.view.Gravity;
|
||||
import android.view.LayoutInflater;
|
||||
|
@ -60,6 +62,8 @@ import java.io.ObjectInputStream;
|
|||
import java.io.ObjectOutputStream;
|
||||
import java.lang.reflect.Field;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.Socket;
|
||||
import java.net.SocketException;
|
||||
import java.net.URI;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
|
@ -96,6 +100,15 @@ public class helperMethod
|
|||
}
|
||||
}
|
||||
|
||||
public static int getStatusBarHeight(AppCompatActivity pContext) {
|
||||
int result = 0;
|
||||
int resourceId = pContext.getResources().getIdentifier("status_bar_height", "dimen", "android");
|
||||
if (resourceId > 0) {
|
||||
result = pContext.getResources().getDimensionPixelSize(resourceId);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public static byte[] convertToBytes(Object object) throws IOException {
|
||||
ByteArrayOutputStream bos = new ByteArrayOutputStream();
|
||||
ObjectOutputStream oos = new ObjectOutputStream(bos);
|
||||
|
@ -124,6 +137,20 @@ public class helperMethod
|
|||
}
|
||||
}
|
||||
|
||||
public static boolean isAppRunning(final Context context, final String packageName) {
|
||||
final ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
|
||||
final List<ActivityManager.RunningAppProcessInfo> procInfos = activityManager.getRunningAppProcesses();
|
||||
if (procInfos != null)
|
||||
{
|
||||
for (final ActivityManager.RunningAppProcessInfo processInfo : procInfos) {
|
||||
if (processInfo.processName.equals(packageName)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static void onDelayHandler(AppCompatActivity pActivity, int pTime, Callable<Void> pMethodParam) {
|
||||
final Handler handler = new Handler();
|
||||
handler.postDelayed(() ->
|
||||
|
|
|
@ -8,6 +8,7 @@ import com.darkweb.genesissearchengine.eventObserver;
|
|||
import com.darkweb.genesissearchengine.pluginManager.pluginEnums;
|
||||
import com.google.android.gms.ads.*;
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class adManager
|
||||
|
@ -47,7 +48,8 @@ public class adManager
|
|||
{
|
||||
bannerAdsLoading = true;
|
||||
MobileAds.initialize(pAppContext.getApplicationContext(), initializationStatus -> { });
|
||||
|
||||
RequestConfiguration configuration = new RequestConfiguration.Builder().setTestDeviceIds(Arrays.asList("B1CF10D1F74698381CFF7BF9C485085B")).build();
|
||||
MobileAds.setRequestConfiguration(configuration);
|
||||
initializeBannerAds();
|
||||
}
|
||||
}
|
||||
|
@ -82,6 +84,7 @@ public class adManager
|
|||
@Override
|
||||
public void onAdFailedToLoad(@NonNull LoadAdError var1) {
|
||||
Log.i("dsa","asd");
|
||||
bannerAdsLoading = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -25,11 +25,7 @@ public class analyticManager
|
|||
|
||||
private void initialize()
|
||||
{
|
||||
if(mIsDeveloperBuild){
|
||||
new FlurryAgent.Builder() .withLogEnabled(true) .build(mAppContext.get().getApplicationContext(), "4C4K4T5ND9RJKT4H47GQ");
|
||||
}else {
|
||||
new FlurryAgent.Builder() .withLogEnabled(true) .build(mAppContext.get().getApplicationContext(), "5RQYRV23928K6DXH8VWV");
|
||||
}
|
||||
new FlurryAgent.Builder() .withLogEnabled(true) .build(mAppContext.get().getApplicationContext(), "4C4K4T5ND9RJKT4H47GQ");
|
||||
}
|
||||
|
||||
/*External Triggers*/
|
||||
|
|
|
@ -1,9 +1,12 @@
|
|||
package com.darkweb.genesissearchengine.pluginManager.downloadPluginManager;
|
||||
|
||||
import android.app.NotificationManager;
|
||||
import android.content.Context;
|
||||
import android.os.Environment;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
import com.darkweb.genesissearchengine.constants.status;
|
||||
import com.darkweb.genesissearchengine.eventObserver;
|
||||
import com.darkweb.genesissearchengine.helperManager.helperMethod;
|
||||
import com.darkweb.genesissearchengine.pluginManager.pluginEnums;
|
||||
|
@ -15,6 +18,8 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
import static org.webrtc.ContextUtils.getApplicationContext;
|
||||
|
||||
public class downloadManager
|
||||
{
|
||||
/* Private Variables */
|
||||
|
@ -43,7 +48,25 @@ public class downloadManager
|
|||
}
|
||||
|
||||
private void cancelDownload(int pID) {
|
||||
Objects.requireNonNull(mDownloads.get(pID)).onCancel();
|
||||
if(mDownloads!=null && mDownloads.containsKey(pID)){
|
||||
downloadReciever mReciever = mDownloads.get(pID);
|
||||
if(mReciever!=null){
|
||||
mDownloads.get(pID).onCancel();
|
||||
}else {
|
||||
try {
|
||||
if(!status.sSettingIsAppRunning){
|
||||
NotificationManager notificationManager = (NotificationManager) getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE);
|
||||
notificationManager.cancelAll();
|
||||
}
|
||||
}catch (Exception ignored){}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void onSwipeDownload(int pID) {
|
||||
if(mDownloads!=null && mDownloads.get(pID)!=null){
|
||||
mDownloads.get(pID).onCancel();
|
||||
}
|
||||
}
|
||||
|
||||
private void onTriggerDownload(int pID) {
|
||||
|
@ -83,6 +106,10 @@ public class downloadManager
|
|||
{
|
||||
return downloadBlob((String) pData.get(0));
|
||||
}
|
||||
else if(pEventType.equals(pluginEnums.eDownloadManager.M_SWIPE))
|
||||
{
|
||||
onSwipeDownload((int) pData.get(0));
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -23,11 +23,13 @@ import androidx.core.app.NotificationCompat;
|
|||
import androidx.core.content.FileProvider;
|
||||
|
||||
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
||||
import com.darkweb.genesissearchengine.constants.status;
|
||||
import com.darkweb.genesissearchengine.eventObserver;
|
||||
import com.darkweb.genesissearchengine.helperManager.helperMethod;
|
||||
import com.darkweb.genesissearchengine.libs.netcipher.client.StrongHttpsClient;
|
||||
import com.darkweb.genesissearchengine.pluginManager.pluginController;
|
||||
import com.darkweb.genesissearchengine.pluginManager.pluginEnums;
|
||||
import com.darkweb.genesissearchengine.pluginManager.pluginReciever.downloadNotificationReciever;
|
||||
import com.example.myapplication.R;
|
||||
import org.mozilla.thirdparty.com.google.android.exoplayer2.util.Log;
|
||||
import org.torproject.android.proxy.util.Prefs;
|
||||
|
@ -110,9 +112,9 @@ public class downloadReciever extends AsyncTask<String, Integer, String> {
|
|||
.setCategory(Notification.CATEGORY_SERVICE)
|
||||
.setPriority(Notification.PRIORITY_DEFAULT)
|
||||
.addAction(R.drawable.ic_download, "Cancel",pendingIntent)
|
||||
.setSmallIcon(android.R.drawable.stat_sys_download);
|
||||
|
||||
// build.setOngoing(Prefs.persistNotifications());
|
||||
.setSmallIcon(android.R.drawable.stat_sys_download)
|
||||
.setDeleteIntent(pendingIntent)
|
||||
.setOngoing(false);
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
NotificationChannel channel = new NotificationChannel(mID + "",
|
||||
|
@ -173,6 +175,9 @@ public class downloadReciever extends AsyncTask<String, Integer, String> {
|
|||
long total = 0;
|
||||
|
||||
while ((count = mStream.read(data)) != -1) {
|
||||
if(!status.sSettingIsAppRunning){
|
||||
return null;
|
||||
}
|
||||
total += count;
|
||||
int cur = (int) ((total * 100) / lenghtOfFile);
|
||||
if(lenghtOfFile<0){
|
||||
|
@ -236,6 +241,9 @@ public class downloadReciever extends AsyncTask<String, Integer, String> {
|
|||
float lenghtOfFile = response.getEntity().getContentLength();
|
||||
int read;
|
||||
while ((read = mStream.read(data)) != -1) {
|
||||
if(!status.sSettingIsAppRunning){
|
||||
return null;
|
||||
}
|
||||
total += read;
|
||||
int cur = (int) ((total * 100) / response.getEntity().getContentLength());
|
||||
mDownloadByte = cur;
|
||||
|
@ -309,6 +317,7 @@ public class downloadReciever extends AsyncTask<String, Integer, String> {
|
|||
build.setOngoing(false);
|
||||
build.addAction(android.R.drawable.stat_sys_download, "Open",pendingIntent);
|
||||
build.addAction(R.drawable.ic_download, "Cancel",pendingIntent1);
|
||||
build.setOngoing(false);
|
||||
build.setPriority(Notification.PRIORITY_LOW);
|
||||
mNotifyManager.notify(mID, build.build());
|
||||
|
||||
|
|
|
@ -317,7 +317,7 @@ public class messageManager
|
|||
((SwitchMaterial) mDialog.findViewById(R.id.pTPStatus)).setChecked(false);
|
||||
}
|
||||
|
||||
((TextView) mDialog.findViewById(R.id.pHeaderSubpart)).setText(helperMethod.getDomainName(mData.get(0).toString()));
|
||||
((TextView) mDialog.findViewById(R.id.pHeaderSubpart)).setText(helperMethod.getDomainName(mData.get(0).toString().replace("genesishiddentechnologies.com", "genesis.onion")));
|
||||
mDialog.setOnDismissListener(dialog -> onClearReference());
|
||||
}
|
||||
|
||||
|
|
|
@ -98,11 +98,6 @@ public class orbotManager
|
|||
|
||||
private void onSetProxy(){
|
||||
|
||||
PrefsHelper.setPref(keys.PROXY_TYPE, 1);
|
||||
PrefsHelper.setPref(keys.PROXY_SOCKS, constants.CONST_PROXY_SOCKS);
|
||||
PrefsHelper.setPref(keys.PROXY_SOCKS_PORT, 9055);
|
||||
PrefsHelper.setPref(keys.PROXY_SOCKS_VERSION,constants.CONST_PROXY_SOCKS_VERSION);
|
||||
PrefsHelper.setPref(keys.PROXY_SOCKS_REMOTE_DNS,constants.CONST_PROXY_SOCKS_REMOTE_DNS);
|
||||
}
|
||||
|
||||
private void initializeProxy(int pShowImages, boolean mClearOnExit)
|
||||
|
@ -115,7 +110,7 @@ public class orbotManager
|
|||
|
||||
PrefsHelper.setPref(keys.PROXY_TYPE, 1);
|
||||
PrefsHelper.setPref(keys.PROXY_SOCKS,constants.CONST_PROXY_SOCKS);
|
||||
PrefsHelper.setPref(keys.PROXY_SOCKS_PORT, 9055);
|
||||
PrefsHelper.setPref(keys.PROXY_SOCKS_PORT, 9050);
|
||||
PrefsHelper.setPref(keys.PROXY_SOCKS_VERSION,constants.CONST_PROXY_SOCKS_VERSION);
|
||||
PrefsHelper.setPref(keys.PROXY_SOCKS_REMOTE_DNS,constants.CONST_PROXY_SOCKS_REMOTE_DNS);
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@ public class pluginEnums
|
|||
|
||||
/*Download Manager*/
|
||||
public enum eDownloadManager{
|
||||
M_DOWNLOAD_FILE, M_CANCEL, M_TRIGGER, M_START_SERVICE, M_DOWNLOAD_BLOB
|
||||
M_DOWNLOAD_FILE, M_CANCEL, M_TRIGGER, M_START_SERVICE, M_DOWNLOAD_BLOB, M_SWIPE
|
||||
}
|
||||
|
||||
/*Notification Manager*/
|
||||
|
|
|
@ -16,6 +16,8 @@ public class downloadNotificationReciever extends BroadcastReceiver {
|
|||
pluginController.getInstance().onDownloadInvoke(Collections.singletonList(intent.getExtras().getInt(CONST_DOWNLOAD_INTENT_KEY)), pluginEnums.eDownloadManager.M_TRIGGER);
|
||||
}else if(mCommand==0 || mCommand==2) {
|
||||
pluginController.getInstance().onDownloadInvoke(Collections.singletonList(intent.getExtras().getInt(CONST_DOWNLOAD_INTENT_KEY)), pluginEnums.eDownloadManager.M_CANCEL);
|
||||
}else if(mCommand==3) {
|
||||
pluginController.getInstance().onDownloadInvoke(Collections.singletonList(intent.getExtras().getInt(CONST_DOWNLOAD_INTENT_KEY)), pluginEnums.eDownloadManager.M_CANCEL);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@xml/hox_rounded_corner"
|
||||
android:minHeight="150dp"
|
||||
android:minHeight="130dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0.5"
|
||||
|
@ -79,10 +79,12 @@
|
|||
android:id="@+id/pDivider"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:layout_marginTop="20dp"
|
||||
android:background="@color/c_view_divier_background"
|
||||
app:layout_constraintBottom_toTopOf="@+id/pNavigationContainer"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/pDescription" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/pNavigationContainer"
|
||||
|
@ -91,7 +93,8 @@
|
|||
android:orientation="horizontal"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent">
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/pDivider">
|
||||
|
||||
<Button
|
||||
android:id="@+id/pDismiss"
|
||||
|
|
|
@ -17,9 +17,9 @@
|
|||
|
||||
<ImageView
|
||||
android:id="@+id/pLock"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="7dp"
|
||||
android:layout_width="18dp"
|
||||
android:layout_height="18dp"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginTop="15dp"
|
||||
android:contentDescription="@string/GENERAL_TODO"
|
||||
android:src="@xml/ic_baseline_lock"
|
||||
|
@ -31,9 +31,9 @@
|
|||
android:id="@+id/pHeader"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp"
|
||||
android:layout_marginTop="14dp"
|
||||
android:paddingStart="5dp"
|
||||
android:text="@string/ALERT_SECURE"
|
||||
android:text="onion:"
|
||||
android:textAlignment="textStart"
|
||||
android:textColor="@color/green_button"
|
||||
android:textSize="15sp"
|
||||
|
@ -44,14 +44,20 @@
|
|||
|
||||
<TextView
|
||||
android:id="@+id/pHeaderSubpart"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp"
|
||||
android:layout_marginStart="2dp"
|
||||
android:layout_marginTop="14dp"
|
||||
android:layout_marginEnd="20dp"
|
||||
android:alpha="0.8"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:text="www.bbc.com"
|
||||
android:textAlignment="textStart"
|
||||
android:textColor="@color/c_alert_text"
|
||||
android:textSize="14sp"
|
||||
android:textSize="15sp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_weight="1"
|
||||
app:layout_constraintStart_toEndOf="@+id/pHeader"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
|
@ -256,8 +262,9 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginTop="20dp"
|
||||
android:alpha="0.6"
|
||||
android:visibility="gone"
|
||||
android:paddingEnd="10dp"
|
||||
android:text="@string/ALERT_SECURE_INFO"
|
||||
android:textAlignment="textStart"
|
||||
|
@ -272,8 +279,8 @@
|
|||
android:id="@+id/pDescription2"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_marginTop="7dp"
|
||||
android:layout_marginStart="11dp"
|
||||
android:layout_marginTop="12dp"
|
||||
android:alpha="0.6"
|
||||
android:paddingEnd="10dp"
|
||||
android:text="@string/ALERT_SECURE_INFO_DETAIL"
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
<com.google.android.material.appbar.CollapsingToolbarLayout
|
||||
android:id="@+id/fProfilCollapsing"
|
||||
android:layout_width="match_parent"
|
||||
app:scrimAnimationDuration="10"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center"
|
||||
app:layout_scrollFlags="scroll|exitUntilCollapsed|snap"
|
||||
|
@ -92,10 +93,10 @@
|
|||
android:id="@+id/pSearchInput"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginStart="-35dp"
|
||||
android:layout_marginStart="-36dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:imeOptions="flagNoExtractUi"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:layout_weight="1"
|
||||
android:animateLayoutChanges="true"
|
||||
|
@ -110,7 +111,7 @@
|
|||
android:importantForAutofill="no"
|
||||
android:inputType="textNoSuggestions"
|
||||
android:maxLines="1"
|
||||
android:paddingStart="40dp"
|
||||
android:paddingStart="38dp"
|
||||
android:paddingEnd="15dp"
|
||||
android:popupElevation="0dp"
|
||||
android:requiresFadingEdge="horizontal"
|
||||
|
|
|
@ -49,7 +49,7 @@
|
|||
android:id="@+id/pIcon"
|
||||
android:layout_width="33dp"
|
||||
android:layout_height="45dp"
|
||||
android:layout_marginStart="5.5dp"
|
||||
android:layout_marginStart="9dp"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:contentDescription="@string/GENERAL_TODO"
|
||||
android:padding="4dp"
|
||||
|
@ -63,7 +63,7 @@
|
|||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginStart="6dp"
|
||||
android:layout_marginStart="5dp"
|
||||
android:paddingTop="11dp"
|
||||
android:text="@string/GENERAL_SEARCH_ENGINE"
|
||||
android:textColor="@color/c_text_v1"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* Version */
|
||||
project.ext.vname = 'Build | Dark-Origin 1.0'
|
||||
project.ext.vcode = 45
|
||||
project.ext.vname = 'Build | Dark-Origin 1.3'
|
||||
project.ext.vcode = 60
|
||||
project.ext.buildType = 'release'
|
||||
|
||||
/* dimension */
|
||||
|
|
|
@ -50,7 +50,7 @@ dependencies {
|
|||
|
||||
implementation 'com.jaredrummler:android-shell:1.0.0'
|
||||
implementation fileTree(dir: 'libs', include: ['.so'])
|
||||
implementation 'androidx.core:core:1.3.2'
|
||||
implementation 'androidx.core:core:1.5.0'
|
||||
implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.0.0'
|
||||
testImplementation 'junit:junit:4.13.2'
|
||||
|
||||
|
|
|
@ -200,6 +200,7 @@ public class OrbotService extends VpnService implements TorServiceConstants, Orb
|
|||
return true;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Log.i("sda","ASd");
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
@ -242,55 +243,66 @@ public class OrbotService extends VpnService implements TorServiceConstants, Orb
|
|||
mNotificationManager.createNotificationChannel(mChannel);
|
||||
}
|
||||
|
||||
boolean mToolbarUpdating = false;
|
||||
@SuppressLint({"NewApi", "RestrictedApi"})
|
||||
public void showToolbarNotification(String notifyMsg, int notifyType, int icon) {
|
||||
if(isAppClosed){
|
||||
if(!mToolbarUpdating){
|
||||
mToolbarUpdating = true;
|
||||
}else {
|
||||
return;
|
||||
}
|
||||
PackageManager pm = getPackageManager();
|
||||
Intent intent = pm.getLaunchIntentForPackage(getPackageName());
|
||||
PendingIntent pendIntent = PendingIntent.getActivity(OrbotService.this, 0, intent, 0);
|
||||
|
||||
if (mNotifyBuilder == null) {
|
||||
mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
|
||||
mNotifyBuilder = new NotificationCompat.Builder(this, NOTIFICATION_CHANNEL_ID)
|
||||
.setContentTitle(getString(R.string.app_name))
|
||||
.setSmallIcon(R.drawable.ic_stat_tor)
|
||||
.setContentIntent(pendIntent)
|
||||
.setCategory(Notification.CATEGORY_SERVICE)
|
||||
.setOngoing(Prefs.persistNotifications());
|
||||
}
|
||||
try{
|
||||
if(isAppClosed){
|
||||
Log.i("superman", "superman");
|
||||
return;
|
||||
}
|
||||
PackageManager pm = getPackageManager();
|
||||
Intent intent = pm.getLaunchIntentForPackage(getPackageName());
|
||||
PendingIntent pendIntent = PendingIntent.getActivity(OrbotService.this, 0, intent, 0);
|
||||
|
||||
mNotifyBuilder.mActions.clear();
|
||||
if (conn != null && orbotLocalConstants.mIsTorInitialized) {
|
||||
Intent intentRefresh = new Intent(CMD_NEWNYM);
|
||||
PendingIntent pendingIntentNewNym = PendingIntent.getBroadcast(this, 0, intentRefresh, PendingIntent.FLAG_UPDATE_CURRENT);
|
||||
mNotifyBuilder.addAction(R.drawable.ic_stat_starting_tor_logo, getString(R.string.menu_new_identity), pendingIntentNewNym);
|
||||
if (mNotifyBuilder == null) {
|
||||
mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
|
||||
mNotifyBuilder = new NotificationCompat.Builder(this, NOTIFICATION_CHANNEL_ID)
|
||||
.setContentTitle(getString(R.string.app_name))
|
||||
.setSmallIcon(R.drawable.ic_stat_tor)
|
||||
.setContentIntent(pendIntent)
|
||||
.setCategory(Notification.CATEGORY_SERVICE)
|
||||
.setOngoing(Prefs.persistNotifications());
|
||||
}
|
||||
|
||||
Intent intentSetting = new Intent(CMD_SETTING);
|
||||
PendingIntent pendingIntentSetting = PendingIntent.getBroadcast(this, 0, intentSetting, PendingIntent.FLAG_UPDATE_CURRENT);
|
||||
mNotifyBuilder.addAction(0, "Notification Settings", pendingIntentSetting);
|
||||
}
|
||||
mNotifyBuilder.mActions.clear();
|
||||
if (conn != null && orbotLocalConstants.mIsTorInitialized) {
|
||||
Intent intentRefresh = new Intent(CMD_NEWNYM);
|
||||
PendingIntent pendingIntentNewNym = PendingIntent.getBroadcast(this, 0, intentRefresh, PendingIntent.FLAG_UPDATE_CURRENT);
|
||||
mNotifyBuilder.addAction(R.drawable.ic_stat_starting_tor_logo, getString(R.string.menu_new_identity), pendingIntentNewNym);
|
||||
|
||||
mNotifyBuilder.setContentText(notifyMsg)
|
||||
.setSmallIcon(icon)
|
||||
.setTicker(notifyType != NOTIFY_ID ? notifyMsg : null);
|
||||
Intent intentSetting = new Intent(CMD_SETTING);
|
||||
PendingIntent pendingIntentSetting = PendingIntent.getBroadcast(this, 0, intentSetting, PendingIntent.FLAG_UPDATE_CURRENT);
|
||||
mNotifyBuilder.addAction(0, "Notification Settings", pendingIntentSetting);
|
||||
}
|
||||
|
||||
if (!Prefs.persistNotifications())
|
||||
mNotifyBuilder.setPriority(Notification.PRIORITY_LOW);
|
||||
mNotifyBuilder.setContentText(notifyMsg)
|
||||
.setSmallIcon(icon)
|
||||
.setTicker(notifyType != NOTIFY_ID ? notifyMsg : null);
|
||||
|
||||
Notification notification = mNotifyBuilder.build();
|
||||
if (!Prefs.persistNotifications())
|
||||
mNotifyBuilder.setPriority(Notification.PRIORITY_LOW);
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
startForeground(NOTIFY_ID, notification);
|
||||
} else if (Prefs.persistNotifications() && (!mNotificationShowing)) {
|
||||
startForeground(NOTIFY_ID, notification);
|
||||
logNotice("Set background service to FOREGROUND");
|
||||
} else {
|
||||
mNotificationManager.notify(NOTIFY_ID, notification);
|
||||
}
|
||||
Notification notification = mNotifyBuilder.build();
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
startForeground(NOTIFY_ID, notification);
|
||||
} else if (Prefs.persistNotifications() && (!mNotificationShowing)) {
|
||||
startForeground(NOTIFY_ID, notification);
|
||||
logNotice("Set background service to FOREGROUND");
|
||||
} else {
|
||||
mNotificationManager.notify(NOTIFY_ID, notification);
|
||||
}
|
||||
}catch (Exception ignored){}
|
||||
|
||||
mNotificationShowing = true;
|
||||
mToolbarUpdating = false;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
|
@ -315,7 +327,10 @@ public class OrbotService extends VpnService implements TorServiceConstants, Orb
|
|||
Intent intent = new Intent(this, DummyActivity.class);
|
||||
intent.addFlags(FLAG_ACTIVITY_NEW_TASK);
|
||||
startActivity(intent);
|
||||
}catch (Exception ignored){}
|
||||
}catch (Exception ignored){
|
||||
Log.i("sda","ASd");
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -743,6 +758,7 @@ public class OrbotService extends VpnService implements TorServiceConstants, Orb
|
|||
try {
|
||||
if (conn != null) torProcId = conn.getInfo("process/pid");
|
||||
} catch (Exception e) {
|
||||
Log.i("sda","ASd");
|
||||
}
|
||||
|
||||
try {
|
||||
|
@ -958,6 +974,7 @@ public class OrbotService extends VpnService implements TorServiceConstants, Orb
|
|||
// logNotice("waiting...");
|
||||
Thread.sleep(2000);
|
||||
} catch (Exception e) {
|
||||
Log.i("sda","ASd");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1205,13 +1222,14 @@ public class OrbotService extends VpnService implements TorServiceConstants, Orb
|
|||
try {
|
||||
int iconId = R.drawable.ic_stat_tor;
|
||||
|
||||
if (conn != null && mCurrentStatus == STATUS_ON && Prefs.expandedNotifications())
|
||||
if (conn != null && mCurrentStatus == STATUS_ON && Prefs.expandedNotifications() && mConnectivity)
|
||||
showToolbarNotification(getString(R.string.newnym), NOTIFY_ID, R.drawable.ic_stat_starting_tor_logo);
|
||||
|
||||
conn.signal(TorControlCommands.SIGNAL_NEWNYM);
|
||||
|
||||
sleep(1000);
|
||||
enableNotification();
|
||||
if(mConnectivity)
|
||||
enableNotification();
|
||||
|
||||
} catch (Exception ioe) {
|
||||
debug("error requesting newnym: " + ioe.getLocalizedMessage());
|
||||
|
@ -1608,6 +1626,7 @@ public class OrbotService extends VpnService implements TorServiceConstants, Orb
|
|||
hidden_services.close();
|
||||
}
|
||||
} catch (SecurityException se) {
|
||||
Log.i("sda","ASd");
|
||||
}
|
||||
|
||||
try {
|
||||
|
@ -1628,6 +1647,7 @@ public class OrbotService extends VpnService implements TorServiceConstants, Orb
|
|||
client_cookies.close();
|
||||
}
|
||||
} catch (SecurityException se) {
|
||||
Log.i("sda","ASd");
|
||||
}
|
||||
|
||||
return extraLines;
|
||||
|
|
Loading…
Reference in New Issue