From bb9617911679441a07f5c0f2dcbab51d989a9283 Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Wed, 13 Feb 2019 16:59:37 +0100 Subject: [PATCH] Add bottom sheet modal example --- .../ui/fragment/BottomSheetFragment.kt | 31 +++++++++++++++++ .../android/ui/fragment/NewSessionFragment.kt | 13 ++++++++ .../android/util/PokerAnalyticsFragment.kt | 12 ++++++- .../fragment_bottom_sheet_container.xml | 33 +++++++++++++++++++ 4 files changed, 88 insertions(+), 1 deletion(-) create mode 100644 app/src/main/java/net/pokeranalytics/android/ui/fragment/BottomSheetFragment.kt create mode 100644 app/src/main/res/layout/fragment_bottom_sheet_container.xml diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/BottomSheetFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/BottomSheetFragment.kt new file mode 100644 index 00000000..d81ac3e2 --- /dev/null +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/BottomSheetFragment.kt @@ -0,0 +1,31 @@ +package net.pokeranalytics.android.ui.fragment + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import com.google.android.material.bottomsheet.BottomSheetDialogFragment +import kotlinx.android.synthetic.main.fragment_bottom_sheet_container.* +import net.pokeranalytics.android.R + +class BottomSheetFragment : BottomSheetDialogFragment() { + + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { + return inflater.inflate(R.layout.fragment_bottom_sheet_container, container, false) + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + initUI() + } + + /** + * Init UI + */ + private fun initUI() { + close.setOnClickListener { + dismiss() + } + } + +} \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/NewSessionFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/NewSessionFragment.kt index 28b4404d..82c65d5e 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/NewSessionFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/NewSessionFragment.kt @@ -6,6 +6,10 @@ import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.LinearLayoutManager import kotlinx.android.synthetic.main.fragment_new_session.* +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch import net.pokeranalytics.android.R import net.pokeranalytics.android.model.realm.Session import net.pokeranalytics.android.ui.adapter.NewSessionAdapter @@ -45,6 +49,15 @@ class NewSessionFragment: PokerAnalyticsFragment() { adapter = newSessionAdapter } + // Bottom sheet example + /* + GlobalScope.launch(Dispatchers.Main) { + delay(2000) + val bottomSheetFragment = openBottomSheet() + delay(2000) + bottomSheetFragment.dismiss() + } + */ } /** diff --git a/app/src/main/java/net/pokeranalytics/android/util/PokerAnalyticsFragment.kt b/app/src/main/java/net/pokeranalytics/android/util/PokerAnalyticsFragment.kt index 721dd024..08d4ee07 100644 --- a/app/src/main/java/net/pokeranalytics/android/util/PokerAnalyticsFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/util/PokerAnalyticsFragment.kt @@ -1,9 +1,9 @@ package net.pokeranalytics.android.util import android.os.Bundle -import androidx.appcompat.app.AppCompatActivity import androidx.fragment.app.Fragment import io.realm.Realm +import net.pokeranalytics.android.ui.fragment.BottomSheetFragment open class PokerAnalyticsFragment: Fragment() { @@ -23,4 +23,14 @@ open class PokerAnalyticsFragment: Fragment() { return pokerAnalyticsActivity.getRealm() } + /** + * Open the bottom sheet + */ + fun openBottomSheet(): BottomSheetFragment { + //TODO: Give the data to display in the bottom sheet here + val bottomSheetFragment = BottomSheetFragment() + bottomSheetFragment.show(fragmentManager, "bottomSheet") + return bottomSheetFragment + } + } \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_bottom_sheet_container.xml b/app/src/main/res/layout/fragment_bottom_sheet_container.xml new file mode 100644 index 00000000..0be9445a --- /dev/null +++ b/app/src/main/res/layout/fragment_bottom_sheet_container.xml @@ -0,0 +1,33 @@ + + + + + + + + \ No newline at end of file