package me.barrasso.android.volume.activities;
import android.app.Activity;
import android.content.Intent;
import android.media.AudioManager;
import android.os.Bundle;
import android.util.Log;
import com.google.android.gms.analytics.HitBuilders;
import com.google.android.gms.analytics.Tracker;
import me.barrasso.android.volume.LogUtils;
import me.barrasso.android.volume.utils.AudioHelper;
import me.barrasso.android.volume.utils.Utils;
import static me.barrasso.android.volume.LogUtils.LOGD;
/**
* Activity meant to control media playback, opened via a shortcut.
*/
public class MediaControlActivity extends Activity {
public static final String TAG = LogUtils.makeLogTag(MediaControlActivity.class);
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
LOGD(TAG, "onCreate()");
onHandleIntent(getIntent());
}
@Override
public void onNewIntent(Intent intent) {
super.onNewIntent(intent);
LOGD(TAG, "onNewIntent()");
onHandleIntent(intent);
}
public void onHandleIntent(Intent intent) {
if (null == intent) return;
LOGD(TAG, "onHandleIntent(" + intent.toString() + ")");
// TRACK: activity view.
if (NoyzeApp.GOOGLE_ANALYTICS) {
Tracker t = ((NoyzeApp) getApplication()).getTracker(
NoyzeApp.TrackerName.APP_TRACKER);
t.setScreenName(getClass().getSimpleName());
t.send(new HitBuilders.AppViewBuilder().build());
}
Bundle extras = intent.getExtras();
if (null == extras || !extras.containsKey(Intent.EXTRA_KEY_EVENT)) {
Log.e(TAG, "KeyEvent null, cannot dispatch media event.");
finish();
return;
}
final int keyCode = extras.getInt(Intent.EXTRA_KEY_EVENT);
if (!Utils.isMediaKeyCode(keyCode)) {
Log.e(TAG, "KeyEvent was not one of KEYCODE_MEDIA_* events.");
finish();
return;
}
LOGD(TAG, "Dispatching media event: " + keyCode);
AudioManager manager = (AudioManager) getSystemService(AUDIO_SERVICE);
AudioHelper helper = AudioHelper.getHelper(getApplicationContext(), manager);
helper.dispatchMediaKeyEvent(getApplicationContext(), keyCode);
finish();
}
}