mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-20 03:08:19 +00:00
Merge "Add icon to desktop tile in overview" into tm-qpr-dev am: 90d0019447
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/21359254 Change-Id: I5ac65e5dcac7a7501258b4cf62eac73de0193365 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -24,6 +24,11 @@
|
||||
android:defaultFocusHighlightEnabled="false"
|
||||
android:focusable="true">
|
||||
|
||||
<View
|
||||
android:id="@+id/background"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
|
||||
<!--
|
||||
TODO(b249371338): DesktopTaskView extends from TaskView. TaskView expects TaskThumbnailView
|
||||
and IconView with these ids to be present. Need to refactor RecentsView to accept child
|
||||
@@ -38,10 +43,9 @@
|
||||
|
||||
<com.android.quickstep.views.IconView
|
||||
android:id="@+id/icon"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:layout_width="@dimen/task_thumbnail_icon_size"
|
||||
android:layout_height="@dimen/task_thumbnail_icon_size"
|
||||
android:focusable="false"
|
||||
android:importantForAccessibility="no"
|
||||
android:visibility="gone" />
|
||||
android:importantForAccessibility="no" />
|
||||
|
||||
</com.android.quickstep.views.DesktopTaskView>
|
||||
|
||||
@@ -24,6 +24,8 @@ import static com.android.launcher3.util.SplitConfigurationOptions.STAGE_POSITIO
|
||||
import android.content.Context;
|
||||
import android.graphics.Point;
|
||||
import android.graphics.Rect;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.graphics.drawable.LayerDrawable;
|
||||
import android.graphics.drawable.ShapeDrawable;
|
||||
import android.graphics.drawable.shapes.RoundRectShape;
|
||||
import android.os.SystemProperties;
|
||||
@@ -31,14 +33,16 @@ import android.util.AttributeSet;
|
||||
import android.util.Log;
|
||||
import android.util.SparseArray;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
import android.widget.FrameLayout;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.android.launcher3.DeviceProfile;
|
||||
import com.android.launcher3.Launcher;
|
||||
import com.android.launcher3.R;
|
||||
import com.android.launcher3.Utilities;
|
||||
import com.android.launcher3.touch.PagedOrientationHandler;
|
||||
import com.android.launcher3.util.RunnableList;
|
||||
import com.android.quickstep.RecentsModel;
|
||||
import com.android.quickstep.SystemUiProxy;
|
||||
@@ -87,7 +91,7 @@ public class DesktopTaskView extends TaskView {
|
||||
|
||||
private final ArrayList<CancellableTask<?>> mPendingThumbnailRequests = new ArrayList<>();
|
||||
|
||||
private ShapeDrawable mBackground;
|
||||
private View mBackgroundView;
|
||||
|
||||
public DesktopTaskView(Context context) {
|
||||
this(context, null);
|
||||
@@ -104,14 +108,28 @@ public class DesktopTaskView extends TaskView {
|
||||
@Override
|
||||
protected void onFinishInflate() {
|
||||
super.onFinishInflate();
|
||||
|
||||
mBackgroundView = findViewById(R.id.background);
|
||||
|
||||
int topMarginPx =
|
||||
mActivity.getDeviceProfile().overviewTaskThumbnailTopMarginPx;
|
||||
FrameLayout.LayoutParams params = (LayoutParams) mBackgroundView.getLayoutParams();
|
||||
params.topMargin = topMarginPx;
|
||||
mBackgroundView.setLayoutParams(params);
|
||||
|
||||
float[] outerRadii = new float[8];
|
||||
Arrays.fill(outerRadii, getTaskCornerRadius());
|
||||
RoundRectShape shape = new RoundRectShape(outerRadii, null, null);
|
||||
mBackground = new ShapeDrawable(shape);
|
||||
mBackground.setTint(getResources().getColor(android.R.color.system_neutral2_300,
|
||||
ShapeDrawable background = new ShapeDrawable(shape);
|
||||
background.setTint(getResources().getColor(android.R.color.system_neutral2_300,
|
||||
getContext().getTheme()));
|
||||
// TODO(b/244348395): this should be wallpaper
|
||||
setBackground(mBackground);
|
||||
mBackgroundView.setBackground(background);
|
||||
|
||||
Drawable icon = getResources().getDrawable(R.drawable.ic_desktop, getContext().getTheme());
|
||||
Drawable iconBackground = getResources().getDrawable(R.drawable.bg_circle,
|
||||
getContext().getTheme());
|
||||
mIconView.setDrawable(new LayerDrawable(new Drawable[]{iconBackground, icon}));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -252,20 +270,9 @@ public class DesktopTaskView extends TaskView {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setOrientationState(RecentsOrientedState orientationState) {
|
||||
// TODO(b/249371338): this copies logic from TaskView
|
||||
PagedOrientationHandler orientationHandler = orientationState.getOrientationHandler();
|
||||
boolean isRtl = getLayoutDirection() == LAYOUT_DIRECTION_RTL;
|
||||
protected void setThumbnailOrientation(RecentsOrientedState orientationState) {
|
||||
DeviceProfile deviceProfile = mActivity.getDeviceProfile();
|
||||
|
||||
LayoutParams iconParams = (LayoutParams) mIconView.getLayoutParams();
|
||||
|
||||
int thumbnailTopMargin = deviceProfile.overviewTaskThumbnailTopMarginPx;
|
||||
int taskIconHeight = deviceProfile.overviewTaskIconSizePx;
|
||||
int taskMargin = deviceProfile.overviewTaskMarginPx;
|
||||
|
||||
orientationHandler.setTaskIconParams(iconParams, taskMargin, taskIconHeight,
|
||||
thumbnailTopMargin, isRtl);
|
||||
|
||||
LayoutParams snapshotParams = (LayoutParams) mSnapshotView.getLayoutParams();
|
||||
snapshotParams.topMargin = thumbnailTopMargin;
|
||||
@@ -374,6 +381,9 @@ public class DesktopTaskView extends TaskView {
|
||||
|
||||
setMeasuredDimension(containerWidth, containerHeight);
|
||||
|
||||
int thumbnailTopMarginPx = mActivity.getDeviceProfile().overviewTaskThumbnailTopMarginPx;
|
||||
containerHeight -= thumbnailTopMarginPx;
|
||||
|
||||
int thumbnails = mSnapshotViewMap.size();
|
||||
if (thumbnails == 0) {
|
||||
return;
|
||||
@@ -416,6 +426,8 @@ public class DesktopTaskView extends TaskView {
|
||||
}
|
||||
int taskX = (int) (positionInParent.x * scaleWidth);
|
||||
int taskY = (int) (positionInParent.y * scaleHeight);
|
||||
// move task down by margin size
|
||||
taskY += thumbnailTopMarginPx;
|
||||
thumbnailView.setX(taskX);
|
||||
thumbnailView.setY(taskY);
|
||||
|
||||
@@ -439,9 +451,9 @@ public class DesktopTaskView extends TaskView {
|
||||
mFullscreenProgress = progress;
|
||||
if (mFullscreenProgress > 0) {
|
||||
// Don't show background while we are transitioning to/from fullscreen
|
||||
setBackground(null);
|
||||
mBackgroundView.setVisibility(INVISIBLE);
|
||||
} else {
|
||||
setBackground(mBackground);
|
||||
mBackgroundView.setVisibility(VISIBLE);
|
||||
}
|
||||
for (int i = 0; i < mSnapshotViewMap.size(); i++) {
|
||||
TaskThumbnailView thumbnailView = mSnapshotViewMap.valueAt(i);
|
||||
|
||||
@@ -996,6 +996,11 @@ public class TaskView extends FrameLayout implements Reusable {
|
||||
}
|
||||
|
||||
public void setOrientationState(RecentsOrientedState orientationState) {
|
||||
setIconOrientation(orientationState);
|
||||
setThumbnailOrientation(orientationState);
|
||||
}
|
||||
|
||||
protected void setIconOrientation(RecentsOrientedState orientationState) {
|
||||
PagedOrientationHandler orientationHandler = orientationState.getOrientationHandler();
|
||||
boolean isRtl = getLayoutDirection() == LAYOUT_DIRECTION_RTL;
|
||||
DeviceProfile deviceProfile = mActivity.getDeviceProfile();
|
||||
@@ -1016,6 +1021,11 @@ public class TaskView extends FrameLayout implements Reusable {
|
||||
int iconDrawableSize = isGridTask ? deviceProfile.overviewTaskIconDrawableSizeGridPx
|
||||
: deviceProfile.overviewTaskIconDrawableSizePx;
|
||||
mIconView.setDrawableSize(iconDrawableSize, iconDrawableSize);
|
||||
}
|
||||
|
||||
protected void setThumbnailOrientation(RecentsOrientedState orientationState) {
|
||||
DeviceProfile deviceProfile = mActivity.getDeviceProfile();
|
||||
int thumbnailTopMargin = deviceProfile.overviewTaskThumbnailTopMarginPx;
|
||||
|
||||
LayoutParams snapshotParams = (LayoutParams) mSnapshotView.getLayoutParams();
|
||||
snapshotParams.topMargin = thumbnailTopMargin;
|
||||
|
||||
31
res/drawable/ic_desktop.xml
Normal file
31
res/drawable/ic_desktop.xml
Normal file
@@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
~ Copyright (C) 2023 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.
|
||||
-->
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="32.0dp"
|
||||
android:height="32.0dp"
|
||||
android:viewportWidth="32.0"
|
||||
android:viewportHeight="32.0"
|
||||
>
|
||||
<group android:scaleX="0.5"
|
||||
android:scaleY="0.5"
|
||||
android:translateX="6.0"
|
||||
android:translateY="6.0">
|
||||
<path
|
||||
android:fillColor="?android:attr/textColorPrimary"
|
||||
android:pathData="M5.958,37.708Q4.458,37.708 3.354,36.604Q2.25,35.5 2.25,34V18.292Q2.25,16.792 3.354,15.688Q4.458,14.583 5.958,14.583H9.5V5.958Q9.5,4.458 10.625,3.354Q11.75,2.25 13.208,2.25H34Q35.542,2.25 36.646,3.354Q37.75,4.458 37.75,5.958V21.667Q37.75,23.167 36.646,24.271Q35.542,25.375 34,25.375H30.5V34Q30.5,35.5 29.396,36.604Q28.292,37.708 26.792,37.708ZM5.958,34H26.792Q26.792,34 26.792,34Q26.792,34 26.792,34V21.542H5.958V34Q5.958,34 5.958,34Q5.958,34 5.958,34ZM30.5,21.667H34Q34,21.667 34,21.667Q34,21.667 34,21.667V9.208H13.208V14.583H26.833Q28.375,14.583 29.438,15.667Q30.5,16.75 30.5,18.25Z"/>
|
||||
</group>
|
||||
</vector>
|
||||
Reference in New Issue
Block a user