summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMikalacki Sava <mikalackis@gmail.com>2015-03-04 16:18:14 +0100
committerMichael Bestas <mikeioannina@gmail.com>2015-04-17 02:49:31 +0300
commite8e1310e734b467430ad51951ce1538f510a155a (patch)
tree8a44fd19c26bfcf2e45f5beb6e32d5a86ca43109 /src
parent8f4dedadcc0ae75e12c8dd32cb7f73bdc941589a (diff)
downloadandroid_packages_apps_Eleven-e8e1310e734b467430ad51951ce1538f510a155a.tar.gz
android_packages_apps_Eleven-e8e1310e734b467430ad51951ce1538f510a155a.tar.bz2
android_packages_apps_Eleven-e8e1310e734b467430ad51951ce1538f510a155a.zip
Eleven: Show/Hide album art on lockscreen
Added preference option to show/hide album art on lockscreen. Change-Id: Iea2173288fc279f15abe6675a0ffd582e35ad321
Diffstat (limited to 'src')
-rw-r--r--src/com/cyanogenmod/eleven/IElevenService.aidl1
-rw-r--r--src/com/cyanogenmod/eleven/MusicPlaybackService.java24
-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
5 files changed, 63 insertions, 9 deletions
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..e420f6d 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() {
@@ -3707,6 +3721,14 @@ public class MusicPlaybackService extends Service {
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