mirror of https://github.com/LeOS-GSI/LeOS-Genesis
parent
1c5282f031
commit
2d40f80bc1
Binary file not shown.
|
@ -101,7 +101,7 @@
|
||||||
android:windowSoftInputMode="adjustPan" />
|
android:windowSoftInputMode="adjustPan" />
|
||||||
<activity
|
<activity
|
||||||
android:name="com.darkweb.genesissearchengine.appManager.orbotLogManager.orbotLogController"
|
android:name="com.darkweb.genesissearchengine.appManager.orbotLogManager.orbotLogController"
|
||||||
android:configChanges="uiMode"
|
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||||
android:windowSoftInputMode="adjustPan" />
|
android:windowSoftInputMode="adjustPan" />
|
||||||
<activity
|
<activity
|
||||||
android:name="com.darkweb.genesissearchengine.appManager.settingManager.generalManager.settingGeneralController"
|
android:name="com.darkweb.genesissearchengine.appManager.settingManager.generalManager.settingGeneralController"
|
||||||
|
@ -145,10 +145,10 @@
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</activity>
|
</activity>
|
||||||
|
|
||||||
<activity android:name="com.darkweb.genesissearchengine.externalNavigationManager.externalShortcuts"
|
<activity android:name="com.darkweb.genesissearchengine.appManager.externalNavigationManager.externalShortcuts"
|
||||||
android:launchMode="singleTop"/>
|
android:launchMode="singleTop"/>
|
||||||
|
|
||||||
<activity android:name="com.darkweb.genesissearchengine.externalNavigationManager.externalNavigationController"
|
<activity android:name="com.darkweb.genesissearchengine.appManager.externalNavigationManager.externalNavigationController"
|
||||||
android:launchMode="singleTask"
|
android:launchMode="singleTask"
|
||||||
>
|
>
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
|
|
|
@ -0,0 +1,77 @@
|
||||||
|
package com.darkweb.genesissearchengine.appManager.externalNavigationManager;
|
||||||
|
|
||||||
|
import android.content.Intent;
|
||||||
|
import android.net.Uri;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
|
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
||||||
|
import com.darkweb.genesissearchengine.appManager.homeManager.homeController.homeController;
|
||||||
|
import com.darkweb.genesissearchengine.constants.status;
|
||||||
|
import com.darkweb.genesissearchengine.helperManager.helperMethod;
|
||||||
|
import static com.darkweb.genesissearchengine.constants.constants.CONST_PACKAGE_NAME;
|
||||||
|
|
||||||
|
public class externalNavigationController extends AppCompatActivity {
|
||||||
|
@Override
|
||||||
|
|
||||||
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
|
super.onCreate(savedInstanceState);
|
||||||
|
Uri data = externalNavigationController.this.getIntent().getData();
|
||||||
|
if(data == null || status.sSettingIsAppStarted){
|
||||||
|
|
||||||
|
/* Close Activity */
|
||||||
|
|
||||||
|
finish();
|
||||||
|
activityContextManager.getInstance().onClearStack();
|
||||||
|
|
||||||
|
/* Create Request Handler */
|
||||||
|
|
||||||
|
if(status.sSettingIsAppStarted && data!=null){
|
||||||
|
helperMethod.onDelayHandler(this, 3000, () -> {
|
||||||
|
activityContextManager.getInstance().getHomeController().onOpenLinkNewTab(activityContextManager.getInstance().getHomeController().completeURL(data.toString()));
|
||||||
|
activityContextManager.getInstance().getHomeController().onClearSelectionTab();
|
||||||
|
return null;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
Intent bringToForegroundIntent = new Intent(activityContextManager.getInstance().getHomeController(), homeController.class);
|
||||||
|
bringToForegroundIntent.setFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||||
|
startActivity(bringToForegroundIntent);
|
||||||
|
}
|
||||||
|
else if(status.sSettingIsAppRunning){
|
||||||
|
|
||||||
|
/* Refresh Intent Data */
|
||||||
|
|
||||||
|
finish();
|
||||||
|
status.sExternalWebsite = data.toString();
|
||||||
|
|
||||||
|
}else {
|
||||||
|
|
||||||
|
/* Start Required Activity */
|
||||||
|
|
||||||
|
Intent intent = new Intent(this.getIntent());
|
||||||
|
intent.setClassName(this.getApplicationContext(), homeController.class.getName());
|
||||||
|
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
||||||
|
|
||||||
|
if(activityContextManager.getInstance().getHomeController()!=null){
|
||||||
|
activityContextManager.getInstance().getHomeController().onOpenLinkNewTab(data.toString());
|
||||||
|
}else {
|
||||||
|
status.sExternalWebsite = data.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
this.startActivity(intent);
|
||||||
|
this.overridePendingTransition(0, 0);
|
||||||
|
|
||||||
|
/* Bring Application To Front */
|
||||||
|
|
||||||
|
Intent launchIntent = getPackageManager().getLaunchIntentForPackage(CONST_PACKAGE_NAME);
|
||||||
|
startActivity(launchIntent);
|
||||||
|
|
||||||
|
/* Close Activity */
|
||||||
|
|
||||||
|
helperMethod.onDelayHandler(this, 1000, () -> {
|
||||||
|
finish();
|
||||||
|
return null;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
package com.darkweb.genesissearchengine.externalNavigationManager;
|
package com.darkweb.genesissearchengine.appManager.externalNavigationManager;
|
||||||
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
|
@ -16,6 +16,7 @@ import com.darkweb.genesissearchengine.constants.strings;
|
||||||
import com.darkweb.genesissearchengine.dataManager.dataController;
|
import com.darkweb.genesissearchengine.dataManager.dataController;
|
||||||
import com.darkweb.genesissearchengine.dataManager.dataEnums;
|
import com.darkweb.genesissearchengine.dataManager.dataEnums;
|
||||||
import com.darkweb.genesissearchengine.databaseManager.databaseController;
|
import com.darkweb.genesissearchengine.databaseManager.databaseController;
|
||||||
|
import com.darkweb.genesissearchengine.helperManager.helperMethod;
|
||||||
import com.example.myapplication.R;
|
import com.example.myapplication.R;
|
||||||
import org.mozilla.geckoview.ContentBlocking;
|
import org.mozilla.geckoview.ContentBlocking;
|
||||||
import org.torproject.android.service.wrapper.orbotLocalConstants;
|
import org.torproject.android.service.wrapper.orbotLocalConstants;
|
||||||
|
@ -58,66 +59,15 @@ public class externalShortcuts extends AppCompatActivity {
|
||||||
|
|
||||||
new Handler().postDelayed(() ->
|
new Handler().postDelayed(() ->
|
||||||
{
|
{
|
||||||
Uri data = this.getIntent().getData();
|
/* Start Required Activity */
|
||||||
if(data == null){
|
|
||||||
finish();
|
|
||||||
activityContextManager.getInstance().onClearStack();
|
|
||||||
Intent bringToForegroundIntent = new Intent(externalShortcuts.this, homeController.class);
|
|
||||||
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);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(status.sSettingIsAppStarted){
|
|
||||||
finish();
|
|
||||||
activityContextManager.getInstance().onClearStack();
|
|
||||||
|
|
||||||
new Handler().postDelayed(() ->
|
|
||||||
{
|
|
||||||
activityContextManager.getInstance().getHomeController().onOpenLinkNewTab(activityContextManager.getInstance().getHomeController().completeURL(data.toString()));
|
|
||||||
activityContextManager.getInstance().getHomeController().onClearSelectionTab();
|
|
||||||
}, 500);
|
|
||||||
|
|
||||||
Intent bringToForegroundIntent = new Intent(activityContextManager.getInstance().getHomeController(), homeController.class);
|
|
||||||
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);
|
|
||||||
|
|
||||||
return;
|
|
||||||
}else if(status.sSettingIsAppRunning){
|
|
||||||
finish();
|
|
||||||
status.sExternalWebsite = data.toString();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Intent intent = new Intent(this.getIntent());
|
Intent intent = new Intent(this.getIntent());
|
||||||
intent.setClassName(this.getApplicationContext(), homeController.class.getName());
|
intent.setClassName(this.getApplicationContext(), homeController.class.getName());
|
||||||
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
||||||
|
|
||||||
if(activityContextManager.getInstance().getHomeController()!=null){
|
|
||||||
activityContextManager.getInstance().getHomeController().onOpenLinkNewTab(data.toString());
|
|
||||||
}else {
|
|
||||||
status.sExternalWebsite = data.toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
this.startActivity(intent);
|
this.startActivity(intent);
|
||||||
overridePendingTransition(R.anim.fade_in_instant, R.anim.fade_out_instant);
|
overridePendingTransition(R.anim.fade_in_instant, R.anim.fade_out_instant);
|
||||||
|
|
||||||
new Thread(){
|
|
||||||
public void run(){
|
|
||||||
try {
|
|
||||||
sleep(1000);
|
|
||||||
externalShortcuts.this.runOnUiThread(() -> finish());
|
|
||||||
} catch (InterruptedException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}.start();
|
|
||||||
|
|
||||||
Intent launchIntent = getPackageManager().getLaunchIntentForPackage(CONST_PACKAGE_NAME);
|
|
||||||
startActivity(launchIntent);
|
|
||||||
overridePendingTransition(R.anim.fade_in_instant, R.anim.fade_out_instant);
|
|
||||||
}, 800);
|
}, 800);
|
||||||
}
|
}
|
||||||
|
|
|
@ -71,7 +71,7 @@ public class orbotLogAdapter extends RecyclerView.Adapter<orbotLogAdapter.listVi
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(constants.CONST_LOG_DUCKDUCK + mHeader.getText()));
|
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(constants.CONST_LOG_DUCKDUCK + mModelList.get(this.getLayoutPosition()).getLog()));
|
||||||
intent.putExtra(SearchManager.QUERY, mDescription.getText());
|
intent.putExtra(SearchManager.QUERY, mDescription.getText());
|
||||||
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
||||||
activityContextManager.getInstance().getHomeController().startActivity(intent);
|
activityContextManager.getInstance().getHomeController().startActivity(intent);
|
||||||
|
|
|
@ -12,12 +12,12 @@ import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.RequiresApi;
|
import androidx.annotation.RequiresApi;
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
import androidx.core.widget.NestedScrollView;
|
import androidx.core.widget.NestedScrollView;
|
||||||
import androidx.recyclerview.widget.DefaultItemAnimator;
|
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
||||||
import com.darkweb.genesissearchengine.appManager.settingManager.logManager.settingLogController;
|
import com.darkweb.genesissearchengine.appManager.settingManager.logManager.settingLogController;
|
||||||
import com.darkweb.genesissearchengine.constants.constants;
|
import com.darkweb.genesissearchengine.constants.constants;
|
||||||
|
import com.darkweb.genesissearchengine.constants.enums;
|
||||||
import com.darkweb.genesissearchengine.constants.status;
|
import com.darkweb.genesissearchengine.constants.status;
|
||||||
import com.darkweb.genesissearchengine.eventObserver;
|
import com.darkweb.genesissearchengine.eventObserver;
|
||||||
import com.darkweb.genesissearchengine.helperManager.helperMethod;
|
import com.darkweb.genesissearchengine.helperManager.helperMethod;
|
||||||
|
@ -26,12 +26,18 @@ import com.darkweb.genesissearchengine.pluginManager.pluginController;
|
||||||
import com.darkweb.genesissearchengine.pluginManager.pluginEnums;
|
import com.darkweb.genesissearchengine.pluginManager.pluginEnums;
|
||||||
import com.example.myapplication.R;
|
import com.example.myapplication.R;
|
||||||
import com.google.android.material.floatingactionbutton.FloatingActionButton;
|
import com.google.android.material.floatingactionbutton.FloatingActionButton;
|
||||||
|
|
||||||
|
import org.torproject.android.service.wrapper.logRowModel;
|
||||||
import org.torproject.android.service.wrapper.orbotLocalConstants;
|
import org.torproject.android.service.wrapper.orbotLocalConstants;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
import static com.darkweb.genesissearchengine.appManager.orbotLogManager.orbotLogEnums.eOrbotLogViewCommands.M_SCROLL_THEME_UPDATE;
|
import static com.darkweb.genesissearchengine.appManager.orbotLogManager.orbotLogEnums.eOrbotLogModelCommands.M_GET_LIST;
|
||||||
|
import static com.darkweb.genesissearchengine.appManager.orbotLogManager.orbotLogEnums.eOrbotLogModelCommands.M_GET_LIST_SIZE;
|
||||||
|
import static com.darkweb.genesissearchengine.appManager.orbotLogManager.orbotLogEnums.eOrbotLogViewCommands.M_FLOAT_BUTTON_UPDATE;
|
||||||
|
|
||||||
|
|
||||||
public class orbotLogController extends AppCompatActivity {
|
public class orbotLogController extends AppCompatActivity {
|
||||||
|
@ -42,7 +48,7 @@ public class orbotLogController extends AppCompatActivity {
|
||||||
private orbotLogViewController mOrbotLogViewController;
|
private orbotLogViewController mOrbotLogViewController;
|
||||||
private orbotLogAdapter mOrbotAdapter;
|
private orbotLogAdapter mOrbotAdapter;
|
||||||
private boolean mActivityClosed = false;
|
private boolean mActivityClosed = false;
|
||||||
private int mLogCounter = 0;
|
private int mLogCounter = 1;
|
||||||
private boolean mIsRecycleviewInteracting = false;
|
private boolean mIsRecycleviewInteracting = false;
|
||||||
|
|
||||||
/* UI VARIABLES */
|
/* UI VARIABLES */
|
||||||
|
@ -79,10 +85,27 @@ public class orbotLogController extends AppCompatActivity {
|
||||||
theme.getInstance().onConfigurationChanged(this);
|
theme.getInstance().onConfigurationChanged(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mNestedScrollView.stopNestedScroll();
|
||||||
|
helperMethod.onDelayHandler(orbotLogController.this, 150, () -> {
|
||||||
|
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE || newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
|
||||||
|
if(!orbotLogStatus.sUIInteracted && ((int)mOrbotModel.onTrigger(M_GET_LIST_SIZE)>1)){
|
||||||
|
if(mNestedScrollView.canScrollVertically(enums.ScrollDirection.VERTICAL)){
|
||||||
|
onScrollBottom();
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
mNestedScrollView.scrollTo(0,0);
|
||||||
|
}
|
||||||
|
orbotLogStatus.sScrollPosition = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
});
|
||||||
|
|
||||||
super.onConfigurationChanged(newConfig);
|
super.onConfigurationChanged(newConfig);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void initializeViews() {
|
|
||||||
|
private void initializeViews() {
|
||||||
mLogRecycleView = findViewById(R.id.pLogRecycleView);
|
mLogRecycleView = findViewById(R.id.pLogRecycleView);
|
||||||
mLogs = findViewById(R.id.pLogs);
|
mLogs = findViewById(R.id.pLogs);
|
||||||
mNestedScrollView = findViewById(R.id.pNestedScrollView);
|
mNestedScrollView = findViewById(R.id.pNestedScrollView);
|
||||||
|
@ -92,13 +115,13 @@ public class orbotLogController extends AppCompatActivity {
|
||||||
mOrbotModel = new orbotLogModel();
|
mOrbotModel = new orbotLogModel();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void initializeLogs(){
|
private void initializeLogs(){
|
||||||
mLogCounter = 0;
|
mLogCounter = 0;
|
||||||
|
mOrbotModel.setList(orbotLocalConstants.mTorLogsHistory);
|
||||||
if(status.sLogThemeStyleAdvanced){
|
if(status.sLogThemeStyleAdvanced){
|
||||||
mLogCounter = orbotLocalConstants.mTorLogsHistory.size();
|
mLogCounter = (int)mOrbotModel.onTrigger(M_GET_LIST_SIZE);
|
||||||
mOrbotModel.setList(orbotLocalConstants.mTorLogsHistory);
|
|
||||||
LinearLayoutManager layoutManager = new LinearLayoutManager(orbotLogController.this);
|
LinearLayoutManager layoutManager = new LinearLayoutManager(orbotLogController.this);
|
||||||
orbotLogAdapter adapter = new orbotLogAdapter(mOrbotModel.getList(),new orbotLogController.orbotModelCallback());
|
orbotLogAdapter adapter = new orbotLogAdapter(((ArrayList)mOrbotModel.onTrigger(M_GET_LIST)),new orbotLogController.orbotModelCallback());
|
||||||
mOrbotAdapter = adapter;
|
mOrbotAdapter = adapter;
|
||||||
layoutManager.setReverseLayout(true);
|
layoutManager.setReverseLayout(true);
|
||||||
|
|
||||||
|
@ -114,12 +137,13 @@ public class orbotLogController extends AppCompatActivity {
|
||||||
logToString();
|
logToString();
|
||||||
}
|
}
|
||||||
mOrbotLogViewController.onTrigger(orbotLogEnums.eOrbotLogViewCommands.M_INIT_VIEWS, Collections.singletonList(status.sLogThemeStyleAdvanced));
|
mOrbotLogViewController.onTrigger(orbotLogEnums.eOrbotLogViewCommands.M_INIT_VIEWS, Collections.singletonList(status.sLogThemeStyleAdvanced));
|
||||||
mLogRecycleView.smoothScrollToPosition(mOrbotModel.getList().size());
|
mLogRecycleView.smoothScrollToPosition((int)mOrbotModel.onTrigger(M_GET_LIST_SIZE));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* LISTENERS */
|
/* LISTENERS */
|
||||||
|
|
||||||
|
@RequiresApi(api = Build.VERSION_CODES.M)
|
||||||
@SuppressLint("ClickableViewAccessibility")
|
@SuppressLint("ClickableViewAccessibility")
|
||||||
private void initListener(){
|
private void initListener(){
|
||||||
|
|
||||||
|
@ -127,29 +151,27 @@ public class orbotLogController extends AppCompatActivity {
|
||||||
@SuppressLint("NewApi") @SuppressWarnings("deprecation")
|
@SuppressLint("NewApi") @SuppressWarnings("deprecation")
|
||||||
@Override
|
@Override
|
||||||
public void onGlobalLayout() {
|
public void onGlobalLayout() {
|
||||||
if(orbotLogStatus.sScrollPosition!=-1){
|
if(orbotLogStatus.sScrollPosition!=-1 && orbotLogStatus.sUIInteracted){
|
||||||
mNestedScrollView.scrollTo(0, orbotLogStatus.sScrollPosition);
|
mNestedScrollView.scrollTo(0, orbotLogStatus.sScrollPosition);
|
||||||
}else if(mNestedScrollView.canScrollVertically(1)){
|
}else if(mNestedScrollView.canScrollVertically(enums.ScrollDirection.VERTICAL)){
|
||||||
onScrollBottom(null);
|
onScrollBottom();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
|
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
|
||||||
mNestedScrollView.setOnScrollChangeListener((View.OnScrollChangeListener) (v, scrollX, scrollY, oldScrollX, oldScrollY) -> {
|
mNestedScrollView.setOnScrollChangeListener((View.OnScrollChangeListener) (v, scrollX, scrollY, oldScrollX, oldScrollY) -> orbotLogStatus.sScrollPosition = scrollY);
|
||||||
orbotLogStatus.sScrollPosition = scrollY;
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
mOrbotLogViewController.onTrigger(M_SCROLL_THEME_UPDATE);
|
mOrbotLogViewController.onTrigger(M_FLOAT_BUTTON_UPDATE);
|
||||||
mLogRecycleView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
|
mLogRecycleView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
mNestedScrollView.setOnTouchListener((v, event) -> {
|
mNestedScrollView.setOnTouchListener((v, event) -> {
|
||||||
if(mNestedScrollView.canScrollVertically(1)){
|
if(mNestedScrollView.canScrollVertically(enums.ScrollDirection.VERTICAL)){
|
||||||
orbotLogStatus.sUIInteracted = true;
|
orbotLogStatus.sUIInteracted = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(event.getAction() == MotionEvent.ACTION_UP){
|
if(event.getAction() == MotionEvent.ACTION_UP){
|
||||||
mOrbotLogViewController.onTrigger(M_SCROLL_THEME_UPDATE);
|
mOrbotLogViewController.onTrigger(M_FLOAT_BUTTON_UPDATE);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(event.getAction() == MotionEvent.ACTION_UP){
|
if(event.getAction() == MotionEvent.ACTION_UP){
|
||||||
|
@ -161,9 +183,23 @@ public class orbotLogController extends AppCompatActivity {
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
mLogRecycleView.addOnScrollListener(new RecyclerView.OnScrollListener() {
|
||||||
|
@Override
|
||||||
|
public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
|
||||||
|
super.onScrollStateChanged(recyclerView, newState);
|
||||||
|
if (!recyclerView.canScrollVertically(1) && newState==RecyclerView.SCROLL_STATE_IDLE) {
|
||||||
|
mOrbotLogViewController.onTrigger(M_FLOAT_BUTTON_UPDATE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
mNestedScrollView.getViewTreeObserver() .addOnScrollChangedListener(() -> {
|
mNestedScrollView.getViewTreeObserver() .addOnScrollChangedListener(() -> {
|
||||||
if (mNestedScrollView.getChildAt(0).getBottom() <= (mNestedScrollView.getHeight() + mNestedScrollView.getScrollY())) {
|
if (mNestedScrollView.getScrollY() == 0)
|
||||||
mOrbotLogViewController.onTrigger(M_SCROLL_THEME_UPDATE);
|
{
|
||||||
|
mOrbotLogViewController.onTrigger(M_FLOAT_BUTTON_UPDATE);
|
||||||
|
}
|
||||||
|
else if (mNestedScrollView.getChildAt(0).getBottom() <= (mNestedScrollView.getHeight() + mNestedScrollView.getScrollY())) {
|
||||||
|
mOrbotLogViewController.onTrigger(M_FLOAT_BUTTON_UPDATE);
|
||||||
|
|
||||||
if(!mIsRecycleviewInteracting){
|
if(!mIsRecycleviewInteracting){
|
||||||
orbotLogStatus.sUIInteracted = false;
|
orbotLogStatus.sUIInteracted = false;
|
||||||
|
@ -172,60 +208,73 @@ public class orbotLogController extends AppCompatActivity {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void logToString(){
|
private void logToString(){
|
||||||
for(int mCounter=0;mCounter<orbotLocalConstants.mTorLogsHistory.size();mCounter++){
|
if((int)mOrbotModel.onTrigger(M_GET_LIST_SIZE)>1){
|
||||||
mOrbotLogViewController.onTrigger(orbotLogEnums.eOrbotLogViewCommands.M_UPDATE_LOGS, Collections.singletonList(orbotLocalConstants.mTorLogsHistory.get(mCounter).getLog()));
|
for(int mCounter=0;mCounter<(int)mOrbotModel.onTrigger(M_GET_LIST_SIZE);mCounter++){
|
||||||
mLogCounter+=1;
|
mOrbotLogViewController.onTrigger(orbotLogEnums.eOrbotLogViewCommands.M_UPDATE_LOGS, Collections.singletonList(((ArrayList<logRowModel>)mOrbotModel.onTrigger(M_GET_LIST)).get(mCounter).getLog()));
|
||||||
|
mLogCounter+=1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateLogs(){
|
private void updateLogs(){
|
||||||
new Thread(){
|
new Thread(){
|
||||||
public void run(){
|
public void run(){
|
||||||
|
try {
|
||||||
|
sleep(1000);
|
||||||
while (!mActivityClosed){
|
while (!mActivityClosed){
|
||||||
try {
|
|
||||||
if(status.sLogThemeStyleAdvanced){
|
if(status.sLogThemeStyleAdvanced){
|
||||||
sleep(800);
|
sleep(800);
|
||||||
}else {
|
}else {
|
||||||
sleep(100);
|
sleep(100);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(orbotLocalConstants.mTorLogsHistory.size()>0){
|
if(mLogCounter>0){
|
||||||
runOnUiThread(() -> {
|
runOnUiThread(() -> {
|
||||||
if(orbotLocalConstants.mTorLogsHistory.size()>mLogCounter){
|
if(orbotLocalConstants.mTorLogsHistory.size()>mLogCounter){
|
||||||
mOrbotModel.getList().add(orbotLocalConstants.mTorLogsHistory.get(mLogCounter));
|
((ArrayList<logRowModel>)mOrbotModel.onTrigger(M_GET_LIST)).add(orbotLocalConstants.mTorLogsHistory.get(mLogCounter));
|
||||||
if(!status.sLogThemeStyleAdvanced){
|
if(!status.sLogThemeStyleAdvanced){
|
||||||
mOrbotLogViewController.onTrigger(orbotLogEnums.eOrbotLogViewCommands.M_UPDATE_LOGS, Collections.singletonList(orbotLocalConstants.mTorLogsHistory.get(mLogCounter).getLog()));
|
mOrbotLogViewController.onTrigger(orbotLogEnums.eOrbotLogViewCommands.M_UPDATE_LOGS, Collections.singletonList(((ArrayList<logRowModel>)mOrbotModel.onTrigger(M_GET_LIST)).get(mLogCounter).getLog()));
|
||||||
}else {
|
}else {
|
||||||
if(mOrbotAdapter!=null){
|
if(mOrbotAdapter!=null){
|
||||||
mOrbotAdapter.notifyItemInserted(mOrbotModel.getList().size()-1);
|
mOrbotAdapter.notifyItemInserted((int)mOrbotModel.onTrigger(M_GET_LIST_SIZE)-1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!orbotLogStatus.sUIInteracted){
|
||||||
|
helperMethod.onDelayHandler(orbotLogController.this, 150, () -> {
|
||||||
|
if(!orbotLogStatus.sUIInteracted){
|
||||||
|
onScrollBottomAnimated(null);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
});
|
||||||
|
}
|
||||||
mLogCounter+=1;
|
mLogCounter+=1;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
sleep(100);
|
|
||||||
if(!orbotLogStatus.sUIInteracted){
|
|
||||||
runOnUiThread(() -> {
|
|
||||||
if(orbotLocalConstants.mTorLogsHistory.size()>mLogCounter) {
|
|
||||||
onScrollBottom(null);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
} catch (InterruptedException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
catch (InterruptedException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}.start();
|
}.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void onScrollBottom() {
|
||||||
|
mNestedScrollView.scrollTo(0,helperMethod.pxFromDp((int)mOrbotModel.onTrigger(M_GET_LIST_SIZE)*100));
|
||||||
|
}
|
||||||
|
|
||||||
/* View Callback */
|
/* View Callback */
|
||||||
|
|
||||||
public void onScrollBottom(View view) {
|
public void onScrollBottomAnimated(View view) {
|
||||||
mNestedScrollView.fullScroll(View.FOCUS_DOWN);
|
mNestedScrollView.fullScroll(View.FOCUS_DOWN);
|
||||||
orbotLogStatus.sUIInteracted = false;
|
orbotLogStatus.sUIInteracted = false;
|
||||||
|
|
||||||
|
if(view!=null){
|
||||||
|
mOrbotLogViewController.onTrigger(M_FLOAT_BUTTON_UPDATE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onOpenInfo(View view) {
|
public void onOpenInfo(View view) {
|
||||||
|
@ -287,8 +336,12 @@ public class orbotLogController extends AppCompatActivity {
|
||||||
/* External Calls */
|
/* External Calls */
|
||||||
|
|
||||||
public void onRefreshLayoutTheme(){
|
public void onRefreshLayoutTheme(){
|
||||||
orbotLogStatus.sScrollPosition = 0;
|
if(!orbotLogStatus.sUIInteracted){
|
||||||
orbotLogStatus.sUIInteracted = false;
|
orbotLogStatus.sScrollPosition = -1;
|
||||||
|
}else {
|
||||||
|
orbotLogStatus.sScrollPosition = 0;
|
||||||
|
}
|
||||||
|
|
||||||
mIsRecycleviewInteracting = false;
|
mIsRecycleviewInteracting = false;
|
||||||
recreate();
|
recreate();
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,11 +5,12 @@ public class orbotLogEnums
|
||||||
/*Orbot Log View Manager*/
|
/*Orbot Log View Manager*/
|
||||||
|
|
||||||
public enum eOrbotLogViewCommands {
|
public enum eOrbotLogViewCommands {
|
||||||
M_UPDATE_LOGS, M_INIT_VIEWS, M_SCROLL_THEME_UPDATE
|
M_UPDATE_LOGS, M_INIT_VIEWS, M_FLOAT_BUTTON_UPDATE
|
||||||
}
|
}
|
||||||
|
|
||||||
/*Orbot Log Model Manager*/
|
/*Orbot Log Model Manager*/
|
||||||
|
|
||||||
public enum eOrbotLogModelCommands {
|
public enum eOrbotLogModelCommands {
|
||||||
|
M_GET_LIST, M_GET_LIST_SIZE
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -4,6 +4,7 @@ import com.darkweb.genesissearchengine.constants.constants;
|
||||||
import com.darkweb.genesissearchengine.helperManager.helperMethod;
|
import com.darkweb.genesissearchengine.helperManager.helperMethod;
|
||||||
import org.torproject.android.service.wrapper.logRowModel;
|
import org.torproject.android.service.wrapper.logRowModel;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
class orbotLogModel
|
class orbotLogModel
|
||||||
{
|
{
|
||||||
|
@ -24,8 +25,29 @@ class orbotLogModel
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ArrayList<logRowModel> getList()
|
private ArrayList<logRowModel> getList()
|
||||||
{
|
{
|
||||||
return mModelList;
|
return mModelList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private int getListSize()
|
||||||
|
{
|
||||||
|
return mModelList.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*Triggers*/
|
||||||
|
|
||||||
|
public void onTrigger(orbotLogEnums.eOrbotLogViewCommands pCommands, List<Object> pData){
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object onTrigger(orbotLogEnums.eOrbotLogModelCommands pCommands){
|
||||||
|
if(pCommands.equals(orbotLogEnums.eOrbotLogModelCommands.M_GET_LIST)){
|
||||||
|
return getList();
|
||||||
|
}
|
||||||
|
else if(pCommands.equals(orbotLogEnums.eOrbotLogModelCommands.M_GET_LIST_SIZE)){
|
||||||
|
return getListSize();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,7 @@ import androidx.appcompat.app.AppCompatActivity;
|
||||||
import androidx.core.widget.NestedScrollView;
|
import androidx.core.widget.NestedScrollView;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
|
import com.darkweb.genesissearchengine.constants.enums;
|
||||||
import com.darkweb.genesissearchengine.eventObserver;
|
import com.darkweb.genesissearchengine.eventObserver;
|
||||||
import com.darkweb.genesissearchengine.helperManager.sharedUIMethod;
|
import com.darkweb.genesissearchengine.helperManager.sharedUIMethod;
|
||||||
import com.google.android.material.floatingactionbutton.FloatingActionButton;
|
import com.google.android.material.floatingactionbutton.FloatingActionButton;
|
||||||
|
@ -56,19 +57,17 @@ class orbotLogViewController
|
||||||
|
|
||||||
private void onUpdateLogs(String pLogs){
|
private void onUpdateLogs(String pLogs){
|
||||||
pLogs = "~ " + pLogs;
|
pLogs = "~ " + pLogs;
|
||||||
mLogs.setText(String.format("%s%s",mLogs.getText() ,pLogs + "\n\n"));
|
mLogs.setText(String.format("%s%s",mLogs.getText() , "\n\n" + pLogs ));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onScrollThemeUpdate(){
|
private void onFloatButtonUpdate(){
|
||||||
if(mNestedScrollView.canScrollVertically(1)){
|
if(mNestedScrollView.canScrollVertically(enums.ScrollDirection.VERTICAL)){
|
||||||
if(mFloatingScroller.getAlpha()==0){
|
mFloatingScroller.setVisibility(View.VISIBLE);
|
||||||
mFloatingScroller.setVisibility(View.VISIBLE);
|
mFloatingScroller.animate().cancel();
|
||||||
mFloatingScroller.animate().cancel();
|
mFloatingScroller.animate().setDuration(250).alpha(1);
|
||||||
mFloatingScroller.animate().alpha(1);
|
|
||||||
}
|
|
||||||
}else {
|
}else {
|
||||||
mFloatingScroller.animate().cancel();
|
mFloatingScroller.animate().cancel();
|
||||||
mFloatingScroller.animate().alpha(0).withEndAction(() -> mFloatingScroller.setVisibility(View.GONE));
|
mFloatingScroller.animate().setDuration(250).alpha(0).withEndAction(() -> mFloatingScroller.setVisibility(View.GONE));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -82,8 +81,8 @@ class orbotLogViewController
|
||||||
else if(pCommands.equals(orbotLogEnums.eOrbotLogViewCommands.M_INIT_VIEWS)){
|
else if(pCommands.equals(orbotLogEnums.eOrbotLogViewCommands.M_INIT_VIEWS)){
|
||||||
initViews((boolean)pData.get(0));
|
initViews((boolean)pData.get(0));
|
||||||
}
|
}
|
||||||
else if(pCommands.equals(orbotLogEnums.eOrbotLogViewCommands.M_SCROLL_THEME_UPDATE)){
|
else if(pCommands.equals(orbotLogEnums.eOrbotLogViewCommands.M_FLOAT_BUTTON_UPDATE)){
|
||||||
onScrollThemeUpdate();
|
onFloatButtonUpdate();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ public class constants
|
||||||
public static final String CONST_PRIVACY_POLICY_URL = "https://genesishiddentechnologies.com/privacy";
|
public static final String CONST_PRIVACY_POLICY_URL = "https://genesishiddentechnologies.com/privacy";
|
||||||
public static final String CONST_REPORT_URL = "https://genesishiddentechnologies.com/reportus?url=";
|
public static final String CONST_REPORT_URL = "https://genesishiddentechnologies.com/reportus?url=";
|
||||||
public static final String CONST_SITEMAP = "https://genesishiddentechnologies.com/create";
|
public static final String CONST_SITEMAP = "https://genesishiddentechnologies.com/create";
|
||||||
public static final String CONST_PACKAGE_NAME = "com.darkweb.genesissearchengine";
|
public static final String CONST_PACKAGE_NAME = "com.darkweb.genesissearchengine.dev";
|
||||||
|
|
||||||
/*DRIVE URL DEV*/
|
/*DRIVE URL DEV*/
|
||||||
|
|
||||||
|
@ -47,7 +47,7 @@ public class constants
|
||||||
public static final String CONST_BACKEND_DUCK_DUCK_GO_URL = "https://duckduckgo.com?q=$s&ia=web";
|
public static final String CONST_BACKEND_DUCK_DUCK_GO_URL = "https://duckduckgo.com?q=$s&ia=web";
|
||||||
public static final String CONST_BACKEND_BING_URL = "https://bing.com/search?q=$s";
|
public static final String CONST_BACKEND_BING_URL = "https://bing.com/search?q=$s";
|
||||||
public static final String CONST_BACKEND_WIKI_URL = "https://en.wikipedia.org/wiki/$s";
|
public static final String CONST_BACKEND_WIKI_URL = "https://en.wikipedia.org/wiki/$s";
|
||||||
public static final String CONST_LOG_DUCKDUCK = "https://duckduckgo.com/?q=tor logs";
|
public static final String CONST_LOG_DUCKDUCK = "https://duckduckgo.com/?q=tor ";
|
||||||
|
|
||||||
/*PROXY CONSTANTS*/
|
/*PROXY CONSTANTS*/
|
||||||
|
|
||||||
|
|
|
@ -35,4 +35,10 @@ public class enums
|
||||||
public static final int M_IMAGE_LOADED_SUCCESSFULLY = 1;
|
public static final int M_IMAGE_LOADED_SUCCESSFULLY = 1;
|
||||||
public static final int M_IMAGE_LOADING_FAILED = 2;
|
public static final int M_IMAGE_LOADING_FAILED = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class ScrollDirection {
|
||||||
|
public static final int HORIZONTAL = 0;
|
||||||
|
public static final int VERTICAL = 1;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -1,90 +0,0 @@
|
||||||
package com.darkweb.genesissearchengine.externalNavigationManager;
|
|
||||||
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.net.Uri;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.os.Handler;
|
|
||||||
import android.os.Looper;
|
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
|
||||||
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
|
||||||
import com.darkweb.genesissearchengine.appManager.homeManager.homeController.homeController;
|
|
||||||
import com.darkweb.genesissearchengine.constants.status;
|
|
||||||
|
|
||||||
import static com.darkweb.genesissearchengine.constants.constants.CONST_PACKAGE_NAME;
|
|
||||||
|
|
||||||
public class externalNavigationController extends AppCompatActivity {
|
|
||||||
@Override
|
|
||||||
|
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
Uri data = externalNavigationController.this.getIntent().getData();
|
|
||||||
if(data == null){
|
|
||||||
finish();
|
|
||||||
activityContextManager.getInstance().onClearStack();
|
|
||||||
Intent bringToForegroundIntent = new Intent(activityContextManager.getInstance().getHomeController(), homeController.class);
|
|
||||||
bringToForegroundIntent.setFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | Intent.FLAG_ACTIVITY_NEW_TASK);
|
|
||||||
startActivity(bringToForegroundIntent);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(status.sSettingIsAppStarted){
|
|
||||||
finish();
|
|
||||||
activityContextManager.getInstance().onClearStack();
|
|
||||||
|
|
||||||
new Handler(Looper.getMainLooper()).postDelayed(() -> {
|
|
||||||
activityContextManager.getInstance().getHomeController().onOpenLinkNewTab(activityContextManager.getInstance().getHomeController().completeURL(data.toString()));
|
|
||||||
activityContextManager.getInstance().getHomeController().onClearSelectionTab();
|
|
||||||
}, 3000);
|
|
||||||
|
|
||||||
Intent bringToForegroundIntent = new Intent(activityContextManager.getInstance().getHomeController(), homeController.class);
|
|
||||||
bringToForegroundIntent.setFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | Intent.FLAG_ACTIVITY_NEW_TASK);
|
|
||||||
startActivity(bringToForegroundIntent);
|
|
||||||
|
|
||||||
return;
|
|
||||||
}else if(status.sSettingIsAppRunning){
|
|
||||||
finish();
|
|
||||||
status.sExternalWebsite = data.toString();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Intent intent = new Intent(this.getIntent());
|
|
||||||
intent.setClassName(this.getApplicationContext(), homeController.class.getName());
|
|
||||||
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
|
||||||
|
|
||||||
if(activityContextManager.getInstance().getHomeController()!=null){
|
|
||||||
activityContextManager.getInstance().getHomeController().onOpenLinkNewTab(data.toString());
|
|
||||||
}else {
|
|
||||||
status.sExternalWebsite = data.toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
this.startActivity(intent);
|
|
||||||
this.overridePendingTransition(0, 0);
|
|
||||||
|
|
||||||
new Thread(){
|
|
||||||
public void run(){
|
|
||||||
try {
|
|
||||||
sleep(1000);
|
|
||||||
externalNavigationController.this.runOnUiThread(() -> finish());
|
|
||||||
} catch (InterruptedException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}.start();
|
|
||||||
|
|
||||||
Intent launchIntent = getPackageManager().getLaunchIntentForPackage(CONST_PACKAGE_NAME);
|
|
||||||
startActivity(launchIntent);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onNewIntent(Intent intent)
|
|
||||||
{
|
|
||||||
super.onNewIntent(intent);
|
|
||||||
Uri data = intent.getData();
|
|
||||||
if(data!=null){
|
|
||||||
activityContextManager.getInstance().getHomeController().onOpenLinkNewTab(data.toString());
|
|
||||||
Intent launchIntent = getPackageManager().getLaunchIntentForPackage(CONST_PACKAGE_NAME);
|
|
||||||
startActivity(launchIntent);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item>
|
||||||
|
<shape android:shape="oval">
|
||||||
|
<size android:width="10dp" android:height="10dp"/>
|
||||||
|
<padding android:bottom="4dp" android:top="4dp"
|
||||||
|
android:left="4dp" android:right="4dp"/>
|
||||||
|
</shape>
|
||||||
|
</item>
|
||||||
|
<item android:drawable="@xml/ic_baseline_shortcut_erase">
|
||||||
|
</item>
|
||||||
|
</layer-list>
|
|
@ -4,39 +4,39 @@
|
||||||
<shortcut
|
<shortcut
|
||||||
android:shortcutId="Restart"
|
android:shortcutId="Restart"
|
||||||
android:enabled="true"
|
android:enabled="true"
|
||||||
android:icon="@xml/ic_baseline_shortcut_erase"
|
android:icon="@xml/ic_baseline_shortcut_erase_back"
|
||||||
android:shortcutShortLabel="@string/shortcut_open"
|
android:shortcutShortLabel="@string/shortcut_open"
|
||||||
android:shortcutLongLabel="@string/shortcut_open_long">
|
android:shortcutLongLabel="@string/shortcut_open_long">
|
||||||
<intent
|
<intent
|
||||||
android:action="erase"
|
android:action="erase"
|
||||||
android:targetPackage="com.darkweb.genesissearchengine"
|
android:targetPackage="com.darkweb.genesissearchengine.dev"
|
||||||
android:targetClass="com.darkweb.genesissearchengine.externalNavigationManager.externalShortcuts">
|
android:targetClass="com.darkweb.genesissearchengine.appManager.externalNavigationManager.externalShortcuts">
|
||||||
<extra android:name="shortcut" android:value="open" />
|
<extra android:name="shortcut" android:value="open" />
|
||||||
</intent>
|
</intent>
|
||||||
</shortcut>
|
</shortcut>
|
||||||
<shortcut
|
<shortcut
|
||||||
android:shortcutId="erase_and_open"
|
android:shortcutId="erase_and_open"
|
||||||
android:enabled="true"
|
android:enabled="true"
|
||||||
android:icon="@xml/ic_baseline_shortcut_add_new"
|
android:icon="@xml/ic_baseline_shortcut_add_new_back"
|
||||||
android:shortcutShortLabel="@string/shortcut_erase_and_open_short_label"
|
android:shortcutShortLabel="@string/shortcut_erase_and_open_short_label"
|
||||||
android:shortcutLongLabel="@string/shortcut_erase_and_open_long_label">
|
android:shortcutLongLabel="@string/shortcut_erase_and_open_long_label">
|
||||||
<intent
|
<intent
|
||||||
android:action="erase"
|
android:action="erase"
|
||||||
android:targetPackage="com.darkweb.genesissearchengine"
|
android:targetPackage="com.darkweb.genesissearchengine.dev"
|
||||||
android:targetClass="com.darkweb.genesissearchengine.externalNavigationManager.externalShortcuts">
|
android:targetClass="com.darkweb.genesissearchengine.appManager.externalNavigationManager.externalShortcuts">
|
||||||
<extra android:name="shortcut" android:value="erase_and_open" />
|
<extra android:name="shortcut" android:value="erase_and_open" />
|
||||||
</intent>
|
</intent>
|
||||||
</shortcut>
|
</shortcut>
|
||||||
<shortcut
|
<shortcut
|
||||||
android:shortcutId="erase"
|
android:shortcutId="erase"
|
||||||
android:enabled="true"
|
android:enabled="true"
|
||||||
android:icon="@xml/ic_baseline_shortcut_cross"
|
android:icon="@xml/ic_baseline_shortcut_cross_back"
|
||||||
android:shortcutShortLabel="@string/shortcut_erase_short_label"
|
android:shortcutShortLabel="@string/shortcut_erase_short_label"
|
||||||
android:shortcutLongLabel="@string/shortcut_erase_long_label">
|
android:shortcutLongLabel="@string/shortcut_erase_long_label">
|
||||||
<intent
|
<intent
|
||||||
android:action="erase"
|
android:action="erase"
|
||||||
android:targetPackage="com.darkweb.genesissearchengine"
|
android:targetPackage="com.darkweb.genesissearchengine.dev"
|
||||||
android:targetClass="com.darkweb.genesissearchengine.externalNavigationManager.externalShortcuts">
|
android:targetClass="com.darkweb.genesissearchengine.appManager.externalNavigationManager.externalShortcuts">
|
||||||
<extra android:name="shortcut" android:value="erase" />
|
<extra android:name="shortcut" android:value="erase" />
|
||||||
</intent>
|
</intent>
|
||||||
</shortcut>
|
</shortcut>
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
<vector android:height="24dp" android:tint="#3C5C7E"
|
<vector android:height="48dp" android:tint="#3C5C7E"
|
||||||
android:viewportHeight="24" android:viewportWidth="24"
|
android:viewportHeight="24" android:viewportWidth="24"
|
||||||
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
android:width="48dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<path android:fillColor="@android:color/white" android:pathData="M13,3c-4.97,0 -9,4.03 -9,9L1,12l3.89,3.89 0.07,0.14L9,12L6,12c0,-3.87 3.13,-7 7,-7s7,3.13 7,7 -3.13,7 -7,7c-1.93,0 -3.68,-0.79 -4.94,-2.06l-1.42,1.42C8.27,19.99 10.51,21 13,21c4.97,0 9,-4.03 9,-9s-4.03,-9 -9,-9zM12,8v5l4.28,2.54 0.72,-1.21 -3.5,-2.08L13.5,8L12,8z"/>
|
<path android:fillColor="@android:color/white" android:pathData="M12,5V2L8,6l4,4V7c3.31,0 6,2.69 6,6c0,2.97 -2.17,5.43 -5,5.91v2.02c3.95,-0.49 7,-3.85 7,-7.93C20,8.58 16.42,5 12,5z"/>
|
||||||
|
<path android:fillColor="@android:color/white" android:pathData="M6,13c0,-1.65 0.67,-3.15 1.76,-4.24L6.34,7.34C4.9,8.79 4,10.79 4,13c0,4.08 3.05,7.44 7,7.93v-2.02C8.17,18.43 6,15.97 6,13z"/>
|
||||||
</vector>
|
</vector>
|
||||||
|
|
|
@ -82,9 +82,9 @@
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:background="@xml/ax_ripple_default_round_bottom"
|
android:background="@xml/ax_ripple_default_round_bottom"
|
||||||
android:padding="0dp"
|
android:padding="0dp"
|
||||||
android:textAlignment="textStart"
|
android:paddingStart="38dp"
|
||||||
android:paddingStart="28.5dp"
|
|
||||||
android:text="@string/ALERT_DATA_CLEARED_BUTTON"
|
android:text="@string/ALERT_DATA_CLEARED_BUTTON"
|
||||||
|
android:textAlignment="textStart"
|
||||||
android:textAllCaps="false"
|
android:textAllCaps="false"
|
||||||
android:textColor="@color/holo_gray"
|
android:textColor="@color/holo_gray"
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item>
|
||||||
|
<shape android:shape="oval">
|
||||||
|
<size android:width="10dp" android:height="10dp"/>
|
||||||
|
<padding android:bottom="4dp" android:top="4dp"
|
||||||
|
android:left="4dp" android:right="4dp"/>
|
||||||
|
</shape>
|
||||||
|
</item>
|
||||||
|
<item android:drawable="@xml/ic_baseline_shortcut_add_new">
|
||||||
|
</item>
|
||||||
|
</layer-list>
|
|
@ -0,0 +1,12 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item>
|
||||||
|
<shape android:shape="oval">
|
||||||
|
<size android:width="10dp" android:height="10dp"/>
|
||||||
|
<padding android:bottom="4dp" android:top="4dp"
|
||||||
|
android:left="4dp" android:right="4dp"/>
|
||||||
|
</shape>
|
||||||
|
</item>
|
||||||
|
<item android:drawable="@xml/ic_baseline_shortcut_cross">
|
||||||
|
</item>
|
||||||
|
</layer-list>
|
|
@ -126,14 +126,13 @@
|
||||||
android:id="@+id/pLogs"
|
android:id="@+id/pLogs"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginEnd="12dp"
|
|
||||||
android:background="@xml/sx_border_left"
|
android:background="@xml/sx_border_left"
|
||||||
android:layout_marginStart="10dp"
|
android:layout_marginStart="10dp"
|
||||||
android:paddingStart="15dp"
|
android:paddingStart="15dp"
|
||||||
android:paddingEnd="10dp"
|
android:paddingEnd="15dp"
|
||||||
android:paddingTop="25dp"
|
android:paddingTop="20dp"
|
||||||
android:paddingBottom="5dp"
|
android:paddingBottom="20dp"
|
||||||
android:layout_marginBottom="190dp"
|
android:layout_marginBottom="150dp"
|
||||||
android:layout_marginTop="20dp"
|
android:layout_marginTop="20dp"
|
||||||
android:textColor="@color/c_text_v4"
|
android:textColor="@color/c_text_v4"
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
|
@ -160,7 +159,7 @@
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
android:layout_marginEnd="16dp"
|
android:layout_marginEnd="16dp"
|
||||||
android:layout_marginBottom="16dp"
|
android:layout_marginBottom="16dp"
|
||||||
android:onClick="onScrollBottom"
|
android:onClick="onScrollBottomAnimated"
|
||||||
android:clickable="true"
|
android:clickable="true"
|
||||||
android:tint="@color/white"
|
android:tint="@color/white"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
<string name="shortcut_erase_long_label">Erase browsing history</string>
|
<string name="shortcut_erase_long_label">Erase browsing history</string>
|
||||||
<string name="shortcut_erase_and_open_short_label">Erase & open</string>
|
<string name="shortcut_erase_and_open_short_label">Erase & open</string>
|
||||||
<string name="shortcut_erase_and_open_long_label">Erase and open</string>
|
<string name="shortcut_erase_and_open_long_label">Erase and open</string>
|
||||||
<string name="shortcut_open">Restart</string>
|
<string name="shortcut_open">Restart or Open</string>
|
||||||
<string name="shortcut_open_long">Restart Application</string>
|
<string name="shortcut_open_long">Restart Application</string>
|
||||||
|
|
||||||
<!-- Temp -->
|
<!-- Temp -->
|
||||||
|
|
|
@ -7,4 +7,9 @@ settingLogModel
|
||||||
settingLogViewController
|
settingLogViewController
|
||||||
|
|
||||||
/* In Progress */
|
/* In Progress */
|
||||||
OrbotLogs
|
orbotLogAdapter
|
||||||
|
orbotLogController
|
||||||
|
orbotLogEnums
|
||||||
|
orbotLogModel
|
||||||
|
orbotLogStatus
|
||||||
|
orbotLogViewController
|
||||||
|
|
Loading…
Reference in New Issue