diff --git a/app/src/main/java/com/kabouzeid/gramophone/adapter/AlbumAdapter.java b/app/src/main/java/com/kabouzeid/gramophone/adapter/AlbumAdapter.java index a4beba35..857d827c 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/adapter/AlbumAdapter.java +++ b/app/src/main/java/com/kabouzeid/gramophone/adapter/AlbumAdapter.java @@ -32,10 +32,10 @@ import com.kabouzeid.gramophone.model.DataBaseChangedEvent; import com.kabouzeid.gramophone.model.Song; import com.kabouzeid.gramophone.model.UIPreferenceChangedEvent; import com.kabouzeid.gramophone.ui.activities.base.AbsFabActivity; +import com.kabouzeid.gramophone.util.ColorUtil; import com.kabouzeid.gramophone.util.MusicUtil; import com.kabouzeid.gramophone.util.NavigationUtil; -import com.kabouzeid.gramophone.util.PreferenceUtils; -import com.kabouzeid.gramophone.util.Util; +import com.kabouzeid.gramophone.util.PreferenceUtil; import com.kabouzeid.gramophone.util.ViewUtil; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; @@ -203,7 +203,7 @@ public class AlbumAdapter extends AbsMultiSelectAdapter" + context.getResources().getString(titleResId) + ": " + "" + text); } + + private static String getFileSizeString(long sizeInBytes) { + long fileSizeInKB = sizeInBytes / 1024; + long fileSizeInMB = fileSizeInKB / 1024; + return fileSizeInMB + " MB"; + } } diff --git a/app/src/main/java/com/kabouzeid/gramophone/helper/PlayingNotificationHelper.java b/app/src/main/java/com/kabouzeid/gramophone/helper/PlayingNotificationHelper.java index f3d7b189..97c91ce7 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/helper/PlayingNotificationHelper.java +++ b/app/src/main/java/com/kabouzeid/gramophone/helper/PlayingNotificationHelper.java @@ -25,7 +25,7 @@ import com.kabouzeid.gramophone.model.Song; import com.kabouzeid.gramophone.service.MusicService; import com.kabouzeid.gramophone.ui.activities.MainActivity; import com.kabouzeid.gramophone.util.MusicUtil; -import com.kabouzeid.gramophone.util.PreferenceUtils; +import com.kabouzeid.gramophone.util.PreferenceUtil; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.assist.FailReason; import com.nostra13.universalimageloader.core.assist.ImageSize; @@ -89,7 +89,7 @@ public class PlayingNotificationHelper { }; public void updateNotification() { - updateNotification(PreferenceUtils.getInstance(service).coloredNotification()); + updateNotification(PreferenceUtil.getInstance(service).coloredNotification()); } private void updateNotification(final boolean isColored) { diff --git a/app/src/main/java/com/kabouzeid/gramophone/util/SortOrder.java b/app/src/main/java/com/kabouzeid/gramophone/helper/SortOrder.java similarity index 99% rename from app/src/main/java/com/kabouzeid/gramophone/util/SortOrder.java rename to app/src/main/java/com/kabouzeid/gramophone/helper/SortOrder.java index 9ccc7aa2..553968cf 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/util/SortOrder.java +++ b/app/src/main/java/com/kabouzeid/gramophone/helper/SortOrder.java @@ -9,7 +9,7 @@ * governing permissions and limitations under the License. */ -package com.kabouzeid.gramophone.util; +package com.kabouzeid.gramophone.helper; import android.provider.MediaStore; diff --git a/app/src/main/java/com/kabouzeid/gramophone/helper/bitmapblur/StackBlurManager.java b/app/src/main/java/com/kabouzeid/gramophone/helper/bitmapblur/StackBlurManager.java index a8a2a9fd..66eebb0c 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/helper/bitmapblur/StackBlurManager.java +++ b/app/src/main/java/com/kabouzeid/gramophone/helper/bitmapblur/StackBlurManager.java @@ -29,7 +29,7 @@ import android.graphics.Bitmap; import android.support.annotation.NonNull; import android.support.annotation.Nullable; -import com.kabouzeid.gramophone.util.Util; +import com.kabouzeid.gramophone.util.ImageUtil; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @@ -64,7 +64,7 @@ public class StackBlurManager { */ public StackBlurManager(@NonNull Bitmap image) { // resize Bitmap to prevent OOM and OOB exceptions and increase the performance - this.image = Util.getResizedBitmap(image, 500, 500, false); + this.image = ImageUtil.getResizedBitmap(image, 500, 500, false); blurProcess = new JavaBlurProcess(); } diff --git a/app/src/main/java/com/kabouzeid/gramophone/imageloader/PhonographImageDownloader.java b/app/src/main/java/com/kabouzeid/gramophone/imageloader/PhonographImageDownloader.java index f5913893..def90642 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/imageloader/PhonographImageDownloader.java +++ b/app/src/main/java/com/kabouzeid/gramophone/imageloader/PhonographImageDownloader.java @@ -9,7 +9,7 @@ import com.kabouzeid.gramophone.loader.AlbumSongLoader; import com.kabouzeid.gramophone.model.Song; import com.kabouzeid.gramophone.util.ImageUtil; import com.kabouzeid.gramophone.util.MusicUtil; -import com.kabouzeid.gramophone.util.PreferenceUtils; +import com.kabouzeid.gramophone.util.PreferenceUtil; import com.nostra13.universalimageloader.core.download.BaseImageDownloader; import java.io.ByteArrayInputStream; @@ -47,7 +47,7 @@ public class PhonographImageDownloader extends BaseImageDownloader { protected InputStream getStreamFromAlbum(@NonNull String imageUri) throws IOException { int albumId = Integer.valueOf(imageUri.substring(SCHEME_ALBUM.length())); - if (PreferenceUtils.getInstance(context).ignoreMediaStoreArtwork()) { + if (PreferenceUtil.getInstance(context).ignoreMediaStoreArtwork()) { ArrayList songs = AlbumSongLoader.getAlbumSongList(context, albumId); for (Song song : songs) { Bitmap bitmap = ImageUtil.getEmbeddedSongArt(new File(song.data), context); @@ -64,7 +64,7 @@ public class PhonographImageDownloader extends BaseImageDownloader { protected InputStream getStreamFromSong(@NonNull String imageUri) throws IOException { String[] data = imageUri.split("#", 2); - if (PreferenceUtils.getInstance(context).ignoreMediaStoreArtwork()) { + if (PreferenceUtil.getInstance(context).ignoreMediaStoreArtwork()) { Bitmap bitmap = ImageUtil.getEmbeddedSongArt(new File(data[1]), context); if (bitmap != null) { return getBitmapInputStream(bitmap); diff --git a/app/src/main/java/com/kabouzeid/gramophone/loader/AlbumLoader.java b/app/src/main/java/com/kabouzeid/gramophone/loader/AlbumLoader.java index dbc51ec4..5400ea72 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/loader/AlbumLoader.java +++ b/app/src/main/java/com/kabouzeid/gramophone/loader/AlbumLoader.java @@ -11,7 +11,7 @@ import android.support.annotation.NonNull; import android.support.annotation.Nullable; import com.kabouzeid.gramophone.model.Album; -import com.kabouzeid.gramophone.util.PreferenceUtils; +import com.kabouzeid.gramophone.util.PreferenceUtil; import java.util.ArrayList; @@ -78,7 +78,7 @@ public class AlbumLoader { } public static Cursor makeAlbumCursor(@NonNull final Context context, final String selection, final String[] values) { - return makeAlbumCursor(context, selection, values, PreferenceUtils.getInstance(context).getAlbumSortOrder()); + return makeAlbumCursor(context, selection, values, PreferenceUtil.getInstance(context).getAlbumSortOrder()); } public static Cursor makeAlbumCursor(@NonNull final Context context, final String selection, final String[] values, final String sortOrder) { diff --git a/app/src/main/java/com/kabouzeid/gramophone/loader/AlbumSongLoader.java b/app/src/main/java/com/kabouzeid/gramophone/loader/AlbumSongLoader.java index d34ad61f..4b7d6be1 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/loader/AlbumSongLoader.java +++ b/app/src/main/java/com/kabouzeid/gramophone/loader/AlbumSongLoader.java @@ -6,7 +6,7 @@ import android.provider.MediaStore; import android.support.annotation.NonNull; import com.kabouzeid.gramophone.model.Song; -import com.kabouzeid.gramophone.util.PreferenceUtils; +import com.kabouzeid.gramophone.util.PreferenceUtil; import java.util.ArrayList; @@ -27,7 +27,7 @@ public class AlbumSongLoader { new String[]{ String.valueOf(albumId) }, - PreferenceUtils.getInstance(context).getAlbumSongSortOrder() + PreferenceUtil.getInstance(context).getAlbumSongSortOrder() ); } } \ No newline at end of file diff --git a/app/src/main/java/com/kabouzeid/gramophone/loader/ArtistAlbumLoader.java b/app/src/main/java/com/kabouzeid/gramophone/loader/ArtistAlbumLoader.java index daf5b57d..d2382960 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/loader/ArtistAlbumLoader.java +++ b/app/src/main/java/com/kabouzeid/gramophone/loader/ArtistAlbumLoader.java @@ -6,7 +6,7 @@ import android.provider.MediaStore; import android.support.annotation.NonNull; import com.kabouzeid.gramophone.model.Album; -import com.kabouzeid.gramophone.util.PreferenceUtils; +import com.kabouzeid.gramophone.util.PreferenceUtil; import java.util.ArrayList; @@ -25,7 +25,7 @@ public class ArtistAlbumLoader { MediaStore.Audio.Artists.Albums.getContentUri("external", artistId), null, null, - PreferenceUtils.getInstance(context).getArtistAlbumSortOrder() + PreferenceUtil.getInstance(context).getArtistAlbumSortOrder() ); } } diff --git a/app/src/main/java/com/kabouzeid/gramophone/loader/ArtistLoader.java b/app/src/main/java/com/kabouzeid/gramophone/loader/ArtistLoader.java index 4b78c631..67d213f6 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/loader/ArtistLoader.java +++ b/app/src/main/java/com/kabouzeid/gramophone/loader/ArtistLoader.java @@ -9,7 +9,7 @@ import android.support.annotation.NonNull; import android.support.annotation.Nullable; import com.kabouzeid.gramophone.model.Artist; -import com.kabouzeid.gramophone.util.PreferenceUtils; +import com.kabouzeid.gramophone.util.PreferenceUtil; import java.util.ArrayList; @@ -85,6 +85,6 @@ public class ArtistLoader { ArtistColumns.NUMBER_OF_ALBUMS, /* 3 */ ArtistColumns.NUMBER_OF_TRACKS - }, selection, values, PreferenceUtils.getInstance(context).getArtistSortOrder()); + }, selection, values, PreferenceUtil.getInstance(context).getArtistSortOrder()); } } diff --git a/app/src/main/java/com/kabouzeid/gramophone/loader/ArtistSongLoader.java b/app/src/main/java/com/kabouzeid/gramophone/loader/ArtistSongLoader.java index deaa703b..76a78a14 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/loader/ArtistSongLoader.java +++ b/app/src/main/java/com/kabouzeid/gramophone/loader/ArtistSongLoader.java @@ -6,7 +6,7 @@ import android.provider.MediaStore; import android.support.annotation.NonNull; import com.kabouzeid.gramophone.model.Song; -import com.kabouzeid.gramophone.util.PreferenceUtils; +import com.kabouzeid.gramophone.util.PreferenceUtil; import java.util.ArrayList; @@ -27,7 +27,7 @@ public class ArtistSongLoader { new String[]{ String.valueOf(artistId) }, - PreferenceUtils.getInstance(context).getArtistSongSortOrder() + PreferenceUtil.getInstance(context).getArtistSongSortOrder() ); } } \ No newline at end of file diff --git a/app/src/main/java/com/kabouzeid/gramophone/loader/LastAddedLoader.java b/app/src/main/java/com/kabouzeid/gramophone/loader/LastAddedLoader.java index f631432c..e0b143ae 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/loader/LastAddedLoader.java +++ b/app/src/main/java/com/kabouzeid/gramophone/loader/LastAddedLoader.java @@ -6,7 +6,7 @@ import android.provider.MediaStore; import android.support.annotation.NonNull; import com.kabouzeid.gramophone.model.Song; -import com.kabouzeid.gramophone.util.PreferenceUtils; +import com.kabouzeid.gramophone.util.PreferenceUtil; import java.util.ArrayList; @@ -20,7 +20,7 @@ public class LastAddedLoader { public static Cursor makeLastAddedCursor(@NonNull final Context context) { long fourWeeksAgo = (System.currentTimeMillis() / 1000) - (4 * 3600 * 24 * 7); // possible saved timestamp caused by user "clearing" the last added playlist - long cutoff = PreferenceUtils.getInstance(context).getLastAddedCutOffTimestamp() / 1000; + long cutoff = PreferenceUtil.getInstance(context).getLastAddedCutOffTimestamp() / 1000; if (cutoff < fourWeeksAgo) { cutoff = fourWeeksAgo; } diff --git a/app/src/main/java/com/kabouzeid/gramophone/loader/SongLoader.java b/app/src/main/java/com/kabouzeid/gramophone/loader/SongLoader.java index 03facfe2..18124dfd 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/loader/SongLoader.java +++ b/app/src/main/java/com/kabouzeid/gramophone/loader/SongLoader.java @@ -9,7 +9,7 @@ import android.support.annotation.NonNull; import android.support.annotation.Nullable; import com.kabouzeid.gramophone.model.Song; -import com.kabouzeid.gramophone.util.PreferenceUtils; +import com.kabouzeid.gramophone.util.PreferenceUtil; import java.util.ArrayList; @@ -78,7 +78,7 @@ public class SongLoader { } public static Cursor makeSongCursor(@NonNull final Context context, final String selection, final String[] values) { - return makeSongCursor(context, selection, values, PreferenceUtils.getInstance(context).getSongSortOrder()); + return makeSongCursor(context, selection, values, PreferenceUtil.getInstance(context).getSongSortOrder()); } public static Cursor makeSongCursor(@NonNull final Context context, @Nullable final String selection, final String[] values, final String sortOrder) { diff --git a/app/src/main/java/com/kabouzeid/gramophone/model/smartplaylist/LastAddedPlaylist.java b/app/src/main/java/com/kabouzeid/gramophone/model/smartplaylist/LastAddedPlaylist.java index 8a778f29..c2e7996f 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/model/smartplaylist/LastAddedPlaylist.java +++ b/app/src/main/java/com/kabouzeid/gramophone/model/smartplaylist/LastAddedPlaylist.java @@ -8,7 +8,7 @@ import com.kabouzeid.gramophone.R; import com.kabouzeid.gramophone.loader.LastAddedLoader; import com.kabouzeid.gramophone.model.DataBaseChangedEvent; import com.kabouzeid.gramophone.model.Song; -import com.kabouzeid.gramophone.util.PreferenceUtils; +import com.kabouzeid.gramophone.util.PreferenceUtil; import java.util.ArrayList; @@ -29,7 +29,7 @@ public class LastAddedPlaylist extends AbsSmartPlaylist { @Override public void clear(@NonNull Context context) { - PreferenceUtils.getInstance(context).setLastAddedCutoffTimestamp(System.currentTimeMillis()); + PreferenceUtil.getInstance(context).setLastAddedCutoffTimestamp(System.currentTimeMillis()); App.bus.post(new DataBaseChangedEvent(DataBaseChangedEvent.PLAYLISTS_CHANGED)); } } diff --git a/app/src/main/java/com/kabouzeid/gramophone/service/MultiPlayer.java b/app/src/main/java/com/kabouzeid/gramophone/service/MultiPlayer.java index f268fcd5..3e03c906 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/service/MultiPlayer.java +++ b/app/src/main/java/com/kabouzeid/gramophone/service/MultiPlayer.java @@ -13,7 +13,7 @@ import android.util.Log; import android.widget.Toast; import com.kabouzeid.gramophone.R; -import com.kabouzeid.gramophone.util.PreferenceUtils; +import com.kabouzeid.gramophone.util.PreferenceUtil; import java.lang.ref.WeakReference; @@ -120,7 +120,7 @@ public class MultiPlayer implements MediaPlayer.OnErrorListener, if (path == null) { return; } - if (PreferenceUtils.getInstance(mService.get()).gaplessPlayback()) { + if (PreferenceUtil.getInstance(mService.get()).gaplessPlayback()) { mNextMediaPlayer = new MediaPlayer(); mNextMediaPlayer.setWakeMode(mService.get(), PowerManager.PARTIAL_WAKE_LOCK); mNextMediaPlayer.setAudioSessionId(getAudioSessionId()); diff --git a/app/src/main/java/com/kabouzeid/gramophone/service/MusicService.java b/app/src/main/java/com/kabouzeid/gramophone/service/MusicService.java index 5436e96c..57c0ffd4 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/service/MusicService.java +++ b/app/src/main/java/com/kabouzeid/gramophone/service/MusicService.java @@ -37,7 +37,7 @@ import com.kabouzeid.gramophone.provider.MusicPlaybackQueueStore; import com.kabouzeid.gramophone.provider.RecentlyPlayedStore; import com.kabouzeid.gramophone.provider.SongPlayCountStore; import com.kabouzeid.gramophone.util.MusicUtil; -import com.kabouzeid.gramophone.util.PreferenceUtils; +import com.kabouzeid.gramophone.util.PreferenceUtil; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.assist.FailReason; @@ -427,7 +427,7 @@ public class MusicService extends Service { } private void updateRemoteControlClient() { - updateRemoteControlClientImpl(PreferenceUtils.getInstance(this).albumArtOnLockscreen()); + updateRemoteControlClientImpl(PreferenceUtil.getInstance(this).albumArtOnLockscreen()); } private void updateRemoteControlClientImpl(boolean showAlbumArt) { diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/AlbumDetailActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/AlbumDetailActivity.java index af5f5f9e..2d974d0d 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/AlbumDetailActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/AlbumDetailActivity.java @@ -44,9 +44,10 @@ import com.kabouzeid.gramophone.model.UIPreferenceChangedEvent; import com.kabouzeid.gramophone.ui.activities.base.AbsFabActivity; import com.kabouzeid.gramophone.ui.activities.tageditor.AbsTagEditorActivity; import com.kabouzeid.gramophone.ui.activities.tageditor.AlbumTagEditorActivity; +import com.kabouzeid.gramophone.util.ColorUtil; import com.kabouzeid.gramophone.util.MusicUtil; import com.kabouzeid.gramophone.util.NavigationUtil; -import com.kabouzeid.gramophone.util.PreferenceUtils; +import com.kabouzeid.gramophone.util.PreferenceUtil; import com.kabouzeid.gramophone.util.Util; import com.kabouzeid.gramophone.util.ViewUtil; import com.nostra13.universalimageloader.core.DisplayImageOptions; @@ -109,7 +110,7 @@ public class AlbumDetailActivity extends AbsFabActivity implements PaletteColorH if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { postponeEnterTransition(); - if (PreferenceUtils.getInstance(this).coloredNavigationBarAlbum()) + if (PreferenceUtil.getInstance(this).coloredNavigationBarAlbum()) setNavigationBarColor(DialogUtils.resolveColor(this, R.attr.default_bar_color)); } @@ -162,7 +163,7 @@ public class AlbumDetailActivity extends AbsFabActivity implements PaletteColorH // Change alpha of overlay toolbarAlpha = Math.max(0, Math.min(1, (float) scrollY / flexibleRange)); ViewUtil.setBackgroundAlpha(toolbar, toolbarAlpha, toolbarColor); - setStatusBarColor(Util.getColorWithAlpha(cab != null && cab.isActive() ? 1 : toolbarAlpha, toolbarColor)); + setStatusBarColor(ColorUtil.getColorWithAlpha(cab != null && cab.isActive() ? 1 : toolbarAlpha, toolbarColor)); // Translate name text int maxTitleTranslationY = albumArtViewHeight; @@ -195,8 +196,9 @@ public class AlbumDetailActivity extends AbsFabActivity implements PaletteColorH int toolbarHeight = Util.getActionBarSize(this); titleViewHeight = getResources().getDimensionPixelSize(R.dimen.title_view_height); headerOffset = toolbarHeight; - if (Util.isAtLeastKitKat()) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { headerOffset += getResources().getDimensionPixelSize(R.dimen.status_bar_padding); + } } private void setUpViews() { @@ -262,8 +264,8 @@ public class AlbumDetailActivity extends AbsFabActivity implements PaletteColorH if (vibrantSwatch != null) { toolbarColor = vibrantSwatch.getRgb(); albumTitleView.setBackgroundColor(toolbarColor); - albumTitleView.setTextColor(Util.getOpaqueColor(vibrantSwatch.getTitleTextColor())); - if (Util.isAtLeastLollipop() && PreferenceUtils.getInstance(AlbumDetailActivity.this).coloredNavigationBarAlbum()) + albumTitleView.setTextColor(ColorUtil.getOpaqueColor(vibrantSwatch.getTitleTextColor())); + if (PreferenceUtil.getInstance(AlbumDetailActivity.this).coloredNavigationBarAlbum()) setNavigationBarColor(toolbarColor); notifyTaskColorChange(toolbarColor); } else { @@ -285,7 +287,7 @@ public class AlbumDetailActivity extends AbsFabActivity implements PaletteColorH albumTitleView.setBackgroundColor(defaultBarColor); albumTitleView.setTextColor(titleTextColor); - if (Util.isAtLeastLollipop() && PreferenceUtils.getInstance(this).coloredNavigationBarArtist()) + if (PreferenceUtil.getInstance(this).coloredNavigationBarArtist()) setNavigationBarColor(DialogUtils.resolveColor(this, R.attr.default_bar_color)); notifyTaskColorChange(toolbarColor); @@ -441,7 +443,7 @@ public class AlbumDetailActivity extends AbsFabActivity implements PaletteColorH .start(new MaterialCab.Callback() { @Override public boolean onCabCreated(MaterialCab materialCab, Menu menu) { - setStatusBarColor(Util.getOpaqueColor(toolbarColor)); + setStatusBarColor(ColorUtil.getOpaqueColor(toolbarColor)); return callback.onCabCreated(materialCab, menu); } @@ -452,7 +454,7 @@ public class AlbumDetailActivity extends AbsFabActivity implements PaletteColorH @Override public boolean onCabFinished(MaterialCab materialCab) { - setStatusBarColor(Util.getColorWithAlpha(toolbarAlpha, toolbarColor)); + setStatusBarColor(ColorUtil.getColorWithAlpha(toolbarAlpha, toolbarColor)); return callback.onCabFinished(materialCab); } }); diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/ArtistDetailActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/ArtistDetailActivity.java index 8adf03c2..16c668c1 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/ArtistDetailActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/ArtistDetailActivity.java @@ -55,9 +55,10 @@ import com.kabouzeid.gramophone.model.DataBaseChangedEvent; import com.kabouzeid.gramophone.model.Song; import com.kabouzeid.gramophone.model.UIPreferenceChangedEvent; import com.kabouzeid.gramophone.ui.activities.base.AbsFabActivity; +import com.kabouzeid.gramophone.util.ColorUtil; import com.kabouzeid.gramophone.util.MusicUtil; import com.kabouzeid.gramophone.util.NavigationUtil; -import com.kabouzeid.gramophone.util.PreferenceUtils; +import com.kabouzeid.gramophone.util.PreferenceUtil; import com.kabouzeid.gramophone.util.Util; import com.kabouzeid.gramophone.util.ViewUtil; import com.kabouzeid.gramophone.views.SquareIfPlaceImageView; @@ -135,7 +136,7 @@ public class ArtistDetailActivity extends AbsFabActivity implements PaletteColor if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { postponeEnterTransition(); - if (PreferenceUtils.getInstance(this).coloredNavigationBarArtist()) + if (PreferenceUtil.getInstance(this).coloredNavigationBarArtist()) setNavigationBarColor(DialogUtils.resolveColor(this, R.attr.default_bar_color)); } @@ -197,7 +198,7 @@ public class ArtistDetailActivity extends AbsFabActivity implements PaletteColor // Change alpha of overlay toolbarAlpha = Math.max(0, Math.min(1, (float) scrollY / flexibleRange)); ViewUtil.setBackgroundAlpha(toolbar, toolbarAlpha, toolbarColor); - setStatusBarColor(Util.getColorWithAlpha(cab != null && cab.isActive() ? 1 : toolbarAlpha, toolbarColor)); + setStatusBarColor(ColorUtil.getColorWithAlpha(cab != null && cab.isActive() ? 1 : toolbarAlpha, toolbarColor)); // Translate name text int maxTitleTranslationY = artistImageViewHeight; @@ -215,8 +216,9 @@ public class ArtistDetailActivity extends AbsFabActivity implements PaletteColor int toolbarHeight = Util.getActionBarSize(this); titleViewHeight = getResources().getDimensionPixelSize(R.dimen.title_view_height); headerOffset = toolbarHeight; - if (Util.isAtLeastKitKat()) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { headerOffset += getResources().getDimensionPixelSize(R.dimen.status_bar_padding); + } } private void initViews() { @@ -403,8 +405,8 @@ public class ArtistDetailActivity extends AbsFabActivity implements PaletteColor if (vibrantSwatch != null) { toolbarColor = vibrantSwatch.getRgb(); artistName.setBackgroundColor(vibrantSwatch.getRgb()); - artistName.setTextColor(Util.getOpaqueColor(vibrantSwatch.getTitleTextColor())); - if (Util.isAtLeastLollipop() && PreferenceUtils.getInstance(ArtistDetailActivity.this).coloredNavigationBarArtist()) + artistName.setTextColor(ColorUtil.getOpaqueColor(vibrantSwatch.getTitleTextColor())); + if (PreferenceUtil.getInstance(ArtistDetailActivity.this).coloredNavigationBarArtist()) setNavigationBarColor(vibrantSwatch.getRgb()); notifyTaskColorChange(toolbarColor); } else { @@ -443,7 +445,7 @@ public class ArtistDetailActivity extends AbsFabActivity implements PaletteColor artistName.setBackgroundColor(defaultBarColor); artistName.setTextColor(titleTextColor); - if (Util.isAtLeastLollipop() && PreferenceUtils.getInstance(this).coloredNavigationBarArtist()) + if (PreferenceUtil.getInstance(this).coloredNavigationBarArtist()) setNavigationBarColor(DialogUtils.resolveColor(this, R.attr.default_bar_color)); notifyTaskColorChange(toolbarColor); @@ -589,7 +591,7 @@ public class ArtistDetailActivity extends AbsFabActivity implements PaletteColor .start(new MaterialCab.Callback() { @Override public boolean onCabCreated(MaterialCab materialCab, Menu menu) { - setStatusBarColor(Util.getOpaqueColor(toolbarColor)); + setStatusBarColor(ColorUtil.getOpaqueColor(toolbarColor)); return callback.onCabCreated(materialCab, menu); } @@ -600,7 +602,7 @@ public class ArtistDetailActivity extends AbsFabActivity implements PaletteColor @Override public boolean onCabFinished(MaterialCab materialCab) { - setStatusBarColor(Util.getColorWithAlpha(toolbarAlpha, toolbarColor)); + setStatusBarColor(ColorUtil.getColorWithAlpha(toolbarAlpha, toolbarColor)); return callback.onCabFinished(materialCab); } }); diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/MainActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/MainActivity.java index a9a43cd7..d1995e70 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/MainActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/MainActivity.java @@ -53,7 +53,7 @@ import com.kabouzeid.gramophone.ui.fragments.mainactivityfragments.AbsMainActivi import com.kabouzeid.gramophone.ui.fragments.mainactivityfragments.AlbumViewFragment; import com.kabouzeid.gramophone.util.MusicUtil; import com.kabouzeid.gramophone.util.NavigationUtil; -import com.kabouzeid.gramophone.util.PreferenceUtils; +import com.kabouzeid.gramophone.util.PreferenceUtil; import com.kabouzeid.gramophone.util.Util; import com.kabouzeid.gramophone.util.ViewUtil; import com.nostra13.universalimageloader.core.DisplayImageOptions; @@ -103,7 +103,7 @@ public class MainActivity extends AbsFabActivity setUpToolbar(); setUpViewPager(); - if (PreferenceUtils.getInstance(this).coloredNavigationBarOtherScreens()) + if (PreferenceUtil.getInstance(this).coloredNavigationBarOtherScreens()) setNavigationBarThemeColor(); } @@ -117,8 +117,8 @@ public class MainActivity extends AbsFabActivity pager.setAdapter(pagerAdapter); pager.setOffscreenPageLimit(pagerAdapter.getCount() - 1); - int startPosition = PreferenceUtils.getInstance(this).getDefaultStartPage(); - startPosition = startPosition == -1 ? PreferenceUtils.getInstance(this).getLastStartPage() : startPosition; + int startPosition = PreferenceUtil.getInstance(this).getDefaultStartPage(); + startPosition = startPosition == -1 ? PreferenceUtil.getInstance(this).getLastStartPage() : startPosition; currentPage = startPosition; navigationView.getMenu().getItem(startPosition).setChecked(true); @@ -259,7 +259,7 @@ public class MainActivity extends AbsFabActivity } private void setUpDrawerLayout() { - drawerLayout.setStatusBarBackgroundColor(PreferenceUtils.getInstance(this).getThemeColorPrimaryDarker()); + drawerLayout.setStatusBarBackgroundColor(PreferenceUtil.getInstance(this).getThemeColorPrimaryDarker()); setUpNavigationView(); } @@ -414,7 +414,7 @@ public class MainActivity extends AbsFabActivity break; case UIPreferenceChangedEvent.COLORED_NAVIGATION_BAR_CHANGED: try { - if (((Set) event.getValue()).contains(PreferenceUtils.COLORED_NAVIGATION_BAR_OTHER_SCREENS)) + if (((Set) event.getValue()).contains(PreferenceUtil.COLORED_NAVIGATION_BAR_OTHER_SCREENS)) setNavigationBarThemeColor(); else resetNavigationBarColor(); } catch (NullPointerException ignored) { @@ -434,7 +434,7 @@ public class MainActivity extends AbsFabActivity @Override protected void onPause() { super.onPause(); - PreferenceUtils.getInstance(MainActivity.this).setLastStartPage(currentPage); + PreferenceUtil.getInstance(MainActivity.this).setLastStartPage(currentPage); } private void handlePlaybackIntent(@Nullable Intent intent) { @@ -533,7 +533,7 @@ public class MainActivity extends AbsFabActivity private void setUpGridMenu(@NonNull Menu menu) { boolean isPortrait = Util.isInPortraitMode(this); - int columns = isPortrait ? PreferenceUtils.getInstance(this).getAlbumGridColumns() : PreferenceUtils.getInstance(this).getAlbumGridColumnsLand(); + int columns = isPortrait ? PreferenceUtil.getInstance(this).getAlbumGridColumns() : PreferenceUtil.getInstance(this).getAlbumGridColumnsLand(); String title = isPortrait ? getResources().getString(R.string.action_grid_columns) : getResources().getString(R.string.action_grid_columns_land); MenuItem gridSizeItem = menu.findItem(R.id.action_grid_columns); @@ -572,9 +572,9 @@ public class MainActivity extends AbsFabActivity if (isAlbumPage()) { getAlbumFragment().setColumns(size); if (Util.isInPortraitMode(this)) { - PreferenceUtils.getInstance(this).setAlbumGridColumns(size); + PreferenceUtil.getInstance(this).setAlbumGridColumns(size); } else { - PreferenceUtils.getInstance(this).setAlbumGridColumnsLand(size); + PreferenceUtil.getInstance(this).setAlbumGridColumnsLand(size); } } return true; @@ -629,7 +629,7 @@ public class MainActivity extends AbsFabActivity cab = new MaterialCab(this, R.id.cab_stub) .setMenu(menu) .setCloseDrawableRes(R.drawable.ic_close_white_24dp) - .setBackgroundColor(PreferenceUtils.getInstance(this).getThemeColorPrimary()) + .setBackgroundColor(PreferenceUtil.getInstance(this).getThemeColorPrimary()) .start(callback); return cab; } diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/MusicControllerActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/MusicControllerActivity.java index d8d74fc0..2ced4a11 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/MusicControllerActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/MusicControllerActivity.java @@ -50,9 +50,10 @@ import com.kabouzeid.gramophone.service.MusicService; import com.kabouzeid.gramophone.ui.activities.base.AbsFabActivity; import com.kabouzeid.gramophone.ui.activities.tageditor.AbsTagEditorActivity; import com.kabouzeid.gramophone.ui.activities.tageditor.SongTagEditorActivity; +import com.kabouzeid.gramophone.util.ColorUtil; import com.kabouzeid.gramophone.util.MusicUtil; import com.kabouzeid.gramophone.util.NavigationUtil; -import com.kabouzeid.gramophone.util.PreferenceUtils; +import com.kabouzeid.gramophone.util.PreferenceUtil; import com.kabouzeid.gramophone.util.Util; import com.kabouzeid.gramophone.util.ViewUtil; import com.kabouzeid.gramophone.views.SquareIfPlaceImageView; @@ -235,12 +236,12 @@ public class MusicControllerActivity extends AbsFabActivity { } private void initAppearanceVarsFromSharedPrefs() { - opaqueStatusBar = PreferenceUtils.getInstance(this).opaqueStatusbarNowPlaying(); - opaqueToolBar = opaqueStatusBar && PreferenceUtils.getInstance(this).opaqueToolbarNowPlaying(); - forceSquareAlbumArt = PreferenceUtils.getInstance(this).forceAlbumArtSquared(); - largerTitleBox = PreferenceUtils.getInstance(this).largerTitleBoxNowPlaying(); - alternativeProgressSlider = PreferenceUtils.getInstance(this).alternativeProgressSliderNowPlaying(); - showPlaybackControllerCard = PreferenceUtils.getInstance(this).playbackControllerCardNowPlaying(); + opaqueStatusBar = PreferenceUtil.getInstance(this).opaqueStatusbarNowPlaying(); + opaqueToolBar = opaqueStatusBar && PreferenceUtil.getInstance(this).opaqueToolbarNowPlaying(); + forceSquareAlbumArt = PreferenceUtil.getInstance(this).forceAlbumArtSquared(); + largerTitleBox = PreferenceUtil.getInstance(this).largerTitleBoxNowPlaying(); + alternativeProgressSlider = PreferenceUtil.getInstance(this).alternativeProgressSliderNowPlaying(); + showPlaybackControllerCard = PreferenceUtil.getInstance(this).playbackControllerCardNowPlaying(); } @Override @@ -273,7 +274,7 @@ public class MusicControllerActivity extends AbsFabActivity { private void setUpPlaybackControllerCard() { playbackControllerCard.setVisibility(showPlaybackControllerCard ? View.VISIBLE : View.GONE); - mediaControllerContainer.setBackgroundColor(showPlaybackControllerCard ? Color.TRANSPARENT : Util.resolveColor(this, R.attr.music_controller_container_color)); + mediaControllerContainer.setBackgroundColor(showPlaybackControllerCard ? Color.TRANSPARENT : ColorUtil.resolveColor(this, R.attr.music_controller_container_color)); } private void setUpMusicControllers() { @@ -474,7 +475,7 @@ public class MusicControllerActivity extends AbsFabActivity { if (vibrantSwatch != null) { final int swatchRgb = vibrantSwatch.getRgb(); animateColorChange(swatchRgb); - animateTextColorChange(Util.getOpaqueColor(vibrantSwatch.getTitleTextColor())); + animateTextColorChange(ColorUtil.getOpaqueColor(vibrantSwatch.getTitleTextColor())); notifyTaskColorChange(swatchRgb); } else { resetColors(); @@ -487,7 +488,7 @@ public class MusicControllerActivity extends AbsFabActivity { } private void resetColors() { - final int textColor = Util.getOpaqueColor(DialogUtils.resolveColor(this, R.attr.title_text_color)); + final int textColor = ColorUtil.getOpaqueColor(DialogUtils.resolveColor(this, R.attr.title_text_color)); final int defaultBarColor = DialogUtils.resolveColor(this, R.attr.default_bar_color); animateColorChange(defaultBarColor); @@ -515,7 +516,7 @@ public class MusicControllerActivity extends AbsFabActivity { if (opaqueStatusBar) setStatusBarColor(newColor); else setStatusBarColor(Color.TRANSPARENT); - if (Util.isAtLeastLollipop() && PreferenceUtils.getInstance(this).coloredNavigationBarCurrentPlaying()) + if (PreferenceUtil.getInstance(this).coloredNavigationBarCurrentPlaying()) setNavigationBarColor(newColor); lastFooterColor = newColor; } diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/PlaylistDetailActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/PlaylistDetailActivity.java index 310723c7..dec12a0d 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/PlaylistDetailActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/PlaylistDetailActivity.java @@ -24,7 +24,7 @@ import com.kabouzeid.gramophone.model.Playlist; import com.kabouzeid.gramophone.model.smartplaylist.AbsSmartPlaylist; import com.kabouzeid.gramophone.ui.activities.base.AbsFabActivity; import com.kabouzeid.gramophone.util.NavigationUtil; -import com.kabouzeid.gramophone.util.PreferenceUtils; +import com.kabouzeid.gramophone.util.PreferenceUtil; import com.squareup.otto.Subscribe; import butterknife.ButterKnife; @@ -62,7 +62,7 @@ public class PlaylistDetailActivity extends AbsFabActivity implements CabHolder setUpToolBar(); - if (PreferenceUtils.getInstance(this).coloredNavigationBarPlaylist()) + if (PreferenceUtil.getInstance(this).coloredNavigationBarPlaylist()) setNavigationBarThemeColor(); setStatusBarThemeColor(); @@ -158,7 +158,7 @@ public class PlaylistDetailActivity extends AbsFabActivity implements CabHolder cab = new MaterialCab(this, R.id.cab_stub) .setMenu(menu) .setCloseDrawableRes(R.drawable.ic_close_white_24dp) - .setBackgroundColor(PreferenceUtils.getInstance(this).getThemeColorPrimary()) + .setBackgroundColor(PreferenceUtil.getInstance(this).getThemeColorPrimary()) .start(callback); return cab; } diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/SearchActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/SearchActivity.java index 11ea3823..1929519f 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/SearchActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/SearchActivity.java @@ -22,7 +22,7 @@ import android.widget.TextView; import com.kabouzeid.gramophone.R; import com.kabouzeid.gramophone.adapter.SearchAdapter; import com.kabouzeid.gramophone.ui.activities.base.AbsBaseActivity; -import com.kabouzeid.gramophone.util.PreferenceUtils; +import com.kabouzeid.gramophone.util.PreferenceUtil; import com.kabouzeid.gramophone.util.Util; import butterknife.ButterKnife; @@ -66,7 +66,7 @@ public class SearchActivity extends AbsBaseActivity { } }); - toolbar.setBackgroundColor(PreferenceUtils.getInstance(this).getThemeColorPrimary()); + toolbar.setBackgroundColor(PreferenceUtil.getInstance(this).getThemeColorPrimary()); setSupportActionBar(toolbar); //noinspection ConstantConditions getSupportActionBar().setDisplayHomeAsUpEnabled(true); diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/SettingsActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/SettingsActivity.java index 341969f4..3ebed034 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/SettingsActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/SettingsActivity.java @@ -25,7 +25,7 @@ import com.kabouzeid.gramophone.prefs.ColorChooserPreference; import com.kabouzeid.gramophone.service.MusicService; import com.kabouzeid.gramophone.ui.activities.base.AbsBaseActivity; import com.kabouzeid.gramophone.util.NavigationUtil; -import com.kabouzeid.gramophone.util.PreferenceUtils; +import com.kabouzeid.gramophone.util.PreferenceUtil; import com.nostra13.universalimageloader.core.ImageLoader; import java.util.Set; @@ -39,14 +39,14 @@ public class SettingsActivity extends AbsBaseActivity implements ColorChooserDia setContentView(R.layout.activity_preferences); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); - toolbar.setBackgroundColor(PreferenceUtils.getInstance(this).getThemeColorPrimary()); + toolbar.setBackgroundColor(PreferenceUtil.getInstance(this).getThemeColorPrimary()); setSupportActionBar(toolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); if (savedInstanceState == null) getFragmentManager().beginTransaction().replace(R.id.content_frame, new SettingsFragment()).commit(); - if (PreferenceUtils.getInstance(this).coloredNavigationBarOtherScreens()) + if (PreferenceUtil.getInstance(this).coloredNavigationBarOtherScreens()) setNavigationBarThemeColor(); setStatusBarThemeColor(); } @@ -54,10 +54,10 @@ public class SettingsActivity extends AbsBaseActivity implements ColorChooserDia @Override public void onColorSelection(int title, int color) { if (title == R.string.primary_color) { - PreferenceUtils.getInstance(this).setThemeColorPrimary(color); + PreferenceUtil.getInstance(this).setThemeColorPrimary(color); App.bus.post(new UIPreferenceChangedEvent(UIPreferenceChangedEvent.THEME_CHANGED, color)); } else if (title == R.string.accent_color) { - PreferenceUtils.getInstance(this).setThemeColorAccent(color); + PreferenceUtil.getInstance(this).setThemeColorAccent(color); App.bus.post(new UIPreferenceChangedEvent(UIPreferenceChangedEvent.THEME_CHANGED, color)); } recreate(); @@ -98,25 +98,25 @@ public class SettingsActivity extends AbsBaseActivity implements ColorChooserDia }); ColorChooserPreference primaryColor = (ColorChooserPreference) findPreference("primary_color"); - primaryColor.setColor(PreferenceUtils.getInstance(getActivity()).getThemeColorPrimary(), + primaryColor.setColor(PreferenceUtil.getInstance(getActivity()).getThemeColorPrimary(), DialogUtils.resolveColor(getActivity(), android.R.attr.textColorPrimary)); primaryColor.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { @Override public boolean onPreferenceClick(@NonNull Preference preference) { new ColorChooserDialog().show(getActivity(), preference.getTitleRes(), - PreferenceUtils.getInstance(getActivity()).getThemeColorPrimary()); + PreferenceUtil.getInstance(getActivity()).getThemeColorPrimary()); return true; } }); ColorChooserPreference accentColor = (ColorChooserPreference) findPreference("accent_color"); - accentColor.setColor(PreferenceUtils.getInstance(getActivity()).getThemeColorAccent(), + accentColor.setColor(PreferenceUtil.getInstance(getActivity()).getThemeColorAccent(), DialogUtils.resolveColor(getActivity(), android.R.attr.textColorPrimary)); accentColor.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { @Override public boolean onPreferenceClick(@NonNull Preference preference) { new ColorChooserDialog().show(getActivity(), preference.getTitleRes(), - PreferenceUtils.getInstance(getActivity()).getThemeColorAccent()); + PreferenceUtil.getInstance(getActivity()).getThemeColorAccent()); return true; } }); @@ -232,7 +232,7 @@ public class SettingsActivity extends AbsBaseActivity implements ColorChooserDia break; case UIPreferenceChangedEvent.COLORED_NAVIGATION_BAR_CHANGED: try { - if (((Set) event.getValue()).contains(PreferenceUtils.COLORED_NAVIGATION_BAR_OTHER_SCREENS)) + if (((Set) event.getValue()).contains(PreferenceUtil.COLORED_NAVIGATION_BAR_OTHER_SCREENS)) setNavigationBarThemeColor(); else resetNavigationBarColor(); } catch (NullPointerException ignored) { diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/AbsFabActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/AbsFabActivity.java index 52bb3439..d701be79 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/AbsFabActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/AbsFabActivity.java @@ -18,8 +18,8 @@ import com.kabouzeid.gramophone.R; import com.kabouzeid.gramophone.helper.MusicPlayerRemote; import com.kabouzeid.gramophone.misc.SmallOnGestureListener; import com.kabouzeid.gramophone.model.Song; +import com.kabouzeid.gramophone.util.ColorUtil; import com.kabouzeid.gramophone.util.NavigationUtil; -import com.kabouzeid.gramophone.util.Util; import com.kabouzeid.gramophone.views.PlayPauseDrawable; import butterknife.ButterKnife; @@ -53,7 +53,7 @@ public abstract class AbsFabActivity extends AbsPlaybackControlActivity { getFab().setImageDrawable(playPauseDrawable); final int accentColor = ThemeSingleton.get().positiveColor; - getFab().setBackgroundTintList(Util.getEmptyColorStateList(accentColor)); + getFab().setBackgroundTintList(ColorUtil.getEmptyColorStateList(accentColor)); if (accentColor == Color.WHITE) { getFab().getDrawable().setColorFilter(Color.BLACK, PorterDuff.Mode.SRC_IN); } else { diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/AbsThemeActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/AbsThemeActivity.java index 3f9306e3..7d429d9b 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/AbsThemeActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/AbsThemeActivity.java @@ -10,7 +10,8 @@ import android.view.View; import com.afollestad.materialdialogs.ThemeSingleton; import com.kabouzeid.gramophone.R; import com.kabouzeid.gramophone.interfaces.KabViewsDisableAble; -import com.kabouzeid.gramophone.util.PreferenceUtils; +import com.kabouzeid.gramophone.util.ColorUtil; +import com.kabouzeid.gramophone.util.PreferenceUtil; import com.kabouzeid.gramophone.util.Util; /** @@ -27,25 +28,25 @@ public abstract class AbsThemeActivity extends AppCompatActivity implements KabV @Override protected void onCreate(Bundle savedInstanceState) { - setTheme(PreferenceUtils.getInstance(this).getGeneralTheme()); + setTheme(PreferenceUtil.getInstance(this).getGeneralTheme()); super.onCreate(savedInstanceState); setupTheme(); } private void setupTheme() { - colorPrimary = PreferenceUtils.getInstance(this).getThemeColorPrimary(); - colorPrimaryDarker = Util.shiftColorDown(colorPrimary); - colorAccent = PreferenceUtils.getInstance(this).getThemeColorAccent(); + colorPrimary = PreferenceUtil.getInstance(this).getThemeColorPrimary(); + colorPrimaryDarker = ColorUtil.shiftColorDown(colorPrimary); + colorAccent = PreferenceUtil.getInstance(this).getThemeColorAccent(); ThemeSingleton.get().positiveColor = colorAccent; ThemeSingleton.get().negativeColor = ThemeSingleton.get().positiveColor; ThemeSingleton.get().neutralColor = ThemeSingleton.get().positiveColor; ThemeSingleton.get().widgetColor = ThemeSingleton.get().positiveColor; - ThemeSingleton.get().darkTheme = PreferenceUtils.getInstance(this).getGeneralTheme() == R.style.Theme_MaterialMusic; + ThemeSingleton.get().darkTheme = PreferenceUtil.getInstance(this).getGeneralTheme() == R.style.Theme_MaterialMusic; if (!overridesTaskColor()) { - notifyTaskColorChange(PreferenceUtils.getInstance(this).getThemeColorPrimary()); + notifyTaskColorChange(PreferenceUtil.getInstance(this).getThemeColorPrimary()); } } @@ -83,12 +84,12 @@ public abstract class AbsThemeActivity extends AppCompatActivity implements KabV protected final void setNavigationBarColor(int color) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) - getWindow().setNavigationBarColor(Util.shiftColorDown(color)); + getWindow().setNavigationBarColor(ColorUtil.shiftColorDown(color)); } protected final void setStatusBarColor(int color) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) - getWindow().setStatusBarColor(Util.shiftColorDown(color)); + getWindow().setStatusBarColor(ColorUtil.shiftColorDown(color)); // also do this on Lollipop in case the user modified the statusbar height if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { final View statusBar = getWindow().getDecorView().getRootView().findViewById(R.id.status_bar); @@ -106,12 +107,12 @@ public abstract class AbsThemeActivity extends AppCompatActivity implements KabV protected final void resetNavigationBarColor() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) - setNavigationBarColor(Util.resolveColor(this, android.R.attr.navigationBarColor)); + setNavigationBarColor(ColorUtil.resolveColor(this, android.R.attr.navigationBarColor)); } protected final void resetStatusBarColor() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) - setStatusBarColor(Util.resolveColor(this, android.R.attr.statusBarColor)); + setStatusBarColor(ColorUtil.resolveColor(this, android.R.attr.statusBarColor)); } protected boolean overridesTaskColor() { diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/tageditor/AbsTagEditorActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/tageditor/AbsTagEditorActivity.java index a817cbff..8ae06a7c 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/tageditor/AbsTagEditorActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/tageditor/AbsTagEditorActivity.java @@ -31,7 +31,7 @@ import com.kabouzeid.gramophone.misc.SmallObservableScrollViewCallbacks; import com.kabouzeid.gramophone.model.DataBaseChangedEvent; import com.kabouzeid.gramophone.ui.activities.base.AbsBaseActivity; import com.kabouzeid.gramophone.util.MusicUtil; -import com.kabouzeid.gramophone.util.PreferenceUtils; +import com.kabouzeid.gramophone.util.PreferenceUtil; import com.kabouzeid.gramophone.util.Util; import com.kabouzeid.gramophone.util.ViewUtil; import com.nostra13.universalimageloader.core.ImageLoader; @@ -202,10 +202,10 @@ public abstract class AbsTagEditorActivity extends AbsBaseActivity { private void resetColors() { - paletteColorPrimary = PreferenceUtils.getInstance(this).getThemeColorPrimary(); + paletteColorPrimary = PreferenceUtil.getInstance(this).getThemeColorPrimary(); observableScrollViewCallbacks.onScrollChanged(observableScrollView.getCurrentScrollY(), false, false); setStatusBarColor(paletteColorPrimary); - if (Util.isAtLeastLollipop() && PreferenceUtils.getInstance(this).coloredNavigationBarTagEditor()) + if (PreferenceUtil.getInstance(this).coloredNavigationBarTagEditor()) setNavigationBarColor(paletteColorPrimary); header.setBackgroundColor(paletteColorPrimary); notifyTaskColorChange(paletteColorPrimary); @@ -254,12 +254,12 @@ public abstract class AbsTagEditorActivity extends AbsBaseActivity { observableScrollViewCallbacks.onScrollChanged(observableScrollView.getCurrentScrollY(), false, false); paletteColorPrimary = getIntent().getIntExtra(EXTRA_PALETTE, - PreferenceUtils.getInstance(this).getThemeColorPrimary()); + PreferenceUtil.getInstance(this).getThemeColorPrimary()); toolbar.setBackgroundColor(paletteColorPrimary); header.setBackgroundColor(paletteColorPrimary); setStatusBarColor(paletteColorPrimary); - if (PreferenceUtils.getInstance(this).coloredNavigationBarTagEditor()) + if (PreferenceUtil.getInstance(this).coloredNavigationBarTagEditor()) setNavigationBarColor(paletteColorPrimary); } @@ -302,7 +302,7 @@ public abstract class AbsTagEditorActivity extends AbsBaseActivity { paletteColorPrimary = palette.getVibrantColor(DialogUtils.resolveColor(AbsTagEditorActivity.this, R.attr.default_bar_color)); observableScrollViewCallbacks.onScrollChanged(observableScrollView.getCurrentScrollY(), false, false); setStatusBarColor(paletteColorPrimary); - if (Util.isAtLeastLollipop() && PreferenceUtils.getInstance(AbsTagEditorActivity.this).coloredNavigationBarTagEditor()) + if (PreferenceUtil.getInstance(AbsTagEditorActivity.this).coloredNavigationBarTagEditor()) setNavigationBarColor(paletteColorPrimary); header.setBackgroundColor(paletteColorPrimary); notifyTaskColorChange(paletteColorPrimary); diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivityfragments/AlbumViewFragment.java b/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivityfragments/AlbumViewFragment.java index 279bdbad..5a5524cf 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivityfragments/AlbumViewFragment.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivityfragments/AlbumViewFragment.java @@ -6,7 +6,7 @@ import android.support.v7.widget.RecyclerView; import com.kabouzeid.gramophone.R; import com.kabouzeid.gramophone.adapter.AlbumAdapter; -import com.kabouzeid.gramophone.util.PreferenceUtils; +import com.kabouzeid.gramophone.util.PreferenceUtil; import com.kabouzeid.gramophone.util.Util; /** @@ -19,7 +19,7 @@ public class AlbumViewFragment extends AbsMainActivityRecyclerViewFragment { @Override protected RecyclerView.LayoutManager createLayoutManager() { - int columns = Util.isInPortraitMode(getActivity()) ? PreferenceUtils.getInstance(getActivity()).getAlbumGridColumns() : PreferenceUtils.getInstance(getActivity()).getAlbumGridColumnsLand(); + int columns = Util.isInPortraitMode(getActivity()) ? PreferenceUtil.getInstance(getActivity()).getAlbumGridColumns() : PreferenceUtil.getInstance(getActivity()).getAlbumGridColumnsLand(); layoutManager = new GridLayoutManager(getActivity(), columns); return layoutManager; } diff --git a/app/src/main/java/com/kabouzeid/gramophone/util/ColorUtil.java b/app/src/main/java/com/kabouzeid/gramophone/util/ColorUtil.java new file mode 100644 index 00000000..302d4e32 --- /dev/null +++ b/app/src/main/java/com/kabouzeid/gramophone/util/ColorUtil.java @@ -0,0 +1,51 @@ +package com.kabouzeid.gramophone.util; + +import android.content.Context; +import android.content.res.ColorStateList; +import android.content.res.TypedArray; +import android.graphics.Color; +import android.support.annotation.AttrRes; +import android.support.annotation.ColorInt; +import android.support.annotation.NonNull; + +/** + * @author Karim Abou Zeid (kabouzeid) + */ +public class ColorUtil { + + public static int resolveColor(@NonNull Context context, @AttrRes int colorAttr) { + TypedArray a = context.obtainStyledAttributes(new int[]{colorAttr}); + int resId = a.getColor(0, 0); + a.recycle(); + return resId; + } + + public static int getOpaqueColor(@ColorInt int color) { + return color | 0xFF000000; + } + + public static int getColorWithAlpha(float alpha, int baseColor) { + int a = Math.min(255, Math.max(0, (int) (alpha * 255))) << 24; + int rgb = 0x00ffffff & baseColor; + return a + rgb; + } + + @SuppressWarnings("ResourceType") + public static int shiftColorDown(int color) { + int alpha = Color.alpha(color); + float[] hsv = new float[3]; + Color.colorToHSV(color, hsv); + hsv[2] *= 0.9f; // value component + return (alpha << 24) + (0x00ffffff & Color.HSVToColor(hsv)); + } + + @NonNull + public static ColorStateList getEmptyColorStateList(int color) { + return new ColorStateList( + new int[][]{ + new int[]{} + }, + new int[]{color} + ); + } +} diff --git a/app/src/main/java/com/kabouzeid/gramophone/util/ImageUtil.java b/app/src/main/java/com/kabouzeid/gramophone/util/ImageUtil.java index 20156340..dc769e83 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/util/ImageUtil.java +++ b/app/src/main/java/com/kabouzeid/gramophone/util/ImageUtil.java @@ -3,6 +3,7 @@ package com.kabouzeid.gramophone.util; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; +import android.graphics.Matrix; import android.graphics.Point; import android.support.annotation.NonNull; import android.support.annotation.Nullable; @@ -24,6 +25,20 @@ import java.io.IOException; */ public class ImageUtil { + public static Bitmap getResizedBitmap(@NonNull Bitmap bm, int newHeight, int newWidth, boolean recycleOld) { + int width = bm.getWidth(); + int height = bm.getHeight(); + float scaleWidth = ((float) newWidth) / width; + float scaleHeight = ((float) newHeight) / height; + Matrix matrix = new Matrix(); + matrix.postScale(scaleWidth, scaleHeight); + Bitmap resizedBitmap = Bitmap.createBitmap(bm, 0, 0, width, height, matrix, false); + if (recycleOld && resizedBitmap != bm) { + bm.recycle(); + } + return resizedBitmap; + } + @Nullable public static Bitmap getEmbeddedSongArt(File songFile, @NonNull Context context) { try { diff --git a/app/src/main/java/com/kabouzeid/gramophone/util/InternalStorageUtil.java b/app/src/main/java/com/kabouzeid/gramophone/util/InternalStorageUtil.java deleted file mode 100644 index b313d657..00000000 --- a/app/src/main/java/com/kabouzeid/gramophone/util/InternalStorageUtil.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.kabouzeid.gramophone.util; - -import android.content.Context; -import android.support.annotation.NonNull; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; - -/** - * @author Karim Abou Zeid (kabouzeid) - *

- * A simple helper class for Android to read and write - * any serializeable object to the internal storage - */ -public final class InternalStorageUtil { - - /** - * @param context a valid {@link Context} - * @param key the filename - * @param object any {@link java.io.Serializable} object which will be written to the internal storage - */ - public static synchronized void writeObject(@NonNull final Context context, @NonNull final String key, final Object object) throws IOException { - // First write the object to a file with ".tmp" postfix, - // so when an error occurs, we do not overwrite the original - // file (if exists) with a corrupted file. - String tempFileName = key + ".tmp"; - FileOutputStream fos; - fos = context.openFileOutput(tempFileName, Context.MODE_PRIVATE); - ObjectOutputStream oos = new ObjectOutputStream(fos); - oos.writeObject(object); - oos.close(); - fos.close(); - // after writing was successful we overwrite the original - // file (if exists) with the new file - renameAppFile(context, tempFileName, key); - } - - /** - * @param context a valid {@link Context} - * @param originalFileName the original filename - * @param newFileName the new filename - */ - public static synchronized void renameAppFile(@NonNull final Context context, String originalFileName, @NonNull String newFileName) { - File originalFile = context.getFileStreamPath(originalFileName); - File newFile = new File(originalFile.getParent(), newFileName); - if (newFile.exists()) { - context.deleteFile(newFileName); - } - //noinspection ResultOfMethodCallIgnored - originalFile.renameTo(newFile); - } - - /** - * @param context a valid {@link Context} - * @param key the filename - */ - public static synchronized Object readObject(@NonNull final Context context, String key) throws IOException, - ClassNotFoundException { - FileInputStream fis = context.openFileInput(key); - ObjectInputStream ois = new ObjectInputStream(fis); - return ois.readObject(); - } -} diff --git a/app/src/main/java/com/kabouzeid/gramophone/util/PlaylistsUtil.java b/app/src/main/java/com/kabouzeid/gramophone/util/PlaylistsUtil.java index 4f2c36b9..b943372e 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/util/PlaylistsUtil.java +++ b/app/src/main/java/com/kabouzeid/gramophone/util/PlaylistsUtil.java @@ -59,19 +59,6 @@ public class PlaylistsUtil { return id; } -// public static void clearPlaylist(final Context context, final int playlistId) { -// final Uri uri = MediaStore.Audio.Playlists.Members.getContentUri("external", playlistId); -// context.getContentResolver().delete(uri, null, null); -// } - -// public static void deletePlaylists(final Context context, final long playlistId) { -// final Uri uri = MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI; -// String where = MediaStore.Audio.Playlists._ID + "=?"; -// String[] whereVal = {String.valueOf(playlistId)}; -// context.getContentResolver().delete(uri, where, whereVal); -// App.bus.post(new DataBaseChangedEvent(DataBaseChangedEvent.PLAYLISTS_CHANGED)); -// } - public static void deletePlaylists(@NonNull final Context context, @NonNull final ArrayList playlists) { final Uri uri = MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI; final StringBuilder selection = new StringBuilder(); @@ -183,21 +170,6 @@ public class PlaylistsUtil { return false; } -// public static int getSongCountForPlaylist(final Context context, final long playlistId) { -// Cursor c = context.getContentResolver().query( -// MediaStore.Audio.Playlists.Members.getContentUri("external", playlistId), -// new String[]{BaseColumns._ID}, MUSIC_ONLY_SELECTION, null, null); -// if (c != null) { -// int count = 0; -// if (c.moveToFirst()) { -// count = c.getCount(); -// } -// c.close(); -// return count; -// } -// return 0; -// } - public static boolean moveItem(@NonNull final Context context, int playlistId, int from, int to) { return MediaStore.Audio.Playlists.Members.moveItem(context.getContentResolver(), playlistId, from, to); diff --git a/app/src/main/java/com/kabouzeid/gramophone/util/PreferenceUtils.java b/app/src/main/java/com/kabouzeid/gramophone/util/PreferenceUtil.java similarity index 96% rename from app/src/main/java/com/kabouzeid/gramophone/util/PreferenceUtils.java rename to app/src/main/java/com/kabouzeid/gramophone/util/PreferenceUtil.java index e3890ff0..4585e34d 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/util/PreferenceUtils.java +++ b/app/src/main/java/com/kabouzeid/gramophone/util/PreferenceUtil.java @@ -8,11 +8,12 @@ import android.support.annotation.NonNull; import android.support.annotation.Nullable; import com.kabouzeid.gramophone.R; +import com.kabouzeid.gramophone.helper.SortOrder; import java.util.HashSet; import java.util.Set; -public final class PreferenceUtils { +public final class PreferenceUtil { public static final int DEFAULT_PAGE = 1; public static final String GENERAL_THEME = "general_theme"; @@ -49,20 +50,20 @@ public final class PreferenceUtils { public static final String NEXT_SLEEP_TIMER_ELAPSED_REALTIME = "next_sleep_timer_elapsed_real_time"; public static final String IGNORE_MEDIA_STORE_ARTWORK = "ignore_media_store_artwork"; - private static PreferenceUtils sInstance; + private static PreferenceUtil sInstance; @NonNull private final Context mContext; private final SharedPreferences mPreferences; - public PreferenceUtils(@NonNull final Context context) { + public PreferenceUtil(@NonNull final Context context) { mContext = context; mPreferences = PreferenceManager.getDefaultSharedPreferences(context); } - public static PreferenceUtils getInstance(@NonNull final Context context) { + public static PreferenceUtil getInstance(@NonNull final Context context) { if (sInstance == null) { - sInstance = new PreferenceUtils(context.getApplicationContext()); + sInstance = new PreferenceUtil(context.getApplicationContext()); } return sInstance; } @@ -83,7 +84,7 @@ public final class PreferenceUtils { } public int getThemeColorPrimaryDarker() { - return Util.shiftColorDown(getThemeColorPrimary()); + return ColorUtil.shiftColorDown(getThemeColorPrimary()); } @SuppressLint("CommitPrefEdits") diff --git a/app/src/main/java/com/kabouzeid/gramophone/util/Util.java b/app/src/main/java/com/kabouzeid/gramophone/util/Util.java index 67710a50..ecf78205 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/util/Util.java +++ b/app/src/main/java/com/kabouzeid/gramophone/util/Util.java @@ -3,22 +3,18 @@ package com.kabouzeid.gramophone.util; import android.annotation.TargetApi; import android.app.Activity; import android.content.Context; -import android.content.res.ColorStateList; import android.content.res.Configuration; import android.content.res.TypedArray; -import android.graphics.Bitmap; -import android.graphics.Color; -import android.graphics.Matrix; +import android.graphics.Point; import android.graphics.PorterDuff; import android.graphics.drawable.Drawable; import android.os.Build; -import android.support.annotation.AttrRes; -import android.support.annotation.ColorInt; import android.support.annotation.DrawableRes; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v4.content.ContextCompat; import android.util.TypedValue; +import android.view.Display; import android.view.View; import android.view.Window; import android.view.WindowManager; @@ -31,27 +27,6 @@ import com.kabouzeid.gramophone.R; */ public class Util { -// public static int resolveDrawable(Context context, int drawable) { -// TypedArray a = context.obtainStyledAttributes(new int[]{drawable}); -// int resId = a.getResourceId(0, 0); -// a.recycle(); -// return resId; -// } - - public static int resolveColor(@NonNull Context context, @AttrRes int colorAttr) { - TypedArray a = context.obtainStyledAttributes(new int[]{colorAttr}); - int resId = a.getColor(0, 0); - a.recycle(); - return resId; - } - -// public static boolean isWindowTranslucent(Context context) { -// TypedArray a = context.obtainStyledAttributes(new int[]{android.R.attr.windowTranslucentStatus}); -// boolean result = a.getBoolean(0, false); -// a.recycle(); -// return result; -// } - public static int getActionBarSize(@NonNull Context context) { TypedValue typedValue = new TypedValue(); int[] textSizeAttr = new int[]{R.attr.actionBarSize}; @@ -62,41 +37,13 @@ public class Util { return actionBarSize; } - public static int getStatusBarHeight(@NonNull Context context) { - int result = 0; - int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android"); - if (resourceId > 0) { - result = context.getResources().getDimensionPixelSize(resourceId); - } - return result; + public static Point getScreenSize(@NonNull Context c) { + Display display = ((WindowManager) c.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); + Point size = new Point(); + display.getSize(size); + return size; } - public static int getNavigationBarHeight(@NonNull Context context) { - int result = 0; - int resourceId = context.getResources().getIdentifier("navigation_bar_height", "dimen", "android"); - if (resourceId > 0) { - result = context.getResources().getDimensionPixelSize(resourceId); - } - return result; - } - -// @TargetApi(19) -// public static void setNavBarTranslucent(Window window, boolean translucent) { -// if (translucent) { -// window.setFlags( -// WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION, -// WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); -// return; -// } -// -// final WindowManager.LayoutParams attrs = window -// .getAttributes(); -// attrs.flags &= (~WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); -// window.setAttributes(attrs); -// window.clearFlags( -// WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS); -// } - @TargetApi(19) public static void setStatusBarTranslucent(@NonNull Window window, boolean translucent) { if (translucent) { @@ -120,31 +67,6 @@ public class Util { | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); } - @NonNull - public static String getFileSizeString(long sizeInBytes) { - long fileSizeInKB = sizeInBytes / 1024; - long fileSizeInMB = fileSizeInKB / 1024; - return fileSizeInMB + " MB"; - } - -// public static String getFilePathFromContentProviderUri(Context context, Uri uri) { -// String path = ""; -// String[] projection = {MediaStore.MediaColumns.DATA}; -// Cursor cursor = context.getContentResolver().query(uri, projection, null, null, null); -// if (cursor == null) return null; -// int column_index = cursor.getColumnIndexOrThrow(projection[0]); -// if (cursor.moveToFirst()) { -// path = cursor.getString(column_index); -// } -// cursor.close(); -// return path; -// } -// -// private static Bitmap getScaledBitmap(final Bitmap bitmap) { -// int albumArtSize = 600; -// return Bitmap.createScaledBitmap(bitmap, albumArtSize, albumArtSize, false); -// } - public static void hideSoftKeyboard(@Nullable Activity activity) { if (activity != null) { View currentFocus = activity.getCurrentFocus(); @@ -155,14 +77,6 @@ public class Util { } } - public static boolean isAtLeastLollipop() { - return Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP; - } - - public static boolean isAtLeastKitKat() { - return Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT; - } - public static boolean isTablet(@NonNull final Context context) { return context.getResources().getConfiguration().smallestScreenWidthDp >= 600; } @@ -179,35 +93,6 @@ public class Util { return drawable; } - public static int getOpaqueColor(@ColorInt int color) { - return color | 0xFF000000; - } - - public static int getColorWithAlpha(float alpha, int baseColor) { - int a = Math.min(255, Math.max(0, (int) (alpha * 255))) << 24; - int rgb = 0x00ffffff & baseColor; - return a + rgb; - } - - @SuppressWarnings("ResourceType") - public static int shiftColorDown(int color) { - int alpha = Color.alpha(color); - float[] hsv = new float[3]; - Color.colorToHSV(color, hsv); - hsv[2] *= 0.9f; // value component - return (alpha << 24) + (0x00ffffff & Color.HSVToColor(hsv)); - } - - @NonNull - public static ColorStateList getEmptyColorStateList(int color) { - return new ColorStateList( - new int[][]{ - new int[]{} - }, - new int[]{color} - ); - } - @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1) public static boolean isRTL(@NonNull Context context) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { @@ -215,18 +100,4 @@ public class Util { return config.getLayoutDirection() == View.LAYOUT_DIRECTION_RTL; } else return false; } - - public static Bitmap getResizedBitmap(@NonNull Bitmap bm, int newHeight, int newWidth, boolean recycleOld) { - int width = bm.getWidth(); - int height = bm.getHeight(); - float scaleWidth = ((float) newWidth) / width; - float scaleHeight = ((float) newHeight) / height; - Matrix matrix = new Matrix(); - matrix.postScale(scaleWidth, scaleHeight); - Bitmap resizedBitmap = Bitmap.createBitmap(bm, 0, 0, width, height, matrix, false); - if (recycleOld && resizedBitmap != bm) { - bm.recycle(); - } - return resizedBitmap; - } } \ No newline at end of file diff --git a/app/src/main/java/com/kabouzeid/gramophone/util/ViewUtil.java b/app/src/main/java/com/kabouzeid/gramophone/util/ViewUtil.java index abafb57d..07506661 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/util/ViewUtil.java +++ b/app/src/main/java/com/kabouzeid/gramophone/util/ViewUtil.java @@ -8,11 +8,9 @@ import android.support.annotation.Nullable; import android.support.v7.internal.view.menu.ListMenuItemView; import android.support.v7.internal.view.menu.MenuPopupHelper; import android.view.View; -import android.view.ViewGroup; import android.view.ViewTreeObserver; import android.view.animation.PathInterpolator; import android.widget.CheckBox; -import android.widget.ListAdapter; import android.widget.ListView; import android.widget.RadioButton; import android.widget.TextView; @@ -28,50 +26,6 @@ import java.lang.reflect.Field; public class ViewUtil { public final static int DEFAULT_COLOR_ANIMATION_DURATION = 500; - public static void disableViews(@NonNull ViewGroup layout) { - for (int i = 0; i < layout.getChildCount(); i++) { - View child = layout.getChildAt(i); - if (child instanceof ViewGroup) { - disableViews((ViewGroup) child); - } else { - child.setEnabled(false); - } - } - } - - public static void enableViews(@NonNull ViewGroup layout) { - for (int i = 0; i < layout.getChildCount(); i++) { - View child = layout.getChildAt(i); - if (child instanceof ViewGroup) { - enableViews((ViewGroup) child); - } else { - child.setEnabled(true); - } - } - } - - public static void setListViewHeightBasedOnChildren(@NonNull ListView listView) { - ListAdapter listAdapter = listView.getAdapter(); - if (listAdapter == null) - return; - - int desiredWidth = View.MeasureSpec.makeMeasureSpec(listView.getWidth(), View.MeasureSpec.UNSPECIFIED); - int totalHeight = 0; - View view = null; - for (int i = 0; i < listAdapter.getCount(); i++) { - view = listAdapter.getView(i, view, listView); - if (i == 0) - view.setLayoutParams(new ViewGroup.LayoutParams(desiredWidth, ViewGroup.LayoutParams.WRAP_CONTENT)); - - view.measure(desiredWidth, View.MeasureSpec.UNSPECIFIED); - totalHeight += view.getMeasuredHeight(); - } - ViewGroup.LayoutParams params = listView.getLayoutParams(); - params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1)); - listView.setLayoutParams(params); - listView.requestLayout(); - } - public static void animateViewColor(final View v, final int startColor, final int endColor) { animateViewColor(v, startColor, endColor, DEFAULT_COLOR_ANIMATION_DURATION); } @@ -124,18 +78,6 @@ public class ViewUtil { }); } -// public static void animateTextViewMaxLines(TextView text, int maxLines) { -// try { -// ObjectAnimator animation = ObjectAnimator.ofInt(text, "maxLines", maxLines); -// animation.setInterpolator(new AccelerateInterpolator()); -// animation.setDuration(200); -// animation.start(); -// } catch (Exception e) { -// // Some devices crash at runtime when using the ObjectAnimator -// text.setMaxLines(maxLines); -// } -// } - public static void setCheckBoxTintForMenu(@Nullable MenuPopupHelper menuPopupHelper) { if (menuPopupHelper != null) { final ListView listView = menuPopupHelper.getPopup().getListView(); diff --git a/app/src/main/java/com/kabouzeid/gramophone/views/ColorView.java b/app/src/main/java/com/kabouzeid/gramophone/views/ColorView.java index 5c644b07..00ff2831 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/views/ColorView.java +++ b/app/src/main/java/com/kabouzeid/gramophone/views/ColorView.java @@ -15,7 +15,7 @@ import android.util.AttributeSet; import android.widget.FrameLayout; import com.kabouzeid.gramophone.R; -import com.kabouzeid.gramophone.util.Util; +import com.kabouzeid.gramophone.util.ColorUtil; public class ColorView extends FrameLayout { @@ -69,7 +69,7 @@ public class ColorView extends FrameLayout { @Override public void setBackgroundColor(int color) { paint.setColor(color); - paintBorder.setColor(Util.shiftColorDown(color)); + paintBorder.setColor(ColorUtil.shiftColorDown(color)); requestLayout(); invalidate(); } diff --git a/app/src/main/java/com/kabouzeid/gramophone/views/FastScroller.java b/app/src/main/java/com/kabouzeid/gramophone/views/FastScroller.java index 67f4170e..5e87d064 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/views/FastScroller.java +++ b/app/src/main/java/com/kabouzeid/gramophone/views/FastScroller.java @@ -18,6 +18,7 @@ import android.widget.FrameLayout; import com.afollestad.materialdialogs.ThemeSingleton; import com.kabouzeid.gramophone.R; +import com.kabouzeid.gramophone.util.ColorUtil; import com.kabouzeid.gramophone.util.Util; import static android.support.v7.widget.RecyclerView.OnScrollListener; @@ -182,7 +183,7 @@ public class FastScroller extends FrameLayout { public void setPressedHandleColor(int accent) { StateListDrawable drawable = new StateListDrawable(); - int colorControlNormal = Util.resolveColor(getContext(), R.attr.colorControlNormal); + int colorControlNormal = ColorUtil.resolveColor(getContext(), R.attr.colorControlNormal); if (!Util.isRTL(getContext())) { drawable.addState(View.PRESSED_ENABLED_STATE_SET, @@ -201,7 +202,7 @@ public class FastScroller extends FrameLayout { private void setUpBarBackground() { Drawable drawable; - int colorControlNormal = Util.resolveColor(getContext(), R.attr.colorControlNormal); + int colorControlNormal = ColorUtil.resolveColor(getContext(), R.attr.colorControlNormal); if (!Util.isRTL(getContext())) { drawable = new InsetDrawable(new ColorDrawable(colorControlNormal), getResources().getDimensionPixelSize(R.dimen.scrollbar_inset), 0, 0, 0);