diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 843cdfb..0000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,108 +0,0 @@ -# Changelog - - -## [Aktivpause to Go v1.2.6](https://github.com/SecUSo/Aktivpause/releases/tag/v1.2.6) - 2025-08-22 - -Fixes missing canScheduleExactAlarm check. -**Full Changelog**: https://github.com/SecUSo/Aktivpause/compare/v1.2.5...v1.2.6 - -[Changes][v1.2.6] - - - -## [Aktivpause to Go v1.2.5](https://github.com/SecUSo/Aktivpause/releases/tag/v1.2.5) - 2025-08-22 - -Fixes crashes due to missing receiver flags. -**Full Changelog**: https://github.com/SecUSo/Aktivpause/compare/v1.2.4...v1.2.5 - -[Changes][v1.2.5] - - - -## [Aktivpause to Go v1.2.3](https://github.com/SecUSo/Aktivpause/releases/tag/v1.2.3) - 2025-08-03 - -## What's Changed -* Change versionCode to differentiate from last Google Play version by [@coderPaddyS](https://github.com/coderPaddyS) in [#28](https://github.com/SecUSo/Aktivpause/pull/28) - - -**Full Changelog**: https://github.com/SecUSo/Aktivpause/compare/v1.2.2...v1.2.3 - -[Changes][v1.2.3] - - - -## [Aktivpause to Go v1.2.2](https://github.com/SecUSo/Aktivpause/releases/tag/v1.2.2) - 2025-07-23 - -## What's Changed -* documentation: Added info re: Privacy Friendly Backup by [@jahway603](https://github.com/jahway603) in [#16](https://github.com/SecUSo/Aktivpause/pull/16) -* Updates Copyright by [@coderPaddyS](https://github.com/coderPaddyS) in [#17](https://github.com/SecUSo/Aktivpause/pull/17) -* Update to SDK 34; Fixes a bug hindering the training to start. by [@coderPaddyS](https://github.com/coderPaddyS) in [#21](https://github.com/SecUSo/Aktivpause/pull/21) -* Adds ci and changelog workflows. by [@coderPaddyS](https://github.com/coderPaddyS) in [#24](https://github.com/SecUSo/Aktivpause/pull/24) -* Updates App-Info by [@coderPaddyS](https://github.com/coderPaddyS) in [#22](https://github.com/SecUSo/Aktivpause/pull/22) - -## New Contributors -* [@jahway603](https://github.com/jahway603) made their first contribution in [#16](https://github.com/SecUSo/Aktivpause/pull/16) - -**Full Changelog**: https://github.com/SecUSo/Aktivpause/compare/v1.2...v1.2.2 - -[Changes][v1.2.2] - - - -## [v1.2](https://github.com/SecUSo/Aktivpause/releases/tag/v1.2) - 2023-05-28 - -## What's Changed -* Backup integration by [@coderPaddyS](https://github.com/coderPaddyS) in [#14](https://github.com/SecUSo/Aktivpause/pull/14) - -## New Contributors -* [@coderPaddyS](https://github.com/coderPaddyS) made their first contribution in [#14](https://github.com/SecUSo/Aktivpause/pull/14) - -**Full Changelog**: https://github.com/SecUSo/Aktivpause/compare/v1.1.2...v1.2 - -[Changes][v1.2] - - - -## [Aktivpause to Go v1.1.2](https://github.com/SecUSo/Aktivpause/releases/tag/v1.1.2) - 2020-07-09 - -- Evaluation is done. Thank you for participating. -- Removed evaluation link - -[Changes][v1.1.2] - - - -## [Aktivpause to Go v1.1.1](https://github.com/SecUSo/Aktivpause/releases/tag/v1.1.1) - 2020-04-02 - -- Release für PlayStore - -[Changes][v1.1.1] - - - -## [Aktivpause to Go v1.1](https://github.com/SecUSo/Aktivpause/releases/tag/v1.1) - 2020-04-02 - -- Online-Umfrage Link hinzugefügt - -[Changes][v1.1] - - - -## [Aktivpause to Go (v1.0)](https://github.com/SecUSo/Aktivpause/releases/tag/v1.0) - 2019-10-28 - -- Initial release - -[Changes][v1.0] - - -[v1.2.6]: https://github.com/SecUSo/Aktivpause/compare/v1.2.5...v1.2.6 -[v1.2.5]: https://github.com/SecUSo/Aktivpause/compare/v1.2.3...v1.2.5 -[v1.2.3]: https://github.com/SecUSo/Aktivpause/compare/v1.2.2...v1.2.3 -[v1.2.2]: https://github.com/SecUSo/Aktivpause/compare/v1.2...v1.2.2 -[v1.2]: https://github.com/SecUSo/Aktivpause/compare/v1.1.2...v1.2 -[v1.1.2]: https://github.com/SecUSo/Aktivpause/compare/v1.1.1...v1.1.2 -[v1.1.1]: https://github.com/SecUSo/Aktivpause/compare/v1.1...v1.1.1 -[v1.1]: https://github.com/SecUSo/Aktivpause/compare/v1.0...v1.1 -[v1.0]: https://github.com/SecUSo/Aktivpause/tree/v1.0 - - diff --git a/README.md b/README.md index 5d50b79..acdf54c 100644 --- a/README.md +++ b/README.md @@ -14,8 +14,6 @@ ## Aktivpause -[Get it on F-Droid](https://f-droid.org/repository/browse/?fdid=org.secuso.aktivpause) - The Aktivpause to Go App allows you to integrate planned breaks into your daily work. You can decide when, where and for how long you want to take breaks and this app will help shape your break in a healthy way. It offers a wide variety of exercises from the well-established Aktivpause program at KIT and was developed by Scientists at the Institute of Sports and Sports Science (IfSS) of KIT. Exercises are currently only provided in german. ## Download and more Information diff --git a/app/build.gradle b/app/build.gradle index c9c2eec..6e7da8d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ android { applicationId "org.secuso.aktivpause" minSdkVersion 21 targetSdkVersion 34 - versionCode 102 - versionName "1.2.6" + versionCode 13 + versionName "1.2.3-google" vectorDrawables.useSupportLibrary = true } buildTypes { diff --git a/app/src/main/java/org/secuso/aktivpause/GoodbyeGoogleHelper.kt b/app/src/main/java/org/secuso/aktivpause/GoodbyeGoogleHelper.kt new file mode 100644 index 0000000..d7c52ab --- /dev/null +++ b/app/src/main/java/org/secuso/aktivpause/GoodbyeGoogleHelper.kt @@ -0,0 +1,38 @@ +package org.secuso.aktivpause; + +import android.content.Context +import android.graphics.text.LineBreaker +import android.os.Build +import android.preference.PreferenceManager +import android.text.method.LinkMovementMethod +import android.view.LayoutInflater +import android.widget.CheckBox +import android.widget.TextView +import androidx.appcompat.app.AlertDialog + +fun checkGoodbyeGoogle(context: Context, layoutInflater: LayoutInflater) { + + val showNotice = PreferenceManager.getDefaultSharedPreferences(context).getBoolean("show_goodbye_google_notice", true); + + if (showNotice) { + val view = layoutInflater.inflate(R.layout.dialog_goodbye_google, null, false) + view.findViewById(R.id.show_notice_checkbox).apply { + setOnClickListener { + PreferenceManager.getDefaultSharedPreferences(context).edit().putBoolean("show_goodbye_google_notice", !isChecked).apply() + } + } + val dialog = AlertDialog.Builder(context) + .setView(view) + .setNeutralButton(android.R.string.ok) { _, _ -> } + .setCancelable(false) + .create() + + dialog.show() + dialog.findViewById(R.id.text)?.apply { + movementMethod = LinkMovementMethod.getInstance() + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + justificationMode = LineBreaker.JUSTIFICATION_MODE_INTER_WORD + } + } + } +} \ No newline at end of file diff --git a/app/src/main/java/org/secuso/aktivpause/activities/ManageExerciseSetsActivity.java b/app/src/main/java/org/secuso/aktivpause/activities/ManageExerciseSetsActivity.java index 1ab162a..fc86fb9 100644 --- a/app/src/main/java/org/secuso/aktivpause/activities/ManageExerciseSetsActivity.java +++ b/app/src/main/java/org/secuso/aktivpause/activities/ManageExerciseSetsActivity.java @@ -34,6 +34,7 @@ import android.widget.ProgressBar; import android.widget.TextView; import android.widget.Toast; +import org.secuso.aktivpause.GoodbyeGoogleHelperKt; import org.secuso.aktivpause.activities.tutorial.FirstLaunchManager; import org.secuso.aktivpause.exercises.ExerciseLocale; import org.secuso.aktivpause.R; @@ -76,6 +77,7 @@ public class ManageExerciseSetsActivity extends BaseActivity implements LoaderMa initResources(); getSupportLoaderManager().initLoader(0, null, this); + GoodbyeGoogleHelperKt.checkGoodbyeGoogle(this, getLayoutInflater()); } private void initResources() { diff --git a/app/src/main/java/org/secuso/aktivpause/activities/TimerActivity.java b/app/src/main/java/org/secuso/aktivpause/activities/TimerActivity.java index b92aac0..451c9f9 100644 --- a/app/src/main/java/org/secuso/aktivpause/activities/TimerActivity.java +++ b/app/src/main/java/org/secuso/aktivpause/activities/TimerActivity.java @@ -15,7 +15,6 @@ import android.preference.PreferenceManager; import androidx.constraintlayout.widget.ConstraintLayout; import androidx.constraintlayout.widget.ConstraintSet; import androidx.core.app.ActivityCompat; -import androidx.core.content.ContextCompat; import androidx.loader.app.LoaderManager; import androidx.loader.content.AsyncTaskLoader; import androidx.loader.content.Loader; @@ -33,6 +32,7 @@ import android.widget.Spinner; import android.widget.TextView; import android.widget.Toast; +import org.secuso.aktivpause.GoodbyeGoogleHelperKt; import org.secuso.aktivpause.activities.tutorial.FirstLaunchManager; import org.secuso.aktivpause.exercises.ExerciseLocale; import org.secuso.aktivpause.R; @@ -137,6 +137,7 @@ public class TimerActivity extends BaseActivity implements LoaderManager.LoaderC } getSupportLoaderManager().initLoader(0, null, this); + GoodbyeGoogleHelperKt.checkGoodbyeGoogle(this, getLayoutInflater()); } @Override @@ -232,7 +233,7 @@ public class TimerActivity extends BaseActivity implements LoaderManager.LoaderC isActivityVisible = true; - ContextCompat.registerReceiver(this, timerReceiver, new IntentFilter(TimerService.TIMER_BROADCAST), ContextCompat.RECEIVER_NOT_EXPORTED); + registerReceiver(timerReceiver, new IntentFilter(TimerService.TIMER_BROADCAST)); if(mTimerService != null && !mTimerService.isRunning()) { updateProgress(mTimerService.getInitialDuration()); diff --git a/app/src/main/java/org/secuso/aktivpause/receivers/TimerSchedulerReceiver.java b/app/src/main/java/org/secuso/aktivpause/receivers/TimerSchedulerReceiver.java index 6ebfc46..d9318ef 100644 --- a/app/src/main/java/org/secuso/aktivpause/receivers/TimerSchedulerReceiver.java +++ b/app/src/main/java/org/secuso/aktivpause/receivers/TimerSchedulerReceiver.java @@ -144,7 +144,7 @@ public class TimerSchedulerReceiver extends WakefulBroadcastReceiver { } } - if((done || !scheduleExerciseDaysEnabled) && (Build.VERSION.SDK_INT < Build.VERSION_CODES.S) || alarmManager.canScheduleExactAlarms()) { + if((done || !scheduleExerciseDaysEnabled)) { AlarmManagerCompat.setExactAndAllowWhileIdle(alarmManager, AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), automaticTimerPending); } } diff --git a/app/src/main/java/org/secuso/aktivpause/service/TimerService.java b/app/src/main/java/org/secuso/aktivpause/service/TimerService.java index 09f2966..99bb99d 100644 --- a/app/src/main/java/org/secuso/aktivpause/service/TimerService.java +++ b/app/src/main/java/org/secuso/aktivpause/service/TimerService.java @@ -147,7 +147,7 @@ public class TimerService extends Service { super.onCreate(); - ContextCompat.registerReceiver(this, timerReceiver, new IntentFilter(TIMER_BROADCAST), ContextCompat.RECEIVER_NOT_EXPORTED); + registerReceiver(timerReceiver, new IntentFilter(TIMER_BROADCAST)); ContextCompat.registerReceiver(this, notificationDeletedReceiver, new IntentFilter(ACTION_NOTIFICATION_DELETED), ContextCompat.RECEIVER_NOT_EXPORTED); ContextCompat.registerReceiver(this, notificationPreferenceChangedReceiver, new IntentFilter(ACTION_NOTIFICATION_CANCELED), ContextCompat.RECEIVER_NOT_EXPORTED); } diff --git a/app/src/main/res/drawable/dialog_border.xml b/app/src/main/res/drawable/dialog_border.xml new file mode 100644 index 0000000..791ba04 --- /dev/null +++ b/app/src/main/res/drawable/dialog_border.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_goodbye_google.xml b/app/src/main/res/layout/dialog_goodbye_google.xml new file mode 100644 index 0000000..262993d --- /dev/null +++ b/app/src/main/res/layout/dialog_goodbye_google.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 1f79287..890e627 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -177,4 +177,8 @@ Ja Online-Befragung + Wir verlassen Google Play 😢 + Unsere Apps müssen sich leider von Google Play verabschieden. Die App ist weiterhin nutzbar, erhält jedoch keine Updates mehr.\nWeitere Informationen zu den Gründen und warum das nicht das Ende der Privacy Friendly Apps ist, finden Sie auf unserer Website:\n\nHier klicken, um mehr zu erfahren + + Zeige diese Mitteilung nicht nochmal \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d8f2d44..c4d68ea 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -170,4 +170,8 @@ Online Evaluation + Goodbye Google Play 😢 + Unfortunately, our apps have to say goodbye to Google Play. The app is still usable but will not receive any updates in the future.\nYou can find more information about the reasons why this is not the end of the Privacy Friendly Apps on our website:\n\nClick here to learn more + + Don\'t show this notice again. diff --git a/fastlane/metadata/android/de-DE/full_description.txt b/fastlane/metadata/android/de-DE/full_description.txt index d20c39d..1755c83 100644 --- a/fastlane/metadata/android/de-DE/full_description.txt +++ b/fastlane/metadata/android/de-DE/full_description.txt @@ -1,7 +1,5 @@ Die Aktivpause-App ermöglicht es Ihnen, selbstständig Bewegungspausen durchzuführen und so ganz individuell eine gezielte Auszeit in Ihren Arbeitsalltag zu integrieren. Wann, wo und wie lange Sie aktive Pausen machen, können Sie somit für sich persönlich entscheiden. Das breite Übungsspektrum stammt aus dem etablierten Aktivpause-Programm am KIT und wurde von Wissenschaftler*innen am Institut für Sport und Sportwissenschaft des KIT zusammengestellt. - Folgende Features bietet die Aktivpause-App: - 1. Auswahl und Erstellung von Übungssets: Aus den vorhandenen Übungen lassen sich individuelle Übungssets zusammenstellen, die für die Pausen ausgewählt werden können. Es stehen auch vordefinierte Übungssets zur Verfügung, die Ihnen den Start erleichtern. 2. Das Übungsspektrum reicht von Übungen zur Aktivierung des Herz-Kreislauf-Systems über Dehnungs- und Kräftigungs- bis hin zu Entspannungsübungen. 3. Mit der Filterfunktion können Sie gezielt Übungen nach Körperregion auswählen und etwaige Beschwerden vorbeugen. @@ -10,7 +8,6 @@ Folgende Features bietet die Aktivpause-App: Kontaktieren Sie uns gerne über: - -* Bluesky - @secusoresearch.bsky.social https://bsky.app/profile/secusoresearch.bsky.social -* Mastodon - @SECUSO_Research@bawü.social https://xn--baw-joa.social/@SECUSO_Research/ -* Offene Stellen - https://secuso.aifb.kit.edu/83.php \ No newline at end of file +Bluesky - @secusoresearch.bsky.social https://bsky.app/profile/secusoresearch.bsky.social +Mastodon - @SECUSO_Research@bawü.social https://xn--baw-joa.social/@SECUSO_Research/ +Offene Stellen - https://secuso.aifb.kit.edu/83.php \ No newline at end of file diff --git a/fastlane/metadata/android/en-US/full_description.txt b/fastlane/metadata/android/en-US/full_description.txt index ed6bdc7..5276374 100644 --- a/fastlane/metadata/android/en-US/full_description.txt +++ b/fastlane/metadata/android/en-US/full_description.txt @@ -1,7 +1,6 @@ The Aktivpause to Go App allows you to integrate planned breaks into your daily work. You can decide when, where and for how long you want to take breaks and this app will help shape your break in a healthy way. It offers a wide variety of exercises from the well-established Aktivpause program at KIT and was developed by Scientists at the Institute of Sports and Sports Science (IfSS) of KIT. Exercises are currently only provided in german. The following features are provided by the app: - 1. Creation and Choice of exercise sets: Individual exercise sets can be created. This makes it easier to complete your favorite exercises faster. The exercise sets can then be chosen to perform during breaks. There are also predefined exercise sets to ease the start into the app. 2. There are a wide variety of exercises: Exercises to activate the cardiovascular system, stretching, strength, and relaxation exercises. 3. The filter feature lets you easily choose exercises for specific body regions that may help you prevent potential complaints. @@ -9,7 +8,6 @@ The following features are provided by the app: 5. Integrate the Aktivpause break into your daily routine. You can schedule breaks to start at specific times and days, so you don’t have to think about starting the timer manually to be reminded to take breaks. Feel free to contact us via: - -* Bluesky - @secusoresearch.bsky.social https://bsky.app/profile/secusoresearch.bsky.social -* Mastodon - @SECUSO_Research@bawü.social https://xn--baw-joa.social/@SECUSO_Research/ -* Job opening - https://secuso.aifb.kit.edu/english/Job_Offers.php \ No newline at end of file +Bluesky - @secusoresearch.bsky.social https://bsky.app/profile/secusoresearch.bsky.social +Mastodon - @SECUSO_Research@bawü.social https://xn--baw-joa.social/@SECUSO_Research/ +Job opening - https://secuso.aifb.kit.edu/english/Job_Offers.php \ No newline at end of file