mirror of
https://github.com/vector-im/riotX-android
synced 2025-10-06 08:12:46 +02:00
Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
3bfe604dbb |
23
CHANGES.md
23
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 🐛:
|
Bugfix 🐛:
|
||||||
- Video calls are shown as a voice ones in the timeline (#1676)
|
- Video calls are shown as a voice ones in the timeline (#1676)
|
||||||
- Fix regression: not able to create a room without IS configured (#1679)
|
- 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)
|
Changes in Riot.imX 0.91.5 (2020-07-11)
|
||||||
===================================================
|
===================================================
|
||||||
|
|
||||||
|
@@ -16,8 +16,8 @@ androidExtensions {
|
|||||||
|
|
||||||
// Note: 2 digits max for each value
|
// Note: 2 digits max for each value
|
||||||
ext.versionMajor = 0
|
ext.versionMajor = 0
|
||||||
ext.versionMinor = 91
|
ext.versionMinor = 23
|
||||||
ext.versionPatch = 6
|
ext.versionPatch = 0
|
||||||
|
|
||||||
static def getGitTimestamp() {
|
static def getGitTimestamp() {
|
||||||
def cmd = 'git show -s --format=%ct'
|
def cmd = 'git show -s --format=%ct'
|
||||||
@@ -72,7 +72,7 @@ static def getGplayVersionSuffix() {
|
|||||||
if (gitBranchName() == "master") {
|
if (gitBranchName() == "master") {
|
||||||
return ""
|
return ""
|
||||||
} else {
|
} else {
|
||||||
return "-dev"
|
return "" // "-dev"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -112,7 +112,7 @@ android {
|
|||||||
ndkVersion "21.3.6528147"
|
ndkVersion "21.3.6528147"
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
applicationId "im.vector.app"
|
applicationId "im.vector.riotx"
|
||||||
// Set to API 21: see #405
|
// Set to API 21: see #405
|
||||||
minSdkVersion 21
|
minSdkVersion 21
|
||||||
targetSdkVersion 29
|
targetSdkVersion 29
|
||||||
@@ -183,7 +183,7 @@ android {
|
|||||||
buildTypes {
|
buildTypes {
|
||||||
debug {
|
debug {
|
||||||
applicationIdSuffix ".debug"
|
applicationIdSuffix ".debug"
|
||||||
resValue "string", "app_name", "Riot.imX dbg"
|
resValue "string", "app_name", "RiotX dbg"
|
||||||
|
|
||||||
resValue "bool", "debug_mode", "true"
|
resValue "bool", "debug_mode", "true"
|
||||||
buildConfigField "boolean", "LOW_PRIVACY_LOG_ENABLE", "false"
|
buildConfigField "boolean", "LOW_PRIVACY_LOG_ENABLE", "false"
|
||||||
@@ -192,7 +192,7 @@ android {
|
|||||||
}
|
}
|
||||||
|
|
||||||
release {
|
release {
|
||||||
resValue "string", "app_name", "Riot.imX"
|
resValue "string", "app_name", "RiotX"
|
||||||
|
|
||||||
resValue "bool", "debug_mode", "false"
|
resValue "bool", "debug_mode", "false"
|
||||||
buildConfigField "boolean", "LOW_PRIVACY_LOG_ENABLE", "false"
|
buildConfigField "boolean", "LOW_PRIVACY_LOG_ENABLE", "false"
|
||||||
|
@@ -10,7 +10,7 @@
|
|||||||
"client_info": {
|
"client_info": {
|
||||||
"mobilesdk_app_id": "1:912726360885:android:4ef8f3a0021e774d",
|
"mobilesdk_app_id": "1:912726360885:android:4ef8f3a0021e774d",
|
||||||
"android_client_info": {
|
"android_client_info": {
|
||||||
"package_name": "im.vector.app.debug"
|
"package_name": "im.vector.riotx.debug"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"oauth_client": [
|
"oauth_client": [
|
||||||
|
@@ -10,7 +10,7 @@
|
|||||||
"client_info": {
|
"client_info": {
|
||||||
"mobilesdk_app_id": "1:912726360885:android:4ef8f3a0021e774d",
|
"mobilesdk_app_id": "1:912726360885:android:4ef8f3a0021e774d",
|
||||||
"android_client_info": {
|
"android_client_info": {
|
||||||
"package_name": "im.vector.app"
|
"package_name": "im.vector.riotx"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"oauth_client": [
|
"oauth_client": [
|
||||||
|
@@ -13,6 +13,9 @@
|
|||||||
<uses-permission android:name="android.permission.RECORD_AUDIO" />
|
<uses-permission android:name="android.permission.RECORD_AUDIO" />
|
||||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||||
|
|
||||||
|
<!-- To be able to delete RiotX -->
|
||||||
|
<uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES" />
|
||||||
|
|
||||||
<!-- Call feature -->
|
<!-- Call feature -->
|
||||||
<uses-permission android:name="android.permission.MANAGE_OWN_CALLS" />
|
<uses-permission android:name="android.permission.MANAGE_OWN_CALLS" />
|
||||||
<!-- Commented because Google PlayStore does not like we add permission if we are not requiring it. And it was added for future use -->
|
<!-- Commented because Google PlayStore does not like we add permission if we are not requiring it. And it was added for future use -->
|
||||||
@@ -140,8 +143,10 @@
|
|||||||
</intent-filter>
|
</intent-filter>
|
||||||
</activity>
|
</activity>
|
||||||
|
|
||||||
|
<!-- Disable incoming share -->
|
||||||
<activity
|
<activity
|
||||||
android:name=".features.share.IncomingShareActivity"
|
android:name=".features.share.IncomingShareActivity"
|
||||||
|
android:enabled="false"
|
||||||
android:parentActivityName=".features.home.HomeActivity">
|
android:parentActivityName=".features.home.HomeActivity">
|
||||||
<meta-data
|
<meta-data
|
||||||
android:name="android.support.PARENT_ACTIVITY"
|
android:name="android.support.PARENT_ACTIVITY"
|
||||||
|
@@ -17,47 +17,19 @@
|
|||||||
package im.vector.riotx.features.disclaimer
|
package im.vector.riotx.features.disclaimer
|
||||||
|
|
||||||
import android.app.Activity
|
import android.app.Activity
|
||||||
import androidx.preference.PreferenceManager
|
|
||||||
import android.view.ViewGroup
|
|
||||||
import android.widget.TextView
|
|
||||||
import androidx.appcompat.app.AlertDialog
|
import androidx.appcompat.app.AlertDialog
|
||||||
import androidx.core.content.edit
|
|
||||||
import im.vector.riotx.BuildConfig
|
|
||||||
import im.vector.riotx.R
|
import im.vector.riotx.R
|
||||||
import im.vector.riotx.core.extensions.setTextWithColoredPart
|
|
||||||
import im.vector.riotx.core.utils.openPlayStore
|
import im.vector.riotx.core.utils.openPlayStore
|
||||||
|
|
||||||
// Increase this value to show again the disclaimer dialog after an upgrade of the application
|
|
||||||
private const val CURRENT_DISCLAIMER_VALUE = 1
|
|
||||||
|
|
||||||
private const val SHARED_PREF_KEY = "LAST_DISCLAIMER_VERSION_VALUE"
|
|
||||||
|
|
||||||
fun showDisclaimerDialog(activity: Activity) {
|
fun showDisclaimerDialog(activity: Activity) {
|
||||||
val sharedPrefs = PreferenceManager.getDefaultSharedPreferences(activity)
|
val dialogLayout = activity.layoutInflater.inflate(R.layout.dialog_disclaimer_content, null)
|
||||||
|
|
||||||
if (sharedPrefs.getInt(SHARED_PREF_KEY, 0) < CURRENT_DISCLAIMER_VALUE) {
|
AlertDialog.Builder(activity)
|
||||||
sharedPrefs.edit {
|
.setView(dialogLayout)
|
||||||
putInt(SHARED_PREF_KEY, CURRENT_DISCLAIMER_VALUE)
|
.setCancelable(false)
|
||||||
}
|
.setPositiveButton(R.string.the_beta_is_over_get_element) { _, _ ->
|
||||||
|
openPlayStore(activity, "im.vector.app")
|
||||||
val dialogLayout = activity.layoutInflater.inflate(R.layout.dialog_disclaimer_content, null)
|
|
||||||
|
|
||||||
val textView = (dialogLayout as ViewGroup).findViewById<TextView>(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)
|
|
||||||
}
|
}
|
||||||
} else {
|
.setNegativeButton(R.string.later, null)
|
||||||
textView.setText(R.string.alpha_disclaimer_content_line_2_fdroid)
|
.show()
|
||||||
}
|
|
||||||
|
|
||||||
AlertDialog.Builder(activity)
|
|
||||||
.setView(dialogLayout)
|
|
||||||
.setCancelable(false)
|
|
||||||
.setPositiveButton(R.string._continue, null)
|
|
||||||
.show()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@@ -69,7 +69,7 @@ class HomeActivity : VectorBaseActivity(), ToolbarConfigurable, UnknownDeviceDet
|
|||||||
@Inject lateinit var viewModelFactory: HomeActivityViewModel.Factory
|
@Inject lateinit var viewModelFactory: HomeActivityViewModel.Factory
|
||||||
|
|
||||||
private val serverBackupStatusViewModel: ServerBackupStatusViewModel by viewModel()
|
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 activeSessionHolder: ActiveSessionHolder
|
||||||
@Inject lateinit var vectorUncaughtExceptionHandler: VectorUncaughtExceptionHandler
|
@Inject lateinit var vectorUncaughtExceptionHandler: VectorUncaughtExceptionHandler
|
||||||
@@ -225,6 +225,8 @@ class HomeActivity : VectorBaseActivity(), ToolbarConfigurable, UnknownDeviceDet
|
|||||||
super.onDestroy()
|
super.onDestroy()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private var disclaimerShown = false
|
||||||
|
|
||||||
override fun onResume() {
|
override fun onResume() {
|
||||||
super.onResume()
|
super.onResume()
|
||||||
|
|
||||||
@@ -238,7 +240,10 @@ class HomeActivity : VectorBaseActivity(), ToolbarConfigurable, UnknownDeviceDet
|
|||||||
.setNegativeButton(R.string.no) { _, _ -> bugReporter.deleteCrashFile(this) }
|
.setNegativeButton(R.string.no) { _, _ -> bugReporter.deleteCrashFile(this) }
|
||||||
.show()
|
.show()
|
||||||
} else {
|
} else {
|
||||||
showDisclaimerDialog(this)
|
if (!disclaimerShown) {
|
||||||
|
disclaimerShown = true
|
||||||
|
showDisclaimerDialog(this)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Force remote backup state update to update the banner if needed
|
// Force remote backup state update to update the banner if needed
|
||||||
|
@@ -16,8 +16,14 @@
|
|||||||
|
|
||||||
package im.vector.riotx.features.login
|
package im.vector.riotx.features.login
|
||||||
|
|
||||||
|
import android.content.ActivityNotFoundException
|
||||||
|
import android.content.Intent
|
||||||
|
import android.net.Uri
|
||||||
import butterknife.OnClick
|
import butterknife.OnClick
|
||||||
|
import im.vector.riotx.BuildConfig
|
||||||
import im.vector.riotx.R
|
import im.vector.riotx.R
|
||||||
|
import im.vector.riotx.core.utils.openPlayStore
|
||||||
|
import im.vector.riotx.core.utils.toast
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -29,7 +35,19 @@ class LoginSplashFragment @Inject constructor() : AbstractLoginFragment() {
|
|||||||
|
|
||||||
@OnClick(R.id.loginSplashSubmit)
|
@OnClick(R.id.loginSplashSubmit)
|
||||||
fun getStarted() {
|
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() {
|
override fun resetViewModel() {
|
||||||
|
@@ -1,6 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
@@ -26,7 +25,7 @@
|
|||||||
android:layout_marginTop="92dp"
|
android:layout_marginTop="92dp"
|
||||||
android:fontFamily="sans-serif"
|
android:fontFamily="sans-serif"
|
||||||
android:lineSpacingExtra="8sp"
|
android:lineSpacingExtra="8sp"
|
||||||
android:text="@string/alpha_disclaimer_title"
|
android:text="@string/the_beta_is_over_title"
|
||||||
android:textColor="@color/white"
|
android:textColor="@color/white"
|
||||||
android:textSize="24sp"
|
android:textSize="24sp"
|
||||||
android:textStyle="normal" />
|
android:textStyle="normal" />
|
||||||
@@ -39,20 +38,8 @@
|
|||||||
android:layout_marginStart="24dp"
|
android:layout_marginStart="24dp"
|
||||||
android:layout_marginTop="21dp"
|
android:layout_marginTop="21dp"
|
||||||
android:layout_marginEnd="24dp"
|
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:textColor="?riotx_text_primary"
|
||||||
android:textSize="16sp" />
|
android:textSize="16sp" />
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/dialogDisclaimerContentLine2"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginStart="24dp"
|
|
||||||
android:layout_marginTop="21dp"
|
|
||||||
android:layout_marginEnd="24dp"
|
|
||||||
android:layout_marginBottom="21dp"
|
|
||||||
android:textColor="?riotx_text_primary"
|
|
||||||
android:textSize="16sp"
|
|
||||||
tools:text="@string/alpha_disclaimer_content_line_2_gplay" />
|
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
@@ -35,101 +35,41 @@
|
|||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="48dp"
|
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:textAppearance="@style/TextAppearance.Vector.Login.Title"
|
||||||
android:transitionName="loginTitleTransition"
|
android:transitionName="loginTitleTransition"
|
||||||
app:layout_constraintBottom_toTopOf="@+id/loginSplashText1"
|
app:layout_constraintBottom_toTopOf="@+id/loginSplashSubmit"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/loginSplashLogo" />
|
app:layout_constraintTop_toBottomOf="@+id/loginSplashLogo" />
|
||||||
|
|
||||||
<!-- TODO check relative dimension -->
|
|
||||||
<ImageView
|
|
||||||
android:id="@+id/loginSplashPicto1"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginStart="2dp"
|
|
||||||
android:importantForAccessibility="no"
|
|
||||||
android:src="@drawable/ic_login_splash_message_circle"
|
|
||||||
android:tint="?vctr_notice_secondary"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toTopOf="@+id/loginSplashText1" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/loginSplashText1"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginStart="36dp"
|
|
||||||
android:layout_marginTop="32dp"
|
|
||||||
android:gravity="start"
|
|
||||||
android:text="@string/login_splash_text1"
|
|
||||||
android:textAppearance="@style/TextAppearance.Vector.Login.Text"
|
|
||||||
app:layout_constraintBottom_toTopOf="@+id/loginSplashText2"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toBottomOf="@+id/loginSplashTitle" />
|
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:id="@+id/loginSplashPicto2"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginStart="2dp"
|
|
||||||
android:importantForAccessibility="no"
|
|
||||||
android:src="@drawable/ic_login_splash_lock"
|
|
||||||
android:tint="?vctr_notice_secondary"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toTopOf="@+id/loginSplashText2" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/loginSplashText2"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginStart="36dp"
|
|
||||||
android:layout_marginTop="16dp"
|
|
||||||
android:gravity="start"
|
|
||||||
android:text="@string/login_splash_text2"
|
|
||||||
android:textAppearance="@style/TextAppearance.Vector.Login.Text"
|
|
||||||
app:layout_constraintBottom_toTopOf="@id/loginSplashText3"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toBottomOf="@+id/loginSplashText1" />
|
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:id="@+id/loginSplashPicto3"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:importantForAccessibility="no"
|
|
||||||
android:src="@drawable/ic_login_splash_sliders"
|
|
||||||
android:tint="?vctr_notice_secondary"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toTopOf="@+id/loginSplashText3" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/loginSplashText3"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginStart="36dp"
|
|
||||||
android:layout_marginTop="16dp"
|
|
||||||
android:gravity="start"
|
|
||||||
android:text="@string/login_splash_text3"
|
|
||||||
android:textAppearance="@style/TextAppearance.Vector.Login.Text"
|
|
||||||
app:layout_constraintBottom_toTopOf="@+id/loginSplashSubmit"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toBottomOf="@+id/loginSplashText2" />
|
|
||||||
|
|
||||||
<com.google.android.material.button.MaterialButton
|
<com.google.android.material.button.MaterialButton
|
||||||
android:id="@+id/loginSplashSubmit"
|
android:id="@+id/loginSplashSubmit"
|
||||||
style="@style/Style.Vector.Login.Button"
|
style="@style/Style.Vector.Login.Button"
|
||||||
android:layout_width="0dp"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="48dp"
|
android:layout_marginTop="48dp"
|
||||||
android:text="@string/login_splash_submit"
|
android:text="@string/the_beta_is_over_get_element"
|
||||||
android:transitionName="loginSubmitTransition"
|
android:transitionName="loginSubmitTransition"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/loginSplashText3" />
|
app:layout_constraintTop_toBottomOf="@+id/loginSplashTitle" />
|
||||||
|
|
||||||
|
<com.google.android.material.button.MaterialButton
|
||||||
|
android:id="@+id/loginSplashUninstall"
|
||||||
|
style="@style/Style.Vector.Login.Button.Text"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="24dp"
|
||||||
|
android:text="@string/the_beta_is_over_uninstall"
|
||||||
|
android:transitionName="loginSubmitTransition"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/loginSplashSubmit" />
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
|
@@ -2552,4 +2552,11 @@ Not all features in Riot are implemented in RiotX yet. Main missing (and coming
|
|||||||
|
|
||||||
<string name="three_pid_revoke_invite_dialog_title">Revoke invite</string>
|
<string name="three_pid_revoke_invite_dialog_title">Revoke invite</string>
|
||||||
<string name="three_pid_revoke_invite_dialog_content">Revoke invite to %1$s?</string>
|
<string name="three_pid_revoke_invite_dialog_content">Revoke invite to %1$s?</string>
|
||||||
|
|
||||||
|
<string name="the_beta_is_over_title">The beta is over!</string>
|
||||||
|
<string name="the_beta_is_over_content">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!</string>
|
||||||
|
<string name="the_beta_is_over_get_element">Get Element</string>
|
||||||
|
<string name="the_beta_is_over_uninstall">Uninstall RiotX</string>
|
||||||
|
|
||||||
|
<string name="the_beta_is_over_login_screen_content">RiotX is deprecated\n\nPlease install Element!</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
Reference in New Issue
Block a user