summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMikalacki Sava <mikalackis@gmail.com>2015-03-04 16:18:14 +0100
committerMikalacki Sava <mikalackis@gmail.com>2015-03-18 12:50:21 +0100
commit89c155ccef538edb4382e790b4d1913662925b18 (patch)
tree1a42b0f1ddbde240d64586400f10841bdf0834e1
parent1acc38bf8a57600f3bea031e39ea37a668c3912a (diff)
downloadandroid_packages_apps_Eleven-89c155ccef538edb4382e790b4d1913662925b18.tar.gz
android_packages_apps_Eleven-89c155ccef538edb4382e790b4d1913662925b18.tar.bz2
android_packages_apps_Eleven-89c155ccef538edb4382e790b4d1913662925b18.zip
Eleven: Show/Hide album art on lockscreen
Added preference option to show/hide album art on lockscreen. Change-Id: Iea2173288fc279f15abe6675a0ffd582e35ad321
-rw-r--r--res/values/strings.xml2
-rw-r--r--res/xml/settings.xml7
-rw-r--r--src/com/cyanogenmod/eleven/IElevenService.aidl1
-rw-r--r--src/com/cyanogenmod/eleven/MusicPlaybackService.java28
-rw-r--r--src/com/cyanogenmod/eleven/ui/activities/SettingsActivity.java4
-rw-r--r--src/com/cyanogenmod/eleven/utils/MusicUtils.java36
-rw-r--r--src/com/cyanogenmod/eleven/utils/PreferenceUtils.java7
7 files changed, 74 insertions, 11 deletions
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 4047af3..80d7734 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -142,6 +142,8 @@
<string name="settings_show_lyrics_summary">For songs that have an srt file</string>
<string name="settings_shake_to_play">Shake to Play</string>
<string name="settings_shake_to_play_summary">Shake your device to play next song</string>
+ <string name="settings_lockscreen_album_art">Lockscreen album art</string>
+ <string name="settings_lockscreen_album_art_summary">Replace lockscreen background with album art</string>
<!-- App widget -->
<string name="app_widget_small">Music: 4 \u00d7 1</string>
diff --git a/res/xml/settings.xml b/res/xml/settings.xml
index 33151a4..be29c00 100644
--- a/res/xml/settings.xml
+++ b/res/xml/settings.xml
@@ -58,6 +58,13 @@
android:key="shake_to_play"
android:title="@string/settings_shake_to_play"
android:summary="@string/settings_shake_to_play_summary"/>
+
+ <!-- Show album art on lockscreen -->
+ <CheckBoxPreference
+ android:defaultValue="true"
+ android:key="lockscreen_album_art"
+ android:title="@string/settings_lockscreen_album_art"
+ android:summary="@string/settings_lockscreen_album_art_summary"/>
</PreferenceCategory>
<!-- Storage catetory -->
<PreferenceCategory android:title="@string/settings_storage_category" >
diff --git a/src/com/cyanogenmod/eleven/IElevenService.aidl b/src/com/cyanogenmod/eleven/IElevenService.aidl
index 21ac3ae..fb4d6ce 100644
--- a/src/com/cyanogenmod/eleven/IElevenService.aidl
+++ b/src/com/cyanogenmod/eleven/IElevenService.aidl
@@ -49,5 +49,6 @@ interface IElevenService
int getMediaMountedCount();
int getAudioSessionId();
void setShakeToPlayEnabled(boolean enabled);
+ void setLockscreenAlbumArt(boolean enabled);
}
diff --git a/src/com/cyanogenmod/eleven/MusicPlaybackService.java b/src/com/cyanogenmod/eleven/MusicPlaybackService.java
index 6703dbf..ec37ca2 100644
--- a/src/com/cyanogenmod/eleven/MusicPlaybackService.java
+++ b/src/com/cyanogenmod/eleven/MusicPlaybackService.java
@@ -524,6 +524,11 @@ public class MusicPlaybackService extends Service {
*/
private ShakeDetector mShakeDetector;
+ /**
+ * Switch for displaying album art on lockscreen
+ */
+ private boolean mShowAlbumArtOnLockscreen;
+
private ShakeDetector.Listener mShakeDetectorListener=new ShakeDetector.Listener() {
@Override
@@ -1526,7 +1531,8 @@ public class MusicPlaybackService extends Service {
.putLong(MediaMetadata.METADATA_KEY_TRACK_NUMBER, getQueuePosition() + 1)
.putLong(MediaMetadata.METADATA_KEY_NUM_TRACKS, getQueue().length)
.putString(MediaMetadata.METADATA_KEY_GENRE, getGenreName())
- .putBitmap(MediaMetadata.METADATA_KEY_ALBUM_ART, albumArt)
+ .putBitmap(MediaMetadata.METADATA_KEY_ALBUM_ART,
+ mShowAlbumArtOnLockscreen ? albumArt : null)
.build());
mSession.setPlaybackState(new PlaybackState.Builder()
@@ -2769,6 +2775,14 @@ public class MusicPlaybackService extends Service {
}
/**
+ * Called to set visibility of album art on lockscreen
+ */
+ public void setLockscreenAlbumArt(boolean enabled) {
+ mShowAlbumArtOnLockscreen = enabled;
+ notifyChange(META_CHANGED);
+ }
+
+ /**
* Called to start listening to shakes
*/
private void startShakeDetector() {
@@ -3700,13 +3714,21 @@ public class MusicPlaybackService extends Service {
}
/**
- * {@inheritDoc}
- */
+ * {@inheritDoc}
+ */
@Override
public void setShakeToPlayEnabled(boolean enabled) {
mService.get().setShakeToPlayEnabled(enabled);
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void setLockscreenAlbumArt(boolean enabled) {
+ mService.get().setLockscreenAlbumArt(enabled);
+ }
+
}
}
diff --git a/src/com/cyanogenmod/eleven/ui/activities/SettingsActivity.java b/src/com/cyanogenmod/eleven/ui/activities/SettingsActivity.java
index 14209a3..856e185 100644
--- a/src/com/cyanogenmod/eleven/ui/activities/SettingsActivity.java
+++ b/src/com/cyanogenmod/eleven/ui/activities/SettingsActivity.java
@@ -105,8 +105,10 @@ public class SettingsActivity extends PreferenceActivity implements OnSharedPref
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
String key) {
- if(key.equals(PreferenceUtils.SHAKE_TO_PLAY)){
+ if (key.equals(PreferenceUtils.SHAKE_TO_PLAY)) {
MusicUtils.setShakeToPlayEnabled(sharedPreferences.getBoolean(key, false));
+ } else if (key.equals(PreferenceUtils.SHOW_ALBUM_ART_ON_LOCKSCREEN)) {
+ MusicUtils.setShowAlbumArtOnLockscreen(sharedPreferences.getBoolean(key, true));
}
}
}
diff --git a/src/com/cyanogenmod/eleven/utils/MusicUtils.java b/src/com/cyanogenmod/eleven/utils/MusicUtils.java
index 252f869..53aa949 100644
--- a/src/com/cyanogenmod/eleven/utils/MusicUtils.java
+++ b/src/com/cyanogenmod/eleven/utils/MusicUtils.java
@@ -87,8 +87,6 @@ public final class MusicUtils {
public static final String MUSIC_ONLY_SELECTION = MediaStore.Audio.AudioColumns.IS_MUSIC + "=1"
+ " AND " + MediaStore.Audio.AudioColumns.TITLE + " != ''"; //$NON-NLS-2$
- private static boolean sShakeToPlayEnabled;
-
static {
mConnectionMap = new WeakHashMap<Context, ServiceBinder>();
sEmptyList = new long[0];
@@ -109,10 +107,10 @@ public final class MusicUtils {
if (realActivity == null) {
realActivity = (Activity)context;
}
- sShakeToPlayEnabled = PreferenceUtils.getInstance(context).getShakeToPlay();
final ContextWrapper contextWrapper = new ContextWrapper(realActivity);
contextWrapper.startService(new Intent(contextWrapper, MusicPlaybackService.class));
- final ServiceBinder binder = new ServiceBinder(callback);
+ final ServiceBinder binder = new ServiceBinder(callback,
+ contextWrapper.getApplicationContext());
if (contextWrapper.bindService(
new Intent().setClass(contextWrapper, MusicPlaybackService.class), binder, 0)) {
mConnectionMap.put(contextWrapper, binder);
@@ -141,14 +139,16 @@ public final class MusicUtils {
public static final class ServiceBinder implements ServiceConnection {
private final ServiceConnection mCallback;
+ private final Context mContext;
/**
* Constructor of <code>ServiceBinder</code>
*
* @param context The {@link ServiceConnection} to use
*/
- public ServiceBinder(final ServiceConnection callback) {
+ public ServiceBinder(final ServiceConnection callback, final Context context) {
mCallback = callback;
+ mContext = context;
}
@Override
@@ -157,7 +157,7 @@ public final class MusicUtils {
if (mCallback != null) {
mCallback.onServiceConnected(className, service);
}
- MusicUtils.setShakeToPlayEnabled(sShakeToPlayEnabled);
+ MusicUtils.initPlaybackServiceWithSettings(mContext);
}
@Override
@@ -275,9 +275,19 @@ public final class MusicUtils {
}
/**
+ * Initialize playback service with values from Settings
+ */
+ public static void initPlaybackServiceWithSettings(final Context context) {
+ MusicUtils.setShakeToPlayEnabled(
+ PreferenceUtils.getInstance(context).getShakeToPlay());
+ MusicUtils.setShowAlbumArtOnLockscreen(
+ PreferenceUtils.getInstance(context).getShowAlbumArtOnLockscreen());
+ }
+
+ /**
* Set shake to play status
*/
- public static void setShakeToPlayEnabled(boolean enabled) {
+ public static void setShakeToPlayEnabled(final boolean enabled) {
try {
if (mService != null) {
mService.setShakeToPlayEnabled(enabled);
@@ -287,6 +297,18 @@ public final class MusicUtils {
}
/**
+ * Set show album art on lockscreen
+ */
+ public static void setShowAlbumArtOnLockscreen(final boolean enabled) {
+ try {
+ if (mService != null) {
+ mService.setLockscreenAlbumArt(enabled);
+ }
+ } catch (final RemoteException ignored) {
+ }
+ }
+
+ /**
* Changes to the next track asynchronously
*/
public static void asyncNext(final Context context) {
diff --git a/src/com/cyanogenmod/eleven/utils/PreferenceUtils.java b/src/com/cyanogenmod/eleven/utils/PreferenceUtils.java
index e03cf2d..3932d12 100644
--- a/src/com/cyanogenmod/eleven/utils/PreferenceUtils.java
+++ b/src/com/cyanogenmod/eleven/utils/PreferenceUtils.java
@@ -81,6 +81,9 @@ public final class PreferenceUtils {
// shake to play flag
public static final String SHAKE_TO_PLAY = "shake_to_play";
+ // show/hide album art on lockscreen
+ public static final String SHOW_ALBUM_ART_ON_LOCKSCREEN = "lockscreen_album_art";
+
private static PreferenceUtils sInstance;
private final SharedPreferences mPreferences;
@@ -338,4 +341,8 @@ public final class PreferenceUtils {
public boolean getShakeToPlay() {
return mPreferences.getBoolean(SHAKE_TO_PLAY, false);
}
+
+ public boolean getShowAlbumArtOnLockscreen() {
+ return mPreferences.getBoolean(SHOW_ALBUM_ART_ON_LOCKSCREEN, true);
+ }
} \ No newline at end of file