From 3bfe604dbbfc5cb5811f9808c622a3e6c264c08e Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Wed, 5 Aug 2020 13:32:36 +0200 Subject: [PATCH] Kill RiotX (#1727) - Restore RiotX appId and App name - Prevent share to RiotX - Show the warning popup each time the app is launch - Prevent any new login and propose to uninstall the app --- CHANGES.md | 23 ++--- vector/build.gradle | 12 +-- vector/src/gplay/debug/google-services.json | 2 +- vector/src/gplay/release/google-services.json | 2 +- vector/src/main/AndroidManifest.xml | 5 + .../features/disclaimer/DisclaimerDialog.kt | 44 ++------- .../riotx/features/home/HomeActivity.kt | 9 +- .../features/login/LoginSplashFragment.kt | 20 +++- .../res/layout/dialog_disclaimer_content.xml | 17 +--- .../main/res/layout/fragment_login_splash.xml | 98 ++++--------------- vector/src/main/res/values/strings.xml | 7 ++ 11 files changed, 81 insertions(+), 158 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 861863e45f..a061826d66 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,28 +1,17 @@ -Changes in Riot.imX 0.91.6 (2020-XX-XX) +Changes in RiotX 0.23.0 (2020-08-05) =================================================== -Features ✨: - - +This is the very last version of RiotX, published on the PlayStore. -Improvements 🙌: - - +This branch will never be merged on develop. + +Features ✨: + - Inform user that the app will not be updated anymore (#1727) Bugfix 🐛: - Video calls are shown as a voice ones in the timeline (#1676) - Fix regression: not able to create a room without IS configured (#1679) -Translations 🗣: - - - -SDK API changes ⚠️: - - - -Build 🧱: - - - -Other changes: - - - Changes in Riot.imX 0.91.5 (2020-07-11) =================================================== diff --git a/vector/build.gradle b/vector/build.gradle index b743bb4401..323780a101 100644 --- a/vector/build.gradle +++ b/vector/build.gradle @@ -16,8 +16,8 @@ androidExtensions { // Note: 2 digits max for each value ext.versionMajor = 0 -ext.versionMinor = 91 -ext.versionPatch = 6 +ext.versionMinor = 23 +ext.versionPatch = 0 static def getGitTimestamp() { def cmd = 'git show -s --format=%ct' @@ -72,7 +72,7 @@ static def getGplayVersionSuffix() { if (gitBranchName() == "master") { return "" } else { - return "-dev" + return "" // "-dev" } } @@ -112,7 +112,7 @@ android { ndkVersion "21.3.6528147" defaultConfig { - applicationId "im.vector.app" + applicationId "im.vector.riotx" // Set to API 21: see #405 minSdkVersion 21 targetSdkVersion 29 @@ -183,7 +183,7 @@ android { buildTypes { debug { applicationIdSuffix ".debug" - resValue "string", "app_name", "Riot.imX dbg" + resValue "string", "app_name", "RiotX dbg" resValue "bool", "debug_mode", "true" buildConfigField "boolean", "LOW_PRIVACY_LOG_ENABLE", "false" @@ -192,7 +192,7 @@ android { } release { - resValue "string", "app_name", "Riot.imX" + resValue "string", "app_name", "RiotX" resValue "bool", "debug_mode", "false" buildConfigField "boolean", "LOW_PRIVACY_LOG_ENABLE", "false" diff --git a/vector/src/gplay/debug/google-services.json b/vector/src/gplay/debug/google-services.json index 713c1d4e03..185f7afb66 100644 --- a/vector/src/gplay/debug/google-services.json +++ b/vector/src/gplay/debug/google-services.json @@ -10,7 +10,7 @@ "client_info": { "mobilesdk_app_id": "1:912726360885:android:4ef8f3a0021e774d", "android_client_info": { - "package_name": "im.vector.app.debug" + "package_name": "im.vector.riotx.debug" } }, "oauth_client": [ diff --git a/vector/src/gplay/release/google-services.json b/vector/src/gplay/release/google-services.json index fb8f769f45..7ee7277e2a 100644 --- a/vector/src/gplay/release/google-services.json +++ b/vector/src/gplay/release/google-services.json @@ -10,7 +10,7 @@ "client_info": { "mobilesdk_app_id": "1:912726360885:android:4ef8f3a0021e774d", "android_client_info": { - "package_name": "im.vector.app" + "package_name": "im.vector.riotx" } }, "oauth_client": [ diff --git a/vector/src/main/AndroidManifest.xml b/vector/src/main/AndroidManifest.xml index 155c3bcd64..4eba3f99d0 100644 --- a/vector/src/main/AndroidManifest.xml +++ b/vector/src/main/AndroidManifest.xml @@ -13,6 +13,9 @@ + + + @@ -140,8 +143,10 @@ + (R.id.dialogDisclaimerContentLine2) - @Suppress("ConstantConditionIf") - if (BuildConfig.FLAVOR == "gplay") { - textView.setTextWithColoredPart(R.string.alpha_disclaimer_content_line_2_gplay, R.string.alpha_disclaimer_content_line_2_gplay_colored_part) - - textView.setOnClickListener { - openPlayStore(activity) + AlertDialog.Builder(activity) + .setView(dialogLayout) + .setCancelable(false) + .setPositiveButton(R.string.the_beta_is_over_get_element) { _, _ -> + openPlayStore(activity, "im.vector.app") } - } else { - textView.setText(R.string.alpha_disclaimer_content_line_2_fdroid) - } - - AlertDialog.Builder(activity) - .setView(dialogLayout) - .setCancelable(false) - .setPositiveButton(R.string._continue, null) - .show() - } + .setNegativeButton(R.string.later, null) + .show() } diff --git a/vector/src/main/java/im/vector/riotx/features/home/HomeActivity.kt b/vector/src/main/java/im/vector/riotx/features/home/HomeActivity.kt index 5bed5b1f78..210b75676b 100644 --- a/vector/src/main/java/im/vector/riotx/features/home/HomeActivity.kt +++ b/vector/src/main/java/im/vector/riotx/features/home/HomeActivity.kt @@ -69,7 +69,7 @@ class HomeActivity : VectorBaseActivity(), ToolbarConfigurable, UnknownDeviceDet @Inject lateinit var viewModelFactory: HomeActivityViewModel.Factory private val serverBackupStatusViewModel: ServerBackupStatusViewModel by viewModel() - @Inject lateinit var serverBackupviewModelFactory: ServerBackupStatusViewModel.Factory + @Inject lateinit var serverBackupviewModelFactory: ServerBackupStatusViewModel.Factory @Inject lateinit var activeSessionHolder: ActiveSessionHolder @Inject lateinit var vectorUncaughtExceptionHandler: VectorUncaughtExceptionHandler @@ -225,6 +225,8 @@ class HomeActivity : VectorBaseActivity(), ToolbarConfigurable, UnknownDeviceDet super.onDestroy() } + private var disclaimerShown = false + override fun onResume() { super.onResume() @@ -238,7 +240,10 @@ class HomeActivity : VectorBaseActivity(), ToolbarConfigurable, UnknownDeviceDet .setNegativeButton(R.string.no) { _, _ -> bugReporter.deleteCrashFile(this) } .show() } else { - showDisclaimerDialog(this) + if (!disclaimerShown) { + disclaimerShown = true + showDisclaimerDialog(this) + } } // Force remote backup state update to update the banner if needed diff --git a/vector/src/main/java/im/vector/riotx/features/login/LoginSplashFragment.kt b/vector/src/main/java/im/vector/riotx/features/login/LoginSplashFragment.kt index c860d02fec..83e60625ee 100644 --- a/vector/src/main/java/im/vector/riotx/features/login/LoginSplashFragment.kt +++ b/vector/src/main/java/im/vector/riotx/features/login/LoginSplashFragment.kt @@ -16,8 +16,14 @@ package im.vector.riotx.features.login +import android.content.ActivityNotFoundException +import android.content.Intent +import android.net.Uri import butterknife.OnClick +import im.vector.riotx.BuildConfig import im.vector.riotx.R +import im.vector.riotx.core.utils.openPlayStore +import im.vector.riotx.core.utils.toast import javax.inject.Inject /** @@ -29,7 +35,19 @@ class LoginSplashFragment @Inject constructor() : AbstractLoginFragment() { @OnClick(R.id.loginSplashSubmit) fun getStarted() { - loginViewModel.handle(LoginAction.PostViewEvent(LoginViewEvents.OpenServerSelection)) + openPlayStore(requireActivity(), "im.vector.app") + } + + @OnClick(R.id.loginSplashUninstall) + fun uninstall() { + @Suppress("DEPRECATION") + val intent = Intent(Intent.ACTION_UNINSTALL_PACKAGE) + intent.data = Uri.parse("package:" + BuildConfig.APPLICATION_ID) + try { + startActivity(intent) + } catch (anfe: ActivityNotFoundException) { + requireActivity().toast(R.string.error_no_external_application_found) + } } override fun resetViewModel() { diff --git a/vector/src/main/res/layout/dialog_disclaimer_content.xml b/vector/src/main/res/layout/dialog_disclaimer_content.xml index c45933eb40..1c60eea943 100644 --- a/vector/src/main/res/layout/dialog_disclaimer_content.xml +++ b/vector/src/main/res/layout/dialog_disclaimer_content.xml @@ -1,6 +1,5 @@ @@ -26,7 +25,7 @@ android:layout_marginTop="92dp" android:fontFamily="sans-serif" android:lineSpacingExtra="8sp" - android:text="@string/alpha_disclaimer_title" + android:text="@string/the_beta_is_over_title" android:textColor="@color/white" android:textSize="24sp" android:textStyle="normal" /> @@ -39,20 +38,8 @@ android:layout_marginStart="24dp" android:layout_marginTop="21dp" android:layout_marginEnd="24dp" - android:text="@string/alpha_disclaimer_content_line_1" + android:text="@string/the_beta_is_over_content" android:textColor="?riotx_text_primary" android:textSize="16sp" /> - - \ No newline at end of file diff --git a/vector/src/main/res/layout/fragment_login_splash.xml b/vector/src/main/res/layout/fragment_login_splash.xml index 44a81df539..00af230cc1 100644 --- a/vector/src/main/res/layout/fragment_login_splash.xml +++ b/vector/src/main/res/layout/fragment_login_splash.xml @@ -35,101 +35,41 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginTop="48dp" - android:text="@string/login_splash_title" + android:gravity="center_horizontal" + android:text="@string/the_beta_is_over_login_screen_content" android:textAppearance="@style/TextAppearance.Vector.Login.Title" android:transitionName="loginTitleTransition" - app:layout_constraintBottom_toTopOf="@+id/loginSplashText1" + app:layout_constraintBottom_toTopOf="@+id/loginSplashSubmit" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/loginSplashLogo" /> - - - - - - - - - - - - + app:layout_constraintTop_toBottomOf="@+id/loginSplashTitle" /> + + diff --git a/vector/src/main/res/values/strings.xml b/vector/src/main/res/values/strings.xml index be7602af51..ee9c1c8c4f 100644 --- a/vector/src/main/res/values/strings.xml +++ b/vector/src/main/res/values/strings.xml @@ -2552,4 +2552,11 @@ Not all features in Riot are implemented in RiotX yet. Main missing (and coming Revoke invite Revoke invite to %1$s? + + The beta is over! + Thank you for your contribution to test RiotX.\n\nRiotX will not be updated anymore from the PlayStore, you should properly sign out and then uninstall it.\n\nPlease install the new application Element! + Get Element + Uninstall RiotX + + RiotX is deprecated\n\nPlease install Element!