mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-19 10:48:19 +00:00
Merge "Adding support for overriding long-press menu in Launcher" into sc-v2-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
bb6bb5bbbd
@@ -16,36 +16,12 @@
|
||||
|
||||
<com.android.launcher3.shortcuts.DeepShortcutView
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:launcher="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="@dimen/bg_popup_item_width"
|
||||
android:layout_height="@dimen/bg_popup_item_height"
|
||||
android:elevation="@dimen/deep_shortcuts_elevation"
|
||||
android:background="@drawable/middle_item_primary"
|
||||
android:theme="@style/PopupItem" >
|
||||
|
||||
<com.android.launcher3.BubbleTextView
|
||||
style="@style/BaseIconUnBounded"
|
||||
android:id="@+id/bubble_text"
|
||||
android:background="?android:attr/selectableItemBackground"
|
||||
android:gravity="start|center_vertical"
|
||||
android:textAlignment="viewStart"
|
||||
android:paddingStart="@dimen/deep_shortcuts_text_padding_start"
|
||||
android:paddingEnd="@dimen/popup_padding_end"
|
||||
android:textSize="14sp"
|
||||
android:minLines="1"
|
||||
android:maxLines="2"
|
||||
android:ellipsize="end"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
launcher:iconDisplay="shortcut_popup"
|
||||
launcher:layoutHorizontal="true"
|
||||
android:focusable="false" />
|
||||
|
||||
<View
|
||||
android:id="@+id/icon"
|
||||
android:layout_width="@dimen/system_shortcut_icon_size"
|
||||
android:layout_height="@dimen/system_shortcut_icon_size"
|
||||
android:layout_marginStart="@dimen/system_shortcut_margin_start"
|
||||
android:layout_gravity="start|center_vertical"
|
||||
android:backgroundTint="?android:attr/textColorPrimary"/>
|
||||
<include layout="@layout/system_shortcut_content" />
|
||||
|
||||
</com.android.launcher3.shortcuts.DeepShortcutView>
|
||||
|
||||
44
res/layout/system_shortcut_content.xml
Normal file
44
res/layout/system_shortcut_content.xml
Normal file
@@ -0,0 +1,44 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2021 The Android Open Source Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<merge
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:launcher="http://schemas.android.com/apk/res-auto" >
|
||||
|
||||
<com.android.launcher3.BubbleTextView
|
||||
style="@style/BaseIconUnBounded"
|
||||
android:id="@+id/bubble_text"
|
||||
android:background="?android:attr/selectableItemBackground"
|
||||
android:gravity="start|center_vertical"
|
||||
android:textAlignment="viewStart"
|
||||
android:paddingStart="@dimen/deep_shortcuts_text_padding_start"
|
||||
android:paddingEnd="@dimen/popup_padding_end"
|
||||
android:textSize="14sp"
|
||||
android:minLines="1"
|
||||
android:maxLines="2"
|
||||
android:ellipsize="end"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
launcher:iconDisplay="shortcut_popup"
|
||||
launcher:layoutHorizontal="true"
|
||||
android:focusable="false" />
|
||||
|
||||
<View
|
||||
android:id="@+id/icon"
|
||||
android:layout_width="@dimen/system_shortcut_icon_size"
|
||||
android:layout_height="@dimen/system_shortcut_icon_size"
|
||||
android:layout_marginStart="@dimen/system_shortcut_margin_start"
|
||||
android:layout_gravity="start|center_vertical"
|
||||
android:backgroundTint="?android:attr/textColorPrimary"/>
|
||||
</merge>
|
||||
@@ -80,6 +80,7 @@ import android.content.res.Configuration;
|
||||
import android.database.sqlite.SQLiteDatabase;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Rect;
|
||||
import android.graphics.RectF;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.CancellationSignal;
|
||||
@@ -2870,13 +2871,26 @@ public class Launcher extends StatefulActivity<LauncherState> implements Launche
|
||||
if (Utilities.IS_RUNNING_IN_TEST_HARNESS) {
|
||||
Log.d(TestProtocol.PERMANENT_DIAG_TAG, "Opening options popup on key up");
|
||||
}
|
||||
OptionsPopupView.showDefaultOptions(this, -1, -1);
|
||||
showDefaultOptions(-1, -1);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return super.onKeyUp(keyCode, event);
|
||||
}
|
||||
|
||||
/**
|
||||
* Shows the default options popup
|
||||
*/
|
||||
public void showDefaultOptions(float x, float y) {
|
||||
float halfSize = getResources().getDimension(R.dimen.options_menu_thumb_size) / 2;
|
||||
if (x < 0 || y < 0) {
|
||||
x = mDragLayer.getWidth() / 2;
|
||||
y = mDragLayer.getHeight() / 2;
|
||||
}
|
||||
RectF target = new RectF(x - halfSize, y - halfSize, x + halfSize, y + halfSize);
|
||||
OptionsPopupView.show(this, target, OptionsPopupView.getOptions(this), false);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void collectStateHandlers(List<StateHandler> out) {
|
||||
out.add(getAllAppsController());
|
||||
|
||||
@@ -255,6 +255,10 @@ public final class FeatureFlags {
|
||||
"WIDGETS_IN_LAUNCHER_PREVIEW", true,
|
||||
"Enables widgets in Launcher preview for the Wallpaper app.");
|
||||
|
||||
public static final BooleanFlag QUICK_WALLPAPER_PICKER = getDebugFlag(
|
||||
"QUICK_WALLPAPER_PICKER", false,
|
||||
"Shows quick wallpaper picker in long-press menu");
|
||||
|
||||
public static void initialize(Context context) {
|
||||
synchronized (sDebugFlags) {
|
||||
for (DebugFlag flag : sDebugFlags) {
|
||||
|
||||
@@ -41,7 +41,6 @@ import com.android.launcher3.Workspace;
|
||||
import com.android.launcher3.dragndrop.DragLayer;
|
||||
import com.android.launcher3.testing.TestLogging;
|
||||
import com.android.launcher3.testing.TestProtocol;
|
||||
import com.android.launcher3.views.OptionsPopupView;
|
||||
|
||||
/**
|
||||
* Helper class to handle touch on empty space in workspace and show options popup on long press
|
||||
@@ -175,7 +174,7 @@ public class WorkspaceTouchListener extends GestureDetector.SimpleOnGestureListe
|
||||
mWorkspace.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS,
|
||||
HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING);
|
||||
mLauncher.getStatsLogManager().logger().log(LAUNCHER_WORKSPACE_LONGPRESS);
|
||||
OptionsPopupView.showDefaultOptions(mLauncher, mTouchDownPoint.x, mTouchDownPoint.y);
|
||||
mLauncher.showDefaultOptions(mTouchDownPoint.x, mTouchDownPoint.y);
|
||||
} else {
|
||||
cancelLongPress();
|
||||
}
|
||||
|
||||
@@ -176,16 +176,6 @@ public class OptionsPopupView extends ArrowPopup
|
||||
return launcher.findViewById(R.id.popup_container);
|
||||
}
|
||||
|
||||
public static void showDefaultOptions(Launcher launcher, float x, float y) {
|
||||
float halfSize = launcher.getResources().getDimension(R.dimen.options_menu_thumb_size) / 2;
|
||||
if (x < 0 || y < 0) {
|
||||
x = launcher.getDragLayer().getWidth() / 2;
|
||||
y = launcher.getDragLayer().getHeight() / 2;
|
||||
}
|
||||
RectF target = new RectF(x - halfSize, y - halfSize, x + halfSize, y + halfSize);
|
||||
show(launcher, target, getOptions(launcher), false);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the list of supported actions
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user