+++ /dev/null
-package com.owncloud.android.authentication;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.content.SharedPreferences;
-import android.preference.PreferenceManager;
-
-import com.owncloud.android.MainApp;
-import com.owncloud.android.ui.activity.PinCodeActivity;
-
-import java.util.HashSet;
-import java.util.Set;
-
-public class PassCodeManager {
-
- private static final Set<Class> sExemptOfPasscodeActivites;
-
- static {
- sExemptOfPasscodeActivites = new HashSet<Class>();
- sExemptOfPasscodeActivites.add(AuthenticatorActivity.class); // maybe not so good idea
- sExemptOfPasscodeActivites.add(PinCodeActivity.class);
- }
-
- private static int PASS_CODE_TIMEOUT = 1000;
-
- public static PassCodeManager mPassCodeManagerInstance = null;
-
- public static PassCodeManager getPassCodeManager() {
- if (mPassCodeManagerInstance == null) {
- mPassCodeManagerInstance = new PassCodeManager();
- }
- return mPassCodeManagerInstance;
- }
-
- private Long mTimestamp = 0l;
- private int mVisibleActivitiesCounter = 0;
-
- protected PassCodeManager() {};
-
- public void onActivityStarted(Activity activity) {
- if (!sExemptOfPasscodeActivites.contains(activity.getClass()) &&
- passCodeShouldBeRequested()
- ){
-
- Intent i = new Intent(MainApp.getAppContext(), PinCodeActivity.class);
- i.setAction(PinCodeActivity.ACTION_REQUEST);
- activity.startActivity(i);
- }
-
- mVisibleActivitiesCounter++; // AFTER passCodeShouldBeRequested was checked
- }
-
- public void onActivityStopped(Activity activity) {
- if (mVisibleActivitiesCounter > 0) {
- mVisibleActivitiesCounter--;
- }
- setUnlockTimestamp();
- }
-
- private boolean passCodeShouldBeRequested(){
- if ((System.currentTimeMillis() - mTimestamp) > PASS_CODE_TIMEOUT &&
- mVisibleActivitiesCounter <= 0
- ){
- SharedPreferences appPrefs = PreferenceManager.getDefaultSharedPreferences(MainApp.getAppContext());
- if (appPrefs.getBoolean("set_pincode", false)) {
- return true;
- }
- }
- return false;
- }
-
- private void setUnlockTimestamp() {
- mTimestamp = System.currentTimeMillis();
- }
-
-}