am 7097f6e8: Merge "Updating lock-to-app look." into lmp-dev

* commit '7097f6e8d539d8694ed815b83936ed3d21ff057d':
  Updating lock-to-app look.
This commit is contained in:
Winson Chung
2014-07-28 23:27:09 +00:00
committed by Android Git Automerger
20 changed files with 232 additions and 117 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

View File

@@ -1,29 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2014 The Android Open Source Project
<!--
Copyright (C) 2014 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
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
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.
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:height="16dp"
android:width="16dp"
android:viewportHeight="100"
android:viewportWidth="100" >
android:width="48.0dp"
android:height="48.0dp"
android:viewportWidth="48.0"
android:viewportHeight="48.0">
<path
android:name="x"
android:pathData="M0,0L100,100M0,100L100,0z"
android:strokeColor="@color/recents_task_bar_dark_dismiss_color"
android:strokeWidth="8.0"
android:strokeLineCap="square" />
android:fillColor="@color/recents_task_bar_dark_dismiss_color"
android:pathData="M38.000000,12.800000l-2.799999,-2.800000 -11.200001,11.200001 -11.200000,-11.200001 -2.800000,2.800000 11.200001,11.200000 -11.200001,11.200001 2.800000,2.799999 11.200000,-11.200001 11.200001,11.200001 2.799999,-2.799999 -11.200001,-11.200001z"/>
</vector>

View File

@@ -1,30 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2014 The Android Open Source Project
<!--
Copyright (C) 2014 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
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
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.
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:height="16dp"
android:width="16dp"
android:viewportHeight="100"
android:viewportWidth="100" >
android:width="48.0dp"
android:height="48.0dp"
android:viewportWidth="48.0"
android:viewportHeight="48.0">
<path
android:name="x"
android:pathData="M0,0L100,100M0,100L100,0z"
android:strokeColor="@color/recents_task_bar_light_dismiss_color"
android:strokeWidth="8.0"
android:strokeLineCap="square" />
android:fillColor="@color/recents_task_bar_light_dismiss_color"
android:pathData="M38.000000,12.800000l-2.799999,-2.800000 -11.200001,11.200001 -11.200000,-11.200001 -2.800000,2.800000 11.200001,11.200000 -11.200001,11.200001 2.800000,2.799999 11.200000,-11.200001 11.200001,11.200001 2.799999,-2.799999 -11.200001,-11.200001z"/>
</vector>

View File

@@ -0,0 +1,25 @@
<!--
Copyright (C) 2014 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="24.0dp"
android:height="24.0dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FFffffff"
android:pathData="M16.000000,12.000000L16.000000,4.000000l1.000000,0.000000L17.000000,2.000000L7.000000,2.000000l0.000000,2.000000l1.000000,0.000000l0.000000,8.000000l-2.000000,2.000000l0.000000,2.000000l5.200000,0.000000l0.000000,6.000000l1.600000,0.000000l0.000000,-6.000000L18.000000,16.000000l0.000000,-2.000000L16.000000,12.000000z"/>
</vector>

View File

@@ -15,6 +15,6 @@
-->
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="#ffdadada">
<item android:drawable="@color/recents_task_view_lock_to_app_button_background_color" />
android:color="#ff9cdfd9">
<item android:drawable="@drawable/btn_fab_recents" />
</ripple>

View File

@@ -39,9 +39,9 @@
android:layout_width="match_parent"
android:layout_height="match_parent" />
<!-- Fullscreen Transition View -->
<ViewStub android:id="@+id/fullscreen_overlay_stub"
android:layout="@layout/recents_fullscreen_overlay"
<!-- Debug Overlay View -->
<ViewStub android:id="@+id/debug_overlay_stub"
android:layout="@layout/recents_debug_overlay"
android:layout_width="match_parent"
android:layout_height="match_parent" />

View File

@@ -4,24 +4,32 @@
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.systemui.recents.views.FullscreenTransitionOverlayView
<com.android.systemui.recents.views.DebugOverlayView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone">
<ImageView
android:id="@+id/image"
android:focusable="false">
<SeekBar
android:id="@+id/debug_seek_bar_1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY" />
</com.android.systemui.recents.views.FullscreenTransitionOverlayView>
android:layout_height="wrap_content"
android:layout_gravity="top"
android:layout_marginTop="25dp" />
<SeekBar
android:id="@+id/debug_seek_bar_2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:layout_marginTop="50dp" />
</com.android.systemui.recents.views.DebugOverlayView>

View File

@@ -57,31 +57,27 @@
android:layout_height="48dp"
android:layout_marginEnd="4dp"
android:layout_gravity="center_vertical|end"
android:padding="18dp"
android:padding="12dp"
android:background="@drawable/recents_button_bg"
android:visibility="invisible"
android:src="@drawable/recents_dismiss_light" />
</com.android.systemui.recents.views.TaskBarView>
<com.android.systemui.recents.views.TaskFooterView
android:id="@+id/lock_to_app"
android:layout_width="match_parent"
android:layout_height="@dimen/recents_task_view_lock_to_app_button_height"
android:layout_gravity="center_horizontal|bottom"
<FrameLayout
android:id="@+id/lock_to_app_fab"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_gravity="bottom|right"
android:layout_marginRight="15dp"
android:layout_marginBottom="15dp"
android:translationZ="50dp"
android:contentDescription="@string/recents_lock_to_app_button_label"
android:background="@drawable/recents_lock_to_task_button_bg">
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
android:gravity="center"
android:drawableLeft="@drawable/ic_lock_to_app_24dp"
android:drawablePadding="8dp"
android:textSize="16sp"
android:textColor="@color/recents_task_view_lock_to_app_button_color"
android:text="@string/recents_lock_to_app_button_label"
android:fontFamily="sans-serif-medium"
android:singleLine="true"
android:textAllCaps="true" />
</com.android.systemui.recents.views.TaskFooterView>
<ImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_gravity="center"
android:src="@drawable/recents_lock_to_app_pin" />
</FrameLayout>
</com.android.systemui.recents.views.TaskView>

View File

@@ -208,7 +208,7 @@
<dimen name="recents_task_view_remove_anim_translation_x">100dp</dimen>
<!-- The amount of highlight to make on each task view. -->
<dimen name="recents_task_view_highlight">1dp</dimen>
<dimen name="recents_task_view_highlight">1.5dp</dimen>
<!-- The height of the lock-to-app button. -->
<dimen name="recents_task_view_lock_to_app_button_height">48dp</dimen>

View File

@@ -32,9 +32,7 @@ import android.os.UserHandle;
import android.util.Pair;
import android.view.KeyEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewStub;
import android.widget.FrameLayout;
import android.widget.Toast;
import com.android.systemui.R;
import com.android.systemui.recents.misc.DebugTrigger;
@@ -58,7 +56,8 @@ import java.util.ArrayList;
* The main Recents activity that is started from AlternateRecentsComponent.
*/
public class RecentsActivity extends Activity implements RecentsView.RecentsViewCallbacks,
RecentsAppWidgetHost.RecentsAppWidgetHostCallbacks {
RecentsAppWidgetHost.RecentsAppWidgetHostCallbacks,
DebugOverlayView.DebugOverlayViewCallbacks {
// Actions and Extras sent from AlternateRecentsComponent
final static String EXTRA_TRIGGERED_FROM_ALT_TAB = "extra_triggered_from_alt_tab";
@@ -73,6 +72,7 @@ public class RecentsActivity extends Activity implements RecentsView.RecentsView
RecentsView mRecentsView;
SystemBarScrimViews mScrimViews;
ViewStub mEmptyViewStub;
ViewStub mDebugOverlayStub;
View mEmptyView;
DebugOverlayView mDebugOverlay;
@@ -368,6 +368,7 @@ public class RecentsActivity extends Activity implements RecentsView.RecentsView
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN |
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
mEmptyViewStub = (ViewStub) findViewById(R.id.empty_view_stub);
mDebugOverlayStub = (ViewStub) findViewById(R.id.debug_overlay_stub);
mScrimViews = new SystemBarScrimViews(this, mConfig);
inflateDebugOverlay();
@@ -405,12 +406,9 @@ public class RecentsActivity extends Activity implements RecentsView.RecentsView
/** Inflates the debug overlay if debug mode is enabled. */
void inflateDebugOverlay() {
if (mConfig.debugModeEnabled && mDebugOverlay == null) {
ViewGroup parent = (ViewGroup) findViewById(android.R.id.content).getRootView();
mDebugOverlay = new DebugOverlayView(this);
FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT);
parent.addView(mDebugOverlay, lp);
// Inflate the overlay and seek bars
mDebugOverlay = (DebugOverlayView) mDebugOverlayStub.inflate();
mDebugOverlay.setCallbacks(this);
mRecentsView.setDebugOverlay(mDebugOverlay);
}
}
@@ -599,4 +597,16 @@ public class RecentsActivity extends Activity implements RecentsView.RecentsView
bindSearchBarAppWidget();
addSearchBarAppWidgetView();
}
/**** DebugOverlayView.DebugOverlayViewCallbacks ****/
@Override
public void onPrimarySeekBarChanged(float progress) {
// Do nothing
}
@Override
public void onSecondarySeekBarChanged(float progress) {
// Do nothing
}
}

View File

@@ -16,7 +16,6 @@
package com.android.systemui.recents;
import android.content.ContentResolver;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.res.Configuration;

View File

@@ -27,9 +27,6 @@ import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.UserHandle;
import android.provider.Settings;
import android.provider.Settings.SettingNotFoundException;
import com.android.systemui.recents.Constants;
import com.android.systemui.recents.RecentsConfiguration;
import com.android.systemui.recents.misc.SystemServicesProxy;

View File

@@ -17,7 +17,6 @@
package com.android.systemui.recents.model;
import com.android.systemui.recents.Constants;
import com.android.systemui.recents.RecentsConfiguration;
import com.android.systemui.recents.misc.NamedCounter;
import java.util.ArrayList;

View File

@@ -20,9 +20,12 @@ import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.util.Pair;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.SeekBar;
import com.android.systemui.R;
import java.util.ArrayList;
@@ -30,33 +33,67 @@ import java.util.ArrayList;
* A full screen overlay layer that allows us to draw views from throughout the system on the top
* most layer.
*/
public class DebugOverlayView extends FrameLayout {
public class DebugOverlayView extends FrameLayout implements SeekBar.OnSeekBarChangeListener {
public interface DebugOverlayViewCallbacks {
public void onPrimarySeekBarChanged(float progress);
public void onSecondarySeekBarChanged(float progress);
}
final static int sCornerRectSize = 50;
DebugOverlayViewCallbacks mCb;
ArrayList<Pair<Rect, Integer>> mRects = new ArrayList<Pair<Rect, Integer>>();
Paint mDebugOutline = new Paint();
Paint mTmpPaint = new Paint();
boolean mEnabled = true;
SeekBar mPrimarySeekBar;
SeekBar mSecondarySeekBar;
public DebugOverlayView(Context context) {
super(context);
this(context, null);
}
public DebugOverlayView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public DebugOverlayView(Context context, AttributeSet attrs, int defStyleAttr) {
this(context, attrs, defStyleAttr, 0);
}
public DebugOverlayView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
mDebugOutline.setColor(0xFFff0000);
mDebugOutline.setStyle(Paint.Style.STROKE);
mDebugOutline.setStrokeWidth(8f);
setWillNotDraw(false);
}
public void setCallbacks(DebugOverlayViewCallbacks cb) {
mCb = cb;
}
@Override
protected void onFinishInflate() {
mPrimarySeekBar = (SeekBar) findViewById(R.id.debug_seek_bar_1);
mPrimarySeekBar.setOnSeekBarChangeListener(this);
mSecondarySeekBar = (SeekBar) findViewById(R.id.debug_seek_bar_2);
mSecondarySeekBar.setOnSeekBarChangeListener(this);
}
/** Enables the debug overlay drawing. */
public void enable() {
mEnabled = true;
invalidate();
setVisibility(View.VISIBLE);
}
/** Disables the debug overlay drawing. */
public void disable() {
mEnabled = false;
invalidate();
setVisibility(View.GONE);
}
/** Clears all debug rects. */
@@ -110,4 +147,25 @@ public class DebugOverlayView extends FrameLayout {
}
}
}
/**** SeekBar.OnSeekBarChangeListener Implementation ****/
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// Do nothing
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// Do nothing
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
if (seekBar == mPrimarySeekBar) {
mCb.onPrimarySeekBarChanged((float) progress / mPrimarySeekBar.getMax());
} else if (seekBar == mSecondarySeekBar) {
mCb.onSecondarySeekBarChanged((float) progress / mSecondarySeekBar.getMax());
}
}
}

View File

@@ -35,7 +35,6 @@ import android.widget.TextView;
import com.android.systemui.R;
import com.android.systemui.recents.Constants;
import com.android.systemui.recents.RecentsConfiguration;
import com.android.systemui.recents.misc.Utilities;
import com.android.systemui.recents.model.Task;
@@ -115,7 +114,7 @@ class TaskBarView extends FrameLayout {
protected void onDraw(Canvas canvas) {
if (!mIsFullscreen) {
// Draw the highlight at the top edge (but put the bottom edge just out of view)
float offset = mConfig.taskViewHighlightPx / 2f;
float offset = (float) Math.ceil(mConfig.taskViewHighlightPx / 2f);
float radius = mConfig.taskViewRoundedCornerRadiusPx;
canvas.drawRoundRect(-offset, 0f, (float) getMeasuredWidth() + offset,
getMeasuredHeight() + radius, radius, radius, sHighlightPaint);

View File

@@ -27,7 +27,6 @@ import android.graphics.Rect;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.accessibility.AccessibilityEvent;
import android.widget.FrameLayout;
import android.widget.OverScroller;
import com.android.systemui.R;

View File

@@ -68,6 +68,7 @@ public class TaskView extends FrameLayout implements Task.TaskCallbacks,
TaskThumbnailView mThumbnailView;
TaskBarView mBarView;
TaskFooterView mFooterView;
View mActionButtonView;
TaskViewCallbacks mCb;
// Optimizations
@@ -122,11 +123,9 @@ public class TaskView extends FrameLayout implements Task.TaskCallbacks,
// Bind the views
mBarView = (TaskBarView) findViewById(R.id.task_view_bar);
mThumbnailView = (TaskThumbnailView) findViewById(R.id.task_view_thumbnail);
mFooterView = (TaskFooterView) findViewById(R.id.lock_to_app);
if (mConfig.lockToAppEnabled) {
mActionButtonView = findViewById(R.id.lock_to_app_fab);
if (mFooterView != null) {
mFooterView.setCallbacks(this);
} else {
mFooterView.setVisibility(View.GONE);
}
}
@@ -138,9 +137,13 @@ public class TaskView extends FrameLayout implements Task.TaskCallbacks,
// Measure the bar view, thumbnail, and footer
mBarView.measure(MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY),
MeasureSpec.makeMeasureSpec(mConfig.taskBarHeight, MeasureSpec.EXACTLY));
mFooterView.measure(MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY),
MeasureSpec.makeMeasureSpec(mConfig.taskViewLockToAppButtonHeight,
MeasureSpec.EXACTLY));
if (mFooterView != null) {
mFooterView.measure(MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY),
MeasureSpec.makeMeasureSpec(mConfig.taskViewLockToAppButtonHeight,
MeasureSpec.EXACTLY));
}
mActionButtonView.measure(MeasureSpec.makeMeasureSpec(width, MeasureSpec.AT_MOST),
MeasureSpec.makeMeasureSpec(height, MeasureSpec.AT_MOST));
if (mIsFullScreenView) {
// Measure the thumbnail height to be the full dimensions
mThumbnailView.measure(MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY),
@@ -208,7 +211,9 @@ public class TaskView extends FrameLayout implements Task.TaskCallbacks,
if (isTaskViewLaunchTargetTask) {
mBarView.prepareEnterRecentsAnimation();
// Hide the footer during the transition in, and animate it out afterwards?
mFooterView.animateFooterVisibility(false, 0);
if (mFooterView != null) {
mFooterView.animateFooterVisibility(false, 0);
}
} else {
// Don't do anything for the side views when animating in
}
@@ -217,6 +222,8 @@ public class TaskView extends FrameLayout implements Task.TaskCallbacks,
if (isTaskViewLaunchTargetTask) {
// Hide the front most task bar view so we can animate it in
mBarView.prepareEnterRecentsAnimation();
// Hide the action button if it exists
mActionButtonView.setAlpha(0f);
// Set the dim to 0 so we can animate it in
setDim(0);
} else if (occludesLaunchTarget) {
@@ -334,6 +341,14 @@ public class TaskView extends FrameLayout implements Task.TaskCallbacks,
// Animate the footer into view
animateFooterVisibility(true, mConfig.taskBarEnterAnimDuration);
// Animate the action button in
mActionButtonView.animate().alpha(1f)
.setStartDelay(mConfig.taskBarEnterAnimDelay)
.setDuration(mConfig.taskBarEnterAnimDuration)
.setInterpolator(mConfig.fastOutLinearInInterpolator)
.withLayer()
.start();
} else {
// Enable the task bar clip
mThumbnailView.enableTaskBarClip(mBarView);
@@ -426,6 +441,14 @@ public class TaskView extends FrameLayout implements Task.TaskCallbacks,
anim.setInterpolator(mConfig.fastOutLinearInInterpolator);
anim.start();
}
// Animate the action button away
mActionButtonView.animate().alpha(0f)
.setStartDelay(0)
.setDuration(mConfig.taskBarExitAnimDuration)
.setInterpolator(mConfig.fastOutLinearInInterpolator)
.withLayer()
.start();
} else {
// Hide the dismiss button
mBarView.startLaunchTaskDismissAnimation();
@@ -514,7 +537,7 @@ public class TaskView extends FrameLayout implements Task.TaskCallbacks,
/** Gets the max footer height. */
public int getMaxFooterHeight() {
if (mConfig.lockToAppEnabled) {
if (mFooterView != null) {
return mFooterView.mMaxFooterHeight;
} else {
return 0;
@@ -528,7 +551,9 @@ public class TaskView extends FrameLayout implements Task.TaskCallbacks,
// Hide the footer if the current task can not be locked to
if (!mTask.lockToTaskEnabled || !mTask.lockToThisTask) return;
// Otherwise, animate the visibility
mFooterView.animateFooterVisibility(visible, duration);
if (mFooterView != null) {
mFooterView.animateFooterVisibility(visible, duration);
}
}
/** Returns the current dim. */
@@ -608,6 +633,10 @@ public class TaskView extends FrameLayout implements Task.TaskCallbacks,
} else {
animateFooterVisibility(t.lockToThisTask, mConfig.taskViewLockToAppLongAnimDuration);
}
// Hide the action button if lock to app is disabled
if (!t.lockToTaskEnabled && mActionButtonView.getVisibility() != View.GONE) {
mActionButtonView.setVisibility(View.GONE);
}
}
@Override
@@ -625,7 +654,10 @@ public class TaskView extends FrameLayout implements Task.TaskCallbacks,
mBarView.mApplicationIcon.setOnClickListener(this);
}
mBarView.mDismissButton.setOnClickListener(this);
mFooterView.setOnClickListener(this);
if (mFooterView != null) {
mFooterView.setOnClickListener(this);
}
mActionButtonView.setOnClickListener(this);
if (Constants.DebugFlags.App.EnableDevAppInfoOnLongPress) {
if (mConfig.developerOptionsEnabled) {
mBarView.mApplicationIcon.setOnLongClickListener(this);
@@ -647,7 +679,10 @@ public class TaskView extends FrameLayout implements Task.TaskCallbacks,
mBarView.mApplicationIcon.setOnClickListener(null);
}
mBarView.mDismissButton.setOnClickListener(null);
mFooterView.setOnClickListener(null);
if (mFooterView != null) {
mFooterView.setOnClickListener(null);
}
mActionButtonView.setOnClickListener(null);
if (Constants.DebugFlags.App.EnableDevAppInfoOnLongPress) {
mBarView.mApplicationIcon.setOnLongClickListener(null);
}
@@ -694,8 +729,9 @@ public class TaskView extends FrameLayout implements Task.TaskCallbacks,
});
// Hide the footer
tv.animateFooterVisibility(false, mConfig.taskViewRemoveAnimDuration);
} else if (v == tv || v == mFooterView) {
mCb.onTaskViewClicked(tv, tv.getTask(), (v == mFooterView));
} else if (v == tv || (v == mFooterView || v == mActionButtonView)) {
mCb.onTaskViewClicked(tv, tv.getTask(),
(v == mFooterView || v == mActionButtonView));
}
}
}, 125);