Use default switch preference view if gesture animations video is not

available.

Check to see if animation video is available. If so, use the customized
view. Otherwise, use the default switch preference layout.

Test: make and run SettingsGoogleTests

Bug: 30701118
Change-Id: I0b25f41f8425b92834b45f706690648fb35a885d
This commit is contained in:
Doris Ling
2016-09-16 16:58:02 -07:00
parent 1c0601b046
commit 08886a0e91
2 changed files with 12 additions and 12 deletions

View File

@@ -58,7 +58,6 @@ public final class GesturePreference extends SwitchPreference implements
public GesturePreference(Context context, AttributeSet attrs) {
super(context, attrs);
mContext = context;
setLayoutResource(R.layout.gesture_preference);
TypedArray attributes = context.getTheme().obtainStyledAttributes(
attrs,
R.styleable.GesturePreference,
@@ -70,7 +69,8 @@ public final class GesturePreference extends SwitchPreference implements
.appendPath(String.valueOf(animation))
.build();
mMediaPlayer = MediaPlayer.create(mContext, mVideoPath);
if (mMediaPlayer != null) {
if (mMediaPlayer != null && mMediaPlayer.getDuration() > 0) {
setLayoutResource(R.layout.gesture_preference);
mMediaPlayer.setOnSeekCompleteListener(new MediaPlayer.OnSeekCompleteListener() {
@Override
public void onSeekComplete(MediaPlayer mp) {
@@ -84,9 +84,8 @@ public final class GesturePreference extends SwitchPreference implements
mediaPlayer.setLooping(true);
}
});
mAnimationAvailable = true;
}
mAnimationAvailable = true;
} catch (Exception e) {
Log.w(TAG, "Animation resource not found. Will not show animation.");
} finally {
@@ -97,15 +96,14 @@ public final class GesturePreference extends SwitchPreference implements
@Override
public void onBindViewHolder(PreferenceViewHolder holder) {
super.onBindViewHolder(holder);
if (!mAnimationAvailable) {
return;
}
final TextureView video = (TextureView) holder.findViewById(R.id.gesture_video);
final ImageView imageView = (ImageView) holder.findViewById(R.id.gesture_image);
final ImageView playButton = (ImageView) holder.findViewById(R.id.gesture_play_button);
final View animationFrame = holder.findViewById(R.id.gesture_animation_frame);
if (!mAnimationAvailable) {
animationFrame.setVisibility(View.GONE);
return;
}
video.setOnClickListener(new View.OnClickListener() {
@Override
@@ -182,7 +180,9 @@ public final class GesturePreference extends SwitchPreference implements
}
void loadPreview(LoaderManager manager, int id) {
Loader<Bitmap> loader = manager.initLoader(id, Bundle.EMPTY, this);
if (mAnimationAvailable) {
Loader<Bitmap> loader = manager.initLoader(id, Bundle.EMPTY, this);
}
}
void onViewVisible() {