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

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

Merge "Add task item view for Recents Go." into ub-launcher3-master

parents b3ae56b8 c0a67af4
Loading
Loading
Loading
Loading
+37 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!--
     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.
-->
<com.android.quickstep.views.TaskItemView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">
    <ImageView
        android:id="@+id/task_icon_and_thumbnail"
        android:layout_width="@dimen/task_thumbnail_icon_size"
        android:layout_height="@dimen/task_thumbnail_icon_size"
        android:layout_gravity="center_vertical"
        android:layout_marginHorizontal="8dp"/>
    <TextView
        android:id="@+id/task_label"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_marginHorizontal="8dp"
        android:singleLine="true"
        android:textColor="@android:color/white"
        android:textSize="24sp"/>
</com.android.quickstep.views.TaskItemView>
+6 −4
Original line number Diff line number Diff line
@@ -15,16 +15,17 @@
 */
package com.android.quickstep;

import android.view.LayoutInflater;
import android.view.ViewGroup;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView.Adapter;

import com.android.launcher3.R;
import com.android.quickstep.views.TaskItemView;
import com.android.systemui.shared.recents.model.Task;

import java.util.ArrayList;

/**
 * Recycler view adapter that dynamically inflates and binds {@link TaskHolder} instances with the
 * appropriate {@link Task} from the recents task list.
@@ -42,8 +43,9 @@ public final class TaskAdapter extends Adapter<TaskHolder> {
    @Override
    public TaskHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        // TODO: Swap in an actual task view here (view w/ icon, label, etc.)
        TextView stubView = new TextView(parent.getContext());
        return new TaskHolder(stubView);
        TaskItemView itemView = (TaskItemView) LayoutInflater.from(parent.getContext())
                .inflate(R.layout.task_item_view, parent, false);
        return new TaskHolder(itemView);
    }

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

import android.widget.TextView;

import androidx.recyclerview.widget.RecyclerView.ViewHolder;

import com.android.quickstep.views.TaskItemView;
import com.android.systemui.shared.recents.model.Task;

/**
@@ -27,22 +26,21 @@ import com.android.systemui.shared.recents.model.Task;
 */
final class TaskHolder extends ViewHolder {

    // TODO: Implement the actual task view to be held.
    // For now, we just use a simple text view.
    private final TextView mStubView;
    private final TaskItemView mTaskItemView;

    public TaskHolder(TextView stubView) {
        super(stubView);
        mStubView = stubView;
    public TaskHolder(TaskItemView itemView) {
        super(itemView);
        mTaskItemView = itemView;
    }

    /**
     * Bind task content to the view. This includes the task icon and title as well as binding
     * input handlers such as which task to launch/remove.
     *
     * @param task the task to bind to the view this
     * @param task the task to bind to the view
     */
    public void bindTask(Task task) {
        mStubView.setText("Stub task view: " + task.titleDescription);
        mTaskItemView.setLabel(task.titleDescription);
        mTaskItemView.setIcon(task.icon);
    }
}
+64 −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 android.content.Context;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.android.launcher3.R;

/**
 * View representing an individual task item with the icon + thumbnail adjacent to the task label.
 */
public final class TaskItemView extends LinearLayout {

    private TextView mLabelView;
    private ImageView mIconView;

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

    @Override
    protected void onFinishInflate() {
        super.onFinishInflate();
        mLabelView = findViewById(R.id.task_label);
        mIconView = findViewById(R.id.task_icon_and_thumbnail);
    }

    /**
     * Set the label for the task item.
     *
     * @param label task label
     */
    public void setLabel(String label) {
        mLabelView.setText(label);
    }

    /**
     * Set the icon for the task item.
     *
     * @param icon task icon
     */
    public void setIcon(Drawable icon) {
        mIconView.setImageDrawable(icon);
        // TODO: Add in combination drawable for icon + thumbnail
    }
}