Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e575b404 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add clear all view that scales off device height" into ub-launcher3-master

parents 75f5047b a2b8ca88
Loading
Loading
Loading
Loading
+17 −12
Original line number Diff line number Diff line
@@ -14,7 +14,12 @@
     See the License for the specific language governing permissions and
     limitations under the License.
-->
<Button xmlns:android="http://schemas.android.com/apk/res/android"
<com.android.quickstep.views.ClearAllItemView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/clear_all_item_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <Button
        android:id="@+id/clear_all_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
@@ -24,5 +29,5 @@
        android:text="@string/recents_clear_all"
        android:textAllCaps="false"
        android:textColor="@color/clear_all_button_text"
    android:textSize="14sp">
</Button>
        android:textSize="14sp"/>
</com.android.quickstep.views.ClearAllItemView>
+4 −2
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@
package com.android.quickstep;

import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
@@ -84,10 +85,11 @@ public final class TaskAdapter extends Adapter<ViewHolder> {
                itemView.setOnClickListener(view -> mTaskActionController.launchTask(taskHolder));
                return taskHolder;
            case ITEM_TYPE_CLEAR_ALL:
                Button clearView = (Button) LayoutInflater.from(parent.getContext())
                View clearView = LayoutInflater.from(parent.getContext())
                        .inflate(R.layout.clear_all_button, parent, false);
                ClearAllHolder clearAllHolder = new ClearAllHolder(clearView);
                clearView.setOnClickListener(mClearAllListener);
                Button clearViewButton = clearView.findViewById(R.id.clear_all_button);
                clearViewButton.setOnClickListener(mClearAllListener);
                return clearAllHolder;
            default:
                throw new IllegalArgumentException("No known holder for item type: " + viewType);
+41 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2019 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.
 */

package com.android.quickstep.views;

import static com.android.quickstep.views.TaskLayoutUtils.getClearAllItemHeight;

import android.content.Context;
import android.util.AttributeSet;
import android.widget.FrameLayout;

/**
 * Recycler view item that lays out the clear all button and measures the space it takes based on
 * the device height.
 */
public final class ClearAllItemView extends FrameLayout {

    public ClearAllItemView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        int buttonHeight = getClearAllItemHeight(getContext());
        int newHeightSpec = MeasureSpec.makeMeasureSpec(buttonHeight, MeasureSpec.EXACTLY);
        super.onMeasure(widthMeasureSpec, newHeightSpec);
    }
}
+14 −5
Original line number Diff line number Diff line
@@ -26,6 +26,8 @@ import com.android.launcher3.InvariantDeviceProfile;
 */
public final class TaskLayoutUtils {

    private static final float CLEAR_ALL_ITEM_TO_HEIGHT_RATIO = 7.0f / 64;

    private TaskLayoutUtils() {}

    /**
@@ -39,12 +41,19 @@ public final class TaskLayoutUtils {
    public static int getTaskHeight(Context context) {
        final int availableHeight =
                InvariantDeviceProfile.INSTANCE.get(context).portraitProfile.availableHeightPx;
        // TODO: Take into account clear all button height for task height
        return (int) (availableHeight * 1.0f / MAX_TASKS_TO_DISPLAY);
        final int availableTaskSpace = availableHeight - getClearAllItemHeight(context);
        return (int) (availableTaskSpace * 1.0f / MAX_TASKS_TO_DISPLAY);
    }

    public static int getClearAllButtonHeight(Context context) {
        // TODO: Implement this
        return 0;
    /**
     * Calculate clear all item height scaled to available height in portrait mode.
     *
     * @param context current context
     * @return clear all item height
     */
    public static int getClearAllItemHeight(Context context) {
        final int availableHeight =
                InvariantDeviceProfile.INSTANCE.get(context).portraitProfile.availableHeightPx;
        return (int) (CLEAR_ALL_ITEM_TO_HEIGHT_RATIO * availableHeight);
    }
}