mirror of
https://github.com/mollyim/mollyim-android.git
synced 2025-05-12 21:30:39 +01:00
Fix toolbar coloring behavior.
This commit is contained in:
parent
117c2ad5dd
commit
a3166a8c73
9 changed files with 28 additions and 11 deletions
|
@ -13,6 +13,7 @@ import android.os.Bundle
|
|||
import android.view.View
|
||||
import android.view.ViewTreeObserver
|
||||
import androidx.activity.compose.setContent
|
||||
import androidx.activity.enableEdgeToEdge
|
||||
import androidx.activity.result.ActivityResultLauncher
|
||||
import androidx.activity.result.contract.ActivityResultContracts
|
||||
import androidx.activity.viewModels
|
||||
|
@ -121,6 +122,7 @@ class MainActivity : PassphraseRequiredActivity(), VoiceNoteMediaControllerOwner
|
|||
private var onFirstRender = false
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?, ready: Boolean) {
|
||||
enableEdgeToEdge()
|
||||
AppStartup.getInstance().onCriticalRenderEventStart()
|
||||
super.onCreate(savedInstanceState, ready)
|
||||
conversationListTabsViewModel
|
||||
|
|
|
@ -149,7 +149,7 @@ class CallLogFragment : Fragment(R.layout.call_log_fragment), CallLogAdapter.Cal
|
|||
binding.recycler.adapter = callLogAdapter
|
||||
this.callLogAdapter = callLogAdapter
|
||||
|
||||
requireListener<Material3OnScrollHelperBinder>().bindScrollHelper(binding.recycler)
|
||||
requireListener<Material3OnScrollHelperBinder>().bindScrollHelper(binding.recycler, viewLifecycleOwner)
|
||||
binding.fab.setOnClickListener {
|
||||
startActivity(NewCallActivity.createIntent(requireContext()))
|
||||
}
|
||||
|
|
|
@ -457,7 +457,7 @@ public class ConversationListFragment extends MainFragment implements ActionMode
|
|||
}
|
||||
}));
|
||||
|
||||
requireCallback().bindScrollHelper(list, chatFolderList, color -> {
|
||||
requireCallback().bindScrollHelper(list, getViewLifecycleOwner(), chatFolderList, color -> {
|
||||
for (int i = 0; i < chatFolderList.getChildCount(); i++) {
|
||||
View child = chatFolderList.getChildAt(i);
|
||||
if (child != null && child.isSelected()) {
|
||||
|
|
|
@ -7,6 +7,7 @@ import androidx.core.view.ViewCompat
|
|||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.activityViewModels
|
||||
import androidx.fragment.app.viewModels
|
||||
import androidx.lifecycle.LifecycleOwner
|
||||
import androidx.navigation.NavController
|
||||
import androidx.navigation.NavDestination
|
||||
import androidx.navigation.findNavController
|
||||
|
@ -264,7 +265,7 @@ class MainActivityListHostFragment : Fragment(R.layout.main_activity_list_host_f
|
|||
}
|
||||
}
|
||||
|
||||
override fun bindScrollHelper(recyclerView: RecyclerView) {
|
||||
override fun bindScrollHelper(recyclerView: RecyclerView, lifecycleOwner: LifecycleOwner) {
|
||||
Material3OnScrollHelper(
|
||||
activity = requireActivity(),
|
||||
views = listOf(),
|
||||
|
@ -272,11 +273,12 @@ class MainActivityListHostFragment : Fragment(R.layout.main_activity_list_host_f
|
|||
onSetToolbarColor = {
|
||||
toolbarViewModel.setToolbarColor(it)
|
||||
},
|
||||
lifecycleOwner = viewLifecycleOwner
|
||||
setStatusBarColor = {},
|
||||
lifecycleOwner = lifecycleOwner
|
||||
).attach(recyclerView)
|
||||
}
|
||||
|
||||
override fun bindScrollHelper(recyclerView: RecyclerView, chatFolders: RecyclerView, setChatFolder: (Int) -> Unit) {
|
||||
override fun bindScrollHelper(recyclerView: RecyclerView, lifecycleOwner: LifecycleOwner, chatFolders: RecyclerView, setChatFolder: (Int) -> Unit) {
|
||||
Material3OnScrollHelper(
|
||||
activity = requireActivity(),
|
||||
views = listOf(chatFolders),
|
||||
|
@ -284,7 +286,8 @@ class MainActivityListHostFragment : Fragment(R.layout.main_activity_list_host_f
|
|||
onSetToolbarColor = {
|
||||
toolbarViewModel.setToolbarColor(it)
|
||||
},
|
||||
lifecycleOwner = viewLifecycleOwner,
|
||||
lifecycleOwner = lifecycleOwner,
|
||||
setStatusBarColor = {},
|
||||
setChatFolderColor = setChatFolder
|
||||
).attach(recyclerView)
|
||||
}
|
||||
|
|
|
@ -21,11 +21,15 @@ import androidx.compose.foundation.clickable
|
|||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.BoxWithConstraints
|
||||
import androidx.compose.foundation.layout.PaddingValues
|
||||
import androidx.compose.foundation.layout.WindowInsets
|
||||
import androidx.compose.foundation.layout.fillMaxHeight
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.foundation.layout.height
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.layout.size
|
||||
import androidx.compose.foundation.layout.statusBars
|
||||
import androidx.compose.foundation.layout.windowInsetsPadding
|
||||
import androidx.compose.foundation.layout.windowInsetsTopHeight
|
||||
import androidx.compose.foundation.shape.CircleShape
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
|
@ -188,7 +192,9 @@ fun MainToolbar(
|
|||
SearchToolbar(
|
||||
state = state,
|
||||
callback = callback,
|
||||
modifier = Modifier.circularReveal(visibility, revealOffset)
|
||||
modifier = Modifier
|
||||
.windowInsetsPadding(WindowInsets.statusBars)
|
||||
.circularReveal(visibility, revealOffset)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
package org.thoughtcrime.securesms.main
|
||||
|
||||
import androidx.lifecycle.LifecycleOwner
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
|
||||
interface Material3OnScrollHelperBinder {
|
||||
fun bindScrollHelper(recyclerView: RecyclerView)
|
||||
fun bindScrollHelper(recyclerView: RecyclerView, chatFolders: RecyclerView, setChatFolder: (Int) -> Unit)
|
||||
fun bindScrollHelper(recyclerView: RecyclerView, lifecycleOwner: LifecycleOwner)
|
||||
fun bindScrollHelper(recyclerView: RecyclerView, lifecycleOwner: LifecycleOwner, chatFolders: RecyclerView, setChatFolder: (Int) -> Unit)
|
||||
}
|
||||
|
|
|
@ -148,7 +148,7 @@ class StoriesLandingFragment : DSLSettingsFragment(layoutId = R.layout.stories_l
|
|||
MyStoriesItem.register(adapter)
|
||||
ExpandHeader.register(adapter)
|
||||
|
||||
requireListener<Material3OnScrollHelperBinder>().bindScrollHelper(recyclerView!!)
|
||||
requireListener<Material3OnScrollHelperBinder>().bindScrollHelper(recyclerView!!, viewLifecycleOwner)
|
||||
|
||||
lifecycleDisposable.bindTo(viewLifecycleOwner)
|
||||
emptyNotice = requireView().findViewById(R.id.empty_notice)
|
||||
|
|
|
@ -59,6 +59,10 @@ open class Material3OnScrollHelper(
|
|||
|
||||
init {
|
||||
lifecycleOwner.lifecycle.addObserver(object : DefaultLifecycleObserver {
|
||||
override fun onResume(owner: LifecycleOwner) {
|
||||
setColorImmediate()
|
||||
}
|
||||
|
||||
override fun onDestroy(owner: LifecycleOwner) {
|
||||
animator?.cancel()
|
||||
setStatusBarColor(previousStatusBarColor)
|
||||
|
|
|
@ -12,6 +12,7 @@ import androidx.compose.foundation.layout.BoxWithConstraints
|
|||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.Row
|
||||
import androidx.compose.foundation.layout.fillMaxSize
|
||||
import androidx.compose.foundation.layout.navigationBarsPadding
|
||||
import androidx.compose.foundation.layout.width
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.material3.adaptive.currentWindowAdaptiveInfo
|
||||
|
@ -133,7 +134,7 @@ fun AppScaffold(
|
|||
|
||||
Row {
|
||||
Column(
|
||||
modifier = Modifier.width(listWidth)
|
||||
modifier = Modifier.width(listWidth).navigationBarsPadding()
|
||||
) {
|
||||
Box(modifier = Modifier.weight(1f)) {
|
||||
listContent()
|
||||
|
|
Loading…
Reference in a new issue