Implement new Safety Number Changes bottom sheeet.

This commit is contained in:
Alex Hart
2022-07-11 12:54:30 -03:00
parent b0dc7fe6df
commit 7a0f4fafe2
42 changed files with 1787 additions and 121 deletions

View File

@@ -3,6 +3,7 @@ package org.thoughtcrime.securesms.components
import android.content.DialogInterface
import android.os.Bundle
import android.view.View
import androidx.activity.OnBackPressedCallback
import androidx.fragment.app.DialogFragment
import androidx.fragment.app.Fragment
import org.thoughtcrime.securesms.R
@@ -40,6 +41,15 @@ abstract class WrapperDialogFragment : DialogFragment(R.layout.fragment_containe
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
requireActivity().onBackPressedDispatcher.addCallback(
viewLifecycleOwner,
object : OnBackPressedCallback(true) {
override fun handleOnBackPressed() {
onHandleBackPressed()
}
}
)
if (savedInstanceState == null) {
childFragmentManager.beginTransaction()
.replace(R.id.fragment_container, getWrappedFragment())
@@ -47,6 +57,10 @@ abstract class WrapperDialogFragment : DialogFragment(R.layout.fragment_containe
}
}
open fun onHandleBackPressed() {
dismissAllowingStateLoss()
}
override fun onDismiss(dialog: DialogInterface) {
findListener<WrapperDialogFragmentCallback>()?.onWrapperDialogFragmentDismissed()
}

View File

@@ -2,7 +2,9 @@ package org.thoughtcrime.securesms.components.settings.models
import android.view.View
import android.widget.ImageView
import androidx.annotation.ColorRes
import androidx.annotation.DrawableRes
import androidx.core.content.ContextCompat
import org.thoughtcrime.securesms.R
import org.thoughtcrime.securesms.components.settings.PreferenceModel
import org.thoughtcrime.securesms.util.adapter.mapping.LayoutFactory
@@ -18,9 +20,9 @@ object SplashImage {
mappingAdapter.registerFactory(Model::class.java, LayoutFactory(::ViewHolder, R.layout.splash_image))
}
class Model(@DrawableRes val splashImageResId: Int) : PreferenceModel<Model>() {
class Model(@DrawableRes val splashImageResId: Int, @ColorRes val splashImageTintResId: Int = -1) : PreferenceModel<Model>() {
override fun areItemsTheSame(newItem: Model): Boolean {
return newItem.splashImageResId == splashImageResId
return newItem.splashImageResId == splashImageResId && newItem.splashImageTintResId == splashImageTintResId
}
}
@@ -30,6 +32,12 @@ object SplashImage {
override fun bind(model: Model) {
splashImageView.setImageResource(model.splashImageResId)
if (model.splashImageTintResId != -1) {
splashImageView.setColorFilter(ContextCompat.getColor(context, model.splashImageTintResId))
} else {
splashImageView.clearColorFilter()
}
}
}
}