Merge "Add the failure listener into the lottie animation view of IllustrationPreference." into sc-dev
This commit is contained in:
@@ -267,26 +267,22 @@ public class IllustrationPreference extends Preference {
|
|||||||
|
|
||||||
private static void startLottieAnimationWith(LottieAnimationView illustrationView,
|
private static void startLottieAnimationWith(LottieAnimationView illustrationView,
|
||||||
Uri imageUri) {
|
Uri imageUri) {
|
||||||
try {
|
final InputStream inputStream =
|
||||||
final InputStream inputStream =
|
getInputStreamFromUri(illustrationView.getContext(), imageUri);
|
||||||
getInputStreamFromUri(illustrationView.getContext(), imageUri);
|
illustrationView.setFailureListener(
|
||||||
illustrationView.setAnimation(inputStream, /* cacheKey= */ null);
|
result -> Log.w(TAG, "Invalid illustration image uri: " + imageUri, result));
|
||||||
illustrationView.setRepeatCount(LottieDrawable.INFINITE);
|
illustrationView.setAnimation(inputStream, /* cacheKey= */ null);
|
||||||
illustrationView.playAnimation();
|
illustrationView.setRepeatCount(LottieDrawable.INFINITE);
|
||||||
} catch (IllegalStateException e) {
|
illustrationView.playAnimation();
|
||||||
Log.w(TAG, "Invalid illustration image uri: " + imageUri, e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void startLottieAnimationWith(LottieAnimationView illustrationView,
|
private static void startLottieAnimationWith(LottieAnimationView illustrationView,
|
||||||
@RawRes int rawRes) {
|
@RawRes int rawRes) {
|
||||||
try {
|
illustrationView.setFailureListener(
|
||||||
illustrationView.setAnimation(rawRes);
|
result -> Log.w(TAG, "Invalid illustration resource id: " + rawRes, result));
|
||||||
illustrationView.setRepeatCount(LottieDrawable.INFINITE);
|
illustrationView.setAnimation(rawRes);
|
||||||
illustrationView.playAnimation();
|
illustrationView.setRepeatCount(LottieDrawable.INFINITE);
|
||||||
} catch (IllegalStateException e) {
|
illustrationView.playAnimation();
|
||||||
Log.w(TAG, "Invalid illustration resource id: " + rawRes, e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void resetAnimations(LottieAnimationView illustrationView) {
|
private static void resetAnimations(LottieAnimationView illustrationView) {
|
||||||
|
|||||||
@@ -18,6 +18,8 @@ package com.android.settingslib.widget;
|
|||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
|
||||||
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
|
import static org.mockito.Mockito.doNothing;
|
||||||
import static org.mockito.Mockito.doReturn;
|
import static org.mockito.Mockito.doReturn;
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.spy;
|
import static org.mockito.Mockito.spy;
|
||||||
@@ -130,4 +132,27 @@ public class IllustrationPreferenceTest {
|
|||||||
|
|
||||||
verify(drawable).start();
|
verify(drawable).start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void playLottieAnimationWithUri_verifyFailureListener() {
|
||||||
|
doReturn(null).when(mAnimationView).getDrawable();
|
||||||
|
|
||||||
|
mPreference.setImageUri(mImageUri);
|
||||||
|
mPreference.onBindViewHolder(mViewHolder);
|
||||||
|
|
||||||
|
verify(mAnimationView).setFailureListener(any());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void playLottieAnimationWithResource_verifyFailureListener() {
|
||||||
|
// fake the valid lottie image
|
||||||
|
final int fakeValidResId = 111;
|
||||||
|
doNothing().when(mAnimationView).setImageResource(fakeValidResId);
|
||||||
|
doReturn(null).when(mAnimationView).getDrawable();
|
||||||
|
|
||||||
|
mPreference.setLottieAnimationResId(fakeValidResId);
|
||||||
|
mPreference.onBindViewHolder(mViewHolder);
|
||||||
|
|
||||||
|
verify(mAnimationView).setFailureListener(any());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user