mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-08-04 20:34:14 +01:00
Update unregistered UI for linked devices.
This commit is contained in:
committed by
Alex Hart
parent
9be6f488c4
commit
cd5ead4981
@@ -38,26 +38,36 @@ class UnauthorizedBanner(val context: Context) : Banner<Unit>() {
|
||||
|
||||
@Composable
|
||||
override fun DisplayBanner(model: Unit, contentPadding: PaddingValues) {
|
||||
Banner(contentPadding)
|
||||
Banner(contentPadding, SignalStore.account.isLinkedDevice)
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
private fun Banner(contentPadding: PaddingValues) {
|
||||
private fun Banner(contentPadding: PaddingValues, isLinkedDevice: Boolean) {
|
||||
val context = LocalContext.current
|
||||
|
||||
DefaultBanner(
|
||||
title = null,
|
||||
body = stringResource(id = R.string.UnauthorizedReminder_this_is_likely_because_you_registered_your_phone_number_with_Signal_on_a_different_device),
|
||||
body = stringResource(
|
||||
id = if (isLinkedDevice) {
|
||||
R.string.UnauthorizedReminder_this_device_is_no_longer_linked_relink_to_continue_messaging
|
||||
} else {
|
||||
R.string.UnauthorizedReminder_this_is_likely_because_you_registered_your_phone_number_with_Signal_on_a_different_device
|
||||
}
|
||||
),
|
||||
importance = Importance.ERROR,
|
||||
actions = listOf(
|
||||
Action(R.string.UnauthorizedReminder_reregister_action) {
|
||||
Action(if (isLinkedDevice) R.string.UnauthorizedReminder_relink_action else R.string.UnauthorizedReminder_reregister_action) {
|
||||
if (SignalStore.misc.isOldDeviceTransferLocked) {
|
||||
SignalStore.misc.isOldDeviceTransferLocked = false
|
||||
DeviceTransferBlockingInterceptor.getInstance().unblockNetwork()
|
||||
}
|
||||
|
||||
val registrationIntent = RegistrationActivity.newIntentForReRegistration(context)
|
||||
val registrationIntent = if (isLinkedDevice) {
|
||||
RegistrationActivity.newIntentForReLinkDevice(context)
|
||||
} else {
|
||||
RegistrationActivity.newIntentForReRegistration(context)
|
||||
}
|
||||
context.startActivity(registrationIntent)
|
||||
}
|
||||
),
|
||||
@@ -69,6 +79,6 @@ private fun Banner(contentPadding: PaddingValues) {
|
||||
@Composable
|
||||
private fun BannerPreview() {
|
||||
Previews.Preview {
|
||||
Banner(PaddingValues(0.dp))
|
||||
Banner(PaddingValues(0.dp), isLinkedDevice = false)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4763,6 +4763,10 @@ class ConversationFragment :
|
||||
startActivity(RegistrationActivity.newIntentForReRegistration(requireContext()))
|
||||
}
|
||||
|
||||
override fun onReLinkDeviceClicked() {
|
||||
startActivity(RegistrationActivity.newIntentForReLinkDevice(requireContext()))
|
||||
}
|
||||
|
||||
override fun onCancelGroupRequestClicked() {
|
||||
conversationGroupViewModel
|
||||
.cancelJoinRequest()
|
||||
|
||||
@@ -18,6 +18,7 @@ import com.google.android.material.button.MaterialButton
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import org.signal.core.util.logging.Log
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore
|
||||
import org.thoughtcrime.securesms.messagerequests.MessageRequestState
|
||||
import org.thoughtcrime.securesms.messagerequests.MessageRequestsBottomView
|
||||
import org.thoughtcrime.securesms.recipients.Recipient
|
||||
@@ -69,13 +70,23 @@ class DisabledInputView @JvmOverloads constructor(
|
||||
val message = findViewById<TextView>(R.id.logged_out_message)
|
||||
val actionButton = findViewById<MaterialButton>(R.id.logged_out_button)
|
||||
|
||||
message.setText(if (clientExpired) R.string.ExpiredBuildReminder_this_version_of_signal_has_expired else R.string.UnauthorizedReminder_this_is_likely_because_you_registered_your_phone_number_with_Signal_on_a_different_device)
|
||||
actionButton.setText(if (clientExpired) R.string.ConversationFragment__update_build else R.string.ConversationFragment__reregister_signal)
|
||||
actionButton.setOnClickListener {
|
||||
if (clientExpired) {
|
||||
listener?.onUpdateAppClicked()
|
||||
} else {
|
||||
listener?.onReRegisterClicked()
|
||||
when {
|
||||
clientExpired -> {
|
||||
message.setText(R.string.ExpiredBuildReminder_this_version_of_signal_has_expired)
|
||||
actionButton.setText(R.string.ConversationFragment__update_build)
|
||||
actionButton.setOnClickListener { listener?.onUpdateAppClicked() }
|
||||
}
|
||||
|
||||
unauthorized && SignalStore.account.isLinkedDevice -> {
|
||||
message.setText(R.string.UnauthorizedReminder_this_device_is_no_longer_linked_relink_to_continue_messaging)
|
||||
actionButton.setText(R.string.ConversationFragment__relink_signal)
|
||||
actionButton.setOnClickListener { listener?.onReLinkDeviceClicked() }
|
||||
}
|
||||
|
||||
else -> {
|
||||
message.setText(R.string.UnauthorizedReminder_this_is_likely_because_you_registered_your_phone_number_with_Signal_on_a_different_device)
|
||||
actionButton.setText(R.string.ConversationFragment__reregister_signal)
|
||||
actionButton.setOnClickListener { listener?.onReRegisterClicked() }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -275,6 +286,7 @@ class DisabledInputView @JvmOverloads constructor(
|
||||
interface Listener {
|
||||
fun onUpdateAppClicked()
|
||||
fun onReRegisterClicked()
|
||||
fun onReLinkDeviceClicked()
|
||||
fun onCancelGroupRequestClicked()
|
||||
fun onShowAdminsBottomSheetDialog()
|
||||
fun onAcceptMessageRequestClicked()
|
||||
|
||||
@@ -103,5 +103,14 @@ class RegistrationActivity : BaseActivity() {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun newIntentForReLinkDevice(context: Context): Intent {
|
||||
return if (Environment.USE_NEW_REGISTRATION) {
|
||||
org.signal.registration.RegistrationActivity.createIntent(context, MainActivity.clearTop(context))
|
||||
} else {
|
||||
Intent(context, RegistrationActivity::class.java)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package org.thoughtcrime.securesms.util;
|
||||
import android.Manifest;
|
||||
import android.app.PendingIntent;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.net.Uri;
|
||||
@@ -885,10 +886,14 @@ public class TextSecurePreferences {
|
||||
return;
|
||||
}
|
||||
|
||||
Intent registrationIntent = SignalStore.account().isLinkedDevice() ? RegistrationActivity.newIntentForReLinkDevice(context)
|
||||
: RegistrationActivity.newIntentForReRegistration(context);
|
||||
|
||||
PendingIntent reRegistrationIntent = PendingIntent.getActivity(context,
|
||||
0,
|
||||
RegistrationActivity.newIntentForReRegistration(context),
|
||||
registrationIntent,
|
||||
PendingIntent.FLAG_UPDATE_CURRENT | PendingIntentFlags.immutable());
|
||||
|
||||
final NotificationCompat.Builder builder = new NotificationCompat.Builder(context, NotificationChannels.getInstance().FAILURES)
|
||||
.setSmallIcon(R.drawable.ic_signal_logo_large)
|
||||
.setContentText(context.getString(R.string.LoggedOutNotification_you_have_been_logged_out))
|
||||
|
||||
@@ -617,6 +617,8 @@
|
||||
<string name="ConversationFragment__update_build">Update Signal</string>
|
||||
<!-- Action shown to allow a user to re-register as they are no longer registered -->
|
||||
<string name="ConversationFragment__reregister_signal">Re-register Signal</string>
|
||||
<!-- Action shown in the conversation input area to allow a user to re-link this device as it is no longer linked -->
|
||||
<string name="ConversationFragment__relink_signal">Re-link</string>
|
||||
<!-- Label for a button displayed in the conversation toolbar to return to the previous screen. -->
|
||||
<string name="ConversationFragment__content_description_back_button">Navigate back.</string>
|
||||
<!-- Label for a button displayed in the conversation toolbar to open the main screen of the app. -->
|
||||
@@ -3492,6 +3494,10 @@
|
||||
<string name="UnauthorizedReminder_this_is_likely_because_you_registered_your_phone_number_with_Signal_on_a_different_device">This device is no longer registered. This is likely because you registered your phone number with Signal on a different device.</string>
|
||||
<!-- Action in reminder banner that will take user to re-register -->
|
||||
<string name="UnauthorizedReminder_reregister_action">Re-register device</string>
|
||||
<!-- Message shown in a reminder banner when this linked device is no longer linked to a primary device -->
|
||||
<string name="UnauthorizedReminder_this_device_is_no_longer_linked_relink_to_continue_messaging">This device is no longer linked. Re-link Signal with your phone to continue messaging.</string>
|
||||
<!-- Action in reminder banner that will take the user to re-link this device -->
|
||||
<string name="UnauthorizedReminder_relink_action">Re-link device</string>
|
||||
|
||||
<!-- Push notification when the app is forcibly logged out by the server. -->
|
||||
<string name="LoggedOutNotification_you_have_been_logged_out">You have been logged out of Signal on this device.</string>
|
||||
|
||||
Reference in New Issue
Block a user