From c6dd1261035325b647bdc6268cb6a2c5060135f7 Mon Sep 17 00:00:00 2001 From: Kr328 Date: Sat, 28 Nov 2020 00:18:33 +0800 Subject: [PATCH] add 'show system apps' option --- app/build.gradle.kts | 4 +-- .../github/kr328/clipboard/MainActivity.java | 28 ++++++++++++++++++- app/src/main/res/menu/main.xml | 8 ++++++ app/src/main/res/values/strings.xml | 1 + module/build.gradle.kts | 4 +-- 5 files changed, 40 insertions(+), 5 deletions(-) create mode 100644 app/src/main/res/menu/main.xml diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 5d15b96..ba34b5f 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -14,8 +14,8 @@ android { minSdkVersion(29) targetSdkVersion(30) - versionCode = 5 - versionName = "v5" + versionCode = 6 + versionName = "v6" } buildFeatures { diff --git a/app/src/main/java/com/github/kr328/clipboard/MainActivity.java b/app/src/main/java/com/github/kr328/clipboard/MainActivity.java index d332e10..8ac5d03 100644 --- a/app/src/main/java/com/github/kr328/clipboard/MainActivity.java +++ b/app/src/main/java/com/github/kr328/clipboard/MainActivity.java @@ -5,6 +5,8 @@ import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.os.Bundle; +import android.view.Menu; +import android.view.MenuItem; import android.view.View; import android.widget.ListView; import android.widget.ProgressBar; @@ -25,6 +27,8 @@ public class MainActivity extends Activity { private ListView appsList; private ProgressBar loading; + private boolean showSystemApps = false; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -54,6 +58,28 @@ protected void onDestroy() { threads.shutdownNow(); } + @Override + public boolean onCreateOptionsMenu(Menu menu) { + getMenuInflater().inflate(R.menu.main, menu); + + return super.onCreateOptionsMenu(menu); + } + + @Override + public boolean onMenuItemSelected(int featureId, MenuItem item) { + if ( item.getItemId() == R.id.systemApps ) { + item.setChecked(!item.isChecked()); + + showSystemApps = item.isChecked(); + + loadApps(); + + return true; + } + + return super.onMenuItemSelected(featureId, item); + } + private void loadApps() { threads.submit(() -> { updateLoading(false); @@ -64,7 +90,7 @@ private void loadApps() { final HashSet whitelist = new HashSet<>(Arrays.asList(service.queryPackages())); final List apps = pm.getInstalledApplications(0).stream() - .filter((info) -> (info.flags & ApplicationInfo.FLAG_SYSTEM) == 0) + .filter((info) -> showSystemApps || (info.flags & ApplicationInfo.FLAG_SYSTEM) == 0) .map((info) -> App.fromApplicationInfo(info, pm, whitelist.contains(info.packageName))) .sorted() .collect(Collectors.toList()); diff --git a/app/src/main/res/menu/main.xml b/app/src/main/res/menu/main.xml new file mode 100644 index 0000000..15352a8 --- /dev/null +++ b/app/src/main/res/menu/main.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index eddfd9c..08a650d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -15,5 +15,6 @@ Installation Failure ClipboardWhitelist installation error, click here to check. Notice + System Apps Applications cannot detect that the clipboard is accessible in the background and they may still assume that clipboard is unavailable. \ No newline at end of file diff --git a/module/build.gradle.kts b/module/build.gradle.kts index 261815e..f75415c 100644 --- a/module/build.gradle.kts +++ b/module/build.gradle.kts @@ -33,8 +33,8 @@ android { minSdkVersion(29) targetSdkVersion(30) - versionCode = 5 - versionName = "v5" + versionCode = 6 + versionName = "v6" multiDexEnabled = false