Merge pull request #127 from therajanmaurya/logout
Feature: logout from app
diff --git a/app/src/main/java/com/mifos/apache/fineract/injection/component/ActivityComponent.java b/app/src/main/java/com/mifos/apache/fineract/injection/component/ActivityComponent.java
index 7c17c6f..0b17aa1 100644
--- a/app/src/main/java/com/mifos/apache/fineract/injection/component/ActivityComponent.java
+++ b/app/src/main/java/com/mifos/apache/fineract/injection/component/ActivityComponent.java
@@ -2,6 +2,7 @@
import com.mifos.apache.fineract.injection.PerActivity;
import com.mifos.apache.fineract.injection.module.ActivityModule;
+import com.mifos.apache.fineract.ui.online.DashboardActivity;
import com.mifos.apache.fineract.ui.online.customers.createcustomer.customeractivity.CreateCustomerActivity;
import com.mifos.apache.fineract.ui.online.customers.createcustomer.formcustomeraddress.FormCustomerAddressFragment;
@@ -94,4 +95,6 @@
void inject(CreateDepositActivity createDepositActivity);
void inject(CustomerActivitiesFragment customerActivitiesFragment);
+
+ void inject(DashboardActivity dashboardActivity);
}
diff --git a/app/src/main/java/com/mifos/apache/fineract/ui/online/DashboardActivity.java b/app/src/main/java/com/mifos/apache/fineract/ui/online/DashboardActivity.java
index 012feac..8e4510e 100644
--- a/app/src/main/java/com/mifos/apache/fineract/ui/online/DashboardActivity.java
+++ b/app/src/main/java/com/mifos/apache/fineract/ui/online/DashboardActivity.java
@@ -1,5 +1,7 @@
package com.mifos.apache.fineract.ui.online;
+import android.content.DialogInterface;
+import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.design.widget.NavigationView;
@@ -11,9 +13,14 @@
import android.view.View;
import com.mifos.apache.fineract.R;
+import com.mifos.apache.fineract.data.local.PreferencesHelper;
import com.mifos.apache.fineract.ui.base.MifosBaseActivity;
import com.mifos.apache.fineract.ui.online.customers.customerlist.CustomersFragment;
import com.mifos.apache.fineract.ui.online.dashboard.DashboardFragment;
+import com.mifos.apache.fineract.ui.online.launcher.LauncherActivity;
+import com.mifos.apache.fineract.utils.MaterialDialog;
+
+import javax.inject.Inject;
import butterknife.BindView;
import butterknife.ButterKnife;
@@ -33,10 +40,14 @@
@BindView(R.id.drawer_layout)
DrawerLayout drawerLayout;
+ @Inject
+ PreferencesHelper preferencesHelper;
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dashboard);
+ getActivityComponent().inject(this);
ButterKnife.bind(this);
replaceFragment(DashboardFragment.newInstance(), false, R.id.container);
@@ -63,8 +74,9 @@
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
- if (slideOffset != 0)
+ if (slideOffset != 0) {
hideKeyboard(drawerLayout);
+ }
super.onDrawerSlide(drawerView, slideOffset);
}
};
@@ -83,6 +95,9 @@
case R.id.item_customer:
replaceFragment(CustomersFragment.newInstance(), true, R.id.container);
break;
+ case R.id.item_logout:
+ logout();
+ break;
}
drawerLayout.closeDrawer(Gravity.START);
setTitle(item.getTitle());
@@ -98,4 +113,26 @@
super.onBackPressed();
}
}
+
+ public void logout() {
+ new MaterialDialog.Builder()
+ .init(this)
+ .setTitle(getString(R.string.dialog_title_confirm_logout))
+ .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();
+ }
+ })
+ .setNegativeButton(getString(R.string.dialog_action_cancel))
+ .createMaterialDialog()
+ .show();
+ }
}
diff --git a/app/src/main/res/drawable/ic_input_black_24dp.xml b/app/src/main/res/drawable/ic_input_black_24dp.xml
new file mode 100644
index 0000000..fea69df
--- /dev/null
+++ b/app/src/main/res/drawable/ic_input_black_24dp.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ <path
+ android:fillColor="#FF000000"
+ android:pathData="M21,3.01H3c-1.1,0 -2,0.9 -2,2V9h2V4.99h18v14.03H3V15H1v4.01c0,1.1 0.9,1.98 2,1.98h18c1.1,0 2,-0.88 2,-1.98v-14c0,-1.11 -0.9,-2 -2,-2zM11,16l4,-4 -4,-4v3H1v2h10v3z"/>
+</vector>
diff --git a/app/src/main/res/menu/menu_navigation_drawer.xml b/app/src/main/res/menu/menu_navigation_drawer.xml
index 59b0c39..3f4dcf4 100644
--- a/app/src/main/res/menu/menu_navigation_drawer.xml
+++ b/app/src/main/res/menu/menu_navigation_drawer.xml
@@ -1,17 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
- <group android:checkableBehavior="single">
+ <group
+ android:checkableBehavior="single"
+ android:id="@+id/group1">
+
<item
- android:id="@+id/item_dashboard"
- android:icon="@drawable/ic_dashboard_black_24dp"
android:checked="true"
+ android:icon="@drawable/ic_dashboard_black_24dp"
+ android:id="@+id/item_dashboard"
android:title="@string/dashboard"/>
<item
- android:id="@+id/item_customer"
- android:icon="@drawable/ic_customer_black_24dp"
android:checked="true"
+ android:icon="@drawable/ic_customer_black_24dp"
+ android:id="@+id/item_customer"
android:title="@string/customer"/>
+
+ </group>
+
+ <group
+ android:id="@+id/group2">
+
+ <item
+ android:id="@+id/item_logout"
+ android:icon="@drawable/ic_input_black_24dp"
+ android:title="@string/logout"/>
+
</group>
</menu>
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index ba1ed59..b69bafc 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -164,6 +164,7 @@
<string name="select_product">Select product</string>
<string name="no_beneficiary">No beneficiaries</string>
<string name="activities_created_by_on">%1$s, %2$s</string>
+ <string name="logout">Logout</string>
<!--Edit Text hint required-->
<string name="required_account">Account*</string>
@@ -244,9 +245,12 @@
<string name="dialog_action_re_try">Retry</string>
<string name="dialog_action_app_settings">App Settings</string>
<string name="dialog_action_delete">Delete</string>
+ <string name="dialog_action_logout">Logout</string>
<string name="dialog_title_confirm_deletion">Confirm deletion</string>
+ <string name="dialog_title_confirm_logout">Confirm logout</string>
<string name="dialog_message_confirmation_delete_identification_card">Do you want to delete this identification card?</string>
<string name="dialog_message_confirmation_delete_identification_card_scan">Do you want to delete this identification card scan?</string>
+ <string name="dialog_message_confirmation_logout">Are you sure? you want to logout</string>
<string name="dialog_message_camera_permission_denied_prompt">Without camera permission you will
not be able to scan the document. Are you sure you want to deny this
permission?</string>