package com.asp.radiorake; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; import android.media.MediaPlayer; import com.actionbarsherlock.app.SherlockActivity; import com.actionbarsherlock.view.Menu; import com.actionbarsherlock.view.MenuItem; import com.asp.radiorake.recording.RecorderService; import com.aspillai.R; public class RecordioBaseActivity extends SherlockActivity { private static final int ADD_FAVOURITE = 1; private static final int EXIT = 2; private static final int SCHEDULED_RECORDINGS = 3; private static final int RECORDINGS = 4; private static final String TAG = "com.asp.radiorake.RecordioBaseActivity"; @Override public void onResume() { super.onResume(); } @Override public void finish() { super.finish(); } @Override public boolean onCreateOptionsMenu(Menu menu) { menu.add(Menu.NONE, ADD_FAVOURITE, Menu.NONE, "Add Favourite"); menu.add(Menu.NONE, EXIT, Menu.NONE, "Exit RadioRake!"); menu.add(Menu.NONE, SCHEDULED_RECORDINGS, Menu.NONE, "Scheduled Recordings"); menu.add(Menu.NONE, RECORDINGS, Menu.NONE, "Recordings"); return (super.onCreateOptionsMenu(menu)); } @Override public boolean onOptionsItemSelected(MenuItem item) { RadioApplication radioApplication = (RadioApplication) getApplication(); switch (item.getItemId()) { case ADD_FAVOURITE: RadioDetails radioDetails = new RadioDetails(); if (alreadyPlaying()) { radioDetails = radioApplication.getPlayingStation(); } Intent confirmDetailsIntent = new Intent(RecordioBaseActivity.this, ConfirmDetailsActivity.class); confirmDetailsIntent.putExtra(getString(R.string.radio_details_key), radioDetails); startActivity(confirmDetailsIntent); finish(); return true; case SCHEDULED_RECORDINGS: Intent scheduledRecordingsIntent = new Intent(RecordioBaseActivity.this, ListScheduledRecordingsActivity.class); startActivity(scheduledRecordingsIntent); finish(); return true; case RECORDINGS: Intent recordingsIntent = new Intent(RecordioBaseActivity.this, RecordingsActivity.class); startActivity(recordingsIntent); finish(); return true; case EXIT: AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage("Exit RadioRake?") .setPositiveButton("Yes", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialogInterface, int i) { checkIfExitingFromRadioActivity(); } }) .setNegativeButton("No", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialogInterface, int i) { } }); builder.create().show(); return true; default: return super.onOptionsItemSelected(item); } } private void checkIfExitingFromRadioActivity() { // if (getClass().getSimpleName().equals("RadioActivity")) { MediaPlayer mediaPlayer = ((RadioApplication) getApplication()).getMediaPlayer(); if (mediaPlayer != null && mediaPlayer.isPlaying()) { PlayerService.sendWakefulWork(getApplicationContext(), createPlayingIntent(null, RadioApplication.StopPlaying)); } if (RecorderService.alreadyRecording()) { RecorderService.cancelRecording(); } // } else { // ((RadioApplication) getApplication()). // (true); // } finish(); } public boolean alreadyPlaying() { RadioApplication radioApplication = (RadioApplication) getApplication(); MediaPlayer mediaPlayer = radioApplication.getMediaPlayer(); return mediaPlayer != null && mediaPlayer.isPlaying(); } protected Intent createRecordingIntent(RadioDetails radioDetails) { Intent intent = new Intent("com.asp.radiorake.recording.RecorderService"); if (radioDetails != null) { intent.putExtra(getString(R.string.radio_details_key), radioDetails); } return intent; } protected Intent createPlayingIntent(RadioDetails radioDetails, int operation) { Intent intent = new Intent("com.asp.radiorake.PlayerService"); if (radioDetails != null) { intent.putExtra(getString(R.string.radio_details_key), radioDetails); } intent.putExtra(getString(R.string.player_service_operation_key), operation); return intent; } }