Cleanup. Something went wrong with the last commit.
|
|
@ -1,13 +1,13 @@
|
|||
apply plugin: 'com.android.application'
|
||||
|
||||
android {
|
||||
compileSdkVersion 26
|
||||
compileSdkVersion 25
|
||||
buildToolsVersion '26.0.2'
|
||||
|
||||
defaultConfig {
|
||||
applicationId "org.secuso.privacyfriendlybreakreminder"
|
||||
minSdkVersion 21
|
||||
targetSdkVersion 26
|
||||
targetSdkVersion 25
|
||||
versionCode 3
|
||||
versionName "2.1"
|
||||
vectorDrawables.useSupportLibrary = true
|
||||
|
|
@ -32,12 +32,12 @@ repositories {
|
|||
|
||||
dependencies {
|
||||
compile fileTree(include: ['*.jar'], dir: 'libs')
|
||||
compile 'com.android.support:appcompat-v7:26.1.0'
|
||||
compile 'com.android.support:design:26.1.0'
|
||||
compile 'com.android.support:appcompat-v7:25.4.0'
|
||||
compile 'com.android.support:design:25.4.0'
|
||||
compile 'com.github.bumptech.glide:glide:3.7.0'
|
||||
compile 'com.android.support:support-v4:26.1.0'
|
||||
compile 'com.android.support:support-v4:25.4.0'
|
||||
compile 'com.android.support:support-annotations:27.0.0'
|
||||
compile 'com.android.support:cardview-v7:26.1.0'
|
||||
compile 'com.android.support:cardview-v7:25.4.0'
|
||||
compile 'com.android.support.constraint:constraint-layout:1.0.2'
|
||||
compile 'com.nex3z:flow-layout:1.0.0'
|
||||
compile 'com.readystatesoftware.sqliteasset:sqliteassethelper:2.0.1'
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@
|
|||
package="org.secuso.privacyfriendlybreakreminder">
|
||||
|
||||
<uses-permission android:name="android.permission.VIBRATE" />
|
||||
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
|
||||
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||
|
||||
<application
|
||||
android:allowBackup="true"
|
||||
|
|
@ -111,6 +113,14 @@
|
|||
android:enabled="true"
|
||||
android:exported="false" />
|
||||
|
||||
<receiver android:name=".receivers.OnBootCompletedReceiver">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.BOOT_COMPLETED" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<receiver android:name=".receivers.TimerSchedulerReceiver"/>
|
||||
|
||||
</application>
|
||||
|
||||
</manifest>
|
||||
|
|
@ -139,23 +139,23 @@ public class ExerciseActivity extends AppCompatActivity implements android.suppo
|
|||
|
||||
private void initResources() {
|
||||
dbHelper = new SQLiteHelper(this);
|
||||
playButton = findViewById(R.id.button_playPause);
|
||||
progressBar = findViewById(R.id.progressBar);
|
||||
timerText = findViewById(R.id.timerText);
|
||||
executionText = findViewById(R.id.execution);
|
||||
descriptionText = findViewById(R.id.description);
|
||||
exerciseImage = findViewById(R.id.exercise_image);
|
||||
sectionText = findViewById(R.id.section);
|
||||
repeatButton = findViewById(R.id.button_repeat);
|
||||
exerciseContent = findViewById(R.id.exercise_layout);
|
||||
continuousButton = findViewById(R.id.button_continuous);
|
||||
prevButton = findViewById(R.id.button_prev);
|
||||
nextButton = findViewById(R.id.button_next);
|
||||
exerciseInfoButton = findViewById(R.id.exercise_info_button);
|
||||
playButton = (ImageButton) findViewById(R.id.button_playPause);
|
||||
progressBar = (ProgressBar) findViewById(R.id.progressBar);
|
||||
timerText = (TextView) findViewById(R.id.timerText);
|
||||
executionText = (TextView) findViewById(R.id.execution);
|
||||
descriptionText = (TextView) findViewById(R.id.description);
|
||||
exerciseImage = (ImageView) findViewById(R.id.exercise_image);
|
||||
sectionText = (TextView) findViewById(R.id.section);
|
||||
repeatButton = (ImageButton) findViewById(R.id.button_repeat);
|
||||
exerciseContent = (ConstraintLayout) findViewById(R.id.exercise_layout);
|
||||
continuousButton = (ImageButton) findViewById(R.id.button_continuous);
|
||||
prevButton = (ImageButton) findViewById(R.id.button_prev);
|
||||
nextButton = (ImageButton) findViewById(R.id.button_next);
|
||||
exerciseInfoButton = (ImageButton) findViewById(R.id.exercise_info_button);
|
||||
|
||||
progressBarBig = findViewById(R.id.progressBarBig);
|
||||
breakTimerTextBig = findViewById(R.id.breakTimerTextBig);
|
||||
bigProgressBarLayout = findViewById(R.id.bigProgressBarLayout);
|
||||
progressBarBig = (ProgressBar) findViewById(R.id.progressBarBig);
|
||||
breakTimerTextBig = (TextView) findViewById(R.id.breakTimerTextBig);
|
||||
bigProgressBarLayout = (ConstraintLayout) findViewById(R.id.bigProgressBarLayout);
|
||||
|
||||
setRepeatButtonStatus(repeatStatus);
|
||||
setContinuousButtonStatus(continuousStatus);
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ public class ExpandableListAdapter extends BaseExpandableListAdapter {
|
|||
LayoutInflater layoutInflater = (LayoutInflater) this.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
||||
convertView = layoutInflater.inflate(R.layout.help_list_item, parent, false);
|
||||
}
|
||||
TextView expandedListTextView = convertView.findViewById(R.id.expandedListItem);
|
||||
TextView expandedListTextView = (TextView) convertView.findViewById(R.id.expandedListItem);
|
||||
expandedListTextView.setText(expandedListText);
|
||||
return convertView;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,7 +25,10 @@ public class PrefManager {
|
|||
public static final String REPEAT_EXERCISES = "REPEAT_EXERCISES";
|
||||
public static final String EXERCISE_DURATION = "pref_exercise_time";
|
||||
public static final String KEEP_SCREEN_ON_DURING_EXERCISE = "pref_keep_screen_on_during_exercise";
|
||||
public static final String PREF_SCHEDULE_EXERCISE_ENABLED = "pref_schedule_exercise";
|
||||
public static final String PREF_SCHEDULE_EXERCISE_DAYS_ENABLED = "pref_schedule_exercise_daystrigger";
|
||||
public static final String PREF_SCHEDULE_EXERCISE_DAYS = "pref_schedule_exercise_days";
|
||||
public static final String PREF_SCHEDULE_EXERCISE_TIME = "pref_schedule_exercise_time";
|
||||
public static final String PREF_EXERCISE_CONTINUOUS = "pref_exercise_continuous";
|
||||
public static final String WORK_TIME = "WORK_TIME";
|
||||
|
||||
|
|
@ -58,6 +61,9 @@ public class PrefManager {
|
|||
.putInt(PREF_PICKER_HOURS, 1)
|
||||
.putLong(WORK_TIME, 1000L * 60L * 60L) // 1 hour
|
||||
.putString(EXERCISE_DURATION, "30")
|
||||
.putBoolean(PREF_SCHEDULE_EXERCISE_DAYS_ENABLED, false)
|
||||
.putBoolean(PREF_SCHEDULE_EXERCISE_ENABLED, false)
|
||||
.putLong(PREF_SCHEDULE_EXERCISE_TIME, 32400000L)
|
||||
.putBoolean(KEEP_SCREEN_ON_DURING_EXERCISE, true)
|
||||
.putBoolean(PREF_EXERCISE_CONTINUOUS, false)
|
||||
.putStringSet(PREF_SCHEDULE_EXERCISE_DAYS, new HashSet<String>(Arrays.asList("Mo","Di","Mi","Do","Fr","Sa","So")))
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ import android.widget.LinearLayout;
|
|||
import android.widget.TextView;
|
||||
|
||||
import org.secuso.privacyfriendlybreakreminder.R;
|
||||
import org.secuso.privacyfriendlybreakreminder.activities.ManageExerciseSetsActivity;
|
||||
import org.secuso.privacyfriendlybreakreminder.activities.TimerActivity;
|
||||
|
||||
/**
|
||||
|
|
@ -35,6 +36,9 @@ public class TutorialActivity extends AppCompatActivity {
|
|||
R.layout.tutorial_slide1,
|
||||
R.layout.tutorial_slide2,
|
||||
R.layout.tutorial_slide3,
|
||||
R.layout.tutorial_slide4,
|
||||
R.layout.tutorial_slide5,
|
||||
R.layout.tutorial_slide6
|
||||
};
|
||||
|
||||
private ViewPager viewPager;
|
||||
|
|
@ -62,10 +66,10 @@ public class TutorialActivity extends AppCompatActivity {
|
|||
|
||||
setContentView(R.layout.activity_tutorial);
|
||||
|
||||
viewPager = (ViewPager) findViewById(R.id.view_pager);
|
||||
dotsLayout = (LinearLayout) findViewById(R.id.layoutDots);
|
||||
btnSkip = (Button) findViewById(R.id.btn_skip);
|
||||
btnNext = (Button) findViewById(R.id.btn_next);
|
||||
viewPager = (ViewPager) findViewById(R.id.view_pager);
|
||||
dotsLayout = (LinearLayout) findViewById(R.id.layoutDots);
|
||||
btnSkip = (Button) findViewById(R.id.btn_skip);
|
||||
btnNext = (Button) findViewById(R.id.btn_next);
|
||||
|
||||
// adding bottom dots
|
||||
addBottomDots(0);
|
||||
|
|
@ -130,8 +134,8 @@ public class TutorialActivity extends AppCompatActivity {
|
|||
private void launchHomeScreen() {
|
||||
|
||||
if(prefManager.isFirstTimeLaunch()) {
|
||||
Intent intent = new Intent(TutorialActivity.this, TimerActivity.class);
|
||||
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
||||
Intent intent = new Intent(TutorialActivity.this, ManageExerciseSetsActivity.class);
|
||||
//intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
||||
prefManager.setFirstTimeLaunch(false);
|
||||
startActivity(intent);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,22 @@
|
|||
package org.secuso.privacyfriendlybreakreminder.receivers;
|
||||
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
|
||||
/**
|
||||
* @author Christopher Beckmann
|
||||
* @version 2.0
|
||||
* @since 03.11.2017
|
||||
* created 03.11.2017
|
||||
*/
|
||||
public class OnBootCompletedReceiver extends BroadcastReceiver {
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
|
||||
if(!"android.intent.action.BOOT_COMPLETED".equals(intent.getAction()))
|
||||
return;
|
||||
|
||||
TimerSchedulerReceiver.scheduleNextAlarm(context);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,158 @@
|
|||
package org.secuso.privacyfriendlybreakreminder.receivers;
|
||||
|
||||
import android.app.AlarmManager;
|
||||
import android.app.PendingIntent;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.ServiceConnection;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Build;
|
||||
import android.os.IBinder;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.content.WakefulBroadcastReceiver;
|
||||
|
||||
import org.secuso.privacyfriendlybreakreminder.service.TimerService;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Calendar;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import static org.secuso.privacyfriendlybreakreminder.activities.tutorial.PrefManager.PREF_SCHEDULE_EXERCISE_DAYS;
|
||||
import static org.secuso.privacyfriendlybreakreminder.activities.tutorial.PrefManager.PREF_SCHEDULE_EXERCISE_DAYS_ENABLED;
|
||||
import static org.secuso.privacyfriendlybreakreminder.activities.tutorial.PrefManager.PREF_SCHEDULE_EXERCISE_ENABLED;
|
||||
import static org.secuso.privacyfriendlybreakreminder.activities.tutorial.PrefManager.PREF_SCHEDULE_EXERCISE_TIME;
|
||||
import static org.secuso.privacyfriendlybreakreminder.activities.tutorial.PrefManager.WORK_TIME;
|
||||
|
||||
/**
|
||||
* @author Christopher Beckmann
|
||||
* @version 2.0
|
||||
* @since 03.11.2017
|
||||
* created 03.11.2017
|
||||
*/
|
||||
public class TimerSchedulerReceiver extends WakefulBroadcastReceiver {
|
||||
|
||||
private SharedPreferences mPref;
|
||||
private TimerService mTimerService;
|
||||
private ServiceConnection mServiceConnection = new ServiceConnection() {
|
||||
@Override
|
||||
public void onServiceConnected(ComponentName name, IBinder service) {
|
||||
TimerService.TimerServiceBinder binder = (TimerService.TimerServiceBinder) service;
|
||||
mTimerService = binder.getService();
|
||||
TimerSchedulerReceiver.this.startTimer();
|
||||
TimerSchedulerReceiver.scheduleNextAlarm(mTimerService.getApplicationContext());
|
||||
}
|
||||
@Override
|
||||
public void onServiceDisconnected(ComponentName name) {
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
// TODO: automatically set continuous mode?
|
||||
Intent timerIntent = new Intent(context, TimerService.class);
|
||||
context.getApplicationContext().startService(timerIntent);
|
||||
context.getApplicationContext().bindService(timerIntent, mServiceConnection, Context.BIND_AUTO_CREATE);
|
||||
|
||||
mPref = PreferenceManager.getDefaultSharedPreferences(context);
|
||||
}
|
||||
|
||||
private void startTimer() {
|
||||
mTimerService.startTimer(mPref.getLong(WORK_TIME, 1000L * 60L * 60L));
|
||||
}
|
||||
|
||||
public static void scheduleNextAlarm(@NonNull Context context) {
|
||||
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(context);
|
||||
|
||||
if(!pref.getBoolean(PREF_SCHEDULE_EXERCISE_ENABLED, false)) {
|
||||
deleteScheduledAlarm(context);
|
||||
return;
|
||||
}
|
||||
|
||||
long timestamp = pref.getLong(PREF_SCHEDULE_EXERCISE_TIME, 32400000);
|
||||
|
||||
|
||||
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
|
||||
|
||||
Intent automaticTimerIntent = new Intent(context, TimerSchedulerReceiver.class);
|
||||
PendingIntent automaticTimerPending = PendingIntent.getBroadcast(context, 0, automaticTimerIntent, PendingIntent.FLAG_UPDATE_CURRENT);
|
||||
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
calendar.setTimeInMillis(timestamp);
|
||||
calendar.set(Calendar.YEAR, Calendar.getInstance().get(Calendar.YEAR));
|
||||
calendar.set(Calendar.MONTH, Calendar.getInstance().get(Calendar.MONTH));
|
||||
calendar.set(Calendar.DAY_OF_MONTH, Calendar.getInstance().get(Calendar.DAY_OF_MONTH));
|
||||
calendar.set(Calendar.SECOND, 0);
|
||||
calendar.set(Calendar.MILLISECOND, 0);
|
||||
if(calendar.before(Calendar.getInstance())){
|
||||
calendar.add(Calendar.DAY_OF_MONTH, 1);
|
||||
}
|
||||
|
||||
if(pref.getBoolean(PREF_SCHEDULE_EXERCISE_DAYS_ENABLED, false)) {
|
||||
|
||||
Set<String> daySet = pref.getStringSet(PREF_SCHEDULE_EXERCISE_DAYS, new HashSet<String>(Arrays.asList("Mo","Di","Mi","Do","Fr","Sa","So")));
|
||||
boolean done = false;
|
||||
|
||||
for(int i = 0; i < 7; i++) {
|
||||
String currentDay;
|
||||
// TODO skip days that are not selected
|
||||
switch (calendar.get(Calendar.DAY_OF_WEEK)) {
|
||||
case Calendar.MONDAY:
|
||||
currentDay = "Mo";
|
||||
break;
|
||||
case Calendar.TUESDAY:
|
||||
currentDay = "Di";
|
||||
break;
|
||||
case Calendar.WEDNESDAY:
|
||||
currentDay = "Mi";
|
||||
break;
|
||||
case Calendar.THURSDAY:
|
||||
currentDay = "Do";
|
||||
break;
|
||||
case Calendar.FRIDAY:
|
||||
currentDay = "Fr";
|
||||
break;
|
||||
case Calendar.SATURDAY:
|
||||
currentDay = "Sa";
|
||||
break;
|
||||
case Calendar.SUNDAY:
|
||||
currentDay = "So";
|
||||
break;
|
||||
default:
|
||||
currentDay = "None";
|
||||
}
|
||||
|
||||
for(String day : daySet) {
|
||||
if(currentDay.equals(day)) {
|
||||
done = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(done) {
|
||||
break;
|
||||
}
|
||||
|
||||
calendar.add(Calendar.DAY_OF_MONTH, 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), automaticTimerPending);
|
||||
} else {
|
||||
alarmManager.setExact(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), automaticTimerPending);
|
||||
}
|
||||
}
|
||||
|
||||
private static void deleteScheduledAlarm(Context context) {
|
||||
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
|
||||
|
||||
Intent automaticTimerIntent = new Intent(context, TimerSchedulerReceiver.class);
|
||||
PendingIntent automaticTimerPending = PendingIntent.getBroadcast(context, 0, automaticTimerIntent, PendingIntent.FLAG_UPDATE_CURRENT);
|
||||
|
||||
alarmManager.cancel(automaticTimerPending);
|
||||
}
|
||||
}
|
||||
|
|
@ -12,7 +12,10 @@ import android.content.SharedPreferences;
|
|||
import android.os.Binder;
|
||||
import android.os.Bundle;
|
||||
import android.os.CountDownTimer;
|
||||
import android.os.Handler;
|
||||
import android.os.HandlerThread;
|
||||
import android.os.IBinder;
|
||||
import android.os.Looper;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.provider.Settings;
|
||||
import android.support.v4.app.NotificationCompat;
|
||||
|
|
@ -115,7 +118,7 @@ public class TimerService extends Service {
|
|||
.setWhen(0)
|
||||
.setOngoing(false)
|
||||
.setAutoCancel(true)
|
||||
.setSmallIcon(R.mipmap.ic_launcher)
|
||||
.setSmallIcon(R.mipmap.ic_notification)
|
||||
.setDefaults(Notification.DEFAULT_LIGHTS)
|
||||
.setVibrate(new long[] { 0, 1000, 1000, 1000, 1000, 1000, 1000 })
|
||||
.setSound(Settings.System.DEFAULT_NOTIFICATION_URI)
|
||||
|
|
@ -153,7 +156,7 @@ public class TimerService extends Service {
|
|||
unregisterReceiver(notificationPreferenceChangedReceiver);
|
||||
}
|
||||
|
||||
public synchronized void startTimer(long duration) {
|
||||
public synchronized void startTimer(final long duration) {
|
||||
if(!isRunning) {
|
||||
initialDuration = duration;
|
||||
|
||||
|
|
@ -170,10 +173,11 @@ public class TimerService extends Service {
|
|||
sendBroadcast(broadcast);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public synchronized void pauseTimer() {
|
||||
if(isRunning) {
|
||||
if (isRunning) {
|
||||
mTimer.cancel();
|
||||
isRunning = false;
|
||||
|
||||
|
|
@ -192,7 +196,7 @@ public class TimerService extends Service {
|
|||
}
|
||||
|
||||
public synchronized void resetTimer() {
|
||||
if(isRunning) {
|
||||
if (isRunning) {
|
||||
mTimer.cancel();
|
||||
mTimer = createTimer(initialDuration);
|
||||
mTimer.start();
|
||||
|
|
@ -203,7 +207,7 @@ public class TimerService extends Service {
|
|||
}
|
||||
|
||||
public synchronized void stopAndResetTimer() {
|
||||
if(isRunning) mTimer.cancel();
|
||||
if (isRunning) mTimer.cancel();
|
||||
isRunning = false;
|
||||
remainingDuration = initialDuration;
|
||||
|
||||
|
|
@ -263,7 +267,7 @@ public class TimerService extends Service {
|
|||
|
||||
if (intent != null) {
|
||||
|
||||
String action = intent.getAction();
|
||||
final String action = intent.getAction();
|
||||
|
||||
if (ACTION_START_TIMER.equals(action)) handleRestartTimer();
|
||||
else if (ACTION_PAUSE_TIMER.equals(action)) pauseTimer();
|
||||
|
|
@ -314,7 +318,7 @@ public class TimerService extends Service {
|
|||
builder.setPriority(NotificationCompat.PRIORITY_DEFAULT);
|
||||
builder.setWhen(0);
|
||||
builder.setProgress((int) initialDuration, (int) (initialDuration - remainingDuration), false);
|
||||
builder.setSmallIcon(R.mipmap.ic_launcher);
|
||||
builder.setSmallIcon(R.mipmap.ic_notification);
|
||||
builder.setOngoing(isRunning() || isPaused());
|
||||
|
||||
Intent intent = new Intent(this, TimerActivity.class);
|
||||
|
|
|
|||
|
|
@ -1,7 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="oval">
|
||||
<corners android:radius="80dip"/>
|
||||
<stroke android:color="@color/black" android:width="2dip"/>
|
||||
<solid android:color="@android:color/transparent"/>
|
||||
</shape>
|
||||
|
|
@ -1,6 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="oval">
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:shape="oval"
|
||||
tools:keep="@drawable/circle_white">
|
||||
<corners android:radius="80dip"/>
|
||||
<stroke android:color="@color/white" android:width="2dip"/>
|
||||
<solid android:color="@android:color/transparent"/>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 3.4 KiB |
9
app/src/main/res/drawable/ic_info_black_24dp.xml
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportHeight="24.0"
|
||||
android:viewportWidth="24.0">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zm1,15h-2v-6h2v6zm0,-8h-2V7h2v2z" />
|
||||
</vector>
|
||||
|
Before Width: | Height: | Size: 9 KiB |
|
Before Width: | Height: | Size: 5.5 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 22 KiB |
|
|
@ -31,6 +31,7 @@
|
|||
android:id="@+id/btn_next"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="@dimen/activity_horizontal_margin"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:background="@null"
|
||||
|
|
@ -41,6 +42,7 @@
|
|||
android:id="@+id/btn_skip"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/activity_horizontal_margin"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_alignParentStart="true"
|
||||
android:background="@null"
|
||||
|
|
|
|||
|
|
@ -18,6 +18,8 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:text="@string/slide1_heading"
|
||||
android:textColor="@android:color/white"
|
||||
android:textAlignment="center"
|
||||
android:gravity="center"
|
||||
android:textSize="@dimen/slide_title"
|
||||
android:textStyle="bold" />
|
||||
|
||||
|
|
|
|||
|
|
@ -16,6 +16,8 @@
|
|||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/slide2_heading"
|
||||
android:textAlignment="center"
|
||||
android:gravity="center"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/slide_title"
|
||||
android:textStyle="bold" />
|
||||
|
|
|
|||
|
|
@ -16,6 +16,8 @@
|
|||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/slide3_heading"
|
||||
android:textAlignment="center"
|
||||
android:gravity="center"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/slide_title"
|
||||
android:textStyle="bold" />
|
||||
|
|
|
|||
45
app/src/main/res/layout/tutorial_slide4.xml
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@color/colorAccent">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerInParent="true"
|
||||
android:gravity="center_horizontal"
|
||||
android:layout_centerVertical="true"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAlignment="center"
|
||||
android:gravity="center"
|
||||
android:text="@string/slide4_heading"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/slide_title"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<ImageView
|
||||
android:layout_width="@dimen/img_width_height"
|
||||
android:layout_height="@dimen/img_width_height"
|
||||
android:background="@mipmap/ic_splash"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="20dp"
|
||||
android:paddingLeft="@dimen/desc_padding"
|
||||
android:paddingRight="@dimen/desc_padding"
|
||||
android:text="@string/slide4_text"
|
||||
android:textAlignment="center"
|
||||
android:gravity="center"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/slide_desc" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</RelativeLayout>
|
||||
45
app/src/main/res/layout/tutorial_slide5.xml
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@color/colorAccent">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerInParent="true"
|
||||
android:gravity="center_horizontal"
|
||||
android:layout_centerVertical="true"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/slide5_heading"
|
||||
android:textColor="@android:color/white"
|
||||
android:textAlignment="center"
|
||||
android:gravity="center"
|
||||
android:textSize="@dimen/slide_title"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<ImageView
|
||||
android:layout_width="@dimen/img_width_height"
|
||||
android:layout_height="@dimen/img_width_height"
|
||||
android:background="@mipmap/ic_splash"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="20dp"
|
||||
android:paddingLeft="@dimen/desc_padding"
|
||||
android:paddingRight="@dimen/desc_padding"
|
||||
android:text="@string/slide5_text"
|
||||
android:textAlignment="center"
|
||||
android:gravity="center"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/slide_desc" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</RelativeLayout>
|
||||
45
app/src/main/res/layout/tutorial_slide6.xml
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@color/colorAccent">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerInParent="true"
|
||||
android:gravity="center_horizontal"
|
||||
android:layout_centerVertical="true"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/slide6_heading"
|
||||
android:textColor="@android:color/white"
|
||||
android:textAlignment="center"
|
||||
android:gravity="center"
|
||||
android:textSize="@dimen/slide_title"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<ImageView
|
||||
android:layout_width="@dimen/img_width_height"
|
||||
android:layout_height="@dimen/img_width_height"
|
||||
android:background="@mipmap/ic_splash"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="20dp"
|
||||
android:paddingLeft="@dimen/desc_padding"
|
||||
android:paddingRight="@dimen/desc_padding"
|
||||
android:text="@string/slide6_text"
|
||||
android:textAlignment="center"
|
||||
android:gravity="center"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/slide_desc" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</RelativeLayout>
|
||||
BIN
app/src/main/res/mipmap-hdpi/ic_notification.png
Normal file
|
After Width: | Height: | Size: 179 B |
BIN
app/src/main/res/mipmap-mdpi/ic_notification.png
Normal file
|
After Width: | Height: | Size: 160 B |
BIN
app/src/main/res/mipmap-xhdpi/ic_notification.png
Normal file
|
After Width: | Height: | Size: 198 B |
BIN
app/src/main/res/mipmap-xxhdpi/ic_notification.png
Normal file
|
After Width: | Height: | Size: 308 B |
BIN
app/src/main/res/mipmap-xxhdpi/ic_splash.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
app/src/main/res/mipmap-xxxhdpi/ic_notification.png
Normal file
|
After Width: | Height: | Size: 427 B |
|
|
@ -1,6 +1,43 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">Break Reminder</string>
|
||||
<string name="app_name">Pausen-Tool</string>
|
||||
|
||||
<!-- Tutorial -->
|
||||
<string name="slide1_heading">Willkommen</string>
|
||||
<string name="slide1_text">
|
||||
Willkommen bei Privacy Friendly Pausen-Tool!
|
||||
Diese App erinnert Sie daran, regelmäßig während der Arbeit Pausen einzulegen.
|
||||
Zusätzlich können Sie sich Übungen aussuchen, mit denen Sie Ihre Pause aktiv gestalten können.
|
||||
</string>
|
||||
|
||||
<string name="slide2_heading">Übungsset erstellen</string>
|
||||
<string name="slide2_text">
|
||||
Zuerst legen Sie fest, welche Art von Übungen Sie durchführen möchten. Dafür können Sie sich eigene „Übungssets“, also eigene Gruppen von Übungen, erstellen.
|
||||
Um ein neues Übungsset zu erstellen, klicken Sie rechts unten auf das Plus-Symbol. Geben Sie dann einen Namen für das Set ein und klicken Sie auf „Speichern“.
|
||||
</string>
|
||||
|
||||
<string name="slide3_heading">Übungen hinzufügen</string>
|
||||
<string name="slide3_text">
|
||||
Über den Editieren-Button unten rechts können Sie neue Übungen in das Set einfügen, indem Sie das Kästchen unter den bildlich dargestellten Übungen anklicken.
|
||||
Jede Übung dauert 30 Sekunden, die Dauer kann über die App-Einstellungen angepasst werden. Über die im oberen Bildschirmbereich aufgeführten Kategorien können Sie die Übungen filtern.
|
||||
</string>
|
||||
|
||||
<string name="slide4_heading">Übungsset auswählen</string>
|
||||
<string name="slide4_text">Bei jedem Start der App wählen Sie über den Pfeil oben rechts das Übungsset aus, das Sie in den nächsten Pausen verwenden möchten. Wählen Sie danach aus, in welchem Abstand Sie Pausen einlegen möchten und wie lange die Pause jeweils dauern soll. Starten Sie danach den Timer über den Play-Button.</string>
|
||||
|
||||
<string name="slide5_heading">Zeit für eine Pause</string>
|
||||
<string name="slide5_text">
|
||||
Sobald es Zeit für die erste Pause ist, meldet sich das Privacy Friendly Pausen-Tool.
|
||||
Tippen Sie auf die Benachrichtigung, um die Pause zu starten. Oben rechts sehen Sie, wie lange die Pause noch andauert.
|
||||
</string>
|
||||
|
||||
<string name="slide6_heading">Aktive Pause</string>
|
||||
<string name="slide6_text">
|
||||
Um mit den Übungen zu beginnen, klicken Sie auf das Play-Symbol. Möchten Sie eine Übung überspringen, klicken Sie auf das „Weiter“-Symbol, mit dem „Zurück“-Symbol können Sie eine Übung wiederholen.
|
||||
Mit dem ersten Symbol stellen Sie ein, dass die Übung automatisch mit Beginn der Pause startet, ohne dass Sie auf das Play-Symbol klicken müssen. Normalerweise werden so lange Übungen angezeigt, bis das Set einmal durchlaufen ist, auch wenn die Pause noch länger dauert. Durch Aktivieren des letzten Symbols wird das Übungsset so lange wiederholt, bis die Pause vorbei ist.
|
||||
</string>
|
||||
|
||||
|
||||
<string name="about_affiliation">In Zusammenarbeit mit</string>
|
||||
<string name="about_author">Die Autoren:</string>
|
||||
<string name="add">Hinzufügen</string>
|
||||
|
|
@ -30,7 +67,6 @@
|
|||
<string name="help_start_screen_title">Starttbildschirm</string>
|
||||
<string name="help_settings_screen_title">Einstellungsbildschirm</string>
|
||||
<string name="help_start_screen">1. Klicken Sie auf die Fläche, um die Profile einzusehen und auszuwählen.\n2. Die Uhr zeigt die Zeit an und fungiert als Knopf, der die Zeit starten und stoppen kann.\n3. Der Knopf startet und stopt die Zeit.\n4. Der Knopf setzt die Zeit zurück.</string>
|
||||
<string name="information">Information</string>
|
||||
<string name="interval">Arbeitszeit</string>
|
||||
<string name="disclaimer">DISCLAIMER Platzhalter</string>
|
||||
<string name="more_info">Mehr Information finden Sie hier:</string>
|
||||
|
|
@ -43,14 +79,9 @@
|
|||
<string name="pref_current_profile">Auswahl des Profils</string>
|
||||
<string name="pref_default_display_name">Zufall</string>
|
||||
<string name="pref_header_exercises">Profile bearbeiten</string>
|
||||
<string name="pref_header_notifications">Benachrichtigungen</string>
|
||||
<string name="pref_ringtone_silent">Lautlos</string>
|
||||
<string name="pref_title_display_name">Profil Name</string>
|
||||
<string name="pref_title_stayOn">Bildschirm bleibt an</string>
|
||||
<string name="pref_title_ringtone">Klingelton</string>
|
||||
<string name="tutorial_profile_description">Beim Klicken auf das aktuell ausgewählte Profils (\'Zufall\'), werden alle verfügbare Profile angezeigt.\n Sie können ein neues Profil durch das Klicken auf \'Neues Profil…\' erstellen.\n Die verfügbaren Profile können Sie in den Einstellungen ändern.\nAm Anfang existieren 3 voreingestellte Profile</string>
|
||||
<string name="tutorial_clock_description">Beim Klicken auf eins der beiden Symbole, startet die Uhr oder hält diese an</string>
|
||||
<string name="pref_title_timeLeft">Verbleibende Zeit</string>
|
||||
<string name="pref_title_vibrate">Vibration</string>
|
||||
<string name="profile_name">Profil Name</string>
|
||||
<string name="privacy_friendly">Diese Applikation gehört der Gruppe von Privacy Friendly Apps, entwickelt von der Technische Universität Darmstadt. Quellcode lizenziert unter GPLv3. Bilder Copyright TU Darmstadt und Google Inc.</string>
|
||||
|
|
@ -75,27 +106,6 @@
|
|||
<string name="tutorial_reset_description">Drücken Sie den Knopf, um die Uhr zurückzusetzen</string>
|
||||
<string name="type">Typ</string>
|
||||
|
||||
<string-array name="type_spinner">
|
||||
<item>Kopf</item>
|
||||
<item>Nacken</item>
|
||||
<item>Arme</item>
|
||||
<item>Rumpf</item>
|
||||
<item>Wirbelsäule</item>
|
||||
<item>Becken</item>
|
||||
<item>Beine</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="help_overview_strings">
|
||||
<item>Startbildschirm</item>
|
||||
<item>Einstellungen - Übersicht</item>
|
||||
<item>Einstellungen - Profile Settings</item>
|
||||
<item>Einstellungen - Benachrichtigungen</item>
|
||||
<item>Neues Profil Bildschirm</item>
|
||||
<item>Pausenbildschirm</item>
|
||||
<item>Haftungsausschluss</item>
|
||||
</string-array>
|
||||
|
||||
<string name="new_profile">Neues Profil…</string>
|
||||
<string name="all_exercises">Arme.Beine.Kopf.Nacken.Becken.Wirbelsäule.Rumpf.</string>
|
||||
<string name="about">Über</string>
|
||||
<string name="tutorial_help">Hilfe öffnen</string>
|
||||
|
|
@ -150,7 +160,6 @@
|
|||
<string name="remaining_time">Verbleibende Zeit:</string>
|
||||
<string name="set_contains_no_exercises">Dieses Übungsset enthält keine Übungen.</string>
|
||||
<string name="skip">Überspringen</string>
|
||||
<string name="slide1_heading">Willkommen!</string>
|
||||
<string name="title_activity_edit_exercise_set">Übungsset editieren</string>
|
||||
<string name="title_activity_tutorial">Tutorial</string>
|
||||
<string name="toast_please_select_an_item_to_delete">Bitte wählen Sie mindestens einen Eintrag zum Löschen aus.</string>
|
||||
|
|
|
|||
|
|
@ -1,124 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">Break Reminder</string>
|
||||
<string name="about_affiliation">En Affiliation avec</string>
|
||||
<string name="about_author">Les auteurs:</string>
|
||||
<string name="add">Ajouter</string>
|
||||
<string name="break_description">Description:</string>
|
||||
<string name="break_ex">Exécution de l\'exercice</string>
|
||||
<string name="break_execution">Exécution</string>
|
||||
<string name="break_explanation">Description de l\'exercise</string>
|
||||
<string name="cancel">Annuler</string>
|
||||
<string name="continuously">Si cochée, il n\'y aura pas de possibilité de sauter la pause</string>
|
||||
<string name="disclaimer">DISCLAIMER ESPACE RÉSERVÉ</string>
|
||||
<string name="do_you_want_to_take_the_break">Voulez-vous prendre la pause?</string>
|
||||
<string name="exercise_break">Pause</string>
|
||||
<string name="exercise_description">Assurez-vous de sélectionner quelques exercices! Si rien est sélectionné, il n\'y aura pas d\'exercices dans la pause!</string>
|
||||
<string name="exercise_repetition">Répétition</string>
|
||||
<string name="exercise_side">Côté</string>
|
||||
<string name="exercise_summary">Votre pause comprendra des exercices pour les sections suivantes:</string>
|
||||
<string name="exercise_type">Type d\'exercice</string>
|
||||
<string name="help">Aide</string>
|
||||
<string name="help_break_screen_title">Écran: pause</string>
|
||||
<string name="information">Information</string>
|
||||
<string name="interval">Temps de travail</string>
|
||||
<string name="more_info">Plus d\'informations peuvent être trouvées ici:</string>
|
||||
<string name="new_profile">Nouveau profil...</string>
|
||||
<string name="new_profile_break">Pause</string>
|
||||
<string name="new_profile_continuously">Démarrer la pause automatiquement </string>
|
||||
<string name="new_profile_select">Sélectionner</string>
|
||||
<string name="new_profile_emptyName">S\'il vous plaît entrer un nom pour le profil!</string>
|
||||
<string name="new_profile_doubleName">Entrez un autre nom, il existe déjà un profil avec le même nom!</string>
|
||||
<string name="pref_current_exercises">Choisissez des exercices</string>
|
||||
<string name="pref_current_profile">Choisissez un profil</string>
|
||||
<string name="pref_default_display_name">Hasard</string>
|
||||
<string name="pref_header_exercises">Modifier les profils</string>
|
||||
<string name="pref_header_notifications">Notifications</string>
|
||||
<string name="pref_ringtone_silent">Silencieux</string>
|
||||
<string name="pref_title_display_name">Nom du profil</string>
|
||||
<string name="pref_title_ringtone">Sonnerie</string>
|
||||
<string name="pref_title_stayOn">L\'écran reste allumé</string>
|
||||
<string name="pref_title_timeLeft">Temps restant</string>
|
||||
<string name="pref_title_vibrate">Vibration</string>
|
||||
<string name="privacy_friendly">Cette application fait partie de la groupe Privacy Friendly Apps développé par Technische Universität Darmstadt. Le code de source est licensée avec GPLv3. Les images sont protégé par la TU Darmstadt et Google Inc.</string>
|
||||
<string name="profile_name">Nom de profil</string>
|
||||
<string name="save">Sauvegarder</string>
|
||||
<string name="settings_break_summary">La valeur actuelle est $1</string>
|
||||
<string name="settings_break_title">Sélectionnez votre temps de pause</string>
|
||||
<string name="settings_dialog_message">Sélectionnez votre temps de travail</string>
|
||||
<string name="settings_doubleName">Les changements ne pouvaient être appliquées car il existe déjà un profil avec le même nom!</string>
|
||||
<string name="settings_emptyName">Les changements ne pouvaient être appliquées parce que le nom du profil était vide!</string>
|
||||
<string name="settings_summary">La valeur actuelle est de $1</string>
|
||||
<string name="settings_title">Sélectionnez votre temps de travail</string>
|
||||
<string name="settings_unit">Minutes</string>
|
||||
<string name="skip_the_break">Passer la pause</string>
|
||||
<string name="take_the_break">Prendre la pause</string>
|
||||
<string name="title_activity_settings">Paramètres</string>
|
||||
<string name="tutorial_clock">Démarrer/Arrêter l\'horloge</string>
|
||||
<string name="tutorial_clock_description">En appuyant sur l\'un d\'eux, l\'horloge démarre ou s\'arrête</string>
|
||||
<string name="tutorial_or">ou</string>
|
||||
<string name="tutorial_profile_description">En cliquant sur le profil actuel (\'Hasard\'), vous pouvez voir tous les profils actuellement disponibles. \n Vous pouvez ajouter de nouveaux profils en cliquant sur \'Nouveaux profils ...\' et modifier les profils actuels dans les paramètres\nAu début, il y aura 4 profils prédéfinis</string>
|
||||
<string name="tutorial_profiles">Sélectionnez le profil</string>
|
||||
<string name="tutorial_reset">Réinitialiser l\'horloge</string>
|
||||
<string name="tutorial_reset_description">Appuyez sur le bouton pour réinitialiser l\'horloge</string>
|
||||
<string name="type">Type</string>
|
||||
<string name="help_start_screen_title">Écran principal</string>
|
||||
<string name="help_break_screen">1. Région du corps de l\'exercice actuel\n2. L\'horloge montre le temps restant de la pause. Si vous cliquez dessus, le temps démarre ou s\'arrête.\n3.Si \'pause\' s\'affiche à l\'écran, vous êtes dans une pause de 10sec. Si l\'écran affiche \'coté 1/2\' ou \'répétition 1/2\' il faut faire l\'exercice demandé.\n4.Expliquation de la pose initiale.\n5. Description de l\'exercice</string>
|
||||
<string name="help_click_information">Pour voir les images en pleine grandeur, cliquer sur les images. Pour retourner à la grandeur initial re-cliquer sur l\'image.</string>
|
||||
|
||||
<string-array name="type_spinner">
|
||||
<item>Tête</item>
|
||||
<item>Nuque</item>
|
||||
<item>Bras</item>
|
||||
<item>Torse</item>
|
||||
<item>Colonne vertébrale</item>
|
||||
<item>Bassin</item>
|
||||
<item>Jambes</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="help_overview_strings">
|
||||
<item>Ècran principal</item>
|
||||
<item>Écran: paramètre - Aperçu</item>
|
||||
<item>Écran: paramètre - Paramètres de profil</item>
|
||||
<item>Écran: paramètre - Notification</item>
|
||||
<item>Écran: Créer un nouveau profil</item>
|
||||
<item>Écran: pause</item>
|
||||
<item>Désistement</item>
|
||||
</string-array>
|
||||
|
||||
<string name="standard_profile">Hasard,90,5,false,Bras.Jambes.Tête.Nuque.Bassin.Colonne vertébrale.Torse.;HautDuCorps,90,15,true,Bras.Nuque.Tête.;Torse,30,5,true,Colonne vertébrale.Torse.;BasDuCorps,30,5,true,Jambes.Bassin.;</string>
|
||||
<string name="tutorial_description">Bienvenue au Privacy Friendly Break Reminder</string>
|
||||
<string name="all_exercises">Jambes.Bras.Bassin.Colonne vertébrale.Torse.Nuque.Tête.</string>
|
||||
<string name="help_create_profile_screen">1. Choisissez le nom du profil\n2. Choisissez la durée de votre travail\n3. Choisissez le temps de la pause de ce profil\n4. Appuyez sur ‘sélectionner’, si vous voulez entrer dans l\'écran d\'exercice pour sélectionner les groupes musculaires pour l’entrainement de votre profil. Ignorer la touche, si vous ne voulez pas d’entrainement sur ce profil.\n5. Cocher la case si vous voulez prendre les pauses directement. Décochez là, si vous voulez choisir à chaque fois si vous voulez prendre la pause.</string>
|
||||
<string name="help_create_profile_screen_title">Écran: Créer un nouveau profil</string>
|
||||
<string name="help_settings_screen_title">Écran: paramètre</string>
|
||||
<string name="help_settings_screen">1. Ouvrez le tiroir de navigation et sélectionnez ‘Paramètres’\n2. Sélectionnez ‘Général’ pour entrer les paramètres du profil. Là, vous pouvez modifier le nom, le temps et les exercices du profil. \n3. Sélectionnez \'Notifications\' pour activer ou désactiver les notifications.</string>
|
||||
<string name="help_settings_screen1">1. Choisissez le profil pour changer\n2. Entrez le nouveau nom \n3. Modifiez le temps de travail \n4. Modifiez le temps de pause \n5. Vous pouvez choisir d\'activer le bouton \'continuellement\'. Dans ce cas, vous êtes obligé de prendre la pause. Si non, vous aurez l\'option de prendrela pause ou de passer directement aux exercises suivants.\n6. Choisissez les groupes musculaires que vous souhaitez entrainer durant les pauses.</string>
|
||||
<string name="help_settings_screen2">1. Sélectionnez une sonnerie.\n2. Choisissez si votre mobile doit vibrer lorsque l’horloge arrive à zéro. \n3. Choisissez si vous souhaitez des notifications sous forme de messages.\n4. Si le bouton est activé, l\'écran reste allumé quand vous êtes sur l\'écran principal.</string>
|
||||
<string name="help_start_screen">1. Zone pour sélectionner le profil \n2. L\'horloge affiche l\'heure et est cliquable. Elle commence et peut arrêter le temps.\n3. Ce bouton démarre et arrête le temps. \n4. Ce Bouton remet le temps</string>
|
||||
<string name="about">Sur</string>
|
||||
<string name="tutorial_help">Voir l\'aide</string>
|
||||
<string name="dialog_positive">D\'accord</string>
|
||||
<string name="new_profile_success">Exercices créé avec succès!</string>
|
||||
<string name="disclaimer_title">Désistement</string>
|
||||
<string name="settings_exercise_summary">Sélectionnez les parties du corps pour l\'entrainement</string>
|
||||
<string name="about_author_contributors">%s et contributeurs</string>
|
||||
<string name="help_general_breaks">Vous pouvez faire de l\'entrainement dans les pauses, mais vous n\'etes pas forcé! Il suffit de créer un nouveau profil et de ne pas sélectionnez d\'exercices pour faire une pause simple sans exercise.</string>
|
||||
<string name="help_general_information">Le \'privacy friendly break reminder\' vous aide à faire des pauses plus régulièrement et se mettre en forme avec des exercise pour toute le corps!</string>
|
||||
<string name="help_general_settings">Alternative, les profils et ces exercices peuvent être modifiés dans le paramètres du profils</string>
|
||||
<string name="help_general_title">Généralement</string>
|
||||
<string name="help_protection_permission">Autorisations</string>
|
||||
<string name="help_protection_text">Le Privacy Friendly Break Reminder utilise seulement l\'autorisation de vibration</string>
|
||||
<string name="help_protection_title">Politique de confidentialité</string>
|
||||
<string name="help_tipps_brac">D\'autres études scientifiques ont montré que, après 70 minutes de travail la plupart des gens sont pas très productive pour 20 minutes. Pour couper de cet effet, essayez de faire une pause de 10 minutes au bout de 60 minutes de travail, pour être plus efficace.</string>
|
||||
<string name="help_tipps_pomodoro">Des études scientifiques ont montré que, après 30 minutes de travail, nous commençons à perdre la concentration. Pour optimiser votre flux de travail prenez une pause de 5 minutes toutes les 30 minutes!</string>
|
||||
<string name="help_tipps_title"> Conseils</string>
|
||||
<string name="help_tipps_pomodoro_title">Pomodoro</string>
|
||||
<string name="help_tepps_brac_title">Basic Rest Activity Circle</string>
|
||||
<string name="help_support_title">Manuel du propriétaire</string>
|
||||
<string name="help_support_clock_title">Horloge interactive</string>
|
||||
<string name="help_support_clock_descr"> En appuyant sur l\'horloge à chaque étape de cette application, l\'horloge peut être démarré et arrêté .</string>
|
||||
<string name="help_support_next">En cliquant sur le bouton \'next\', l\'application va choisir un nouvel exercice dans la région du corps actuel. Dans le même temps l\'horloge sera remise à zéro sur la minute d\'avant, que le temps sera dépenser pleinement sur les exercices.</string>
|
||||
<string name="activity_title_break_reminder">Break Reminder</string>
|
||||
|
||||
</resources>
|
||||
|
|
@ -1,122 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">Break Reminder</string>
|
||||
<string name="about_affiliation"> В сотрудничестве с</string>
|
||||
<string name="about_author">Авторы:</string>
|
||||
<string name="add">Добавить</string>
|
||||
<string name="all_exercises">Руки.Ноги.Голова.Шея.Таз.Позвоночник.Туловище.</string>
|
||||
<string name="break_description">Описание:</string>
|
||||
<string name="break_ex">Исполнение упражнения</string>
|
||||
<string name="break_explanation">Описание упражнения</string>
|
||||
<string name="break_execution">Исполнение</string>
|
||||
<string name="cancel">Отмена</string>
|
||||
<string name="disclaimer">DISCLAIMER Заполнитель</string>
|
||||
<string name="do_you_want_to_take_the_break">Вы хотите взять перерыв?</string>
|
||||
<string name="continuously">Если выбран, у вас не будет возможности пропустить перерыв</string>
|
||||
<string name="exercise_break">Перерыв</string>
|
||||
<string name="exercise_description">Убедитесь в том, что вы выбрали несколько упражнений! Если ничего не выбрано, то у вас не будет ни одного упражнения в перерыве!</string>
|
||||
<string name="exercise_repetition">Повторение</string>
|
||||
<string name="exercise_side">Сторона</string>
|
||||
<string name="exercise_summary">Ваш перерыв будет содержать упражнения для следующих областей тела</string>
|
||||
<string name="exercise_type">Тип упражнения</string>
|
||||
<string name="help">Помощь</string>
|
||||
<string name="help_break_screen_title">Перерыв экран</string>
|
||||
<string name="help_create_profile_screen_title">Создание нового профиля экран</string>
|
||||
<string name="type">Тип</string>
|
||||
<string name="tutorial_description">Добро пожаловать в Privacy Friendly Break Reminder</string>
|
||||
<string name="tutorial_or">или</string>
|
||||
<string name="tutorial_profiles">Выберите профиль</string>
|
||||
<string name="tutorial_reset">Сбросить часы</string>
|
||||
<string name="tutorial_reset_description">Нажмите на кнопку, чтобы сбросить часы</string>
|
||||
<string name="take_the_break">Взять перерыв</string>
|
||||
<string name="skip_the_break">Пропустить перерыв</string>
|
||||
<string name="settings_title">Выберите длительность времени работы</string>
|
||||
<string name="settings_unit">Минут</string>
|
||||
<string name="title_activity_settings">Настройки</string>
|
||||
<string name="tutorial_clock">Запустить/Остановить часы</string>
|
||||
<string name="pref_default_display_name">Случайный</string>
|
||||
<string name="pref_header_notifications">Уведомления</string>
|
||||
<string name="pref_header_exercises">Редактирование профилей</string>
|
||||
<string name="standard_profile">Случайный,90,5,false,Руки.Ноги.Голова.Шея.Таз.Позвоночник.Туловище.;Талия вверх,90,15,true,Руки.Шея.Голова.;Корпус,30,5,true,Позвоночник.Туловище.;Нижний Корпус,30,5,true,Ноги.Таз.;</string>
|
||||
<string name="pref_ringtone_silent">Без звука</string>
|
||||
<string name="pref_title_display_name">Имя профиля</string>
|
||||
<string name="pref_title_ringtone">Рингтон</string>
|
||||
<string name="pref_title_stayOn">Экран остается включенным</string>
|
||||
<string name="pref_title_vibrate">Вибрация</string>
|
||||
<string name="privacy_friendly">Это приложение принадлежит группе Privacy Friendly Apps, разработано в Technische Universität Darmstadt. Исходники кода лицензированны под GPLv3. Авторские права изображений TU Darmstadt и Google Inc.</string>
|
||||
<string name="profile_name">Имя профиля</string>
|
||||
<string name="interval">Интервал</string>
|
||||
<string name="information">Информация</string>
|
||||
<string name="more_info">Более подробную информацию можно найти здесь</string>
|
||||
<string name="new_profile">Новый профиль...</string>
|
||||
<string name="help_start_screen_title">Главный экран</string>
|
||||
<string name="help_settings_screen_title">Экран настроек</string>
|
||||
<string name="new_profile_break">Перерыв</string>
|
||||
<string name="new_profile_doubleName">Введите другое имя, профиль с таким же именем уже существует!</string>
|
||||
<string name="new_profile_continuously">Начать паузу автоматически</string>
|
||||
<string name="new_profile_select">Выбрать</string>
|
||||
<string name="pref_current_exercises">Выберите упражнения</string>
|
||||
<string name="pref_current_profile">Выберите профиль</string>
|
||||
<string name="save">Сохранить</string>
|
||||
<string name="pref_title_timeLeft">Оставшееся время</string>
|
||||
<string name="settings_break_summary">Текущая величина $1</string>
|
||||
<string name="settings_break_title">Выберите длительность времени перерыва</string>
|
||||
<string name="settings_dialog_message">Выберите длительность времени работы</string>
|
||||
<string name="settings_doubleName">Изменения не могут быть применены, так как уже существует профиль с таким же именем!</string>
|
||||
<string name="settings_emptyName">Изменения не могут быть применены, так как иия профиля было пусто!</string>
|
||||
<string name="settings_summary">Текущая величина $1</string>
|
||||
<string name="new_profile_emptyName">Пожалуйста введите имя для профиля!</string>
|
||||
<string name="tutorial_clock_description">Нажимая на одну из них, часы начинаются или остановливаются</string>
|
||||
<string name="help_click_information">Для просмотра изображений в реальном размере просто нажмите на них. Чтобы вернуться назад, нажмите ище раз на изображение!</string>
|
||||
<string name="tutorial_profile_description">При нажатии на текущем профиле (\'Случайный\'), вы увидите все доступные профили. Нажав на \'Новый Профиль...\', вы можете добавить новый профиль, и изменить существующих в настойках.\nВ начале есть 4 предустановленных профилей.</string>
|
||||
<string name="help_break_screen">1. Область тела вашего текущего упражнения.\n2.Часы показывают время, оставшееся на перерыв. Если вы нажмете на них, они запускаются или останавливаются.\n3. Если показывает \'Перерыв\', тогда у вас в данный момент перерыв между упражнениями и вы видите изображение для следущего упражнения. Если показывает \'Сторона 1/2\', то вы должны выполнить упражнение, как показано на изображение. Если показывает \'Повторение 1/2\', то вы просто повторите текущее упражнение.\n4. Объяснение того, как следует выполнять упражнение.\n5. Описание текущего упражнения. </string>
|
||||
<string name="help_create_profile_screen">1. Выберите имя профиля.\n2. Выберите длительность времени работы.\n3. Выберите длительность времени перерыва \n4. Нажмите на \'Выбрать\' чтобы выбрать упражнения для вас. Если вы не хотите упражнения в перерыве, игнорировайте эту кнопку \n5. Если выбрано, вы не можете пропустить перерыв.</string>
|
||||
<string name="help_settings_screen">1. Откройте меню страницы в верхнем левом углу и выберите \'Настройки\'.\n2. Выберите \'Общие\', чтобы открыть настройки профиля\n3. Выберите \'Уведомления\' aus, чтобы включить или отключить уведомления.</string>
|
||||
<string name="help_settings_screen1">1. Выберите профиль.\n2. Введите новое имя.\n3. Выберите длительность времени работы.\n4. Выберите длительность времени перерыва.\n5. Выберите \'Беспрерывно\', если вы не хотите пропустить перерыв.\n6. Выберите участки тела, которые вы хотите тренировать в вашем перерыве.</string>
|
||||
<string name="help_settings_screen2">1. Выберите мелодию.\n2. Если выбрано, ваше устройство будет вибрировать.\n3. Если выбрано, уведомление будет показывать, сколько времени до перерыва осталось.\n4. Если выбрано, главный экран остается включенным.</string>
|
||||
<string name="help_start_screen">1. Нажмите на область для просмотра и выбора профиля.\n2. Часы показывают время и действует как кнопка, которая может запускать и останавливать время.\n3. Кнопка запускает и останавливает часы.\n4. Кнопка сбрасывает время.</string>
|
||||
|
||||
<string-array name="type_spinner">
|
||||
<item>Голова</item>
|
||||
<item>Шея</item>
|
||||
<item>Руки</item>
|
||||
<item>Туловище</item>
|
||||
<item>Позвоночник</item>
|
||||
<item>Таз</item>
|
||||
<item>Ноги</item>
|
||||
</string-array>
|
||||
<string name="about">О нас</string>
|
||||
<string name="dialog_positive">Потверждаю</string>
|
||||
<string name="new_profile_success">Упражнения созданы! </string>
|
||||
<string name="tutorial_help">Просмотр помощи</string>
|
||||
|
||||
<string-array name="help_overview_strings">
|
||||
<item>Главный экран</item>
|
||||
<item>Настройки - Обзор</item>
|
||||
<item>Настройки - Профиль настройки</item>
|
||||
<item>Настройки - Уведомления</item>
|
||||
<item>Новый профиль экран</item>
|
||||
<item>Перерыв экран</item>
|
||||
<item>Дисклеймер</item>
|
||||
</string-array>
|
||||
<string name="disclaimer_title">Дисклеймер </string>
|
||||
<string name="settings_exercise_summary">Выберите части тела, которые вы хотите тренировать</string>
|
||||
<string name="about_author_contributors">%s и соучастники</string>
|
||||
<string name="help_tepps_brac_title">Basic Rest Activity Circle</string>
|
||||
<string name="help_tipps_title">Рекомендация</string>
|
||||
<string name="help_tipps_pomodoro_title">Помодоро</string>
|
||||
<string name="help_general_title">Общий</string>
|
||||
<string name="help_protection_permission">Разрешения</string>
|
||||
<string name="help_protection_title">Информация для защиты данных</string>
|
||||
<string name="help_general_breaks">Вы можете потренироваться во время перерывов, но вы не должны! Просто создайте новый профиль без упражнений, чтобы просто отдохнуть.</string>
|
||||
<string name="help_general_information">Privacy Friendly Break Reminder помогает вам принимать более регулярно перерывы и заниматься физическими упражнениями, чтобы получить хорошую физическую форму!</string>
|
||||
<string name="help_general_settings">Альтернативно профили перева и ихнее упражнения могут быть изменены в настройках профиля</string>
|
||||
<string name="help_protection_text">Privacy Friendly Break Reminder использует только разрешение для вибрации</string>
|
||||
<string name="help_tipps_brac">Другие научные исследования показали, что после 70-й минуте работы у большинства людей есть время простоя 20 минут. Чтобы избежать этого, попробуйте сделать 10-минутный перерыв после 60-й минуте работы, чтобы быть более эффективным.</string>
|
||||
<string name="help_tipps_pomodoro">Научные исследования показали, что после 30-минутного рабочего времени, мы начинаем терять концентрацию. Чтобы оптимизировать рабочий процесс, возьмите 5 минут перерыв каждые 30 минут!</string>
|
||||
<string name="help_support_title">Инструкция</string>
|
||||
<string name="help_support_next">При нажатии на кнопку \'Next\', приложение будет выбрать новое упражнение в текущей области тела. В то же время часы будут сброшены на следующую полную минуту, чтобы провестить время полностью на упражнениях.</string>
|
||||
<string name="help_support_clock_title">Интерактивные часы</string>
|
||||
<string name="help_support_clock_descr">При нажатии на часы возможно их запустить или остановить.</string>
|
||||
<string name="activity_title_break_reminder">Break Reminder</string>
|
||||
</resources>
|
||||
|
|
@ -5,6 +5,5 @@
|
|||
Refer to App Widget Documentation for margin information
|
||||
http://developer.android.com/guide/topics/appwidgets/index.html#CreatingLayout
|
||||
-->
|
||||
<dimen name="widget_margin">0dp</dimen>
|
||||
|
||||
</resources>
|
||||
|
|
@ -27,9 +27,4 @@
|
|||
<item name="android:textColor">@color/colorPrimary</item>
|
||||
</style>
|
||||
|
||||
<style name="timePickerStyle" parent="@android:style/Widget.Material.Light.TimePicker">
|
||||
<item name="android:headerBackground">@color/white</item>
|
||||
<item name="android:textColorPrimary">#ff0000</item>
|
||||
</style>
|
||||
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -12,7 +12,6 @@
|
|||
Refer to App Widget Documentation for margin information
|
||||
http://developer.android.com/guide/topics/appwidgets/index.html#CreatingLayout
|
||||
-->
|
||||
<dimen name="widget_margin">8dp</dimen>
|
||||
|
||||
<dimen name="dots_height">30dp</dimen>
|
||||
<dimen name="dots_margin_bottom">20dp</dimen>
|
||||
|
|
|
|||
|
|
@ -1,3 +1 @@
|
|||
<resources xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item name="ic_menu_manage" type="drawable">@android:drawable/ic_menu_manage</item>
|
||||
</resources>
|
||||
<resources xmlns:android="http://schemas.android.com/apk/res/android"></resources>
|
||||
|
|
|
|||
|
|
@ -3,128 +3,32 @@
|
|||
<string name="navigation_drawer_open" translatable="false">Open navigation drawer</string>
|
||||
<string name="navigation_drawer_close" translatable="false">Close navigation drawer</string>
|
||||
|
||||
<!-- Strings related to Settings -->
|
||||
<string name="title_activity_settings">Settings</string>
|
||||
<string name="information">Information</string>
|
||||
<string name="help">Help</string>
|
||||
<!-- Tutorial -->
|
||||
<string name="slide1_heading">Welcome to the Privacy Friendly Break Reminder!</string>
|
||||
<string name="slide1_text">This app reminds you to regularly take breaks during your work. Additionally, you can choose from a set of exercises, that can help you to spend your break more active.</string>
|
||||
|
||||
<!-- settings for Notifications -->
|
||||
<string name="pref_header_notifications">Notifications</string>
|
||||
<string name="pref_title_ringtone">Ringtone</string>
|
||||
<string name="pref_ringtone_silent">Silent</string>
|
||||
<string name="pref_title_stayOn">Screen stays on</string>
|
||||
<string name="pref_title_timeLeft">Time left</string>
|
||||
<string name="pref_title_vibrate">Vibration</string>
|
||||
<string name="slide2_heading">Create Exercise Sets</string>
|
||||
<string name="slide2_text">
|
||||
First you specify, what type of exercise you want to complete.
|
||||
For that, you can create exercise sets, that contain a group of exercises.
|
||||
To create a new exercise set, tap the plus icon on the lower right.
|
||||
Then just specify a name for the set and tap "save".
|
||||
</string>
|
||||
|
||||
<string name="add">Add</string>
|
||||
<string name="save">Save</string>
|
||||
<string name="cancel">Cancel</string>
|
||||
<string name="slide3_heading">Add Exercises</string>
|
||||
<string name="slide3_text">With the edit button in the lower right you can add new exercises to a set by tapping the checkboxes below the pictures of the exercises. Every exercise is set to be done 30 seconds. This duration can be changed in the settings. You can also filter the exercise list using the filter buttons at the top.</string>
|
||||
|
||||
<!-- settings for AboutActivity -->
|
||||
<string name="about">About</string>
|
||||
<string name="app_name_long" translatable="false">Privacy Friendly Break Reminder</string>
|
||||
<string name="version_number" translatable="false">Version</string>
|
||||
<string name="about_author">Authors: </string>
|
||||
<string name="about_author_names" translatable="false">Christopher Beckmann, Sergej Alexeev,\nJannik Schildknecht</string>
|
||||
<string name="about_author_contributors">%s and contributors.</string>
|
||||
<string name="about_affiliation">In affiliation with</string>
|
||||
<string name="more_info">More Information can be found on:</string>
|
||||
<string name="github" translatable="false"><a href="https://github.com/SecUSo/privacy-friendly-break-reminder">Github-Repo</a></string>
|
||||
<string name="url" translatable="false"><a href="https://www.secuso.org/pfa">SECUSO-Website</a></string>
|
||||
<string name="slide4_heading">Choose Exercise Set</string>
|
||||
<string name="slide4_text">You can choose the exercise set you want to use during the breaks by tapping the little arrow icon in the top right corner. Select how long you want to work and how long your break should be. Start the timer by pressing the play button.</string>
|
||||
|
||||
<string name="slide5_heading">Time For A Break</string>
|
||||
<string name="slide5_text">As soon as it\'s time for the break, the break reminder will notify you. Tap the notification to start the break. You can see how much time is left for the break in the top left corner.</string>
|
||||
|
||||
<string name="slide6_heading">Active Break</string>
|
||||
<string name="slide6_text">To start with the exercises, tap the play button. If you want to skip an exercise, press the skip button. With the back button you can repeat an exercise or go back to one you have already done. If you activate the clock within the circular arrow button, the exercises will start to run automatically after the previous is completed. Normally the exercises are shown until every exercise has been done once. By activating the repeat button on the right, the exercise set will be repeated until the break is over.</string>
|
||||
|
||||
|
||||
<string-array name="help_overview_strings">
|
||||
<item>Main Screen</item>
|
||||
<item>Settings Screen - Overview</item>
|
||||
<item>Settings Screen - Profile Settings</item>
|
||||
<item>Settings Screen - Notification</item>
|
||||
<item>New Profile Screen</item>
|
||||
<item>Break Screen</item>
|
||||
<item>Disclaimer</item>
|
||||
</string-array>
|
||||
|
||||
<!-- settings for BreakActivity -->
|
||||
<string name="break_description">Description:</string>
|
||||
<string name="break_execution">Execution:</string>
|
||||
|
||||
<!-- settings for HelpActivity -->
|
||||
<string name="help_start_screen">1. Spinner to select the profile \n2. Clock shows time and is clickable. Can starts and stop the time. \n3. Button starts and stops the time. \n4. Resets the time</string>
|
||||
<string name="help_start_screen_title">Main Screen</string>
|
||||
<string name="help_settings_screen">1. Open the drawer and select \'Settings\' \n2. Select \'General\' to enter the profile settings. There you can change name, time and exercises of the profile. \n3. Select \'Notifications\' to activate or deactivate notifications. </string>
|
||||
<string name="help_settings_screen2">1. Select a ringtone. \n2. Choose if the mobile phone should vibrate, when the countdown ends. \n3. Choose if you want message notifications.\n4. If the flag is set the screen will stay on, while on main screen.</string>
|
||||
<string name="help_settings_screen1">1. Choose the profile to change \n2. Enter the new name \n3. Alter the working time \n4. Alter the break time \n5. Choose if the \'Continuously\' flag is set or not. If it is, the break will start directly. If not, you can choose to take or to skip it. \n6. Choose the sections you want to train in the breaks.</string>
|
||||
<string name="help_settings_screen_title">Settings Screen</string>
|
||||
<string name="help_create_profile_screen">1. Choose the name of the profile \n2. Choose your work-time\n3. Choose the break-time of this profile \n4. Press on \'Select\', if you want to enter the exercise screen to select the training region of your profile. Ignore it, if you don\'t want to train on this profile. \n5. Check it if you want to take the break directly. Uncheck it, if you want to decide every time if you\'ll take the break.</string>
|
||||
<string name="help_create_profile_screen_title">Create New Profile Screen</string>
|
||||
<string name="help_break_screen_title">Break Screen</string>
|
||||
<string name="help_break_screen">1. Body section for your current exercise. \n2. Clock shows remaining time for the break. If you click on it, it starts or stops.\n3. If it shows \'Break\', it means you have currently break between the exercises and you see the image for the next exercise. If it shows \'Side left or Side right\' then you have to perform the exercise as shown in the picture. If it shows \'Repetition\' then you just repeat current exercise.\n4. Explanation of how the exercise should be performed.\n5. Description of current exercise.</string>
|
||||
<string name="help_click_information">To see the images in real size simply click on them. To return back to this view re-click on the image!</string>
|
||||
|
||||
<!-- settings for Disclaimer -->
|
||||
<string name="disclaimer">DISCLAIMER PLACEHOLDER</string>
|
||||
<string name="disclaimer_title">Disclaimer</string>
|
||||
|
||||
<!-- settings for TutorialActivity -->
|
||||
<string name="tutorial_profiles">Select profiles</string>
|
||||
<string name="tutorial_reset_description">Press the button to reset the clock</string>
|
||||
<string name="tutorial_reset">Reset the clock</string>
|
||||
<string name="tutorial_clock_description">By pressing one of them, the clock starts or stops</string>
|
||||
<string name="tutorial_or">or</string>
|
||||
<string name="tutorial_profile_description">By clicking on the current profile (\'Random\'), you will see all the currently available profiles. \nYou can add new profiles by clicking on \'New Profiles…\' and edit the current ones in the settings\nIn the beginning there will be 4 predefined profiles</string>
|
||||
<string name="tutorial_clock">Start/Stop the clock</string>
|
||||
<string name="tutorial_description">Welcome to the Privacy Friendly Break Reminder</string>
|
||||
<string name="pref_current_profile_value" translatable="false">0</string>
|
||||
<string name="tutorial_help">View Help</string>
|
||||
|
||||
<string name="all_exercises">Legs.Arms.Pelvis.Spinal Column.Torso.Neck.Head.</string>
|
||||
<string name="dialog_positive">Okay</string>
|
||||
<string name="new_profile_success">Exercises successfully created!</string>
|
||||
<string name="help_general_title">General</string>
|
||||
<string name="help_general_information">The privacy friendly break reminder helps you to take more regularly breaks and to exercise and get fit!</string>
|
||||
<string name="help_general_breaks">You can work out during the breaks, but you don\'t have to! Just create a new profile without exercises to take a simple break.</string>
|
||||
<string name="help_general_settings">Alternatively the break profiles and their exercises can be changed in the profile settings</string>
|
||||
<string name="help_tipps_title">Tips</string>
|
||||
<string name="help_tipps_pomodoro">Scientific studies have shown, that after a 30 minute work-time we start to lose concentration. To optimize your workflow take a 5 minute break every 30 minutes!</string>
|
||||
<string name="help_tipps_brac">Other scientific studies have shown, that after 70 minute of work most people have a down time of 20 minutes. To cut of this effect, try to make a 10 minute break after 60 minute of work, to be more efficient.</string>
|
||||
<string name="help_protection_title">Information for data protection</string>
|
||||
<string name="help_protection_permission">Permissions</string>
|
||||
<string name="help_protection_text">The Privacy Friendly Break Reminder only uses the permission for vibration</string>
|
||||
<string name="help_tipps_pomodoro_title">Pomodoro</string>
|
||||
<string name="help_tepps_brac_title">Basic Rest Activity Circle</string>
|
||||
<string name="help_support_clock_title">Interactive clock</string>
|
||||
<string name="help_support_clock_descr">By pressing the clock in every stage of this app, the clock can be started and stopped.</string>
|
||||
<string name="help_support_next">By clicking on the \'next\' button, the app will choose a new exercise in the current body region. At the same time the clock will be reset on the next full minute, so the time will be spend fully on the exercises.</string>
|
||||
<string name="help_support_title">Instruction manual</string>
|
||||
<string name="privacy_friendly">This application belongs to the group of Privacy Friendly Apps developed by Technische Universität Darmstadt. Sourcecode licensed under GPLv3. Images copyright TU Darmstadt and Google Inc.</string>
|
||||
<string name="no_exercise_sets">No exercise sets available. Please create a new one.</string>
|
||||
<string name="activity_title_manage_exercise_sets">Exercise Sets</string>
|
||||
<string name="activity_title_edit_exercise_set">Edit Exercise Set</string>
|
||||
<string name="activity_title_new_exercise_set">New Exercise Set</string>
|
||||
<string name="dialog_add_exercise_set_title">Add New Exercise Set</string>
|
||||
<string name="activity_title_break_reminder">Break Reminder</string>
|
||||
<string name="dialog_add_exercise_set_name">Exercise Set Name</string>
|
||||
<string name="keep_editing">keep editing</string>
|
||||
<string name="discard">discard</string>
|
||||
<string name="dialog_discard_confirmation">Are you sure you want to discard the changes?</string>
|
||||
<string name="activity_title_exercise">Exercise</string>
|
||||
<string name="title_activity_tutorial">Tutorial</string>
|
||||
|
||||
<string name="okay">Okay</string>
|
||||
<string name="next">Next</string>
|
||||
<string name="skip">Skip</string>
|
||||
|
||||
<!-- ### TUTORIAL DIALOG ### -->
|
||||
<string name="slide1_heading">Welcome!</string>
|
||||
<string name="slide1_text">This App serves as a guideline to see the basic design of Privacy Friendly Apps. Here introduce your app in one or two sentences.</string>
|
||||
|
||||
<string name="slide2_heading">Key Elements</string>
|
||||
<string name="slide2_text">Introduce key elements of your app. Do not introduce too many details.</string>
|
||||
|
||||
<string name="slide3_heading">Github and Guide</string>
|
||||
<string name="slide3_text">The sourcecode of this app is available at GitHub. For further explanations have a look at the Privacy Friendly App Guide.</string>
|
||||
<string name="title_activity_edit_exercise_set">Edit Exercise Set</string>
|
||||
|
||||
<string name="action_settings">Settings</string>
|
||||
<!-- Strings -->
|
||||
<string name="activity_edit_exercise_set_name_hint">Enter a name …</string>
|
||||
<string name="exercise_section_head">Head</string>
|
||||
<string name="exercise_section_neck">Neck</string>
|
||||
|
|
@ -138,9 +42,6 @@
|
|||
<string name="activity_title_help">Help</string>
|
||||
<string name="activity_title_about">About</string>
|
||||
<string name="dialog_leave_break_confirmation">Do you really want to cancel your break?</string>
|
||||
<string name="yes">Yes</string>
|
||||
<string name="no">No</string>
|
||||
<string name="exercise">Exercise</string>
|
||||
<string name="remaining_time">Time remaining:</string>
|
||||
<string name="activity_timer_choose_time">Select a work duration:</string>
|
||||
<string name="activity_timer_choose_break">Select a break duration:</string>
|
||||
|
|
@ -152,28 +53,52 @@
|
|||
<string name="description">Description</string>
|
||||
<string name="set_contains_no_exercises">This set contains no exercises.</string>
|
||||
<string name="take_a_break_now">Take a break now! Click here to do your chosen exercises.</string>
|
||||
<string name="title_activity_settings">Settings</string>
|
||||
<string name="no_exercise_sets">No exercise sets available. Please create a new one.</string>
|
||||
<string name="activity_title_manage_exercise_sets">Exercise Sets</string>
|
||||
<string name="activity_title_edit_exercise_set">Edit Exercise Set</string>
|
||||
<string name="dialog_add_exercise_set_title">Add New Exercise Set</string>
|
||||
<string name="activity_title_break_reminder">Break Reminder</string>
|
||||
<string name="dialog_add_exercise_set_name">Exercise Set Name</string>
|
||||
<string name="dialog_discard_confirmation">Are you sure you want to discard the changes?</string>
|
||||
<string name="title_activity_tutorial">Tutorial</string>
|
||||
|
||||
<string name="numberpicker_formatter" translatable="false">%02d</string>
|
||||
<!-- Preference Text -->
|
||||
<string name="pref_exercise_time">Exercise time (in Seconds)</string>
|
||||
<string name="pref_keep_screen_on_during_exercise">Keep screen on during exercise</string>
|
||||
<string name="pref_category_exercise">Exercise Settings</string>
|
||||
<string name="pref_category_schedule">schedule an exercise</string>
|
||||
<string name="pref_schedule_exercise_switch">Enable exercise schedule</string>
|
||||
<string name="pref_schedule_exercise_time">Schedule time</string>
|
||||
<string name="help_whatis">What is Privacy Friendly Break Reminder?</string>
|
||||
<string name="help_whatis_answer">Privacy Friendly Break Reminder is an app, that reminds you to take breaks during your work sessions. It allows you to select exercises, that are then shown during your break time.</string>
|
||||
<string name="help_permission">Which permissions does the app require?</string>
|
||||
<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="pref_title_new_message_notifications">New message notifications</string>
|
||||
<string name="pref_exercise_continuous">Continuous exercises</string>
|
||||
<string name="pref_exercise_continuous_summary">Start the next timer automatically</string>
|
||||
<string name="pref_schedule_exercise_days">Choose days</string>
|
||||
<string name="pref_schedule_exercise_daystrigger">Only trigger on certain days</string>
|
||||
<string name="pref_schedule_exercise_days_defaultsummary">No days selected.</string>
|
||||
<string name="pref_schedule_exercise_days_allselectedsummary">every day</string>
|
||||
|
||||
<!-- About -->
|
||||
<string name="about">About</string>
|
||||
<string name="app_name_long" translatable="false">Privacy Friendly Break Reminder</string>
|
||||
<string name="version_number" translatable="false">Version</string>
|
||||
<string name="about_author">Authors: </string>
|
||||
<string name="about_author_names" translatable="false">Christopher Beckmann, Sergej Alexeev,\nJannik Schildknecht</string>
|
||||
<string name="about_author_contributors">%s and contributors.</string>
|
||||
<string name="about_affiliation">In affiliation with</string>
|
||||
<string name="more_info">More Information can be found on:</string>
|
||||
<string name="github" translatable="false"><a href="https://github.com/SecUSo/privacy-friendly-break-reminder">Github-Repo</a></string>
|
||||
<string name="url" translatable="false"><a href="https://www.secuso.org/pfa">SECUSO-Website</a></string>
|
||||
<string name="privacy_friendly">This application belongs to the group of Privacy Friendly Apps developed by Technische Universität Darmstadt. Sourcecode licensed under GPLv3. Images copyright TU Darmstadt and Google Inc.</string>
|
||||
|
||||
<!-- Help -->
|
||||
<string name="help_whatis">What is Privacy Friendly Break Reminder?</string>
|
||||
<string name="help_whatis_answer">Privacy Friendly Break Reminder is an app, that reminds you to take breaks during your work sessions. It allows you to select exercises, that are then shown during your break time.</string>
|
||||
<string name="help_permission">Which permissions does the app require?</string>
|
||||
<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>
|
||||
|
||||
<!-- Button text -->
|
||||
<string name="pause">Pause</string>
|
||||
<string name="resume">Resume</string>
|
||||
<string name="stop">Stop</string>
|
||||
|
|
@ -181,6 +106,16 @@
|
|||
<string name="dismiss_and_dont_repeat">Dismiss & don\'t restart</string>
|
||||
<string name="snooze">Snooze</string>
|
||||
<string name="start_break">Start Break</string>
|
||||
<string name="okay">Okay</string>
|
||||
<string name="next">Next</string>
|
||||
<string name="skip">Skip</string>
|
||||
<string name="help">Help</string>
|
||||
<string name="save">Save</string>
|
||||
<string name="cancel">Cancel</string>
|
||||
<string name="yes">Yes</string>
|
||||
<string name="no">No</string>
|
||||
<string name="keep_editing">keep editing</string>
|
||||
<string name="discard">discard</string>
|
||||
|
||||
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -16,11 +16,6 @@
|
|||
<item name="colorAccent">@color/colorAccent</item>
|
||||
</style>
|
||||
|
||||
<style name="AppTheme.DatePickerDialog" parent="AppTheme.Dialog">
|
||||
<item name="android:textColorPrimary">@color/black</item>
|
||||
<item name="android:textColorSecondary">@color/black</item>
|
||||
</style>
|
||||
|
||||
<style name="AppTheme.AlertDialog" parent="AppTheme.Dialog">
|
||||
<item name="android:textColorPrimary">@color/black</item>
|
||||
<item name="android:textColorSecondary">@color/black</item>
|
||||
|
|
|
|||