private static final int KILLED = 3;
private KeyguardManager mKeyguardManager;
- private KeyguardManager.KeyguardLock mKeyguardLock = null;
+ private KeyguardManager.KeyguardLock mKeyguardLock;
private Button mSnoozeButton;
private int mState = UNKNOWN;
private AlarmKlaxon mKlaxon;
private int mAlarmId;
+ private String mLabel;
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
+ // Maintain a lock during the playback of the alarm. This lock may have
+ // already been acquired in AlarmReceiver. If the process was killed,
+ // the global wake lock is gone. Acquire again just to be sure.
+ AlarmAlertWakeLock.acquire(this);
+
/* FIXME Intentionally verbose: always log this until we've
fully debugged the app failing to start up */
Log.v("AlarmAlert.onCreate()");
- mKlaxon = AlarmKlaxon.getInstance();
-
// Popup alert over black screen
WindowManager.LayoutParams lp = getWindow().getAttributes();
lp.width = ViewGroup.LayoutParams.WRAP_CONTENT;
mKeyguardManager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
- mAlarmId = getIntent().getIntExtra(Alarms.ID, -1);
+ Intent i = getIntent();
+ mAlarmId = i.getIntExtra(Alarms.ID, -1);
+
+ mKlaxon = new AlarmKlaxon();
+ mKlaxon.postPlay(this, mAlarmId);
+
+ /* Set the title from the passed in label */
+ setTitleFromIntent(i);
/* allow next alarm to trigger while this activity is
active */
updateLayout();
}
+ private void setTitleFromIntent(Intent i) {
+ mLabel = i.getStringExtra(Alarms.LABEL);
+ if (mLabel == null || mLabel.length() == 0) {
+ mLabel = getString(R.string.default_label);
+ }
+ setTitle(mLabel);
+ }
+
private void updateSilencedText() {
TextView silenced = (TextView) findViewById(R.id.silencedText);
silenced.setText(getString(R.string.alarm_alert_alert_silenced,
Alarms.formatTime(AlarmAlert.this, c));
mState = DISMISS;
} else {
- Alarms.saveSnoozeAlert(AlarmAlert.this, mAlarmId, snoozeTime);
+ Alarms.saveSnoozeAlert(AlarmAlert.this, mAlarmId, snoozeTime,
+ mLabel);
Alarms.setNextAlert(AlarmAlert.this);
displayTime = getString(R.string.alarm_alert_snooze_set,
SNOOZE_MINUTES);
disableKeyguard();
mAlarmId = intent.getIntExtra(Alarms.ID, -1);
+ // Play the new alarm sound.
+ mKlaxon.postPlay(this, mAlarmId);
+
+ setTitleFromIntent(intent);
/* unset silenced message */
TextView silenced = (TextView)findViewById(R.id.silencedText);