summaryrefslogtreecommitdiff
path: root/src/de/blinkt/openvpn/api/ExternalAppDatabase.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/de/blinkt/openvpn/api/ExternalAppDatabase.java')
-rw-r--r--src/de/blinkt/openvpn/api/ExternalAppDatabase.java58
1 files changed, 58 insertions, 0 deletions
diff --git a/src/de/blinkt/openvpn/api/ExternalAppDatabase.java b/src/de/blinkt/openvpn/api/ExternalAppDatabase.java
new file mode 100644
index 00000000..ca348152
--- /dev/null
+++ b/src/de/blinkt/openvpn/api/ExternalAppDatabase.java
@@ -0,0 +1,58 @@
+package de.blinkt.openvpn.api;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.content.SharedPreferences.Editor;
+import android.preference.PreferenceManager;
+
+public class ExternalAppDatabase {
+
+ Context mContext;
+
+ public ExternalAppDatabase(Context c) {
+ mContext =c;
+ }
+
+ private final String PREFERENCES_KEY = "PREFERENCES_KEY";
+
+ boolean isAllowed(String packagename) {
+ Set<String> allowedapps = getExtAppList();
+
+ return allowedapps.contains(packagename);
+
+ }
+
+ Set<String> getExtAppList() {
+ SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(mContext);
+ Set<String> allowedapps = prefs.getStringSet(PREFERENCES_KEY, new HashSet<String>());
+ return allowedapps;
+ }
+
+ void addApp(String packagename)
+ {
+ Set<String> allowedapps = getExtAppList();
+ allowedapps.add(packagename);
+ saveExtAppList(allowedapps);
+ }
+
+ private void saveExtAppList( Set<String> allowedapps) {
+ SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(mContext);
+ Editor prefedit = prefs.edit();
+ prefedit.putStringSet(PREFERENCES_KEY, allowedapps);
+ prefedit.apply();
+ }
+
+ void clearAllApiApps() {
+ saveExtAppList(new HashSet<String>());
+ }
+
+ public void removeApp(String packagename) {
+ Set<String> allowedapps = getExtAppList();
+ allowedapps.remove(packagename);
+ saveExtAppList(allowedapps);
+ }
+
+}