diff options
author | daniel oeh <daniel.oeh@gmail.com> | 2014-02-14 14:26:55 +0100 |
---|---|---|
committer | daniel oeh <daniel.oeh@gmail.com> | 2014-02-14 14:26:55 +0100 |
commit | f4da9674cc4b16ad84cfccd7b72a670476c6e5b7 (patch) | |
tree | e938cff5ab4a0f6bbb418b7e5b0ea7e8c5e4605b /src/de/danoeh | |
parent | 65c11309801fc9ff50f8da90b9b0604b56020802 (diff) | |
download | AntennaPod-f4da9674cc4b16ad84cfccd7b72a670476c6e5b7.zip |
Added content descriptions to imagebuttons and imageviews
Diffstat (limited to 'src/de/danoeh')
6 files changed, 43 insertions, 9 deletions
diff --git a/src/de/danoeh/antennapod/activity/AudioplayerActivity.java b/src/de/danoeh/antennapod/activity/AudioplayerActivity.java index dc79bd3da..a55f8120e 100644 --- a/src/de/danoeh/antennapod/activity/AudioplayerActivity.java +++ b/src/de/danoeh/antennapod/activity/AudioplayerActivity.java @@ -322,7 +322,11 @@ public class AudioplayerActivity extends MediaplayerActivity { } private void updateNavButtonDrawable() { - TypedArray drawables = obtainStyledAttributes(new int[]{ + + final int[] buttonTexts = new int[] {R.string.show_shownotes_label, + R.string.show_chapters_label, R.string.show_cover_label}; + + final TypedArray drawables = obtainStyledAttributes(new int[]{ R.attr.navigation_shownotes, R.attr.navigation_chapters}); final Playable media = controller.getMedia(); if (butNavLeft != null && butNavRight != null && media != null) { @@ -330,7 +334,11 @@ public class AudioplayerActivity extends MediaplayerActivity { case POS_COVER: butNavLeft.setScaleType(ScaleType.CENTER); butNavLeft.setImageDrawable(drawables.getDrawable(0)); + butNavLeft.setContentDescription(getString(buttonTexts[0])); + butNavRight.setImageDrawable(drawables.getDrawable(1)); + butNavRight.setContentDescription(getString(buttonTexts[1])); + break; case POS_DESCR: butNavLeft.setScaleType(ScaleType.CENTER_CROP); @@ -342,7 +350,10 @@ public class AudioplayerActivity extends MediaplayerActivity { butNavLeft); } }); + butNavLeft.setContentDescription(getString(buttonTexts[2])); + butNavRight.setImageDrawable(drawables.getDrawable(1)); + butNavRight.setContentDescription(getString(buttonTexts[1])); break; case POS_CHAPTERS: butNavLeft.setScaleType(ScaleType.CENTER_CROP); @@ -354,7 +365,10 @@ public class AudioplayerActivity extends MediaplayerActivity { butNavLeft); } }); + butNavLeft.setContentDescription(getString(buttonTexts[2])); + butNavRight.setImageDrawable(drawables.getDrawable(0)); + butNavRight.setContentDescription(getString(buttonTexts[0])); break; } } diff --git a/src/de/danoeh/antennapod/adapter/DefaultFeedItemlistAdapter.java b/src/de/danoeh/antennapod/adapter/DefaultFeedItemlistAdapter.java index 2b49795c3..e384ecffc 100644 --- a/src/de/danoeh/antennapod/adapter/DefaultFeedItemlistAdapter.java +++ b/src/de/danoeh/antennapod/adapter/DefaultFeedItemlistAdapter.java @@ -91,10 +91,12 @@ public class DefaultFeedItemlistAdapter extends BaseAdapter { MediaType mediaType = item.getMedia().getMediaType(); if (mediaType == MediaType.AUDIO) { holder.type.setImageDrawable(typeDrawables.getDrawable(0)); + holder.type.setContentDescription(context.getString(R.string.media_type_audio_label)); holder.type.setVisibility(View.VISIBLE); } else if (mediaType == MediaType.VIDEO) { holder.type.setImageDrawable(typeDrawables.getDrawable(1)); - holder.type.setVisibility(View.VISIBLE); + holder.type.setContentDescription(context.getString(R.string.media_type_video_label)); + holder.type.setVisibility(View.VISIBLE); } else { holder.type.setImageBitmap(null); holder.type.setVisibility(View.GONE); diff --git a/src/de/danoeh/antennapod/adapter/ExternalEpisodesListAdapter.java b/src/de/danoeh/antennapod/adapter/ExternalEpisodesListAdapter.java index b00066eca..aed988b59 100644 --- a/src/de/danoeh/antennapod/adapter/ExternalEpisodesListAdapter.java +++ b/src/de/danoeh/antennapod/adapter/ExternalEpisodesListAdapter.java @@ -148,12 +148,14 @@ public class ExternalEpisodesListAdapter extends BaseExpandableListAdapter { TypedArray drawables = context.obtainStyledAttributes(new int[] { R.attr.av_download, R.attr.navigation_refresh }); + final int[] labels = new int[] {R.string.status_downloaded_label, R.string.downloading_label}; holder.lenSize.setVisibility(View.VISIBLE); if (!media.isDownloaded()) { if (DownloadRequester.getInstance().isDownloadingFile(media)) { holder.downloadStatus.setVisibility(View.VISIBLE); holder.downloadStatus.setImageDrawable(drawables .getDrawable(1)); + holder.downloadStatus.setContentDescription(context.getString(labels[1])); } else { holder.downloadStatus.setVisibility(View.INVISIBLE); } @@ -161,6 +163,7 @@ public class ExternalEpisodesListAdapter extends BaseExpandableListAdapter { holder.downloadStatus.setVisibility(View.VISIBLE); holder.downloadStatus .setImageDrawable(drawables.getDrawable(0)); + holder.downloadStatus.setContentDescription(context.getString(labels[0])); } } else { holder.downloadStatus.setVisibility(View.INVISIBLE); diff --git a/src/de/danoeh/antennapod/adapter/InternalFeedItemlistAdapter.java b/src/de/danoeh/antennapod/adapter/InternalFeedItemlistAdapter.java index b8bec44c8..238ae29c6 100644 --- a/src/de/danoeh/antennapod/adapter/InternalFeedItemlistAdapter.java +++ b/src/de/danoeh/antennapod/adapter/InternalFeedItemlistAdapter.java @@ -176,12 +176,16 @@ public class InternalFeedItemlistAdapter extends DefaultFeedItemlistAdapter { TypedArray typeDrawables = getContext().obtainStyledAttributes( new int[] { R.attr.type_audio, R.attr.type_video }); + final int[] labels = new int[] {R.string.media_type_audio_label, R.string.media_type_video_label}; + MediaType mediaType = item.getMedia().getMediaType(); if (mediaType == MediaType.AUDIO) { holder.type.setImageDrawable(typeDrawables.getDrawable(0)); + holder.type.setContentDescription(getContext().getString(labels[0])); holder.type.setVisibility(View.VISIBLE); } else if (mediaType == MediaType.VIDEO) { holder.type.setImageDrawable(typeDrawables.getDrawable(1)); + holder.type.setContentDescription(getContext().getString(labels[1])); holder.type.setVisibility(View.VISIBLE); } else { holder.type.setImageBitmap(null); diff --git a/src/de/danoeh/antennapod/service/playback/PlayerWidgetService.java b/src/de/danoeh/antennapod/service/playback/PlayerWidgetService.java index f4674d395..90ad7a9fa 100644 --- a/src/de/danoeh/antennapod/service/playback/PlayerWidgetService.java +++ b/src/de/danoeh/antennapod/service/playback/PlayerWidgetService.java @@ -6,6 +6,7 @@ import android.appwidget.AppWidgetManager; import android.content.ComponentName; import android.content.Intent; import android.content.ServiceConnection; +import android.os.Build; import android.os.IBinder; import android.util.Log; import android.view.KeyEvent; @@ -97,8 +98,14 @@ public class PlayerWidgetService extends Service { views.setTextViewText(R.id.txtvProgress, progressString); } views.setImageViewResource(R.id.butPlay, R.drawable.av_pause_dark); + if (Build.VERSION.SDK_INT >= 15) { + views.setContentDescription(R.id.butPlay, getString(R.string.pause_label)); + } } else { views.setImageViewResource(R.id.butPlay, R.drawable.av_play_dark); + if (Build.VERSION.SDK_INT >= 15) { + views.setContentDescription(R.id.butPlay, getString(R.string.play_label)); + } } views.setOnClickPendingIntent(R.id.butPlay, createMediaButtonIntent()); diff --git a/src/de/danoeh/antennapod/util/playback/PlaybackController.java b/src/de/danoeh/antennapod/util/playback/PlaybackController.java index 55ba4baca..0781800aa 100644 --- a/src/de/danoeh/antennapod/util/playback/PlaybackController.java +++ b/src/de/danoeh/antennapod/util/playback/PlaybackController.java @@ -397,6 +397,9 @@ public abstract class PlaybackController { private void handleStatus() { final int playResource; final int pauseResource; + final CharSequence playText = activity.getString(R.string.play_label); + final CharSequence pauseText = activity.getString(R.string.pause_label); + if (PlaybackService.getCurrentMediaType() == MediaType.AUDIO) { TypedArray res = activity.obtainStyledAttributes(new int[]{ R.attr.av_play, R.attr.av_pause}); @@ -418,7 +421,7 @@ public abstract class PlaybackController { clearStatusMsg(); checkMediaInfoLoaded(); cancelPositionObserver(); - updatePlayButtonAppearance(playResource); + updatePlayButtonAppearance(playResource, playText); break; case PLAYING: clearStatusMsg(); @@ -427,16 +430,16 @@ public abstract class PlaybackController { onAwaitingVideoSurface(); } setupPositionObserver(); - updatePlayButtonAppearance(pauseResource); + updatePlayButtonAppearance(pauseResource, pauseText); break; case PREPARING: postStatusMsg(R.string.player_preparing_msg); checkMediaInfoLoaded(); if (playbackService != null) { if (playbackService.isStartWhenPrepared()) { - updatePlayButtonAppearance(pauseResource); + updatePlayButtonAppearance(pauseResource, pauseText); } else { - updatePlayButtonAppearance(playResource); + updatePlayButtonAppearance(playResource, playText); } } break; @@ -446,7 +449,7 @@ public abstract class PlaybackController { case PREPARED: checkMediaInfoLoaded(); postStatusMsg(R.string.player_ready_msg); - updatePlayButtonAppearance(playResource); + updatePlayButtonAppearance(playResource, playText); break; case SEEKING: postStatusMsg(R.string.player_seeking_msg); @@ -454,7 +457,7 @@ public abstract class PlaybackController { case INITIALIZED: checkMediaInfoLoaded(); clearStatusMsg(); - updatePlayButtonAppearance(playResource); + updatePlayButtonAppearance(playResource, playText); break; } } @@ -463,9 +466,10 @@ public abstract class PlaybackController { mediaInfoLoaded = (mediaInfoLoaded || loadMediaInfo()); } - private void updatePlayButtonAppearance(int resource) { + private void updatePlayButtonAppearance(int resource, CharSequence contentDescription) { ImageButton butPlay = getPlayButton(); butPlay.setImageResource(resource); + butPlay.setContentDescription(contentDescription); } public abstract ImageButton getPlayButton(); |