diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 83bc053c..b0516933 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -31,9 +31,6 @@
android:theme="@android:style/Theme.Dialog"
android:excludeFromRecents="true"
android:launchMode="singleInstance" />
-
@@ -41,4 +38,4 @@
-
+
\ No newline at end of file
diff --git a/src/org/kreed/vanilla/NowPlayingActivity.java b/src/org/kreed/vanilla/NowPlayingActivity.java
index dc97ed4e..0677a7fb 100644
--- a/src/org/kreed/vanilla/NowPlayingActivity.java
+++ b/src/org/kreed/vanilla/NowPlayingActivity.java
@@ -21,6 +21,7 @@ package org.kreed.vanilla;
import org.kreed.vanilla.IPlaybackService;
import org.kreed.vanilla.R;
+import android.app.Dialog;
import android.content.Intent;
import android.content.ServiceConnection;
import android.graphics.Color;
@@ -58,6 +59,8 @@ public class NowPlayingActivity extends PlaybackServiceActivity implements View.
private int mDuration;
private boolean mSeekBarTracking;
+ private static final int SONG_SELECTOR = 8;
+
private static final int MENU_QUIT = 0;
private static final int MENU_PREFS = 2;
private static final int MENU_LIBRARY = 3;
@@ -229,7 +232,7 @@ public class NowPlayingActivity extends PlaybackServiceActivity implements View.
startActivity(new Intent(this, PreferencesActivity.class));
break;
case MENU_LIBRARY:
- onSearchRequested();
+ showDialog(SONG_SELECTOR);
break;
}
@@ -239,10 +242,18 @@ public class NowPlayingActivity extends PlaybackServiceActivity implements View.
@Override
public boolean onSearchRequested()
{
- startActivity(new Intent(this, SongSelector.class));
+ showDialog(SONG_SELECTOR);
return false;
}
+ @Override
+ public Dialog onCreateDialog(int id)
+ {
+ if (id == SONG_SELECTOR)
+ return new SongSelector(this);
+ return null;
+ }
+
@Override
public boolean onKeyUp(int keyCode, KeyEvent event)
{
diff --git a/src/org/kreed/vanilla/PlaybackServiceActivity.java b/src/org/kreed/vanilla/PlaybackServiceActivity.java
index 1fa044d8..1b72b309 100644
--- a/src/org/kreed/vanilla/PlaybackServiceActivity.java
+++ b/src/org/kreed/vanilla/PlaybackServiceActivity.java
@@ -80,11 +80,11 @@ public abstract class PlaybackServiceActivity extends Activity implements Servic
}
}
- public static boolean handleKeyLongPress(Activity activity, int keyCode)
+ public static boolean handleKeyLongPress(Context context, int keyCode)
{
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
- quit(activity);
+ quit(context);
return true;
}
@@ -97,9 +97,9 @@ public abstract class PlaybackServiceActivity extends Activity implements Servic
return handleKeyLongPress(this, keyCode);
}
- protected static void quit(Activity activity)
+ protected static void quit(Context context)
{
- activity.stopService(new Intent(activity, PlaybackService.class));
+ context.stopService(new Intent(context, PlaybackService.class));
ContextApplication.finishAllActivities();
}
diff --git a/src/org/kreed/vanilla/SongSelector.java b/src/org/kreed/vanilla/SongSelector.java
index e3aa50fb..cb2fe400 100644
--- a/src/org/kreed/vanilla/SongSelector.java
+++ b/src/org/kreed/vanilla/SongSelector.java
@@ -22,13 +22,13 @@ import java.util.Arrays;
import org.kreed.vanilla.R;
-import android.app.TabActivity;
+import android.app.Dialog;
+import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.Resources;
import android.graphics.Color;
import android.graphics.drawable.PaintDrawable;
-import android.os.Bundle;
import android.os.Handler;
import android.preference.PreferenceManager;
import android.text.Editable;
@@ -40,7 +40,6 @@ import android.view.KeyEvent;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
-import android.view.Window;
import android.widget.AdapterView;
import android.widget.Filter;
import android.widget.LinearLayout;
@@ -49,7 +48,7 @@ import android.widget.TabHost;
import android.widget.TextView;
import android.widget.Toast;
-public class SongSelector extends TabActivity implements AdapterView.OnItemClickListener, TextWatcher, View.OnClickListener, TabHost.OnTabChangeListener, Filter.FilterListener {
+public class SongSelector extends Dialog implements AdapterView.OnItemClickListener, TextWatcher, View.OnClickListener, TabHost.OnTabChangeListener, Filter.FilterListener {
private TabHost mTabHost;
private TextView mTextFilter;
private View mClearButton;
@@ -74,24 +73,20 @@ public class SongSelector extends TabActivity implements AdapterView.OnItemClick
ListView view = (ListView)findViewById(id);
view.setOnItemClickListener(this);
view.setOnCreateContextMenuListener(this);
- view.setAdapter(new MediaAdapter(this, songs, lineA, lineB, expanderListener));
+ view.setAdapter(new MediaAdapter(getContext(), songs, lineA, lineB, expanderListener));
}
- @Override
- public void onCreate(Bundle icicle)
+ public SongSelector(Context context)
{
- super.onCreate(icicle);
-
- ContextApplication.addActivity(this);
-
- requestWindowFeature(Window.FEATURE_NO_TITLE);
+ super(context, android.R.style.Theme_Black_NoTitleBar);
setContentView(R.layout.song_selector);
- mTabHost = getTabHost();
+ mTabHost = (TabHost)findViewById(android.R.id.tabhost);
+ mTabHost.setup();
mTabHost.setOnTabChangedListener(this);
- Resources res = getResources();
+ Resources res = context.getResources();
mTabHost.addTab(mTabHost.newTabSpec("tab_artists").setIndicator(res.getText(R.string.artists), res.getDrawable(R.drawable.tab_artists)).setContent(R.id.artist_list));
mTabHost.addTab(mTabHost.newTabSpec("tab_albums").setIndicator(res.getText(R.string.albums), res.getDrawable(R.drawable.tab_albums)).setContent(R.id.album_list));
mTabHost.addTab(mTabHost.newTabSpec("tab_songs").setIndicator(res.getText(R.string.songs), res.getDrawable(R.drawable.tab_songs)).setContent(R.id.song_list));
@@ -104,7 +99,7 @@ public class SongSelector extends TabActivity implements AdapterView.OnItemClick
mLimiterViews = (ViewGroup)findViewById(R.id.limiter_layout);
- SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
+ SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(context);
int inputType;
if (settings.getBoolean("phone_input", false))
inputType = InputType.TYPE_CLASS_PHONE;
@@ -137,13 +132,6 @@ public class SongSelector extends TabActivity implements AdapterView.OnItemClick
});
}
- @Override
- public void onDestroy()
- {
- super.onDestroy();
- ContextApplication.removeActivity(this);
- }
-
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
@@ -158,11 +146,11 @@ public class SongSelector extends TabActivity implements AdapterView.OnItemClick
{
int action = intent.getIntExtra("action", PlaybackService.ACTION_PLAY) == PlaybackService.ACTION_PLAY ? R.string.playing : R.string.enqueued;
String title = intent.getStringExtra("title");
- String text = getResources().getString(action, title);
- Toast.makeText(this, text, Toast.LENGTH_SHORT).show();
+ String text = getContext().getResources().getString(action, title);
+ Toast.makeText(getContext(), text, Toast.LENGTH_SHORT).show();
intent.removeExtra("title");
- startService(intent);
+ getContext().startService(intent);
}
private void expand(MediaAdapter.MediaView view)
@@ -228,7 +216,7 @@ public class SongSelector extends TabActivity implements AdapterView.OnItemClick
PaintDrawable background = new PaintDrawable(Color.GRAY);
background.setCornerRadius(5);
- TextView view = new TextView(this);
+ TextView view = new TextView(getContext());
view.setSingleLine();
view.setEllipsize(TextUtils.TruncateAt.MARQUEE);
view.setText(data.getField(i) + " | X");
@@ -306,6 +294,6 @@ public class SongSelector extends TabActivity implements AdapterView.OnItemClick
@Override
public boolean onKeyLongPress(int keyCode, KeyEvent event)
{
- return PlaybackServiceActivity.handleKeyLongPress(this, keyCode);
+ return PlaybackServiceActivity.handleKeyLongPress(getContext(), keyCode);
}
}
\ No newline at end of file