From 49629ed1a75954bd9776bf81585802421ab5c8ae Mon Sep 17 00:00:00 2001 From: NekoInverter <7741672-NekoInverter@users.noreply.gitlab.com> Date: Tue, 26 Jan 2021 11:59:08 +0800 Subject: [PATCH] Remove module repo --- .../org/meowcat/edxposed/manager/App.java | 38 ++++--- .../manager/ui/activity/DownloadActivity.java | 5 + .../ui/activity/DownloadDetailsActivity.java | 5 + .../manager/ui/activity/MainActivity.java | 48 ++++----- .../manager/ui/activity/ModulesActivity.java | 99 +++++++++---------- .../manager/ui/activity/SettingsActivity.java | 5 +- .../edxposed/manager/util/ModuleUtil.java | 24 +++-- .../edxposed/manager/util/RepoLoader.java | 4 +- app/src/main/res/layout/activity_main.xml | 4 +- .../main/res/menu/context_menu_modules.xml | 4 +- app/src/main/res/xml/prefs.xml | 4 +- 11 files changed, 121 insertions(+), 119 deletions(-) diff --git a/app/src/main/java/org/meowcat/edxposed/manager/App.java b/app/src/main/java/org/meowcat/edxposed/manager/App.java index a28eeb7f..85b94bcd 100644 --- a/app/src/main/java/org/meowcat/edxposed/manager/App.java +++ b/app/src/main/java/org/meowcat/edxposed/manager/App.java @@ -13,16 +13,13 @@ import android.os.Handler; import android.util.Log; import androidx.annotation.NonNull; -import androidx.appcompat.app.AppCompatActivity; import androidx.preference.PreferenceManager; -import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import org.meowcat.edxposed.manager.adapters.AppHelper; import org.meowcat.edxposed.manager.receivers.PackageChangeReceiver; import org.meowcat.edxposed.manager.ui.activity.CrashReportActivity; import org.meowcat.edxposed.manager.util.ModuleUtil; import org.meowcat.edxposed.manager.util.NotificationUtil; -import org.meowcat.edxposed.manager.util.RepoLoader; import java.io.File; import java.io.PrintWriter; @@ -40,7 +37,7 @@ public class App extends Application implements Application.ActivityLifecycleCal private static Thread uiThread; private static Handler mainHandler; private SharedPreferences pref; - private AppCompatActivity currentActivity = null; + //private AppCompatActivity currentActivity = null; private boolean isUiLoaded = false; public static App getInstance() { @@ -124,7 +121,7 @@ public class App extends Application implements Application.ActivityLifecycleCal } } - RepoLoader.getInstance().triggerFirstLoadIfNecessary(); + //RepoLoader.getInstance().triggerFirstLoadIfNecessary(); } private void registerReceivers() { @@ -145,25 +142,26 @@ public class App extends Application implements Application.ActivityLifecycleCal mkdir("log"); } - public void updateProgressIndicator(final SwipeRefreshLayout refreshLayout) { - final boolean isLoading = RepoLoader.getInstance().isLoading() || ModuleUtil.getInstance().isLoading(); - runOnUiThread(() -> { - synchronized (App.this) { - if (currentActivity != null) { - if (refreshLayout != null) - refreshLayout.setRefreshing(isLoading); + /* + public void updateProgressIndicator(final SwipeRefreshLayout refreshLayout) { + final boolean isLoading = RepoLoader.getInstance().isLoading() || ModuleUtil.getInstance().isLoading(); + runOnUiThread(() -> { + synchronized (App.this) { + if (currentActivity != null) { + if (refreshLayout != null) + refreshLayout.setRefreshing(isLoading); + } } - } - }); - } - + }); + } + */ @Override public synchronized void onActivityCreated(@NonNull Activity activity, Bundle savedInstanceState) { if (isUiLoaded) { return; } - RepoLoader.getInstance().triggerFirstLoadIfNecessary(); + //RepoLoader.getInstance().triggerFirstLoadIfNecessary(); isUiLoaded = true; if (pref.getBoolean("hook_modules", true)) { @@ -184,13 +182,13 @@ public class App extends Application implements Application.ActivityLifecycleCal @Override public synchronized void onActivityResumed(@NonNull Activity activity) { - currentActivity = (AppCompatActivity) activity; - updateProgressIndicator(null); + //currentActivity = (AppCompatActivity) activity; + //updateProgressIndicator(null); } @Override public synchronized void onActivityPaused(@NonNull Activity activity) { - currentActivity = null; + //currentActivity = null; } @Override diff --git a/app/src/main/java/org/meowcat/edxposed/manager/ui/activity/DownloadActivity.java b/app/src/main/java/org/meowcat/edxposed/manager/ui/activity/DownloadActivity.java index b5d626a6..af982d2a 100644 --- a/app/src/main/java/org/meowcat/edxposed/manager/ui/activity/DownloadActivity.java +++ b/app/src/main/java/org/meowcat/edxposed/manager/ui/activity/DownloadActivity.java @@ -218,6 +218,11 @@ public class DownloadActivity extends BaseActivity implements RepoLoader.RepoLis reloadItems(); } + @Override + public void onModuleEnableChange(ModuleUtil moduleUtil) { + + } + @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { changed = true; diff --git a/app/src/main/java/org/meowcat/edxposed/manager/ui/activity/DownloadDetailsActivity.java b/app/src/main/java/org/meowcat/edxposed/manager/ui/activity/DownloadDetailsActivity.java index 3cf20a06..a597513a 100644 --- a/app/src/main/java/org/meowcat/edxposed/manager/ui/activity/DownloadDetailsActivity.java +++ b/app/src/main/java/org/meowcat/edxposed/manager/ui/activity/DownloadDetailsActivity.java @@ -159,6 +159,11 @@ public class DownloadDetailsActivity extends BaseActivity implements RepoLoader. reload(); } + @Override + public void onModuleEnableChange(ModuleUtil moduleUtil) { + + } + @Override public void onSingleInstalledModuleReloaded(ModuleUtil moduleUtil, String packageName, ModuleUtil.InstalledModule module) { if (this.packageName.equals(packageName)) diff --git a/app/src/main/java/org/meowcat/edxposed/manager/ui/activity/MainActivity.java b/app/src/main/java/org/meowcat/edxposed/manager/ui/activity/MainActivity.java index 963c4abf..8742e850 100644 --- a/app/src/main/java/org/meowcat/edxposed/manager/ui/activity/MainActivity.java +++ b/app/src/main/java/org/meowcat/edxposed/manager/ui/activity/MainActivity.java @@ -17,12 +17,11 @@ import org.meowcat.edxposed.manager.adapters.BlackListAdapter; import org.meowcat.edxposed.manager.databinding.ActivityMainBinding; import org.meowcat.edxposed.manager.util.GlideHelper; import org.meowcat.edxposed.manager.util.ModuleUtil; -import org.meowcat.edxposed.manager.util.RepoLoader; import org.meowcat.edxposed.manager.util.light.Light; -public class MainActivity extends BaseActivity implements RepoLoader.RepoListener, ModuleUtil.ModuleListener { +public class MainActivity extends BaseActivity implements /*RepoLoader.RepoListener, */ModuleUtil.ModuleListener { ActivityMainBinding binding; - private RepoLoader repoLoader; + //private RepoLoader repoLoader; @SuppressLint("PrivateResource") @Override @@ -34,23 +33,23 @@ public class MainActivity extends BaseActivity implements RepoLoader.RepoListene if (Light.setLightSourceAlpha(getWindow().getDecorView(), 0.01f, 0.029f)) { binding.status.setElevation(24); binding.modules.setElevation(12); - binding.downloads.setElevation(12); + //binding.downloads.setElevation(12); } }); setupWindowInsets(binding.snackbar, null); - repoLoader = RepoLoader.getInstance(); + //repoLoader = RepoLoader.getInstance(); ModuleUtil.getInstance().addListener(this); - repoLoader.addListener(this, false); + //repoLoader.addListener(this, false); binding.modules.setOnClickListener(v -> { Intent intent = new Intent(); intent.setClass(getApplicationContext(), ModulesActivity.class); startActivity(intent); }); - binding.downloads.setOnClickListener(v -> { + /*binding.downloads.setOnClickListener(v -> { Intent intent = new Intent(); intent.setClass(getApplicationContext(), DownloadActivity.class); startActivity(intent); - }); + });*/ binding.apps.setOnClickListener(v -> { Intent intent = new Intent(); intent.setClass(getApplicationContext(), BlackListActivity.class); @@ -110,22 +109,12 @@ public class MainActivity extends BaseActivity implements RepoLoader.RepoListene binding.status.setCardBackgroundColor(ContextCompat.getColor(this, R.color.colorPrimary)); binding.statusIcon.setImageResource(R.drawable.ic_error); } - notifyDataSetChanged(); + //notifyDataSetChanged(); + binding.modulesSummary.setText(String.format(getString(R.string.ModulesDetail), ModuleUtil.getInstance().getEnabledModules().size())); new Thread(() -> new BlackListAdapter(getApplicationContext(), AppHelper.isWhiteListMode()).generateCheckedList()); } - private int extractIntPart(String str) { - int result = 0, length = str.length(); - for (int offset = 0; offset < length; offset++) { - char c = str.charAt(offset); - if ('0' <= c && c <= '9') - result = result * 10 + (c - '0'); - else - break; - } - return result; - } - +/* private void notifyDataSetChanged() { runOnUiThread(() -> { String frameworkUpdateVersion = repoLoader.getFrameworkUpdateVersion(); @@ -142,28 +131,33 @@ public class MainActivity extends BaseActivity implements RepoLoader.RepoListene } }); } - +*/ @Override public void onInstalledModulesReloaded(ModuleUtil moduleUtil) { - notifyDataSetChanged(); + //notifyDataSetChanged(); + } + + @Override + public void onModuleEnableChange(ModuleUtil moduleUtil) { + binding.modulesSummary.setText(String.format(getString(R.string.ModulesDetail), moduleUtil.getEnabledModules().size())); } @Override public void onSingleInstalledModuleReloaded(ModuleUtil moduleUtil, String packageName, ModuleUtil.InstalledModule module) { - notifyDataSetChanged(); + //notifyDataSetChanged(); } - @Override + /*@Override public void onRepoReloaded(RepoLoader loader) { notifyDataSetChanged(); - } + }*/ @Override protected void onDestroy() { super.onDestroy(); ModuleUtil.getInstance().removeListener(this); - repoLoader.removeListener(this); + //repoLoader.removeListener(this); } } diff --git a/app/src/main/java/org/meowcat/edxposed/manager/ui/activity/ModulesActivity.java b/app/src/main/java/org/meowcat/edxposed/manager/ui/activity/ModulesActivity.java index 87688427..c24465d5 100644 --- a/app/src/main/java/org/meowcat/edxposed/manager/ui/activity/ModulesActivity.java +++ b/app/src/main/java/org/meowcat/edxposed/manager/ui/activity/ModulesActivity.java @@ -32,22 +32,13 @@ import org.meowcat.edxposed.manager.BuildConfig; import org.meowcat.edxposed.manager.Constants; import org.meowcat.edxposed.manager.R; import org.meowcat.edxposed.manager.databinding.ActivityModulesBinding; -import org.meowcat.edxposed.manager.repo.Module; -import org.meowcat.edxposed.manager.repo.ModuleVersion; -import org.meowcat.edxposed.manager.repo.ReleaseType; -import org.meowcat.edxposed.manager.repo.RepoDb; import org.meowcat.edxposed.manager.util.GlideApp; import org.meowcat.edxposed.manager.util.InstallApkUtil; import org.meowcat.edxposed.manager.util.LinearLayoutManagerFix; import org.meowcat.edxposed.manager.util.ModuleUtil; -import org.meowcat.edxposed.manager.util.NavUtil; -import org.meowcat.edxposed.manager.util.RepoLoader; -import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; -import java.io.InputStream; -import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; import java.text.DateFormat; @@ -288,7 +279,7 @@ public class ModulesActivity extends BaseActivity implements ModuleUtil.ModuleLi } } } - } else if (requestCode == 44) { + }/* else if (requestCode == 44) { if (data != null) { Uri uri = data.getData(); if (uri != null) { @@ -299,7 +290,7 @@ public class ModulesActivity extends BaseActivity implements ModuleUtil.ModuleLi } } } - } + }*/ } @Override @@ -340,51 +331,52 @@ public class ModulesActivity extends BaseActivity implements ModuleUtil.ModuleLi return super.onOptionsItemSelected(item); } - private void importModules(Uri uri) { - RepoLoader repoLoader = RepoLoader.getInstance(); - List list = new ArrayList<>(); + /* + private void importModules(Uri uri) { + RepoLoader repoLoader = RepoLoader.getInstance(); + List list = new ArrayList<>(); - try { - InputStream inputStream = getContentResolver().openInputStream(uri); - InputStreamReader isr = new InputStreamReader(inputStream); - BufferedReader br = new BufferedReader(isr); - String line; - while ((line = br.readLine()) != null) { - Module m = repoLoader.getModule(line); + try { + InputStream inputStream = getContentResolver().openInputStream(uri); + InputStreamReader isr = new InputStreamReader(inputStream); + BufferedReader br = new BufferedReader(isr); + String line; + while ((line = br.readLine()) != null) { + Module m = repoLoader.getModule(line); - if (m == null) { - Snackbar.make(binding.snackbar, getString(R.string.download_details_not_found, line), Snackbar.LENGTH_SHORT).show(); - } else { - list.add(m); + if (m == null) { + Snackbar.make(binding.snackbar, getString(R.string.download_details_not_found, line), Snackbar.LENGTH_SHORT).show(); + } else { + list.add(m); + } } + br.close(); + } catch (Exception e) { + e.printStackTrace(); } - br.close(); - } catch (Exception e) { - e.printStackTrace(); - } - for (final Module m : list) { - if (moduleUtil.getModule(m.packageName) != null) { - continue; - } - ModuleVersion mv = null; - for (int i = 0; i < m.versions.size(); i++) { - ModuleVersion mvTemp = m.versions.get(i); + for (final Module m : list) { + if (moduleUtil.getModule(m.packageName) != null) { + continue; + } + ModuleVersion mv = null; + for (int i = 0; i < m.versions.size(); i++) { + ModuleVersion mvTemp = m.versions.get(i); - if (mvTemp.relType == ReleaseType.STABLE) { - mv = mvTemp; - break; + if (mvTemp.relType == ReleaseType.STABLE) { + mv = mvTemp; + break; + } + } + + if (mv != null) { + NavUtil.startURL(this, mv.downloadLink); } } - if (mv != null) { - NavUtil.startURL(this, mv.downloadLink); - } + ModuleUtil.getInstance().reloadInstalledModules(); } - - ModuleUtil.getInstance().reloadInstalledModules(); - } - + */ @Override public void onDestroy() { super.onDestroy(); @@ -405,6 +397,11 @@ public class ModulesActivity extends BaseActivity implements ModuleUtil.ModuleLi runOnUiThread(reloadModules); } + @Override + public void onModuleEnableChange(ModuleUtil moduleUtil) { + + } + @Override public boolean onContextItemSelected(@NonNull MenuItem item) { ModuleUtil.InstalledModule module = ModuleUtil.getInstance().getModule(selectedPackageName); @@ -424,14 +421,14 @@ public class ModulesActivity extends BaseActivity implements ModuleUtil.ModuleLi Snackbar.make(binding.snackbar, R.string.module_no_ui, Snackbar.LENGTH_LONG).show(); } return true; - } else if (itemId == R.id.menu_download_updates) { + /*} else if (itemId == R.id.menu_download_updates) { Intent intent = new Intent(this, DownloadDetailsActivity.class); intent.setData(Uri.fromParts("package", module.packageName, null)); startActivity(intent); return true; } else if (itemId == R.id.menu_support) { - NavUtil.startURL(this, Uri.parse(RepoDb.getModuleSupport(module.packageName))); - return true; + //NavUtil.startURL(this, Uri.parse(RepoDb.getModuleSupport(module.packageName))); + return true;*/ } else if (itemId == R.id.menu_app_store) { Uri uri = Uri.parse("market://details?id=" + module.packageName); Intent intent = new Intent(Intent.ACTION_VIEW, uri); @@ -538,7 +535,7 @@ public class ModulesActivity extends BaseActivity implements ModuleUtil.ModuleLi holder.itemView.setOnCreateContextMenuListener((menu, v, menuInfo) -> { getMenuInflater().inflate(R.menu.context_menu_modules, menu); - ModuleUtil.InstalledModule installedModule = ModuleUtil.getInstance().getModule(item.packageName); + /*ModuleUtil.InstalledModule installedModule = ModuleUtil.getInstance().getModule(item.packageName); if (installedModule == null) { return; } @@ -555,7 +552,7 @@ public class ModulesActivity extends BaseActivity implements ModuleUtil.ModuleLi menu.removeItem(R.id.menu_launch); menu.removeItem(R.id.menu_scope); menu.removeItem(R.id.menu_uninstall); - } + }*/ }); holder.appName.setText(item.getAppName()); diff --git a/app/src/main/java/org/meowcat/edxposed/manager/ui/activity/SettingsActivity.java b/app/src/main/java/org/meowcat/edxposed/manager/ui/activity/SettingsActivity.java index d9b91a43..9225daaf 100644 --- a/app/src/main/java/org/meowcat/edxposed/manager/ui/activity/SettingsActivity.java +++ b/app/src/main/java/org/meowcat/edxposed/manager/ui/activity/SettingsActivity.java @@ -21,7 +21,6 @@ import org.meowcat.edxposed.manager.Constants; import org.meowcat.edxposed.manager.R; import org.meowcat.edxposed.manager.databinding.ActivitySettingsBinding; import org.meowcat.edxposed.manager.ui.widget.IntegerListPreference; -import org.meowcat.edxposed.manager.util.RepoLoader; import java.io.IOException; import java.nio.file.Files; @@ -112,7 +111,7 @@ public class SettingsActivity extends BaseActivity { @Override public void onCreatePreferencesFix(Bundle savedInstanceState, String rootKey) { addPreferencesFromResource(R.xml.prefs); - +/* Preference releaseType = findPreference("release_type_global"); if (releaseType != null) { releaseType.setOnPreferenceChangeListener((preference, newValue) -> { @@ -120,7 +119,7 @@ public class SettingsActivity extends BaseActivity { return true; }); } - +*/ SwitchPreferenceCompat prefWhiteListMode = findPreference("white_list_switch"); if (prefWhiteListMode != null) { prefWhiteListMode.setChecked(Files.exists(whiteListModeFlag)); diff --git a/app/src/main/java/org/meowcat/edxposed/manager/util/ModuleUtil.java b/app/src/main/java/org/meowcat/edxposed/manager/util/ModuleUtil.java index 40c35214..7da2ff4c 100644 --- a/app/src/main/java/org/meowcat/edxposed/manager/util/ModuleUtil.java +++ b/app/src/main/java/org/meowcat/edxposed/manager/util/ModuleUtil.java @@ -19,7 +19,6 @@ import org.meowcat.edxposed.manager.Constants; import org.meowcat.edxposed.manager.R; import org.meowcat.edxposed.manager.databinding.ActivityModulesBinding; import org.meowcat.edxposed.manager.repo.ModuleVersion; -import org.meowcat.edxposed.manager.repo.RepoDb; import java.io.IOException; import java.io.PrintWriter; @@ -77,9 +76,9 @@ public final class ModuleUtil { } Map modules = new HashMap<>(); - RepoDb.beginTransation(); + //RepoDb.beginTransation(); try { - RepoDb.deleteAllInstalledModules(); + //RepoDb.deleteAllInstalledModules(); for (PackageInfo pkg : pm.getInstalledPackages(PackageManager.GET_META_DATA)) { ApplicationInfo app = pkg.applicationInfo; @@ -94,13 +93,13 @@ public final class ModuleUtil { framework = installed = new InstalledModule(pkg, true); }*/ - if (installed != null) - RepoDb.insertInstalledModule(installed); + //if (installed != null) + // RepoDb.insertInstalledModule(installed); } - RepoDb.setTransactionSuccessful(); + //RepoDb.setTransactionSuccessful(); } finally { - RepoDb.endTransation(); + //RepoDb.endTransation(); } installedModules = modules; @@ -117,7 +116,7 @@ public final class ModuleUtil { try { pkg = pm.getPackageInfo(packageName, PackageManager.GET_META_DATA); } catch (NameNotFoundException e) { - RepoDb.deleteInstalledModule(packageName); + //RepoDb.deleteInstalledModule(packageName); InstalledModule old = installedModules.remove(packageName); if (old != null) { for (ModuleListener listener : listeners) { @@ -130,7 +129,7 @@ public final class ModuleUtil { ApplicationInfo app = pkg.applicationInfo; if (app.enabled && app.metaData != null && app.metaData.containsKey("xposedmodule")) { InstalledModule module = new InstalledModule(pkg, false); - RepoDb.insertInstalledModule(module); + //RepoDb.insertInstalledModule(module); installedModules.put(packageName, module); for (ModuleListener listener : listeners) { listener.onSingleInstalledModuleReloaded(instance, packageName, @@ -138,7 +137,7 @@ public final class ModuleUtil { } return module; } else { - RepoDb.deleteInstalledModule(packageName); + //RepoDb.deleteInstalledModule(packageName); InstalledModule old = installedModules.remove(packageName); if (old != null) { for (ModuleListener listener : listeners) { @@ -183,6 +182,9 @@ public final class ModuleUtil { } else { pref.edit().remove(packageName).apply(); } + for (ModuleListener listener : listeners) { + listener.onModuleEnableChange(instance); + } } public boolean isModuleEnabled(String packageName) { @@ -287,6 +289,8 @@ public final class ModuleUtil { * Called whenever all installed modules have been reloaded */ void onInstalledModulesReloaded(ModuleUtil moduleUtil); + + void onModuleEnableChange(ModuleUtil moduleUtil); } public class InstalledModule { diff --git a/app/src/main/java/org/meowcat/edxposed/manager/util/RepoLoader.java b/app/src/main/java/org/meowcat/edxposed/manager/util/RepoLoader.java index ab53f1e9..16fe0c52 100644 --- a/app/src/main/java/org/meowcat/edxposed/manager/util/RepoLoader.java +++ b/app/src/main/java/org/meowcat/edxposed/manager/util/RepoLoader.java @@ -206,7 +206,7 @@ public class RepoLoader { return; isLoading = true; } - app.updateProgressIndicator(swipeRefreshLayout); + //app.updateProgressIndicator(swipeRefreshLayout); new Thread("RepositoryReload") { public void run() { @@ -229,7 +229,7 @@ public class RepoLoader { synchronized (this) { isLoading = false; } - app.updateProgressIndicator(swipeRefreshLayout); + //app.updateProgressIndicator(swipeRefreshLayout); } }.start(); } diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 9af98d5d..41d75e6b 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -172,7 +172,7 @@ - - +--> - + android:title="@string/module_support" />--> diff --git a/app/src/main/res/xml/prefs.xml b/app/src/main/res/xml/prefs.xml index 8538853f..c446c4a2 100644 --- a/app/src/main/res/xml/prefs.xml +++ b/app/src/main/res/xml/prefs.xml @@ -68,7 +68,7 @@ android:title="@string/pure_black_dark_theme" app:iconSpaceReserved="false" /> - @@ -109,7 +109,7 @@ app:iconSpaceReserved="false" /> - +-->