Browse Source

Merged with kftc, security testing due

master
preyearegmi 6 years ago
parent
commit
c46f734f8a
  1. BIN
      .idea/caches/build_file_checksums.ser
  2. 53
      app/src/main/java/com/gmeremit/online/gmeremittance_native/splash_screen/presenter/SplashScreenPresenter.java
  3. 4
      app/src/main/java/com/gmeremit/online/gmeremittance_native/splash_screen/presenter/SplashScreenPresenterInterface.java
  4. 23
      app/src/main/java/com/gmeremit/online/gmeremittance_native/splash_screen/view/SplashScreen.java

BIN
.idea/caches/build_file_checksums.ser

53
app/src/main/java/com/gmeremit/online/gmeremittance_native/splash_screen/presenter/SplashScreenPresenter.java

@ -1,33 +1,56 @@
package com.gmeremit.online.gmeremittance_native.splash_screen.presenter;
import android.os.Handler;
import com.gmeremit.online.gmeremittance_native.base.BasePresenter;
import com.gmeremit.online.gmeremittance_native.customwidgets.CustomAlertDialog;
import com.gmeremit.online.gmeremittance_native.splash_screen.gateway.SplashScreenGateway;
import com.gmeremit.online.gmeremittance_native.splash_screen.model.LanguageModel;
import com.gmeremit.online.gmeremittance_native.utils.security.SignatureCheck;
import com.scottyab.rootbeer.RootBeer;
import java.util.List;
public class SplashScreenPresenter extends BasePresenter implements SplashScreenPresenterInterface, SplashScreenInteractorInterface {
private final SplashScreenInteractorInterface.SplashScreenGatewayInterface gateway;
private RootBeer rootBeer;
private SplashScreenContractInterfacee view;
private List<LanguageModel> languageModels;
public SplashScreenPresenter(SplashScreenContractInterfacee view) {
this.view = view;
this.gateway = new SplashScreenGateway(this);
rootBeer = new RootBeer(view.getContext());
}
@Override
public void checkIfUserHasSession() {
String result = this.gateway.checkSession();
if (result != null && result.equalsIgnoreCase("HOME")) {
this.view.proceedToDashboardScreen();
} else
{
if (this.languageModels == null || this.languageModels.size() <1)
this.languageModels=this.gateway.getRelatedLanguageData();
if (checkSafety()) {
String result = this.gateway.checkSession();
if (result != null && result.equalsIgnoreCase("HOME")) {
this.view.proceedToDashboardScreen();
} else {
if (this.languageModels == null || this.languageModels.size() < 1)
this.languageModels = this.gateway.getRelatedLanguageData();
this.view.updateLanguageData(languageModels);
}
}
}
private boolean checkIfAppSafe() {
boolean isSafe = false;
try {
isSafe = new SignatureCheck().validateAppSignature(view.getContext());
} catch (Exception e) {
e.printStackTrace();
isSafe = false;
}
return isSafe;
}
private boolean hasRootAccess() {
return rootBeer.isRootedWithoutBusyBoxCheck();
}
@Override
@ -36,4 +59,20 @@ public class SplashScreenPresenter extends BasePresenter implements SplashScreen
this.gateway.updatePreferredLanguageToStorage(selectedLanguage.getCountryName());
}
@Override
public boolean checkSafety() {
if (hasRootAccess() || checkIfAppSafe()) {
view.showPopUpMessage("Access Denied", CustomAlertDialog.AlertType.ALERT, null);
new Handler().postDelayed(() -> view.exitView(), 1500);
return false;
}
else
return true;
}
@Override
public void onViewDestroyed() {
super.onViewDestroyed();
rootBeer = null;
}
}

4
app/src/main/java/com/gmeremit/online/gmeremittance_native/splash_screen/presenter/SplashScreenPresenterInterface.java

@ -1,5 +1,7 @@
package com.gmeremit.online.gmeremittance_native.splash_screen.presenter;
import android.content.Context;
import com.gmeremit.online.gmeremittance_native.base.BaseContractInterface;
import com.gmeremit.online.gmeremittance_native.base.BasePresenterInterface;
import com.gmeremit.online.gmeremittance_native.splash_screen.model.LanguageModel;
@ -12,6 +14,7 @@ public interface SplashScreenPresenterInterface extends BasePresenterInterface {
void updatePreferredLanguage(LanguageModel selectedLanguage);
boolean checkSafety();
interface SplashScreenContractInterfacee extends BaseContractInterface
{
@ -19,6 +22,7 @@ public interface SplashScreenPresenterInterface extends BasePresenterInterface {
void updateLanguageData(List<LanguageModel> languageModels);
Context getContext();
}
}

23
app/src/main/java/com/gmeremit/online/gmeremittance_native/splash_screen/view/SplashScreen.java

@ -2,6 +2,7 @@ package com.gmeremit.online.gmeremittance_native.splash_screen.view;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.graphics.Paint;
@ -123,13 +124,13 @@ public class SplashScreen extends BaseActivity implements View.OnClickListener,
private void performDefaultAction(Bundle savedInstanceState) {
if (savedInstanceState == null) {
languageViewTransitionManager.underlineTitleText(true);
this.presenter.checkIfUserHasSession();
// this.presenter.checkIfUserHasSession();
}
}
private void init() {
presenter=new SplashScreenPresenter(this);
startAntiDebugger();
languageViewTransitionManager = new LanguageViewTransitionManager(this);
layouts = new int[]{
R.layout.fragment_splash_one,
@ -220,6 +221,7 @@ public class SplashScreen extends BaseActivity implements View.OnClickListener,
@Override
protected void onResume() {
super.onResume();
this.presenter.checkIfUserHasSession();
}
@ -251,6 +253,11 @@ public class SplashScreen extends BaseActivity implements View.OnClickListener,
languageSelectionRVAdapter.setData(languageModels);
}
@Override
public Context getContext() {
return this;
}
public class ViewPagerAdapter extends PagerAdapter {
private LayoutInflater layoutInflater;
@ -421,5 +428,17 @@ public class SplashScreen extends BaseActivity implements View.OnClickListener,
}
static {
System.loadLibrary("ptracemonitor-lib");
}
public native void antiDebugCheck();
private void startAntiDebugger() {
boolean isDebuggable = (0 != (getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE));
if (isDebuggable)
antiDebugCheck();
}
}
Loading…
Cancel
Save