Saya memiliki tombol ("periksa") yang memulai hitungan mundur, ketika mencapai nol, telepon bergetar. Menekan "centang" lagi akan mematikan getaran dan proses dimulai dari awal. Menekan "alert" kapan saja akan mengirimkan SMS ke nomor yang telah ditentukan sebelumnya. Itu adalah kode saya sejauh ini, dan sejauh ini, itu berfungsi dengan baik. Namun saya ingin menghubungkan fungsi-fungsi ini sehingga, setelah getaran dimulai, pengguna memiliki waktu sepuluh detik untuk mengetuk "periksa" dan memulai ulang pengatur waktu, atau fungsi "peringatan" akan dimulai, mengirimkan SMS. Bagaimana saya melakukan hal ini? Apakah saya perlu membuat penghitung waktu mundur lagi?
Kode tombol "periksa" sejauh ini:
check.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
vibe.cancel();
if (countDownTimer != null)
countDownTimer.cancel();
countDownTimer = new CountDownTimer(timerTime * 1000, 1000) {
@Override
public void onTick(long milliseconds) {
long minutes = milliseconds / 60000;
long seconds = (milliseconds / 1000) % 60;
minsLeft.setText(getString(R.string.minutes) + (int) (minutes) + " seconds:" + (int) (seconds));
}
@Override
public void onFinish() {
minsLeft.setText("Are You OK?");
long[] pattern = {100, 1000, 100, 2};
vibe.vibrate(pattern, 1);
}
}.start();
}
});
}
Kode tombol "peringatan" (ini akan dipanggil jika "centang" tidak ditekan lagi):
public void onAlertClick(View view) {
Toast sent = Toast.makeText(getApplicationContext(), "Alert Sent", Toast.LENGTH_SHORT);
Toast permissions = Toast.makeText(getApplicationContext(), "Please change app permissions in settings", Toast.LENGTH_SHORT);
try {
SmsManager.getDefault().sendTextMessage(getString(R.string.smsNumber), null,
getString(R.string.smsMessage), null, null);
sent.show();
} catch (Exception e) {
permissions.show();
}
}