summaryrefslogtreecommitdiffstats
path: root/src/com
diff options
context:
space:
mode:
authord34d <clark@cyngn.com>2015-03-25 11:32:58 -0700
committerd34d <clark@cyngn.com>2015-03-25 13:34:08 -0700
commita42841dfb14637a67a7b6ee00796c3c70613fe8f (patch)
tree09b3218d739e769fc8ababce7401c6b5ad157eee /src/com
parent63a9fd190d7bc9bae540b1ed9b7fb07a6f46bb98 (diff)
downloadpackages_apps_ThemeChooser-a42841dfb14637a67a7b6ee00796c3c70613fe8f.tar.gz
packages_apps_ThemeChooser-a42841dfb14637a67a7b6ee00796c3c70613fe8f.tar.bz2
packages_apps_ThemeChooser-a42841dfb14637a67a7b6ee00796c3c70613fe8f.zip
AppThemer: Don't make FAB visible during theme change
The FAB will still receive touch events if it is visible, this patch keeps the FAB set to View.GONE until the theme change is finished, at which point it animates back in. Change-Id: I7219666176ff70d6b444a22b61de1dbebf86ae5f REF: CHOOSER-69
Diffstat (limited to 'src/com')
-rw-r--r--src/com/cyngn/theme/perapptheming/PerAppThemingWindow.java33
1 files changed, 23 insertions, 10 deletions
diff --git a/src/com/cyngn/theme/perapptheming/PerAppThemingWindow.java b/src/com/cyngn/theme/perapptheming/PerAppThemingWindow.java
index 84f43de..48e29f3 100644
--- a/src/com/cyngn/theme/perapptheming/PerAppThemingWindow.java
+++ b/src/com/cyngn/theme/perapptheming/PerAppThemingWindow.java
@@ -291,11 +291,11 @@ public class PerAppThemingWindow extends Service implements OnTouchListener,
super.onDestroy();
mIsDestroyed = true;
if (mDraggableIcon != null) {
- mWindowManager.removeView(mDraggableIcon);
+ removeViewIfAttached(mDraggableIcon);
mDraggableIcon = null;
}
if (mDeleteView != null) {
- mWindowManager.removeView(mDeleteView);
+ removeViewIfAttached(mDeleteView);
mDeleteView = null;
}
if (mAnimationTask != null) {
@@ -339,11 +339,17 @@ public class PerAppThemingWindow extends Service implements OnTouchListener,
hideThemeList(false, new Runnable() {
@Override
public void run() {
- mWindowManager.removeViewImmediate(mThemeListLayout);
+ removeViewIfAttached(mThemeListLayout);
}
});
}
+ private void removeViewIfAttached(View view) {
+ if (view.isAttachedToWindow()) {
+ mWindowManager.removeViewImmediate(view);
+ }
+ }
+
private WindowManager.LayoutParams addView(View v, int x, int y) {
return addView(v, x, y, Gravity.TOP | Gravity.LEFT,
WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.WRAP_CONTENT);
@@ -625,14 +631,17 @@ public class PerAppThemingWindow extends Service implements OnTouchListener,
private void hideThemeList(boolean showScrim, final Runnable endAction) {
if (showScrim) {
showScrim();
+ } else {
+ mDraggableIcon.setVisibility(View.VISIBLE);
+ mDraggableIconImage.animate()
+ .alpha(1f)
+ .setDuration(ANIMATION_DURATION);
}
mThemeListLayout.circularHide(mParams.x + mDraggableIconImage.getWidth() / 2,
mParams.y + mDraggableIconImage.getHeight() / 2, ANIMATION_DURATION);
- mDraggableIcon.setVisibility(View.VISIBLE);
- mDraggableIconImage.animate()
- .alpha(1f)
- .setDuration(ANIMATION_DURATION)
- .withEndAction(endAction);
+ if (endAction != null) {
+ mDraggableIcon.postDelayed(endAction, ANIMATION_DURATION);
+ }
}
private void showScrim() {
@@ -669,7 +678,7 @@ public class PerAppThemingWindow extends Service implements OnTouchListener,
@Override
public void onAnimationEnd(Animator animation) {
- mWindowManager.removeViewImmediate(mThemeListLayout);
+ removeViewIfAttached(mThemeListLayout);
}
@Override
@@ -683,7 +692,11 @@ public class PerAppThemingWindow extends Service implements OnTouchListener,
animator.start();
mThemeApplyingView.animate()
.alpha(0f)
- .setDuration(ANIMATION_DURATION);
+ .setDuration(ANIMATION_DURATION);
+ mDraggableIcon.setVisibility(View.VISIBLE);
+ mDraggableIconImage.animate()
+ .alpha(1f)
+ .setDuration(ANIMATION_DURATION);
}
private void setThemeListPosition(final int listSide) {