From ae6f643b6883c70d7cd2c8d544ea46f90223a056 Mon Sep 17 00:00:00 2001 From: Serg Date: Thu, 8 Sep 2016 22:13:20 -0400 Subject: [PATCH] Corrected Android N Home and Recent Apps buttons action Auditors: @bbondy --- .../java/com/linkbubble/MainController.java | 19 ++++++++++++++----- .../main/java/com/linkbubble/MainService.java | 8 -------- .../main/java/com/linkbubble/Settings.java | 5 ----- .../com/linkbubble/ui/BubbleDraggable.java | 14 +++++++------- .../linkbubble/ui/BubbleFlowDraggable.java | 2 +- .../java/com/linkbubble/ui/CanvasView.java | 6 +++++- .../java/com/linkbubble/ui/ContentView.java | 14 +++++++------- .../com/linkbubble/ui/ExpandedActivity.java | 2 +- .../com/linkbubble/util/DownloadImage.java | 2 +- .../linkbubble/util/YouTubeEmbedHelper.java | 2 +- 10 files changed, 37 insertions(+), 37 deletions(-) diff --git a/Application/LinkBubble/src/main/java/com/linkbubble/MainController.java b/Application/LinkBubble/src/main/java/com/linkbubble/MainController.java index cd3003dea..2cc7a8c40 100644 --- a/Application/LinkBubble/src/main/java/com/linkbubble/MainController.java +++ b/Application/LinkBubble/src/main/java/com/linkbubble/MainController.java @@ -98,7 +98,16 @@ public static class EndExpandTransitionEvent { } public static class BeginCollapseTransitionEvent { + public BeginCollapseTransitionEvent() { + mFromCloseSystemDialogs = false; + } + + public BeginCollapseTransitionEvent(boolean fromCloseSystemDialogs) { + mFromCloseSystemDialogs = fromCloseSystemDialogs; + } + public float mPeriod; + public boolean mFromCloseSystemDialogs; } public static class EndCollapseTransitionEvent { @@ -812,7 +821,7 @@ public void onCloseSystemDialogs() { if (delta < 200) { return; } - switchToBubbleView(); + switchToBubbleView(true); } // Before this version select elements would crash WebView in a background service @@ -985,7 +994,7 @@ public void onSelected(ActionItem actionItem, boolean always) { } // L_WATCH: L currently lacks getRecentTasks(), so minimize here if (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT) { - MainController.get().switchToBubbleView(); + MainController.get().switchToBubbleView(false); } } } @@ -1292,10 +1301,10 @@ public void collapseBubbleFlow(long time) { mBubbleFlowDraggable.collapse(time, mOnBubbleFlowCollapseFinishedListener); } - public void switchToBubbleView() { + public void switchToBubbleView(boolean fromCloseSystemDialogs) { mCanAutoDisplayLink = false; if (MainController.get().getActiveTabCount() > 0) { - mBubbleDraggable.switchToBubbleView(); + mBubbleDraggable.switchToBubbleView(fromCloseSystemDialogs); } else { // If there's no tabs, ensuring pressing Home will cause the CanvasView to go away. Fix #448 MainApplication.postEvent(mContext, new MainController.EndCollapseTransitionEvent()); @@ -1321,7 +1330,7 @@ public void endAppPolling() { AppPoller.AppPollerListener mAppPollerListener = new AppPoller.AppPollerListener() { @Override public void onAppChanged() { - switchToBubbleView(); + switchToBubbleView(false); } }; diff --git a/Application/LinkBubble/src/main/java/com/linkbubble/MainService.java b/Application/LinkBubble/src/main/java/com/linkbubble/MainService.java index 7718ef5e9..6bc602c13 100644 --- a/Application/LinkBubble/src/main/java/com/linkbubble/MainService.java +++ b/Application/LinkBubble/src/main/java/com/linkbubble/MainService.java @@ -259,14 +259,6 @@ public void onReloadMainServiceEvent(ReloadMainServiceEvent event) { @Override public void onReceive(Context context, Intent myIntent) { if (myIntent.getAction().equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)) { - // TODO made a Nougat after SDK update. It's a fix for it to avoid delays on HOME and Recent Apps button click - if (Build.VERSION.SDK_INT >= 24) { - try { - Thread.sleep(300); - } catch (InterruptedException e) { - - } - } MainController.get().onCloseSystemDialogs(); } } diff --git a/Application/LinkBubble/src/main/java/com/linkbubble/Settings.java b/Application/LinkBubble/src/main/java/com/linkbubble/Settings.java index 7970c496b..f320ebc7e 100644 --- a/Application/LinkBubble/src/main/java/com/linkbubble/Settings.java +++ b/Application/LinkBubble/src/main/java/com/linkbubble/Settings.java @@ -856,11 +856,6 @@ public Set getFallbackRedirectHosts() { public boolean redirectUrlToBrowser(URL url) { String host = url.getHost(); - for(String redirectHost : mFallbackRedirectHosts) { - if (host.endsWith("." + redirectHost)) { - return true; - } - } String hostAlt = host.contains("www.") ? host.replace("www.", "") : "www." + host; return mFallbackRedirectHosts.contains(host) || mFallbackRedirectHosts.contains(hostAlt); diff --git a/Application/LinkBubble/src/main/java/com/linkbubble/ui/BubbleDraggable.java b/Application/LinkBubble/src/main/java/com/linkbubble/ui/BubbleDraggable.java index 07ae73df9..8b6b47429 100644 --- a/Application/LinkBubble/src/main/java/com/linkbubble/ui/BubbleDraggable.java +++ b/Application/LinkBubble/src/main/java/com/linkbubble/ui/BubbleDraggable.java @@ -112,8 +112,8 @@ public void onCancel() { }); } - public void switchToBubbleView() { - doAnimateToBubbleView(0); + public void switchToBubbleView(boolean fromCloseSystemDialogs) { + doAnimateToBubbleView(0, fromCloseSystemDialogs); } public void switchToExpandedView() { @@ -132,7 +132,7 @@ private void doSnapAction(Constant.BubbleAction action) { if (mMode == Mode.ContentView && action == Constant.BubbleAction.Close) { doAnimateToContentView(); } else { - doAnimateToBubbleView(0); + doAnimateToBubbleView(0, false); } } else { mMode = Mode.BubbleView; @@ -272,7 +272,7 @@ public void snapToBubbleView() { MainApplication.postEvent(getContext(), mEndCollapseTransitionEvent); } - private void doAnimateToBubbleView(int animTimeMs) { + private void doAnimateToBubbleView(int animTimeMs, boolean fromCloseSystemDialogs) { if (mAnimActive) { if (mMode == Mode.BubbleView) { return; @@ -331,7 +331,7 @@ public void onCancel() { mainController.collapseBubbleFlow((long) (contentPeriod * 1000)); mBeginCollapseTransitionEvent.mPeriod = contentPeriod; - MainApplication.postEvent(getContext(), mBeginCollapseTransitionEvent); + MainApplication.postEvent(getContext(), new MainController.BeginCollapseTransitionEvent(fromCloseSystemDialogs)); } private void doAnimateToContentView() { @@ -565,7 +565,7 @@ public void onActionUp(DraggableHelper.ReleaseEvent e) { doAnimateToContentView(); } else { CrashTracking.log("BubbleDraggable.configure(): onActionUp() - doAnimateToBubbleView()"); - doAnimateToBubbleView(0); + doAnimateToBubbleView(0, false); } } } @@ -644,7 +644,7 @@ public void update(float dt) { @Override public void onOrientationChanged() { if (mMode == Mode.BubbleView) { - doAnimateToBubbleView(1); + doAnimateToBubbleView(1, false); } else { switchToExpandedView(); } diff --git a/Application/LinkBubble/src/main/java/com/linkbubble/ui/BubbleFlowDraggable.java b/Application/LinkBubble/src/main/java/com/linkbubble/ui/BubbleFlowDraggable.java index cccc2fd78..7bf6ce599 100644 --- a/Application/LinkBubble/src/main/java/com/linkbubble/ui/BubbleFlowDraggable.java +++ b/Application/LinkBubble/src/main/java/com/linkbubble/ui/BubbleFlowDraggable.java @@ -76,7 +76,7 @@ public void configure(EventHandler eventHandler) { @Override public void onCenterItemClicked(BubbleFlowView sender, View view) { try { - MainController.get().switchToBubbleView(); + MainController.get().switchToBubbleView(false); } catch (NullPointerException exc) { CrashTracking.logHandledException(exc); diff --git a/Application/LinkBubble/src/main/java/com/linkbubble/ui/CanvasView.java b/Application/LinkBubble/src/main/java/com/linkbubble/ui/CanvasView.java index a11025cf9..97a1c62b8 100644 --- a/Application/LinkBubble/src/main/java/com/linkbubble/ui/CanvasView.java +++ b/Application/LinkBubble/src/main/java/com/linkbubble/ui/CanvasView.java @@ -12,6 +12,7 @@ import android.graphics.PixelFormat; import android.graphics.Rect; import android.graphics.drawable.Drawable; +import android.os.Build; import android.util.Log; import android.view.Gravity; import android.view.LayoutInflater; @@ -455,7 +456,10 @@ public void onBeginCollapseTransition(MainController.BeginCollapseTransitionEven fadeOut(); } - MainApplication.postEvent(getContext(), mMinimizeExpandedActivityEvent); + // TODO: replace 24 with Android N version once we update an SDK + if (Build.VERSION.SDK_INT < 24 || !e.mFromCloseSystemDialogs) { + MainApplication.postEvent(getContext(), mMinimizeExpandedActivityEvent); + } } @SuppressWarnings("unused") diff --git a/Application/LinkBubble/src/main/java/com/linkbubble/ui/ContentView.java b/Application/LinkBubble/src/main/java/com/linkbubble/ui/ContentView.java index 1018398ec..d81d64d10 100644 --- a/Application/LinkBubble/src/main/java/com/linkbubble/ui/ContentView.java +++ b/Application/LinkBubble/src/main/java/com/linkbubble/ui/ContentView.java @@ -301,7 +301,7 @@ public void onSelected(ActionItem actionItem) { // L_WATCH: L currently lacks getRecentTasks(), so minimize here if (isCopyToClipboardAction == false && Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT) { - MainController.get().switchToBubbleView(); + MainController.get().switchToBubbleView(false); } //if (closeBubbleOnShare && isCopyToClipboardAction == false && MainController.get() != null) { @@ -821,7 +821,7 @@ public boolean shouldOverrideUrlLoading(String urlAsString, boolean viaUserInput if (urlAsString.startsWith("tel:")) { Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse(urlAsString)); if (MainApplication.loadIntent(getContext(), intent, urlAsString, mInitialUrlLoadStartTime)) { - MainController.get().switchToBubbleView(); + MainController.get().switchToBubbleView(false); } mConsecutiveRedirectCount = 0; return true; @@ -1558,7 +1558,7 @@ public void onAppOpened() { MainController.get().closeTab(mOwnerTabView, true, false); // L_WATCH: L currently lacks getRecentTasks(), so minimize here if (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT) { - MainController.get().switchToBubbleView(); + MainController.get().switchToBubbleView(false); } } } @@ -1756,7 +1756,7 @@ public boolean onMenuItemClick(MenuItem item) { Intent intent = new Intent(context, SettingsActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); context.startActivity(intent); - MainController.get().switchToBubbleView(); + MainController.get().switchToBubbleView(false); break; } } @@ -1792,7 +1792,7 @@ private void onDownloadStart(String urlAsString) { MainController.get().closeTab(mOwnerTabView, true, false); // L_WATCH: L currently lacks getRecentTasks(), so minimize here if (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT) { - MainController.get().switchToBubbleView(); + MainController.get().switchToBubbleView(false); } } } @@ -2294,7 +2294,7 @@ private boolean openInBrowser(String urlAsString, boolean canShowUndoPrompt) { MainController.get().closeTab(mOwnerTabView, MainController.get().contentViewShowing(), canShowUndoPrompt); // L_WATCH: L currently lacks getRecentTasks(), so minimize here if (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT) { - MainController.get().switchToBubbleView(); + MainController.get().switchToBubbleView(false); } return true; } @@ -2318,7 +2318,7 @@ private boolean openInApp(ResolveInfo resolveInfo, String urlAsString) { // L_WATCH: L currently lacks getRecentTasks(), so minimize here if (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT && null != mainController) { - mainController.switchToBubbleView(); + mainController.switchToBubbleView(false); } return true; } diff --git a/Application/LinkBubble/src/main/java/com/linkbubble/ui/ExpandedActivity.java b/Application/LinkBubble/src/main/java/com/linkbubble/ui/ExpandedActivity.java index 60584b6bf..cba3ee5c4 100755 --- a/Application/LinkBubble/src/main/java/com/linkbubble/ui/ExpandedActivity.java +++ b/Application/LinkBubble/src/main/java/com/linkbubble/ui/ExpandedActivity.java @@ -288,7 +288,7 @@ void minimize() { } void showFileBrowser(final String[] acceptTypes, ValueCallback filePathCallback) { - MainController.get().switchToBubbleView(); + MainController.get().switchToBubbleView(false); mFilePathCallback = filePathCallback; Runnable runnable = new Runnable() { diff --git a/Application/LinkBubble/src/main/java/com/linkbubble/util/DownloadImage.java b/Application/LinkBubble/src/main/java/com/linkbubble/util/DownloadImage.java index 1858fd2ff..9e8821d36 100644 --- a/Application/LinkBubble/src/main/java/com/linkbubble/util/DownloadImage.java +++ b/Application/LinkBubble/src/main/java/com/linkbubble/util/DownloadImage.java @@ -74,7 +74,7 @@ public void onActionClick() { intent.setDataAndType(imageUri, "image/*"); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); mContext.startActivity(intent); - MainController.get().switchToBubbleView(); + MainController.get().switchToBubbleView(false); } @Override diff --git a/Application/LinkBubble/src/main/java/com/linkbubble/util/YouTubeEmbedHelper.java b/Application/LinkBubble/src/main/java/com/linkbubble/util/YouTubeEmbedHelper.java index e555a9ce2..0347313de 100644 --- a/Application/LinkBubble/src/main/java/com/linkbubble/util/YouTubeEmbedHelper.java +++ b/Application/LinkBubble/src/main/java/com/linkbubble/util/YouTubeEmbedHelper.java @@ -144,7 +144,7 @@ private boolean loadYouTubeVideo(String id) { mYouTubeResolveInfo.activityInfo.name, Config.YOUTUBE_WATCH_PREFIX + id, -1, true)) { // L_WATCH: L currently lacks getRecentTasks(), so minimize here if (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT) { - MainController.get().switchToBubbleView(); + MainController.get().switchToBubbleView(false); } return true; }