package nz.ac.otago.infosci.timekeeper; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.NumberPicker; import android.widget.TextView; import android.widget.TimePicker; import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatDelegate; import java.time.LocalTime; public class SettingsActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_settings); final Button btnStart = findViewById(R.id.btnStart); final Button btnReset = findViewById(R.id.btnReset); final TimePicker timePicker = findViewById(R.id.timePicker); final CheckBox cbDimScreen = findViewById(R.id.cbDimScreen); final NumberPicker periodPicker = findViewById(R.id.periodPicker); periodPicker.setMinValue(1); periodPicker.setMaxValue(30); periodPicker.setValue(5); // 12 hour clock timePicker.setIs24HourView(false); btnReset.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // need to reset the clock, but so far the only way I have found to do this is recreate the entire activity... recreate(); } }); btnStart.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { int endHour = timePicker.getHour(); int endMinutes = timePicker.getMinute(); int updatePeriod = periodPicker.getValue(); boolean dimScreen = cbDimScreen.isChecked(); LocalTime end = LocalTime.of(endHour, endMinutes); if (end.isBefore(LocalTime.now())) { Toast.makeText(SettingsActivity.this, "End time must be in the future", Toast.LENGTH_LONG).show(); return; } Intent it = new Intent(SettingsActivity.this, TimerActivity.class); it.putExtra("endHour", endHour); it.putExtra("endMinutes", endMinutes); it.putExtra("updatePeriod", updatePeriod); it.putExtra("dimScreen", dimScreen); SettingsActivity.this.startActivity(it); } }); // force dark theme AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); } }