2018-01-31 01:44:37 +00:00
|
|
|
package cy.agorise.crystalwallet.application;
|
|
|
|
|
|
|
|
import android.app.Activity;
|
2018-02-01 00:42:19 +00:00
|
|
|
|
2018-01-31 01:44:37 +00:00
|
|
|
import android.app.Application;
|
2018-02-01 00:42:19 +00:00
|
|
|
import android.arch.lifecycle.LiveData;
|
|
|
|
import android.arch.lifecycle.Observer;
|
|
|
|
import android.arch.lifecycle.ViewModelProviders;
|
2018-01-31 01:44:37 +00:00
|
|
|
import android.content.Intent;
|
|
|
|
import android.os.Bundle;
|
2018-02-01 00:42:19 +00:00
|
|
|
import android.support.annotation.Nullable;
|
|
|
|
import android.support.v4.app.FragmentActivity;
|
|
|
|
|
|
|
|
import java.util.List;
|
2018-01-31 01:44:37 +00:00
|
|
|
|
2018-05-09 02:07:12 +00:00
|
|
|
import cy.agorise.crystalwallet.activities.PatternRequestActivity;
|
2018-01-31 01:44:37 +00:00
|
|
|
import cy.agorise.crystalwallet.activities.PinRequestActivity;
|
2018-02-01 00:42:19 +00:00
|
|
|
import cy.agorise.crystalwallet.models.GeneralSetting;
|
|
|
|
import cy.agorise.crystalwallet.viewmodels.GeneralSettingListViewModel;
|
2018-01-31 01:44:37 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Created by Henry Varona on 27/1/2018.
|
|
|
|
*/
|
|
|
|
|
2018-02-01 00:42:19 +00:00
|
|
|
public class CrystalSecurityMonitor implements Application.ActivityLifecycleCallbacks {
|
2018-01-31 01:44:37 +00:00
|
|
|
private int numStarted = 0;
|
2018-02-01 00:42:19 +00:00
|
|
|
private String passwordEncrypted;
|
2018-05-09 02:07:12 +00:00
|
|
|
private String patternEncrypted;
|
2018-02-01 00:42:19 +00:00
|
|
|
|
|
|
|
public CrystalSecurityMonitor(final FragmentActivity fragmentActivity){
|
|
|
|
GeneralSettingListViewModel generalSettingListViewModel = ViewModelProviders.of(fragmentActivity).get(GeneralSettingListViewModel.class);
|
|
|
|
LiveData<List<GeneralSetting>> generalSettingsLiveData = generalSettingListViewModel.getGeneralSettingList();
|
|
|
|
|
|
|
|
generalSettingsLiveData.observe(fragmentActivity, new Observer<List<GeneralSetting>>() {
|
|
|
|
@Override
|
|
|
|
public void onChanged(@Nullable List<GeneralSetting> generalSettings) {
|
|
|
|
boolean founded = false;
|
|
|
|
passwordEncrypted = "";
|
|
|
|
|
|
|
|
if (generalSettings != null){
|
|
|
|
for (GeneralSetting generalSetting:generalSettings) {
|
|
|
|
if (generalSetting.getName().equals(GeneralSetting.SETTING_PASSWORD)){
|
|
|
|
if (!generalSetting.getValue().isEmpty()){
|
|
|
|
passwordEncrypted = generalSetting.getValue();
|
|
|
|
callPasswordRequest(fragmentActivity);
|
|
|
|
}
|
|
|
|
break;
|
2018-05-09 02:07:12 +00:00
|
|
|
} else if (generalSetting.getName().equals(GeneralSetting.SETTING_PATTERN)){
|
|
|
|
if (!generalSetting.getValue().isEmpty()){
|
|
|
|
patternEncrypted = generalSetting.getValue();
|
|
|
|
callPasswordRequest(fragmentActivity);
|
|
|
|
}
|
|
|
|
break;
|
2018-02-01 00:42:19 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
2018-01-31 01:44:37 +00:00
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onActivityStarted(Activity activity) {
|
|
|
|
if (numStarted == 0) {
|
2018-05-09 02:07:12 +00:00
|
|
|
if (
|
|
|
|
((this.passwordEncrypted != null) && (!this.passwordEncrypted.equals("")))
|
|
|
|
|| ((this.patternEncrypted != null) && (!this.patternEncrypted.equals("")))
|
|
|
|
) {
|
2018-02-01 00:42:19 +00:00
|
|
|
callPasswordRequest(activity);
|
|
|
|
}
|
2018-01-31 01:44:37 +00:00
|
|
|
}
|
|
|
|
numStarted++;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onActivityStopped(Activity activity) {
|
|
|
|
numStarted--;
|
|
|
|
if (numStarted == 0) {
|
2018-05-09 02:07:12 +00:00
|
|
|
if (
|
|
|
|
((this.passwordEncrypted != null) && (!this.passwordEncrypted.equals("")))
|
|
|
|
|| ((this.patternEncrypted != null) && (!this.patternEncrypted.equals("")))
|
|
|
|
) {
|
2018-02-01 00:42:19 +00:00
|
|
|
callPasswordRequest(activity);
|
|
|
|
}
|
2018-01-31 01:44:37 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public void callPasswordRequest(Activity activity){
|
|
|
|
if ((!activity.getIntent().hasExtra("ACTIVITY_TYPE")) || (!activity.getIntent().getStringExtra("ACTIVITY_TYPE").equals("PASSWORD_REQUEST"))) {
|
2018-05-09 02:07:12 +00:00
|
|
|
Intent intent = null;
|
|
|
|
if ((this.passwordEncrypted != null) && (!this.passwordEncrypted.equals(""))) {
|
|
|
|
intent = new Intent(activity, PinRequestActivity.class);
|
|
|
|
} else if ((this.patternEncrypted != null) && (!this.patternEncrypted.equals(""))) {
|
|
|
|
intent = new Intent(activity, PatternRequestActivity.class);
|
|
|
|
}
|
|
|
|
if (intent != null) {
|
|
|
|
intent.putExtra("ACTIVITY_TYPE", "PASSWORD_REQUEST");
|
|
|
|
activity.startActivity(intent);
|
|
|
|
}
|
2018-01-31 01:44:37 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onActivityCreated(Activity activity, Bundle bundle) {
|
|
|
|
//
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onActivityResumed(Activity activity) {
|
|
|
|
//
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onActivityPaused(Activity activity) {
|
|
|
|
//
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onActivitySaveInstanceState(Activity activity, Bundle bundle) {
|
|
|
|
//
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onActivityDestroyed(Activity activity) {
|
|
|
|
//
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|