Implement change SIM animation
CheckableLabledButton will no longer set icon if the icon has not changed, so the animation will not be interrupted.
Bug: 64215256
Test: N/A
PiperOrigin-RevId: 176047325
Change-Id: I8cb0c6e706b931406e78c91821f75e266e453ceb
diff --git a/java/com/android/incallui/incall/impl/ButtonController.java b/java/com/android/incallui/incall/impl/ButtonController.java
index cefbd72..5e37a49 100644
--- a/java/com/android/incallui/incall/impl/ButtonController.java
+++ b/java/com/android/incallui/incall/impl/ButtonController.java
@@ -16,6 +16,7 @@
package com.android.incallui.incall.impl;
+import android.graphics.drawable.AnimationDrawable;
import android.support.annotation.CallSuper;
import android.support.annotation.DrawableRes;
import android.support.annotation.NonNull;
@@ -569,11 +570,14 @@
InCallButtonIds.BUTTON_SWAP_SIM,
R.string.incall_content_description_swap_sim,
R.string.incall_label_swap_sim,
- R.drawable.quantum_ic_swap_calls_white_36);
+ R.drawable.ic_sim_change_white);
}
@Override
public void onClick(View view) {
+ AnimationDrawable drawable = (AnimationDrawable) button.getIconDrawable();
+ drawable.stop(); // animation is one shot, stop it so it can be started again.
+ drawable.start();
delegate.swapSimClicked();
}
}
diff --git a/java/com/android/incallui/incall/impl/CheckableLabeledButton.java b/java/com/android/incallui/incall/impl/CheckableLabeledButton.java
index 325c3a9..ca018ac 100644
--- a/java/com/android/incallui/incall/impl/CheckableLabeledButton.java
+++ b/java/com/android/incallui/incall/impl/CheckableLabeledButton.java
@@ -47,6 +47,7 @@
private boolean isChecked;
private OnCheckedChangeListener onCheckedChangeListener;
private ImageView iconView;
+ @DrawableRes private int iconResource = 0;
private TextView labelView;
private Drawable background;
private Drawable backgroundMore;
@@ -135,8 +136,15 @@
new int[] {color, Color.WHITE}));
}
+ public Drawable getIconDrawable() {
+ return iconView.getDrawable();
+ }
+
public void setIconDrawable(@DrawableRes int drawableRes) {
- iconView.setImageResource(drawableRes);
+ if (iconResource != drawableRes) {
+ iconView.setImageResource(drawableRes);
+ iconResource = drawableRes;
+ }
}
public void setLabelText(@StringRes int stringRes) {
diff --git a/java/com/android/incallui/incall/impl/res/drawable-xxxhdpi/ic_sim_change_white_00.png b/java/com/android/incallui/incall/impl/res/drawable-xxxhdpi/ic_sim_change_white_00.png
new file mode 100644
index 0000000..4c8b33f
--- /dev/null
+++ b/java/com/android/incallui/incall/impl/res/drawable-xxxhdpi/ic_sim_change_white_00.png
Binary files differ
diff --git a/java/com/android/incallui/incall/impl/res/drawable-xxxhdpi/ic_sim_change_white_01.png b/java/com/android/incallui/incall/impl/res/drawable-xxxhdpi/ic_sim_change_white_01.png
new file mode 100644
index 0000000..9101779
--- /dev/null
+++ b/java/com/android/incallui/incall/impl/res/drawable-xxxhdpi/ic_sim_change_white_01.png
Binary files differ
diff --git a/java/com/android/incallui/incall/impl/res/drawable-xxxhdpi/ic_sim_change_white_02.png b/java/com/android/incallui/incall/impl/res/drawable-xxxhdpi/ic_sim_change_white_02.png
new file mode 100644
index 0000000..92a27ee
--- /dev/null
+++ b/java/com/android/incallui/incall/impl/res/drawable-xxxhdpi/ic_sim_change_white_02.png
Binary files differ
diff --git a/java/com/android/incallui/incall/impl/res/drawable-xxxhdpi/ic_sim_change_white_03.png b/java/com/android/incallui/incall/impl/res/drawable-xxxhdpi/ic_sim_change_white_03.png
new file mode 100644
index 0000000..484058f
--- /dev/null
+++ b/java/com/android/incallui/incall/impl/res/drawable-xxxhdpi/ic_sim_change_white_03.png
Binary files differ
diff --git a/java/com/android/incallui/incall/impl/res/drawable-xxxhdpi/ic_sim_change_white_04.png b/java/com/android/incallui/incall/impl/res/drawable-xxxhdpi/ic_sim_change_white_04.png
new file mode 100644
index 0000000..348ae92
--- /dev/null
+++ b/java/com/android/incallui/incall/impl/res/drawable-xxxhdpi/ic_sim_change_white_04.png
Binary files differ
diff --git a/java/com/android/incallui/incall/impl/res/drawable-xxxhdpi/ic_sim_change_white_05.png b/java/com/android/incallui/incall/impl/res/drawable-xxxhdpi/ic_sim_change_white_05.png
new file mode 100644
index 0000000..011915a
--- /dev/null
+++ b/java/com/android/incallui/incall/impl/res/drawable-xxxhdpi/ic_sim_change_white_05.png
Binary files differ
diff --git a/java/com/android/incallui/incall/impl/res/drawable-xxxhdpi/ic_sim_change_white_06.png b/java/com/android/incallui/incall/impl/res/drawable-xxxhdpi/ic_sim_change_white_06.png
new file mode 100644
index 0000000..c1cc0d6
--- /dev/null
+++ b/java/com/android/incallui/incall/impl/res/drawable-xxxhdpi/ic_sim_change_white_06.png
Binary files differ
diff --git a/java/com/android/incallui/incall/impl/res/drawable-xxxhdpi/ic_sim_change_white_07.png b/java/com/android/incallui/incall/impl/res/drawable-xxxhdpi/ic_sim_change_white_07.png
new file mode 100644
index 0000000..75233db
--- /dev/null
+++ b/java/com/android/incallui/incall/impl/res/drawable-xxxhdpi/ic_sim_change_white_07.png
Binary files differ
diff --git a/java/com/android/incallui/incall/impl/res/drawable-xxxhdpi/ic_sim_change_white_08.png b/java/com/android/incallui/incall/impl/res/drawable-xxxhdpi/ic_sim_change_white_08.png
new file mode 100644
index 0000000..2918e1a
--- /dev/null
+++ b/java/com/android/incallui/incall/impl/res/drawable-xxxhdpi/ic_sim_change_white_08.png
Binary files differ
diff --git a/java/com/android/incallui/incall/impl/res/drawable-xxxhdpi/ic_sim_change_white_09.png b/java/com/android/incallui/incall/impl/res/drawable-xxxhdpi/ic_sim_change_white_09.png
new file mode 100644
index 0000000..7e92767
--- /dev/null
+++ b/java/com/android/incallui/incall/impl/res/drawable-xxxhdpi/ic_sim_change_white_09.png
Binary files differ
diff --git a/java/com/android/incallui/incall/impl/res/drawable-xxxhdpi/ic_sim_change_white_10.png b/java/com/android/incallui/incall/impl/res/drawable-xxxhdpi/ic_sim_change_white_10.png
new file mode 100644
index 0000000..0089314
--- /dev/null
+++ b/java/com/android/incallui/incall/impl/res/drawable-xxxhdpi/ic_sim_change_white_10.png
Binary files differ
diff --git a/java/com/android/incallui/incall/impl/res/drawable-xxxhdpi/ic_sim_change_white_11.png b/java/com/android/incallui/incall/impl/res/drawable-xxxhdpi/ic_sim_change_white_11.png
new file mode 100644
index 0000000..f66a6b6
--- /dev/null
+++ b/java/com/android/incallui/incall/impl/res/drawable-xxxhdpi/ic_sim_change_white_11.png
Binary files differ
diff --git a/java/com/android/incallui/incall/impl/res/drawable-xxxhdpi/ic_sim_change_white_12.png b/java/com/android/incallui/incall/impl/res/drawable-xxxhdpi/ic_sim_change_white_12.png
new file mode 100644
index 0000000..9303d95
--- /dev/null
+++ b/java/com/android/incallui/incall/impl/res/drawable-xxxhdpi/ic_sim_change_white_12.png
Binary files differ
diff --git a/java/com/android/incallui/incall/impl/res/drawable-xxxhdpi/ic_sim_change_white_13.png b/java/com/android/incallui/incall/impl/res/drawable-xxxhdpi/ic_sim_change_white_13.png
new file mode 100644
index 0000000..d2bef6e
--- /dev/null
+++ b/java/com/android/incallui/incall/impl/res/drawable-xxxhdpi/ic_sim_change_white_13.png
Binary files differ
diff --git a/java/com/android/incallui/incall/impl/res/drawable-xxxhdpi/ic_sim_change_white_14.png b/java/com/android/incallui/incall/impl/res/drawable-xxxhdpi/ic_sim_change_white_14.png
new file mode 100644
index 0000000..a5434ec
--- /dev/null
+++ b/java/com/android/incallui/incall/impl/res/drawable-xxxhdpi/ic_sim_change_white_14.png
Binary files differ
diff --git a/java/com/android/incallui/incall/impl/res/drawable/ic_sim_change_white.xml b/java/com/android/incallui/incall/impl/res/drawable/ic_sim_change_white.xml
new file mode 100644
index 0000000..00b1b7a
--- /dev/null
+++ b/java/com/android/incallui/incall/impl/res/drawable/ic_sim_change_white.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 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
+ -->
+<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/ic_sim_change_white"
+ android:oneshot="true">
+ <item
+ android:drawable="@drawable/ic_sim_change_white_00"
+ android:duration="33"/>
+ <item
+ android:drawable="@drawable/ic_sim_change_white_01"
+ android:duration="33"/>
+ <item
+ android:drawable="@drawable/ic_sim_change_white_02"
+ android:duration="33"/>
+ <item
+ android:drawable="@drawable/ic_sim_change_white_03"
+ android:duration="33"/>
+ <item
+ android:drawable="@drawable/ic_sim_change_white_04"
+ android:duration="33"/>
+ <item
+ android:drawable="@drawable/ic_sim_change_white_05"
+ android:duration="33"/>
+ <item
+ android:drawable="@drawable/ic_sim_change_white_06"
+ android:duration="33"/>
+ <item
+ android:drawable="@drawable/ic_sim_change_white_07"
+ android:duration="33"/>
+ <item
+ android:drawable="@drawable/ic_sim_change_white_08"
+ android:duration="33"/>
+ <item
+ android:drawable="@drawable/ic_sim_change_white_09"
+ android:duration="33"/>
+ <item
+ android:drawable="@drawable/ic_sim_change_white_10"
+ android:duration="33"/>
+ <item
+ android:drawable="@drawable/ic_sim_change_white_11"
+ android:duration="33"/>
+ <item
+ android:drawable="@drawable/ic_sim_change_white_12"
+ android:duration="33"/>
+ <item
+ android:drawable="@drawable/ic_sim_change_white_13"
+ android:duration="33"/>
+ <item
+ android:drawable="@drawable/ic_sim_change_white_14"
+ android:duration="33"/>
+ <item
+ android:drawable="@drawable/ic_sim_change_white_00"
+ android:duration="33"/>
+</animation-list>
\ No newline at end of file