From 85e0edb1e828932c1306377d46c9209467c37178 Mon Sep 17 00:00:00 2001 From: "h.malik144@gmail.com" Date: Mon, 4 Sep 2023 23:05:05 +0100 Subject: [PATCH] - Show dialog on back press broken --- .../h_mal/farmr/ui/FragmentAddItem.kt | 6 +++-- .../h_mal/farmr/ui/FurtherInfoFragment.kt | 2 +- .../appttude/h_mal/farmr/ui/MainActivity.kt | 24 +++++++++++++++++++ .../h_mal/farmr/ui/ShiftListAdapter.kt | 4 ++-- .../appttude/h_mal/farmr/ui/SplashScreen.kt | 1 + .../appttude/h_mal/farmr/utils/Constants.kt | 1 + app/src/main/res/layout/main_view.xml | 1 + .../main/res/navigation/shift_navigation.xml | 1 - 8 files changed, 34 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/appttude/h_mal/farmr/ui/FragmentAddItem.kt b/app/src/main/java/com/appttude/h_mal/farmr/ui/FragmentAddItem.kt index 43ff1bb..fc60a62 100644 --- a/app/src/main/java/com/appttude/h_mal/farmr/ui/FragmentAddItem.kt +++ b/app/src/main/java/com/appttude/h_mal/farmr/ui/FragmentAddItem.kt @@ -16,6 +16,7 @@ import com.appttude.h_mal.farmr.base.BaseFragment import com.appttude.h_mal.farmr.model.ShiftType import com.appttude.h_mal.farmr.model.Success import com.appttude.h_mal.farmr.utils.ID +import com.appttude.h_mal.farmr.utils.SHIFT_ID import com.appttude.h_mal.farmr.utils.createDialog import com.appttude.h_mal.farmr.utils.displayToast import com.appttude.h_mal.farmr.utils.formatAsCurrencyString @@ -119,13 +120,14 @@ class FragmentAddItem : BaseFragment(R.layout.fragment_add_ } private fun setupViewAfterViewCreated() { - val id = arguments?.let { FragmentAddItemArgs.fromBundle(it).shiftId } + val id = arguments?.takeIf { it.containsKey(SHIFT_ID) } + ?.let { FragmentAddItemArgs.fromBundle(it).shiftId } wholeView.hide() val title = id?.let { // Since we are editing a shift lets load the shift data into the views - viewModel.getCurrentShift(arguments!!.getLong(ID))?.run { + viewModel.getCurrentShift(id)?.run { mLocationEditText.setText(description) mDateEditText.setText(date) diff --git a/app/src/main/java/com/appttude/h_mal/farmr/ui/FurtherInfoFragment.kt b/app/src/main/java/com/appttude/h_mal/farmr/ui/FurtherInfoFragment.kt index a2b92a3..31813a1 100644 --- a/app/src/main/java/com/appttude/h_mal/farmr/ui/FurtherInfoFragment.kt +++ b/app/src/main/java/com/appttude/h_mal/farmr/ui/FurtherInfoFragment.kt @@ -56,7 +56,7 @@ class FurtherInfoFragment : BaseFragment(R.layout.fragment_futher val id = FurtherInfoFragmentArgs.fromBundle(requireArguments()).shiftId editButton.setOnClickListener { - val nav = FragmentAddItemDirections.furtherInfoToAddItem(id) + val nav = FurtherInfoFragmentDirections.furtherInfoToAddItem(id) navigateTo(nav) } diff --git a/app/src/main/java/com/appttude/h_mal/farmr/ui/MainActivity.kt b/app/src/main/java/com/appttude/h_mal/farmr/ui/MainActivity.kt index 15196c1..9cf7cf4 100644 --- a/app/src/main/java/com/appttude/h_mal/farmr/ui/MainActivity.kt +++ b/app/src/main/java/com/appttude/h_mal/farmr/ui/MainActivity.kt @@ -5,6 +5,7 @@ import android.app.Activity import android.content.pm.PackageManager import android.os.Bundle import android.view.Menu +import android.view.MenuItem import androidx.appcompat.widget.Toolbar import androidx.core.app.ActivityCompat import androidx.navigation.fragment.NavHostFragment @@ -36,6 +37,19 @@ class MainActivity : BaseActivity() { return true } + override fun onSupportNavigateUp(): Boolean { + val currentFragment = navHost.parentFragment + return if (currentFragment is BackPressedListener) { + currentFragment.onBackPressed() + } else { + if (supportFragmentManager.backStackEntryCount > 1) { + navHost.goBack() + } else { + super.onSupportNavigateUp() + } + } + } + override fun onBackPressed() { val currentFragment = supportFragmentManager.findFragmentById(R.id.container) if (currentFragment is BackPressedListener) { @@ -48,4 +62,14 @@ class MainActivity : BaseActivity() { } } } + + override fun onOptionsItemSelected(item: MenuItem): Boolean { + // Handle action bar item clicks here. The action bar will + // automatically handle clicks on the Home/Up button, so long + // as you specify a parent activity in AndroidManifest.xml. + when (item.itemId) { + android.R.id.home -> onBackPressed() + } + return super.onOptionsItemSelected(item) + } } \ No newline at end of file diff --git a/app/src/main/java/com/appttude/h_mal/farmr/ui/ShiftListAdapter.kt b/app/src/main/java/com/appttude/h_mal/farmr/ui/ShiftListAdapter.kt index 588dac0..1fea169 100644 --- a/app/src/main/java/com/appttude/h_mal/farmr/ui/ShiftListAdapter.kt +++ b/app/src/main/java/com/appttude/h_mal/farmr/ui/ShiftListAdapter.kt @@ -76,12 +76,12 @@ class ShiftListAdapter( view.setOnClickListener { // Navigate to further info - val nav = FurtherInfoFragmentDirections.mainToFurtherInfo(data.id) + val nav = FragmentMainDirections.mainToFurtherInfo(data.id) fragment.navigateTo(nav) } editView.setOnClickListener { // Navigate to edit - val nav = FragmentAddItemDirections.mainToAddItem(data.id) + val nav = FragmentMainDirections.mainToAddItem(data.id) fragment.navigateTo(nav) } view.setOnLongClickListener { diff --git a/app/src/main/java/com/appttude/h_mal/farmr/ui/SplashScreen.kt b/app/src/main/java/com/appttude/h_mal/farmr/ui/SplashScreen.kt index 5f8cfd8..34a7896 100644 --- a/app/src/main/java/com/appttude/h_mal/farmr/ui/SplashScreen.kt +++ b/app/src/main/java/com/appttude/h_mal/farmr/ui/SplashScreen.kt @@ -22,6 +22,7 @@ class SplashScreen : Activity() { Handler(Looper.getMainLooper()).postDelayed({ startActivity(i) overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out) + this.finish() }, SPLASH_TIME_OUT) } diff --git a/app/src/main/java/com/appttude/h_mal/farmr/utils/Constants.kt b/app/src/main/java/com/appttude/h_mal/farmr/utils/Constants.kt index 59f48f8..fc14614 100644 --- a/app/src/main/java/com/appttude/h_mal/farmr/utils/Constants.kt +++ b/app/src/main/java/com/appttude/h_mal/farmr/utils/Constants.kt @@ -4,4 +4,5 @@ const val LEGACY = "LEGACY_" const val DATE_FORMAT = "yyyy-MM-dd" const val TIME_FORMAT = "hh:mm" const val ID = "ID" +const val SHIFT_ID = "shiftId" const val CURRENCY = "£" \ No newline at end of file diff --git a/app/src/main/res/layout/main_view.xml b/app/src/main/res/layout/main_view.xml index a665835..aef69db 100644 --- a/app/src/main/res/layout/main_view.xml +++ b/app/src/main/res/layout/main_view.xml @@ -41,6 +41,7 @@ app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintBottom_toBottomOf="parent" + app:defaultNavHost="true" android:id="@+id/container" tools:layout="@layout/fragment_main"> diff --git a/app/src/main/res/navigation/shift_navigation.xml b/app/src/main/res/navigation/shift_navigation.xml index df34235..9a6584d 100644 --- a/app/src/main/res/navigation/shift_navigation.xml +++ b/app/src/main/res/navigation/shift_navigation.xml @@ -27,7 +27,6 @@ tools:layout="@layout/fragment_add_item" >