Code Cleanup

This commit is contained in:
Prathamesh More 2022-05-20 16:46:00 +05:30
parent 51f298be8f
commit 1b544d62c3
12 changed files with 49 additions and 59 deletions

View file

@ -40,6 +40,8 @@ import com.google.android.material.bottomsheet.BottomSheetBehavior
import com.google.android.material.card.MaterialCardView
import dev.chrisbanes.insetter.applyInsetter
const val ANIM_DURATION = 300L
@Suppress("UNCHECKED_CAST")
fun <T : View> ViewGroup.inflate(@LayoutRes layout: Int): T {
return LayoutInflater.from(context).inflate(layout, this, false) as T
@ -90,10 +92,10 @@ fun BottomNavigationView.show() {
drawable.setBounds(left, parent.height, right, parent.height + height)
parent.overlay.add(drawable)
ValueAnimator.ofInt(parent.height, top).apply {
duration = 300
duration = ANIM_DURATION
interpolator = AnimationUtils.loadInterpolator(
context,
android.R.interpolator.linear_out_slow_in
android.R.interpolator.accelerate_decelerate
)
addUpdateListener {
val newTop = it.animatedValue as Int
@ -130,10 +132,10 @@ fun BottomNavigationView.hide() {
parent.overlay.add(drawable)
isGone = true
ValueAnimator.ofInt(top, parent.height).apply {
duration = 300L
duration = ANIM_DURATION
interpolator = AnimationUtils.loadInterpolator(
context,
android.R.interpolator.fast_out_linear_in
android.R.interpolator.accelerate_decelerate
)
addUpdateListener {
val newTop = it.animatedValue as Int
@ -164,7 +166,7 @@ fun View.translateYAnimate(value: Float): Animator {
fun BottomSheetBehavior<*>.peekHeightAnimate(value: Int): Animator {
return ObjectAnimator.ofInt(this, "peekHeight", value)
.apply {
duration = 300
duration = ANIM_DURATION
start()
}
}

View file

@ -177,11 +177,10 @@ class FullPlaybackControlsFragment :
private fun setUpPlayPauseFab() {
binding.playPauseButton.setOnClickListener(PlayPauseButtonOnClickHandler())
binding.playPauseButton.post {
binding.playPauseButton.pivotX = (binding.playPauseButton.width / 2).toFloat()
binding.playPauseButton.pivotY = (binding.playPauseButton.height / 2).toFloat()
}
}
private fun setUpMusicControllers() {
setUpPlayPauseFab()

View file

@ -65,9 +65,6 @@ object MusicPlayerRemote : KoinComponent {
musicService?.nextSong
} else Song.emptySong
/**
* Async
*/
var position: Int
get() = if (musicService != null) {
musicService!!.position

View file

@ -46,7 +46,7 @@ import kotlin.math.abs
class CoverLrcView @JvmOverloads constructor(
context: Context?,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
defStyleAttr: Int = 0,
) : View(context, attrs, defStyleAttr) {
private val mLrcEntryList: MutableList<LrcEntry> = ArrayList()
private val mLrcPaint = TextPaint()
@ -109,7 +109,7 @@ class CoverLrcView @JvmOverloads constructor(
e1: MotionEvent,
e2: MotionEvent,
distanceX: Float,
distanceY: Float
distanceY: Float,
): Boolean {
if (mOffset == getOffset(0) && distanceY < 0F) {
return super.onScroll(e1, e2, distanceX, distanceY)
@ -129,7 +129,7 @@ class CoverLrcView @JvmOverloads constructor(
e1: MotionEvent,
e2: MotionEvent,
velocityX: Float,
velocityY: Float
velocityY: Float,
): Boolean {
if (hasLrc()) {
mScroller!!.fling(
@ -598,7 +598,6 @@ class CoverLrcView @JvmOverloads constructor(
mOffset = animation.animatedValue as Float
invalidate()
}
LrcUtils.resetDurationScale()
start()
}
}

View file

@ -208,14 +208,4 @@ class LrcUtils {
String ss = String.format(Locale.getDefault(), "%02d", s);
return mm + ":" + ss;
}
static void resetDurationScale() {
try {
Field mField = ValueAnimator.class.getDeclaredField("sDurationScale");
mField.setAccessible(true);
mField.setFloat(null, 1);
} catch (Exception e) {
e.printStackTrace();
}
}
}

View file

@ -684,7 +684,6 @@ public class LrcView extends View {
mOffset = (float) animation.getAnimatedValue();
invalidate();
});
LrcUtils.resetDurationScale();
mAnimator.start();
}

View file

@ -12,9 +12,9 @@ class AudioFader {
@JvmStatic
inline fun createFadeAnimator(
fadeIn: Boolean /* fadeIn -> true fadeOut -> false*/,
fadeIn: Boolean, /* fadeIn -> true fadeOut -> false*/
mediaPlayer: MediaPlayer,
crossinline endAction: (animator: Animator) -> Unit /* Code to run when Animator Ends*/
crossinline endAction: (animator: Animator) -> Unit, /* Code to run when Animator Ends*/
): Animator? {
val duration = PreferenceUtil.crossFadeDuration * 1000
if (duration == 0) {
@ -40,8 +40,8 @@ class AudioFader {
@JvmStatic
fun startFadeAnimator(
playback: Playback,
fadeIn: Boolean /* fadeIn -> true fadeOut -> false*/,
callback: Runnable /* Code to run when Animator Ends*/
fadeIn: Boolean, /* fadeIn -> true fadeOut -> false*/
callback: Runnable, /* Code to run when Animator Ends*/
) {
val duration = PreferenceUtil.audioFadeDuration.toLong()
if (duration == 0L) {

View file

@ -16,6 +16,7 @@ package code.name.monkey.retromusic.util
import android.app.Activity
import android.content.SharedPreferences
import androidx.core.content.edit
import com.google.android.play.core.review.ReviewManagerFactory
object AppRater {
@ -34,28 +35,27 @@ object AppRater {
return
}
val editor = prefs.edit()
prefs.edit {
// Increment launch counter
val launchCount = prefs.getLong(LAUNCH_COUNT, 0) + 1
editor.putLong(LAUNCH_COUNT, launchCount)
putLong(LAUNCH_COUNT, launchCount)
// Get date of first launch
var dateFirstLaunch = prefs.getLong(DATE_FIRST_LAUNCH, 0)
if (dateFirstLaunch == 0L) {
dateFirstLaunch = System.currentTimeMillis()
editor.putLong(DATE_FIRST_LAUNCH, dateFirstLaunch)
putLong(DATE_FIRST_LAUNCH, dateFirstLaunch)
}
// Wait at least n days before opening
if (launchCount >= LAUNCHES_UNTIL_PROMPT) {
if (System.currentTimeMillis() >= dateFirstLaunch + DAYS_UNTIL_PROMPT * 24 * 60 * 60 * 1000) {
//showRateDialog(context, editor)
showPlayStoreReviewDialog(context, editor)
showPlayStoreReviewDialog(context, this)
}
}
}
editor.apply()
}
private fun showPlayStoreReviewDialog(context: Activity, editor: SharedPreferences.Editor) {

View file

@ -39,6 +39,7 @@ import java.util.Collections;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Locale;
import java.util.StringTokenizer;
import code.name.monkey.retromusic.Constants;
@ -178,7 +179,7 @@ public final class FileUtil {
if (dotPos == -1) {
return false;
}
String fileExtension = filename.substring(dotPos + 1).toLowerCase();
String fileExtension = filename.substring(dotPos + 1).toLowerCase(Locale.ROOT);
String fileType = mimeTypeMap.getMimeTypeFromExtension(fileExtension);
if (fileType == null) {
return false;
@ -304,7 +305,7 @@ public final class FileUtil {
paths.add(path);
try {
Storage item = new Storage();
if (path.toLowerCase().contains("sd")) {
if (path.toLowerCase(Locale.ROOT).contains("sd")) {
item.title = "SD Card";
} else {
item.title = "External Storage";

View file

@ -83,7 +83,6 @@ public class SAFUtil {
return false;
}
@TargetApi(Build.VERSION_CODES.KITKAT)
public static void openFilePicker(Activity activity) {
Intent i = new Intent(Intent.ACTION_CREATE_DOCUMENT);
i.addCategory(Intent.CATEGORY_OPENABLE);
@ -92,7 +91,6 @@ public class SAFUtil {
activity.startActivityForResult(i, SAFUtil.REQUEST_SAF_PICK_FILE);
}
@TargetApi(Build.VERSION_CODES.KITKAT)
public static void openFilePicker(Fragment fragment) {
Intent i = new Intent(Intent.ACTION_CREATE_DOCUMENT);
i.addCategory(Intent.CATEGORY_OPENABLE);
@ -101,21 +99,18 @@ public class SAFUtil {
fragment.startActivityForResult(i, SAFUtil.REQUEST_SAF_PICK_FILE);
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public static void openTreePicker(Activity activity) {
Intent i = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
i.putExtra("android.content.extra.SHOW_ADVANCED", true);
activity.startActivityForResult(i, SAFUtil.REQUEST_SAF_PICK_TREE);
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public static void openTreePicker(Fragment fragment) {
Intent i = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
i.putExtra("android.content.extra.SHOW_ADVANCED", true);
fragment.startActivityForResult(i, SAFUtil.REQUEST_SAF_PICK_TREE);
}
@TargetApi(Build.VERSION_CODES.KITKAT)
public static void saveTreeUri(Context context, Intent data) {
Uri uri = data.getData();
context
@ -125,12 +120,10 @@ public class SAFUtil {
PreferenceUtil.INSTANCE.setSafSdCardUri(uri.toString());
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public static boolean isTreeUriSaved(Context context) {
return !TextUtils.isEmpty(PreferenceUtil.INSTANCE.getSafSdCardUri());
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public static boolean isSDCardAccessGranted(Context context) {
if (!isTreeUriSaved(context)) return false;
@ -267,7 +260,6 @@ public class SAFUtil {
new File(path).delete();
}
@TargetApi(Build.VERSION_CODES.KITKAT)
public static void deleteSAF(Context context, String path, Uri safUri) {
Uri uri = null;

View file

@ -35,6 +35,7 @@ import androidx.annotation.IntRange;
import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import java.util.Locale;
import java.util.WeakHashMap;
import code.name.monkey.retromusic.R;
@ -329,7 +330,7 @@ public class NotificationColorUtil {
}
private static String contrastChange(int colorOld, int colorNew, int bg) {
return String.format(
return String.format(Locale.ROOT,
"from %.2f:1 to %.2f:1",
ColorUtilsFromCompat.calculateContrast(colorOld, bg),
ColorUtilsFromCompat.calculateContrast(colorNew, bg));

View file

@ -1,6 +1,7 @@
package code.name.monkey.appthemehelper.util
import android.os.Build
import androidx.annotation.ChecksSdkIntAtLeast
/**
* @author Hemanth S (h4h13).
@ -10,6 +11,7 @@ object VersionUtils {
/**
* @return true if device is running API >= 23
*/
@ChecksSdkIntAtLeast(api = Build.VERSION_CODES.M)
fun hasMarshmallow(): Boolean {
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
}
@ -17,6 +19,7 @@ object VersionUtils {
/**
* @return true if device is running API >= 24
*/
@ChecksSdkIntAtLeast(api = Build.VERSION_CODES.N)
fun hasNougat(): Boolean {
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.N
}
@ -24,6 +27,7 @@ object VersionUtils {
/**
* @return true if device is running API >= 25
*/
@ChecksSdkIntAtLeast(api = Build.VERSION_CODES.N_MR1)
fun hasNougatMR(): Boolean {
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1
}
@ -31,6 +35,7 @@ object VersionUtils {
/**
* @return true if device is running API >= 26
*/
@ChecksSdkIntAtLeast(api = Build.VERSION_CODES.O)
fun hasOreo(): Boolean {
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.O
}
@ -38,6 +43,7 @@ object VersionUtils {
/**
* @return true if device is running API >= 27
*/
@ChecksSdkIntAtLeast(api = Build.VERSION_CODES.O_MR1)
fun hasOreoMR1(): Boolean {
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1
}
@ -45,6 +51,7 @@ object VersionUtils {
/**
* @return true if device is running API >= 28
*/
@ChecksSdkIntAtLeast(api = Build.VERSION_CODES.P)
fun hasP(): Boolean {
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.P
}
@ -52,6 +59,7 @@ object VersionUtils {
/**
* @return true if device is running API >= 29
*/
@ChecksSdkIntAtLeast(api = Build.VERSION_CODES.Q)
@JvmStatic
fun hasQ(): Boolean {
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q
@ -60,6 +68,7 @@ object VersionUtils {
/**
* @return true if device is running API >= 30
*/
@ChecksSdkIntAtLeast(api = Build.VERSION_CODES.R)
@JvmStatic
fun hasR(): Boolean {
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.R
@ -68,6 +77,7 @@ object VersionUtils {
/**
* @return true if device is running API >= 31
*/
@ChecksSdkIntAtLeast(api = Build.VERSION_CODES.S)
@JvmStatic
fun hasS(): Boolean {
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.S