Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,8 @@ public Uri insert(Uri uri, ContentValues values) {
values.put(SettingsEntry.VOLUME_ENDING, defaults.volume_ending);
if (!values.containsKey(SettingsEntry.VOLUME_TIME))
values.put(SettingsEntry.VOLUME_TIME, defaults.volume_time);
if (!values.containsKey(SettingsEntry.DISMISS_BY_BUTTON))
values.put(SettingsEntry.DISMISS_BY_BUTTON, defaults.dismiss_by_button);

db.insertOrThrow(SettingsEntry.TABLE_NAME, null, values);
getContext().getContentResolver().notifyChange(uri, null);
Expand Down Expand Up @@ -250,11 +252,12 @@ public static class SettingsEntry implements BaseColumns {
public static final String VOLUME_STARTING = "vol_start";
public static final String VOLUME_ENDING = "vol_end";
public static final String VOLUME_TIME = "vol_time";
public static final String DISMISS_BY_BUTTON = "dismiss_button";
}

private static class DbAlarmClockHelper extends SQLiteOpenHelper {
private static final String DB_NAME = "alarmclock";
private static final int DB_VERSION = 2;
private static final int DB_VERSION = 3;

public DbAlarmClockHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
Expand All @@ -275,8 +278,8 @@ public void onCreate(SQLiteDatabase db) {
AlarmEntry.DAY_OF_WEEK + " UNSIGNED INTEGER (0, 127)," +
AlarmEntry.NEXT_SNOOZE + " UNSIGNED INTEGER DEFAULT 0)");

// |(primary) | (string) | (string) | (1 to 60) | (boolean) | (0 to 100) | (0 to 100) | (0 to 60) |
// | id | tone_url | tone_name | snooze | vibrate | vol_start | vol_end | vol_time |
// |(primary) | (string) | (string) | (1 to 60) | (boolean) | (0 to 100) | (0 to 100) | (0 to 60) | (boolean) |
// | id | tone_url | tone_name | snooze | vibrate | vol_start | vol_end | vol_time | dismiss_button |
// snooze is in minutes.
db.execSQL(
"CREATE TABLE " + SettingsEntry.TABLE_NAME + " (" +
Expand All @@ -287,7 +290,8 @@ public void onCreate(SQLiteDatabase db) {
SettingsEntry.VIBRATE + " UNSIGNED INTEGER (0, 1)," +
SettingsEntry.VOLUME_STARTING + " UNSIGNED INTEGER (1, 100)," +
SettingsEntry.VOLUME_ENDING + " UNSIGNED INTEGER (1, 100)," +
SettingsEntry.VOLUME_TIME + " UNSIGNED INTEGER (1, 60))");
SettingsEntry.VOLUME_TIME + " UNSIGNED INTEGER (1, 60)," +
SettingsEntry.DISMISS_BY_BUTTON + " UNSIGNED INTEGER (0, 1))");
}

@Override
Expand All @@ -309,6 +313,11 @@ public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
SettingsEntry.ALARM_ID + " = " + DbUtil.Settings.DEFAULTS_ID +
" WHERE " + SettingsEntry.ALARM_ID + " == -1");
}
if (oldVersion < 3) {
db.execSQL(
"ALTER TABLE " + SettingsEntry.TABLE_NAME + " ADD COLUMN " +
SettingsEntry.DISMISS_BY_BUTTON + " UNSIGNED INTEGER (0, 1) DEFAULT 0");
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,11 @@
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.view.WindowManager;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.HashSet;

public class AlarmNotificationActivity extends Activity {
public static final String TIMEOUT = "timeout";
Expand Down Expand Up @@ -83,6 +81,25 @@ public void onClick(View view) {
}
});

boolean dismiss_by_button = false;
for (long alarmid : AlarmNotificationService.getActiveAlarms()) {
dismiss_by_button = dismiss_by_button || DbUtil.Settings.get(this, alarmid).dismiss_by_button;
}

if (dismiss_by_button) {
findViewById(R.id.dismiss_alarm_button).setVisibility(View.VISIBLE);
findViewById(R.id.dismiss_alarm).setVisibility(View.INVISIBLE);
}

findViewById(R.id.dismiss_alarm_button).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View view) {
AlarmNotificationService.dismissAllAlarms(getApplicationContext());
finish();
}
});

((Slider)findViewById(R.id.dismiss_alarm)).setListener(
new Slider.Listener() {
@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -586,6 +586,28 @@ public void onStopTrackingTouch(SeekBar s) {
setView(edit_volume_time, volume_time_slide, 1.0f);

setView(this, volume_status, 1.0f);

// EDIT DISMISS BUTTON
final TextView edit_dismiss_by_button_status = new TextView(c);
edit_dismiss_by_button_status.setText(s.dismiss_by_button ?c.getString(R.string.alarm_dismiss_by_button):c.getString(R.string.alarm_dismiss_by_slider));

final ViewGroup edit_dismiss_by_button = newItem(c);
addView(edit_dismiss_by_button);
setImage(edit_dismiss_by_button, R.drawable.baseline_call_to_action_24);
Switch dismiss_by_button_switch = new Switch(c);
setView(edit_dismiss_by_button, dismiss_by_button_switch, 0.0f);
setView(this, edit_dismiss_by_button_status, 1.0f);
dismiss_by_button_switch.setChecked(s.dismiss_by_button);
dismiss_by_button_switch.setOnCheckedChangeListener(
new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton b, boolean checked) {
ContentValues val = new ContentValues();
val.put(AlarmClockProvider.SettingsEntry.DISMISS_BY_BUTTON, checked);
c.getContentResolver().update(settings, val, null, null);
edit_dismiss_by_button_status.setText(checked?c.getString(R.string.alarm_dismiss_by_button):c.getString(R.string.alarm_dismiss_by_slider));
}
});
}

private ViewGroup newItem(Context c) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import android.provider.Settings;

import java.util.Calendar;

Expand Down Expand Up @@ -112,6 +111,7 @@ public static final class Settings {
public final int volume_starting;
public final int volume_ending;
public final int volume_time;
public final boolean dismiss_by_button;

private static final Uri TONE_URL_DEFAULT =
android.provider.Settings.System.DEFAULT_ALARM_ALERT_URI;
Expand All @@ -120,6 +120,7 @@ public static final class Settings {
private static final int VOLUME_STARTING_DEFAULT = 0;
private static final int VOLUME_ENDING_DEFAULT = 100;
private static final int VOLUME_TIME_DEFAULT = 20;
private static final boolean DISMISS_BY_BUTTON_DEFAULT = false;

public static Settings get(Context context, long id) {
Settings s = null;
Expand Down Expand Up @@ -155,7 +156,8 @@ private static Cursor query(Context context, long id) {
AlarmClockProvider.SettingsEntry.VIBRATE,
AlarmClockProvider.SettingsEntry.VOLUME_STARTING,
AlarmClockProvider.SettingsEntry.VOLUME_ENDING,
AlarmClockProvider.SettingsEntry.VOLUME_TIME },
AlarmClockProvider.SettingsEntry.VOLUME_TIME,
AlarmClockProvider.SettingsEntry.DISMISS_BY_BUTTON},
null, null, null);
}

Expand All @@ -174,6 +176,8 @@ private Settings(Cursor c) {
AlarmClockProvider.SettingsEntry.VOLUME_ENDING));
volume_time = c.getInt(c.getColumnIndex(
AlarmClockProvider.SettingsEntry.VOLUME_TIME));
dismiss_by_button = c.getInt(c.getColumnIndex(
AlarmClockProvider.SettingsEntry.DISMISS_BY_BUTTON)) != 0;
}

private Settings(Context c) {
Expand All @@ -184,6 +188,7 @@ private Settings(Context c) {
volume_starting = VOLUME_STARTING_DEFAULT;
volume_ending = VOLUME_ENDING_DEFAULT;
volume_time = VOLUME_TIME_DEFAULT;
dismiss_by_button = DISMISS_BY_BUTTON_DEFAULT;
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:viewportHeight="24"
android:viewportWidth="24"
android:height="48dp"
android:width="48dp"
>
<path
android:fillColor="@android:color/white"
android:pathData="M21,3L3,3c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h18c1.1,0 2,-0.9 2,-2L23,5c0,-1.1 -0.9,-2 -2,-2zM21,19L3,19v-3h18v3z" />
</vector>
19 changes: 19 additions & 0 deletions android/alarmclock/klock/src/main/res/layout/notification.xml
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,25 @@
android:layout_width="fill_parent"
android:layout_height="wrap_content" />

<View
android:id="@+id/divider"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_weight="1"
android:visibility="invisible"
android:background="?android:attr/listDivider" />

<Button
android:id="@+id/dismiss_alarm_button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/rect_btn"
android:elevation="6dp"
android:text="@string/dismiss"
android:visibility="invisible"
android:textSize="36sp" />

<TextView
android:id="@+id/alarm_label"
android:textSize="36sp"
Expand Down
2 changes: 2 additions & 0 deletions android/alarmclock/klock/src/main/res/values-de/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -46,4 +46,6 @@
<string name="selected">Ausgewählt: </string>
<string name="time_out_title">Wecker-Zeitlimit</string>
<string name="time_out_error">ACHTUNG: Diese Weckzeit hat ihr Zeitlimit erreicht.</string>
<string name="alarm_dismiss_by_button">Ausschalten mit einem Button.</string>
<string name="alarm_dismiss_by_slider">Ausschalten mit einem Schieberegler.</string>
</resources>
2 changes: 2 additions & 0 deletions android/alarmclock/klock/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -60,4 +60,6 @@
<string name="time_out_error">WARNING: This alarm has timed out waiting for an acknowledgment.</string>
<string name="pending_alarm_notification">Pending alarms</string>
<string name="ringing_alarm_notification">Ringing alarms</string>
<string name="alarm_dismiss_by_button">Dismiss alarm by button.</string>
<string name="alarm_dismiss_by_slider">Dismiss alarm by slider.</string>
</resources>