Compare commits

...

70 Commits

Author SHA1 Message Date
Trevor Slocum 8f5db6906a Reset pre-1.6.6 custom sound preferences
This is required because newer versions of the application use the
preference value differently. Custom sounds are now copied to the
application's data folder, rather than being referenced externally.
2023-04-01 15:18:15 -07:00
Trevor Slocum df5b24076a Fix selecting custom sounds on Android 13+
Even though the storage permission is granted by default when running on
Android 13+, checking whether the permission was granted doesn't work.
2023-04-01 14:25:29 -07:00
Trevor Slocum 1e67644af2 Fix PendingIntents missing FLAG_MUTABLE
Even though PendingIntents are assumed to be mutable by default,
adding FLAG_MUTABLE is required when running on Android API 33+.
2023-04-01 10:29:35 -07:00
Trevor Slocum ed5afd4b83 Fix storage permission issues on newer Android devices
Resolves #85.
2023-03-27 21:45:53 -07:00
Trevor Slocum 0cb0b18a8e Fix custom sound setting summary
The full path to the file was displayed. Only the file name is displayed now.
2023-03-27 20:45:40 -07:00
Trevor Slocum d0550611f2 Remove ACRA 2023-03-27 20:00:28 -07:00
Trevor Slocum 2c8288e1a3 Fix and re-enable daily reminder feature
This feature was previously disabled when running on Android 8.0+.

Resolves #97.
2023-01-12 23:57:28 -08:00
Trevor Slocum 3049220130 Update translations 2023-01-12 23:51:09 -08:00
Trevor Slocum c8c22a6864 Add high resolution app icon 2022-06-14 12:06:40 -07:00
Trevor Slocum 5061d80091 Update translations 2022-06-14 12:06:16 -07:00
Trevor Slocum 5043eb47f2 Update translations 2021-10-08 12:38:50 -07:00
Trevor Slocum 631d6bbfbb Fix Black theme 2021-09-05 21:53:58 -07:00
Trevor Slocum fd07ba3dcf Update translations 2021-09-05 18:22:48 -07:00
Trevor Slocum cf6f195260 Update repository URLs 2021-08-28 13:39:51 -07:00
Trevor Slocum c95ce28245 Add Black theme
Resolves #92.
2021-07-08 23:57:40 -07:00
Trevor Slocum 82da364d86 Replace forum link with lemmy.ml meditation community 2021-04-30 19:44:49 -07:00
Trevor Slocum bfc6c5d8ea Remove link to app in Amazon Marketplace 2021-04-30 17:56:50 -07:00
Trevor Slocum 30c09cde62 Replace duplicate values-iw folder with symlink 2021-04-09 08:51:43 -07:00
Trevor Slocum f89b2af6f4 Update translations 2021-04-09 08:46:16 -07:00
Trevor Slocum 8b19aa90bd Remove code.rocketnine.space migration notice 2021-04-07 08:41:24 -07:00
Trevor Slocum 06a44b2cb7 Add code.rocketnine.space migration notice 2021-04-07 08:40:43 -07:00
Trevor Slocum 0660b901e6 Update translations 2021-03-27 12:33:51 -07:00
Trevor Slocum ef9146de0e Fix FilePicker intent action 2021-03-27 12:23:04 -07:00
Trevor Slocum c0ced6e825 Merge branch 'master' into 'master'
fix import and export on Android 10

See merge request tslocum/meditationassistant!6
2021-03-27 19:18:46 +00:00
Trevor Slocum d007141911 Update dependencies 2021-03-27 11:52:10 -07:00
Trevor Slocum 003f0e2a35 Merge branch 'fix-android-4.3-crash' into 'master'
fix android 4.3 (api 18) crash

See merge request tslocum/meditationassistant!7
2021-03-27 18:50:34 +00:00
MovingEarth 0c17304f95 fix android 4.3 (api 18) crash 2021-03-26 16:10:04 +01:00
MovingEarth e6d7861855 Remove question to see folder with exported sessions
Instead of asking the user if they want to see the folder with the exported sessions file, it will just show a toast with "Sessions exported" (translated if possible)
2021-02-06 18:33:27 +01:00
MovingEarth 1d2d6a5c5a Delete unused FileUtils 2021-02-06 18:13:56 +01:00
MovingEarth 0e1d22e8e3 fix file paths cannot always be found 2021-02-05 16:19:45 +01:00
MovingEarth 72c518cc4b fix import and export on Android 10 2021-01-31 18:16:53 +01:00
Trevor Slocum d601d8ba03 Reposition mindfulness bell sound preference 2021-01-14 11:27:21 -08:00
Trevor Slocum 4a61eed9d2 Update translations 2020-12-28 12:00:42 -08:00
Trevor Slocum 77339f02c1 Add mindfulness bell 2020-12-28 11:56:35 -08:00
Trevor Slocum 7793c3e888 Remove references to previously removed analytics 2020-12-15 13:13:27 -08:00
Trevor Slocum 4519eb4f7b Update translations 2020-12-15 12:54:40 -08:00
Trevor Slocum 71433fcb3b Add audio output setting (alarm/media/ringtone/notification)
Resolves #76.
2020-11-12 12:53:06 -08:00
Trevor Slocum 090c7a1f5d Update translations 2020-11-12 11:54:25 -08:00
Trevor Slocum 754a09f967 Display screenshots on F-Droid 2020-10-09 18:08:46 -07:00
Trevor Slocum a53e4f5992 Add community screenshot 2020-10-09 17:52:49 -07:00
Trevor Slocum 72e7d87e55 Add screenshots to README
Resolves #15.
2020-10-09 17:47:44 -07:00
Trevor Slocum 8681a9c29b Update translations 2020-09-24 09:12:56 -07:00
Trevor Slocum 205147a1f8 Update dependencies 2020-09-24 09:10:53 -07:00
Trevor Slocum fe9da0c854 Merge branch 'bugfix/android10_completion_sound' into 'master'
Fix late playing completion sound (Android 10)

Closes #62

See merge request tslocum/meditationassistant!5
2020-09-24 16:03:32 +00:00
Angus Gratton 48dd79b539 MainActivity: Play completion sound from alarm intent
On Android 10 (at least), the CompleteActivity is not started until the
app is activated again, so this fixes the problem where no completion sound
is played while the phone is asleep.

Closes #62
2020-09-24 21:13:44 +10:00
Angus Gratton 47827463f9 vibration: Fix spurious exception if vibration is disabled
(The disabled value is '' not 'none' for vibration)
2020-09-24 09:10:27 +10:00
Trevor Slocum 3bc4338959 Fix open/save file dialog
Resolves #74
2020-07-10 15:28:29 -07:00
Trevor Slocum f13f1c1e9e Add Bitcoin and Ethereum donation addresses 2020-05-01 09:31:30 -07:00
Trevor Slocum c0f267f872 Add timer position setting
Resolves #71
2020-03-14 09:15:53 -07:00
Trevor Slocum e179b93f6e Add custom vibration patterns
Resolves #28
2020-03-12 19:34:41 -07:00
Trevor Slocum 2798f0779b Add session volume preview
Resolves #52
2020-03-11 17:22:35 -07:00
Trevor Slocum 3168f28f4e Add MediNET overview to resources menu
Resolves #36
2020-03-11 16:50:00 -07:00
Trevor Slocum 73b62f4e12 Add presets to tutorial
Resolves #68
2020-03-11 16:30:57 -07:00
Trevor Slocum 2f752277e7 Update translations 2020-03-11 05:53:10 -07:00
Trevor Slocum f098f46048 Resolve duration not being preselected when editing 2020-03-11 05:44:59 -07:00
Trevor Slocum 170e079cb7 Add resources menu 2020-03-11 05:01:45 -07:00
Trevor Slocum cbabb02d82 Reimplement feature to share application 2020-02-27 07:45:00 -08:00
Trevor Slocum c1791a22be Remove usage of Google Play Services
Closes #19 and #39.
2020-02-27 07:23:39 -08:00
Trevor Slocum 13f42723a0 Synchronize access to WakeLocker
Resolves #72
2020-02-26 17:38:24 -08:00
Trevor Slocum ca8dd83fd4 Add download link to release APKs
Resolves #67
2020-01-01 09:00:28 -08:00
Trevor Slocum 4d3ac1467d Auto-capitalize sentences in session message field
Resolves #70
2020-01-01 07:50:24 -08:00
Trevor Slocum ab05bd785b Update translations 2019-12-20 08:14:49 -08:00
Trevor Slocum 09fb10833d Improve wake lock handling 2019-12-20 08:05:12 -08:00
Trevor Slocum 01085498ad Add BUILDING.md
Resolves #65
2019-12-20 07:33:53 -08:00
Trevor Slocum bac2460348 Increase session message size limit to 4096 characters
Resolves #64
2019-12-16 17:10:47 -08:00
Trevor Slocum 4c2d3e82af Migrate to AndroidX support library 2019-12-16 16:59:47 -08:00
Trevor Slocum 5e06606b7a Resolve menu icon display issue 2019-12-16 16:59:39 -08:00
Trevor Slocum ce3d1038e1 Merge branch 'fixes' into 'master'
Cleanup

See merge request tslocum/meditationassistant!4
2019-12-17 00:19:04 +00:00
Johannes Hoffmann ceaf03e8db Cleanup 2019-12-17 00:19:04 +00:00
Trevor Slocum 30f068755a Preload session sounds 2019-12-11 19:57:35 -08:00
151 changed files with 4691 additions and 4260 deletions

28
BUILDING.md Normal file
View File

@ -0,0 +1,28 @@
To build Meditation Assistant from source:
# Download
```git clone https://code.rocketnine.space/tslocum/meditationassistant.git```
# Import
Open [Android Studio](https://developer.android.com/studio/), select *Import
project* and choose the folder downloaded above.
# Build
Connect an Android device to your PC using
[ADB](https://developer.android.com/studio/command-line/adb) or start an
[emulated device](https://developer.android.com/studio/run/emulator).
Open the *Build Variants* panel and choose a variant.
Debug variants build quickly, while release variants are optimized.
Variants:
- opensource: F-Droid
- free: Google free version
- full: Google donate version
Click the green play button labeled *Run selected configuration* to build and
install the application.

View File

@ -1,6 +1,49 @@
1.6.7:
- Reset pre-1.6.6 custom sound preferences to accommodate storage permission changes
- Fix PendingIntents missing FLAG_MUTABLE on Android 13+
- Fix selecting custom sounds on Android 13+
1.6.6:
- Fix and re-enable daily reminder feature
- Fix storage permission issues on newer Android devices
1.6.5:
- Add Black theme
1.6.4:
- Fix importing/exporting sessions and playing custom sounds (thanks MovingEarth)
- Fix crash on Android 4.3+ devices (thanks MovingEarth)
1.6.3:
- Add mindfulness bell
1.6.2:
- Add audio output setting (alarm/media/ringtone/notification)
1.6.1:
- Fix delayed completion sound on Android 10.0+
1.6.0:
- Fix open/save file dialog
1.5.9:
- Add resources menu linking to how to meditate, /r/meditation, an overview of MediNET and replaying the tutorial
- Add presets to tutorial
- Add session volume preview
- Add custom vibration patterns
- Add timer position setting
- Resolve possible crash when waking device
- Resolve duration not being preselected when editing
- Remove usage of Google Play Services (was previously used in releases on Google Play and Amazon)
1.5.8:
- Resolve minor sound delay by preloading sounds
- Increase session message maximum length from 160 to 4096
1.5.7:
- Added preset widgets
- Removed "Set to silent" notification control setting (use "Alarms only" instead)
- Resolve sound/vibration delays on some devices
1.5.6:
- Sessions may now be imported from previous exports (CSV files)

View File

@ -1,15 +1,15 @@
apply plugin: 'com.android.application'
android {
compileSdkVersion 28
buildToolsVersion '28.0.3'
compileSdkVersion 33
buildToolsVersion '33.0.2'
defaultConfig {
minSdkVersion 16
targetSdkVersion 28
targetSdkVersion 33
versionCode 157
versionName "1.5.7"
versionCode 167
versionName "1.6.7"
applicationId "sh.ftp.rocketninelabs.meditationassistant"
manifestPlaceholders = [
@ -19,9 +19,9 @@ android {
multiDexEnabled true
}
lintOptions {
checkReleaseBuilds false
lint {
abortOnError false
checkReleaseBuilds false
}
compileOptions {
@ -30,8 +30,8 @@ android {
}
sourceSets {
free.java.srcDirs = ['src/free/java', 'src/shared/java']
full.java.srcDirs = ['src/full/java', 'src/shared/java']
free.java.srcDirs = ['src/free/java']
full.java.srcDirs = ['src/full/java']
opensource.java.srcDirs = ['src/opensource/java']
}
@ -75,32 +75,18 @@ android {
}
dependencies {
implementation "com.android.support:support-compat:28.0.0"
implementation "com.android.support:support-core-utils:28.0.0"
implementation "com.android.support:support-core-ui:28.0.0"
implementation "com.android.support:support-media-compat:28.0.0"
implementation "com.android.support:support-fragment:28.0.0"
implementation "com.android.support:recyclerview-v7:28.0.0"
implementation "com.android.support:design:28.0.0"
implementation "net.openid:appauth:0.7.1"
implementation "com.squareup.okio:okio:2.2.2"
implementation 'com.opencsv:opencsv:4.6'
implementation "net.margaritov.preference.colorpicker.ColorPickerPreference:ColorPickerPreference:1.0.0"
freeImplementation 'com.google.android.gms:play-services-base:16.1.0'
fullImplementation 'com.google.android.gms:play-services-base:16.1.0'
freeImplementation 'com.google.android.gms:play-services-analytics:16.0.8'
fullImplementation 'com.google.android.gms:play-services-analytics:16.0.8'
//freeImplementation 'com.google.android.gms:play-services-wearable:15.0.1'
//fullImplementation 'com.google.android.gms:play-services-wearable:15.0.1'
freeImplementation 'com.google.android.gms:play-services-appinvite:16.1.1'
fullImplementation 'com.google.android.gms:play-services-appinvite:16.1.1'
freeImplementation 'com.google.android.gms:play-services-fitness:16.0.1'
fullImplementation 'com.google.android.gms:play-services-fitness:16.0.1'
//noinspection GradleDynamicVersion
implementation 'ch.acra:acra-http:5.3.0'
implementation 'com.github.amlcurran.showcaseview:library:5.4.3'
implementation 'androidx.core:core:1.9.0'
implementation 'androidx.legacy:legacy-support-core-utils:1.0.0'
implementation 'androidx.legacy:legacy-support-core-ui:1.0.0'
implementation 'androidx.media:media:1.6.0'
implementation 'com.android.support:multidex:1.0.3'
implementation 'androidx.fragment:fragment:1.5.6'
implementation 'androidx.recyclerview:recyclerview:1.3.0'
implementation 'com.google.android.material:material:1.8.0'
implementation 'net.openid:appauth:0.7.1'
implementation 'com.opencsv:opencsv:5.2'
implementation 'com.squareup.okio:okio:2.8.0'
implementation 'com.nononsenseapps:filepicker:4.2.1'
//wearApp project(':MeditationAssistantWear')
// TODO: Uncomment when Wear app is ready
implementation 'com.github.amlcurran.showcaseview:library:5.4.3'
implementation 'net.margaritov.preference.colorpicker.ColorPickerPreference:ColorPickerPreference:1.0.0'
}

View File

@ -1,22 +1,14 @@
-verbose
#ACRA specifics
# Restore some Source file names and restore approximate line numbers in the stack traces,
# otherwise the stack traces are pretty useless
-keepattributes SourceFile,LineNumberTable
# ACRA needs "annotations" so add this...
# Note: This may already be defined in the default "proguard-android-optimize.txt"
# file in the SDK. If it is, then you don't need to duplicate it. See your
# "project.properties" file to get the path to the default "proguard-android-optimize.txt".
-keepattributes *Annotation*
# ACRA loads Plugins using reflection, so we need to keep all Plugin classes
-keep class * extends @android.support.annotation.Keep org.acra.** {*;}
# ACRA uses enum fields in annotations, so we have to keep those
-keep enum org.acra.** {*;}
-dontwarn android.support.**
# From https://github.com/square/okhttp
@ -38,10 +30,6 @@
-dontwarn android.webkit.**
-keep class com.google.android.gms.analytics.**
-keep class com.google.analytics.tracking.**
-dontwarn com.google.android.gms.analytics.**
-dontwarn com.google.analytics.tracking.**
-dontwarn com.google.android.gms.**
@ -95,8 +83,6 @@
-keep public class com.google.vending.licensing.ILicensingService
-keep public class com.android.vending.licensing.ILicensingService
-keep class org.acra.** { *; }
# For native methods, see http://proguard.sourceforge.net/manual/examples.html#native
-keepclasseswithmembernames class * {
native <methods>;

View File

@ -1,46 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="sh.ftp.rocketninelabs.meditationassistant">
<application>
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<meta-data
android:name="com.google.android.gms.analytics.globalConfigResource"
android:resource="@xml/analytics" />
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-6158454562572132~3051388356" />
<meta-data
android:name="com.google.android.backup.api_key"
android:value="AEdPqrEAAAAIqq_HCa56eFzfQpNSwYUIIytAyO6bh4fFUFUcYA" />
<receiver
android:name="com.google.android.gms.analytics.AnalyticsReceiver"
android:enabled="true"
tools:ignore="ExportedReceiver">
<intent-filter>
<action android:name="com.google.android.gms.analytics.ANALYTICS_DISPATCH" />
</intent-filter>
</receiver>
<!-- Register Wear data layer service
<service android:name=".WearListenerService">
<intent-filter>
<action android:name="com.google.android.gms.wearable.BIND_LISTENER"/>
</intent-filter>
</service> -->
<!-- Activities -->
<service
android:name="com.google.android.gms.analytics.AnalyticsService"
android:enabled="true"
android:exported="false" />
</application>
</manifest>

View File

@ -22,29 +22,7 @@
"certificate_hash": "f5f29854d4bac9d7ccf5d98a8a4b88f3beca47ff"
}
}
],
"services": {
"analytics_service": {
"status": 2,
"analytics_property": {
"tracking_id": "UA-71983-51"
}
},
"cloud_messaging_service": {
"status": 1,
"apns_config": []
},
"appinvite_service": {
"status": 2,
"other_platform_oauth_client": []
},
"google_signin_service": {
"status": 2
},
"ads_service": {
"status": 1
}
}
]
}
],
"ARTIFACT_VERSION": "1"

View File

@ -1,42 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="sh.ftp.rocketninelabs.meditationassistant">
<application>
<meta-data
android:name="com.google.android.backup.api_key"
android:value="AEdPqrEAAAAImiscQeePK7-fr6JMj14zZX47kvR0lSKdCgjnXQ" />
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<meta-data
android:name="com.google.android.gms.analytics.globalConfigResource"
android:resource="@xml/analytics" />
<receiver
android:name="com.google.android.gms.analytics.AnalyticsReceiver"
android:enabled="true"
tools:ignore="ExportedReceiver">
<intent-filter>
<action android:name="com.google.android.gms.analytics.ANALYTICS_DISPATCH" />
</intent-filter>
</receiver>
<service
android:name="com.google.android.gms.analytics.AnalyticsService"
android:enabled="true"
android:exported="false" />
<!-- Register Wear data layer service
<service android:name=".WearListenerService">
<intent-filter>
<action android:name="com.google.android.gms.wearable.BIND_LISTENER"/>
</intent-filter>
</service> -->
</application>
</manifest>

View File

@ -22,29 +22,7 @@
"certificate_hash": "3d6ac677add97cba5a13cdc6f1267e37c2b6ed2a"
}
}
],
"services": {
"analytics_service": {
"status": 2,
"analytics_property": {
"tracking_id": "UA-71983-51"
}
},
"cloud_messaging_service": {
"status": 1,
"apns_config": []
},
"appinvite_service": {
"status": 2,
"other_platform_oauth_client": []
},
"google_signin_service": {
"status": 2
},
"ads_service": {
"status": 1
}
}
]
}
],
"ARTIFACT_VERSION": "1"

View File

@ -3,204 +3,6 @@
xmlns:tools="http://schemas.android.com/tools"
package="sh.ftp.rocketninelabs.meditationassistant">
<application
android:name="sh.ftp.rocketninelabs.meditationassistant.MeditationAssistant"
android:allowBackup="true"
android:hardwareAccelerated="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/appNameShort"
android:theme="@style/MeditationDarkTheme">
<!-- Services -->
<activity
android:name="sh.ftp.rocketninelabs.meditationassistant.MainActivity"
android:configChanges="keyboard|keyboardHidden|screenSize|orientation"
android:label="@string/appNameShort"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="sh.ftp.rocketninelabs.meditationassistant.ALARM"></action>
</intent-filter>
</activity>
<!-- Receivers -->
<activity
android:name="sh.ftp.rocketninelabs.meditationassistant.SettingsActivity"
android:configChanges="keyboard|keyboardHidden|screenSize|orientation"
android:label="@string/settings"
android:launchMode="singleTop"
android:parentActivityName="sh.ftp.rocketninelabs.meditationassistant.MainActivity"
tools:ignore="UnusedAttribute">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="sh.ftp.rocketninelabs.meditationassistant.MainActivity" />
</activity>
<!-- Providers -->
<activity
android:name="sh.ftp.rocketninelabs.meditationassistant.AuthResultActivity"
android:configChanges="keyboard|keyboardHidden|screenSize|orientation"
android:label="@string/signInToMediNET"
android:launchMode="singleTop">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="sh.ftp.rocketninelabs.meditationassistant.MainActivity" />
</activity>
<!-- Widgets -->
<!--
<receiver
android:name=".WidgetStreakProvider1"
android:label="@string/widget1x1" >
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/widget_streak_1" />
</receiver>-->
<activity
android:name="sh.ftp.rocketninelabs.meditationassistant.MediNETActivity"
android:configChanges="keyboard|keyboardHidden|screenSize|orientation"
android:label=""
android:launchMode="singleTop">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="sh.ftp.rocketninelabs.meditationassistant.MainActivity" />
</activity>
<activity
android:name="sh.ftp.rocketninelabs.meditationassistant.CompleteActivity"
android:configChanges="keyboard|keyboardHidden|screenSize|orientation"
android:label="@string/sessioncomplete">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="sh.ftp.rocketninelabs.meditationassistant.MainActivity" />
</activity>
<!-- Activities -->
<activity
android:name="sh.ftp.rocketninelabs.meditationassistant.AboutActivity"
android:configChanges="keyboard|keyboardHidden|screenSize|orientation"
android:label="@string/about">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="sh.ftp.rocketninelabs.meditationassistant.MainActivity" />
</activity>
<activity
android:name="sh.ftp.rocketninelabs.meditationassistant.ProgressActivity"
android:configChanges="keyboard|keyboardHidden|screenSize|orientation"
android:label="@string/progress">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="sh.ftp.rocketninelabs.meditationassistant.MainActivity" />
</activity>
<activity
android:name="sh.ftp.rocketninelabs.meditationassistant.PresetWidgetActivity"
android:excludeFromRecents="true"
android:theme="@style/MeditationDarkDialogTheme">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_CONFIGURE" />
</intent-filter>
</activity>
<activity
android:name="com.nononsenseapps.filepicker.FilePickerActivity"
android:label="@string/appNameShort"
android:theme="@style/FilePickerTheme">
<intent-filter>
<action android:name="android.intent.action.GET_CONTENT" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="${applicationId}.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/nnf_provider_paths" />
</provider>
<receiver
android:name="sh.ftp.rocketninelabs.meditationassistant.DailyReminderReceiver"
android:exported="true">
<intent-filter>
<action android:name="sh.ftp.rocketninelabs.meditationassistant.DAILY_NOTIFICATION"></action>
<action android:name="sh.ftp.rocketninelabs.meditationassistant.DAILY_NOTIFICATION_UPDATED"></action>
<action android:name="android.intent.action.EXTERNAL_APPLICATIONS_AVAILABLE" />
<action android:name="android.intent.action.LOCKED_BOOT_COMPLETED" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.PACKAGE_REPLACED" />
<action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
<action android:name="android.intent.action.MY_PACKAGE_UNSUSPENDED" />
<data
android:path="${applicationId}"
android:scheme="package" />
</intent-filter>
</receiver>
<receiver
android:name=".WidgetPresetProvider1"
android:label="@string/widgetpreset1x1">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/widget_preset_1" />
</receiver>
<receiver
android:name=".WidgetPresetProvider2"
android:label="@string/widgetpreset2x1">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/widget_preset_2" />
</receiver>
<receiver
android:name=".WidgetPresetProvider3"
android:label="@string/widgetpreset3x1">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/widget_preset_3" />
</receiver>
<receiver
android:name=".WidgetStreakProvider2"
android:label="@string/widgetstreak2x1">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/widget_streak_2" />
</receiver>
<receiver
android:name=".WidgetStreakProvider3"
android:label="@string/widgetstreak3x1">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/widget_streak_3" />
</receiver>
<service android:name="sh.ftp.rocketninelabs.meditationassistant.WidgetPresetService"></service>
<service android:name="sh.ftp.rocketninelabs.meditationassistant.WidgetStreakService"></service>
</application>
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
tools:node="replace" />
@ -222,9 +24,236 @@
<uses-permission
android:name="android.permission.RECEIVE_BOOT_COMPLETED"
tools:node="replace" />
<uses-permission
android:name="android.permission.READ_EXTERNAL_STORAGE"
tools:node="replace" />
<uses-permission
android:name="android.permission.USE_EXACT_ALARM"
tools:node="replace" />
<uses-permission
android:name="android.permission.SCHEDULE_EXACT_ALARM"
tools:node="replace" android:maxSdkVersion="32" />
</manifest>
<application
android:name=".MeditationAssistant"
android:allowBackup="true"
android:hardwareAccelerated="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/appNameShort"
android:requestLegacyExternalStorage="true"
android:theme="@style/MeditationDarkTheme">
<!-- Services -->
<activity
android:name=".MainActivity"
android:configChanges="keyboard|keyboardHidden|screenSize|orientation"
android:label="@string/appNameShort"
android:launchMode="singleTask"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="sh.ftp.rocketninelabs.meditationassistant.ALARM" />
</intent-filter>
</activity> <!-- Receivers -->
<activity
android:name=".SettingsActivity"
android:configChanges="keyboard|keyboardHidden|screenSize|orientation"
android:label="@string/settings"
android:launchMode="singleTop"
android:parentActivityName=".MainActivity"
android:exported="false"
tools:ignore="UnusedAttribute">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="sh.ftp.rocketninelabs.meditationassistant.MainActivity" />
</activity> <!-- Providers -->
<activity
android:name=".AuthResultActivity"
android:configChanges="keyboard|keyboardHidden|screenSize|orientation"
android:label="@string/signInToMediNET"
android:exported="false"
android:launchMode="singleTop">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="sh.ftp.rocketninelabs.meditationassistant.MainActivity" />
</activity> <!-- Widgets -->
<!--
<receiver
android:name=".WidgetStreakProvider1"
android:label="@string/widget1x1" >
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/widget_streak_1" />
</receiver>
-->
<activity
android:name=".MediNETActivity"
android:configChanges="keyboard|keyboardHidden|screenSize|orientation"
android:label=""
android:launchMode="singleTop"
android:exported="false">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="sh.ftp.rocketninelabs.meditationassistant.MainActivity" />
</activity>
<activity
android:name=".CompleteActivity"
android:configChanges="keyboard|keyboardHidden|screenSize|orientation"
android:label="@string/sessioncomplete"
android:exported="false">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="sh.ftp.rocketninelabs.meditationassistant.MainActivity" />
</activity> <!-- Activities -->
<activity
android:name=".AboutActivity"
android:configChanges="keyboard|keyboardHidden|screenSize|orientation"
android:label="@string/about"
android:exported="false">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="sh.ftp.rocketninelabs.meditationassistant.MainActivity" />
</activity>
<activity
android:name=".ProgressActivity"
android:configChanges="keyboard|keyboardHidden|screenSize|orientation"
android:label="@string/progress"
android:exported="false">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="sh.ftp.rocketninelabs.meditationassistant.MainActivity" />
</activity>
<activity
android:name=".PresetWidgetActivity"
android:excludeFromRecents="true"
android:theme="@style/MeditationDarkDialogTheme"
android:exported="false">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_CONFIGURE" />
</intent-filter>
</activity>
<activity
android:name="com.nononsenseapps.filepicker.FilePickerActivity"
android:label="@string/appNameShort"
android:theme="@style/FilePickerTheme"
android:exported="false">
<intent-filter>
<action android:name="android.intent.action.GET_CONTENT" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/nnf_provider_paths" />
</provider>
<receiver
android:name=".DailyReminderReceiver"
android:exported="true"
android:directBootAware="true"
android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
<intent-filter>
<action android:name="sh.ftp.rocketninelabs.meditationassistant.DAILY_NOTIFICATION" />
<action android:name="sh.ftp.rocketninelabs.meditationassistant.DAILY_NOTIFICATION_UPDATED" />
<action android:name="android.intent.action.EXTERNAL_APPLICATIONS_AVAILABLE" />
<action android:name="android.intent.action.ACTION_BOOT_COMPLETED" />
<action android:name="android.intent.action.LOCKED_BOOT_COMPLETED" />
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.PACKAGE_REPLACED" />
<action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
<action android:name="android.intent.action.MY_PACKAGE_UNSUSPENDED" />
<data
android:path="${applicationId}"
android:scheme="package" />
</intent-filter>
</receiver>
<service
android:name=".DailyReminderService"
android:enabled="true"
android:exported="true"
android:label="Daily reminder service"
android:permission="android.permission.BIND_JOB_SERVICE" />
<receiver
android:name=".WidgetPresetProvider1"
android:label="@string/widgetpreset1x1"
android:exported="true">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/widget_preset_1" />
</receiver>
<receiver
android:name=".WidgetPresetProvider2"
android:label="@string/widgetpreset2x1"
android:exported="true">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/widget_preset_2" />
</receiver>
<receiver
android:name=".WidgetPresetProvider3"
android:label="@string/widgetpreset3x1"
android:exported="true">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/widget_preset_3" />
</receiver>
<receiver
android:name=".WidgetStreakProvider2"
android:label="@string/widgetstreak2x1"
android:exported="true">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/widget_streak_2" />
</receiver>
<receiver
android:name=".WidgetStreakProvider3"
android:label="@string/widgetstreak3x1"
android:exported="true">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/widget_streak_3" />
</receiver>
<service android:name=".WidgetPresetService" />
<service android:name=".WidgetStreakService" />
</application>
</manifest>

View File

@ -6,7 +6,6 @@ import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.NavUtils;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
@ -15,6 +14,8 @@ import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.core.app.NavUtils;
public class AboutActivity extends Activity {
public String license = "";
@ -29,8 +30,8 @@ public class AboutActivity extends Activity {
getActionBar().setDisplayHomeAsUpEnabled(true);
setContentView(R.layout.activity_about);
TextView txtAboutAppName = (TextView) findViewById(R.id.txtAboutAppName);
TextView txtAboutAppVersion = (TextView) findViewById(R.id.txtAboutAppVersion);
TextView txtAboutAppName = findViewById(R.id.txtAboutAppName);
TextView txtAboutAppVersion = findViewById(R.id.txtAboutAppVersion);
txtAboutAppName.setText(getString(R.string.appNameShort));
@ -43,11 +44,11 @@ public class AboutActivity extends Activity {
e.printStackTrace();
}
LinearLayout layAbout = (LinearLayout) findViewById(R.id.layAbout);
LinearLayout layAbout = findViewById(R.id.layAbout);
layAbout.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View arg0) {
ImageView charis = (ImageView) findViewById(R.id.charis);
ImageView charis = findViewById(R.id.charis);
charis.setVisibility(View.VISIBLE);
charis.startAnimation(AnimationUtils.loadAnimation(
getApplicationContext(), R.anim.spin));
@ -62,8 +63,6 @@ public class AboutActivity extends Activity {
return true;
}
});
getMeditationAssistant().utility.initializeTracker(this);
}
@Override
@ -90,12 +89,22 @@ public class AboutActivity extends Activity {
NavUtils.navigateUpFromSameTask(this);
return true;
} else if (i == R.id.action_share_app) {
try {
Intent intent = getMeditationAssistant().utility.getAppShareIntent();
startActivityForResult(intent, 1337);
} catch (Exception e) {
e.printStackTrace();
String shareURL;
if (BuildConfig.FLAVOR.equals("opensource")) {
shareURL = "https://f-droid.org/packages/" + getApplicationContext().getPackageName();
} else if (getMeditationAssistant().getMarketName().equals("google")) {
shareURL = "http://play.google.com/store/apps/details?id=" + getApplicationContext().getPackageName();
} else if (getMeditationAssistant().getMarketName().equals("amazon")) {
shareURL = "http://www.amazon.com/gp/mas/dl/android?p=" + getApplicationContext().getPackageName();
} else {
return true;
}
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("text/plain");
shareIntent.putExtra(Intent.EXTRA_TEXT, shareURL + " " + getString(R.string.invitationBlurb));
startActivity(Intent.createChooser(shareIntent, getString(R.string.share)));
return true;
} else if (i == R.id.action_rate) {
getMeditationAssistant().rateApp();
return true;
@ -104,26 +113,10 @@ public class AboutActivity extends Activity {
return super.onOptionsItemSelected(item);
}
@Override
public void onStart() {
super.onStart();
getMeditationAssistant().utility.trackingStart(this);
}
@Override
protected void onStop() {
super.onStop();
getMeditationAssistant().utility.trackingStop(this);
}
public void learnMore(View view) {
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(MeditationAssistant.URL_SOURCE)).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
}
public void openHowToMeditate(View view) {
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(MeditationAssistant.URL_MEDINET + "/howtomeditate")).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
}
public void openTranslate(View view) {
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(MeditationAssistant.URL_MEDINET + "/translate")).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
}

View File

@ -6,8 +6,9 @@ import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.Resources;
import android.net.Uri;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import net.openid.appauth.connectivity.ConnectionBuilder;
import net.openid.appauth.connectivity.DefaultConnectionBuilder;
@ -49,7 +50,7 @@ public final class AuthConfiguration {
AuthConfiguration config = sInstance.get();
if (config == null) {
config = new AuthConfiguration(context);
sInstance = new WeakReference<AuthConfiguration>(config);
sInstance = new WeakReference<>(config);
}
return config;

View File

@ -3,11 +3,12 @@ package sh.ftp.rocketninelabs.meditationassistant;
import android.app.Activity;
import android.os.Bundle;
import android.support.annotation.MainThread;
import android.support.annotation.Nullable;
import android.support.annotation.WorkerThread;
import android.util.Log;
import androidx.annotation.MainThread;
import androidx.annotation.Nullable;
import androidx.annotation.WorkerThread;
import net.openid.appauth.AppAuthConfiguration;
import net.openid.appauth.AuthState;
import net.openid.appauth.AuthorizationException;

View File

@ -2,11 +2,12 @@ package sh.ftp.rocketninelabs.meditationassistant;
import android.content.Context;
import android.content.SharedPreferences;
import android.support.annotation.AnyThread;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.util.Log;
import androidx.annotation.AnyThread;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import net.openid.appauth.AuthState;
import net.openid.appauth.AuthorizationException;
import net.openid.appauth.AuthorizationResponse;
@ -27,7 +28,7 @@ import java.util.concurrent.locks.ReentrantLock;
public class AuthStateManager {
private static final AtomicReference<WeakReference<AuthStateManager>> INSTANCE_REF =
new AtomicReference<>(new WeakReference<AuthStateManager>(null));
new AtomicReference<>(new WeakReference<>(null));
private static final String TAG = "AuthStateManager";

View File

@ -3,7 +3,6 @@ package sh.ftp.rocketninelabs.meditationassistant;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.text.TextUtils;
import android.util.DisplayMetrics;
import android.util.Log;
@ -19,6 +18,8 @@ import android.widget.LinearLayout;
import android.widget.TableLayout;
import android.widget.TextView;
import androidx.fragment.app.Fragment;
import java.util.Calendar;
import java.util.Locale;

View File

@ -37,7 +37,7 @@ public class CompleteActivity extends Activity {
setTheme(getMeditationAssistant().getMATheme());
setContentView(R.layout.activity_complete);
getMeditationAssistant().hideNotification(); // Called twice because it seems to help
getMeditationAssistant().hideSessionNotification(); // Called twice because it seems to help
if (getMeditationAssistant().getPrefs().getString("pref_full_screen", "").equals("always")) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
@ -79,9 +79,9 @@ public class CompleteActivity extends Activity {
}
getMeditationAssistant().unsetNotificationControl();
getMeditationAssistant().hideNotification(); // Called twice because it seems to help
getMeditationAssistant().hideSessionNotification(); // Called twice because it seems to help
EditText editSessionMessage = (EditText) findViewById(R.id.editSessionMessage);
EditText editSessionMessage = findViewById(R.id.editSessionMessage);
if (editSessionMessage.getText().toString().equals("")
&& getMeditationAssistant().getPrefs().getBoolean("pref_remembermessage", false)) {
editSessionMessage.setText(getMeditationAssistant().getPrefs().getString("lastmessage", ""));
@ -100,13 +100,13 @@ public class CompleteActivity extends Activity {
getMeditationAssistant().getMediNET().session.started = getMeditationAssistant()
.getTimeStartMeditate();
if (getMeditationAssistant().getTimerMode().equals("endat")) {
Log.d("MeditationAssistant", String.valueOf(Math.min(timestamp, getMeditationAssistant().getTimeToStopMeditate())) + " - "
+ String.valueOf(getMeditationAssistant().getTimeStartMeditate()) + " - " + String.valueOf(getMeditationAssistant().pausetime));
Log.d("MeditationAssistant", Math.min(timestamp, getMeditationAssistant().getTimeToStopMeditate()) + " - "
+ getMeditationAssistant().getTimeStartMeditate() + " - " + getMeditationAssistant().pausetime);
getMeditationAssistant().getMediNET().session.length = Math.min(timestamp, getMeditationAssistant().getTimeToStopMeditate())
- getMeditationAssistant().getTimeStartMeditate() - getMeditationAssistant().pausetime;
} else {
Log.d("MeditationAssistant", String.valueOf(timestamp) + " - "
+ String.valueOf(getMeditationAssistant().getTimeStartMeditate()) + " - " + String.valueOf(getMeditationAssistant().pausetime));
Log.d("MeditationAssistant", timestamp + " - "
+ getMeditationAssistant().getTimeStartMeditate() + " - " + getMeditationAssistant().pausetime);
getMeditationAssistant().getMediNET().session.length = timestamp
- getMeditationAssistant().getTimeStartMeditate() - getMeditationAssistant().pausetime;
}
@ -118,48 +118,41 @@ public class CompleteActivity extends Activity {
getMeditationAssistant().setTimeToStopMeditate(0);
Log.d("MeditationAssistant",
"Session length: "
+ String.valueOf(getMeditationAssistant().getMediNET().session.length)
"Session length: " + getMeditationAssistant().getMediNET().session.length
);
if (getMeditationAssistant().getMediNET().session.length > 0) {
TextView txtDuration = (TextView) findViewById(R.id.txtDuration);
TextView txtDuration = findViewById(R.id.txtDuration);
txtDuration.setText(MediNET
.durationToTimerString(getMeditationAssistant()
.getMediNET().session.length, false));
String text_size = getMeditationAssistant().getPrefs().getString("pref_text_size", "normal");
if (text_size.equals("tiny")) {
txtDuration.setTextSize(85);
} else if (text_size.equals("small")) {
txtDuration.setTextSize(115);
} else if (text_size.equals("large")) {
txtDuration.setTextSize(175);
} else if (text_size.equals("extralarge")) {
txtDuration.setTextSize(200);
} else { // Normal
txtDuration.setTextSize(153);
switch (text_size) {
case "tiny":
txtDuration.setTextSize(85);
break;
case "small":
txtDuration.setTextSize(115);
break;
case "large":
txtDuration.setTextSize(175);
break;
case "extralarge":
txtDuration.setTextSize(200);
break;
default:
txtDuration.setTextSize(153); // Normal
break;
}
String finishSoundPath = getMeditationAssistant().getPrefs().getString("pref_meditation_sound_finish", "");
if (!manual && !finishSoundPath.equals("none")) {
if (finishSoundPath.equals("custom")) {
finishSoundPath = getMeditationAssistant().getPrefs().getString("pref_meditation_sound_finish_custom", "");
getMeditationAssistant().playSound(0, finishSoundPath, true);
} else {
getMeditationAssistant().playSound(MeditationSounds.getMeditationSound(finishSoundPath), "", true);
}
} else {
if (manual) {
getMeditationAssistant().restoreVolume();
}
} else {
getMeditationAssistant().restoreVolume();
}
getMeditationAssistant().utility.initializeTracker(this);
if (!manual) {
getMeditationAssistant().vibrateDevice();
String autosave = getMeditationAssistant().getPrefs().getString("pref_autosave", "");
if (autosave.equals("save")) {
saveMediNET(null);
@ -225,7 +218,7 @@ public class CompleteActivity extends Activity {
}
private String getSessionMessage() {
EditText editSessionMessage = (EditText) findViewById(R.id.editSessionMessage);
EditText editSessionMessage = findViewById(R.id.editSessionMessage);
return editSessionMessage.getText().toString().trim();
}
@ -238,33 +231,6 @@ public class CompleteActivity extends Activity {
}
}
@Override
public void onDestroy() {
super.onDestroy();
}
@Override
public void onPause() {
super.onPause();
}
@Override
public void onResume() {
super.onResume();
}
@Override
public void onStart() {
super.onStart();
getMeditationAssistant().utility.trackingStart(this);
}
@Override
protected void onStop() {
super.onStop();
getMeditationAssistant().utility.trackingStop(this);
}
public void postMediNET(View view) {
if (getMeditationAssistant().getMediNETKey().equals("")) {
getMeditationAssistant().startAuth(CompleteActivity.this, true);

View File

@ -8,10 +8,11 @@ import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.provider.Settings;
import android.support.v4.app.NotificationCompat;
import android.support.v4.app.TaskStackBuilder;
import android.util.Log;
import androidx.core.app.NotificationCompat;
import androidx.core.app.TaskStackBuilder;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Locale;
@ -21,9 +22,6 @@ public class DailyReminderReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
return;
}
try {
ma = (MeditationAssistant) context.getApplicationContext();
} catch (Exception e) {
@ -32,24 +30,26 @@ public class DailyReminderReceiver extends BroadcastReceiver {
}
if (!getMeditationAssistant().getPrefs().getBoolean("pref_daily_reminder", false)) {
cancelReminder(context);
getMeditationAssistant().cancelDailyReminder(context);
return; // The user has not enabled the daily reminder
}
Log.d("MeditationAssistant", "onReceive in DailyReminderReceiver");
if (intent != null && intent.getAction() != null && intent.getAction().equals(MeditationAssistant.ACTION_REMINDER)) { // otherwise, it was just an update
Log.d("MeditationAssistant", "Daily notification intent!");
Log.d("MeditationAssistant", "Received daily reminder notification intent");
SimpleDateFormat sdf = new SimpleDateFormat("d-M-yyyy", Locale.US);
if (getMeditationAssistant().getTimeToStopMeditate() != 0) {
Log.d("MeditationAssistant", "Skipping daily notification today, session in progress...");
Log.d("MeditationAssistant", "Skipping daily reminder notification today, session in progress...");
} else if (getMeditationAssistant().db.numSessionsByDate(Calendar.getInstance()) > 0) {
Log.d("MeditationAssistant", "Skipping daily notification today, there has already been a session recorded...");
Log.d("MeditationAssistant", "Skipping daily reminder notification today, there has already been a session recorded...");
} else {
long last_reminder = getMeditationAssistant().getPrefs().getLong("last_reminder", 0);
if (last_reminder == 0 || getMeditationAssistant().getTimestamp() - last_reminder > 120) {
getMeditationAssistant().getPrefs().edit().putLong("last_reminder", getMeditationAssistant().getTimestamp()).apply();
Log.d("MeditationAssistant", "Showing daily reminder notification");
String reminderText = getMeditationAssistant().getPrefs().getString("pref_daily_reminder_text", "").trim();
if (reminderText.equals("")) {
reminderText = context.getString(R.string.reminderText);
@ -63,6 +63,10 @@ public class DailyReminderReceiver extends BroadcastReceiver {
.setTicker(reminderText)
.setAutoCancel(true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
notificationBuilder.setChannelId("reminder");
}
if (getMeditationAssistant().getPrefs().getBoolean("pref_vibrate_reminder", true)) {
long[] vibrationPattern = {0, 200, 500, 200, 500};
notificationBuilder.setVibrate(vibrationPattern);
@ -79,76 +83,20 @@ public class DailyReminderReceiver extends BroadcastReceiver {
TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);
stackBuilder.addParentStack(MainActivity.class);
stackBuilder.addNextIntent(notificationIntent);
PendingIntent resultPendingIntent =
stackBuilder.getPendingIntent(
0,
PendingIntent.FLAG_UPDATE_CURRENT
);
//Intent launchMain = new Intent(context, MainActivity.class);
//PendingIntent launchNotification = PendingIntent.getActivity(context, 1008, launchMain, PendingIntent.FLAG_UPDATE_CURRENT);
PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT | MeditationAssistant.extraPendingIntentFlags());
notificationBuilder.setContentIntent(resultPendingIntent);
Notification notification = notificationBuilder.build();
NotificationManager notificationManager =
(NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(1946, notification);
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(MeditationAssistant.dailyReminderNotificationID, notification);
} else {
Log.d("MeditationAssistant", "Skipping daily reminder notification today, a daily notification was recently shown...");
}
}
}
String reminderTime = ma.getPrefs().getString("pref_daily_reminder_time", "19:00");
String[] reminderTimeSplit = ((reminderTime != null && reminderTime != "") ? reminderTime : "19:00").split(":");
Integer reminderHour = Integer.valueOf(reminderTimeSplit[0]);
Integer reminderMinute = Integer.valueOf(reminderTimeSplit[1]);
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, reminderHour);
calendar.set(Calendar.MINUTE, reminderMinute);
calendar.set(Calendar.SECOND, 0);
if (Calendar.getInstance().getTimeInMillis() > calendar.getTimeInMillis()) {
calendar.add(Calendar.DATE, 1); // Tomorrow
}
cancelReminder(context);
getMeditationAssistant().reminderPendingIntent = PendingIntent
.getBroadcast(
context,
1946,
new Intent(
MeditationAssistant.ACTION_REMINDER),
PendingIntent.FLAG_CANCEL_CURRENT
);
/* Don't use setAlarmClock here as it will always place an alarm icon in the status bar */
getMeditationAssistant().setAlarm(false, calendar.getTimeInMillis(), getMeditationAssistant().reminderPendingIntent);
Log.d("MeditationAssistant", "Set daily reminder alarm for " + calendar.toString());
}
private void cancelReminder(Context context) {
if (getMeditationAssistant().reminderPendingIntent != null) {
try {
getMeditationAssistant().getAlarmManager().cancel(getMeditationAssistant().reminderPendingIntent);
} catch (Exception e) {
Log.e("MeditationAssistant", "AlarmManager update was not canceled. " + e.toString());
}
try {
PendingIntent.getBroadcast(context, 0, new Intent(
MeditationAssistant.ACTION_REMINDER),
PendingIntent.FLAG_CANCEL_CURRENT
).cancel();
} catch (Exception e) {
Log.e("MeditationAssistant", "PendingIntent broadcast was not canceled. " + e.toString());
}
try {
getMeditationAssistant().reminderPendingIntent.cancel();
} catch (Exception e) {
Log.e("MeditationAssistant", "PendingIntent was not canceled. " + e.toString());
}
}
getMeditationAssistant().setDailyReminder(context);
}
public MeditationAssistant getMeditationAssistant() {

View File

@ -0,0 +1,27 @@
package sh.ftp.rocketninelabs.meditationassistant;
import android.app.job.JobParameters;
import android.app.job.JobService;
import android.content.Intent;
import android.os.Build;
import android.util.Log;
import androidx.annotation.RequiresApi;
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
public class DailyReminderService extends JobService {
@Override
public boolean onStartJob(JobParameters params) {
Log.d(MeditationAssistant.LOG_TAG, "Daily reminder job starting");
Intent actionReminder = new Intent(MeditationAssistant.ACTION_REMINDER);
sendBroadcast(actionReminder);
return true;
}
@Override
public boolean onStopJob(JobParameters params) {
Log.d(MeditationAssistant.LOG_TAG, "Daily reminder job stopped");
return true;
}
}

View File

@ -45,7 +45,7 @@ public class DatabaseHandler extends SQLiteOpenHelper {
}
private ArrayList<SessionSQL> unmarshalResult(Cursor c) {
ArrayList<SessionSQL> sessionList = new ArrayList<SessionSQL>();
ArrayList<SessionSQL> sessionList = new ArrayList<>();
if (c != null) {
if (c.moveToFirst()) {
do {
@ -186,7 +186,7 @@ public class DatabaseHandler extends SQLiteOpenHelper {
@Override
public void onCreate(SQLiteDatabase db) {
Log.d("MeditationAssistant", "CREATING DATABASE VERSION " + String.valueOf(DATABASE_VERSION));
Log.d("MeditationAssistant", "CREATING DATABASE VERSION " + DATABASE_VERSION);
db.execSQL("CREATE TABLE `" + TABLE_SESSIONS + "` ("
+ "`" + KEY_ID + "` INTEGER PRIMARY KEY, "
+ "`" + KEY_STARTED + "` INTEGER, `" + KEY_COMPLETED + "` INTEGER, "
@ -200,11 +200,11 @@ public class DatabaseHandler extends SQLiteOpenHelper {
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.d("MeditationAssistant", "DATABASE UPGRADE INITIATED - Old: " + String.valueOf(oldVersion) + " New: " + String.valueOf(newVersion));
Log.d("MeditationAssistant", "DATABASE UPGRADE INITIATED - Old: " + oldVersion + " New: " + newVersion);
int curVer = oldVersion;
while (curVer < newVersion) {
curVer++;
Log.d("MeditationAssistant", "UPGRADING DATABASE to " + String.valueOf(curVer));
Log.d("MeditationAssistant", "UPGRADING DATABASE to " + curVer);
switch (curVer) {
case 2:
db.execSQL("ALTER TABLE `" + TABLE_SESSIONS + "` ADD COLUMN `" + KEY_STREAKDAY + "` INTEGER");

View File

@ -1,503 +0,0 @@
package sh.ftp.rocketninelabs.meditationassistant;
/*
* Copyright (C) 2007-2008 OpenIntents.org
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import android.annotation.TargetApi;
import android.content.ContentResolver;
import android.content.ContentUris;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.database.DatabaseUtils;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Build;
import android.os.Environment;
import android.provider.DocumentsContract;
import android.provider.MediaStore;
import android.util.Log;
import android.webkit.MimeTypeMap;
import java.io.File;
import java.io.FileFilter;
import java.text.DecimalFormat;
import java.util.Comparator;
/**
* @author Peli
* @author paulburke (ipaulpro)
* @version 2013-12-11
*/
public class FileUtils {
public static final String MIME_TYPE_AUDIO = "audio/*";
public static final String MIME_TYPE_TEXT = "text/*";
public static final String MIME_TYPE_IMAGE = "image/*";
public static final String MIME_TYPE_VIDEO = "video/*";
public static final String MIME_TYPE_APP = "application/*";
public static final String HIDDEN_PREFIX = ".";
/**
* TAG for log messages.
*/
static final String TAG = "FileUtils";
private static final boolean DEBUG = false; // Set to true to enable logging
/**
* File and folder comparator.
*
* @author paulburke
*/
public static Comparator<File> sComparator = new Comparator<File>() {
@Override
public int compare(File f1, File f2) {
// Sort alphabetically by lower case, which is much cleaner
return f1.getName().toLowerCase().compareTo(
f2.getName().toLowerCase());
}
};
/**
* File (not directories) filter.
*
* @author paulburke
*/
public static FileFilter sFileFilter = new FileFilter() {
@Override
public boolean accept(File file) {
final String fileName = file.getName();
// Return files only (not directories) and skip hidden files
return file.isFile() && !fileName.startsWith(HIDDEN_PREFIX);
}
};
/**
* Folder (directories) filter.
*
* @author paulburke
*/
public static FileFilter sDirFilter = new FileFilter() {
@Override
public boolean accept(File file) {
final String fileName = file.getName();
// Return directories only and skip hidden directories
return file.isDirectory() && !fileName.startsWith(HIDDEN_PREFIX);
}
};
private FileUtils() {
} //private constructor to enforce Singleton pattern
/**
* Gets the extension of a file name, like ".png" or ".jpg".
*
* @param uri
* @return Extension including the dot("."); "" if there is no extension;
* null if uri was null.
*/
public static String getExtension(String uri) {
if (uri == null) {
return null;
}
int dot = uri.lastIndexOf(".");
if (dot >= 0) {
return uri.substring(dot);
} else {
// No extension.
return "";
}
}
/**
* @return Whether the URI is a local one.
*/
public static boolean isLocal(String url) {
return (url != null && !url.startsWith("http://") && !url.startsWith("https://"));
}
/**
* @return True if Uri is a MediaStore Uri.
* @author paulburke
*/
public static boolean isMediaUri(Uri uri) {
return "media".equalsIgnoreCase(uri.getAuthority());
}
/**
* Convert File into Uri.
*
* @param file
* @return uri
*/
public static Uri getUri(File file) {
if (file != null) {
return Uri.fromFile(file);
}
return null;
}
/**
* Returns the path only (without file name).
*
* @param file
* @return
*/
public static File getPathWithoutFilename(File file) {
if (file != null) {
if (file.isDirectory()) {
// no file to be split off. Return everything
return file;
} else {
String filename = file.getName();
String filepath = file.getAbsolutePath();
// Construct path without file name.
String pathwithoutname = filepath.substring(0,
filepath.length() - filename.length());
if (pathwithoutname.endsWith("/")) {
pathwithoutname = pathwithoutname.substring(0, pathwithoutname.length() - 1);
}
return new File(pathwithoutname);
}
}
return null;
}
/**
* @return The MIME type for the given file.
*/
public static String getMimeType(File file) {
String extension = getExtension(file.getName());
if (extension.length() > 0)
return MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension.substring(1));
return "application/octet-stream";
}
/**
* @return The MIME type for the give Uri.
*/
public static String getMimeType(Context context, Uri uri) {
File file = new File(getPath(context, uri));
return getMimeType(file);
}
/**
* @param uri The Uri to check.
* @return Whether the Uri authority is ExternalStorageProvider.
* @author paulburke
*/
public static boolean isExternalStorageDocument(Uri uri) {
return "com.android.externalstorage.documents".equals(uri.getAuthority());
}
/**
* @param uri The Uri to check.
* @return Whether the Uri authority is DownloadsProvider.
* @author paulburke
*/
public static boolean isDownloadsDocument(Uri uri) {
return "com.android.providers.downloads.documents".equals(uri.getAuthority());
}
/**
* @param uri The Uri to check.
* @return Whether the Uri authority is MediaProvider.
* @author paulburke
*/
public static boolean isMediaDocument(Uri uri) {
return "com.android.providers.media.documents".equals(uri.getAuthority());
}
/**
* @param uri The Uri to check.
* @return Whether the Uri authority is Google Photos.
*/
public static boolean isGooglePhotosUri(Uri uri) {
return "com.google.android.apps.photos.content".equals(uri.getAuthority());
}
/**
* Get the value of the data column for this Uri. This is useful for
* MediaStore Uris, and other file-based ContentProviders.
*
* @param context The context.
* @param uri The Uri to query.
* @param selection (Optional) Filter used in the query.
* @param selectionArgs (Optional) Selection arguments used in the query.
* @return The value of the _data column, which is typically a file path.
* @author paulburke
*/
public static String getDataColumn(Context context, Uri uri, String selection,
String[] selectionArgs) {
Cursor cursor = null;
final String column = "_data";
final String[] projection = {
column
};
try {
cursor = context.getContentResolver().query(uri, projection, selection, selectionArgs,
null);
if (cursor != null && cursor.moveToFirst()) {
if (DEBUG)
DatabaseUtils.dumpCursor(cursor);
final int column_index = cursor.getColumnIndexOrThrow(column);
return cursor.getString(column_index);
}
} finally {
if (cursor != null)
cursor.close();
}
return null;
}
/**
* Get a file path from a Uri. This will get the the path for Storage Access
* Framework Documents, as well as the _data field for the MediaStore and
* other file-based ContentProviders.<br>
* <br>
* Callers should check whether the path is local before assuming it
* represents a local file.
*
* @param context The context.
* @param uri The Uri to query.
* @author paulburke
* @see #isLocal(String)
* @see #getFile(Context, Uri)
*/
@TargetApi(Build.VERSION_CODES.KITKAT)
public static String getPath(final Context context, final Uri uri) {
if (DEBUG)
Log.d(TAG + " File -",
"Authority: " + uri.getAuthority() +
", Fragment: " + uri.getFragment() +
", Port: " + uri.getPort() +
", Query: " + uri.getQuery() +
", Scheme: " + uri.getScheme() +
", Host: " + uri.getHost() +
", Segments: " + uri.getPathSegments().toString()
);
final boolean isKitKat = Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT;
// DocumentProvider
if (isKitKat && DocumentsContract.isDocumentUri(context, uri)) {
if (isExternalStorageDocument(uri)) {
final String docId = DocumentsContract.getDocumentId(uri);
final String[] split = docId.split(":");
final String type = split[0];
if ("primary".equalsIgnoreCase(type)) {
return Environment.getExternalStorageDirectory() + "/" + split[1];
}
}
// DownloadsProvider
else if (isDownloadsDocument(uri)) {
final String id = DocumentsContract.getDocumentId(uri);
final Uri contentUri = ContentUris.withAppendedId(
Uri.parse("content://downloads/public_downloads"), Long.valueOf(id));
return getDataColumn(context, contentUri, null, null);
}
// MediaProvider
else if (isMediaDocument(uri)) {
final String docId = DocumentsContract.getDocumentId(uri);
final String[] split = docId.split(":");
final String type = split[0];
Uri contentUri = null;
if ("image".equals(type)) {
contentUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
} else if ("video".equals(type)) {
contentUri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
} else if ("audio".equals(type)) {
contentUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
}
final String selection = "_id=?";
final String[] selectionArgs = new String[]{
split[1]
};
return getDataColumn(context, contentUri, selection, selectionArgs);
}
}
// MediaStore (and general)
else if ("content".equalsIgnoreCase(uri.getScheme())) {
// Return the remote address
if (isGooglePhotosUri(uri))
return uri.getLastPathSegment();
return getDataColumn(context, uri, null, null);
}
// File
else if ("file".equalsIgnoreCase(uri.getScheme())) {
return uri.getPath();
}
return null;
}
/**
* Convert Uri into File, if possible.
*
* @return file A local file that the Uri was pointing to, or null if the
* Uri is unsupported or pointed to a remote resource.
* @author paulburke
* @see #getPath(Context, Uri)
*/
public static File getFile(Context context, Uri uri) {
if (uri != null) {
String path = getPath(context, uri);
if (path != null && isLocal(path)) {
return new File(path);
}
}
return null;
}
/**
* Get the file size in a human-readable string.
*
* @param size
* @return
* @author paulburke
*/
public static String getReadableFileSize(int size) {
final int BYTES_IN_KILOBYTES = 1024;
final DecimalFormat dec = new DecimalFormat("###.#");
final String KILOBYTES = " KB";
final String MEGABYTES = " MB";
final String GIGABYTES = " GB";
float fileSize = 0;
String suffix = KILOBYTES;
if (size > BYTES_IN_KILOBYTES) {
fileSize = size / BYTES_IN_KILOBYTES;
if (fileSize > BYTES_IN_KILOBYTES) {
fileSize = fileSize / BYTES_IN_KILOBYTES;
if (fileSize > BYTES_IN_KILOBYTES) {
fileSize = fileSize / BYTES_IN_KILOBYTES;
suffix = GIGABYTES;
} else {
suffix = MEGABYTES;
}
}
}
return String.valueOf(dec.format(fileSize) + suffix);
}
/**
* Attempt to retrieve the thumbnail of given File from the MediaStore. This
* should not be called on the UI thread.
*
* @param context
* @param file
* @return
* @author paulburke
*/
public static Bitmap getThumbnail(Context context, File file) {
return getThumbnail(context, getUri(file), getMimeType(file));
}
/**
* Attempt to retrieve the thumbnail of given Uri from the MediaStore. This
* should not be called on the UI thread.
*
* @param context
* @param uri
* @return
* @author paulburke
*/
public static Bitmap getThumbnail(Context context, Uri uri) {
return getThumbnail(context, uri, getMimeType(context, uri));
}
/**
* Attempt to retrieve the thumbnail of given Uri from the MediaStore. This
* should not be called on the UI thread.
*
* @param context
* @param uri
* @param mimeType
* @return
* @author paulburke
*/
public static Bitmap getThumbnail(Context context, Uri uri, String mimeType) {
if (DEBUG)
Log.d(TAG, "Attempting to get thumbnail");
if (!isMediaUri(uri)) {
Log.e(TAG, "You can only retrieve thumbnails for images and videos.");
return null;
}
Bitmap bm = null;
if (uri != null) {
final ContentResolver resolver = context.getContentResolver();
Cursor cursor = null;
try {
cursor = resolver.query(uri, null, null, null, null);
if (cursor.moveToFirst()) {
final int id = cursor.getInt(0);
if (DEBUG)
Log.d(TAG, "Got thumb ID: " + id);
if (mimeType.contains("video")) {
bm = MediaStore.Video.Thumbnails.getThumbnail(
resolver,
id,
MediaStore.Video.Thumbnails.MINI_KIND,
null);
} else if (mimeType.contains(FileUtils.MIME_TYPE_IMAGE)) {
bm = MediaStore.Images.Thumbnails.getThumbnail(
resolver,
id,
MediaStore.Images.Thumbnails.MINI_KIND,
null);
}
}
} catch (Exception e) {
if (DEBUG)
Log.e(TAG, "getThumbnail", e);
} finally {
if (cursor != null)
cursor.close();
}
}
return bm;
}
/**
* Get the Intent for selecting content to be used in an Intent Chooser.
*
* @return The intent for opening a file with Intent.createChooser()
* @author paulburke
*/
public static Intent createGetContentIntent() {
// Implicitly allow the user to select a particular kind of data
final Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
// The MIME data type filter
intent.setType("*/*");
// Only return URIs that can be opened with ContentResolver
intent.addCategory(Intent.CATEGORY_OPENABLE);
return intent;
}
}

View File

@ -6,8 +6,9 @@ import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.content.res.AssetFileDescriptor;
import android.content.res.TypedArray;
import android.media.AudioManager;
import android.media.AudioAttributes;
import android.media.MediaPlayer;
import android.os.Build;
import android.os.Parcel;
import android.os.Parcelable;
import android.preference.ListPreference;
@ -41,8 +42,6 @@ public class ListPreferenceSound extends ListPreference {
TypedArray a = context.obtainStyledAttributes(attrs,
R.styleable.ListPreference, 0, 0);
// mEntries = a.getTextArray(R.styleable.ListPreference_entries);
// mEntryValues = a.getTextArray(R.styleable.ListPreference_entryValues);
setEntries(a.getTextArray(R.styleable.ListPreference_entries));
setEntryValues(a.getTextArray(R.styleable.ListPreference_entryValues));
@ -97,7 +96,6 @@ public class ListPreferenceSound extends ListPreference {
if (mSummary == null || entry == null) {
return super.getSummary();
} else {
//Log.d("MeditationAssistant", "getsummary(): " + String.valueOf(mSummary) + " " + String.valueOf(entry));
try {
return String.format(mSummary.toString(), entry);
} catch (Exception e) {
@ -150,8 +148,7 @@ public class ListPreferenceSound extends ListPreference {
e.printStackTrace();
}
}
if (positiveResult && mClickedDialogEntryIndex >= 0
&& mEntryValues != null) {
if (positiveResult && mClickedDialogEntryIndex >= 0 && mEntryValues != null) {
String value = mEntryValues[mClickedDialogEntryIndex].toString();
if (callChangeListener(value)) {
setValue(value);
@ -181,7 +178,7 @@ public class ListPreferenceSound extends ListPreference {
.toString();
Log.d("MeditationAssistant",
"Selected: " + String.valueOf(which) + " - "
"Selected: " + which + " - "
+ itemSelected
);
@ -216,7 +213,14 @@ public class ListPreferenceSound extends ListPreference {
afd.getFileDescriptor(),
afd.getStartOffset(),
afd.getDeclaredLength());
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
AudioAttributes audioAttributes = new AudioAttributes.Builder()
.setUsage(((MeditationAssistant) ctx.getApplicationContext()).audioUsage())
.build();
mMediaPlayer.setAudioAttributes(audioAttributes);
} else {
mMediaPlayer.setAudioStreamType(((MeditationAssistant) ctx.getApplicationContext()).audioStream());
}
mMediaPlayer.setVolume(mediaVolume, mediaVolume);
mMediaPlayer.prepareAsync();
} catch (IllegalArgumentException e) {
@ -253,10 +257,8 @@ public class ListPreferenceSound extends ListPreference {
builder.setPositiveButton(
builder.getContext().getString(R.string.set),
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Log.d("MeditationAssistant", "Set clicked");
ListPreferenceSound.this.onClick(dialog,
DialogInterface.BUTTON_POSITIVE);
dialog.dismiss();

View File

@ -0,0 +1,240 @@
package sh.ftp.rocketninelabs.meditationassistant;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.content.res.TypedArray;
import android.os.Parcel;
import android.os.Parcelable;
import android.preference.ListPreference;
import android.preference.PreferenceManager;
import android.util.AttributeSet;
import android.util.Log;
public class ListPreferenceVibration extends ListPreference {
private int mClickedDialogEntryIndex;
private CharSequence[] mEntries;
private CharSequence[] mEntryValues;
private CharSequence mSummary;
private String mValue;
private Context ctx = null;
private SharedPreferences prefs = null;
public ListPreferenceVibration(Context context) {
this(context, null);
}
public ListPreferenceVibration(Context context, AttributeSet attrs) {
super(context, attrs);
ctx = context;
TypedArray a = context.obtainStyledAttributes(attrs,
R.styleable.ListPreference, 0, 0);
setEntries(a.getTextArray(R.styleable.ListPreference_entries));
setEntryValues(a.getTextArray(R.styleable.ListPreference_entryValues));
a.recycle();
mSummary = super.getSummary();
}
public int findIndexOfValue(String value) {
if (value != null && mEntryValues != null) {
for (int i = mEntryValues.length - 1; i >= 0; i--) {
if (mEntryValues[i].equals(value)) {
return i;
}
}
}
return -1;
}
public CharSequence[] getEntries() {
return mEntries;
}
public void setEntries(CharSequence[] entries) {
mEntries = entries;
}
public void setEntries(int entriesResId) {
setEntries(getContext().getResources().getTextArray(entriesResId));
}
public CharSequence getEntry() {
int index = getValueIndex();
return index >= 0 && mEntries != null ? mEntries[index] : null;
}
public CharSequence[] getEntryValues() {
return mEntryValues;
}
public void setEntryValues(CharSequence[] entryValues) {
mEntryValues = entryValues;
}
public void setEntryValues(int entryValuesResId) {
setEntryValues(getContext().getResources().getTextArray(
entryValuesResId));
}
@Override
public CharSequence getSummary() {
final CharSequence entry = getEntry();
if (mSummary == null || entry == null) {
return super.getSummary();
} else {
try {
return String.format(mSummary.toString(), entry);
} catch (Exception e) {
e.printStackTrace();
return mSummary.toString();
}
}
}
@Override
public void setSummary(CharSequence summary) {
super.setSummary(summary);
if (summary == null && mSummary != null) {
mSummary = null;
} else if (summary != null && !summary.equals(mSummary)) {
mSummary = summary;
}
}
public String getValue() {
return mValue;
}
public void setValue(String value) {
mValue = value;
persistString(value);
}
private int getValueIndex() {
return findIndexOfValue(mValue);
}
public void setValueIndex(int index) {
if (mEntryValues != null) {
setValue(mEntryValues[index].toString());
}
}
@Override
protected void onDialogClosed(boolean positiveResult) {
super.onDialogClosed(positiveResult);
if (positiveResult && mClickedDialogEntryIndex >= 0 && mEntryValues != null) {
String value = mEntryValues[mClickedDialogEntryIndex].toString();
if (callChangeListener(value)) {
setValue(value);
}
}
}
@Override
protected Object onGetDefaultValue(TypedArray a, int index) {
return a.getString(index);
}
@Override
protected void onPrepareDialogBuilder(AlertDialog.Builder builder) {
super.onPrepareDialogBuilder(builder);
if (mEntries == null || mEntryValues == null) {
throw new IllegalStateException(
"ListPreference requires an entries array and an entryValues array.");
}
mClickedDialogEntryIndex = getValueIndex();
builder.setSingleChoiceItems(mEntries, mClickedDialogEntryIndex,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
mClickedDialogEntryIndex = which;
String itemSelected = mEntryValues[mClickedDialogEntryIndex]
.toString();
Log.d("MeditationAssistant",
"Selected: " + which + " - "
+ itemSelected
);
if (itemSelected.equals("custom")) {
ListPreferenceVibration.this.onClick(dialog,
DialogInterface.BUTTON_POSITIVE);
dialog.dismiss();
} else if (!itemSelected.equals("")) {
((MeditationAssistant) ctx.getApplicationContext()).vibrateDevice(itemSelected);
}
}
}
);
builder.setPositiveButton(
builder.getContext().getString(R.string.set),
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
ListPreferenceVibration.this.onClick(dialog,
DialogInterface.BUTTON_POSITIVE);
dialog.dismiss();
}
}
);
}
@Override
protected void onRestoreInstanceState(Parcelable state) {
if (state == null || !state.getClass().equals(SavedState.class)) {
super.onRestoreInstanceState(state);
return;
}
SavedState myState = (SavedState) state;
super.onRestoreInstanceState(myState.getSuperState());
setValue(myState.value);
}
@Override
protected Parcelable onSaveInstanceState() {
final Parcelable superState = super.onSaveInstanceState();
if (isPersistent()) {
return superState;
}
final SavedState myState = new SavedState(superState);
myState.value = getValue();
return myState;
}
@Override
protected void onSetInitialValue(boolean restoreValue, Object defaultValue) {
mValue = restoreValue ? getPersistedString(mValue)
: (String) defaultValue;
}
private static class SavedState extends BaseSavedState {
String value;
public SavedState(Parcel source) {
super(source);
value = source.readString();
}
public SavedState(Parcelable superState) {
super(superState);
}
@Override
public void writeToParcel(Parcel dest, int flags) {
super.writeToParcel(dest, flags);
dest.writeString(value);
}
}
public SharedPreferences getPrefs() {
if (prefs == null) {
prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
}
return prefs;
}
}

View File

@ -73,7 +73,7 @@ public class MediNET {
minutes += 1;
}
return String.valueOf(hours) + ":" + String.format("%02d", minutes);
return hours + ":" + String.format("%02d", minutes);
}
public void browseTo(MainActivity act, String page) {

View File

@ -23,7 +23,6 @@ import android.webkit.WebViewClient;
import android.widget.FrameLayout;
import android.widget.RelativeLayout;
import java.util.Date;
import java.util.TimeZone;
public class MediNETActivity extends Activity {
@ -53,16 +52,13 @@ public class MediNETActivity extends Activity {
}
public String getPageUrl(String page) {
TimeZone tz = TimeZone.getDefault();
Date now = new Date();
return MeditationAssistant.URL_MEDINET + "/client_android.php?v="
+ MediNET.version.toString() + "&avn="
+ String.valueOf(getMeditationAssistant().getMAAppVersionNumber()) + "&th="
+ ma.getMAThemeString() + "&tz="
+ TimeZone.getDefault().getID() + "&x="
+ getMeditationAssistant().getMediNETKey() + "&page="
+ page;
return MeditationAssistant.URL_MEDINET
+ "/om/" + page
+ "?v=" + MediNET.version.toString()
+ "&avn=" + getMeditationAssistant().getMAAppVersionNumber()
+ "&th=" + ma.getMAThemeString()
+ "&tz=" + TimeZone.getDefault().getID()
+ "&x=" + getMeditationAssistant().getMediNETKey();
}
public void goTo(String go_to) {
@ -109,7 +105,7 @@ public class MediNETActivity extends Activity {
@SuppressLint({"AddJavascriptInterface", "SetJavaScriptEnabled"})
protected void initUI(Boolean activityOnCreate) {
webViewPlaceholder = ((FrameLayout) findViewById(R.id.webViewPlaceholder));
webViewPlaceholder = findViewById(R.id.webViewPlaceholder);
if (webView == null) {
webView = new WebView(getApplicationContext());
@ -281,8 +277,6 @@ public class MediNETActivity extends Activity {
setContentView(R.layout.activity_medinet);
getActionBar().setDisplayHomeAsUpEnabled(true);
getMeditationAssistant().utility.initializeTracker(this);
initUI(true);
}
@ -320,7 +314,7 @@ public class MediNETActivity extends Activity {
@Override
public boolean onOptionsItemSelected(MenuItem item) {
Log.d("MeditationAssistant",
"Selected menu item: " + String.valueOf(item.getItemId()));
"Selected menu item: " + item.getItemId());
int itemId = item.getItemId();
if (itemId == android.R.id.home) {
finish();
@ -394,20 +388,8 @@ public class MediNETActivity extends Activity {
webView.saveState(outState);
}
@Override
public void onStart() {
super.onStart();
getMeditationAssistant().utility.trackingStart(this);
}
@Override
protected void onStop() {
super.onStop();
getMeditationAssistant().utility.trackingStop(this);
}
public void setWindowBackground() {
if (getMeditationAssistant().getMATheme() != R.style.MeditationDarkTheme && getMeditationAssistant().getMATheme() != R.style.Buddhism) {
if (getMeditationAssistant().getMAThemeIsLight()) {
getWindow().setBackgroundDrawable(
getResources().getDrawable(
android.R.drawable.screen_background_light)

View File

@ -56,16 +56,16 @@ public class MediNETTask extends AsyncTask<MediNET, Integer, MediNET> {
+ MediNET.version.toString() + "&av="
+ appVersion + "&am="
+ getMeditationAssistant().getMarketName() + "&avn="
+ String.valueOf(getMeditationAssistant().getMAAppVersionNumber()) + "&buf="
+ String.valueOf(getMeditationAssistant().getStreakBufferSeconds()) + "&tz="
+ getMeditationAssistant().getMAAppVersionNumber() + "&buf="
+ getMeditationAssistant().getStreakBufferSeconds() + "&tz="
+ TimeZone.getDefault().getID();
}
Log.d("MeditationAssistant", "URL => " + this.nextURL);
ArrayList<SessionSQL> sessions = new ArrayList<SessionSQL>();
ArrayList<SessionSQL> sessions = new ArrayList<>();
HashMap<String, String> postData = new HashMap<String, String>();
HashMap<String, String> postData = new HashMap<>();
try {
postData.put("x", medinet
.getMeditationAssistant().getMediNETKey());
@ -122,7 +122,7 @@ public class MediNETTask extends AsyncTask<MediNET, Integer, MediNET> {
e.printStackTrace();
}
String result = "";
StringBuilder result = new StringBuilder();
HttpURLConnection medinetConnection = null;
try {
@ -145,12 +145,11 @@ public class MediNETTask extends AsyncTask<MediNET, Integer, MediNET> {
medinetConnection.connect();
int responseCode = medinetConnection.getResponseCode();
result = "";
if (responseCode == HttpURLConnection.HTTP_OK) {
String line;
BufferedReader br = new BufferedReader(new InputStreamReader(medinetConnection.getInputStream()));
while ((line = br.readLine()) != null) {
result += line;
result.append(line);
}
} else {
Log.d("MeditationAssistant", "Unable to connect to MediNET");
@ -212,13 +211,11 @@ public class MediNETTask extends AsyncTask<MediNET, Integer, MediNET> {
Log.d("MeditationAssistant", "Header: "
+ medinetConnection.getHeaderField("x-MediNET"));
if (!result.equals("")
&& !result.trim().startsWith("<")) {
if (result.length() > 0 && !result.toString().trim().startsWith("<")) {
JSONObject jsonObj;
try {
jsonObj = new JSONObject(result);
Log.d("MeditationAssistant",
"jsonobj: " + jsonObj.toString());
jsonObj = new JSONObject(result.toString());
Log.d("MeditationAssistant", "jsonobj: " + jsonObj.toString());
if (jsonObj.has("status")) {
medinet.status = jsonObj.getString("status");
}
@ -338,13 +335,13 @@ public class MediNETTask extends AsyncTask<MediNET, Integer, MediNET> {
Log.d("MeditationAssistant",
"Adding session started at "
+ String.valueOf(sess._started)
+ sess._started
);
getMeditationAssistant().db.addSession(sess, (long) 0);
getMeditationAssistant().recalculateMeditationStreak(medinet.activity);
} else {
Log.d("MeditationAssistant",
"Skipping session " + String.valueOf(session));
"Skipping session " + session);
}
}

View File

@ -82,7 +82,7 @@ public abstract class MonthAdapterMA extends BaseAdapter {
}
private int[] getDate(int position) {
int date[] = new int[3];
int[] date = new int[3];
if (position <= 6) {
return null; // day names
} else if (position <= mDaysLastMonth + 6) {
@ -177,7 +177,14 @@ public abstract class MonthAdapterMA extends BaseAdapter {
}
});
if (getMeditationAssistant().getMAThemeString().equals("dark")) {
if (getMeditationAssistant().getMAThemeIsLight()) {
int bgcolor = (date[1] == mMonth) ? R.color.highlighted_text_dark
: R.color.dim_foreground_dark;
//: R.color.dim_foreground_holo_dark;
view.setBackgroundColor(getMeditationAssistant()
.getResources().getColor(bgcolor));
} else {
/*int bgcolor = (date[1] == mMonth) ? R.color.highlighted_text_light
: R.color.dim_foreground_light;*/
int bgcolor = (date[1] == mMonth) ? android.R.color.holo_blue_dark
@ -185,13 +192,6 @@ public abstract class MonthAdapterMA extends BaseAdapter {
// : android.R.color.dim_foreground_light;
view.setBackgroundColor(getMeditationAssistant()
.getResources().getColor(bgcolor));
} else {
int bgcolor = (date[1] == mMonth) ? R.color.highlighted_text_dark
: R.color.dim_foreground_dark;
//: R.color.dim_foreground_holo_dark;
view.setBackgroundColor(getMeditationAssistant()
.getResources().getColor(bgcolor));
}
@ -199,7 +199,7 @@ public abstract class MonthAdapterMA extends BaseAdapter {
view.setHeight(mDayHeight);
if (date[1] != mMonth) { // previous or next month
if (getMeditationAssistant().getMAThemeString().equals("dark")) {
if (getMeditationAssistant().getMAThemeIsLight()) {
view.setTextColor(getMeditationAssistant().getResources()
.getColor(android.R.color.tertiary_text_light));
} else {
@ -264,7 +264,7 @@ public abstract class MonthAdapterMA extends BaseAdapter {
protected abstract void onDate(int[] date, int position, View item);
private void populateMonth() {
mItems = new ArrayList<String>();
mItems = new ArrayList<>();
for (String day : mDays) {
mItems.add(day);
mDaysShown++;

View File

@ -203,7 +203,7 @@ public class NumberPicker extends LinearLayout {
/**
* Cache for the string representation of selector indices.
*/
private final SparseArray<String> mSelectorIndexToStringCache = new SparseArray<String>();
private final SparseArray<String> mSelectorIndexToStringCache = new SparseArray<>();
/**
* The selector indices whose value are show by the selector.
*/
@ -515,7 +515,7 @@ public class NumberPicker extends LinearLayout {
// increment button
if (!mHasSelectorWheel) {
mIncrementButton = (ImageButton) findViewById(R.id.np__increment);
mIncrementButton = findViewById(R.id.np__increment);
mIncrementButton.setOnClickListener(onClickListener);
mIncrementButton.setOnLongClickListener(onLongClickListener);
} else {
@ -524,7 +524,7 @@ public class NumberPicker extends LinearLayout {
// decrement button
if (!mHasSelectorWheel) {
mDecrementButton = (ImageButton) findViewById(R.id.np__decrement);
mDecrementButton = findViewById(R.id.np__decrement);
mDecrementButton.setOnClickListener(onClickListener);
mDecrementButton.setOnLongClickListener(onLongClickListener);
} else {
@ -532,7 +532,7 @@ public class NumberPicker extends LinearLayout {
}
// input text
mInputText = (EditText) findViewById(R.id.np__numberpicker_input);
mInputText = findViewById(R.id.np__numberpicker_input);
mInputText.setOnFocusChangeListener(new OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
@ -1109,8 +1109,8 @@ public class NumberPicker extends LinearLayout {
maxTextWidth = (int) (numberOfDigits * maxDigitWidth);
} else {
final int valueCount = mDisplayedValues.length;
for (int i = 0; i < valueCount; i++) {
final float textWidth = mSelectorWheelPaint.measureText(mDisplayedValues[i]);
for (String mDisplayedValue : mDisplayedValues) {
final float textWidth = mSelectorWheelPaint.measureText(mDisplayedValue);
if (textWidth > maxTextWidth) {
maxTextWidth = (int) textWidth;
}
@ -1883,17 +1883,17 @@ public class NumberPicker extends LinearLayout {
/**
* The view is not scrolling.
*/
public static int SCROLL_STATE_IDLE = 0;
int SCROLL_STATE_IDLE = 0;
/**
* The user is scrolling using touch, and his finger is still on the screen.
*/
public static int SCROLL_STATE_TOUCH_SCROLL = 1;
int SCROLL_STATE_TOUCH_SCROLL = 1;
/**
* The user had previously been scrolling using touch and performed a fling.
*/
public static int SCROLL_STATE_FLING = 2;
int SCROLL_STATE_FLING = 2;
/**
* Callback invoked while the number picker scroll state has changed.
@ -1904,7 +1904,7 @@ public class NumberPicker extends LinearLayout {
* {@link #SCROLL_STATE_TOUCH_SCROLL} or
* {@link #SCROLL_STATE_IDLE}.
*/
public void onScrollStateChange(NumberPicker view, int scrollState);
void onScrollStateChange(NumberPicker view, int scrollState);
}
/**
@ -1918,7 +1918,7 @@ public class NumberPicker extends LinearLayout {
* @param value The currently selected value.
* @return A formatted string representation.
*/
public String format(int value);
String format(int value);
}
/**
@ -1967,7 +1967,7 @@ public class NumberPicker extends LinearLayout {
/**
* @hide
*/
public static class CustomEditText extends EditText {
public static class CustomEditText extends androidx.appcompat.widget.AppCompatEditText {
public CustomEditText(Context context, AttributeSet attrs) {
super(context, attrs);
@ -2033,7 +2033,7 @@ public class NumberPicker extends LinearLayout {
}
String result = String.valueOf(dest.subSequence(0, dstart)) + filtered
+ dest.subSequence(dend, dest.length());
String str = String.valueOf(result).toLowerCase();
String str = result.toLowerCase();
for (String val : mDisplayedValues) {
String valLowerCase = val.toLowerCase();
if (valLowerCase.startsWith(str)) {
@ -2237,7 +2237,7 @@ public class NumberPicker extends LinearLayout {
return Collections.emptyList();
}
String searchedLowerCase = searched.toLowerCase();
List<AccessibilityNodeInfo> result = new ArrayList<AccessibilityNodeInfo>();
List<AccessibilityNodeInfo> result = new ArrayList<>();
switch (virtualViewId) {
case View.NO_ID: {
findAccessibilityNodeInfosByTextInChild(searchedLowerCase,

View File

@ -9,12 +9,18 @@ public class Preset {
public String delay = "";
public String startsound = "";
public String startsoundcustom = "";
public String startvibration = "";
public String startvibrationcustom = "";
public String intervalduration = "";
public String intervalsound = "";
public String intervalsoundcustom = "";
public String intervalvibration = "";
public String intervalvibrationcustom = "";
public String intervalcount = "";
public String completesound = "";
public String completesoundcustom = "";
public String completevibration = "";
public String completevibrationcustom = "";
public String ringtone = "";
public Integer volume = 50;
public Boolean endless = false;
@ -28,12 +34,18 @@ public class Preset {
jobj.put("delay", delay);
jobj.put("startsound", startsound);
jobj.put("startsoundcustom", startsoundcustom);
jobj.put("startvibration", startvibration);
jobj.put("startvibrationcustom", startvibrationcustom);
jobj.put("intervalduration", intervalduration);
jobj.put("intervalsound", intervalsound);
jobj.put("intervalsoundcustom", intervalsoundcustom);
jobj.put("intervalvibration", intervalvibration);
jobj.put("intervalvibrationcustom", intervalvibrationcustom);
jobj.put("intervalcount", intervalcount);
jobj.put("completesound", completesound);
jobj.put("completesoundcustom", completesoundcustom);
jobj.put("completevibration", completevibration);
jobj.put("completevibrationcustom", completevibrationcustom);
jobj.put("ringtone", ringtone);
jobj.put("volume", volume);
jobj.put("endless", endless);

View File

@ -38,10 +38,10 @@ public class PresetWidgetActivity extends Activity {
MeditationAssistant ma = (MeditationAssistant) getApplicationContext();
getWindow().setLayout(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
mAppWidgetText = (EditText) findViewById(R.id.presetWidgetLabel);
final ListView listView = (ListView) findViewById(R.id.presetWidgetList);
mAppWidgetText = findViewById(R.id.presetWidgetLabel);
final ListView listView = findViewById(R.id.presetWidgetList);
List<String> values = new ArrayList<String>();
List<String> values = new ArrayList<>();
for (int i = 1; i < 4; i++) {
String presetLabel = ma.getPrefs().getString("pref_preset_" + i + "_label", "");
if (!presetLabel.isEmpty()) {

View File

@ -3,33 +3,32 @@ package sh.ftp.rocketninelabs.meditationassistant;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.app.NavUtils;
import android.support.v4.view.PagerTabStrip;
import android.support.v4.view.ViewPager;
import android.util.SparseArray;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TabHost;
import android.widget.TextView;
import androidx.core.app.NavUtils;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
import androidx.viewpager.widget.PagerTabStrip;
import androidx.viewpager.widget.ViewPager;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.Iterator;
import java.util.Locale;
import java.util.TimeZone;
public class ProgressActivity extends FragmentActivity {
public SparseArray<SessionSQL> sessions_map = new SparseArray<SessionSQL>();
public SparseArray<SessionSQL> sessions_map = new SparseArray<>();
TabHost mTabHost;
ViewPager mViewPager;
ProgressPagerAdapter mPagerAdapter = null;
@ -59,14 +58,14 @@ public class ProgressActivity extends FragmentActivity {
setContentView(R.layout.activity_progress);
getActionBar().setDisplayHomeAsUpEnabled(true);
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager = findViewById(R.id.pager);
mPagerAdapter = new ProgressPagerAdapter(
getSupportFragmentManager());
mViewPager.setAdapter(mPagerAdapter);
PagerTabStrip tabStrip = (PagerTabStrip) findViewById(R.id.titles);
PagerTabStrip tabStrip = findViewById(R.id.titles);
tabStrip.setDrawFullUnderline(true);
if (getMeditationAssistant().getMAThemeString().equals("buddhism")) {
@ -86,8 +85,6 @@ public class ProgressActivity extends FragmentActivity {
} else {
mViewPager.setCurrentItem(CALENDAR_FRAGMENT, false);
}
getMeditationAssistant().utility.initializeTracker(this);
}
public void goToSessionAtDate(int[] date) {
@ -119,17 +116,16 @@ public class ProgressActivity extends FragmentActivity {
ArrayList<SessionSQL> sessions = getMeditationAssistant().db.getSessionsByDate(c);
final ArrayAdapter<String> sessionsDialogAdapter = new ArrayAdapter<String>(
final ArrayAdapter<String> sessionsDialogAdapter = new ArrayAdapter<>(
this,
android.R.layout.select_dialog_item);
sessions_map.clear();
int session_index = 0;
for (Iterator<SessionSQL> i = sessions.iterator(); i.hasNext(); ) {
SessionSQL session = i.next();
for (SessionSQL session : sessions) {
Calendar cal2 = Calendar.getInstance();
cal2.setTimeInMillis(session._completed * 1000);
sessionsDialogAdapter.add(String.valueOf(session._length / 3600) + ":"
sessionsDialogAdapter.add(session._length / 3600 + ":"
+ String.format("%02d", (session._length % 3600) / 60)
+ " - " + sdf2.format(cal2.getTime()));
@ -138,13 +134,7 @@ public class ProgressActivity extends FragmentActivity {
}
sessionDetailsDialog = new AlertDialog.Builder(this)
.setIcon(
getResources().getDrawable(
getMeditationAssistant().getTheme().obtainStyledAttributes(getMeditationAssistant().getMATheme(true),
new int[]{R.attr.actionIconGoToToday})
.getResourceId(0, 0)
)
)
.setIcon(getResources().getDrawable(getMeditationAssistant().getTheme().obtainStyledAttributes(getMeditationAssistant().getMATheme(true), new int[]{R.attr.actionIconGoToToday}).getResourceId(0, 0)))
.setTitle(sdf.format(sess_date))
.setAdapter(sessionsDialogAdapter,
new DialogInterface.OnClickListener() {
@ -180,7 +170,7 @@ public class ProgressActivity extends FragmentActivity {
Locale.getDefault());
sdf2.setTimeZone(TimeZone.getDefault());
String session_title = String.valueOf(sessionsql._length / 3600) + ":"
String session_title = sessionsql._length / 3600 + ":"
+ String.format("%02d", (sessionsql._length % 3600) / 60)
+ " - " + sdf.format(sess_date);
@ -189,10 +179,10 @@ public class ProgressActivity extends FragmentActivity {
View detailsView = LayoutInflater.from(this).inflate(
R.layout.session_details,
(ViewGroup) findViewById(R.id.sessionDetails_root));
findViewById(R.id.sessionDetails_root));
TextView txtSessionDetailsStarted = (TextView) detailsView.findViewById(R.id.txtSessionDetailsStarted);
TextView txtSessionDetailsMessage = (TextView) detailsView.findViewById(R.id.txtSessionDetailsMessage);
TextView txtSessionDetailsStarted = detailsView.findViewById(R.id.txtSessionDetailsStarted);
TextView txtSessionDetailsMessage = detailsView.findViewById(R.id.txtSessionDetailsMessage);
txtSessionDetailsStarted.setText(String.format(getString(R.string.sessionStartedAt), session_started));
@ -210,13 +200,7 @@ public class ProgressActivity extends FragmentActivity {
}
sessionDetailsDialog = new AlertDialog.Builder(this)
.setIcon(
getResources().getDrawable(
getMeditationAssistant().getTheme().obtainStyledAttributes(getMeditationAssistant().getMATheme(true),
new int[]{R.attr.actionIconGoToToday})
.getResourceId(0, 0)
)
)
.setIcon(getResources().getDrawable(getMeditationAssistant().getTheme().obtainStyledAttributes(getMeditationAssistant().getMATheme(true), new int[]{R.attr.actionIconGoToToday}).getResourceId(0, 0)))
.setTitle(session_title)
.setView(detailsView)
.create();
@ -244,18 +228,6 @@ public class ProgressActivity extends FragmentActivity {
return super.onOptionsItemSelected(item);
}
@Override
public void onStart() {
super.onStart();
getMeditationAssistant().utility.trackingStart(this);
}
@Override
protected void onStop() {
super.onStop();
getMeditationAssistant().utility.trackingStop(this);
}
@Override
public void onPause() {
super.onPause();

View File

@ -2,6 +2,10 @@ package sh.ftp.rocketninelabs.meditationassistant;
import android.app.AlertDialog;
import android.content.Context;
import android.content.res.AssetFileDescriptor;
import android.media.AudioAttributes;
import android.media.MediaPlayer;
import android.os.Build;
import android.os.Bundle;
import android.preference.DialogPreference;
import android.util.AttributeSet;
@ -12,6 +16,8 @@ import android.widget.LinearLayout;
import android.widget.SeekBar;
import android.widget.TextView;
import java.io.IOException;
public class SeekBarPreference extends DialogPreference implements SeekBar.OnSeekBarChangeListener, OnClickListener {
// ------------------------------------------------------------------------------------------
// Private attributes :
@ -21,6 +27,8 @@ public class SeekBarPreference extends DialogPreference implements SeekBar.OnSee
private TextView mSplashText, txtHelp, mValueText;
private Context mContext;
private MediaPlayer mediaPlayer;
private String mDialogMessage, mSuffix;
private int mDefault, mMax, mValue = 0;
// ------------------------------------------------------------------------------------------
@ -115,12 +123,14 @@ public class SeekBarPreference extends DialogPreference implements SeekBar.OnSee
// OnSeekBarChangeListener methods :
@Override
public void onProgressChanged(SeekBar seek, int value, boolean fromTouch) {
/*String t = String.valueOf(value);
mValueText.setText(mSuffix == null ? t : t.concat(" " + mSuffix));*/
if (fromTouch) {
previewVolume(value);
}
}
@Override
public void onStartTrackingTouch(SeekBar seek) {
previewVolume(seek.getProgress());
}
@Override
@ -150,7 +160,6 @@ public class SeekBarPreference extends DialogPreference implements SeekBar.OnSee
// Set the positive button listener and onClick action :
@Override
public void showDialog(Bundle state) {
super.showDialog(state);
Button positiveButton = ((AlertDialog) getDialog()).getButton(AlertDialog.BUTTON_POSITIVE);
@ -159,15 +168,72 @@ public class SeekBarPreference extends DialogPreference implements SeekBar.OnSee
@Override
public void onClick(View v) {
if (shouldPersist()) {
mValue = mSeekBar.getProgress();
persistInt(mSeekBar.getProgress());
callChangeListener(Integer.valueOf(mSeekBar.getProgress()));
}
((AlertDialog) getDialog()).dismiss();
getDialog().dismiss();
}
// ------------------------------------------------------------------------------------------
private void previewVolume(int value) {
if (mediaPlayer != null) {
try {
mediaPlayer.stop();
} catch (Exception e) {
e.printStackTrace();
}
try {
mediaPlayer.release();
} catch (Exception e) {
e.printStackTrace();
}
}
AssetFileDescriptor afd = mContext
.getResources()
.openRawResourceFd(MeditationSounds.getMeditationSound("gong"));
try {
mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(
afd.getFileDescriptor(),
afd.getStartOffset(),
afd.getDeclaredLength());
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
AudioAttributes audioAttributes = new AudioAttributes.Builder()
.setUsage(((MeditationAssistant) mContext.getApplicationContext()).audioStream())
.build();
mediaPlayer.setAudioAttributes(audioAttributes);
} else {
mediaPlayer.setAudioStreamType(((MeditationAssistant) mContext.getApplicationContext()).audioStream());
}
float mediaVolume = (float) (value * 0.01);
mediaPlayer.setVolume(mediaVolume, mediaVolume);
mediaPlayer
.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(
MediaPlayer mp) {
mp.start();
}
});
mediaPlayer
.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(
MediaPlayer mp) {
mp.release();
}
});
mediaPlayer.prepareAsync();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}

View File

@ -17,7 +17,7 @@ import java.util.Map;
import java.util.TimeZone;
public class SessionAdapter extends ArrayAdapter<SessionSQL> {
public Map<String, Integer> sessions_map = new HashMap<String, Integer>();
public Map<String, Integer> sessions_map = new HashMap<>();
// private final ArrayList<MeditationSession> sessions;
private Context context = null;
private ArrayList<SessionSQL> sessions = null;
@ -35,15 +35,15 @@ public class SessionAdapter extends ArrayAdapter<SessionSQL> {
View rowView = inflater.inflate(R.layout.activity_sessions_item,
parent, false);
TextView txtSessionLength = (TextView) rowView
TextView txtSessionLength = rowView
.findViewById(R.id.session_length);
TextView txtSessionStarted = (TextView) rowView
TextView txtSessionStarted = rowView
.findViewById(R.id.session_started);
TextView txtSessionStartedTime = (TextView) rowView
TextView txtSessionStartedTime = rowView
.findViewById(R.id.session_started_time);
txtSessionLength
.setText(String.valueOf(sessions.get(position)._length / 3600)
.setText(sessions.get(position)._length / 3600
+ ":"
+ String.format("%02d",
(sessions.get(position)._length % 3600) / 60));

View File

@ -4,12 +4,13 @@ import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.util.Log;
import android.view.View;
import android.view.WindowManager;
import android.widget.ListView;
import androidx.fragment.app.ListFragment;
public class SessionsFragment extends ListFragment {
public MeditationAssistant ma = null;
AlertDialog sessionDialog = null;
@ -58,13 +59,7 @@ public class SessionsFragment extends ListFragment {
selected_session = (SessionSQL) getListView().getItemAtPosition(position);
sessionDialog = new AlertDialog.Builder(getActivity())
.setIcon(
getActivity().getResources().getDrawable(
getMeditationAssistant().getTheme().obtainStyledAttributes(getMeditationAssistant().getMATheme(true),
new int[]{R.attr.actionIconGoToToday})
.getResourceId(0, 0)
)
)
.setIcon(getActivity().getResources().getDrawable(getMeditationAssistant().getTheme().obtainStyledAttributes(getMeditationAssistant().getMATheme(true), new int[]{R.attr.actionIconGoToToday}).getResourceId(0, 0)))
.setTitle(session_title)
.setItems(R.array.session_actions,
new DialogInterface.OnClickListener() {
@ -93,15 +88,8 @@ public class SessionsFragment extends ListFragment {
getMeditationAssistant().getMediNET().postSession(0, null, null);
}
} else { // Delete
AlertDialog deleteDialog = new AlertDialog.Builder(
getActivity())
.setIcon(
getActivity().getResources().getDrawable(
getMeditationAssistant().getTheme().obtainStyledAttributes(getMeditationAssistant().getMATheme(true),
new int[]{R.attr.actionIconGoToToday})
.getResourceId(0, 0)
)
)
AlertDialog deleteDialog = new AlertDialog.Builder(getActivity())
.setIcon(getActivity().getResources().getDrawable(getMeditationAssistant().getTheme().obtainStyledAttributes(getMeditationAssistant().getMATheme(true), new int[]{R.attr.actionIconGoToToday}).getResourceId(0, 0)))
.setTitle(session_title)
.setItems(
R.array.session_delete_actions,
@ -136,15 +124,16 @@ public class SessionsFragment extends ListFragment {
}
}
}
).create();
)
.create();
deleteDialog.show();
}
}
}
).create();
)
.create();
sessionDialog.show();
return true;
}
});

View File

@ -11,6 +11,7 @@ import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.res.Configuration;
import android.database.Cursor;
import android.media.Ringtone;
import android.media.RingtoneManager;
import android.net.Uri;
@ -25,22 +26,30 @@ import android.preference.PreferenceActivity;
import android.preference.PreferenceCategory;
import android.preference.PreferenceFragment;
import android.preference.RingtonePreference;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.provider.OpenableColumns;
import android.text.InputType;
import android.text.TextUtils;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.nononsenseapps.filepicker.FilePickerActivity;
import com.nononsenseapps.filepicker.Utils;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import net.margaritov.preference.colorpicker.ColorPickerPreference;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.URLDecoder;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
@SuppressWarnings("deprecation")
@ -49,9 +58,13 @@ public class SettingsActivity extends PreferenceActivity {
static int FILEPICKER_SELECT_SOUND_START = 101;
static int FILEPICKER_SELECT_SOUND_INTERVAL = 102;
static int FILEPICKER_SELECT_SOUND_FINISH = 103;
static int FILEPICKER_SELECT_SOUND_BELL = 110;
static int FILEPICKER_IMPORT_SESSIONS_UTC = 104;
static int FILEPICKER_IMPORT_SESSIONS_LOCAL = 105;
static int FILEPICKER_EXPORT_SESSIONS = 106;
static int SElECT_VIBRATION_START = 107;
static int SElECT_VIBRATION_INTERVAL = 108;
static int SElECT_VIBRATION_FINISH = 109;
private static final int PERMISSION_REQUEST_SOUND_READ_EXTERNAL_STORAGE = 3002;
private static final int PERMISSION_REQUEST_IMPORT_READ_EXTERNAL_STORAGE = 3003;
private static final int PERMISSION_REQUEST_EXPORT_WRITE_EXTERNAL_STORAGE = 3004;
@ -60,13 +73,18 @@ public class SettingsActivity extends PreferenceActivity {
public Boolean initialSoundChangeStart = true;
public Boolean initialSoundChangeInterval = true;
public Boolean initialSoundChangeFinish = true;
public Boolean initialSoundChangeBell = true;
public Boolean initialVibrationChangeStart = true;
public Boolean initialVibrationChangeInterval = true;
public Boolean initialVibrationChangeFinish = true;
public SessionPreferenceFragment sessionPreferenceFragment = null;
public ReminderPreferenceFragment reminderPreferenceFragment = null;
public MeditationPreferenceFragment meditationPreferenceFragment = null;
public ProgressPreferenceFragment progressPreferenceFragment = null;
public MediNETPreferenceFragment medinetPreferenceFragment = null;
public MiscellaneousPreferenceFragment miscellaneousPreferenceFragment = null;
private int selectingPrefsound = 0;
private int selectingPrefSound = 0;
private int selectingPrefVibration = 0;
private MeditationAssistant ma = null;
private Preference.OnPreferenceChangeListener sBindPreferenceSummaryToValueListener = new Preference.OnPreferenceChangeListener() {
@Override
@ -130,21 +148,18 @@ public class SettingsActivity extends PreferenceActivity {
List<String> presetsettings = Arrays.asList(getResources().getStringArray(preference.getKey().equals("pref_presetsettings") ? R.array.presetsettings : R.array.mainbuttons));
List<String> presetsettings_values = Arrays.asList(getResources().getStringArray(preference.getKey().equals("pref_presetsettings") ? R.array.presetsettings_values : R.array.mainbuttons_values));
String presetsummary = "";
StringBuilder presetsummary = new StringBuilder();
for (Iterator<String> preseti = presetsettings_values.iterator(); preseti.hasNext(); ) {
String preset = preseti.next();
for (String preset : presetsettings_values) {
if (presetSettings.contains(preset)) {
if (presetsummary != "") {
presetsummary += ", ";
}
presetsummary += presetsettings.get(presetsettings_values.indexOf(preset));
if (presetsummary.length() > 0) presetsummary.append(", ");
presetsummary.append(presetsettings.get(presetsettings_values.indexOf(preset)));
}
}
preference.setSummary(presetsummary);
preference.setSummary(presetsummary.toString());
}
} else if (preference instanceof ListPreference || preference instanceof ListPreferenceSound) {
} else if (preference instanceof ListPreference || preference instanceof ListPreferenceSound || preference instanceof ListPreferenceVibration) {
// For list preferences, look up the correct display value in
// the preference's 'entries' list.
ListPreference listPreference = (ListPreference) preference;
@ -154,7 +169,7 @@ public class SettingsActivity extends PreferenceActivity {
preference.setSummary(
index >= 0
? listPreference.getEntries()[index]
: "Gong"
: (preference instanceof ListPreferenceSound ? "Gong" : (preference.getKey().equals("pref_timer_position") ? getString(R.string.top) : (preference.getKey().equals("pref_audio_output") ? getString(R.string.alarm) : getString(R.string.disabled))))
); // TODO: Don't hardcode sound names
if (listPreference.getKey().equals("pref_theme")) {
@ -190,6 +205,30 @@ public class SettingsActivity extends PreferenceActivity {
preference.setSummary(customSoundSummary(getMeditationAssistant().getPrefs().getString("pref_meditation_sound_finish_custom", "")));
}
initialSoundChangeFinish = false;
} else if (listPreference.getKey().equals("pref_meditation_sound_bell")) {
if (stringValue.equals("custom")) {
if (!initialSoundChangeBell) {
selectCustomSound(FILEPICKER_SELECT_SOUND_BELL);
}
preference.setSummary(customSoundSummary(getMeditationAssistant().getPrefs().getString("pref_meditation_sound_bell_custom", "")));
}
initialSoundChangeBell = false;
} else if (listPreference.getKey().equals("pref_meditation_vibrate_start")) {
if (stringValue.equals("custom") && !initialVibrationChangeStart) {
selectCustomVibration(SElECT_VIBRATION_START);
}
initialVibrationChangeStart = false;
} else if (listPreference.getKey().equals("pref_meditation_vibrate_interval")) {
if (stringValue.equals("custom") && !initialVibrationChangeInterval) {
selectCustomVibration(SElECT_VIBRATION_INTERVAL);
}
initialVibrationChangeInterval = false;
} else if (listPreference.getKey().equals("pref_meditation_vibrate_finish")) {
if (stringValue.equals("custom") && !initialVibrationChangeFinish) {
selectCustomVibration(SElECT_VIBRATION_FINISH);
}
initialVibrationChangeFinish = false;
}
} else if (preference instanceof RingtonePreference) {
// For ringtone preferences, look up the correct display value
@ -227,7 +266,7 @@ public class SettingsActivity extends PreferenceActivity {
timeValueSplit[0] = "12";
}
timeValue = String.valueOf(Integer.valueOf(timeValueSplit[0])) + ":"
timeValue = Integer.valueOf(timeValueSplit[0]) + ":"
+ String.format("%02d", Integer.valueOf(timeValueSplit[1])) + " " + ampm;
} catch (Exception e) {
e.printStackTrace();
@ -240,13 +279,13 @@ public class SettingsActivity extends PreferenceActivity {
sendBroadcast(intent);
}
} else { // pref_session_delay and pref_session_interval
Log.d("MeditationAssistant", preference.getKey() + " value: " + String.valueOf(stringValue));
Log.d("MeditationAssistant", preference.getKey() + " value: " + stringValue);
String timeValue = "";
Boolean isDisabled = false;
try {
String[] timeValueSplit = ((stringValue != null && stringValue != "") ? stringValue : (preference.getKey().equals("pref_session_delay") ? "00:15" : "00:00")).split(":");
timeValue = String.valueOf((int) Math.floor(Integer.valueOf(timeValueSplit[0]) / 60)) + ":"
timeValue = (int) Math.floor(Integer.valueOf(timeValueSplit[0]) / 60) + ":"
+ String.format("%02d", Integer.valueOf(timeValueSplit[0]) % 60) + ":"
+ String.format("%02d", Integer.valueOf(timeValueSplit[1]));
isDisabled = (Integer.valueOf(timeValueSplit[0]) == 0 && Integer.valueOf(timeValueSplit[1]) == 0);
@ -260,33 +299,38 @@ public class SettingsActivity extends PreferenceActivity {
ListPreferenceSound prefIntervalSound = (ListPreferenceSound) (sessionPreferenceFragment == null ? findPreference("pref_meditation_sound_interval") : sessionPreferenceFragment.findPreference("pref_meditation_sound_interval"));
prefIntervalSound.setEnabled(!isDisabled);
ListPreferenceVibration prefIntervalVibrate = (ListPreferenceVibration) (sessionPreferenceFragment == null ? findPreference("pref_meditation_vibrate_interval") : sessionPreferenceFragment.findPreference("pref_meditation_vibrate_interval"));
prefIntervalVibrate.setEnabled(!isDisabled);
EditTextPreference prefIntervalCount = (EditTextPreference) (sessionPreferenceFragment == null ? findPreference("pref_interval_count") : sessionPreferenceFragment.findPreference("pref_interval_count"));
prefIntervalCount.setEnabled(!isDisabled);
}
}
} else if (preference instanceof EditTextPreference) {
String reminderText = getString(preference.getKey().equals("pref_daily_reminder_text") ? R.string.reminderText : R.string.ignore_introphrase);
if (stringValue != null && (preference.getKey().equals("pref_sessionintro") || !String.valueOf(stringValue).trim().equals(""))) {
reminderText = String.valueOf(stringValue).trim();
if (preference.getKey().equals("pref_interval_count")) {
if (stringValue == null || stringValue.trim().equals("")) {
stringValue = "0";
}
if (Integer.valueOf(stringValue) <= 0) {
preference.setSummary(getString(R.string.unlimited));
} else {
preference.setSummary(getResources().getQuantityString(
R.plurals.numtimes, Integer.valueOf(stringValue),
String.valueOf(Integer.valueOf(stringValue))
));
}
} else {
String reminderText = getString(preference.getKey().equals("pref_daily_reminder_text") ? R.string.reminderText : R.string.ignore_introphrase);
if (stringValue != null && (preference.getKey().equals("pref_sessionintro") || !stringValue.trim().equals(""))) {
reminderText = stringValue.trim();
}
preference.setSummary(reminderText);
}
preference.setSummary(reminderText);
} else if (preference instanceof SeekBarPreference) {
if (stringValue == null || stringValue.equals("")) {
stringValue = "50";
}
preference.setSummary(String.valueOf(((Integer.valueOf(stringValue) + 4) / 5 * 5)) + "%");
} else if (preference.getKey().equals("pref_interval_count")) {
if (stringValue == null || String.valueOf(stringValue).trim().equals("")) {
stringValue = "0";
}
if (Integer.valueOf(stringValue) <= 0) {
preference.setSummary(getString(R.string.unlimited));
} else {
preference.setSummary(getResources().getQuantityString(
R.plurals.numtimes, Integer.valueOf(stringValue),
String.valueOf(Integer.valueOf(stringValue))
));
}
preference.setSummary((Integer.valueOf(stringValue) + 4) / 5 * 5 + "%");
} else {
// For all other preferences, set the summary to the value's
// simple string representation.
@ -298,50 +342,107 @@ public class SettingsActivity extends PreferenceActivity {
};
private void selectCustomSound(int requestCode) {
selectingPrefsound = requestCode;
selectingPrefSound = requestCode;
if (ContextCompat.checkSelfPermission(this,
Manifest.permission.READ_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
if (!MeditationAssistant.hasPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE)) {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
PERMISSION_REQUEST_SOUND_READ_EXTERNAL_STORAGE);
} else {
getMeditationAssistant().showFilePickerDialog(SettingsActivity.this, requestCode, FilePickerActivity.MODE_FILE);
getMeditationAssistant().showFilePickerDialog(SettingsActivity.this, requestCode, "openfile", "");
}
}
private void selectCustomVibration(int requestCode) {
selectingPrefVibration = requestCode;
String dialogTitle = "";
String value = "";
if (requestCode == SElECT_VIBRATION_START) {
dialogTitle = getString(R.string.pref_meditation_vibrate_start);
value = getMeditationAssistant().getPrefs().getString("pref_meditation_vibrate_start_custom", "");
} else if (requestCode == SElECT_VIBRATION_INTERVAL) {
dialogTitle = getString(R.string.pref_meditation_vibrate_interval);
value = getMeditationAssistant().getPrefs().getString("pref_meditation_vibrate_interval_custom", "");
} else if (requestCode == SElECT_VIBRATION_FINISH) {
dialogTitle = getString(R.string.pref_meditation_vibrate_finish);
value = getMeditationAssistant().getPrefs().getString("pref_meditation_vibrate_finish_custom", "");
} else {
return;
}
if (value.trim().equals("")) {
value = "110,225,110";
}
LayoutInflater presetInflater = getLayoutInflater();
View presetLayout = presetInflater.inflate(R.layout.set_vibration, null);
final EditText editVibrationPattern = presetLayout.findViewById(R.id.editVibrationPattern);
editVibrationPattern.setText(value);
editVibrationPattern.selectAll();
editVibrationPattern.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
AlertDialog.Builder builder = new AlertDialog.Builder(SettingsActivity.this);
builder
.setIcon(getResources().getDrawable(getTheme().obtainStyledAttributes(getMeditationAssistant().getMATheme(), new int[]{R.attr.actionIconFlashOn}).getResourceId(0, 0)))
.setTitle(dialogTitle)
.setView(presetLayout)
.setPositiveButton(getString(R.string.set),
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
if (requestCode == SElECT_VIBRATION_START) {
getMeditationAssistant().getPrefs().edit().putString("pref_meditation_vibrate_start_custom", editVibrationPattern.getText().toString()).apply();
} else if (requestCode == SElECT_VIBRATION_INTERVAL) {
getMeditationAssistant().getPrefs().edit().putString("pref_meditation_vibrate_interval_custom", editVibrationPattern.getText().toString()).apply();
} else if (requestCode == SElECT_VIBRATION_FINISH) {
getMeditationAssistant().getPrefs().edit().putString("pref_meditation_vibrate_finish_custom", editVibrationPattern.getText().toString()).apply();
}
}
})
.setNeutralButton(getString(R.string.vibrate), null)
.setNegativeButton(getString(R.string.cancel), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
// Do nothing
}
});
final AlertDialog alertDialog = builder.create();
alertDialog.setOnShowListener(new DialogInterface.OnShowListener() {
@Override
public void onShow(DialogInterface dialog) {
Button b = alertDialog.getButton(AlertDialog.BUTTON_NEUTRAL);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
getMeditationAssistant().vibrateDevice(editVibrationPattern.getText().toString());
}
});
}
});
alertDialog.show();
}
@Override
public void onRequestPermissionsResult(int requestCode,
String permissions[], int[] grantResults) {
String[] permissions, int[] grantResults) {
switch (requestCode) {
case PERMISSION_REQUEST_SOUND_READ_EXTERNAL_STORAGE: {
if ((grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED)) {
getMeditationAssistant().showFilePickerDialog(SettingsActivity.this, selectingPrefsound, FilePickerActivity.MODE_FILE);
getMeditationAssistant().showFilePickerDialog(SettingsActivity.this, selectingPrefSound, "openfile", "");
} else if (ActivityCompat.shouldShowRequestPermissionRationale(this,
Manifest.permission.READ_EXTERNAL_STORAGE)) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setIcon(
getResources()
.getDrawable(
getTheme()
.obtainStyledAttributes(
getMeditationAssistant()
.getMATheme(true),
new int[]{R.attr.actionIconSettings}
)
.getResourceId(0, 0)
)
)
builder
.setIcon(getResources().getDrawable(getTheme().obtainStyledAttributes(getMeditationAssistant().getMATheme(true), new int[]{R.attr.actionIconSettings}).getResourceId(0, 0)))
.setTitle(getString(R.string.permissionRequest))
.setMessage(
getString(R.string.permissionRequired))
.setMessage(getString(R.string.permissionRequired))
.setPositiveButton(getString(R.string.tryAgain),
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
selectCustomSound(selectingPrefsound);
selectCustomSound(selectingPrefSound);
}
})
.setNegativeButton(getString(R.string.deny),
@ -350,8 +451,8 @@ public class SettingsActivity extends PreferenceActivity {
public void onClick(DialogInterface dialogInterface, int i) {
}
}).show();
break;
}
break;
}
case PERMISSION_REQUEST_IMPORT_READ_EXTERNAL_STORAGE: {
if ((grantResults.length > 0
@ -360,21 +461,10 @@ public class SettingsActivity extends PreferenceActivity {
} else if (ActivityCompat.shouldShowRequestPermissionRationale(this,
Manifest.permission.READ_EXTERNAL_STORAGE)) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setIcon(
getResources()
.getDrawable(
getTheme()
.obtainStyledAttributes(
getMeditationAssistant()
.getMATheme(true),
new int[]{R.attr.actionIconSettings}
)
.getResourceId(0, 0)
)
)
builder
.setIcon(getResources().getDrawable(getTheme().obtainStyledAttributes(getMeditationAssistant().getMATheme(true), new int[]{R.attr.actionIconSettings}).getResourceId(0, 0)))
.setTitle(getString(R.string.permissionRequest))
.setMessage(
getString(R.string.permissionRequired))
.setMessage(getString(R.string.permissionRequired))
.setPositiveButton(getString(R.string.tryAgain),
new DialogInterface.OnClickListener() {
@Override
@ -389,32 +479,22 @@ public class SettingsActivity extends PreferenceActivity {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
}).show();
break;
})
.show();
}
break;
}
case PERMISSION_REQUEST_EXPORT_WRITE_EXTERNAL_STORAGE: {
if ((grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED)) {
getMeditationAssistant().showFilePickerDialog(SettingsActivity.this, FILEPICKER_EXPORT_SESSIONS, FilePickerActivity.MODE_NEW_FILE);
getMeditationAssistant().showFilePickerDialog(SettingsActivity.this, FILEPICKER_EXPORT_SESSIONS, "newfile", "sessions.csv");
} else if (ActivityCompat.shouldShowRequestPermissionRationale(this,
Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setIcon(
getResources()
.getDrawable(
getTheme()
.obtainStyledAttributes(
getMeditationAssistant()
.getMATheme(true),
new int[]{R.attr.actionIconSettings}
)
.getResourceId(0, 0)
)
)
builder
.setIcon(getResources().getDrawable(getTheme().obtainStyledAttributes(getMeditationAssistant().getMATheme(true), new int[]{R.attr.actionIconSettings}).getResourceId(0, 0)))
.setTitle(getString(R.string.permissionRequest))
.setMessage(
getString(R.string.permissionRequired))
.setMessage(getString(R.string.permissionRequired))
.setPositiveButton(getString(R.string.tryAgain),
new DialogInterface.OnClickListener() {
@Override
@ -429,9 +509,10 @@ public class SettingsActivity extends PreferenceActivity {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
}).show();
break;
})
.show();
}
break;
}
}
}
@ -452,22 +533,9 @@ public class SettingsActivity extends PreferenceActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
setTheme(getMeditationAssistant().getMATheme());
getMeditationAssistant().utility.initializeTracker(this);
super.onCreate(savedInstanceState);
}
@Override
public void onStart() {
super.onStart();
getMeditationAssistant().utility.trackingStart(this);
}
@Override
protected void onStop() {
super.onStop();
getMeditationAssistant().utility.trackingStop(this);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (resultCode != Activity.RESULT_OK) {
@ -475,39 +543,72 @@ public class SettingsActivity extends PreferenceActivity {
}
if (requestCode == FILEPICKER_IMPORT_SESSIONS_UTC || requestCode == FILEPICKER_IMPORT_SESSIONS_LOCAL) {
List<Uri> files = Utils.getSelectedFilesFromResult(intent);
for (Uri uri : files) {
getMeditationAssistant().importSessions(SettingsActivity.this, uri, requestCode == FILEPICKER_IMPORT_SESSIONS_LOCAL);
}
Uri uri = getMeditationAssistant().filePickerResult(intent);
getMeditationAssistant().importSessions(SettingsActivity.this, uri, requestCode == FILEPICKER_IMPORT_SESSIONS_LOCAL);
return;
} else if (requestCode == FILEPICKER_EXPORT_SESSIONS) {
List<Uri> files = Utils.getSelectedFilesFromResult(intent);
for (Uri uri : files) {
getMeditationAssistant().exportSessions(SettingsActivity.this, uri);
}
Uri uri = getMeditationAssistant().filePickerResult(intent);
getMeditationAssistant().exportSessions(SettingsActivity.this, uri);
return;
}
String pref;
String pref_key;
String file_prefix;
if (requestCode == FILEPICKER_SELECT_SOUND_START) {
pref_key = "pref_meditation_sound_start";
pref = "pref_meditation_sound_start_custom";
file_prefix = "ma_start_";
} else if (requestCode == FILEPICKER_SELECT_SOUND_INTERVAL) {
pref_key = "pref_meditation_sound_interval";
pref = "pref_meditation_sound_interval_custom";
file_prefix = "ma_interval_";
} else if (requestCode == FILEPICKER_SELECT_SOUND_FINISH) {
pref_key = "pref_meditation_sound_finish";
pref = "pref_meditation_sound_finish_custom";
file_prefix = "ma_finish_";
} else if (requestCode == FILEPICKER_SELECT_SOUND_BELL) {
pref_key = "pref_meditation_sound_bell";
pref = "pref_meditation_sound_bell_custom";
file_prefix = "ma_bell_";
} else {
return;
}
List<Uri> files = Utils.getSelectedFilesFromResult(intent);
for (Uri uri : files) {
getMeditationAssistant().getPrefs().edit().putString(pref, uri.toString()).apply();
Cursor cursor = getContentResolver().query(getMeditationAssistant().filePickerResult(intent), null, null, null, null);
int nameIndex = cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME);
cursor.moveToFirst();
String filename = cursor.getString(nameIndex);
if (filename == null || filename.equals("")) {
return;
}
filename = file_prefix + filename;
InputStream inputStream;
try {
inputStream = getContentResolver().openInputStream(getMeditationAssistant().filePickerResult(intent));
} catch (FileNotFoundException e) {
e.printStackTrace();
return;
}
File file = new File(getFilesDir(), filename);
boolean success = MeditationAssistant.writeInputStreamToFile(inputStream, file);
if (!success) {
return;
}
String oldFilename = getMeditationAssistant().getPrefs().getString(pref, "");
if (!oldFilename.equals(filename)) {
try {
File oldFile = new File(getFilesDir(), oldFilename);
oldFile.delete();
} catch (Exception e) {
// Do nothing.
}
}
getMeditationAssistant().getPrefs().edit().putString(pref, filename).apply();
if (requestCode == FILEPICKER_SELECT_SOUND_START) {
initialSoundChangeStart = true;
@ -515,6 +616,8 @@ public class SettingsActivity extends PreferenceActivity {
initialSoundChangeInterval = true;
} else if (requestCode == FILEPICKER_SELECT_SOUND_FINISH) {
initialSoundChangeFinish = true;
} else if (requestCode == FILEPICKER_SELECT_SOUND_BELL) {
initialSoundChangeBell = true;
}
ListPreferenceSound prefMeditationSound = (ListPreferenceSound) (sessionPreferenceFragment == null ? findPreference(pref_key) : sessionPreferenceFragment.findPreference(pref_key));
@ -553,7 +656,7 @@ public class SettingsActivity extends PreferenceActivity {
setupSimplePreferencesScreen();
}
void setupSoundPreferences(PreferenceFragment preferenceFragment) {
void setupSessionSoundPreferences(PreferenceFragment preferenceFragment) {
String[] meditation_sounds = getResources().getStringArray(R.array.meditation_sounds);
String[] meditation_sounds_values = getResources().getStringArray(R.array.meditation_sounds_values);
@ -576,6 +679,32 @@ public class SettingsActivity extends PreferenceActivity {
}
}
void setupMeditationSoundPreferences(PreferenceFragment preferenceFragment) {
String[] meditation_sounds = getResources().getStringArray(R.array.meditation_sounds);
String[] meditation_sounds_values = getResources().getStringArray(R.array.meditation_sounds_values);
ListPreferenceSound prefMeditationSoundBell = (ListPreferenceSound) (preferenceFragment == null ? findPreference("pref_meditation_sound_bell") : preferenceFragment.findPreference("pref_meditation_sound_bell"));
prefMeditationSoundBell.setEntries(meditation_sounds);
prefMeditationSoundBell.setEntryValues(meditation_sounds_values);
}
void setupVibrationPreferences(PreferenceFragment preferenceFragment) {
String[] vibration = getResources().getStringArray(R.array.vibration);
String[] vibration_values = getResources().getStringArray(R.array.vibration_values);
ListPreferenceVibration prefMeditationVibrateStart = (ListPreferenceVibration) (preferenceFragment == null ? findPreference("pref_meditation_vibrate_start") : preferenceFragment.findPreference("pref_meditation_vibrate_start"));
prefMeditationVibrateStart.setEntries(vibration);
prefMeditationVibrateStart.setEntryValues(vibration_values);
ListPreferenceVibration prefMeditationVibrateInterval = (ListPreferenceVibration) (preferenceFragment == null ? findPreference("pref_meditation_vibrate_interval") : preferenceFragment.findPreference("pref_meditation_vibrate_interval"));
prefMeditationVibrateInterval.setEntries(vibration);
prefMeditationVibrateInterval.setEntryValues(vibration_values);
ListPreferenceVibration prefMeditationVibrateFinish = (ListPreferenceVibration) (preferenceFragment == null ? findPreference("pref_meditation_vibrate_finish") : preferenceFragment.findPreference("pref_meditation_vibrate_finish"));
prefMeditationVibrateFinish.setEntries(vibration);
prefMeditationVibrateFinish.setEntryValues(vibration_values);
}
void setupPreferences(String pref_type, PreferenceFragment preferenceFragment) {
if (pref_type.equals("all") || pref_type.equals("session")) {
if (preferenceFragment != null) {
@ -585,10 +714,13 @@ public class SettingsActivity extends PreferenceActivity {
bindPreferenceSummaryToValue(preferenceFragment == null ? findPreference("pref_sessionintro") : preferenceFragment.findPreference("pref_sessionintro"));
bindPreferenceSummaryToValue(preferenceFragment == null ? findPreference("pref_session_delay") : preferenceFragment.findPreference("pref_session_delay"));
bindPreferenceSummaryToValue(preferenceFragment == null ? findPreference("pref_meditation_sound_start") : preferenceFragment.findPreference("pref_meditation_sound_start"));
bindPreferenceSummaryToValue(preferenceFragment == null ? findPreference("pref_meditation_vibrate_start") : preferenceFragment.findPreference("pref_meditation_vibrate_start"));
bindPreferenceSummaryToValue(preferenceFragment == null ? findPreference("pref_meditation_sound_interval") : preferenceFragment.findPreference("pref_meditation_sound_interval"));
bindPreferenceSummaryToValue(preferenceFragment == null ? findPreference("pref_meditation_vibrate_interval") : preferenceFragment.findPreference("pref_meditation_vibrate_interval"));
bindPreferenceSummaryToValue(preferenceFragment == null ? findPreference("pref_session_interval") : preferenceFragment.findPreference("pref_session_interval"));
bindPreferenceSummaryToValue(preferenceFragment == null ? findPreference("pref_interval_count") : preferenceFragment.findPreference("pref_interval_count"));
bindPreferenceSummaryToValue(preferenceFragment == null ? findPreference("pref_meditation_sound_finish") : preferenceFragment.findPreference("pref_meditation_sound_finish"));
bindPreferenceSummaryToValue(preferenceFragment == null ? findPreference("pref_meditation_vibrate_finish") : preferenceFragment.findPreference("pref_meditation_vibrate_finish"));
bindPreferenceSummaryToValue(preferenceFragment == null ? findPreference("pref_notificationcontrol") : preferenceFragment.findPreference("pref_notificationcontrol"));
bindPreferenceSummaryToValue(preferenceFragment == null ? findPreference("pref_sessionvolume") : preferenceFragment.findPreference("pref_sessionvolume"));
bindPreferenceSummaryToValue(preferenceFragment == null ? findPreference("pref_presetsettings") : preferenceFragment.findPreference("pref_presetsettings"));
@ -598,22 +730,23 @@ public class SettingsActivity extends PreferenceActivity {
reminderPreferenceFragment = (ReminderPreferenceFragment) preferenceFragment;
}
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
bindPreferenceSummaryToValue(preferenceFragment == null ? findPreference("pref_daily_reminder_text") : preferenceFragment.findPreference("pref_daily_reminder_text"));
bindPreferenceSummaryToValue(preferenceFragment == null ? findPreference("pref_daily_reminder_time") : preferenceFragment.findPreference("pref_daily_reminder_time"));
bindPreferenceSummaryToValue(preferenceFragment == null ? findPreference("pref_daily_reminder") : preferenceFragment.findPreference("pref_daily_reminder"));
}
bindPreferenceSummaryToValue(preferenceFragment == null ? findPreference("pref_daily_reminder_text") : preferenceFragment.findPreference("pref_daily_reminder_text"));
bindPreferenceSummaryToValue(preferenceFragment == null ? findPreference("pref_daily_reminder_time") : preferenceFragment.findPreference("pref_daily_reminder_time"));
bindPreferenceSummaryToValue(preferenceFragment == null ? findPreference("pref_daily_reminder") : preferenceFragment.findPreference("pref_daily_reminder"));
}
if (pref_type.equals("all") || pref_type.equals("meditation")) {
if (preferenceFragment != null) {
meditationPreferenceFragment = (MeditationPreferenceFragment) preferenceFragment;
}
bindPreferenceSummaryToValue(preferenceFragment == null ? findPreference("pref_meditation_sound_bell") : preferenceFragment.findPreference("pref_meditation_sound_bell"));
bindPreferenceSummaryToValue(preferenceFragment == null ? findPreference("pref_usetimepicker") : preferenceFragment.findPreference("pref_usetimepicker"));
bindPreferenceSummaryToValue(preferenceFragment == null ? findPreference("pref_screencontrol") : preferenceFragment.findPreference("pref_screencontrol"));
bindPreferenceSummaryToValue(preferenceFragment == null ? findPreference("pref_full_screen") : preferenceFragment.findPreference("pref_full_screen"));
bindPreferenceSummaryToValue(preferenceFragment == null ? findPreference("pref_text_size") : preferenceFragment.findPreference("pref_text_size"));
bindPreferenceSummaryToValue(preferenceFragment == null ? findPreference("pref_timer_position") : preferenceFragment.findPreference("pref_timer_position"));
bindPreferenceSummaryToValue(preferenceFragment == null ? findPreference("pref_autosave") : preferenceFragment.findPreference("pref_autosave"));
bindPreferenceSummaryToValue(preferenceFragment == null ? findPreference("pref_audio_output") : preferenceFragment.findPreference("pref_audio_output"));
}
if (pref_type.equals("all") || pref_type.equals("progress")) {
if (preferenceFragment != null) {
@ -627,9 +760,7 @@ public class SettingsActivity extends PreferenceActivity {
importSessions.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference arg0) {
if (ContextCompat.checkSelfPermission(SettingsActivity.this,
Manifest.permission.READ_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
if (!MeditationAssistant.hasPermission(SettingsActivity.this, Manifest.permission.READ_EXTERNAL_STORAGE)) {
ActivityCompat.requestPermissions(SettingsActivity.this,
new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
PERMISSION_REQUEST_IMPORT_READ_EXTERNAL_STORAGE);
@ -644,14 +775,12 @@ public class SettingsActivity extends PreferenceActivity {
exportSessions.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference arg0) {
if (ContextCompat.checkSelfPermission(SettingsActivity.this,
Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
if (!MeditationAssistant.hasPermission(SettingsActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
ActivityCompat.requestPermissions(SettingsActivity.this,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
PERMISSION_REQUEST_EXPORT_WRITE_EXTERNAL_STORAGE);
} else {
getMeditationAssistant().showFilePickerDialog(SettingsActivity.this, FILEPICKER_EXPORT_SESSIONS, FilePickerActivity.MODE_NEW_FILE);
getMeditationAssistant().showFilePickerDialog(SettingsActivity.this, FILEPICKER_EXPORT_SESSIONS, "newfile", "sessions.csv");
}
return false;
}
@ -719,11 +848,6 @@ public class SettingsActivity extends PreferenceActivity {
bindPreferenceSummaryToValue(preferenceFragment == null ? findPreference("pref_theme") : preferenceFragment.findPreference("pref_theme"));
bindPreferenceSummaryToValue(preferenceFragment == null ? findPreference("pref_widgetcolor") : preferenceFragment.findPreference("pref_widgetcolor"));
bindPreferenceSummaryToValue(preferenceFragment == null ? findPreference("pref_mainbuttons") : preferenceFragment.findPreference("pref_mainbuttons"));
if (BuildConfig.FLAVOR.equals("opensource")) { // Hide usage statistics preference, as tracking is completely disabled
CheckBoxPreference pref_sendusage = (CheckBoxPreference) (preferenceFragment == null ? findPreference("pref_sendusage") : preferenceFragment.findPreference("pref_sendusage"));
(preferenceFragment == null ? getPreferenceScreen() : preferenceFragment.getPreferenceScreen()).removePreference(pref_sendusage);
}
}
}
@ -739,14 +863,6 @@ public class SettingsActivity extends PreferenceActivity {
PreferenceCategory fakeHeader = new PreferenceCategory(this);
addPreferencesFromResource(R.xml.pref_session);
// Add 'Daily Reminder' preferences
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
fakeHeader = new PreferenceCategory(this);
fakeHeader.setTitle(R.string.pref_daily_reminder);
getPreferenceScreen().addPreference(fakeHeader);
addPreferencesFromResource(R.xml.pref_reminder);
}
// Add 'Meditation' preferences
fakeHeader = new PreferenceCategory(this);
fakeHeader.setTitle(R.string.meditation);
@ -765,13 +881,21 @@ public class SettingsActivity extends PreferenceActivity {
getPreferenceScreen().addPreference(fakeHeader);
addPreferencesFromResource(R.xml.pref_medinet);
// Add 'Daily Reminder' preferences
fakeHeader = new PreferenceCategory(this);
fakeHeader.setTitle(R.string.pref_daily_reminder);
getPreferenceScreen().addPreference(fakeHeader);
addPreferencesFromResource(R.xml.pref_reminder);
// Add 'Miscellaneous' preferences
fakeHeader = new PreferenceCategory(this);
fakeHeader.setTitle(R.string.miscellaneous);
getPreferenceScreen().addPreference(fakeHeader);
addPreferencesFromResource(R.xml.pref_miscellaneous);
setupSoundPreferences(null);
setupSessionSoundPreferences(null);
setupMeditationSoundPreferences(null);
setupVibrationPreferences(null);
setupPreferences("all", null);
}
@ -785,10 +909,6 @@ public class SettingsActivity extends PreferenceActivity {
public void onBuildHeaders(List<Header> target) {
if (!isSimplePreferences(this)) {
loadHeadersFromResource(R.xml.pref_headers, target);
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
loadHeadersFromResource(R.xml.pref_headers_pre26, target);
}
loadHeadersFromResource(R.xml.pref_headers_footer, target);
}
}
@ -797,11 +917,16 @@ public class SettingsActivity extends PreferenceActivity {
return getString(R.string.noSound);
}
try {
return java.net.URLDecoder.decode(meditation_sound.substring(meditation_sound.lastIndexOf("/") + 1), "UTF-8");
} catch (Exception e) {
return meditation_sound;
if (meditation_sound.startsWith("ma_start_")) {
return meditation_sound.substring(9);
} else if (meditation_sound.startsWith("ma_interval_")) {
return meditation_sound.substring(12);
} else if (meditation_sound.startsWith("ma_finish_")) {
return meditation_sound.substring(10);
} else if (meditation_sound.startsWith("ma_bell_")) {
return meditation_sound.substring(8);
}
return meditation_sound;
}
private void bindPreferenceSummaryToValue(Preference preference) {
@ -815,22 +940,15 @@ public class SettingsActivity extends PreferenceActivity {
// Trigger the listener immediately with the preference's
// current value.
if (preference.getKey().equals("pref_daily_reminder") || preference.getKey().equals("pref_usetimepicker")) {
sBindPreferenceSummaryToValueListener.onPreferenceChange(preference,
getMeditationAssistant().getPrefs()
.getBoolean(preference.getKey(), false)
);
sBindPreferenceSummaryToValueListener.onPreferenceChange(preference, getMeditationAssistant().getPrefs().getBoolean(preference.getKey(), false));
} else if (preference.getKey().equals("pref_presetsettings")) {
sBindPreferenceSummaryToValueListener.onPreferenceChange(preference, getMeditationAssistant().getPrefs().getStringSet("pref_presetsettings", new HashSet<String>(Arrays.asList(getResources().getStringArray(R.array.presetsettings_default))))
);
sBindPreferenceSummaryToValueListener.onPreferenceChange(preference, getMeditationAssistant().getPrefs().getStringSet("pref_presetsettings", new HashSet<>(Arrays.asList(getResources().getStringArray(R.array.presetsettings_default)))));
} else if (preference.getKey().equals("pref_mainbuttons")) {
sBindPreferenceSummaryToValueListener.onPreferenceChange(preference, getMeditationAssistant().getPrefs().getStringSet("pref_mainbuttons", new HashSet<String>()));
sBindPreferenceSummaryToValueListener.onPreferenceChange(preference, getMeditationAssistant().getPrefs().getStringSet("pref_mainbuttons", new HashSet<>()));
} else if (preference.getKey().equals("pref_sessionvolume")) {
sBindPreferenceSummaryToValueListener.onPreferenceChange(preference, getMeditationAssistant().getPrefs().getInt("pref_sessionvolume", 50));
} else {
sBindPreferenceSummaryToValueListener.onPreferenceChange(preference,
getMeditationAssistant().getPrefs()
.getString(preference.getKey(), "")
);
sBindPreferenceSummaryToValueListener.onPreferenceChange(preference, getMeditationAssistant().getPrefs().getString(preference.getKey(), ""));
}
}
@ -864,7 +982,8 @@ public class SettingsActivity extends PreferenceActivity {
getPreferenceScreen().removePreference(prefCatSession);
SettingsActivity settingsactivity = (SettingsActivity) getActivity();
settingsactivity.setupSoundPreferences(this);
settingsactivity.setupSessionSoundPreferences(this);
settingsactivity.setupVibrationPreferences(this);
settingsactivity.setupPreferences("session", this);
}
}
@ -895,6 +1014,7 @@ public class SettingsActivity extends PreferenceActivity {
addPreferencesFromResource(R.xml.pref_meditation);
SettingsActivity settingsactivity = (SettingsActivity) getActivity();
settingsactivity.setupMeditationSoundPreferences(this);
settingsactivity.setupPreferences("meditation", this);
}
}

View File

@ -3,13 +3,14 @@ package sh.ftp.rocketninelabs.meditationassistant;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.fragment.app.Fragment;
import java.text.NumberFormat;
import java.util.Locale;
@ -46,18 +47,18 @@ public class StatsFragment extends Fragment {
int abovehours = abovedays % 3600;
int time_spent_meditating_minutes = abovehours / 60;
TextView txtTimespentMeditatingDays = (TextView) fragment_progress_stats.findViewById(R.id.txtTimeSpentMeditatingDays);
TextView txtTimespentMeditatingHours = (TextView) fragment_progress_stats.findViewById(R.id.txtTimeSpentMeditatingHours);
TextView txtTimespentMeditatingMinutes = (TextView) fragment_progress_stats.findViewById(R.id.txtTimeSpentMeditatingMinutes);
TextView txtTimespentMeditatingDays = fragment_progress_stats.findViewById(R.id.txtTimeSpentMeditatingDays);
TextView txtTimespentMeditatingHours = fragment_progress_stats.findViewById(R.id.txtTimeSpentMeditatingHours);
TextView txtTimespentMeditatingMinutes = fragment_progress_stats.findViewById(R.id.txtTimeSpentMeditatingMinutes);
txtTimespentMeditatingDays.setText(String.valueOf(time_spent_meditating_days));
txtTimespentMeditatingHours.setText(String.valueOf(time_spent_meditating_hours));
txtTimespentMeditatingMinutes.setText(String.valueOf(time_spent_meditating_minutes));
TextView txtOtherStatisticsSessions = (TextView) fragment_progress_stats.findViewById(R.id.txtOtherStatisticsSessions);
TextView txtOtherStatisticsLongestDuration = (TextView) fragment_progress_stats.findViewById(R.id.txtOtherStatisticsLongestDuration);
TextView txtOtherStatisticsAverageDuration = (TextView) fragment_progress_stats.findViewById(R.id.txtOtherStatisticsAverageDuration);
TextView txtOtherStatisticsLongestStreak = (TextView) fragment_progress_stats.findViewById(R.id.txtOtherStatisticsLongestStreak);
TextView txtOtherStatisticsSessions = fragment_progress_stats.findViewById(R.id.txtOtherStatisticsSessions);
TextView txtOtherStatisticsLongestDuration = fragment_progress_stats.findViewById(R.id.txtOtherStatisticsLongestDuration);
TextView txtOtherStatisticsAverageDuration = fragment_progress_stats.findViewById(R.id.txtOtherStatisticsAverageDuration);
TextView txtOtherStatisticsLongestStreak = fragment_progress_stats.findViewById(R.id.txtOtherStatisticsLongestStreak);
int numSessions = getMeditationAssistant().db.getNumSessions();
txtOtherStatisticsSessions.setText(NumberFormat.getNumberInstance(currentLocale).format(numSessions));
@ -72,7 +73,7 @@ public class StatsFragment extends Fragment {
int secondsPerSessionMinutes = secondsPerSessionRemainder / 60;
int secondsPerSessionSeconds = secondsPerSessionRemainder % 60;
txtOtherStatisticsAverageDuration.setText(String.valueOf(secondsPerSessionHours) + ":" + String.format("%02d", secondsPerSessionMinutes) + ":" + String.format("%02d", secondsPerSessionSeconds));
txtOtherStatisticsAverageDuration.setText(secondsPerSessionHours + ":" + String.format("%02d", secondsPerSessionMinutes) + ":" + String.format("%02d", secondsPerSessionSeconds));
// Re-use variables
secondsPerSession = getMeditationAssistant().db.getLongestSessionLength();
@ -81,13 +82,12 @@ public class StatsFragment extends Fragment {
secondsPerSessionMinutes = secondsPerSessionRemainder / 60;
secondsPerSessionSeconds = secondsPerSessionRemainder % 60;
txtOtherStatisticsLongestDuration.setText(String.valueOf(secondsPerSessionHours) + ":" + String.format("%02d", secondsPerSessionMinutes) + ":" + String.format("%02d", secondsPerSessionSeconds));
txtOtherStatisticsLongestDuration.setText(secondsPerSessionHours + ":" + String.format("%02d", secondsPerSessionMinutes) + ":" + String.format("%02d", secondsPerSessionSeconds));
int longestStreak = getMeditationAssistant().getLongestMeditationStreak();
txtOtherStatisticsLongestStreak.setText(String.format(getResources().getQuantityString(R.plurals.daysOfMeditationMinimal, longestStreak, longestStreak), NumberFormat.getNumberInstance(currentLocale).format(longestStreak)));
}
@SuppressWarnings("deprecation")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@ -123,7 +123,6 @@ public class StatsFragment extends Fragment {
}
}
@SuppressWarnings("deprecation")
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {

View File

@ -120,7 +120,7 @@ public class TimePicker extends FrameLayout {
inflater.inflate(layoutResourceId, TimePicker.this, true);
// hour
mHourSpinner = (NumberPicker) findViewById(R.id.hour);
mHourSpinner = findViewById(R.id.hour);
mHourSpinner.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
public void onValueChange(NumberPicker spinner, int oldVal, int newVal) {
updateInputState();
@ -134,17 +134,17 @@ public class TimePicker extends FrameLayout {
onTimeChanged();
}
});
mHourSpinnerInput = (EditText) mHourSpinner.findViewById(R.id.np__numberpicker_input);
mHourSpinnerInput = mHourSpinner.findViewById(R.id.np__numberpicker_input);
mHourSpinnerInput.setImeOptions(EditorInfo.IME_ACTION_NEXT);
// divider (only for the new widget style)
mDivider = (TextView) findViewById(R.id.divider);
mDivider = findViewById(R.id.divider);
if (mDivider != null) {
mDivider.setText(R.string.time_picker_separator);
}
// minute
mMinuteSpinner = (NumberPicker) findViewById(R.id.minute);
mMinuteSpinner = findViewById(R.id.minute);
mMinuteSpinner.setMinValue(0);
mMinuteSpinner.setMaxValue(59);
mMinuteSpinner.setOnLongPressUpdateInterval(100);
@ -172,7 +172,7 @@ public class TimePicker extends FrameLayout {
onTimeChanged();
}
});
mMinuteSpinnerInput = (EditText) mMinuteSpinner.findViewById(R.id.np__numberpicker_input);
mMinuteSpinnerInput = mMinuteSpinner.findViewById(R.id.np__numberpicker_input);
mMinuteSpinnerInput.setImeOptions(EditorInfo.IME_ACTION_NEXT);
/* Get the localized am/pm strings and use them in the spinner */
@ -207,7 +207,7 @@ public class TimePicker extends FrameLayout {
onTimeChanged();
}
});
mAmPmSpinnerInput = (EditText) mAmPmSpinner.findViewById(R.id.np__numberpicker_input);
mAmPmSpinnerInput = mAmPmSpinner.findViewById(R.id.np__numberpicker_input);
mAmPmSpinnerInput.setImeOptions(EditorInfo.IME_ACTION_DONE);
}
@ -508,7 +508,7 @@ public class TimePicker extends FrameLayout {
*/
private static class SavedState extends BaseSavedState {
@SuppressWarnings({"unused", "hiding"})
@SuppressWarnings({"unused"})
public static final Parcelable.Creator<SavedState> CREATOR = new Creator<SavedState>() {
public SavedState createFromParcel(Parcel in) {
return new SavedState(in);

View File

@ -86,7 +86,7 @@ public class TimePickerDialog extends AlertDialog
(LayoutInflater) themeContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.time_picker_dialog, null);
setView(view);
mTimePicker = (TimePicker) view.findViewById(R.id.timePicker);
mTimePicker = view.findViewById(R.id.timePicker);
// initialize state
mTimePicker.setIs24HourView(mIs24HourView);

View File

@ -60,7 +60,7 @@ public class TimePreference extends DialogPreference {
picker.setCurrentHour(lastHour);
picker.setCurrentMinute(lastMinute);
Log.d("MeditationAssistant", "TimePreference onBindDialogView: " + String.valueOf(lastHour) + ":" + String.valueOf(lastMinute));
Log.d("MeditationAssistant", "TimePreference onBindDialogView: " + lastHour + ":" + lastMinute);
}
@Override
@ -71,7 +71,7 @@ public class TimePreference extends DialogPreference {
lastHour = picker.getCurrentHour();
lastMinute = picker.getCurrentMinute();
String time = String.valueOf(lastHour) + ":" + String.valueOf(lastMinute);
String time = lastHour + ":" + lastMinute;
Log.d("MeditationAssistant", "TimePreference positive result: " + time);
@ -104,9 +104,9 @@ public class TimePreference extends DialogPreference {
/*if (getKey() != null) {
time = PreferenceManager.getDefaultSharedPreferences(ctx).getString(getKey(), getKey().equals("pref_session_delay") ? "00:15" : (getKey().equals("pref_daily_reminder") ? "19:00" : "00:00"));
}*/
Log.d("MeditationAssistant", String.valueOf(getKey()) + " current value - " + PreferenceManager.getDefaultSharedPreferences(ctx).getString(getKey(), ""));
Log.d("MeditationAssistant", getKey() + " current value - " + PreferenceManager.getDefaultSharedPreferences(ctx).getString(getKey(), ""));
Log.d("MeditationAssistant", "TimePreference (" + String.valueOf(getKey()) + ") restoreValue: " + String.valueOf(restoreValue) + " - defaultValue: " + String.valueOf(defaultValue) + " - defaultv: " + String.valueOf(defaultv) + " - time: " + String.valueOf(time));
Log.d("MeditationAssistant", "TimePreference (" + getKey() + ") restoreValue: " + restoreValue + " - defaultValue: " + defaultValue + " - defaultv: " + defaultv + " - time: " + time);
lastHour = getHour(time);
lastMinute = getMinute(time);

View File

@ -5,15 +5,19 @@ import android.content.Context;
import android.os.PowerManager;
import android.util.Log;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
class WakeLocker {
private List<String> wakeLocks = new CopyOnWriteArrayList<String>();
private List<String> wakeLocks = new ArrayList<>();
private PowerManager.WakeLock wakeLockScreenOff;
private PowerManager.WakeLock wakeLockScreenOn;
void printLockStatus() {
Log.d("MeditationAssistant", "WAKELOCKER: ScreenOff: " + (wakeLockScreenOff.isHeld() ? "HELD" : "RELEASED") + " - ScreenOn: " + (wakeLockScreenOn.isHeld() ? "HELD" : "RELEASED"));
}
@SuppressLint({"WakelockTimeout"})
String acquire(Context ctx, Boolean turnScreenOn) {
String wakeLockID = String.valueOf(System.currentTimeMillis());
@ -41,6 +45,8 @@ class WakeLocker {
}
}
printLockStatus();
return wakeLockID;
}
@ -56,12 +62,14 @@ class WakeLocker {
wakeLockScreenOn.release();
}
}
printLockStatus();
}
void releaseAll() {
Log.d("MeditationAssistant", "WAKELOCKER: Releasing all wakelocks");
for (String wakeLockID : wakeLocks) {
List<String> wakeLocksCopy = new ArrayList<>(wakeLocks);
for (String wakeLockID : wakeLocksCopy) {
release(wakeLockID);
}
}

View File

@ -57,7 +57,7 @@ public class WidgetPresetProvider extends AppWidgetProvider {
clickintent.putExtra("widgetid", widgetId);
PendingIntent pendingIntent = PendingIntent.getActivity(
context, widgetId, clickintent, 0);
context, widgetId, clickintent, MeditationAssistant.extraPendingIntentFlags());
updateViews.setOnClickPendingIntent(R.id.layWidget, pendingIntent);
updateViews.setOnClickPendingIntent(R.id.txtWidgetPresetText, pendingIntent);

View File

@ -5,7 +5,6 @@ import android.appwidget.AppWidgetProvider;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
public class WidgetStreakProvider extends AppWidgetProvider {

View File

@ -54,7 +54,7 @@ public class WidgetStreakService extends Service {
Intent clickintent = new Intent(getApplicationContext(), MainActivity.class);
clickintent.setAction("widgetclick");
PendingIntent pendingIntent = PendingIntent.getActivity(
getApplicationContext(), 0, clickintent, 0);
getApplicationContext(), 0, clickintent, MeditationAssistant.extraPendingIntentFlags());
updateViews.setOnClickPendingIntent(R.id.layWidget, pendingIntent);
updateViews.setOnClickPendingIntent(R.id.txtWidgetStreakDays, pendingIntent);
updateViews.setOnClickPendingIntent(R.id.txtWidgetStreakText, pendingIntent);

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FF000000"
android:pathData="M18,2H6c-1.1,0 -2,0.9 -2,2v16c0,1.1 0.9,2 2,2h12c1.1,0 2,-0.9 2,-2V4c0,-1.1 -0.9,-2 -2,-2zM6,4h5v8l-2.5,-1.5L6,12V4z"/>
</vector>

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FFFFFFFF"
android:pathData="M18,2H6c-1.1,0 -2,0.9 -2,2v16c0,1.1 0.9,2 2,2h12c1.1,0 2,-0.9 2,-2V4c0,-1.1 -0.9,-2 -2,-2zM6,4h5v8l-2.5,-1.5L6,12V4z"/>
</vector>

View File

@ -1,8 +1,8 @@
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="false"
android:focusable="false">
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="false"
android:focusable="false">
<ScrollView
android:layout_width="fill_parent"
@ -23,8 +23,8 @@
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="21dp"
android:layout_marginTop="21dp"
android:layout_marginBottom="21dp"
android:clickable="false"
android:focusable="false"
android:gravity="center"
@ -37,16 +37,24 @@
android:gravity="center"
android:text=""
android:textAppearance="?android:attr/textAppearanceLarge"
android:textSize="28sp"/>
android:textSize="28sp" />
<TextView
android:id="@+id/txtAboutAppVersion"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="36dp"
android:layout_marginBottom="18dp"
android:gravity="center"
android:text=""
android:textAppearance="?android:attr/textAppearanceSmall"/>
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="36dp"
android:gravity="center"
android:text="Created by Trevor Slocum\ntrevor@rocketnine.space"
android:textAppearance="?android:attr/textAppearanceSmall" />
</LinearLayout>
@ -74,39 +82,39 @@
android:clickable="false"
android:gravity="center"
android:text="@string/tapToLearnMore"
android:textAppearance="?android:attr/textAppearanceSmall"/>
android:textAppearance="?android:attr/textAppearanceSmall" />
<View
android:layout_width="fill_parent"
android:layout_height="1dp"
android:layout_marginLeft="7dp"
android:layout_marginRight="7dp"
android:background="?android:attr/listDivider"/>
android:background="?android:attr/listDivider" />
<Button
android:id="@+id/btnHowToMeditate"
android:id="@+id/btnLearnMore"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
android:onClick="openHowToMeditate"
android:paddingBottom="7dp"
android:onClick="learnMore"
android:paddingTop="7dp"
android:text="@string/howToMeditate"
android:textAppearance="?android:attr/textAppearanceMedium"/>
android:paddingBottom="7dp"
android:text="@string/sourceRepository"
android:textAppearance="?android:attr/textAppearanceMedium" />
<View
android:layout_width="fill_parent"
android:layout_height="1dp"
android:layout_marginLeft="7dp"
android:layout_marginRight="7dp"
android:background="?android:attr/listDivider"/>
android:background="?android:attr/listDivider" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/divMainControls"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/divMainControls"
android:orientation="horizontal">
<Button
@ -116,18 +124,18 @@
android:layout_weight="1"
android:background="?android:attr/selectableItemBackground"
android:onClick="openTranslate"
android:paddingBottom="7dp"
android:paddingTop="7dp"
android:paddingBottom="7dp"
android:text="@string/translate"
android:textAppearance="?android:attr/textAppearanceMedium"/>
android:textAppearance="?android:attr/textAppearanceMedium" />
<View
android:id="@+id/divDonate"
android:layout_width="1dp"
android:layout_height="fill_parent"
android:layout_marginBottom="7dp"
android:layout_marginTop="7dp"
android:background="?android:attr/listDivider"/>
android:layout_marginBottom="7dp"
android:background="?android:attr/listDivider" />
<Button
android:id="@+id/btnDonate"
@ -136,10 +144,10 @@
android:layout_weight="1"
android:background="?android:attr/selectableItemBackground"
android:onClick="openDonate"
android:paddingBottom="7dp"
android:paddingTop="7dp"
android:paddingBottom="7dp"
android:text="@string/donate"
android:textAppearance="?android:attr/textAppearanceMedium"/>
android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>
</LinearLayout>
@ -153,12 +161,12 @@
android:id="@+id/charis"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerInParent="true"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:contentDescription="@string/charis"
android:scaleType="fitCenter"
android:src="@drawable/charis"
android:visibility="gone"/>
android:visibility="gone" />
</RelativeLayout>

View File

@ -70,12 +70,14 @@
android:layout_marginBottom="10dp"
android:gravity="bottom"
android:hint="@string/sessionMessagePlaceholder"
android:inputType="textMultiLine"
android:inputType="textCapSentences|textMultiLine"
android:lines="2"
android:nextFocusUp="@+id/editSessionMessage"
android:scrollbars="vertical"
android:singleLine="false"
android:text=""
android:textAppearance="?android:attr/textAppearanceLarge"/>
android:textAppearance="?android:attr/textAppearanceLarge"
android:maxLength="4096"/>
<RelativeLayout
android:layout_width="wrap_content"

View File

@ -1,11 +1,11 @@
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="0dp"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:paddingTop="0dp">
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="0dp"
android:paddingTop="0dp"
android:paddingRight="0dp"
android:paddingBottom="0dp">
<LinearLayout
android:layout_width="match_parent"
@ -30,68 +30,80 @@
android:gravity="top"
android:orientation="vertical">
<TextView
android:id="@+id/txtTimer"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="7dp"
android:layout_gravity="center_horizontal"
android:clickable="true"
android:onClick="changeDuration"
android:ellipsize="none"
android:gravity="center"
android:includeFontPadding="false"
android:lineSpacingMultiplier="0.9"
android:singleLine="true"
android:text=""
android:textAppearance="?android:attr/textAppearanceLarge"/>
<LinearLayout
android:id="@+id/layTimer"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="top"
android:orientation="vertical">
<RelativeLayout
android:id="@+id/layEditDuration"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="gone">
<EditText
android:id="@+id/editDuration"
<TextView
android:id="@+id/txtTimer"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="0dp"
android:layout_marginTop="0dp"
android:layout_marginTop="7dp"
android:clickable="true"
android:ellipsize="none"
android:gravity="center"
android:imeOptions="actionDone"
android:includeFontPadding="false"
android:inputType="time"
android:lineSpacingMultiplier="0.9"
android:maxLength="5"
android:onClick="changeDuration"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceLarge"
android:visibility="gone"/>
android:text=""
android:textAppearance="?android:attr/textAppearanceLarge" />
<sh.ftp.rocketninelabs.meditationassistant.TimePicker
android:id="@+id/timepickerDuration"
<RelativeLayout
android:id="@+id/layEditDuration"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"/>
</RelativeLayout>
android:visibility="gone">
<TextView
android:id="@+id/txtDurationSeconds"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="false"
android:gravity="center"
android:singleLine="true"
android:text=""
android:textAppearance="?android:attr/textAppearanceLarge"
android:textSize="33sp"/>
<EditText
android:id="@+id/editDuration"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="0dp"
android:layout_marginBottom="0dp"
android:gravity="center"
android:imeOptions="actionDone"
android:includeFontPadding="false"
android:inputType="time"
android:lineSpacingMultiplier="0.9"
android:maxLength="5"
android:selectAllOnFocus="true"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceLarge"
android:visibility="gone" />
<RelativeLayout
<sh.ftp.rocketninelabs.meditationassistant.TimePicker
android:id="@+id/timepickerDuration"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center" />
</RelativeLayout>
<TextView
android:id="@+id/txtDurationSeconds"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="false"
android:gravity="center"
android:singleLine="true"
android:text=""
android:textAppearance="?android:attr/textAppearanceLarge"
android:textSize="33sp" />
</LinearLayout>
<LinearLayout
android:id="@+id/layLowerViews"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true">
<!--
<View
@ -116,10 +128,10 @@
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_alignParentBottom="true"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_gravity="bottom"
android:gravity="bottom">
@ -130,12 +142,12 @@
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_gravity="bottom"
android:layout_marginBottom="7dp"
android:layout_marginTop="7dp"
android:layout_marginBottom="7dp"
android:clickable="false"
android:gravity="center"
android:text=""
android:textAppearance="?android:attr/textAppearanceMedium"/>
android:textAppearance="?android:attr/textAppearanceMedium" />
<View
android:id="@+id/divstreakUpper2"
@ -144,21 +156,21 @@
android:layout_below="@+id/txtMainStatus"
android:layout_marginLeft="7dp"
android:layout_marginRight="7dp"
android:background="?android:attr/listDivider"/>
android:background="?android:attr/listDivider" />
<Button
android:id="@+id/btnMeditate"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/divstreakUpper2"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/divstreakUpper2"
android:background="?android:attr/selectableItemBackground"
android:onClick="pressMeditate"
android:paddingBottom="10dp"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:text="@string/meditate"
android:textSize="33sp"/>
android:textSize="33sp" />
<View
android:id="@+id/divstreakUpper"
@ -167,21 +179,21 @@
android:layout_below="@+id/btnMeditate"
android:layout_marginLeft="7dp"
android:layout_marginRight="7dp"
android:background="?android:attr/listDivider"/>
android:background="?android:attr/listDivider" />
<Button
android:id="@+id/btnMeditationStreak"
android:layout_width="fill_parent"
android:layout_height="36dp"
android:layout_below="@+id/divstreakUpper"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/divstreakUpper"
android:background="?android:attr/selectableItemBackground"
android:gravity="center"
android:onClick="pressMediNET"
android:paddingBottom="1dp"
android:text="@string/signInToMediNET"
android:textAppearance="?android:attr/textAppearanceSmall"/>
android:textAppearance="?android:attr/textAppearanceSmall" />
<View
android:id="@+id/divMainControls"
@ -190,16 +202,16 @@
android:layout_below="@+id/btnMeditationStreak"
android:layout_marginLeft="7dp"
android:layout_marginRight="7dp"
android:background="?android:attr/listDivider"/>
android:background="?android:attr/listDivider" />
<LinearLayout
android:id="@+id/layMainControls"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="false"
android:layout_below="@+id/divMainControls"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/divMainControls"
android:layout_alignParentBottom="false"
android:gravity="bottom"
android:orientation="horizontal">
@ -211,15 +223,15 @@
android:background="?android:attr/selectableItemBackground"
android:onClick="openProgress"
android:text="@string/progress"
android:textAppearance="?android:attr/textAppearanceSmall"/>
android:textAppearance="?android:attr/textAppearanceSmall" />
<View
android:id="@+id/divMainControlsInner"
android:layout_width="1dp"
android:layout_height="fill_parent"
android:layout_marginBottom="7dp"
android:layout_marginTop="7dp"
android:background="?android:attr/listDivider"/>
android:layout_marginBottom="7dp"
android:background="?android:attr/listDivider" />
<Button
android:id="@+id/btnCommunity"
@ -230,15 +242,15 @@
android:background="?android:attr/selectableItemBackground"
android:onClick="pressCommunity"
android:text="@string/community"
android:textAppearance="?android:attr/textAppearanceSmall"/>
android:textAppearance="?android:attr/textAppearanceSmall" />
</LinearLayout>
</RelativeLayout>
</RelativeLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/layLowerViewsEditing"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:gravity="bottom"
android:orientation="vertical"
@ -250,7 +262,7 @@
android:layout_height="1dp"
android:layout_marginLeft="7dp"
android:layout_marginRight="7dp"
android:background="?android:attr/listDivider"/>
android:background="?android:attr/listDivider" />
<RelativeLayout
android:id="@+id/layUseTimerControls"
@ -285,15 +297,15 @@
android:scrollHorizontally="true"
android:singleLine="true"
android:text="@string/timed"
tools:ignore="RtlSymmetry"/>
tools:ignore="RtlSymmetry" />
</RelativeLayout>
<View
android:layout_width="1dp"
android:layout_height="fill_parent"
android:layout_marginBottom="7dp"
android:layout_marginTop="7dp"
android:background="?android:attr/listDivider"/>
android:layout_marginBottom="7dp"
android:background="?android:attr/listDivider" />
<RelativeLayout
android:id="@+id/layMainEndAt"
@ -318,15 +330,15 @@
android:scrollHorizontally="true"
android:singleLine="true"
android:text="@string/endAt"
tools:ignore="RtlSymmetry"/>
tools:ignore="RtlSymmetry" />
</RelativeLayout>
<View
android:layout_width="1dp"
android:layout_height="fill_parent"
android:layout_marginBottom="7dp"
android:layout_marginTop="7dp"
android:background="?android:attr/listDivider"/>
android:layout_marginBottom="7dp"
android:background="?android:attr/listDivider" />
<RelativeLayout
android:id="@+id/layMainUntimed"
@ -349,7 +361,7 @@
android:scrollHorizontally="true"
android:singleLine="true"
android:text="@string/untimed"
tools:ignore="RtlSymmetry"/>
tools:ignore="RtlSymmetry" />
</RelativeLayout>
</RadioGroup>
@ -386,7 +398,7 @@
android:layout_height="1dp"
android:layout_marginLeft="7dp"
android:layout_marginRight="7dp"
android:background="?android:attr/listDivider"/>
android:background="?android:attr/listDivider" />
<LinearLayout
android:id="@+id/layPresets"
@ -406,14 +418,14 @@
android:scrollHorizontally="true"
android:singleLine="true"
android:text="@string/setPreset"
android:textAppearance="?android:attr/textAppearanceSmall"/>
android:textAppearance="?android:attr/textAppearanceSmall" />
<View
android:layout_width="1dp"
android:layout_height="fill_parent"
android:layout_marginBottom="7dp"
android:layout_marginTop="7dp"
android:background="?android:attr/listDivider"/>
android:layout_marginBottom="7dp"
android:background="?android:attr/listDivider" />
<Button
android:id="@+id/btnPreset2"
@ -427,14 +439,14 @@
android:scrollHorizontally="true"
android:singleLine="true"
android:text="@string/setPreset"
android:textAppearance="?android:attr/textAppearanceSmall"/>
android:textAppearance="?android:attr/textAppearanceSmall" />
<View
android:layout_width="1dp"
android:layout_height="fill_parent"
android:layout_marginBottom="7dp"
android:layout_marginTop="7dp"
android:background="?android:attr/listDivider"/>
android:layout_marginBottom="7dp"
android:background="?android:attr/listDivider" />
<Button
android:id="@+id/btnPreset3"
@ -447,7 +459,7 @@
android:onClick="pressPreset"
android:singleLine="true"
android:text="@string/setPreset"
android:textAppearance="?android:attr/textAppearanceSmall"/>
android:textAppearance="?android:attr/textAppearanceSmall" />
</LinearLayout>
@ -457,7 +469,7 @@
android:layout_height="1dp"
android:layout_marginLeft="7dp"
android:layout_marginRight="7dp"
android:background="?android:attr/listDivider"/>
android:background="?android:attr/listDivider" />
<LinearLayout
android:id="@+id/layBottomEditingControls"
@ -472,15 +484,15 @@
android:layout_weight="1"
android:background="?android:attr/selectableItemBackground"
android:onClick="cancelSetDuration"
android:text="@string/cancel"/>
android:text="@string/cancel" />
<View
android:id="@+id/divMainEditing"
android:layout_width="1dp"
android:layout_height="fill_parent"
android:layout_marginBottom="7dp"
android:layout_marginTop="7dp"
android:background="?android:attr/listDivider"/>
android:layout_marginBottom="7dp"
android:background="?android:attr/listDivider" />
<Button
android:id="@+id/btnSetDuration"
@ -489,7 +501,7 @@
android:layout_weight="1"
android:background="?android:attr/selectableItemBackground"
android:onClick="setDuration"
android:text="@string/confirm"/>
android:text="@string/confirm" />
</LinearLayout>
</LinearLayout>
</LinearLayout>

View File

@ -11,19 +11,19 @@
android:layout_weight="1"
android:orientation="vertical">
<android.support.v4.view.ViewPager
<androidx.viewpager.widget.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
tools:ignore="NestedWeights">
<android.support.v4.view.PagerTabStrip
<androidx.viewpager.widget.PagerTabStrip
android:id="@+id/titles"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</android.support.v4.view.ViewPager>
</androidx.viewpager.widget.ViewPager>
</LinearLayout>

View File

@ -0,0 +1,45 @@
<!--suppress AndroidMissingOnClickHandler -->
<RelativeLayout
android:id="@+id/mindfulnessbell_root"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="7dp"
android:paddingLeft="7dp"
android:paddingRight="7dp"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:text="@string/interval"
android:textAppearance="?android:attr/textAppearanceMedium"/>
<EditText
android:id="@+id/editBellDuration"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginLeft="21dp"
android:singleLine="true"
android:text=""
android:textAppearance="?android:attr/textAppearanceLarge"/>
</LinearLayout>
</LinearLayout>
</RelativeLayout>

View File

@ -217,15 +217,15 @@
android:layout_height="wrap_content"
android:gravity="top"
android:hint="@string/sessionMessagePlaceholder"
android:inputType="textMultiLine"
android:inputType="textCapSentences|textMultiLine"
android:lines="2"
android:maxLength="160"
android:nextFocusLeft="@+id/sessionDialogSetMessage"
android:nextFocusUp="@+id/sessionDialogSetMessage"
android:scrollbars="vertical"
android:singleLine="false"
android:text=""
android:textAppearance="?android:attr/textAppearanceMedium"/>
android:textAppearance="?android:attr/textAppearanceMedium"
android:maxLength="4096"/>
</LinearLayout>
</RelativeLayout>

View File

@ -1,48 +0,0 @@
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/sessionsExported_root"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:descendantFocusability="beforeDescendants"
android:focusableInTouchMode="true">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:orientation="vertical"
android:padding="10dp">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:clickable="false"
android:includeFontPadding="true"
android:paddingBottom="4dp"
android:text="@string/showExportedSessions"
android:textAppearance="?android:attr/textAppearanceMedium"
tools:ignore="RtlSymmetry" />
<TextView
android:id="@+id/txtSessionsExportedPath"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:clickable="false"
android:includeFontPadding="true"
android:text=""
android:textAppearance="?android:attr/textAppearanceSmall"
tools:ignore="RtlSymmetry" />
</LinearLayout>
</RelativeLayout>
</RelativeLayout>

View File

@ -0,0 +1,54 @@
<!--suppress AndroidMissingOnClickHandler -->
<RelativeLayout
android:id="@+id/medinetsignin_root"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="7dp"
android:paddingLeft="7dp"
android:paddingRight="7dp"
tools:context=".MediNET">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:text="@string/pattern"
android:textAppearance="?android:attr/textAppearanceMedium"/>
<EditText
android:id="@+id/editVibrationPattern"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginLeft="14dp"
android:singleLine="true"
android:text=""
android:textAppearance="?android:attr/textAppearanceLarge"/>
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="14dp"
android:includeFontPadding="false"
android:text="@string/setVibrationTip"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textSize="13sp"/>
</LinearLayout>
</RelativeLayout>

View File

@ -1,10 +1,35 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/action_resources"
android:icon="?attr/actionIconResources"
android:orderInCategory="100"
android:showAsAction="always"
android:title="@string/resources">
<menu>
<item
android:id="@+id/action_mindfulness_bell"
android:title="@string/mindfulnessBell" />
<item
android:id="@+id/action_how_to_meditate"
android:title="@string/howToMeditate" />
<item
android:id="@+id/action_forum"
android:title="@string/forum" />
<item
android:id="@+id/action_help_medinet"
android:title="@string/whatIsMediNET" />
<item
android:id="@+id/action_replay_tutorial"
android:title="@string/replayTutorial" />
</menu>
</item>
<item
android:id="@+id/action_settings"
android:icon="?attr/actionIconSettings"
android:orderInCategory="100"
android:orderInCategory="101"
android:showAsAction="always"
android:title="@string/settings"/>
android:title="@string/settings" />
</menu>

View File

@ -1,78 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="yes">Так</string>
<string name="no">Не</string>
<string name="page">Старонка</string>
<string name="back">Назад</string>
<string name="forward">Наперад</string>
<!-- Main Activity -->
<string name="tapToSkip">Прапусціць</string>
<string name="resumeOrEnd">Працягнуць або скончыць</string>
<string name="pausedNotification">Сеанс на паўзе, стрымлівай каб скончыць</string>
<string name="mediNETConnecting">Злучэнне...</string>
<string name="mediNETConnected">Злучэнне да MediNET</string>
<!-- About -->
<string name="share">Падзяліцца</string>
<!--Short text displayed in sent application invitations [CHAR LIMIT=100] -->
<!-- Sessions -->
<string name="session">Сеанс</string>
<!-- Session complete -->
<string name="sessionSaved">Сеанс захован</string>
<!-- Sign In -->
<!-- Progress -->
<string name="reminderText">Маеш момант?</string>
<!-- Settings -->
<string name="pref_vibrate">Вібрацыя</string>
<string name="pref_softfinish">Бясконцы сеанс</string>
<string name="settings">Налады</string>
<string name="pref_delay">Рэха</string>
<!-- MediNET -->
<string name="save">Захаваць</string>
<string name="signInToMediNET">Увайсці ў MediNET</string>
<!-- Widgets -->
</resources>
</resources>

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View File

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="appName">Assistent per a la meditació gratuït</string>
<string name="appNameShort">Assistent de meditació</string>
<string name="about">Sobre</string>
<string name="yes">Si</string>
@ -19,7 +18,6 @@
<string name="announcement">Anunci</string>
<!-- Permissions -->
<string name="permissionRequest">Sol·licitud de permís</string>
<string name="permissionRequestReadExternal">Aquest permís és obligatori per triar un fitxer de so personalitzat al dispositiu.</string>
<string name="permissionRequestNotificationControl">Proporcioneu accés a la pantalla següent per controlar No molestar.</string>
<string name="deny">Denegar</string>
<string name="tryAgain">Torna-ho a provar</string>
@ -56,12 +54,10 @@
<string name="unlimited">No limitat</string>
<string name="presetLabelEndAt">Fi %s</string>
<!-- About -->
<string name="sendEmail">Envia email</string>
<string name="sendEmail">Envia correu-e</string>
<string name="version">Versió %s</string>
<string name="translate">Tradueix</string>
<string name="donate">Donat</string>
<string name="removeAds">Eliminar anuncis</string>
<string name="removeAdsHelp">La versió completa de Meditation Assistant és una aplicació per separat.\n\nPer mantenir les sessions existents, inicieu la sessió a MediNet i toqueu "Càrrega de sessions" a la finestra Configuració..\n\nObriu la versió completa i inicieu sessió a MediTet una vegada més, llavors toqueu "Importar".</string>
<string name="howToMeditate">Com meditar</string>
<string name="share">Comparteix</string>
<!--Short text displayed in sent application invitations [CHAR LIMIT=100] -->
@ -110,10 +106,6 @@ Sessió esborrada localment</string>
<item quantity="one">%s time</item>
<item quantity="other">%s times</item>
</plurals>
<plurals name="sessionsImported">
<item quantity="one">Imported %s session</item>
<item quantity="other">Imported %s sessions</item>
</plurals>
<plurals name="sessionsUploaded">
<item quantity="one">Uploaded %s session</item>
<item quantity="other">Uploaded %s sessions</item>

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View File

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="appName">Meditations Assistent Gratis</string>
<string name="appNameShort">Meditations Assistent</string>
<string name="about">Om</string>
<string name="yes">Ja</string>
@ -25,7 +24,7 @@
<string name="confirm">Bekræft</string>
<string name="meditate">Meditér</string>
<string name="tapToSkip">Spring over</string>
<string name="mediNETConnecting">Forbinder...</string>
<string name="mediNETConnecting">Forbinder</string>
<string name="mediNETConnected">Forbundet til MediNET</string>
<string name="sessionInProgress">Sessioner i gang</string>
<string name="progress">Fremskridt</string>
@ -40,4 +39,43 @@
<!-- MediNET -->
<!-- Widgets -->
<!-- Meta -->
<string name="warning">Advarsel</string>
<string name="sessions">Sessioner</string>
<string name="back">Tilbage</string>
<string name="disableBatteryOptimizations">Meditations assistent skal køre i baggrunden</string>
<string name="permissionRequestNotificationControl">Giv venligst tilladelse til kontrol af \"Forstyr ikke\" på næste skærm.</string>
<string name="deny">Afvis</string>
<string name="tryAgain">Prøv igen</string>
<string name="settingsHelp">Denne applikation indeholder many features og indstillinger, såsom automatisk skift til lydløs og daglig påmindelse om meditation. Tryk på indstillinger ikonet nu for at se disse valgmuligheder.</string>
<string name="medinetHelp">Log in på MediNET for at gemme dine sessioner online. Du kan importere dine sessioner senere, hvis du mister dine data. Denne feature er valfri; opbevaring af sessioner lokalt vil ikke hindre din oplevelse.
\nDette konkluderer startguiden. Jeg håber at Meditation Assistant vil være brugbar for dine øvelser.</string>
<string name="pause">Pause</string>
<string name="end">Slut</string>
<string name="pauseOrEnd">Pause eller afslut</string>
<string name="resumeOrEnd">Genoptag eller afslut</string>
<string name="pausedNotification">Session sat i pause, hold for at afslutte</string>
<string name="setPreset">Forudinstil</string>
<string name="setPresetHint">Hold nede for at forudindstille</string>
<string name="setPresetTip">Vælg hvilken indstilling der skal gendannes ved at trykke på gear ikonet (Indstillinger), derefter tryk på Forudindstil.</string>
<string name="setPresetHintBlank">Indtast en varighed (eller slut tidspunkt) som forudindstilling</string>
<string name="label">Label</string>
<string name="setTimerDurationHint">Indtast en gyldig varighed (fx. 0:22)</string>
<string name="setTimerEndAtHint">Indtast et gyldigt tidspunkt (fx. 4:20)</string>
<string name="invalidEndAt">Ugyldig tidspunkt for session afslutning</string>
<string name="endAt">Slut ved</string>
<string name="untimed">Ubegrænset</string>
<string name="unlimited">Ubegrænset</string>
<string name="presetLabelEndAt">Slut %s</string>
<string name="tapToLearnMore">Tryk hvor som helst for at lære mere</string>
<string name="sendEmail">Send e-mail</string>
<string name="version">Version %s</string>
<string name="translate">Oversæt</string>
<string name="donate">Donér</string>
<string name="resume">Genoptag</string>
<string name="sessionPaused">Session sat i bero</string>
<string name="permissionRequired">Denne tilladelse er påkrævet.</string>
<string name="chooseDonationMethod">Vælg venligst hvordan du vil donerer.
\n
\nLiberapay fortrækkes af udvikleren og understætte flere lande og valutaer.</string>
<string name="configureWidget">Konfigurer Widget</string>
</resources>

View File

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="appName">Meditation Assistant Free</string>
<string name="appNameShort">Meditation Assistant</string>
<string name="about">Über</string>
<string name="yes">Ja</string>
@ -22,14 +21,13 @@
<string name="installFileManager">Bitte installieren Sie einen Dateimanager</string>
<!-- Permissions -->
<string name="permissionRequest">Berechtigungsanfrage</string>
<string name="permissionRequestReadExternal">Diese Berechtigung wird benötigt, um eine eigene Audiodatei auf dem Gerät auszuwählen.</string>
<string name="permissionRequestNotificationControl">Bitte gewähren Sie auf dem nächsten Bildschirm Zugriff um die Funktion \'Nicht stören\' kontrollieren zu können.</string>
<string name="permissionRequestNotificationControl">Bitte gewähren Sie auf dem nächsten Bildschirm Zugriff um die Funktion „Nicht stören“ kontrollieren zu können.</string>
<string name="deny">Verweigern </string>
<string name="tryAgain">Erneut versuchen</string>
<!-- Main Activity -->
<string name="timer">Timer</string>
<string name="timerHelp">Der Timer ist aktuell auf 15 Minuten gesetzt. Sie können die Dauer anpassen, zu einer definierten Zeit eines Tages beenden oder den Alarm komplett deaktivieren. Um diese Optionen zu sehen, tippen Sie den Timer an.</string>
<string name="settingsHelp">Diese Anwendung beinhaltet viele Funktionen und Anpassungsmöglichkeiten, wie z. B. automatisches Stummschalten des Gerätes und tägliche Erinnerungen an die Meditation. Tippen Sie das Einstellungssymbol an, um diese Optionen zu sehen.</string>
<string name="timerHelp">Willkommen zu einem kurzem Tutorial. Das ist der Sitzungs Timer. Tippe ihn an um den Timer Modus und die Dauer einzustellen.</string>
<string name="settingsHelp">Diese Anwendung beinhaltet zahlreiche Funktionen und Anpassungsmöglichkeiten. Tippen Sie das Einstellungssymbol an, um diese Optionen zu sehen.</string>
<string name="medinetHelp">Melden Sie sich bei MediNET an, um Ihre Sitzungen online zu speichern. Falls Sie später Ihre Daten verlieren sollten, können Sie sie wieder importieren. Diese Funktion ist komplett optional. Wenn Sie Ihre Sitzungen lokal speichern, werden Sie ansonsten keine Nachteile haben.\n\nHiermit ist das Tutorial abgeschlossen. Ich hoffe, dass Meditation Assistent Ihnen beim Praktizieren hilfreich ist. </string>
<string name="cancel">Abbrechen</string>
<string name="set">Einstellen</string>
@ -64,8 +62,6 @@
<string name="version">Version %s</string>
<string name="translate">Übersetzen</string>
<string name="donate">Spenden</string>
<string name="removeAds">Werbung entfernen</string>
<string name="removeAdsHelp">Die Vollversion von Meditation Assistant ist eine separate Anwendung.\n\nUm Ihre bestehenden Sitzungen zu behalten, melden Sie sich bitte bei MediNET an und wählen Sie "Session hochladen" im Einstellungsfenster.\n\nStarten Sie bitte danach die Vollversion, melden Sie sich dort ebenfalls im MediNET an und wählen Sie "Importieren".</string>
<string name="howToMeditate">Wie man meditiert</string>
<string name="share">Teilen</string>
<!--Short text displayed in sent application invitations [CHAR LIMIT=100] -->
@ -114,7 +110,7 @@
<string name="edit">Bearbeiten</string>
<string name="exportSessions">Sitzungen exportieren</string>
<string name="sessionExportFailed">Exportieren der Sitzungen nicht möglich</string>
<string name="showExportedSessions">Sitzungen exportiert. Möchten Sie das Verzeichnis öffnen, in das der Export gespeichert wurde?</string>
<string name="sessionExportWasSuccessful">Sitzungen exportiert.</string>
<string name="sessionStartedAt">Begonnen um %s</string>
<string name="started">Begonnen</string>
<string name="completed">Abgeschlossen</string>
@ -136,7 +132,6 @@
<string name="reminderText">Hast du einen Moment Zeit?</string>
<!-- Settings -->
<string name="meditation">Meditation</string>
<string name="pref_vibrate">Vibrieren</string>
<string name="pref_vibrate_summary">Findet zu Beginn, bei Intervallen und am Ende der Meditation statt</string>
<string name="pref_vibrate_reminder_summary">Die tägliche Erinnerung lässt das Gerät vibrieren</string>
<string name="pref_sound_reminder">Spiele Sound</string>
@ -167,8 +162,6 @@
<string name="pref_sessionvolume">Lautstärke</string>
<string name="pref_sessionvolume_summary">Die vorherige Lautstärke wird wiederhergestellt, sobald die Sitzung abgeschlossen ist.</string>
<string name="pref_screencontrol">Bildschirm</string>
<string name="pref_sendusage">Nutzerstatistiken übertragen</string>
<string name="pref_sendusage_summary">Anonyme Berichterstattung per Google Analytics. Tritt nach Neustart in Kraft</string>
<string name="pref_showstreak">Meditationsserie anzeigen</string>
<string name="pref_showstreak_summary">Anzahl der aufeinanderfolgenden Tage mit mindestens einer aufgezeichneten Sitzung</string>
<string name="selectSound">Klang auswählen</string>
@ -176,7 +169,7 @@
<string name="pref_meditation_sound_interval">Intervallklang</string>
<string name="pref_meditation_sound_finish">Endklang</string>
<string name="pref_remembermessage">Letzte Nachricht speichern</string>
<string name="pref_remembermessage_summary">Standardmäßig die letzte gepostete Nachricht</string>
<string name="pref_remembermessage_summary">Standardmäßig die vorherige gepostete Nachricht</string>
<string name="pref_theme">Holographisches Theme</string>
<string name="pref_theme_light">Hell</string>
<string name="pref_theme_lightdark">Hell mit dunkler Aktionsleiste</string>
@ -189,13 +182,13 @@
<string name="pref_askdismiss">Vor dem Verwerfen nachfragen</string>
<string name="pref_askdismiss_summary">Vor dem Verwerfen einer Sitzung Bestätigung anfordern</string>
<string name="pref_mainbuttons">Buttons verstecken</string>
<string name="pref_progresstab">Standard Fortschrittstab</string>
<string name="pref_progresstab">Standard-Fortschritts-Reiter</string>
<string name="importsessions">Sitzungen importieren</string>
<string name="importsessions_summary">Hochgeladene Sitzungen laden</string>
<string name="uploadsessions">Sitzungen hochladen</string>
<string name="uploadsessions_summary">Lokale Sitzungen hochladen</string>
<string name="miscellaneous">Verschiedenes</string>
<string name="pref_text_size">Textgröße des Timers</string>
<string name="pref_text_size">Größe des Timers</string>
<string name="tiny">Winzig</string>
<string name="small">Klein</string>
<string name="normal">Normal</string>
@ -206,14 +199,13 @@
<string name="pref_notificationcontrol_priority">Nur wichtige</string>
<string name="pref_notificationcontrol_alarms">Nur Alarme</string>
<string name="pref_notificationcontrol_vibrate">Auf Vibration einstellen</string>
<string name="pref_notificationcontrol_silent">Stummschalten</string>
<string name="pref_daily_reminder">Tägliche Erinnerung</string>
<string name="pref_daily_reminder_title">Erinnere mich</string>
<string name="pref_daily_reminder_summary">Zeige eine Nachricht an wenn heute keine Sitzungen aufgezeichnet wurden</string>
<string name="pref_daily_reminder_time">Zeit</string>
<string name="pref_daily_reminder_text">Ermutigungstext</string>
<string name="downloadingSessions">Lade Sitzungen herunter...</string>
<string name="uploadingSessions">Lade Sitzungen hoch...</string>
<string name="downloadingSessions">Lade Sitzungen herunter</string>
<string name="uploadingSessions">Lade Sitzungen hoch</string>
<!-- MediNET -->
<string name="mediNET">MediNET</string>
<string name="unableToConnect">Kann nicht zum MediNET verbinden</string>
@ -221,9 +213,6 @@
<string name="discard">Verwerfen</string>
<string name="save">Speichern</string>
<string name="post">Posten</string>
<string name="importSessionsHint">Klicken Sie auf "Sitzungen importieren" in den Einstellungen, um fehlende Sitzungen zu laden.</string>
<string name="importsessionstitle">Sitzungen importieren?</string>
<string name="importsessionsmessage">Vorhergehende Sitzungen werden importiert.\n\nDiese Meldung wird nicht wiederholt.\nSie können Sitzungen später unter "Einstellungen" importieren.</string>
<string name="wordimport">Importieren</string>
<string name="sessionDeletedMediNET">Sitzung auf MediNET gelöscht</string>
<string name="sessionNotFoundMediNET">Sitzung auf MediNET nicht gefunden</string>
@ -231,15 +220,10 @@
<item quantity="one">%s mal</item>
<item quantity="other">%s male</item>
</plurals>
<plurals name="sessionsImported">
<item quantity="one">%s Sitzung importiert</item>
<item quantity="other">%s Sitzungen importiert</item>
</plurals>
<plurals name="sessionsUploaded">
<item quantity="one">%s Sitzung hochgeladen</item>
<item quantity="other">%s Sitzungen hochgeladen</item>
</plurals>
<string name="sessionsNotImported">Lokale Daten sind aktuell</string>
<plurals name="daysOfMeditationMinimal">
<item quantity="one">%d Tag</item>
<item quantity="other">%d Tage</item>
@ -258,12 +242,11 @@
<string name="signOutOfMediNET">Von MediNET abmelden</string>
<string name="signOutOfMediNETConfirmTitle">Von MediNET abmelden?</string>
<string name="rateMeditationAssistant">Meditation Assistant bewerten</string>
<string name="rateMeditationAssistantText">Falls Sie diese Anwendung hilfreich bei Ihrer Meditation fanden, könnten Sie bitte eine Bewertung abgeben?\n\nDie Bezahlversion dieser App verzichtet auf Werbung und bietet ein Widget für den Homescreen. Bitte ziehen Sie einen Kauf in Erwägung wenn Sie dazu in der Lage sind.\n\nDieser Hinweis wird nicht wiederholt.</string>
<string name="translateMeditationAssistantText">Könnten Sie uns bitte helfen einen größeren Nutzerkreis zu erreichen, indem Sie Meditation Assistant in eine andere Sprache übersetzen?\n\nDie Übersetzung kann über ein Online-Interface bequem vorgenommen werden. Sie können sich die Übersetzungswebsite später ansehen, indem Sie auf "Übersetzen" im "Über" Fenster klicken.\n\nDieser Hinweis wird nicht wiederholt.</string>
<string name="rateMeditationAssistantText">Falls Sie diese Anwendung hilfreich bei Ihrer Meditation fanden, könnten Sie bitte eine Bewertung abgeben\?
\n
\nDieser Hinweis wird nicht wiederholt.</string>
<string name="translateMeditationAssistantText">Wären Sie daran interessiert mitzuhelfen Meditation Assistant zu übersetzen\?</string>
<!-- Widgets -->
<string name="widget1x1" tools:ignore="UnusedResources">Meditation Assistant 1x1</string>
<string name="widget2x1" tools:ignore="UnusedResources">Meditation Assistant 2x1</string>
<string name="widget3x1" tools:ignore="UnusedResources">Meditation Assistant 3x1</string>
<!-- Meta -->
<string name="appStoreListingShort">Featurereicher Timer und Aufzeichner für Meditationssitzungen</string>
<string name="appStoreListingFull">Diese Anwendung unterstützt Sie sowohl bei zeitlich begrenzten (durch festlegte Dauern oder eine festgelegte Endzeit) wie auch unbegrenzten Sitzungen, mit vielen Anpassungsmöglichkeiten, einschließlich der Start-, Intervall- und Schlussklänge und des Verhaltens des Geräts. Es bietet zudem eine monatsweise Fortschrittsanzeige.
@ -296,4 +279,77 @@ Entwickelt von Rocket Nine Laboratories: https://rocketnine.space/</string>
<string name="exportsessions">Sitzungen exportieren</string>
<string name="exportsessions_summary">CSV-Datei exportieren</string>
<string name="downloadsessions">Sitzungen herunterladen</string>
<string name="downloadsessions_summary">Entfernte Sitzungen herunterladen</string>
<string name="resume">Fortsetzen</string>
<string name="sessionPaused">Sitzung pausiert</string>
<string name="permissionRequired">Diese Berechtigung ist erforderlich.</string>
<string name="importsessions_in_progress">Importiere Sitzungen…</string>
<string name="importsessions_complete">%1$d bestehende und %2$d neue gefunden.</string>
<string name="importsessions_utc_or_local">Hat dieser Export lokale oder UTC Datumsangaben und Uhrzeiten\?
\n
\nExporte, die seit Version 1.5.6 gespeichert wurden, haben UTC Datumsangaben und Uhrzeiten.</string>
<string name="utc">UTC</string>
<string name="local">Lokal</string>
<string name="downloadSessionsHint">Klicken Sie Sitzungen herunterladen in den Einstellungen, um fehlende Sitzungen zu holen.</string>
<string name="downloadsessionstitle">Sitzungen herunterladen\?</string>
<string name="downloadsessionsmessage">Vorherige Sitzungen werden heruntergeladen.
\n
\nDiese Meldung wird nicht wieder erscheinen.
\nSie können Sitzungen später vom Einstellungs-Schirm herunterladen.</string>
<plurals name="sessionsDownloaded">
<item quantity="one">%s Sitzung heruntergeladen</item>
<item quantity="other">%s Sitzungen heruntergeladen</item>
</plurals>
<string name="sessionsUpToDate">Lokale Daten sind aktuell</string>
<string name="chooseDonationMethod">Bitte wählen Sie wie Sie spenden möchten.
\n
\nLiberapay wird vom Entwickler bevorzugt und unterstützt mehr Länder und Währungen.</string>
<string name="download">Herunterladen</string>
<string name="configureWidget">Konfiguration Widget</string>
<string name="widgetpreset1x1" tools:ignore="UnusedResources">Vorlage 1x1</string>
<string name="widgetpreset2x1" tools:ignore="UnusedResources">Voralge 2x1</string>
<string name="widgetpreset3x1" tools:ignore="UnusedResources">Vorlage 3x1</string>
<string name="widgetstreak1x1" tools:ignore="UnusedResources">Streifen 1x1</string>
<string name="widgetstreak2x1" tools:ignore="UnusedResources">Streifen 2x1</string>
<string name="widgetstreak3x1" tools:ignore="UnusedResources">Streifen 3x1</string>
<string name="pref_autosave">Autospeichern</string>
<string name="resources">Ressourcen</string>
<string name="replayTutorial">Tutorial wiederholen</string>
<string name="sourceRepository">Archiv des Quellcodes</string>
<string name="whatIsMediNET">MediNET-Übersicht</string>
<string name="setVibrationTip">Geben Sie die Anzahl der Millisekunden ein, um die Vibration ein- oder auszuschalten, getrennt durch Kommata.</string>
<string name="pattern">Muster</string>
<string name="vibrate">Vibrieren</string>
<string name="pref_meditation_vibrate_start">Vibration starten</string>
<string name="pref_meditation_vibrate_interval">Intervallvibration</string>
<string name="labelShort">Kurz</string>
<string name="labelMedium">Medium</string>
<string name="labelLong">Lang</string>
<string name="custom">Benutzerdefiniert</string>
<string name="timerPosition">Position des Timers</string>
<string name="top">Oben</string>
<string name="center">In der Mitte</string>
<string name="editTimerHelp">Deine Sitzung kann eine bestimmte Dauer besitzen, oder bis zu einem bestimmten Zeitpunkt des Tages dauern, oder auch gar nicht zeitgesteuert sein.
\n
\nDie Voreinstellungen können verwendet werden um häufig verwendete Konfigurationen zu speichern. Drücke und halte eine Voreinstellung um die aktuelle Sitzungsdauer zu speichern. Geräusche und andere Einstellungen können auch gespeichert werden, wenn dies in den Einstellungen aktiviert wurde.
\n
\nNach dem Drücken von OK, Abbrechen oder Bestätigen drücken um fortzufahren.</string>
<string name="whatIsMediNETHelp">MediNET ist eine online Meditationsgemeinschaft und Sammelspeicher für Meditationssitzungen.
\n
\nSie können sich dazu entscheiden ihre Sitzungen auf MediNET zu sichern um Datenverlust vorzubeugen oder ihren Fortschritt mit anderen online zu teilen.
\n
\nStattdessen können sie sich dazu entscheiden ihre Sitzungsdaten ausschließlich auf dem Gerät zu speichern.</string>
<string name="pref_meditation_vibrate_finish">Vibration beenden</string>
<string name="notification">Benachrichtigung</string>
<string name="ringtone">Klingelton</string>
<string name="media">Medien</string>
<string name="alarm">Alarm</string>
<string name="pref_meditation_sound_bell">Klang der Achtsamkeitsglocke</string>
<string name="pref_audio_output">Audioausgabe</string>
<string name="start">Beginnen</string>
<string name="deactivate">Deaktivieren</string>
<string name="interval">Intervall</string>
<string name="mindfulnessBellActive">Achtsamkeitsglocke aktiv</string>
<string name="mindfulnessBell">Achtsamkeitsglocke</string>
<string name="pref_theme_black">Schwarz</string>
</resources>

View File

@ -1,17 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="appName">Δωρεάν Βοηθός Διαλογισμού</string>
<string name="appNameShort">Βοηθός Διαλογισμού</string>
<string name="about">Σχετικά</string>
<string name="yes">Ναι</string>
<string name="no">Όχι</string>
<string name="openWith">Άνοιξε με</string>
<string name="delete">Διέγραψε</string>
<string name="openWith">Άνοιγμα με</string>
<string name="delete">Διαγραφή</string>
<string name="sessions">Συνεδρίες</string>
<string name="community">Κοινότητα</string>
<string name="forum">Forum</string>
<string name="rate">Βαθμολόγησε</string>
<string name="refresh">Ανανέωσε</string>
<string name="rate">Βαθμολόγηση</string>
<string name="refresh">Ανανέωση</string>
<string name="page">Σελίδα</string>
<string name="back">Πίσω</string>
<string name="forward">Μπροστά</string>
@ -21,20 +20,19 @@
<string name="installFileManager">Παρακαλώ, εγκαταστήστε έναν διαχειριστή αρχείων</string>
<!-- Permissions -->
<string name="permissionRequest">Αίτηση άδειας</string>
<string name="permissionRequestReadExternal">Αυτή η άδεια είναι απαραίτητη για την επιλογή ενός αρχείου ήχου της επιλογής σας στη συσκευή.</string>
<string name="permissionRequestNotificationControl">Παρακαλώ παρέχεται άδεια στην επόμενη οθόνη για τον έλεγχο της επιλογής "Μην ενοχλείτε".</string>
<string name="deny">Άρνηση</string>
<string name="tryAgain">Δοκιμάστε ξανά</string>
<!-- Main Activity -->
<string name="timer">Χρονομετρητής</string>
<string name="timerHelp">Ο χρονομετρητής είναι ρυθμισμένος προς το παρόν στα 15 λεπτά. Μπορείτε να αλλάξετε την διάρκεια, τη λήξη σε μια ορισμένη στιγμή της ημέρας, ή να απενεργοποιήσετε το συναγερμό πλήρως. Χτυπήστε ελαφρά τον χρονομετρητή τώρα για να δείτε τις επιλογές.</string>
<string name="settingsHelp">Αυτή η εφαρμογή περιλαμβάνει πολλά χαρακτηριστικά και παραμετροποιήσεις, όπως, αυτόματη σίγαση της συσκευής και παροχή καθημερινής υπενθύμισης για διαλογισμό. Χτυπήστε ελαφρά το εικονίδιο " Ρυθμίσεις" τώρα για να δείτε τις επιλογές.</string>
<string name="timerHelp">Καλώς ήρθατε σε ένα σύντομο σεμινάριο. Αυτό είναι το χρονόμετρο συνεδρίας. Πατήστε το τώρα για να αλλάξετε τη λειτουργία και τη διάρκεια του χρονοδιακόπτη.</string>
<string name="settingsHelp">Αυτή η εφαρμογή περιλαμβάνει πολλά χαρακτηριστικά και παραμετροποιήσεις, όπως, αυτόματη σίγαση της συσκευής και παροχή καθημερινής υπενθύμισης για διαλογισμό. Χτυπήστε ελαφρά το εικονίδιο Ρυθμίσεις τώρα για να δείτε τις επιλογές.</string>
<string name="medinetHelp">Κάνετε είσοδο στο MediNET για να αποθηκεύσετε τις συνεδρίες σας στον ιστό. Μπορείτε να εισάγετε τις συνεδρίες σας αργότερα, εάν χάσετε τα δεδομένα σας. Αυτό το χαρακτηριστικό είναι πλήρως προαιρετικό, η αποθήκευση των συνεδριών τοπικά δεν θα επηρεάσει την εμπειρία σας.
Αυτό ολοκληρώνει την εκμάθηση. Ευελπιστώ πως ο "Βοηθός Διαλογισμού" θα είναι οφέλιμος για την εξάσκησή σας.</string>
<string name="cancel">Ακύρωσε</string>
<string name="cancel">Άκυρο</string>
<string name="set">Θέσε</string>
<string name="confirm">Επιβεβαίωσε</string>
<string name="confirm">Επιβεβαίωση</string>
<string name="meditate">Διαλογισθείτε</string>
<string name="tapToSkip">Προσπέρασε</string>
<string name="pause">Παύση</string>
@ -63,11 +61,9 @@
<string name="sendEmail">Στείλτε ηλ. μήνυμα</string>
<string name="version">Έκδοση %s</string>
<string name="translate">Μεταφράστε</string>
<string name="donate">Δωρείστε</string>
<string name="removeAds">Αφαίρεσε διαφημίσεις</string>
<string name="removeAdsHelp">Η πλήρης έκδοση του Βοηθού Διαλογισμού είναι μια ξεχωριστή εφαρμογή.\n\nΓια να διατηρήσετε τις υπάρχουσες συνεδρίες σας, κάντε είσοδο στο MediNET και πιέστε"Ανέβασμα συνεδριών" στο παράθυρο των Ρυθμίσεων.\n\nΑνοίξτε την πλήρη έκδοση και κάντε είσοδο στο MediNET ξανά, ακολούθως πιέστε "Εισαγωγή".</string>
<string name="donate">Δωρεά</string>
<string name="howToMeditate">Πως να Διαλογισθείτε</string>
<string name="share">Μοιράσου</string>
<string name="share">Κοινοποίηση</string>
<!--Short text displayed in sent application invitations [CHAR LIMIT=100] -->
<string name="invitationBlurb">Ο Βοηθός Διαλογισμού είναι ένας σύντροφος με πλήρη χαρακτηριστικά για τη εξάσκησή σας.</string>
<!-- Sessions -->
@ -101,17 +97,17 @@
<string name="statistics">Στατιστικά</string>
<string name="totalTimeSpentMeditating">Ολικός χρόνος για διαλογισμό</string>
<string name="dayMondayShort">Δευ</string>
<string name="dayTuesdayShort">Τρι</string>
<string name="dayTuesdayShort">Τρί</string>
<string name="dayWednesdayShort">Τετ</string>
<string name="dayThursdayShort">Πεμ</string>
<string name="dayThursdayShort">Πέμ</string>
<string name="dayFridayShort">Παρ</string>
<string name="daySaturdayShort">Σαβ</string>
<string name="daySaturdayShort">Σάβ</string>
<string name="daySundayShort">Κυρ</string>
<string name="addSession">Πρόσθεσε συνεδρία</string>
<string name="add">Πρόσθεσε</string>
<string name="exportSessions">Εξήγαγε συνεδρίες</string>
<string name="sessionExportFailed">Αδυνατόν να εξαγάγει συνεδρίες</string>
<string name="showExportedSessions">Συνεδρίες εξήχθησαν. Θα θέλατε να περιηγηθείτε στον φάκελο που περιέχει την εξαγωγή;</string>
<string name="sessionExportWasSuccessful">Συνεδρίες εξήχθησαν.</string>
<string name="add">Προσθήκη</string>
<string name="exportSessions">Εξαγωγή συνεδριών</string>
<string name="sessionExportFailed">Αδύνατο να εξαγάγει συνεδρίες</string>
<string name="sessionStartedAt">Ξεκίνησε στις %s</string>
<string name="started">Ξεκίνησε</string>
<string name="completed">Ολοκληρώθηκε</string>
@ -129,7 +125,6 @@
<string name="reminderText">Έχετε ένα λεπτό;</string>
<!-- Settings -->
<string name="meditation">Διαλογισμός</string>
<string name="pref_vibrate">Δονήσου</string>
<string name="pref_vibrate_summary">Συμβαίνει στην αρχή, στα μεσοδιαστήματα και στη λήξη του διαλογισμού</string>
<string name="pref_vibrate_reminder_summary">Η καθημερινή υπενθίμηση θα δονεί τη συσκευή</string>
<string name="pref_sound_reminder">Παίξε ήχο</string>
@ -158,8 +153,6 @@
<string name="pref_sessionvolume">Ένταση</string>
<string name="pref_sessionvolume_summary">Η προηγούμενη ένταση θα επανέρθει μόλις η συνεδρία ολοκληρωθεί</string>
<string name="pref_screencontrol">Οθόνη</string>
<string name="pref_sendusage">Ανέφερε στατιστικά χρήσης</string>
<string name="pref_sendusage_summary">Ανώνυμη αναφορά μέσω Google Analytics. Εφαρμόζεται στην επανεκκίνηση</string>
<string name="pref_showstreak">Πρόβαλε ακολουθία διαλογισμού</string>
<string name="pref_showstreak_summary">Αριθμός συνεχόμενων ημερών με τουλάχιστον μια κατεγραμένη συνεδρία</string>
<string name="selectSound">Επέλεξε ήχο</string>
@ -197,7 +190,6 @@
<string name="pref_notificationcontrol_priority">Προτεραιότητα μονο</string>
<string name="pref_notificationcontrol_alarms">Συναγερμοί μόνο</string>
<string name="pref_notificationcontrol_vibrate">Θέσε σε δόνηση</string>
<string name="pref_notificationcontrol_silent">Θέσε σε σιωπηλό</string>
<string name="pref_daily_reminder">Ημερήσια υπενθύμιση</string>
<string name="pref_daily_reminder_title">Θύμησέ μου</string>
<string name="pref_daily_reminder_summary">Πρόβαλε ειδοποίηση όταν δεν κατεγράφησαν συνεδρίες σήμερα</string>
@ -208,13 +200,10 @@
<!-- MediNET -->
<string name="mediNET">MediNET</string>
<string name="unableToConnect">Αδυνατόν να συνδεθεί στο MediNET</string>
<string name="dismiss">Αποδέσμευσε</string>
<string name="discard">Απόρριψε</string>
<string name="save">Αποθήκευσε</string>
<string name="post">Ανάρτησε</string>
<string name="importSessionsHint">Πιέστε το "Εισήγαγε συνεδρίες" στις ρυθμίσεις για την επανάκτηση απόντων συνεδριών</string>
<string name="importsessionstitle">Εισαγωγή συνεδριών;</string>
<string name="importsessionsmessage">Οι προηγούμενες συνεδρίες θα εισαχθούν.\n\nΑυτός ο διάλογος δεν θα εμφανιστεί ξανά.\nΜπορείτε να εισάγετε συνεδρίες αργότερα από το παράθυρο Ρυθμίσεις.</string>
<string name="dismiss">Κλείσιμο</string>
<string name="discard">Απόρριψη</string>
<string name="save">Αποθήκευση</string>
<string name="post">Ανάρτηση</string>
<string name="wordimport">Εισήγαγε</string>
<string name="sessionDeletedMediNET">Η συνεδρία διεγράφει στο MediNET</string>
<string name="sessionNotFoundMediNET">Η συνεδρία δεν βρέθηκε στο MediNET</string>
@ -222,15 +211,10 @@
<item quantity="one">%s χρόνος</item>
<item quantity="other">%s χρόνοι</item>
</plurals>
<plurals name="sessionsImported">
<item quantity="one">Εισηγμένη %s συνεδρία</item>
<item quantity="other">Εισηγμένες %s συνεδρίες</item>
</plurals>
<plurals name="sessionsUploaded">
<item quantity="one">Ανεβασμένη %s συνεδρία</item>
<item quantity="other">Ανεβασμένες %s συνεδρίες</item>
</plurals>
<string name="sessionsNotImported">Τα τοπικά αρχεία είναι ενημερωμένα</string>
<plurals name="daysOfMeditationMinimal">
<item quantity="one">%d ημέρα</item>
<item quantity="other">%d ημέρες</item>
@ -245,20 +229,13 @@
</plurals>
<string name="meditateToday">Διαλογισθείτε σήμερα</string>
<string name="signInToMediNET">Εισέλθετε στο MediNET</string>
<string name="signOut">Έξοδος</string>
<string name="signOutOfMediNET">Έξοδος από το MediNET</string>
<string name="signOutOfMediNETConfirmTitle">Έξοδος από το MediNET;</string>
<string name="signOut">Αποσύνδεση</string>
<string name="signOutOfMediNET">Αποσύνδεση από το MediNET</string>
<string name="signOutOfMediNETConfirmTitle">Αποσύνδεση από το MediNET;</string>
<string name="rateMeditationAssistant">Βαθμολογήστε τον Βοηθό Διαλογισμού</string>
<string name="rateMeditationAssistantText">Εάν βρήκατε αυτήν την εφαρμογή οφέλιμη για την εξάσκησή σας στο διαλογισμό, θα προσθέτατε μια βαθμολογία;\n\nΗ επ\' αμοιβή έκδοση δεν περιέχει διαφημίσεις και φιλοξενεί μικροεφαρμογές αρχικής οθόνης. Παρακαλώ, αναλογισθείτε την αγορά της εάν δύνασθε.\n\nΑυτός ο διάλογος δεν θα επανεμφανισθεί.</string>
<string name="translateMeditationAssistantText">Θα βοηθούσατε τον Βοηθό Διαλογισμού να αγγίξει ένα ευρύτερο κοινό μεταφράζοντάς τον σε μια άλλη γλώσσα;
Η μετάφραση γίνεται εύκολα μέσω διεπαφής στον ιστό.Μπορείτε να επισκεφθείτε τη σελίδα μετάφρασης αργότερα πατώντας Μεταφράστε από το παράθυρο Σχετικά.
Αυτός ο διάλογος δεν θα επανεμφανισθεί.</string>
<string name="translateMeditationAssistantText">Ενδιαφέρεστε να βοηθήσετε στη μετάφραση του Meditation Assistant;</string>
<!-- Widgets -->
<string name="widget1x1" tools:ignore="UnusedResources">Βοηθός Διαλογισμού 1x1</string>
<string name="widget2x1" tools:ignore="UnusedResources">Βοηθός Διαλογισμού 2x1</string>
<string name="widget3x1" tools:ignore="UnusedResources">Βοηθός Διαλογισμού 3x1</string>
<!-- Meta -->
<string name="appStoreListingShort">Χρονομετρητής και καταγραφέας συνεδρίας διαλογισμού πλούσιος χαρακτηριστικών</string>
<string name="appStoreListingFull">Η εφαρμογή αυτή βοηθά και με τις χρονομετρημένες (μέσω διάρκειας ή λήξης σε ορισμένη στιγμή) και με τις αχρονομέτρητες συνεδρίες, με διάφορες παραμετροποιήσεις, συμπεριλαμβάνοντας ήχους έναρξης/μεσοδιαστήματος/λήξης και συμπεριφορά της συσκευής. Παρέχει επίσης μια μηνιαία επισκόπηση της προόδου σας.
@ -287,4 +264,23 @@ https://gitlab.com/tslocum/meditationassistant/issues
https://www.getlocalization.com/meditationassistant/
Ανάπτυξη από Rocket Nine Laboratories: https://rocketnine.space/</string>
<string name="permissionRequired">Αυτή η άδεια απαιτείται.</string>
<string name="disableBatteryOptimizations">Ο Βοηθός πρέπει να εκτελείται στο παρασκήνιο</string>
<string name="warning">Προσοχή</string>
<string name="download">Λήψη</string>
<string name="sourceRepository">Αποθετήριο πηγαίου κώδικα</string>
<string name="edit">Επεξεργασία</string>
<string name="chooseDonationMethod">Επιλέξτε πώς θα θέλατε να κάνετε δωρεά.
\n
\nΤο Liberapay προτιμάται από τον προγραμματιστή και υποστηρίζει περισσότερες χώρες και νομίσματα.</string>
<string name="widgetstreak3x1" tools:ignore="UnusedResources">Σειρά 3x1</string>
<string name="widgetpreset3x1" tools:ignore="UnusedResources">Προκαθορισμένο 3x1</string>
<string name="widgetpreset2x1" tools:ignore="UnusedResources">Προκαθορισμένο 2x1</string>
<string name="widgetpreset1x1" tools:ignore="UnusedResources">Προκαθορισμένο 1x1</string>
<string name="widgetstreak1x1" tools:ignore="UnusedResources">Σειρά 1x1</string>
<string name="widgetstreak2x1" tools:ignore="UnusedResources">Σειρά 2x1</string>
<string name="pattern">Διάταξη</string>
<string name="configureWidget">Ρύθμιση Widget</string>
<string name="sessionPaused">Η περίοδος λειτουργίας διακόπηκε προσωρινά</string>
<string name="resume">Συνέχιση</string>
</resources>

View File

@ -0,0 +1,341 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="end">Fini</string>
<string name="pause">Paŭzigi</string>
<string name="tapToSkip">Preterpasi</string>
<string name="meditate">Mediti</string>
<string name="confirm">Konfirmi</string>
<string name="cancel">Nuligi</string>
<string name="tryAgain">Klopodi denove</string>
<string name="installFileManager">Bonvolu instali dosieradministrilon</string>
<string name="announcement">Anonco</string>
<string name="groups">Grupoj</string>
<string name="account">Konto</string>
<string name="page">Paĝo</string>
<string name="refresh">Aktualigi</string>
<string name="forum">Forumo</string>
<string name="community">Komunumo</string>
<string name="sessions">Seancoj</string>
<string name="delete">Forigi</string>
<string name="openWith">Malfermi per</string>
<string name="warning">Averto</string>
<string name="no">Ne</string>
<string name="yes">Jes</string>
<string name="about">Pri</string>
<string name="appNameShort">Meditada Asistanto</string>
<string name="settings">Agordoj</string>
<string name="meditation">Meditado</string>
<string name="minutes">Minutoj</string>
<string name="hours">Horoj</string>
<string name="days">Tagoj</string>
<string name="setTime">Fiksi tempon</string>
<string name="setDate">Fiksi daton</string>
<string name="started">Komenciĝis</string>
<string name="sessionStartedAt">Komenciĝis je %s</string>
<string name="exportSessions">Elporti seancojn</string>
<string name="edit">Redakti</string>
<string name="add">Aldoni</string>
<string name="sessionEdited">Seanco redaktita</string>
<string name="sessionAdded">Seanco aldonita</string>
<string name="editSession">Redakti seancon</string>
<string name="addSession">Aldoni seancon</string>
<string name="daySundayShort">Dim</string>
<string name="daySaturdayShort">Sab</string>
<string name="dayFridayShort">Ven</string>
<string name="dayThursdayShort">Ĵaŭ</string>
<string name="dayWednesdayShort">Mer</string>
<string name="dayTuesdayShort">Mar</string>
<string name="dayMondayShort">Lun</string>
<string name="calendar">Kalendaro</string>
<string name="signInWithOpenID">OpenID - Facebook, Twitter, ktp.</string>
<string name="signInWithProvider">Saluti per %s…</string>
<string name="signInWith">Saluti per…</string>
<string name="useBrowser">Uzi TTT-legilon:</string>
<string name="browser">TTT-legilo</string>
<string name="sessionSaved">Seanco konservita</string>
<string name="sessionMessagePlaceholder">Mesaĝo</string>
<string name="sessionDeleteMediNET">Forigi ĉe MediNET</string>
<string name="sessionDeleteEverywhere">Forigi ĉie</string>
<string name="session">Seanco</string>
<string name="share">Kunigi</string>
<string name="translate">Traduki</string>
<string name="version">Versio %s</string>
<string name="whatIsMediNET">Kio estas MediNET</string>
<string name="howToMeditate">Kiel mediti</string>
<string name="interval">Intervalo</string>
<string name="presetLabelEndAt">Fino %s</string>
<string name="endAt">Fino je</string>
<string name="label">Etikedo</string>
<string name="configureWidget">Agordi fenestraĵon</string>
<string name="setPreset">Agordi aprioron</string>
<string name="progress">Progreso</string>
<string name="sessionPaused">Seanco en paŭzo</string>
<string name="mediNETConnected">Konektita al MediNET</string>
<string name="mediNETConnecting">Konektante…</string>
<string name="resumeOrEnd">Pluigi aŭ fini</string>
<string name="pauseOrEnd">Paŭzigi aŭ fini</string>
<string name="resume">Pluigi</string>
<string name="set">Fiksi</string>
<string name="timerHelp">Bonvenon al mallonga lernilo. Jen la seanca tempumilo. Frapetu ĝin nun por ŝanĝi la tempuman reĝimon kaj daŭron.</string>
<string name="timer">Tempumilo</string>
<string name="appStoreListingFull">- Aŭtomata aparata reĝimo dum meditado.
\n- Paŭzigeblaj seancoj.
\n- Agordeblaj komencaj/intervalaj/finaj sonoj, tempoj, etosoj, aparataj kondutoj kaj pli.
\n- Monata superrigardo de progreso.
\n- Laŭvole afiŝu seancojn al MediNET, kaj vizitu ĝian diskutejon.
\n(Sciigo de aliuloj pri progreso de tagoj kun meditado instigas ĉiutagajn seancojn, eĉ dum kvin aŭ dek minutoj.)
\n
\nMeditada Asistanto estas kopilasita libera programo.
\nJa sendu vian problemon, ideon aŭ riparon: https://code.rocketnine.space/tslocum/meditationassistant/issues
\nPluraj funkcioj originis kiel ideoj de uzantoj.
\n
\nTraduku ĉi tiun programon: https://www.getlocalization.com/meditationassistant/
\n
\nFare de Rocket Nine Laboratories: https://rocketnine.space</string>
<string name="editTimerHelp">Via seanco povas havi specifan daŭron, povas daŭri ĝis specifa horo de la tago, aŭ eble ne havas specifitan finon.
\n
\nAprioroj estas uzataj por konservi oftajn agordojn. Premu kaj tenu aprioron por konservi la aktualan seancan daŭrorn. Sonoj kaj aliaj agordoj ankaŭ povas esti konservitaj en aprioroj, se tio estas ŝaltita per «Agordoj pri aprioro».
\n
\nPost frapeto de «Bone», frapetu «Nuligi» aŭ «Konfirmi» por daŭrigi.</string>
<string name="streakdifferencewarning">Via aktuala medita seninterrompaĵo ŝajnas malĝusta laŭ nunaj seancaj datenoj. Ĉu ĝisdatigi meditan seninterrompaĵon\?
\n
\nAktuala seninterrompaĵo: %1$d
\nĜisdatigota seninterrompaĵo: %2$d</string>
<string name="pref_meditationstreakbuffer">Seninterrompaĵo rekomenciĝas ĉe</string>
<string name="pref_sessionvolume_summary">Antaŭa laŭto reuziĝos post fino de la seanco.</string>
<string name="setPresetTip">Elektu restaŭrotajn agordojn frapante la piktogramon «Agordoj» kaj poste la butonon «Agordoj pri aprioro».</string>
<string name="permissionRequestNotificationControl">Bonvolu en la sekva ekrano permesi al ĉi tiu programo baskuligi la reĝimon «Ne ĝeni».</string>
<string name="invitationBlurb">Meditada Asistanto estas funkciplena asistanto por via praktiko.</string>
<string name="setVibrationTip">Tajpu la nombrojn de milisekundoj por ŝalti aŭ malŝalti la vibrilon, apartigitaj per komoj.</string>
<string name="pref_usetimepicker_summary">Uzi horajn kaj minutajn ŝovbutonojn por ŝanĝi la daŭron</string>
<string name="pref_daily_reminder_summary">Sciigi, se neniu seanco estis registrita hodiaŭ</string>
<string name="pref_notificationcontrol_vibrate">Vibrigi</string>
<string name="totalTimeSpentMeditating">Totala tempo de meditado</string>
<string name="signInGoogleError">Ne eblas aŭtentikigi per kontadministrilo. Provu OpenID, se ĉi tiu eraro daŭras.</string>
<string name="untimed">Netempumata</string>
<string name="timed">Tempumata</string>
<string name="unlimited">Senlima</string>
<string name="medinetHelp">Salutu al MediNET por konservi viajn seancojn Interrete. Vi povos enporti viajn seancojn poste, se vi perdos viajn datenojn. Ĉi tiu funkcio estas tute nedeviga; loka konservado de seancoj ne malbonigos vian sperton.
\n
\nJen finiĝas la lernilo. Mi esperas, ke Meditada Asistanto utilos al via praktiko.</string>
<string name="downloadsessionsmessage">Antaŭaj seancoj elŝutiĝos.
\n
\nĈi tiu dialogo ne reaperos.
\nVi povos elŝuti seancojn poste per la fenestro «Agordoj».</string>
<string name="importsessions_utc_or_local">Ĉu ĉi tiu elportaĵo havas lokajn aŭ UTK-ajn datojn kaj horojn\?
\n
\nElportaĵoj konservitaj ekde versio 1.5.6 havas datojn kaj horojn laŭ UTK.</string>
<string name="whatIsMediNETHelp">MediNET estas Interreta meditada seanco-deponejo kaj komunumo.
\n
\nVi povas konservi viajn seancojn ĉe MediNET por malhelpi perdon de datenoj kaj/aŭ Interrete sciigi aliulojn pri via progreso.
\n
\nVi povas anstataŭe konservi seancajn datenojn nur sur la aparato.</string>
<string name="replayTutorial">Reludi lernilon</string>
<string name="appStoreListingShort">Funkcioplena medito-seanca tempumilo kaj registrilo</string>
<string name="rateMeditationAssistantText">Se vi trovas ĉi tiun programon utila por via meditado, ĉu vi bonvolus taksi ĝin\?
\n
\nĈi tiu dialogo ne reaperos.</string>
<string name="downloadSessionsHint">Alklaku «Elŝuti seancojn» en Agordoj por retrovi mankantajn seancojn.</string>
<string name="pref_notification_summary">Montrota dum meditado dum vi estas for de la ĉeffenestro</string>
<string name="keepScreenOnAndDim">Lasi la ekranon aktiva kaj malheligi</string>
<string name="keepScreenOn">Lasi la ekranon aktiva</string>
<string name="pref_softfinish_summary">Lasi la tempumilon funkcianta</string>
<string name="pref_vibrate_summary">Okazas ĉe la komenco, la intervaloj kaj la fino de meditado</string>
<string name="pref_sound_reminder_summary">La implicita sciiga sono ludiĝos</string>
<string name="pref_vibrate_reminder_summary">La ĉiutaga memorigo vibrigos la aparaton</string>
<string name="settingsHelp">Ĉi tiu programo enhavas multajn funkciojn kaj opciojn. Frapetu la piktogramon Agordoj por vidi ilin.</string>
<string name="pref_display_seconds_summary">Montrota sub la ĉeftempumilo</string>
<string name="timerPosition">Loko de tempumilo</string>
<string name="pref_text_size">Grando de tempumilo</string>
<string name="presetsettings">Agordoj pri aprioro</string>
<string name="pref_meditation_sound_bell">Sono de plenatentiga sonorilo</string>
<string name="mindfulnessBellActive">Plenatentiga sonorilo aktiva</string>
<string name="mindfulnessBell">Plenatentiga sonorilo</string>
<string name="pref_showstreak_summary">Nombro de sinsekvaj tagoj kun almenaŭ unu registrita seanco</string>
<string name="pref_delay">Prokrasto</string>
<string name="widgetstreak3x1" tools:ignore="UnusedResources">Seninterrompaĵo 3×1</string>
<string name="widgetstreak2x1" tools:ignore="UnusedResources">Seninterrompaĵo 2×1</string>
<string name="widgetstreak1x1" tools:ignore="UnusedResources">Seninterrompaĵo 1×1</string>
<string name="setPresetHintBlank">Tajpu daŭro (aŭ finan tempon) por agordi aprioron</string>
<string name="setPresetHint">Tenu por agordi aprioron</string>
<string name="widgetpreset3x1" tools:ignore="UnusedResources">Aprioro 3×1</string>
<string name="widgetpreset2x1" tools:ignore="UnusedResources">Aprioro 2×1</string>
<string name="widgetpreset1x1" tools:ignore="UnusedResources">Aprioro 1×1</string>
<string name="sessionDeletedMediNET">Seanco forigita ĉe MediNET</string>
<string name="pref_remembermessage_summary">Implicitigi antaŭan mesaĝon</string>
<string name="pref_showstreak">Montri daŭron de seninterrompa meditado</string>
<string name="longestStreak">Plej longa seninterrompaĵo</string>
<string name="pref_daily_reminder">Ĉiutaga memorigo</string>
<string name="restartApp">Relanĉi programon por efektivigi agordojn</string>
<string name="miscellaneous">Diversaĵoj</string>
<string name="pref_notificationcontrol">Vokosono kaj sciigoj</string>
<string name="pref_daily_reminder_text">Instiga teksto</string>
<string name="ringtone">Vokosono</string>
<string name="media">Aŭdvidaĵoj</string>
<string name="pref_notificationcontrol_priority">Nur prioritato</string>
<string name="pref_askdismiss_summary">Peti konfirmon de forĵeton de seanco</string>
<string name="pref_askdismiss">Demandi antaŭ forĵeto</string>
<string name="pref_theme_lightdark">Hela kun malhela agbreto</string>
<string name="pref_usetimepicker">Alternativa fasado de daŭro</string>
<string name="pref_interval_count">Nombro de intervaloj</string>
<string name="pref_interval">Daŭro de intervalo</string>
<string name="pref_audio_output">Soneligo</string>
<string name="pref_rememberme_summary">Resti salutinta post fermo</string>
<string name="pref_autosignin_summary">Konekti al MediNET dum lanĉo</string>
<string name="pref_meditation_sound_interval">Intervala sono</string>
<string name="selectSound">Elekti sonon</string>
<string name="pref_autosave">Aŭtomate konservi</string>
<string name="pref_autosignin">Aŭtomate konekti</string>
<string name="pref_display_seconds">Montri sekundojn</string>
<string name="disabled">Malŝaltita</string>
<string name="reminderText">Ĉu vi havas momenton\?</string>
<string name="pref_meditation_vibrate_finish">Fina vibro</string>
<string name="pref_meditation_vibrate_interval">Intervala vibro</string>
<string name="pref_meditation_vibrate_start">Komenca vibro</string>
<string name="modeandduration">Reĝimo kaj daŭro</string>
<string name="tapToLearnMore">Frapetu ie ajn por lerni pli</string>
<string name="invalidEndAt">Nevalida fina tempo</string>
<string name="pausedNotification">Seanco en paŭzo; tenu por fini</string>
<string name="sessionInProgress">Seanco okazanta</string>
<string name="pattern">Modelo</string>
<string name="resources">Rimedoj</string>
<string name="disableBatteryOptimizations">Meditada Asistanto devas ruliĝi fone</string>
<string name="sessionsUpToDate">Lokaj datenoj estas ĝisdataj</string>
<string name="sessionExportWasSuccessful">Seancoj elportiĝis.</string>
<string name="sessionExportFailed">Malsukcesis elporti seancojn</string>
<string name="sessionNotPostedMeditating">Ne eblas afiŝi seancon dum meditado</string>
<string name="sessionAlreadyPosted">Seanco jam afiŝita</string>
<string name="sessionPosted">Seanco afiŝita al MediNET</string>
<string name="custom">Propra</string>
<plurals name="daysOfMeditation">
<item quantity="one">%d tago de meditado</item>
<item quantity="other">%d tagoj de meditado</item>
</plurals>
<plurals name="daysOfMeditationWithoutCount">
<item quantity="one">tago de meditado</item>
<item quantity="other">tagoj de meditado</item>
</plurals>
<string name="pref_widgetcolor">Koloro de fenestraĵo</string>
<string name="pref_sound_reminder">Ludi sonon</string>
<string name="pref_remembermessage">Memori lastan mesaĝon</string>
<string name="pref_meditation_sound_start">Komenca sono</string>
<string name="pref_meditation_sound_finish">Fina sono</string>
<string name="vibrate">Vibrigi</string>
<string name="totalSessions">Totala nombro de seancoj</string>
<string name="downloadsessionstitle">Ĉu elŝuti seancojn\?</string>
<string name="pref_daily_reminder_title">Memorigi min</string>
<string name="pref_notificationcontrol_alarms">Nur alarmoj</string>
<string name="alarm">Alarmo</string>
<string name="importsessions_complete">Troviĝis %1$d ekzistanta(j) kaj %2$d nova(j).</string>
<string name="downloadsessions_summary">Elŝuti forajn seancojn</string>
<string name="downloadsessions">Elŝuti seancojn</string>
<string name="importsessions_in_progress">Enportante seancojn…</string>
<string name="utc">UTK</string>
<string name="chooseDonationMethod">Bonvolu elekti manieron de donacado.
\n
\nLa programisto preferas Liberapay, kiu subtenas pli da landoj kaj valutoj.</string>
<string name="sourceRepository">Deponejo de fontkodo</string>
<string name="downloadingSessions">Elŝutante seancojn…</string>
<string name="pref_softfinish">Senfina seanco</string>
<string name="noSpecialBehavior">Neniu speciala konduto</string>
<string name="dimScreen">Malheligi ekranon</string>
<string name="duringSession">Dum seanco</string>
<string name="customSound">Propra sono</string>
<string name="noSound">Neniu sono</string>
<string name="start">Komenci</string>
<string name="discard">Forĵeti</string>
<string name="dismiss">Ignori</string>
<string name="unableToConnect">Ne eblas konekti al MediNET</string>
<string name="sessionNotFoundMediNET">Seanco ne troviĝis ĉe MediNET</string>
<string name="rateMeditationAssistant">Taksi ĉi tiun programon</string>
<string name="translateMeditationAssistantText">Ĉu vi interesiĝas pri tradukado de Meditada Asistanto\?</string>
<string name="permissionRequired">Jen deviga permeso.</string>
<string name="permissionRequest">Peto pri permeso</string>
<string name="deny">Malpermesi</string>
<string name="forward">Antaŭen</string>
<string name="back">Reen</string>
<string name="rate">Taksi</string>
<string name="length">Longo</string>
<string name="addSessionMeditating">Ne eblas aldoni seancon dum meditado</string>
<string name="editSessionMeditating">Ne eblas redakti seancon dum meditado</string>
<string name="sessionExists">Seanco jam ekzistas</string>
<string name="invalidLength">Nevalida longo</string>
<string name="invalidDateOrTime">Nevalida dato aŭ tempo</string>
<string name="sendEmail">Sendi retpoŝtan mesaĝon</string>
<string name="pref_sessionintro">Enkonduko</string>
<string name="sessionDeletedLocally">Seanco estis forigita loke</string>
<string name="sessionNotPosted">Malsukcesis afiŝi seancon</string>
<string name="postUpdatedSession">Ĉu alŝuti ĝisdatigitan seancon al MediNET\?</string>
<string name="sessionDeleteLocally">Forigi loke</string>
<string name="donate">Donaci</string>
<string name="deactivate">Malaktivigi</string>
<string name="setTimerEndAtHint">Tajpu validan tempon (ekz. 4:20)</string>
<string name="setTimerDurationHint">Tajpu validan daŭron (ekz. 0:22)</string>
<string name="uploadingSessions">Alŝutante seancojn…</string>
<string name="download">Elŝuti</string>
<string name="meditateToday">Meditu hodiaŭ</string>
<string name="signOutOfMediNETConfirmTitle">Ĉu adiaŭi el MediNET\?</string>
<string name="signOutOfMediNET">Adiaŭi el MediNET</string>
<string name="signInToMediNET">Saluti al MediNET</string>
<plurals name="daysOfMeditationMinimal">
<item quantity="one">%d tago</item>
<item quantity="other">%d tagoj</item>
</plurals>
<string name="notification">Sciigo</string>
<string name="normal">Mezgranda</string>
<string name="local">Loka</string>
<string name="pref_progresstab">Implicita langeto</string>
<string name="pref_mainbuttons">Kaŝi butonojn</string>
<string name="pref_theme">Holografia etoso</string>
<string name="pref_rememberme">Memori min</string>
<string name="always">Ĉiam</string>
<string name="pref_full_screen">Plenekrane</string>
<string name="labelLong">Longa</string>
<string name="labelMedium">Mezlonga</string>
<string name="labelShort">Mallonga</string>
<string name="none">Nenio</string>
<string name="longestDuration">Plej longa daŭro</string>
<string name="averageDuration">Mezuma daŭro</string>
<string name="completed">Finiĝis</string>
<string name="uploadsessions_summary">Alŝuti lokajn seancojn</string>
<string name="uploadsessions">Alŝuti seancojn</string>
<string name="exportsessions">Elporti seancojn</string>
<string name="exportsessions_summary">Elporti diskoman dosieron (CSV)</string>
<string name="importsessions_summary">Enporti diskoman dosieron (CSV)</string>
<string name="pref_notification">Sciigo</string>
<string name="pref_screencontrol">Ekrano</string>
<string name="pref_sessionvolume">Laŭto</string>
<string name="pref_theme_light">Hela</string>
<string name="buddhism">Budhismo</string>
<string name="pref_theme_dark">Malhela</string>
<string name="importsessions">Enporti seancojn</string>
<string name="top">Supro</string>
<string name="center">Centro</string>
<string name="tiny">Malgrandega</string>
<string name="small">Malgranda</string>
<string name="extralarge">Grandega</string>
<string name="large">Granda</string>
<string name="pref_daily_reminder_time">Tempo</string>
<string name="post">Afiŝi</string>
<string name="save">Konservi</string>
<string name="mediNET">MediNET</string>
<string name="wordimport">Enporti</string>
<string name="signOut">Adiaŭi</string>
<plurals name="sessionsUploaded">
<item quantity="one">Alŝutiĝis %s seanco</item>
<item quantity="other">Alŝutiĝis %s seancoj</item>
</plurals>
<plurals name="sessionsDownloaded">
<item quantity="one">Elŝutiĝis %s seanco</item>
<item quantity="other">Elŝutiĝis %s seancoj</item>
</plurals>
<plurals name="numtimes">
<item quantity="one">%s fojo</item>
<item quantity="other">%s fojoj</item>
</plurals>
<string name="sessioncomplete">Seanco estas kompleta</string>
<string name="askDiscardText">Ĉu forĵeti seancon\?</string>
<string name="sessionPosting">Afiŝante seancon…</string>
<string name="statistics">Statistiko</string>
<string name="pref_theme_black">Nigra</string>
</resources>

View File

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="appName">Asistente de meditación gratuito</string>
<string name="appNameShort">Asistente de meditación</string>
<string name="about">Sobre la aplicación</string>
<string name="yes"></string>
@ -21,14 +20,13 @@
<string name="installFileManager">Por favor instale un gestor de archivos</string>
<!-- Permissions -->
<string name="permissionRequest">Permiso requerido</string>
<string name="permissionRequestReadExternal">Este permiso es necesario para elegir un sonido personalizado en cada dispositivo.</string>
<string name="permissionRequestNotificationControl">Por favor, concede el permiso de la siguiente pantalla para controlar el modo No molestar</string>
<string name="permissionRequestNotificationControl">Por favor, concede el permiso de la siguiente pantalla para controlar el modo No molestar.</string>
<string name="deny">Denegar</string>
<string name="tryAgain">Reintentar</string>
<!-- Main Activity -->
<string name="timer">Temporizador</string>
<string name="timerHelp">El temporizador actualmente está ajustado a 15 minutos. Puede cambiar esta duración, terminar en una hora específica o desactivar el alarma completamente. Toca el temporizador ahora para ver estas opciones.</string>
<string name="settingsHelp">Esta aplicación incluye muchas características y personalizaciones como el silenciar automáticamente tu dispositivo y ofrecer un recordatorio diario para meditar. Pulsa el icono de los ajustes para ver ahora esas opciones.</string>
<string name="timerHelp">Bienvenido a un breve tutorial. Este es el temporizador de la sesión. Presiónelo ahora para cambiar el modo y duración del temporizador.</string>
<string name="settingsHelp">Esta aplicación incluye numerosas funciones y personalizaciones. Presione el icono de Configuración para ver estas opciones.</string>
<string name="medinetHelp">Regístrate en MediNET para guardar tus sesiones en línea para importarlas después si las pierdes. Esta característica es totalmente opcional, el almacenado local de las sesiones no interferirá en tu experiencia.\n\nAquí termina esta guía. Espero que el asistente de meditación te sea beneficioso a la hora de meditar.</string>
<string name="cancel">Cancelar</string>
<string name="set">Establecer</string>
@ -40,7 +38,7 @@
<string name="pauseOrEnd">Pausar o terminar</string>
<string name="resumeOrEnd">Continuar o terminar</string>
<string name="pausedNotification">Sesión pausada, mantener para terminar</string>
<string name="mediNETConnecting">Conectando...</string>
<string name="mediNETConnecting">Conectando</string>
<string name="mediNETConnected">Conectado a MediNET</string>
<string name="sessionInProgress">Sesión en progreso</string>
<string name="progress">Progreso</string>
@ -58,12 +56,10 @@
<string name="unlimited">Ilimitado</string>
<string name="presetLabelEndAt">Acabar %s</string>
<!-- About -->
<string name="sendEmail">Enviar correo electrónico</string>
<string name="sendEmail">Enviar un correo electrónico</string>
<string name="version">Versión %s</string>
<string name="translate">Traducir</string>
<string name="donate">Donar</string>
<string name="removeAds">Eliminar anuncios</string>
<string name="removeAdsHelp">La versión completa del Asistente de meditación es una aplicación separada.\n\nPara mantener tus sesiones existentes, regístrate en MediNET y pulsa "Subir sesiones" en la ventana de ajustes.\n\nAbre la versión completa y al iniciar sesión en MediNET una vez más, pulsa "Importar sesiones".</string>
<string name="howToMeditate">Cómo meditar</string>
<string name="share">Compartir</string>
<!--Short text displayed in sent application invitations [CHAR LIMIT=100] -->
@ -89,7 +85,7 @@
<string name="sessionDeletedLocally">Sesión eliminada localmente</string>
<!-- Sign In -->
<string name="browser">Navegador</string>
<string name="useBrowser">Use el navegador </string>
<string name="useBrowser">Use el navegador:</string>
<string name="signInWith">Iniciar sesión con…</string>
<string name="signInWithProvider">Iniciar sesión con %s…</string>
<string name="signInWithOpenID">OpenID - Facebook, Twitter, etc.</string>
@ -109,7 +105,7 @@
<string name="add">Añadir</string>
<string name="exportSessions">Exportar sesiones </string>
<string name="sessionExportFailed">No se puede exportar sesiones </string>
<string name="showExportedSessions">Sesiones exportadas. ¿Quiere navegar a la carpeta conteniendo la exportación?</string>
<string name="sessionExportWasSuccessful">Sesiones exportadas.</string>
<string name="sessionStartedAt">Iniciada a las %s</string>
<string name="started">Iniciada</string>
<string name="completed">Completada</string>
@ -128,7 +124,6 @@
<string name="reminderText">¿Tienes un momento?</string>
<!-- Settings -->
<string name="meditation">Meditación</string>
<string name="pref_vibrate">Vibrar</string>
<string name="pref_vibrate_summary">Ocurre al empezar, en algunos intervalos y al acabar la meditación</string>
<string name="pref_vibrate_reminder_summary">El recordatorio diario hará que vibre el dispositivo</string>
<string name="pref_sound_reminder">Reproducir sonido</string>
@ -159,8 +154,6 @@
<string name="pref_sessionvolume">Volumen</string>
<string name="pref_sessionvolume_summary">El volumen anterior será restaurado una vez que la sesión se complete.</string>
<string name="pref_screencontrol">Pantalla</string>
<string name="pref_sendusage">Reportar las estadísticas del uso</string>
<string name="pref_sendusage_summary">Reportar anónimamente con Google Analytics. Necesita el reinicio de la aplicación</string>
<string name="pref_showstreak">Mostrar progreso de la meditación</string>
<string name="pref_showstreak_summary">Número de días consecutivos con al menos una sesión</string>
<string name="selectSound">Seleccionar sonido</string>
@ -168,7 +161,7 @@
<string name="pref_meditation_sound_interval">Sonido del intervalo</string>
<string name="pref_meditation_sound_finish">Sonido al completar</string>
<string name="pref_remembermessage">Recordar el último mensaje</string>
<string name="pref_remembermessage_summary">Predeterminado para el último mensaje publicado</string>
<string name="pref_remembermessage_summary">Predeterminado para el mensaje previo</string>
<string name="pref_theme">Tema holográfico</string>
<string name="pref_theme_light">Claro</string>
<string name="pref_theme_lightdark">Claro con la barra de herramientas oscura</string>
@ -182,13 +175,13 @@
<string name="pref_askdismiss">Preguntar antes de descartar</string>
<string name="pref_askdismiss_summary">Confirmar antes de descartar una sesión</string>
<string name="pref_mainbuttons">Ocultar botones</string>
<string name="pref_progresstab">Barra de progreso predeterminada</string>
<string name="pref_progresstab">Barra prederminada</string>
<string name="importsessions">Importar sesiones</string>
<string name="importsessions_summary">Restaurar sesiones subidas</string>
<string name="uploadsessions">Subir sesiones</string>
<string name="uploadsessions_summary">Subir sesiones locales</string>
<string name="miscellaneous">Otros</string>
<string name="pref_text_size">Tamaño del texto del temporizador</string>
<string name="pref_text_size">Tamaño del temporizador</string>
<string name="tiny">Diminuto</string>
<string name="small">Pequeño</string>
<string name="normal">Normal</string>
@ -199,14 +192,13 @@
<string name="pref_notificationcontrol_priority">Sólo de alta prioridad</string>
<string name="pref_notificationcontrol_alarms">Sólo alarmas</string>
<string name="pref_notificationcontrol_vibrate">Establecer vibrado</string>
<string name="pref_notificationcontrol_silent">Establecer modo silencio</string>
<string name="pref_daily_reminder">Recordatorio diario</string>
<string name="pref_daily_reminder_title">Recuérdamelo</string>
<string name="pref_daily_reminder_summary">Muestra una notificación cuando no hay sesions guardadas ese día</string>
<string name="pref_daily_reminder_time">Hora</string>
<string name="pref_daily_reminder_text">Texto motivador</string>
<string name="downloadingSessions">Descargando sesiones...</string>
<string name="uploadingSessions">Subiendo sesiones...</string>
<string name="downloadingSessions">Descargando sesiones</string>
<string name="uploadingSessions">Subiendo sesiones</string>
<!-- MediNET -->
<string name="mediNET">MediNET</string>
<string name="unableToConnect">No ha sido posible conectarse a MediNET</string>
@ -214,9 +206,6 @@
<string name="discard">Descartar</string>
<string name="save">Guardar</string>
<string name="post">Publicar</string>
<string name="importSessionsHint">Pulsa "Importar sesiones" en los ajustes para restaurar las sesiones restantes.</string>
<string name="importsessionstitle">¿Importar sesiones?</string>
<string name="importsessionsmessage">Las sesiones anteriores serán imporadas.\n\nEste mensaje no volverá a aparecer.\nPuedes importar sesiones más tarde en la ventana de ajustes.</string>
<string name="wordimport">Importar</string>
<string name="sessionDeletedMediNET">Sesión eliminada de MediNET</string>
<string name="sessionNotFoundMediNET">Sesión no encontrada en MediNET</string>
@ -224,15 +213,10 @@
<item quantity="one">%s vez</item>
<item quantity="other">%s veces</item>
</plurals>
<plurals name="sessionsImported">
<item quantity="one">Imporada %s sesión</item>
<item quantity="other">Imporatadas %s sesiones</item>
</plurals>
<plurals name="sessionsUploaded">
<item quantity="one">Subida %s sesión</item>
<item quantity="other">Subidas %s sesiones</item>
</plurals>
<string name="sessionsNotImported">La información local ya está al día</string>
<plurals name="daysOfMeditationMinimal">
<item quantity="one">%d día</item>
<item quantity="other">%d días</item>
@ -251,13 +235,117 @@
<string name="signOutOfMediNET">Cerrar la sesión de MediNET</string>
<string name="signOutOfMediNETConfirmTitle">¿Salir de MediNET?</string>
<string name="rateMeditationAssistant">Valorar el asistente de meditación</string>
<string name="rateMeditationAssistantText">Si has encontrado esta aplicación beneficiosa para meditar, ¿podrías añadir una valoración, por favor?\n\nLa versión de pago de esta aplicación no contiene anuncios y tiene características de los widgets de la pantalla principal. Por favor, considera pagarla si te es posiblee.\n\nEste mensaje no volverá a aparecer.</string>
<string name="translateMeditationAssistantText">¿Podrías ayudar al asistente de meditación a llegar a una mayor audiencia traduciéndola a otro idioma?\n\nLa traducción es muy sencilla a través de una interfaz en línea. Puedes visitar la página web de traducción pulsando "Traducir" desde la ventana "Acerca de la aplicación"\n\nEste mensaje no volverá a aparecer.</string>
<string name="rateMeditationAssistantText">Si has encontrado esta aplicación beneficiosa para meditar ¿Podría añadir una valoración, por favor\?
\n
\nEste mensaje no volverá a aparecer.</string>
<string name="translateMeditationAssistantText">¿Está interesado usted en ayudar con la traducción del Asistente de Meditación\?</string>
<!-- Widgets -->
<string name="widget1x1" tools:ignore="UnusedResources">Asistente de meditación 1x1</string>
<string name="widget2x1" tools:ignore="UnusedResources">Asistente de meditación 2x1</string>
<string name="widget3x1" tools:ignore="UnusedResources">Asistente de meditación 3x1</string>
<!-- Meta -->
<string name="warning">Atención</string>
<string name="disableBatteryOptimizations">El asistente de meditación debe ejecutarse en segundo plano</string>
<string name="appStoreListingFull">- Modo automático de dispositivo mientras se medita.
\n- Sesiones pausables.
\n- Ajustar los sonidos de inicio/intervalo/final, tiempos, temas y comportamiento del dispositivo, y más.
\n- Resumen de progreso mensual.
\n- Opcionalmente publicar sesiones en MediNET, y visitar su fóro.
\n(Compartir el progreso diario con la meditación motiva a sesiones diarias, incluso de cinco o diez minutos.)
\n
\nAsistente de Meditación es Software Libre sin restricciones de derechos de autor.
\nEnvíe su problema/idea o corrección: https://code.rocketnine.space/tslocum/meditationassistant/issues
\nMuchas funciones son creadas por ideas de usuarios.
\n
\nTraduce Asistente de Meditación: https://www.getlocalization.com/meditationassistant/
\n
\nPor Rocket Nine Laboratories: https://rocketnine.space</string>
<string name="appStoreListingShort">Característica incluida temporizador de meditación y grabadora</string>
<string name="widgetstreak3x1" tools:ignore="UnusedResources">Racha 3x1</string>
<string name="widgetstreak2x1" tools:ignore="UnusedResources">Racha 2x1</string>
<string name="widgetstreak1x1" tools:ignore="UnusedResources">Racha 1x1</string>
<string name="widgetpreset3x1" tools:ignore="UnusedResources">Preajuste 3x1</string>
<string name="widgetpreset2x1" tools:ignore="UnusedResources">Preajuste 2x1</string>
<string name="widgetpreset1x1" tools:ignore="UnusedResources">Preajuste 1x1</string>
<string name="sessionsUpToDate">Datos locales están actualizados</string>
<plurals name="sessionsDownloaded">
<item quantity="one">Descargado %s sesión</item>
<item quantity="other">Descargado %s sesiones</item>
</plurals>
<string name="downloadsessionsmessage">Sesiones previas serán descargadas.
\n
\nEste diálogo no volverá a aparecer.
\nUsted puede descargar sesiones después desde la ventana de Configuración.</string>
<string name="downloadsessionstitle">Descargar sesiones\?</string>
<string name="downloadSessionsHint">Click para Descargar sesiones en configuraciones para recuperar sesiones perdidas.</string>
<string name="download">Descargar</string>
<string name="notification">Notificación</string>
<string name="ringtone">Tono de alarma</string>
<string name="media">Multimedia</string>
<string name="alarm">Alarma</string>
<string name="center">Centro</string>
<string name="top">Arriba</string>
<string name="timerPosition">Posición del temporizador</string>
<string name="local">Local</string>
<string name="utc">UTC</string>
<string name="importsessions_utc_or_local">Está importación tiene fechas y hora locales o UTC\?
\n
\nExportaciones guardadas desde la versión 1.5.6 tienen fecha y hora UTC.</string>
<string name="importsessions_complete">Encontrado %1$d existentes y %2$d nuevos.</string>
<string name="importsessions_in_progress">Importando sesiones…</string>
<string name="downloadsessions_summary">Descargar sesiones remotas</string>
<string name="downloadsessions">Descargar sesiones</string>
<string name="exportsessions_summary">Exportar archivo CSV</string>
<string name="exportsessions">Exportar sesiones</string>
<string name="pref_autosave">Autoguardado</string>
<string name="pref_audio_output">Salida de audio</string>
<string name="pref_meditationstreakbuffer">La racha se reinicia en</string>
<string name="custom">Personalizado</string>
<string name="labelLong">Largo</string>
<string name="labelMedium">Medio</string>
<string name="labelShort">Corto</string>
<string name="pref_meditation_vibrate_finish">Vibración completa</string>
<string name="pref_meditation_vibrate_interval">Intervalo de vibración</string>
<string name="pref_meditation_vibrate_start">Comenzar vibración</string>
<string name="vibrate">Vibrar</string>
<string name="editSessionMeditating">Incapaz de editar una sesión mientras se medita</string>
<string name="invalidLength">Duración no válida</string>
<string name="length">Duración</string>
<string name="edit">Editar</string>
<string name="sessionEdited">Sesión editada</string>
<string name="sessionAdded">Sesión agregada</string>
<string name="editSession">Editar sesión</string>
<string name="postUpdatedSession">Publicar sesión actualizada en MediNET\?</string>
<string name="streakdifferencewarning">Su actual racha de meditación no parece correcta basado en los datos de su actual sesión. Usar una racha actualizada\?
\n
\nRacha actual: %1$d
\nRacha actualizada: %2$d</string>
<string name="sourceRepository">Repositorio del Código Fuente</string>
<string name="chooseDonationMethod">Por favor elija cómo desearía donar.
\n
\nLiberapay es preferido por el desarrollador y soporta más países y divisas.</string>
<string name="tapToLearnMore">Presione en cualquier lado para aprender más</string>
<string name="replayTutorial">Repetir tutorial</string>
<string name="whatIsMediNETHelp">MediNET es un repositorio y comunidad de sesiones de meditación en línea.
\n
\nUsted puede elegir guardar sus sesiones en MediNET para prevenir la perdida de datos o compartir su progreso con otros en línea.
\n
\nUsted puede, en su lugar, escoger guardar su sesión solo en su dispositivo.</string>
<string name="whatIsMediNET">Descripción de MediNET</string>
<string name="resources">Recursos</string>
<string name="pattern">Patrón</string>
<string name="configureWidget">Configurar Widget</string>
<string name="setVibrationTip">Introduzca el número de milisegundos para encender o apagar la vibración, separado por comas.</string>
<string name="sessionPaused">Sesión pausada</string>
<string name="resume">Reanudar</string>
<string name="editTimerHelp">Su sesión tendrá una duración determinada, hasta un tiempo específico del día o no determinado en absoluto.
\n
\nLos preajustes guardan configuraciones comunes. Presiona y mantén pulsado para guardar la actual duración de la sesión. Sonidos y otras configuarciones pueden ser guardadas por preajustes activándolos en Configuración de Preajuste.
\n
\nDespués de presionar OK, presione Cancelar o Confirmar para continuar.</string>
<string name="permissionRequired">Este permiso es necesario.</string>
<string name="start">Comenzar</string>
<string name="deactivate">Desactivar</string>
<string name="interval">Intervalo</string>
<string name="mindfulnessBell">Campana de atención plena</string>
<string name="mindfulnessBellActive">Campana de atención plena activa</string>
<string name="pref_meditation_sound_bell">Sonido de la campana de atención plena</string>
<string name="pref_theme_black">Negro</string>
</resources>

View File

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="appName">Asistente de Meditación Gratis</string>
<string name="appNameShort">Asistente de Meditación</string>
<string name="about">Acerca de</string>
<string name="yes">Si</string>
@ -20,13 +19,13 @@
<string name="announcement">Anuncio</string>
<!-- Permissions -->
<string name="permissionRequest">Permisos requeridos</string>
<string name="permissionRequestNotificationControl">Por favor acepta el acceso en la siguiente pantalla para controlar Do Not Disturb (No molestar)</string>
<string name="permissionRequestNotificationControl">Por favor acepta el acceso en la siguiente pantalla para controlar el modo de No Molestar.</string>
<string name="deny">Negar</string>
<string name="tryAgain">Inténtalo otra vez</string>
<!-- Main Activity -->
<string name="timer">Temporizadod</string>
<string name="timerHelp">Actualmente el tiempo está configurado en 15 minutos. Puedes cambiar la duración, hacer que termine en un momento específico del día o desactivar por completo la alarma. Toca el reloj ahora para ver esas opciones.</string>
<string name="settingsHelp">Esta aplicación incluye muchas características y opciones, tales como silenciar automáticamente tus otras aplicaciones y dar un recordatorio diario para meditar. Toca el ícono de Configuraciones ahora para ver estas opciones.</string>
<string name="timerHelp">Bienvenido a un breve tutorial. Este es el temporizador. Presiónelo ahora para cambiar el modo y duración.</string>
<string name="settingsHelp">Esta aplicación incluye numerosas funciones y personalizaciones. Presione el ícono de Configuración para ver estas opciones.</string>
<string name="medinetHelp">Regístrate en MediNET para guardar tus sesiones online. Puedes importar tus sesiones más tarde si pierdes tus datos. Esta característica es completamente opcional, guardar tus sesiones localmente no entorpecerá tu experiencia. \n\n Así concluye el tutorial. Espero que el Asistente de Meditación sea benéfico para tu práctica.</string>
<string name="cancel">Cancelar</string>
<string name="set">Establecer</string>
@ -38,13 +37,13 @@
<string name="pauseOrEnd">Pausar o terminar</string>
<string name="resumeOrEnd">Continuar o terminar</string>
<string name="pausedNotification">Sesión pausada, mantener para terminar</string>
<string name="mediNETConnecting">Conectando...</string>
<string name="mediNETConnecting">Conectando</string>
<string name="mediNETConnected">Conectado a MediNET</string>
<string name="sessionInProgress">Sesión en progreso</string>
<string name="progress">Progreso</string>
<string name="setPreset">Establecer predeterminado</string>
<string name="setPresetHint">Mantenga presionado para establecer predeterminado</string>
<string name="setPresetTip">Escoge las herramientas para restablecer tocando el ícono del engrane (Configuración), luego toca Configuración Predeterminada</string>
<string name="setPresetTip">Escoge qué configuración restaurar tocando el ícono de engranaje (Configuración), después presiona Preajustes.</string>
<string name="setPresetHintBlank">Escribir una duración (o tiempo final) para establecer predeterminado</string>
<string name="label">Etiqueta</string>
<string name="setTimerDurationHint">Escriba una duración valida (e.j. 0:22)</string>
@ -56,12 +55,10 @@
<string name="unlimited">Ilimitado</string>
<string name="presetLabelEndAt">Terminar %s</string>
<!-- About -->
<string name="sendEmail">Enviar correo electronico</string>
<string name="sendEmail">Enviar un correo electrónico</string>
<string name="version">Versión %s</string>
<string name="translate">Traducir</string>
<string name="donate">Donar</string>
<string name="removeAds">Remover anuncios</string>
<string name="removeAdsHelp">La versión completa del Asistente de Meditación es una aplicación separada. \n\n Para mantener tu sesión existente, regístrate en MediNET y toca "Subir sesión" en la ventana de Configuraciones. \n\nAbre la versión completa y regístrate en MediNET una vez más. Luego aprieta "importar".</string>
<string name="howToMeditate">Como Meditar</string>
<string name="share">Compartir</string>
<!--Short text displayed in sent application invitations [CHAR LIMIT=100] -->
@ -78,7 +75,7 @@
<string name="sessioncomplete">Sesión completada</string>
<string name="sessionMessagePlaceholder">Mensaje</string>
<string name="askDiscardText">¿Descartar sesión?</string>
<string name="sessionPosting">Publicando sesión...</string>
<string name="sessionPosting">Publicando sesión</string>
<string name="sessionPosted">Sesión publicada en MediNET</string>
<string name="sessionAlreadyPosted">Sesión ya publicada</string>
<string name="sessionNotPosted">Incapaz de publicar sesión</string>
@ -86,8 +83,8 @@
<string name="sessionSaved">Sesión guardada</string>
<string name="sessionDeletedLocally">Sesión eliminada localmente</string>
<!-- Sign In -->
<string name="signInWith">Entra con...</string>
<string name="signInWithProvider">Entra con %s...</string>
<string name="signInWith">Inicia sesión con…</string>
<string name="signInWithProvider">Entra con %s</string>
<string name="signInWithOpenID">OpenID - Facebook, Twitter, etc.</string>
<string name="signInGoogleError">Incapaz de autentificar el usuario utilizando el administrador de cuentas. Intenta usar OpenID si este error persiste.</string>
<!-- Progress -->
@ -120,7 +117,6 @@
<string name="reminderText">¿Tienes un momento para meditar?</string>
<!-- Settings -->
<string name="meditation">Meditación</string>
<string name="pref_vibrate">Vibrar</string>
<string name="pref_vibrate_summary">Ocurre al pincipio, en intervalos y al final de la meditación</string>
<string name="pref_vibrate_reminder_summary">El recordatorio diario hace vibrar el teléfono</string>
<string name="pref_sound_reminder">Sonido</string>
@ -149,16 +145,14 @@
<string name="pref_sessionvolume">Volumen</string>
<string name="pref_sessionvolume_summary">El Volumen previo se restaurará una vez que la sesión se haya completado.</string>
<string name="pref_screencontrol">Pantalla</string>
<string name="pref_sendusage">Reportar estadísticas de uso</string>
<string name="pref_sendusage_summary">Reporte de estadísticas anónimas por Google Analytics. Tomara efecto al volver a abrir.</string>
<string name="pref_showstreak">Mostrar racha de meditaciones</string>
<string name="pref_showstreak_summary">Numero de días consecutivos con por lo menos una sesión guardada.</string>
<string name="pref_showstreak_summary">Numero de días consecutivos con por lo menos una sesión guardada</string>
<string name="selectSound">Escoge sonido</string>
<string name="pref_meditation_sound_start">Empezar sonido</string>
<string name="pref_meditation_sound_interval">Sonido de intervalo</string>
<string name="pref_meditation_sound_finish">Sonido completo</string>
<string name="pref_remembermessage">Recordar ultimo mensaje</string>
<string name="pref_remembermessage_summary">Por defecto el último mensaje publicado</string>
<string name="pref_remembermessage_summary">Por defecto el mensaje previo</string>
<string name="pref_theme">Tema holográfico</string>
<string name="pref_theme_light">Luz</string>
<string name="pref_theme_lightdark">Luz con barra de acción oscura</string>
@ -169,11 +163,11 @@
<string name="pref_askdismiss">Preguntar antes de descarte</string>
<string name="pref_askdismiss_summary">Confirmar antes de descartar una sesión</string>
<string name="pref_mainbuttons">Esconder botones</string>
<string name="pref_progresstab">Pestaña de progreso predeterminado</string>
<string name="pref_progresstab">Pestaña predeterminada</string>
<string name="importsessions">Importar sesiones</string>
<string name="importsessions_summary">Recuperar sesiones subidas</string>
<string name="miscellaneous">Misceláneo </string>
<string name="pref_text_size">Tamaño de texto del contador</string>
<string name="pref_text_size">Tamaño del temporizador</string>
<string name="tiny">Chiquitín</string>
<string name="small">Pequeño</string>
<string name="normal">Normal</string>
@ -182,13 +176,12 @@
<string name="pref_notificationcontrol">Ringtone y notificaciones</string>
<string name="pref_notificationcontrol_alarms">Sólo Alarmas</string>
<string name="pref_notificationcontrol_vibrate">Vibrar</string>
<string name="pref_notificationcontrol_silent">Silencioso</string>
<string name="pref_daily_reminder">Recordatorio diario</string>
<string name="pref_daily_reminder_summary">Notificar cuando no se hayan grabado sesiones el día de hoy.</string>
<string name="pref_daily_reminder_summary">Notificar cuando no se hayan grabado sesiones el día de hoy</string>
<string name="pref_daily_reminder_time">Tiempo</string>
<string name="pref_daily_reminder_text">Texto para dar ánimo</string>
<string name="downloadingSessions">Sesiones Descargadas</string>
<string name="uploadingSessions">Sesiones Importadas</string>
<string name="downloadingSessions">Descargando sesiones…</string>
<string name="uploadingSessions">Subiendo sesiones…</string>
<!-- MediNET -->
<string name="mediNET">MediNET</string>
<string name="unableToConnect">No se puede conectar a MediNET</string>
@ -196,29 +189,20 @@
<string name="discard">Descartar</string>
<string name="save">Guardar</string>
<string name="post">Publicar</string>
<string name="importSessionsHint">Haga clic en "Importar sesiones" en la configuración para recuperar las sesiones que faltan.</string>
<string name="importsessionstitle">Importar sesiones?</string>
<string name="importsessionsmessage">Se importarán las sesiones anteriores. Este dialogo no aparecerán de nuevo. No
puede importar sesiones de tarde desde la ventana Configuración.</string>
<string name="wordimport">Importar</string>
<string name="sessionDeletedMediNET">Sesión eliminada de MediNET</string>
<string name="sessionNotFoundMediNET">Sesión no encontrada en MediNET</string>
<plurals name="numtimes">
<item quantity="one">%s time</item>
<item quantity="other">%s times</item>
</plurals>
<plurals name="sessionsImported">
<item quantity="one">Sesión %s importada</item>
<item quantity="other">Sesiónes %s importadas</item>
<item quantity="one">%s vez</item>
<item quantity="other">%s veces</item>
</plurals>
<plurals name="sessionsUploaded">
<item quantity="one">Uploaded %s session</item>
<item quantity="other">Uploaded %s sessions</item>
<item quantity="one">Subida %s sesión</item>
<item quantity="other">Subidas %s sesiones</item>
</plurals>
<string name="sessionsNotImported">Datos locales actualizados</string>
<plurals name="daysOfMeditationMinimal">
<item quantity="one">%d day</item>
<item quantity="other">%d days</item>
<item quantity="one">%d día</item>
<item quantity="other">%d días</item>
</plurals>
<plurals name="daysOfMeditation">
<item quantity="one">%d dia de la meditacion</item>
@ -234,10 +218,132 @@ puede importar sesiones de tarde desde la ventana Configuración.</string>
<string name="signOutOfMediNET">Cerrar sesión de MediNET</string>
<string name="signOutOfMediNETConfirmTitle">Cerrar sesión de MediNET?</string>
<string name="rateMeditationAssistant">Valorar asistente de meditación</string>
<string name="rateMeditationAssistantText">Si usted ha encontrado esta aplicación beneficioso para su práctica de la meditación, ¿podría añadir una calificación? La versión de pago de esta aplicación no contiene anuncios y cuenta con widgets de la pantalla de inicio. Por favor considerar la compra si usted es capaz de hacerlo. Este cuadro de diálogo no volverá a aparecer.</string>
<string name="translateMeditationAssistantText">¿Te gustaría ayudar a que el Asistente de Meditación llegue a una audiencia más grande traduciéndola a otro lenguaje?\n\n Traducir es una tarea fácil que se hace en un programa online. Puedes visitar la página de traducción más tarde haciendo clic en la ventana Acerca De.\n\nÉste diálogo no volverá a aparecer.</string>
<string name="rateMeditationAssistantText">Si usted encontró está aplicación útil para su práctica de meditación, puede darnos una calificación\?
\n
\nEste diálogo no volverá a aparecer.</string>
<string name="translateMeditationAssistantText">Esta usted interesado en ayudar con la traducción de Asistente de Meditación\?</string>
<!-- Widgets -->
<string name="widget1x1" tools:ignore="UnusedResources">Asistente de Meditación 1x1</string>
<string name="widget2x1" tools:ignore="UnusedResources">Asistente de Meditación 2x1</string>
<string name="widget3x1" tools:ignore="UnusedResources">Asistente de Meditación 3x1</string>
<string name="appStoreListingFull">- Modo automático de dispositivo mientras medita.
\n- Sesiones pausables.
\n- Sonidos de inicio/intervalo/final ajustables, tiempos, temas y comportamiento del dispositvo, y más.
\n- Resumen mensual de progreso.
\n- Opcionalmente publicar sesiones en MediNET, y visitar su fóro.
\n(Compartir su progreso con la meditación motiva a tener sesiones diaria, incluso de cinco o diez minutos.)
\n
\nAsistente de Meditación es Software Libre sin Derechos de Autor.
\nEnvíe su problema/idea o ajuste: https://gitlab.com/tslocum/meditationassistant/issues
\nMuchas funciones son creadas por ideas de usuarios.
\n
\nTraduce Asistente de Meditación: https://www.getlocalization.com/meditationassistant/
\n
\nPor Rocket Nine Laboratories: https://rocketnine.space</string>
<string name="appStoreListingShort">Función incluida temporizador de sesión y grabadora</string>
<string name="widgetstreak3x1" tools:ignore="UnusedResources">Racha 3x1</string>
<string name="widgetstreak2x1" tools:ignore="UnusedResources">Racha 2x1</string>
<string name="widgetstreak1x1" tools:ignore="UnusedResources">Racha 1x1</string>
<string name="widgetpreset3x1" tools:ignore="UnusedResources">Preajuste 3x1</string>
<string name="widgetpreset2x1" tools:ignore="UnusedResources">Preajuste 2x1</string>
<string name="widgetpreset1x1" tools:ignore="UnusedResources">Preajuste 1x1</string>
<string name="sessionsUpToDate">Datos locales actualizados</string>
<plurals name="sessionsDownloaded">
<item quantity="one">Descargada %s sesión</item>
<item quantity="other">Descargada %s sesiones</item>
</plurals>
<string name="downloadsessionsmessage">Sesiones previas serán descargadas.
\n
\nEste diálogo no volverá a aparecer.
\nUsted puede descargar sesiones después desde la ventana de Configuración.</string>
<string name="downloadsessionstitle">Descargar sesiones\?</string>
<string name="downloadSessionsHint">Click para Descargar sesiones en opciones para recuperar sesiones perdidas.</string>
<string name="download">Descargar</string>
<string name="pref_daily_reminder_title">Recuerdame</string>
<string name="pref_notificationcontrol_priority">Solo prioridad</string>
<string name="restartApp">Reiniciar aplicación para aplicar los nuevos ajustes</string>
<string name="notification">Notificación</string>
<string name="ringtone">Tono de alarma</string>
<string name="media">Multimedia</string>
<string name="alarm">Alarma</string>
<string name="center">Centro</string>
<string name="top">Arriba</string>
<string name="timerPosition">Posición del temporizador</string>
<string name="uploadsessions_summary">Subir sesiones locales</string>
<string name="uploadsessions">Subir sesiones</string>
<string name="local">Local</string>
<string name="utc">UTC</string>
<string name="importsessions_utc_or_local">Exportar con fecha y hora local o UTC\?
\n
\nExportaciones guardadas desde la versión 1.5.6 tienen fecha y hora UTC.</string>
<string name="importsessions_complete">Encontrado %1$d existentes y %2$d nuevas.</string>
<string name="importsessions_in_progress">Importando sesiones…</string>
<string name="downloadsessions_summary">Descargar sesiones remotas</string>
<string name="downloadsessions">Descargar sesiones</string>
<string name="exportsessions_summary">Exportar archivo CSV</string>
<string name="exportsessions">Exportar sesiones</string>
<string name="pref_usetimepicker_summary">Use deslizadores de hora y minutos cuando cambie duración</string>
<string name="pref_usetimepicker">Interfaz alternativa de duración</string>
<string name="pref_widgetcolor">Color de Widget</string>
<string name="pref_autosave">Autoguardado</string>
<string name="pref_audio_output">Salida de audio</string>
<string name="pref_meditationstreakbuffer">Racha se reinicia en</string>
<string name="always">Siempre</string>
<string name="duringSession">Durante sesión</string>
<string name="custom">Personalizado</string>
<string name="labelLong">Largo</string>
<string name="labelMedium">Medio</string>
<string name="labelShort">Corto</string>
<string name="pref_meditation_vibrate_finish">Vibración completa</string>
<string name="pref_meditation_vibrate_interval">Intervalo de vibración</string>
<string name="pref_meditation_vibrate_start">Iniciar vibración</string>
<string name="vibrate">Vibrar</string>
<string name="sessionExists">La sesión ya existe</string>
<string name="editSessionMeditating">Incapaz de editar una sesión mientras se medita</string>
<string name="invalidLength">Duración inválida</string>
<string name="length">Duración</string>
<string name="sessionExportWasSuccessful">Sesiones exportadas.</string>
<string name="sessionExportFailed">Incapaz de exportar sesiones</string>
<string name="exportSessions">Exportar sesiones</string>
<string name="edit">Editar</string>
<string name="sessionEdited">Sesión editada</string>
<string name="sessionAdded">Sesión agregada</string>
<string name="editSession">Editar sesión</string>
<string name="useBrowser">Usar navegador:</string>
<string name="browser">Navegador</string>
<string name="postUpdatedSession">Publicar sesión actualizada en MediNET\?</string>
<string name="streakdifferencewarning">Su actual racha parace no coincidir basado en los datos de su sesión actual. Usar una racha actualizada\?
\n
\nRacha actual: %1$d
\nRacha actualizada: %2$d</string>
<string name="sourceRepository">Repositorio del Código Fuente</string>
<string name="chooseDonationMethod">Por favor escoja cómo desea donar.
\n
\nLiberapay es preferido por el desarrollador y soporta más países y divisas.</string>
<string name="tapToLearnMore">Presione en cualquier lugar para saber más</string>
<string name="replayTutorial">Repetir tutorial</string>
<string name="whatIsMediNETHelp">MediNET es un repositorio de sesiones y comunidad de meditación.
\n
\nUsted puede escojer guardar sus sesiones en MediNET para prevenir su pérdida de datos o compartir su progreson con otros en línea.
\n
\nUsted puede, en su lugar, escojer guardar sus datos de sesión solo en su dispositivo.</string>
<string name="whatIsMediNET">Descripción de MediNET</string>
<string name="resources">Recursos</string>
<string name="pattern">Patrón</string>
<string name="configureWidget">Configurar Widget</string>
<string name="setVibrationTip">Ingrese el número de milisegundos para encender o apagar la vibración, separado por comas.</string>
<string name="sessionPaused">Sesión pausada</string>
<string name="resume">Resumen</string>
<string name="editTimerHelp">Su sesión tendrá una duración específica, hasta una hora del día determinada, o no cronometrado en absoluto.
\n
\nPreajustes guardan configuraciones cómunes. Presione y mantenga un preajuste para guardar la duración de la actual sesión. Sonidos y otros ajustes pueden ser guardados en preajustes activándolos en Preajustes.
\n
\nDespués de presionar OK, presione Cancelar o Confirmar para continuar.</string>
<string name="permissionRequired">Este permiso es necesario.</string>
<string name="disableBatteryOptimizations">Asistente de Meditación debe correr en segundo plano</string>
<string name="installFileManager">Por favor instale un administrador de archivos</string>
<string name="warning">Advertencia</string>
<string name="pref_meditation_sound_bell">Sonido de la campana de atención plena</string>
<string name="start">Comenzar</string>
<string name="deactivate">Desactivar</string>
<string name="interval">Intervalo</string>
<string name="mindfulnessBellActive">Campana de atención plena activada</string>
<string name="mindfulnessBell">Campana de atención plena</string>
</resources>

View File

@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="appName">Asistente de meditación gratuito</string>
<string name="appNameShort">Asistente de meditación</string>
<string name="about">Acerca</string>
<string name="yes">Si</string>
<string name="no">No</string>
<string name="delete">Borrar</string>
<string name="sessions">Sesiones</string>
<string name="community">Comunidad</string>
@ -19,20 +16,9 @@
<string name="account">Cuenta</string>
<string name="groups">Grupos</string>
<string name="announcement">Anuncio</string>
<!-- Permissions -->
<!-- Main Activity -->
<string name="timer">Temporizador</string>
<string name="cancel">Cancelar</string>
<string name="set">Establecer</string>
<string name="confirm">Confirmar</string>
@ -42,70 +28,25 @@
<string name="end">Ende</string>
<string name="pauseOrEnd">Pausa o ende</string>
<string name="resumeOrEnd">Sesión pausada, mantener para terminar</string>
<string name="mediNETConnecting">Conectando...</string>
<string name="mediNETConnected">Conectando a MediNET</string>
<string name="sessionInProgress">Sesión en progreso</string>
<string name="progress">Progreso</string>
<string name="timed">Terminar %s</string>
<string name="endAt">Terminar en</string>
<string name="presetLabelEndAt">Terminar %s</string>
<!-- About -->
<string name="version">Versión %s</string>
<string name="translate">Traducir</string>
<string name="howToMeditate">Como meditar</string>
<string name="share">Compartir</string>
<!--Short text displayed in sent application invitations [CHAR LIMIT=100] -->
<!-- Sessions -->
<string name="session">Sesión</string>
<!-- Session complete -->
<string name="sessionMessagePlaceholder">Mensaje</string>
<!-- Sign In -->
<!-- Progress -->
<string name="dayMondayShort">Lun</string>
<string name="dayTuesdayShort">Mar</string>
<string name="dayWednesdayShort">Mie</string>
@ -114,141 +55,18 @@
<string name="daySaturdayShort">Sab</string>
<string name="daySundayShort">Dom</string>
<string name="addSession">Añadir sesión</string>
<string name="started">Iniciado</string>
<string name="completed">Completado</string>
<!-- Settings -->
<!-- MediNET -->
<plurals name="numtimes">
<item quantity="one">%s time</item>
<item quantity="other">%s times</item>
</plurals>
<plurals name="sessionsImported">
<item quantity="one">%s sesión importado</item>
<item quantity="other">%s sesiones importado</item>
</plurals>
<plurals name="sessionsUploaded">
<item quantity="one">Uploaded %s session</item>
<item quantity="other">Uploaded %s sessions</item>
</plurals>
<plurals name="daysOfMeditationMinimal">
<item quantity="one">%d day</item>
<item quantity="other">%d days</item>
@ -261,20 +79,33 @@
<item quantity="one">día de meditación</item>
<item quantity="other">días de meditación</item>
</plurals>
<!-- Widgets -->
<string name="widget1x1" tools:ignore="UnusedResources">Asistente de meditación 1x1</string>
<string name="widget2x1" tools:ignore="UnusedResources">Asistente de meditación 2x1</string>
<string name="widget3x1" tools:ignore="UnusedResources">Asistente de meditación 3x1</string>
</resources>
<string name="sendEmail">Enviar un correo electrónico</string>
<string name="setPresetHint">Mantenga presionado para guardar ajuste</string>
<string name="setPreset">Guardar configuración</string>
<string name="sessionPaused">Sesión pausada</string>
<string name="pausedNotification">Sesión pausada, mantenga presionado para finalizar</string>
<string name="resume">Resumen</string>
<string name="medinetHelp">Inicie sesión en MediNET para guardar sus sesiones en línea. Usted puede importar sus sesiones después si pierde sus datos. Esta función es enteramente opcional, guardando sus sesiones localmente no arruinará su experiencia.
\n
\nEsto concluye el tutorial. Espero que Asistente de Meditación sea beneficioso para su práctica.</string>
<string name="settingsHelp">Esta aplicación incluye numerosas funciones y personalizaciones. Presione el ícono de Configuración para ver estas opciones.</string>
<string name="editTimerHelp">Su sesión tendrá una duración específica, hasta una hora del día, o no cronometrado en absoluto.
\n
\nPreajustes pueden ser usados para guardar configuraciones comunes. Presiones y mantenga un preajuste para guardar la duración actual de la sesión. Sonidos y otros ajustes pueden ser guardados en preajustes activándolos en configuración de Preajuste.
\n
\nDespués de presionar OK, presione Cancelar o Confirmar para continuar.</string>
<string name="timerHelp">Bienvenido a un breve tutorial. Este es el temporizador. Presiónelo ahora para cambiar el modo y duración.</string>
<string name="tryAgain">Intentar de nuevo</string>
<string name="deny">Denegar</string>
<string name="permissionRequestNotificationControl">Por favor permita acceso en la siguiente pantalla para controlar No Molestar.</string>
<string name="permissionRequired">Este permiso es requerido.</string>
<string name="permissionRequest">Solicitud de permiso</string>
<string name="disableBatteryOptimizations">Asistente de Meditación debe de correr en segundo plano</string>
<string name="installFileManager">Por favor instale un administrador de archivos</string>
<string name="openWith">Abrir con</string>
<string name="warning">Advertencia</string>
<string name="setTimerDurationHint">Introducir una duración válida (ej. 0:22)</string>
<string name="setVibrationTip">Introduzca el número de milisegundos para encender o apagar la vibración, separado por comas.</string>
<string name="setPresetTip">Elige qué opciones restaurar presionando el icono del engranaje (Ajustes), después pulsa Ajustes de programación.</string>
</resources>

View File

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="appName">Meditatsiooniabiline Tasuta</string>
<string name="appNameShort">Meditatsiooniabiline</string>
<string name="about">Äpi kohta</string>
<string name="yes">Jah</string>
@ -38,7 +37,7 @@
<string name="untimed">Ajatu</string>
<string name="presetLabelEndAt">Lõpp %s</string>
<!-- About -->
<string name="sendEmail">Saada meil</string>
<string name="sendEmail">Saada e-kiri</string>
<string name="version">Versioon %s</string>
<string name="translate">Tõlgi</string>
<string name="howToMeditate">Kuidas mediteerida</string>

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="account">Tili</string>
<string name="forward">Eteenpäin</string>
<string name="back">Takaisin</string>
<string name="page">Sivu</string>
<string name="refresh">Päivitä</string>
<string name="rate">Arvioi</string>
<string name="forum">Keskustelupalsta</string>
<string name="community">Yhteisö</string>
<string name="sessions">Istunto</string>
<string name="delete">Poista</string>
<string name="openWith">Avaa</string>
<string name="warning">Varoitus</string>
<string name="no">Ei</string>
<string name="yes">Kyllä</string>
<string name="about">Tietoja</string>
<string name="appNameShort">Meditaatioavustaja</string>
</resources>

View File

@ -1,8 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="appName">Assistant de Méditation Gratuit
</string>
<string name="appNameShort">Assistant de Méditation</string>
<string name="appNameShort">Assistant de méditation</string>
<string name="about">À propos</string>
<string name="yes">Oui</string>
<string name="no">Non</string>
@ -11,26 +9,27 @@
<string name="sessions">Séances</string>
<string name="community">Communauté</string>
<string name="forum">Forum</string>
<string name="rate">Donner une évaluation</string>
<string name="rate">Évaluer</string>
<string name="refresh">Actualiser</string>
<string name="page">Page</string>
<string name="back">Reculer</string>
<string name="forward">Avancer</string>
<string name="back">Retour</string>
<string name="forward">Suivant</string>
<string name="account">Compte</string>
<string name="groups">Groupes</string>
<string name="announcement">Annonce</string>
<string name="installFileManager">Installez un gestionnaire de fichiers s\'il vous plaît</string>
<string name="installFileManager">Veuillez installer un gestionnaire de fichiers</string>
<!-- Permissions -->
<string name="permissionRequest">Demande d\'autorisation</string>
<string name="permissionRequestReadExternal">L\'autorisation est nécessaire pour choisir un fichier de son personnalisé sur l\'appareil.</string>
<string name="permissionRequestNotificationControl">Veuillez autoriser l\'accès à l\'écran suivant pour contrôler "Ne pas déranger"</string>
<string name="permissionRequestNotificationControl">À l\'écran suivant, merci d\'autoriser l\'accès à «Ne pas déranger» pour un contrôle de cette fonction par l\'Assistant de méditation.</string>
<string name="deny">Refuser</string>
<string name="tryAgain">Essayez encore</string>
<string name="tryAgain">Essayez à nouveau</string>
<!-- Main Activity -->
<string name="timer">Minuterie</string>
<string name="timerHelp">La minuterie est actuellement réglée sur 15 minutes. Vous pouvez changer la durée, indiquer une heure spécifique pour la fin de méditation, ou bien désactiver complètement la minuterie. Appuyez maintenant sur la minuterie pour voir ces options.</string>
<string name="settingsHelp">Cette application contient de nombreuses fonctionnalités et de nombreux réglages, comme de pouvoir mettre automatiquement votre appareil en mode silencieux ou fournir une notification quotidienne pour méditer. Appuyez maintenant sur l\'icône des paramètres pour voir ces options.</string>
<string name="medinetHelp">Inscrivez vous sur MediNET pour sauvegarder vos séances en ligne. Vous pourrez importer vos sessions plus tard si vous perdez vos données. Cette fonctionnalité est entièrement optionnelle, enregistrer vos séances localement n\'entravera pas votre utilisation.\n\n Ceci termine le didacticiel. J\'espère que l\'assistant de méditation sera bénéfique à votre pratique. </string>
<string name="timer">Minuteur</string>
<string name="timerHelp">Bienvenue dans un bref tutoriel. Ceci est le minuteur de la session. Appuyez dessus pour changer de mode et de durée.</string>
<string name="settingsHelp">Cette application inclut de nombreuses fonctionnalités et d\'options personnalisables. Appuyez sur l\'icône Paramètres pour voir ces options.</string>
<string name="medinetHelp">Inscrivez vous sur MediNET pour sauvegarder vos séances en ligne. Vous pourrez réimporter vos séances plus tard si vous perdez vos données. Cette fonctionnalité est entièrement optionnelle, enregistrer vos séances localement n\'entravera pas votre utilisation.
\n
\n Ceci termine le didacticiel. J\'espère que l\'Assistant de méditation sera bénéfique à votre pratique.</string>
<string name="cancel">Annuler</string>
<string name="set">Régler</string>
<string name="confirm">Confirmer</string>
@ -38,33 +37,31 @@
<string name="tapToSkip">Passer</string>
<string name="pause">Pause</string>
<string name="end">Terminer</string>
<string name="pauseOrEnd">Pause ou fin</string>
<string name="pauseOrEnd">Mettre en pause ou terminer</string>
<string name="resumeOrEnd">Reprendre ou terminer</string>
<string name="pausedNotification">Séance en pause, maintenir pour terminer</string>
<string name="mediNETConnecting">Connection...</string>
<string name="mediNETConnecting">Connexion en cours…</string>
<string name="mediNETConnected">Connecté à MediNET</string>
<string name="sessionInProgress">Séance en cours</string>
<string name="progress">Progression</string>
<string name="setPreset">Définir un réglage</string>
<string name="setPresetHint">Gardez appuyé pour définir le réglage</string>
<string name="setPresetTip">Choisir les réglages à rétablir en appuyant sur licône représentant une roue dentée (Réglages), puis appuyer sur Réglages prédéfinis </string>
<string name="setPresetHint">Restez appuyé pour définir le réglage</string>
<string name="setPresetTip">Choisir les réglages à rétablir en appuyant sur licône représentant une roue dentée (Paramètres), puis appuyer sur Paramètres par défaut.</string>
<string name="setPresetHintBlank">Définir une durée (ou une heure de fin) pour le réglage</string>
<string name="label">Label</string>
<string name="label">Nom</string>
<string name="setTimerDurationHint">Entrez une durée valide (par ex. 0:22)</string>
<string name="setTimerEndAtHint">Entrez une heure valide (par ex. 4:20)</string>
<string name="invalidEndAt">Heure de fin de séance incorrecte</string>
<string name="timed">Durée</string>
<string name="timed">Chronométré</string>
<string name="endAt">Fin à</string>
<string name="untimed">Sans durée</string>
<string name="untimed">Non chronométré</string>
<string name="unlimited">Illimité</string>
<string name="presetLabelEndAt">Fin %s</string>
<!-- About -->
<string name="sendEmail">Envoyer un email</string>
<string name="sendEmail">Envoyer un courriel</string>
<string name="version">Version %s</string>
<string name="translate">Traduire</string>
<string name="donate">Faire un don</string>
<string name="removeAds">Supprimer les pubs.</string>
<string name="removeAdsHelp">La version complète de "Mediation Assistant" est une application séparée.\n\n Pour conserver vos séances existantes, connectez vous sur MediNET et tapez "Envoyez des séances" dans le fenêtre des réglages.\n\n Ouvrez la version complète et connectez vous une nouvelle fois sur MediNET, puis tapez "importer des séances".</string>
<string name="howToMeditate">Comment méditer</string>
<string name="share">Partager</string>
<!--Short text displayed in sent application invitations [CHAR LIMIT=100] -->
@ -81,7 +78,7 @@
<string name="sessioncomplete">Séance terminée</string>
<string name="sessionMessagePlaceholder">Message</string>
<string name="askDiscardText">Annuler la séance ?</string>
<string name="sessionPosting">Envoi de la séance...</string>
<string name="sessionPosting">Envoi de la séance</string>
<string name="sessionPosted">Séance envoyée sur MediNET</string>
<string name="sessionAlreadyPosted">Séance déjà envoyée</string>
<string name="sessionNotPosted">Impossible d\'envoyer la séance</string>
@ -91,8 +88,8 @@
<!-- Sign In -->
<string name="browser">Navigateur</string>
<string name="useBrowser">Utiliser le navigateur :</string>
<string name="signInWith">Se connecter avec ...</string>
<string name="signInWithProvider">Se connecter avec %s ...</string>
<string name="signInWith">Se connecter avec</string>
<string name="signInWithProvider">Se connecter avec %s</string>
<string name="signInWithOpenID">OpenID - Facebook, Twitter, etc.</string>
<string name="signInGoogleError">Impossible de s\'identifier avec le gestionnaire de comptes. Essayez avec OpenID si l\'erreur persiste.</string>
<!-- Progress -->
@ -110,7 +107,7 @@
<string name="add">Ajouter</string>
<string name="exportSessions">Exporter les séances</string>
<string name="sessionExportFailed">Impossible d\'exporter les séances</string>
<string name="showExportedSessions">Les séances ont été exportées. Voulez-vous ouvrir le dossier contenant le fichier exporté \?</string>
<string name="sessionExportWasSuccessful">Les séances ont été exportées.</string>
<string name="sessionStartedAt">Démarré à %s</string>
<string name="started">Démarrée</string>
<string name="completed">Terminée</string>
@ -129,13 +126,12 @@
<string name="reminderText">Prenez un instant pour méditer ?</string>
<!-- Settings -->
<string name="meditation">Méditation</string>
<string name="pref_vibrate">Vibrer</string>
<string name="pref_vibrate_summary">Se produit au début, aux étapes intermédiaires et à la fin de la méditation</string>
<string name="pref_vibrate_reminder_summary">La notification quotidienne fera vibrer l\'appareil</string>
<string name="pref_sound_reminder">Jouer la sonnerie</string>
<string name="pref_sound_reminder_summary">La sonnerie par défaut de la notification sera jouée</string>
<string name="pref_softfinish">Séance infinie</string>
<string name="pref_softfinish_summary">Laisse la minuterie se dérouler</string>
<string name="pref_softfinish_summary">Laisser le minuteur en marche</string>
<string name="settings">Réglages</string>
<string name="disabled">Désactivé</string>
<string name="none">Aucun</string>
@ -156,18 +152,16 @@
<string name="pref_rememberme_summary">Resté enregistré après la fermeture</string>
<string name="pref_rememberme">Se souvenir de moi</string>
<string name="pref_sessionvolume">Volume</string>
<string name="pref_sessionvolume_summary">Le volume précédent sera rétabli une fois la séance terminée</string>
<string name="pref_sessionvolume_summary">Le volume précédent sera rétabli une fois la séance terminée.</string>
<string name="pref_screencontrol">Ecran</string>
<string name="pref_sendusage">Envoyer les statistiques d\'utilisation</string>
<string name="pref_sendusage_summary">Envoi anonyme des statistiques via Google Analytics. Prend effet au redémarrage</string>
<string name="pref_showstreak">Afficher la série de méditation</string>
<string name="pref_showstreak_summary">Nombre de jours consécutifs avec au moins une séance enregistrée</string>
<string name="selectSound">Sélectionner un son</string>
<string name="pref_meditation_sound_start">Sonnerie de début.</string>
<string name="pref_meditation_sound_start">Sonnerie de début</string>
<string name="pref_meditation_sound_interval">Sonnerie intermédiaire</string>
<string name="pref_meditation_sound_finish">Sonnerie de fin</string>
<string name="pref_remembermessage">Se souvenir du dernier message</string>
<string name="pref_remembermessage_summary">Dernier message par défaut</string>
<string name="pref_remembermessage_summary">Message précédent par défaut</string>
<string name="pref_theme">Thème holographique</string>
<string name="pref_theme_light">Clair</string>
<string name="pref_theme_lightdark">Clair avec une barre d\'action foncée</string>
@ -180,13 +174,13 @@
<string name="pref_askdismiss">Confirmer avant d\'annuler</string>
<string name="pref_askdismiss_summary">Confirmer avant d\'annuler une séance</string>
<string name="pref_mainbuttons">Masquer les boutons</string>
<string name="pref_progresstab">Onglet de progression par défaut</string>
<string name="pref_progresstab">Onglet par défaut</string>
<string name="importsessions">Importer les séances</string>
<string name="importsessions_summary">Récupérer les séances envoyées</string>
<string name="uploadsessions">Envoyer les séances</string>
<string name="uploadsessions_summary">Envoyer les séances locales</string>
<string name="miscellaneous">Divers</string>
<string name="pref_text_size">Taille du texte du minuteur</string>
<string name="pref_text_size">Taille du minuteur</string>
<string name="tiny">Minuscule</string>
<string name="small">Petit</string>
<string name="normal">Normal</string>
@ -197,24 +191,20 @@
<string name="pref_notificationcontrol_priority">Priorité seulement</string>
<string name="pref_notificationcontrol_alarms">Alarmes seulement</string>
<string name="pref_notificationcontrol_vibrate">Régler sur vibreur</string>
<string name="pref_notificationcontrol_silent">Régler sur silence</string>
<string name="pref_daily_reminder">Rappel quotidien</string>
<string name="pref_daily_reminder_title">Rappelez moi</string>
<string name="pref_daily_reminder_summary">Afficher une notification quand aucune session n\'a été enregistrée aujourd\'hui</string>
<string name="pref_daily_reminder_time">Heure</string>
<string name="pref_daily_reminder_text">Texte d\'encouragement</string>
<string name="downloadingSessions">Téléchargent des séances...</string>
<string name="uploadingSessions">Envoi des séances...</string>
<string name="downloadingSessions">Téléchargement des séances…</string>
<string name="uploadingSessions">Envoi des séances au serveur…</string>
<!-- MediNET -->
<string name="mediNET">MediNET</string>
<string name="unableToConnect">Impossible de se connecter à MediNET</string>
<string name="dismiss">Rejeter</string>
<string name="dismiss">Supprimer</string>
<string name="discard">Annuler</string>
<string name="save">Sauvegarder</string>
<string name="post">Envoyer</string>
<string name="importSessionsHint">Cliquer sur "Importer les séances" dans les réglages pour récupérer les séances manquantes</string>
<string name="importsessionstitle">Importer les séances ?</string>
<string name="importsessionsmessage">Les séances précédentes vont être importées.\n\nCette boite de dialogue n\'apparaîtra plus.\nVous pourrez importer les séances plus tard dans la fenêtre Réglages.</string>
<string name="wordimport">Importer</string>
<string name="sessionDeletedMediNET">Séances supprimées de MediNET</string>
<string name="sessionNotFoundMediNET">Séance no trouvée sur MediNET</string>
@ -222,15 +212,10 @@
<item quantity="one">%s fois</item>
<item quantity="other">%s fois</item>
</plurals>
<plurals name="sessionsImported">
<item quantity="one">%s séance importée</item>
<item quantity="other">%s séances importées</item>
</plurals>
<plurals name="sessionsUploaded">
<item quantity="one">%s séance envoyée</item>
<item quantity="other">%s séances envoyées</item>
</plurals>
<string name="sessionsNotImported">Les données locales sont à jour</string>
<plurals name="daysOfMeditationMinimal">
<item quantity="one">%d jour</item>
<item quantity="other">%d jours</item>
@ -249,11 +234,109 @@
<string name="signOutOfMediNET">Se déconnecter de MediNET</string>
<string name="signOutOfMediNETConfirmTitle">Se déconnecter de MediNET ?</string>
<string name="rateMeditationAssistant">Notez Assistant de Méditation</string>
<string name="rateMeditationAssistantText">Si vous pensez que cette application a été positive pour votre pratique de la méditation, pensez à noter l\'application.\n\n La version payante ne contient pas de publicité et vous permet d\'ajouter des widgets. Nous vous remercions de l\'acheter si vous le pouvez.\n\nCe message n\'apparaîtra plus.</string>
<string name="translateMeditationAssistantText">Voulez vous aider Meditation Assistant à toucher une audience plus large en traduisant cette application dans une autre langue?\n\nLa traduction se fait facilement avec une interface en ligne. Vous pourrez plus tard visiter la page de traduction en cliquant sur "Traduire" dans la fenêtre "A propos".\n\n Cette boite de dialogue napparaîtra plus.</string>
<string name="rateMeditationAssistantText">Si vous pensez que cette application a été positive pour votre pratique de la méditation, pensez à noter l\'application.
\n
\nCe message n\'apparaîtra plus.</string>
<string name="translateMeditationAssistantText">Voulez vous aider Meditation Assistant à toucher une audience plus large en traduisant cette application dans une autre langue \?</string>
<!-- Widgets -->
<string name="widget1x1" tools:ignore="UnusedResources">Assistant de Méditation 1x1</string>
<string name="widget2x1" tools:ignore="UnusedResources">Assistant de Méditation 2x1</string>
<string name="widget3x1" tools:ignore="UnusedResources">Assistant de Méditation 3x1</string>
<!-- Meta -->
<string name="warning">Avertissement</string>
<string name="disableBatteryOptimizations">Assistant de méditation doit s\'exécuter en arrière-plan</string>
<string name="tapToLearnMore">Appuyez quelque part pour en savoir plus</string>
<string name="postUpdatedSession">Publier la séance mise à jour sur MediNET \?</string>
<string name="editSession">Modifier la séance</string>
<string name="sessionAdded">Séance ajoutée</string>
<string name="sessionEdited">Séance modifiée</string>
<string name="edit">Modifier</string>
<string name="length">Durée</string>
<string name="invalidLength">Durée invalide</string>
<string name="editSessionMeditating">Impossible de modifier une séance pendant la méditation</string>
<string name="resume">Reprendre</string>
<string name="sessionPaused">Session interrompue</string>
<string name="permissionRequired">Cette permission est requise.</string>
<string name="chooseDonationMethod">Veuillez choisir comment vous voulez faire un don.
\n
\nLiberapay est idéal pour le développeur et prend en charge plus de pays et devises.</string>
<string name="streakdifferencewarning">Le cycle de méditations actuel ne semble pas correspondre aux données de cette session. Utiliser un cycle actualisé \?
\n
\nCycle actuel : %1$d
\nCycle actualisé : %2$d</string>
<string name="duringSession">En cours de séance</string>
<string name="always">Toujours</string>
<string name="pref_meditationstreakbuffer">Réinitialisation du cycle de méditations à</string>
<string name="pref_widgetcolor">Couleur du widget</string>
<string name="appStoreListingShort">Minuteur et enregistreur de séance de méditation multifonctions</string>
<string name="appStoreListingFull">- Mode automatique pendant la méditation.
\n- Possibilité de mettre en pause en cours de séance.
\n- Possibilité de régler des sons de début/intervalle/fin et de définir la durée des séances, les thèmes, le comportement de l\'appareil, et plus encore.
\n- Synthèse mensuelle de sa progression.
\n- Possibilité de poster ses séances sur MediNET, et de visiter le forum.
\n(Partager ses progrès avec la communauté est une motivation supplémentaire pour pratiquer quotidiennement, ne serait-ce que cinq ou dix minutes.)
\n
\nMeditation Assistant est un logiciel libre sous copyleft.
\nEnvoyez-nous votre problème / idées ou consultez le code source : https://gitlab.com/tslocum/meditationassistant/issues
\nPlusieurs fonctions sont issues de suggestions d\'utilisateurs.
\n
\nAider à traduire Meditation Assistant : https://www.getlocalization.com/meditationassistant/
\n
\nCréé par Rocket Nine Laboratories : https://rocketnine.space</string>
<string name="exportsessions">Exporter les séances</string>
<string name="exportsessions_summary">Exporter un fichier CSV</string>
<string name="downloadsessions">Télécharger des séances</string>
<string name="downloadsessions_summary">Télécharger des séances distantes</string>
<string name="importsessions_in_progress">Importation en cours…</string>
<string name="importsessions_complete">%1$d séance(s) existante(s) et %2$d séance(s) nouvelle(s) trouvée(s).</string>
<string name="importsessions_utc_or_local">Cette exportation comporte-t-elle des dates et heures locales ou universelles (UTC) \?
\n
\nLes exportations sauvegardées depuis la version 1.5.6 ont des dates et heures universelles (UTC).</string>
<string name="utc">UTC</string>
<string name="local">Locales</string>
<string name="downloadSessionsHint">Cliquez sur Télécharger les séances dans les paramètres pour récupérer les séances manquantes.</string>
<string name="downloadsessionstitle">Télécharger les séances \?</string>
<string name="downloadsessionsmessage">Les séances précédentes seront téléchargées.
\n
\nCette boîte de dialogue n\'apparaîtra plus.
\nVous pouvez télécharger les séances ultérieurement à partir de la fenêtre Paramètres.</string>
<plurals name="sessionsDownloaded">
<item quantity="one">%s séance téléchargée</item>
<item quantity="other">%s séances téléchargées</item>
</plurals>
<string name="sessionsUpToDate">Les données locales sont à jour</string>
<string name="download">Téléchargement</string>
<string name="configureWidget">Configurer le widget</string>
<string name="pref_autosave">Sauvegarde automatique</string>
<string name="widgetpreset1x1" tools:ignore="UnusedResources">Modèle 1×1</string>
<string name="widgetpreset2x1" tools:ignore="UnusedResources">Modèle 2×1</string>
<string name="widgetpreset3x1" tools:ignore="UnusedResources">Modèle 3×1</string>
<string name="widgetstreak1x1" tools:ignore="UnusedResources">Série 1×1</string>
<string name="widgetstreak2x1" tools:ignore="UnusedResources">Série 2×1</string>
<string name="widgetstreak3x1" tools:ignore="UnusedResources">Série 3×1</string>
<string name="resources">Ressources</string>
<string name="replayTutorial">Revoir le tutoriel</string>
<string name="sourceRepository">Dépôt du code source</string>
<string name="editTimerHelp">Votre session peut être d\'une durée déterminée, peut durer jusqu\'à une heure de la journée spécifique ou peut ne pas être chronométrée du tout.
\n
\nLes modèles peuvent être utilisés pour stocker des configurations communes. Appuyez et maintenez un modèle pour mémoriser la durée de la session actuelle. Les sons et les autres paramètres peuvent aussi être mémorisés par les modèles en les autorisant dans les paramètres des modèles.
\n
\nAprès avoir appuyé sur OK, appuyez sur Annuler ou Confirmer pour continuer.</string>
<string name="whatIsMediNET">Aperçu MediNET</string>
<string name="whatIsMediNETHelp">MediNET est un dépôt de sessions de méditation et une communauté en ligne.
\n
\nVous pouvez choisir de stocker vos sessions sur MediNET pour éviter des pertes de données ou pour partager vos progrès avec d\'autres en ligne.
\n
\nVous pouvez aussi choisir de stocker vos sessions uniquement sur votre appareil.</string>
<string name="setVibrationTip">Entrez le nombre de millisecondes pour allumer ou éteindre le vibreur, séparé par des virgules.</string>
<string name="pattern">Modèle</string>
<string name="vibrate">Vibrer</string>
<string name="pref_meditation_vibrate_start">Démarrer la vibration</string>
<string name="pref_meditation_vibrate_interval">Intervalle de vibration</string>
<string name="pref_meditation_vibrate_finish">Vibration complète</string>
<string name="labelShort">Courte</string>
<string name="labelMedium">Moyenne</string>
<string name="labelLong">Longue</string>
<string name="custom">Personnalisée</string>
<string name="timerPosition">Position du minuteur</string>
<string name="top">En-haut</string>
<string name="center">Au centre</string>
<string name="interval">Intervalle</string>
</resources>

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View File

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="appName">Meditation Assistant Free</string>
<string name="appNameShort">Meditation Assistant</string>
<string name="about">על אודות</string>
<string name="yes">כן</string>
@ -20,7 +19,6 @@
<string name="announcement">הכרזה</string>
<!-- Permissions -->
<string name="permissionRequest">בקשת הרשאה</string>
<string name="permissionRequestReadExternal">הרשאה זו נדרשת על מנת לבחור קובץ קול מותאם אישית ממכשיר זה</string>
<string name="tryAgain">נסה שנית</string>
<!-- Main Activity -->
<string name="cancel">ביטול</string>
@ -56,7 +54,6 @@
<string name="daySaturdayShort">שבת</string>
<string name="daySundayShort">ראשון</string>
<!-- Settings -->
<string name="pref_vibrate">רטט</string>
<string name="settings">הגדרות</string>
<string name="disabled">מנוטרל</string>
<string name="noSpecialBehavior">אין התנהגות מיוחדת</string>
@ -70,7 +67,7 @@
<string name="pref_delay">השהיה</string>
<string name="pref_autosignin_summary">התחברות ל־MediNET כאשר התכנית פתוחה</string>
<string name="pref_autosignin">התחברות אוטומטית</string>
<string name="pref_text_size">גודל הטקסט במתזמן</string>
<string name="pref_text_size">גודל המתזמן</string>
<string name="small">קטן</string>
<string name="normal">רגיל</string>
<string name="large">גדול</string>
@ -78,24 +75,24 @@
<!-- MediNET -->
<string name="discard">התעלמות</string>
<string name="save">שמירה</string>
<string name="importsessionstitle">האם לייבא פעילויות?</string>
<string name="wordimport">יבוא</string>
<plurals name="numtimes">
<item quantity="one">%s time</item>
<item quantity="other">%s times</item>
</plurals>
<plurals name="sessionsImported">
<item quantity="one">Imported %s session</item>
<item quantity="other">Imported %s sessions</item>
<item quantity="one">פעם אחת</item>
<item quantity="two">פעמיים</item>
<item quantity="many">%s פעמים</item>
<item quantity="other">%s פעמים</item>
</plurals>
<plurals name="sessionsUploaded">
<item quantity="one">Uploaded %s session</item>
<item quantity="other">Uploaded %s sessions</item>
<item quantity="one">הועלתה הפעלה אחת</item>
<item quantity="two">הועלו שתי הפעלות</item>
<item quantity="many">הועלו %s הפעלות</item>
<item quantity="other">הועלו %s הפעלות</item>
</plurals>
<string name="sessionsNotImported">הנתונים המקומיים עדכניים</string>
<plurals name="daysOfMeditationMinimal">
<item quantity="one">%d day</item>
<item quantity="other">%d days</item>
<item quantity="one">יום</item>
<item quantity="two">יומיים</item>
<item quantity="many">%d ימים</item>
<item quantity="other">%d ימים</item>
</plurals>
<plurals name="daysOfMeditation">
<item quantity="one">%d day of meditation</item>
@ -108,4 +105,11 @@
<string name="signOut">יציאה</string>
<string name="signOutOfMediNET">לצאת מ־MediNET</string>
<!-- Widgets -->
<string name="timerHelp">ברוך בואך להדרכה המקוצרת. זה מתזמן ההפעלה. יש לגעת בו כדי לשנות את מצב ומשך המתזמן.</string>
<string name="timer">מתזמן</string>
<string name="deny">לסרב</string>
<string name="permissionRequestNotificationControl">נא להעניק גישה במסך הבא כדי לשלוט במצב לא להפריע.</string>
<string name="permissionRequired">הרשאה זו נחוצה.</string>
<string name="installFileManager">נא להתקין מנהל קבצים</string>
<string name="warning">אזהרה</string>
</resources>

View File

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="appName">ध्यान सहायक नि:शुल्क</string>
<string name="appNameShort">ध्यान सहायक</string>
<string name="about">ऐप के बारे में</string>
<string name="yes">हाँ</string>
@ -21,14 +20,13 @@
<string name="installFileManager">कृपया फाईल मॅनेजर इन्स्टाल करें</string>
<!-- Permissions -->
<string name="permissionRequest">अनुमति अनुरोध</string>
<string name="permissionRequestReadExternal">डिवाइस पर कस्टम ध्वनि फ़ाइल चुनने के लिए यह अनुमति आवश्यक है</string>
<string name="permissionRequestNotificationControl">Do Not Disturb को नियंत्रित करने के लिए कृपया अगली स्क्रीन पर प्रवेश प्रदान करे</string>
<string name="deny">मना</string>
<string name="tryAgain">पुनः प्रयास करें</string>
<!-- Main Activity -->
<string name="timer">टाइमर</string>
<string name="timerHelp">टाइमर वर्तमान में 15 मिनट पर सेट है। आप अवधि बदल सकते हैं, दिन के एक निश्चित समय पर समाप्त कर सकते हैं, या अलार्म को पूरी तरह से निष्क्रिय कर सकते हैं। इन विकल्पों को देखने के लिए अब टाइमर टैप करें</string>
<string name="settingsHelp">इस एप्लिकेशन में कई सुविधाएं और अनुकूलन शामिल हैं, जैसे स्वचालित रूप से आपके डिवाइस को चुप करना और ध्यान के लिए दैनिक अनुस्मारक प्रदान करना। इन विकल्पों को देखने के लिए अब सेटिंग्स आइकन टैप करें।</string>
<string name="timerHelp">एक संक्षिप्त शिक्षण में आपका स्वागत है। यह सत्र टाइमर है। टाइमर मोड और अवधि परिवर्तित करने के लिए इसे अभी दबाएँ</string>
<string name="settingsHelp">इस एप्लिकेशन में कई विशेषताएँ और अनुकूलन सम्मिलित हैं। इन विकल्पों को देखने के लिए सेटिंग आइकन पर टैप करें।</string>
<string name="medinetHelp">अपने सत्र ऑनलाइन सहेजने के लिए MediNET में साइन इन करें। यदि आप अपना डेटा खो देते हैं तो आप बाद में अपने सत्र आयात कर सकते हैं। यह सुविधा पूरी तरह से वैकल्पिक है, स्थानीय स्तर पर सत्रों को संग्रहीत करने से आपके अनुभव में बाधा नहीं आयेगी। यहाँ पर यह ट्यूटोरियल समाप्त होता है। मुझे उम्मीद है कि ध्यान सहायक आपके अभ्यास के लिए फायदेमंद होगा।</string>
<string name="cancel">रद्द करें</string>
<string name="set">स्थापित</string>
@ -62,9 +60,7 @@
<string name="version">संस्करण %s</string>
<string name="translate">अनुवाद करें</string>
<string name="donate">दान करें</string>
<string name="removeAds">विज्ञापन हटाएँ</string>
<string name="removeAdsHelp">ध्यान सहायक का पूरा संस्करण एक अलग ऐप है। अपने मौजूदा सत्रों को रखने के लिए, MediNET में साइन इन करें और सेटिंग विंडो में "अपलोड सत्र" टैप करें। पूर्ण संस्करण खोलें और MediNET में एक बार फिर साइन इन करें, फिर "आयात करें" टैप करें।</string>
<string name="howToMeditate">ध्यान कैसे करें</string>
<string name="howToMeditate">ध्यान कैसे लगाएँ</string>
<string name="share">शेयर</string>
<!--Short text displayed in sent application invitations [CHAR LIMIT=100] -->
<string name="invitationBlurb">ध्यान सहायक आपके अभ्यास के लिए एक पूरी तरह से विशेषीकृत साथी है।</string>
@ -112,4 +108,31 @@
<!-- MediNET -->
<!-- Widgets -->
<!-- Meta -->
<string name="whatIsMediNET">मेडिनेट अवलोकन</string>
<string name="resources">संसाधन</string>
<string name="sessionPaused">सत्र थम गया</string>
<string name="resume">पुनरारंभ</string>
<string name="sessionExportFailed">सत्र निर्यात करने में असमर्थ</string>
<string name="edit">संपादन</string>
<string name="sessionEdited">सत्र संपादित किया गया</string>
<string name="sessionAdded">सत्र जोड़ा गया</string>
<string name="editSession">सत्र संपादित करें</string>
<string name="postUpdatedSession">मेडिनेट पर अद्यतन सत्र पोस्ट करें\?</string>
<string name="sourceRepository">स्रोत कोड भंडार</string>
<string name="chooseDonationMethod">कृपया चुनें कि आप कैसे दान करना चाहते हैं।
\n
\nलाइबेरापे को कर्ताओं द्वारा पसंद किया जाता है और यह अधिक देशों और मुद्राओं का समर्थन करता है।</string>
<string name="tapToLearnMore">अधिक जानने के लिए कहीं भी टैप करें</string>
<string name="replayTutorial">शिक्षण पुनः चलाएँ</string>
<string name="pattern">प्रतिरूप</string>
<string name="configureWidget">विजेट का विन्यास करें</string>
<string name="setVibrationTip">वाइब्रेटर को चालू या निष्क्रिय करने के समय को मिलीसेकंड की संख्या में अल्पविराम द्वारा अलग करते हुए अंकित करें।</string>
<string name="editTimerHelp">आपका सत्र एक विशिष्ट अवधि का हो सकता है, दिन के एक विशिष्ट समय तक का हो सकता है, या किसी भी समय के अनुरूप नहीं हो सकता है ।
\n
\nप्रीसेट का उपयोग सामान्य विन्यासों का संग्रहण करने के लिए किया जा सकता है। वर्तमान सत्र अवधि को स्मरण रखने के लिए एक प्रीसेट को दबाकर रखें। ध्वनियों और अन्य सेटिंग्स को प्रीसेट सेटिंग में सक्षम करके प्रीसेट द्वारा भी स्मरित किया जा सकता है।
\n
\n\"ठीक\" टैप करने के बाद, प्रचलन में रहने के लिए रद्द करें या पुष्टि करें।</string>
<string name="permissionRequired">यह अनुमति आवश्यक है।</string>
<string name="disableBatteryOptimizations">ध्यान सहायक पृष्ठभूमि में चलना चाहिए</string>
<string name="warning">चेतावनी</string>
</resources>

View File

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="yes">Igen</string>
<string name="no">Nem</string>
<string name="openWith">Megnyitás ezzel</string>
<string name="delete">Törlés</string>
<string name="community">Közösség</string>
<string name="forum">Fórum</string>
<string name="rate">Értékelés</string>
<string name="page">Oldal</string>
<string name="back">Vissza</string>
<string name="forward">Előre</string>
<string name="account">Fiók</string>
<string name="groups">Csoportok</string>
<string name="announcement">Bejelentés</string>
<string name="installFileManager">Kérem telepítsen egy fájlkezelőt</string>
<string name="permissionRequest">Engedély kérése</string>
<string name="permissionRequired">Ez az engedély szükséges.</string>
<string name="deny">Elutasítás</string>
<string name="tryAgain">Újra</string>
<string name="cancel">Mégse</string>
<string name="set">Beállítás</string>
<string name="meditate">Meditálás</string>
<string name="tapToSkip">Átugrás</string>
<string name="pause">Szünet</string>
<string name="resume">Folytatás</string>
<string name="end">Befejez</string>
<string name="pauseOrEnd">Szünet vagy befejezés</string>
<string name="resumeOrEnd">Folytatás vagy befejezés</string>
</resources>

View File

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="appName">Assistente Meditazione Gratis</string>
<string name="appNameShort">Assistente Meditazione</string>
<string name="about">Informazioni</string>
<string name="yes"></string>
@ -21,12 +20,11 @@
<string name="installFileManager">Installa un file manager, per favore</string>
<!-- Permissions -->
<string name="permissionRequest">Richiesta di permesso</string>
<string name="permissionRequestReadExternal">Questo permesso è necessario per scegliere il file di un suono personalizzato sul dispositivo</string>
<string name="deny">Vieta</string>
<string name="tryAgain">Prova di nuovo</string>
<!-- Main Activity -->
<string name="timer">Timer</string>
<string name="timerHelp">Il timer è impostato a 15 minuti. Puoi cambiare la durata, terminare a una specifica ora del giorno o disattivare completamente la suoneria. Tocca il timer per vedere le opzioni.</string>
<string name="timerHelp">Benvenuti in una breve presentazione. Questo è il timer di sessione. Toccalo ora per modificare la modalità e la durata del timer.</string>
<string name="cancel">Annulla</string>
<string name="set">Imposta</string>
<string name="confirm">Conferma</string>
@ -36,13 +34,13 @@
<string name="end">Termina</string>
<string name="pauseOrEnd">Sospendi o termina</string>
<string name="resumeOrEnd">Riprendi o termina</string>
<string name="mediNETConnecting">Connettendo...</string>
<string name="mediNETConnecting">Connettendo</string>
<string name="mediNETConnected">Connesso a MediNET</string>
<string name="sessionInProgress">Sessione in corso</string>
<string name="progress">Progresso</string>
<string name="setPreset">Imposta predefinito</string>
<string name="setPresetHint">Tieni premuto per impostare predefinito</string>
<string name="setPresetHintBlank">Inserisci una durata (o un\'ora di fine) per impostare predefinito</string>
<string name="setPreset">Imposta preset</string>
<string name="setPresetHint">Tieni premuto per impostare preset</string>
<string name="setPresetHintBlank">Inserisci una durata (o un\'ora di fine) per impostare il preset</string>
<string name="setTimerDurationHint">Inserisci una durata valida (es. 0:22)</string>
<string name="setTimerEndAtHint">Inserisci un orario valido (es. 4:20)</string>
<string name="invalidEndAt">Orario non valido per terminare la sessione</string>
@ -56,7 +54,6 @@
<string name="version">Versione %s</string>
<string name="translate">Traduci</string>
<string name="donate">Dona</string>
<string name="removeAds">Rimuovi pubblicità</string>
<string name="howToMeditate">Come meditare</string>
<string name="share">Condividi</string>
<!--Short text displayed in sent application invitations [CHAR LIMIT=100] -->
@ -72,7 +69,7 @@
<string name="sessioncomplete">Sessione completata</string>
<string name="sessionMessagePlaceholder">Messaggio</string>
<string name="askDiscardText">Cancella sessione?</string>
<string name="sessionPosting">Pubblicando la sessione...</string>
<string name="sessionPosting">Pubblicando la sessione</string>
<string name="sessionPosted">Sessione pubblicata su MediNET</string>
<string name="sessionAlreadyPosted">Sessione già pubblicata</string>
<string name="sessionNotPosted">Impossibile pubblicare la sessione</string>
@ -82,8 +79,8 @@
<!-- Sign In -->
<string name="browser">Browser</string>
<string name="useBrowser">Usa come browser:</string>
<string name="signInWith">Entra con...</string>
<string name="signInWithProvider">Entra con %s…</string>
<string name="signInWith">Accedi con…</string>
<string name="signInWithProvider">Accedi con %s…</string>
<string name="signInWithOpenID">OpenID - Facebook, Twitter, ecc.</string>
<string name="signInGoogleError">Impossibile autenticarsi con il gestore account. Prova ad usare OpenID se l\'errore si ripresenta.</string>
<!-- Progress -->
@ -101,8 +98,7 @@
<string name="add">Aggiungi</string>
<string name="exportSessions">Esporta sessione</string>
<string name="sessionExportFailed">Impossibile esportare le sessione</string>
<string name="showExportedSessions">Sessioni esportate. Vuoi visitare la cartella con i file esportati?</string>
<string name="sessionStartedAt">Iniziata a %s</string>
<string name="sessionStartedAt">Iniziata alle %s</string>
<string name="started">Iniziata</string>
<string name="completed">Completata</string>
<string name="setDate">Imposta data</string>
@ -118,7 +114,6 @@
<string name="reminderText">Hai un momento per meditare?</string>
<!-- Settings -->
<string name="meditation">Meditazione</string>
<string name="pref_vibrate">Vibra</string>
<string name="pref_sound_reminder">Riproduci suono</string>
<string name="settings">Impostazioni</string>
<string name="disabled">Disattivato</string>
@ -140,14 +135,12 @@
<string name="pref_rememberme">Ricordami</string>
<string name="pref_sessionvolume">Volume</string>
<string name="pref_screencontrol">Schermo</string>
<string name="pref_sendusage">Segnala statistiche d\'utilizzo</string>
<string name="pref_sendusage_summary">Le segnalazioni anonime avvengono attraverso Google Analytics. Ha effetto dopo un riavvio</string>
<string name="pref_showstreak">Mostra serie di meditazioni</string>
<string name="pref_showstreak_summary">Numero di giorni consecutivi nei quali è stata registrata almeno una sessione</string>
<string name="selectSound">Scegli suono</string>
<string name="pref_meditation_sound_start">Suono iniziale</string>
<string name="pref_remembermessage">Ricorda ultimo messaggio</string>
<string name="pref_remembermessage_summary">Rispristina ultimo messaggio pubblicato</string>
<string name="pref_remembermessage_summary">Rispristina il messaggio precedente</string>
<string name="pref_theme">Tema Holo</string>
<string name="pref_theme_light">Chiaro</string>
<string name="pref_theme_lightdark">Chiaro con action bar scura</string>
@ -157,11 +150,11 @@
<string name="pref_notification_summary">Mostra durante la meditazione quando non si è sulla schermata principale</string>
<string name="pref_askdismiss">Chiedi prima di annullare</string>
<string name="pref_askdismiss_summary">Conferma prima di annullare una sessione</string>
<string name="pref_progresstab">Menu dei progressi</string>
<string name="pref_progresstab">Menu predefinito</string>
<string name="importsessions">Importa sessioni</string>
<string name="importsessions_summary">Scarica sessioni online</string>
<string name="miscellaneous">Varie</string>
<string name="pref_text_size">Dimensioni del testo del timer</string>
<string name="pref_text_size">Dimensioni del timer</string>
<string name="tiny">Minuscolo</string>
<string name="small">Piccolo</string>
<string name="normal">Normale</string>
@ -169,7 +162,6 @@
<string name="extralarge">Enorme</string>
<string name="pref_notificationcontrol">Suonerie e notifiche</string>
<string name="pref_notificationcontrol_vibrate">Imposta su vibrazione</string>
<string name="pref_notificationcontrol_silent">Imposta su silenzioso</string>
<string name="pref_daily_reminder">Promemoria giornaliero</string>
<!-- MediNET -->
<string name="mediNET">MediNET</string>
@ -178,29 +170,20 @@
<string name="discard">Annulla</string>
<string name="save">Salva</string>
<string name="post">Pubblica</string>
<string name="importSessionsHint">Clicca "Importa sessioni" nelle impostazioni per ripristinare le sessioni mancanti</string>
<string name="importsessionstitle">Importare sessioni?</string>
<string name="importsessionsmessage">Le sessioni precedenti saranno importante\n\nQuesto messaggio non comparirà nuovamente\nPuoi
importare altre sessioni dalla schermata delle Impostazioni.</string>
<string name="wordimport">Importa</string>
<string name="sessionDeletedMediNET">Sessione cancellata su MediNET</string>
<string name="sessionNotFoundMediNET">Sessione non trovata su MediNET</string>
<plurals name="numtimes">
<item quantity="one">%s time</item>
<item quantity="other">%s times</item>
</plurals>
<plurals name="sessionsImported">
<item quantity="one">Importata %s sessione</item>
<item quantity="other">Importate %s sessioni</item>
<item quantity="one">%s volta</item>
<item quantity="other">%s volte</item>
</plurals>
<plurals name="sessionsUploaded">
<item quantity="one">Uploaded %s session</item>
<item quantity="other">Uploaded %s sessions</item>
<item quantity="one">scaricata %s sessione</item>
<item quantity="other">scaricate %s sessioni</item>
</plurals>
<string name="sessionsNotImported">Dati locali aggiornati</string>
<plurals name="daysOfMeditationMinimal">
<item quantity="one">%d day</item>
<item quantity="other">%d days</item>
<item quantity="one">%d giorno</item>
<item quantity="other">%d giorni</item>
</plurals>
<plurals name="daysOfMeditation">
<item quantity="one">%d giorno di meditazione</item>
@ -219,8 +202,144 @@ importare altre sessioni dalla schermata delle Impostazioni.</string>
<string name="rateMeditationAssistantText">Se hai trovato questa applicazione utile per le tue sessioni di meditazione,
ti dispiacerebbe aggiungere una valutazione?\n\nQuesto messaggio non apparirà nuovamente.</string>
<!-- Widgets -->
<string name="widget1x1" tools:ignore="UnusedResources">Assistente Meditazione 1x1</string>
<string name="widget2x1" tools:ignore="UnusedResources">Assistente Meditazione 2x1</string>
<string name="widget3x1" tools:ignore="UnusedResources">Assistente Meditazione 3x1</string>
<!-- Meta -->
<string name="warning">Attenzione</string>
<string name="permissionRequired">È necessario il permesso.</string>
<string name="disableBatteryOptimizations">L\'Assistente meditazione deve essere eseguito in sottofondo</string>
<string name="permissionRequestNotificationControl">Si prega di concedere l\'accesso alla schermata successiva per controllare «Non disturbare».</string>
<string name="sessionPaused">Sessione in pausa</string>
<string name="widgetstreak3x1" tools:ignore="UnusedResources">Record 3x1</string>
<string name="widgetstreak2x1" tools:ignore="UnusedResources">Record 2x1</string>
<string name="widgetstreak1x1" tools:ignore="UnusedResources">Record 1x1</string>
<string name="pref_meditationstreakbuffer">Ripristino record alle</string>
<string name="pref_softfinish_summary">Il timer rimane attivo</string>
<string name="pref_sound_reminder_summary">Riproduce il suono di notifica predefinito</string>
<string name="pref_vibrate_summary">Avviene allinizio, intervalli, e fine della meditazione</string>
<string name="longestStreak">Record più lungo</string>
<string name="streakdifferencewarning">Il tuo streak meditazioni attuale non sembra corretto in base ai dati sessioni attuali. Vuoi usare lo streak meditazione aggiornato\?
\n
\nrecord attuale: %1$d
\nrecord aggiornato: %2$d</string>
<string name="setPresetTip">Scegli quali opzioni ripristinare toccando licona ingranaggio (Impostazioni), Poi tocca su Preset.</string>
<string name="settingsHelp">Questa applicazione include molte funzionilità e opzioni personalizzate. Tocca licona Impostazioni per vedere queste opzioni.</string>
<string name="appStoreListingFull">- Modalità automatica del dispositivo mentre stai meditando
\n- Possibilità di mettere in pausa le sessioni.
\n- Personalizzazione di suoni dinizio/intervallo/fine, durata, temi e comportamento dispositivo, ed altro
\n- Riepilogo progressi mensili.
\n- Opzione di pubblicare le sessioni su MediNet, e visitare i suoi forum.
\n(Condividere i progressi delle giornate di meditazione stimola a compiere sessioni giornaliere, anche per cinque o dieci minuti.)
\n
\nAssistente Meditazione è un copylefted libre software.
\nPer favore invia i tuoi problemi, idee e soluzioni : https://gitlab.com/tslocum/meditationassistant/issues
\nMolte funzioni hanno avuto origine da idee degli utenti.
\n
\nTraduci Meditation Assistant: https://www.getlocalization.com/meditationassistant/
\n
\nDa Rocket Nine Laboratories: https://rocketnine.space</string>
<string name="widgetpreset2x1" tools:ignore="UnusedResources">Preset 2x1</string>
<string name="widgetpreset1x1" tools:ignore="UnusedResources">Preset 1x1</string>
<string name="medinetHelp">Accedi a MediNET per salvare le tue sessioni online. Puoi importare le tue sessioni più tardi se perdi i tuoi dati. questa funzione è interamente facoltativa, salvare le tue sessioni localmente non nuocerà alla tua esperienza.
\n
\nQuesto conclude il tutorial. Spero che Assistente Meditazione ti sia di aiuto nella tua pratica.</string>
<string name="appStoreListingShort">Timer e registratore per sessioni di meditazioni ricco di funzioni</string>
<string name="widgetpreset3x1" tools:ignore="UnusedResources">Preset 3x1</string>
<string name="translateMeditationAssistantText">Sei interessato a contribuire alla traduzione di Assistente Meditazione\?</string>
<string name="sessionsUpToDate">I dati locali sono aggiornati</string>
<plurals name="sessionsDownloaded">
<item quantity="one">Scaricata %s sessione</item>
<item quantity="other">Scaricate %s sessioni</item>
</plurals>
<string name="downloadsessionsmessage">Le sessioni precedenti saranno scaricate.
\n
\nQuesto messaggio non apparirà nuovamente.
\nPuoi scaricare le sessioni più tardi dalla finestra Impostazioni.</string>
<string name="downloadsessionstitle">Scarica sessioni\?</string>
<string name="downloadSessionsHint">Clicca su Scarica sessioni in Impostazioni per recuperare le sessioni mancanti.</string>
<string name="download">Scarica</string>
<string name="uploadingSessions">Caricamento sessioni…</string>
<string name="downloadingSessions">Scaricamento sessioni…</string>
<string name="pref_daily_reminder_text">Testo di incoraggiamento</string>
<string name="pref_daily_reminder_time">Orario</string>
<string name="pref_daily_reminder_summary">Visualizza una notifica quando nessuna sessione è stata registrata oggi</string>
<string name="pref_daily_reminder_title">Ricordami</string>
<string name="pref_notificationcontrol_alarms">Solo sveglie</string>
<string name="pref_notificationcontrol_priority">Solo priorità</string>
<string name="restartApp">Riavvia lapplicazione per applicare le nuove impostazioni</string>
<string name="timerPosition">Posizione timer</string>
<string name="center">Al centro</string>
<string name="top">In alto</string>
<string name="uploadsessions_summary">Carica sessioni locali</string>
<string name="uploadsessions">Carica sessioni</string>
<string name="local">Locale</string>
<string name="utc">UTC</string>
<string name="importsessions_utc_or_local">Questa esportazione ha date e orari locali o UTC (Tempo Coordinato Universale)\?
\n
\nA partire dalla versione 1.5.6 le esportazioni salvate hanno date e orari UTC.</string>
<string name="importsessions_complete">Trovate %1$d esistenti e %2$d nuove.</string>
<string name="importsessions_in_progress">Importazione sessioni…</string>
<string name="downloadsessions_summary">Scarica sessioni remote</string>
<string name="downloadsessions">Scarica sessioni</string>
<string name="exportsessions_summary">Esporta file CSV</string>
<string name="exportsessions">Esporta sessioni</string>
<string name="pref_mainbuttons">Nascondi pulsanti</string>
<string name="pref_usetimepicker_summary">Usa i cursori ore e minuti quando cambi la durata</string>
<string name="pref_usetimepicker">Interfaccia durata alternativa</string>
<string name="pref_widgetcolor">Colore widget</string>
<string name="pref_meditation_sound_finish">Suono completamento</string>
<string name="pref_meditation_sound_interval">Suono intervallo</string>
<string name="pref_sessionvolume_summary">Il volume precedente sarà ripristinato una volta terminata la sessione.</string>
<string name="pref_autosave">Salvataggio automatico</string>
<string name="pref_interval_count">Numero intervalli</string>
<string name="pref_interval">Durata intervallo</string>
<string name="none">Nessuno</string>
<string name="sourceRepository">Repository codice sorgente</string>
<string name="custom">Personalizzata</string>
<string name="labelLong">Lunga</string>
<string name="labelMedium">Media</string>
<string name="labelShort">Breve</string>
<string name="pref_softfinish">Sessione senza limiti</string>
<string name="pref_vibrate_reminder_summary">Il promemoria giornaliero attiva la vibrazione del dispositivo</string>
<string name="pref_meditation_vibrate_finish">Vibrazione completamento</string>
<string name="pref_meditation_vibrate_interval">Vibrazione intervallo</string>
<string name="pref_meditation_vibrate_start">Vibrazione inizio</string>
<string name="vibrate">Vibrazione</string>
<string name="longestDuration">Durata più lunga</string>
<string name="editSessionMeditating">Non è possibile modificare una sessione mentre stai meditando</string>
<string name="invalidLength">Lunghezza non valida</string>
<string name="length">Lunghezza</string>
<string name="edit">Modifica</string>
<string name="sessionEdited">Sessione modificata</string>
<string name="sessionAdded">Sessione aggiunta</string>
<string name="editSession">Modifica sessione</string>
<string name="postUpdatedSession">Vuoi postare la sessione aggiornata su MediNET\?</string>
<string name="invitationBlurb">Assistente Meditazione offre molte funzionalità per accompagnarti nella tua pratica.</string>
<string name="chooseDonationMethod">Prego scegli come vuoi compiere la donazione.
\n
\nLiberapay è lopzione preferita dallo sviluppatore e supporta più paesi e valute.</string>
<string name="tapToLearnMore">Tocca un punto qualsiasi per saperne di più</string>
<string name="replayTutorial">Riavvia tutorial</string>
<string name="whatIsMediNETHelp">MediNET è una comunità e archivio online di sessioni di meditazione.
\n
\nPuoi scegliere di salvare le tue sessioni su MediNET per prevenire la perdita di dati e\\o per condividere i tuoi progressi con altri online.
\n
\n Puoi anche scegliere di salvare i tuoi dati sessioni esclusivamente sul tuo dispositivo.</string>
<string name="whatIsMediNET">Riepilogo MediNET</string>
<string name="resources">Risorse</string>
<string name="pattern">Sequenza</string>
<string name="label">Etichetta</string>
<string name="configureWidget">Configura Widget</string>
<string name="setVibrationTip">Inserisci il numero di millisecondi dopo cui accendere o spegnere la vibrazione, separato da virgole.</string>
<string name="editTimerHelp">La tua sessione può avere una durata determinata, durare fino a un determinato orario, o essere senza limiti di tempo.
\n
\nlLe impostazioni predefine (Preset) possono essere usate per salvare le configurazioni più usate. tocca e tieni premuto su un preset per ricordare la durata della sessione attuale. Anche i suoni e altre impostazioni possono essere salvati attivandoli nelle Impostazioni predefinite.
\n
\nDopo aver premuto OK, premi Cancella o Conferma per continuare.</string>
<string name="pausedNotification">Sessione in pausa, tieni premuto per terminare</string>
<string name="resume">Riprendi</string>
<string name="notification">Notifica</string>
<string name="ringtone">Suoneria</string>
<string name="alarm">Allarme</string>
<string name="sessionExportWasSuccessful">Sessioni esportate.</string>
<string name="deactivate">DIsattivare</string>
<string name="interval">Intervallo</string>
</resources>

View File

@ -0,0 +1 @@
values-he

View File

@ -1,278 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="appName">Meditation Assistant Free</string>
<string name="appNameShort">Meditation Assistant</string>
<string name="about">על אודות</string>
<string name="yes">כן</string>
<string name="no">לא</string>
<string name="openWith">פתח באמצעות</string>
<string name="delete">מחיקה</string>
<string name="sessions">פעילויות</string>
<string name="community">קהילה</string>
<string name="forum">פורום</string>
<string name="rate">דירוג</string>
<string name="refresh">רענון</string>
<string name="page">עמוד</string>
<string name="back">חזרה</string>
<string name="forward">קדימה</string>
<string name="account">חשבון</string>
<string name="groups">קבוצות</string>
<string name="announcement">הכרזה</string>
<!-- Permissions -->
<string name="permissionRequest">בקשת הרשאה</string>
<string name="permissionRequestReadExternal">הרשאה זו נדרשת על מנת לבחור קובץ קול מותאם אישית ממכשיר זה</string>
<string name="tryAgain">נסה שנית</string>
<!-- Main Activity -->
<string name="cancel">ביטול</string>
<string name="set">הגדרה</string>
<string name="confirm">אישור</string>
<string name="meditate">לעשות מדיטציה</string>
<string name="tapToSkip">דילוג</string>
<string name="mediNETConnecting">בהתחברות…</string>
<string name="mediNETConnected">התחברת ל־MediNET</string>
<string name="sessionInProgress">מתבצעת פעילות</string>
<string name="progress">התקדמות</string>
<string name="setPreset">הגדרת ערכה</string>
<string name="setPresetHint">יש להחזיק כדי להגדיר ערכה</string>
<!-- About -->
<string name="tapToSendEmail">יש לגעת בכל מקום שהוא כדי לשלוח משוב</string>
<string name="sendEmail">שליחת דוא״ל</string>
<string name="version">גרסה %s</string>
<string name="translate">תרגום</string>
<string name="share">שיתוף</string>
<!--Short text displayed in sent application invitations [CHAR LIMIT=100] -->
<!-- Sessions -->
<string name="session">פעילות</string>
<!-- Session complete -->
<string name="sessionMessagePlaceholder">הודעה</string>
<string name="askDiscardText">האם להתעלם מהפעילות?</string>
<!-- Sign In -->
<!-- Progress -->
<string name="calendar">לוח שנה</string>
<string name="dayMondayShort">שני</string>
<string name="dayTuesdayShort">שלישי</string>
<string name="dayWednesdayShort">רביעי</string>
<string name="dayThursdayShort">חמישי</string>
<string name="dayFridayShort">שישי</string>
<string name="daySaturdayShort">שבת</string>
<string name="daySundayShort">ראשון</string>
<!-- Settings -->
<string name="pref_vibrate">רטט</string>
<string name="settings">הגדרות</string>
<string name="disabled">מנוטרל</string>
<string name="noSpecialBehavior">אין התנהגות מיוחדת</string>
<string name="noSound">ללא שמע</string>
<string name="keepScreenOn">להשאיר את המסך דולק</string>
<string name="keepScreenOnAndDim">להשאיר את המסך דולק אך מעומעם</string>
<string name="dimScreen">עמעום המסך</string>
<string name="turnScreenOff">כיבוי המסך</string>
<string name="pref_display_seconds">הצגת השניות</string>
<string name="pref_display_seconds_summary">הצגה מתחת למתזמן הראשי</string>
<string name="pref_full_screen">מסך מלא</string>
<string name="pref_full_screen_summary">שורת המצב תוסתר במצב מסך מלא</string>
<string name="pref_delay">השהיה</string>
<string name="pref_autosignin_summary">התחברות ל־MediNET כאשר התכנית פתוחה</string>
<string name="pref_autosignin">התחברות אוטומטית</string>
<string name="pref_text_size">גודל הטקסט במתזמן</string>
<string name="small">קטן</string>
<string name="normal">רגיל</string>
<string name="large">גדול</string>
<string name="extralarge">גדול במיוחד</string>
<!-- MediNET -->
<string name="discard">התעלמות</string>
<string name="save">שמירה</string>
<string name="importsessionstitle">האם לייבא פעילויות?</string>
<string name="wordimport">יבוא</string>
<plurals name="numtimes">
<item quantity="one">%s time</item>
<item quantity="other">%s times</item>
</plurals>
<plurals name="sessionsImported">
<item quantity="one">Imported %s session</item>
<item quantity="other">Imported %s sessions</item>
</plurals>
<plurals name="sessionsUploaded">
<item quantity="one">Uploaded %s session</item>
<item quantity="other">Uploaded %s sessions</item>
</plurals>
<string name="sessionsNotImported">הנתונים המקומיים עדכניים</string>
<plurals name="daysOfMeditationMinimal">
<item quantity="one">%d day</item>
<item quantity="other">%d days</item>
</plurals>
<plurals name="daysOfMeditation">
<item quantity="one">%d day of meditation</item>
<item quantity="other">%d days of meditation</item>
</plurals>
<plurals name="daysOfMeditationWithoutCount">
<item quantity="one">day of meditation</item>
<item quantity="other">days of meditation</item>
</plurals>
<string name="signOut">יציאה</string>
<string name="signOutOfMediNET">לצאת מ־MediNET</string>
<!-- Widgets -->
</resources>

View File

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="appName">瞑想アシスタント フリー</string>
<string name="appNameShort">瞑想アシスタント</string>
<string name="about">アプリについて</string>
<string name="yes">はい</string>
@ -22,7 +21,6 @@
<string name="installFileManager">ファイルマネージャーをインストールしてください</string>
<!-- Permissions -->
<string name="permissionRequest">アクセス許可リクエスト</string>
<string name="permissionRequestReadExternal">デバイス上のカスタムサウンドファイルを選択するために、このアクセス許可が必要です。</string>
<string name="permissionRequestNotificationControl">じゃましないように制御するため、次の画面でアクセス許可を付与してください。</string>
<string name="deny">拒否</string>
<string name="tryAgain">再試行</string>
@ -64,8 +62,6 @@
<string name="version">バージョン %s</string>
<string name="translate">翻訳</string>
<string name="donate">寄付</string>
<string name="removeAds">広告を消す</string>
<string name="removeAdsHelp">フルバージョンの瞑想アシスタントは独立したアプリケーションです。\n\n既存のセッションを維持するには、MediNET にログインして、設定ウィンドウで "セッションをアップロード" をタップします。\n\nフルバージョンを開いて、もう一度 MediNET にサインインし、その後、"インポート" をタップします。</string>
<string name="howToMeditate">瞑想の方法</string>
<string name="share">共有</string>
<!--Short text displayed in sent application invitations [CHAR LIMIT=100] -->
@ -114,7 +110,7 @@
<string name="edit">編集</string>
<string name="exportSessions">セッションをエクスポート</string>
<string name="sessionExportFailed">セッションをエクスポートできません</string>
<string name="showExportedSessions">セッションをエクスポートしました。エクスポートしたファイルを含むフォルダーを表示しますか?</string>
<string name="sessionExportWasSuccessful">セッションをエクスポートしました。</string>
<string name="sessionStartedAt">開始 %s</string>
<string name="started">開始しました</string>
<string name="completed">完了しました</string>
@ -136,7 +132,6 @@
<string name="reminderText">時間はありますか?</string>
<!-- Settings -->
<string name="meditation">瞑想</string>
<string name="pref_vibrate">振動</string>
<string name="pref_vibrate_summary">瞑想の、始まり、インターバル、終わりに発生します</string>
<string name="pref_vibrate_reminder_summary">毎日のリマインダー、デバイスが振動します</string>
<string name="pref_sound_reminder">サウンドを再生</string>
@ -168,8 +163,6 @@
<string name="pref_sessionvolume">音量</string>
<string name="pref_sessionvolume_summary">セッションが完了すると、以前の音量が復元されます。</string>
<string name="pref_screencontrol">画面</string>
<string name="pref_sendusage">使用状況を報告</string>
<string name="pref_sendusage_summary">Google Analytics を経由して匿名で報告します。再起動時に有効になります</string>
<string name="pref_showstreak">瞑想の継続日数を表示</string>
<string name="pref_showstreak_summary">少なくとも一つ記録されたセッションで、連続した日数</string>
<string name="selectSound">サウンドを選択</string>
@ -208,7 +201,6 @@
<string name="pref_notificationcontrol_priority">優先度のみ</string>
<string name="pref_notificationcontrol_alarms">アラームのみ</string>
<string name="pref_notificationcontrol_vibrate">振動に設定</string>
<string name="pref_notificationcontrol_silent">サイレントに設定</string>
<string name="pref_daily_reminder">毎日のリマインダー</string>
<string name="pref_daily_reminder_title">覚えておく</string>
<string name="pref_daily_reminder_summary">今日セッションが記録されなかったとき、通知を表示します</string>
@ -223,9 +215,6 @@
<string name="discard">破棄</string>
<string name="save">保存</string>
<string name="post">投稿</string>
<string name="importSessionsHint">設定の "セッションをインポート" をクリックして、見つからないセッションを取得してください</string>
<string name="importsessionstitle">セッションをインポートしますか?</string>
<string name="importsessionsmessage">以前のセッションがインポートされます。\n\nこのダイアログは再度表示されません。\n設定ウィンドウから、後でセッションをインポートすることができます。</string>
<string name="wordimport">インポート</string>
<string name="sessionDeletedMediNET">MediNET のセッションを削除しました</string>
<string name="sessionNotFoundMediNET">MediNET にセッションが見つかりません</string>
@ -233,15 +222,10 @@
<item quantity="one">%s 回</item>
<item quantity="other">%s 回</item>
</plurals>
<plurals name="sessionsImported">
<item quantity="one">%s セッションをインポートしました</item>
<item quantity="other">%s セッションをインポートしました</item>
</plurals>
<plurals name="sessionsUploaded">
<item quantity="one">%s セッションをアップロードしました</item>
<item quantity="other">%s セッションをアップロードしました</item>
</plurals>
<string name="sessionsNotImported">ローカルデータは最新です</string>
<plurals name="daysOfMeditationMinimal">
<item quantity="one">%d 日</item>
<item quantity="other">%d 日</item>
@ -263,9 +247,6 @@
<string name="rateMeditationAssistantText">このアプリケーションが瞑想の訓練に役立つことが分かった場合、評価を追加していただけませんか?\n\nこのアプリの有料バージョンは、広告が含まれておらず、ホーム画面ウィジェットを提供しています。できれば購入をご検討ください。\n\nこのダイアログは再度表示されません。</string>
<string name="translateMeditationAssistantText">他の言語に翻訳することによって、瞑想アシスタントがより広く利用者に届くように手伝っていただけませんか?\n\nオンラインインターフェイスを利用して、簡単に翻訳を行うことができます。後で、アプリについてのウインドウから翻訳をクリックすることで、翻訳Webページを訪問することができます。\n\nこのダイアログは再度表示されません。</string>
<!-- Widgets -->
<string name="widget1x1" tools:ignore="UnusedResources">瞑想アシスタント 1x1</string>
<string name="widget2x1" tools:ignore="UnusedResources">瞑想アシスタント 2x1</string>
<string name="widget3x1" tools:ignore="UnusedResources">瞑想アシスタント 3x1</string>
<!-- Meta -->
<string name="appStoreListingShort">瞑想セッションタイマーとレコーダーの機能パック</string>
<string name="appStoreListingFull">このアプリケーションは、開始/終了/終了音やデバイスの動作など、さまざまなカスタマイズ機能を備えていて、時間指定(継続時間、または特定の時刻に終了)セッションと時間指定のないセッションの両方を支援します。また、毎月の状況の概要を提供します。

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View File

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="appName">Meditation Assistant Free</string>
<string name="appNameShort">Meditation Assistant</string>
<string name="about">Mengenai</string>
<string name="yes">Ya</string>
@ -91,7 +90,6 @@
<string name="reminderText">Ada masa untuk bertafakur?</string>
<!-- Settings -->
<string name="meditation">Pertakafuran</string>
<string name="pref_vibrate">Getar</string>
<string name="settings">Tetapan</string>
<string name="disabled">Dinyahupayakan</string>
<string name="noSpecialBehavior">Tidak ada perlakuan khas</string>
@ -108,8 +106,6 @@
<string name="pref_rememberme_summary">Kekalkan dalam keadaan log masuk setelah ditutup</string>
<string name="pref_rememberme">Ingatkan saya</string>
<string name="pref_screencontrol">Skrin</string>
<string name="pref_sendusage">Laporkan statistik penggunaan</string>
<string name="pref_sendusage_summary">Laporan tanpa nama dengan Google Analytics. Akan berkesan setelah dimulakan semula</string>
<string name="pref_showstreak">Paparkan jumlah kali bertakafur secara berturut-turut</string>
<string name="pref_showstreak_summary">Jumlah hari sekurang-kurangnya satu sesi telah direkodkan secara berturut-turut</string>
<string name="selectSound">Pilih bunyi</string>
@ -135,7 +131,6 @@
<string name="extralarge">Sangat besar</string>
<string name="pref_notificationcontrol">Nada dering dan pemberitahuan</string>
<string name="pref_notificationcontrol_vibrate">Tetapkan mod getar</string>
<string name="pref_notificationcontrol_silent">Tetapkan mod bisu</string>
<string name="pref_daily_reminder">Peringatan harian</string>
<!-- MediNET -->
<string name="mediNET">MediNET</string>
@ -144,18 +139,9 @@
<string name="discard">Buang</string>
<string name="save">Simpan</string>
<string name="post">Pos</string>
<string name="importSessionsHint">Klik "Import sesi" dalam tetapan untuk mendapat kembali sesi yang hilang</string>
<string name="importsessionstitle">Import sesi?</string>
<string name="importsessionsmessage">Sesi sebelumnya akan diimport.\n\nDialog ini tidak akan muncul lagi.\nAnda
boleh mengimport sesi selepas ini dari tetingkap Tetapan.</string>
<string name="wordimport">Import</string>
<string name="sessionDeletedMediNET">Sesi dihapuskan pada MediNET</string>
<string name="sessionNotFoundMediNET">Sesi tidak dapat dijumpai pada MediNET</string>
<plurals name="sessionsImported">
<item quantity="one">%s sesi diimport</item>
<item quantity="other">%s sesi diimport</item>
</plurals>
<string name="sessionsNotImported">Data tempatan dalam keadaan terkini</string>
<plurals name="daysOfMeditation">
<item quantity="one">%d hari bertafakur</item>
<item quantity="other">%d hari bertafakur</item>
@ -172,7 +158,4 @@ boleh mengimport sesi selepas ini dari tetingkap Tetapan.</string>
<string name="rateMeditationAssistant">Kadarkan Meditation Assistant</string>
<string name="rateMeditationAssistantText">Jika anda mendapati bahawa aplikasi ini mendatangkan faedah kepada amalan bertakafur anda, sudikah anda memberikan pengkadaran?\n\nVersi berbayar aplikasi ini tidak mengandungi iklan dan mempunyai ciri-ciri widget skrin rumah.\n\nDialog ini tidak akan muncul lagi.</string>
<!-- Widgets -->
<string name="widget1x1" tools:ignore="UnusedResources">Meditation Assistant 1x1</string>
<string name="widget2x1" tools:ignore="UnusedResources">Meditation Assistant 2x1</string>
<string name="widget3x1" tools:ignore="UnusedResources">Meditation Assistant 3x1</string>
</resources>

View File

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="appName">Meditasjonsassistenten Gratis</string>
<string name="appNameShort">Meditasjonsassistenten</string>
<string name="about">Om</string>
<string name="yes">Ja</string>
@ -20,14 +19,13 @@
<string name="announcement">Kunngjøring</string>
<!-- Permissions -->
<string name="permissionRequest">Forespørsel om tillatelse</string>
<string name="permissionRequestReadExternal">Tillatelsen trengs for å kunne velge andre lydfiler fra enheten.</string>
<string name="permissionRequestNotificationControl">Vennligst gi tillatelse i neste steg for å kunne kontrollere "Ikke forstyrr"</string>
<string name="permissionRequestNotificationControl">Innvilg tillatelse i neste steg for å kunne kontrollere \"Ikke forstyrr\".</string>
<string name="deny">Nekt</string>
<string name="tryAgain">Prøv igjen</string>
<!-- Main Activity -->
<string name="timer">Tidtaker</string>
<string name="timerHelp">Akkurat nå er tidtakeren stilt inn på 15 minutter. Du kan endre varigheten, sette den til å stoppe på et visst klokkeslett eller slå av alarmen helt. Trykk på tidtakeren nå for å se disse mulighetene.</string>
<string name="settingsHelp">Denne applikasjonen tilbyr mange funksjoner og tilpasningsmuligheter, blant annet å sette enheten i stillemodus automatisk og å gi deg daglig påminnelse om å meditere. Trykk på innstillingsikonet nå for å se disse mulighetene.</string>
<string name="timerHelp">Velkommen til en kort veiledning. Dette er økt-tidtakeren. Trykk på den nå for å endre modus og varighet.</string>
<string name="settingsHelp">Denne applikasjonen tilbyr mange funksjoner og tilpasningsmuligheter. Trykk på innstillingsikonet nå for å se disse mulighetene.</string>
<string name="medinetHelp">Logg på MediNET for å lagre øktene dine på nett. Hvis du gjør det kan du importere øktene dine igjen hvis de blir borte fra enheten din. Denne funksjonen er helt valgfri; å lagre øktene lokalt vil ikke gå ut over bruksopplevelsen.\n\nOg med det er denne introduksjonen over. Jeg håper at du får mye ut av Meditasjonsassistenten.</string>
<string name="cancel">Avbryt</string>
<string name="set">Sett</string>
@ -39,7 +37,7 @@
<string name="pauseOrEnd">Pause eller avslutt</string>
<string name="resumeOrEnd">Gjenoppta eller avslutt</string>
<string name="pausedNotification">Økt satt på pause, hold for å avslutte</string>
<string name="mediNETConnecting">Kobler til...</string>
<string name="mediNETConnecting">Kobler til</string>
<string name="mediNETConnected">Koble til MediNET</string>
<string name="sessionInProgress">Økt pågår</string>
<string name="progress">Fremgang</string>
@ -58,8 +56,8 @@
<string name="installFileManager">Installer en filbehandler</string>
<string name="disableBatteryOptimizations">Meditation Assistant må kjøre i bakgrunnen</string>
<string name="label">Etikett</string>
<string name="setTimerDurationHint">Skriv inn gyldig varighet (f.eks 0:22)</string>
<string name="setTimerEndAtHint">Skriv inn gyldig tid (f.eks 4:20)</string>
<string name="setTimerDurationHint">Skriv inn gyldig varighet (f.eks. 0:22)</string>
<string name="setTimerEndAtHint">Skriv inn gyldig tid (f.eks. 4:20)</string>
<string name="invalidEndAt">Ugyldig tid å sluttføre økt</string>
<string name="timed">Tidsavgrenset</string>
<string name="endAt">Sluttfør</string>
@ -71,12 +69,6 @@
<string name="version">Versjon %s</string>
<string name="translate">Oversett</string>
<string name="donate">Doner</string>
<string name="removeAds">Fjern reklame</string>
<string name="removeAdsHelp">Fullversjonen av Meditasjonsassistenten er et eget program.
\n
\nFor å beholde øktene dine, logg inn på MediNET og trykk \"Last opp økter\" i innstillingsvinduet.
\n
\nÅpne fullversjonen og logg inn på MediNET igjen, trykk så \"Importer\".</string>
<string name="howToMeditate">Hvordan meditere</string>
<string name="share">Del</string>
<string name="invitationBlurb">Meditasjonsassistenten er en fullverdig støttepart i dine meditasjon.</string>
@ -99,7 +91,7 @@
<string name="sessionSaved">Økt lagret</string>
<string name="sessionDeletedLocally">Økt slettet lokalt</string>
<string name="browser">Nettleser</string>
<string name="useBrowser">Bruk nettleser</string>
<string name="useBrowser">Bruk nettleser:</string>
<string name="signInWith">Logg inn med…</string>
<string name="signInWithProvider">Logg inn med %s…</string>
<string name="signInWithOpenID">OpenID - Facebook, Twitter, osv.</string>
@ -122,7 +114,7 @@
<string name="edit">Rediger</string>
<string name="exportSessions">Eksporter økter</string>
<string name="sessionExportFailed">Kunne ikke eksportere økter</string>
<string name="showExportedSessions">Økter eksportert. Ønsker du å utforske mappen inneholdende eksporten\?</string>
<string name="sessionExportWasSuccessful">Økter eksportert.</string>
<string name="sessionStartedAt">Startet klokken %s</string>
<string name="started">Startet</string>
<string name="completed">Fullført</string>
@ -142,7 +134,6 @@
<string name="longestDuration">Lengste varighet</string>
<string name="reminderText">Har du et øyeblikk\?</string>
<string name="meditation">Meditasjon</string>
<string name="pref_vibrate">Vibrer</string>
<string name="pref_vibrate_summary">Inntreffer på begynnelsen, i intervallene, og på slutten av meditasjon</string>
<string name="pref_vibrate_reminder_summary">Daglig påminnelse vil vibrere enheten</string>
<string name="pref_sound_reminder">Spill lyd</string>
@ -173,14 +164,12 @@
<string name="pref_sessionvolume">Lydstyrke</string>
<string name="pref_sessionvolume_summary">Tidligere lydstyrkenivå vil bli gjenopprettet når økten er over.</string>
<string name="pref_screencontrol">Skjerm</string>
<string name="pref_sendusage">Rapporter bruksstatistikk</string>
<string name="pref_sendusage_summary">Anonym innrapportering via Google Analytics. Trer i effekt ved omstart.</string>
<string name="selectSound">Velg lyd</string>
<string name="pref_meditation_sound_start">Startlyd</string>
<string name="pref_meditation_sound_interval">Intervall-lyd</string>
<string name="pref_meditation_sound_finish">Fullføringslyd</string>
<string name="pref_remembermessage">Husk siste melding</string>
<string name="pref_remembermessage_summary">Setter forvalg til siste postede melding</string>
<string name="pref_remembermessage_summary">Setter forvalg til siste melding</string>
<string name="pref_theme">Holografisk drakt</string>
<string name="pref_theme_light">Lys</string>
<string name="pref_theme_lightdark">Lys med mørkt handlingsfelt</string>
@ -193,13 +182,13 @@
<string name="pref_askdismiss">Spør før forkasting</string>
<string name="pref_askdismiss_summary">Bekreft før forkasting av økt</string>
<string name="pref_mainbuttons">Skjul knapper</string>
<string name="pref_progresstab">Forvalgt framdriftsfane</string>
<string name="pref_progresstab">Forvalgt fane</string>
<string name="importsessions">Importer økter</string>
<string name="importsessions_summary">Importer CSV-fil</string>
<string name="uploadsessions">Last opp økter</string>
<string name="uploadsessions_summary">Last opp lokale økter</string>
<string name="miscellaneous">Ymse</string>
<string name="pref_text_size">Tekststørrelse for tidtaker</string>
<string name="pref_text_size">Tidtaker-størrelse</string>
<string name="tiny">Knøtt</string>
<string name="small">Liten</string>
<string name="normal">Normal</string>
@ -210,7 +199,6 @@
<string name="pref_notificationcontrol_priority">Kun prioritet</string>
<string name="pref_notificationcontrol_alarms">Kun alarmer</string>
<string name="pref_notificationcontrol_vibrate">Sett til vibrering</string>
<string name="pref_notificationcontrol_silent">Sett til stille</string>
<string name="pref_daily_reminder">Daglig påminnelse</string>
<string name="pref_daily_reminder_title">Påminn meg</string>
<string name="pref_daily_reminder_summary">Viser en merknad når ingen økter ble tatt opp på en dag</string>
@ -222,23 +210,17 @@
<string name="unableToConnect">Kunne ikke koble til MediNET</string>
<string name="save">Lagre</string>
<string name="post">Post</string>
<string name="importsessionstitle">Importer økter\?</string>
<string name="wordimport">Importer</string>
<string name="sessionDeletedMediNET">Økt slettet på MediNET</string>
<string name="sessionNotFoundMediNET">Fant ikke økten på MediNET</string>
<plurals name="numtimes">
<item quantity="one">%d gang</item>
<item quantity="other">%d ganger</item>
</plurals>
<plurals name="sessionsImported">
<item quantity="one">Importerte en økt</item>
<item quantity="other">Importerte %s økter</item>
<item quantity="one">%s gang</item>
<item quantity="other">%s ganger</item>
</plurals>
<plurals name="sessionsUploaded">
<item quantity="one">Lastet opp en økt</item>
<item quantity="other">Lastet opp %s økter</item>
</plurals>
<string name="sessionsNotImported">Lokal data er oppdatert</string>
<plurals name="daysOfMeditationMinimal">
<item quantity="one">%d dag</item>
<item quantity="other">%d dager</item>
@ -257,9 +239,6 @@
<string name="signOutOfMediNET">Logg ut av MediNET</string>
<string name="signOutOfMediNETConfirmTitle">Logg ut av MediNET\?</string>
<string name="rateMeditationAssistant">Vurder Meditasjonsassistenten</string>
<string name="widget1x1" tools:ignore="UnusedResources">Meditasjonsassistent 1x1</string>
<string name="widget2x1" tools:ignore="UnusedResources">Meditasjonsassistent 2x1</string>
<string name="widget3x1" tools:ignore="UnusedResources">Meditasjonsassistent 3x1</string>
<string name="appStoreListingShort">Funksjons meditasjonsøkttidtaker og opptaker</string>
<string name="setPresetTip">Velg hvilke innstillinger som skal gjenopprettes ved å trykke tannhjulsikonet (Innstillinger), trykk så forhåndsinnstillinger.</string>
<string name="setPresetHintBlank">Skriv inn varighet (eller sluttid) for å sette forhåndsinnstilling</string>
@ -274,15 +253,10 @@
<string name="pref_notification_summary">Vis under meditasjon mens borte fra hovedvindu</string>
<string name="dismiss">Avfei</string>
<string name="discard">Forkast</string>
<string name="importSessionsHint">Klikk \"Importer økter\" i innstillingene for å hente manglende økter.</string>
<string name="importsessionsmessage">Tidligere økter vil bli importert.
<string name="rateMeditationAssistantText">Hvis du synes programmet er nyttig i din meditasjon, vil du legge til en vurdering\?
\n
\nDenne dialogen vil ikke vises igjen.
\nDu kan importere økter senere fra innstillingene.</string>
<string name="rateMeditationAssistantText">Denne ene gangen blir du spurt om å vurdere programmet :)
\nOvervei at den betalte versjonen har miniprogrammer, og ingen reklame.</string>
<string name="translateMeditationAssistantText">Denne ene gangen blir du spurt om å vurdere programmet :)
\nOvervei at den betalte versjonen har miniprogrammer, og ingen reklame.</string>
\nDette vil ikke bli spurt om igjen.</string>
<string name="translateMeditationAssistantText">Er du interessert i å hjelpe til med Meditasjonsassistenten\?</string>
<string name="appStoreListingFull">- Automatisk enhetsmodus under meditasjon.
\n- Pausbare økter.
\n- Justerbar start/intervall/slutt, lyder, drakter og enhetsoppførsel.
@ -291,8 +265,8 @@
\n(Deling av fremdrift av dager med meditasjon motiverer daglige økter, selv fem eller ti minutter.)
\n
\nMeditasjonsassistenten er gemenhetlig fri programvare.
\nSend inn din problemrapport, idé, eller fiks: https://gitlab.com/tslocum/meditationassistant/issues
\nFlere funksjoner i programmet ble introdusert som brukeridéer.
\nSend inn din problemrapport, idé, eller fiks: https://code.rocketnine.space/tslocum/meditationassistant/issues
\nFlere funksjoner i programmet ble introdusert som brukeridéer.
\n
\nOversett Meditasjonsassistenten: https://www.getlocalization.com/meditationassistant/
\n
@ -301,4 +275,77 @@
<string name="exportsessions_summary">Eksporter CSV-fil</string>
<string name="downloadsessions">Last ned økter</string>
<string name="downloadsessions_summary">Last ned økter annensteds fra</string>
<string name="resume">Gjenoppta</string>
<string name="sessionPaused">Økt satt på pause</string>
<string name="permissionRequired">Denne tilgangen er påkrevd.</string>
<string name="importsessions_in_progress">Importerer økter…</string>
<string name="importsessions_complete">Fant %1$d eksisterende, og %2$d ny.</string>
<string name="importsessions_utc_or_local">Har denne eksporten lokale tider og datoer, eller bruker den UTC\?
\n
\nEksporter lagret siden versjon 1.5.6 har dato og tid i UTC.</string>
<string name="utc">UTC</string>
<string name="local">Lokal</string>
<string name="downloadSessionsHint">Klikk \"Last ned økter\" i innstillingene for å hente manglende økter.</string>
<string name="downloadsessionstitle">Last ned økter\?</string>
<string name="downloadsessionsmessage">Tidligere økter vil bli lastet ned.
\n
\nDenne teksten vil ikke vises igjen.
\nDu kan laste ned økter senere fra innstillingene.</string>
<plurals name="sessionsDownloaded">
<item quantity="one">Lastet ned %s økt</item>
<item quantity="other">Lastet ned %s økter</item>
</plurals>
<string name="sessionsUpToDate">Lokal data er oppdatert</string>
<string name="chooseDonationMethod">Velg hvordan du ønsker å donere.
\n
\nLiberapay foretrekkes av utvikleren, og støtter flere land og valutaer.</string>
<string name="download">Last ned</string>
<string name="configureWidget">Sett opp miniprogram</string>
<string name="widgetpreset1x1" tools:ignore="UnusedResources">Forhåndsinnstilling 1x1</string>
<string name="widgetpreset2x1" tools:ignore="UnusedResources">Forhåndsinnstilling 2x1</string>
<string name="widgetpreset3x1" tools:ignore="UnusedResources">Forhåndsinnstilling 3x1</string>
<string name="widgetstreak1x1" tools:ignore="UnusedResources">Serie 1x1</string>
<string name="widgetstreak2x1" tools:ignore="UnusedResources">Serie 2x1</string>
<string name="widgetstreak3x1" tools:ignore="UnusedResources">Serie 3x1</string>
<string name="pref_autosave">Autolagring</string>
<string name="setVibrationTip">Skriv antall millisekunder å skru vibrasjon på eller av, kommainndelt.</string>
<string name="editTimerHelp">Økten din kan ha en gitt varighet, kan vare til et gitt tidspunkt på dagen, eller kan gå uten tidsavgrensing.
\n
\n
\nForhåndsinnstillinger kan brukes til å lagre vanlige oppsett. Trykk og hold for å huske nåværende øktvarighet. Lyd og andre innstillinger kan også huskes gjennom forhåndsinnstillinger ved å skru dem på i \"Forhåndsinnstillinger.
\n
\nEtter å ha trykket \"OK\", trykk \"Avbryt\" eller \"Bekreft\" for å fortsette.</string>
<string name="center">Midten</string>
<string name="top">Topp</string>
<string name="timerPosition">Tidsurposisjon</string>
<string name="custom">Egendefinert</string>
<string name="labelLong">Lang</string>
<string name="labelMedium">Middels</string>
<string name="labelShort">Kort</string>
<string name="pref_meditation_vibrate_finish">Fullfør vibrering</string>
<string name="pref_meditation_vibrate_interval">Vibreringsintervall</string>
<string name="pref_meditation_vibrate_start">Start vibrering</string>
<string name="vibrate">Vibrer</string>
<string name="resources">Ressurser</string>
<string name="pattern">Mønster</string>
<string name="whatIsMediNETHelp">MediNET er et nettbasert meditasjonsøktdepot og der-tilhørende gemenskap.
\n
\nDu kan velge å lagre dine økter i MediNet for å forhindre datatap, og/eller dele din framdrift med andre på nett.
\n
\nDu kan istedenfor velg å lagre øktdata kun på enheten.</string>
<string name="replayTutorial">Spill av veiledning igjen</string>
<string name="sourceRepository">Kildekodedepot</string>
<string name="whatIsMediNET">MediNET-oversikt</string>
<string name="notification">Merknad</string>
<string name="ringtone">Ringetone</string>
<string name="media">Media</string>
<string name="alarm">Alarm</string>
<string name="pref_audio_output">Lydutgang</string>
<string name="pref_meditation_sound_bell">Oppmerksomt nærværsbjellelyd</string>
<string name="mindfulnessBellActive">Oppmerksomt nærværsbjelle aktiv</string>
<string name="mindfulnessBell">Oppmerksomt nærværsbjelle</string>
<string name="interval">Intervall</string>
<string name="start">Start</string>
<string name="deactivate">Deaktiver</string>
<string name="pref_theme_black">Svart</string>
</resources>

View File

@ -1,7 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="appName">Meditatie Assistent (gratis)</string>
<string name="appNameShort">Meditatie Assistent</string>
<string name="about">Over Meditatie Assistent</string>
<string name="yes">Ja</string>
@ -9,7 +7,7 @@
<string name="openWith">Open met</string>
<string name="delete">Verwijderen</string>
<string name="sessions">Sessies</string>
<string name="community">Community</string>
<string name="community">Gemeenschap</string>
<string name="forum">Forum</string>
<string name="rate">Waardering</string>
<string name="refresh">Verversen</string>
@ -19,95 +17,47 @@
<string name="account">Account</string>
<string name="groups">Groepen</string>
<string name="announcement">Aankondiging</string>
<!-- Permissions -->
<string name="tryAgain">Probeer Opnieuw</string>
<!-- Main Activity -->
<string name="cancel">Annuleren</string>
<string name="set">Instellen</string>
<string name="confirm">Bevestigen</string>
<string name="meditate">Mediteren</string>
<string name="tapToSkip">Overslaan</string>
<string name="mediNETConnecting">Verbinden...</string>
<string name="mediNETConnecting">Verbinden…</string>
<string name="mediNETConnected">Verbonden met MediNET</string>
<string name="sessionInProgress">Sessie loopt</string>
<string name="progress">Voortgang</string>
<string name="setPreset">Instelling zetten</string>
<string name="setPreset">Voorkeursinstelling opslaan</string>
<!-- About -->
<string name="sendEmail">Verstuur email</string>
<string name="sendEmail">Verstuur e-mail</string>
<string name="version">Versie %s</string>
<string name="translate">Vertaal</string>
<string name="share">Delen</string>
<!--Short text displayed in sent application invitations [CHAR LIMIT=100] -->
<!-- Sessions -->
<string name="session">Sessie</string>
<string name="sessionDeleteEverywhere">Overal verwijderen</string>
<string name="sessionDeleteLocally">Lokaal verwijderen</string>
<string name="sessionDeleteMediNET">Verwijderen van MediNET</string>
<!-- Session complete -->
<string name="sessioncomplete">Sessie Kompleet</string>
<string name="sessioncomplete">Sessie Compleet</string>
<string name="sessionMessagePlaceholder">Bericht</string>
<string name="askDiscardText">Sessie negeren ?</string>
<string name="sessionPosting">Sessie opsturen...</string>
<string name="sessionPosting">Sessie opsturen</string>
<string name="sessionPosted">Sessie opgestuurd naar MediNET</string>
<string name="sessionAlreadyPosted">Sessie is al opgestuurd</string>
<string name="sessionNotPosted">Sessie opsturen mislukt</string>
<string name="sessionNotPostedMeditating">Sessie opsturen tijdens meditatie mislukt</string>
<string name="sessionSaved">Sessie opgeslagen</string>
<string name="sessionDeletedLocally">Sessie lokaal verwijderd</string>
<!-- Sign In -->
<string name="signInWith">Log in met....</string>
<string name="signInWithProvider">Log in met %s....</string>
<string name="signInWith">Log in met.…</string>
<string name="signInWithProvider">Log in met %s…</string>
<string name="signInWithOpenID">OpenID - Facebook, Twitter, etc.</string>
<!-- Progress -->
<string name="calendar">Kalender</string>
<string name="dayMondayShort">Ma</string>
<string name="dayTuesdayShort">Di</string>
<string name="dayWednesdayShort">Woe</string>
@ -115,172 +65,288 @@
<string name="dayFridayShort">Vrij</string>
<string name="daySaturdayShort">Zat</string>
<string name="daySundayShort">Zon</string>
<!-- Settings -->
<string name="pref_vibrate">Trillen</string>
<string name="settings">Instellingen</string>
<string name="disabled">Disabled</string>
<string name="disabled">Uitgezet</string>
<string name="noSpecialBehavior">Normaal</string>
<string name="noSound">Geen geluid</string>
<!-- MediNET -->
<plurals name="numtimes">
<item quantity="one">%s time</item>
<item quantity="other">%s times</item>
<item quantity="one">%s keer</item>
<item quantity="other">%s keer</item>
</plurals>
<plurals name="sessionsImported">
<item quantity="one">Imported %s session</item>
<item quantity="other">Imported %s sessions</item>
</plurals>
<plurals name="sessionsUploaded">
<item quantity="one">Uploaded %s session</item>
<item quantity="other">Uploaded %s sessions</item>
<item quantity="one">%s sessie verzonden</item>
<item quantity="other">%s sessies verzonden</item>
</plurals>
<plurals name="daysOfMeditationMinimal">
<item quantity="one">%d day</item>
<item quantity="other">%d days</item>
<item quantity="one">%d dag</item>
<item quantity="other">%d dagen</item>
</plurals>
<plurals name="daysOfMeditation">
<item quantity="one">%d day of meditation</item>
<item quantity="other">%d days of meditation</item>
<item quantity="one">%d meditatie dag</item>
<item quantity="other">%d meditatie dagen</item>
</plurals>
<plurals name="daysOfMeditationWithoutCount">
<item quantity="one">day of meditation</item>
<item quantity="other">days of meditation</item>
<item quantity="one">meditatie dag</item>
<item quantity="other">meditatie dagen</item>
</plurals>
<!-- Widgets -->
<!-- Meta -->
</resources>
<string name="warning">Waarschuwing</string>
<string name="downloadSessionsHint">Klik om Sessies downloaden in instellingen om de ontbrekende sessies op te halen.</string>
<string name="appStoreListingFull">- Automatische apparaat modus tijdens het mediteren.
\n- Pauzeerbare sessies.
\n- Instelbare start/interval/eind geluid en tijd, themas en apparaat gedrag, en meer.
\n- Overzicht van de maandelijkse voortgang.
\n- Optioneel versturen van sessies naar MediNET, en bezoek van MediNET forum.
\n(Het delen van de dagelijkse voortgang motiveert om dagelijks te mediteren, al is het maar voor vijf of tien minuten.)
\n
\nMeditation Assistant is copylefted libre software.
\nMeld uw probleem, idee of oplossing: https://gitlab.com/tslocum/meditationassistant/issues
\nDiverse functies zijn ontstaan uit ideeën van gebruikers.
\n
\nVertaal Meditation Assistant: https://www.getlocalization.com/meditationassistant/
\n
\nDoor Rocket Nine Laboratories: https://rocketnine.space</string>
<string name="appStoreListingShort">Rijke meditatie wekker en logboek</string>
<string name="widgetstreak3x1" tools:ignore="UnusedResources">Reeks 3x1</string>
<string name="widgetstreak2x1" tools:ignore="UnusedResources">Reeks 2x1</string>
<string name="widgetstreak1x1" tools:ignore="UnusedResources">Reeks 1x1</string>
<string name="widgetpreset3x1" tools:ignore="UnusedResources">Voorkeursinstelling 3x1</string>
<string name="widgetpreset2x1" tools:ignore="UnusedResources">Voorkeursinstelling 2x1</string>
<string name="widgetpreset1x1" tools:ignore="UnusedResources">Voorkeursinstelling 1x1</string>
<string name="translateMeditationAssistantText">Bent u geïnteresseerd in het vertalen van Meditation Assistant\?</string>
<string name="rateMeditationAssistantText">Als deze applicatie u heeft geholpen bij uw dagelijkse meditatie, zou u dan alstublieft een beoordeling willen geven\?
\n
\nDeze melding zal niet nog een keer getoond worden.</string>
<string name="rateMeditationAssistant">Beoordeel Meditation Assistant</string>
<string name="signOutOfMediNETConfirmTitle">Uitloggen op MediNET\?</string>
<string name="signOutOfMediNET">Log uit op MediNET</string>
<string name="signOut">Log uit</string>
<string name="signInToMediNET">Log in op MediNET</string>
<string name="meditateToday">Mediteer vandaag</string>
<string name="sessionsUpToDate">Lokale gegevens zijn up-to-date</string>
<plurals name="sessionsDownloaded">
<item quantity="one">%s sessie gedownload</item>
<item quantity="other">%s sessies gedownload</item>
</plurals>
<string name="sessionNotFoundMediNET">Sessie niet gevonden op MediNET</string>
<string name="sessionDeletedMediNET">Sessie verwijderd van MediNET</string>
<string name="wordimport">Import</string>
<string name="downloadsessionsmessage">Voorgaande sessies worden gedownload.
\n
\nDeze melding zal niet meer worden weergegeven.
\nU kunt later sessies downloaden via het instellingen scherm.</string>
<string name="downloadsessionstitle">Sessies downloaden\?</string>
<string name="download">Downloaden</string>
<string name="post">Versturen</string>
<string name="save">Opslaan</string>
<string name="discard">Weggooien</string>
<string name="dismiss">Afwijzen</string>
<string name="unableToConnect">Het is niet mogelijk te verbinden met MediNET</string>
<string name="mediNET">MediNET</string>
<string name="uploadingSessions">Sessies versturen…</string>
<string name="downloadingSessions">Sessies downloaden…</string>
<string name="pref_daily_reminder_text">Aanmoedigingstekst</string>
<string name="pref_daily_reminder_time">Tijd</string>
<string name="pref_daily_reminder_summary">Toon een melding als er vandaag nog geen sessies zijn vastgelegd</string>
<string name="pref_daily_reminder_title">Herinner mij</string>
<string name="pref_daily_reminder">Dagelijkse herinnering</string>
<string name="pref_notificationcontrol_vibrate">Vibreren</string>
<string name="pref_notificationcontrol_alarms">Alleen alarm</string>
<string name="pref_notificationcontrol_priority">Alleen prioriteitsgesprekken</string>
<string name="pref_notificationcontrol">Ringtone en meldingen</string>
<string name="restartApp">Herstart de applicatie om de nieuwe instellingen te activeren</string>
<string name="notification">Melding</string>
<string name="ringtone">Ringtone</string>
<string name="media">Media</string>
<string name="alarm">Alarm</string>
<string name="extralarge">Extra groot</string>
<string name="large">Groot</string>
<string name="normal">Normaal</string>
<string name="tiny">Minuscuul</string>
<string name="small">Klein</string>
<string name="pref_text_size">Klok grootte</string>
<string name="center">Midden</string>
<string name="top">Bovenkant</string>
<string name="timerPosition">Klok positie</string>
<string name="miscellaneous">Diversen</string>
<string name="uploadsessions">Sessies verzenden</string>
<string name="uploadsessions_summary">Lokale sessies verzenden</string>
<string name="local">Lokaal</string>
<string name="utc">UTC</string>
<string name="importsessions_utc_or_local">Zijn de datum en tijd in dit export bestand in lokale of UTC tijd\?
\n
\nExport bestanden die sinds versie 1.5.6 zijn gemaakt gebruiken UTC datum en tijd.</string>
<string name="importsessions_complete">Er zijn %1$d bestaande en %2$d nieuwe sessies gevonden.</string>
<string name="importsessions_in_progress">Sessies importeren…</string>
<string name="downloadsessions_summary">Online sessies downloaden</string>
<string name="downloadsessions">Sessies downloaden</string>
<string name="importsessions_summary">CSV bestand importeren</string>
<string name="importsessions">Sessies importeren</string>
<string name="exportsessions_summary">CSV bestand exporteren</string>
<string name="exportsessions">Sessies exporteren</string>
<string name="pref_progresstab">Standaard tabblad</string>
<string name="pref_mainbuttons">Knoppen verbergen</string>
<string name="pref_askdismiss_summary">Weggooien van een sessie bevestigen</string>
<string name="pref_askdismiss">Vragen voor weggooien</string>
<string name="pref_usetimepicker_summary">Gebruik de uur en minuten schuiven om de tijdsduur aan te passen</string>
<string name="pref_usetimepicker">Alternatieve tijdsduur weergave</string>
<string name="pref_notification_summary">Toon tijdens meditatie als het hoofdscherm niet in beeld is</string>
<string name="pref_notification">Melding</string>
<string name="pref_widgetcolor">Widget kleur</string>
<string name="buddhism">Boeddhisme</string>
<string name="pref_theme_dark">Donker</string>
<string name="pref_theme_lightdark">Licht met donkere actie balk</string>
<string name="pref_theme_light">Licht</string>
<string name="pref_theme">Holografisch thema</string>
<string name="pref_remembermessage_summary">Gebruik standaard het vorige bericht</string>
<string name="pref_remembermessage">Onthoud het laatste bericht</string>
<string name="pref_meditation_sound_bell">Mindfulness bel geluid</string>
<string name="pref_meditation_sound_finish">Einde geluid</string>
<string name="pref_meditation_sound_interval">Interval geluid</string>
<string name="pref_meditation_sound_start">Start geluid</string>
<string name="selectSound">Selecteer geluid</string>
<string name="pref_showstreak_summary">Aantal aaneengesloten dagen met ten minste één vastgelegde sessie</string>
<string name="pref_showstreak">Geef de meditatie reeks weer</string>
<string name="pref_screencontrol">Scherm</string>
<string name="pref_sessionvolume_summary">Het vorige volume zal worden hersteld als de sessie is beëindigd.</string>
<string name="pref_sessionvolume">Volume</string>
<string name="pref_rememberme">Vergeet me niet</string>
<string name="pref_rememberme_summary">Blijf ingelogd na afsluiten</string>
<string name="pref_autosave">Automatisch opslaan</string>
<string name="pref_autosignin">Automatisch verbinden</string>
<string name="pref_autosignin_summary">Verbind met MediNET wanneer geopend</string>
<string name="pref_interval_count">Aantal intervallen</string>
<string name="pref_interval">Interval duur</string>
<string name="pref_delay">Vertraging</string>
<string name="pref_audio_output">Geluid uitgang</string>
<string name="pref_full_screen">Volledig scherm</string>
<string name="pref_meditationstreakbuffer">Reeks eindigd om</string>
<string name="pref_display_seconds_summary">Weergeven onder de hoofd klok</string>
<string name="pref_display_seconds">Seconden weergeven</string>
<string name="keepScreenOnAndDim">Hou het scherm aan en dim het scherm</string>
<string name="dimScreen">Dim het scherm</string>
<string name="keepScreenOn">Hou het scherm aan</string>
<string name="always">Altijd</string>
<string name="duringSession">Tijdens de sessie</string>
<string name="customSound">Aangepast geluid</string>
<string name="custom">Aangepast</string>
<string name="labelLong">Lang</string>
<string name="labelMedium">Gemiddeld</string>
<string name="labelShort">Kort</string>
<string name="start">Start</string>
<string name="none">Geen</string>
<string name="pref_softfinish_summary">Laat de tijd doorlopen</string>
<string name="pref_softfinish">Oneindige sessie</string>
<string name="pref_sound_reminder_summary">Het standaard meldingsgeluid zal worden afgespeeld</string>
<string name="pref_sound_reminder">Geluid afspelen</string>
<string name="pref_vibrate_reminder_summary">De dagelijkse herinnering zal het apparaat doen trillen</string>
<string name="pref_vibrate_summary">Vind plaats aan het begin, tijdens intervallen en aan het einde van de meditatie</string>
<string name="pref_meditation_vibrate_finish">Einde vibratie</string>
<string name="pref_meditation_vibrate_interval">Interval vibratie</string>
<string name="pref_meditation_vibrate_start">Start vibratie</string>
<string name="vibrate">Vibreren</string>
<string name="meditation">Meditatie</string>
<string name="reminderText">Heeft u een moment\?</string>
<string name="longestStreak">Langste reeks</string>
<string name="longestDuration">Langste duur</string>
<string name="averageDuration">Gemiddelde duur</string>
<string name="totalSessions">Totaal aantal sessies</string>
<string name="minutes">Minuten</string>
<string name="hours">Uren</string>
<string name="days">Dagen</string>
<string name="sessionExists">De sessie bestaat al</string>
<string name="editSessionMeditating">Het is niet mogelijk een sessie aan te passen tijdens de meditatie</string>
<string name="addSessionMeditating">Het is niet mogelijk een sessie toe te voegen tijdens de meditatie</string>
<string name="invalidLength">Ongeldige lengte</string>
<string name="invalidDateOrTime">Ongeldige datum of tijd</string>
<string name="setTime">Tijd instellen</string>
<string name="setDate">Datum instellen</string>
<string name="length">Lengte</string>
<string name="completed">Afgelopen</string>
<string name="started">Gestart</string>
<string name="sessionStartedAt">Gestart om %s</string>
<string name="sessionExportFailed">Exporteren van sessies lukt niet</string>
<string name="exportSessions">Sessie exporteren</string>
<string name="edit">Wijzigen</string>
<string name="add">Toevoegen</string>
<string name="sessionEdited">Sessie gewijzigd</string>
<string name="sessionAdded">Sessie toegevoegd</string>
<string name="editSession">Sessie wijzigen</string>
<string name="addSession">Sessie toevoegen</string>
<string name="totalTimeSpentMeditating">Totale meditatie tijd</string>
<string name="statistics">Statistieken</string>
<string name="signInGoogleError">Authenticeren met de account beheerder lukt niet. Probeer OpenID als dit probleem zich blijft voordoen.</string>
<string name="useBrowser">Gebruik browser:</string>
<string name="browser">Browser</string>
<string name="postUpdatedSession">Aangepaste sessie opsturen naar MediNET\?</string>
<string name="streakdifferencewarning">U huidige meditatie reeks lijkt niet correct gebaseerd op de huidige sessie gegevens. Wilt u de meditatie reeks aanpassen\?
\n
\nHuidige reeks: %1$d
\nAangepaste reeks: %2$d</string>
<string name="modeandduration">Modus en tijdsduur</string>
<string name="presetsettings">Voorkeursinstellingen</string>
<string name="pref_sessionintro">Introductie</string>
<string name="invitationBlurb">Meditation Assistant is een rijke begeleiding voor de dagelijkse meditatie praktijk.</string>
<string name="sourceRepository">Bron Code Opslagplaats</string>
<string name="chooseDonationMethod">Kies hoe u wilt doneren.
\n
\nDe ontwikkelaar geeft de voorkeur aan Liberapay en ondersteunt meer landen en valuta.</string>
<string name="donate">Doneren</string>
<string name="tapToLearnMore">Klik ergens om meer te leren</string>
<string name="replayTutorial">Korte uitleg nogmaals doorlopen</string>
<string name="whatIsMediNETHelp">MediNET is een online meditatie sessie opslag en gemeenschap.
\n
\nU kan ervoor kiezen om uw sessies op MediNET op te slaan om het verlies van data te voorkomen en/of om uw voortgang met andere online te delen.
\n
\nU kan er ook voor keuzen uw sessies alleen op uw apparaat op te slaan.</string>
<string name="whatIsMediNET">MediNET overzicht</string>
<string name="howToMeditate">Meditatie, hoe moet dat</string>
<string name="deactivate">Deactiveren</string>
<string name="interval">Interval</string>
<string name="mindfulnessBellActive">Mindfulness bel actief</string>
<string name="mindfulnessBell">Mindfullness bel</string>
<string name="resources">Hulpbronnen</string>
<string name="presetLabelEndAt">Einde %s</string>
<string name="unlimited">Oneindig</string>
<string name="untimed">Zonder tijdsduur</string>
<string name="endAt">Tijdstip</string>
<string name="timed">Tijdsduur</string>
<string name="invalidEndAt">Ongeldige tijd om de sessie te beëindigen</string>
<string name="setTimerEndAtHint">Voor een geldige tijd in (b.v. 4:20)</string>
<string name="setTimerDurationHint">Voor een geldige tijdsduur in (b.v. 0:22)</string>
<string name="pattern">Patroon</string>
<string name="label">Label</string>
<string name="configureWidget">Widget instellen</string>
<string name="setVibrationTip">Voer het aantal milliseconden in voor het in of uitschakelen van de trilmotor, gescheiden door comma\'s.</string>
<string name="setPresetHintBlank">Voor een tijdsduur in (of een eindtijd) om de voorkeur in te stellen</string>
<string name="setPresetTip">Kies de instelling om terug te halen door op het instellingen icoon te klikken en daarna op de Voorkeursinstellingen te klikken.</string>
<string name="setPresetHint">Hou vast om voorkeursinstelling op te slaan</string>
<string name="sessionPaused">Sessie gepauzeerd</string>
<string name="pausedNotification">Sessie is gepauzeerd, indrukken en vasthouden om te beëindigen</string>
<string name="resumeOrEnd">Doorgaan of beëindigen</string>
<string name="pauseOrEnd">Pauzeren of beëindigen</string>
<string name="end">Einde</string>
<string name="resume">Doorgaan</string>
<string name="pause">Pauzeren</string>
<string name="medinetHelp">Login op MediNET om uw sessies online op te slaan. U kan deze sessie later importeren als u deze kwijt bent. Deze functie is compleet optioneel; het niet gebruiken van deze functie zal u niet hinderen in uw gebruikers ervaring.
\n
\nDit is het einde van de korte uitleg. Ik hoop dat Meditation Assistant u kan ondersteunen in uw meditatie.</string>
<string name="settingsHelp">Deze applicatie bevat een groot aantal functies en aanpassingsmogelijkheden. Druk op de instellingen icoon om deze opties te zien.</string>
<string name="editTimerHelp">Uw sessie kan een bepaalde tijdsduur hebben, of tot een bepaald tijdstip duren, of helemaal geen eindtijd hebben.
\n
\nVoorkeur instellingen kunnen worden opgeslagen om snel weer te kunnen gebruiken. Druk op de voorkeur instelling en houd deze vast om de huidige sessie tijd op te slaan. Geluid en andere instellingen kunnen ook als voorkeur instelling worden opgeslagen door deze te activeren in het voorkeursinstellingen menu.
\n
\nNadat OK is geselecteerd, klik op Annuleren of Bevestigen om door te gaan.</string>
<string name="timer">Wekker</string>
<string name="timerHelp">Welkom bij de korte uitleg. Dit is de sessie wekker. Klik erop om de tijd modus en lengte aan te passen.</string>
<string name="deny">Weigeren</string>
<string name="permissionRequestNotificationControl">Geef alstublieft op het volgende scherm toestemming om Niet Storen te beheren.</string>
<string name="permissionRequired">Deze toestemming is vereist.</string>
<string name="permissionRequest">Aanvraag voor toestemming</string>
<string name="disableBatteryOptimizations">Meditation Assistant moet op de achtergrond draaien</string>
<string name="installFileManager">Installeer een bestandsbeheer applicatie alstublieft</string>
<string name="sessionExportWasSuccessful">Sessies geëxporteerd.</string>
</resources>

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View File

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="appName">Darmowy Asystent Medytacji</string>
<string name="appNameShort">Asystent Medytacji</string>
<string name="about">O programie</string>
<string name="yes">Tak</string>
@ -22,14 +21,13 @@
<string name="installFileManager">Proszę zainstaluj menedżer plików</string>
<!-- Permissions -->
<string name="permissionRequest">Prośba o uprawnienia</string>
<string name="permissionRequestReadExternal">Te uprawnienia są wymagane by wybrać własny dźwięk z pamięci urządzenia.</string>
<string name="permissionRequestNotificationControl">Proszę udziel uprawnień na następnym ekranie, by zarządzać trybem Nie Przeszkadzać.</string>
<string name="deny">Odmów</string>
<string name="tryAgain">Spróbuj ponownie</string>
<!-- Main Activity -->
<string name="timer">Minutnik</string>
<string name="timerHelp">Minutnik jest aktualnie ustawiony na 15 minut. Możesz zmienić okres czasu, ustawić zakończenie o określonej porze dnia lub wyłączyć alarm całkowicie. Tapnij minutnik by ujrzeć te opcje.</string>
<string name="settingsHelp">Niniejsza aplikacja posiada wiele funkcji oraz dostosowań, takich jak automatyczne wyciszenie Twojego urządzenia, czy codzienne przypomnienia o medytacji. Tapnij ikonkę Ustawień, by ujrzeć te opcje.</string>
<string name="timerHelp">Witaj w krótkim samouczku. Oto minutnik sesji. Dotknij go, aby zmienić tryb oraz okres czasu.</string>
<string name="settingsHelp">Niniejsza aplikacja posiada wiele funkcji oraz dostosowań. Tapnij ikonkę Ustawień, by ujrzeć te opcje.</string>
<string name="medinetHelp">Zaloguj się do MediNET by zachowywać Twoje sesje on-line. Możesz je później zaimportować w razie gdy utracisz te dane. Ta funkcja jest całkowicie opcjonalna, zapisywanie sesji lokalnie nie zaburzy Twego doświadczenia.\n\nTu kończy się samouczek. Mam nadzieję że Asystent Medytacji będzie przydatny w Twojej praktyce.</string>
<string name="cancel">Anuluj</string>
<string name="set">Ustaw</string>
@ -47,7 +45,7 @@
<string name="progress">Postęp</string>
<string name="setPreset">Ustaw tryb</string>
<string name="setPresetHint">Przytrzymaj, by ustawić tryb</string>
<string name="setPresetTip">Wybierz które ustawienia przywracać: tapnij ikonkę koła zębatego (Ustawienia), a następnie Ustawienia wstępne.</string>
<string name="setPresetTip">Wybierz które ustawienia przywracać: tapnij ikonkę koła zębatego (Ustawienia), a następnie Ustawienia trybów.</string>
<string name="setPresetHintBlank">Wpisz czas trwania (lub czas zakończenia) aby ustawić tryb</string>
<string name="label">Podpis</string>
<string name="setTimerDurationHint">Podaj prawidłowy czas trwania (np. 0:22)</string>
@ -64,8 +62,6 @@
<string name="version">Wersja %s</string>
<string name="translate">Przetłumacz</string>
<string name="donate">Wspomóż dotacją</string>
<string name="removeAds">Usuń reklamy</string>
<string name="removeAdsHelp">Pełna wersja Asystenta Medytacji to osobny program.\n\nBy zachować dotychczasowe sesje, zaloguj się do MediNET i tapnij "Wyślij sesje" w oknie Ustawień.\n\nOtwórz pełną wersją i zaloguj się do MediNET ponownie, następnie tapnij "Importuj".</string>
<string name="howToMeditate">Jak medytować</string>
<string name="share">Udostępnij</string>
<!--Short text displayed in sent application invitations [CHAR LIMIT=100] -->
@ -76,7 +72,7 @@
<string name="sessionDeleteLocally">Usuń lokalnie</string>
<string name="sessionDeleteMediNET">Usuń na MediNET</string>
<string name="pref_sessionintro">Wprowadzenie</string>
<string name="presetsettings">Ustawienia wstępne</string>
<string name="presetsettings">Ustawienia trybów</string>
<string name="modeandduration">Tryb i czas trwania</string>
<string name="streakdifferencewarning">Twoja aktualna seria medytacji wydaje się nieprawidłowa w odniesieniu do aktualnej sesji. Użyć zaktualizowanej serii?\n\nAktualna seria: %1$d\nZaktualizowana seria: %2$d</string>
<!-- Session complete -->
@ -114,7 +110,7 @@
<string name="edit">Edytuj</string>
<string name="exportSessions">Eksportuj sesje</string>
<string name="sessionExportFailed">Nie można eksportować sesji</string>
<string name="showExportedSessions">Sesje wyeksportowane. Chciał(a)byś przejrzeć folder je zawierający?</string>
<string name="sessionExportWasSuccessful">Sesje wyeksportowane.</string>
<string name="sessionStartedAt">Rozpoczęto o %s</string>
<string name="started">Rozpoczęto</string>
<string name="completed">Ukończono</string>
@ -136,7 +132,6 @@
<string name="reminderText">Masz chwilę, aby pomedytować?</string>
<!-- Settings -->
<string name="meditation">Medytacja</string>
<string name="pref_vibrate">Wibruj</string>
<string name="pref_vibrate_summary">Występuje na początku, w przedziałach oraz na końcu medytacji.</string>
<string name="pref_vibrate_reminder_summary">Codzienne przypomnienie z wibracją urządzenia</string>
<string name="pref_sound_reminder">Odtwórz dźwięk</string>
@ -168,8 +163,6 @@
<string name="pref_sessionvolume">Głośność</string>
<string name="pref_sessionvolume_summary">Poprzedni poziom głośności zostanie przywrócony po zakończeniu sesji.</string>
<string name="pref_screencontrol">Ekran</string>
<string name="pref_sendusage">Raportuj statystyki użytkowania</string>
<string name="pref_sendusage_summary">Anonimowe raportowanie przez Google Analytics. Dostępne po restarcie</string>
<string name="pref_showstreak">Wyświetl ciąg medytacji</string>
<string name="pref_showstreak_summary">Liczba następujących po sobie dni z co najmniej jedną zapisaną sesją</string>
<string name="selectSound">Wybierz dźwięk</string>
@ -191,13 +184,13 @@
<string name="pref_askdismiss">Pytaj przed porzuceniem</string>
<string name="pref_askdismiss_summary">Potwierdź przed porzuceniem sesji</string>
<string name="pref_mainbuttons">Ukryj przyciski</string>
<string name="pref_progresstab">Domyślna zakładka postępu</string>
<string name="pref_progresstab">Domyślna zakładka</string>
<string name="importsessions">Importuj sesje</string>
<string name="importsessions_summary">Odzyskaj wysłane wcześniej sesje</string>
<string name="uploadsessions">Prześlij sesje</string>
<string name="uploadsessions_summary">Prześlij sesje lokalne</string>
<string name="miscellaneous">Różne</string>
<string name="pref_text_size">Rozmiar czcionki zegara</string>
<string name="pref_text_size">Rozmiar zegara</string>
<string name="tiny">Miniaturowy</string>
<string name="small">Mały</string>
<string name="normal">Normalny</string>
@ -208,14 +201,13 @@
<string name="pref_notificationcontrol_priority">Tylko priorytetowe</string>
<string name="pref_notificationcontrol_alarms">Tylko alarmy</string>
<string name="pref_notificationcontrol_vibrate">Wibracje</string>
<string name="pref_notificationcontrol_silent">Cisza</string>
<string name="pref_daily_reminder">Codzienne przypomnienie</string>
<string name="pref_daily_reminder_title">Przypomnij mi</string>
<string name="pref_daily_reminder_summary">Wyświetl powiadomienie jeśli żadna sesja nie została dziś zapisana</string>
<string name="pref_daily_reminder_time">Czas</string>
<string name="pref_daily_reminder_text">Tekst na zachętę</string>
<string name="downloadingSessions">Pobieranie sesji...</string>
<string name="uploadingSessions">Przesyłanie sesji...</string>
<string name="downloadingSessions">Pobieranie sesji</string>
<string name="uploadingSessions">Przesyłanie sesji</string>
<!-- MediNET -->
<string name="mediNET">MediNET</string>
<string name="unableToConnect">Nie można połączyć się z MediNET</string>
@ -223,32 +215,32 @@
<string name="discard">Porzuć</string>
<string name="save">Zapisz</string>
<string name="post">Opublikuj</string>
<string name="importSessionsHint">Kliknij "Importuj sesje" w ustawieniach by przywrócić brakujące sesje.</string>
<string name="importsessionstitle">Zaimportować sesje?</string>
<string name="importsessionsmessage">Poprzednie sesje zostaną zaimportowane.\n\nTo okno nie pojawi się ponownie.\nMożesz także importować sesje później, z okna ustawień.</string>
<string name="wordimport">Importuj</string>
<string name="sessionDeletedMediNET">Sesja usunięta na MediNET</string>
<string name="sessionNotFoundMediNET">Sesja nie odnaleziona na MediNET</string>
<plurals name="numtimes">
<item quantity="one">%s czasu</item>
<item quantity="other">%s razy</item>
</plurals>
<plurals name="sessionsImported">
<item quantity="one">Zaimportowano %s sesji</item>
<item quantity="other">Zaimportowano %s sesji</item>
<item quantity="one">%s raz</item>
<item quantity="few">%s razy</item>
<item quantity="many"/>
<item quantity="other"/>
</plurals>
<plurals name="sessionsUploaded">
<item quantity="one">Przesłano %s sesji</item>
<item quantity="other">Przesłano %s sesji</item>
<item quantity="one">Przesłano %s sesję</item>
<item quantity="few">Przesłano %s sesji</item>
<item quantity="many"/>
<item quantity="other"/>
</plurals>
<string name="sessionsNotImported">Dane lokalne są aktualne</string>
<plurals name="daysOfMeditationMinimal">
<item quantity="one">%d dni</item>
<item quantity="other">%d dni</item>
<item quantity="one">%d dzień</item>
<item quantity="few">%d dni</item>
<item quantity="many"/>
<item quantity="other"/>
</plurals>
<plurals name="daysOfMeditation">
<item quantity="one">%d dni medytacji</item>
<item quantity="other">%d dni medytacji</item>
<item quantity="one">%d dzień medytacji</item>
<item quantity="few">%d dni medytacji</item>
<item quantity="many"/>
<item quantity="other"/>
</plurals>
<plurals name="daysOfMeditationWithoutCount">
<item quantity="one">dzień medytacji</item>
@ -263,9 +255,6 @@
<string name="rateMeditationAssistantText">Jeśli niniejsza aplikacja przydaje Ci się w praktyce medytacyjnej, czy mógłbyś/mogłabyś proszę ją ocenić?\n\nPłatna wersja aplikacji nie zawiera reklam oraz wprowadza widżety. Rozważ proszę jej zakup, jeśli możesz.\n\nTa informacja nie pojawi się ponownie.</string>
<string name="translateMeditationAssistantText">Czy chciał(a)byś pomóc Asystentowi Medytacji dotrzeć do szerszego grona użytkowników poprzez przetłumaczenie go na inny język?\n\nTłumaczenie jest łatwe do przeprowadzenia z pomocą interfejsu on-line. Możesz odwiedzić stronę tłumaczeń później, klikając Przetłumacz z okna O programie.\n\nTa informacja nie pojawi się ponownie.</string>
<!-- Widgets -->
<string name="widget1x1" tools:ignore="UnusedResources">Asystent Medytacji 1x1</string>
<string name="widget2x1" tools:ignore="UnusedResources">Asystent Medytacji 2x1</string>
<string name="widget3x1" tools:ignore="UnusedResources">Asystent Medytacji 3x1</string>
<!-- Meta -->
<string name="appStoreListingShort">Funkcja minutnika oraz rejestratora sesji</string>
<string name="appStoreListingFull">Niniejsza aplikacja towarzyszy zarówno okresowym (poprzez czas trwania lub zakończenie o określonej porze), jak i nielimitowanym sesjom, z wieloma dostosowaniami, włączając dźwięki rozpoczęcia/przedziałów/zakończenia, jak i zachowanie urządzenia. Ponadto dostarcza miesięczny przegląd Twoich postępów.
@ -290,4 +279,47 @@
Przetłumacz Asystenta Medytacji na Twój język: https://www.getlocalization.com/meditationassistant/
Aplikacja rozwijana przez Rocket Nine Laboratories: https://rocketnine.space/</string>
<string name="disableBatteryOptimizations">Asystent Medytacji musi być uruchomiony w tle</string>
<string name="resume">Wznów</string>
<string name="sessionPaused">Sesja wstrzymana</string>
<string name="permissionRequired">Uprawnienia te są wymagane.</string>
<string name="editTimerHelp">Sesja może wynosić pewien okres czasu, trwać do określonej godziny, bądź w ogóle nie być ograniczona czasowo.
\n
\nTryby mogą być wykorzystywane do przechowywania ustawień. Naciśnij i przytrzymaj tryb, aby zapamiętać czas trwania bieżącej sesji. Dźwięki i inne ustawienia również można zapamiętać poprzez włączenie ich w Ustawieniach trybów.
\n
\nPo naciśnięciu OK, naciśnij Anuluj lub Potwierdź, aby kontynuować.</string>
<string name="downloadsessionsmessage">Poprzednie sesje zostaną pobrane.
\n
\nTa wiadomość nie będzie więcej wyświetlana.
\nMożesz pobrać sesje później z okienka Ustawień.</string>
<string name="downloadsessionstitle">Pobrać sesje\?</string>
<string name="downloadSessionsHint">Kliknij Pobierz sesje w ustawieniach, aby odzyskać brakujące sesje.</string>
<string name="download">Pobierz</string>
<string name="center">Środek</string>
<string name="top">Góra</string>
<string name="timerPosition">Pozycja zegara</string>
<string name="importsessions_complete">Found %1$d istniejących oraz %2$d nowych.</string>
<string name="importsessions_in_progress">Importowanie sesji…</string>
<string name="downloadsessions_summary">Pobierz zdalne sesje</string>
<string name="downloadsessions">Pobierz sesje</string>
<string name="exportsessions_summary">Eksportuj plik CSV</string>
<string name="exportsessions">Eksportuj sesje</string>
<string name="sessionEdited">Zedytowano sesję</string>
<string name="sessionAdded">Dodano sesję</string>
<string name="postUpdatedSession">Wysłać aktualizację sesji do MediNET\?</string>
<string name="sourceRepository">Repozytorium kodu źródłowego</string>
<string name="chooseDonationMethod">Wybierz metodę wsparcia.
\n
\nLiberapay jest metodą preferowaną przez dewelopera i jest dostępna w wielu krajach i walutach.</string>
<string name="replayTutorial">Włącz samouczek ponownie</string>
<string name="whatIsMediNETHelp">MediNET to internetowe repozytorium sesji medytacyjnych oraz społeczność.
\n
\nMediNET umożliwia przechowywanie Twych sesji aby zapobiec utracie danych i/lub dzielić Twój postęp z innymi w sieci.
\n
\nMasz także możliwość przechowywania danych sesji wyłącznie na Twoim urządzeniu.</string>
<string name="whatIsMediNET">Czym jest MediNET</string>
<string name="resources">Zasoby</string>
<string name="pattern">Wzorzec</string>
<string name="configureWidget">Skonfiguruj widżet</string>
<string name="setVibrationTip">Wpisz liczbę milisekund aby włączyć lub wyłączyć wibracje, oddzielone przecinkami.</string>
</resources>

View File

@ -1,12 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="appName">Tempo de Meditar (Gratuito)</string>
<string name="appNameShort">Tempo de Meditar</string>
<string name="appNameShort">Hora de Meditar</string>
<string name="about">Sobre</string>
<string name="yes">Sim</string>
<string name="no">Não</string>
<string name="openWith">Abrir com</string>
<string name="delete">Deletar</string>
<string name="delete">Apagar</string>
<string name="sessions">Sessões</string>
<string name="community">Comunidade</string>
<string name="forum">Fórum</string>
@ -14,22 +13,23 @@
<string name="refresh">Atualizar</string>
<string name="page">Página</string>
<string name="back">Voltar</string>
<string name="forward">Seguir</string>
<string name="forward">Avançar</string>
<string name="account">Conta</string>
<string name="groups">Grupos</string>
<string name="announcement">Anúncio</string>
<string name="installFileManager">Por favor, instale um gerenciador de arquivos.</string>
<string name="installFileManager">Por favor, instale um gerenciador de arquivos</string>
<!-- Permissions -->
<string name="permissionRequest">Pedir permissão</string>
<string name="permissionRequestReadExternal">Esta permissão é necessária para escolher um arquivo de som personalizado no dispositivo.</string>
<string name="permissionRequestNotificationControl">Favor dar permissão na próxima tela para controlar Não Perturbe.</string>
<string name="deny">Negar</string>
<string name="tryAgain">Tente novamente</string>
<!-- Main Activity -->
<string name="timer">Timer</string>
<string name="timerHelp">O timer está marcado para 15 minutos. Você pode mudar a duração, terminar em um horário específico, ou desativar o alarme. Clique no timer para ver essas opções.</string>
<string name="settingsHelp">Esse aplicativo possui muitos recursos, como silenciar automaticamente o seu aparelho e fornecer um lembrete diário para meditar. Clique no botão de Configurações para ver essas opções.</string>
<string name="medinetHelp">Faça login no MediNET para salvar suas sessões online. Você pode importar suas sessões mais tarde se você perdê-las. Esse recurso é completamente opcional, salvar suas sessões em outro local não vai prejudicar sua experiência. Isso conclui o tutorial. Espero que o Assistente de Meditação possa ajudá-lo.</string>
<string name="timerHelp">O temporizador está de momento configurado para 15 minutos. Pode alterar a duração, finalizar numa parte específica do dia, ou desativar o alarme completamente. Toque no temporizador para ver estas opções.</string>
<string name="settingsHelp">Este aplicativo possui muitos recursos, como silenciar automaticamente o seu aparelho e fornecer um lembrete diário para meditar. Clique no botão de Configurações para ver essas opções.</string>
<string name="medinetHelp">Faça login no MediNET para salvar suas sessões online. Você pode importar suas sessões mais tarde se você perdê-las. Esse recurso é completamente opcional, salvar suas sessões em outro local não vai prejudicar sua experiência.
\n
\n Isso conclui o tutorial. Espero que o Assistente de Meditação possa ajudá-lo.</string>
<string name="cancel">Cancelar</string>
<string name="set">Ok</string>
<string name="confirm">Confirmar</string>
@ -40,7 +40,7 @@
<string name="pauseOrEnd">Pausar ou terminar</string>
<string name="resumeOrEnd">Continuar ou terminar</string>
<string name="pausedNotification">Sessão pausada, segurar o botão para terminar</string>
<string name="mediNETConnecting">Conectando...</string>
<string name="mediNETConnecting">Conectando</string>
<string name="mediNETConnected">Conectado ao MediNET</string>
<string name="sessionInProgress">Sessão em progresso
</string>
@ -49,7 +49,7 @@
<string name="setPresetHint">
Segure para escolher valor predefinido</string>
<string name="setPresetTip">Escolha quais configurações restaurar tocando no ícone da engrenagem (Configurações) e depois em Configurações predefinidas.</string>
<string name="setPresetHintBlank">Digite a duração (ou término) padrão.</string>
<string name="setPresetHintBlank">Digite a duração (ou término) padrão</string>
<string name="label">Rótulo</string>
<string name="setTimerDurationHint">Digite uma duração válida (Ex: 0:22)
</string>
@ -61,13 +61,11 @@ Segure para escolher valor predefinido</string>
<string name="unlimited">Ilimitado</string>
<string name="presetLabelEndAt">Fim %s</string>
<!-- About -->
<string name="tapToLearnMore">Toque para enviar sua opinião.</string>
<string name="tapToLearnMore">Toque para enviar sua opinião</string>
<string name="sendEmail">Enviar e-mail</string>
<string name="version">Versão %s</string>
<string name="translate">Traduzir</string>
<string name="donate">Doar</string>
<string name="removeAds">Remover propagandas</string>
<string name="removeAdsHelp">A versão completa de Assistente de Meditação é um aplicativo separado. Para manter suas sessões existentes, faça login em MediNET e toque em "Enviar sessões" na janela Configurações. Abra a versão completa e entre para MediNET mais uma vez, em seguida, toque em "Importar".</string>
<string name="howToMeditate">Como meditar</string>
<string name="share">Compartilhar</string>
<!--Short text displayed in sent application invitations [CHAR LIMIT=100] -->
@ -76,18 +74,16 @@ Segure para escolher valor predefinido</string>
<string name="session">Sessão</string>
<string name="sessionDeleteEverywhere">Excluir tudo</string>
<string name="sessionDeleteLocally">Excluir localmente</string>
<string name="sessionDeleteMediNET">Deletar no MediNET</string>
<string name="sessionDeleteMediNET">Excluir no MediNET</string>
<string name="pref_sessionintro">Introdução</string>
<string name="presetsettings">Configurações predefinidas</string>
<string name="modeandduration">Modo e duração</string>
<string name="streakdifferencewarning">Sua sequência de meditação atual não parece correta com base nos dados da sessão atual. Usar a sequência de meditação atualizada?\n\nSequência atual: %1$d\nSequência atualizada: %2$d</string>
<!-- Session complete -->
<string name="sessioncomplete">Sessão completa</string>
<string name="sessionMessagePlaceholder">Massagem</string>
<string name="askDiscardText">Deletar sessão?
</string>
<string name="sessionPosting">Postando sessão...
</string>
<string name="sessionMessagePlaceholder">Mensagem</string>
<string name="askDiscardText">Descartar sessão\?</string>
<string name="sessionPosting">Postando sessão…</string>
<string name="sessionPosted">Postando sessão no MediNET</string>
<string name="sessionAlreadyPosted">Sessão já postada
</string>
@ -97,12 +93,12 @@ Segure para escolher valor predefinido</string>
<string name="sessionDeletedLocally">Sessão apagada localmente</string>
<!-- Sign In -->
<string name="browser">Navegador</string>
<string name="useBrowser">Use o navegador.</string>
<string name="signInWith">Fazer log in com...</string>
<string name="signInWithProvider">Fazer log in com %s...</string>
<string name="useBrowser">Use o navegador:</string>
<string name="signInWith">Fazer login com…</string>
<string name="signInWithProvider">Fazer login com %s…</string>
<string name="signInWithOpenID">OpenID - Facebook, Twitter, etc.
</string>
<string name="signInGoogleError">Impossivel autentar usando administrador de contas. Use OpenID se esse erro persistir</string>
<string name="signInGoogleError">Impossível autenticar usando o administrador de contas. Use OpenID se esse erro persistir.</string>
<!-- Progress -->
<string name="calendar">Calendário</string>
<string name="statistics">Estatísticas</string>
@ -120,7 +116,7 @@ Segure para escolher valor predefinido</string>
<string name="edit">Editar</string>
<string name="exportSessions">Exportar sessões</string>
<string name="sessionExportFailed">Não foi possível exportar as sessões</string>
<string name="showExportedSessions">Sessões exportadas. Quer localizar a pasta contendo os arquivos?</string>
<string name="sessionExportWasSuccessful">Sessões exportadas.</string>
<string name="sessionStartedAt">Iniciada em %s</string>
<string name="started">Iniciada</string>
<string name="completed">Completo</string>
@ -142,7 +138,6 @@ Segure para escolher valor predefinido</string>
<string name="reminderText">Você tem um momento?</string>
<!-- Settings -->
<string name="meditation">Meditação</string>
<string name="pref_vibrate">Vibrar</string>
<string name="pref_vibrate_summary">Ocorre no início, intervalos, e no final de meditação</string>
<string name="pref_vibrate_reminder_summary">O lembrete diário irá fazer o aparelho vibrar</string>
<string name="pref_sound_reminder">Tocar som</string>
@ -175,8 +170,6 @@ Segure para escolher valor predefinido</string>
<string name="pref_sessionvolume">Volume</string>
<string name="pref_sessionvolume_summary">Volume anterior será restaurado assim que a sessão for concluída.</string>
<string name="pref_screencontrol">Tela</string>
<string name="pref_sendusage">Relatório de estatísticas de uso</string>
<string name="pref_sendusage_summary">Relatórios anônimos através do Google Analytics. Entra em vigor após reinício</string>
<string name="pref_showstreak">Mostrar meditações consecutivas</string>
<string name="pref_showstreak_summary">Número de dias consecutivos com pelo menos uma sessão gravada</string>
<string name="selectSound">Escolha um som</string>
@ -184,7 +177,7 @@ Segure para escolher valor predefinido</string>
<string name="pref_meditation_sound_interval">Som do intervalo</string>
<string name="pref_meditation_sound_finish">Som ao completar</string>
<string name="pref_remembermessage">Relembre última mensagem</string>
<string name="pref_remembermessage_summary">Padrão para a última mensagem postada</string>
<string name="pref_remembermessage_summary">Padrão para a última mensagem</string>
<string name="pref_theme">Tema holográfico</string>
<string name="pref_theme_light">Claro</string>
<string name="pref_theme_lightdark">Claro com barra de ação escura</string>
@ -198,13 +191,13 @@ Segure para escolher valor predefinido</string>
<string name="pref_askdismiss">Perguntar antes de descartar</string>
<string name="pref_askdismiss_summary">Confirmar antes de descartar uma sessão</string>
<string name="pref_mainbuttons">Esconder botões</string>
<string name="pref_progresstab">Aba padrão em Progresso</string>
<string name="pref_progresstab">Aba padrão</string>
<string name="importsessions">Importar sessões</string>
<string name="importsessions_summary">Recuperar sessões enviadas</string>
<string name="uploadsessions">Enviar sessões</string>
<string name="uploadsessions_summary">Enviar sessões locais</string>
<string name="miscellaneous">Diversos</string>
<string name="pref_text_size">Tamanho do texto do cronômetro</string>
<string name="pref_text_size">Tamanho do cronômetro</string>
<string name="tiny">Minúsculo</string>
<string name="small">Pequeno</string>
<string name="normal">Normal</string>
@ -215,14 +208,13 @@ Segure para escolher valor predefinido</string>
<string name="pref_notificationcontrol_priority">Apenas emergências</string>
<string name="pref_notificationcontrol_alarms">Apenas alarmes</string>
<string name="pref_notificationcontrol_vibrate">Vibrar</string>
<string name="pref_notificationcontrol_silent">Silenciar</string>
<string name="pref_daily_reminder">Lembrete diário</string>
<string name="pref_daily_reminder_title">Lembre-me</string>
<string name="pref_daily_reminder_summary">Exibir uma notificação quando não houver sessões gravadas hoje</string>
<string name="pref_daily_reminder_time">Horário</string>
<string name="pref_daily_reminder_text">Texto de incentivo</string>
<string name="downloadingSessions">Baixando sessões...</string>
<string name="uploadingSessions">Enviando sessões...</string>
<string name="downloadingSessions">Baixando sessões</string>
<string name="uploadingSessions">Enviando sessões</string>
<!-- MediNET -->
<string name="mediNET">MediNET</string>
<string name="unableToConnect">Impossível conectar com MediNET</string>
@ -230,76 +222,134 @@ Segure para escolher valor predefinido</string>
<string name="discard">Descartar</string>
<string name="save">Salvar</string>
<string name="post">Publicar</string>
<string name="importSessionsHint">Clique em "Importar sessões" em configurações para recuperar sessões perdidas.</string>
<string name="importsessionstitle">Importar sessões?</string>
<string name="importsessionsmessage">
Sessões anteriores serão importados. Este diálogo não será exibido novamente. Você pode importar sessões mais tarde na janela Configurações.</string>
<string name="wordimport">Importar</string>
<string name="sessionDeletedMediNET">Sessão deletada do MediNET</string>
<string name="sessionNotFoundMediNET">Sessão não encontrada no MediNET</string>
<plurals name="numtimes">
<item quantity="one">%s time</item>
<item quantity="other">%s times</item>
</plurals>
<plurals name="sessionsImported">
<item quantity="one">Imported %s session</item>
<item quantity="other">Imported %s sessions</item>
<item quantity="one">%s tempo</item>
<item quantity="other">%s tempos</item>
</plurals>
<plurals name="sessionsUploaded">
<item quantity="one">Uploaded %s session</item>
<item quantity="other">Uploaded %s sessions</item>
<item quantity="one">Carregado %s sessão</item>
<item quantity="other">Carregado %s sessões</item>
</plurals>
<string name="sessionsNotImported">Dados locais estão atualizados</string>
<plurals name="daysOfMeditationMinimal">
<item quantity="one">%d day</item>
<item quantity="other">%d days</item>
<item quantity="one">%d dia</item>
<item quantity="other">%d dias</item>
</plurals>
<plurals name="daysOfMeditation">
<item quantity="one">%d day of meditation</item>
<item quantity="other">%d days of meditation</item>
<item quantity="one">%d dia de meditação</item>
<item quantity="other">%d dias de meditação</item>
</plurals>
<plurals name="daysOfMeditationWithoutCount">
<item quantity="one">day of meditation</item>
<item quantity="other">days of meditation</item>
<item quantity="one">dia de meditação</item>
<item quantity="other">dias de meditação</item>
</plurals>
<string name="meditateToday">Meditar hoje</string>
<string name="signInToMediNET">Entrar no MediNEY</string>
<string name="signInToMediNET">Entrar no MediNET</string>
<string name="signOut">Sair</string>
<string name="signOutOfMediNET">Sair do MediNET</string>
<string name="signOutOfMediNETConfirmTitle">Sair do MediNET?</string>
<string name="rateMeditationAssistant">Avalie-nos</string>
<string name="rateMeditationAssistantText">Se esse aplicativo lhe foi útil e beneficiou sua prática de meditação, por favor, considere adicionar uma avaliação.\n\nA versão paga desse aplicativo é livre de propagandas e contém widgets de início. Considere comprá-la se for possível.\n\nEsse diálogo não aparecerá de novo.</string>
<string name="translateMeditationAssistantText">Você poderia ajudar o Assistente de Meditação a ampliar seu público traduzindo-o para outras línguas?\n\nA tradução é feita de forma simples através de uma interface online. Você pode acessar a página de tradução a qualquer momento clicando em Traduzir na aba Sobre das configurações.\n\nEsse diálogo não aparecerá novamente.</string>
<string name="rateMeditationAssistantText">Se esse aplicativo lhe foi útil e beneficiou sua prática de meditação, por favor, nos dê sua avaliação.
\n
\nEsse diálogo não aparecerá de novo.</string>
<string name="translateMeditationAssistantText">Você está interessado em ajudar na tradução do Meditation Assistant\?</string>
<!-- Widgets -->
<string name="widget1x1" tools:ignore="UnusedResources">Assistente de Meditação 1x1</string>
<string name="widget2x1" tools:ignore="UnusedResources">Assistente de Meditação 2x1</string>
<string name="widget3x1" tools:ignore="UnusedResources">Assistente de Meditação 3x1</string>
<!-- Meta -->
<string name="appStoreListingShort">Contém timer e gravador em sessões de meditação</string>
<string name="appStoreListingFull">Esse aplicativo auxilia tanto em sessões cronometradas (definindo a duração delas ou terminando-as em horários específicos) quanto em não cronometradas, e conta com várias customizações, como o ajuste de sons de início/intervalo/fim e o controle das notificações do celular. Além de todo mês fornecer um resumo de seu progresso.
Uma das características principais desse aplicativo é a opção de compartilhar suas sessões online. Embora totalmente opcional, isso adiciona um grau de responsabilidade e incentivo. Uma vez online, quanto mais seu streak for crescendo, mais usuários o terão como meta. Um usuário já compartilhou mais de 500 dias consecutivos de meditação.
Seu streak de é o número de dias consecutivos que você meditou. Quanto mais seu streak cresce, "não quebrar a corrente" se tornará bem importante. Cedo ou tarde,
você estará meditando todos os dias, ainda que seja por apenas cinco ou dez minutos.
Principais funções:
- Automaticamente põe seu dispositivo em modo de apenas emergências, apenas alarmes, silencioso ou em vibração enquanto medita.
- Escolha dentre vários sons para meditação inclusos, ou use outros em seu celular.
- Toque um som de intervalo pela duração que você escolher.
- Publique suas sessões de meditação no MediNET, e visite o fórum de meditação do MediNET.
- Escolha qualquer tema holográfico do aplicativo: claro, claro com painel de ações escuro e escuro.
- Muito mais funções disponíveis, é a cada atualização são adicionadas mais.
Esse ê um aplicativo open source:
https://gitlab.com/tslocum/meditationassistant
Feedbacks são bem-vindos. Grande parte das funções adicionadas são originalmente ideias de usuários. Descreva qualquer problema ou ideia que tiver:
https://gitlab.com/tslocum/meditationassistant/issues
Traduza o Assistente de Meditação para sua língua:
https://www.getlocalization.com/meditationassistant/
Desenvolvido pela Rocket Nine Laboratories:
https://rocketnine.space/</string>
<string name="appStoreListingFull">- Modo de dispositivo automático durante a meditação.
\n- Sessões pausáveis
\n- Sons ajustáveis de início/intervalo/fim, horários, temas e comportamento do dispositivo e muito mais.
\n- Visão geral do progresso no mês
\n- Opcionalmente, poste sessões no MediNET e visite o fórum.
\n(Compartilhe o progresso dos dias com a meditação motivacional, em sessões diárias, mesmo por cinco ou dez minutos.)
\n
\nO Meditation Assistant é um software livre com copyleft
\nEnvie o seu problema, ideia ou solução: https://gitlab.com/tslocum/meditationassistant/issues
\nVários recursos originaram-se de ideias do usuário.
\n
\nTraduza Meditation Assistant: https://www.getlocalization.com/meditationassistant/
\n
\nPor Rocket Nine Laboratories: https://rocketnine.space</string>
<string name="sessionPaused">Sessão pausada</string>
<string name="resume">Continuar</string>
<string name="permissionRequired">Esta permissão é necessária.</string>
<string name="disableBatteryOptimizations">Meditation Assistant precisa rodar em segundo plano</string>
<string name="warning">Aviso</string>
<string name="resources">Recursos</string>
<string name="configureWidget">Configurar o widget</string>
<string name="setVibrationTip">Insira o número de milissegundos para ligar ou desligar a vibração, separados por vírgulas.</string>
<string name="editTimerHelp">Sua sessão pode ter uma duração determinada, pode durar até um horário específico do dia, ou pode simplesmente não ser cronometrada.
\n
\nConfigurações predefinidas podem ser usadas para guardar configurações comuns. Pressione e segure sobre uma configuração predefinida para relembrar a duração da sessão atual. Sons e outras configurações podem ser relembrados nas configurações predefinidas habilitando-as na configuração.
\n
\nApós pressionar OK, pressione Cancelar ou Confirmar para continuar.</string>
<string name="whatIsMediNET">MediNET visão global</string>
<string name="widgetstreak3x1" tools:ignore="UnusedResources">Camada 3x1</string>
<string name="widgetstreak2x1" tools:ignore="UnusedResources">Camada 2x1</string>
<string name="widgetstreak1x1" tools:ignore="UnusedResources">Camada 1x1</string>
<string name="widgetpreset3x1" tools:ignore="UnusedResources">Predefinição 3x1</string>
<string name="widgetpreset2x1" tools:ignore="UnusedResources">Predefinição 2x1</string>
<string name="widgetpreset1x1" tools:ignore="UnusedResources">Predefinição 1x1</string>
<string name="sessionsUpToDate">Os dados locais estão atualizados</string>
<plurals name="sessionsDownloaded">
<item quantity="one">Baixar %s sessão</item>
<item quantity="other">Baixar %s sessões</item>
</plurals>
<string name="downloadsessionsmessage">As sessões anteriores serão baixadas.
\n
\nEsta caixa de diálogo não aparecerá novamente.
\nVocê pode baixar as sessões mais tarde na janela Configurações.</string>
<string name="downloadsessionstitle">Baixar sessões\?</string>
<string name="downloadSessionsHint">Clique em Baixar sessões nas configurações para recuperar as sessões ausentes.</string>
<string name="download">Download</string>
<string name="notification">Notificação</string>
<string name="ringtone">Toque de notificação</string>
<string name="media">Média</string>
<string name="alarm">Alarme</string>
<string name="center">Centro</string>
<string name="top">Principal</string>
<string name="timerPosition">Posição do cronômetro</string>
<string name="local">Local</string>
<string name="utc">UTC</string>
<string name="importsessions_utc_or_local">Esta exportação tem datas e horas locais UTC\?
\n
\nAs exportações salvas desde a versão 1.5.6 têm datas e horas UTC.</string>
<string name="importsessions_complete">Encontrado %1$d existente e %2$d novo.</string>
<string name="importsessions_in_progress">Importando sessões…</string>
<string name="downloadsessions_summary">Baixar sessões remotas</string>
<string name="downloadsessions">Sessões de download</string>
<string name="exportsessions_summary">Exportar arquivo CSV</string>
<string name="exportsessions">Exportar sessões</string>
<string name="pref_meditation_sound_bell">Som do sino de atenção plena</string>
<string name="pref_autosave">Salvar automaticamente</string>
<string name="pref_audio_output">Saída de áudio</string>
<string name="custom">Customizado</string>
<string name="labelLong">Longo</string>
<string name="labelMedium">Médio</string>
<string name="labelShort">Curto</string>
<string name="start">Começar</string>
<string name="pref_meditation_vibrate_finish">Completar vibração</string>
<string name="pref_meditation_vibrate_interval">Intervalo de vibração</string>
<string name="pref_meditation_vibrate_start">Iniciar vibração</string>
<string name="vibrate">Vibrar</string>
<string name="sessionEdited">Sessão editada</string>
<string name="sessionAdded">Sessão adicionada</string>
<string name="postUpdatedSession">Publicar sessão atualizada no MediNET\?</string>
<string name="sourceRepository">Repositório de código-fonte</string>
<string name="chooseDonationMethod">Por favor, escolha como você gostaria de doar.
\n
\nLiberapay é o preferido pelo desenvolvedor e oferece suporte a mais países e moedas.</string>
<string name="replayTutorial">Rever o tutorial</string>
<string name="whatIsMediNETHelp">MediNET é um repositório e comunidade de sessão de meditação online.
\n
\nVocê pode escolher armazenar suas sessões na MediNET para evitar perda de dados e/ou compartilhar seu progresso com outras pessoas online.
\n
\nEm vez disso, você também pode optar por armazenar os dados da sessão apenas no dispositivo.</string>
<string name="deactivate">Desativado</string>
<string name="interval">Intervalo</string>
<string name="mindfulnessBellActive">Sino de atenção plena ativo</string>
<string name="mindfulnessBell">Sino de atenção plena</string>
<string name="pattern">Padronizar</string>
</resources>

View File

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="appName">Assistente de meditação grátis</string>
<string name="appNameShort">Assistente de meditação</string>
<string name="about">Sobre</string>
<string name="yes">Sim</string>
@ -20,8 +19,8 @@
<!-- Permissions -->
<!-- Main Activity -->
<string name="timer">Temporizador</string>
<string name="timerHelp">O temporizador está de momento configurado para 15 minutos. Pode alterar a duração, finalizar numa parte específica do dia, ou desactivar o alarme completamente. Toque no temporizador para ver estas opções.</string>
<string name="settingsHelp">Esta aplicação providencia várias funcionalidades e customizações, como a possibilidade de colocar o seu aparelhos em silêncio de forma automática e lembrá-lo de meditar, diariamente. Pressione o ícone de configurações para visualizar estas opções.</string>
<string name="timerHelp">Bem-vindo a um breve tutorial. Este é o temporizador da sessão. Toque nele agora para alterar o modo e a duração do temporizador.</string>
<string name="settingsHelp">Esta aplicação possui muitos recursos. Clique no botão de Configurações para ver essas opções.</string>
<string name="cancel">Cancelar</string>
<string name="set">Definir</string>
<string name="confirm">Confirmar</string>
@ -50,7 +49,7 @@
<string name="sendEmail">Enviar e-mail</string>
<string name="version">Versão %s</string>
<string name="translate">Traduzir</string>
<string name="howToMeditate">Como Meditar</string>
<string name="howToMeditate">Como meditar</string>
<string name="share">Partilhar</string>
<!--Short text displayed in sent application invitations [CHAR LIMIT=100] -->
<!-- Sessions -->
@ -94,7 +93,6 @@
<string name="reminderText">Tem um momento?</string>
<!-- Settings -->
<string name="meditation">Meditação</string>
<string name="pref_vibrate">Vibrar</string>
<string name="pref_vibrate_reminder_summary">O aviso diário vai activar a vibração do aparelho</string>
<string name="pref_sound_reminder">Reproduzir som</string>
<string name="pref_sound_reminder_summary">O som, por defeito, da notificação vai ser reproduzido</string>
@ -110,10 +108,6 @@
<item quantity="one">%s vez</item>
<item quantity="other">%s vezes</item>
</plurals>
<plurals name="sessionsImported">
<item quantity="one">%s sessão importada</item>
<item quantity="other">%s sessões importadas</item>
</plurals>
<plurals name="sessionsUploaded">
<item quantity="one">%s sessão senviada</item>
<item quantity="other">%s sessões enviadas</item>
@ -136,7 +130,6 @@
<string name="openWith">Abrir com</string>
<string name="installFileManager">Por favor instale um gestor de ficheiros</string>
<string name="permissionRequest">Permissões</string>
<string name="permissionRequestReadExternal">Esta permissão é necessária para poder escolher um ficheiro áudio personalizado no aparelho.</string>
<string name="deny">Negar</string>
<string name="tryAgain">Tente de novo</string>
<string name="medinetHelp">Inicie sessão para poder guardar as suas sessões online. Pode importar as suas sessões mais tarde caso perca a informação. Este recurso é inteiramente opcional. Guardar as sessões localmente não dificulta a sua experiência.
@ -147,12 +140,10 @@
<string name="label">Etiqueta</string>
<string name="tapToLearnMore">Pressione em qualquer lado para saber mais</string>
<string name="donate">Doar</string>
<string name="removeAds">Remover anúncios</string>
<string name="disableBatteryOptimizations">Meditation Assistant deve ser executado no fundo</string>
<string name="permissionRequestNotificationControl">Favor dar permissão na próxima tela para controlar Não Perturbe.</string>
<string name="removeAdsHelp">A versão completa de Assistente de Meditação é um aplicativo separado. Para manter suas sessões existentes, faça login em MediNET e toque em Enviar sessões na janela Configurações. Abra a versão completa e entre para MediNET mais uma vez, em seguida, toque em Importar.</string>
<string name="permissionRequestNotificationControl">Favor dar permissão no próximo ecrã para controlar Não Perturbe.</string>
<string name="invitationBlurb">Assistente de Meditação é um companheiro com todos os recursos para a sua prática.</string>
<string name="sessionDeleteEverywhere">Excluir tudo</string>
<string name="sessionDeleteEverywhere">Apagar tudo</string>
<string name="pref_sessionintro">Introdução</string>
<string name="presetsettings">Configurações predefinidas</string>
<string name="modeandduration">Modo e duração</string>
@ -176,7 +167,7 @@
<string name="edit">Editar</string>
<string name="exportSessions">Exportar sessões</string>
<string name="sessionExportFailed">Não foi possível exportar as sessões</string>
<string name="showExportedSessions">Sessões exportadas. Quer localizar a pasta contendo os exportados\?</string>
<string name="sessionExportWasSuccessful">Sessões exportadas.</string>
<string name="length">Duração</string>
<string name="invalidLength">Duração inválida</string>
<string name="editSessionMeditating">Impossível editar uma sessão enquanto medita</string>
@ -193,7 +184,7 @@
<string name="pref_display_seconds">Mostrar segundos</string>
<string name="pref_display_seconds_summary">Mostrado abaixo do cronômetro principal</string>
<string name="pref_meditationstreakbuffer">Sequência reseta às</string>
<string name="pref_full_screen">Tela cheia</string>
<string name="pref_full_screen">Ecrã cheio</string>
<string name="pref_delay">Atraso</string>
<string name="pref_interval">Duração de intervalo</string>
<string name="pref_interval_count">Quantidade de intervalos</string>
@ -203,9 +194,7 @@
<string name="pref_rememberme">Lembre de mim</string>
<string name="pref_sessionvolume">Volume</string>
<string name="pref_sessionvolume_summary">Volume anterior será restaurado assim que a sessão for concluída.</string>
<string name="pref_screencontrol">Tela</string>
<string name="pref_sendusage">Relatório de estatísticas de uso</string>
<string name="pref_sendusage_summary">Relatórios anônimos através do Google Analytics. Entra em vigor após reinício</string>
<string name="pref_screencontrol">Ecrã</string>
<string name="pref_showstreak">Mostrar meditações consecutivas</string>
<string name="pref_showstreak_summary">Número de dias consecutivos com pelo menos uma sessão gravada</string>
<string name="selectSound">Escolha um som</string>
@ -213,7 +202,7 @@
<string name="pref_meditation_sound_interval">Som do intervalo</string>
<string name="pref_meditation_sound_finish">Som ao completar</string>
<string name="pref_remembermessage">Relembre última mensagem</string>
<string name="pref_remembermessage_summary">Padrão para a última mensagem postada</string>
<string name="pref_remembermessage_summary">Padrão para a última mensagem</string>
<string name="pref_theme">Tema holográfico</string>
<string name="pref_theme_light">Claro</string>
<string name="pref_theme_lightdark">Claro com barra de ação escura</string>
@ -227,13 +216,13 @@
<string name="pref_askdismiss">Perguntar antes de descartar</string>
<string name="pref_askdismiss_summary">Confirmar antes de descartar uma sessão</string>
<string name="pref_mainbuttons">Esconder botões</string>
<string name="pref_progresstab">Aba padrão em Progresso</string>
<string name="pref_progresstab">Aba padrão</string>
<string name="importsessions">Importar sessões</string>
<string name="importsessions_summary">Recuperar sessões enviadas</string>
<string name="importsessions_summary">Importar ficheiro CSV</string>
<string name="uploadsessions">Enviar sessões</string>
<string name="uploadsessions_summary">Enviar sessões locais</string>
<string name="miscellaneous">Diversos</string>
<string name="pref_text_size">Tamanho do texto do cronômetro</string>
<string name="pref_text_size">Tamanho do cronômetro</string>
<string name="tiny">Minúsculo</string>
<string name="small">Pequeno</string>
<string name="normal">Normal</string>
@ -244,50 +233,121 @@
<string name="pref_notificationcontrol_priority">Apenas emergências</string>
<string name="pref_notificationcontrol_alarms">Apenas alarmes</string>
<string name="pref_notificationcontrol_vibrate">Vibrar</string>
<string name="pref_notificationcontrol_silent">Silenciar</string>
<string name="pref_daily_reminder">Lembrete diário</string>
<string name="pref_daily_reminder_title">Lembre-me</string>
<string name="pref_daily_reminder_summary">Exibir uma notificação quando não houver sessões gravadas hoje</string>
<string name="pref_daily_reminder_time">Horário</string>
<string name="pref_daily_reminder_text">Texto de incentivo</string>
<string name="downloadingSessions">Baixando sessões...</string>
<string name="uploadingSessions">Enviando sessões...</string>
<string name="downloadingSessions">A descarregar sessões…</string>
<string name="uploadingSessions">Enviando sessões</string>
<string name="mediNET">MediNET</string>
<string name="unableToConnect">Impossível conectar com MediNET</string>
<string name="dismiss">Recusar</string>
<string name="discard">Descartar</string>
<string name="save">Salvar</string>
<string name="post">Publicar</string>
<string name="importSessionsHint">Clique em Importar sessões em configurações para recuperar sessões perdidas.</string>
<string name="importsessionstitle">Importar sessões\?</string>
<string name="importsessionsmessage">Sessões anteriores serão importados. Este diálogo não será exibido novamente. Você pode importar sessões mais tarde na janela Configurações.</string>
<string name="wordimport">Importar</string>
<string name="sessionDeletedMediNET">Sessão deletada do MediNET</string>
<string name="sessionNotFoundMediNET">Sessão não encontrada no MediNET</string>
<string name="sessionsNotImported">Dados locais estão atualizados</string>
<string name="meditateToday">Meditar hoje</string>
<string name="signInToMediNET">Entrar no MediNEY</string>
<string name="signOut">Sair</string>
<string name="signOutOfMediNET">Sair do MediNET</string>
<string name="signOutOfMediNETConfirmTitle">Sair do MediNET\?</string>
<string name="rateMeditationAssistant">Avalie-nos</string>
<string name="rateMeditationAssistantText">Se esse aplicativo lhe foi útil e beneficiou sua prática de meditação, por favor, considere adicionar uma avaliação.
\n
\nA versão paga desse aplicativo é livre de propagandas e contém widgets de início. Considere comprá-la se for possível.
\n
<string name="rateMeditationAssistantText">Se essa aplicação lhe foi útil e beneficiou a sua prática de meditação, por favor, considere adicionar uma avaliação.
\n
\nEsse diálogo não aparecerá de novo.</string>
<string name="translateMeditationAssistantText">Você poderia ajudar o Assistente de Meditação a ampliar seu público traduzindo-o para outras línguas\?
\n
\nA tradução é feita de forma simples através de uma interface online. Você pode acessar a página de tradução a qualquer momento clicando em Traduzir na aba Sobre das configurações.
\n
\nEsse diálogo não aparecerá novamente.</string>
<string name="widget1x1" tools:ignore="UnusedResources">Assistente de Meditação 1x1</string>
<string name="widget2x1" tools:ignore="UnusedResources">Assistente de Meditação 2x1</string>
<string name="widget3x1" tools:ignore="UnusedResources">Assistente de Meditação 3x1</string>
<string name="translateMeditationAssistantText">Está interessado em ajudar na tradução do Meditation Assistant\?</string>
<string name="appStoreListingShort">Contém timer e gravador em sessões de meditação</string>
<string name="appStoreListingFull">Esse aplicativo auxilia tanto em sessões cronometradas (definindo a duração delas ou terminando-as em horários específicos) quanto em não cronometradas, e conta com várias customizações, como o ajuste de sons de início/intervalo/fim e o controle das notificações do celular. Além de todo mês fornecer um resumo de seu progresso. Uma das características principais desse aplicativo é a opção de compartilhar suas sessões online. Embora totalmente opcional, isso adiciona um grau de responsabilidade e incentivo. Uma vez online, quanto mais seu streak for crescendo, mais usuários o terão como meta. Um usuário já compartilhou mais de 500 dias consecutivos de meditação. Seu streak de é o número de dias consecutivos que você meditou. Quanto mais seu streak cresce, não quebrar a corrente se tornará bem importante. Cedo ou tarde, você estará meditando todos os dias, ainda que seja por apenas cinco ou dez minutos. Principais funções: - Automaticamente põe seu aparelho em modo de apenas emergências, apenas alarmes, silencioso ou em vibração enquanto medita. - Escolha dentre vários sons para meditação inclusos, ou use outros em seu celular. - Toque um som de intervalo pela duração que você escolher. - Publique suas sessões de meditação no MediNET, e visite o fórum de meditação do MediNET. - Escolha qualquer tema holográfico do aplicativo: claro, claro com painel de ações escuro e escuro. - Muito mais funções disponíveis, é a cada atualização são adicionadas mais. Esse ê um aplicativo open source: https://gitlab.com/tslocum/meditationassistant Feedbacks são bem-vindos. Grande parte das funções adicionadas são originalmente ideias de usuários. Descreva qualquer problema ou ideia que tiver: https://gitlab.com/tslocum/meditationassistant/issues Traduza o Assistente de Meditação para sua língua: https://www.getlocalization.com/meditationassistant/ Desenvolvido pela Rocket Nine Laboratories: https://rocketnine.space/</string>
<string name="appStoreListingFull">- Modo de aparelho automático durante a meditação.
\n- Sessões de pausa.
\n- Sons de início/intervalo/fim ajustáveis, horários, temas e comportamento do aparelho, e muito mais.
\n- Visão geral do progresso mensal.
\n- Opcionalmente, poste sessões no MediNET e visite o seu fórum.
\n(Compartilhar o progresso dos dias com meditação motiva as sessões diárias, mesmo durante cinco ou dez minutos).
\n
\nO Assistente de Meditação é um software livre copyleft.
\nEnvie o seu problema/idéia ou conserte: https://code.rocketnine.space/tslocum/meditationassistant/issues
\nVárias características originaram-se como ideias de utilizador.
\n
\nAssistente de Meditação de Tradução: https://www.getlocalization.com/meditationassistant/
\n
\nPor Rocket Nove Laboratórios: https://rocketnine.space</string>
<string name="exportsessions">Exportar sessões</string>
<string name="exportsessions_summary">Exportar ficheiro CSV</string>
<string name="downloadsessions">Sessões de descarregamentos</string>
<string name="downloadsessions_summary">Descarregar sessões remotas</string>
</resources>
<string name="widgetstreak3x1" tools:ignore="UnusedResources">Camada 3x1</string>
<string name="widgetstreak2x1" tools:ignore="UnusedResources">Camada 2x1</string>
<string name="widgetstreak1x1" tools:ignore="UnusedResources">Camada 1x1</string>
<string name="widgetpreset3x1" tools:ignore="UnusedResources">Predefinição 3x1</string>
<string name="widgetpreset2x1" tools:ignore="UnusedResources">Predefinição 2x1</string>
<string name="widgetpreset1x1" tools:ignore="UnusedResources">Predefinição 1x1</string>
<string name="sessionsUpToDate">Os dados locais estão atualizados</string>
<plurals name="sessionsDownloaded">
<item quantity="one">Descarregar %s sessão</item>
<item quantity="other">Descarregar %s sessões</item>
</plurals>
<string name="downloadsessionsmessage">As sessões anteriores serão descarregadas.
\n
\nEsta caixa de diálogo não aparecerá novamente.
\nPode descarregar as sessões mais tarde na janela Configurações.</string>
<string name="downloadsessionstitle">Descarregar sessões\?</string>
<string name="downloadSessionsHint">Clique em descarregar sessões nas configurações para recuperar as sessões ausentes.</string>
<string name="download">Descarregar</string>
<string name="notification">Notificação</string>
<string name="ringtone">Toque de notificação</string>
<string name="media">Média</string>
<string name="alarm">Alarme</string>
<string name="center">Centro</string>
<string name="top">Principal</string>
<string name="timerPosition">Posição do cronômetro</string>
<string name="local">Local</string>
<string name="utc">UTC</string>
<string name="importsessions_utc_or_local">Esta exportação tem datas e horas locais UTC\?
\n
\nAs exportações salvas desde a versão 1.5.6 têm datas e horas UTC.</string>
<string name="importsessions_complete">Encontrado %1$d existente e %2$d novo.</string>
<string name="importsessions_in_progress">Importando sessões…</string>
<string name="pref_meditation_sound_bell">Som do sino de atenção plena</string>
<string name="pref_autosave">Salvar automaticamente</string>
<string name="pref_audio_output">Saída de áudio</string>
<string name="custom">Customizado</string>
<string name="labelLong">Longo</string>
<string name="labelMedium">Médio</string>
<string name="labelShort">Curto</string>
<string name="start">Começar</string>
<string name="pref_meditation_vibrate_finish">Completar vibração</string>
<string name="pref_meditation_vibrate_interval">Intervalo de vibração</string>
<string name="pref_meditation_vibrate_start">Iniciar vibração</string>
<string name="vibrate">Vibrar</string>
<string name="sourceRepository">Repositório de código-fonte</string>
<string name="chooseDonationMethod">Por favor, escolha como gostaria de doar.
\n
\nLiberapay é o preferido pelo programador e oferece suporte a mais países e moedas.</string>
<string name="replayTutorial">Rever o tutorial</string>
<string name="whatIsMediNETHelp">MediNET é um repositório e comunidade de sessão de meditação online.
\n
\nPode escolher a armazenar as suas sessões na MediNET para evitar perda de dados e/ou compartilhar o seu progresso com outras pessoas online.
\n
\nEm vez disso, também pode optar por armazenar os dados da sessão apenas no aparelho.</string>
<string name="whatIsMediNET">MediNET visão global</string>
<string name="deactivate">Desativado</string>
<string name="interval">Intervalo</string>
<string name="mindfulnessBellActive">Sino de atenção plena ativo</string>
<string name="mindfulnessBell">Sino de atenção plena</string>
<string name="resources">Recursos</string>
<string name="pattern">Padronizar</string>
<string name="configureWidget">Configurar o widget</string>
<string name="setVibrationTip">Insira a quantidade de milissegundos para ligar ou desligar a vibração, separados por vírgulas.</string>
<string name="sessionPaused">Sessão pausada</string>
<string name="resume">Continuar</string>
<string name="editTimerHelp">A sua sessão pode ter uma duração determinada, pode durar até um horário específico do dia, ou pode simplesmente não ser cronometrada.
\n
\nConfigurações predefinidas podem ser usadas para guardar configurações comuns. Pressione e segure sobre uma configuração predefinida para relembrar a duração da sessão atual. Sons e outras configurações podem ser relembrados nas configurações predefinidas a ativar-as na configuração.
\n
\nApós pressionar OK, pressione Cancelar ou Confirmar para continuar.</string>
<string name="permissionRequired">Esta permissão é necessária.</string>
<string name="pref_theme_black">Preto</string>
</resources>

View File

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="appName">Помощник в Медитации</string>
<string name="appNameShort">Помощник в Медитации</string>
<string name="about">О программе</string>
<string name="yes">Да</string>
@ -22,7 +21,7 @@
<string name="timerHelp">Таймер установлен на 15 минут. Ты можешь поставить другую продолжительность, задать точное время для окончания, или отключить таймер. Нажми на на него сейчас, чтобы увидеть эти настройки.</string>
<string name="settingsHelp">В этом приложении есть много особенностей и настроек, такие как автоматическое выключение звуков вашего устройства и ежедневные напоминания о медитации. Чтобы посмотреть их сейчас, нажми на иконку настроек.</string>
<string name="medinetHelp">Подключись к MediNET, чтобы сохранить свои сеансы онлайн. Ты сможешь скачать их позже, если потеряешь эти данные. Это необязательная функция, сохранение сеансов только на устройстве не сделает твою практику хуже.\n\nНа этом обучение закончено. Я надеюсь, что Помощник в Медитации послужит на благо твоей практике.</string>
<string name="cancel">Отменить</string>
<string name="cancel">Отмена</string>
<string name="set">Выбрать</string>
<string name="confirm">Сохранить</string>
<string name="meditate">Медитировать</string>
@ -109,7 +108,6 @@
<string name="reminderText">Есть минутка?</string>
<!-- Settings -->
<string name="meditation">Медитация</string>
<string name="pref_vibrate">Вибрация</string>
<string name="pref_vibrate_summary">Используется в начале, на промежутках и в конце медитации</string>
<string name="pref_vibrate_reminder_summary">Ежедневные напоминания будут использовать вибрацию</string>
<string name="pref_sound_reminder">Включить звук</string>
@ -135,8 +133,6 @@
<string name="pref_rememberme_summary">Оставаться в системе после закрытия</string>
<string name="pref_rememberme">Запомнить меня</string>
<string name="pref_screencontrol">Экран</string>
<string name="pref_sendusage">Статистика использования</string>
<string name="pref_sendusage_summary">Анонимный отчёт через Google Analytics. Потребуется перезапуск</string>
<string name="pref_showstreak">Комбо медитаций</string>
<string name="pref_showstreak_summary">Отображать число дней подряд с хотя бы одной медитацией</string>
<string name="selectSound">Выбрать звук</string>
@ -169,7 +165,6 @@
<string name="extralarge">Огромный</string>
<string name="pref_notificationcontrol">Звонки и уведомления</string>
<string name="pref_notificationcontrol_vibrate">Поставить на вибрацию</string>
<string name="pref_notificationcontrol_silent">Убрать громкость</string>
<string name="pref_daily_reminder">Ежедневные напоминания</string>
<string name="pref_daily_reminder_title">Напоминать мне</string>
<string name="pref_daily_reminder_summary">Показывать уведомление, если сегодня не было сеанса</string>
@ -184,9 +179,6 @@
<string name="discard">Удалить</string>
<string name="save">Сохранить</string>
<string name="post">Опубликовать</string>
<string name="importSessionsHint">Нажми "Скачать сеансы" в настройках, чтобы вернуть недостающие сеансы.</string>
<string name="importsessionstitle">Скачать сеансы?</string>
<string name="importsessionsmessage">Прошлые сеансы будут загружены.\n\nЭто сообщение больше не будет появляться.\nТы можешь загрузить сеансы позже в окне настроек.</string>
<string name="wordimport">Скачать</string>
<string name="sessionDeletedMediNET">Сеанс удалён с MediNET</string>
<string name="sessionNotFoundMediNET">Сеанс не найден на MediNET</string>
@ -195,17 +187,11 @@
<item quantity="few">%s раза</item>
<item quantity="many">%s раз</item>
</plurals>
<plurals name="sessionsImported">
<item quantity="one">Импортирован %s сеанс</item>
<item quantity="few">Импортировано %s сеанса</item>
<item quantity="many">Импортировано %s сеансов</item>
</plurals>
<plurals name="sessionsUploaded">
<item quantity="one">Загружен %s сеанс</item>
<item quantity="few">Загружено %s сеанса</item>
<item quantity="many">Загружено %s сеансов</item>
</plurals>
<string name="sessionsNotImported">Личные данные обновлены</string>
<plurals name="daysOfMeditationMinimal">
<item quantity="one">%d день</item>
<item quantity="few">%d дня</item>
@ -230,21 +216,16 @@
<string name="rateMeditationAssistantText">Если это приложение помогает твоей практике медитации, пожалуйста, оцени его.\n\nВ платной версии этого приложения нет рекламы и добавлены виджеты для домашнего экрана. Если можешь, пожалуйста, подумай о покупке.\n\nЭто сообщение больше не будет появляться.</string>
<string name="translateMeditationAssistantText">Хочешь помочь Помощнику в Медитации расширить аудиторию, переведя его на другой язык?\n\nПеревод осуществляется на сайте онлайн. Ты можешь сделать это позже, зайдя на Перевод в окошке О программе.\n\nЭто сообщение больше не будет появляться.</string>
<!-- Widgets -->
<string name="widget1x1" tools:ignore="UnusedResources">Помощник в Медитации 1x1</string>
<string name="widget2x1" tools:ignore="UnusedResources">Помощник в Медитации 2x1</string>
<string name="widget3x1" tools:ignore="UnusedResources">Помощник в Медитации 3x1</string>
<string name="warning">Внимание</string>
<string name="openWith">Открыть с помощью</string>
<string name="installFileManager">Пожалуйста, установите файловый менеджер</string>
<string name="disableBatteryOptimizations">Meditation Assistant должна работать в фоне</string>
<string name="permissionRequest">Необходимы разрешения</string>
<string name="permissionRequestReadExternal">Необходимо разрешение на выбор звука устройства.</string>
<string name="permissionRequestNotificationControl">Пожалуйста, на следующем экране дайте программе доступ к режиму \"не беспокоить\".</string>
<string name="deny">Запретить</string>
<string name="tryAgain">Попробуйте ещё раз</string>
<string name="tryAgain">Попробуйте снова</string>
<string name="tapToLearnMore">Нажмите в любом месте, чтобы узнать больше</string>
<string name="donate">Пожертвование</string>
<string name="removeAds">Убрать рекламу</string>
<string name="pref_sessionintro">Приветствие</string>
<string name="postUpdatedSession">Отправить обновлённую сессию на MediNET\?</string>
<string name="totalTimeSpentMeditating">Общее время медитации</string>
@ -254,7 +235,7 @@
<string name="edit">Изменить</string>
<string name="exportSessions">Экспорт сеансов</string>
<string name="sessionExportFailed">Невозможно экспортировать сеансы</string>
<string name="showExportedSessions">Сеансы экспортированы. Вы хотите открыть папку с ними\?</string>
<string name="sessionExportWasSuccessful">Сеансы экспортированы.</string>
<string name="length">Продолжительность</string>
<string name="invalidLength">Неверная продолжительность</string>
<string name="editSessionMeditating">Невозможно изменить сеанс во время медитации</string>
@ -275,4 +256,31 @@
<string name="exportsessions_summary">Экспорт в CSV файл</string>
<string name="downloadsessions">Загрузить сеансы</string>
<string name="downloadsessions_summary">Загрузить удалённые сеансы</string>
<string name="streakdifferencewarning">Ваша текущая непрерывная серия медитации не кажется правильной, основываясь на данных текущей сессии. Обновить\?
\n
\nТекущая полоса: %1$d
\nОбновленная полоса: %2$d</string>
<string name="browser">Войти</string>
<string name="useBrowser">Использовать браузер:</string>
<string name="resume">Возобновить</string>
<string name="sessionPaused">Сессия приостановлена</string>
<string name="importsessions_in_progress">Импортируются данные сессий…</string>
<string name="importsessions_complete">Найдено существующих %1$d и новых %2$d.</string>
<string name="utc">UTC</string>
<plurals name="sessionsDownloaded">
<item quantity="one">Загружена %s сессия</item>
<item quantity="few">Загружены %s сессии</item>
<item quantity="many">Загружено %s сессий</item>
</plurals>
<string name="sessionsUpToDate">Данные на устройстве обновлены</string>
<string name="configureWidget">Настроить виджет</string>
<string name="widgetpreset1x1" tools:ignore="UnusedResources">Размер 1х1</string>
<string name="widgetpreset2x1" tools:ignore="UnusedResources">Размер 2х1</string>
<string name="widgetpreset3x1" tools:ignore="UnusedResources">Размер 3х1</string>
<string name="widgetstreak1x1" tools:ignore="UnusedResources">Полоса 1х1</string>
<string name="widgetstreak2x1" tools:ignore="UnusedResources">Полосой 2х1</string>
<string name="pref_autosave">Автосохранение</string>
<string name="permissionRequired">Требуется разрешение.</string>
<string name="chooseDonationMethod">Пожалуйста, выберете способ пожертвования
\nLiberapay предпочтителен для разработчиков и поддерживает наибольшее число стран и валют</string>
</resources>

View File

@ -1,11 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="appName">Meditation Assistenten Gratis</string>
<string name="appNameShort">Meditation Assistent</string>
<string name="about">Om appen</string>
<string name="yes">Jo</string>
<string name="no">Nej</string>
<string name="openWith">Öpnna med</string>
<string name="openWith">Öppna med</string>
<string name="delete">Ta bort</string>
<string name="sessions">Sessioner</string>
<string name="rate">Betygsätt</string>
@ -17,7 +16,6 @@
<string name="groups">Grupper</string>
<string name="installFileManager">Var vänlig installera en filhanterare</string>
<!-- Permissions -->
<string name="permissionRequestReadExternal">Tillstånd krävs för att välja en extern ljudfil på enheten.</string>
<!-- Main Activity -->
<string name="timerHelp">Timern är för närvarande satt till 15 minuter. Du kan ändra längden, avsluta vid en specifik tidpunkt på dagen, eller avaktivera alarmet helt. Klicka på timern nu för att se dessa alternativ.</string>
<string name="cancel">Avbryt</string>
@ -62,4 +60,22 @@
</plurals>
<!-- Widgets -->
<!-- Meta -->
<string name="warning">Varning</string>
<string name="forum">Forum</string>
<string name="disableBatteryOptimizations">Meditation Assistant behöver köras i bakgrunden</string>
<string name="permissionRequest">Åtkomstbegäran</string>
<string name="deny">Neka</string>
<string name="tryAgain">Försök igen</string>
<string name="confirm">Bekräfta</string>
<string name="meditate">Meditera</string>
<string name="tapToSkip">Hoppa över</string>
<string name="pause">Paus</string>
<string name="end">Avsluta</string>
<string name="resumeOrEnd">Återuppta eller avsluta</string>
<string name="pausedNotification">Sessionen är pausad, håll kvar för att avsluta</string>
<string name="mediNETConnecting">Ansluter…</string>
<string name="mediNETConnected">Ansluten till MediNET</string>
<string name="resume">Återuppta</string>
<string name="permissionRequired">Denna åtkomst är obligatorisk.</string>
<string name="sendEmail">Skicka e-post</string>
</resources>

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View File

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="appName">Bedava Meditasyon Asistanı </string>
<string name="appNameShort">Meditasyon Asistanı</string>
<string name="about">Hakkında</string>
<string name="yes">Evet</string>
@ -21,14 +20,13 @@
<string name="installFileManager">Lütfen bir dosya yöneticisi indirin</string>
<!-- Permissions -->
<string name="permissionRequest">İzin İsteği</string>
<string name="permissionRequestReadExternal">Bu izin istenilen ses dosyasını seçmek için gerekli</string>
<string name="permissionRequestNotificationControl">Rahatsız etme modunu kontrol edebilmemiz için lütfen sonraki ekranda yetki verin</string>
<string name="permissionRequestNotificationControl">Rahatsız etme modunu kontrol edebilmemiz için lütfen sonraki ekranda yetki verin.</string>
<string name="deny">Reddet</string>
<string name="tryAgain">Tekrar dene</string>
<!-- Main Activity -->
<string name="timer">Zamanlayıcı</string>
<string name="timerHelp">Zamanlayıcı şu anda 15 dakikaya ayarlı. Süreyi değiştirebilirsin, günün istediğin zamanında bitirtebilirsin veya alarmı tamamen kapatabilirsin. Bu ayarlara erişmek için zamanlayıcıya dokun</string>
<string name="settingsHelp">Bu uygulama birçok özellik ve özelleştirme imkanı sunuyor, örnek olarak otomatik bir şekilde telefonu sessize almak ve meditasyon için günlük hatırlatıcı sağlamak gibi. Şu anda ayarlar kısmına dokunarak bu seçeneklere erişebilirsiniz</string>
<string name="timerHelp">Kısa bir eğitime hoş geldiniz. Bu, seans zamanlayıcısıdır. Zamanlayıcı modunu ve süresini değiştirmek için şimdi ona dokunun.</string>
<string name="settingsHelp">Bu uygulama çok sayıda özellik ve özelleştirme içermektedir. Bu seçenekleri görmek için Ayarlar simgesine dokunun.</string>
<string name="medinetHelp">MediNet e giriş yaparak seansları internet üzerinde kaydet. Böylelikle eğer verileri kaybedersen oradan içeri aktarabilirsin. Bu işlem tamamen sana kalmış, seansları yerel şekilde kaydetmen deneyimini olumsuz etkilemeyecektir.\n\nBu eğitim kısmını da içerir. Umarım meditasyon asistanı alıştırmalarına yararlı olur.</string>
<string name="cancel">İptal</string>
<string name="set">Ayarla</string>
@ -40,7 +38,7 @@
<string name="pauseOrEnd">Durdur veya bitir</string>
<string name="resumeOrEnd">Devam et veya bitir</string>
<string name="pausedNotification">Seans duraklatıldı, bitirmek için basılı tutun</string>
<string name="mediNETConnecting">Bağlanıyor..</string>
<string name="mediNETConnecting">Bağlanıyor</string>
<string name="mediNETConnected">MediNet\'e bağlandı</string>
<string name="sessionInProgress">Seans devam ediyor</string>
<string name="progress">İlerleme</string>
@ -56,4 +54,7 @@
<!-- MediNET -->
<!-- Widgets -->
<!-- Meta -->
<string name="warning">Uyarı</string>
<string name="disableBatteryOptimizations">Meditasyon Asistanı arka planda çalışmalıdır</string>
<string name="permissionRequired">Bu izin gereklidir.</string>
</resources>

View File

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="appName">Асистент Медитації безкоштовний</string>
<string name="appNameShort">Асистент Медитації</string>
<string name="about">Про програму</string>
<string name="yes">Так</string>
@ -20,7 +19,6 @@
<string name="announcement">оголошення</string>
<!-- Permissions -->
<string name="permissionRequest">Запит на дозвіл</string>
<string name="permissionRequestReadExternal">Цей дозвіл потрібен для вибору звукового файлу користувача на пристрої.</string>
<string name="permissionRequestNotificationControl">Будь ласка дозвольте доступ на наступному екрані, щоб управляти "Не заважати".</string>
<string name="deny">Відмовитись</string>
<string name="tryAgain">Спробувати ще раз</string>
@ -29,7 +27,7 @@
<string name="timerHelp">Таймер зараз налаштовано на 15 хвилин. Ви можете змінити тривалість, закінчити у визначений час доби або відключити сигнал повністю. Доторкніться зараз до таймера щоб оглянути ці параметри.</string>
<string name="settingsHelp">Цей додаток має багато особливостей та особистих налаштувань, таких як автоматично вимкнути звук вашого пристрою та забезпечити щоденний нагадувач медитації. Доторкніться до іконки "Налаштування" щоб оглянути ці параметри.</string>
<string name="medinetHelp">Увійдіть до MediNET щоб зберегти ваші сеанси онлайн. Ви можете імпортувати ваші сеанси пізніше, якщо ви втратите свої дані. Ця можливість зовсім необов\'язкова, зберігання сеансів на пристрої не перешкоджатиме вашому досвіду. Це кінець посібника. Я надіюсь, що Асистент Медитації буде корисним для вашої практики.</string>
<string name="cancel">Відмінити</string>
<string name="cancel">Скасувати</string>
<string name="set">Налаштувати</string>
<string name="confirm">Підтвердити</string>
<string name="meditate">Медитувати</string>
@ -61,8 +59,6 @@
<string name="version">Версія %s</string>
<string name="translate">Перекласти</string>
<string name="donate">Пожертвувати</string>
<string name="removeAds">Видалити оголошення</string>
<string name="removeAdsHelp">Повна версія додатку Асистент Медитації це окремий додаток.\n\n Щоб зберегти існуючі сеанси, увійдіть до MediNET та натисніть "Завантажити сеанси" у вікні налаштувань.\n\n Відкрийте повну версію та увійдіть до MediNET ще раз, тоді натисніть "Імпортувати".</string>
<string name="howToMeditate">Як медитувати</string>
<string name="share">Поділитися</string>
<!--Short text displayed in sent application invitations [CHAR LIMIT=100] -->
@ -78,7 +74,7 @@
<!-- Session complete -->
<string name="sessioncomplete">Сеанс завершено.</string>
<string name="sessionMessagePlaceholder">Повідомлення</string>
<string name="askDiscardText">Відмінити сеанс?</string>
<string name="askDiscardText">Скасувати сеанс\?</string>
<string name="sessionPosting">Розміщення сеансу...</string>
<string name="sessionPosted">Сеанс розміщено до MediNET.</string>
<string name="sessionAlreadyPosted">Сеанс вже розміщено.</string>
@ -123,7 +119,6 @@
<string name="reminderText">Чи маєте ви трохи часу?</string>
<!-- Settings -->
<string name="meditation">Медитація</string>
<string name="pref_vibrate">Вібрація</string>
<string name="pref_vibrate_summary">Відбувається на початку, у проміжках та вкінці медитації</string>
<string name="pref_vibrate_reminder_summary">Щоденний нагадувач буде вібрувати приладом.</string>
<string name="pref_sound_reminder">Відтворити звук</string>
@ -152,8 +147,6 @@
<string name="pref_sessionvolume">Гучність</string>
<string name="pref_sessionvolume_summary">Попередня гучність буде відновлена після закінчення сеансу</string>
<string name="pref_screencontrol">Екран</string>
<string name="pref_sendusage">Повідомити статистику використання</string>
<string name="pref_sendusage_summary">Анонімні повідомлення через Google Analytics. Запрацює після перезапуску.</string>
<string name="pref_showstreak">Показати наполегливість в медитації</string>
<string name="pref_showstreak_summary">Кількість днів поспіль з принаймні одним записаним сеансом</string>
<string name="selectSound">Вибрати звук</string>
@ -171,8 +164,8 @@
<string name="pref_notification_summary">Показано під час медитації коли головне вікно звернуте</string>
<string name="pref_usetimepicker">Альтернативний інтерфейс тривалості</string>
<string name="pref_usetimepicker_summary">Використайте бігунки годин та хвилин, коли змінюєте тривалість.</string>
<string name="pref_askdismiss">Питати перед відміною</string>
<string name="pref_askdismiss_summary">Підтверджувати перед відміною сеансу</string>
<string name="pref_askdismiss">Питати перед скасуванням</string>
<string name="pref_askdismiss_summary">Підтверджувати перед скасуванням сеансу</string>
<string name="pref_mainbuttons">Сховати кнопки</string>
<string name="pref_progresstab">Вкладка прогресу за замовчуванням</string>
<string name="importsessions">Імпортувати сеанси.</string>
@ -191,7 +184,6 @@
<string name="pref_notificationcontrol_priority">Тільки важливе</string>
<string name="pref_notificationcontrol_alarms">Тільки нагадування</string>
<string name="pref_notificationcontrol_vibrate">Увімкнути вібрацію</string>
<string name="pref_notificationcontrol_silent">Увімкнути беззвучний режим</string>
<string name="pref_daily_reminder">Щоденний нагадувач</string>
<string name="pref_daily_reminder_title">Нагадати мені</string>
<string name="pref_daily_reminder_summary">Показати повідомлення, якщо сьогодні не було записано жодного сеансу.</string>
@ -203,13 +195,9 @@
<string name="mediNET">MediNET</string>
<string name="unableToConnect">Неможливо під\'єднатись до MediNET.</string>
<string name="dismiss">Пропустити</string>
<string name="discard">Відмінити</string>
<string name="discard">Скасувати</string>
<string name="save">Зберегти</string>
<string name="post">Розмістити</string>
<string name="importSessionsHint">Натисніть "Імпортувати сеанси" в налаштуваннях щоб отримати бракуючі сеанси.</string>
<string name="importsessionstitle">Імпортувати сеанси?</string>
<string name="importsessionsmessage">Попередні сеанси буде імпортовано. \n\nЦе вікно більше не з\'являтиметься.
\nВи можете пізніше імпортувати сеанси з вікна налаштувань.</string>
<string name="wordimport">Імпортувати</string>
<string name="sessionDeletedMediNET">Сеанс видалено з MediNET.</string>
<string name="sessionNotFoundMediNET">Сеанс не знайдено на MediNET.</string>
@ -217,15 +205,10 @@
<item quantity="one">%s раз</item>
<item quantity="other">%s разів</item>
</plurals>
<plurals name="sessionsImported">
<item quantity="one">Імпортовано %s сеанс</item>
<item quantity="other">Імпортовано %s сеансів.</item>
</plurals>
<plurals name="sessionsUploaded">
<item quantity="one">Завантажено %s сеанс</item>
<item quantity="other">Завантажено %s сеансів.</item>
</plurals>
<string name="sessionsNotImported">Дані пристрою поновлені.</string>
<plurals name="daysOfMeditationMinimal">
<item quantity="one">%d день</item>
<item quantity="other">%d днів</item>
@ -247,7 +230,4 @@
<string name="rateMeditationAssistantText">Якщо ви вважаєте цей додаток корисним для вашої практики медитацій, чи не могли б ви додати оцінку?\n\nПлатна версія додатку не містить оголошень та має віджет для головного екрану. Будь ласка, розглядьте питання про придбання, якщо ви взмозі.\n\nЦе вікно більше не з\'являтиметься.</string>
<string name="translateMeditationAssistantText">Чи могли б ви будь ласка допомогти Асистенту Медитацій досягнути ширшої аудиторії перекладаючи його іншою мовою?\n\nПереклад легко виконати за допомогою веб-інтерфейсу. Ви можете відвідати сторінку перекладу пізніше натиснувши "Перекласти" з вікна "Про програму".\n\nЦе вікно більше не з\'являтиметься.</string>
<!-- Widgets -->
<string name="widget1x1" tools:ignore="UnusedResources">Асистент медитації 1х1</string>
<string name="widget2x1" tools:ignore="UnusedResources">Асистент медитації 2х1</string>
<string name="widget3x1" tools:ignore="UnusedResources">Асистент медитації 3х1</string>
</resources>

View File

@ -1,8 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="empty_array">
</string-array>
<string-array name="empty_array"></string-array>
<string-array name="session_actions">
<item>@string/post</item>
<item>@string/delete</item>
@ -12,6 +11,14 @@
<item>@string/sessionDeleteLocally</item>
<item>@string/sessionDeleteMediNET</item>
</string-array>
<string-array name="timer_positions_values">
<item></item>
<item>center</item>
</string-array>
<string-array name="timer_positions">
<item>@string/top</item>
<item>@string/center</item>
</string-array>
<string-array name="text_sizes_values">
<item>tiny</item>
<item>small</item>
@ -73,12 +80,14 @@
<item>light</item>
<item>lightdark</item>
<item>dark</item>
<item>black</item>
</string-array>
<string-array name="mathemes">
<item>@string/buddhism</item>
<item>@string/pref_theme_light</item>
<item>@string/pref_theme_lightdark</item>
<item>@string/pref_theme_dark</item>
<item>@string/pref_theme_black</item>
</string-array>
<string-array name="notificationcontrol_values">
<item></item>
@ -122,15 +131,30 @@
<item>@string/duringSession</item>
<item>@string/always</item>
</string-array>
<string-array name="audio_output_values">
<item></item>
<item>media</item>
<item>ringtone</item>
<item>notification</item>
</string-array>
<string-array name="audio_output">
<item>@string/alarm</item>
<item>@string/media</item>
<item>@string/ringtone</item>
<item>@string/notification</item>
</string-array>
<string-array name="presetsettings_values">
<item>modeandduration</item>
<item>introduction</item>
<item>delay</item>
<item>startsound</item>
<item>startvibration</item>
<item>intervalduration</item>
<item>intervalsound</item>
<item>intervalvibration</item>
<item>intervalcount</item>
<item>completesound</item>
<item>completevibration</item>
<item>ringtone</item>
<item>volume</item>
<item>endless</item>
@ -141,14 +165,16 @@
<item>@string/pref_sessionintro</item>
<item>@string/pref_delay</item>
<item>@string/pref_meditation_sound_start</item>
<item>@string/pref_meditation_vibrate_start</item>
<item>@string/pref_interval</item>
<item>@string/pref_meditation_sound_interval</item>
<item>@string/pref_meditation_vibrate_interval</item>
<item>@string/pref_interval_count</item>
<item>@string/pref_meditation_sound_finish</item>
<item>@string/pref_meditation_vibrate_finish</item>
<item>@string/pref_notificationcontrol</item>
<item>@string/pref_sessionvolume</item>
<item>@string/pref_softfinish</item>
<item>@string/pref_vibrate</item>
</string-array>
<string-array name="presetsettings_default">
<item>modeandduration</item>
@ -163,5 +189,19 @@
<item>save</item>
<item>post</item>
</string-array>
<string-array name="vibration_values">
<item></item>
<item>short</item>
<item>medium</item>
<item>long</item>
<item>custom</item>
</string-array>
<string-array name="vibration">
<item>@string/disabled</item>
<item>@string/labelShort</item>
<item>@string/labelMedium</item>
<item>@string/labelLong</item>
<item>@string/custom</item>
</string-array>
</resources>

View File

@ -5,6 +5,7 @@
<attr name="actionIconVolumeOn" format="reference"/>
<attr name="actionIconNotImportant" format="reference"/>
<attr name="actionIconInfo" format="reference"/>
<attr name="actionIconResources" format="reference"/>
<attr name="actionIconSettings" format="reference"/>
<attr name="actionIconNetworkCell" format="reference"/>
<attr name="actionIconBrightnessLow" format="reference"/>

View File

@ -28,8 +28,9 @@
<string name="tryAgain">Try Again</string>
<!-- Main Activity -->
<string name="timer">Timer</string>
<string name="timerHelp">The timer is currently set to 15 minutes. You can change the duration, end at a specific time of the day, or deactivate the alarm entirely. Tap the timer now to see these options.</string>
<string name="settingsHelp">This application includes many features and customizations, such as automatically silencing your device and providing a daily reminder to meditate. Tap the Settings icon now to see these options.</string>
<string name="timerHelp">Welcome to a brief tutorial. This is the session timer. Tap it now to change the timer mode and duration.</string>
<string name="editTimerHelp">Your session may be a specific duration, may last until a specific time of day, or may not be timed at all.\n\nPresets may be used to store common configurations. Press and hold a preset to remember the current session duration. Sounds and other settings may also be remembered by presets by enabling them in "Preset Settings".\n\nAfter tapping OK, tap Cancel or Confirm to continue.</string>
<string name="settingsHelp">This application includes numerous features and customizations. Tap the Settings icon to see these options.</string>
<string name="medinetHelp">Sign in to MediNET to save your sessions online. You can import your sessions later if you lose your data. This feature is entirely optional, storing sessions locally will not hinder your experience.\n\nThis concludes the tutorial. I hope that Meditation Assistant will be beneficial for your practice.</string>
<string name="cancel">Cancel</string>
<string name="set">Set</string>
@ -51,8 +52,10 @@
<string name="setPresetHint">Hold to set preset</string>
<string name="setPresetTip">Choose which settings to restore by tapping the gear icon (Settings), then tap Preset settings.</string>
<string name="setPresetHintBlank">Enter a duration (or end time) to set preset</string>
<string name="setVibrationTip">Enter the number of milliseconds to turn the vibrator on or off, separated by commas.</string>
<string name="configureWidget">Configure Widget</string>
<string name="label">Label</string>
<string name="pattern">Pattern</string>
<string name="setTimerDurationHint">Enter a valid duration (e.g. 0:22)</string>
<string name="setTimerEndAtHint">Enter a valid time (e.g. 4:20)</string>
<string name="invalidEndAt">Invalid time to end session</string>
@ -61,6 +64,15 @@
<string name="untimed">Untimed</string>
<string name="unlimited">Unlimited</string>
<string name="presetLabelEndAt">End %s</string>
<string name="resources">Resources</string>
<string name="mindfulnessBell">Mindfulness bell</string>
<string name="mindfulnessBellActive">Mindfulness bell active</string>
<string name="interval">Interval</string>
<string name="deactivate">Deactivate</string>
<string name="howToMeditate">How to meditate</string>
<string name="whatIsMediNET">MediNET overview</string>
<string name="whatIsMediNETHelp">MediNET is an online meditation session repository and community.\n\nYou may choose to store your sessions on MediNET to prevent data loss and/or to share your progress with others online.\n\nYou may instead choose to store session data on the device only.</string>
<string name="replayTutorial">Replay tutorial</string>
<!-- About -->
<string name="tapToLearnMore">Tap anywhere to learn more</string>
<string name="sendEmail">Send email</string>
@ -68,8 +80,8 @@
<string name="translate">Translate</string>
<string name="donate">Donate</string>
<string name="chooseDonationMethod">Please choose how you would like to donate.\n\nLiberapay is preferred by the developer and supports more countries and currencies.</string>
<string name="howToMeditate">How to Meditate</string>
<string name="share">Share</string>
<string name="sourceRepository">Source Code Repository</string>
<!--Short text displayed in sent application invitations [CHAR LIMIT=100] -->
<string name="invitationBlurb">Meditation Assistant is a fully featured companion to your practice.</string>
<!-- Sessions -->
@ -119,7 +131,7 @@
<string name="edit">Edit</string>
<string name="exportSessions">Export sessions</string>
<string name="sessionExportFailed">Unable to export sessions</string>
<string name="showExportedSessions">Sessions exported. Would you like to browse the folder containing the export?</string>
<string name="sessionExportWasSuccessful">Sessions exported.</string>
<string name="sessionStartedAt">Started at %s</string>
<string name="started">Started</string>
<string name="completed">Completed</string>
@ -141,7 +153,10 @@
<string name="reminderText">Do you have a moment?</string>
<!-- Settings -->
<string name="meditation">Meditation</string>
<string name="pref_vibrate">Vibrate</string>
<string name="vibrate">Vibrate</string>
<string name="pref_meditation_vibrate_start">Start vibration</string>
<string name="pref_meditation_vibrate_interval">Interval vibration</string>
<string name="pref_meditation_vibrate_finish">Complete vibration</string>
<string name="pref_vibrate_summary">Occurs at the beginning, intervals, and end of meditation</string>
<string name="pref_vibrate_reminder_summary">The daily reminder will vibrate the device</string>
<string name="pref_sound_reminder">Play sound</string>
@ -152,6 +167,11 @@
<string name="disabled">Disabled</string>
<string name="none">None</string>
<string name="noSpecialBehavior">No special behavior</string>
<string name="start">Start</string>
<string name="labelShort">Short</string>
<string name="labelMedium">Medium</string>
<string name="labelLong">Long</string>
<string name="custom">Custom</string>
<string name="noSound">No sound</string>
<string name="customSound">Custom sound</string>
<string name="duringSession">During session</string>
@ -163,6 +183,7 @@
<string name="pref_display_seconds_summary">Shown below the main timer</string>
<string name="pref_meditationstreakbuffer">Streak resets at</string>
<string name="pref_full_screen">Full screen</string>
<string name="pref_audio_output">Audio output</string>
<string name="pref_delay">Delay</string>
<string name="pref_interval">Interval duration</string>
<string name="pref_interval_count">Interval count</string>
@ -174,20 +195,20 @@
<string name="pref_sessionvolume">Volume</string>
<string name="pref_sessionvolume_summary">Previous volume will be restored once the session is complete.</string>
<string name="pref_screencontrol">Screen</string>
<string name="pref_sendusage">Report usage statistics</string>
<string name="pref_sendusage_summary">Anonymous reporting via Google Analytics. Takes effect on restart</string>
<string name="pref_showstreak">Display meditation streak</string>
<string name="pref_showstreak_summary">Number of consecutive days with at least one recorded session</string>
<string name="selectSound">Select sound</string>
<string name="pref_meditation_sound_start">Start sound</string>
<string name="pref_meditation_sound_interval">Interval sound</string>
<string name="pref_meditation_sound_finish">Complete sound</string>
<string name="pref_meditation_sound_bell">Mindfulness bell sound</string>
<string name="pref_remembermessage">Remember last message</string>
<string name="pref_remembermessage_summary">Default to the previous message</string>
<string name="pref_theme">Holographic theme</string>
<string name="pref_theme_light">Light</string>
<string name="pref_theme_lightdark">Light with dark action bar</string>
<string name="pref_theme_dark">Dark</string>
<string name="pref_theme_black">Black</string>
<string name="buddhism">Buddhism</string>
<string name="pref_widgetcolor">Widget color</string>
<string name="pref_notification">Notification</string>
@ -212,12 +233,19 @@
<string name="uploadsessions">Upload sessions</string>
<string name="uploadsessions_summary">Upload local sessions</string>
<string name="miscellaneous">Miscellaneous</string>
<string name="pref_text_size">Timer text size</string>
<string name="timerPosition">Timer position</string>
<string name="top">Top</string>
<string name="center">Center</string>
<string name="pref_text_size">Timer size</string>
<string name="tiny">Tiny</string>
<string name="small">Small</string>
<string name="normal">Normal</string>
<string name="large">Large</string>
<string name="extralarge">Extra-large</string>
<string name="alarm">Alarm</string>
<string name="media">Media</string>
<string name="ringtone">Ringtone</string>
<string name="notification">Notification</string>
<string name="restartApp">Restart application to apply new settings</string>
<string name="pref_notificationcontrol">Ringtone and notifications</string>
<string name="pref_notificationcontrol_priority">Priority only</string>
@ -297,7 +325,7 @@
\n(Sharing progress of days with meditation motivates daily sessions, even for five or ten minutes.)
\n
\nMeditation Assistant is copylefted libre software.
\nDo send in your problem/idea or fix: https://gitlab.com/tslocum/meditationassistant/issues
\nDo send in your problem/idea or fix: https://code.rocketnine.space/tslocum/meditationassistant/issues
\nSeveral features originated as user ideas.
\n
\nTranslate Meditation Assistant: https://www.getlocalization.com/meditationassistant/

View File

@ -26,6 +26,7 @@
<item name="actionIconVolumeOn">@drawable/ic_action_volume_on_light</item>
<item name="actionIconNotImportant">@drawable/ic_action_not_important_light</item>
<item name="actionIconInfo">@drawable/ic_action_info_light</item>
<item name="actionIconResources">@drawable/ic_book_black_24dp</item>
<item name="actionIconSettings">@drawable/ic_action_settings_light</item>
<item name="actionIconNetworkCell">@drawable/ic_action_network_cell_light</item>
<item name="actionIconBrightnessLow">@drawable/ic_action_brightness_low_light</item>
@ -73,6 +74,7 @@
<!-- Used in action bars -->
<item name="actionIconNotImportant">@drawable/ic_action_not_important</item>
<item name="actionIconInfo">@drawable/ic_action_info</item>
<item name="actionIconResources">@drawable/ic_book_white_24dp</item>
<item name="actionIconSettings">@drawable/ic_action_settings</item>
<item name="actionIconAccounts">@drawable/ic_action_accounts</item>
<item name="actionIconRefresh">@drawable/ic_action_refresh</item>
@ -96,6 +98,7 @@
<item name="actionIconVolumeOn">@drawable/ic_action_volume_on</item>
<item name="actionIconNotImportant">@drawable/ic_action_not_important</item>
<item name="actionIconInfo">@drawable/ic_action_info</item>
<item name="actionIconResources">@drawable/ic_book_white_24dp</item>
<item name="actionIconSettings">@drawable/ic_action_settings</item>
<item name="actionIconNetworkCell">@drawable/ic_action_network_cell</item>
<item name="actionIconBrightnessLow">@drawable/ic_action_brightness_low</item>
@ -125,11 +128,16 @@
<item name="alertDialogTheme">@style/MeditationDarkDialogTheme</item>
</style>
<style name="MeditationBlackTheme" parent="MeditationDarkTheme">
<item name="android:windowBackground">@android:color/black</item>
</style>
<style name="MeditationLightDialogTheme" parent="android:Theme.Holo.Light.Dialog">
<item name="actionIconTime">@drawable/ic_action_time_light</item>
<item name="actionIconVolumeOn">@drawable/ic_action_volume_on_light</item>
<item name="actionIconNotImportant">@drawable/ic_action_not_important_light</item>
<item name="actionIconInfo">@drawable/ic_action_info_light</item>
<item name="actionIconResources">@drawable/ic_book_black_24dp</item>
<item name="actionIconSettings">@drawable/ic_action_settings_light</item>
<item name="actionIconNetworkCell">@drawable/ic_action_network_cell_light</item>
<item name="actionIconBrightnessLow">@drawable/ic_action_brightness_low_light</item>
@ -159,6 +167,7 @@
<item name="actionIconVolumeOn">@drawable/ic_action_volume_on</item>
<item name="actionIconNotImportant">@drawable/ic_action_not_important</item>
<item name="actionIconInfo">@drawable/ic_action_info</item>
<item name="actionIconResources">@drawable/ic_book_white_24dp</item>
<item name="actionIconSettings">@drawable/ic_action_settings</item>
<item name="actionIconNetworkCell">@drawable/ic_action_network_cell</item>
<item name="actionIconBrightnessLow">@drawable/ic_action_brightness_low</item>
@ -183,6 +192,11 @@
<item name="numberPickerStyle">@style/NPWidget.Holo.NumberPicker</item>
</style>
<style name="MeditationBlackDialogTheme" parent="MeditationDarkDialogTheme">
<item name="android:background">@android:color/black</item>
<item name="android:windowBackground">@android:color/black</item>
</style>
<!-- You can also inherit from NNF_BaseTheme.Light -->
<style name="FilePickerTheme" parent="NNF_BaseTheme">
<!-- Need to set this also to style create folder dialog -->

View File

@ -94,6 +94,7 @@
<item name="actionIconVolumeOn">@drawable/ic_action_volume_on</item>
<item name="actionIconNotImportant">@drawable/ic_action_not_important</item>
<item name="actionIconInfo">@drawable/ic_action_info</item>
<item name="actionIconResources">@drawable/ic_book_white_24dp</item>
<item name="actionIconSettings">@drawable/ic_action_settings</item>
<item name="actionIconNetworkCell">@drawable/ic_action_network_cell</item>
<item name="actionIconBrightnessLow">@drawable/ic_action_brightness_low</item>

View File

@ -1,13 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
tools:ignore="TypographyDashes">
<!-- the Local LogLevel for Analytics -->
<string name="ga_logLevel">verbose</string>
<!-- how often the dispatcher should fire -->
<integer name="ga_dispatchPeriod">30</integer>
<!-- Treat events as test events and don't send to google -->
<bool name="ga_dryRun">false</bool>
</resources>

View File

@ -1,18 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
tools:ignore="TypographyDashes,UnusedResources">
<!-- Replace placeholder ID with your tracking ID -->
<string name="ga_trackingId">UA-71983-51</string>
<string name="ga_sampleFrequency">100.0</string>
<!-- Enable Activity tracking -->
<bool name="ga_autoActivityTracking">true</bool>
<!-- Enable automatic exception tracking -->
<bool name="ga_reportUncaughtExceptions">true</bool>
<integer name="ga_sessionTimeout">-1</integer>
</resources>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<paths>
<external-path
name="external"
path="." />
<external-files-path
name="external_files"
path="." />
<cache-path
name="cache"
path="." />
<external-cache-path
name="external_cache"
path="." />
<files-path
name="files"
path="." />
</paths>

View File

@ -16,4 +16,12 @@
android:fragment="sh.ftp.rocketninelabs.meditationassistant.SettingsActivity$MediNETPreferenceFragment"
android:title="@string/mediNET"/>
<header
android:fragment="sh.ftp.rocketninelabs.meditationassistant.SettingsActivity$ReminderPreferenceFragment"
android:title="@string/pref_daily_reminder"/>
<header
android:fragment="sh.ftp.rocketninelabs.meditationassistant.SettingsActivity$MiscellaneousPreferenceFragment"
android:title="@string/miscellaneous"/>
</preference-headers>

Some files were not shown because too many files have changed in this diff Show More