diff --git a/app/build.gradle b/app/build.gradle index 0a5b116..eabea17 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -8,8 +8,8 @@ android { applicationId "org.secuso.privacyfriendlybreakreminder" minSdkVersion 21 targetSdkVersion 27 - versionCode 3 - versionName "2.1" + versionCode 4 + versionName "2.2" vectorDrawables.useSupportLibrary = true } lintOptions { diff --git a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/ExerciseActivity.java b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/ExerciseActivity.java index bb02f07..26c5960 100644 --- a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/ExerciseActivity.java +++ b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/ExerciseActivity.java @@ -7,6 +7,7 @@ import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.graphics.Color; +import android.graphics.drawable.Drawable; import android.os.Build; import android.os.Bundle; import android.os.CountDownTimer; @@ -164,6 +165,12 @@ public class ExerciseActivity extends AppCompatActivity implements android.suppo nextButton = (ImageButton) findViewById(R.id.button_next); exerciseInfoButton = (ImageButton) findViewById(R.id.exercise_info_button); + Drawable icon = getDrawable(R.drawable.ic_about); + if (icon != null) { + icon.setTint(ActivityCompat.getColor(this, R.color.black)); + exerciseInfoButton.setImageDrawable(icon); + } + toast = Toast.makeText(this, "", Toast.LENGTH_SHORT); toast.setGravity(toast.getGravity(), 0, 250); diff --git a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/adapter/ExerciseAdapter.java b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/adapter/ExerciseAdapter.java index 23266b2..a900e04 100644 --- a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/adapter/ExerciseAdapter.java +++ b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/adapter/ExerciseAdapter.java @@ -1,10 +1,13 @@ package org.secuso.privacyfriendlybreakreminder.activities.adapter; import android.content.Context; +import android.graphics.drawable.Drawable; import android.preference.PreferenceManager; import android.support.annotation.NonNull; import android.support.constraint.ConstraintLayout; +import android.support.v4.app.ActivityCompat; import android.support.v7.app.AlertDialog; +import android.support.v7.app.AppCompatActivity; import android.support.v7.util.SortedList; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; @@ -154,6 +157,11 @@ public class ExerciseAdapter extends RecyclerView.Adapter= Build.VERSION_CODES.O) { + createNotificationChannels(); + } } } + @RequiresApi(api = Build.VERSION_CODES.O) + private void createNotificationChannels() { + String groupId = "timer_group"; + NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); + + // group + notificationManager.createNotificationChannelGroup(new NotificationChannelGroup(groupId, "Timer Notifications")); + + // channels + NotificationChannel timerRunningChannel = new NotificationChannel("timer_running", "Timer Running Notification", NotificationManager.IMPORTANCE_DEFAULT); + timerRunningChannel.setVibrationPattern(new long[] { 0 }); + timerRunningChannel.setGroup(groupId); + + NotificationChannel timerDoneChannel = new NotificationChannel("timer_done", "Timer Done Notification", NotificationManager.IMPORTANCE_HIGH); + timerDoneChannel.setVibrationPattern(new long[] { 0, 1000, 1000, 1000, 1000, 1000, 1000 }); + timerDoneChannel.setGroup(groupId); + + notificationManager.createNotificationChannel(timerRunningChannel); + notificationManager.createNotificationChannel(timerDoneChannel); + } + private void loadInitialExerciseSets() { Cursor setCursor = dbHandler.getExerciseSetsCursor(); diff --git a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/service/TimerService.java b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/service/TimerService.java index d0dfe03..cd42282 100644 --- a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/service/TimerService.java +++ b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/service/TimerService.java @@ -104,7 +104,7 @@ public class TimerService extends Service { 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); + NotificationCompat.Builder builder = new NotificationCompat.Builder(this, "timer_done"); builder.setContentTitle(getString(R.string.app_name)) .setContentText(getString(R.string.take_a_break_now)) .setContentIntent(startExercises) @@ -293,7 +293,7 @@ public class TimerService extends Service { private Notification buildNotification() { - NotificationCompat.Builder builder = new NotificationCompat.Builder(this); + NotificationCompat.Builder builder = new NotificationCompat.Builder(this, "timer_running"); builder.setContentTitle(getString(R.string.app_name)); int secondsUntilFinished = (int) Math.ceil(remainingDuration / 1000.0); diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 5648e93..6520b48 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -70,7 +70,7 @@ Übungszeit (in Sekunden) - Bildschirm bleibt an während der Übungen + Bildschirm bleibt an während Übungen Übungseinstellungen Zeitplan für Arbeits- und Übungstimer Zeitpläne aktivieren