Processing non-long clicks on application icon.

This CL alone doens't fix the whole bug, see the bug
for the AI list.

In normal mode, clicking at application icon on a task view
is ignored to avoid accidental clicks. To open app properties,
we need a long click.

In accessibility mode, we want to make it easier to open app
properties, and accidental clicks are less likely. Hence, allowing
"simple" clicks.

Bug: 20945599
Change-Id: Iec3f911dced1eda09175500fc1e798dd09b6f9e2
This commit is contained in:
Vadim Tryshev
2015-06-04 08:57:56 -07:00
parent e56782c0f4
commit c1a6c658ae
3 changed files with 20 additions and 5 deletions

View File

@@ -21,6 +21,7 @@
android:layout_gravity="top|center_horizontal">
<com.android.systemui.recents.views.FixedSizeImageView
android:id="@+id/application_icon"
android:contentDescription="@string/recents_app_info_button_label"
android:layout_width="@dimen/recents_task_view_application_icon_size"
android:layout_height="@dimen/recents_task_view_application_icon_size"
android:layout_marginStart="8dp"

View File

@@ -22,6 +22,7 @@ import android.animation.ValueAnimator;
import android.content.Context;
import android.graphics.*;
import android.util.AttributeSet;
import android.view.accessibility.AccessibilityManager;
import android.view.View;
import android.view.ViewOutlineProvider;
import android.view.animation.AccelerateInterpolator;
@@ -672,7 +673,11 @@ public class TaskView extends FrameLayout implements Task.TaskCallbacks,
mThumbnailView.rebindToTask(mTask);
mHeaderView.rebindToTask(mTask);
// Rebind any listeners
mHeaderView.mApplicationIcon.setOnClickListener(this);
AccessibilityManager am = (AccessibilityManager) getContext().
getSystemService(Context.ACCESSIBILITY_SERVICE);
if (Constants.DebugFlags.App.EnableTaskFiltering || (am != null && am.isEnabled())) {
mHeaderView.mApplicationIcon.setOnClickListener(this);
}
mHeaderView.mDismissButton.setOnClickListener(this);
if (mConfig.multiStackEnabled) {
mHeaderView.mMoveTaskButton.setOnClickListener(this);
@@ -718,9 +723,19 @@ public class TaskView extends FrameLayout implements Task.TaskCallbacks,
postDelayed(new Runnable() {
@Override
public void run() {
if (Constants.DebugFlags.App.EnableTaskFiltering && v == mHeaderView.mApplicationIcon) {
if (mCb != null) {
mCb.onTaskViewAppIconClicked(tv);
if (v == mHeaderView.mApplicationIcon) {
if (Constants.DebugFlags.App.EnableTaskFiltering) {
if (mCb != null) {
mCb.onTaskViewAppIconClicked(tv);
}
} else {
AccessibilityManager am = (AccessibilityManager) getContext().
getSystemService(Context.ACCESSIBILITY_SERVICE);
if (am != null && am.isEnabled()) {
if (mCb != null) {
mCb.onTaskViewAppInfoClicked(tv);
}
}
}
} else if (v == mHeaderView.mDismissButton) {
dismissTask();

View File

@@ -190,7 +190,6 @@ public class TaskViewHeader extends FrameLayout {
} else if (t.applicationIcon != null) {
mApplicationIcon.setImageDrawable(t.applicationIcon);
}
mApplicationIcon.setContentDescription(t.contentDescription);
if (!mActivityDescription.getText().toString().equals(t.activityLabel)) {
mActivityDescription.setText(t.activityLabel);
}