diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6bd2bc03..7161aaf7 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -20,29 +20,29 @@
android:theme="@style/AppTheme"
tools:ignore="AllowBackup,GoogleAppIndexingWarning">
-
+
@@ -56,10 +56,10 @@
android:resource="@xml/shortcuts" />
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 684d6004..6f1ce312 100644
--- a/app/src/main/java/org/meowcat/edxposed/manager/App.java
+++ b/app/src/main/java/org/meowcat/edxposed/manager/App.java
@@ -20,6 +20,7 @@ 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.FileUtils;
import org.meowcat.edxposed.manager.util.ModuleUtil;
import org.meowcat.edxposed.manager.util.NotificationUtil;
diff --git a/app/src/main/java/org/meowcat/edxposed/manager/adapters/ScopeAdapter.java b/app/src/main/java/org/meowcat/edxposed/manager/adapters/ScopeAdapter.java
index 342ed00d..19ce6cc6 100644
--- a/app/src/main/java/org/meowcat/edxposed/manager/adapters/ScopeAdapter.java
+++ b/app/src/main/java/org/meowcat/edxposed/manager/adapters/ScopeAdapter.java
@@ -7,7 +7,7 @@ import android.widget.CompoundButton;
import org.meowcat.edxposed.manager.R;
import org.meowcat.edxposed.manager.util.ToastUtil;
-import org.meowcat.edxposed.manager.widget.MasterSwitch;
+import org.meowcat.edxposed.manager.ui.widget.MasterSwitch;
import java.util.ArrayList;
import java.util.List;
diff --git a/app/src/main/java/org/meowcat/edxposed/manager/AboutActivity.java b/app/src/main/java/org/meowcat/edxposed/manager/ui/activity/AboutActivity.java
similarity index 95%
rename from app/src/main/java/org/meowcat/edxposed/manager/AboutActivity.java
rename to app/src/main/java/org/meowcat/edxposed/manager/ui/activity/AboutActivity.java
index 85c0f44f..a74581dc 100644
--- a/app/src/main/java/org/meowcat/edxposed/manager/AboutActivity.java
+++ b/app/src/main/java/org/meowcat/edxposed/manager/ui/activity/AboutActivity.java
@@ -1,4 +1,4 @@
-package org.meowcat.edxposed.manager;
+package org.meowcat.edxposed.manager.ui.activity;
import android.content.Intent;
import android.content.SharedPreferences;
@@ -12,6 +12,8 @@ import com.bumptech.glide.Glide;
import com.google.android.gms.oss.licenses.OssLicensesMenuActivity;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
+import org.meowcat.edxposed.manager.BuildConfig;
+import org.meowcat.edxposed.manager.R;
import org.meowcat.edxposed.manager.databinding.ActivityAboutBinding;
import org.meowcat.edxposed.manager.util.GlideHelper;
import org.meowcat.edxposed.manager.util.NavUtil;
diff --git a/app/src/main/java/org/meowcat/edxposed/manager/BaseActivity.java b/app/src/main/java/org/meowcat/edxposed/manager/ui/activity/BaseActivity.java
similarity index 98%
rename from app/src/main/java/org/meowcat/edxposed/manager/BaseActivity.java
rename to app/src/main/java/org/meowcat/edxposed/manager/ui/activity/BaseActivity.java
index 4da5c9aa..c12c9af9 100644
--- a/app/src/main/java/org/meowcat/edxposed/manager/BaseActivity.java
+++ b/app/src/main/java/org/meowcat/edxposed/manager/ui/activity/BaseActivity.java
@@ -1,4 +1,4 @@
-package org.meowcat.edxposed.manager;
+package org.meowcat.edxposed.manager.ui.activity;
import android.annotation.SuppressLint;
import android.content.Context;
@@ -27,6 +27,8 @@ import androidx.core.view.ViewCompat;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.topjohnwu.superuser.Shell;
+import org.meowcat.edxposed.manager.App;
+import org.meowcat.edxposed.manager.R;
import org.meowcat.edxposed.manager.util.CustomThemeColor;
import org.meowcat.edxposed.manager.util.CustomThemeColors;
import org.meowcat.edxposed.manager.util.NavUtil;
diff --git a/app/src/main/java/org/meowcat/edxposed/manager/BlackListActivity.java b/app/src/main/java/org/meowcat/edxposed/manager/ui/activity/BlackListActivity.java
similarity index 97%
rename from app/src/main/java/org/meowcat/edxposed/manager/BlackListActivity.java
rename to app/src/main/java/org/meowcat/edxposed/manager/ui/activity/BlackListActivity.java
index ae4f2822..b05ff3e4 100644
--- a/app/src/main/java/org/meowcat/edxposed/manager/BlackListActivity.java
+++ b/app/src/main/java/org/meowcat/edxposed/manager/ui/activity/BlackListActivity.java
@@ -1,4 +1,4 @@
-package org.meowcat.edxposed.manager;
+package org.meowcat.edxposed.manager.ui.activity;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
@@ -15,6 +15,8 @@ import androidx.recyclerview.widget.DividerItemDecoration;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
+import org.meowcat.edxposed.manager.App;
+import org.meowcat.edxposed.manager.R;
import org.meowcat.edxposed.manager.adapters.AppAdapter;
import org.meowcat.edxposed.manager.adapters.AppHelper;
import org.meowcat.edxposed.manager.adapters.BlackListAdapter;
diff --git a/app/src/main/java/org/meowcat/edxposed/manager/CrashReportActivity.java b/app/src/main/java/org/meowcat/edxposed/manager/ui/activity/CrashReportActivity.java
similarity index 96%
rename from app/src/main/java/org/meowcat/edxposed/manager/CrashReportActivity.java
rename to app/src/main/java/org/meowcat/edxposed/manager/ui/activity/CrashReportActivity.java
index ef1d1e6b..d7f8fcf4 100644
--- a/app/src/main/java/org/meowcat/edxposed/manager/CrashReportActivity.java
+++ b/app/src/main/java/org/meowcat/edxposed/manager/ui/activity/CrashReportActivity.java
@@ -1,4 +1,4 @@
-package org.meowcat.edxposed.manager;
+package org.meowcat.edxposed.manager.ui.activity;
import android.content.ClipData;
import android.content.ClipboardManager;
@@ -14,6 +14,8 @@ import androidx.appcompat.app.AppCompatActivity;
import com.google.android.material.snackbar.Snackbar;
+import org.meowcat.edxposed.manager.BuildConfig;
+import org.meowcat.edxposed.manager.R;
import org.meowcat.edxposed.manager.databinding.ActivityCrashReportBinding;
import java.text.DateFormat;
diff --git a/app/src/main/java/org/meowcat/edxposed/manager/DownloadActivity.java b/app/src/main/java/org/meowcat/edxposed/manager/ui/activity/DownloadActivity.java
similarity index 99%
rename from app/src/main/java/org/meowcat/edxposed/manager/DownloadActivity.java
rename to app/src/main/java/org/meowcat/edxposed/manager/ui/activity/DownloadActivity.java
index f65e81ba..b5d626a6 100644
--- a/app/src/main/java/org/meowcat/edxposed/manager/DownloadActivity.java
+++ b/app/src/main/java/org/meowcat/edxposed/manager/ui/activity/DownloadActivity.java
@@ -1,4 +1,4 @@
-package org.meowcat.edxposed.manager;
+package org.meowcat.edxposed.manager.ui.activity;
import android.content.BroadcastReceiver;
import android.content.Context;
@@ -29,6 +29,8 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.timehop.stickyheadersrecyclerview.StickyRecyclerHeadersAdapter;
import com.timehop.stickyheadersrecyclerview.StickyRecyclerHeadersDecoration;
+import org.meowcat.edxposed.manager.App;
+import org.meowcat.edxposed.manager.R;
import org.meowcat.edxposed.manager.adapters.CursorRecyclerViewAdapter;
import org.meowcat.edxposed.manager.databinding.ActivityDownloadBinding;
import org.meowcat.edxposed.manager.databinding.ItemDownloadBinding;
diff --git a/app/src/main/java/org/meowcat/edxposed/manager/DownloadDetailsActivity.java b/app/src/main/java/org/meowcat/edxposed/manager/ui/activity/DownloadDetailsActivity.java
similarity index 96%
rename from app/src/main/java/org/meowcat/edxposed/manager/DownloadDetailsActivity.java
rename to app/src/main/java/org/meowcat/edxposed/manager/ui/activity/DownloadDetailsActivity.java
index 8ca287d0..8be3509d 100644
--- a/app/src/main/java/org/meowcat/edxposed/manager/DownloadDetailsActivity.java
+++ b/app/src/main/java/org/meowcat/edxposed/manager/ui/activity/DownloadDetailsActivity.java
@@ -1,4 +1,4 @@
-package org.meowcat.edxposed.manager;
+package org.meowcat.edxposed.manager.ui.activity;
import android.content.Context;
import android.content.Intent;
@@ -18,6 +18,11 @@ import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
+import org.meowcat.edxposed.manager.App;
+import org.meowcat.edxposed.manager.ui.fragment.DownloadDetailsFragment;
+import org.meowcat.edxposed.manager.ui.fragment.DownloadDetailsSettingsFragment;
+import org.meowcat.edxposed.manager.ui.fragment.DownloadDetailsVersionsFragment;
+import org.meowcat.edxposed.manager.R;
import org.meowcat.edxposed.manager.databinding.ActivityDownloadDetailsBinding;
import org.meowcat.edxposed.manager.databinding.ActivityDownloadDetailsNotFoundBinding;
import org.meowcat.edxposed.manager.repo.Module;
diff --git a/app/src/main/java/org/meowcat/edxposed/manager/EdDownloadActivity.java b/app/src/main/java/org/meowcat/edxposed/manager/ui/activity/EdDownloadActivity.java
similarity index 94%
rename from app/src/main/java/org/meowcat/edxposed/manager/EdDownloadActivity.java
rename to app/src/main/java/org/meowcat/edxposed/manager/ui/activity/EdDownloadActivity.java
index 56ef5fd2..78b2d38d 100644
--- a/app/src/main/java/org/meowcat/edxposed/manager/EdDownloadActivity.java
+++ b/app/src/main/java/org/meowcat/edxposed/manager/ui/activity/EdDownloadActivity.java
@@ -1,4 +1,4 @@
-package org.meowcat.edxposed.manager;
+package org.meowcat.edxposed.manager.ui.activity;
import android.annotation.SuppressLint;
import android.content.SharedPreferences;
@@ -18,6 +18,11 @@ import androidx.transition.TransitionManager;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.gson.Gson;
+import org.meowcat.edxposed.manager.App;
+import org.meowcat.edxposed.manager.ui.fragment.BaseAdvancedInstaller;
+import org.meowcat.edxposed.manager.BuildConfig;
+import org.meowcat.edxposed.manager.R;
+import org.meowcat.edxposed.manager.ui.fragment.StatusInstallerFragment;
import org.meowcat.edxposed.manager.databinding.ActivityEdDownloadBinding;
import org.meowcat.edxposed.manager.databinding.DialogInstallWarningBinding;
import org.meowcat.edxposed.manager.util.json.JSONUtils;
diff --git a/app/src/main/java/org/meowcat/edxposed/manager/LogsActivity.java b/app/src/main/java/org/meowcat/edxposed/manager/ui/activity/LogsActivity.java
similarity index 98%
rename from app/src/main/java/org/meowcat/edxposed/manager/LogsActivity.java
rename to app/src/main/java/org/meowcat/edxposed/manager/ui/activity/LogsActivity.java
index 7a153d4a..8ff38a75 100644
--- a/app/src/main/java/org/meowcat/edxposed/manager/LogsActivity.java
+++ b/app/src/main/java/org/meowcat/edxposed/manager/ui/activity/LogsActivity.java
@@ -1,4 +1,4 @@
-package org.meowcat.edxposed.manager;
+package org.meowcat.edxposed.manager.ui.activity;
import android.annotation.SuppressLint;
import android.content.Intent;
@@ -24,6 +24,9 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.snackbar.Snackbar;
import com.google.android.material.tabs.TabLayout;
+import org.meowcat.edxposed.manager.App;
+import org.meowcat.edxposed.manager.BuildConfig;
+import org.meowcat.edxposed.manager.R;
import org.meowcat.edxposed.manager.databinding.ActivityLogsBinding;
import org.meowcat.edxposed.manager.databinding.DialogInstallWarningBinding;
import org.meowcat.edxposed.manager.databinding.ItemLogBinding;
diff --git a/app/src/main/java/org/meowcat/edxposed/manager/MainActivity.java b/app/src/main/java/org/meowcat/edxposed/manager/ui/activity/MainActivity.java
similarity index 98%
rename from app/src/main/java/org/meowcat/edxposed/manager/MainActivity.java
rename to app/src/main/java/org/meowcat/edxposed/manager/ui/activity/MainActivity.java
index 660ed10b..264533e1 100644
--- a/app/src/main/java/org/meowcat/edxposed/manager/MainActivity.java
+++ b/app/src/main/java/org/meowcat/edxposed/manager/ui/activity/MainActivity.java
@@ -1,4 +1,4 @@
-package org.meowcat.edxposed.manager;
+package org.meowcat.edxposed.manager.ui.activity;
import android.annotation.SuppressLint;
import android.content.Intent;
@@ -10,6 +10,8 @@ import androidx.core.content.ContextCompat;
import com.bumptech.glide.Glide;
+import org.meowcat.edxposed.manager.App;
+import org.meowcat.edxposed.manager.R;
import org.meowcat.edxposed.manager.adapters.AppHelper;
import org.meowcat.edxposed.manager.adapters.BlackListAdapter;
import org.meowcat.edxposed.manager.databinding.ActivityMainBinding;
diff --git a/app/src/main/java/org/meowcat/edxposed/manager/ModuleScopeActivity.java b/app/src/main/java/org/meowcat/edxposed/manager/ui/activity/ModuleScopeActivity.java
similarity index 95%
rename from app/src/main/java/org/meowcat/edxposed/manager/ModuleScopeActivity.java
rename to app/src/main/java/org/meowcat/edxposed/manager/ui/activity/ModuleScopeActivity.java
index f41b04f5..938cb380 100644
--- a/app/src/main/java/org/meowcat/edxposed/manager/ModuleScopeActivity.java
+++ b/app/src/main/java/org/meowcat/edxposed/manager/ui/activity/ModuleScopeActivity.java
@@ -1,4 +1,4 @@
-package org.meowcat.edxposed.manager;
+package org.meowcat.edxposed.manager.ui.activity;
import android.content.pm.ApplicationInfo;
import android.os.Bundle;
@@ -12,10 +12,13 @@ import androidx.appcompat.app.ActionBar;
import androidx.appcompat.widget.SearchView;
import androidx.recyclerview.widget.DividerItemDecoration;
+import org.meowcat.edxposed.manager.App;
+import org.meowcat.edxposed.manager.R;
import org.meowcat.edxposed.manager.adapters.AppAdapter;
import org.meowcat.edxposed.manager.adapters.AppHelper;
import org.meowcat.edxposed.manager.adapters.ScopeAdapter;
import org.meowcat.edxposed.manager.databinding.ActivityScopeListBinding;
+import org.meowcat.edxposed.manager.ui.activity.BaseActivity;
import org.meowcat.edxposed.manager.util.LinearLayoutManagerFix;
import me.zhanghai.android.fastscroll.FastScrollerBuilder;
diff --git a/app/src/main/java/org/meowcat/edxposed/manager/ModulesActivity.java b/app/src/main/java/org/meowcat/edxposed/manager/ui/activity/ModulesActivity.java
similarity index 99%
rename from app/src/main/java/org/meowcat/edxposed/manager/ModulesActivity.java
rename to app/src/main/java/org/meowcat/edxposed/manager/ui/activity/ModulesActivity.java
index 44a61358..3167d7d3 100644
--- a/app/src/main/java/org/meowcat/edxposed/manager/ModulesActivity.java
+++ b/app/src/main/java/org/meowcat/edxposed/manager/ui/activity/ModulesActivity.java
@@ -1,4 +1,4 @@
-package org.meowcat.edxposed.manager;
+package org.meowcat.edxposed.manager.ui.activity;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
@@ -27,6 +27,9 @@ import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.snackbar.Snackbar;
+import org.meowcat.edxposed.manager.App;
+import org.meowcat.edxposed.manager.BuildConfig;
+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;
diff --git a/app/src/main/java/org/meowcat/edxposed/manager/SettingsActivity.java b/app/src/main/java/org/meowcat/edxposed/manager/ui/activity/SettingsActivity.java
similarity index 99%
rename from app/src/main/java/org/meowcat/edxposed/manager/SettingsActivity.java
rename to app/src/main/java/org/meowcat/edxposed/manager/ui/activity/SettingsActivity.java
index 1a978f32..b0ee8815 100644
--- a/app/src/main/java/org/meowcat/edxposed/manager/SettingsActivity.java
+++ b/app/src/main/java/org/meowcat/edxposed/manager/ui/activity/SettingsActivity.java
@@ -1,4 +1,4 @@
-package org.meowcat.edxposed.manager;
+package org.meowcat.edxposed.manager.ui.activity;
import android.annotation.SuppressLint;
import android.app.Activity;
@@ -24,12 +24,14 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.takisoft.preferencex.PreferenceFragmentCompat;
import com.topjohnwu.superuser.Shell;
+import org.meowcat.edxposed.manager.App;
+import org.meowcat.edxposed.manager.R;
import org.meowcat.edxposed.manager.adapters.AppHelper;
import org.meowcat.edxposed.manager.adapters.BlackListAdapter;
import org.meowcat.edxposed.manager.databinding.ActivitySettingsBinding;
import org.meowcat.edxposed.manager.util.FileUtils;
import org.meowcat.edxposed.manager.util.RepoLoader;
-import org.meowcat.edxposed.manager.widget.IntegerListPreference;
+import org.meowcat.edxposed.manager.ui.widget.IntegerListPreference;
import java.io.File;
import java.io.FileNotFoundException;
diff --git a/app/src/main/java/org/meowcat/edxposed/manager/BaseAdvancedInstaller.java b/app/src/main/java/org/meowcat/edxposed/manager/ui/fragment/BaseAdvancedInstaller.java
similarity index 96%
rename from app/src/main/java/org/meowcat/edxposed/manager/BaseAdvancedInstaller.java
rename to app/src/main/java/org/meowcat/edxposed/manager/ui/fragment/BaseAdvancedInstaller.java
index afb2e2f9..da1c019d 100644
--- a/app/src/main/java/org/meowcat/edxposed/manager/BaseAdvancedInstaller.java
+++ b/app/src/main/java/org/meowcat/edxposed/manager/ui/fragment/BaseAdvancedInstaller.java
@@ -1,4 +1,4 @@
-package org.meowcat.edxposed.manager;
+package org.meowcat.edxposed.manager.ui.fragment;
import android.app.Activity;
import android.content.DialogInterface;
@@ -17,7 +17,9 @@ import androidx.fragment.app.Fragment;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
+import org.meowcat.edxposed.manager.R;
import org.meowcat.edxposed.manager.databinding.SingleInstallerViewBinding;
+import org.meowcat.edxposed.manager.ui.activity.BaseActivity;
import org.meowcat.edxposed.manager.util.NavUtil;
import org.meowcat.edxposed.manager.util.json.XposedTab;
import org.meowcat.edxposed.manager.util.json.XposedZip;
@@ -27,7 +29,7 @@ import java.util.Objects;
public class BaseAdvancedInstaller extends Fragment {
private SingleInstallerViewBinding binding;
- static BaseAdvancedInstaller newInstance(XposedTab tab) {
+ public static BaseAdvancedInstaller newInstance(XposedTab tab) {
BaseAdvancedInstaller myFragment = new BaseAdvancedInstaller();
Bundle args = new Bundle();
diff --git a/app/src/main/java/org/meowcat/edxposed/manager/CompileDialogFragment.java b/app/src/main/java/org/meowcat/edxposed/manager/ui/fragment/CompileDialogFragment.java
similarity index 98%
rename from app/src/main/java/org/meowcat/edxposed/manager/CompileDialogFragment.java
rename to app/src/main/java/org/meowcat/edxposed/manager/ui/fragment/CompileDialogFragment.java
index ab9fa2af..a426c391 100644
--- a/app/src/main/java/org/meowcat/edxposed/manager/CompileDialogFragment.java
+++ b/app/src/main/java/org/meowcat/edxposed/manager/ui/fragment/CompileDialogFragment.java
@@ -1,4 +1,4 @@
-package org.meowcat.edxposed.manager;
+package org.meowcat.edxposed.manager.ui.fragment;
import android.app.Dialog;
import android.content.Context;
@@ -16,6 +16,7 @@ import androidx.appcompat.app.AppCompatDialogFragment;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.topjohnwu.superuser.Shell;
+import org.meowcat.edxposed.manager.R;
import org.meowcat.edxposed.manager.databinding.FragmentCompileDialogBinding;
import org.meowcat.edxposed.manager.util.ToastUtil;
diff --git a/app/src/main/java/org/meowcat/edxposed/manager/DownloadDetailsFragment.java b/app/src/main/java/org/meowcat/edxposed/manager/ui/fragment/DownloadDetailsFragment.java
similarity index 94%
rename from app/src/main/java/org/meowcat/edxposed/manager/DownloadDetailsFragment.java
rename to app/src/main/java/org/meowcat/edxposed/manager/ui/fragment/DownloadDetailsFragment.java
index d967f56d..4d146cbd 100644
--- a/app/src/main/java/org/meowcat/edxposed/manager/DownloadDetailsFragment.java
+++ b/app/src/main/java/org/meowcat/edxposed/manager/ui/fragment/DownloadDetailsFragment.java
@@ -1,4 +1,4 @@
-package org.meowcat.edxposed.manager;
+package org.meowcat.edxposed.manager.ui.fragment;
import android.annotation.SuppressLint;
import android.net.Uri;
@@ -13,10 +13,13 @@ import androidx.annotation.NonNull;
import androidx.core.view.ViewCompat;
import androidx.fragment.app.Fragment;
+import org.meowcat.edxposed.manager.R;
import org.meowcat.edxposed.manager.databinding.DownloadDetailsBinding;
import org.meowcat.edxposed.manager.databinding.DownloadMoreinfoBinding;
import org.meowcat.edxposed.manager.repo.Module;
import org.meowcat.edxposed.manager.repo.RepoParser;
+import org.meowcat.edxposed.manager.ui.activity.BaseActivity;
+import org.meowcat.edxposed.manager.ui.activity.DownloadDetailsActivity;
import org.meowcat.edxposed.manager.util.NavUtil;
import org.meowcat.edxposed.manager.util.chrome.LinkTransformationMethod;
diff --git a/app/src/main/java/org/meowcat/edxposed/manager/DownloadDetailsSettingsFragment.java b/app/src/main/java/org/meowcat/edxposed/manager/ui/fragment/DownloadDetailsSettingsFragment.java
similarity index 92%
rename from app/src/main/java/org/meowcat/edxposed/manager/DownloadDetailsSettingsFragment.java
rename to app/src/main/java/org/meowcat/edxposed/manager/ui/fragment/DownloadDetailsSettingsFragment.java
index 11f06bca..ab8741e8 100644
--- a/app/src/main/java/org/meowcat/edxposed/manager/DownloadDetailsSettingsFragment.java
+++ b/app/src/main/java/org/meowcat/edxposed/manager/ui/fragment/DownloadDetailsSettingsFragment.java
@@ -1,4 +1,4 @@
-package org.meowcat.edxposed.manager;
+package org.meowcat.edxposed.manager.ui.fragment;
import android.content.Context;
import android.content.SharedPreferences;
@@ -9,7 +9,9 @@ import androidx.preference.PreferenceManager;
import com.takisoft.preferencex.PreferenceFragmentCompat;
+import org.meowcat.edxposed.manager.R;
import org.meowcat.edxposed.manager.repo.Module;
+import org.meowcat.edxposed.manager.ui.activity.DownloadDetailsActivity;
import org.meowcat.edxposed.manager.util.PrefixedSharedPreferences;
import org.meowcat.edxposed.manager.util.RepoLoader;
diff --git a/app/src/main/java/org/meowcat/edxposed/manager/DownloadDetailsVersionsFragment.java b/app/src/main/java/org/meowcat/edxposed/manager/ui/fragment/DownloadDetailsVersionsFragment.java
similarity index 96%
rename from app/src/main/java/org/meowcat/edxposed/manager/DownloadDetailsVersionsFragment.java
rename to app/src/main/java/org/meowcat/edxposed/manager/ui/fragment/DownloadDetailsVersionsFragment.java
index 41ce40a4..5dd20615 100644
--- a/app/src/main/java/org/meowcat/edxposed/manager/DownloadDetailsVersionsFragment.java
+++ b/app/src/main/java/org/meowcat/edxposed/manager/ui/fragment/DownloadDetailsVersionsFragment.java
@@ -1,4 +1,4 @@
-package org.meowcat.edxposed.manager;
+package org.meowcat.edxposed.manager.ui.fragment;
import android.annotation.SuppressLint;
import android.content.Context;
@@ -19,14 +19,17 @@ import androidx.core.content.ContextCompat;
import androidx.core.view.ViewCompat;
import androidx.fragment.app.ListFragment;
+import org.meowcat.edxposed.manager.R;
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.RepoParser;
+import org.meowcat.edxposed.manager.ui.activity.BaseActivity;
+import org.meowcat.edxposed.manager.ui.activity.DownloadDetailsActivity;
import org.meowcat.edxposed.manager.util.ModuleUtil.InstalledModule;
import org.meowcat.edxposed.manager.util.RepoLoader;
import org.meowcat.edxposed.manager.util.chrome.LinkTransformationMethod;
-import org.meowcat.edxposed.manager.widget.DownloadView;
+import org.meowcat.edxposed.manager.ui.widget.DownloadView;
import java.text.DateFormat;
import java.util.Date;
diff --git a/app/src/main/java/org/meowcat/edxposed/manager/StatusInstallerFragment.java b/app/src/main/java/org/meowcat/edxposed/manager/ui/fragment/StatusInstallerFragment.java
similarity index 97%
rename from app/src/main/java/org/meowcat/edxposed/manager/StatusInstallerFragment.java
rename to app/src/main/java/org/meowcat/edxposed/manager/ui/fragment/StatusInstallerFragment.java
index d0fac0e6..f49b57ae 100644
--- a/app/src/main/java/org/meowcat/edxposed/manager/StatusInstallerFragment.java
+++ b/app/src/main/java/org/meowcat/edxposed/manager/ui/fragment/StatusInstallerFragment.java
@@ -1,4 +1,4 @@
-package org.meowcat.edxposed.manager;
+package org.meowcat.edxposed.manager.ui.fragment;
import android.annotation.SuppressLint;
import android.content.Context;
@@ -19,6 +19,9 @@ import androidx.fragment.app.Fragment;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
+import org.meowcat.edxposed.manager.App;
+import org.meowcat.edxposed.manager.BuildConfig;
+import org.meowcat.edxposed.manager.R;
import org.meowcat.edxposed.manager.databinding.StatusInstallerBinding;
import java.io.BufferedReader;
@@ -32,7 +35,7 @@ public class StatusInstallerFragment extends Fragment {
private static StatusInstallerBinding binding;
private static String updateLink;
- static void setUpdate(final String link, final String changelog, Context context) {
+ public static void setUpdate(final String link, final String changelog, Context context) {
updateLink = link;
binding.updateView.setVisibility(View.VISIBLE);
diff --git a/app/src/main/java/org/meowcat/edxposed/manager/widget/DownloadView.java b/app/src/main/java/org/meowcat/edxposed/manager/ui/widget/DownloadView.java
similarity index 93%
rename from app/src/main/java/org/meowcat/edxposed/manager/widget/DownloadView.java
rename to app/src/main/java/org/meowcat/edxposed/manager/ui/widget/DownloadView.java
index e5575028..cc7b66a0 100644
--- a/app/src/main/java/org/meowcat/edxposed/manager/widget/DownloadView.java
+++ b/app/src/main/java/org/meowcat/edxposed/manager/ui/widget/DownloadView.java
@@ -1,4 +1,4 @@
-package org.meowcat.edxposed.manager.widget;
+package org.meowcat.edxposed.manager.ui.widget;
import android.content.Context;
import android.util.AttributeSet;
@@ -8,7 +8,7 @@ import android.widget.LinearLayout;
import androidx.fragment.app.Fragment;
-import org.meowcat.edxposed.manager.BaseActivity;
+import org.meowcat.edxposed.manager.ui.activity.BaseActivity;
import org.meowcat.edxposed.manager.R;
import org.meowcat.edxposed.manager.databinding.DownloadViewBinding;
import org.meowcat.edxposed.manager.util.NavUtil;
diff --git a/app/src/main/java/org/meowcat/edxposed/manager/widget/IntegerListPreference.java b/app/src/main/java/org/meowcat/edxposed/manager/ui/widget/IntegerListPreference.java
similarity index 97%
rename from app/src/main/java/org/meowcat/edxposed/manager/widget/IntegerListPreference.java
rename to app/src/main/java/org/meowcat/edxposed/manager/ui/widget/IntegerListPreference.java
index c109d075..2e859f42 100644
--- a/app/src/main/java/org/meowcat/edxposed/manager/widget/IntegerListPreference.java
+++ b/app/src/main/java/org/meowcat/edxposed/manager/ui/widget/IntegerListPreference.java
@@ -1,4 +1,4 @@
-package org.meowcat.edxposed.manager.widget;
+package org.meowcat.edxposed.manager.ui.widget;
import android.content.Context;
import android.content.SharedPreferences;
diff --git a/app/src/main/java/org/meowcat/edxposed/manager/widget/MasterSwitch.java b/app/src/main/java/org/meowcat/edxposed/manager/ui/widget/MasterSwitch.java
similarity index 98%
rename from app/src/main/java/org/meowcat/edxposed/manager/widget/MasterSwitch.java
rename to app/src/main/java/org/meowcat/edxposed/manager/ui/widget/MasterSwitch.java
index 5b098baa..f6a838a5 100644
--- a/app/src/main/java/org/meowcat/edxposed/manager/widget/MasterSwitch.java
+++ b/app/src/main/java/org/meowcat/edxposed/manager/ui/widget/MasterSwitch.java
@@ -1,4 +1,4 @@
-package org.meowcat.edxposed.manager.widget;
+package org.meowcat.edxposed.manager.ui.widget;
import android.content.Context;
import android.content.res.TypedArray;
diff --git a/app/src/main/java/org/meowcat/edxposed/manager/widget/RecyclerViewBugFixed.java b/app/src/main/java/org/meowcat/edxposed/manager/ui/widget/RecyclerViewBugFixed.java
similarity index 98%
rename from app/src/main/java/org/meowcat/edxposed/manager/widget/RecyclerViewBugFixed.java
rename to app/src/main/java/org/meowcat/edxposed/manager/ui/widget/RecyclerViewBugFixed.java
index 998ac33d..0e9a0b3e 100644
--- a/app/src/main/java/org/meowcat/edxposed/manager/widget/RecyclerViewBugFixed.java
+++ b/app/src/main/java/org/meowcat/edxposed/manager/ui/widget/RecyclerViewBugFixed.java
@@ -1,4 +1,4 @@
-package org.meowcat.edxposed.manager.widget;
+package org.meowcat.edxposed.manager.ui.widget;
import android.content.Context;
import android.graphics.Canvas;
diff --git a/app/src/main/java/org/meowcat/edxposed/manager/widget/ThemeColorPreference.java b/app/src/main/java/org/meowcat/edxposed/manager/ui/widget/ThemeColorPreference.java
similarity index 97%
rename from app/src/main/java/org/meowcat/edxposed/manager/widget/ThemeColorPreference.java
rename to app/src/main/java/org/meowcat/edxposed/manager/ui/widget/ThemeColorPreference.java
index dfceeb99..3bd5e2cf 100644
--- a/app/src/main/java/org/meowcat/edxposed/manager/widget/ThemeColorPreference.java
+++ b/app/src/main/java/org/meowcat/edxposed/manager/ui/widget/ThemeColorPreference.java
@@ -1,4 +1,4 @@
-package org.meowcat.edxposed.manager.widget;
+package org.meowcat.edxposed.manager.ui.widget;
import android.content.Context;
import android.util.AttributeSet;
diff --git a/app/src/main/java/org/meowcat/edxposed/manager/util/CompileUtil.java b/app/src/main/java/org/meowcat/edxposed/manager/util/CompileUtil.java
index bbf3e413..5b9ff464 100644
--- a/app/src/main/java/org/meowcat/edxposed/manager/util/CompileUtil.java
+++ b/app/src/main/java/org/meowcat/edxposed/manager/util/CompileUtil.java
@@ -5,7 +5,7 @@ import android.content.pm.ApplicationInfo;
import androidx.fragment.app.FragmentManager;
-import org.meowcat.edxposed.manager.CompileDialogFragment;
+import org.meowcat.edxposed.manager.ui.fragment.CompileDialogFragment;
import org.meowcat.edxposed.manager.R;
public class CompileUtil {
diff --git a/app/src/main/java/org/meowcat/edxposed/manager/util/NavUtil.java b/app/src/main/java/org/meowcat/edxposed/manager/util/NavUtil.java
index 49491f7b..59d74782 100644
--- a/app/src/main/java/org/meowcat/edxposed/manager/util/NavUtil.java
+++ b/app/src/main/java/org/meowcat/edxposed/manager/util/NavUtil.java
@@ -14,7 +14,7 @@ import androidx.browser.customtabs.CustomTabsIntent;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import org.meowcat.edxposed.manager.App;
-import org.meowcat.edxposed.manager.BaseActivity;
+import org.meowcat.edxposed.manager.ui.activity.BaseActivity;
import org.meowcat.edxposed.manager.R;
public final class NavUtil {
diff --git a/app/src/main/java/org/meowcat/edxposed/manager/util/NotificationUtil.java b/app/src/main/java/org/meowcat/edxposed/manager/util/NotificationUtil.java
index 8d6c63a8..601f4031 100644
--- a/app/src/main/java/org/meowcat/edxposed/manager/util/NotificationUtil.java
+++ b/app/src/main/java/org/meowcat/edxposed/manager/util/NotificationUtil.java
@@ -18,7 +18,7 @@ import androidx.core.content.ContextCompat;
import com.topjohnwu.superuser.Shell;
import org.meowcat.edxposed.manager.App;
-import org.meowcat.edxposed.manager.MainActivity;
+import org.meowcat.edxposed.manager.ui.activity.MainActivity;
import org.meowcat.edxposed.manager.R;
public final class NotificationUtil {
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 f3c5da0e..1840f845 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
@@ -17,7 +17,7 @@ import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import org.meowcat.edxposed.manager.App;
-import org.meowcat.edxposed.manager.DownloadActivity;
+import org.meowcat.edxposed.manager.ui.activity.DownloadActivity;
import org.meowcat.edxposed.manager.R;
import org.meowcat.edxposed.manager.repo.Module;
import org.meowcat.edxposed.manager.repo.ModuleVersion;
diff --git a/app/src/main/java/org/meowcat/edxposed/manager/util/chrome/CustomTabsURLSpan.java b/app/src/main/java/org/meowcat/edxposed/manager/util/chrome/CustomTabsURLSpan.java
index 5207bcac..a7707ca5 100644
--- a/app/src/main/java/org/meowcat/edxposed/manager/util/chrome/CustomTabsURLSpan.java
+++ b/app/src/main/java/org/meowcat/edxposed/manager/util/chrome/CustomTabsURLSpan.java
@@ -3,7 +3,7 @@ package org.meowcat.edxposed.manager.util.chrome;
import android.text.style.URLSpan;
import android.view.View;
-import org.meowcat.edxposed.manager.BaseActivity;
+import org.meowcat.edxposed.manager.ui.activity.BaseActivity;
import org.meowcat.edxposed.manager.util.NavUtil;
/**
diff --git a/app/src/main/java/org/meowcat/edxposed/manager/util/chrome/LinkTransformationMethod.java b/app/src/main/java/org/meowcat/edxposed/manager/util/chrome/LinkTransformationMethod.java
index 99bf6a30..b1404c95 100644
--- a/app/src/main/java/org/meowcat/edxposed/manager/util/chrome/LinkTransformationMethod.java
+++ b/app/src/main/java/org/meowcat/edxposed/manager/util/chrome/LinkTransformationMethod.java
@@ -9,7 +9,7 @@ import android.text.util.Linkify;
import android.view.View;
import android.widget.TextView;
-import org.meowcat.edxposed.manager.BaseActivity;
+import org.meowcat.edxposed.manager.ui.activity.BaseActivity;
/**
* Created by Nikola D. on 12/23/2015.
diff --git a/app/src/main/res/layout/activity_black_list.xml b/app/src/main/res/layout/activity_black_list.xml
index 9125a5d6..cc64fafe 100644
--- a/app/src/main/res/layout/activity_black_list.xml
+++ b/app/src/main/res/layout/activity_black_list.xml
@@ -16,7 +16,7 @@
android:orientation="vertical"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
-
-
+ tools:context=".ui.activity.DownloadDetailsActivity">
-
+ tools:context=".ui.activity.MainActivity">
-
-
-
+ tools:context=".ui.fragment.DownloadDetailsFragment">
-
-
-
-
-
@@ -20,7 +20,7 @@
android:shortcutShortLabel="@string/nav_item_download">