v2.10
This commit is contained in:
parent
3d7ba2afc6
commit
08e00b89c5
341 changed files with 7612 additions and 6811 deletions
|
@ -2,6 +2,7 @@ package code.name.monkey.retromusic.util;
|
|||
|
||||
import android.app.Activity;
|
||||
import android.content.ActivityNotFoundException;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.media.audiofx.AudioEffect;
|
||||
import android.widget.Toast;
|
||||
|
@ -17,12 +18,12 @@ import code.name.monkey.retromusic.helper.MusicPlayerRemote;
|
|||
import code.name.monkey.retromusic.model.Genre;
|
||||
import code.name.monkey.retromusic.model.Playlist;
|
||||
import code.name.monkey.retromusic.ui.activities.AboutActivity;
|
||||
import code.name.monkey.retromusic.ui.activities.AlbumDetailsActivity;
|
||||
import code.name.monkey.retromusic.ui.activities.ArtistDetailActivity;
|
||||
import code.name.monkey.retromusic.ui.activities.EqualizerActivity;
|
||||
import code.name.monkey.retromusic.ui.activities.GenreDetailsActivity;
|
||||
import code.name.monkey.retromusic.ui.activities.LicenseActivity;
|
||||
import code.name.monkey.retromusic.ui.activities.LyricsActivity;
|
||||
import code.name.monkey.retromusic.ui.activities.NowPayingActivity;
|
||||
import code.name.monkey.retromusic.ui.activities.PlayingQueueActivity;
|
||||
import code.name.monkey.retromusic.ui.activities.PlaylistDetailActivity;
|
||||
import code.name.monkey.retromusic.ui.activities.ProVersionActivity;
|
||||
|
@ -30,6 +31,8 @@ import code.name.monkey.retromusic.ui.activities.SearchActivity;
|
|||
import code.name.monkey.retromusic.ui.activities.SettingsActivity;
|
||||
import code.name.monkey.retromusic.ui.activities.SupportDevelopmentActivity;
|
||||
import code.name.monkey.retromusic.ui.activities.UserInfoActivity;
|
||||
import code.name.monkey.retromusic.ui.activities.WhatsNewActivity;
|
||||
import code.name.monkey.retromusic.ui.activities.AlbumDetailsActivity;
|
||||
|
||||
import static code.name.monkey.retromusic.Constants.RATE_ON_GOOGLE_PLAY;
|
||||
import static code.name.monkey.retromusic.ui.activities.GenreDetailsActivity.EXTRA_GENRE_ID;
|
||||
|
@ -63,7 +66,7 @@ public class NavigationUtil {
|
|||
}
|
||||
|
||||
public static void openEqualizer(@NonNull final Activity activity) {
|
||||
if (PreferenceUtil.getInstance(activity).getSelectedEqualizer().equals("system")) {
|
||||
if (PreferenceUtil.getInstance().getSelectedEqualizer().equals("system")) {
|
||||
stockEqalizer(activity);
|
||||
} else {
|
||||
ActivityCompat.startActivity(activity, new Intent(activity, EqualizerActivity.class), null);
|
||||
|
@ -139,4 +142,14 @@ public class NavigationUtil {
|
|||
public static void gotoExpandedController(Activity activity) {
|
||||
ActivityCompat.startActivity(activity, new Intent(activity, ExpandedCastControlsActivity.class), null);
|
||||
}
|
||||
|
||||
public static void gotoWhatNews(Activity activity) {
|
||||
ActivityCompat.startActivity(activity, new Intent(activity, WhatsNewActivity.class), null);
|
||||
}
|
||||
|
||||
public static void gotoNowPlayingActivity(Context context, @Nullable Pair... sharedElements) {
|
||||
ActivityCompat.startActivity(context, new Intent(context, NowPayingActivity.class),
|
||||
ActivityOptionsCompat.makeSceneTransitionAnimation((Activity) context, sharedElements).toBundle());
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,7 +26,11 @@ import code.name.monkey.retromusic.RetroApplication;
|
|||
import code.name.monkey.retromusic.helper.SortOrder;
|
||||
import code.name.monkey.retromusic.model.CategoryInfo;
|
||||
import code.name.monkey.retromusic.transform.CascadingPageTransformer;
|
||||
import code.name.monkey.retromusic.transform.DepthTransformation;
|
||||
import code.name.monkey.retromusic.transform.HingeTransformation;
|
||||
import code.name.monkey.retromusic.transform.HorizontalFlipTransformation;
|
||||
import code.name.monkey.retromusic.transform.NormalPageTransformer;
|
||||
import code.name.monkey.retromusic.transform.VerticalFlipTransformation;
|
||||
import code.name.monkey.retromusic.ui.activities.MainActivity;
|
||||
import code.name.monkey.retromusic.ui.fragments.AlbumCoverStyle;
|
||||
import code.name.monkey.retromusic.ui.fragments.NowPlayingScreen;
|
||||
|
@ -106,6 +110,8 @@ public final class PreferenceUtil {
|
|||
private static final String SONG_GRID_STYLE = "song_grid_style";
|
||||
private static final String TOGGLE_ANIMATIONS = "toggle_animations";
|
||||
private static final String LAST_KNOWN_LYRICS_TYPE = "LAST_KNOWN_LYRICS_TYPE";
|
||||
private static final String ALBUM_DETAIL_STYLE = "album_detail_style";
|
||||
private static final String PAUSE_ON_ZERO_VOLUME = "pause_on_zero_volume";
|
||||
private static PreferenceUtil sInstance;
|
||||
private final SharedPreferences mPreferences;
|
||||
|
||||
|
@ -113,9 +119,9 @@ public final class PreferenceUtil {
|
|||
mPreferences = PreferenceManager.getDefaultSharedPreferences(context);
|
||||
}
|
||||
|
||||
public static PreferenceUtil getInstance(@NonNull final Context context) {
|
||||
public static PreferenceUtil getInstance() {
|
||||
if (sInstance == null) {
|
||||
sInstance = new PreferenceUtil(context.getApplicationContext());
|
||||
sInstance = new PreferenceUtil(RetroApplication.getContext());
|
||||
}
|
||||
return sInstance;
|
||||
}
|
||||
|
@ -137,15 +143,6 @@ public final class PreferenceUtil {
|
|||
}
|
||||
}
|
||||
|
||||
public int getAlbumDetailsPageStyle() {
|
||||
|
||||
TypedArray typedArray = RetroApplication.getInstance().
|
||||
getResources().obtainTypedArray(R.array.pref_album_detail_style_values);
|
||||
int layout = typedArray.getResourceId(mPreferences.getInt("album_detail_style", 0), -1);
|
||||
typedArray.recycle();
|
||||
return layout;
|
||||
}
|
||||
|
||||
public final String getArtistSortOrder() {
|
||||
return mPreferences.getString(ARTIST_SORT_ORDER, SortOrder.ArtistSortOrder.ARTIST_A_Z);
|
||||
}
|
||||
|
@ -734,6 +731,21 @@ public final class PreferenceUtil {
|
|||
return layoutRes;
|
||||
}
|
||||
|
||||
public String getAlbumDetailsStyle() {
|
||||
return mPreferences.getString(ALBUM_DETAIL_STYLE, "0");
|
||||
}
|
||||
|
||||
public int getAlbumDetailsStyle(Context context) {
|
||||
int pos = Integer.parseInt(Objects.requireNonNull(mPreferences.getString(ALBUM_DETAIL_STYLE, "0")));
|
||||
TypedArray typedArray = context.getResources().obtainTypedArray(R.array.pref_album_details_style_layout);
|
||||
int layoutRes = typedArray.getResourceId(pos, -1);
|
||||
typedArray.recycle();
|
||||
if (layoutRes == -1) {
|
||||
return R.layout.activity_album;
|
||||
}
|
||||
return layoutRes;
|
||||
}
|
||||
|
||||
public void setArtistGridStyle(int viewAs) {
|
||||
mPreferences.edit().putInt(ARTIST_GRID_STYLE, viewAs).apply();
|
||||
}
|
||||
|
@ -754,6 +766,10 @@ public final class PreferenceUtil {
|
|||
return mPreferences.getBoolean(TOGGLE_ANIMATIONS, false);
|
||||
}
|
||||
|
||||
public boolean pauseOnZeroVolume() {
|
||||
return mPreferences.getBoolean(PAUSE_ON_ZERO_VOLUME, false);
|
||||
}
|
||||
|
||||
|
||||
public ViewPager.PageTransformer getAlbumCoverTransform(Context context) {
|
||||
int style = Integer.parseInt(Objects.requireNonNull(mPreferences.getString(ALBUM_COVER_TRANSFORM, "0")));
|
||||
|
@ -763,6 +779,14 @@ public final class PreferenceUtil {
|
|||
return new NormalPageTransformer();
|
||||
case 1:
|
||||
return new CascadingPageTransformer();
|
||||
case 2:
|
||||
return new DepthTransformation();
|
||||
case 3:
|
||||
return new HorizontalFlipTransformation();
|
||||
case 4:
|
||||
return new VerticalFlipTransformation();
|
||||
case 5:
|
||||
return new HingeTransformation();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -10,6 +10,7 @@ import android.content.res.Resources;
|
|||
import android.database.Cursor;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.Point;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.net.ConnectivityManager;
|
||||
|
@ -21,6 +22,7 @@ import android.provider.BaseColumns;
|
|||
import android.provider.MediaStore;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.view.Display;
|
||||
import android.view.Surface;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.Window;
|
||||
|
@ -100,10 +102,6 @@ public class RetroUtil {
|
|||
WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
|
||||
}
|
||||
|
||||
public static void setAllowDrawUnderStatusBar(@NonNull Window window) {
|
||||
window.getDecorView().setSystemUiVisibility(
|
||||
View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
|
||||
}
|
||||
|
||||
public static boolean isMarshMellow() {
|
||||
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.M;
|
||||
|
@ -223,7 +221,7 @@ public class RetroUtil {
|
|||
}
|
||||
|
||||
public static boolean isAllowedToDownloadMetadata(final Context context) {
|
||||
switch (PreferenceUtil.getInstance(context).autoDownloadImagesPolicy()) {
|
||||
switch (PreferenceUtil.getInstance().autoDownloadImagesPolicy()) {
|
||||
case "always":
|
||||
return true;
|
||||
case "only_wifi":
|
||||
|
@ -308,4 +306,102 @@ public class RetroUtil {
|
|||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public static int getNavigationBarHeight(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;
|
||||
}
|
||||
|
||||
|
||||
public static void setAllowDrawUnderNavigationBar(Window window) {
|
||||
window.setNavigationBarColor(Color.TRANSPARENT);
|
||||
window.getDecorView().setSystemUiVisibility(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O ?
|
||||
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
|
||||
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
|
||||
| View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR
|
||||
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION :
|
||||
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
|
||||
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
|
||||
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
|
||||
);
|
||||
}
|
||||
|
||||
public static void setAllowDrawUnderStatusBar(@NonNull Window window) {
|
||||
window.getDecorView().setSystemUiVisibility(
|
||||
View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
|
||||
}
|
||||
|
||||
public static int getSoftButtonsBarSizePort(Activity activity) {
|
||||
// getRealMetrics is only available with API 17 and +
|
||||
DisplayMetrics metrics = new DisplayMetrics();
|
||||
activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);
|
||||
int usableHeight = metrics.heightPixels;
|
||||
activity.getWindowManager().getDefaultDisplay().getRealMetrics(metrics);
|
||||
int realHeight = metrics.heightPixels;
|
||||
if (realHeight > usableHeight)
|
||||
return realHeight - usableHeight;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
public static boolean hasNavBar(Resources resources) {
|
||||
int id = resources.getIdentifier("config_showNavigationBar", "bool", "android");
|
||||
if (id > 0)
|
||||
return resources.getBoolean(id);
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
public static int getNavigationBarHeight(Resources resources) {
|
||||
if (!hasNavBar(resources))
|
||||
return 0;
|
||||
|
||||
int orientation = resources.getConfiguration().orientation;
|
||||
|
||||
//Only phone between 0-599 has navigationbar can move
|
||||
boolean isSmartphone = resources.getConfiguration().smallestScreenWidthDp < 600;
|
||||
if (isSmartphone && Configuration.ORIENTATION_LANDSCAPE == orientation)
|
||||
return 0;
|
||||
|
||||
int id = resources
|
||||
.getIdentifier(orientation == Configuration.ORIENTATION_PORTRAIT ? "navigation_bar_height" : "navigation_bar_height_landscape", "dimen", "android");
|
||||
if (id > 0)
|
||||
return resources.getDimensionPixelSize(id);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
public static int getNavigationBarWidth(Resources resources) {
|
||||
if (!hasNavBar(resources))
|
||||
return 0;
|
||||
|
||||
int orientation = resources.getConfiguration().orientation;
|
||||
|
||||
//Only phone between 0-599 has navigationbar can move
|
||||
boolean isSmartphone = resources.getConfiguration().smallestScreenWidthDp < 600;
|
||||
|
||||
if (orientation == Configuration.ORIENTATION_LANDSCAPE && isSmartphone) {
|
||||
int id = resources.getIdentifier("navigation_bar_width", "dimen", "android");
|
||||
if (id > 0)
|
||||
return resources.getDimensionPixelSize(id);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
public static boolean isNavigationBarLeftSide() {
|
||||
Display display = ((WindowManager) RetroApplication.getContext().getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
|
||||
int screenOrientation = display.getRotation();
|
||||
return screenOrientation == Surface.ROTATION_180;
|
||||
}
|
||||
|
||||
public static boolean isNavigationBarRightSide() {
|
||||
Display display = ((WindowManager) RetroApplication.getContext().getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
|
||||
int screenOrientation = display.getRotation();
|
||||
return screenOrientation == Surface.ROTATION_90;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,8 +10,10 @@ import android.view.ViewGroup;
|
|||
|
||||
import com.simplecityapps.recyclerview_fastscroll.views.FastScrollRecyclerView;
|
||||
|
||||
import code.name.monkey.appthemehelper.util.ATHUtil;
|
||||
import code.name.monkey.appthemehelper.util.ColorUtil;
|
||||
import code.name.monkey.appthemehelper.util.MaterialValueHelper;
|
||||
import code.name.monkey.retromusic.R;
|
||||
|
||||
public class ViewUtil {
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue