This is an automated email from the ASF dual-hosted git repository. rajanmaurya154 pushed a commit to branch development in repository https://gitbox.apache.org/repos/asf/fineract-cn-mobile.git
commit 2af08b06f0393d4dc9d9bbf00173acbaaa851d4b Author: miPlodder <academic.ra...@gmail.com> AuthorDate: Wed Jun 12 06:53:23 2019 +0530 Passcode Functionality completed --- app/src/main/AndroidManifest.xml | 10 +++-- .../org/apache/fineract/FineractApplication.java | 2 + .../fineract/ui/base/FineractBaseActivity.java | 11 +++++- .../apache/fineract/ui/online/PassCodeActivity.kt | 44 ++++++++++++++++++++++ .../apache/fineract/ui/online/SplashActivity.kt | 1 + .../ui/online/launcher/LauncherActivity.java | 25 ++++++++---- .../ui/online/launcher/LauncherContract.java | 4 +- .../fineract/ui/online/login/LoginActivity.java | 8 +++- 8 files changed, 89 insertions(+), 16 deletions(-) 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 android.content.Context; 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 @@ public class FineractApplication extends Application { 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 android.os.Bundle; 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 @@ import java.util.concurrent.atomic.AtomicLong; * 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 class FineractBaseActivity extends AppCompatActivity implements BaseActiv 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 @@ class SplashActivity : AppCompatActivity() { 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 @@ package org.apache.fineract.ui.online.launcher; 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 @@ public class LauncherActivity extends FineractBaseActivity implements LauncherCo 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 @@ public class LauncherActivity extends FineractBaseActivity implements LauncherCo } @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 @@ public interface LauncherContract { 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.text.TextUtils; 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 @@ public class LoginActivity extends FineractBaseActivity implements LoginContract 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(); }