import android.app.SearchManager;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
+import android.content.ContentResolver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.ServiceConnection;
+import android.content.res.Configuration;
+import android.content.res.Resources;
import android.graphics.Bitmap;
import android.media.AudioManager;
import android.media.MediaFile;
private boolean mOneShot = false;
private boolean mSeeking = false;
- private boolean mTrackball;
+ private boolean mDeviceHasNoDpad;
private long mStartSeekPos = 0;
private long mLastSeekEventTime;
private IMediaPlaybackService mService = null;
private Worker mAlbumArtWorker;
private AlbumArtHandler mAlbumArtHandler;
private Toast mToast;
- private boolean mRelaunchAfterConfigChange;
private int mTouchSlop;
public MediaPlaybackActivity()
mNextButton.setRepeatListener(mFfwdListener, 260);
seekmethod = 1;
- mTrackball = true; /* (See bug 1044348) (getResources().getConfiguration().navigation ==
- Resources.Configuration.NAVIGATION_TRACKBALL);*/
+ mDeviceHasNoDpad = (getResources().getConfiguration().navigation !=
+ Configuration.NAVIGATION_DPAD);
mQueueButton = (ImageButton) findViewById(R.id.curplaylist);
mQueueButton.setOnClickListener(mQueueListener);
mProgress.setMax(1000);
if (icicle != null) {
- mRelaunchAfterConfigChange = icicle.getBoolean("configchange");
mOneShot = icicle.getBoolean("oneshot");
} else {
mOneShot = getIntent().getBooleanExtra("oneshot", false);
@Override
public void onSaveInstanceState(Bundle outState) {
- outState.putBoolean("configchange", getChangingConfigurations() != 0);
outState.putBoolean("oneshot", mOneShot);
super.onSaveInstanceState(outState);
}
switch(keyCode)
{
case KeyEvent.KEYCODE_DPAD_LEFT:
- if (mTrackball) {
+ if (mDeviceHasNoDpad) {
break;
}
if (mService != null) {
mPosOverride = -1;
return true;
case KeyEvent.KEYCODE_DPAD_RIGHT:
- if (mTrackball) {
+ if (mDeviceHasNoDpad) {
break;
}
if (mService != null) {
return true;
case KeyEvent.KEYCODE_DPAD_LEFT:
- if (mTrackball) {
+ if (mDeviceHasNoDpad) {
break;
}
if (!mPrevButton.hasFocus()) {
scanBackward(repcnt, event.getEventTime() - event.getDownTime());
return true;
case KeyEvent.KEYCODE_DPAD_RIGHT:
- if (mTrackball) {
+ if (mDeviceHasNoDpad) {
break;
}
if (!mNextButton.hasFocus()) {
filename = uri.toString();
}
try {
- mOneShot = true;
- if (! mRelaunchAfterConfigChange) {
- mService.stop();
- mService.openfile(filename);
- mService.play();
+ if (! ContentResolver.SCHEME_CONTENT.equals(scheme) ||
+ ! MediaStore.AUTHORITY.equals(uri.getAuthority())) {
+ mOneShot = true;
}
+ mService.stop();
+ mService.openFile(filename, mOneShot);
+ mService.play();
+ setIntent(new Intent());
} catch (Exception ex) {
Log.d("MediaPlaybackActivity", "couldn't start playback: " + ex);
}
private final IMediaPlaybackService.Stub mBinder = new IMediaPlaybackService.Stub()
{
- public void openfileAsync(String path)
+ public void openFileAsync(String path)
{
MediaPlaybackService.this.openAsync(path);
}
- public void openfile(String path)
+ public void openFile(String path, boolean oneShot)
{
- MediaPlaybackService.this.open(path, true);
+ MediaPlaybackService.this.open(path, oneShot);
}
public void open(int [] list, int position) {
MediaPlaybackService.this.open(list, position);