FINCN-162: Corrected Back button behavior and minor class refactoring to Lambda
diff --git a/app/src/main/java/org/apache/fineract/ui/online/DashboardActivity.java b/app/src/main/java/org/apache/fineract/ui/online/DashboardActivity.java
index 61aac0c..15b4d61 100644
--- a/app/src/main/java/org/apache/fineract/ui/online/DashboardActivity.java
+++ b/app/src/main/java/org/apache/fineract/ui/online/DashboardActivity.java
@@ -1,16 +1,19 @@
package org.apache.fineract.ui.online;
-import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
+
import androidx.annotation.NonNull;
+
import com.google.android.material.navigation.NavigationView;
import com.google.android.material.snackbar.Snackbar;
+
import androidx.core.view.GravityCompat;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.appcompat.app.ActionBarDrawerToggle;
-import android.view.Gravity;
+import androidx.fragment.app.Fragment;
+
import android.view.MenuItem;
import android.view.View;
import android.widget.Toast;
@@ -138,7 +141,7 @@
break;
}
- drawerLayout.closeDrawer(Gravity.START);
+ drawerLayout.closeDrawer(GravityCompat.START);
setTitle(item.getTitle());
return true;
}
@@ -147,19 +150,25 @@
public void onBackPressed() {
if (drawerLayout.isDrawerOpen(GravityCompat.START)) {
drawerLayout.closeDrawer(GravityCompat.START);
- }
- if (isBackPressedOnce) {
- finish();
return;
}
- this.isBackPressedOnce = true;
- Toaster.show(drawerLayout, R.string.please_click_back_again_to_exit, Snackbar.LENGTH_SHORT);
- new Handler().postDelayed(new Runnable() {
- @Override
- public void run() {
- isBackPressedOnce = false;
- }
- }, 2000);
+
+ if (isBackPressedOnce) {
+ super.onBackPressed();
+ return;
+ }
+
+ Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.container);
+ if (fragment instanceof DashboardFragment) {
+ this.isBackPressedOnce = true;
+ Toaster.show(drawerLayout, R.string.please_click_back_again_to_exit,
+ Snackbar.LENGTH_SHORT);
+ new Handler().postDelayed(
+ () -> isBackPressedOnce = false
+ , 2000);
+ } else {
+ super.onBackPressed();
+ }
}
public void logout() {
@@ -169,19 +178,16 @@
.setMessage(getString(
R.string.dialog_message_confirmation_logout))
.setPositiveButton(getString(R.string.dialog_action_logout),
- new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- preferencesHelper.clear();
- Intent intent = new Intent(DashboardActivity.this,
- LauncherActivity.class);
- startActivity(intent);
- finish();
- Toast.makeText(DashboardActivity.this,
- R.string.logged_out_successfully, Toast.LENGTH_SHORT)
- .show();
+ (dialog, which) -> {
+ preferencesHelper.clear();
+ Intent intent = new Intent(DashboardActivity.this,
+ LauncherActivity.class);
+ startActivity(intent);
+ finish();
+ Toast.makeText(DashboardActivity.this,
+ R.string.logged_out_successfully, Toast.LENGTH_SHORT)
+ .show();
- }
})
.setNegativeButton(getString(R.string.dialog_action_cancel))
.createMaterialDialog()