diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/ReportsFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/ReportsFragment.kt index aee99f2c..de07535b 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/ReportsFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/ReportsFragment.kt @@ -105,8 +105,7 @@ class ReportsFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataSour */ private fun launchComputation(comparators: List, reportName: String) { - //val loader = LoaderDialogFragment.newInstance() - //loader.show(activity?.supportFragmentManager, "loader") + showLoader() GlobalScope.launch { @@ -121,6 +120,7 @@ class ReportsFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataSour launch(Dispatchers.Main) { if (!isDetached) { + hideLoader() ReportDetailsActivity.newInstance(requireContext(), report, reportName) } } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/LoaderDialogFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/LoaderDialogFragment.kt index 59f45ca7..82de63d6 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/LoaderDialogFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/LoaderDialogFragment.kt @@ -5,24 +5,49 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.DialogFragment +import kotlinx.android.synthetic.main.fragment_loader.* import net.pokeranalytics.android.R + class LoaderDialogFragment: DialogFragment() { companion object { + + const val ARGUMENT_MESSAGE_RES_ID = "ARGUMENT_MESSAGE_RES_ID" + /** * Create new instance */ - fun newInstance(): LoaderDialogFragment { + fun newInstance(resId: Int? = null, isCancelable: Boolean = false): LoaderDialogFragment { val fragment = LoaderDialogFragment() + fragment.isCancelable = isCancelable val bundle = Bundle() + resId?.let { + bundle.putInt(ARGUMENT_MESSAGE_RES_ID, resId) + } fragment.arguments = bundle return fragment } + } override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { return inflater.inflate(R.layout.fragment_loader, container, false) } + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + arguments?.let {bundle -> + if (bundle.containsKey(ARGUMENT_MESSAGE_RES_ID)) { + loadingMessage.text = getString(bundle.getInt(ARGUMENT_MESSAGE_RES_ID)) + } + } + } + + override fun onStart() { + super.onStart() + val window = dialog.window + window?.setBackgroundDrawableResource(android.R.color.transparent) + } + } \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/PokerAnalyticsFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/PokerAnalyticsFragment.kt index e69ce9f6..11ebca17 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/PokerAnalyticsFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/PokerAnalyticsFragment.kt @@ -7,6 +7,7 @@ import io.realm.Realm open class PokerAnalyticsFragment: Fragment() { private var realm: Realm? = null + private var loaderDialogFragment: LoaderDialogFragment? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -36,4 +37,22 @@ open class PokerAnalyticsFragment: Fragment() { */ open fun onBackPressed(){} + /** + * Show the loader + */ + fun showLoader(resId: Int? = null, cancelable: Boolean? = false) { + loaderDialogFragment = LoaderDialogFragment.newInstance(resId, false) + activity?.let { + loaderDialogFragment?.show(it.supportFragmentManager, "loader") + } + } + + /** + * Hide the loader + */ + fun hideLoader() { + loaderDialogFragment?.dismiss() + loaderDialogFragment = null + } + } \ No newline at end of file diff --git a/app/src/main/res/drawable/rectangle_rounded_dark.xml b/app/src/main/res/drawable/rectangle_rounded_dark.xml new file mode 100644 index 00000000..7812ee4b --- /dev/null +++ b/app/src/main/res/drawable/rectangle_rounded_dark.xml @@ -0,0 +1,16 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_loader.xml b/app/src/main/res/layout/fragment_loader.xml index c2371f04..f4249f8b 100644 --- a/app/src/main/res/layout/fragment_loader.xml +++ b/app/src/main/res/layout/fragment_loader.xml @@ -2,10 +2,20 @@ + android:background="@android:color/transparent" + android:elevation="4dp"> + +