[tor-commits] [orbot/master] keep apps around as static variable, enable user to refresh
n8fr8 at torproject.org
n8fr8 at torproject.org
Tue Apr 28 21:05:00 UTC 2020
commit d396351695b4e9f0d18fbe2e15149d7b657ba5c3
Author: n8fr8 <nathan at guardianproject.info>
Date: Wed Jul 31 17:08:27 2019 -0400
keep apps around as static variable, enable user to refresh
---
.../torproject/android/ui/AppManagerActivity.java | 53 ++++++++++++++++++----
app/src/main/res/menu/app_main.xml | 33 ++++++++++++++
app/src/main/res/values/strings.xml | 1 +
3 files changed, 78 insertions(+), 9 deletions(-)
diff --git a/app/src/main/java/org/torproject/android/ui/AppManagerActivity.java b/app/src/main/java/org/torproject/android/ui/AppManagerActivity.java
index a8c7a180..f5970a25 100644
--- a/app/src/main/java/org/torproject/android/ui/AppManagerActivity.java
+++ b/app/src/main/java/org/torproject/android/ui/AppManagerActivity.java
@@ -3,6 +3,8 @@
package org.torproject.android.ui;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -11,10 +13,15 @@ import java.util.Iterator;
import java.util.List;
import java.util.StringTokenizer;
+import org.torproject.android.OrbotMainActivity;
import org.torproject.android.service.OrbotConstants;
import org.torproject.android.R;
+import org.torproject.android.service.util.Prefs;
import org.torproject.android.service.util.TorServiceUtils;
import org.torproject.android.service.vpn.TorifiedApp;
+import org.torproject.android.settings.SettingsPreferences;
+import org.torproject.android.ui.hiddenservices.ClientCookiesActivity;
+import org.torproject.android.ui.hiddenservices.HiddenServicesActivity;
import android.Manifest;
import android.content.Intent;
@@ -27,6 +34,8 @@ import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
@@ -39,6 +48,8 @@ import android.widget.ListAdapter;
import android.widget.ProgressBar;
import android.widget.TextView;
+import com.google.zxing.integration.android.IntentIntegrator;
+
import static org.torproject.android.service.vpn.VpnPrefs.PREFS_KEY_TORIFIED;
public class AppManagerActivity extends AppCompatActivity implements OnClickListener, OrbotConstants {
@@ -60,14 +71,6 @@ public class AppManagerActivity extends AppCompatActivity implements OnClickList
progressBar = findViewById(R.id.progressBar);
}
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- if (item.getItemId() == android.R.id.home) {
- finish();
- return true;
- }
- return super.onOptionsItemSelected(item);
- }
@Override
protected void onResume() {
@@ -76,6 +79,36 @@ public class AppManagerActivity extends AppCompatActivity implements OnClickList
reloadApps();
}
+
+ /*
+ * Create the UI Options Menu (non-Javadoc)
+ * @see android.app.Activity#onCreateOptionsMenu(android.view.Menu)
+ */
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ super.onCreateOptionsMenu(menu);
+ MenuInflater inflater = getMenuInflater();
+ inflater.inflate(R.menu.app_main, menu);
+ return true;
+ }
+
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+
+ if (item.getItemId() == R.id.menu_refresh_apps)
+ {
+ mApps = null;
+ reloadApps();
+ }
+ else if (item.getItemId() == android.R.id.home) {
+ finish();
+ return true;
+ }
+
+ return super.onOptionsItemSelected(item);
+ }
+
private void reloadApps () {
new AsyncTask<Void, Void, Void>() {
protected void onPreExecute() {
@@ -96,7 +129,7 @@ public class AppManagerActivity extends AppCompatActivity implements OnClickList
}
SharedPreferences mPrefs = null;
- ArrayList<TorifiedApp> mApps = null;
+ static ArrayList<TorifiedApp> mApps = null;
private void loadApps (SharedPreferences prefs) {
if (mApps == null)
@@ -181,6 +214,7 @@ public class AppManagerActivity extends AppCompatActivity implements OnClickList
public ArrayList<TorifiedApp> getApps(SharedPreferences prefs) {
String tordAppString = prefs.getString(PREFS_KEY_TORIFIED, "");
+
String[] tordApps;
StringTokenizer st = new StringTokenizer(tordAppString,"|");
@@ -209,6 +243,7 @@ public class AppManagerActivity extends AppCompatActivity implements OnClickList
if (!aInfo.enabled) continue;
app = new TorifiedApp();
+
try {
PackageInfo pInfo = pMgr.getPackageInfo(aInfo.packageName, PackageManager.GET_PERMISSIONS);
diff --git a/app/src/main/res/menu/app_main.xml b/app/src/main/res/menu/app_main.xml
new file mode 100644
index 00000000..7f0e34d0
--- /dev/null
+++ b/app/src/main/res/menu/app_main.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+ * Copyright (C) 2008 Esmertec AG.
+ * Copyright (C) 2008 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+<menu xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:yourapp="http://schemas.android.com/apk/res-auto"
+ >
+
+
+ <item android:id="@+id/menu_refresh_apps"
+ android:title="@string/refresh_apps"
+ android:icon="@drawable/ic_refresh_white_24dp"
+ yourapp:showAsAction="always"
+ />
+
+
+
+</menu>
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index c86f0f0c..4400c048 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -254,4 +254,5 @@
<string name="user_services">User services</string>
<string name="app_services">App services</string>
<string name="default_socks_http">SOCKS: - HTTP: -</string>
+ <string name="refresh_apps">Refresh Apps</string>
</resources>
More information about the tor-commits
mailing list