|
3 | 3 | import android.os.Bundle; |
4 | 4 | import android.widget.Toast; |
5 | 5 |
|
| 6 | +import androidx.annotation.NonNull; |
6 | 7 | import androidx.annotation.StringRes; |
7 | 8 | import androidx.fragment.app.Fragment; |
8 | 9 | import androidx.fragment.app.FragmentTransaction; |
9 | 10 | import androidx.preference.ListPreference; |
10 | 11 | import androidx.preference.Preference; |
11 | 12 | import androidx.preference.PreferenceFragmentCompat; |
| 13 | +import androidx.preference.SwitchPreference; |
| 14 | +import androidx.preference.SwitchPreferenceCompat; |
12 | 15 |
|
13 | 16 | import com.fox2code.mmm.AppUpdateManager; |
14 | 17 | import com.fox2code.mmm.BuildConfig; |
@@ -158,32 +161,47 @@ public static class RepoFragment extends PreferenceFragmentCompat { |
158 | 161 | public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { |
159 | 162 | getPreferenceManager().setSharedPreferencesName("mmm"); |
160 | 163 | setPreferencesFromResource(R.xml.repo_preferences, rootKey); |
161 | | - setRepoData("pref_repo_main", RepoManager.MAGISK_REPO, |
| 164 | + setRepoData(RepoManager.MAGISK_REPO, |
162 | 165 | "Magisk Modules Repo (Official)", RepoManager.MAGISK_REPO_HOMEPAGE, |
163 | 166 | null, null,null); |
164 | | - setRepoData("pref_repo_alt", RepoManager.MAGISK_ALT_REPO, |
| 167 | + setRepoData(RepoManager.MAGISK_ALT_REPO, |
165 | 168 | "Magisk Modules Alt Repo", RepoManager.MAGISK_ALT_REPO_HOMEPAGE, |
166 | 169 | null, null, |
167 | 170 | "https://github.com/Magisk-Modules-Alt-Repo/submission/issues"); |
168 | 171 | // Androidacy backend not yet implemented! |
169 | | - setRepoData("pref_repo_androidacy", |
170 | | - RepoManager.ANDROIDACY_MAGISK_REPO_ENDPOINT, |
| 172 | + setRepoData(RepoManager.ANDROIDACY_MAGISK_REPO_ENDPOINT, |
171 | 173 | "Androidacy Modules Repo", |
172 | 174 | RepoManager.ANDROIDACY_MAGISK_REPO_HOMEPAGE, |
173 | 175 | "https://t.me/androidacy_discussions", |
174 | 176 | "https://patreon.com/androidacy", |
175 | 177 | "https://www.androidacy.com/module-repository-applications/"); |
176 | 178 | } |
177 | 179 |
|
178 | | - private void setRepoData(String preferenceName, String url, |
| 180 | + private void setRepoData(String url, |
179 | 181 | String fallbackTitle, String homepage, |
180 | 182 | String supportUrl, String donateUrl, |
181 | 183 | String submissionUrl) { |
| 184 | + String preferenceName = "pref_" + RepoManager.internalIdOfUrl(url); |
182 | 185 | Preference preference = findPreference(preferenceName); |
183 | 186 | if (preference == null) return; |
184 | | - RepoData repoData = RepoManager.getINSTANCE().get(url); |
| 187 | + final RepoData repoData = RepoManager.getINSTANCE().get(url); |
185 | 188 | preference.setTitle(repoData == null ? fallbackTitle : |
186 | 189 | repoData.getNameOrFallback(fallbackTitle)); |
| 190 | + preference = findPreference(preferenceName + "_enabled"); |
| 191 | + if (preference != null) { |
| 192 | + if (repoData == null) { |
| 193 | + preference.setTitle(R.string.repo_disabled); |
| 194 | + preference.setEnabled(false); |
| 195 | + } else { |
| 196 | + preference.setTitle(repoData.isEnabled() ? |
| 197 | + R.string.repo_enabled : R.string.repo_disabled); |
| 198 | + preference.setOnPreferenceChangeListener((p, newValue) -> { |
| 199 | + p.setTitle(((Boolean) newValue) ? |
| 200 | + R.string.repo_enabled : R.string.repo_disabled); |
| 201 | + return true; |
| 202 | + }); |
| 203 | + } |
| 204 | + } |
187 | 205 | preference = findPreference(preferenceName + "_website"); |
188 | 206 | if (preference != null && homepage != null) { |
189 | 207 | preference.setOnPreferenceClickListener(p -> { |
|
0 commit comments