package com.lemenzo.clock.alarm;
import android.app.*;import android.content.*;import android.os.Bundle;import android.view.*;import android.widget.*;import com.lemenzo.clock.R;import com.lemenzo.clock.model.Alarm;import com.lemenzo.clock.util.Ui;import com.lemenzo.clock.settings.ClockSettings;
public final class AlarmRingingActivity extends Activity{private long id;@Override protected void onCreate(Bundle b){super.onCreate(b);setShowWhenLocked(true);setTurnScreenOn(true);getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);id=getIntent().getLongExtra(AlarmIntentActions.EXTRA_ID,-1);Alarm a=new AlarmRepository(this).get(id);LinearLayout root=new LinearLayout(this);root.setOrientation(LinearLayout.VERTICAL);root.setGravity(Gravity.CENTER);root.setPadding(Ui.dp(this,28),Ui.dp(this,36),Ui.dp(this,28),Ui.dp(this,36));root.setBackgroundColor(Ui.BLACK);TextView badge=Ui.badge(this,getString(R.string.ringing_badge));root.addView(badge,new LinearLayout.LayoutParams(-2,Ui.dp(this,30)));root.addView(Ui.space(this,16));TextView time=Ui.title(this,String.format(java.util.Locale.getDefault(),"%02d:%02d",a==null?0:a.hour,a==null?0:a.minute),64);time.setGravity(Gravity.CENTER);root.addView(time,new LinearLayout.LayoutParams(-1,0,1));TextView label=Ui.text(this,a==null?getString(R.string.alarm):(a.label.isEmpty()?getString(R.string.alarm):a.label),20,Ui.SILVER);label.setGravity(Gravity.CENTER);root.addView(label);TextView hint=Ui.text(this,getString(R.string.alarm_ringing_subtitle),14,Ui.SILVER);hint.setGravity(Gravity.CENTER);hint.setPadding(0,Ui.dp(this,8),0,Ui.dp(this,20));root.addView(hint);Button snooze=Ui.primary(this,getString(R.string.snooze));snooze.setOnClickListener(v->act(AlarmIntentActions.SNOOZE));root.addView(snooze,new LinearLayout.LayoutParams(-1,-2));root.addView(Ui.space(this,10));Button dismiss=Ui.button(this,getString(R.string.dismiss));dismiss.setOnClickListener(v->act(AlarmIntentActions.DISMISS));root.addView(dismiss,new LinearLayout.LayoutParams(-1,-2));setContentView(root);Ui.applySystemSafeInsets(this,root);}@Override public boolean onKeyDown(int keyCode,android.view.KeyEvent event){if(keyCode==android.view.KeyEvent.KEYCODE_VOLUME_UP||keyCode==android.view.KeyEvent.KEYCODE_VOLUME_DOWN){String mode=new ClockSettings(this).volumeButtons();if(ClockSettings.VOLUME_SNOOZE.equals(mode)){act(AlarmIntentActions.SNOOZE);return true;}if(ClockSettings.VOLUME_DISMISS.equals(mode)){act(AlarmIntentActions.DISMISS);return true;}}return super.onKeyDown(keyCode,event);}private void act(String action){sendBroadcast(new Intent(this,AlarmReceiver.class).setAction(action).putExtra(AlarmIntentActions.EXTRA_ID,id));finishAndRemoveTask();}}
