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

Commit fc3a79e4 authored by Kevin's avatar Kevin
Browse files

Layout aligned to dp grid for portrait (3/3)

Remove old custom view functionality to size based off device height
since we now specify dimensions exactly.

Bug: 131610834
Test: Builds, layout meets spec in portrait mode
Change-Id: Id401f27360f6bb2450d3ffb77888a1f709dc62f8
parent ad8ca82e
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -14,7 +14,7 @@
     See the License for the specific language governing permissions and
     See the License for the specific language governing permissions and
     limitations under the License.
     limitations under the License.
-->
-->
<com.android.quickstep.views.ClearAllItemView
<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/clear_all_item_view"
    android:id="@+id/clear_all_item_view"
    android:layout_width="match_parent"
    android:layout_width="match_parent"
@@ -30,4 +30,4 @@
        android:textAllCaps="false"
        android:textAllCaps="false"
        android:textColor="@color/clear_all_button_text"
        android:textColor="@color/clear_all_button_text"
        android:textSize="14sp"/>
        android:textSize="14sp"/>
</com.android.quickstep.views.ClearAllItemView>
</FrameLayout>
+0 −41
Original line number Original line 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);
    }
}
+0 −1
Original line number Original line Diff line number Diff line
@@ -215,7 +215,6 @@ public final class IconRecentsView extends FrameLayout {
                    updateContentViewVisibility();
                    updateContentViewVisibility();
                }
                }
            });
            });
            // TODO: Move layout param logic into onMeasure
        }
        }
    }
    }


+0 −9
Original line number Original line Diff line number Diff line
@@ -15,8 +15,6 @@
 */
 */
package com.android.quickstep.views;
package com.android.quickstep.views;


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

import android.content.Context;
import android.content.Context;
import android.content.res.Configuration;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.content.res.Resources;
@@ -91,13 +89,6 @@ public final class TaskItemView extends LinearLayout {
        CONTENT_TRANSITION_PROGRESS.setValue(this, 1.0f);
        CONTENT_TRANSITION_PROGRESS.setValue(this, 1.0f);
    }
    }


    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        int taskHeight = getTaskHeight(getContext());
        int newHeightSpec = MeasureSpec.makeMeasureSpec(taskHeight,MeasureSpec.EXACTLY);
        super.onMeasure(widthMeasureSpec, newHeightSpec);
    }

    /**
    /**
     * Resets task item view to empty, loading UI.
     * Resets task item view to empty, loading UI.
     */
     */
+0 −59
Original line number Original line 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.TaskAdapter.MAX_TASKS_TO_DISPLAY;

import android.content.Context;

import com.android.launcher3.InvariantDeviceProfile;

/**
 * Utils to determine dynamically task and view sizes based off the device height and width.
 */
public final class TaskLayoutUtils {

    private static final float CLEAR_ALL_ITEM_TO_HEIGHT_RATIO = 7.0f / 64;

    private TaskLayoutUtils() {}

    /**
     * Calculate task height based off the available height in portrait mode such that when the
     * recents list is full, the total height fills in the available device height perfectly. In
     * landscape mode, we keep the same task height so that tasks scroll off the top.
     *
     * @param context current context
     * @return task height
     */
    public static int getTaskHeight(Context context) {
        final int availableHeight =
                InvariantDeviceProfile.INSTANCE.get(context).portraitProfile.availableHeightPx;
        final int availableTaskSpace = availableHeight - getClearAllItemHeight(context);
        return (int) (availableTaskSpace * 1.0f / MAX_TASKS_TO_DISPLAY);
    }

    /**
     * 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);
    }
}