summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-07-23 23:13:06 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-07-28 13:52:59 +0000
commitaf719abcb3507d425aead77dc61e1312b54c7a2b (patch)
tree148ca49a748625d7c8ba6526f8a36afe5c5097f9 /android/src
parent0ece9c84aca91b62be35c8b3cd9c232404998158 (diff)
downloadmullvadvpn-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.kt24
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()
+ }
+ }
}
}