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" /> + + + + + + + + + + + + + + + +