diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-07-23 23:13:06 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-07-28 13:52:59 +0000 |
| commit | af719abcb3507d425aead77dc61e1312b54c7a2b (patch) | |
| tree | 148ca49a748625d7c8ba6526f8a36afe5c5097f9 /android/src | |
| parent | 0ece9c84aca91b62be35c8b3cd9c232404998158 (diff) | |
| download | mullvadvpn-af719abcb3507d425aead77dc61e1312b54c7a2b.tar.xz mullvadvpn-af719abcb3507d425aead77dc61e1312b54c7a2b.zip | |
Make `NavigateCell` navigate to fragments
Diffstat (limited to 'android/src')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/NavigateCell.kt | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/NavigateCell.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/NavigateCell.kt index 07b687e34a..9ff9c3588d 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/NavigateCell.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/NavigateCell.kt @@ -1,8 +1,11 @@ package net.mullvad.mullvadvpn.ui.widget import android.content.Context +import android.support.v4.app.Fragment +import android.support.v4.app.FragmentActivity import android.util.AttributeSet import android.widget.ImageView +import kotlin.reflect.KClass import net.mullvad.mullvadvpn.R open class NavigateCell : Cell { @@ -16,6 +19,8 @@ open class NavigateCell : Cell { setImageResource(R.drawable.icon_chevron) } + var targetFragment: KClass<out Fragment>? = null + constructor(context: Context) : super(context) {} constructor(context: Context, attributes: AttributeSet) : super(context, attributes) {} @@ -32,5 +37,24 @@ open class NavigateCell : Cell { init { cell.addView(chevron) + onClickListener = { openSubFragment() } + } + + private fun openSubFragment() { + targetFragment?.let { fragmentClass -> + val fragment = fragmentClass.java.getConstructor().newInstance() + + (context as? FragmentActivity)?.supportFragmentManager?.beginTransaction()?.apply { + setCustomAnimations( + R.anim.fragment_enter_from_right, + R.anim.fragment_half_exit_to_left, + R.anim.fragment_half_enter_from_left, + R.anim.fragment_exit_to_right + ) + replace(R.id.main_fragment, fragment) + addToBackStack(null) + commit() + } + } } } |
