diff --git a/app/build.gradle b/app/build.gradle
index 4e03124d4..44d5b4178 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -34,8 +34,9 @@ android {
}
buildTypes {
release {
+ debuggable true
minifyEnabled true
- shrinkResources true
+ //shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro
index 0608eae5c..c48afcd1b 100644
--- a/app/proguard-rules.pro
+++ b/app/proguard-rules.pro
@@ -45,8 +45,10 @@
-keep interface com.squareup.okhttp3.** { *; }
-dontwarn com.squareup.okhttp3.**
--dontwarn
--ignorewarnings
+#-dontwarn
+#-ignorewarnings
+-dontshrink
+-dontobfuscate
-dontwarn org.jaudiotagger.**
-keep class org.jaudiotagger.** { *; }
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 742fd5715..c8b117ede 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -4,6 +4,7 @@
package="code.name.monkey.retromusic">
+
@@ -119,11 +120,7 @@
-
-
+
= Build.VERSION_CODES.O_MR1) {
setShowWhenLocked(true)
- setTurnScreenOn(true)
+ val keyguardManager = getSystemService(Context.KEYGUARD_SERVICE) as KeyguardManager
+ keyguardManager.requestDismissKeyguard(this, null)
} else {
this.window.addFlags(
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD or
- WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED or
- WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
+ WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
)
}
setContentView(R.layout.activity_lock_screen)
@@ -67,8 +68,7 @@ class LockScreenActivity : AbsMusicServiceActivity() {
Slidr.attach(this, config)
- fragment =
- supportFragmentManager.findFragmentById(R.id.playback_controls_fragment) as LockScreenPlayerControlsFragment?
+ fragment = whichFragment(R.id.playback_controls_fragment)
findViewById(R.id.slide).apply {
translationY = 100f
diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt
index fd58e7b7c..1f80bbc6d 100644
--- a/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt
@@ -330,7 +330,7 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity() {
ViewCompat.setElevation(slidingPanel, 0f)
ViewCompat.setElevation(bottomNavigationView, 10f)
bottomSheetBehavior.isHideable = true
- bottomSheetBehavior.setPeekHeight(0, true)
+ bottomSheetBehavior.setPeekHeight(0, false)
bottomSheetBehavior.state = STATE_COLLAPSED
}
COLLAPSED_WITH -> {
@@ -341,7 +341,7 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity() {
bottomSheetBehavior.isHideable = false
bottomSheetBehavior.setPeekHeight(
if (isQueueEmpty) 0 else (heightOfBar * 2) - 24,
- true
+ false
)
bottomNavigationView.isVisible = true
}
@@ -353,7 +353,7 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity() {
bottomSheetBehavior.isHideable = false
bottomSheetBehavior.setPeekHeight(
if (isQueueEmpty) 0 else heightOfBar - 24,
- true
+ false
)
bottomNavigationView.isGone = true
}
diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/DetailListFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/DetailListFragment.kt
index 6c4c0510b..cd24eac7f 100644
--- a/app/src/main/java/code/name/monkey/retromusic/fragments/DetailListFragment.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/fragments/DetailListFragment.kt
@@ -10,11 +10,13 @@ import androidx.navigation.fragment.findNavController
import androidx.navigation.fragment.navArgs
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.RecyclerView.AdapterDataObserver
import code.name.monkey.retromusic.*
import code.name.monkey.retromusic.adapter.album.AlbumAdapter
import code.name.monkey.retromusic.adapter.artist.ArtistAdapter
import code.name.monkey.retromusic.adapter.song.SongAdapter
import code.name.monkey.retromusic.db.toSong
+import code.name.monkey.retromusic.extensions.dipToPix
import code.name.monkey.retromusic.fragments.albums.AlbumClickListener
import code.name.monkey.retromusic.fragments.artists.ArtistClickListener
import code.name.monkey.retromusic.fragments.base.AbsMainActivityFragment
@@ -52,6 +54,15 @@ class DetailListFragment : AbsMainActivityFragment(R.layout.fragment_playlist_de
LAST_ADDED_PLAYLIST -> lastAddedSongs()
TOP_PLAYED_PLAYLIST -> topPlayed()
}
+
+
+ recyclerView.adapter?.registerAdapterDataObserver(object : AdapterDataObserver() {
+ override fun onChanged() {
+ super.onChanged()
+ val height = dipToPix(52f)
+ recyclerView.setPadding(0, 0, 0, height.toInt())
+ }
+ })
}
private fun lastAddedSongs() {
@@ -84,7 +95,6 @@ class DetailListFragment : AbsMainActivityFragment(R.layout.fragment_playlist_de
libraryViewModel.playCountSongs().observe(viewLifecycleOwner, Observer { songs ->
songAdapter.swapDataSet(songs)
})
-
}
private fun loadHistory() {
@@ -116,8 +126,8 @@ class DetailListFragment : AbsMainActivityFragment(R.layout.fragment_playlist_de
adapter = songAdapter
layoutManager = linearLayoutManager()
}
- libraryViewModel.favorites().observe(viewLifecycleOwner, {
- val songs = it.map { songEntity -> songEntity.toSong() }
+ libraryViewModel.favorites().observe(viewLifecycleOwner, { songEntities ->
+ val songs = songEntities.map { songEntity -> songEntity.toSong() }
songAdapter.swapDataSet(songs)
})
}
diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/lockscreen/LockScreenPlayerControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/lockscreen/LockScreenControlsFragment.kt
similarity index 99%
rename from app/src/main/java/code/name/monkey/retromusic/fragments/player/lockscreen/LockScreenPlayerControlsFragment.kt
rename to app/src/main/java/code/name/monkey/retromusic/fragments/player/lockscreen/LockScreenControlsFragment.kt
index 51556b8a3..b4d395ea4 100644
--- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/lockscreen/LockScreenPlayerControlsFragment.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/lockscreen/LockScreenControlsFragment.kt
@@ -43,7 +43,7 @@ import kotlinx.android.synthetic.main.fragment_lock_screen_playback_controls.*
/**
* @author Hemanth S (h4h13).
*/
-class LockScreenPlayerControlsFragment :
+class LockScreenControlsFragment :
AbsPlayerControlsFragment(R.layout.fragment_lock_screen_playback_controls) {
private var progressViewUpdateHelper: MusicProgressViewUpdateHelper? = null
diff --git a/app/src/main/java/code/name/monkey/retromusic/repository/SongRepository.kt b/app/src/main/java/code/name/monkey/retromusic/repository/SongRepository.kt
index 872ac1d25..da52da288 100644
--- a/app/src/main/java/code/name/monkey/retromusic/repository/SongRepository.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/repository/SongRepository.kt
@@ -154,13 +154,17 @@ class RealSongRepository(private val context: Context) : SongRepository {
} else {
Media.EXTERNAL_CONTENT_URI
}
- return context.contentResolver.query(
- uri,
- baseProjection,
- selectionFinal,
- selectionValuesFinal,
- sortOrder
- )
+ return try {
+ context.contentResolver.query(
+ uri,
+ baseProjection,
+ selectionFinal,
+ selectionValuesFinal,
+ sortOrder
+ )
+ } catch (ex: SecurityException) {
+ return null
+ }
}
private fun generateBlacklistSelection(
diff --git a/app/src/main/java/code/name/monkey/retromusic/service/MusicService.java b/app/src/main/java/code/name/monkey/retromusic/service/MusicService.java
index 917e4c306..ebc0a9add 100644
--- a/app/src/main/java/code/name/monkey/retromusic/service/MusicService.java
+++ b/app/src/main/java/code/name/monkey/retromusic/service/MusicService.java
@@ -63,6 +63,7 @@ import java.util.Objects;
import java.util.Random;
import code.name.monkey.retromusic.R;
+import code.name.monkey.retromusic.activities.LockScreenActivity;
import code.name.monkey.retromusic.appwidgets.AppWidgetBig;
import code.name.monkey.retromusic.appwidgets.AppWidgetCard;
import code.name.monkey.retromusic.appwidgets.AppWidgetClassic;
@@ -245,7 +246,16 @@ public class MusicService extends Service implements
updateNotification();
}
};
-
+ private final BroadcastReceiver lockScreenReceiver = new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ if (PreferenceUtil.INSTANCE.isLockScreen() && isPlaying()) {
+ Intent lockIntent = new Intent(context, LockScreenActivity.class);
+ lockIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
+ startActivity(lockIntent);
+ }
+ }
+ };
private QueueSaveHandler queueSaveHandler;
private HandlerThread queueSaveHandlerThread;
private boolean queuesRestored;
@@ -362,6 +372,7 @@ public class MusicService extends Service implements
registerReceiver(widgetIntentReceiver, new IntentFilter(APP_WIDGET_UPDATE));
registerReceiver(updateFavoriteReceiver, new IntentFilter(FAVORITE_STATE_CHANGED));
+ registerReceiver(lockScreenReceiver, new IntentFilter(Intent.ACTION_SCREEN_OFF));
initNotification();
@@ -403,6 +414,7 @@ public class MusicService extends Service implements
public void onDestroy() {
unregisterReceiver(widgetIntentReceiver);
unregisterReceiver(updateFavoriteReceiver);
+ unregisterReceiver(lockScreenReceiver);
if (becomingNoisyReceiverRegistered) {
unregisterReceiver(becomingNoisyReceiver);
becomingNoisyReceiverRegistered = false;
diff --git a/app/src/main/res/layout/activity_lock_screen.xml b/app/src/main/res/layout/activity_lock_screen.xml
index f4f0872ae..0e707bd53 100644
--- a/app/src/main/res/layout/activity_lock_screen.xml
+++ b/app/src/main/res/layout/activity_lock_screen.xml
@@ -24,7 +24,7 @@
diff --git a/app/src/main/res/layout/item_suggestions.xml b/app/src/main/res/layout/item_suggestions.xml
index 70f5a24c3..046d4dfb0 100644
--- a/app/src/main/res/layout/item_suggestions.xml
+++ b/app/src/main/res/layout/item_suggestions.xml
@@ -145,8 +145,9 @@
android:text="New music mix"
android:textAppearance="@style/TextViewNormal"
android:textStyle="bold"
+ android:textSize="32sp"
app:autoSizeMaxTextSize="32sp"
- app:autoSizeMinTextSize="18sp"
+ app:autoSizeMinTextSize="24sp"
app:autoSizeStepGranularity="1sp" />