am 80343f64: Fix recents animations for secondary users

* commit '80343f646f9686528212f82163a77ef48e30f4c3':
  Fix recents animations for secondary users
This commit is contained in:
Michael Jurka
2012-10-19 09:09:02 -07:00
committed by Android Git Automerger
9 changed files with 237 additions and 145 deletions

View File

@@ -63,7 +63,6 @@
<uses-permission android:name="android.permission.WRITE_DREAM_STATE" />
<application
android:name="com.android.systemui.SystemUIApplication"
android:persistent="true"
android:allowClearUserData="false"
android:allowBackup="false"
@@ -118,6 +117,15 @@
</intent-filter>
</activity>
<receiver
android:name=".recent.RecentsPreloadReceiver"
android:exported="false">
<intent-filter>
<action android:name="com.android.systemui.recent.action.PRELOAD" />
<action android:name="com.android.systemui.recent.action.CANCEL_PRELOAD" />
</intent-filter>
</receiver>
<!-- started from UsbDeviceSettingsManager -->
<activity android:name=".usb.UsbConfirmActivity"
android:exported="true"

View File

@@ -1,59 +0,0 @@
/*
* Copyright (C) 2012 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.systemui;
import android.app.Application;
import com.android.systemui.recent.RecentTasksLoader;
import com.android.systemui.recent.RecentsActivity;
public class SystemUIApplication extends Application {
private RecentTasksLoader mRecentTasksLoader;
private boolean mWaitingForWinAnimStart;
private RecentsActivity.WindowAnimationStartListener mWinAnimStartListener;
public RecentTasksLoader getRecentTasksLoader() {
if (mRecentTasksLoader == null) {
mRecentTasksLoader = new RecentTasksLoader(this);
}
return mRecentTasksLoader;
}
public void setWaitingForWinAnimStart(boolean waiting) {
mWaitingForWinAnimStart = waiting;
}
public void setWindowAnimationStartListener(
RecentsActivity.WindowAnimationStartListener startListener) {
mWinAnimStartListener = startListener;
}
public RecentsActivity.WindowAnimationStartListener getWindowAnimationListener() {
return mWinAnimStartListener;
}
public void onWindowAnimationStart() {
if (mWinAnimStartListener != null) {
mWinAnimStartListener.onWindowAnimationStart();
}
mWaitingForWinAnimStart = false;
}
public boolean isWaitingForWindowAnimationStart() {
return mWaitingForWinAnimStart;
}
}

View File

@@ -30,6 +30,7 @@ import android.graphics.drawable.Drawable;
import android.os.AsyncTask;
import android.os.Handler;
import android.os.Process;
import android.os.UserHandle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
@@ -52,6 +53,8 @@ public class RecentTasksLoader implements View.OnTouchListener {
private Context mContext;
private RecentsPanelView mRecentsPanel;
private Object mFirstTaskLock = new Object();
private TaskDescription mFirstTask;
private boolean mFirstTaskLoaded;
@@ -70,23 +73,16 @@ public class RecentTasksLoader implements View.OnTouchListener {
private enum State { LOADING, LOADED, CANCELLED };
private State mState = State.CANCELLED;
public TaskDescription getFirstTask() {
while (!mFirstTaskLoaded) {
if (mState == State.CANCELLED) {
loadTasksInBackground();
}
try {
if (mState == State.LOADED) {
break;
}
Thread.sleep(5);
} catch (InterruptedException e) {
}
private static RecentTasksLoader sInstance;
public static RecentTasksLoader getInstance(Context context) {
if (sInstance == null) {
sInstance = new RecentTasksLoader(context);
}
return mFirstTask;
return sInstance;
}
public RecentTasksLoader(Context context) {
private RecentTasksLoader(Context context) {
mContext = context;
mHandler = new Handler();
@@ -295,8 +291,6 @@ public class RecentTasksLoader implements View.OnTouchListener {
mThumbnailLoader = null;
}
mLoadedTasks = null;
mFirstTask = null;
mFirstTaskLoaded = false;
if (mRecentsPanel != null) {
mRecentsPanel.onTaskLoadingCancelled();
}
@@ -304,6 +298,100 @@ public class RecentTasksLoader implements View.OnTouchListener {
mState = State.CANCELLED;
}
private void clearFirstTask() {
synchronized (mFirstTaskLock) {
mFirstTask = null;
mFirstTaskLoaded = false;
}
}
public void preloadFirstTask() {
Thread bgLoad = new Thread() {
public void run() {
TaskDescription first = loadFirstTask();
synchronized(mFirstTaskLock) {
if (mCancelPreloadingFirstTask) {
clearFirstTask();
} else {
mFirstTask = first;
mFirstTaskLoaded = true;
}
mPreloadingFirstTask = false;
}
}
};
synchronized(mFirstTaskLock) {
if (!mPreloadingFirstTask) {
clearFirstTask();
mPreloadingFirstTask = true;
bgLoad.start();
}
}
}
public void cancelPreloadingFirstTask() {
synchronized(mFirstTaskLock) {
if (mPreloadingFirstTask) {
mCancelPreloadingFirstTask = true;
} else {
clearFirstTask();
}
}
}
boolean mPreloadingFirstTask;
boolean mCancelPreloadingFirstTask;
public TaskDescription getFirstTask() {
while(true) {
synchronized(mFirstTaskLock) {
if (mFirstTaskLoaded) {
return mFirstTask;
} else if (!mFirstTaskLoaded && !mPreloadingFirstTask) {
mFirstTask = loadFirstTask();
mFirstTaskLoaded = true;
return mFirstTask;
}
}
try {
Thread.sleep(3);
} catch (InterruptedException e) {
}
}
}
public TaskDescription loadFirstTask() {
final ActivityManager am = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
final List<ActivityManager.RecentTaskInfo> recentTasks = am.getRecentTasksForUser(
1, ActivityManager.RECENT_IGNORE_UNAVAILABLE, UserHandle.CURRENT.getIdentifier());
TaskDescription item = null;
if (recentTasks.size() > 0) {
ActivityManager.RecentTaskInfo recentInfo = recentTasks.get(0);
Intent intent = new Intent(recentInfo.baseIntent);
if (recentInfo.origActivity != null) {
intent.setComponent(recentInfo.origActivity);
}
// Don't load the current home activity.
if (isCurrentHomeActivity(intent.getComponent(), null)) {
return null;
}
// Don't load ourselves
if (intent.getComponent().getPackageName().equals(mContext.getPackageName())) {
return null;
}
item = createTaskDescription(recentInfo.id,
recentInfo.persistentId, recentInfo.baseIntent,
recentInfo.origActivity, recentInfo.description);
loadThumbnailAndIcon(item);
return item;
}
return null;
}
public void loadTasksInBackground() {
loadTasksInBackground(false);
}
@@ -367,9 +455,6 @@ public class RecentTasksLoader implements View.OnTouchListener {
// Don't load the current home activity.
if (isCurrentHomeActivity(intent.getComponent(), homeInfo)) {
if (index == 0) {
mFirstTaskLoaded = true;
}
continue;
}
@@ -466,10 +551,6 @@ public class RecentTasksLoader implements View.OnTouchListener {
}
loadThumbnailAndIcon(td);
if (!mFirstTaskLoaded) {
mFirstTask = td;
mFirstTaskLoaded = true;
}
publishProgress(td);
}
@@ -477,8 +558,6 @@ public class RecentTasksLoader implements View.OnTouchListener {
return null;
}
};
mFirstTask = null;
mFirstTaskLoaded = false;
mThumbnailLoader.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
}

View File

@@ -30,14 +30,18 @@ import android.view.View;
import android.view.WindowManager;
import com.android.systemui.R;
import com.android.systemui.SystemUIApplication;
import com.android.systemui.statusbar.tablet.StatusBarPanel;
import java.util.List;
public class RecentsActivity extends Activity {
public static final String TOGGLE_RECENTS_INTENT = "com.android.systemui.TOGGLE_RECENTS";
public static final String CLOSE_RECENTS_INTENT = "com.android.systemui.CLOSE_RECENTS";
public static final String TOGGLE_RECENTS_INTENT = "com.android.systemui.recent.action.TOGGLE_RECENTS";
public static final String PRELOAD_INTENT = "com.android.systemui.recent.action.PRELOAD";
public static final String CANCEL_PRELOAD_INTENT = "com.android.systemui.recent.CANCEL_PRELOAD";
public static final String CLOSE_RECENTS_INTENT = "com.android.systemui.recent.action.CLOSE";
public static final String WINDOW_ANIMATION_START_INTENT = "com.android.systemui.recent.action.WINDOW_ANIMATION_START";
public static final String PRELOAD_PERMISSION = "com.android.systemui.recent.permission.PRELOAD";
public static final String WAITING_FOR_WINDOW_ANIMATION_PARAM = "com.android.systemui.recent.WAITING_FOR_WINDOW_ANIMATION";
private static final String WAS_SHOWING = "was_showing";
private RecentsPanelView mRecentsPanel;
@@ -48,19 +52,21 @@ public class RecentsActivity extends Activity {
private BroadcastReceiver mIntentReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (mRecentsPanel != null && mRecentsPanel.isShowing()) {
if (mShowing && !mForeground) {
// Captures the case right before we transition to another activity
mRecentsPanel.show(false);
if (CLOSE_RECENTS_INTENT.equals(intent.getAction())) {
if (mRecentsPanel != null && mRecentsPanel.isShowing()) {
if (mShowing && !mForeground) {
// Captures the case right before we transition to another activity
mRecentsPanel.show(false);
}
}
} else if (WINDOW_ANIMATION_START_INTENT.equals(intent.getAction())) {
if (mRecentsPanel != null) {
mRecentsPanel.onWindowAnimationStart();
}
}
}
};
public static interface WindowAnimationStartListener {
void onWindowAnimationStart();
}
public class TouchOutsideListener implements View.OnTouchListener {
private StatusBarPanel mPanel;
@@ -164,25 +170,23 @@ public class RecentsActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
final SystemUIApplication app = (SystemUIApplication) getApplication();
final RecentTasksLoader recentTasksLoader = app.getRecentTasksLoader();
setContentView(R.layout.status_bar_recent_panel);
mRecentsPanel = (RecentsPanelView) findViewById(R.id.recents_root);
mRecentsPanel.setOnTouchListener(new TouchOutsideListener(mRecentsPanel));
mRecentsPanel.setRecentTasksLoader(recentTasksLoader);
final RecentTasksLoader recentTasksLoader = RecentTasksLoader.getInstance(this);
recentTasksLoader.setRecentsPanel(mRecentsPanel, mRecentsPanel);
mRecentsPanel.setMinSwipeAlpha(
getResources().getInteger(R.integer.config_recent_item_min_alpha) / 100f);
if (savedInstanceState == null ||
savedInstanceState.getBoolean(WAS_SHOWING)) {
handleIntent(getIntent());
handleIntent(getIntent(), (savedInstanceState == null));
}
mIntentFilter = new IntentFilter();
mIntentFilter.addAction(CLOSE_RECENTS_INTENT);
mIntentFilter.addAction(WINDOW_ANIMATION_START_INTENT);
registerReceiver(mIntentReceiver, mIntentFilter);
app.setWindowAnimationStartListener(mRecentsPanel);
super.onCreate(savedInstanceState);
}
@@ -193,20 +197,17 @@ public class RecentsActivity extends Activity {
@Override
protected void onDestroy() {
final SystemUIApplication app = (SystemUIApplication) getApplication();
final RecentTasksLoader recentTasksLoader = app.getRecentTasksLoader();
recentTasksLoader.setRecentsPanel(null, mRecentsPanel);
RecentTasksLoader.getInstance(this).setRecentsPanel(null, mRecentsPanel);
unregisterReceiver(mIntentReceiver);
app.setWindowAnimationStartListener(null);
super.onDestroy();
}
@Override
protected void onNewIntent(Intent intent) {
handleIntent(intent);
handleIntent(intent, true);
}
private void handleIntent(Intent intent) {
private void handleIntent(Intent intent, boolean checkWaitingForAnimationParam) {
super.onNewIntent(intent);
if (TOGGLE_RECENTS_INTENT.equals(intent.getAction())) {
@@ -214,10 +215,11 @@ public class RecentsActivity extends Activity {
if (mRecentsPanel.isShowing()) {
dismissAndGoBack();
} else {
final SystemUIApplication app = (SystemUIApplication) getApplication();
final RecentTasksLoader recentTasksLoader = app.getRecentTasksLoader();
final RecentTasksLoader recentTasksLoader = RecentTasksLoader.getInstance(this);
boolean waitingForWindowAnimation = checkWaitingForAnimationParam &&
intent.getBooleanExtra(WAITING_FOR_WINDOW_ANIMATION_PARAM, false);
mRecentsPanel.show(true, recentTasksLoader.getLoadedTasks(),
recentTasksLoader.isFirstScreenful());
recentTasksLoader.isFirstScreenful(), waitingForWindowAnimation);
}
}
}

View File

@@ -59,7 +59,6 @@ import android.widget.PopupMenu;
import android.widget.TextView;
import com.android.systemui.R;
import com.android.systemui.SystemUIApplication;
import com.android.systemui.statusbar.BaseStatusBar;
import com.android.systemui.statusbar.phone.PhoneStatusBar;
import com.android.systemui.statusbar.tablet.StatusBarPanel;
@@ -68,7 +67,7 @@ import com.android.systemui.statusbar.tablet.TabletStatusBar;
import java.util.ArrayList;
public class RecentsPanelView extends FrameLayout implements OnItemClickListener, RecentsCallback,
StatusBarPanel, Animator.AnimatorListener, RecentsActivity.WindowAnimationStartListener {
StatusBarPanel, Animator.AnimatorListener {
static final String TAG = "RecentsPanelView";
static final boolean DEBUG = TabletStatusBar.DEBUG || PhoneStatusBar.DEBUG || false;
private PopupMenu mPopup;
@@ -81,6 +80,7 @@ public class RecentsPanelView extends FrameLayout implements OnItemClickListener
private boolean mWaitingToShow;
private int mNumItemsWaitingForThumbnailsAndIcons;
private ViewHolder mItemToAnimateInWhenWindowAnimationIsFinished;
private boolean mWaitingForWindowAnimation;
private RecentTasksLoader mRecentTasksLoader;
private ArrayList<TaskDescription> mRecentTaskDescriptions;
@@ -147,13 +147,9 @@ public class RecentsPanelView extends FrameLayout implements OnItemClickListener
(ImageView) convertView.findViewById(R.id.app_thumbnail_image);
// If we set the default thumbnail now, we avoid an onLayout when we update
// the thumbnail later (if they both have the same dimensions)
if (mRecentTasksLoader != null) {
updateThumbnail(holder, mRecentTasksLoader.getDefaultThumbnail(), false, false);
}
updateThumbnail(holder, mRecentTasksLoader.getDefaultThumbnail(), false, false);
holder.iconView = (ImageView) convertView.findViewById(R.id.app_icon);
if (mRecentTasksLoader != null) {
holder.iconView.setImageBitmap(mRecentTasksLoader.getDefaultIcon());
}
holder.iconView.setImageBitmap(mRecentTasksLoader.getDefaultIcon());
holder.labelView = (TextView) convertView.findViewById(R.id.app_label);
holder.calloutLine = convertView.findViewById(R.id.recents_callout_line);
holder.descriptionView = (TextView) convertView.findViewById(R.id.app_description);
@@ -183,8 +179,7 @@ public class RecentsPanelView extends FrameLayout implements OnItemClickListener
}
if (index == 0) {
final Activity activity = (Activity) RecentsPanelView.this.getContext();
final SystemUIApplication app = (SystemUIApplication) activity.getApplication();
if (app.isWaitingForWindowAnimationStart()) {
if (mWaitingForWindowAnimation) {
if (mItemToAnimateInWhenWindowAnimationIsFinished != null) {
for (View v :
new View[] { holder.iconView, holder.labelView, holder.calloutLine }) {
@@ -247,6 +242,7 @@ public class RecentsPanelView extends FrameLayout implements OnItemClickListener
defStyle, 0);
mRecentItemLayoutId = a.getResourceId(R.styleable.RecentsPanelView_recentItemLayout, 0);
mRecentTasksLoader = RecentTasksLoader.getInstance(context);
a.recycle();
}
@@ -280,11 +276,12 @@ public class RecentsPanelView extends FrameLayout implements OnItemClickListener
}
public void show(boolean show) {
show(show, null, false);
show(show, null, false, false);
}
public void show(boolean show, ArrayList<TaskDescription> recentTaskDescriptions,
boolean firstScreenful) {
boolean firstScreenful, boolean waitingForWindowAnimation) {
mWaitingForWindowAnimation = waitingForWindowAnimation;
if (show) {
mWaitingToShow = true;
refreshRecentTasksList(recentTaskDescriptions, firstScreenful);
@@ -542,6 +539,7 @@ public class RecentsPanelView extends FrameLayout implements OnItemClickListener
}
}
mItemToAnimateInWhenWindowAnimationIsFinished = null;
mWaitingForWindowAnimation = false;
}
}

View File

@@ -0,0 +1,32 @@
/*
* Copyright (C) 2012 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.systemui.recent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class RecentsPreloadReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (RecentsActivity.PRELOAD_INTENT.equals(intent.getAction())) {
RecentTasksLoader.getInstance(context).preloadRecentTasksList();
} else if (RecentsActivity.CANCEL_PRELOAD_INTENT.equals(intent.getAction())){
RecentTasksLoader.getInstance(context).cancelPreloadingRecentTasksList();
}
}
}

View File

@@ -25,7 +25,6 @@ import com.android.internal.widget.SizeAdaptiveLayout;
import com.android.systemui.R;
import com.android.systemui.SearchPanelView;
import com.android.systemui.SystemUI;
import com.android.systemui.SystemUIApplication;
import com.android.systemui.recent.RecentTasksLoader;
import com.android.systemui.recent.RecentsActivity;
import com.android.systemui.recent.TaskDescription;
@@ -72,9 +71,9 @@ import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManagerGlobal;
import android.view.ViewGroup.LayoutParams;
import android.view.WindowManager;
import android.view.WindowManagerGlobal;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.PopupMenu;
@@ -82,6 +81,7 @@ import android.widget.RemoteViews;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
public abstract class BaseStatusBar extends SystemUI implements
CommandQueue.Callbacks {
@@ -428,10 +428,6 @@ public abstract class BaseStatusBar extends SystemUI implements
protected abstract WindowManager.LayoutParams getSearchLayoutParams(
LayoutParams layoutParams);
protected RecentTasksLoader getRecentTasksLoader() {
final SystemUIApplication app = (SystemUIApplication) ((Service) mContext).getApplication();
return app.getRecentTasksLoader();
}
protected void updateSearchPanel() {
// Search Panel
@@ -475,8 +471,8 @@ public abstract class BaseStatusBar extends SystemUI implements
protected void toggleRecentsActivity() {
try {
final RecentTasksLoader recentTasksLoader = getRecentTasksLoader();
TaskDescription firstTask = recentTasksLoader.getFirstTask();
TaskDescription firstTask = RecentTasksLoader.getInstance(mContext).getFirstTask();
Intent intent = new Intent(RecentsActivity.TOGGLE_RECENTS_INTENT);
intent.setClassName("com.android.systemui",
@@ -576,17 +572,17 @@ public abstract class BaseStatusBar extends SystemUI implements
+ recentsItemTopPadding + thumbBgPadding + statusBarHeight);
}
final SystemUIApplication app =
(SystemUIApplication) ((Service) mContext).getApplication();
app.setWaitingForWinAnimStart(true);
ActivityOptions opts = ActivityOptions.makeThumbnailScaleDownAnimation(
getStatusBarView(),
first, x, y,
new ActivityOptions.OnAnimationStartedListener() {
public void onAnimationStarted() {
app.onWindowAnimationStart();
Intent intent = new Intent(RecentsActivity.WINDOW_ANIMATION_START_INTENT);
intent.setPackage("com.android.systemui");
mContext.sendBroadcastAsUser(intent, new UserHandle(UserHandle.USER_CURRENT));
}
});
intent.putExtra(RecentsActivity.WAITING_FOR_WINDOW_ANIMATION_PARAM, true);
mContext.startActivityAsUser(intent, opts.toBundle(), new UserHandle(
UserHandle.USER_CURRENT));
}
@@ -596,8 +592,49 @@ public abstract class BaseStatusBar extends SystemUI implements
}
}
protected View.OnTouchListener mRecentsPreloadOnTouchListener = new View.OnTouchListener() {
// additional optimization when we have software system buttons - start loading the recent
// tasks on touch down
@Override
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction() & MotionEvent.ACTION_MASK;
if (action == MotionEvent.ACTION_DOWN) {
preloadRecentTasksList();
} else if (action == MotionEvent.ACTION_CANCEL) {
cancelPreloadingRecentTasksList();
} else if (action == MotionEvent.ACTION_UP) {
if (!v.isPressed()) {
cancelPreloadingRecentTasksList();
}
}
return false;
}
};
protected void preloadRecentTasksList() {
if (DEBUG) Slog.d(TAG, "preloading recents");
Intent intent = new Intent(RecentsActivity.PRELOAD_INTENT);
intent.setClassName("com.android.systemui",
"com.android.systemui.recent.RecentsPreloadReceiver");
mContext.sendBroadcastAsUser(intent, new UserHandle(UserHandle.USER_CURRENT));
RecentTasksLoader.getInstance(mContext).preloadFirstTask();
}
protected void cancelPreloadingRecentTasksList() {
if (DEBUG) Slog.d(TAG, "cancel preloading recents");
Intent intent = new Intent(RecentsActivity.CANCEL_PRELOAD_INTENT);
intent.setClassName("com.android.systemui",
"com.android.systemui.recent.RecentsPreloadReceiver");
mContext.sendBroadcastAsUser(intent, new UserHandle(UserHandle.USER_CURRENT));
RecentTasksLoader.getInstance(mContext).cancelPreloadingFirstTask();
}
protected class H extends Handler {
public void handleMessage(Message m) {
Intent intent;
switch (m.what) {
case MSG_TOGGLE_RECENTS_PANEL:
if (DEBUG) Slog.d(TAG, "toggle recents panel");
@@ -605,17 +642,15 @@ public abstract class BaseStatusBar extends SystemUI implements
break;
case MSG_CLOSE_RECENTS_PANEL:
if (DEBUG) Slog.d(TAG, "closing recents panel");
Intent intent = new Intent(RecentsActivity.CLOSE_RECENTS_INTENT);
intent = new Intent(RecentsActivity.CLOSE_RECENTS_INTENT);
intent.setPackage("com.android.systemui");
mContext.sendBroadcastAsUser(intent, new UserHandle(UserHandle.USER_CURRENT));
break;
case MSG_PRELOAD_RECENT_APPS:
if (DEBUG) Slog.d(TAG, "preloading recents");
getRecentTasksLoader().preloadRecentTasksList();
preloadRecentTasksList();
break;
case MSG_CANCEL_PRELOAD_RECENT_APPS:
if (DEBUG) Slog.d(TAG, "cancel preloading recents");
getRecentTasksLoader().cancelPreloadingRecentTasksList();
cancelPreloadingRecentTasksList();
break;
case MSG_OPEN_SEARCH_PANEL:
if (DEBUG) Slog.d(TAG, "opening search panel");

View File

@@ -40,7 +40,6 @@ import android.graphics.Point;
import android.graphics.PorterDuff;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.NinePatchDrawable;
import android.inputmethodservice.InputMethodService;
import android.os.Handler;
import android.os.IBinder;
@@ -753,7 +752,7 @@ public class PhoneStatusBar extends BaseStatusBar {
mNavigationBarView.reorient();
mNavigationBarView.getRecentsButton().setOnClickListener(mRecentsClickListener);
mNavigationBarView.getRecentsButton().setOnTouchListener(getRecentTasksLoader());
mNavigationBarView.getRecentsButton().setOnTouchListener(mRecentsPreloadOnTouchListener);
mNavigationBarView.getHomeButton().setOnTouchListener(mHomeSearchActionListener);
updateSearchPanel();
}

View File

@@ -60,8 +60,6 @@ import android.widget.TextView;
import com.android.internal.statusbar.StatusBarIcon;
import com.android.internal.statusbar.StatusBarNotification;
import com.android.systemui.R;
import com.android.systemui.recent.RecentTasksLoader;
import com.android.systemui.recent.RecentsPanelView;
import com.android.systemui.statusbar.BaseStatusBar;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.DoNotDisturb;
@@ -353,7 +351,7 @@ public class TabletStatusBar extends BaseStatusBar implements
mWindowManager.addView(mCompatModePanel, lp);
mRecentButton.setOnTouchListener(getRecentTasksLoader());
mRecentButton.setOnTouchListener(mRecentsPreloadOnTouchListener);
mPile = (NotificationRowLayout)mNotificationPanel.findViewById(R.id.content);
mPile.removeAllViews();