diff --git a/app/build.gradle b/app/build.gradle
index dd80180..38436fe 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -94,7 +94,7 @@ dependencies {
implementation "dev.rikka.rikkax.insets:insets:1.3.0"
implementation 'com.github.Dimezis:BlurView:version-1.6.6'
implementation 'com.github.KieronQuinn:MonetCompat:0.4.1'
- implementation 'com.github.Fox2Code:FoxCompat:0.0.1'
+ implementation 'com.github.Fox2Code:FoxCompat:0.0.2'
// Utils
implementation 'com.squareup.okhttp3:okhttp-dnsoverhttps:4.9.3'
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 399f5d0..39b4012 100644
--- a/app/src/main/java/com/fox2code/mmm/repo/CustomRepoManager.java
+++ b/app/src/main/java/com/fox2code/mmm/repo/CustomRepoManager.java
@@ -7,7 +7,7 @@ import com.fox2code.mmm.MainApplication;
public class CustomRepoManager {
private static final boolean AUTO_RECOMPILE = true;
- public static final int MAX_CUSTOM_REPOS = 3;
+ public static final int MAX_CUSTOM_REPOS = 5;
private final MainApplication mainApplication;
private final RepoManager repoManager;
private final String[] customRepos;
@@ -112,6 +112,10 @@ public class CustomRepoManager {
repo.indexOf('/', 9) != -1;
}
+ public int getRepoCount() {
+ return this.customReposCount;
+ }
+
public boolean needUpdate() {
boolean needUpdate = this.dirty;
if (needUpdate) this.dirty = false;
diff --git a/app/src/main/java/com/fox2code/mmm/settings/SettingsActivity.java b/app/src/main/java/com/fox2code/mmm/settings/SettingsActivity.java
index ab22ae8..91d9a84 100644
--- a/app/src/main/java/com/fox2code/mmm/settings/SettingsActivity.java
+++ b/app/src/main/java/com/fox2code/mmm/settings/SettingsActivity.java
@@ -4,24 +4,19 @@ import android.annotation.SuppressLint;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Context;
-import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.os.Build;
import android.os.Bundle;
-import android.text.Editable;
-import android.text.TextWatcher;
import android.util.Log;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
-import android.widget.EditText;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.StringRes;
import androidx.appcompat.app.AlertDialog;
-import androidx.appcompat.widget.AppCompatEditText;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentTransaction;
import androidx.preference.ListPreference;
@@ -30,6 +25,8 @@ import androidx.preference.PreferenceFragmentCompat;
import androidx.preference.TwoStatePreference;
import com.fox2code.foxcompat.FoxActivity;
+import com.fox2code.foxcompat.FoxDisplay;
+import com.fox2code.foxcompat.FoxViewCompat;
import com.fox2code.mmm.AppUpdateManager;
import com.fox2code.mmm.BuildConfig;
import com.fox2code.mmm.Constants;
@@ -256,7 +253,7 @@ public class SettingsActivity extends FoxActivity implements LanguageActivity {
}
public static class RepoFragment extends PreferenceFragmentCompat {
- private static final int CUSTOM_REPO_ENTRIES = 3;
+ private static final int CUSTOM_REPO_ENTRIES = 5;
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
@@ -293,7 +290,8 @@ public class SettingsActivity extends FoxActivity implements LanguageActivity {
}
Preference preference = findPreference("pref_custom_add_repo");
if (preference == null) return;
- preference.setVisible(customRepoManager.canAddRepo());
+ preference.setVisible(customRepoManager.canAddRepo() &&
+ customRepoManager.getRepoCount() < CUSTOM_REPO_ENTRIES);
if (initial) { // Custom repo add button part.
preference = findPreference("pref_custom_add_repo_button");
if (preference == null) return;
@@ -303,6 +301,7 @@ public class SettingsActivity extends FoxActivity implements LanguageActivity {
final MaterialAutoCompleteTextView input =
new MaterialAutoCompleteTextView(context);
input.setHint(R.string.custom_url);
+ builder.setIcon(R.drawable.ic_baseline_add_box_24);
builder.setTitle(R.string.add_repo);
builder.setView(input);
builder.setPositiveButton("OK", (dialog, which) -> {
@@ -346,10 +345,14 @@ public class SettingsActivity extends FoxActivity implements LanguageActivity {
public void onTextChanged(
@NonNull CharSequence charSequence, int i, int i1, int i2) {
positiveButton.setEnabled(customRepoManager
- .canAddRepo(charSequence.toString()));
+ .canAddRepo(charSequence.toString()) &&
+ customRepoManager.getRepoCount() < CUSTOM_REPO_ENTRIES);
}
});
positiveButton.setEnabled(false);
+ int dp10 = FoxDisplay.dpToPixel(10),
+ dp20 = FoxDisplay.dpToPixel(20);
+ FoxViewCompat.setMargin(input, dp20, dp10, dp20, dp10);
return true;
});
}
diff --git a/app/src/main/res/xml/repo_preferences.xml b/app/src/main/res/xml/repo_preferences.xml
index c354f28..42312dc 100644
--- a/app/src/main/res/xml/repo_preferences.xml
+++ b/app/src/main/res/xml/repo_preferences.xml
@@ -201,6 +201,76 @@
app:title="@string/remove_repo"
app:singleLineTitle="false" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+