Эх сурвалжийг харах

fix double pin entry on start

tobiasKaminsky 10 жил өмнө
parent
commit
5def3658a9

+ 4 - 3
src/com/owncloud/android/authentication/PinCheck.java

@@ -1,25 +1,26 @@
 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;
 
 public class PinCheck extends Activity {
 
     private static Long timestamp = 0l;
+    private static Long lastStart = 0l;
     
     public static void setUnlockTimestamp() {
         timestamp = System.currentTimeMillis();
     }
 
     public static boolean checkIfPinEntry(){
-        if ((System.currentTimeMillis() - timestamp) > 10000){
+        if ((System.currentTimeMillis() - timestamp) > 10000 &&
+            (System.currentTimeMillis() - lastStart) > 10000){
             SharedPreferences appPrefs = PreferenceManager.getDefaultSharedPreferences(MainApp.getAppContext());
             if (appPrefs.getBoolean("set_pincode", false)) {
+                lastStart = System.currentTimeMillis();
                 return true;
             }
         }

+ 0 - 9
src/com/owncloud/android/ui/activity/FileDisplayActivity.java

@@ -25,7 +25,6 @@ import android.accounts.Account;
 import android.accounts.AccountManager;
 import android.accounts.AuthenticatorException;
 import android.accounts.OperationCanceledException;
-import android.annotation.SuppressLint;
 import android.annotation.TargetApi;
 import android.app.AlertDialog;
 import android.app.Dialog;
@@ -178,12 +177,6 @@ OnSslUntrustedCertListener, OnEnforceableRefreshListener {
             startActivity(i);
         }
         
-//        if (mUnlocked == false){
-//            checkIfRequestPin(savedInstanceState);
-//        } else {
-//            mUnlocked = false;
-//        }
-        
         /// grant that FileObserverService is watching favorite files
         if (savedInstanceState == null) {
             Intent initObserversIntent = FileObserverService.makeInitIntent(this);
@@ -816,9 +809,7 @@ OnSslUntrustedCertListener, OnEnforceableRefreshListener {
             i.putExtra(PinCodeActivity.EXTRA_ACTIVITY, "FileDisplayActivity");
             startActivity(i);
         }
-    }
     
-    private void resume(){
         // refresh list of files
         refreshListOfFilesFragment();
 

+ 9 - 17
src/com/owncloud/android/ui/activity/PinCodeActivity.java

@@ -18,15 +18,6 @@ package com.owncloud.android.ui.activity;
 
 import java.util.Arrays;
 
-import com.actionbarsherlock.app.ActionBar;
-import com.actionbarsherlock.app.SherlockFragmentActivity;
-import com.owncloud.android.MainApp;
-import com.owncloud.android.R;
-import com.owncloud.android.authentication.PinCheck;
-import com.owncloud.android.utils.DisplayUtils;
-
-import android.app.AlertDialog;
-import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.SharedPreferences;
 import android.os.Bundle;
@@ -43,6 +34,12 @@ import android.widget.EditText;
 import android.widget.TextView;
 import android.widget.Toast;
 
+import com.actionbarsherlock.app.ActionBar;
+import com.actionbarsherlock.app.SherlockFragmentActivity;
+import com.owncloud.android.R;
+import com.owncloud.android.authentication.PinCheck;
+import com.owncloud.android.utils.DisplayUtils;
+
 public class PinCodeActivity extends SherlockFragmentActivity {
 
   
@@ -368,17 +365,12 @@ public class PinCodeActivity extends SherlockFragmentActivity {
                         mPinCodeChecked = checkPincode();
                     }
                     
-//                    if (mPinCodeChecked && 
-//                            ( mActivity.equals("FileDisplayActivity") || mActivity.equals("PreviewImageActivity") ) ){
-//                        Intent data = new Intent();
-//                        data.putExtra(EXTRA_PIN_CORRECT, true);
-//                        setResult(RESULT_FIRST_USER, data);
-//                        finish();
-                    
-                    if (mPinCodeChecked){
+                    if (mPinCodeChecked && 
+                       (mActivity.equals("FileDisplayActivity") || mActivity.equals("PreviewImageActivity"))){
                         PinCheck.setUnlockTimestamp();
                         finish();
                     } else if (mPinCodeChecked){
+                        PinCheck.setUnlockTimestamp();
                         
                         Intent intent = getIntent();
                         String newState = intent.getStringExtra(EXTRA_NEW_STATE);

+ 3 - 0
src/com/owncloud/android/ui/activity/Preferences.java

@@ -50,6 +50,7 @@ import com.owncloud.android.MainApp;
 import com.owncloud.android.R;
 import com.owncloud.android.authentication.AccountUtils;
 import com.owncloud.android.authentication.AuthenticatorActivity;
+import com.owncloud.android.authentication.PinCheck;
 import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.db.DbHandler;
 import com.owncloud.android.lib.common.utils.Log_OC;
@@ -308,6 +309,8 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa
     @Override
     protected void onPause() {
         super.onPause();
+        
+        PinCheck.setUnlockTimestamp();
     }
 
     @Override

+ 4 - 9
src/com/owncloud/android/ui/preview/PreviewImageActivity.java

@@ -17,20 +17,17 @@
 package com.owncloud.android.ui.preview;
 
 import android.annotation.SuppressLint;
-import android.annotation.TargetApi;
 import android.content.BroadcastReceiver;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.content.ServiceConnection;
-import android.content.SharedPreferences;
 import android.os.Build;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.IBinder;
 import android.os.Message;
-import android.preference.PreferenceManager;
 import android.support.v4.view.ViewPager;
 import android.view.View;
 
@@ -110,7 +107,7 @@ ViewPager.OnPageChangeListener, OnRemoteOperationListener {
         // PIN CODE request
         if (PinCheck.checkIfPinEntry()){
             Intent i = new Intent(MainApp.getAppContext(), PinCodeActivity.class);
-            i.putExtra(PinCodeActivity.EXTRA_ACTIVITY, "FileDisplayActivity");
+            i.putExtra(PinCodeActivity.EXTRA_ACTIVITY, "PreviewImageActivity");
             startActivity(i);
         }
 
@@ -332,12 +329,10 @@ ViewPager.OnPageChangeListener, OnRemoteOperationListener {
         
         if (PinCheck.checkIfPinEntry()){
             Intent i = new Intent(MainApp.getAppContext(), PinCodeActivity.class);
-            i.putExtra(PinCodeActivity.EXTRA_ACTIVITY, "FileDisplayActivity");
+            i.putExtra(PinCodeActivity.EXTRA_ACTIVITY, "PreviewImageActivity");
             startActivity(i);
         }
-    }
-      
-    private void resume(){
+        
         //Log_OC.e(TAG, "ACTIVITY, ONRESUME");
         mDownloadFinishReceiver = new DownloadFinishReceiver();
         
@@ -345,7 +340,7 @@ ViewPager.OnPageChangeListener, OnRemoteOperationListener {
         filter.addAction(FileDownloader.getDownloadAddedMessage());
         registerReceiver(mDownloadFinishReceiver, filter);
     }
-
+  
     @Override
     protected void onPostResume() {
         //Log_OC.e(TAG, "ACTIVITY, ONPOSTRESUME");