Passcode Functionality completed
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index dfb8082..d28cf45 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -31,14 +31,18 @@
android:resource="@xml/filepaths" />
</provider>
- <activity android:name=".ui.online.SplashActivity" android:theme="@style/SplashTheme">
+ <activity
+ android:name=".ui.online.SplashActivity"
+ android:theme="@style/SplashTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
- <activity android:name=".ui.online.launcher.LauncherActivity"/>
+ <activity android:name=".ui.online.launcher.LauncherActivity" />
+
+ <activity android:name=".ui.online.PassCodeActivity" />
<activity
android:name=".ui.online.login.LoginActivity"
@@ -50,7 +54,7 @@
<activity android:name=".ui.online.customers.customerpayroll.PayrollActivity" />
- <activity android:name=".ui.online.customers.customerpayroll.editcustomerpayroll.EditPayrollActivity"/>
+ <activity android:name=".ui.online.customers.customerpayroll.editcustomerpayroll.EditPayrollActivity" />
<activity android:name=".ui.online.depositaccounts.depositaccountslist.DepositAccountsActivity" />
diff --git a/app/src/main/java/org/apache/fineract/FineractApplication.java b/app/src/main/java/org/apache/fineract/FineractApplication.java
index f9bd6a4..de32205 100644
--- a/app/src/main/java/org/apache/fineract/FineractApplication.java
+++ b/app/src/main/java/org/apache/fineract/FineractApplication.java
@@ -5,6 +5,7 @@
import com.crashlytics.android.Crashlytics;
import com.evernote.android.job.JobManager;
+import com.mifos.mobile.passcode.utils.ForegroundChecker;
import com.raizlabs.android.dbflow.config.FlowManager;
import org.apache.fineract.injection.component.ApplicationComponent;
@@ -35,6 +36,7 @@
instance = this;
Fabric.with(this, new Crashlytics());
FlowManager.init(this);
+ ForegroundChecker.init(this);
}
public static Context getContext() {
diff --git a/app/src/main/java/org/apache/fineract/ui/base/FineractBaseActivity.java b/app/src/main/java/org/apache/fineract/ui/base/FineractBaseActivity.java
index f40b697..e4d953e 100644
--- a/app/src/main/java/org/apache/fineract/ui/base/FineractBaseActivity.java
+++ b/app/src/main/java/org/apache/fineract/ui/base/FineractBaseActivity.java
@@ -6,18 +6,20 @@
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
-import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import android.view.MenuItem;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
+import com.mifos.mobile.passcode.BasePassCodeActivity;
+
import org.apache.fineract.FineractApplication;
import org.apache.fineract.R;
import org.apache.fineract.injection.component.ActivityComponent;
import org.apache.fineract.injection.component.ConfigPersistentComponent;
import org.apache.fineract.injection.component.DaggerConfigPersistentComponent;
import org.apache.fineract.injection.module.ActivityModule;
+import org.apache.fineract.ui.online.PassCodeActivity;
import java.util.HashMap;
import java.util.Map;
@@ -29,7 +31,7 @@
* creation of Dagger components and makes sure that instances of ConfigPersistentComponent survive
* across configuration changes.
*/
-public class FineractBaseActivity extends AppCompatActivity implements BaseActivityCallback {
+public class FineractBaseActivity extends BasePassCodeActivity implements BaseActivityCallback {
private static final String KEY_ACTIVITY_ID = "KEY_ACTIVITY_ID";
private static final AtomicLong NEXT_ID = new AtomicLong(0);
@@ -187,4 +189,9 @@
public int stackCount() {
return getSupportFragmentManager().getBackStackEntryCount();
}
+
+ @Override
+ public Class getPassCodeClass() {
+ return PassCodeActivity.class;
+ }
}
diff --git a/app/src/main/java/org/apache/fineract/ui/online/PassCodeActivity.kt b/app/src/main/java/org/apache/fineract/ui/online/PassCodeActivity.kt
new file mode 100644
index 0000000..9cbbf84
--- /dev/null
+++ b/app/src/main/java/org/apache/fineract/ui/online/PassCodeActivity.kt
@@ -0,0 +1,44 @@
+package org.apache.fineract.ui.online
+
+import android.content.Intent
+import android.os.Bundle
+import android.os.PersistableBundle
+import android.view.View
+import com.mifos.mobile.passcode.MifosPassCodeActivity
+import com.mifos.mobile.passcode.utils.EncryptionUtil
+import org.apache.fineract.R
+import org.apache.fineract.ui.base.Toaster
+import org.apache.fineract.ui.online.login.LoginActivity
+
+
+/*
+ * Created by saksham on 12/June/2019
+*/
+
+class PassCodeActivity : MifosPassCodeActivity() {
+
+ override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) {
+ super.onCreate(savedInstanceState, persistentState)
+ }
+
+ override fun showToaster(view: View?, msg: Int) {
+ Toaster.show(view, msg, Toaster.SHORT)
+ }
+
+ override fun startLoginActivity() {
+ startActivity(Intent(this, LoginActivity::class.java))
+ finish()
+ }
+
+ override fun getLogo(): Int {
+ return R.drawable.mifos_logo_new
+ }
+
+ override fun getEncryptionType(): Int {
+ return EncryptionUtil.FINERACT_CN
+ }
+
+ override fun startNextActivity() {
+ startActivity(Intent(this, DashboardActivity::class.java))
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/org/apache/fineract/ui/online/SplashActivity.kt b/app/src/main/java/org/apache/fineract/ui/online/SplashActivity.kt
index a336dc0..b85c9df 100644
--- a/app/src/main/java/org/apache/fineract/ui/online/SplashActivity.kt
+++ b/app/src/main/java/org/apache/fineract/ui/online/SplashActivity.kt
@@ -14,5 +14,6 @@
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
startActivity(Intent(this, LauncherActivity::class.java))
+ finish()
}
}
\ No newline at end of file
diff --git a/app/src/main/java/org/apache/fineract/ui/online/launcher/LauncherActivity.java b/app/src/main/java/org/apache/fineract/ui/online/launcher/LauncherActivity.java
index f36c304..07a4403 100644
--- a/app/src/main/java/org/apache/fineract/ui/online/launcher/LauncherActivity.java
+++ b/app/src/main/java/org/apache/fineract/ui/online/launcher/LauncherActivity.java
@@ -3,12 +3,14 @@
import android.content.Intent;
import android.os.Bundle;
+import com.mifos.mobile.passcode.utils.PassCodeConstants;
+
import org.apache.fineract.R;
import org.apache.fineract.data.local.PreferenceKey;
import org.apache.fineract.data.local.PreferencesHelper;
import org.apache.fineract.data.models.Authentication;
import org.apache.fineract.ui.base.FineractBaseActivity;
-import org.apache.fineract.ui.online.DashboardActivity;
+import org.apache.fineract.ui.online.PassCodeActivity;
import org.apache.fineract.ui.online.login.LoginActivity;
import org.apache.fineract.utils.DateUtils;
@@ -46,18 +48,19 @@
if (DateUtils.isTokenExpired(authentication.getAccessTokenExpiration())) {
checkRefreshAccessToken();
} else {
- startActivity(DashboardActivity.class);
+ startPasscodeActivity();
}
} else {
- startActivity(LoginActivity.class);
+ startLoginActivity();
}
+ finish();
}
@Override
public void checkRefreshAccessToken() {
Authentication authentication = preferencesHelper.getSignedInUser();
if (DateUtils.isTokenExpired(authentication.getRefreshTokenExpiration())) {
- startActivity(LoginActivity.class);
+ startLoginActivity();
} else {
//Refresh access token
preferencesHelper.putBoolean(PreferenceKey.PREF_KEY_REFRESH_ACCESS_TOKEN, true);
@@ -66,24 +69,30 @@
}
@Override
- public void startActivity(Class aClass) {
- Intent intent = new Intent(this, aClass);
+ public void startLoginActivity() {
+ Intent intent = new Intent(this, LoginActivity.class);
startActivity(intent);
finish();
}
+ public void startPasscodeActivity() {
+ Intent intent = new Intent(this, PassCodeActivity.class);
+ intent.putExtra(PassCodeConstants.PASSCODE_INITIAL_LOGIN, true);
+ startActivity(intent);
+ }
+
@Override
public void refreshAccessTokenSuccessfully(Authentication authentication) {
preferencesHelper.putBoolean(PreferenceKey.PREF_KEY_REFRESH_ACCESS_TOKEN, false);
preferencesHelper.putAccessToken(authentication.getAccessToken());
preferencesHelper.putSignInUser(authentication);
- startActivity(DashboardActivity.class);
+ startPasscodeActivity();
}
@Override
public void refreshAccessTokenFailed() {
clearCredentials();
- startActivity(LoginActivity.class);
+ startLoginActivity();
}
@Override
diff --git a/app/src/main/java/org/apache/fineract/ui/online/launcher/LauncherContract.java b/app/src/main/java/org/apache/fineract/ui/online/launcher/LauncherContract.java
index 694f633..97e2bfa 100644
--- a/app/src/main/java/org/apache/fineract/ui/online/launcher/LauncherContract.java
+++ b/app/src/main/java/org/apache/fineract/ui/online/launcher/LauncherContract.java
@@ -15,7 +15,9 @@
void checkRefreshAccessToken();
- void startActivity(Class aClass);
+ void startLoginActivity();
+
+ void startPasscodeActivity();
void refreshAccessTokenSuccessfully(Authentication authentication);
diff --git a/app/src/main/java/org/apache/fineract/ui/online/login/LoginActivity.java b/app/src/main/java/org/apache/fineract/ui/online/login/LoginActivity.java
index 9956991..cb8683d 100644
--- a/app/src/main/java/org/apache/fineract/ui/online/login/LoginActivity.java
+++ b/app/src/main/java/org/apache/fineract/ui/online/login/LoginActivity.java
@@ -6,12 +6,14 @@
import android.widget.EditText;
import android.widget.Toast;
+import com.mifos.mobile.passcode.utils.PassCodeConstants;
+
import org.apache.fineract.R;
import org.apache.fineract.data.local.PreferencesHelper;
import org.apache.fineract.data.models.Authentication;
import org.apache.fineract.ui.base.FineractBaseActivity;
import org.apache.fineract.ui.base.Toaster;
-import org.apache.fineract.ui.online.DashboardActivity;
+import org.apache.fineract.ui.online.PassCodeActivity;
import javax.inject.Inject;
@@ -83,7 +85,9 @@
preferencesHelper.putAccessToken(user.getAccessToken());
preferencesHelper.putSignInUser(user);
preferencesHelper.putUserName(etUsername.getEditableText().toString().trim());
- startActivity(new Intent(this, DashboardActivity.class));
+ Intent intent = new Intent(this, PassCodeActivity.class);
+ intent.putExtra(PassCodeConstants.PASSCODE_INITIAL_LOGIN, true);
+ startActivity(intent);
finish();
Toast.makeText(this, getString(R.string.welcome), Toast.LENGTH_LONG).show();
}