diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/launcher3/DragLayer.java | 8 | ||||
-rw-r--r-- | src/com/android/launcher3/GelIntegrationHelper.java | 25 |
2 files changed, 26 insertions, 7 deletions
diff --git a/src/com/android/launcher3/DragLayer.java b/src/com/android/launcher3/DragLayer.java index 3ff4293af..2dde8e402 100644 --- a/src/com/android/launcher3/DragLayer.java +++ b/src/com/android/launcher3/DragLayer.java @@ -826,7 +826,13 @@ public class DragLayer extends FrameLayout implements ViewGroup.OnHierarchyChang Workspace workspace = mLauncher.getWorkspace(); int width = getMeasuredWidth(); Rect childRect = new Rect(); - getDescendantRectRelativeToSelf(workspace.getChildAt(0), childRect); + int firstWorkspaceIndex = 0; + if (mLauncher.hasCustomContentToLeft() && workspace.getChildCount() > 1) { + firstWorkspaceIndex = 1; + } + + getDescendantRectRelativeToSelf(workspace.getChildAt(firstWorkspaceIndex), + childRect); int page = workspace.getNextPage(); final boolean isRtl = isLayoutRtl(); diff --git a/src/com/android/launcher3/GelIntegrationHelper.java b/src/com/android/launcher3/GelIntegrationHelper.java index f43e7e6a0..4d2c4917b 100644 --- a/src/com/android/launcher3/GelIntegrationHelper.java +++ b/src/com/android/launcher3/GelIntegrationHelper.java @@ -2,8 +2,11 @@ package com.android.launcher3; import android.app.Activity; import android.app.ActivityManager; +import android.app.SearchManager; import android.content.ComponentName; +import android.content.Context; import android.content.Intent; +import android.content.pm.PackageManager; import android.service.gesture.EdgeGestureManager; import com.android.internal.util.gesture.EdgeGesturePosition; @@ -15,9 +18,6 @@ import java.util.List; * in CyanogenMod. */ public class GelIntegrationHelper { - // The Intent for the search activity (resolves to Google Now when installed) - public final static String INTENT_ACTION_ASSIST = "android.intent.action.ASSIST"; - private static final String GEL_ACTIVITY = "com.google.android.velvet.ui.VelvetActivity"; private static final String GEL_PACKAGE_NAME = "com.google.android.googlequicksearchbox"; @@ -78,13 +78,26 @@ public class GelIntegrationHelper { int edge = isLayoutRtl ? EDGE_GESTURE_SERVICE_LEFT_EDGE : EDGE_GESTURE_SERVICE_RIGHT_EDGE; edgeGestureManager.updateEdgeGestureActivationListener(mEdgeGestureActivationListener, edge); + // Attempt to use Intent.ACTION_ASSIST, if supported + Intent intent = new Intent(Intent.ACTION_ASSIST); + if (!isIntentSupported(launcherActivity, intent)) { + // Start the Global Search Activity + final SearchManager searchManager = + (SearchManager) launcherActivity.getSystemService(Context.SEARCH_SERVICE); + ComponentName globalSearchActivity = searchManager.getGlobalSearchActivity(); + intent = new Intent(); + intent.setComponent(globalSearchActivity); + } - // Start the Google Now Activity - Intent i = new Intent(INTENT_ACTION_ASSIST); - launcherActivity.startActivity(i); + launcherActivity.startActivity(intent); launcherActivity.overridePendingTransition(0, R.anim.exit_out_right); } + private boolean isIntentSupported(Context context, Intent intent) { + PackageManager pm = context.getPackageManager(); + return pm.resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY) != null; + } + /** * Handle necessary cleanup and reset tasks for GEL integration, to be called from onResume. */ |