Skip to content

Instantly share code, notes, and snippets.

override fun onStop() {
super.onStop()
/**
* Always unregister to the Android API before the view gets destroyed
* -> no memory leak ✅
*/
activity?.unregisterReceiver(localBroadcastReceiver)
}
abstract class BaseTwoPanelsLeakFragment(
private val side: Fragment,
private val main: Fragment
) : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
childFragmentManager.beginTransaction().apply {
replace(R.id.side_container, side)
replace(R.id.main_container, main)
class RoleManagementLeakFragment(
side: Fragment,
main: Fragment
) : BaseTwoPanelsLeakFragment(side, main) {
private val sharedViewModel: SharedViewModel by activityViewModels()
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
abstract class BaseTwoPanelsSolutionFragment(
private val side: WeakReference<Fragment>,
private val main: WeakReference<Fragment>
) : Fragment() {
class RoleManagementSolutionFragment(
side: WeakReference<Fragment>,
main: WeakReference<Fragment>
) : BaseTwoPanelsSolutionFragment(side, main) {
abstract class BaseTwoPanelsLeakFragment(
private val side: Fragment,
private val main: Fragment
) : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
childFragmentManager.beginTransaction().apply {
replace(R.id.side_container, side)
replace(R.id.main_container, main)
@mazzouzi
mazzouzi / MainActivity.kt
Last active September 21, 2022 12:14
CollapsingToolbar composable
@Composable
fun CollapsingToolbar() {
Box(modifier = Modifier.fillMaxSize()) {
Header()
Body()
Toolbar()
Title()
}
}
@mazzouzi
mazzouzi / MainActivity.kt
Last active September 23, 2022 15:17
Header composable
private val headerHeight = 275.dp
@Composable
private fun Header() {
val headerHeightPx = with(LocalDensity.current) { headerHeight.toPx() }
Box(modifier = Modifier.fillMaxWidth().height(headerHeight)) {
Image(
painter = painterResource(id = R.drawable.bg_pexel),
contentDescription = "",
contentScale = ContentScale.FillBounds
@mazzouzi
mazzouzi / MainActivity.kt
Last active September 21, 2022 12:36
Body composable
@Composable
private fun Body() {
Column(horizontalAlignment = Alignment.CenterHorizontally) {
Spacer(Modifier.height(headerHeight))
repeat(5) {
Text(
text = stringResource(R.string.lorem_ipsum),
style = MaterialTheme.typography.body1,
textAlign = TextAlign.Justify,
@mazzouzi
mazzouzi / MainActivity.kt
Created September 18, 2022 17:46
ScrollState
val scroll: ScrollState = rememberScrollState(0)