Skip to content

Commit

Permalink
Merge pull request #159 from phansier/clearContainer_sample
Browse files Browse the repository at this point in the history
Add sample for ClearContainer = false property of FragmentScreen
  • Loading branch information
terrakok authored Jul 20, 2021
2 parents 2a4969d + b399dd3 commit 701feee
Show file tree
Hide file tree
Showing 8 changed files with 95 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import com.github.terrakok.cicerone.sample.ui.bottom.ForwardFragment
import com.github.terrakok.cicerone.sample.ui.bottom.TabContainerFragment
import com.github.terrakok.cicerone.sample.ui.main.MainActivity
import com.github.terrakok.cicerone.sample.ui.main.SampleFragment
import com.github.terrakok.cicerone.sample.ui.main.SemiTransparentFragment
import com.github.terrakok.cicerone.sample.ui.start.StartActivity

/**
Expand Down Expand Up @@ -59,4 +60,8 @@ object Screens {
fun SelectPhoto(resultKey: String) = FragmentScreen {
SelectPhotoFragment.getNewInstance(resultKey)
}

fun SemiTransparent() = FragmentScreen(clearContainer = false) {
SemiTransparentFragment()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import com.github.terrakok.cicerone.sample.ui.bottom.BottomNavigationActivity
import com.github.terrakok.cicerone.sample.ui.bottom.TabContainerFragment
import com.github.terrakok.cicerone.sample.ui.main.MainActivity
import com.github.terrakok.cicerone.sample.ui.main.SampleFragment
import com.github.terrakok.cicerone.sample.ui.main.SemiTransparentFragment
import com.github.terrakok.cicerone.sample.ui.start.StartActivity
import dagger.Component
import javax.inject.Singleton
Expand Down Expand Up @@ -37,4 +38,6 @@ interface AppComponent {
fun inject(fragment: SelectPhotoFragment)

fun inject(activity: ProfileActivity)

fun inject(fragment: SemiTransparentFragment)
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package com.github.terrakok.cicerone.sample.mvp.main
import android.os.Handler
import android.os.Looper
import com.github.terrakok.cicerone.Router
import com.github.terrakok.cicerone.sample.Screens
import com.github.terrakok.cicerone.sample.Screens.Sample
import moxy.InjectViewState
import moxy.MvpPresenter
Expand Down Expand Up @@ -56,6 +57,10 @@ class SamplePresenter(
router.finishChain()
}

fun onForwardNccCommandClick() {
router.navigateTo(Screens.SemiTransparent())
}

fun onNewRootCommandClick() {
router.newRootScreen(Sample(screenNumber + 1))
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ class SampleFragment : BaseFragment(), SampleView, BackButtonListener {
binding.forwardDelayCommand.setOnClickListener { presenter.onForwardWithDelayCommandClick() }
binding.backToCommand.setOnClickListener { presenter.onBackToCommandClick() }
binding.finishChainCommand.setOnClickListener { presenter.onFinishChainCommandClick() }
binding.forwardNccCommand.setOnClickListener { presenter.onForwardNccCommandClick() }
}

override fun setTitle(title: String) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package com.github.terrakok.cicerone.sample.ui.main

import android.os.Bundle
import android.view.View
import android.widget.Button
import com.github.terrakok.cicerone.Router
import com.github.terrakok.cicerone.sample.R
import com.github.terrakok.cicerone.sample.SampleApplication
import com.github.terrakok.cicerone.sample.ui.common.BackButtonListener
import moxy.MvpAppCompatFragment
import javax.inject.Inject

class SemiTransparentFragment : MvpAppCompatFragment(R.layout.fragment_semitransparent),
BackButtonListener {

@Inject
lateinit var router: Router

override fun onCreate(savedInstanceState: Bundle?) {
SampleApplication.INSTANCE.appComponent.inject(this)
super.onCreate(savedInstanceState)
}

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
view.findViewById<Button>(R.id.back_button).setOnClickListener { onBackPressed() }
}

override fun onBackPressed(): Boolean {
router.exit()
return true
}
}
12 changes: 11 additions & 1 deletion sample/src/main/res/layout/fragment_sample.xml
Original file line number Diff line number Diff line change
Expand Up @@ -121,11 +121,21 @@
android:layout_margin="4dp"
android:layout_height="0dp"
android:layout_rowWeight="1"
android:layout_columnSpan="2"
android:background="@color/greensea"
android:gravity="center"
android:text="Finish chain"
android:textSize="28sp"/>
<TextView
android:id="@+id/forward_ncc_command"
android:layout_width="0dp"
android:layout_columnWeight="1"
android:layout_margin="4dp"
android:layout_height="0dp"
android:layout_rowWeight="1"
android:background="@color/nephritis"
android:gravity="center"
android:text="Forward not clearing container"
android:textSize="28sp"/>

</GridLayout>
</LinearLayout>
35 changes: 35 additions & 0 deletions sample/src/main/res/layout/fragment_semitransparent.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/semitransparent"
tools:ignore="HardcodedText" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/accent"
android:orientation="vertical"
android:layout_margin="40dp">
<TextView
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:padding="16dp"
android:textColor="@android:color/white"
android:textSize="16sp"
android:text="This is not a dialog.\n This is a regular screen."
/>

<Button
android:id="@+id/back_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:minWidth="100dp"
android:text="Back"
android:textAllCaps="false"
android:textSize="20sp"/>
</LinearLayout>
</FrameLayout>
2 changes: 2 additions & 0 deletions sample/src/main/res/values/colors.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
<color name="primary_dark">#c0392b</color>
<color name="accent">#e67e22</color>

<color name="semitransparent">#99000000</color>


<color name="alizarin">#e74c3c</color>
<color name="carrot">#e67e22</color>
Expand Down

0 comments on commit 701feee

Please sign in to comment.