<!-- Music visualizer -->
<SwitchPreference
- android:defaultValue="true"
+ android:defaultValue="false"
android:key="music_visualization"
android:title="@string/settings_show_music_visualization_title" />
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
- getAudioPlayerFragment().setVisualizerVisible(hasFocus
- && getCurrentPanel() == Panel.MusicPlayer);
+ if (getCurrentPanel() == Panel.MusicPlayer) {
+ getAudioPlayerFragment().setVisualizerVisible(hasFocus);
+ }
}
private void updateStatusBarColor() {
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
String key) {
- if (key.equals(PreferenceUtils.SHAKE_TO_PLAY)) {
+ if (key.equals(PreferenceUtils.SHOW_VISUALIZER) &&
+ sharedPreferences.getBoolean(key, false) && !PreferenceUtils.canRecordAudio(this)) {
+ PreferenceUtils.requestRecordAudio(this);
+ } 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));
public void setVisualizerVisible(boolean visible) {
if (visible && PreferenceUtils.getInstance(getActivity()).getShowVisualizer()) {
- mVisualizerView.setVisible(true);
+ if (PreferenceUtils.canRecordAudio(getActivity())) {
+ mVisualizerView.setVisible(true);
+ } else {
+ PreferenceUtils.requestRecordAudio(getActivity());
+ }
} else {
mVisualizerView.setVisible(false);
}
package com.cyanogenmod.eleven.utils;
+import android.Manifest.permission;
+import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
+import android.content.pm.PackageManager;
import android.os.AsyncTask;
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.preference.PreferenceManager;
// show/hide album art on lockscreen
public static final String SHOW_ALBUM_ART_ON_LOCKSCREEN = "lockscreen_album_art";
+ private static final int PERMISSION_REQUEST_RECORD_AUDIO = 1;
+
private static PreferenceUtils sInstance;
private final SharedPreferences mPreferences;
return mPreferences.getBoolean(SHOW_LYRICS, true);
}
+ public static boolean canRecordAudio(Activity activity) {
+ return activity.checkSelfPermission(permission.RECORD_AUDIO) ==
+ PackageManager.PERMISSION_GRANTED;
+ }
+
+ public static void requestRecordAudio(Activity activity) {
+ activity.requestPermissions(
+ new String[] {permission.RECORD_AUDIO},
+ PERMISSION_REQUEST_RECORD_AUDIO);
+ }
+
public boolean getShowVisualizer() {
- return mPreferences.getBoolean(SHOW_VISUALIZER, true);
+ return mPreferences.getBoolean(SHOW_VISUALIZER, false);
}
public boolean getShakeToPlay() {