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,
|
||||
Uri imageUri) {
|
||||
try {
|
||||
final InputStream inputStream =
|
||||
getInputStreamFromUri(illustrationView.getContext(), imageUri);
|
||||
illustrationView.setAnimation(inputStream, /* cacheKey= */ null);
|
||||
illustrationView.setRepeatCount(LottieDrawable.INFINITE);
|
||||
illustrationView.playAnimation();
|
||||
} catch (IllegalStateException e) {
|
||||
Log.w(TAG, "Invalid illustration image uri: " + imageUri, e);
|
||||
}
|
||||
final InputStream inputStream =
|
||||
getInputStreamFromUri(illustrationView.getContext(), imageUri);
|
||||
illustrationView.setFailureListener(
|
||||
result -> Log.w(TAG, "Invalid illustration image uri: " + imageUri, result));
|
||||
illustrationView.setAnimation(inputStream, /* cacheKey= */ null);
|
||||
illustrationView.setRepeatCount(LottieDrawable.INFINITE);
|
||||
illustrationView.playAnimation();
|
||||
}
|
||||
|
||||
private static void startLottieAnimationWith(LottieAnimationView illustrationView,
|
||||
@RawRes int rawRes) {
|
||||
try {
|
||||
illustrationView.setAnimation(rawRes);
|
||||
illustrationView.setRepeatCount(LottieDrawable.INFINITE);
|
||||
illustrationView.playAnimation();
|
||||
} catch (IllegalStateException e) {
|
||||
Log.w(TAG, "Invalid illustration resource id: " + rawRes, e);
|
||||
}
|
||||
illustrationView.setFailureListener(
|
||||
result -> Log.w(TAG, "Invalid illustration resource id: " + rawRes, result));
|
||||
illustrationView.setAnimation(rawRes);
|
||||
illustrationView.setRepeatCount(LottieDrawable.INFINITE);
|
||||
illustrationView.playAnimation();
|
||||
}
|
||||
|
||||
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 org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.Mockito.doNothing;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.spy;
|
||||
@@ -130,4 +132,27 @@ public class IllustrationPreferenceTest {
|
||||
|
||||
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