Snooze implemented. Fixed #5
This commit is contained in:
parent
c110d5924c
commit
4d72fdd076
3 changed files with 21 additions and 75 deletions
|
|
@ -1,5 +1,6 @@
|
|||
package org.secuso.privacyfriendlybreakreminder.service;
|
||||
|
||||
import android.app.NotificationManager;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
|
|
@ -59,5 +60,10 @@ public class PreferenceChangeReceiver extends BroadcastReceiver {
|
|||
// }
|
||||
}
|
||||
|
||||
NotificationManager manager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
|
||||
if(manager != null) {
|
||||
manager.cancel(TimerService.NOTIFICATION_ID);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,23 +12,16 @@ import android.content.SharedPreferences;
|
|||
import android.os.Binder;
|
||||
import android.os.CountDownTimer;
|
||||
import android.os.IBinder;
|
||||
import android.os.IInterface;
|
||||
import android.os.Parcel;
|
||||
import android.os.RemoteException;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.provider.Settings;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v4.app.NotificationCompat;
|
||||
import android.support.v4.content.ContextCompat;
|
||||
import android.util.Log;
|
||||
|
||||
import org.secuso.privacyfriendlybreakreminder.R;
|
||||
import org.secuso.privacyfriendlybreakreminder.activities.ExerciseActivity;
|
||||
import org.secuso.privacyfriendlybreakreminder.activities.TimerActivity;
|
||||
|
||||
import java.io.FileDescriptor;
|
||||
import java.util.Locale;
|
||||
import java.util.Timer;
|
||||
|
||||
import static android.app.PendingIntent.FLAG_CANCEL_CURRENT;
|
||||
import static android.app.PendingIntent.FLAG_UPDATE_CURRENT;
|
||||
|
|
@ -60,7 +53,7 @@ public class TimerService extends Service {
|
|||
public static final String NOTIFICATION_DELETED_ACTION = "org.secuso.privacyfriendlybreakreminder.NotificationDeleted";
|
||||
|
||||
private static final int UPDATE_INTERVAL = 100;
|
||||
private static final int NOTIFICATION_ID = 31337;
|
||||
public static final int NOTIFICATION_ID = 31337;
|
||||
|
||||
private TimerServiceBinder mBinder = new TimerServiceBinder();
|
||||
private CountDownTimer mTimer;
|
||||
|
|
@ -104,7 +97,11 @@ public class TimerService extends Service {
|
|||
// send a notification with sound and vibration
|
||||
stopForeground(false);
|
||||
|
||||
Intent snoozeIntent = new Intent(this, TimerService.class);
|
||||
snoozeIntent.setAction(ACTION_SNOOZE_TIMER);
|
||||
|
||||
PendingIntent startExercises = PendingIntent.getActivity(this, 0, new Intent(this, ExerciseActivity.class), FLAG_CANCEL_CURRENT);
|
||||
PendingIntent snoozeExercise = PendingIntent.getService(this, 0, snoozeIntent, FLAG_UPDATE_CURRENT);
|
||||
|
||||
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
|
||||
builder.setContentTitle(getString(R.string.app_name))
|
||||
|
|
@ -120,16 +117,16 @@ public class TimerService extends Service {
|
|||
.setVibrate(new long[] { 0, 1000, 1000, 1000, 1000, 1000, 1000 })
|
||||
.setSound(Settings.System.DEFAULT_NOTIFICATION_URI)
|
||||
.setOnlyAlertOnce(false)
|
||||
.setDeleteIntent(PendingIntent.getBroadcast(getApplicationContext(), 0, new Intent(NOTIFICATION_DELETED_ACTION), 0));
|
||||
.setDeleteIntent(PendingIntent.getBroadcast(getApplicationContext(), 0, new Intent(NOTIFICATION_DELETED_ACTION), FLAG_UPDATE_CURRENT));
|
||||
|
||||
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);
|
||||
if(pref.getBoolean(PREF_EXERCISE_CONTINUOUS, false)) {
|
||||
Intent prefIntent = new Intent(ACTION_PREF_CHANGE);
|
||||
prefIntent.putExtra(EXTRA_DISABLE_CONTINUOUS, false);
|
||||
builder.addAction(0, getString(R.string.dismiss_and_dont_repeat), PendingIntent.getBroadcast(getApplicationContext(), 0, prefIntent, 0));
|
||||
builder.addAction(0, getString(R.string.dismiss_and_dont_repeat), PendingIntent.getBroadcast(getApplicationContext(), 0, prefIntent, FLAG_UPDATE_CURRENT));
|
||||
}
|
||||
|
||||
|
||||
builder.addAction(R.drawable.ic_replay_black_48dp, getString(R.string.snooze), snoozeExercise);
|
||||
builder.addAction(R.drawable.ic_play_arrow_black, getString(R.string.start), startExercises);
|
||||
|
||||
notificationManager.notify(NOTIFICATION_ID, builder.build());
|
||||
|
|
@ -303,6 +300,8 @@ public class TimerService extends Service {
|
|||
|
||||
String time = String.format(Locale.US, "%02d:%02d:%02d", hours, minutes, seconds);
|
||||
|
||||
PendingIntent startExercises = PendingIntent.getActivity(this, 0, new Intent(this, ExerciseActivity.class), FLAG_CANCEL_CURRENT);
|
||||
|
||||
builder.setContentText(time);
|
||||
builder.setColor(ContextCompat.getColor(this, R.color.colorAccent));
|
||||
builder.setPriority(NotificationCompat.PRIORITY_DEFAULT);
|
||||
|
|
@ -315,6 +314,8 @@ public class TimerService extends Service {
|
|||
intent.addFlags(FLAG_ACTIVITY_CLEAR_TOP);
|
||||
builder.setContentIntent(PendingIntent.getActivity(this, 0, intent, FLAG_UPDATE_CURRENT));
|
||||
|
||||
builder.addAction(R.drawable.ic_play_arrow_black, getString(R.string.start_break), startExercises);
|
||||
|
||||
Intent stopIntent = new Intent(this, TimerService.class);
|
||||
stopIntent.setAction(ACTION_STOP_TIMER);
|
||||
builder.addAction(R.drawable.ic_replay_black_48dp, getString(R.string.stop), PendingIntent.getService(this, 0, stopIntent, FLAG_UPDATE_CURRENT));
|
||||
|
|
|
|||
|
|
@ -166,69 +166,6 @@
|
|||
<string name="help_permission_answer">The app only requests permission to control the vibration of the device to make the break alarm more distinct.</string>
|
||||
<string name="pref_header_schedule">Schedule Times</string>
|
||||
<string name="pref_header_exercises">Exercise Settings</string>
|
||||
<string name="title_activity_settings2">Settings</string>
|
||||
|
||||
<!-- Strings related to Settings -->
|
||||
|
||||
<!-- Example General settings -->
|
||||
<string name="pref_header_general">General</string>
|
||||
|
||||
<string name="pref_title_social_recommendations">Enable social recommendations</string>
|
||||
<string name="pref_description_social_recommendations">Recommendations for people to contact
|
||||
based on your message history
|
||||
</string>
|
||||
|
||||
<string name="pref_title_display_name">Display name</string>
|
||||
<string name="pref_default_display_name">John Smith</string>
|
||||
|
||||
<string name="pref_title_add_friends_to_messages">Add friends to messages</string>
|
||||
<string-array name="pref_example_list_titles">
|
||||
<item>Always</item>
|
||||
<item>When possible</item>
|
||||
<item>Never</item>
|
||||
</string-array>
|
||||
<string-array name="pref_example_list_values">
|
||||
<item>1</item>
|
||||
<item>0</item>
|
||||
<item>-1</item>
|
||||
</string-array>
|
||||
|
||||
<!-- Example settings for Data & Sync -->
|
||||
<string name="pref_header_data_sync">Data & sync</string>
|
||||
|
||||
<string name="pref_title_sync_frequency">Sync frequency</string>
|
||||
<string-array name="pref_sync_frequency_titles">
|
||||
<item>15 minutes</item>
|
||||
<item>30 minutes</item>
|
||||
<item>1 hour</item>
|
||||
<item>3 hours</item>
|
||||
<item>6 hours</item>
|
||||
<item>Never</item>
|
||||
</string-array>
|
||||
<string-array name="pref_sync_frequency_values">
|
||||
<item>15</item>
|
||||
<item>30</item>
|
||||
<item>60</item>
|
||||
<item>180</item>
|
||||
<item>360</item>
|
||||
<item>-1</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="list_preference_entries">
|
||||
<item>Entry 1</item>
|
||||
<item>Entry 2</item>
|
||||
<item>Entry 3</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="list_preference_entry_values">
|
||||
<item>1</item>
|
||||
<item>2</item>
|
||||
<item>3</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="multi_select_list_preference_default_value" />
|
||||
|
||||
<string name="pref_title_system_sync_settings">System sync settings</string>
|
||||
|
||||
<string name="pref_title_new_message_notifications">New message notifications</string>
|
||||
<string name="pref_exercise_continuous">Continuous exercises</string>
|
||||
|
|
@ -241,7 +178,9 @@
|
|||
<string name="resume">Resume</string>
|
||||
<string name="stop">Stop</string>
|
||||
<string name="start">Start</string>
|
||||
<string name="dismiss_and_dont_repeat">Dismiss and don\'t start again</string>
|
||||
<string name="dismiss_and_dont_repeat">Dismiss & don\'t restart</string>
|
||||
<string name="snooze">Snooze</string>
|
||||
<string name="start_break">Start Break</string>
|
||||
|
||||
|
||||
</resources>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue