Compare commits

..

9 commits

Author SHA1 Message Date
Patrick Schneider
34739f3714 [update] bumps version. 2025-08-03 14:53:15 +02:00
Patrick Schneider
733b0c7283 [fix] Adds dialog to ManageExerciseSetsActivity 2025-08-03 14:52:25 +02:00
Patrick Schneider
4b02cbd332 [update] bumps version.
Corrects dialog description.
2025-08-03 14:52:25 +02:00
coderPaddyS
8a64360399 Adds goodbye google dialog. 2025-08-03 14:52:25 +02:00
Patrick Schneider
1911e67126 Fixes character encoding errors due to unsupported terminal font 2025-08-03 14:52:25 +02:00
Patrick Schneider
c83df12468 fixup: escape single ' in english dialog 2025-08-03 14:52:24 +02:00
Patrick Schneider
55b3dd7817 Fixes copy-paste error regarding package 2025-08-03 14:52:24 +02:00
Patrick Schneider
5504092319 Adds strings for goodbye google dialog 2025-08-03 14:52:24 +02:00
Patrick Schneider
f3bfabc3d1 Initial goodbye google dialog 2025-08-03 14:52:24 +02:00
14 changed files with 113 additions and 127 deletions

View file

@ -1,108 +0,0 @@
# Changelog
<a id="v1.2.6"></a>
## [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]
<a id="v1.2.5"></a>
## [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]
<a id="v1.2.3"></a>
## [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]
<a id="v1.2.2"></a>
## [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]
<a id="v1.2"></a>
## [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]
<a id="v1.1.2"></a>
## [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]
<a id="v1.1.1"></a>
## [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]
<a id="v1.1"></a>
## [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]
<a id="v1.0"></a>
## [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
<!-- Generated by https://github.com/rhysd/changelog-from-release v3.9.0 -->

View file

@ -14,8 +14,6 @@
## Aktivpause
[<img src="https://f-droid.org/badge/get-it-on.png" alt="Get it on F-Droid" height="60">](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

View file

@ -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 {

View file

@ -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<CheckBox>(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<TextView>(R.id.text)?.apply {
movementMethod = LinkMovementMethod.getInstance()
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
justificationMode = LineBreaker.JUSTIFICATION_MODE_INTER_WORD
}
}
}
}

View file

@ -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() {

View file

@ -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());

View file

@ -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);
}
}

View file

@ -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);
}

View file

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
<solid android:color="@android:color/transparent" />
<stroke android:width="4dp" android:color="#880000"/>
</shape>

View file

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingHorizontal="32dp"
android:background="@drawable/dialog_border"
android:padding="16dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@android:drawable/ic_dialog_alert"
xmlns:app="http://schemas.android.com/apk/res-auto"
app:tint="@color/red"/>
<com.google.android.material.textview.MaterialTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/dialog_goodbye_google_title"
android:textStyle="bold"
android:textSize="16dp"
android:layout_gravity="center"
android:padding="8dp"
/>
</LinearLayout>
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.textview.MaterialTextView
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/dialog_goodbye_google_desc"
/>
</ScrollView>
<com.google.android.material.checkbox.MaterialCheckBox
android:id="@+id/show_notice_checkbox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/dialog_goodbye_google_deactivate_notice"
/>
</LinearLayout>

View file

@ -177,4 +177,8 @@
<string name="dialog_evaluation_yes">Ja</string>
<string name="menu_display_evaluation_dialog">Online-Befragung</string>
<string name="dialog_goodbye_google_title">Wir verlassen Google Play 😢</string>
<string name="dialog_goodbye_google_desc">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\n<a href="https://secuso.aifb.kit.edu/2809.php">Hier klicken, um mehr zu erfahren</a>
</string>
<string name="dialog_goodbye_google_deactivate_notice">Zeige diese Mitteilung nicht nochmal</string>
</resources>

View file

@ -170,4 +170,8 @@
<string name="menu_display_evaluation_dialog">Online Evaluation</string>
<string name="dialog_goodbye_google_title">Goodbye Google Play 😢</string>
<string name="dialog_goodbye_google_desc">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\n<a href="https://secuso.aifb.kit.edu/english/2809.php">Click here to learn more</a>
</string>
<string name="dialog_goodbye_google_deactivate_notice">Don\'t show this notice again.</string>
</resources>

View file

@ -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
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

View file

@ -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 dont 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
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