Enable key transparency for internal users.

This commit is contained in:
Michelle Tang
2026-02-02 17:46:19 -05:00
parent e9f2580bb8
commit 1ddde6ab92
9 changed files with 45 additions and 38 deletions

View File

@@ -18,7 +18,9 @@ import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import androidx.core.os.bundleOf
import androidx.fragment.app.FragmentManager
import androidx.fragment.app.setFragmentResult
import org.signal.core.ui.compose.BottomSheets
import org.signal.core.ui.compose.Buttons
import org.signal.core.ui.compose.DayNightPreviews
@@ -27,6 +29,7 @@ import org.thoughtcrime.securesms.R
import org.thoughtcrime.securesms.compose.ComposeBottomSheetDialogFragment
import org.thoughtcrime.securesms.keyvalue.SignalStore
import org.thoughtcrime.securesms.util.BottomSheetUtil
import org.thoughtcrime.securesms.util.CommunicationActions
/**
* Education sheet explaining that conversations now have auto verification
@@ -37,6 +40,8 @@ class VerifyAutomaticallyEducationSheet : ComposeBottomSheetDialogFragment() {
companion object {
const val RESULT_KEY = "verify_result_key"
@JvmStatic
fun show(fragmentManager: FragmentManager) {
VerifyAutomaticallyEducationSheet().show(fragmentManager, BottomSheetUtil.STANDARD_BOTTOM_SHEET_FRAGMENT_TAG)
@@ -51,8 +56,13 @@ class VerifyAutomaticallyEducationSheet : ComposeBottomSheetDialogFragment() {
@Composable
override fun SheetContent() {
VerifyEducationSheet(
onVerify = {}, // TODO(michelle): Plug in to verify fragment
onLearnMore = {} // TODO(michelle): Update with support url
onVerify = {
setFragmentResult(RESULT_KEY, bundleOf(RESULT_KEY to true))
dismissAllowingStateLoss()
},
onLearnMore = {
CommunicationActions.openBrowserLink(requireContext(), getString(R.string.verify_display_fragment__link))
}
)
}
}

View File

@@ -75,7 +75,7 @@ class VerifyDisplayFragment : Fragment() {
updateVerifyButton(requireArguments().getBoolean(VERIFIED_STATE, false), false)
binding.automaticVerification.visible = RemoteConfig.keyTransparency && SignalStore.settings.automaticVerificationEnabled
binding.automaticVerification.visible = RemoteConfig.internalUser && SignalStore.settings.automaticVerificationEnabled
binding.safetyQrView.verifyButton.setOnClickListener { updateVerifyButton(!currentVerifiedState, true) }
binding.toolbar.setNavigationOnClickListener { requireActivity().onBackPressed() }
binding.toolbar.setTitle(R.string.AndroidManifest__verify_safety_number)
@@ -119,18 +119,22 @@ class VerifyDisplayFragment : Fragment() {
}
private fun animateStatus(status: AutomaticVerificationStatus) {
binding.autoVerifyContainer.animate()
.alpha(0f)
.setDuration(FADE_TIME)
.withEndAction {
updateStatus(status)
if (status == AutomaticVerificationStatus.NONE || status == AutomaticVerificationStatus.UNAVAILABLE_PERMANENT) {
updateStatus(status)
} else {
binding.autoVerifyContainer.animate()
.alpha(0f)
.setDuration(FADE_TIME)
.withEndAction {
updateStatus(status)
binding.autoVerifyContainer.animate()
.alpha(1f)
.setDuration(FADE_TIME)
.start()
}
.start()
binding.autoVerifyContainer.animate()
.alpha(1f)
.setDuration(FADE_TIME)
.start()
}
.start()
}
}
private fun updateStatus(status: AutomaticVerificationStatus) {

View File

@@ -53,7 +53,7 @@ class VerifySafetyNumberViewModel(
}
private fun checkAutomaticVerificationEligibility() {
if (recipient.get().e164.isEmpty || recipient.get().aci.isEmpty) {
if (recipient.get().e164.isEmpty || recipient.get().aci.isEmpty || SignalStore.misc.hasKeyTransparencyFailure) {
automaticVerificationLiveData.postValue(AutomaticVerificationStatus.UNAVAILABLE_PERMANENT)
}
}