diff --git a/app/src/main/java/com/fox2code/mmm/repo/CustomRepoManager.java b/app/src/main/java/com/fox2code/mmm/repo/CustomRepoManager.java
index bff1d4f..ed2e2d7 100644
--- a/app/src/main/java/com/fox2code/mmm/repo/CustomRepoManager.java
+++ b/app/src/main/java/com/fox2code/mmm/repo/CustomRepoManager.java
@@ -30,47 +30,26 @@ public class CustomRepoManager {
if (MainApplication.getPreferences("mmm").getString("last_shown_setup", "").equals("")) {
return;
}
- SharedPreferences sharedPreferences = this.getSharedPreferences();
- int lastFilled = 0;
- for (int i = 0; i < MAX_CUSTOM_REPOS; i++) {
- RealmConfiguration realmConfiguration = new RealmConfiguration.Builder().name("ReposList.realm").encryptionKey(MainApplication.getINSTANCE().getExistingKey()).allowQueriesOnUiThread(true).allowWritesOnUiThread(true).directory(MainApplication.getINSTANCE().getDataDirWithPath("realms")).schemaVersion(1).build();
- Realm realm = Realm.getInstance(realmConfiguration);
- if (realm.isInTransaction()) {
- realm.commitTransaction();
- }
- realm.beginTransaction();
- // find the matching entry for repo_0, repo_1, etc.
- ReposList reposList = realm.where(ReposList.class).equalTo("id", "repo_" + i).findFirst();
- if (reposList == null) {
- continue;
- }
- String repo = reposList.getUrl();
- if (!PropUtils.isNullString(repo) && !RepoManager.isBuiltInRepo(repo)) {
- lastFilled = i;
- int index = AUTO_RECOMPILE ? this.customReposCount : i;
- this.customRepos[index] = repo;
- this.customReposCount++;
- ((CustomRepoData) this.repoManager.addOrGet(repo)).override = "custom_repo_" + index;
- }
+ RealmConfiguration realmConfiguration = new RealmConfiguration.Builder().name("ReposList.realm").encryptionKey(MainApplication.getINSTANCE().getExistingKey()).allowQueriesOnUiThread(true).allowWritesOnUiThread(true).directory(MainApplication.getINSTANCE().getDataDirWithPath("realms")).schemaVersion(1).build();
+ Realm realm = Realm.getInstance(realmConfiguration);
+ if (realm.isInTransaction()) {
+ realm.commitTransaction();
}
- if (AUTO_RECOMPILE && (lastFilled + 1) != this.customReposCount) {
- RealmConfiguration realmConfiguration = new RealmConfiguration.Builder().name("ReposList.realm").encryptionKey(MainApplication.getINSTANCE().getExistingKey()).allowQueriesOnUiThread(true).allowWritesOnUiThread(true).directory(MainApplication.getINSTANCE().getDataDirWithPath("realms")).schemaVersion(1).build();
- Realm realm = Realm.getInstance(realmConfiguration);
- if (realm.isInTransaction()) {
- realm.commitTransaction();
- }
- realm.beginTransaction();
- for (int i = 0; i < MAX_CUSTOM_REPOS; i++) {
- if (this.customRepos[i] != null) {
- // find the matching entry for repo_0, repo_1, etc.
- ReposList reposList = realm.where(ReposList.class).equalTo("id", "repo_" + i).findFirst();
- if (reposList == null) {
- continue;
- }
- reposList.setUrl(this.customRepos[i]);
+ int i = 0;
+ @SuppressWarnings("MismatchedReadAndWriteOfArray") final int[] lastFilled = {0};
+ realm.executeTransaction(realm1 -> {
+ // find all repos that are not built-in
+ for (ReposList reposList : realm1.where(ReposList.class).notEqualTo("id", "androidacy_repo").and().notEqualTo("id", "magisk_alt_repo").and().notEqualTo("id", "magisk_official_repo").findAll()) {
+ String repo = reposList.getUrl();
+ if (!PropUtils.isNullString(repo) && !RepoManager.isBuiltInRepo(repo)) {
+ lastFilled[0] = i;
+ int index = AUTO_RECOMPILE ? this.customReposCount : i;
+ this.customRepos[index] = repo;
+ this.customReposCount++;
+ ((CustomRepoData) this.repoManager.addOrGet(repo)).override = "custom_repo_" + index;
}
}
- }
+ });
}
private SharedPreferences getSharedPreferences() {
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 88384cc..5b4d781 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -5,7 +5,8 @@
android:id="@+id/root_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:paddingVertical="0dp"
+ android:padding="0dp"
+ app:fitsSystemWindowsInsets="start|end|bottom|top"
tools:context=".MainActivity">
+ android:layout_height="wrap_content" />
+ android:visibility="gone" />