0.9.8b equalizer
|
|
@ -23,8 +23,8 @@ android {
|
||||||
applicationId "com.kabouzeid.gramophone"
|
applicationId "com.kabouzeid.gramophone"
|
||||||
minSdkVersion 16
|
minSdkVersion 16
|
||||||
targetSdkVersion 22
|
targetSdkVersion 22
|
||||||
versionCode 17
|
versionCode 18
|
||||||
versionName "0.9.7.1b"
|
versionName "0.9.8b"
|
||||||
}
|
}
|
||||||
|
|
||||||
compileOptions {
|
compileOptions {
|
||||||
|
|
@ -46,7 +46,7 @@ dependencies {
|
||||||
compile('com.crashlytics.sdk.android:crashlytics:2.2.1@aar') {
|
compile('com.crashlytics.sdk.android:crashlytics:2.2.1@aar') {
|
||||||
transitive = true;
|
transitive = true;
|
||||||
}
|
}
|
||||||
compile 'com.afollestad:material-dialogs:0.7.0.1'
|
compile 'com.afollestad:material-dialogs:0.7.1.3'
|
||||||
compile 'com.android.support:appcompat-v7:22.0.0'
|
compile 'com.android.support:appcompat-v7:22.0.0'
|
||||||
compile 'com.android.support:recyclerview-v7:22.0.0'
|
compile 'com.android.support:recyclerview-v7:22.0.0'
|
||||||
compile 'com.android.support:gridlayout-v7:22.0.0'
|
compile 'com.android.support:gridlayout-v7:22.0.0'
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ import android.content.ComponentName;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.ServiceConnection;
|
import android.content.ServiceConnection;
|
||||||
|
import android.media.audiofx.AudioEffect;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
import android.preference.PreferenceManager;
|
import android.preference.PreferenceManager;
|
||||||
|
|
@ -283,6 +284,13 @@ public class MusicPlayerRemote {
|
||||||
App.bus.post(musicRemoteEvent);
|
App.bus.post(musicRemoteEvent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static int getAudioSessionId() {
|
||||||
|
if (musicService != null) {
|
||||||
|
return musicService.getAudioSessionId();
|
||||||
|
}
|
||||||
|
return AudioEffect.ERROR_BAD_VALUE;
|
||||||
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public static void restorePreviousState() {
|
public static void restorePreviousState() {
|
||||||
try {
|
try {
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@ import android.media.AudioManager;
|
||||||
import android.media.MediaMetadataRetriever;
|
import android.media.MediaMetadataRetriever;
|
||||||
import android.media.MediaPlayer;
|
import android.media.MediaPlayer;
|
||||||
import android.media.RemoteControlClient;
|
import android.media.RemoteControlClient;
|
||||||
|
import android.media.audiofx.AudioEffect;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Binder;
|
import android.os.Binder;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
|
|
@ -171,6 +172,7 @@ public class MusicService extends Service implements MediaPlayer.OnPreparedListe
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDestroy() {
|
public void onDestroy() {
|
||||||
|
closeAudioEffectSession();
|
||||||
unregisterEverything();
|
unregisterEverything();
|
||||||
killEverythingAndReleaseResources();
|
killEverythingAndReleaseResources();
|
||||||
}
|
}
|
||||||
|
|
@ -315,11 +317,27 @@ public class MusicService extends Service implements MediaPlayer.OnPreparedListe
|
||||||
notifyOnMusicRemoteEventListeners(MusicRemoteEvent.TRACK_CHANGED);
|
notifyOnMusicRemoteEventListeners(MusicRemoteEvent.TRACK_CHANGED);
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean requestFocus() {
|
private void openAudioEffectSession() {
|
||||||
int result = getAudioManager().requestAudioFocus(this, AudioManager.STREAM_MUSIC,
|
if (player != null) {
|
||||||
AudioManager.AUDIOFOCUS_GAIN);
|
final Intent intent = new Intent(AudioEffect.ACTION_OPEN_AUDIO_EFFECT_CONTROL_SESSION);
|
||||||
|
intent.putExtra(AudioEffect.EXTRA_AUDIO_SESSION, getAudioSessionId());
|
||||||
|
intent.putExtra(AudioEffect.EXTRA_PACKAGE_NAME, getPackageName());
|
||||||
|
intent.putExtra(AudioEffect.EXTRA_CONTENT_TYPE, AudioEffect.CONTENT_TYPE_MUSIC);
|
||||||
|
sendBroadcast(intent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED);
|
private void closeAudioEffectSession() {
|
||||||
|
if (player != null) {
|
||||||
|
final Intent audioEffectsIntent = new Intent(AudioEffect.ACTION_CLOSE_AUDIO_EFFECT_CONTROL_SESSION);
|
||||||
|
audioEffectsIntent.putExtra(AudioEffect.EXTRA_AUDIO_SESSION, player.getAudioSessionId());
|
||||||
|
audioEffectsIntent.putExtra(AudioEffect.EXTRA_PACKAGE_NAME, getPackageName());
|
||||||
|
sendBroadcast(audioEffectsIntent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean requestFocus() {
|
||||||
|
return (getAudioManager().requestAudioFocus(this, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN) == AudioManager.AUDIOFOCUS_REQUEST_GRANTED);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateRemoteControlClient() {
|
private void updateRemoteControlClient() {
|
||||||
|
|
@ -449,6 +467,7 @@ public class MusicService extends Service implements MediaPlayer.OnPreparedListe
|
||||||
public void onPrepared(MediaPlayer mp) {
|
public void onPrepared(MediaPlayer mp) {
|
||||||
player.start();
|
player.start();
|
||||||
isPlayerPrepared = true;
|
isPlayerPrepared = true;
|
||||||
|
openAudioEffectSession();
|
||||||
playingNotificationHelper.updatePlayState(isPlaying());
|
playingNotificationHelper.updatePlayState(isPlaying());
|
||||||
MusicPlayerWidget.updateWidgets(this);
|
MusicPlayerWidget.updateWidgets(this);
|
||||||
remoteControlClient.setPlaybackState(RemoteControlClient.PLAYSTATE_PLAYING);
|
remoteControlClient.setPlaybackState(RemoteControlClient.PLAYSTATE_PLAYING);
|
||||||
|
|
@ -752,6 +771,10 @@ public class MusicService extends Service implements MediaPlayer.OnPreparedListe
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getAudioSessionId() {
|
||||||
|
return player.getAudioSessionId();
|
||||||
|
}
|
||||||
|
|
||||||
public class MusicBinder extends Binder {
|
public class MusicBinder extends Binder {
|
||||||
public MusicService getService() {
|
public MusicService getService() {
|
||||||
return MusicService.this;
|
return MusicService.this;
|
||||||
|
|
|
||||||
|
|
@ -259,6 +259,9 @@ public class AlbumDetailActivity extends AbsFabActivity {
|
||||||
public boolean onOptionsItemSelected(MenuItem item) {
|
public boolean onOptionsItemSelected(MenuItem item) {
|
||||||
int id = item.getItemId();
|
int id = item.getItemId();
|
||||||
switch (id) {
|
switch (id) {
|
||||||
|
case R.id.action_equalizer:
|
||||||
|
NavigationUtil.openEqualizer(this);
|
||||||
|
return true;
|
||||||
case R.id.action_shuffle_all:
|
case R.id.action_shuffle_all:
|
||||||
MusicPlayerRemote.shuffleAllSongs(this);
|
MusicPlayerRemote.shuffleAllSongs(this);
|
||||||
return true;
|
return true;
|
||||||
|
|
|
||||||
|
|
@ -320,6 +320,9 @@ public class ArtistDetailActivity extends AbsFabActivity {
|
||||||
public boolean onOptionsItemSelected(MenuItem item) {
|
public boolean onOptionsItemSelected(MenuItem item) {
|
||||||
int id = item.getItemId();
|
int id = item.getItemId();
|
||||||
switch (id) {
|
switch (id) {
|
||||||
|
case R.id.action_equalizer:
|
||||||
|
NavigationUtil.openEqualizer(this);
|
||||||
|
return true;
|
||||||
case R.id.action_shuffle_all:
|
case R.id.action_shuffle_all:
|
||||||
MusicPlayerRemote.shuffleAllSongs(this);
|
MusicPlayerRemote.shuffleAllSongs(this);
|
||||||
return true;
|
return true;
|
||||||
|
|
|
||||||
|
|
@ -260,6 +260,9 @@ public class MainActivity extends AbsFabActivity
|
||||||
|
|
||||||
int id = item.getItemId();
|
int id = item.getItemId();
|
||||||
switch (id) {
|
switch (id) {
|
||||||
|
case R.id.action_equalizer:
|
||||||
|
NavigationUtil.openEqualizer(this);
|
||||||
|
return true;
|
||||||
case R.id.action_shuffle_all:
|
case R.id.action_shuffle_all:
|
||||||
MusicPlayerRemote.shuffleAllSongs(this);
|
MusicPlayerRemote.shuffleAllSongs(this);
|
||||||
return true;
|
return true;
|
||||||
|
|
|
||||||
|
|
@ -417,6 +417,9 @@ public class MusicControllerActivity extends AbsFabActivity {
|
||||||
public boolean onOptionsItemSelected(MenuItem item) {
|
public boolean onOptionsItemSelected(MenuItem item) {
|
||||||
int id = item.getItemId();
|
int id = item.getItemId();
|
||||||
switch (id) {
|
switch (id) {
|
||||||
|
case R.id.action_equalizer:
|
||||||
|
NavigationUtil.openEqualizer(this);
|
||||||
|
return true;
|
||||||
case R.id.action_shuffle_all:
|
case R.id.action_shuffle_all:
|
||||||
MusicPlayerRemote.shuffleAllSongs(this);
|
MusicPlayerRemote.shuffleAllSongs(this);
|
||||||
return true;
|
return true;
|
||||||
|
|
|
||||||
|
|
@ -89,6 +89,9 @@ public class PlaylistDetailActivity extends AbsFabActivity {
|
||||||
public boolean onOptionsItemSelected(MenuItem item) {
|
public boolean onOptionsItemSelected(MenuItem item) {
|
||||||
int id = item.getItemId();
|
int id = item.getItemId();
|
||||||
switch (id) {
|
switch (id) {
|
||||||
|
case R.id.action_equalizer:
|
||||||
|
NavigationUtil.openEqualizer(this);
|
||||||
|
return true;
|
||||||
case android.R.id.home:
|
case android.R.id.home:
|
||||||
super.onBackPressed();
|
super.onBackPressed();
|
||||||
return true;
|
return true;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,9 @@
|
||||||
package com.kabouzeid.gramophone.ui.activities;
|
package com.kabouzeid.gramophone.ui.activities;
|
||||||
|
|
||||||
|
import android.content.Intent;
|
||||||
|
import android.content.pm.PackageManager;
|
||||||
|
import android.content.pm.ResolveInfo;
|
||||||
|
import android.media.audiofx.AudioEffect;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.preference.ListPreference;
|
import android.preference.ListPreference;
|
||||||
import android.preference.Preference;
|
import android.preference.Preference;
|
||||||
|
|
@ -12,6 +16,7 @@ import com.kabouzeid.gramophone.App;
|
||||||
import com.kabouzeid.gramophone.R;
|
import com.kabouzeid.gramophone.R;
|
||||||
import com.kabouzeid.gramophone.model.UIPreferenceChangedEvent;
|
import com.kabouzeid.gramophone.model.UIPreferenceChangedEvent;
|
||||||
import com.kabouzeid.gramophone.ui.activities.base.AbsBaseActivity;
|
import com.kabouzeid.gramophone.ui.activities.base.AbsBaseActivity;
|
||||||
|
import com.kabouzeid.gramophone.util.NavigationUtil;
|
||||||
|
|
||||||
public class SettingsActivity extends AbsBaseActivity {
|
public class SettingsActivity extends AbsBaseActivity {
|
||||||
public static final String TAG = SettingsActivity.class.getSimpleName();
|
public static final String TAG = SettingsActivity.class.getSimpleName();
|
||||||
|
|
@ -27,11 +32,14 @@ public class SettingsActivity extends AbsBaseActivity {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class SettingsFragment extends PreferenceFragment {
|
public static class SettingsFragment extends PreferenceFragment {
|
||||||
|
private Preference equalizer;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
addPreferencesFromResource(R.xml.pref_general);
|
addPreferencesFromResource(R.xml.pref_general);
|
||||||
addPreferencesFromResource(R.xml.pref_ui);
|
addPreferencesFromResource(R.xml.pref_ui);
|
||||||
|
addPreferencesFromResource(R.xml.pref_audio);
|
||||||
|
|
||||||
final Preference defaultStartPage = findPreference("default_start_page");
|
final Preference defaultStartPage = findPreference("default_start_page");
|
||||||
setSummary(defaultStartPage);
|
setSummary(defaultStartPage);
|
||||||
|
|
@ -93,6 +101,16 @@ public class SettingsActivity extends AbsBaseActivity {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
equalizer = findPreference("equalizer");
|
||||||
|
resolveEqualizer();
|
||||||
|
equalizer.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onPreferenceClick(Preference preference) {
|
||||||
|
NavigationUtil.openEqualizer(getActivity());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void setSummary(Preference preference) {
|
private static void setSummary(Preference preference) {
|
||||||
|
|
@ -115,6 +133,16 @@ public class SettingsActivity extends AbsBaseActivity {
|
||||||
preference.setSummary(stringValue);
|
preference.setSummary(stringValue);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void resolveEqualizer() {
|
||||||
|
final Intent effects = new Intent(AudioEffect.ACTION_DISPLAY_AUDIO_EFFECT_CONTROL_PANEL);
|
||||||
|
PackageManager pm = getActivity().getPackageManager();
|
||||||
|
ResolveInfo ri = pm.resolveActivity(effects, 0);
|
||||||
|
if (ri == null) {
|
||||||
|
equalizer.setEnabled(false);
|
||||||
|
equalizer.setSummary(getResources().getString(R.string.no_equalizer));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,9 @@
|
||||||
package com.kabouzeid.gramophone.util;
|
package com.kabouzeid.gramophone.util;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
|
import android.content.ActivityNotFoundException;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.media.audiofx.AudioEffect;
|
||||||
import android.support.v4.app.ActivityCompat;
|
import android.support.v4.app.ActivityCompat;
|
||||||
import android.support.v4.app.ActivityOptionsCompat;
|
import android.support.v4.app.ActivityOptionsCompat;
|
||||||
import android.support.v4.util.Pair;
|
import android.support.v4.util.Pair;
|
||||||
|
|
@ -111,4 +113,20 @@ public class NavigationUtil {
|
||||||
Toast.makeText(activity, activity.getResources().getString(R.string.nothing_playing), Toast.LENGTH_SHORT).show();
|
Toast.makeText(activity, activity.getResources().getString(R.string.nothing_playing), Toast.LENGTH_SHORT).show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void openEqualizer(final Activity activity) {
|
||||||
|
final int sessionId = MusicPlayerRemote.getAudioSessionId();
|
||||||
|
if (sessionId == AudioEffect.ERROR_BAD_VALUE) {
|
||||||
|
Toast.makeText(activity, activity.getResources().getString(R.string.no_audio_id), Toast.LENGTH_LONG).show();
|
||||||
|
} else {
|
||||||
|
try {
|
||||||
|
final Intent effects = new Intent(AudioEffect.ACTION_DISPLAY_AUDIO_EFFECT_CONTROL_PANEL);
|
||||||
|
effects.putExtra(AudioEffect.EXTRA_AUDIO_SESSION, sessionId);
|
||||||
|
effects.putExtra(AudioEffect.EXTRA_CONTENT_TYPE, AudioEffect.CONTENT_TYPE_MUSIC);
|
||||||
|
activity.startActivityForResult(effects, 0);
|
||||||
|
} catch (final ActivityNotFoundException notFound) {
|
||||||
|
Toast.makeText(activity, activity.getResources().getString(R.string.no_equalizer), Toast.LENGTH_SHORT).show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,7 @@ public final class PreferenceUtils {
|
||||||
case 1:
|
case 1:
|
||||||
return R.style.Theme_MaterialMusic;
|
return R.style.Theme_MaterialMusic;
|
||||||
}
|
}
|
||||||
return R.style.Theme_MaterialMusic;
|
return R.style.Theme_MaterialMusic_Light;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setGeneralTheme(int appTheme) {
|
public void setGeneralTheme(int appTheme) {
|
||||||
|
|
@ -144,7 +144,7 @@ public final class PreferenceUtils {
|
||||||
}
|
}
|
||||||
|
|
||||||
public final boolean playbackControllerBoxEnabled() {
|
public final boolean playbackControllerBoxEnabled() {
|
||||||
return mPreferences.getBoolean(PLAYBACK_CONTROLLER_BOX, true);
|
return mPreferences.getBoolean(PLAYBACK_CONTROLLER_BOX, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPlaybackControllerBoxEnabled(final boolean value) {
|
public void setPlaybackControllerBoxEnabled(final boolean value) {
|
||||||
|
|
@ -154,7 +154,7 @@ public final class PreferenceUtils {
|
||||||
}
|
}
|
||||||
|
|
||||||
public final boolean transparentToolbar() {
|
public final boolean transparentToolbar() {
|
||||||
return mPreferences.getBoolean(TRANSPARENT_TOOLBAR, true);
|
return mPreferences.getBoolean(TRANSPARENT_TOOLBAR, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTransparentToolbar(final boolean value) {
|
public void setTransparentToolbar(final boolean value) {
|
||||||
|
|
|
||||||
|
Before Width: | Height: | Size: 195 B |
|
Before Width: | Height: | Size: 192 B |
|
After Width: | Height: | Size: 609 B |
|
Before Width: | Height: | Size: 167 B |
|
Before Width: | Height: | Size: 173 B |
|
After Width: | Height: | Size: 414 B |
|
Before Width: | Height: | Size: 202 B |
|
Before Width: | Height: | Size: 207 B |
|
After Width: | Height: | Size: 835 B |
|
Before Width: | Height: | Size: 220 B |
|
Before Width: | Height: | Size: 235 B |
|
After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 245 B |
|
Before Width: | Height: | Size: 265 B |
|
After Width: | Height: | Size: 1.7 KiB |
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
<item
|
<item
|
||||||
android:id="@+id/action_current_playing"
|
android:id="@+id/action_current_playing"
|
||||||
android:icon="@drawable/ic_equalizer_white_24dp"
|
android:icon="@drawable/ic_play_circle_outline_white_24dp"
|
||||||
android:title="@string/action_current_playing"
|
android:title="@string/action_current_playing"
|
||||||
app:showAsAction="ifRoom"/>
|
app:showAsAction="ifRoom"/>
|
||||||
|
|
||||||
|
|
@ -29,4 +29,10 @@
|
||||||
android:id="@+id/action_tag_editor"
|
android:id="@+id/action_tag_editor"
|
||||||
android:title="@string/action_tag_editor"
|
android:title="@string/action_tag_editor"
|
||||||
app:showAsAction="never"/>
|
app:showAsAction="never"/>
|
||||||
|
|
||||||
|
<item
|
||||||
|
android:id="@+id/action_equalizer"
|
||||||
|
android:orderInCategory="99"
|
||||||
|
android:title="@string/equalizer"
|
||||||
|
app:showAsAction="never"/>
|
||||||
</menu>
|
</menu>
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||||
<item
|
<item
|
||||||
android:id="@+id/action_current_playing"
|
android:id="@+id/action_current_playing"
|
||||||
android:icon="@drawable/ic_equalizer_white_24dp"
|
android:icon="@drawable/ic_play_circle_outline_white_24dp"
|
||||||
android:title="@string/action_current_playing"
|
android:title="@string/action_current_playing"
|
||||||
app:showAsAction="always"/>
|
app:showAsAction="always"/>
|
||||||
|
|
||||||
|
|
@ -52,6 +52,12 @@
|
||||||
</menu>
|
</menu>
|
||||||
</item>
|
</item>
|
||||||
|
|
||||||
|
<item
|
||||||
|
android:id="@+id/action_equalizer"
|
||||||
|
android:orderInCategory="99"
|
||||||
|
android:title="@string/equalizer"
|
||||||
|
app:showAsAction="never"/>
|
||||||
|
|
||||||
<item
|
<item
|
||||||
android:id="@+id/action_settings"
|
android:id="@+id/action_settings"
|
||||||
android:orderInCategory="100"
|
android:orderInCategory="100"
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
<item
|
<item
|
||||||
android:id="@+id/action_current_playing"
|
android:id="@+id/action_current_playing"
|
||||||
android:icon="@drawable/ic_equalizer_white_24dp"
|
android:icon="@drawable/ic_play_circle_outline_white_24dp"
|
||||||
android:title="@string/action_current_playing"
|
android:title="@string/action_current_playing"
|
||||||
app:showAsAction="ifRoom"/>
|
app:showAsAction="ifRoom"/>
|
||||||
|
|
||||||
|
|
@ -29,4 +29,10 @@
|
||||||
android:id="@+id/action_re_download_artist_image"
|
android:id="@+id/action_re_download_artist_image"
|
||||||
android:title="@string/action_re_download_artist_image"
|
android:title="@string/action_re_download_artist_image"
|
||||||
app:showAsAction="never"/>
|
app:showAsAction="never"/>
|
||||||
|
|
||||||
|
<item
|
||||||
|
android:id="@+id/action_equalizer"
|
||||||
|
android:orderInCategory="99"
|
||||||
|
android:title="@string/equalizer"
|
||||||
|
app:showAsAction="never"/>
|
||||||
</menu>
|
</menu>
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
<item
|
<item
|
||||||
android:id="@+id/action_current_playing"
|
android:id="@+id/action_current_playing"
|
||||||
android:icon="@drawable/ic_equalizer_white_24dp"
|
android:icon="@drawable/ic_play_circle_outline_white_24dp"
|
||||||
android:title="@string/action_current_playing"
|
android:title="@string/action_current_playing"
|
||||||
app:showAsAction="always"/>
|
app:showAsAction="always"/>
|
||||||
|
|
||||||
|
|
@ -26,6 +26,12 @@
|
||||||
android:title="@string/action_playing_queue"
|
android:title="@string/action_playing_queue"
|
||||||
app:showAsAction="never"/>
|
app:showAsAction="never"/>
|
||||||
|
|
||||||
|
<item
|
||||||
|
android:id="@+id/action_equalizer"
|
||||||
|
android:orderInCategory="99"
|
||||||
|
android:title="@string/equalizer"
|
||||||
|
app:showAsAction="never"/>
|
||||||
|
|
||||||
<item
|
<item
|
||||||
android:id="@+id/action_settings"
|
android:id="@+id/action_settings"
|
||||||
android:orderInCategory="100"
|
android:orderInCategory="100"
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,12 @@
|
||||||
android:id="@+id/action_tag_editor"
|
android:id="@+id/action_tag_editor"
|
||||||
android:title="@string/action_tag_editor"
|
android:title="@string/action_tag_editor"
|
||||||
app:showAsAction="never"/>
|
app:showAsAction="never"/>
|
||||||
|
|
||||||
|
<item
|
||||||
|
android:id="@+id/action_equalizer"
|
||||||
|
android:orderInCategory="99"
|
||||||
|
android:title="@string/equalizer"
|
||||||
|
app:showAsAction="never"/>
|
||||||
<item
|
<item
|
||||||
android:id="@+id/action_details"
|
android:id="@+id/action_details"
|
||||||
android:title="@string/action_details"
|
android:title="@string/action_details"
|
||||||
|
|
|
||||||
|
|
@ -4,13 +4,20 @@
|
||||||
tools:context="com.kabouzeid.gramophone.ui.activities.PlaylistDetailActivity">
|
tools:context="com.kabouzeid.gramophone.ui.activities.PlaylistDetailActivity">
|
||||||
<item
|
<item
|
||||||
android:id="@+id/action_current_playing"
|
android:id="@+id/action_current_playing"
|
||||||
android:icon="@drawable/ic_equalizer_white_24dp"
|
android:icon="@drawable/ic_play_circle_outline_white_24dp"
|
||||||
android:title="@string/action_current_playing"
|
android:title="@string/action_current_playing"
|
||||||
app:showAsAction="ifRoom"/>
|
app:showAsAction="ifRoom"/>
|
||||||
<item
|
<item
|
||||||
android:id="@+id/action_playing_queue"
|
android:id="@+id/action_playing_queue"
|
||||||
android:title="@string/action_playing_queue"
|
android:title="@string/action_playing_queue"
|
||||||
app:showAsAction="never"/>
|
app:showAsAction="never"/>
|
||||||
|
|
||||||
|
<item
|
||||||
|
android:id="@+id/action_equalizer"
|
||||||
|
android:orderInCategory="99"
|
||||||
|
android:title="@string/equalizer"
|
||||||
|
app:showAsAction="never"/>
|
||||||
|
|
||||||
<item
|
<item
|
||||||
android:id="@+id/action_settings"
|
android:id="@+id/action_settings"
|
||||||
android:orderInCategory="100"
|
android:orderInCategory="100"
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||||
<item
|
<item
|
||||||
android:id="@+id/action_current_playing"
|
android:id="@+id/action_current_playing"
|
||||||
android:icon="@drawable/ic_equalizer_white_24dp"
|
android:icon="@drawable/ic_play_circle_outline_white_24dp"
|
||||||
android:title="@string/action_current_playing"
|
android:title="@string/action_current_playing"
|
||||||
app:showAsAction="always"/>
|
app:showAsAction="always"/>
|
||||||
|
|
||||||
|
|
@ -28,6 +28,12 @@
|
||||||
android:title="@string/action_playing_queue"
|
android:title="@string/action_playing_queue"
|
||||||
app:showAsAction="never"/>
|
app:showAsAction="never"/>
|
||||||
|
|
||||||
|
<item
|
||||||
|
android:id="@+id/action_equalizer"
|
||||||
|
android:orderInCategory="99"
|
||||||
|
android:title="@string/equalizer"
|
||||||
|
app:showAsAction="never"/>
|
||||||
|
|
||||||
<item
|
<item
|
||||||
android:id="@+id/action_settings"
|
android:id="@+id/action_settings"
|
||||||
android:orderInCategory="100"
|
android:orderInCategory="100"
|
||||||
|
|
|
||||||
|
|
@ -95,5 +95,19 @@
|
||||||
<string name="title_setting_start_page">Start page</string>
|
<string name="title_setting_start_page">Start page</string>
|
||||||
<string name="light_theme_name">Light</string>
|
<string name="light_theme_name">Light</string>
|
||||||
<string name="dark_theme_name">Dark</string>
|
<string name="dark_theme_name">Dark</string>
|
||||||
|
<string name="equalizer">Equalizer</string>
|
||||||
|
<string name="pref_header_ui">UI</string>
|
||||||
|
<string name="pref_title_general_theme">General theme</string>
|
||||||
|
<string name="pref_header_audio">Audio</string>
|
||||||
|
<string name="pref_header_general">General</string>
|
||||||
|
<string name="pref_title_set_default_start_page">Set default start page</string>
|
||||||
|
<string name="title_activity_settings">Settings</string>
|
||||||
|
<string name="pref_title_transparent_toolbar">Semi-Transparent toolbar</string>
|
||||||
|
<string name="pref_title_show_playback_controller_card">Playback controller card</string>
|
||||||
|
<string name="pref_title_colored_navigation_bar_artists">Colored navigation bar artist view</string>
|
||||||
|
<string name="pref_title_colored_navigation_bar_albums">Colored navigation bar album view</string>
|
||||||
|
<string name="pref_title_colored_album_footers">Colored album footers</string>
|
||||||
|
<string name="no_equalizer">No equalizer found</string>
|
||||||
|
<string name="no_audio_id">No audio id, play something and try again.</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,4 @@
|
||||||
<resources>
|
<resources>
|
||||||
<string name="title_activity_settings">Settings</string>
|
|
||||||
|
|
||||||
<!-- Strings related to Settings -->
|
|
||||||
|
|
||||||
<!-- General settings -->
|
|
||||||
<string name="pref_header_general">General</string>
|
|
||||||
<string name="pref_title_set_default_start_page">Set default start page</string>
|
|
||||||
<string-array name="pref_start_page_list_titles">
|
<string-array name="pref_start_page_list_titles">
|
||||||
<item>@string/last_opened</item>
|
<item>@string/last_opened</item>
|
||||||
<item>@string/songs</item>
|
<item>@string/songs</item>
|
||||||
|
|
@ -13,6 +6,7 @@
|
||||||
<item>@string/artists</item>
|
<item>@string/artists</item>
|
||||||
<item>@string/playlists</item>
|
<item>@string/playlists</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
|
||||||
<string-array name="pref_start_page_list_values">
|
<string-array name="pref_start_page_list_values">
|
||||||
<item>-1</item>
|
<item>-1</item>
|
||||||
<item>0</item>
|
<item>0</item>
|
||||||
|
|
@ -21,21 +15,14 @@
|
||||||
<item>3</item>
|
<item>3</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
|
||||||
<!-- UI settings -->
|
|
||||||
<string name="pref_header_ui">UI</string>
|
|
||||||
<string name="pref_title_general_theme">General theme</string>
|
|
||||||
<string-array name="pref_general_theme_list_titles">
|
<string-array name="pref_general_theme_list_titles">
|
||||||
<item>@string/light_theme_name</item>
|
<item>@string/light_theme_name</item>
|
||||||
<item>@string/dark_theme_name</item>
|
<item>@string/dark_theme_name</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
|
||||||
<string-array name="pref_general_theme_list_values">
|
<string-array name="pref_general_theme_list_values">
|
||||||
<item>0</item>
|
<item>0</item>
|
||||||
<item>1</item>
|
<item>1</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
<string name="pref_title_transparent_toolbar">Semi-Transparent toolbar</string>
|
|
||||||
<string name="pref_title_show_playback_controller_card">Playback controller card</string>
|
|
||||||
<string name="pref_title_colored_navigation_bar_artists">Colored navigation bar artist view</string>
|
|
||||||
<string name="pref_title_colored_navigation_bar_albums">Colored navigation bar album view</string>
|
|
||||||
<string name="pref_title_colored_album_footers">Colored album footers</string>
|
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
13
app/src/main/res/xml/pref_audio.xml
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
|
||||||
|
<PreferenceCategory
|
||||||
|
android:title="@string/pref_header_audio">
|
||||||
|
|
||||||
|
<Preference
|
||||||
|
android:key="equalizer"
|
||||||
|
android:title="@string/equalizer"/>
|
||||||
|
|
||||||
|
</PreferenceCategory>
|
||||||
|
|
||||||
|
</PreferenceScreen>
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
<PreferenceCategory
|
<PreferenceCategory
|
||||||
android:title="@string/pref_header_ui">
|
android:title="@string/pref_header_ui">
|
||||||
<com.afollestad.materialdialogs.prefs.MaterialListPreference
|
<com.afollestad.materialdialogs.prefs.MaterialListPreference
|
||||||
android:defaultValue="1"
|
android:defaultValue="0"
|
||||||
android:entries="@array/pref_general_theme_list_titles"
|
android:entries="@array/pref_general_theme_list_titles"
|
||||||
android:entryValues="@array/pref_general_theme_list_values"
|
android:entryValues="@array/pref_general_theme_list_values"
|
||||||
android:key="general_theme"
|
android:key="general_theme"
|
||||||
|
|
@ -11,12 +11,12 @@
|
||||||
android:title="@string/pref_title_general_theme"/>
|
android:title="@string/pref_title_general_theme"/>
|
||||||
|
|
||||||
<CheckBoxPreference
|
<CheckBoxPreference
|
||||||
android:defaultValue="true"
|
android:defaultValue="false"
|
||||||
android:key="transparent_toolbar"
|
android:key="transparent_toolbar"
|
||||||
android:title="@string/pref_title_transparent_toolbar"/>
|
android:title="@string/pref_title_transparent_toolbar"/>
|
||||||
|
|
||||||
<CheckBoxPreference
|
<CheckBoxPreference
|
||||||
android:defaultValue="true"
|
android:defaultValue="false"
|
||||||
android:key="playback_controller_card"
|
android:key="playback_controller_card"
|
||||||
android:title="@string/pref_title_show_playback_controller_card"/>
|
android:title="@string/pref_title_show_playback_controller_card"/>
|
||||||
|
|
||||||
|
|
|
||||||