diff --git a/README.md b/README.md
index f2ec466..6540557 100644
--- a/README.md
+++ b/README.md
@@ -2,8 +2,7 @@
## Fox Module contest
-[NoStorageRestrict](https://github.com/Magisk-Modules-Alt-Repo/NoStorageRestrict)
-by [@DanGLES3](https://github.com/DanGLES3) won via vote in community telegram server.
+[NoStorageRestrict](https://github.com/Magisk-Modules-Alt-Repo/NoStorageRestrict) by [@DanGLES3](https://github.com/DanGLES3) won via vote in community telegram server.
Module description: Removes the restriction when selecting folders (Downloads/Android) through the file manager on Android 11 and higher
@@ -19,12 +18,11 @@ Main activity:
## What is this?
-The official Magisk is dropping support to download online modules...
-So I made my own app to do that! :3
+The official Magisk has dropped support to download online modules, so I made Fox's Magisk Module Manager to help you download and install Magisk modules.
**This app is not officially supported by Magisk or its developers**
-**The modules shown in this app are not affiliated with this app**
+**The modules shown in this app are not affiliated with this app or Magisk**
(Please contact repo owners instead)
## Requirements
diff --git a/app/build.gradle b/app/build.gradle
index 2362ae3..d5465a1 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,6 +1,7 @@
plugins {
id 'com.android.application'
id 'com.mikepenz.aboutlibraries.plugin'
+ id "io.sentry.android.gradle" version "3.1.4"
}
android {
@@ -10,8 +11,8 @@ android {
applicationId "com.fox2code.mmm"
minSdk 21
targetSdk 33
- versionCode 53
- versionName "0.6.1"
+ versionCode 54
+ versionName "0.7.0-dev"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
@@ -35,9 +36,9 @@ android {
dimension "type"
buildConfigField "boolean", "ENABLE_AUTO_UPDATER", "true"
buildConfigField(
- "java.util.List",
- "ENABLED_REPOS",
- "java.util.Arrays.asList(\"magisk_alt_repo\", \"dg_magisk_repo\", \"androidacy_repo\")",
+ "java.util.List",
+ "ENABLED_REPOS",
+ "java.util.Arrays.asList(\"magisk_alt_repo\", \"dg_magisk_repo\", \"androidacy_repo\")",
)
}
@@ -53,9 +54,9 @@ android {
// Repo with ads or tracking feature are disabled by default for the
// F-Droid flavor.
buildConfigField(
- "java.util.List",
- "ENABLED_REPOS",
- "java.util.Arrays.asList(\"magisk_alt_repo\")",
+ "java.util.List",
+ "ENABLED_REPOS",
+ "java.util.Arrays.asList(\"magisk_alt_repo\")",
)
}
}
@@ -75,7 +76,7 @@ aboutLibraries {
}
configurations {
- implementation.exclude group: 'org.jetbrains' , module: 'annotations'
+ implementation.exclude group: 'org.jetbrains', module: 'annotations'
}
dependencies {
@@ -89,7 +90,7 @@ dependencies {
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
implementation 'androidx.webkit:webkit:1.4.0'
implementation 'com.google.android.material:material:1.6.1'
- implementation "com.mikepenz:aboutlibraries:${latestAboutLibsRelease}"
+ implementation 'com.mikepenz:aboutlibraries:10.4.1-a01'
implementation "dev.rikka.rikkax.layoutinflater:layoutinflater:1.2.0"
implementation "dev.rikka.rikkax.insets:insets:1.3.0"
implementation 'com.github.Dimezis:BlurView:version-1.6.6'
@@ -113,7 +114,7 @@ dependencies {
implementation "com.caverock:androidsvg:1.4"
// Test
- testImplementation 'junit:junit:4.+'
+ testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6da80b2..49205b5 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -5,7 +5,9 @@
tools:ignore="QueryAllPackagesPermission">
-
+
@@ -16,36 +18,39 @@
-
-
+
+
+ android:label="@string/title_activity_settings"
+ android:parentActivityName=".MainActivity">
@@ -53,8 +58,8 @@
+ android:label="@string/app_name_short"
+ android:launchMode="singleTask">
@@ -62,10 +67,10 @@
@@ -73,30 +78,45 @@
-
+ android:parentActivityName=".MainActivity"
+ android:theme="@style/Theme.MagiskModuleManager">
-
+
+
-
-
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/fox2code/mmm/MainActivity.java b/app/src/main/java/com/fox2code/mmm/MainActivity.java
index ed9bd2e..d89c8ed 100644
--- a/app/src/main/java/com/fox2code/mmm/MainActivity.java
+++ b/app/src/main/java/com/fox2code/mmm/MainActivity.java
@@ -37,6 +37,7 @@ import com.google.android.material.progressindicator.LinearProgressIndicator;
import eightbitlab.com.blurview.BlurView;
import eightbitlab.com.blurview.RenderScriptBlur;
+import io.sentry.android.core.SentryAndroid;
public class MainActivity extends FoxActivity implements SwipeRefreshLayout.OnRefreshListener,
SearchView.OnQueryTextListener, SearchView.OnCloseListener,
@@ -73,6 +74,19 @@ public class MainActivity extends FoxActivity implements SwipeRefreshLayout.OnRe
@Override
protected void onCreate(Bundle savedInstanceState) {
+ SentryAndroid.init(this, options -> {
+ // Add a callback that will be used before the event is sent to Sentry.
+ // With this callback, you can modify the event or, when returning null, also discard the event.
+ options.setBeforeSend((event, hint) -> {
+ // Check saved preferences to see if the user has opted out of crash reporting.
+ // If the user has opted out, return null.
+ if (SettingsActivity.getCrashReporting(this)) {
+ return event;
+ } else {
+ return null;
+ }
+ });
+ });
this.initMode = true;
BackgroundUpdateChecker.onMainActivityCreate(this);
super.onCreate(savedInstanceState);
diff --git a/app/src/main/java/com/fox2code/mmm/androidacy/AndroidacyRepoData.java b/app/src/main/java/com/fox2code/mmm/androidacy/AndroidacyRepoData.java
index 6f068eb..0a77530 100644
--- a/app/src/main/java/com/fox2code/mmm/androidacy/AndroidacyRepoData.java
+++ b/app/src/main/java/com/fox2code/mmm/androidacy/AndroidacyRepoData.java
@@ -21,24 +21,23 @@ import org.json.JSONObject;
import java.io.File;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.Iterator;
import java.util.List;
-import okhttp3.Cookie;
import okhttp3.HttpUrl;
@SuppressWarnings("KotlinInternalInJava")
public final class AndroidacyRepoData extends RepoData {
private static final String TAG = "AndroidacyRepoData";
- private static final HttpUrl OK_HTTP_URL;
+
static {
HttpUrl.Builder OK_HTTP_URL_BUILDER =
new HttpUrl.Builder().scheme("https");
// Using HttpUrl.Builder.host(String) crash the app
OK_HTTP_URL_BUILDER.setHost$okhttp(".androidacy.com");
- OK_HTTP_URL = OK_HTTP_URL_BUILDER.build();
+ OK_HTTP_URL_BUILDER.build();
}
+
// Avoid spamming requests to Androidacy
private long androidacyBlockade = 0;
private String token = null;
@@ -60,26 +59,10 @@ public final class AndroidacyRepoData extends RepoData {
this.defaultSupport = "https://t.me/androidacy_discussions";
this.defaultDonate = "https://www.androidacy.com/membership-join/?utm_source=foxmmm&utm-medium=app&utm_campaign=fox-inapp";
this.defaultSubmitModule = "https://www.androidacy.com/module-repository-applications/";
- this.host = testMode ? "staging-api.androidacy.com" : "api.androidacy.com";
+ this.host = testMode ? "staging-api.androidacy.com" : "production-api.androidacy.com";
this.testMode = testMode;
}
- private static String getCookies() {
- if (Http.hasWebView()) {
- return CookieManager.getInstance().getCookie("https://.androidacy.com/");
- } else {
- Iterator cookies = Http.getCookieJar()
- .loadForRequest(OK_HTTP_URL).iterator();
- if (!cookies.hasNext()) return "";
- StringBuilder stringBuilder = new StringBuilder();
- while (true) {
- stringBuilder.append(cookies.next().toString());
- if (!cookies.hasNext()) return stringBuilder.toString();
- stringBuilder.append(",");
- }
- }
- }
-
public static AndroidacyRepoData getInstance() {
return RepoManager.getINSTANCE().getAndroidacyRepoData();
}
@@ -91,14 +74,8 @@ public final class AndroidacyRepoData extends RepoData {
long time = System.currentTimeMillis();
if (this.androidacyBlockade > time) return false;
this.androidacyBlockade = time + 30_000L;
- String cookies = AndroidacyRepoData.getCookies();
- int start = cookies == null ? -1 : cookies.indexOf("USER=") + 5;
- String token = null;
- if (start != -1) {
- int end = cookies.indexOf(";", start);
- if (end != -1)
- token = cookies.substring(start, end);
- }
+ // Get token from androidacy_token shared preference
+ String token = this.cachedPreferences.getString("androidacy_token", null);
if (token != null) {
try {
Http.doHttpGet("https://" + this.host + "/auth/me?token=" + token, true);
@@ -110,14 +87,10 @@ public final class AndroidacyRepoData extends RepoData {
return false;
}
Log.w(TAG, "Invalid token, resetting...");
- if (Http.hasWebView()) {
- CookieManager.getInstance().setCookie("https://.androidacy.com/",
- "USER=; expires=Thu, 01 Jan 1970 00:00:00 GMT;" +
- " path=/; secure; domain=.androidacy.com");
- } else {
- Http.getCookieJar().saveFromResponse(
- OK_HTTP_URL, Collections.emptyList());
- }
+ // Remove saved preference
+ SharedPreferences.Editor editor = this.cachedPreferences.edit();
+ editor.remove("androidacy_token");
+ editor.apply();
this.token = token = null;
}
}
@@ -126,22 +99,16 @@ public final class AndroidacyRepoData extends RepoData {
Log.i(TAG, "Refreshing token...");
token = new String(Http.doHttpPost(
"https://" + this.host + "/auth/register",
- "",true), StandardCharsets.UTF_8);
- if (Http.hasWebView()) {
- CookieManager.getInstance().setCookie("https://.androidacy.com/",
- "USER=" + token + "; expires=Fri, 31 Dec 9999 23:59:59 GMT;" +
- " path=/; secure; domain=.androidacy.com");
- } else {
- Http.getCookieJar().saveFromResponse(OK_HTTP_URL,
- Collections.singletonList(Cookie.parse(OK_HTTP_URL,
- "USER=" + token + "; expires=Fri, 31 Dec 9999 23:59:59 GMT;" +
- " path=/; secure; domain=.androidacy.com")));
- }
+ "foxmmm=true", true), StandardCharsets.UTF_8);
+ // Save token to shared preference
+ SharedPreferences.Editor editor = this.cachedPreferences.edit();
+ editor.putString("androidacy_token", token);
+ editor.apply();
} catch (Exception e) {
if ("Received error code: 419".equals(e.getMessage()) ||
"Received error code: 429".equals(e.getMessage()) ||
"Received error code: 503".equals(e.getMessage())
- ) {
+ ) {
Log.e(TAG, "We are being rate limited!", e);
this.androidacyBlockade = time + 3_600_000L;
}
@@ -194,7 +161,7 @@ public final class AndroidacyRepoData extends RepoData {
jsonObject.optString("zipUrl", ""));
repoModule.notesUrl = filterURL(
jsonObject.optString("notesUrl", ""));
- if (repoModule.zipUrl == null) {
+ if (repoModule.zipUrl == null) {
repoModule.zipUrl = // Fallback url in case the API doesn't have zipUrl
"https://" + this.host + "/magisk/info/" + moduleId;
}
@@ -264,7 +231,8 @@ public final class AndroidacyRepoData extends RepoData {
}
@Override
- public void storeMetadata(RepoModule repoModule, byte[] data) {}
+ public void storeMetadata(RepoModule repoModule, byte[] data) {
+ }
@Override
public boolean tryLoadMetadata(RepoModule repoModule) {
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 3f767f0..304ed05 100644
--- a/app/src/main/java/com/fox2code/mmm/settings/SettingsActivity.java
+++ b/app/src/main/java/com/fox2code/mmm/settings/SettingsActivity.java
@@ -17,6 +17,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.StringRes;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentTransaction;
import androidx.preference.ListPreference;
import androidx.preference.Preference;
@@ -61,6 +62,11 @@ public class SettingsActivity extends FoxActivity implements LanguageActivity {
private static final String TAG = "SettingsActivity";
private static int devModeStep = 0;
+ public static boolean getCrashReporting(MainActivity mainActivity) {
+ return mainActivity.getPreferences(Context.MODE_PRIVATE)
+ .getBoolean("crash_reporting", true);
+ }
+
@Override
protected void onCreate(Bundle savedInstanceState) {
devModeStep = 0;
@@ -124,6 +130,16 @@ public class SettingsActivity extends FoxActivity implements LanguageActivity {
}, 1);
return true;
});
+ // Crash reporting
+ TwoStatePreference crashReportingPreference = findPreference("pref_crash_reporting");
+ crashReportingPreference.setChecked(getCrashReporting(
+ (MainActivity) requireActivity()));
+ crashReportingPreference.setOnPreferenceChangeListener((preference, newValue) -> {
+ devModeStep = 0;
+ getCrashReportingEditor(requireActivity()).putBoolean("crash_reporting",
+ (boolean) newValue).apply();
+ return true;
+ });
Preference enableBlur = findPreference("pref_enable_blur");
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
enableBlur.setSummary(R.string.require_android_6);
@@ -277,6 +293,10 @@ public class SettingsActivity extends FoxActivity implements LanguageActivity {
BuildConfig.VERSION_CODE + ")");
}
+ private SharedPreferences.Editor getCrashReportingEditor(FragmentActivity requireActivity) {
+ return requireActivity.getSharedPreferences("crash_reporting", Context.MODE_PRIVATE).edit();
+ }
+
private void openFragment(Fragment fragment, @StringRes int title) {
FoxActivity compatActivity = getFoxActivity(this);
compatActivity.setOnBackPressedCallback(this);
@@ -384,9 +404,7 @@ public class SettingsActivity extends FoxActivity implements LanguageActivity {
} catch (IOException|JSONException e) {
Log.e(TAG, "Failed to preload repo values", e);
}
- UiThreadHandler.handler.post(() -> {
- updateCustomRepoList(false);
- });
+ UiThreadHandler.handler.post(() -> updateCustomRepoList(false));
}
}.start();
}
diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml
index 646f642..4f11bdc 100644
--- a/app/src/main/res/values-cs/strings.xml
+++ b/app/src/main/res/values-cs/strings.xml
@@ -92,4 +92,5 @@
Povolit rozostření
Repozitář povolen
Repozitář zakázán
+ If you disable this, the developer will not get automatic bug reports, and this may make troubleshooting harder
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index 5a0b88a..cdb56aa 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -94,7 +94,6 @@
Repo hinzufügen
Repo entfernen
Eigene URL
- Das Androidacy-Repo enthält Anzeigen und Tracker.
Backup Modules
Module wiederherstellen
Dieser Vorgang erfordert eine Internetverbindung
@@ -103,4 +102,5 @@
Beschreibung
Deinstallieren
Konfig
+ If you disable this, the developer will not get automatic bug reports, and this may make troubleshooting harder
diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml
index 75b93ef..520c77d 100644
--- a/app/src/main/res/values-el/strings.xml
+++ b/app/src/main/res/values-el/strings.xml
@@ -124,7 +124,6 @@
Προσθήκη αποθετηρίου
Αφαίρεση αποθετηρίου
Προσαρμοσμένη διεύθυνση url
- Το αποθετήριο Androidacy έχει διαφημίσεις και ιχνηλάτες.
Εφεδρικά modules
Επαναφορά module
Αυτή η λειτουργία απαιτεί σύνδεση στο Διαδίκτυο
@@ -144,4 +143,5 @@
Ορισμένες μεταφράσεις για την τρέχουσα γλώσσα δεν είναι ενημερωμένες, παρακαλούμε να συνεισφέρετε στις μεταφράσεις εφαρμογών στο GitHub
Μεταφράστηκε απο Tha_14
+ If you disable this, the developer will not get automatic bug reports, and this may make troubleshooting harder
diff --git a/app/src/main/res/values-es-rMX/strings.xml b/app/src/main/res/values-es-rMX/strings.xml
index 7de0d58..43ef05e 100644
--- a/app/src/main/res/values-es-rMX/strings.xml
+++ b/app/src/main/res/values-es-rMX/strings.xml
@@ -124,8 +124,8 @@
Añadir Repositorio
Eliminar Repositorio
URL Personalizado
- El repositorio Androidacy tiene anuncios y trackers.
Hacer copia de seguridad de los módulos
Restaurar módulos
Esta operación requiere una conexión a Internet.
+ If you disable this, the developer will not get automatic bug reports, and this may make troubleshooting harder
diff --git a/app/src/main/res/values-et/strings.xml b/app/src/main/res/values-et/strings.xml
index efce5aa..ca51e6b 100644
--- a/app/src/main/res/values-et/strings.xml
+++ b/app/src/main/res/values-et/strings.xml
@@ -87,4 +87,5 @@
Hoidla lubatud
Hoidla keelatud
+ If you disable this, the developer will not get automatic bug reports, and this may make troubleshooting harder
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index 88f5e11..87eab18 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -124,8 +124,8 @@
Ajouter dépôt
Supprimer dépôt
URL personnalisée
- Le dépôt Androidacy utilise des publicités et des pisteurs.
Sauvegarder les modules
Restaurer les modules
Cette opération requière une connexion internet
+ If you disable this, the developer will not get automatic bug reports, and this may make troubleshooting harder
diff --git a/app/src/main/res/values-id/strings.xml b/app/src/main/res/values-id/strings.xml
index 3815c05..83931fb 100644
--- a/app/src/main/res/values-id/strings.xml
+++ b/app/src/main/res/values-id/strings.xml
@@ -93,4 +93,5 @@
Aktifkan blur
Repo diaktifkan
Repo dinonaktifkan
+ If you disable this, the developer will not get automatic bug reports, and this may make troubleshooting harder
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index 367addf..32c54cd 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -127,7 +127,6 @@
Aggiungi Repository
Rimuovi Repository
Url personalizzato
- La repository di Androidacy contiene pubblicità e tracker.
Salva moduli
Ripristina moduli
Questa operazione richiede una connessione ad internet
@@ -149,4 +148,5 @@
Traduzione di tugaia56
+ If you disable this, the developer will not get automatic bug reports, and this may make troubleshooting harder
diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml
index 39f4e9a..923042a 100644
--- a/app/src/main/res/values-ja/strings.xml
+++ b/app/src/main/res/values-ja/strings.xml
@@ -40,4 +40,5 @@
ソースコード
開発者モードが有効です
Force English language
+ If you disable this, the developer will not get automatic bug reports, and this may make troubleshooting harder
diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml
index 37b3d3e..521a3f9 100644
--- a/app/src/main/res/values-nb-rNO/strings.xml
+++ b/app/src/main/res/values-nb-rNO/strings.xml
@@ -94,5 +94,5 @@
Tilsløring
Pakkebrønn på
Pakkebrønn av
- Androidacy-pakkebrønnen har reklame og sporere.
+ If you disable this, the developer will not get automatic bug reports, and this may make troubleshooting harder
diff --git a/app/src/main/res/values-night-v31/strings.xml b/app/src/main/res/values-night-v31/strings.xml
new file mode 100644
index 0000000..56b553c
--- /dev/null
+++ b/app/src/main/res/values-night-v31/strings.xml
@@ -0,0 +1,4 @@
+
+
+ If you disable this, the developer will not get automatic bug reports, and this may make troubleshooting harder
+
\ No newline at end of file
diff --git a/app/src/main/res/values-night/strings.xml b/app/src/main/res/values-night/strings.xml
new file mode 100644
index 0000000..56b553c
--- /dev/null
+++ b/app/src/main/res/values-night/strings.xml
@@ -0,0 +1,4 @@
+
+
+ If you disable this, the developer will not get automatic bug reports, and this may make troubleshooting harder
+
\ No newline at end of file
diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml
index 659a1d7..73f8383 100644
--- a/app/src/main/res/values-pl/strings.xml
+++ b/app/src/main/res/values-pl/strings.xml
@@ -124,7 +124,6 @@
Dodaj repozytorium
Usuń repozytorium
Niestandardowy URL
- Repo Androidacy korzysta z reklam i trackerów.
Kopia zapasowa modułów
Przywracanie modułów
Ta operacja wymaga połączenia internetowego
@@ -147,4 +146,5 @@
prosimy o rozważenie uzupełnienia tłumaczeń aplikacji na GitHubie.
Tłumaczenie: Daviteusz
+ If you disable this, the developer will not get automatic bug reports, and this may make troubleshooting harder
diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml
index 3e13142..1977166 100644
--- a/app/src/main/res/values-pt-rBR/strings.xml
+++ b/app/src/main/res/values-pt-rBR/strings.xml
@@ -127,7 +127,6 @@
Adicionar Repositório
Remover Repositórios
URL Customizado
- O Repositórios Androidacy possui anuncios e rastreadores.
Fazer backup dos modulos
Restaurar modulos
Essa operação requer uma conexão com a internet
@@ -149,4 +148,5 @@
Algumas traduções para sua lingua atual não esta em dia, por favor considere contribuir para as traduções do app no Github
Traduzido por mi007d e DanGLES3
+ If you disable this, the developer will not get automatic bug reports, and this may make troubleshooting harder
diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml
index 2172cb1..9ee1fc3 100644
--- a/app/src/main/res/values-ro/strings.xml
+++ b/app/src/main/res/values-ro/strings.xml
@@ -119,7 +119,6 @@
Adăugare depozit
Eliminare depozit
URL personalizat
- Depozitul Androidacy utilizează reclame și instrumente de urmărire.
Rezervare module
Restabilire module
Această operațiune necesită o conexiune la Internet
@@ -138,4 +137,5 @@
nu sunt actualizate, vă rugăm să luați în considerare contribuția la traducerea aplicației pe GitHub
Tradus de Fox2Code
+ If you disable this, the developer will not get automatic bug reports, and this may make troubleshooting harder
diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml
index 143cc46..5ab9ad7 100644
--- a/app/src/main/res/values-ru/strings.xml
+++ b/app/src/main/res/values-ru/strings.xml
@@ -120,8 +120,8 @@
Добавить репо
Убрать репо
Свой URL
- Репо Androidacy содержит рекламу и трекеры.
Резервное копирование модулей
Восстановить модули
Для этого действия потребуется подключение к Интернету
+ If you disable this, the developer will not get automatic bug reports, and this may make troubleshooting harder
diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml
index 70f7e4a..1ffe0c4 100644
--- a/app/src/main/res/values-sk/strings.xml
+++ b/app/src/main/res/values-sk/strings.xml
@@ -92,4 +92,5 @@
Povoliť rozostrenia
Repozitár povolený
Repozitár zakázaný
+ If you disable this, the developer will not get automatic bug reports, and this may make troubleshooting harder
diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml
index 947ec9f..c8790fd 100644
--- a/app/src/main/res/values-tr/strings.xml
+++ b/app/src/main/res/values-tr/strings.xml
@@ -127,7 +127,6 @@
Repo ekle
Repo\'yu kaldır
Özel url
- Androidacy repo\'da reklamlar ve takipçiler vardır.
Modülleri yedekle
Modülleri geri yükle
Bu işlem bir internet bağlantısı gerektirir
@@ -147,4 +146,5 @@
Şimdiki dil için bazı çeviriler güncel değil, lütfen GitHub\'daki uygulama çevirilerine katkıda bulunmayı düşünün
Alprnn357 tarafından çevrildi
+ If you disable this, the developer will not get automatic bug reports, and this may make troubleshooting harder
diff --git a/app/src/main/res/values-v23/strings.xml b/app/src/main/res/values-v23/strings.xml
new file mode 100644
index 0000000..56b553c
--- /dev/null
+++ b/app/src/main/res/values-v23/strings.xml
@@ -0,0 +1,4 @@
+
+
+ If you disable this, the developer will not get automatic bug reports, and this may make troubleshooting harder
+
\ No newline at end of file
diff --git a/app/src/main/res/values-v31/strings.xml b/app/src/main/res/values-v31/strings.xml
new file mode 100644
index 0000000..56b553c
--- /dev/null
+++ b/app/src/main/res/values-v31/strings.xml
@@ -0,0 +1,4 @@
+
+
+ If you disable this, the developer will not get automatic bug reports, and this may make troubleshooting harder
+
\ No newline at end of file
diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml
index c560c0b..997aaee 100644
--- a/app/src/main/res/values-vi/strings.xml
+++ b/app/src/main/res/values-vi/strings.xml
@@ -119,8 +119,8 @@
Thêm kho
Gỡ kho
Url tuỳ chỉnh
- Kho Androidacy có các quảng cáo và trình theo dõi.
Sao lưu mô-đun
Khôi phục mô-đun
Quá trình này yêu cầu kết nối internet
+ If you disable this, the developer will not get automatic bug reports, and this may make troubleshooting harder
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index 936a911..0fa7ca6 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -129,7 +129,6 @@
添加库
移除库
自定义网址
- Androidacy repo具有广告和跟踪器.
备份模块
还原模块
此操作需要互联网连接
@@ -150,4 +149,5 @@
请考虑为 GitHub 上的应用程序翻译做出贡献
由ender-zhao翻译
+ If you disable this, the developer will not get automatic bug reports, and this may make troubleshooting harder
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index 0d080eb..21979bb 100644
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -120,7 +120,6 @@
新增倉庫
移除倉庫
自定義網址
- Androidacy repo 內建廣告和跟蹤器.
備份模組
還原模組
需要網路連線
@@ -140,4 +139,5 @@
如果您使用的當前語言沒有及時更新,請考慮在 GitHub 上的為翻譯做出貢獻。
由 OrStudio.tw(@crcky5322) 提供美妙的翻譯
+ If you disable this, the developer will not get automatic bug reports, and this may make troubleshooting harder
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 2dbccca..7074e48 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -129,7 +129,7 @@
Add Repo
Remove Repo
Custom url
- The Androidacy repo has ads and trackers.
+ This repository may display some non-intrusive advertising to cover server and development costs.
Backup modules
Restore modules
This operation require an internet connection
@@ -152,4 +152,6 @@
not up-to-date, please consider contributing to the app translations on GitHub
Translated by Fox2Code
+ Automatically report bugs and performance to the developers
+ If you disable this, the developer will not get automatic bug reports, and this may make troubleshooting harder
diff --git a/app/src/main/res/xml/root_preferences.xml b/app/src/main/res/xml/root_preferences.xml
index 5325cb9..eec6891 100644
--- a/app/src/main/res/xml/root_preferences.xml
+++ b/app/src/main/res/xml/root_preferences.xml
@@ -115,6 +115,15 @@
app:title="@string/prevent_reboot_pref"
app:summary="@string/prevent_reboot_desc"
app:singleLineTitle="false" />
+
+
+