diff --git a/app/build.gradle b/app/build.gradle
index 5156af8..f188139 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -15,11 +15,14 @@ android {
Properties properties = new Properties()
if (project.rootProject.file('local.properties').exists()) {
properties.load(project.rootProject.file('local.properties').newDataInputStream())
- // FFS DO NOT CHANGE THIS, IT WILL BREAK THE BUILD
- storeFile file(properties.getProperty('keystore.file'))
- storePassword properties.getProperty('keystore.password')
- keyAlias 'key0'
- keyPassword properties.getProperty('keystore.password')
+ // java.lang.IllegalArgumentException: path may not be null or empty string. path='null'
+ if (properties.getProperty('keystore.file') != null) {
+ // FFS DO NOT CHANGE THIS, IT WILL BREAK THE BUILD
+ storeFile file(properties.getProperty('keystore.file'))
+ storePassword properties.getProperty('keystore.password')
+ keyAlias 'key0'
+ keyPassword properties.getProperty('keystore.password')
+ }
}
}
}
diff --git a/app/src/main/java/com/fox2code/mmm/MainActivity.java b/app/src/main/java/com/fox2code/mmm/MainActivity.java
index 4425a1e..d9d8b6b 100644
--- a/app/src/main/java/com/fox2code/mmm/MainActivity.java
+++ b/app/src/main/java/com/fox2code/mmm/MainActivity.java
@@ -47,11 +47,13 @@ import com.fox2code.mmm.manager.ModuleManager;
import com.fox2code.mmm.module.ModuleViewAdapter;
import com.fox2code.mmm.module.ModuleViewListBuilder;
import com.fox2code.mmm.repo.RepoManager;
+import com.fox2code.mmm.sentry.SentryMain;
import com.fox2code.mmm.settings.SettingsActivity;
import com.fox2code.mmm.utils.BlurUtils;
import com.fox2code.mmm.utils.ExternalHelper;
import com.fox2code.mmm.utils.Http;
import com.fox2code.mmm.utils.IntentHelper;
+import com.fox2code.mmm.utils.ProcessHelper;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.materialswitch.MaterialSwitch;
import com.google.android.material.progressindicator.LinearProgressIndicator;
@@ -88,6 +90,7 @@ public class MainActivity extends FoxActivity implements SwipeRefreshLayout.OnRe
private SearchView searchView;
private boolean initMode;
private boolean doSetupNowRunning;
+ private boolean doSetupRestarting;
private boolean urlFactoryInstalled = false;
public MainActivity() {
@@ -180,6 +183,7 @@ public class MainActivity extends FoxActivity implements SwipeRefreshLayout.OnRe
this.cardIconifyUpdate();
this.updateScreenInsets(this.getResources().getConfiguration());
+ checkShowInitialSetup();
InstallerInitializer.tryGetMagiskPathAsync(new InstallerInitializer.Callback() {
@Override
public void onPathReceived(String path) {
@@ -201,23 +205,15 @@ public class MainActivity extends FoxActivity implements SwipeRefreshLayout.OnRe
}
public void commonNext() {
- doSetupNowRunning = true;
- doSetupNow();
-
- // Wait for doSetupNow to finish
- while (doSetupNowRunning) {
- try {
- //noinspection BusyWait
- Thread.sleep(100);
- } catch (InterruptedException ignored) {
- }
+ updateScreenInsets(); // Fix an edge case
+ if (waitInitialSetupFinished()) {
+ return;
}
/*if (BuildConfig.DEBUG) {
SharedPreferences prefs = MainApplication.getSharedPreferences();
if (BuildConfig.DEBUG) Log.d("MainActivity", String.format("Background update check: %s, Crash reporting: %s, Androidacy repo: %s, Magisk alt repo: %s", prefs.getBoolean("pref_background_update_check", false), prefs.getBoolean("pref_crash_reporting", false), prefs.getBoolean("pref_androidacy_repo_enabled", false), prefs.getBoolean("pref_magisk_alt_repo_enabled", false)));
}*/
swipeRefreshBlocker = System.currentTimeMillis() + 5_000L;
- updateScreenInsets(); // Fix an edge case
if (MainApplication.isShowcaseMode())
moduleViewListBuilder.addNotification(NotificationType.SHOWCASE_MODE);
if (!Http.hasWebView()) // Check Http for WebView availability
@@ -518,7 +514,10 @@ public class MainActivity extends FoxActivity implements SwipeRefreshLayout.OnRe
@Override
public void onRefresh() {
- if (this.swipeRefreshBlocker > System.currentTimeMillis() || this.initMode || this.progressIndicator == null || this.progressIndicator.getVisibility() == View.VISIBLE) {
+ if (this.swipeRefreshBlocker > System.currentTimeMillis() ||
+ this.initMode || this.progressIndicator == null ||
+ this.progressIndicator.getVisibility() == View.VISIBLE ||
+ this.doSetupNowRunning) {
this.swipeRefreshLayout.setRefreshing(false);
return; // Do not double scan
}
@@ -702,13 +701,14 @@ public class MainActivity extends FoxActivity implements SwipeRefreshLayout.OnRe
// Method to show a setup box on first launch
@SuppressLint({"InflateParams", "RestrictedApi", "UnspecifiedImmutableFlag", "ApplySharedPref"})
- private void doSetupNow() {
+ private void checkShowInitialSetup() {
if (BuildConfig.DEBUG) Log.d("NoodleDebug", "Do setup now");
// Check if this is the first launch
SharedPreferences prefs = MainApplication.getSharedPreferences();
- boolean firstLaunch = MainApplication.getSharedPreferences().getBoolean("first_launch", true);
+ boolean firstLaunch = prefs.getBoolean("first_launch", true);
if (BuildConfig.DEBUG) Log.d("Noodle", "First launch: " + firstLaunch);
if (firstLaunch) {
+ doSetupNowRunning = true;
// Show setup box
runOnUiThread(() -> {
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this);
@@ -720,26 +720,30 @@ public class MainActivity extends FoxActivity implements SwipeRefreshLayout.OnRe
// For sdk >= 31, use MaterialSwitch instead of MaterialSwitch
// For now, we'll just have the positive button save the preferences and dismiss the dialog
builder.setPositiveButton(R.string.setup_button, (dialog, which) -> {
- // Set the preferences
- prefs.edit().putBoolean("pref_background_update_check",
- ((MaterialSwitch) Objects.requireNonNull(((AlertDialog) dialog).findViewById(R.id.setup_background_update_check))).isChecked()).commit();
- prefs.edit().putBoolean("pref_crash_reporting", ((MaterialSwitch) Objects.requireNonNull(((AlertDialog) dialog).findViewById(R.id.setup_crash_reporting))).isChecked()).commit();
- prefs.edit().putBoolean("pref_androidacy_repo_enabled", ((MaterialSwitch) Objects.requireNonNull(((AlertDialog) dialog).findViewById(R.id.setup_androidacy_repo))).isChecked()).commit();
- prefs.edit().putBoolean("pref_magisk_alt_repo_enabled", ((MaterialSwitch) Objects.requireNonNull(((AlertDialog) dialog).findViewById(R.id.setup_magisk_alt_repo))).isChecked()).commit();
+ // Set the preferences and pref_first_launch to false
+ prefs.edit().putBoolean("first_launch", false)
+ .putBoolean("pref_background_update_check", ((MaterialSwitch)
+ Objects.requireNonNull(((AlertDialog) dialog).findViewById(R.id.setup_background_update_check))).isChecked())
+ .putBoolean("pref_crash_reporting",
+ ((MaterialSwitch) Objects.requireNonNull(((AlertDialog) dialog).findViewById(R.id.setup_crash_reporting))).isChecked())
+ .putBoolean("pref_androidacy_repo_enabled", ((MaterialSwitch)
+ Objects.requireNonNull(((AlertDialog) dialog).findViewById(R.id.setup_androidacy_repo))).isChecked())
+ .putBoolean("pref_magisk_alt_repo_enabled", ((MaterialSwitch)
+ Objects.requireNonNull(((AlertDialog) dialog).findViewById(R.id.setup_magisk_alt_repo))).isChecked()).apply();
if (BuildConfig.DEBUG) {
- Log.d("MainActivity", String.format("Background update check: %s, Crash reporting: %s, Androidacy repo: %s, Magisk alt repo: %s", prefs.getBoolean("pref_background_update_check", false), prefs.getBoolean("pref_crash_reporting", false), prefs.getBoolean("pref_androidacy_repo_enabled", false), prefs.getBoolean("pref_magisk_alt_repo_enabled", false)));
+ Log.d("MainActivity", String.format("Background update check: %s, Crash reporting: %s, Androidacy repo: %s, Magisk alt repo: %s",
+ prefs.getBoolean("pref_background_update_check", false), prefs.getBoolean("pref_crash_reporting", false),
+ prefs.getBoolean("pref_androidacy_repo_enabled", false), prefs.getBoolean("pref_magisk_alt_repo_enabled", false)));
+ }
+ // Only for sentry switching we need to restart I think?
+ if (SentryMain.isSentryEnabled() != MainApplication.isCrashReportingEnabled()) {
+ doSetupRestarting = true;
+ ProcessHelper.restartApplicationProcess(this);
}
- // Set pref_first_launch to false
- MainApplication.getSharedPreferences().edit().putBoolean("first_launch", false).commit();
- // Restart the app
- Intent intent = new Intent(this, MainActivity.class);
- intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
- finish();
- startActivity(intent);
ensurePermissions();
});
builder.setNegativeButton(R.string.setup_button_skip, (dialog, which) -> {
- MainApplication.getSharedPreferences().edit().putBoolean("first_launch", false).commit();
+ MainApplication.getSharedPreferences().edit().putBoolean("first_launch", false).apply();
dialog.dismiss();
ensurePermissions();
});
@@ -755,4 +759,22 @@ public class MainActivity extends FoxActivity implements SwipeRefreshLayout.OnRe
ensurePermissions();
}
}
+
+ /**
+ * @return true if the load workflow must be stopped.
+ */
+ private boolean waitInitialSetupFinished() {
+ if (BuildConfig.DEBUG) Log.d("NoodleDebug", "waitInitialSetupFinished");
+ if (doSetupNowRunning) updateScreenInsets(); // Fix an edge case
+ try {
+ // Wait for doSetupNow to finish
+ while (doSetupNowRunning) {
+ //noinspection BusyWait
+ Thread.sleep(50);
+ }
+ } catch (InterruptedException e) {
+ return true;
+ }
+ return doSetupRestarting;
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/fox2code/mmm/MainApplication.java b/app/src/main/java/com/fox2code/mmm/MainApplication.java
index f4e1fb9..8ed3ccb 100644
--- a/app/src/main/java/com/fox2code/mmm/MainApplication.java
+++ b/app/src/main/java/com/fox2code/mmm/MainApplication.java
@@ -61,6 +61,7 @@ public class MainApplication extends FoxApplication implements androidx.work.Con
@SuppressLint("StaticFieldLeak")
private static MainApplication INSTANCE;
private static boolean firstBoot;
+ private static boolean loadSentryInitialized;
static {
Shell.setDefaultBuilder(shellBuilder = Shell.Builder.create().setFlags(Shell.FLAG_REDIRECT_STDERR).setTimeout(10).setInitializers(InstallerInitializer.class));
@@ -168,7 +169,9 @@ public class MainApplication extends FoxApplication implements androidx.work.Con
}
public static boolean isCrashReportingEnabled() {
- return getSharedPreferences().getBoolean("pref_crash_reporting", BuildConfig.DEFAULT_ENABLE_CRASH_REPORTING);
+ return SentryMain.IS_SENTRY_INSTALLED &&
+ getSharedPreferences().getBoolean("pref_crash_reporting",
+ BuildConfig.DEFAULT_ENABLE_CRASH_REPORTING);
}
public static SharedPreferences getBootSharedPreferences() {
@@ -306,7 +309,6 @@ public class MainApplication extends FoxApplication implements androidx.work.Con
Log.d("MainApplication", "Emoji compat loaded!");
}, "Emoji compat init.").start();
}
-
SentryMain.initialize(this);
if (Objects.equals(BuildConfig.ANDROIDACY_CLIENT_ID, "")) {
Log.w("MainApplication", "Androidacy client id is empty! Please set it in androidacy" + ".properties. Will not enable Androidacy.");
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 9a10a45..9babb13 100644
--- a/app/src/main/java/com/fox2code/mmm/settings/SettingsActivity.java
+++ b/app/src/main/java/com/fox2code/mmm/settings/SettingsActivity.java
@@ -62,6 +62,7 @@ import com.fox2code.mmm.sentry.SentryMain;
import com.fox2code.mmm.utils.ExternalHelper;
import com.fox2code.mmm.utils.Http;
import com.fox2code.mmm.utils.IntentHelper;
+import com.fox2code.mmm.utils.ProcessHelper;
import com.fox2code.rosettax.LanguageActivity;
import com.fox2code.rosettax.LanguageSwitcher;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
@@ -148,14 +149,7 @@ public class SettingsActivity extends FoxActivity implements LanguageActivity {
@Override
@SuppressLint("InlinedApi")
public void refreshRosettaX() {
- Intent mStartActivity = new Intent(this, MainActivity.class);
- mStartActivity.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
- int mPendingIntentId = 123456;
- PendingIntent mPendingIntent = PendingIntent.getActivity(this, mPendingIntentId,
- mStartActivity, PendingIntent.FLAG_CANCEL_CURRENT | PendingIntent.FLAG_IMMUTABLE);
- AlarmManager mgr = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);
- mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 100, mPendingIntent);
- System.exit(0); // Exit app process
+ ProcessHelper.restartApplicationProcess(this);
}
@Override
diff --git a/app/src/main/java/com/fox2code/mmm/utils/ProcessHelper.java b/app/src/main/java/com/fox2code/mmm/utils/ProcessHelper.java
new file mode 100644
index 0000000..69e7f6f
--- /dev/null
+++ b/app/src/main/java/com/fox2code/mmm/utils/ProcessHelper.java
@@ -0,0 +1,22 @@
+package com.fox2code.mmm.utils;
+
+import android.app.AlarmManager;
+import android.app.PendingIntent;
+import android.content.Context;
+import android.content.Intent;
+
+import com.fox2code.mmm.MainActivity;
+
+public class ProcessHelper {
+ private static final int sPendingIntentId = 123456;
+
+ public static void restartApplicationProcess(Context context) {
+ Intent mStartActivity = new Intent(context, MainActivity.class);
+ mStartActivity.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
+ PendingIntent mPendingIntent = PendingIntent.getActivity(context, sPendingIntentId,
+ mStartActivity, PendingIntent.FLAG_CANCEL_CURRENT | PendingIntent.FLAG_IMMUTABLE);
+ AlarmManager mgr = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
+ mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 100, mPendingIntent);
+ System.exit(0); // Exit app process
+ }
+}
diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml
index a6b3dae..eb90f0d 100644
--- a/app/src/main/res/values-nl/strings.xml
+++ b/app/src/main/res/values-nl/strings.xml
@@ -1,2 +1,207 @@
-
\ No newline at end of file
+
+ Fox\'s Mmm
+ Roottoegang geweigerd door Magisk
+ Magisk is niet geïnstalleerd op dit toestel
+ Laden…
+ Upgradebaar
+ Geïnstalleerd
+ De app is in blokkeermodus
+ Laden van modules duurde te lang, schakel mogelijk enkele modules uit
+ Geen internetverbinding
+ Kan system Webview niet openen
+ InstellingsActiviteit
+ Bijwerken
+ Geen beschrijving gevonden.
+ Download module
+ Installeer module
+ Module bijwerken
+ Logboek van wijzigingen
+ Website
+ Ondersteuning
+ Doneer
+ Bijwerken
+ Installeer
+ Beschrijving
+ Verwijderen
+ Configuratie
+ Rapporteer bugs
+ Gevonden modules
+ Modules zoeken
+ Module indienen
+ Vereist Android 6.0+
+ Herstarten
+ Taal
+ Laatst bijgewerkt:
+ Pakketbron:
+ Online Pakketbron
+ door
+ Downloads:
+ Sterren:
+ Vereist ramdisk
+ Kan boot wijzigen
+ Deze module kan het boot image wijzigen
+ Min. Magisk %s
+ Min. Android
+ Max. Android
+ Blokkeermodus
+ Blokkeermodus verhindert de beheerder om acties op de modules uit te voeren
+ Herstart voorkomen
+ Voorkomt onverwacht herstarten
+ Instellingen
+ Activeer Monet
+ Info
+ Toon licenties
+ Licenties
+ Toon modules die volgens de metadata mogelijk niet werken op je toestel
+ Er is een nieuwe versie van Magisk beschikbaar!
+ Pakketbeheerders
+ Beveiliging
+ Uiterlijk
+ Algemeen
+ Modulebestanden verwijderen\?
+ Behouden
+ Verwijderen
+ Kan de bestanden van de module niet verwijderen
+ Thema
+ Thema Modus
+ Module ID:
+ Installeer gedownloade module
+ De geselecteerde module heeft een ongeldig formaat
+ Module van mindere kwaliteit
+ Lokale installatie
+ Broncode
+ Ingebouwde Magisk-module
+ Donkere terminalmode forceren
+ Je huidige bestandsbeheerder kan het bestand niet openen.
+ Installatie op afstand
+ Gebruik het \"magisk --install-module\" commando
+ Ontwikkelmodus actief
+ Ontwikkelmodus uitgeschakeld
+ Forceer Engelse taal
+ Toon modules van mindere kwaliteit
+ DNS over HTTPS
+ Kan in sommige gevallen verbindingsproblemen oplossen. (Is niet van toepassing op WebView.)
+ Geen Mmm
+ Tekstterugloop
+ Toon tekst op meerdere regels in plaats van alle tekst op dezelfde regel te plaatsen bij het installeren van een module.
+ Vervagen
+ Chips in de beschrijving uitschakelen
+ Pakketbeheerder actief
+ Pakketbeheerder uitgeschakeld
+ Pakketbeheerder toevoegen
+ Pakketbeheerder verwijderen
+ Aangepaste url
+ Link gekopieerd
+ Backup modules
+ Modules herstellen
+ Deze bewerking vereist een internetverbinding
+ Androidacy test modus
+ Gebruik staging Androidacy endpoint in plaats van release endpoint. (Dit start de app opnieuw op)
+ %i module updates gevonden
+ %i module updates gezocht
+ Klik om de app te openen
+ Kan het batterijgebruik verhogen
+ Testmelding
+ Vertaald door Alain Deroy
+ Rapporteer automatisch bugs en prestaties aan de ontwikkelaars
+ Gebruik een aangepaste API-sleutel voor Androidacy. Handig voor premium abonnees, om advertenties te verwijderen en meer.
+ Androidacy API-sleutel is leeg
+ Androidacy API-Sleutel
+ Huidige Androidacy API-sleutel
+ Kan de API-sleutel niet valideren. Controleer en probeer het opnieuw.
+ API-sleutel is geldig.
+ API-sleutel wordt gevalideerd...
+ API-sleutel wordt gevalideerd...
+ Een ogenblik geduld
+ API-sleutel opnieuw ingesteld
+ Waarschuwing!
+ Crash de app om te testen
+ Herverpakt als:
+ Verpakt van:
+ App opnieuw starten om wijzigingen toe te passen\?
+ De app moet opnieuw worden opgestart om deze instelling toe te passen
+ Herstarten
+ App wordt opnieuw gestart om staging-eindpunt uit te schakelen
+ Kan token voor Androidacy niet valideren. Probeer het later opnieuw.
+ Androidacy-update geblokkeerd door Captcha
+ De API-sleutel die je invoert, is dezelfde als de sleutel die al in gebruik is.
+ Meldingen toestaan\?
+ Toestemming
+ Schakel meldingen in om deze optie in te schakelen.
+ Niet meer vragen
+ Forceer zwart thema
+ Deze pakketbeheerder is momenteel uitgeschakeld
+ Deze build mist client-sleutels voor de Androidacy Repo. Download de GitHub-release als je gebruik wil maken van functies zoals modulebeoordelingen, automatische beveiligingscontroles en meer.
+ Volledige versie downloaden
+ Sommige repo\'s kunnen niet worden bijgewerkt
+ Update van %1$s mislukt. Probeer het later opnieuw.
+ Monet is niet compatibel met transparante thema\'s.
+ Vervagen is niet compatibel met transparante thema\'s.
+ Je stelt een transparant thema in
+ Aangepaste repo\'s zijn altijd ingeschakeld totdat je ze verwijdert.
+ Oeps! Het lijkt erop dat de app onverwacht is afgesloten.
+ Je naam
+ Kan geen contact maken met de Androidacy-server. Controleer je verbinding en probeer het opnieuw.
+ Je e-mail adres
+ Vertel ons wat er is gebeurd
+ Kan geen feedback verzenden vanwege een fout
+ Verzenden
+ Feedback met succes verzonden. We zullen het zo snel mogelijk bekijken
+ Kan geen feedback verzenden omdat er geen beschrijving is gegeven
+ Scroll naar online repo
+ %1$s v%2$s (%3$o) | %4$s Build
+ Officieel
+ Niet-officieel
+ Eerste installatie
+ Welkom! Deze app helpt je bij het installeren en beheren van Magisk-modules. Selecteer de onderstaande opties om aan de slag te gaan. Deze en meer kunnen later worden geconfigureerd vanuit de instellingen.
+ Installatie voltooien
+ Laat ons controleren op updates op de achtergrond.
+\nDeze functie kan meer batterij gebruiken.
+ Schakel de Androidacy-repo in
+\nBeschikt over gebruikersrecensies, automatische virusscans, snelle updates, een brede selectie en wordt ondersteund door Androidacy.
+ Schakel de Magisk Alt Repo in
+\nVeel lakser dan het origineel. Heeft veel modules ten koste van enige veiligheid.
+ Schakel Sentry-crashrapportage en prestatiebewaking in.
+\nAlle meldingen zijn strikt anoniem en vertrouwelijk.
+ U kunt later aangepaste repo\'s toevoegen in de instellingen.
+ Pakketbeheerders
+ Allerlei
+ Overslaan
+ Vervaging inschakelen op een apparaat van mindere kwaliteit
+ Deze repo heeft minder beperkingen en beoordelingen, wat kan leiden tot modules van lagere kwaliteit. Vrij basaal maar heeft veel modules.
+ Fox\'s Magisk Modulebeheerder
+ Geen toegang tot Root en/of Magisk
+ Kon bestand niet downloaden
+ Er is een nieuwe versie van de app beschikbaar
+ Favoriet
+ Vereist Android 12+
+ Deze module vereist de aanwezigheid van een ramdisk
+ Beheerpakketten instellen
+ Toon niet-compatibele modules
+ De pakketbeheerder van Magisk modules
+ Een alternatief voor de Magisk-Modules-Repo met minder beperkingen.
+ Ingebouwde Substratum-module
+ Je huidige bestandsbeheerder heeft een niet-standaard antwoord gegeven.
+ Tijdens het testen veroorzaakte het problemen met het foutdiagnose-programma, daarom is deze optie enkel toegankelijk in ontwikkelmodus.
+\nActiveren is op eigen risico!
+ Sommige modules declareren hun metagegevens niet correct, wat visuele storingen veroorzaakt en/of wijst op een slechte modulekwaliteit.
+\nSchakel dit uit op eigen risico!
+ Schakel Fox\'s Mmm-extensies uit, zodat modules geen terminalextensies kunnen gebruiken.
+\nHandig als een module misbruik maakt van Fox\'s Mmm extensies.
+ Deze repository kan een aantal niet-intrusieve reclameboodschappen weergeven om de server- en ontwikkelingskosten te dekken. Beschikt over beoordelingen, automatische virusscans en meer.
+ Updatecontrole van achtergrondmodules
+ Sommige vertalingen voor de huidige taal zijn niet up-to-date, overweeg om bij te dragen aan de app-vertalingen op GitHub
+ Als je dit uitschakelt, krijgt de ontwikkelaar geen automatische bugrapporten en dit kan het oplossen van problemen bemoeilijken
+ Valideren
+ Je stelt de app in om een niet-productie-eindpunt voor Androidacy te gebruiken. Dit kan leiden tot instabiliteit van de app en het niet laden van de online repo. Meld GEEN bugs als u deze schakelaar hebt ingeschakeld. De app wordt opnieuw gestart om repo\'s opnieuw te laden.
+ Kan token niet ophalen van Androidacy. Probeer het later opnieuw.
+ API-sleutel is gewijzigd. Start de app opnieuw om wijzigingen toe te passen.
+ We hebben de toestemming voor meldingen nodig om je op de hoogte te stellen van app- en module-updates. Als je deze machtiging niet verleent, worden er geen controles van achtergrondupdates uitgevoerd.
+ Forceert zwarte achtergronden voor AMOLED bij gebruik van donker thema. Houd er rekening mee dat dit contrastproblemen kan veroorzaken met sommige kleurthema\'s.
+ Transparante thema\'s kunnen enkele inconsistenties hebben en werken mogelijk niet op alle ROM\'s. Bovendien worden Monet en vervaging uitgeschakeld. Je kan dit op elk gewenst moment wijzigen.
+ Er is een fout opgetreden! Help ons de app te verbeteren door wat informatie over de onderstaande fout toe te voegen.
+\nNaam en e-mailadres zijn optioneel maar stellen ons in staat om indien nodig contact met u op te nemen voor meer informatie.
+ Je probeert vervaging in te schakelen op een apparaat dat er mogelijk niet goed mee presteert.
+\nJe kan dit inschakelen, maar het kan leiden tot een slechte gebruikerservaring en we raden je aan dit niet te doen.
+
\ No newline at end of file
diff --git a/app/src/sentry/java/com/fox2code/mmm/sentry/SentryMain.java b/app/src/sentry/java/com/fox2code/mmm/sentry/SentryMain.java
index ceeae18..30c390f 100644
--- a/app/src/sentry/java/com/fox2code/mmm/sentry/SentryMain.java
+++ b/app/src/sentry/java/com/fox2code/mmm/sentry/SentryMain.java
@@ -17,6 +17,7 @@ import io.sentry.android.fragment.FragmentLifecycleIntegration;
public class SentryMain {
public static final boolean IS_SENTRY_INSTALLED = true;
private static final String TAG = "SentryMain";
+ private static boolean sentryEnabled = false;
/**
* Initialize Sentry
@@ -39,6 +40,7 @@ public class SentryMain {
if (!MainApplication.isCrashReportingEnabled()) {
options.setDsn("");
} else {
+ sentryEnabled = true; // Set sentry state to enabled
options.addIntegration(new FragmentLifecycleIntegration(mainApplication, true, true));
options.setCollectAdditionalContext(true);
options.setAttachThreads(true);
@@ -82,4 +84,8 @@ public class SentryMain {
Sentry.addBreadcrumb(sentryBreadcrumb.breadcrumb);
}
}
+
+ public static boolean isSentryEnabled() {
+ return sentryEnabled;
+ }
}
diff --git a/app/src/sentryless/java/com/fox2code/mmm/sentry/SentryMain.java b/app/src/sentryless/java/com/fox2code/mmm/sentry/SentryMain.java
index 7d3e354..d8e9138 100644
--- a/app/src/sentryless/java/com/fox2code/mmm/sentry/SentryMain.java
+++ b/app/src/sentryless/java/com/fox2code/mmm/sentry/SentryMain.java
@@ -8,4 +8,6 @@ public class SentryMain {
public static void initialize(MainApplication mainApplication) {}
public static void addSentryBreadcrumb(SentryBreadcrumb sentryBreadcrumb) {}
+
+ public static boolean isSentryEnabled() { return false; }
}
diff --git a/fastlane/metadata/android/nl-NL/full_description.txt b/fastlane/metadata/android/nl-NL/full_description.txt
new file mode 100644
index 0000000..1f7431d
--- /dev/null
+++ b/fastlane/metadata/android/nl-NL/full_description.txt
@@ -0,0 +1,3 @@
+Deze app wordt niet officieel ondersteund door Magisk en zijn ontwikkelaars.
+
+De modules die in deze app getoond worden zijn onafhankelijk van de app. Contacteer de beheerders van de repo voor ondersteuning.
diff --git a/fastlane/metadata/android/nl-NL/short_description.txt b/fastlane/metadata/android/nl-NL/short_description.txt
new file mode 100644
index 0000000..45e9d7e
--- /dev/null
+++ b/fastlane/metadata/android/nl-NL/short_description.txt
@@ -0,0 +1 @@
+Modulebeheerder voor Magisk vermits de officiële app dit niet meer ondersteund.