Restart activities on layout change rather than kill them

This commit is contained in:
Christopher Eby 2011-10-18 20:53:33 -05:00
parent cd847f4a93
commit aaec10014a
3 changed files with 23 additions and 12 deletions

View File

@ -22,6 +22,7 @@
package org.kreed.vanilla;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.os.Bundle;
@ -74,6 +75,11 @@ public class FullPlaybackActivity extends PlaybackActivity implements SeekBar.On
private boolean mSeekBarTracking;
private boolean mPaused;
/**
* The current display mode, which determines layout and cover render style.
*/
private int mDisplayMode;
/**
* Cached StringBuilder for formatting track position.
*/
@ -87,6 +93,7 @@ public class FullPlaybackActivity extends PlaybackActivity implements SeekBar.On
SharedPreferences settings = PlaybackService.getSettings(this);
int displayMode = Integer.parseInt(settings.getString("display_mode", "0"));
boolean hiddenControls = settings.getBoolean("hidden_controls", false);
mDisplayMode = displayMode;
int layout = R.layout.full_playback;
int coverStyle;
@ -144,6 +151,18 @@ public class FullPlaybackActivity extends PlaybackActivity implements SeekBar.On
setDuration(0);
}
@Override
public void onStart()
{
super.onStart();
SharedPreferences settings = PlaybackService.getSettings(this);
if (mDisplayMode != Integer.parseInt(settings.getString("display_mode", "0"))) {
finish();
startActivity(new Intent(this, FullPlaybackActivity.class));
}
}
@Override
public void onResume()
{

View File

@ -178,6 +178,10 @@ public class LibraryActivity extends PlaybackActivity implements AdapterView.OnI
super.onStart();
SharedPreferences settings = PlaybackService.getSettings(this);
if (settings.getBoolean("controls_in_selector", false) != (mControls != null)) {
finish();
startActivity(new Intent(this, LibraryActivity.class));
}
mDefaultAction = Integer.parseInt(settings.getString("default_action_int", "0"));
mLastActedId = -2;
updateHeaders();

View File

@ -393,18 +393,6 @@ public final class PlaybackService extends Service implements Handler.Callback,
userActionTriggered();
} else if ("disable_cover_art".equals(key)) {
Song.mDisableCoverArt = settings.getBoolean("disable_cover_art", false);
} else if ("display_mode".equals(key)) {
ArrayList<PlaybackActivity> activities = sActivities;
for (PlaybackActivity activity : activities) {
if (activity instanceof FullPlaybackActivity)
activity.finish();
}
} else if ("controls_in_selector".equals(key)) {
ArrayList<PlaybackActivity> activities = sActivities;
for (PlaybackActivity activity : activities) {
if (activity instanceof LibraryActivity)
activity.finish();
}
} else if ("notification_inverted_color".equals(key)) {
updateNotification();
} else if ("headset_only".equals(key)) {