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

Pin: use activity paused also, as stopped is sometimes too slow

Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
tobiasKaminsky 3 жил өмнө
parent
commit
fa73725815

+ 1 - 1
src/main/java/com/owncloud/android/MainApp.java

@@ -21,7 +21,6 @@
  */
 package com.owncloud.android;
 
-import android.Manifest;
 import android.annotation.SuppressLint;
 import android.app.Activity;
 import android.app.ActivityManager;
@@ -325,6 +324,7 @@ public class MainApp extends MultiDexApplication implements HasAndroidInjector {
             @Override
             public void onActivityPaused(@NonNull Activity activity) {
                 Log_OC.d(activity.getClass().getSimpleName(), "onPause() ending");
+                passCodeManager.onActivityPaused(activity);
             }
 
             @Override

+ 10 - 2
src/main/java/com/owncloud/android/authentication/PassCodeManager.java

@@ -30,6 +30,7 @@ import android.view.WindowManager;
 import com.nextcloud.client.preferences.AppPreferences;
 import com.nextcloud.client.preferences.AppPreferencesImpl;
 import com.owncloud.android.MainApp;
+import com.owncloud.android.lib.common.utils.Log_OC;
 import com.owncloud.android.ui.activity.PassCodeActivity;
 import com.owncloud.android.ui.activity.RequestCredentialsActivity;
 import com.owncloud.android.ui.activity.SettingsActivity;
@@ -58,7 +59,7 @@ public final class PassCodeManager {
     private static final int PASS_CODE_TIMEOUT = 5000;
 
     private AppPreferences preferences;
-    private int visibleActivitiesCounter;
+    private int visibleActivitiesCounter = 0;
 
 
     public PassCodeManager(AppPreferences preferences) {
@@ -113,6 +114,13 @@ public final class PassCodeManager {
         return askedForPin;
     }
 
+    public void onActivityPaused(Activity activity) {
+        if (visibleActivitiesCounter > 0) {
+            visibleActivitiesCounter--;
+            Log_OC.d("Timestamp", "counter: " + visibleActivitiesCounter);
+        }
+    }
+
     public void onActivityStopped(Activity activity) {
         if (visibleActivitiesCounter > 0) {
             visibleActivitiesCounter--;
@@ -120,7 +128,7 @@ public final class PassCodeManager {
 
         PowerManager powerMgr = (PowerManager) activity.getSystemService(Context.POWER_SERVICE);
         if ((isPassCodeEnabled() || deviceCredentialsAreEnabled(activity)) && powerMgr != null
-                && !powerMgr.isScreenOn()) {
+            && !powerMgr.isScreenOn()) {
             activity.moveTaskToBack(true);
         }
     }