From 68bf2636c35c248ad4e8b8c9163f9d8733a740fb Mon Sep 17 00:00:00 2001 From: androidacy-user Date: Thu, 2 Feb 2023 21:14:38 -0500 Subject: [PATCH] finish up in-app updater fixes #170 once androidacy impl is finished, will switch to androidacy API over GitHub for stability and accessibility reasons Signed-off-by: androidacy-user --- app/build.gradle | 11 +++++----- .../java/com/fox2code/mmm/SetupActivity.java | 20 ++++++++++++++++++- .../java/com/fox2code/mmm/UpdateActivity.java | 8 -------- build.gradle | 2 +- 4 files changed, 26 insertions(+), 15 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index f4726fd..03a3f08 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,6 +1,6 @@ plugins { // Gradle doesn't allow conditionally enabling/disabling plugins - id "io.sentry.android.gradle" version "3.4.0" + id "io.sentry.android.gradle" version "3.4.1" id 'com.android.application' id 'com.mikepenz.aboutlibraries.plugin' id 'org.jetbrains.kotlin.android' @@ -270,7 +270,7 @@ sentry { // Enable auto-installation of Sentry components (sentry-android SDK and okhttp, timber and fragment integrations). autoInstallation { - sentryVersion = '6.12.1' + sentryVersion = sentry_version } // temp fix for gradle bug @@ -318,6 +318,8 @@ dependencies { implementation "io.sentry:sentry-android-timber:$sentry_version" implementation "io.sentry:sentry-android-fragment:$sentry_version" implementation "io.sentry:sentry-android-okhttp:$sentry_version" + implementation "io.sentry:sentry-kotlin-extensions:$sentry_version" + implementation "io.sentry:sentry-android-ndk:$sentry_version" // Markdown implementation "io.noties.markwon:core:4.6.2" @@ -332,7 +334,6 @@ dependencies { implementation 'androidx.core:core-ktx:1.9.0' - implementation "io.sentry:sentry-kotlin-extensions:$sentry_version" // timber implementation 'com.jakewharton.timber:timber:5.0.1' @@ -377,11 +378,11 @@ android { kotlin { jvmToolchain { - languageVersion.set(JavaLanguageVersion.of(11)) // "8" + languageVersion.set(JavaLanguageVersion.of(11)) } } -// Safeguard (Do not remove) +// Safeguard (Do not remove. Or do, i'm just a comment not a cop) final File res = new File(projectDir, "src/main/res") for (String name : res.list()) { // Character.isDigit is required to make sure diff --git a/app/src/main/java/com/fox2code/mmm/SetupActivity.java b/app/src/main/java/com/fox2code/mmm/SetupActivity.java index 9abda00..1031ca3 100644 --- a/app/src/main/java/com/fox2code/mmm/SetupActivity.java +++ b/app/src/main/java/com/fox2code/mmm/SetupActivity.java @@ -3,9 +3,11 @@ package com.fox2code.mmm; import static com.fox2code.mmm.utils.IntentHelper.getActivity; import android.annotation.SuppressLint; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; +import android.content.pm.PackageManager; import android.content.res.Resources; import android.os.Bundle; import android.view.View; @@ -61,6 +63,8 @@ public class SetupActivity extends FoxActivity implements LanguageActivity { } this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION, 0); createRealmDatabase(); + createFiles(); + disableUpdateActivityForFdroidFlavor(); // Set theme SharedPreferences prefs = MainApplication.getSharedPreferences(); switch (prefs.getString("theme", "system")) { @@ -337,6 +341,9 @@ public class SetupActivity extends FoxActivity implements LanguageActivity { } } }); + } + + public void createFiles() { try { String cookieFileName = "cookies"; // initial set of cookies, only really used to create the keypair and encrypted file @@ -372,7 +379,7 @@ public class SetupActivity extends FoxActivity implements LanguageActivity { outputStream.flush(); } } catch (GeneralSecurityException | - IOException e) { + IOException e) { Timber.e(e); } // we literally only use these to create the http cache folders @@ -389,4 +396,15 @@ public class SetupActivity extends FoxActivity implements LanguageActivity { } } } + + @SuppressWarnings("ConstantConditions") + public void disableUpdateActivityForFdroidFlavor() { + if (BuildConfig.FLAVOR.equals("fdroid")) { + Timber.d("Disabling update activity for fdroid flavor"); + // disable update activity through package manager + PackageManager pm = getPackageManager(); + ComponentName componentName = new ComponentName(this, UpdateActivity.class); + pm.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); + } + } } \ No newline at end of file diff --git a/app/src/main/java/com/fox2code/mmm/UpdateActivity.java b/app/src/main/java/com/fox2code/mmm/UpdateActivity.java index 2113efa..25fb09a 100644 --- a/app/src/main/java/com/fox2code/mmm/UpdateActivity.java +++ b/app/src/main/java/com/fox2code/mmm/UpdateActivity.java @@ -43,14 +43,6 @@ public class UpdateActivity extends FoxActivity { MaterialTextView statusTextView = findViewById(R.id.update_progress_text); // set status text to please wait statusTextView.setText(R.string.please_wait); - // for debug builds, set update_debug_warning to visible and return - /**if (BuildConfig.DEBUG) { - findViewById(R.id.update_debug_warning).setVisibility(MaterialTextView.VISIBLE); - progressIndicator.setIndeterminate(false); - progressIndicator.setProgressCompat(0, false); - statusTextView.setVisibility(MaterialTextView.INVISIBLE); - return; - }*/ Thread updateThread = new Thread() { public void run() { // Now, parse the intent diff --git a/build.gradle b/build.gradle index a057724..21a2027 100644 --- a/build.gradle +++ b/build.gradle @@ -19,7 +19,7 @@ buildscript { flavorAware: true ] project.ext.kotlin_version = "1.8.0" - project.ext.sentry_version = "6.12.1" + project.ext.sentry_version = "6.13.0" dependencies { classpath 'com.android.tools.build:gradle:7.4.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"