Alarm: small fixes, added 24-hour format preference

This commit is contained in:
Snek 2017-03-22 12:05:14 +03:00
parent 43eae7b7d4
commit 816fbb850a
8 changed files with 26 additions and 3 deletions

View File

@ -8,7 +8,7 @@ android {
minSdkVersion 9 minSdkVersion 9
targetSdkVersion 20 targetSdkVersion 20
versionCode 1 versionCode 1
versionName "0.9.5-alpha.3" versionName "0.9.5-test.2"
} }
buildTypes { buildTypes {
release { release {

View File

@ -10,6 +10,7 @@ import android.content.Intent;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Vibrator;
import android.preference.PreferenceManager; import android.preference.PreferenceManager;
import android.util.Log; import android.util.Log;
import android.view.View; import android.view.View;
@ -29,6 +30,7 @@ public class AlarmActivity extends Activity {
private TimePicker alarmTimePicker; private TimePicker alarmTimePicker;
private ToggleButton alarmToggle; private ToggleButton alarmToggle;
private SharedPreferences settings; private SharedPreferences settings;
private Vibrator v;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
@ -41,7 +43,7 @@ public class AlarmActivity extends Activity {
Intent alarmIntent = new Intent(this, AlarmReceiver.class); Intent alarmIntent = new Intent(this, AlarmReceiver.class);
pendingIntent = PendingIntent.getBroadcast(this, ALARM_ID, alarmIntent, PendingIntent.FLAG_NO_CREATE); pendingIntent = PendingIntent.getBroadcast(this, ALARM_ID, alarmIntent, PendingIntent.FLAG_NO_CREATE);
alarmTimePicker.setIs24HourView(true); alarmTimePicker.setIs24HourView(settings.getBoolean("24-hour_format", true));
if (settings.getBoolean("alarm_toggle", false)) { if (settings.getBoolean("alarm_toggle", false)) {
alarmToggle.setChecked(true); alarmToggle.setChecked(true);
@ -52,10 +54,11 @@ public class AlarmActivity extends Activity {
public void onToggleClicked(View view) { public void onToggleClicked(View view) {
SharedPreferences.Editor editor = settings.edit(); SharedPreferences.Editor editor = settings.edit();
NotificationManager notificationManager = (NotificationManager) getBaseContext().getSystemService(Context.NOTIFICATION_SERVICE);;
if (alarmToggle.isChecked()) { if (alarmToggle.isChecked()) {
editor.putBoolean("alarm_toggle", true); editor.putBoolean("alarm_toggle", true);
Calendar calendar = Calendar.getInstance(); Calendar calendar = Calendar.getInstance();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
Log.d(TAG, "Current API functions have been executed"); Log.d(TAG, "Current API functions have been executed");
setTime(calendar); setTime(calendar);
@ -63,10 +66,14 @@ public class AlarmActivity extends Activity {
Log.d(TAG, "Legacy API functions have been executed"); Log.d(TAG, "Legacy API functions have been executed");
setTimeLegacy(calendar); setTimeLegacy(calendar);
} }
Log.d(TAG, "Alarm On"); Log.d(TAG, "Alarm On");
} else { } else {
AlarmReceiver.stopRingtone(this); AlarmReceiver.stopRingtone(this);
NotificationManager notificationManager = (NotificationManager) getBaseContext().getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.cancel(AlarmService.ALARM_NOTIFICATION_ID); notificationManager.cancel(AlarmService.ALARM_NOTIFICATION_ID);
editor.putBoolean("alarm_toggle", false); editor.putBoolean("alarm_toggle", false);
alarmManager.cancel(pendingIntent); alarmManager.cancel(pendingIntent);
Log.d(TAG, "Alarm Off"); Log.d(TAG, "Alarm Off");
@ -78,9 +85,11 @@ public class AlarmActivity extends Activity {
private void setTimeLegacy(Calendar calendar) { private void setTimeLegacy(Calendar calendar) {
calendar.set(Calendar.HOUR_OF_DAY, alarmTimePicker.getCurrentHour()); calendar.set(Calendar.HOUR_OF_DAY, alarmTimePicker.getCurrentHour());
calendar.set(Calendar.MINUTE, alarmTimePicker.getCurrentMinute()); calendar.set(Calendar.MINUTE, alarmTimePicker.getCurrentMinute());
if(calendar.before(Calendar.getInstance())) { if(calendar.before(Calendar.getInstance())) {
calendar.add(Calendar.DATE, 1); calendar.add(Calendar.DATE, 1);
} }
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent); alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
Toast.makeText(this, "Alarm has been set for " + alarmTimePicker.getCurrentHour() + " hour(s) " + alarmTimePicker.getCurrentMinute() + " minute(s)", Toast.LENGTH_SHORT).show(); Toast.makeText(this, "Alarm has been set for " + alarmTimePicker.getCurrentHour() + " hour(s) " + alarmTimePicker.getCurrentMinute() + " minute(s)", Toast.LENGTH_SHORT).show();
} }
@ -89,9 +98,11 @@ public class AlarmActivity extends Activity {
private void setTime(Calendar calendar) { private void setTime(Calendar calendar) {
calendar.set(Calendar.HOUR_OF_DAY, alarmTimePicker.getHour()); calendar.set(Calendar.HOUR_OF_DAY, alarmTimePicker.getHour());
calendar.set(Calendar.MINUTE, alarmTimePicker.getMinute()); calendar.set(Calendar.MINUTE, alarmTimePicker.getMinute());
if(calendar.before(Calendar.getInstance())) { if(calendar.before(Calendar.getInstance())) {
calendar.add(Calendar.DATE, 1); calendar.add(Calendar.DATE, 1);
} }
alarmManager.setAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent); alarmManager.setAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
Toast.makeText(this, "Alarm has been set for " + alarmTimePicker.getHour() + " hour(s) " + alarmTimePicker.getMinute() + " minute(s)", Toast.LENGTH_SHORT).show(); Toast.makeText(this, "Alarm has been set for " + alarmTimePicker.getHour() + " hour(s) " + alarmTimePicker.getMinute() + " minute(s)", Toast.LENGTH_SHORT).show();
} }

View File

@ -44,6 +44,7 @@ public class AlarmReceiver extends WakefulBroadcastReceiver {
public static void stopRingtone(Context context) { public static void stopRingtone(Context context) {
settings = PreferenceManager.getDefaultSharedPreferences(context); settings = PreferenceManager.getDefaultSharedPreferences(context);
if (isPlaying) { if (isPlaying) {
SharedPreferences.Editor editor = settings.edit(); SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("alarm_toggle", false); editor.putBoolean("alarm_toggle", false);
@ -51,6 +52,7 @@ public class AlarmReceiver extends WakefulBroadcastReceiver {
m.release(); m.release();
isPlaying = false; isPlaying = false;
} }
} }
public static boolean isPlaying() { public static boolean isPlaying() {

View File

@ -33,6 +33,7 @@ public class LangContext extends ContextWrapper {
} else { } else {
setSystemLocaleLegacy(config, locale); setSystemLocaleLegacy(config, locale);
} }
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
context = context.createConfigurationContext(config); context = context.createConfigurationContext(config);
} else { } else {
@ -53,6 +54,7 @@ public class LangContext extends ContextWrapper {
} else { } else {
setSystemLocaleLegacy(config, locale); setSystemLocaleLegacy(config, locale);
} }
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
context = context.createConfigurationContext(config); context = context.createConfigurationContext(config);
} else { } else {

View File

@ -185,6 +185,7 @@ public class LaunchActivity extends AppCompatActivity {
@Override @Override
protected void onResume() { protected void onResume() {
super.onResume(); super.onResume();
if (isPressed) { if (isPressed) {
status.setText(R.string.disconnected); status.setText(R.string.disconnected);
} else if (!isAppInstalled(LaunchActivity.this, "com.google.android.googlequicksearchbox")) { } else if (!isAppInstalled(LaunchActivity.this, "com.google.android.googlequicksearchbox")) {
@ -194,6 +195,7 @@ public class LaunchActivity extends AppCompatActivity {
} else { } else {
status.setText(R.string.call); status.setText(R.string.call);
} }
isPressed = false; isPressed = false;
connect.setImageResource(R.drawable.connect_unselect); connect.setImageResource(R.drawable.connect_unselect);
cancel.setImageResource(R.drawable.cancel_unselect); cancel.setImageResource(R.drawable.cancel_unselect);

View File

@ -24,6 +24,7 @@
<string name="pref_alarm_ringtone">Выберите рингтон для будильника</string> <string name="pref_alarm_ringtone">Выберите рингтон для будильника</string>
<string name="pref_alarm_ringtone_desc">Рингтон будильника</string> <string name="pref_alarm_ringtone_desc">Рингтон будильника</string>
<string name="pref_alarm_vibrate">Вибрация будильника</string> <string name="pref_alarm_vibrate">Вибрация будильника</string>
<string name="pref_alarm_24hour_format">24-часовой формат</string>
<!-- Многие фразы были вырваны из контекста, поэтому прошу не пинать --> <!-- Многие фразы были вырваны из контекста, поэтому прошу не пинать -->
<string name="line_hello">Привет.</string> <string name="line_hello">Привет.</string>

View File

@ -25,6 +25,7 @@
<string name="pref_alarm_ringtone">Alarm ringtone</string> <string name="pref_alarm_ringtone">Alarm ringtone</string>
<string name="pref_alarm_ringtone_desc">Select ringtone for alarm</string> <string name="pref_alarm_ringtone_desc">Select ringtone for alarm</string>
<string name="pref_alarm_vibrate">Vibrate on alarm</string> <string name="pref_alarm_vibrate">Vibrate on alarm</string>
<string name="pref_alarm_24hour_format">24-hour format</string>
<!-- Subtitles --> <!-- Subtitles -->
<string name="line_hello">Hello.</string> <string name="line_hello">Hello.</string>

View File

@ -39,6 +39,10 @@
android:key="ringtone" android:key="ringtone"
android:summary="@string/pref_alarm_ringtone_desc" android:summary="@string/pref_alarm_ringtone_desc"
android:title="@string/pref_alarm_ringtone" /> android:title="@string/pref_alarm_ringtone" />
<SwitchPreference
android:defaultValue="true"
android:key="24-hour_format"
android:title="@string/pref_alarm_24hour_format" />
<SwitchPreference <SwitchPreference
android:defaultValue="false" android:defaultValue="false"
android:key="vibrate" android:key="vibrate"