Increase max custom repos count from 3 to 5 & tweak add repo UI.

pull/27/head
Fox2Code 3 years ago
parent d4ee572529
commit 54879213bd

@ -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'

@ -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;

@ -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;
});
}

@ -201,6 +201,76 @@
app:title="@string/remove_repo"
app:singleLineTitle="false" />
</PreferenceCategory>
<PreferenceCategory
app:key="pref_custom_repo_3"
app:title="@string/loading">
<SwitchPreferenceCompat
app:key="pref_custom_repo_3_enabled"
app:icon="@drawable/ic_baseline_extension_24"
app:switchTextOn="@string/repo_enabled"
app:switchTextOff="@string/repo_disabled"
app:singleLineTitle="false" />
<Preference
app:key="pref_custom_repo_3_website"
app:icon="@drawable/ic_baseline_language_24"
app:title="@string/website"
app:singleLineTitle="false" />
<Preference
app:key="pref_custom_repo_3_support"
app:icon="@drawable/ic_baseline_support_24"
app:title="@string/support"
app:singleLineTitle="false" />
<Preference
app:key="pref_custom_repo_3_donate"
app:icon="@drawable/ic_baseline_monetization_on_24"
app:title="@string/donate"
app:singleLineTitle="false" />
<Preference
app:key="pref_custom_repo_3_submit"
app:icon="@drawable/ic_baseline_upload_file_24"
app:title="@string/submit_modules"
app:singleLineTitle="false" />
<Preference
app:key="pref_custom_repo_3_delete"
app:icon="@drawable/ic_baseline_delete_forever_24"
app:title="@string/remove_repo"
app:singleLineTitle="false" />
</PreferenceCategory>
<PreferenceCategory
app:key="pref_custom_repo_4"
app:title="@string/loading">
<SwitchPreferenceCompat
app:key="pref_custom_repo_4_enabled"
app:icon="@drawable/ic_baseline_extension_24"
app:switchTextOn="@string/repo_enabled"
app:switchTextOff="@string/repo_disabled"
app:singleLineTitle="false" />
<Preference
app:key="pref_custom_repo_4_website"
app:icon="@drawable/ic_baseline_language_24"
app:title="@string/website"
app:singleLineTitle="false" />
<Preference
app:key="pref_custom_repo_4_support"
app:icon="@drawable/ic_baseline_support_24"
app:title="@string/support"
app:singleLineTitle="false" />
<Preference
app:key="pref_custom_repo_4_donate"
app:icon="@drawable/ic_baseline_monetization_on_24"
app:title="@string/donate"
app:singleLineTitle="false" />
<Preference
app:key="pref_custom_repo_4_submit"
app:icon="@drawable/ic_baseline_upload_file_24"
app:title="@string/submit_modules"
app:singleLineTitle="false" />
<Preference
app:key="pref_custom_repo_4_delete"
app:icon="@drawable/ic_baseline_delete_forever_24"
app:title="@string/remove_repo"
app:singleLineTitle="false" />
</PreferenceCategory>
<PreferenceCategory
app:key="pref_custom_add_repo"
app:title="@string/add_repo">

Loading…
Cancel
Save