Merge branch 'master' into honeycomb-release
* master:
removing workaround for fixed animator bug
updating assets for configure/all apps
diff --git a/res/drawable-hdpi/focused_application_background.9.png b/res/drawable-hdpi/focused_application_background.9.png
index 01c83c3..7bf37ef 100644
--- a/res/drawable-hdpi/focused_application_background.9.png
+++ b/res/drawable-hdpi/focused_application_background.9.png
Binary files differ
diff --git a/res/drawable-hdpi/pressed_application_background.9.png b/res/drawable-hdpi/pressed_application_background.9.png
index c7d0bd4..291af02 100644
--- a/res/drawable-hdpi/pressed_application_background.9.png
+++ b/res/drawable-hdpi/pressed_application_background.9.png
Binary files differ
diff --git a/res/drawable-mdpi/focused_application_background.9.png b/res/drawable-mdpi/focused_application_background.9.png
index 341a80b..17ee6ea 100644
--- a/res/drawable-mdpi/focused_application_background.9.png
+++ b/res/drawable-mdpi/focused_application_background.9.png
Binary files differ
diff --git a/res/drawable-mdpi/pressed_application_background.9.png b/res/drawable-mdpi/pressed_application_background.9.png
index 4b00eec..b09f595 100644
--- a/res/drawable-mdpi/pressed_application_background.9.png
+++ b/res/drawable-mdpi/pressed_application_background.9.png
Binary files differ
diff --git a/res/drawable-xlarge-hdpi/all_apps_button_normal.9.png b/res/drawable-xlarge-hdpi/all_apps_button_normal.9.png
deleted file mode 100644
index 8aea26e..0000000
--- a/res/drawable-xlarge-hdpi/all_apps_button_normal.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xlarge-hdpi/all_apps_button_pressed.9.png b/res/drawable-xlarge-hdpi/all_apps_button_pressed.9.png
deleted file mode 100644
index 587f1f1..0000000
--- a/res/drawable-xlarge-hdpi/all_apps_button_pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xlarge-hdpi/configure_button_normal.png b/res/drawable-xlarge-hdpi/configure_button_normal.png
deleted file mode 100644
index 48ae0b2..0000000
--- a/res/drawable-xlarge-hdpi/configure_button_normal.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xlarge-hdpi/configure_button_pressed.png b/res/drawable-xlarge-hdpi/configure_button_pressed.png
deleted file mode 100644
index 54dea70..0000000
--- a/res/drawable-xlarge-hdpi/configure_button_pressed.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xlarge-hdpi/info_button.png b/res/drawable-xlarge-hdpi/info_button.png
deleted file mode 100644
index e9ed1b1..0000000
--- a/res/drawable-xlarge-hdpi/info_button.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xlarge-mdpi/all_apps_button_normal.9.png b/res/drawable-xlarge-mdpi/all_apps_button_normal.9.png
deleted file mode 100644
index a423145..0000000
--- a/res/drawable-xlarge-mdpi/all_apps_button_normal.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xlarge-mdpi/all_apps_button_pressed.9.png b/res/drawable-xlarge-mdpi/all_apps_button_pressed.9.png
deleted file mode 100644
index 5dbe77c..0000000
--- a/res/drawable-xlarge-mdpi/all_apps_button_pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xlarge-mdpi/configure_button_normal.png b/res/drawable-xlarge-mdpi/configure_button_normal.png
deleted file mode 100644
index 9b37eff..0000000
--- a/res/drawable-xlarge-mdpi/configure_button_normal.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xlarge-mdpi/configure_button_pressed.png b/res/drawable-xlarge-mdpi/configure_button_pressed.png
deleted file mode 100644
index 5f38db6..0000000
--- a/res/drawable-xlarge-mdpi/configure_button_pressed.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xlarge-mdpi/ic_home_add_holo_dark.png b/res/drawable-xlarge-mdpi/ic_home_add_holo_dark.png
new file mode 100644
index 0000000..d3ab3ad
--- /dev/null
+++ b/res/drawable-xlarge-mdpi/ic_home_add_holo_dark.png
Binary files differ
diff --git a/res/drawable-xlarge-mdpi/info_button.png b/res/drawable-xlarge-mdpi/info_button.png
deleted file mode 100644
index 253cdf7..0000000
--- a/res/drawable-xlarge-mdpi/info_button.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xlarge/all_apps_button.xml b/res/drawable-xlarge/all_apps_button.xml
deleted file mode 100644
index 46bc632..0000000
--- a/res/drawable-xlarge/all_apps_button.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 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.
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:state_pressed="true" android:drawable="@drawable/all_apps_button_pressed" />
- <item android:drawable="@drawable/all_apps_button_normal" />
-</selector>
diff --git a/res/drawable-xlarge/configure_button.xml b/res/drawable-xlarge/configure_button.xml
deleted file mode 100644
index ac87290..0000000
--- a/res/drawable-xlarge/configure_button.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 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.
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:state_pressed="true" android:drawable="@drawable/configure_button_pressed" />
- <item android:drawable="@drawable/configure_button_normal" />
-</selector>
diff --git a/res/drawable-xlarge/delete_zone_selector.xml b/res/drawable-xlarge/delete_zone_selector.xml
new file mode 100644
index 0000000..e2b37f4
--- /dev/null
+++ b/res/drawable-xlarge/delete_zone_selector.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2007, 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.
+*/
+-->
+
+<transition xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:drawable="@drawable/ic_home_delete_holo_dark" />
+ <item android:drawable="@drawable/ic_home_delete_hover_holo_dark" />
+</transition>
diff --git a/res/layout-xlarge-land/all_apps_tabbed.xml b/res/layout-xlarge-land/all_apps_tabbed.xml
index bb30c11..e1a37ff 100644
--- a/res/layout-xlarge-land/all_apps_tabbed.xml
+++ b/res/layout-xlarge-land/all_apps_tabbed.xml
@@ -39,7 +39,7 @@
android:layout_centerVertical="true">
<com.android.launcher2.ApplicationInfoDropTarget
android:id="@+id/all_apps_info_target"
- android:src="@drawable/info_button"
+ android:src="@drawable/ic_home_info_holo_dark"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
diff --git a/res/layout-xlarge-land/launcher.xml b/res/layout-xlarge-land/launcher.xml
index e421e07..5c58a69 100644
--- a/res/layout-xlarge-land/launcher.xml
+++ b/res/layout-xlarge-land/launcher.xml
@@ -105,26 +105,47 @@
<ImageView
android:id="@+id/configure_button"
- android:src="@drawable/configure_button"
+ android:src="@drawable/ic_home_add_holo_dark"
android:layout_width="wrap_content"
- android:layout_height="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
- android:layout_marginLeft="@dimen/toolbar_button_spacing"
- android:layout_marginRight="@dimen/toolbar_button_spacing"
+ android:paddingLeft="@dimen/toolbar_button_horizontal_padding"
+ android:paddingRight="@dimen/toolbar_button_horizontal_padding"
+ android:paddingTop="@dimen/toolbar_button_vertical_padding"
+ android:paddingBottom="@dimen/toolbar_button_vertical_padding"
+ android:background="@drawable/button_bg"
android:onClick="onClickConfigureButton"
android:focusable="true"
android:clickable="true" />
+ <ImageView
+ android:id="@+id/divider"
+ android:src="@drawable/divider_launcher_holo"
+ android:layout_width="wrap_content"
+ android:layout_height="@dimen/toolbar_divider_height"
+ android:layout_toLeftOf="@id/configure_button"
+ android:paddingTop="@dimen/toolbar_button_vertical_padding"
+ android:paddingBottom="@dimen/toolbar_button_vertical_padding"
+ android:onClick="onClickAllAppsButton"
+ android:focusable="true"
+ android:clickable="true" />
<TextView
android:id="@+id/all_apps_button"
android:text="@string/all_apps_button_label"
- android:background="@drawable/all_apps_button"
+ android:drawablePadding="@dimen/all_apps_drawable_padding"
+ android:drawableLeft="@drawable/ic_home_all_apps_holo_dark"
android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:layout_toLeftOf="@id/configure_button"
- android:layout_marginLeft="@dimen/toolbar_button_spacing"
- android:layout_marginRight="@dimen/toolbar_button_spacing"
+ android:layout_height="wrap_content"
+ android:layout_toLeftOf="@id/divider"
+ android:paddingLeft="@dimen/toolbar_button_horizontal_padding"
+ android:paddingRight="@dimen/toolbar_button_horizontal_padding"
+ android:paddingTop="@dimen/toolbar_button_vertical_padding"
+ android:paddingBottom="@dimen/toolbar_button_vertical_padding"
+ android:background="@drawable/button_bg"
+
+ android:gravity="center_horizontal|center_vertical"
android:textColor="#CCFFFFFF"
android:textSize="18sp"
@@ -136,23 +157,41 @@
android:onClick="onClickAllAppsButton"
android:focusable="true"
android:clickable="true" />
-
+ <ImageView
+ android:id="@+id/divider_during_drag"
+ android:src="@drawable/divider_launcher_holo"
+ android:layout_width="wrap_content"
+ android:layout_height="@dimen/toolbar_divider_height"
+ android:layout_toLeftOf="@id/configure_button"
+ android:paddingTop="@dimen/toolbar_button_vertical_padding"
+ android:paddingBottom="@dimen/toolbar_button_vertical_padding"
+ android:visibility="gone"/>
<com.android.launcher2.DeleteZone
android:id="@+id/delete_zone"
android:src="@drawable/delete_zone_selector"
android:layout_width="wrap_content"
- android:layout_height="match_parent"
+ android:layout_height="wrap_content"
android:layout_alignRight="@id/all_apps_button"
+ android:paddingLeft="@dimen/toolbar_button_horizontal_padding"
+ android:paddingRight="@dimen/toolbar_button_horizontal_padding"
+ android:paddingTop="@dimen/toolbar_button_vertical_padding"
+ android:paddingBottom="@dimen/toolbar_button_vertical_padding"
+ android:background="@drawable/button_bg"
android:visibility="gone"
launcher:direction="horizontal" />
<com.android.launcher2.ApplicationInfoDropTarget
android:id="@+id/info_button"
- android:src="@drawable/info_button"
+ android:src="@drawable/ic_home_info_holo_dark"
android:layout_width="wrap_content"
- android:layout_height="match_parent"
+ android:layout_height="wrap_content"
android:layout_alignLeft="@id/configure_button"
+ android:paddingLeft="@dimen/toolbar_button_horizontal_padding"
+ android:paddingRight="@dimen/toolbar_button_horizontal_padding"
+ android:paddingTop="@dimen/toolbar_button_vertical_padding"
+ android:paddingBottom="@dimen/toolbar_button_vertical_padding"
+ android:background="@drawable/button_bg"
android:visibility="gone"
android:focusable="true"
diff --git a/res/layout-xlarge-port/all_apps_tabbed.xml b/res/layout-xlarge-port/all_apps_tabbed.xml
index 5571634..a593148 100644
--- a/res/layout-xlarge-port/all_apps_tabbed.xml
+++ b/res/layout-xlarge-port/all_apps_tabbed.xml
@@ -39,7 +39,7 @@
android:layout_centerVertical="true">
<com.android.launcher2.ApplicationInfoDropTarget
android:id="@+id/all_apps_info_target"
- android:src="@drawable/info_button"
+ android:src="@drawable/ic_home_info_holo_dark"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
diff --git a/res/layout-xlarge-port/launcher.xml b/res/layout-xlarge-port/launcher.xml
index d9839da..7bc318c 100644
--- a/res/layout-xlarge-port/launcher.xml
+++ b/res/layout-xlarge-port/launcher.xml
@@ -105,28 +105,47 @@
<ImageView
android:id="@+id/configure_button"
- android:src="@drawable/configure_button"
+ android:src="@drawable/ic_home_add_holo_dark"
android:layout_width="wrap_content"
- android:layout_height="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
- android:layout_marginLeft="@dimen/toolbar_button_spacing"
- android:layout_marginRight="@dimen/toolbar_button_spacing"
+ android:paddingLeft="@dimen/toolbar_button_horizontal_padding"
+ android:paddingRight="@dimen/toolbar_button_horizontal_padding"
+ android:paddingTop="@dimen/toolbar_button_vertical_padding"
+ android:paddingBottom="@dimen/toolbar_button_vertical_padding"
android:onClick="onClickConfigureButton"
android:focusable="true"
android:clickable="true" />
+ <ImageView
+ android:id="@+id/divider"
+ android:src="@drawable/divider_launcher_holo"
+ android:layout_width="wrap_content"
+ android:layout_height="@dimen/toolbar_divider_height"
+ android:layout_toLeftOf="@id/configure_button"
+ android:paddingTop="@dimen/toolbar_button_vertical_padding"
+ android:paddingBottom="@dimen/toolbar_button_vertical_padding"
+ android:onClick="onClickAllAppsButton"
+ android:focusable="true"
+ android:clickable="true" />
<TextView
android:id="@+id/all_apps_button"
android:text="@string/all_apps_button_label"
- android:background="@drawable/all_apps_button"
+ android:drawablePadding="@dimen/all_apps_drawable_padding"
+ android:drawableLeft="@drawable/ic_home_all_apps_holo_dark"
android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:layout_toLeftOf="@id/configure_button"
- android:layout_marginLeft="@dimen/toolbar_button_spacing"
- android:layout_marginRight="@dimen/toolbar_button_spacing"
+ android:layout_height="wrap_content"
+ android:layout_toLeftOf="@id/divider"
+ android:paddingLeft="@dimen/toolbar_button_horizontal_padding"
+ android:paddingRight="@dimen/toolbar_button_horizontal_padding"
+ android:paddingTop="@dimen/toolbar_button_vertical_padding"
+ android:paddingBottom="@dimen/toolbar_button_vertical_padding"
+
+ android:gravity="center_horizontal|center_vertical"
android:textColor="#CCFFFFFF"
- android:textSize="18dp"
+ android:textSize="18sp"
android:shadowColor="#A0000000"
android:shadowDx="0.0"
@@ -136,36 +155,39 @@
android:onClick="onClickAllAppsButton"
android:focusable="true"
android:clickable="true" />
-
- <!-- The button to bring up the installed app market.
- The icon for this button will be dynamically set. -->
<ImageView
- android:id="@+id/market_button"
+ android:id="@+id/divider_during_drag"
+ android:src="@drawable/divider_launcher_holo"
android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:layout_alignLeft="@id/all_apps_button"
-
- android:onClick="onClickAppMarketButton"
- android:focusable="false"
- android:clickable="false"
+ android:layout_height="@dimen/toolbar_divider_height"
+ android:layout_toLeftOf="@id/configure_button"
+ android:paddingTop="@dimen/toolbar_button_vertical_padding"
+ android:paddingBottom="@dimen/toolbar_button_vertical_padding"
android:visibility="gone"/>
-
<com.android.launcher2.DeleteZone
android:id="@+id/delete_zone"
android:src="@drawable/delete_zone_selector"
android:layout_width="wrap_content"
- android:layout_height="match_parent"
+ android:layout_height="wrap_content"
android:layout_alignRight="@id/all_apps_button"
+ android:paddingLeft="@dimen/toolbar_button_horizontal_padding"
+ android:paddingRight="@dimen/toolbar_button_horizontal_padding"
+ android:paddingTop="@dimen/toolbar_button_vertical_padding"
+ android:paddingBottom="@dimen/toolbar_button_vertical_padding"
android:visibility="gone"
launcher:direction="horizontal" />
<com.android.launcher2.ApplicationInfoDropTarget
android:id="@+id/info_button"
- android:src="@drawable/info_button"
+ android:src="@drawable/ic_home_info_holo_dark"
android:layout_width="wrap_content"
- android:layout_height="match_parent"
+ android:layout_height="wrap_content"
android:layout_alignLeft="@id/configure_button"
+ android:paddingLeft="@dimen/toolbar_button_horizontal_padding"
+ android:paddingRight="@dimen/toolbar_button_horizontal_padding"
+ android:paddingTop="@dimen/toolbar_button_vertical_padding"
+ android:paddingBottom="@dimen/toolbar_button_vertical_padding"
android:visibility="gone"
android:focusable="true"
diff --git a/res/values-xlarge/dimens.xml b/res/values-xlarge/dimens.xml
index 89722e4..972215a 100644
--- a/res/values-xlarge/dimens.xml
+++ b/res/values-xlarge/dimens.xml
@@ -42,9 +42,11 @@
<dimen name="customizeSmallScreenVerticalMarginLandscape">90dip</dimen>
<dimen name="customizeSmallScreenVerticalMarginPortrait">180dip</dimen>
- <dimen name="toolbar_padding">10dip</dimen>
-
- <dimen name="toolbar_button_spacing">20dip</dimen>
+ <dimen name="all_apps_drawable_padding">8dip</dimen>
+ <!-- toolbar divider height is 32dip plus 2*8dip for padding on top and bottom -->
+ <dimen name="toolbar_divider_height">48dip</dimen>
+ <dimen name="toolbar_button_vertical_padding">8dip</dimen>
+ <dimen name="toolbar_button_horizontal_padding">16dip</dimen>
<!-- height & width of the drop rectangle for the trash icon -->
<dimen name="delete_zone_size">50dip</dimen>
diff --git a/src/com/android/launcher2/AllAppsTabbed.java b/src/com/android/launcher2/AllAppsTabbed.java
index 4feb998..2cc0a6b 100644
--- a/src/com/android/launcher2/AllAppsTabbed.java
+++ b/src/com/android/launcher2/AllAppsTabbed.java
@@ -16,9 +16,10 @@
package com.android.launcher2;
-import java.util.ArrayList;
+import com.android.launcher.R;
import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
import android.animation.ObjectAnimator;
import android.animation.ValueAnimator;
import android.content.Context;
@@ -32,7 +33,7 @@
import android.widget.TabWidget;
import android.widget.TextView;
-import com.android.launcher.R;
+import java.util.ArrayList;
/**
* Implements a tabbed version of AllApps2D.
@@ -91,9 +92,9 @@
final float alpha = mAllApps.getAlpha();
ValueAnimator alphaAnim = ObjectAnimator.ofFloat(mAllApps, "alpha", alpha, 0.0f).
setDuration(duration);
- alphaAnim.addListener(new LauncherAnimatorListenerAdapter() {
+ alphaAnim.addListener(new AnimatorListenerAdapter() {
@Override
- public void onAnimationEndOrCancel(Animator animation) {
+ public void onAnimationEnd(Animator animation) {
String tag = getCurrentTabTag();
if (tag == TAG_ALL) {
mAllApps.setAppFilter(AllAppsPagedView.ALL_APPS_FLAG);
diff --git a/src/com/android/launcher2/ApplicationInfoDropTarget.java b/src/com/android/launcher2/ApplicationInfoDropTarget.java
index fdcbbd4..2ee3501 100644
--- a/src/com/android/launcher2/ApplicationInfoDropTarget.java
+++ b/src/com/android/launcher2/ApplicationInfoDropTarget.java
@@ -16,16 +16,18 @@
package com.android.launcher2;
+import com.android.launcher.R;
+
import android.animation.Animator;
-import android.animation.Animator.AnimatorListener;
+import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
+import android.animation.Animator.AnimatorListener;
import android.content.ComponentName;
import android.content.Context;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffColorFilter;
import android.util.AttributeSet;
-
-import com.android.launcher.R;
+import android.view.View;
/**
* Implements a DropTarget which allows applications to be dropped on it,
@@ -35,8 +37,9 @@
private static final int sFadeInAnimationDuration = 200;
private static final int sFadeOutAnimationDuration = 100;
- private ObjectAnimator mFadeAnimator;
+ private AnimatorSet mFadeAnimator;
private ObjectAnimator mHandleFadeAnimator;
+ private boolean mHandleWasVisibleOnDragStart;
public ApplicationInfoDropTarget(Context context, AttributeSet attrs) {
this(context, attrs, 0);
@@ -87,13 +90,25 @@
if (mActive) {
// Fade in this icon
if (mFadeAnimator != null) mFadeAnimator.cancel();
- mFadeAnimator = ObjectAnimator.ofFloat(this, "alpha", 0.0f, 1.0f);
- mFadeAnimator.setDuration(sFadeInAnimationDuration);
+ mFadeAnimator = new AnimatorSet();
+ Animator infoButtonAnimator = ObjectAnimator.ofFloat(this, "alpha", 0.0f, 1.0f);
+ infoButtonAnimator.setDuration(sFadeInAnimationDuration);
+
+ if (mHandle == mLauncher.findViewById(R.id.configure_button)) {
+ final View divider = mLauncher.findViewById(R.id.divider_during_drag);
+ divider.setVisibility(VISIBLE);
+ Animator dividerAnimator = ObjectAnimator.ofFloat(divider, "alpha", 1.0f);
+ dividerAnimator.setDuration(sFadeInAnimationDuration);
+ mFadeAnimator.play(infoButtonAnimator).with(dividerAnimator);
+ } else {
+ mFadeAnimator.play(infoButtonAnimator);
+ }
mFadeAnimator.start();
setVisibility(VISIBLE);
// Fade out the handle
if (mHandle != null) {
+ mHandleWasVisibleOnDragStart = mHandle.getVisibility() == VISIBLE;
if (mHandleFadeAnimator != null) mHandleFadeAnimator.cancel();
mHandleFadeAnimator = ObjectAnimator.ofFloat(mHandle, "alpha", 0.0f);
mHandleFadeAnimator.setDuration(sFadeOutAnimationDuration);
@@ -123,8 +138,12 @@
// Fade out this icon
if (mFadeAnimator != null) mFadeAnimator.cancel();
- mFadeAnimator = ObjectAnimator.ofFloat(this, "alpha", 0.0f);
- mFadeAnimator.setDuration(sFadeOutAnimationDuration);
+ mFadeAnimator = new AnimatorSet();
+ Animator infoButtonAnimator = ObjectAnimator.ofFloat(this, "alpha", 0.0f);
+ infoButtonAnimator.setDuration(sFadeOutAnimationDuration);
+ final View divider = mLauncher.findViewById(R.id.divider_during_drag);
+ divider.setVisibility(VISIBLE);
+ Animator dividerAnimator = ObjectAnimator.ofFloat(divider, "alpha", 0.0f);
mFadeAnimator.addListener(new AnimatorListener() {
public void onAnimationStart(Animator animation) {}
public void onAnimationRepeat(Animator animation) {}
@@ -136,13 +155,15 @@
}
private void onEndOrCancel() {
setVisibility(GONE);
+ divider.setVisibility(GONE);
mFadeAnimator = null;
}
});
+ mFadeAnimator.play(infoButtonAnimator).with(dividerAnimator);
mFadeAnimator.start();
// Fade in the handle
- if (mHandle != null) {
+ if (mHandle != null && mHandleWasVisibleOnDragStart) {
if (mHandleFadeAnimator != null) mHandleFadeAnimator.cancel();
mHandleFadeAnimator = ObjectAnimator.ofFloat(mHandle, "alpha", 1.0f);
mHandleFadeAnimator.setDuration(sFadeInAnimationDuration);
diff --git a/src/com/android/launcher2/CellLayout.java b/src/com/android/launcher2/CellLayout.java
index fd0ef51..ef4637e 100644
--- a/src/com/android/launcher2/CellLayout.java
+++ b/src/com/android/launcher2/CellLayout.java
@@ -304,13 +304,13 @@
AnimatorSet bouncer = new AnimatorSet();
bouncer.play(scaleUp).before(scaleDown);
bouncer.play(scaleUp).with(alphaFadeOut);
- bouncer.addListener(new LauncherAnimatorListenerAdapter() {
+ bouncer.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationStart(Animator animation) {
setHover(true);
}
@Override
- public void onAnimationEndOrCancel(Animator animation) {
+ public void onAnimationEnd(Animator animation) {
setHover(false);
setHoverScale(1.0f);
setHoverAlpha(1.0f);
diff --git a/src/com/android/launcher2/CustomizePagedView.java b/src/com/android/launcher2/CustomizePagedView.java
index cfc15d1..5672921 100644
--- a/src/com/android/launcher2/CustomizePagedView.java
+++ b/src/com/android/launcher2/CustomizePagedView.java
@@ -599,8 +599,6 @@
* in the customize drawer.
*/
private Drawable parseWallpaperPreviewXml(ComponentName component, ResolveInfo ri) {
- Drawable d = null;
-
ActivityInfo activityInfo = ri.activityInfo;
XmlResourceParser parser = null;
try {
diff --git a/src/com/android/launcher2/InterruptibleInOutAnimator.java b/src/com/android/launcher2/InterruptibleInOutAnimator.java
index 570b9e7..be2fd04 100644
--- a/src/com/android/launcher2/InterruptibleInOutAnimator.java
+++ b/src/com/android/launcher2/InterruptibleInOutAnimator.java
@@ -52,9 +52,9 @@
mOriginalFromValue = fromValue;
mOriginalToValue = toValue;
- mAnimator.addListener(new LauncherAnimatorListenerAdapter() {
+ mAnimator.addListener(new AnimatorListenerAdapter() {
@Override
- public void onAnimationEndOrCancel(Animator animation) {
+ public void onAnimationEnd(Animator animation) {
mDirection = STOPPED;
}
});
diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java
index 130cb76..40cd74b 100644
--- a/src/com/android/launcher2/Launcher.java
+++ b/src/com/android/launcher2/Launcher.java
@@ -22,6 +22,7 @@
import com.android.launcher2.Workspace.ShrinkState;
import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.animation.PropertyValuesHolder;
@@ -337,9 +338,9 @@
ValueAnimator alphaAnim = ObjectAnimator.ofFloat(mCustomizePagedView,
"alpha", alpha, 0.0f);
alphaAnim.setDuration(duration);
- alphaAnim.addListener(new LauncherAnimatorListenerAdapter() {
+ alphaAnim.addListener(new AnimatorListenerAdapter() {
@Override
- public void onAnimationEndOrCancel(Animator animation) {
+ public void onAnimationEnd(Animator animation) {
String tag = mHomeCustomizationDrawer.getCurrentTabTag();
if (tag == WIDGETS_TAG) {
mCustomizePagedView.setCustomizationFilter(
@@ -2541,13 +2542,13 @@
if (seq != null) {
Animator anim = ObjectAnimator.ofFloat(view, "alpha", show ? 1.0f : 0.0f);
anim.setDuration(duration);
- anim.addListener(new LauncherAnimatorListenerAdapter() {
+ anim.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationStart(Animator animation) {
if (showing) showToolbarButton(view);
}
@Override
- public void onAnimationEndOrCancel(Animator animation) {
+ public void onAnimationEnd(Animator animation) {
if (hiding) hideToolbarButton(view);
}
});
@@ -2572,23 +2573,27 @@
private void hideAndShowToolbarButtons(State newState, AnimatorSet showSeq, AnimatorSet hideSeq) {
final View searchButton = findViewById(R.id.search_button_cluster);
final View allAppsButton = findViewById(R.id.all_apps_button);
+ final View divider = findViewById(R.id.divider);
final View configureButton = findViewById(R.id.configure_button);
switch (newState) {
case WORKSPACE:
hideOrShowToolbarButton(true, searchButton, showSeq);
hideOrShowToolbarButton(true, allAppsButton, showSeq);
+ hideOrShowToolbarButton(true, divider, showSeq);
hideOrShowToolbarButton(true, configureButton, showSeq);
mDeleteZone.setHandle(allAppsButton);
break;
case ALL_APPS:
hideOrShowToolbarButton(false, configureButton, hideSeq);
hideOrShowToolbarButton(false, searchButton, hideSeq);
+ hideOrShowToolbarButton(false, divider, hideSeq);
hideOrShowToolbarButton(false, allAppsButton, hideSeq);
break;
case CUSTOMIZE:
hideOrShowToolbarButton(false, allAppsButton, hideSeq);
hideOrShowToolbarButton(false, searchButton, hideSeq);
+ hideOrShowToolbarButton(false, divider, hideSeq);
hideOrShowToolbarButton(false, configureButton, hideSeq);
mDeleteZone.setHandle(allAppsButton);
break;
@@ -2644,7 +2649,7 @@
scaleAnim.setDuration(duration);
scaleAnim.setInterpolator(new Workspace.ZoomOutInterpolator());
- scaleAnim.addListener(new LauncherAnimatorListenerAdapter() {
+ scaleAnim.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationStart(Animator animation) {
// Prepare the position
@@ -2654,7 +2659,7 @@
toView.setAlpha(1.0f);
}
@Override
- public void onAnimationEndOrCancel(Animator animation) {
+ public void onAnimationEnd(Animator animation) {
// If we don't set the final scale values here, if this animation is cancelled
// it will have the wrong scale value and subsequent cameraPan animations will
// not fix that
@@ -2727,9 +2732,9 @@
ValueAnimator alphaAnim = ObjectAnimator.ofPropertyValuesHolder(fromView,
PropertyValuesHolder.ofFloat("alpha", 1.0f, 0.0f));
alphaAnim.setDuration(res.getInteger(R.integer.config_allAppsFadeOutTime));
- alphaAnim.addListener(new LauncherAnimatorListenerAdapter() {
+ alphaAnim.addListener(new AnimatorListenerAdapter() {
@Override
- public void onAnimationEndOrCancel(Animator animation) {
+ public void onAnimationEnd(Animator animation) {
fromView.setVisibility(View.GONE);
}
});
@@ -2789,7 +2794,7 @@
if (animated) {
if (mStateAnimation != null) mStateAnimation.cancel();
mStateAnimation = new AnimatorSet();
- mStateAnimation.addListener(new LauncherAnimatorListenerAdapter() {
+ mStateAnimation.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationStart(Animator animation) {
toView.setVisibility(View.VISIBLE);
@@ -2797,7 +2802,7 @@
toView.setAlpha(1.0f);
}
@Override
- public void onAnimationEndOrCancel(Animator animation) {
+ public void onAnimationEnd(Animator animation) {
fromView.setVisibility(View.GONE);
}
});
diff --git a/src/com/android/launcher2/LauncherAnimatorListenerAdapter.java b/src/com/android/launcher2/LauncherAnimatorListenerAdapter.java
deleted file mode 100644
index 3ab4868..0000000
--- a/src/com/android/launcher2/LauncherAnimatorListenerAdapter.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (C) 2010 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.launcher2;
-
-import android.animation.Animator;
-
-import java.util.HashSet;
-
-/**
- * This adapter class provides empty implementations of the methods from {@link android.animation.Animator.AnimatorListener}.
- * Any custom listener that cares only about a subset of the methods of this listener can
- * simply subclass this adapter class instead of implementing the interface directly.
- */
-public abstract class LauncherAnimatorListenerAdapter implements Animator.AnimatorListener {
- HashSet<Animator> cancelled = new HashSet<Animator>();
-
- /**
- * {@inheritDoc}
- */
- @Override
- public final void onAnimationCancel(Animator animation) {
- onAnimationEndOrCancel(animation);
- cancelled.add(animation);
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public final void onAnimationEnd(Animator animation) {
- if (!cancelled.contains(animation)) onAnimationEndOrCancel(animation);
- cancelled.remove(animation);
- }
-
- /**
- * Like onAnimationEnd, except it's called immediately in the case on onAnimationCancel, and
- * it's only called once in that case
- */
- public void onAnimationEndOrCancel(Animator animation) {
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public void onAnimationRepeat(Animator animation) {
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public void onAnimationStart(Animator animation) {
- }
-
-}
diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java
index f70480d..28b6ff9 100644
--- a/src/com/android/launcher2/Workspace.java
+++ b/src/com/android/launcher2/Workspace.java
@@ -16,17 +16,17 @@
package com.android.launcher2;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
+import com.android.launcher.R;
+import com.android.launcher2.InstallWidgetReceiver.WidgetMimeTypeHandlerData;
import android.animation.Animator;
-import android.animation.Animator.AnimatorListener;
+import android.animation.AnimatorListenerAdapter;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.animation.PropertyValuesHolder;
import android.animation.TimeInterpolator;
import android.animation.ValueAnimator;
+import android.animation.Animator.AnimatorListener;
import android.animation.ValueAnimator.AnimatorUpdateListener;
import android.app.AlertDialog;
import android.app.WallpaperManager;
@@ -44,7 +44,6 @@
import android.graphics.Bitmap;
import android.graphics.Camera;
import android.graphics.Canvas;
-import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.Rect;
@@ -62,12 +61,12 @@
import android.view.MotionEvent;
import android.view.View;
import android.view.animation.DecelerateInterpolator;
-import android.widget.TabHost;
import android.widget.TextView;
import android.widget.Toast;
-import com.android.launcher.R;
-import com.android.launcher2.InstallWidgetReceiver.WidgetMimeTypeHandlerData;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
/**
* The workspace is a wide area with a wallpaper and a finite number of pages.
@@ -267,13 +266,13 @@
// In this case, we will skip drawing background protection
}
- mUnshrinkAnimationListener = new LauncherAnimatorListenerAdapter() {
+ mUnshrinkAnimationListener = new AnimatorListenerAdapter() {
@Override
public void onAnimationStart(Animator animation) {
mIsInUnshrinkAnimation = true;
}
@Override
- public void onAnimationEndOrCancel(Animator animation) {
+ public void onAnimationEnd(Animator animation) {
mIsInUnshrinkAnimation = false;
if (mShrinkState != ShrinkState.SPRING_LOADED) {
mDrawCustomizeTrayBackground = false;
@@ -1520,22 +1519,19 @@
}
if (mDropAnim != null) {
- // This should really be end(), but that will not be called synchronously,
- // so instead we use LauncherAnimatorListenerAdapter.onAnimationEndOrCancel()
- // and call cancel() here.
- mDropAnim.cancel();
+ mDropAnim.end();
}
mDropAnim = new ValueAnimator();
mDropAnim.setInterpolator(mQuintEaseOutInterpolator);
// The view is invisible during the animation; we render it manually.
- mDropAnim.addListener(new LauncherAnimatorListenerAdapter() {
+ mDropAnim.addListener(new AnimatorListenerAdapter() {
public void onAnimationStart(Animator animation) {
// Set this here so that we don't render it until the animation begins
mDropView = view;
}
- public void onAnimationEndOrCancel(Animator animation) {
+ public void onAnimationEnd(Animator animation) {
if (mDropView != null) {
mDropView.setVisibility(View.VISIBLE);
mDropView = null;