Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,6 @@ ext {
okHttp3Version = '3.3.1'
flipTableVersion = '1.0.1'
butterKnifeVersion = '8.0.1'

mifosPasscodeVersion = '0.3.0'

}
4 changes: 4 additions & 0 deletions mifosng-android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,10 @@ dependencies {
compile 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1'
compile 'com.github.bumptech.glide:glide:3.7.0'


//mifos passcode
compile "com.mifos.mobile:mifos-passcode:$mifosPasscodeVersion"

// Android Testing Support Library's runner and rules
androidTestCompile "com.android.support.test:runner:$rootProject.runnerVersion"
androidTestCompile "com.android.support.test:rules:$rootProject.rulesVersion"
Expand Down
4 changes: 2 additions & 2 deletions mifosng-android/src/main/java/com/mifos/App.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
import com.mifos.mifosxdroid.injection.component.ApplicationComponent;
import com.mifos.mifosxdroid.injection.component.DaggerApplicationComponent;
import com.mifos.mifosxdroid.injection.module.ApplicationModule;
import com.mifos.utils.ForegroundChecker;
import com.mifos.mobile.passcode.utils.ForegroundChecker;
import com.raizlabs.android.dbflow.config.FlowConfig;
import com.raizlabs.android.dbflow.config.FlowManager;

Expand Down Expand Up @@ -66,7 +66,7 @@ public void onCreate() {
.build();
StrictMode.setVmPolicy(policy);
}
ForegroundChecker.init();
ForegroundChecker.init(this);
}

public ApplicationComponent getComponent() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import com.mifos.mifosxdroid.core.MifosBaseActivity;
import com.mifos.mifosxdroid.login.LoginActivity;
import com.mifos.mifosxdroid.passcode.PassCodeActivity;
import com.mifos.mobile.passcode.utils.PassCodeConstants;
import com.mifos.utils.PrefManager;


Expand All @@ -29,7 +30,10 @@ protected void onCreate(Bundle savedInstanceState) {
+ BaseUrl.API_ENDPOINT + BaseUrl.API_PATH);
startActivity(new Intent(SplashScreenActivity.this, LoginActivity.class));
} else {
startActivity(new Intent(SplashScreenActivity.this, PassCodeActivity.class));
Intent intent = new Intent(SplashScreenActivity.this,
PassCodeActivity.class);
intent.putExtra(PassCodeConstants.PASSCODE_INITIAL_LOGIN, true);
startActivity(intent);
}
finish();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.SwitchCompat;
import android.support.v7.widget.Toolbar;
import android.view.MenuItem;
Expand All @@ -26,15 +25,14 @@
import com.mifos.mifosxdroid.injection.component.DaggerActivityComponent;
import com.mifos.mifosxdroid.injection.module.ActivityModule;
import com.mifos.mifosxdroid.passcode.PassCodeActivity;
import com.mifos.mobile.passcode.BasePassCodeActivity;
import com.mifos.utils.Constants;
import com.mifos.utils.ForegroundChecker;
import com.mifos.utils.PrefManager;

/**
* @author fomenkoo
*/
public class MifosBaseActivity extends AppCompatActivity implements BaseActivityCallback,
ForegroundChecker.Listener {
public class MifosBaseActivity extends BasePassCodeActivity implements BaseActivityCallback {

protected Toolbar toolbar;
private ActivityComponent mActivityComponent;
Expand Down Expand Up @@ -175,22 +173,7 @@ public void clearFragmentBackStack() {
}

@Override
protected void onResume() {
super.onResume();
ForegroundChecker.get().addListener(this);
ForegroundChecker.get().onActivityResumed();
}

@Override
protected void onPause() {
super.onPause();
ForegroundChecker.get().onActivityPaused();
}

@Override
public void onBecameForeground() {
Intent intent = new Intent(this, PassCodeActivity.class);
intent.putExtra(Constants.INTIAL_LOGIN, false);
startActivity(intent);
public Class getPassCodeClass() {
return PassCodeActivity.class;
}
}
Original file line number Diff line number Diff line change
@@ -1,208 +1,43 @@
package com.mifos.mifosxdroid.passcode;

import android.content.Intent;
import android.os.Bundle;
import android.support.v4.content.ContextCompat;
import android.support.v4.widget.NestedScrollView;
import android.support.v7.widget.AppCompatButton;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import com.mifos.mifosxdroid.R;
import com.mifos.mifosxdroid.SplashScreenActivity;
import com.mifos.mifosxdroid.core.MifosBaseActivity;
import com.mifos.mifosxdroid.core.util.Toaster;
import com.mifos.mifosxdroid.online.DashboardActivity;
import com.mifos.utils.Constants;
import com.mifos.utils.EncryptionUtil;
import com.mifos.utils.PassCodeView;
import com.mifos.utils.PrefManager;
import com.mifos.mobile.passcode.MifosPassCodeActivity;
import com.mifos.mobile.passcode.utils.EncryptionUtil;

import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;

public class PassCodeActivity extends MifosBaseActivity implements PassCodeView.PassCodeListener {

@BindView(R.id.cl_rootview)
NestedScrollView clRootview;

@BindView(R.id.btn_forgot_passcode)
AppCompatButton btnForgotPasscode;

@BindView(R.id.pv_passcode)
PassCodeView passCodeView;

@BindView(R.id.btn_skip)
AppCompatButton btnSkip;

@BindView(R.id.btn_save)
AppCompatButton btnSave;

@BindView(R.id.tv_passcode)
TextView tvPasscodeIntro;

@BindView(R.id.iv_visibility)
ImageView ivVisibility;

private int counter = 0;
private boolean isInitialScreen;
public class PassCodeActivity extends MifosPassCodeActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pass_code);
getActivityComponent().inject(this);
ButterKnife.bind(this);

isInitialScreen = getIntent().getBooleanExtra(Constants.INTIAL_LOGIN, false);

if (PrefManager.getPassCodeStatus()) {
btnSkip.setVisibility(View.GONE);
btnSave.setVisibility(View.GONE);
tvPasscodeIntro.setVisibility(View.GONE);
btnForgotPasscode.setVisibility(View.VISIBLE);
//enabling passCodeListener only when user has already setup PassCode
passCodeView.setPassCodeListener(this);
}
}

@OnClick(R.id.btn_skip)
public void skip() {
startDashBoardActivity();
}

@OnClick(R.id.btn_save)
public void savePassCode() {
if (isPassCodeLengthCorrect()) {
PrefManager.setPassCode(EncryptionUtil.getHash(passCodeView.getPasscode()));
startDashBoardActivity();
}
public int getLogo() {
return R.drawable.mifos_logo;
}

@Override
public void passCodeEntered(String passcode) {
String passwordEntered = EncryptionUtil.getHash(passCodeView.getPasscode());
boolean isPassCodeCorrect = PrefManager.getPassCode().equals(passwordEntered);
if (counter == 3 && !isPassCodeCorrect) {
Toast.makeText(getApplicationContext(), R.string.incorrect_passcode_more_than_three,
Toast.LENGTH_SHORT).show();
PrefManager.clearPrefs();
startSplashActivity();
return;
}

if (isPassCodeLengthCorrect()) {
if (isPassCodeCorrect) {
startDashBoardActivity();
finish();
} else {
counter++;
passCodeView.clearPasscodeField();
Toaster.show(clRootview, R.string.incorrect_passcode);
}
}
}

@OnClick(R.id.btn_forgot_passcode)
public void forgotPassCode() {
PrefManager.clearPrefs();
startSplashActivity();
}

@OnClick(R.id.btn_one)
public void clickedOne() {
passCodeView.enterCode(getString(R.string.one));
}

@OnClick(R.id.btn_two)
public void clickedTwo() {
passCodeView.enterCode(getString(R.string.two));
}

@OnClick(R.id.btn_three)
public void clickedThree() {
passCodeView.enterCode(getString(R.string.three));
}

@OnClick(R.id.btn_four)
public void clickedFour() {
passCodeView.enterCode(getString(R.string.four));
}

@OnClick(R.id.btn_five)
public void clickedFive() {
passCodeView.enterCode(getString(R.string.five));
}

@OnClick(R.id.btn_six)
public void clickedSix() {
passCodeView.enterCode(getString(R.string.six));
}

@OnClick(R.id.btn_seven)
public void clickedSeven() {
passCodeView.enterCode(getString(R.string.seven));
}

@OnClick(R.id.btn_eight)
public void clickedEight() {
passCodeView.enterCode(getString(R.string.eight));
}

@OnClick(R.id.btn_nine)
public void clickedNine() {
passCodeView.enterCode(getString(R.string.nine));
}

@OnClick(R.id.btn_zero)
public void clickedZero() {
passCodeView.enterCode(getString(R.string.zero));
}

@OnClick(R.id.btn_back)
public void clickedBackSpace() {
passCodeView.backSpace();
}

@OnClick(R.id.iv_visibility)
public void visibilityChange() {
passCodeView.revertPassCodeVisibility();
if (!passCodeView.passcodeVisible()) {
ivVisibility.setColorFilter(ContextCompat.getColor(PassCodeActivity.this,
R.color.light_grey));
} else {
ivVisibility.setColorFilter(ContextCompat.getColor(PassCodeActivity.this,
R.color.gray_dark));
}
}
private boolean isPassCodeLengthCorrect() {
if (passCodeView.getPasscode().length() == 4) {
return true;
}
Toaster.show(clRootview, getString(R.string.error_passcode));
return false;
}

private void startDashBoardActivity() {
public void startNextActivity() {
startActivity(new Intent(this, DashboardActivity.class));
finish();
}

private void startSplashActivity() {
@Override
public void startLoginActivity() {
Intent i = new Intent(PassCodeActivity.this, SplashScreenActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(i);
finish();
}

@Override
public void onBackPressed() {
//enabling back press only for initial login.
if (isInitialScreen) {
super.onBackPressed();
}
public void showToaster(View view, int msg) {
Toaster.show(view, msg);
}

@Override
public int getEncryptionType() {
return EncryptionUtil.ANDROID_CLIENT;
}

}
24 changes: 0 additions & 24 deletions mifosng-android/src/main/java/com/mifos/utils/EncryptionUtil.java

This file was deleted.

Loading