OSDN Git Service

Merge "Fix invisible security method" into lmp-dev
authorJorim Jaggi <jjaggi@google.com>
Mon, 25 Aug 2014 16:09:11 +0000 (16:09 +0000)
committerAndroid (Google) Code Review <android-gerrit@google.com>
Mon, 25 Aug 2014 16:09:12 +0000 (16:09 +0000)
packages/Keyguard/src/com/android/keyguard/KeyguardPINView.java
packages/Keyguard/src/com/android/keyguard/KeyguardPatternView.java
packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java

index 66c30c7..55538a7 100644 (file)
@@ -85,6 +85,7 @@ public class KeyguardPINView extends KeyguardPinBasedInputView {
     @Override
     public void startAppearAnimation() {
         enableClipping(false);
+        setAlpha(1f);
         setTranslationY(mAppearAnimationUtils.getStartTranslation());
         animate()
                 .setDuration(500)
index 3b05d11..65c4ce2 100644 (file)
@@ -416,6 +416,7 @@ public class KeyguardPatternView extends LinearLayout implements KeyguardSecurit
     @Override
     public void startAppearAnimation() {
         enableClipping(false);
+        setAlpha(1f);
         setTranslationY(mAppearAnimationUtils.getStartTranslation());
         animate()
                 .setDuration(500)
@@ -444,7 +445,7 @@ public class KeyguardPatternView extends LinearLayout implements KeyguardSecurit
         mLockPatternView.clearPattern();
         animate()
                 .alpha(0f)
-                .translationY(-100)
+                .translationY(mDisappearYTranslation)
                 .setInterpolator(AnimationUtils.loadInterpolator(
                         mContext, android.R.interpolator.fast_out_linear_in))
                 .setDuration(100)
index e3f034d..57df1d8 100644 (file)
@@ -611,12 +611,35 @@ public abstract class BaseStatusBar extends SystemUI implements
                entry.expandedBig.findViewById(com.android.internal.R.id.media_action_area) != null;
     }
 
-    private void startAppNotificationSettingsActivity(String packageName, int appUid) {
-        Intent intent = new Intent(Settings.ACTION_APP_NOTIFICATION_SETTINGS);
+    private void startAppNotificationSettingsActivity(String packageName, final int appUid) {
+        final Intent intent = new Intent(Settings.ACTION_APP_NOTIFICATION_SETTINGS);
         intent.putExtra(Settings.EXTRA_APP_PACKAGE, packageName);
         intent.putExtra(Settings.EXTRA_APP_UID, appUid);
-        TaskStackBuilder.create(mContext).addNextIntentWithParentStack(intent)
-                .startActivities(null, new UserHandle(UserHandle.getUserId(appUid)));
+
+        final boolean keyguardShowing = mStatusBarKeyguardViewManager.isShowing();
+        dismissKeyguardThenExecute(new OnDismissAction() {
+            @Override
+            public boolean onDismiss() {
+                AsyncTask.execute(new Runnable() {
+                    public void run() {
+                        try {
+                            if (keyguardShowing) {
+                                ActivityManagerNative.getDefault()
+                                        .keyguardWaitingForActivityDrawn();
+                            }
+                            TaskStackBuilder.create(mContext)
+                                    .addNextIntentWithParentStack(intent)
+                                    .startActivities(null,
+                                            new UserHandle(UserHandle.getUserId(appUid)));
+                            overrideActivityPendingAppTransition(keyguardShowing);
+                        } catch (RemoteException e) {
+                        }
+                    }
+                });
+                animateCollapsePanels(CommandQueue.FLAG_EXCLUDE_NONE, true /* force */);
+                return true;
+            }
+        });
     }
 
     protected SwipeHelper.LongPressListener getNotificationLongClicker() {
@@ -1070,14 +1093,7 @@ public abstract class BaseStatusBar extends SystemUI implements
             final int appUidF = appUid;
             settingsButton.setOnClickListener(new View.OnClickListener() {
                 public void onClick(View v) {
-                    dismissKeyguardThenExecute(new OnDismissAction() {
-                        public boolean onDismiss() {
-                            startAppNotificationSettingsActivity(pkg, appUidF);
-                            animateCollapsePanels(CommandQueue.FLAG_EXCLUDE_NONE);
-                            visibilityChanged(false);
-                            return true;
-                        }
-                    });
+                    startAppNotificationSettingsActivity(pkg, appUidF);
                 }
             });
         } else {