mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-29 05:04:54 +01:00
Usernames 1.01 Fast-Follow Part 1.
This commit is contained in:
@@ -4,6 +4,8 @@ import android.app.Activity;
|
||||
import android.content.ActivityNotFoundException;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.drawable.ColorDrawable;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Bundle;
|
||||
import android.text.SpannableStringBuilder;
|
||||
@@ -185,25 +187,20 @@ public final class RecipientBottomSheetDialogFragment extends BottomSheetDialogF
|
||||
: recipient.getDisplayName(requireContext());
|
||||
fullName.setVisibility(TextUtils.isEmpty(name) ? View.GONE : View.VISIBLE);
|
||||
SpannableStringBuilder nameBuilder = new SpannableStringBuilder(name);
|
||||
boolean appendedToName = false;
|
||||
if (recipient.showVerified()) {
|
||||
appendedToName = true;
|
||||
SpanUtil.appendCenteredImageSpan(nameBuilder, ContextUtil.requireDrawable(requireContext(), R.drawable.ic_official_28), 28, 28);
|
||||
SpanUtil.appendCenteredImageSpanWithoutSpace(nameBuilder, new ColorDrawable(Color.TRANSPARENT), 8, 8);
|
||||
SpanUtil.appendCenteredImageSpanWithoutSpace(nameBuilder, ContextUtil.requireDrawable(requireContext(), R.drawable.ic_official_28), 28, 28);
|
||||
} else if (recipient.isSystemContact()) {
|
||||
appendedToName = true;
|
||||
Drawable drawable = ContextUtil.requireDrawable(requireContext(), R.drawable.symbol_person_circle_24);
|
||||
drawable.setTint(ContextCompat.getColor(requireContext(), R.color.signal_colorOnSurface));
|
||||
SpanUtil.appendCenteredImageSpan(nameBuilder, drawable, 24, 24);
|
||||
SpanUtil.appendCenteredImageSpanWithoutSpace(nameBuilder, new ColorDrawable(Color.TRANSPARENT), 8, 8);
|
||||
SpanUtil.appendCenteredImageSpanWithoutSpace(nameBuilder, drawable, 24, 24);
|
||||
}
|
||||
|
||||
if (!recipient.isSelf() && recipient.isIndividual()) {
|
||||
Drawable drawable = ContextUtil.requireDrawable(requireContext(), R.drawable.symbol_chevron_right_24);
|
||||
drawable.setBounds(0, 0, (int) DimensionUnit.DP.toPixels(24), (int) DimensionUnit.DP.toPixels(24));
|
||||
drawable.setTint(ContextCompat.getColor(requireContext(), R.color.signal_colorOutline));
|
||||
|
||||
if (!appendedToName) {
|
||||
nameBuilder.append(" ");
|
||||
}
|
||||
nameBuilder.append(SpanUtil.buildCenteredImageSpan(drawable));
|
||||
|
||||
fullName.setText(nameBuilder);
|
||||
|
||||
@@ -66,6 +66,7 @@ import androidx.navigation.compose.composable
|
||||
import androidx.navigation.compose.dialog
|
||||
import androidx.navigation.compose.rememberNavController
|
||||
import androidx.navigation.navArgument
|
||||
import com.google.accompanist.permissions.ExperimentalPermissionsApi
|
||||
import kotlinx.coroutines.launch
|
||||
import org.signal.core.ui.Animations.navHostSlideInTransition
|
||||
import org.signal.core.ui.Animations.navHostSlideOutTransition
|
||||
@@ -81,6 +82,7 @@ import org.thoughtcrime.securesms.PassphraseRequiredActivity
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.components.settings.app.usernamelinks.main.UsernameQrScannerActivity
|
||||
import org.thoughtcrime.securesms.invites.InviteActions
|
||||
import org.thoughtcrime.securesms.permissions.compose.Permissions
|
||||
import org.thoughtcrime.securesms.phonenumbers.PhoneNumberVisualTransformation
|
||||
import org.thoughtcrime.securesms.recipients.Recipient
|
||||
import org.thoughtcrime.securesms.recipients.RecipientId
|
||||
@@ -103,6 +105,7 @@ class FindByActivity : PassphraseRequiredActivity() {
|
||||
FindByViewModel(FindByMode.valueOf(intent.getStringExtra(MODE)!!))
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalPermissionsApi::class)
|
||||
override fun onCreate(savedInstanceState: Bundle?, ready: Boolean) {
|
||||
val qrScanLauncher: ActivityResultLauncher<Unit> = registerForActivityResult(UsernameQrScannerActivity.Contract()) { recipientId ->
|
||||
if (recipientId != null) {
|
||||
@@ -136,6 +139,14 @@ class FindByActivity : PassphraseRequiredActivity() {
|
||||
navigationIconPainter = painterResource(id = R.drawable.symbol_arrow_left_24)
|
||||
) {
|
||||
val context = LocalContext.current
|
||||
|
||||
val cameraPermissionController = Permissions.cameraPermissionHandler(
|
||||
rationale = stringResource(id = R.string.PaymentsTransferFragment__to_scan_a_qr_code_signal_needs_access_to_the_camera),
|
||||
onPermissionGranted = {
|
||||
qrScanLauncher.launch(Unit)
|
||||
}
|
||||
)
|
||||
|
||||
Content(
|
||||
paddingValues = it,
|
||||
state = state,
|
||||
@@ -157,7 +168,7 @@ class FindByActivity : PassphraseRequiredActivity() {
|
||||
navController.navigate("select-country-prefix")
|
||||
},
|
||||
onQrCodeScanClicked = {
|
||||
qrScanLauncher.launch(Unit)
|
||||
cameraPermissionController.request()
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user