Use vector drawables instead of PNGs for material icons
For all manually-created images PNG have been kept. - rename all icon attrs to have a `ic_` prefix - always use `_24dp` icons, because there is no real difference, since they are vector drawables - always use the original name found on material.io for icon drawables, as to not create confusion and possibly duplicates. Icon names can still be different from real drawable names, though I have made some of them compliant to this or maybe more meaningul. - remove duplicate `getIconByAttr()` in ThemeHelper (use `resolveResourceIdFromAttr()` - use standard icons for `expand_more` and `expand_less` instead of triangles - use `play_button_outline` instead of custom PNG as play button in VideoDetailFragment (questionable, as there is no shadow anymore)
| @@ -175,24 +175,24 @@ public class MainActivity extends AppCompatActivity { | |||||||
|                 .setIcon(ThemeHelper.resolveResourceIdFromAttr(this, R.attr.ic_channel)); |                 .setIcon(ThemeHelper.resolveResourceIdFromAttr(this, R.attr.ic_channel)); | ||||||
|         drawerItems.getMenu() |         drawerItems.getMenu() | ||||||
|                 .add(R.id.menu_tabs_group, ITEM_ID_FEED, ORDER, R.string.fragment_feed_title) |                 .add(R.id.menu_tabs_group, ITEM_ID_FEED, ORDER, R.string.fragment_feed_title) | ||||||
|                 .setIcon(ThemeHelper.resolveResourceIdFromAttr(this, R.attr.rss)); |                 .setIcon(ThemeHelper.resolveResourceIdFromAttr(this, R.attr.ic_rss)); | ||||||
|         drawerItems.getMenu() |         drawerItems.getMenu() | ||||||
|                 .add(R.id.menu_tabs_group, ITEM_ID_BOOKMARKS, ORDER, R.string.tab_bookmarks) |                 .add(R.id.menu_tabs_group, ITEM_ID_BOOKMARKS, ORDER, R.string.tab_bookmarks) | ||||||
|                 .setIcon(ThemeHelper.resolveResourceIdFromAttr(this, R.attr.ic_bookmark)); |                 .setIcon(ThemeHelper.resolveResourceIdFromAttr(this, R.attr.ic_bookmark)); | ||||||
|         drawerItems.getMenu() |         drawerItems.getMenu() | ||||||
|                 .add(R.id.menu_tabs_group, ITEM_ID_DOWNLOADS, ORDER, R.string.downloads) |                 .add(R.id.menu_tabs_group, ITEM_ID_DOWNLOADS, ORDER, R.string.downloads) | ||||||
|                 .setIcon(ThemeHelper.resolveResourceIdFromAttr(this, R.attr.download)); |                 .setIcon(ThemeHelper.resolveResourceIdFromAttr(this, R.attr.ic_file_download)); | ||||||
|         drawerItems.getMenu() |         drawerItems.getMenu() | ||||||
|                 .add(R.id.menu_tabs_group, ITEM_ID_HISTORY, ORDER, R.string.action_history) |                 .add(R.id.menu_tabs_group, ITEM_ID_HISTORY, ORDER, R.string.action_history) | ||||||
|                 .setIcon(ThemeHelper.resolveResourceIdFromAttr(this, R.attr.history)); |                 .setIcon(ThemeHelper.resolveResourceIdFromAttr(this, R.attr.ic_history)); | ||||||
|  |  | ||||||
|         //Settings and About |         //Settings and About | ||||||
|         drawerItems.getMenu() |         drawerItems.getMenu() | ||||||
|                 .add(R.id.menu_options_about_group, ITEM_ID_SETTINGS, ORDER, R.string.settings) |                 .add(R.id.menu_options_about_group, ITEM_ID_SETTINGS, ORDER, R.string.settings) | ||||||
|                 .setIcon(ThemeHelper.resolveResourceIdFromAttr(this, R.attr.settings)); |                 .setIcon(ThemeHelper.resolveResourceIdFromAttr(this, R.attr.ic_settings)); | ||||||
|         drawerItems.getMenu() |         drawerItems.getMenu() | ||||||
|                 .add(R.id.menu_options_about_group, ITEM_ID_ABOUT, ORDER, R.string.tab_about) |                 .add(R.id.menu_options_about_group, ITEM_ID_ABOUT, ORDER, R.string.tab_about) | ||||||
|                 .setIcon(ThemeHelper.resolveResourceIdFromAttr(this, R.attr.info)); |                 .setIcon(ThemeHelper.resolveResourceIdFromAttr(this, R.attr.ic_info_outline)); | ||||||
|  |  | ||||||
|         toggle = new ActionBarDrawerToggle(this, drawer, toolbar, R.string.drawer_open, |         toggle = new ActionBarDrawerToggle(this, drawer, toolbar, R.string.drawer_open, | ||||||
|                 R.string.drawer_close); |                 R.string.drawer_close); | ||||||
| @@ -343,7 +343,7 @@ public class MainActivity extends AppCompatActivity { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     private void showServices() { |     private void showServices() { | ||||||
|         serviceArrow.setImageResource(R.drawable.ic_arrow_drop_up_white_24dp); |         serviceArrow.setImageResource(R.drawable.ic_expand_less_white_24dp); | ||||||
|  |  | ||||||
|         for (StreamingService s : NewPipe.getServices()) { |         for (StreamingService s : NewPipe.getServices()) { | ||||||
|             final String title = s.getServiceInfo().getName() |             final String title = s.getServiceInfo().getName() | ||||||
| @@ -408,7 +408,7 @@ public class MainActivity extends AppCompatActivity { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     private void showTabs() throws ExtractionException { |     private void showTabs() throws ExtractionException { | ||||||
|         serviceArrow.setImageResource(R.drawable.ic_arrow_drop_down_white_24dp); |         serviceArrow.setImageResource(R.drawable.ic_expand_more_white_24dp); | ||||||
|  |  | ||||||
|         //Tabs |         //Tabs | ||||||
|         int currentServiceId = ServiceHelper.getSelectedServiceId(this); |         int currentServiceId = ServiceHelper.getSelectedServiceId(this); | ||||||
| @@ -429,24 +429,24 @@ public class MainActivity extends AppCompatActivity { | |||||||
|                 .setIcon(ThemeHelper.resolveResourceIdFromAttr(this, R.attr.ic_channel)); |                 .setIcon(ThemeHelper.resolveResourceIdFromAttr(this, R.attr.ic_channel)); | ||||||
|         drawerItems.getMenu() |         drawerItems.getMenu() | ||||||
|                 .add(R.id.menu_tabs_group, ITEM_ID_FEED, ORDER, R.string.fragment_feed_title) |                 .add(R.id.menu_tabs_group, ITEM_ID_FEED, ORDER, R.string.fragment_feed_title) | ||||||
|                 .setIcon(ThemeHelper.resolveResourceIdFromAttr(this, R.attr.rss)); |                 .setIcon(ThemeHelper.resolveResourceIdFromAttr(this, R.attr.ic_rss)); | ||||||
|         drawerItems.getMenu() |         drawerItems.getMenu() | ||||||
|                 .add(R.id.menu_tabs_group, ITEM_ID_BOOKMARKS, ORDER, R.string.tab_bookmarks) |                 .add(R.id.menu_tabs_group, ITEM_ID_BOOKMARKS, ORDER, R.string.tab_bookmarks) | ||||||
|                 .setIcon(ThemeHelper.resolveResourceIdFromAttr(this, R.attr.ic_bookmark)); |                 .setIcon(ThemeHelper.resolveResourceIdFromAttr(this, R.attr.ic_bookmark)); | ||||||
|         drawerItems.getMenu() |         drawerItems.getMenu() | ||||||
|                 .add(R.id.menu_tabs_group, ITEM_ID_DOWNLOADS, ORDER, R.string.downloads) |                 .add(R.id.menu_tabs_group, ITEM_ID_DOWNLOADS, ORDER, R.string.downloads) | ||||||
|                 .setIcon(ThemeHelper.resolveResourceIdFromAttr(this, R.attr.download)); |                 .setIcon(ThemeHelper.resolveResourceIdFromAttr(this, R.attr.ic_file_download)); | ||||||
|         drawerItems.getMenu() |         drawerItems.getMenu() | ||||||
|                 .add(R.id.menu_tabs_group, ITEM_ID_HISTORY, ORDER, R.string.action_history) |                 .add(R.id.menu_tabs_group, ITEM_ID_HISTORY, ORDER, R.string.action_history) | ||||||
|                 .setIcon(ThemeHelper.resolveResourceIdFromAttr(this, R.attr.history)); |                 .setIcon(ThemeHelper.resolveResourceIdFromAttr(this, R.attr.ic_history)); | ||||||
|  |  | ||||||
|         //Settings and About |         //Settings and About | ||||||
|         drawerItems.getMenu() |         drawerItems.getMenu() | ||||||
|                 .add(R.id.menu_options_about_group, ITEM_ID_SETTINGS, ORDER, R.string.settings) |                 .add(R.id.menu_options_about_group, ITEM_ID_SETTINGS, ORDER, R.string.settings) | ||||||
|                 .setIcon(ThemeHelper.resolveResourceIdFromAttr(this, R.attr.settings)); |                 .setIcon(ThemeHelper.resolveResourceIdFromAttr(this, R.attr.ic_settings)); | ||||||
|         drawerItems.getMenu() |         drawerItems.getMenu() | ||||||
|                 .add(R.id.menu_options_about_group, ITEM_ID_ABOUT, ORDER, R.string.tab_about) |                 .add(R.id.menu_options_about_group, ITEM_ID_ABOUT, ORDER, R.string.tab_about) | ||||||
|                 .setIcon(ThemeHelper.resolveResourceIdFromAttr(this, R.attr.info)); |                 .setIcon(ThemeHelper.resolveResourceIdFromAttr(this, R.attr.ic_info_outline)); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|   | |||||||
| @@ -366,26 +366,26 @@ public class RouterActivity extends AppCompatActivity { | |||||||
|  |  | ||||||
|         returnList.add(new AdapterChoiceItem(getString(R.string.show_info_key), |         returnList.add(new AdapterChoiceItem(getString(R.string.show_info_key), | ||||||
|                 getString(R.string.show_info), |                 getString(R.string.show_info), | ||||||
|                 resolveResourceIdFromAttr(context, R.attr.info))); |                 resolveResourceIdFromAttr(context, R.attr.ic_info_outline))); | ||||||
|  |  | ||||||
|         if (capabilities.contains(VIDEO) && !(isExtVideoEnabled && linkType != LinkType.STREAM)) { |         if (capabilities.contains(VIDEO) && !(isExtVideoEnabled && linkType != LinkType.STREAM)) { | ||||||
|             returnList.add(new AdapterChoiceItem(getString(R.string.video_player_key), |             returnList.add(new AdapterChoiceItem(getString(R.string.video_player_key), | ||||||
|                     getString(R.string.video_player), |                     getString(R.string.video_player), | ||||||
|                     resolveResourceIdFromAttr(context, R.attr.play))); |                     resolveResourceIdFromAttr(context, R.attr.ic_play_arrow))); | ||||||
|             returnList.add(new AdapterChoiceItem(getString(R.string.popup_player_key), |             returnList.add(new AdapterChoiceItem(getString(R.string.popup_player_key), | ||||||
|                     getString(R.string.popup_player), |                     getString(R.string.popup_player), | ||||||
|                     resolveResourceIdFromAttr(context, R.attr.popup))); |                     resolveResourceIdFromAttr(context, R.attr.ic_popup))); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         if (capabilities.contains(AUDIO) && !(isExtAudioEnabled && linkType != LinkType.STREAM)) { |         if (capabilities.contains(AUDIO) && !(isExtAudioEnabled && linkType != LinkType.STREAM)) { | ||||||
|             returnList.add(new AdapterChoiceItem(getString(R.string.background_player_key), |             returnList.add(new AdapterChoiceItem(getString(R.string.background_player_key), | ||||||
|                     getString(R.string.background_player), |                     getString(R.string.background_player), | ||||||
|                     resolveResourceIdFromAttr(context, R.attr.audio))); |                     resolveResourceIdFromAttr(context, R.attr.ic_headset))); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         returnList.add(new AdapterChoiceItem(getString(R.string.download_key), |         returnList.add(new AdapterChoiceItem(getString(R.string.download_key), | ||||||
|                 getString(R.string.download), |                 getString(R.string.download), | ||||||
|                 resolveResourceIdFromAttr(context, R.attr.download))); |                 resolveResourceIdFromAttr(context, R.attr.ic_file_download))); | ||||||
|  |  | ||||||
|         return returnList; |         return returnList; | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -399,8 +399,8 @@ public class DownloadDialog extends DialogFragment | |||||||
|         boolean isLight = ThemeHelper.isLightThemeSelected(getActivity()); |         boolean isLight = ThemeHelper.isLightThemeSelected(getActivity()); | ||||||
|  |  | ||||||
|         toolbar.setTitle(R.string.download_dialog_title); |         toolbar.setTitle(R.string.download_dialog_title); | ||||||
|         toolbar.setNavigationIcon(isLight ? R.drawable.ic_arrow_back_black_24dp |         toolbar.setNavigationIcon( | ||||||
|                 : R.drawable.ic_arrow_back_white_24dp); |             ThemeHelper.resolveResourceIdFromAttr(requireContext(), R.attr.ic_arrow_back)); | ||||||
|         toolbar.inflateMenu(R.menu.dialog_url); |         toolbar.inflateMenu(R.menu.dialog_url); | ||||||
|         toolbar.setNavigationOnClickListener(v -> getDialog().dismiss()); |         toolbar.setNavigationOnClickListener(v -> getDialog().dismiss()); | ||||||
|         toolbar.setNavigationContentDescription(R.string.cancel); |         toolbar.setNavigationContentDescription(R.string.cancel); | ||||||
|   | |||||||
| @@ -85,6 +85,7 @@ import org.schabi.newpipe.util.PermissionHelper; | |||||||
| import org.schabi.newpipe.util.ShareUtils; | import org.schabi.newpipe.util.ShareUtils; | ||||||
| import org.schabi.newpipe.util.StreamItemAdapter; | import org.schabi.newpipe.util.StreamItemAdapter; | ||||||
| import org.schabi.newpipe.util.StreamItemAdapter.StreamSizeWrapper; | import org.schabi.newpipe.util.StreamItemAdapter.StreamSizeWrapper; | ||||||
|  | import org.schabi.newpipe.util.ThemeHelper; | ||||||
| import org.schabi.newpipe.views.AnimatedProgressBar; | import org.schabi.newpipe.views.AnimatedProgressBar; | ||||||
| import org.schabi.newpipe.views.LargeTextMovementMethod; | import org.schabi.newpipe.views.LargeTextMovementMethod; | ||||||
|  |  | ||||||
| @@ -495,13 +496,15 @@ public class VideoDetailFragment extends BaseStateFragment<StreamInfo> | |||||||
|             videoTitleTextView.setMaxLines(1); |             videoTitleTextView.setMaxLines(1); | ||||||
|             videoDescriptionRootLayout.setVisibility(View.GONE); |             videoDescriptionRootLayout.setVisibility(View.GONE); | ||||||
|             videoDescriptionView.setFocusable(false); |             videoDescriptionView.setFocusable(false); | ||||||
|             videoTitleToggleArrow.setImageResource(R.drawable.arrow_down); |             videoTitleToggleArrow.setImageResource( | ||||||
|  |                     ThemeHelper.resolveResourceIdFromAttr(requireContext(), R.attr.ic_expand_more)); | ||||||
|         } else { |         } else { | ||||||
|             videoTitleTextView.setMaxLines(10); |             videoTitleTextView.setMaxLines(10); | ||||||
|             videoDescriptionRootLayout.setVisibility(View.VISIBLE); |             videoDescriptionRootLayout.setVisibility(View.VISIBLE); | ||||||
|             videoDescriptionView.setFocusable(true); |             videoDescriptionView.setFocusable(true); | ||||||
|             videoDescriptionView.setMovementMethod(new LargeTextMovementMethod()); |             videoDescriptionView.setMovementMethod(new LargeTextMovementMethod()); | ||||||
|             videoTitleToggleArrow.setImageResource(R.drawable.arrow_up); |             videoTitleToggleArrow.setImageResource( | ||||||
|  |                     ThemeHelper.resolveResourceIdFromAttr(requireContext(), R.attr.ic_expand_less)); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @@ -1114,7 +1117,7 @@ public class VideoDetailFragment extends BaseStateFragment<StreamInfo> | |||||||
|         animateView(videoTitleTextView, true, 0); |         animateView(videoTitleTextView, true, 0); | ||||||
|  |  | ||||||
|         videoDescriptionRootLayout.setVisibility(View.GONE); |         videoDescriptionRootLayout.setVisibility(View.GONE); | ||||||
|         videoTitleToggleArrow.setImageResource(R.drawable.arrow_down); |         videoTitleToggleArrow.setImageResource(R.drawable.ic_expand_more_white_24dp); | ||||||
|         videoTitleToggleArrow.setVisibility(View.GONE); |         videoTitleToggleArrow.setVisibility(View.GONE); | ||||||
|         videoTitleRoot.setClickable(false); |         videoTitleRoot.setClickable(false); | ||||||
|  |  | ||||||
| @@ -1230,7 +1233,7 @@ public class VideoDetailFragment extends BaseStateFragment<StreamInfo> | |||||||
|         videoDescriptionView.setVisibility(View.GONE); |         videoDescriptionView.setVisibility(View.GONE); | ||||||
|         videoTitleRoot.setClickable(true); |         videoTitleRoot.setClickable(true); | ||||||
|         videoTitleToggleArrow.setVisibility(View.VISIBLE); |         videoTitleToggleArrow.setVisibility(View.VISIBLE); | ||||||
|         videoTitleToggleArrow.setImageResource(R.drawable.arrow_down); |         videoTitleToggleArrow.setImageResource(R.drawable.ic_expand_more_white_24dp); | ||||||
|         videoDescriptionRootLayout.setVisibility(View.GONE); |         videoDescriptionRootLayout.setVisibility(View.GONE); | ||||||
|  |  | ||||||
|         if (info.getUploadDate() != null) { |         if (info.getUploadDate() != null) { | ||||||
|   | |||||||
| @@ -117,8 +117,8 @@ public class SuggestionListAdapter | |||||||
|             queryView = rootView.findViewById(R.id.suggestion_search); |             queryView = rootView.findViewById(R.id.suggestion_search); | ||||||
|             insertView = rootView.findViewById(R.id.suggestion_insert); |             insertView = rootView.findViewById(R.id.suggestion_insert); | ||||||
|  |  | ||||||
|             historyResId = resolveResourceIdFromAttr(rootView.getContext(), R.attr.history); |             historyResId = resolveResourceIdFromAttr(rootView.getContext(), R.attr.ic_history); | ||||||
|             searchResId = resolveResourceIdFromAttr(rootView.getContext(), R.attr.search); |             searchResId = resolveResourceIdFromAttr(rootView.getContext(), R.attr.ic_search); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         private static int resolveResourceIdFromAttr(final Context context, |         private static int resolveResourceIdFromAttr(final Context context, | ||||||
|   | |||||||
| @@ -362,14 +362,14 @@ public class StatisticsPlaylistFragment | |||||||
|         if (sortMode == StatisticSortMode.LAST_PLAYED) { |         if (sortMode == StatisticSortMode.LAST_PLAYED) { | ||||||
|             sortMode = StatisticSortMode.MOST_PLAYED; |             sortMode = StatisticSortMode.MOST_PLAYED; | ||||||
|             setTitle(getString(R.string.title_most_played)); |             setTitle(getString(R.string.title_most_played)); | ||||||
|             sortButtonIcon |             sortButtonIcon.setImageResource( | ||||||
|                     .setImageResource(ThemeHelper.getIconByAttr(R.attr.history, getContext())); |                 ThemeHelper.resolveResourceIdFromAttr(requireContext(), R.attr.ic_history)); | ||||||
|             sortButtonText.setText(R.string.title_last_played); |             sortButtonText.setText(R.string.title_last_played); | ||||||
|         } else { |         } else { | ||||||
|             sortMode = StatisticSortMode.LAST_PLAYED; |             sortMode = StatisticSortMode.LAST_PLAYED; | ||||||
|             setTitle(getString(R.string.title_last_played)); |             setTitle(getString(R.string.title_last_played)); | ||||||
|             sortButtonIcon |             sortButtonIcon.setImageResource( | ||||||
|                     .setImageResource(ThemeHelper.getIconByAttr(R.attr.filter, getContext())); |                 ThemeHelper.resolveResourceIdFromAttr(requireContext(), R.attr.ic_filter_list)); | ||||||
|             sortButtonText.setText(R.string.title_most_played); |             sortButtonText.setText(R.string.title_most_played); | ||||||
|         } |         } | ||||||
|         startLoading(true); |         startLoading(true); | ||||||
|   | |||||||
| @@ -20,10 +20,10 @@ enum class FeedGroupIcon( | |||||||
|     ALL(0, R.attr.ic_asterisk), |     ALL(0, R.attr.ic_asterisk), | ||||||
|     MUSIC(1, R.attr.ic_music_note), |     MUSIC(1, R.attr.ic_music_note), | ||||||
|     EDUCATION(2, R.attr.ic_school), |     EDUCATION(2, R.attr.ic_school), | ||||||
|     FITNESS(3, R.attr.ic_fitness), |     FITNESS(3, R.attr.ic_fitness_center), | ||||||
|     SPACE(4, R.attr.ic_telescope), |     SPACE(4, R.attr.ic_telescope), | ||||||
|     COMPUTER(5, R.attr.ic_computer), |     COMPUTER(5, R.attr.ic_computer), | ||||||
|     GAMING(6, R.attr.ic_videogame), |     GAMING(6, R.attr.ic_videogame_asset), | ||||||
|     SPORTS(7, R.attr.ic_sports), |     SPORTS(7, R.attr.ic_sports), | ||||||
|     NEWS(8, R.attr.ic_megaphone), |     NEWS(8, R.attr.ic_megaphone), | ||||||
|     FAVORITES(9, R.attr.ic_heart), |     FAVORITES(9, R.attr.ic_heart), | ||||||
| @@ -32,17 +32,17 @@ enum class FeedGroupIcon( | |||||||
|     TREND(12, R.attr.ic_trending_up), |     TREND(12, R.attr.ic_trending_up), | ||||||
|     MOVIE(13, R.attr.ic_movie), |     MOVIE(13, R.attr.ic_movie), | ||||||
|     BACKUP(14, R.attr.ic_backup), |     BACKUP(14, R.attr.ic_backup), | ||||||
|     ART(15, R.attr.palette), |     ART(15, R.attr.ic_palette), | ||||||
|     PERSON(16, R.attr.ic_person), |     PERSON(16, R.attr.ic_person), | ||||||
|     PEOPLE(17, R.attr.ic_people), |     PEOPLE(17, R.attr.ic_people), | ||||||
|     MONEY(18, R.attr.ic_money), |     MONEY(18, R.attr.ic_money), | ||||||
|     KIDS(19, R.attr.ic_kids), |     KIDS(19, R.attr.ic_child_care), | ||||||
|     FOOD(20, R.attr.ic_fastfood), |     FOOD(20, R.attr.ic_fastfood), | ||||||
|     SMILE(21, R.attr.ic_smile), |     SMILE(21, R.attr.ic_smile), | ||||||
|     EXPLORE(22, R.attr.ic_explore), |     EXPLORE(22, R.attr.ic_explore), | ||||||
|     RESTAURANT(23, R.attr.ic_restaurant), |     RESTAURANT(23, R.attr.ic_restaurant), | ||||||
|     MIC(24, R.attr.ic_mic), |     MIC(24, R.attr.ic_mic), | ||||||
|     HEADSET(25, R.attr.audio), |     HEADSET(25, R.attr.ic_headset), | ||||||
|     RADIO(26, R.attr.ic_radio), |     RADIO(26, R.attr.ic_radio), | ||||||
|     SHOPPING_CART(27, R.attr.ic_shopping_cart), |     SHOPPING_CART(27, R.attr.ic_shopping_cart), | ||||||
|     WATCH_LATER(28, R.attr.ic_watch_later), |     WATCH_LATER(28, R.attr.ic_watch_later), | ||||||
| @@ -54,7 +54,7 @@ enum class FeedGroupIcon( | |||||||
|     WORLD(34, R.attr.ic_world), |     WORLD(34, R.attr.ic_world), | ||||||
|     STAR(35, R.attr.ic_stars), |     STAR(35, R.attr.ic_stars), | ||||||
|     SUN(36, R.attr.ic_sunny), |     SUN(36, R.attr.ic_sunny), | ||||||
|     RSS(37, R.attr.rss); |     RSS(37, R.attr.ic_rss); | ||||||
|  |  | ||||||
|     @DrawableRes |     @DrawableRes | ||||||
|     fun getDrawableRes(context: Context): Int { |     fun getDrawableRes(context: Context): Int { | ||||||
|   | |||||||
| @@ -655,7 +655,7 @@ public final class BackgroundPlayer extends Service { | |||||||
|             super.onPlaying(); |             super.onPlaying(); | ||||||
|             resetNotification(); |             resetNotification(); | ||||||
|             updateNotificationThumbnail(); |             updateNotificationThumbnail(); | ||||||
|             updateNotification(R.drawable.ic_pause_white); |             updateNotification(R.drawable.ic_pause_white_24dp); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         @Override |         @Override | ||||||
| @@ -663,7 +663,7 @@ public final class BackgroundPlayer extends Service { | |||||||
|             super.onPaused(); |             super.onPaused(); | ||||||
|             resetNotification(); |             resetNotification(); | ||||||
|             updateNotificationThumbnail(); |             updateNotificationThumbnail(); | ||||||
|             updateNotification(R.drawable.ic_play_arrow_white); |             updateNotification(R.drawable.ic_play_arrow_white_24dp); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         @Override |         @Override | ||||||
| @@ -677,7 +677,7 @@ public final class BackgroundPlayer extends Service { | |||||||
|                 notRemoteView.setProgressBar(R.id.notificationProgressBar, 100, 100, false); |                 notRemoteView.setProgressBar(R.id.notificationProgressBar, 100, 100, false); | ||||||
|             } |             } | ||||||
|             updateNotificationThumbnail(); |             updateNotificationThumbnail(); | ||||||
|             updateNotification(R.drawable.ic_replay_white); |             updateNotification(R.drawable.ic_replay_white_24dp); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -491,7 +491,7 @@ public final class MainVideoPlayer extends AppCompatActivity | |||||||
|  |  | ||||||
|     protected void setMuteButton(final ImageButton muteButton, final boolean isMuted) { |     protected void setMuteButton(final ImageButton muteButton, final boolean isMuted) { | ||||||
|         muteButton.setImageDrawable(AppCompatResources.getDrawable(getApplicationContext(), isMuted |         muteButton.setImageDrawable(AppCompatResources.getDrawable(getApplicationContext(), isMuted | ||||||
|                 ? R.drawable.ic_volume_off_white_72dp : R.drawable.ic_volume_up_white_72dp)); |                 ? R.drawable.ic_volume_off_white_24dp : R.drawable.ic_volume_up_white_24dp)); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -989,7 +989,7 @@ public final class MainVideoPlayer extends AppCompatActivity | |||||||
|         @Override |         @Override | ||||||
|         public void onBlocked() { |         public void onBlocked() { | ||||||
|             super.onBlocked(); |             super.onBlocked(); | ||||||
|             playPauseButton.setImageResource(R.drawable.ic_pause_white); |             playPauseButton.setImageResource(R.drawable.ic_pause_white_24dp); | ||||||
|             animatePlayButtons(false, 100); |             animatePlayButtons(false, 100); | ||||||
|             animateView(closeButton, false, DEFAULT_CONTROLS_DURATION); |             animateView(closeButton, false, DEFAULT_CONTROLS_DURATION); | ||||||
|             getRootView().setKeepScreenOn(true); |             getRootView().setKeepScreenOn(true); | ||||||
| @@ -1005,7 +1005,7 @@ public final class MainVideoPlayer extends AppCompatActivity | |||||||
|         public void onPlaying() { |         public void onPlaying() { | ||||||
|             super.onPlaying(); |             super.onPlaying(); | ||||||
|             animateView(playPauseButton, AnimationUtils.Type.SCALE_AND_ALPHA, false, 80, 0, () -> { |             animateView(playPauseButton, AnimationUtils.Type.SCALE_AND_ALPHA, false, 80, 0, () -> { | ||||||
|                 playPauseButton.setImageResource(R.drawable.ic_pause_white); |                 playPauseButton.setImageResource(R.drawable.ic_pause_white_24dp); | ||||||
|                 animatePlayButtons(true, 200); |                 animatePlayButtons(true, 200); | ||||||
|                 playPauseButton.requestFocus(); |                 playPauseButton.requestFocus(); | ||||||
|                 animateView(closeButton, false, DEFAULT_CONTROLS_DURATION); |                 animateView(closeButton, false, DEFAULT_CONTROLS_DURATION); | ||||||
| @@ -1018,7 +1018,7 @@ public final class MainVideoPlayer extends AppCompatActivity | |||||||
|         public void onPaused() { |         public void onPaused() { | ||||||
|             super.onPaused(); |             super.onPaused(); | ||||||
|             animateView(playPauseButton, AnimationUtils.Type.SCALE_AND_ALPHA, false, 80, 0, () -> { |             animateView(playPauseButton, AnimationUtils.Type.SCALE_AND_ALPHA, false, 80, 0, () -> { | ||||||
|                 playPauseButton.setImageResource(R.drawable.ic_play_arrow_white); |                 playPauseButton.setImageResource(R.drawable.ic_play_arrow_white_24dp); | ||||||
|                 animatePlayButtons(true, 200); |                 animatePlayButtons(true, 200); | ||||||
|                 playPauseButton.requestFocus(); |                 playPauseButton.requestFocus(); | ||||||
|                 animateView(closeButton, false, DEFAULT_CONTROLS_DURATION); |                 animateView(closeButton, false, DEFAULT_CONTROLS_DURATION); | ||||||
| @@ -1039,7 +1039,7 @@ public final class MainVideoPlayer extends AppCompatActivity | |||||||
|         @Override |         @Override | ||||||
|         public void onCompleted() { |         public void onCompleted() { | ||||||
|             animateView(playPauseButton, AnimationUtils.Type.SCALE_AND_ALPHA, false, 0, 0, () -> { |             animateView(playPauseButton, AnimationUtils.Type.SCALE_AND_ALPHA, false, 0, 0, () -> { | ||||||
|                 playPauseButton.setImageResource(R.drawable.ic_replay_white); |                 playPauseButton.setImageResource(R.drawable.ic_replay_white_24dp); | ||||||
|                 animatePlayButtons(true, DEFAULT_CONTROLS_DURATION); |                 animatePlayButtons(true, DEFAULT_CONTROLS_DURATION); | ||||||
|                 animateView(closeButton, true, DEFAULT_CONTROLS_DURATION); |                 animateView(closeButton, true, DEFAULT_CONTROLS_DURATION); | ||||||
|             }); |             }); | ||||||
| @@ -1368,12 +1368,12 @@ public final class MainVideoPlayer extends AppCompatActivity | |||||||
|                 } |                 } | ||||||
|  |  | ||||||
|                 final int resId = currentProgressPercent <= 0 |                 final int resId = currentProgressPercent <= 0 | ||||||
|                         ? R.drawable.ic_volume_off_white_72dp |                         ? R.drawable.ic_volume_off_white_24dp | ||||||
|                         : currentProgressPercent < 0.25 |                         : currentProgressPercent < 0.25 | ||||||
|                         ? R.drawable.ic_volume_mute_white_72dp |                         ? R.drawable.ic_volume_mute_white_24dp | ||||||
|                         : currentProgressPercent < 0.75 |                         : currentProgressPercent < 0.75 | ||||||
|                         ? R.drawable.ic_volume_down_white_72dp |                         ? R.drawable.ic_volume_down_white_24dp | ||||||
|                         : R.drawable.ic_volume_up_white_72dp; |                         : R.drawable.ic_volume_up_white_24dp; | ||||||
|  |  | ||||||
|                 playerImpl.getVolumeImageView().setImageDrawable( |                 playerImpl.getVolumeImageView().setImageDrawable( | ||||||
|                         AppCompatResources.getDrawable(getApplicationContext(), resId) |                         AppCompatResources.getDrawable(getApplicationContext(), resId) | ||||||
| @@ -1400,10 +1400,10 @@ public final class MainVideoPlayer extends AppCompatActivity | |||||||
|                 } |                 } | ||||||
|  |  | ||||||
|                 final int resId = currentProgressPercent < 0.25 |                 final int resId = currentProgressPercent < 0.25 | ||||||
|                         ? R.drawable.ic_brightness_low_white_72dp |                         ? R.drawable.ic_brightness_low_white_24dp | ||||||
|                         : currentProgressPercent < 0.75 |                         : currentProgressPercent < 0.75 | ||||||
|                                 ? R.drawable.ic_brightness_medium_white_72dp |                                 ? R.drawable.ic_brightness_medium_white_24dp | ||||||
|                                 : R.drawable.ic_brightness_high_white_72dp; |                                 : R.drawable.ic_brightness_high_white_24dp; | ||||||
|  |  | ||||||
|                 playerImpl.getBrightnessImageView().setImageDrawable( |                 playerImpl.getBrightnessImageView().setImageDrawable( | ||||||
|                         AppCompatResources.getDrawable(getApplicationContext(), resId) |                         AppCompatResources.getDrawable(getApplicationContext(), resId) | ||||||
|   | |||||||
| @@ -892,7 +892,7 @@ public final class PopupVideoPlayer extends Service { | |||||||
|         public void onBlocked() { |         public void onBlocked() { | ||||||
|             super.onBlocked(); |             super.onBlocked(); | ||||||
|             resetNotification(); |             resetNotification(); | ||||||
|             updateNotification(R.drawable.ic_play_arrow_white); |             updateNotification(R.drawable.ic_play_arrow_white_24dp); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         @Override |         @Override | ||||||
| @@ -902,9 +902,9 @@ public final class PopupVideoPlayer extends Service { | |||||||
|             updateWindowFlags(ONGOING_PLAYBACK_WINDOW_FLAGS); |             updateWindowFlags(ONGOING_PLAYBACK_WINDOW_FLAGS); | ||||||
|  |  | ||||||
|             resetNotification(); |             resetNotification(); | ||||||
|             updateNotification(R.drawable.ic_pause_white); |             updateNotification(R.drawable.ic_pause_white_24dp); | ||||||
|  |  | ||||||
|             videoPlayPause.setBackgroundResource(R.drawable.ic_pause_white); |             videoPlayPause.setBackgroundResource(R.drawable.ic_pause_white_24dp); | ||||||
|             hideControls(DEFAULT_CONTROLS_DURATION, DEFAULT_CONTROLS_HIDE_TIME); |             hideControls(DEFAULT_CONTROLS_DURATION, DEFAULT_CONTROLS_HIDE_TIME); | ||||||
|  |  | ||||||
|             startForeground(NOTIFICATION_ID, notBuilder.build()); |             startForeground(NOTIFICATION_ID, notBuilder.build()); | ||||||
| @@ -914,7 +914,7 @@ public final class PopupVideoPlayer extends Service { | |||||||
|         public void onBuffering() { |         public void onBuffering() { | ||||||
|             super.onBuffering(); |             super.onBuffering(); | ||||||
|             resetNotification(); |             resetNotification(); | ||||||
|             updateNotification(R.drawable.ic_play_arrow_white); |             updateNotification(R.drawable.ic_play_arrow_white_24dp); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         @Override |         @Override | ||||||
| @@ -924,8 +924,8 @@ public final class PopupVideoPlayer extends Service { | |||||||
|             updateWindowFlags(IDLE_WINDOW_FLAGS); |             updateWindowFlags(IDLE_WINDOW_FLAGS); | ||||||
|  |  | ||||||
|             resetNotification(); |             resetNotification(); | ||||||
|             updateNotification(R.drawable.ic_play_arrow_white); |             updateNotification(R.drawable.ic_play_arrow_white_24dp); | ||||||
|             videoPlayPause.setBackgroundResource(R.drawable.ic_play_arrow_white); |             videoPlayPause.setBackgroundResource(R.drawable.ic_play_arrow_white_24dp); | ||||||
|  |  | ||||||
|             stopForeground(false); |             stopForeground(false); | ||||||
|         } |         } | ||||||
| @@ -934,9 +934,9 @@ public final class PopupVideoPlayer extends Service { | |||||||
|         public void onPausedSeek() { |         public void onPausedSeek() { | ||||||
|             super.onPausedSeek(); |             super.onPausedSeek(); | ||||||
|             resetNotification(); |             resetNotification(); | ||||||
|             updateNotification(R.drawable.ic_play_arrow_white); |             updateNotification(R.drawable.ic_play_arrow_white_24dp); | ||||||
|  |  | ||||||
|             videoPlayPause.setBackgroundResource(R.drawable.ic_pause_white); |             videoPlayPause.setBackgroundResource(R.drawable.ic_pause_white_24dp); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         @Override |         @Override | ||||||
| @@ -946,8 +946,8 @@ public final class PopupVideoPlayer extends Service { | |||||||
|             updateWindowFlags(IDLE_WINDOW_FLAGS); |             updateWindowFlags(IDLE_WINDOW_FLAGS); | ||||||
|  |  | ||||||
|             resetNotification(); |             resetNotification(); | ||||||
|             updateNotification(R.drawable.ic_replay_white); |             updateNotification(R.drawable.ic_replay_white_24dp); | ||||||
|             videoPlayPause.setBackgroundResource(R.drawable.ic_replay_white); |             videoPlayPause.setBackgroundResource(R.drawable.ic_replay_white_24dp); | ||||||
|  |  | ||||||
|             stopForeground(false); |             stopForeground(false); | ||||||
|         } |         } | ||||||
|   | |||||||
| @@ -643,13 +643,13 @@ public abstract class ServicePlayerActivity extends AppCompatActivity | |||||||
|     private void onStateChanged(final int state) { |     private void onStateChanged(final int state) { | ||||||
|         switch (state) { |         switch (state) { | ||||||
|             case BasePlayer.STATE_PAUSED: |             case BasePlayer.STATE_PAUSED: | ||||||
|                 playPauseButton.setImageResource(R.drawable.ic_play_arrow_white); |                 playPauseButton.setImageResource(R.drawable.ic_play_arrow_white_24dp); | ||||||
|                 break; |                 break; | ||||||
|             case BasePlayer.STATE_PLAYING: |             case BasePlayer.STATE_PLAYING: | ||||||
|                 playPauseButton.setImageResource(R.drawable.ic_pause_white); |                 playPauseButton.setImageResource(R.drawable.ic_pause_white_24dp); | ||||||
|                 break; |                 break; | ||||||
|             case BasePlayer.STATE_COMPLETED: |             case BasePlayer.STATE_COMPLETED: | ||||||
|                 playPauseButton.setImageResource(R.drawable.ic_replay_white); |                 playPauseButton.setImageResource(R.drawable.ic_replay_white_24dp); | ||||||
|                 break; |                 break; | ||||||
|             default: |             default: | ||||||
|                 break; |                 break; | ||||||
| @@ -717,9 +717,9 @@ public abstract class ServicePlayerActivity extends AppCompatActivity | |||||||
|             // using rootView.getContext() because getApplicationContext() didn't work |             // using rootView.getContext() because getApplicationContext() didn't work | ||||||
|             item.setIcon(player.isMuted() |             item.setIcon(player.isMuted() | ||||||
|                     ? ThemeHelper.resolveResourceIdFromAttr(rootView.getContext(), |                     ? ThemeHelper.resolveResourceIdFromAttr(rootView.getContext(), | ||||||
|                             R.attr.volume_off) |                             R.attr.ic_volume_off) | ||||||
|                     : ThemeHelper.resolveResourceIdFromAttr(rootView.getContext(), |                     : ThemeHelper.resolveResourceIdFromAttr(rootView.getContext(), | ||||||
|                             R.attr.volume_on)); |                             R.attr.ic_volume_up)); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -682,13 +682,13 @@ public abstract class VideoPlayer extends BasePlayer | |||||||
|     @Override |     @Override | ||||||
|     public void onFastRewind() { |     public void onFastRewind() { | ||||||
|         super.onFastRewind(); |         super.onFastRewind(); | ||||||
|         showAndAnimateControl(R.drawable.ic_action_av_fast_rewind, true); |         showAndAnimateControl(R.drawable.ic_fast_rewind_white_24dp, true); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void onFastForward() { |     public void onFastForward() { | ||||||
|         super.onFastForward(); |         super.onFastForward(); | ||||||
|         showAndAnimateControl(R.drawable.ic_action_av_fast_forward, true); |         showAndAnimateControl(R.drawable.ic_fast_forward_white_24dp, true); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     /*////////////////////////////////////////////////////////////////////////// |     /*////////////////////////////////////////////////////////////////////////// | ||||||
|   | |||||||
| @@ -231,7 +231,7 @@ public abstract class Tab { | |||||||
|         @DrawableRes |         @DrawableRes | ||||||
|         @Override |         @Override | ||||||
|         public int getTabIconRes(final Context context) { |         public int getTabIconRes(final Context context) { | ||||||
|             return ThemeHelper.resolveResourceIdFromAttr(context, R.attr.rss); |             return ThemeHelper.resolveResourceIdFromAttr(context, R.attr.ic_rss); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         @Override |         @Override | ||||||
| @@ -281,7 +281,7 @@ public abstract class Tab { | |||||||
|         @DrawableRes |         @DrawableRes | ||||||
|         @Override |         @Override | ||||||
|         public int getTabIconRes(final Context context) { |         public int getTabIconRes(final Context context) { | ||||||
|             return ThemeHelper.resolveResourceIdFromAttr(context, R.attr.history); |             return ThemeHelper.resolveResourceIdFromAttr(context, R.attr.ic_history); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         @Override |         @Override | ||||||
|   | |||||||
| @@ -61,7 +61,7 @@ public final class KioskTranslator { | |||||||
|             case "Recently added": |             case "Recently added": | ||||||
|                 return ThemeHelper.resolveResourceIdFromAttr(c, R.attr.ic_kiosk_recent); |                 return ThemeHelper.resolveResourceIdFromAttr(c, R.attr.ic_kiosk_recent); | ||||||
|             case "Most liked": |             case "Most liked": | ||||||
|                 return ThemeHelper.resolveResourceIdFromAttr(c, R.attr.thumbs_up); |                 return ThemeHelper.resolveResourceIdFromAttr(c, R.attr.ic_thumb_up); | ||||||
|             default: |             default: | ||||||
|                 return 0; |                 return 0; | ||||||
|         } |         } | ||||||
|   | |||||||
| @@ -231,16 +231,4 @@ public final class ThemeHelper { | |||||||
|         return PreferenceManager.getDefaultSharedPreferences(context) |         return PreferenceManager.getDefaultSharedPreferences(context) | ||||||
|                 .getString(themeKey, defaultTheme); |                 .getString(themeKey, defaultTheme); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |  | ||||||
|      * This will get the R.drawable.* resource to which attr is currently pointing to. |  | ||||||
|      * |  | ||||||
|      * @param attr    a R.attribute.* resource value |  | ||||||
|      * @param context the context to use |  | ||||||
|      * @return a R.drawable.* resource value |  | ||||||
|      */ |  | ||||||
|     public static int getIconByAttr(final int attr, final Context context) { |  | ||||||
|         return context.obtainStyledAttributes(new int[]{attr}) |  | ||||||
|                 .getResourceId(0, -1); |  | ||||||
|     } |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -224,15 +224,9 @@ public class MissionsFragment extends Fragment { | |||||||
|         mList.setAdapter(mAdapter); |         mList.setAdapter(mAdapter); | ||||||
|  |  | ||||||
|         if (mSwitch != null) { |         if (mSwitch != null) { | ||||||
|             boolean isLight = ThemeHelper.isLightThemeSelected(mContext); |             mSwitch.setIcon(mLinear | ||||||
|             int icon; |                     ? ThemeHelper.resolveResourceIdFromAttr(requireContext(), R.attr.ic_grid) | ||||||
|  |                     : ThemeHelper.resolveResourceIdFromAttr(requireContext(), R.attr.ic_list)); | ||||||
|             if (mLinear) |  | ||||||
|                 icon = isLight ? R.drawable.ic_grid_black_24dp : R.drawable.ic_grid_white_24dp; |  | ||||||
|             else |  | ||||||
|                 icon = isLight ? R.drawable.ic_list_black_24dp : R.drawable.ic_list_white_24dp; |  | ||||||
|  |  | ||||||
|             mSwitch.setIcon(icon); |  | ||||||
|             mSwitch.setTitle(mLinear ? R.string.grid : R.string.list); |             mSwitch.setTitle(mLinear ? R.string.grid : R.string.list); | ||||||
|             mPrefs.edit().putBoolean("linear", mLinear).apply(); |             mPrefs.edit().putBoolean("linear", mLinear).apply(); | ||||||
|         } |         } | ||||||
|   | |||||||
| @@ -191,12 +191,12 @@ public class Utility { | |||||||
|     public static int getIconForFileType(FileType type) { |     public static int getIconForFileType(FileType type) { | ||||||
|         switch (type) { |         switch (type) { | ||||||
|             case MUSIC: |             case MUSIC: | ||||||
|                 return R.drawable.music; |                 return R.drawable.ic_headset_white_24dp; | ||||||
|             default: |             default: | ||||||
|             case VIDEO: |             case VIDEO: | ||||||
|                 return R.drawable.video; |                 return R.drawable.ic_movie_white_24dp; | ||||||
|             case SUBTITLE: |             case SUBTITLE: | ||||||
|                 return R.drawable.subtitle; |                 return R.drawable.ic_subtitles_white_24dp; | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
| Before Width: | Height: | Size: 575 B | 
| Before Width: | Height: | Size: 535 B | 
| Before Width: | Height: | Size: 223 B | 
| Before Width: | Height: | Size: 148 B | 
| Before Width: | Height: | Size: 554 B | 
| Before Width: | Height: | Size: 546 B | 
| Before Width: | Height: | Size: 337 B | 
| Before Width: | Height: | Size: 345 B | 
| Before Width: | Height: | Size: 180 B | 
| Before Width: | Height: | Size: 185 B | 
| Before Width: | Height: | Size: 258 B | 
| Before Width: | Height: | Size: 267 B | 
| Before Width: | Height: | Size: 384 B | 
| Before Width: | Height: | Size: 394 B | 
| Before Width: | Height: | Size: 396 B | 
| Before Width: | Height: | Size: 398 B | 
| Before Width: | Height: | Size: 207 B | 
| Before Width: | Height: | Size: 221 B | 
| Before Width: | Height: | Size: 317 B | 
| Before Width: | Height: | Size: 319 B | 
| Before Width: | Height: | Size: 98 B | 
| Before Width: | Height: | Size: 99 B | 
| Before Width: | Height: | Size: 149 B | 
| Before Width: | Height: | Size: 156 B | 
| Before Width: | Height: | Size: 151 B | 
| Before Width: | Height: | Size: 159 B | 
| Before Width: | Height: | Size: 256 B | 
| Before Width: | Height: | Size: 252 B | 
| Before Width: | Height: | Size: 148 B | 
| Before Width: | Height: | Size: 163 B | 
| Before Width: | Height: | Size: 107 B | 
| Before Width: | Height: | Size: 111 B | 
| Before Width: | Height: | Size: 103 B | 
| Before Width: | Height: | Size: 105 B | 
| Before Width: | Height: | Size: 107 B | 
| Before Width: | Height: | Size: 422 B | 
| Before Width: | Height: | Size: 415 B | 
| Before Width: | Height: | Size: 349 B | 
| Before Width: | Height: | Size: 350 B | 
| Before Width: | Height: | Size: 494 B | 
| Before Width: | Height: | Size: 486 B | 
| Before Width: | Height: | Size: 163 B | 
| Before Width: | Height: | Size: 172 B | 
| Before Width: | Height: | Size: 487 B | 
| Before Width: | Height: | Size: 485 B | 
| Before Width: | Height: | Size: 208 B | 
| Before Width: | Height: | Size: 206 B | 
| Before Width: | Height: | Size: 475 B | 
| Before Width: | Height: | Size: 460 B | 
| Before Width: | Height: | Size: 589 B | 
| Before Width: | Height: | Size: 590 B | 
| Before Width: | Height: | Size: 265 B | 
| Before Width: | Height: | Size: 276 B | 
| Before Width: | Height: | Size: 319 B | 
| Before Width: | Height: | Size: 132 B | 
| Before Width: | Height: | Size: 134 B | 
| Before Width: | Height: | Size: 422 B | 
| Before Width: | Height: | Size: 439 B | 
| Before Width: | Height: | Size: 135 B | 
| Before Width: | Height: | Size: 92 B | 
| Before Width: | Height: | Size: 138 B | 
| Before Width: | Height: | Size: 189 B | 
| Before Width: | Height: | Size: 193 B | 
| Before Width: | Height: | Size: 194 B | 
| Before Width: | Height: | Size: 283 B | 
| Before Width: | Height: | Size: 195 B | 
| Before Width: | Height: | Size: 358 B | 
| Before Width: | Height: | Size: 2.1 KiB | 
| Before Width: | Height: | Size: 106 B | 
| Before Width: | Height: | Size: 163 B | 
| Before Width: | Height: | Size: 159 B | 
| Before Width: | Height: | Size: 107 B | 
| Before Width: | Height: | Size: 143 B | 
| Before Width: | Height: | Size: 363 B | 
| Before Width: | Height: | Size: 234 B | 
| Before Width: | Height: | Size: 675 B | 
| Before Width: | Height: | Size: 410 B | 
| Before Width: | Height: | Size: 417 B | 
| Before Width: | Height: | Size: 240 B | 
| Before Width: | Height: | Size: 247 B | 
| Before Width: | Height: | Size: 478 B | 
| Before Width: | Height: | Size: 976 B | 
| Before Width: | Height: | Size: 390 B | 
 Stypox
					Stypox