Compare commits
32 Commits
v2.0.9-bet
...
v2.0.11
Author | SHA1 | Date | |
---|---|---|---|
863b8f79d8 | |||
857a8009b6 | |||
9199f28ad9 | |||
ddb1b7494a | |||
fd2b1ba976 | |||
90f0d7de00 | |||
66ad5e0839 | |||
2ac7e072e5 | |||
a3392dabcf | |||
c2c54a04d2 | |||
2c237058b3 | |||
aa2b4b0510 | |||
4c27d1dd9b | |||
eba5575ee2 | |||
aff7e407ca | |||
f7fc31d968 | |||
90b588603d | |||
5d9bd11abb | |||
01005ec443 | |||
eaf6400e8b | |||
30339c7375 | |||
87da284be4 | |||
573c6d03e5 | |||
79e87b0648 | |||
9e9a91690e | |||
5f699af509 | |||
aae40b9dd3 | |||
26b1948b70 | |||
af64818dff | |||
f28596c194 | |||
7f41a92a91 | |||
40c9253159 |
4
.gitignore
vendored
@ -1,12 +1,10 @@
|
||||
*.iml
|
||||
.gradle
|
||||
/local.properties
|
||||
/.idea/workspace.xml
|
||||
/.idea/libraries
|
||||
/.idea/*
|
||||
.DS_Store
|
||||
/build
|
||||
/captures
|
||||
.externalNativeBuild
|
||||
/tasksintegration/build
|
||||
apikey.properties
|
||||
/app/google-services.json
|
||||
|
BIN
.idea/caches/build_file_checksums.ser
generated
@ -13,6 +13,13 @@ Also, as much as possible, there are always updates and new features in the shor
|
||||
Help me developing with feedback and support me on how you can.
|
||||
<div style="text-align:center"><a href="https://play.google.com/store/apps/details?id=com.tommasoberlose.anotherwidget" target="_blank"><img src="google-play-badge.png" height="100" /></a></div>
|
||||
|
||||
|
||||
Help with translations
|
||||
-------
|
||||
|
||||
Hey! You could view the file strings.xml ([here](https://github.com/tommasoberlose/another-widget/blob/master/app/src/main/res/values/strings.xml)) that contains the English version of the app strings.
|
||||
You have to copy the file, create a copy of it inside the folder values-[LANGUAGE-SUFFIX] with the translated strings and create a pull request to submit your changes.
|
||||
|
||||
License
|
||||
-------
|
||||
Copyright (C) 2017-2020 Tommaso Berlose (http://tommasoberlose.com)
|
||||
|
@ -10,10 +10,6 @@ apply plugin: 'kotlin-android-extensions'
|
||||
|
||||
apply plugin: 'realm-android'
|
||||
|
||||
def apiKeyPropertiesFile = rootProject.file("apikey.properties")
|
||||
def apiKeyProperties = new Properties()
|
||||
apiKeyProperties.load(new FileInputStream(apiKeyPropertiesFile))
|
||||
|
||||
android {
|
||||
compileSdkVersion 29
|
||||
buildToolsVersion "29.0.3"
|
||||
@ -22,12 +18,10 @@ android {
|
||||
applicationId "com.tommasoberlose.anotherwidget"
|
||||
minSdkVersion 23
|
||||
targetSdkVersion 29
|
||||
versionCode 93
|
||||
versionName "2.0.9"
|
||||
versionCode 100
|
||||
versionName "2.0.11"
|
||||
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
|
||||
manifestPlaceholders = [ "AWARENESS_API_KEY": apiKeyProperties['AWARENESS_API_KEY']]
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
|
@ -46,7 +46,22 @@ class EventRepository(val context: Context) {
|
||||
|
||||
fun getNextEvent(): Event? {
|
||||
val nextEvent = getEventByEventId(Preferences.nextEventId)
|
||||
val event = if (nextEvent != null && nextEvent.endDate > Calendar.getInstance().timeInMillis) {
|
||||
val now = Calendar.getInstance().timeInMillis
|
||||
val limit = Calendar.getInstance().apply {
|
||||
timeInMillis = now
|
||||
when (Preferences.showUntil) {
|
||||
0 -> add(Calendar.HOUR, 3)
|
||||
1 -> add(Calendar.HOUR, 6)
|
||||
2 -> add(Calendar.HOUR, 12)
|
||||
3 -> add(Calendar.DAY_OF_MONTH, 1)
|
||||
4 -> add(Calendar.DAY_OF_MONTH, 3)
|
||||
5 -> add(Calendar.DAY_OF_MONTH, 7)
|
||||
6 -> add(Calendar.MINUTE, 30)
|
||||
7 -> add(Calendar.HOUR, 1)
|
||||
else -> add(Calendar.HOUR, 6)
|
||||
}
|
||||
}
|
||||
val event = if (nextEvent != null && nextEvent.endDate > now && nextEvent.startDate < limit.timeInMillis) {
|
||||
nextEvent
|
||||
} else {
|
||||
val events = getEvents()
|
||||
@ -107,12 +122,32 @@ class EventRepository(val context: Context) {
|
||||
MainWidget.updateWidget(context)
|
||||
}
|
||||
|
||||
fun getEvents(): RealmResults<Event> {
|
||||
fun getFutureEvents(): RealmResults<Event> {
|
||||
val now = Calendar.getInstance().timeInMillis
|
||||
realm.refresh()
|
||||
return realm.where(Event::class.java).greaterThan("endDate", now).findAll()
|
||||
}
|
||||
|
||||
private fun getEvents(): RealmResults<Event> {
|
||||
val now = Calendar.getInstance().timeInMillis
|
||||
val limit = Calendar.getInstance().apply {
|
||||
timeInMillis = now
|
||||
when (Preferences.showUntil) {
|
||||
0 -> add(Calendar.HOUR, 3)
|
||||
1 -> add(Calendar.HOUR, 6)
|
||||
2 -> add(Calendar.HOUR, 12)
|
||||
3 -> add(Calendar.DAY_OF_MONTH, 1)
|
||||
4 -> add(Calendar.DAY_OF_MONTH, 3)
|
||||
5 -> add(Calendar.DAY_OF_MONTH, 7)
|
||||
6 -> add(Calendar.MINUTE, 30)
|
||||
7 -> add(Calendar.HOUR, 1)
|
||||
else -> add(Calendar.HOUR, 6)
|
||||
}
|
||||
}
|
||||
realm.refresh()
|
||||
return realm.where(Event::class.java).greaterThan("endDate", now).lessThanOrEqualTo("startDate", limit.timeInMillis).findAll()
|
||||
}
|
||||
|
||||
fun getEventsCount(): Int = getEvents().size
|
||||
|
||||
fun close() {
|
||||
|
@ -31,6 +31,8 @@ object Constants {
|
||||
|
||||
enum class WeatherIconPack(val value: Int) {
|
||||
DEFAULT(0),
|
||||
MINIMAL(1)
|
||||
MINIMAL(1),
|
||||
COOL(2),
|
||||
GOOGLE_NEWS(3)
|
||||
}
|
||||
}
|
@ -37,23 +37,11 @@ object CalendarHelper {
|
||||
set(Calendar.MINUTE, 0)
|
||||
set(Calendar.HOUR_OF_DAY, 0)
|
||||
}
|
||||
val limit = Calendar.getInstance()
|
||||
when (Preferences.showUntil) {
|
||||
0 -> limit.add(Calendar.HOUR, 3)
|
||||
1 -> limit.add(Calendar.HOUR, 6)
|
||||
2 -> limit.add(Calendar.HOUR, 12)
|
||||
3 -> limit.add(Calendar.DAY_OF_MONTH, 1)
|
||||
4 -> limit.add(Calendar.DAY_OF_MONTH, 3)
|
||||
5 -> limit.add(Calendar.DAY_OF_MONTH, 7)
|
||||
6 -> limit.add(Calendar.MINUTE, 30)
|
||||
7 -> limit.add(Calendar.HOUR, 1)
|
||||
else -> limit.add(Calendar.HOUR, 6)
|
||||
val limit = Calendar.getInstance().apply {
|
||||
timeInMillis = begin.timeInMillis
|
||||
add(Calendar.DAY_OF_YEAR, 2)
|
||||
}
|
||||
|
||||
val builder = CalendarContract.Instances.CONTENT_URI.buildUpon()
|
||||
ContentUris.appendId(builder, begin.timeInMillis)
|
||||
ContentUris.appendId(builder, limit.timeInMillis)
|
||||
|
||||
if (!context.checkGrantedPermission(
|
||||
Manifest.permission.READ_CALENDAR
|
||||
)
|
||||
|
@ -114,6 +114,7 @@ object IntentHelper {
|
||||
if (Preferences.calendarAppPackage == "") {
|
||||
Intent(Intent.ACTION_VIEW).apply {
|
||||
data = uri
|
||||
flags = (Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED or Intent.FLAG_ACTIVITY_CLEAR_TOP)
|
||||
if (!e.allDay) {
|
||||
putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, e.startDate)
|
||||
putExtra(CalendarContract.EXTRA_EVENT_END_TIME, e.endDate)
|
||||
@ -182,7 +183,7 @@ object IntentHelper {
|
||||
}
|
||||
}
|
||||
|
||||
fun getBatteryIntent(context: Context): Intent {
|
||||
fun getBatteryIntent(): Intent {
|
||||
return Intent(Intent.ACTION_POWER_USAGE_SUMMARY)
|
||||
}
|
||||
|
||||
|
@ -47,81 +47,201 @@ object WeatherHelper {
|
||||
}
|
||||
|
||||
fun getWeatherIconResource(icon: String): Int {
|
||||
when (icon) {
|
||||
return when (icon) {
|
||||
"01d" -> {
|
||||
return if (Preferences.weatherIconPack == Constants.WeatherIconPack.DEFAULT.value) R.drawable.clear_day else R.drawable.clear_day_2
|
||||
when (Preferences.weatherIconPack) {
|
||||
Constants.WeatherIconPack.COOL.value -> R.drawable.clear_day_3
|
||||
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.clear_day_2
|
||||
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.clear_day_4
|
||||
else -> R.drawable.clear_day
|
||||
}
|
||||
}
|
||||
"02d" -> {
|
||||
return if (Preferences.weatherIconPack == Constants.WeatherIconPack.DEFAULT.value) R.drawable.partly_cloudy else R.drawable.partly_cloudy_2
|
||||
when (Preferences.weatherIconPack) {
|
||||
Constants.WeatherIconPack.COOL.value -> R.drawable.partly_cloudy_3
|
||||
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.partly_cloudy_2
|
||||
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.partly_cloudy_4
|
||||
else -> R.drawable.partly_cloudy
|
||||
}
|
||||
}
|
||||
"03d" -> {
|
||||
return if (Preferences.weatherIconPack == Constants.WeatherIconPack.DEFAULT.value) R.drawable.mostly_cloudy else R.drawable.mostly_cloudy_2
|
||||
when (Preferences.weatherIconPack) {
|
||||
Constants.WeatherIconPack.COOL.value -> R.drawable.mostly_cloudy_3
|
||||
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.mostly_cloudy_2
|
||||
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.mostly_cloudy_4
|
||||
else -> R.drawable.mostly_cloudy
|
||||
}
|
||||
}
|
||||
"04d" -> {
|
||||
return if (Preferences.weatherIconPack == Constants.WeatherIconPack.DEFAULT.value) R.drawable.cloudy_weather else R.drawable.cloudy_weather_2
|
||||
when (Preferences.weatherIconPack) {
|
||||
Constants.WeatherIconPack.COOL.value -> R.drawable.cloudy_weather_3
|
||||
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.cloudy_weather_2
|
||||
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.cloudy_weather_4
|
||||
else -> R.drawable.cloudy_weather
|
||||
}
|
||||
}
|
||||
"09d" -> {
|
||||
return if (Preferences.weatherIconPack == Constants.WeatherIconPack.DEFAULT.value) R.drawable.storm_weather_day else R.drawable.storm_weather_day_2
|
||||
when (Preferences.weatherIconPack) {
|
||||
Constants.WeatherIconPack.COOL.value -> R.drawable.storm_weather_day_3
|
||||
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.storm_weather_day_2
|
||||
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.storm_weather_day_4
|
||||
else -> R.drawable.storm_weather_day
|
||||
}
|
||||
}
|
||||
"10d" -> {
|
||||
return if (Preferences.weatherIconPack == Constants.WeatherIconPack.DEFAULT.value) R.drawable.rainy_day else R.drawable.rainy_day_2
|
||||
when (Preferences.weatherIconPack) {
|
||||
Constants.WeatherIconPack.COOL.value -> R.drawable.rainy_day_3
|
||||
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.rainy_day_2
|
||||
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.rainy_day_4
|
||||
else -> R.drawable.rainy_day
|
||||
}
|
||||
}
|
||||
"11d" -> {
|
||||
return if (Preferences.weatherIconPack == Constants.WeatherIconPack.DEFAULT.value) R.drawable.thunder_day else R.drawable.thunder_day_2
|
||||
when (Preferences.weatherIconPack) {
|
||||
Constants.WeatherIconPack.COOL.value -> R.drawable.thunder_day_3
|
||||
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.thunder_day_2
|
||||
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.thunder_day_4
|
||||
else -> R.drawable.thunder_day
|
||||
}
|
||||
}
|
||||
"13d" -> {
|
||||
return if (Preferences.weatherIconPack == Constants.WeatherIconPack.DEFAULT.value) R.drawable.snow_day else R.drawable.snow_day_2
|
||||
when (Preferences.weatherIconPack) {
|
||||
Constants.WeatherIconPack.COOL.value -> R.drawable.snow_day_3
|
||||
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.snow_day_2
|
||||
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.snow_day_4
|
||||
else -> R.drawable.snow_day
|
||||
}
|
||||
}
|
||||
"50d" -> {
|
||||
return if (Preferences.weatherIconPack == Constants.WeatherIconPack.DEFAULT.value) R.drawable.haze_day else R.drawable.haze_day_2
|
||||
when (Preferences.weatherIconPack) {
|
||||
Constants.WeatherIconPack.COOL.value -> R.drawable.haze_day_3
|
||||
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.haze_day_2
|
||||
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.haze_day_4
|
||||
else -> R.drawable.haze_day
|
||||
}
|
||||
}
|
||||
"80d" -> {
|
||||
return if (Preferences.weatherIconPack == Constants.WeatherIconPack.DEFAULT.value) R.drawable.windy_day else R.drawable.windy_day_2
|
||||
when (Preferences.weatherIconPack) {
|
||||
Constants.WeatherIconPack.COOL.value -> R.drawable.windy_day_3
|
||||
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.windy_day_2
|
||||
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.windy_day_4
|
||||
else -> R.drawable.windy_day
|
||||
}
|
||||
}
|
||||
"81d" -> {
|
||||
return if (Preferences.weatherIconPack == Constants.WeatherIconPack.DEFAULT.value) R.drawable.rain_snow_day else R.drawable.rain_snow_day_2
|
||||
when (Preferences.weatherIconPack) {
|
||||
Constants.WeatherIconPack.COOL.value -> R.drawable.rain_snow_day_3
|
||||
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.rain_snow_day_2
|
||||
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.rain_snow_day_4
|
||||
else -> R.drawable.rain_snow_day
|
||||
}
|
||||
}
|
||||
"82d" -> {
|
||||
return if (Preferences.weatherIconPack == Constants.WeatherIconPack.DEFAULT.value) R.drawable.haze_weather else R.drawable.haze_weather_2
|
||||
when (Preferences.weatherIconPack) {
|
||||
Constants.WeatherIconPack.COOL.value -> R.drawable.haze_weather_3
|
||||
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.haze_weather_2
|
||||
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.haze_weather_4
|
||||
else -> R.drawable.haze_weather
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
"01n" -> {
|
||||
return if (Preferences.weatherIconPack == Constants.WeatherIconPack.DEFAULT.value) R.drawable.clear_night else R.drawable.clear_night_2
|
||||
when (Preferences.weatherIconPack) {
|
||||
Constants.WeatherIconPack.COOL.value -> R.drawable.clear_night_3
|
||||
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.clear_night_2
|
||||
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.clear_night_4
|
||||
else -> R.drawable.clear_night
|
||||
}
|
||||
}
|
||||
"02n" -> {
|
||||
return if (Preferences.weatherIconPack == Constants.WeatherIconPack.DEFAULT.value) R.drawable.partly_cloudy_night else R.drawable.partly_cloudy_night_2
|
||||
when (Preferences.weatherIconPack) {
|
||||
Constants.WeatherIconPack.COOL.value -> R.drawable.partly_cloudy_night_3
|
||||
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.partly_cloudy_night_2
|
||||
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.partly_cloudy_night_4
|
||||
else -> R.drawable.partly_cloudy_night
|
||||
}
|
||||
}
|
||||
"03n" -> {
|
||||
return if (Preferences.weatherIconPack == Constants.WeatherIconPack.DEFAULT.value) R.drawable.mostly_cloudy_night else R.drawable.mostly_cloudy_night_2
|
||||
when (Preferences.weatherIconPack) {
|
||||
Constants.WeatherIconPack.COOL.value -> R.drawable.mostly_cloudy_night_3
|
||||
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.mostly_cloudy_night_2
|
||||
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.mostly_cloudy_night_4
|
||||
else -> R.drawable.mostly_cloudy_night
|
||||
}
|
||||
}
|
||||
"04n" -> {
|
||||
return if (Preferences.weatherIconPack == Constants.WeatherIconPack.DEFAULT.value) R.drawable.cloudy_weather else R.drawable.cloudy_weather_2
|
||||
when (Preferences.weatherIconPack) {
|
||||
Constants.WeatherIconPack.COOL.value -> R.drawable.cloudy_weather_3
|
||||
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.cloudy_weather_2
|
||||
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.cloudy_weather_4
|
||||
else -> R.drawable.cloudy_weather
|
||||
}
|
||||
}
|
||||
"09n" -> {
|
||||
return if (Preferences.weatherIconPack == Constants.WeatherIconPack.DEFAULT.value) R.drawable.storm_weather_night else R.drawable.storm_weather_night_2
|
||||
when (Preferences.weatherIconPack) {
|
||||
Constants.WeatherIconPack.COOL.value -> R.drawable.storm_weather_night_3
|
||||
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.storm_weather_night_2
|
||||
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.storm_weather_night_4
|
||||
else -> R.drawable.storm_weather_night
|
||||
}
|
||||
}
|
||||
"10n" -> {
|
||||
return if (Preferences.weatherIconPack == Constants.WeatherIconPack.DEFAULT.value) R.drawable.rainy_night else R.drawable.rainy_night_2
|
||||
when (Preferences.weatherIconPack) {
|
||||
Constants.WeatherIconPack.COOL.value -> R.drawable.rainy_night_3
|
||||
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.rainy_night_2
|
||||
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.rainy_night_4
|
||||
else -> R.drawable.rainy_night
|
||||
}
|
||||
}
|
||||
"11n" -> {
|
||||
return if (Preferences.weatherIconPack == Constants.WeatherIconPack.DEFAULT.value) R.drawable.thunder_night else R.drawable.thunder_night_2
|
||||
when (Preferences.weatherIconPack) {
|
||||
Constants.WeatherIconPack.COOL.value -> R.drawable.thunder_night_3
|
||||
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.thunder_night_2
|
||||
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.thunder_night_4
|
||||
else -> R.drawable.thunder_night
|
||||
}
|
||||
}
|
||||
"13n" -> {
|
||||
return if (Preferences.weatherIconPack == Constants.WeatherIconPack.DEFAULT.value) R.drawable.snow_night else R.drawable.snow_night_2
|
||||
when (Preferences.weatherIconPack) {
|
||||
Constants.WeatherIconPack.COOL.value -> R.drawable.snow_night_3
|
||||
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.snow_night_2
|
||||
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.snow_night_4
|
||||
else -> R.drawable.snow_night
|
||||
}
|
||||
}
|
||||
"50n" -> {
|
||||
return if (Preferences.weatherIconPack == Constants.WeatherIconPack.DEFAULT.value) R.drawable.haze_night else R.drawable.haze_night_2
|
||||
when (Preferences.weatherIconPack) {
|
||||
Constants.WeatherIconPack.COOL.value -> R.drawable.haze_night_3
|
||||
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.haze_night_2
|
||||
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.haze_night_4
|
||||
else -> R.drawable.haze_night
|
||||
}
|
||||
}
|
||||
"80n" -> {
|
||||
return if (Preferences.weatherIconPack == Constants.WeatherIconPack.DEFAULT.value) R.drawable.windy_night else R.drawable.windy_night_2
|
||||
when (Preferences.weatherIconPack) {
|
||||
Constants.WeatherIconPack.COOL.value -> R.drawable.windy_night_3
|
||||
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.windy_night_2
|
||||
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.windy_night_4
|
||||
else -> R.drawable.windy_night
|
||||
}
|
||||
}
|
||||
"81n" -> {
|
||||
return if (Preferences.weatherIconPack == Constants.WeatherIconPack.DEFAULT.value) R.drawable.rain_snow_night else R.drawable.rain_snow_night_2
|
||||
when (Preferences.weatherIconPack) {
|
||||
Constants.WeatherIconPack.COOL.value -> R.drawable.rain_snow_night_3
|
||||
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.rain_snow_night_2
|
||||
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.rain_snow_night_4
|
||||
else -> R.drawable.rain_snow_night
|
||||
}
|
||||
}
|
||||
"82n" -> {
|
||||
return if (Preferences.weatherIconPack == Constants.WeatherIconPack.DEFAULT.value) R.drawable.haze_weather else R.drawable.haze_weather_2
|
||||
when (Preferences.weatherIconPack) {
|
||||
Constants.WeatherIconPack.COOL.value -> R.drawable.haze_weather_3
|
||||
Constants.WeatherIconPack.MINIMAL.value -> R.drawable.haze_weather_2
|
||||
Constants.WeatherIconPack.GOOGLE_NEWS.value -> R.drawable.haze_weather_4
|
||||
else -> R.drawable.haze_weather
|
||||
}
|
||||
}
|
||||
else -> {
|
||||
return R.drawable.unknown
|
||||
|
@ -29,12 +29,12 @@ class UpdatesReceiver : BroadcastReceiver() {
|
||||
Intent.ACTION_TIME_CHANGED,
|
||||
Intent.ACTION_TIMEZONE_CHANGED,
|
||||
Intent.ACTION_LOCALE_CHANGED,
|
||||
Intent.ACTION_DATE_CHANGED,
|
||||
Actions.ACTION_CALENDAR_UPDATE -> {
|
||||
CalendarHelper.updateEventList(context)
|
||||
}
|
||||
|
||||
"com.sec.android.widgetapp.APPWIDGET_RESIZE",
|
||||
Intent.ACTION_DATE_CHANGED,
|
||||
AlarmManager.ACTION_NEXT_ALARM_CLOCK_CHANGED,
|
||||
Actions.ACTION_TIME_UPDATE -> {
|
||||
MainWidget.updateWidget(context)
|
||||
@ -53,7 +53,7 @@ class UpdatesReceiver : BroadcastReceiver() {
|
||||
if (eventId == null) {
|
||||
removeUpdates(context)
|
||||
|
||||
eventRepository.getEvents().forEach { event ->
|
||||
eventRepository.getFutureEvents().forEach { event ->
|
||||
setEventUpdate(context, event)
|
||||
}
|
||||
} else {
|
||||
@ -72,6 +72,18 @@ class UpdatesReceiver : BroadcastReceiver() {
|
||||
set(Calendar.MILLISECOND, 0)
|
||||
}
|
||||
val diff = Period(now.timeInMillis, event.startDate)
|
||||
val limit = when (Preferences.showUntil) {
|
||||
0 -> 1000 * 60 * 60 * 3
|
||||
1 -> 1000 * 60 * 60 * 6
|
||||
2 -> 1000 * 60 * 60 * 12
|
||||
3 -> 1000 * 60 * 60 * 24
|
||||
4 -> 1000 * 60 * 60 * 24 * 3
|
||||
5 -> 1000 * 60 * 60 * 24 * 7
|
||||
6 -> 1000 * 60 * 30
|
||||
7 -> 1000 * 60 * 60
|
||||
else -> 1000 * 60 * 60 * 6
|
||||
}
|
||||
if (event.startDate <= limit) {
|
||||
if (event.startDate > now.timeInMillis) {
|
||||
// Update the widget every hour till the event
|
||||
if (diff.hours == 0) {
|
||||
@ -99,13 +111,13 @@ class UpdatesReceiver : BroadcastReceiver() {
|
||||
action = Actions.ACTION_TIME_UPDATE
|
||||
putExtra(EVENT_ID, event.eventID)
|
||||
},
|
||||
0
|
||||
PendingIntent.FLAG_UPDATE_CURRENT
|
||||
)
|
||||
)
|
||||
} else {
|
||||
setExact(
|
||||
AlarmManager.RTC,
|
||||
event.startDate - diff.hours * 1000 * 60 * 60 + if (diff.minutes > 30) (- 30) else (+ 30),
|
||||
event.startDate - diff.hours * 1000 * 60 * 60 + if (diff.minutes > 30) (-30) else (+30),
|
||||
PendingIntent.getBroadcast(
|
||||
context,
|
||||
event.eventID.toInt(),
|
||||
@ -113,7 +125,7 @@ class UpdatesReceiver : BroadcastReceiver() {
|
||||
action = Actions.ACTION_TIME_UPDATE
|
||||
putExtra(EVENT_ID, event.eventID)
|
||||
},
|
||||
0
|
||||
PendingIntent.FLAG_UPDATE_CURRENT
|
||||
)
|
||||
)
|
||||
}
|
||||
@ -134,13 +146,28 @@ class UpdatesReceiver : BroadcastReceiver() {
|
||||
)
|
||||
)
|
||||
}
|
||||
} else {
|
||||
setExact(
|
||||
AlarmManager.RTC,
|
||||
if (event.startDate - limit > now.timeInMillis + 120 * 1000) event.startDate - limit else now.timeInMillis + 120000,
|
||||
PendingIntent.getBroadcast(
|
||||
context,
|
||||
event.eventID.toInt(),
|
||||
Intent(context, UpdatesReceiver::class.java).apply {
|
||||
action = Actions.ACTION_TIME_UPDATE
|
||||
putExtra(EVENT_ID, event.eventID)
|
||||
},
|
||||
PendingIntent.FLAG_UPDATE_CURRENT
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun removeUpdates(context: Context) {
|
||||
with(context.getSystemService(Context.ALARM_SERVICE) as AlarmManager) {
|
||||
val eventRepository = EventRepository(context)
|
||||
eventRepository.getEvents().forEach {
|
||||
eventRepository.getFutureEvents().forEach {
|
||||
cancel(PendingIntent.getBroadcast(context, it.eventID.toInt(), Intent(context, UpdatesReceiver::class.java), 0))
|
||||
}
|
||||
eventRepository.close()
|
||||
|
@ -6,6 +6,7 @@ import android.location.Address
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import android.view.View
|
||||
import android.widget.TextView
|
||||
import android.widget.Toast
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.view.isVisible
|
||||
@ -47,7 +48,15 @@ class SupportDevActivity : AppCompatActivity(), PurchasesUpdatedListener {
|
||||
.register<SkuDetails>(R.layout.inapp_product_layout) { item, injector ->
|
||||
item.sku
|
||||
injector
|
||||
.text(R.id.product_title, item.sku.replace("(Another Widget)", ""))
|
||||
.with<TextView>(R.id.product_title) {
|
||||
it.text = when (item.sku) {
|
||||
"donation_coffee" -> getString(R.string.donation_coffee)
|
||||
"donation_donuts" -> getString(R.string.donation_donuts)
|
||||
"donation_breakfast" -> getString(R.string.donation_breakfast)
|
||||
"donation_lunch" -> getString(R.string.donation_lunch)
|
||||
else -> ""
|
||||
}
|
||||
}
|
||||
.text(R.id.product_price, item.price)
|
||||
.clicked(R.id.item) {
|
||||
viewModel.purchase(this, item)
|
||||
|
@ -300,7 +300,7 @@ class CalendarTabFragment : Fragment() {
|
||||
action_show_until.setOnClickListener {
|
||||
if (Preferences.showEvents) {
|
||||
val dialog = BottomSheetMenu<Int>(requireContext(), header = getString(R.string.settings_show_until_title)).setSelectedValue(Preferences.showUntil)
|
||||
intArrayOf(6,7,0,1,2,3).forEach {
|
||||
intArrayOf(6,7,0,1,2,3, 4, 5).forEach {
|
||||
dialog.addItem(getString(SettingsStringHelper.getShowUntilString(it)), it)
|
||||
}
|
||||
dialog.addOnSelectItemListener { value ->
|
||||
|
@ -251,7 +251,6 @@ class GeneralTabFragment : Fragment() {
|
||||
}
|
||||
|
||||
action_date_format.setOnClickListener {
|
||||
if (Preferences.showEvents) {
|
||||
val now = Calendar.getInstance()
|
||||
val dialog = BottomSheetMenu<String>(requireContext(), header = getString(R.string.settings_date_format_title)).setSelectedValue(Preferences.dateFormat)
|
||||
|
||||
@ -269,7 +268,6 @@ class GeneralTabFragment : Fragment() {
|
||||
}
|
||||
}.show()
|
||||
}
|
||||
}
|
||||
|
||||
action_background_color.setOnClickListener {
|
||||
BottomSheetColorPicker(requireContext(),
|
||||
|
@ -44,6 +44,7 @@ import com.tommasoberlose.anotherwidget.ui.activities.MainActivity
|
||||
import com.tommasoberlose.anotherwidget.ui.viewmodels.MainViewModel
|
||||
import com.tommasoberlose.anotherwidget.utils.checkGrantedPermission
|
||||
import com.tommasoberlose.anotherwidget.utils.checkIfFitInstalled
|
||||
import com.tommasoberlose.anotherwidget.utils.toast
|
||||
import kotlinx.android.synthetic.main.fragment_calendar_settings.*
|
||||
import kotlinx.android.synthetic.main.fragment_glance_settings.*
|
||||
import kotlinx.android.synthetic.main.fragment_glance_settings.scrollView
|
||||
@ -177,6 +178,22 @@ class GlanceTabFragment : Fragment() {
|
||||
}
|
||||
}
|
||||
|
||||
action_show_next_alarm.setOnLongClickListener {
|
||||
with(requireContext().getSystemService(Context.ALARM_SERVICE) as AlarmManager) {
|
||||
val alarm = nextAlarmClock
|
||||
if (alarm != null && alarm.showIntent != null) {
|
||||
val pm = requireContext().packageManager as PackageManager
|
||||
val appNameOrPackage = try {
|
||||
pm.getApplicationLabel(pm.getApplicationInfo(alarm.showIntent?.creatorPackage ?: "", 0))
|
||||
} catch (e: Exception) {
|
||||
alarm.showIntent?.creatorPackage ?: ""
|
||||
}
|
||||
activity?.toast(getString(R.string.next_alarm_warning).format(appNameOrPackage), long = true)
|
||||
}
|
||||
}
|
||||
true
|
||||
}
|
||||
|
||||
action_show_low_battery_level_warning.setOnClickListener {
|
||||
if (Preferences.showGlance) {
|
||||
BottomSheetMenu<Boolean>(
|
||||
@ -232,8 +249,7 @@ class GlanceTabFragment : Fragment() {
|
||||
} catch (e: Exception) {
|
||||
alarm.showIntent?.creatorPackage ?: ""
|
||||
}
|
||||
show_next_alarm_warning.text =
|
||||
getString(R.string.next_alarm_warning).format(appNameOrPackage)
|
||||
show_next_alarm_warning.text = getString(R.string.next_alarm_warning).format(appNameOrPackage)
|
||||
} else {
|
||||
show_next_alarm_label?.text = if (Preferences.showNextAlarm) getString(R.string.settings_visible) else getString(
|
||||
R.string.settings_not_visible)
|
||||
|
@ -10,6 +10,7 @@ import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.os.BuildCompat
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.databinding.DataBindingUtil
|
||||
import androidx.fragment.app.Fragment
|
||||
@ -28,7 +29,9 @@ import com.tommasoberlose.anotherwidget.databinding.FragmentWeatherSettingsBindi
|
||||
import com.tommasoberlose.anotherwidget.global.Constants
|
||||
import com.tommasoberlose.anotherwidget.global.Preferences
|
||||
import com.tommasoberlose.anotherwidget.global.RequestCode
|
||||
import com.tommasoberlose.anotherwidget.helpers.ColorHelper
|
||||
import com.tommasoberlose.anotherwidget.helpers.SettingsStringHelper
|
||||
import com.tommasoberlose.anotherwidget.helpers.WeatherHelper
|
||||
import com.tommasoberlose.anotherwidget.receivers.WeatherReceiver
|
||||
import com.tommasoberlose.anotherwidget.ui.activities.ChooseApplicationActivity
|
||||
import com.tommasoberlose.anotherwidget.ui.activities.CustomLocationActivity
|
||||
@ -129,9 +132,12 @@ class WeatherTabFragment : Fragment() {
|
||||
|
||||
viewModel.weatherIconPack.observe(viewLifecycleOwner, Observer {
|
||||
maintainScrollPosition {
|
||||
label_weather_icon_pack?.text = when (it) {
|
||||
Constants.WeatherIconPack.MINIMAL.value -> getString(R.string.settings_weather_icon_pack_minimal)
|
||||
else -> getString(R.string.settings_weather_icon_pack_default)
|
||||
label_weather_icon_pack?.text = getString(R.string.settings_weather_icon_pack_default).format((it + 1))
|
||||
weather_icon_pack.setImageDrawable(ContextCompat.getDrawable(requireContext(), WeatherHelper.getWeatherIconResource("01d")))
|
||||
if (it == Constants.WeatherIconPack.MINIMAL.value) {
|
||||
weather_icon_pack.setColorFilter(ContextCompat.getColor(requireContext(), R.color.colorPrimaryText))
|
||||
} else {
|
||||
weather_icon_pack.setColorFilter(ContextCompat.getColor(requireContext(), android.R.color.transparent))
|
||||
}
|
||||
}
|
||||
checkLocationPermission()
|
||||
@ -230,10 +236,11 @@ class WeatherTabFragment : Fragment() {
|
||||
|
||||
action_weather_icon_pack.setOnClickListener {
|
||||
if (Preferences.showWeather) {
|
||||
BottomSheetMenu<Int>(requireContext(), header = getString(R.string.settings_weather_icon_pack_title)).setSelectedValue(Preferences.weatherIconPack)
|
||||
.addItem(getString(R.string.settings_weather_icon_pack_default), Constants.WeatherIconPack.DEFAULT.value)
|
||||
.addItem(getString(R.string.settings_weather_icon_pack_minimal), Constants.WeatherIconPack.MINIMAL.value)
|
||||
.addOnSelectItemListener { value ->
|
||||
val dialog = BottomSheetMenu<Int>(requireContext(), header = getString(R.string.settings_weather_icon_pack_title)).setSelectedValue(Preferences.weatherIconPack)
|
||||
Constants.WeatherIconPack.values().forEach {
|
||||
dialog.addItem(getString(R.string.settings_weather_icon_pack_default).format(it.value + 1), it.value)
|
||||
}
|
||||
dialog.addOnSelectItemListener { value ->
|
||||
Preferences.weatherIconPack = value
|
||||
}.show()
|
||||
}
|
||||
|
@ -112,7 +112,7 @@ class MainWidget : AppWidgetProvider() {
|
||||
context,
|
||||
appWidgetId,
|
||||
IntentHelper.getWidgetUpdateIntent(context),
|
||||
0
|
||||
PendingIntent.FLAG_UPDATE_CURRENT
|
||||
)
|
||||
views.setOnClickPendingIntent(R.id.widget_shape_background, refreshIntent)
|
||||
} catch (ex: Exception) {
|
||||
@ -157,7 +157,7 @@ class MainWidget : AppWidgetProvider() {
|
||||
context,
|
||||
widgetID,
|
||||
IntentHelper.getCalendarIntent(context),
|
||||
0
|
||||
PendingIntent.FLAG_UPDATE_CURRENT
|
||||
)
|
||||
views.setOnClickPendingIntent(R.id.empty_date_rect, calPIntent)
|
||||
|
||||
@ -180,7 +180,7 @@ class MainWidget : AppWidgetProvider() {
|
||||
context,
|
||||
NewCalendarEventReceiver::class.java
|
||||
).apply { action = Actions.ACTION_GO_TO_NEXT_EVENT },
|
||||
0
|
||||
PendingIntent.FLAG_UPDATE_CURRENT
|
||||
)
|
||||
)
|
||||
|
||||
@ -198,7 +198,7 @@ class MainWidget : AppWidgetProvider() {
|
||||
context,
|
||||
NewCalendarEventReceiver::class.java
|
||||
).apply { action = Actions.ACTION_GO_TO_PREVIOUS_EVENT },
|
||||
0
|
||||
PendingIntent.FLAG_UPDATE_CURRENT
|
||||
)
|
||||
)
|
||||
} else {
|
||||
@ -210,7 +210,7 @@ class MainWidget : AppWidgetProvider() {
|
||||
context,
|
||||
widgetID,
|
||||
IntentHelper.getEventIntent(context, nextEvent),
|
||||
0
|
||||
PendingIntent.FLAG_UPDATE_CURRENT
|
||||
)
|
||||
views.setOnClickPendingIntent(R.id.next_event_rect, pIntent)
|
||||
views.setOnClickPendingIntent(R.id.next_event_difference_time_rect, pIntent)
|
||||
@ -233,7 +233,7 @@ class MainWidget : AppWidgetProvider() {
|
||||
context,
|
||||
widgetID,
|
||||
IntentHelper.getGoogleMapsIntentFromAddress(context, nextEvent.address),
|
||||
0
|
||||
PendingIntent.FLAG_UPDATE_CURRENT
|
||||
)
|
||||
views.setOnClickPendingIntent(R.id.second_row_rect, mapIntent)
|
||||
} else {
|
||||
@ -245,7 +245,7 @@ class MainWidget : AppWidgetProvider() {
|
||||
nextEvent,
|
||||
forceEventDetails = true
|
||||
),
|
||||
0
|
||||
PendingIntent.FLAG_UPDATE_CURRENT
|
||||
)
|
||||
views.setOnClickPendingIntent(R.id.second_row_rect, pIntentDetail)
|
||||
}
|
||||
@ -263,7 +263,7 @@ class MainWidget : AppWidgetProvider() {
|
||||
|
||||
views.setViewVisibility(R.id.empty_layout_rect, View.GONE)
|
||||
views.setViewVisibility(R.id.calendar_layout_rect, View.VISIBLE)
|
||||
} else if (GlanceProviderHelper.showGlanceProviders(context)) {
|
||||
} else if (GlanceProviderHelper.showGlanceProviders(context) && v.calendar_layout.isVisible) {
|
||||
loop@ for (provider:Constants.GlanceProviderId in GlanceProviderHelper.getGlanceProviders(context)) {
|
||||
when (provider) {
|
||||
Constants.GlanceProviderId.PLAYING_SONG -> {
|
||||
@ -272,7 +272,7 @@ class MainWidget : AppWidgetProvider() {
|
||||
context,
|
||||
widgetID,
|
||||
IntentHelper.getMusicIntent(context),
|
||||
0
|
||||
PendingIntent.FLAG_UPDATE_CURRENT
|
||||
)
|
||||
views.setOnClickPendingIntent(R.id.second_row_rect, musicIntent)
|
||||
break@loop
|
||||
@ -284,7 +284,7 @@ class MainWidget : AppWidgetProvider() {
|
||||
context,
|
||||
widgetID,
|
||||
IntentHelper.getClockIntent(context),
|
||||
0
|
||||
PendingIntent.FLAG_UPDATE_CURRENT
|
||||
)
|
||||
views.setOnClickPendingIntent(R.id.second_row_rect, alarmIntent)
|
||||
break@loop
|
||||
@ -297,8 +297,8 @@ class MainWidget : AppWidgetProvider() {
|
||||
val batteryIntent = PendingIntent.getActivity(
|
||||
context,
|
||||
widgetID,
|
||||
IntentHelper.getBatteryIntent(context),
|
||||
0
|
||||
IntentHelper.getBatteryIntent(),
|
||||
PendingIntent.FLAG_UPDATE_CURRENT
|
||||
)
|
||||
views.setOnClickPendingIntent(R.id.second_row_rect, batteryIntent)
|
||||
break@loop
|
||||
@ -316,7 +316,7 @@ class MainWidget : AppWidgetProvider() {
|
||||
context,
|
||||
widgetID,
|
||||
IntentHelper.getFitIntent(context),
|
||||
0
|
||||
PendingIntent.FLAG_UPDATE_CURRENT
|
||||
)
|
||||
views.setOnClickPendingIntent(R.id.second_row_rect, fitIntent)
|
||||
break@loop
|
||||
@ -530,7 +530,7 @@ class MainWidget : AppWidgetProvider() {
|
||||
|
||||
} else {
|
||||
val flags: Int = DateUtils.FORMAT_SHOW_DATE or DateUtils.FORMAT_NO_YEAR or DateUtils.FORMAT_ABBREV_MONTH
|
||||
v.next_event_date.text = DateUtils.formatDateTime(context, now.timeInMillis, flags)
|
||||
v.next_event_date.text = DateUtils.formatDateTime(context, nextEvent.startDate, flags)
|
||||
}
|
||||
}
|
||||
|
||||
@ -538,6 +538,7 @@ class MainWidget : AppWidgetProvider() {
|
||||
v.calendar_layout.visibility = View.VISIBLE
|
||||
} else if (GlanceProviderHelper.showGlanceProviders(context)) {
|
||||
v.second_row_icon.isVisible = true
|
||||
var showSomething = false
|
||||
loop@ for (provider:Constants.GlanceProviderId in GlanceProviderHelper.getGlanceProviders(context)) {
|
||||
when (provider) {
|
||||
Constants.GlanceProviderId.PLAYING_SONG -> {
|
||||
@ -549,6 +550,7 @@ class MainWidget : AppWidgetProvider() {
|
||||
)
|
||||
)
|
||||
v.next_event_date.text = MediaPlayerHelper.getMediaInfo()
|
||||
showSomething = true
|
||||
break@loop
|
||||
}
|
||||
}
|
||||
@ -561,6 +563,7 @@ class MainWidget : AppWidgetProvider() {
|
||||
)
|
||||
)
|
||||
v.next_event_date.text = AlarmHelper.getNextAlarm(context)
|
||||
showSomething = true
|
||||
break@loop
|
||||
}
|
||||
}
|
||||
@ -575,11 +578,13 @@ class MainWidget : AppWidgetProvider() {
|
||||
} else {
|
||||
v.next_event_date.text = context.getString(R.string.charging)
|
||||
}
|
||||
showSomething = true
|
||||
break@loop
|
||||
} else if (Preferences.isBatteryLevelLow) {
|
||||
v.second_row_icon.isVisible = false
|
||||
v.next_event_date.text =
|
||||
context.getString(R.string.battery_low_warning)
|
||||
showSomething = true
|
||||
break@loop
|
||||
}
|
||||
}
|
||||
@ -590,6 +595,7 @@ class MainWidget : AppWidgetProvider() {
|
||||
v.next_event_date.text = Preferences.customNotes
|
||||
v.next_event_date.gravity
|
||||
v.next_event_date.maxLines = 2
|
||||
showSomething = true
|
||||
break@loop
|
||||
}
|
||||
}
|
||||
@ -597,15 +603,20 @@ class MainWidget : AppWidgetProvider() {
|
||||
if (Preferences.showDailySteps && Preferences.googleFitSteps > 0) {
|
||||
v.second_row_icon.isVisible = false
|
||||
v.next_event_date.text = context.getString(R.string.daily_steps_counter).format(Preferences.googleFitSteps)
|
||||
showSomething = true
|
||||
break@loop
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (showSomething) {
|
||||
v.next_event.text = DateHelper.getDateText(context, now)
|
||||
v.empty_layout.visibility = View.GONE
|
||||
v.calendar_layout.visibility = View.VISIBLE
|
||||
} else {
|
||||
v.second_row_icon.isVisible = false
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -614,7 +625,7 @@ class MainWidget : AppWidgetProvider() {
|
||||
it.setTextColor(ColorHelper.getFontColor())
|
||||
}
|
||||
|
||||
if (Preferences.weatherIconPack == Constants.WeatherIconPack.DEFAULT.value) {
|
||||
if (Preferences.weatherIconPack != Constants.WeatherIconPack.MINIMAL.value) {
|
||||
listOf<ImageView>(v.action_next, v.action_previous)
|
||||
} else {
|
||||
listOf<ImageView>(v.action_next, v.action_previous, v.empty_weather_icon, v.special_weather_icon)
|
||||
@ -626,7 +637,7 @@ class MainWidget : AppWidgetProvider() {
|
||||
it.setTextColor(ColorHelper.getSecondaryFontColor())
|
||||
}
|
||||
|
||||
if (Preferences.weatherIconPack == Constants.WeatherIconPack.DEFAULT.value) {
|
||||
if (Preferences.weatherIconPack != Constants.WeatherIconPack.MINIMAL.value) {
|
||||
listOf<ImageView>(v.second_row_icon)
|
||||
} else {
|
||||
listOf<ImageView>(v.second_row_icon, v.weather_icon)
|
||||
|
BIN
app/src/main/res/drawable/clear_day_3.png
Normal file
After Width: | Height: | Size: 685 B |
BIN
app/src/main/res/drawable/clear_day_4.png
Normal file
After Width: | Height: | Size: 7.1 KiB |
BIN
app/src/main/res/drawable/clear_night_3.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
app/src/main/res/drawable/clear_night_4.png
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
app/src/main/res/drawable/cloudy_weather_3.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
app/src/main/res/drawable/cloudy_weather_4.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
app/src/main/res/drawable/haze_day_3.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
app/src/main/res/drawable/haze_day_4.png
Normal file
After Width: | Height: | Size: 5.8 KiB |
BIN
app/src/main/res/drawable/haze_night_3.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
app/src/main/res/drawable/haze_night_4.png
Normal file
After Width: | Height: | Size: 5.8 KiB |
BIN
app/src/main/res/drawable/haze_weather_3.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
app/src/main/res/drawable/haze_weather_4.png
Normal file
After Width: | Height: | Size: 5.7 KiB |
BIN
app/src/main/res/drawable/mostly_cloudy_3.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
app/src/main/res/drawable/mostly_cloudy_4.png
Normal file
After Width: | Height: | Size: 4.7 KiB |
BIN
app/src/main/res/drawable/mostly_cloudy_night_3.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
app/src/main/res/drawable/mostly_cloudy_night_4.png
Normal file
After Width: | Height: | Size: 4.8 KiB |
BIN
app/src/main/res/drawable/partly_cloudy_3.png
Normal file
After Width: | Height: | Size: 2.0 KiB |
BIN
app/src/main/res/drawable/partly_cloudy_4.png
Normal file
After Width: | Height: | Size: 4.1 KiB |
BIN
app/src/main/res/drawable/partly_cloudy_night_3.png
Normal file
After Width: | Height: | Size: 2.0 KiB |
BIN
app/src/main/res/drawable/partly_cloudy_night_4.png
Normal file
After Width: | Height: | Size: 3.6 KiB |
BIN
app/src/main/res/drawable/rain_snow_3.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
app/src/main/res/drawable/rain_snow_4.png
Normal file
After Width: | Height: | Size: 5.9 KiB |
BIN
app/src/main/res/drawable/rain_snow_day_3.png
Normal file
After Width: | Height: | Size: 3.0 KiB |
BIN
app/src/main/res/drawable/rain_snow_day_4.png
Normal file
After Width: | Height: | Size: 7.1 KiB |
BIN
app/src/main/res/drawable/rain_snow_night_3.png
Normal file
After Width: | Height: | Size: 2.9 KiB |
BIN
app/src/main/res/drawable/rain_snow_night_4.png
Normal file
After Width: | Height: | Size: 7.2 KiB |
BIN
app/src/main/res/drawable/rainy_day_3.png
Normal file
After Width: | Height: | Size: 2.6 KiB |
BIN
app/src/main/res/drawable/rainy_day_4.png
Normal file
After Width: | Height: | Size: 4.5 KiB |
BIN
app/src/main/res/drawable/rainy_night_3.png
Normal file
After Width: | Height: | Size: 2.6 KiB |
BIN
app/src/main/res/drawable/rainy_night_4.png
Normal file
After Width: | Height: | Size: 4.4 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.3 KiB |
BIN
app/src/main/res/drawable/rainy_weather_3.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
app/src/main/res/drawable/rainy_weather_4.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
app/src/main/res/drawable/showcase_3.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
app/src/main/res/drawable/showcase_4.png
Normal file
After Width: | Height: | Size: 5.0 KiB |
BIN
app/src/main/res/drawable/snow_day_3.png
Normal file
After Width: | Height: | Size: 2.6 KiB |
BIN
app/src/main/res/drawable/snow_day_4.png
Normal file
After Width: | Height: | Size: 6.4 KiB |
BIN
app/src/main/res/drawable/snow_night_3.png
Normal file
After Width: | Height: | Size: 2.6 KiB |
BIN
app/src/main/res/drawable/snow_night_4.png
Normal file
After Width: | Height: | Size: 6.5 KiB |
BIN
app/src/main/res/drawable/snow_weather_3.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
app/src/main/res/drawable/snow_weather_4.png
Normal file
After Width: | Height: | Size: 4.4 KiB |
BIN
app/src/main/res/drawable/storm_weather_3.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
app/src/main/res/drawable/storm_weather_4.png
Normal file
After Width: | Height: | Size: 3.7 KiB |
BIN
app/src/main/res/drawable/storm_weather_day_3.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
app/src/main/res/drawable/storm_weather_day_4.png
Normal file
After Width: | Height: | Size: 5.0 KiB |
BIN
app/src/main/res/drawable/storm_weather_night_3.png
Normal file
After Width: | Height: | Size: 3.0 KiB |
BIN
app/src/main/res/drawable/storm_weather_night_4.png
Normal file
After Width: | Height: | Size: 4.9 KiB |
BIN
app/src/main/res/drawable/thunder_day_3.png
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
app/src/main/res/drawable/thunder_day_4.png
Normal file
After Width: | Height: | Size: 5.4 KiB |
BIN
app/src/main/res/drawable/thunder_night_3.png
Normal file
After Width: | Height: | Size: 2.6 KiB |
BIN
app/src/main/res/drawable/thunder_night_4.png
Normal file
After Width: | Height: | Size: 5.4 KiB |
BIN
app/src/main/res/drawable/thunder_weather_3.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
app/src/main/res/drawable/thunder_weather_4.png
Normal file
After Width: | Height: | Size: 4.0 KiB |
BIN
app/src/main/res/drawable/unknown_3.png
Normal file
After Width: | Height: | Size: 90 B |
BIN
app/src/main/res/drawable/windy_day_3.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
app/src/main/res/drawable/windy_day_4.png
Normal file
After Width: | Height: | Size: 3.5 KiB |
BIN
app/src/main/res/drawable/windy_night_3.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
app/src/main/res/drawable/windy_night_4.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
app/src/main/res/drawable/windy_weather_3.png
Normal file
After Width: | Height: | Size: 2.0 KiB |
BIN
app/src/main/res/drawable/windy_weather_4.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
@ -310,7 +310,6 @@
|
||||
style="@style/AnotherWidget.Settings.Subtitle"/>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
@ -360,6 +359,28 @@
|
||||
style="@style/AnotherWidget.Settings.Subtitle"/>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/small_clock_warning"
|
||||
android:orientation="vertical">
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingTop="16dp"
|
||||
android:paddingLeft="24dp"
|
||||
android:paddingRight="24dp"
|
||||
android:paddingBottom="32dp"
|
||||
android:duplicateParentState="true"
|
||||
android:textSize="14sp"
|
||||
android:text="@string/glance_info"
|
||||
android:textColor="@color/colorPrimaryText"
|
||||
android:letterSpacing="0"
|
||||
android:fontFamily="@font/product_sans"
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
|
||||
app:textAllCaps="false" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</ScrollView>
|
||||
</layout>
|
@ -327,6 +327,7 @@
|
||||
android:layout_width="48dp"
|
||||
android:layout_height="48dp"
|
||||
android:padding="12dp"
|
||||
android:id="@+id/weather_icon_pack"
|
||||
android:src="@drawable/round_cloud_queue"
|
||||
android:tint="@color/colorPrimaryText"/>
|
||||
<LinearLayout
|
||||
|
@ -123,7 +123,7 @@
|
||||
android:layout_height="20dp"
|
||||
android:id="@+id/special_weather_icon"
|
||||
android:layout_marginStart="4dp"
|
||||
android:layout_marginEnd="4dp"/>
|
||||
android:layout_marginEnd="8dp"/>
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
@ -183,6 +183,8 @@
|
||||
android:layout_width="18dp"
|
||||
android:layout_height="18dp"
|
||||
android:id="@+id/weather_icon"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:layout_marginStart="4dp"
|
||||
android:src="@drawable/clear_night"/>
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
|
209
app/src/main/res/values-da/strings.xml
Normal file
@ -0,0 +1,209 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name" translatable="false">Another Widget</string>
|
||||
<string name="add_widget">Add</string>
|
||||
|
||||
<!-- Display -->
|
||||
<string name="settings_general_title">Visning</string>
|
||||
<string name="divider" translatable="false">|</string>
|
||||
<string name="settings_font_color_title">Tekstfarve</string>
|
||||
<string name="settings_secondary_font_color_title">Tekstfarve</string>
|
||||
<string name="settings_background_color_title">Baggrundsfarve</string>
|
||||
<string name="title_main_text_size">Tekststørrelse</string>
|
||||
<string name="title_second_text_size">Tekststørrelse</string>
|
||||
<string name="title_text_shadow">Tekstskygge</string>
|
||||
<string name="settings_text_shadow_subtitle_none">Ingen</string>
|
||||
<string name="settings_text_shadow_subtitle_low">Lav</string>
|
||||
<string name="settings_text_shadow_subtitle_high">Høj</string>
|
||||
<string name="settings_custom_font_title">Widget skrifttype</string>
|
||||
<string name="custom_font_subtitle_0">Enhedsskrifttype</string>
|
||||
<string name="custom_font_subtitle_1">Product Sans</string>
|
||||
<string name="custom_date_format">Tilpasset datoformat</string>
|
||||
<string name="alpha">Alpha</string>
|
||||
<string name="transparent">Gennemsigtig</string>
|
||||
<string name="settings_show_dividers_title">Vis tekstdelere</string>
|
||||
<string name="first_row_header">Første række</string>
|
||||
<string name="second_row_header">Anden række</string>
|
||||
<string name="global_style_header">Widget</string>
|
||||
<string name="action_capitalize_the_date">Skift mellem stort og småt begyndelsesbogstav</string>
|
||||
<string name="settings_date_format_title">Datoformat</string>
|
||||
|
||||
<!-- Calendar -->
|
||||
<string name="settings_calendar_title">Kalender</string>
|
||||
<string name="title_permission_calendar">Vis dine begivenheder</string>
|
||||
<string name="description_permission_calendar">Giv tilladelse til at din kalender\n kan vise begivenheder i din widget.</string>
|
||||
<string name="settings_filter_calendar_title">Filtrer begivenheder</string>
|
||||
<string name="settings_filter_calendar_subtitle">Ændr kalenderens synlighed</string>
|
||||
<string name="settings_all_day_title">Heldagsbegivenheder</string>
|
||||
<string name="main_calendar">Kontokalender</string>
|
||||
<string name="calendar_settings_list_error">Fejl ved indlæsning af kalenderlisten</string>
|
||||
<string name="all_day">Heldagsbegivenhed</string>
|
||||
<string name="show_events_visible">Begivenheder er synlige</string>
|
||||
<string name="show_events_not_visible">Begivenheder er skjulte</string>
|
||||
<string name="settings_show_until_subtitle_6">30 minutter senere</string>
|
||||
<string name="settings_show_until_subtitle_7">1 time senere</string>
|
||||
<string name="settings_show_until_subtitle_0">3 timer senere</string>
|
||||
<string name="settings_show_until_subtitle_1">6 timer senere</string>
|
||||
<string name="settings_show_until_subtitle_2">12 timer senere</string>
|
||||
<string name="settings_show_until_subtitle_3">24 timer senere</string>
|
||||
<string name="settings_show_until_subtitle_4">3 dage senere</string>
|
||||
<string name="settings_show_until_subtitle_5">7 dage senere</string>
|
||||
<string name="settings_show_until_title">Vis begivenheder mindst</string>
|
||||
<string name="day_char">d</string>
|
||||
<string name="settings_calendar_app_title">Standard app til kalender</string>
|
||||
<string name="error_no_calendar">Ingen kalendere fundet.</string>
|
||||
<string name="tomorrow">i morgen</string>
|
||||
<string name="today">i dag</string>
|
||||
<string name="settings_event_app_title">Tryk på begivenhed åbner</string>
|
||||
<string name="settings_second_row_info_title">Begivenhedsinformationer</string>
|
||||
<string name="settings_second_row_info_subtitle_1">Adresse på begivenhed</string>
|
||||
<string name="settings_second_row_info_subtitle_0">Begivenhedstid</string>
|
||||
<string name="settings_show_diff_time_title">Tid tilbage til begivenheds start</string>
|
||||
<string name="settings_show_declined_events_title">Afviste begivenheder</string>
|
||||
<string name="default_event_app">Begivenhedsdetaljer</string>
|
||||
<string name="default_calendar_app">Standard kalender app</string>
|
||||
<string name="settings_show_multiple_events_title">Skift mellem flere begivenheder</string>
|
||||
<string name="soon">snart</string>
|
||||
<string name="now">nu</string>
|
||||
<string name="settings_widget_update_frequency_title">Opdateringsfrekvens på resterende tid</string>
|
||||
<string name="settings_widget_update_frequency_subtitle">Høj frekvens forårsager højere batteriforbrug</string>
|
||||
<string name="settings_widget_update_frequency_low">Lav</string>
|
||||
<string name="settings_widget_update_frequency_default">Standard</string>
|
||||
<string name="settings_widget_update_frequency_high">Høj</string>
|
||||
<string name="filters_header">Filtre</string>
|
||||
<string name="event_detail_header">Begivenhedsdetaljer</string>
|
||||
|
||||
<!-- Weather -->
|
||||
<string name="settings_weather_title">Vejr</string>
|
||||
<string name="title_permission_location">Vis vejret</string>
|
||||
<string name="description_permission_location">Giv tilladelse til din lokation\nfor at se vejret i din widget.</string>
|
||||
<string name="settings_unit_title">Måleenhed</string>
|
||||
<string name="fahrenheit" translatable="false">°F - Fahrenheit</string>
|
||||
<string name="celsius" translatable="false">°C - Celsius</string>
|
||||
<string name="settings_weather_refresh_period_title">Opdateringsfrekvens</string>
|
||||
<string name="settings_weather_refresh_period_subtitle_0">30 minutter</string>
|
||||
<string name="settings_weather_refresh_period_subtitle_1">1 time</string>
|
||||
<string name="settings_weather_refresh_period_subtitle_2">3 timer</string>
|
||||
<string name="settings_weather_refresh_period_subtitle_3">6 timer</string>
|
||||
<string name="settings_weather_refresh_period_subtitle_4">12 timer</string>
|
||||
<string name="settings_weather_refresh_period_subtitle_5">24 timer</string>
|
||||
<string name="settings_custom_location_title">Lokation</string>
|
||||
<string name="custom_location_gps">Brug geolocation</string>
|
||||
<string name="show_weather_visible">Vejrinfo er synlig</string>
|
||||
<string name="show_weather_not_visible">Vejrinfo er skjult</string>
|
||||
<string name="settings_weather_app_title">Tryk på vejret åbner</string>
|
||||
<string name="settings_weather_provider_api_key_title">Vejr API nøgle</string>
|
||||
<string name="settings_weather_provider_api_key_subtitle_all_set">Vejrudbyderen er konfigureret korrekt</string>
|
||||
<string name="settings_weather_provider_api_key_subtitle_not_set">Vejrudbyderen skal konfigureres</string>
|
||||
<string name="api_key_hint">OpenWeather API nøgle</string>
|
||||
<string name="default_weather_app">Google Weather</string>
|
||||
<string name="weather_warning">Vejr fra Google Awareness er forældet. Der kræves nu en OpenWeather API nøgle for at vise vejret i widget\'en.</string>
|
||||
<string name="api_key_title_1">Opret en OpenWeather konto</string>
|
||||
<string name="api_key_subtitle_1">Opret en gratis konto hos OpenWeather. Det vil kun tage få minutter.</string>
|
||||
<string name="api_key_title_2">Kopier din API nøgle</string>
|
||||
<string name="api_key_subtitle_2">Find menuen API keys i dine kontoindstillinger, og kopier standardnøglen.</string>
|
||||
<string name="api_key_title_3">Indtast nøglen i app\'en</string>
|
||||
<string name="api_key_subtitle_3">Indsæt nøglen i feltet ovenfor og gem ændringen. Så snart nøglen er aktiveret, vil vejret blive synligt.</string>
|
||||
<string name="action_open_provider">Gå til OpenWeatherMap.com</string>
|
||||
<string name="api_key_info_all_set">Der kan gå op til 10 minutter inden din API nøgle er aktiveret. Vejret vil blive opdateret så snart det er tilgængeligt.</string>
|
||||
<string name="settings_weather_icon_pack_title">Ikonpakke</string>
|
||||
<string name="settings_weather_icon_pack_default">Ikonpakke %d</string>
|
||||
|
||||
<!-- Clock -->
|
||||
<string name="settings_clock_title">Ur</string>
|
||||
<string name="settings_clock_app_title">Tryk på ur åbner</string>
|
||||
<string name="title_show_clock">Vis uret</string>
|
||||
<string name="show_clock_visible">Uret vises</string>
|
||||
<string name="show_clock_not_visible">Uret er skjult</string>
|
||||
<string name="settings_clock_text_size_title">Tekststørrelse</string>
|
||||
<string name="default_clock_app">Standard ur app</string>
|
||||
<string name="settings_clock_bottom_margin_title">Nedre margen på ur</string>
|
||||
<string name="settings_clock_bottom_margin_subtitle_none">Ingen</string>
|
||||
<string name="settings_clock_bottom_margin_subtitle_small">Lille</string>
|
||||
<string name="settings_clock_bottom_margin_subtitle_medium">Medium</string>
|
||||
<string name="settings_clock_bottom_margin_subtitle_large">Stor</string>
|
||||
<string name="clock_warning">Grundet teknologiske begrænsninger har uret ikke den tilpassede skrifttype og tekstskyggerne, som valgt under Typografi sektionen.</string>
|
||||
<string name="settings_clock_text_color_title">Tekstfarve</string>
|
||||
<string name="settings_ampm_indicator_title">Vis AM/PM indikator</string>
|
||||
<string name="clock_text_header">Tekststil på ur</string>
|
||||
|
||||
<!-- Glance -->
|
||||
<string name="settings_show_next_alarm_title">Vis næste alarm</string>
|
||||
<string name="next_alarm_warning">Den næste alarm lader til at være forkert.\nDen er indstillet af %s.</string>
|
||||
<string name="settings_at_a_glance_title">Overblik</string>
|
||||
<string name="settings_show_music_title">Aktuel sang</string>
|
||||
<string name="settings_request_notification_access">Vi har brug for tilladelse til aflæsning af notifikationer, for at vise den aktuelle sang.</string>
|
||||
<string name="settings_request_fitness_access">Vi har brug for et par få tilladelser, til at vise dine daglige skridt fra Google Fit.</string>
|
||||
<string name="title_show_glance">Vis overbliks-informationer</string>
|
||||
<string name="description_show_glance_visible">Service aktiveret</string>
|
||||
<string name="description_show_glance_not_visible">Service deaktiveret</string>
|
||||
<string name="settings_sort_glance_providers_title">Datakildeprioritet</string>
|
||||
<string name="settings_sort_glance_providers_subtitle">Skift datakilders prioritet</string>
|
||||
<string name="settings_custom_notes_title">Brugerdefinerede noter</string>
|
||||
<string name="settings_low_battery_level_title">Batteri</string>
|
||||
<string name="settings_daily_steps_title">Daglige skridt</string>
|
||||
<string name="battery_low_warning">Lavt batteriniveau</string>
|
||||
<string name="daily_steps_counter">%d skridt indtil videre</string>
|
||||
<string name="charging">Oplader</string>
|
||||
<string name="providers">Kilder</string>
|
||||
<string name="glance_info">Glance info will show up only when there are no events displayed and only when a few conditions are verified.</string>
|
||||
|
||||
<!-- Settings -->
|
||||
<string name="action_share">Del</string>
|
||||
<string name="action_rate">Bedøm app</string>
|
||||
<string name="action_support">Støt mig</string>
|
||||
<string name="action_feedback">Feedback</string>
|
||||
<string name="action_about">Om</string>
|
||||
<string name="action_refresh_widget">Genindlæs widget</string>
|
||||
<string name="toolbar_transition_name" translatable="false">toolbar</string>
|
||||
<string name="error_opening_uri">Fejl ved åbning af URL: Link kopieret til udklipsholder.</string>
|
||||
<string name="loading_text">Indlæser data…</string>
|
||||
<string name="error_opening_app">Fejl ved åbning af app.</string>
|
||||
<string name="default_name">Standard app</string>
|
||||
<string name="action_save">Gem</string>
|
||||
<string name="settings_visible">Synlig</string>
|
||||
<string name="settings_not_visible">Skjult</string>
|
||||
<string name="support_translations_title">Hjælp med oversættelser</string>
|
||||
<string name="support_translations_subtitle">Åbn en pull-anmodning på GitHub</string>
|
||||
<string name="support_website_title">Se mine andre projekter</string>
|
||||
<string name="support_website_subtitle">Samme udvikler, mange muligheder</string>
|
||||
<string name="error">Ups, noget gik galt!</string>
|
||||
<string name="settings_theme_title">Tema</string>
|
||||
<string name="support_main_subtitle">Udviklere har altid brug for meget kaffe</string>
|
||||
<string name="settings_subtitle_dark_theme_light">Lys</string>
|
||||
<string name="settings_subtitle_dark_theme_dark">Mørk</string>
|
||||
<string name="settings_subtitle_dark_theme_by_battery_saver">Angivet af batterisparefunktionen</string>
|
||||
<string name="settings_subtitle_dark_theme_follow_system">Følg systemtemaet</string>
|
||||
<string name="settings_subtitle_dark_theme_default">Standard</string>
|
||||
<string name="search">Søg</string>
|
||||
<string name="settings_app_version_title">App version</string>
|
||||
<string name="settings_title_show_wallpaper">Vis baggrundsbillede</string>
|
||||
<string name="support_refresh_widget_subtitle">Tving en genstart af widget-tjenesten</string>
|
||||
<string name="settings_feedback_subtitle">Dette er et open-source projekt, du er velkommen til at hjælpe.</string>
|
||||
<string name="settings_feedback_title">Feedback og feature requests</string>
|
||||
<string name="xiaomi_manufacturer" translatable="false">xiaomi</string>
|
||||
<string name="xiaomi_warning_title">Xiaomi Enheder</string>
|
||||
<string name="xiaomi_warning_message">Aktiver tilladelsen til visning af popup-vinduer, når app\'en kører i baggrunden, som findes under "Andre tilladelser" i appindstillingerne. Ellers vil du ikke kunne åbne nogle applikationer ved tryk på widget\'en.</string>
|
||||
<string name="action_ignore">Ignorér</string>
|
||||
<string name="action_grant_permission">Giv tilladelse</string>
|
||||
<string name="settings_title">Indstillinger</string>
|
||||
<string name="style_header">Stil</string>
|
||||
<string name="actions_header">Handlinger</string>
|
||||
<string name="provider_header">Opsætning</string>
|
||||
<string name="appearance_header">Udseende</string>
|
||||
<string name="preferences_header">Præferencer</string>
|
||||
|
||||
<!-- Activities -->
|
||||
<string name="action_choose_application">Vælg applikation</string>
|
||||
<string name="support_main_title">Støt udvikleren</string>
|
||||
<string name="thanks">Tak for støtten!</string>
|
||||
<string name="donation_coffee">En italiensk kaffe</string>
|
||||
<string name="donation_donuts">Nogle glaserede donuts</string>
|
||||
<string name="donation_dinner">En dyr middag</string>
|
||||
<string name="donation_breakfast">En english breakfast</string>
|
||||
<string name="donation_lunch">En hurtig frokost</string>
|
||||
<string name="action_show_widget_preview">Vis widget forhåndsvisning</string>
|
||||
<string name="support_dev_subtitle">Dette er et projekt fra en enkelt udvikler,\nså tak for støtten!</string>
|
||||
<string name="settings_title_integrations">Integrationer</string>
|
||||
<string name="label_count_installed_integrations">%d installerede integrationer</string>
|
||||
</resources>
|
203
app/src/main/res/values-fr/strings.xml
Normal file
@ -0,0 +1,203 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="add_widget">Ajouter</string>
|
||||
|
||||
<!-- Display -->
|
||||
<string name="settings_general_title">Affichage</string>
|
||||
<string name="settings_font_color_title">Couleur du texte</string>
|
||||
<string name="settings_secondary_font_color_title">Couleur du texte</string>
|
||||
<string name="settings_background_color_title">Couleur de l\'arrière-plan</string>
|
||||
<string name="title_main_text_size">Taille du texte</string>
|
||||
<string name="title_second_text_size">Taille du texte</string>
|
||||
<string name="title_text_shadow">Ombre du texte</string>
|
||||
<string name="settings_text_shadow_subtitle_none">Aucune</string>
|
||||
<string name="settings_text_shadow_subtitle_low">Faible</string>
|
||||
<string name="settings_text_shadow_subtitle_high">Élevée</string>
|
||||
<string name="settings_custom_font_title">Police du widget</string>
|
||||
<string name="custom_font_subtitle_0">Police de l\'appareil</string>
|
||||
<string name="custom_font_subtitle_1">Product Sans</string>
|
||||
<string name="custom_date_format">Format personnalisé</string>
|
||||
<string name="alpha">Opacité </string>
|
||||
<string name="transparent">Transparent</string>
|
||||
<string name="settings_show_dividers_title">Séparateur de texte</string>
|
||||
<string name="first_row_header">Première ligne</string>
|
||||
<string name="second_row_header">Seconde ligne</string>
|
||||
<string name="global_style_header">Widget</string>
|
||||
<string name="action_capitalize_the_date">Date en majuscules</string>
|
||||
<string name="settings_date_format_title">Format de date</string>
|
||||
|
||||
<!-- Calendar -->
|
||||
<string name="settings_calendar_title">Calendrier</string>
|
||||
<string name="title_permission_calendar">Afficher vos événements</string>
|
||||
<string name="description_permission_calendar">Accordez l\'accès à votre calendrier\npour afficher les événements dans votre widget</string>
|
||||
<string name="settings_filter_calendar_title">Filtrer les événements</string>
|
||||
<string name="settings_filter_calendar_subtitle">Modifier la visibilité du calendrier</string>
|
||||
<string name="settings_all_day_title">Événements toute la journée</string>
|
||||
<string name="main_calendar">Calendrier du compte</string>
|
||||
<string name="calendar_settings_list_error">Erreur de chargement de la liste des calendriers</string>
|
||||
<string name="all_day">Événement toute la journée</string>
|
||||
<string name="show_events_visible">Événements visibles</string>
|
||||
<string name="show_events_not_visible">Événements non visibles</string>
|
||||
<string name="settings_show_until_subtitle_6">30 minutes avant</string>
|
||||
<string name="settings_show_until_subtitle_7">1 heure avant</string>
|
||||
<string name="settings_show_until_subtitle_0">3 heures avant</string>
|
||||
<string name="settings_show_until_subtitle_1">6 heures avant</string>
|
||||
<string name="settings_show_until_subtitle_2">12 heures avant</string>
|
||||
<string name="settings_show_until_subtitle_3">24 heures avant</string>
|
||||
<string name="settings_show_until_subtitle_4">3 jours avant</string>
|
||||
<string name="settings_show_until_subtitle_5">7 jours avant</string>
|
||||
<string name="settings_show_until_title">Afficher les événements au moins</string>
|
||||
<string name="day_char">j</string>
|
||||
<string name="settings_calendar_app_title">App calendrier par défaut</string>
|
||||
<string name="error_no_calendar">Aucun calendrier trouvé</string>
|
||||
<string name="tomorrow">demain</string>
|
||||
<string name="today">aujourd\'hui</string>
|
||||
<string name="settings_event_app_title">Taper sur l\'événement ouvre</string>
|
||||
<string name="settings_second_row_info_title">Infos de l\'événement</string>
|
||||
<string name="settings_second_row_info_subtitle_1">Adresse de l\'événement</string>
|
||||
<string name="settings_second_row_info_subtitle_0">Heure de l\'événement</string>
|
||||
<string name="settings_show_diff_time_title">Temps restant jusqu\'à l\'événement</string>
|
||||
<string name="settings_show_declined_events_title">Événements refusés</string>
|
||||
<string name="default_event_app">Détails de l\'événement</string>
|
||||
<string name="default_calendar_app">App calendrier par défaut</string>
|
||||
<string name="settings_show_multiple_events_title">Sélecteur d\'événements multiples</string>
|
||||
<string name="soon">bientôt</string>
|
||||
<string name="now">maintenant</string>
|
||||
<string name="settings_widget_update_frequency_title">Fréquence de màj du temps restant</string>
|
||||
<string name="settings_widget_update_frequency_subtitle">Une fréquence élevée consomme plus de batterie</string>
|
||||
<string name="settings_widget_update_frequency_low">Faible</string>
|
||||
<string name="settings_widget_update_frequency_default">Par défaut</string>
|
||||
<string name="settings_widget_update_frequency_high">Élevée</string>
|
||||
<string name="filters_header">Filtres</string>
|
||||
<string name="event_detail_header">Détails</string>
|
||||
|
||||
<!-- Weather -->
|
||||
<string name="settings_weather_title">Météo</string>
|
||||
<string name="title_permission_location">Afficher la météo</string>
|
||||
<string name="description_permission_location">Accordez l\'accès à votre localisation\npour voir la météo dans votre widget</string>
|
||||
<string name="settings_unit_title">Unité de mesure</string>
|
||||
<string name="settings_weather_refresh_period_title">Fréquence d\'actualisation</string>
|
||||
<string name="settings_weather_refresh_period_subtitle_0">30 minutes</string>
|
||||
<string name="settings_weather_refresh_period_subtitle_1">1 heure</string>
|
||||
<string name="settings_weather_refresh_period_subtitle_2">3 heures</string>
|
||||
<string name="settings_weather_refresh_period_subtitle_3">6 heures</string>
|
||||
<string name="settings_weather_refresh_period_subtitle_4">12 heures</string>
|
||||
<string name="settings_weather_refresh_period_subtitle_5">24 heures</string>
|
||||
<string name="settings_custom_location_title">Localisation</string>
|
||||
<string name="custom_location_gps">Utiliser le GPS</string>
|
||||
<string name="show_weather_visible">Infos météo visibles</string>
|
||||
<string name="show_weather_not_visible">Infos météo non visibles</string>
|
||||
<string name="settings_weather_app_title">Taper sur la météo ouvre</string>
|
||||
<string name="settings_weather_provider_api_key_title">Clé API pour la météo</string>
|
||||
<string name="settings_weather_provider_api_key_subtitle_all_set">Fournisseur météo correctement configuré</string>
|
||||
<string name="settings_weather_provider_api_key_subtitle_not_set">Le fournisseur météo doit être configuré</string>
|
||||
<string name="api_key_hint">Clé API OpenWeather</string>
|
||||
<string name="default_weather_app">Google Weather</string>
|
||||
<string name="weather_warning">La météo de Google Awareness est obsolète. Il faut désormais une clé API OpenWeather pour afficher la météo dans le widget.</string>
|
||||
<string name="api_key_title_1">Inscrivez-vous sur OpenWeather</string>
|
||||
<string name="api_key_subtitle_1">Créez un compte gratuit sur OpenWeather. \nCela ne prendra que quelques minutes.</string>
|
||||
<string name="api_key_title_2">Copiez votre clé API</string>
|
||||
<string name="api_key_subtitle_2">Recherchez la clé API dans vos paramètres du compte et copiez la clé par défaut.</string>
|
||||
<string name="api_key_title_3">Saisissez la clé API dans l\'app</string>
|
||||
<string name="api_key_subtitle_3">Collez la clé dans le champ ci-dessus et enregistrez-la. Une fois la clé activée, la météo deviendra visible.</string>
|
||||
<string name="action_open_provider">Aller sur OpenWeatherMap.com</string>
|
||||
<string name="api_key_info_all_set">Cela peut prendre jusqu\'à 10 minutes avant que votre clé API soit activée. La météo sera mise à jour dès qu\'elle sera disponible !</string>
|
||||
<string name="settings_weather_icon_pack_title">Pack d\'icônes</string>
|
||||
<string name="settings_weather_icon_pack_default">Pack d\'icônes %d</string>
|
||||
|
||||
<!-- Clock -->
|
||||
<string name="settings_clock_title">Horloge</string>
|
||||
<string name="settings_clock_app_title">Taper sur l\'horloge ouvre</string>
|
||||
<string name="title_show_clock">Afficher l\'horloge</string>
|
||||
<string name="show_clock_visible">Horloge visible</string>
|
||||
<string name="show_clock_not_visible">Horloge non visible</string>
|
||||
<string name="settings_clock_text_size_title">Taille du texte</string>
|
||||
<string name="default_clock_app">App horloge par défaut</string>
|
||||
<string name="settings_clock_bottom_margin_title">Marge inférieure de l\'horloge</string>
|
||||
<string name="settings_clock_bottom_margin_subtitle_none">Aucune</string>
|
||||
<string name="settings_clock_bottom_margin_subtitle_small">Petite</string>
|
||||
<string name="settings_clock_bottom_margin_subtitle_medium">Moyenne</string>
|
||||
<string name="settings_clock_bottom_margin_subtitle_large">Grande</string>
|
||||
<string name="clock_warning">En raison de limitations technologiques, l\'horloge n\'aura pas la police personnalisée et les ombres de texte sélectionnées dans la section Affichage.</string>
|
||||
<string name="settings_clock_text_color_title">Couleur du texte</string>
|
||||
<string name="settings_ampm_indicator_title">Afficher l\'indicateur AM/PM</string>
|
||||
<string name="clock_text_header">Style du texte</string>
|
||||
|
||||
<!-- Glance -->
|
||||
<string name="settings_show_next_alarm_title">Prochaine alarme</string>
|
||||
<string name="next_alarm_warning">La prochaine alarme semble erronée.\nElle a été définie par %s.</string>
|
||||
<string name="settings_at_a_glance_title">Coup d\'œil</string>
|
||||
<string name="settings_show_music_title">Musique en cours de lecture</string>
|
||||
<string name="settings_request_notification_access">Nous avons besoin d\'accéder aux notifications pour vérifier la musique en cours de lecture</string>
|
||||
<string name="settings_request_fitness_access">Nous avons besoin de quelques autorisations pour obtenir vos nombres de pas quotidiens depuis Google Fit</string>
|
||||
<string name="title_show_glance">Afficher les infos en un coup d\'œil</string>
|
||||
<string name="description_show_glance_visible">Services activés</string>
|
||||
<string name="description_show_glance_not_visible">Services désactivés</string>
|
||||
<string name="settings_sort_glance_providers_title">Priorité des sources de données</string>
|
||||
<string name="settings_sort_glance_providers_subtitle">Modifier l\'importance des fournisseurs</string>
|
||||
<string name="settings_custom_notes_title">Notes personnalisées</string>
|
||||
<string name="settings_low_battery_level_title">Batterie (en charge/faible)</string>
|
||||
<string name="settings_daily_steps_title">Nombre de pas quotidiens</string>
|
||||
<string name="battery_low_warning">Batterie faible</string>
|
||||
<string name="daily_steps_counter">%d pas jusqu\à présent</string>
|
||||
<string name="charging">En charge</string>
|
||||
<string name="providers">Fournisseurs</string>
|
||||
<string name="glance_info">Glance info will show up only when there are no events displayed and only when a few conditions are verified.</string>
|
||||
|
||||
<!-- Settings -->
|
||||
<string name="action_share">Partager</string>
|
||||
<string name="action_rate">Noter l\'app</string>
|
||||
<string name="action_support">Soutenez-moi</string>
|
||||
<string name="action_feedback">Commentaires</string>
|
||||
<string name="action_about">À propos</string>
|
||||
<string name="action_refresh_widget">Actualiser le widget</string>
|
||||
<string name="error_opening_uri">Erreur d\'ouverture de l\'URL : lien copié dans le presse-papiers</string>
|
||||
<string name="loading_text">Chargement des données…</string>
|
||||
<string name="error_opening_app">Erreur d\'ouverture de l\'app</string>
|
||||
<string name="default_name">App par défaut</string>
|
||||
<string name="action_save">OK</string>
|
||||
<string name="settings_visible">Visible</string>
|
||||
<string name="settings_not_visible">Non visible</string>
|
||||
<string name="support_translations_title">Aider à traduire</string>
|
||||
<string name="support_translations_subtitle">Ouvrir une pull-request sur GitHub</string>
|
||||
<string name="support_website_title">Consulter mes autres projets</string>
|
||||
<string name="support_website_subtitle">Un seul développeur, plusieurs possibilités</string>
|
||||
<string name="error">Oups, quelque chose s\'est mal passé !</string>
|
||||
<string name="settings_theme_title">Thème</string>
|
||||
<string name="support_main_subtitle">On a toujours besoin de beaucoup de café</string>
|
||||
<string name="settings_subtitle_dark_theme_light">Clair</string>
|
||||
<string name="settings_subtitle_dark_theme_dark">Sombre</string>
|
||||
<string name="settings_subtitle_dark_theme_by_battery_saver">Défini par l\'économiseur de batterie</string>
|
||||
<string name="settings_subtitle_dark_theme_follow_system">Selon le thème du système</string>
|
||||
<string name="settings_subtitle_dark_theme_default">Par défaut</string>
|
||||
<string name="search">Recherche</string>
|
||||
<string name="settings_app_version_title">Version de l\'app</string>
|
||||
<string name="settings_title_show_wallpaper">Afficher le fond d\'écran</string>
|
||||
<string name="support_refresh_widget_subtitle">Forcer le redémarrage des services du widget</string>
|
||||
<string name="settings_feedback_subtitle">Ce projet est open-source, n\'hésitez pas à aider</string>
|
||||
<string name="settings_feedback_title">Commentaires et suggestions</string>
|
||||
<string name="xiaomi_warning_title">Appareils Xiaomi</string>
|
||||
<string name="xiaomi_warning_message">Veuillez activer l\'option "Afficher des fenêtres pop-up pendant que vous parcourez en arrière-plan" dans la section "Autres autorisations" des paramètres de l\'application. Sinon, vous ne pourrez ouvrir aucune application en tapant sur le widget.</string>
|
||||
<string name="action_ignore">Ignorer</string>
|
||||
<string name="action_grant_permission">Aller dans Paramètres</string>
|
||||
<string name="settings_title">Paramètres</string>
|
||||
<string name="style_header">Style</string>
|
||||
<string name="actions_header">Actions</string>
|
||||
<string name="provider_header">Configuration</string>
|
||||
<string name="appearance_header">Apparence</string>
|
||||
<string name="preferences_header">Préférences</string>
|
||||
|
||||
<!-- Activities -->
|
||||
<string name="action_choose_application">Choisir l\'app</string>
|
||||
<string name="support_main_title">Soutenir le développeur</string>
|
||||
<string name="thanks">Merci de m\'avoir soutenu !</string>
|
||||
<string name="donation_coffee">Un café italien</string>
|
||||
<string name="donation_donuts">Quelques donuts glacés</string>
|
||||
<string name="donation_dinner">Un dîner chic</string>
|
||||
<string name="donation_breakfast">Un petit-déjeuner anglais</string>
|
||||
<string name="donation_lunch">Un déjeuner rapide</string>
|
||||
<string name="action_show_widget_preview">Afficher l\'aperçu du widget</string>
|
||||
<string name="support_dev_subtitle">Ceci est le projet d\'un unique développeur,\ndonc merci pour le soutien !</string>
|
||||
<string name="settings_title_integrations">Intégrations</string>
|
||||
<string name="label_count_installed_integrations">%d intégrations installées</string>
|
||||
</resources>
|
205
app/src/main/res/values-in/strings.xml
Normal file
@ -0,0 +1,205 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name" translatable="false">Another Widget</string>
|
||||
<string name="add_widget">Tambahkan</string>
|
||||
|
||||
<!-- Display -->
|
||||
<string name="settings_general_title">Tampilan</string>
|
||||
<string name="divider" translatable="false">|</string>
|
||||
<string name="settings_font_color_title">Warna teks</string>
|
||||
<string name="settings_secondary_font_color_title">Warna teks</string>
|
||||
<string name="settings_background_color_title">Warna latar belakang</string>
|
||||
<string name="title_main_text_size">Ukuran teks</string>
|
||||
<string name="title_second_text_size">Ukuran teks</string>
|
||||
<string name="title_text_shadow">Bayangan teks</string>
|
||||
<string name="settings_text_shadow_subtitle_none">Tidak ada</string>
|
||||
<string name="settings_text_shadow_subtitle_low">Rendah</string>
|
||||
<string name="settings_text_shadow_subtitle_high">Tinggi</string>
|
||||
<string name="settings_custom_font_title">Fon widget</string>
|
||||
<string name="custom_font_subtitle_0">Fon Perangkat</string>
|
||||
<string name="custom_font_subtitle_1">Product Sans</string>
|
||||
<string name="custom_date_format">Format tanggal khusus</string>
|
||||
<string name="alpha">Alpha</string>
|
||||
<string name="transparent">Transparan</string>
|
||||
<string name="settings_show_dividers_title">Tampilkan pemisah teks</string>
|
||||
<string name="first_row_header">Baris pertama</string>
|
||||
<string name="second_row_header">Baris kedua</string>
|
||||
<string name="global_style_header">Widget</string>
|
||||
<string name="action_capitalize_the_date">Tanggal huruf besar</string>
|
||||
<string name="settings_date_format_title">Format tanggal</string>
|
||||
|
||||
<!-- Calendar -->
|
||||
<string name="settings_calendar_title">Kalender</string>
|
||||
<string name="title_permission_calendar">Tampilkan acara anda</string>
|
||||
<string name="description_permission_calendar">Berikan izin untuk mengakses kalender anda\nuntuk menampilkan acara di widget.</string>
|
||||
<string name="settings_filter_calendar_title">Saring acara</string>
|
||||
<string name="settings_filter_calendar_subtitle">Ubah visibilitas kalender</string>
|
||||
<string name="settings_all_day_title">Acara seharian</string>
|
||||
<string name="main_calendar">Kalender akun</string>
|
||||
<string name="calendar_settings_list_error">Terjadi kesalahan saat memuat daftar kalender</string>
|
||||
<string name="all_day">Acara seharian</string>
|
||||
<string name="show_events_visible">Acara ditampilkan</string>
|
||||
<string name="show_events_not_visible">Acara disembunyikan</string>
|
||||
<string name="settings_show_until_subtitle_6">30 menit kemudian</string>
|
||||
<string name="settings_show_until_subtitle_7">1 jam kemudian</string>
|
||||
<string name="settings_show_until_subtitle_0">3 jam kemudian</string>
|
||||
<string name="settings_show_until_subtitle_1">6 jam kemudian</string>
|
||||
<string name="settings_show_until_subtitle_2">12 jam kemudian</string>
|
||||
<string name="settings_show_until_subtitle_3">24 jam kemudian</string>
|
||||
<string name="settings_show_until_subtitle_4">3 hari kemudian</string>
|
||||
<string name="settings_show_until_subtitle_5">7 hari kemudian</string>
|
||||
<string name="settings_show_until_title">Tampilkan acara setidaknya</string>
|
||||
<string name="day_char">h</string>
|
||||
<string name="settings_calendar_app_title">Aplikasi kalender</string>
|
||||
<string name="error_no_calendar">Tidak ada kalender yang ditemukan.</string>
|
||||
<string name="tomorrow">besok</string>
|
||||
<string name="today">hari ini</string>
|
||||
<string name="settings_event_app_title">Ketuk pada acara membuka</string>
|
||||
<string name="settings_second_row_info_title">Info acara</string>
|
||||
<string name="settings_second_row_info_subtitle_1">Alamat acara</string>
|
||||
<string name="settings_second_row_info_subtitle_0">Waktu acara</string>
|
||||
<string name="settings_show_diff_time_title">Waktu tersisa sebelum acara</string>
|
||||
<string name="settings_show_declined_events_title">Acara ditolak</string>
|
||||
<string name="default_event_app">Detail acara</string>
|
||||
<string name="default_calendar_app">Aplikasi kalender bawaan</string>
|
||||
<string name="settings_show_multiple_events_title">Pengalih beberapa acara</string>
|
||||
<string name="soon">segera</string>
|
||||
<string name="now">sekarang</string>
|
||||
<string name="settings_widget_update_frequency_title">Rentang waktu frekuensi pembaruan</string>
|
||||
<string name="settings_widget_update_frequency_subtitle">Frekuensi tinggi akan menyebabkan penggunaan baterai menjadi lebih tinggi</string>
|
||||
<string name="settings_widget_update_frequency_low">Rendah</string>
|
||||
<string name="settings_widget_update_frequency_default">Bawaan</string>
|
||||
<string name="settings_widget_update_frequency_high">Tinggi</string>
|
||||
<string name="filters_header">Saring</string>
|
||||
<string name="event_detail_header">Detail acara</string>
|
||||
|
||||
<!-- Weather -->
|
||||
<string name="settings_weather_title">Cuaca</string>
|
||||
<string name="title_permission_location">Tampilkan cuaca</string>
|
||||
<string name="description_permission_location">Berikan izin akses ke lokasi anda\nuntuk menampilkan cuaca di widget.</string>
|
||||
<string name="settings_unit_title">Unit pengukuran</string>
|
||||
<string name="settings_weather_refresh_period_title">Frekuensi penyegaran</string>
|
||||
<string name="settings_weather_refresh_period_subtitle_0">30 menit</string>
|
||||
<string name="settings_weather_refresh_period_subtitle_1">1 jam</string>
|
||||
<string name="settings_weather_refresh_period_subtitle_2">3 jam</string>
|
||||
<string name="settings_weather_refresh_period_subtitle_3">6 jam</string>
|
||||
<string name="settings_weather_refresh_period_subtitle_4">12 jam</string>
|
||||
<string name="settings_weather_refresh_period_subtitle_5">24 jam</string>
|
||||
<string name="settings_custom_location_title">Lokasi</string>
|
||||
<string name="custom_location_gps">Gunakan geolokasi</string>
|
||||
<string name="show_weather_visible">Info acara ditampilkan</string>
|
||||
<string name="show_weather_not_visible">Info acara disembunyikan</string>
|
||||
<string name="settings_weather_app_title">Ketuk pada cuaca membuka</string>
|
||||
<string name="settings_weather_provider_api_key_title">Kunci API cuaca</string>
|
||||
<string name="settings_weather_provider_api_key_subtitle_all_set">Penyedia layanan cuaca dikonfigurasi dengan benar</string>
|
||||
<string name="settings_weather_provider_api_key_subtitle_not_set">Penyedia layanan cuaca harus dikonfigurasi</string>
|
||||
<string name="api_key_hint">Kunci API OpenWeather</string>
|
||||
<string name="default_weather_app">Google Weather</string>
|
||||
<string name="weather_warning">Layanan cuaca Google Awareness telah ditutup. Sekarang membutuhkan Kunci API OpenWeather untuk menampilkan cuaca di widget.</string>
|
||||
<string name="api_key_title_1">Daftar akun OpenWeather</string>
|
||||
<string name="api_key_subtitle_1">Daftar akun gratis pada situs OpenWeather. Hanya akan membutuhkan waktu beberapa menit saja.</string>
|
||||
<string name="api_key_title_2">Salin Kunci API anda</string>
|
||||
<string name="api_key_subtitle_2">Temukan menu kunci API dari pengaturan akun anda dan salin kunci default.</string>
|
||||
<string name="api_key_title_3">Masukkan kunci API ke aplikasi</string>
|
||||
<string name="api_key_subtitle_3">Tempel kunci API ke dalam ruas di atas dan simpan. Setelah kunci diaktifkan, cuaca akan segera ditampilkan.</string>
|
||||
<string name="action_open_provider">Kunjungi OpenWeatherMap.com</string>
|
||||
<string name="api_key_info_all_set">Mungkin membutuhkan lebih kurang 10 menit sebelum kunci API anda diaktifkan. Cuaca akan diperbarui segera setelah data tersedia.</string>
|
||||
<string name="settings_weather_icon_pack_title">Paket ikon</string>
|
||||
<string name="settings_weather_icon_pack_default">Paket ikon %d</string>
|
||||
|
||||
<!-- Clock -->
|
||||
<string name="settings_clock_title">Jam</string>
|
||||
<string name="settings_clock_app_title">Ketuk pada jam membuka</string>
|
||||
<string name="title_show_clock">Tampilkan Jam</string>
|
||||
<string name="show_clock_visible">Jam ditampilkan</string>
|
||||
<string name="show_clock_not_visible">Jam disembunyikan</string>
|
||||
<string name="settings_clock_text_size_title">Ukuran teks</string>
|
||||
<string name="default_clock_app">Aplikasi jam bawaan</string>
|
||||
<string name="settings_clock_bottom_margin_title">Margin bawah jam</string>
|
||||
<string name="settings_clock_bottom_margin_subtitle_none">Tidak ada</string>
|
||||
<string name="settings_clock_bottom_margin_subtitle_small">Kecil</string>
|
||||
<string name="settings_clock_bottom_margin_subtitle_medium">Sedang</string>
|
||||
<string name="settings_clock_bottom_margin_subtitle_large">Besar</string>
|
||||
<string name="clock_warning">Karena keterbatasan teknologi, jam tidak akan menerapkan fon khusus dan bayangan teks yang diatur dalam bagian pengaturan Tampilan.</string>
|
||||
<string name="settings_clock_text_color_title">Warna teks</string>
|
||||
<string name="settings_ampm_indicator_title">Tampilkan Indikator AM/PM</string>
|
||||
<string name="clock_text_header">Gaya teks jam</string>
|
||||
|
||||
<!-- Glance -->
|
||||
<string name="settings_show_next_alarm_title">Waktu alarm berikutnya</string>
|
||||
<string name="next_alarm_warning">Waktu alarm berikutnya sepertinya salah.\nTelah disetel %s.</string>
|
||||
<string name="settings_at_a_glance_title">Sekilas</string>
|
||||
<string name="settings_show_music_title">Lagu yang diputar saat ini</string>
|
||||
<string name="settings_request_notification_access">Membutuhkan izin akses notifikasi untuk menampilkan lagu yang saat ini diputar.</string>
|
||||
<string name="settings_request_fitness_access">Membutuhkan beberapa izin untuk menampilkan jumlah langkah dari Google Fit.</string>
|
||||
<string name="title_show_glance">Tampilkan di info sekilas</string>
|
||||
<string name="description_show_glance_visible">Layanan diaktifkan</string>
|
||||
<string name="description_show_glance_not_visible">Layanan dinonaktifkan</string>
|
||||
<string name="settings_sort_glance_providers_title">Prioritas sumber data</string>
|
||||
<string name="settings_sort_glance_providers_subtitle">Ubah prioritas penyedia data</string>
|
||||
<string name="settings_custom_notes_title">Catatan khusus</string>
|
||||
<string name="settings_low_battery_level_title">Baterai</string>
|
||||
<string name="settings_daily_steps_title">Langkah harian</string>
|
||||
<string name="battery_low_warning">Level baterai rendah</string>
|
||||
<string name="daily_steps_counter">%d langkah sejauh ini</string>
|
||||
<string name="charging">Mengisi daya</string>
|
||||
<string name="providers">Penyedia</string>
|
||||
<string name="glance_info">Glance info will show up only when there are no events displayed and only when a few conditions are verified.</string>
|
||||
|
||||
<!-- Settings -->
|
||||
<string name="action_share">Bagikan</string>
|
||||
<string name="action_rate">Nilai aplikasi</string>
|
||||
<string name="action_support">Dukung saya</string>
|
||||
<string name="action_feedback">Umpanbalik</string>
|
||||
<string name="action_about">Tentang</string>
|
||||
<string name="action_refresh_widget">Segarkan widget</string>
|
||||
<string name="error_opening_uri">Terjadi kesalahan saat membuka URL: Tautan disalin ke papan klip.</string>
|
||||
<string name="loading_text">Memuat Data…</string>
|
||||
<string name="error_opening_app">Terjadi kesalahan saat membuka aplikasi.</string>
|
||||
<string name="default_name">Aplikasi bawaan</string>
|
||||
<string name="action_save">Simpan</string>
|
||||
<string name="settings_visible">Ditampilkan</string>
|
||||
<string name="settings_not_visible">Disembunyikan</string>
|
||||
<string name="support_translations_title">Bantu menerjemahkan</string>
|
||||
<string name="support_translations_subtitle">Buka pull request pada GitHub</string>
|
||||
<string name="support_website_title">Lihat proyek saya lainnya</string>
|
||||
<string name="support_website_subtitle">Pengembang yang sama, banyak kemungkinan</string>
|
||||
<string name="error">Ups, telah terjadi kesalahan!</string>
|
||||
<string name="settings_theme_title">Tema</string>
|
||||
<string name="support_main_subtitle">Pengembang selalu membutuhkan banyak minum kopi</string>
|
||||
<string name="settings_subtitle_dark_theme_light">Terang</string>
|
||||
<string name="settings_subtitle_dark_theme_dark">Gelap</string>
|
||||
<string name="settings_subtitle_dark_theme_by_battery_saver">Setel berdasarkan Penghemat Baterai</string>
|
||||
<string name="settings_subtitle_dark_theme_follow_system">Mengikuti tema sistem</string>
|
||||
<string name="settings_subtitle_dark_theme_default">Bawaan</string>
|
||||
<string name="search">Cari</string>
|
||||
<string name="settings_app_version_title">Versi aplikasi</string>
|
||||
<string name="settings_title_show_wallpaper">Tampilkan wallpaper</string>
|
||||
<string name="support_refresh_widget_subtitle">Paksa mulai ulang layanan widget</string>
|
||||
<string name="settings_feedback_subtitle">Ini adalah proyek sumber terbuka, jangan sungkan untuk membantu.</string>
|
||||
<string name="settings_feedback_title">Umpanbalik dan permintaan fitur</string>
|
||||
<string name="xiaomi_warning_title">Perangkat Xiaomi</string>
|
||||
<string name="xiaomi_warning_message">Berikan izin untuk menampilkan jendela pop-up saat berjalan di latar belakang di dalam bagian "Perizinan lainnya" di pengaturan aplikasi. Jika tidak, anda tidak akan bisa membuka aplikasi apapun saat mengetuk widget.</string>
|
||||
<string name="action_ignore">Abaikan</string>
|
||||
<string name="action_grant_permission">Berikan izin</string>
|
||||
<string name="settings_title">Pengaturan</string>
|
||||
<string name="style_header">Gaya</string>
|
||||
<string name="actions_header">Tindakan</string>
|
||||
<string name="provider_header">Setel</string>
|
||||
<string name="appearance_header">Penampilan</string>
|
||||
<string name="preferences_header">Preferensi</string>
|
||||
|
||||
<!-- Activities -->
|
||||
<string name="action_choose_application">Pilih aplikasi</string>
|
||||
<string name="support_main_title">Dukung pengembang</string>
|
||||
<string name="thanks">Terima kasih telah mendukung saya!</string>
|
||||
<string name="donation_coffee">Kopi italia</string>
|
||||
<string name="donation_donuts">Donat yang nikmat</string>
|
||||
<string name="donation_dinner">Makan malam yang mewah</string>
|
||||
<string name="donation_breakfast">Sarapan yang bersemangat</string>
|
||||
<string name="donation_lunch">Makan siang yang cepat</string>
|
||||
<string name="action_show_widget_preview">Tampilkan pratinjau widget</string>
|
||||
<string name="support_dev_subtitle">Ini adalah proyek pengembang tunggal,\nterima kasih banyak untuk dukungannya!</string>
|
||||
<string name="settings_title_integrations">Integrasi</string>
|
||||
<string name="label_count_installed_integrations">%d integrasi terpasang</string>
|
||||
</resources>
|
@ -1,10 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name" translatable="false">Another Widget</string>
|
||||
<string name="add_widget">Aggiungi</string>
|
||||
|
||||
<!-- Display -->
|
||||
<string name="settings_general_title">Display</string>
|
||||
<string name="divider" translatable="false">|</string>
|
||||
<string name="settings_font_color_title">Colore testo</string>
|
||||
<string name="settings_secondary_font_color_title">Colore testo</string>
|
||||
<string name="settings_background_color_title">Colore sfondo</string>
|
||||
@ -103,9 +103,8 @@
|
||||
<string name="api_key_subtitle_3">Copia qui la chiave API e salva la nuova configurazione.</string>
|
||||
<string name="action_open_provider">Apri OpenWeatherMap.com</string>
|
||||
<string name="api_key_info_all_set">La chiave API potrebbe aver bisogno di più di 20 minuti per diventare attiva, aggiorneremo il meteo non appena sarà possibile.</string>
|
||||
<string name="settings_weather_icon_pack_title">Stile icone</string>
|
||||
<string name="settings_weather_icon_pack_default">Default</string>
|
||||
<string name="settings_weather_icon_pack_minimal">Minimal</string>
|
||||
<string name="settings_weather_icon_pack_title">Icon pack</string>
|
||||
<string name="settings_weather_icon_pack_default">Icon pack %d</string>
|
||||
|
||||
<!-- Clock -->
|
||||
<string name="settings_clock_title">Orologio</string>
|
||||
@ -144,6 +143,7 @@
|
||||
<string name="daily_steps_counter">%d passi fatti finore</string>
|
||||
<string name="charging">In carica</string>
|
||||
<string name="providers">Providers</string>
|
||||
<string name="glance_info">Glance info will show up only when there are no events displayed and only when a few conditions are verified.</string>
|
||||
|
||||
<!-- Settings -->
|
||||
<string name="action_share">Condividi</string>
|
||||
|
204
app/src/main/res/values-ru/strings.xml
Normal file
@ -0,0 +1,204 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name" translatable="false">Another Widget</string>
|
||||
<string name="add_widget">Добавить виджет</string>
|
||||
|
||||
<!-- Display -->
|
||||
<string name="settings_general_title">Отображение</string>
|
||||
<string name="settings_font_color_title">Цвет текста</string>
|
||||
<string name="settings_secondary_font_color_title">Цвет текста</string>
|
||||
<string name="settings_background_color_title">Цвет фона</string>
|
||||
<string name="title_main_text_size">Размер текста</string>
|
||||
<string name="title_second_text_size">Размер текста</string>
|
||||
<string name="title_text_shadow">Тень текста</string>
|
||||
<string name="settings_text_shadow_subtitle_none">Нет</string>
|
||||
<string name="settings_text_shadow_subtitle_low">Слабая</string>
|
||||
<string name="settings_text_shadow_subtitle_high">Сильная</string>
|
||||
<string name="settings_custom_font_title">Шрифт виджета</string>
|
||||
<string name="custom_font_subtitle_0">Шрифт устройства</string>
|
||||
<string name="custom_font_subtitle_1">Product Sans</string>
|
||||
<string name="custom_date_format">Настраеваемый формат даты</string>
|
||||
<string name="alpha">Непрозрачность</string>
|
||||
<string name="transparent">Прозрачный</string>
|
||||
<string name="settings_show_dividers_title">Отображение разделителей текста</string>
|
||||
<string name="first_row_header">Первая строка</string>
|
||||
<string name="second_row_header">Вторая строка</string>
|
||||
<string name="global_style_header">Виджет</string>
|
||||
<string name="action_capitalize_the_date">Дата заглавными буквами</string>
|
||||
<string name="settings_date_format_title">Формат даты</string>
|
||||
|
||||
<!-- Calendar -->
|
||||
<string name="settings_calendar_title">Календарь</string>
|
||||
<string name="title_permission_calendar">Отображать события</string>
|
||||
<string name="description_permission_calendar">Предоставить доступ к календарю\nдля отображения событий в виджете.</string>
|
||||
<string name="settings_filter_calendar_title">Фильтрация событий</string>
|
||||
<string name="settings_filter_calendar_subtitle">Выбрать календари для отображения</string>
|
||||
<string name="settings_all_day_title">События на весь день</string>
|
||||
<string name="main_calendar">Календарь аккаунта</string>
|
||||
<string name="calendar_settings_list_error">Ошибка загрузки списка календарей</string>
|
||||
<string name="all_day">Событие на весь день</string>
|
||||
<string name="show_events_visible">События отображаются</string>
|
||||
<string name="show_events_not_visible">События не отображаются</string>
|
||||
<string name="settings_show_until_subtitle_6">30 минут после</string>
|
||||
<string name="settings_show_until_subtitle_7">1 часа после</string>
|
||||
<string name="settings_show_until_subtitle_0">3 часов после</string>
|
||||
<string name="settings_show_until_subtitle_1">6 часов после</string>
|
||||
<string name="settings_show_until_subtitle_2">12 часов после</string>
|
||||
<string name="settings_show_until_subtitle_3">24 часов после</string>
|
||||
<string name="settings_show_until_subtitle_4">3 дней после</string>
|
||||
<string name="settings_show_until_subtitle_5">7 дней после</string>
|
||||
<string name="settings_show_until_title">Показывать события в течение</string>
|
||||
<string name="day_char">д</string>
|
||||
<string name="settings_calendar_app_title">Стандартное приложение календаря</string>
|
||||
<string name="error_no_calendar">Календарь не найден.</string>
|
||||
<string name="tomorrow">завтра</string>
|
||||
<string name="today">сегодня</string>
|
||||
<string name="settings_event_app_title">По нажатию на событие открывать</string>
|
||||
<string name="settings_second_row_info_title">Информация о событии</string>
|
||||
<string name="settings_second_row_info_subtitle_1">Адрес события</string>
|
||||
<string name="settings_second_row_info_subtitle_0">Время события</string>
|
||||
<string name="settings_show_diff_time_title">Осталось времени до события</string>
|
||||
<string name="settings_show_declined_events_title">Отклонённые события</string>
|
||||
<string name="default_event_app">Детали события</string>
|
||||
<string name="default_calendar_app">Стандартное приложение календаря</string>
|
||||
<string name="settings_show_multiple_events_title">Переключение между событиями</string>
|
||||
<string name="soon">скоро</string>
|
||||
<string name="now">сейчас</string>
|
||||
<string name="settings_widget_update_frequency_title">Частота обновления оставшегося времени</string>
|
||||
<string name="settings_widget_update_frequency_subtitle">Высокая частота обновления может сказаться на времени автономной работы</string>
|
||||
<string name="settings_widget_update_frequency_low">Редко</string>
|
||||
<string name="settings_widget_update_frequency_default">По умолчанию</string>
|
||||
<string name="settings_widget_update_frequency_high">Часто</string>
|
||||
<string name="filters_header">Фильтры</string>
|
||||
<string name="event_detail_header">Детали события</string>
|
||||
|
||||
<!-- Weather -->
|
||||
<string name="settings_weather_title">Погода</string>
|
||||
<string name="title_permission_location">Отображать погоду</string>
|
||||
<string name="description_permission_location">Предоставить доступ к местоположению\nдля отображения погоды в виджете.</string>
|
||||
<string name="settings_unit_title">Единица измерения</string>
|
||||
<string name="settings_weather_refresh_period_title">Частота обновления</string>
|
||||
<string name="settings_weather_refresh_period_subtitle_0">30 минут</string>
|
||||
<string name="settings_weather_refresh_period_subtitle_1">1 час</string>
|
||||
<string name="settings_weather_refresh_period_subtitle_2">3 часа</string>
|
||||
<string name="settings_weather_refresh_period_subtitle_3">6 часов</string>
|
||||
<string name="settings_weather_refresh_period_subtitle_4">12 часов</string>
|
||||
<string name="settings_weather_refresh_period_subtitle_5">24 часов</string>
|
||||
<string name="settings_custom_location_title">Местоположение</string>
|
||||
<string name="custom_location_gps">Использовать геолокацию</string>
|
||||
<string name="show_weather_visible">Погода отображается</string>
|
||||
<string name="show_weather_not_visible">Погода не отображается</string>
|
||||
<string name="settings_weather_app_title">По нажатию на погоду открывать</string>
|
||||
<string name="settings_weather_provider_api_key_title">Ключ для API погоды</string>
|
||||
<string name="settings_weather_provider_api_key_subtitle_all_set">Источник данных погоды указан верно</string>
|
||||
<string name="settings_weather_provider_api_key_subtitle_not_set">Источник данных погоды не настроен</string>
|
||||
<string name="api_key_hint">Ключ API OpenWeather</string>
|
||||
<string name="default_weather_app">Google Погода</string>
|
||||
<string name="weather_warning">Погода Google Awareness устарела. Для отображения погоды в виджете требуется API ключ OpenWeather.</string>
|
||||
<string name="api_key_title_1">Создайте аккаунт OpenWeather</string>
|
||||
<string name="api_key_subtitle_1">Создайте бесплатный аккаунт OpenWeather. Это займёт не более нескольких минут.</string>
|
||||
<string name="api_key_title_2">Скопируйте ключ API</string>
|
||||
<string name="api_key_subtitle_2">Найдие меню с ключами API в настройках аккаунта и скопируйте ключ.</string>
|
||||
<string name="api_key_title_3">Введите ключ в приложении</string>
|
||||
<string name="api_key_subtitle_3">Вставьте ключ в поле выше и сохраните. Как только ключ будет активирован, погода начнёт отображаться.</string>
|
||||
<string name="action_open_provider">Перейти на OpenWeatherMap.com</string>
|
||||
<string name="api_key_info_all_set">Активация ключа может занять до десяти минут. Погода обновится как только появится возможность.</string>
|
||||
<string name="settings_weather_icon_pack_title">Набор иконок</string>
|
||||
<string name="settings_weather_icon_pack_default">Набор иконок %d</string>
|
||||
|
||||
<!-- Clock -->
|
||||
<string name="settings_clock_title">Часы</string>
|
||||
<string name="settings_clock_app_title">По нажатию на часы открывать</string>
|
||||
<string name="title_show_clock">Отображать часы</string>
|
||||
<string name="show_clock_visible">Часы отображаются</string>
|
||||
<string name="show_clock_not_visible">Часы не отображаются</string>
|
||||
<string name="settings_clock_text_size_title">Размер текста</string>
|
||||
<string name="default_clock_app">Стандартное приложение часов</string>
|
||||
<string name="settings_clock_bottom_margin_title">Нижний отступ часов</string>
|
||||
<string name="settings_clock_bottom_margin_subtitle_none">Нет</string>
|
||||
<string name="settings_clock_bottom_margin_subtitle_small">Маленький</string>
|
||||
<string name="settings_clock_bottom_margin_subtitle_medium">Средний</string>
|
||||
<string name="settings_clock_bottom_margin_subtitle_large">Большой</string>
|
||||
<string name="clock_warning">В связи с техническими ограничениями часы не могут использовать нестандартные шрифты и тени.</string>
|
||||
<string name="settings_clock_text_color_title">Цвет текста</string>
|
||||
<string name="settings_ampm_indicator_title">Показывать AM/PM индикатор</string>
|
||||
<string name="clock_text_header">Стиль текста часов</string>
|
||||
|
||||
<!-- Glance -->
|
||||
<string name="settings_show_next_alarm_title">Следующий будильник</string>
|
||||
<string name="next_alarm_warning">Проверьте следующий будильник.\nОн был установлен %s</string>
|
||||
<string name="settings_at_a_glance_title">Glance</string>
|
||||
<string name="settings_show_music_title">Воспроизводимая песня</string>
|
||||
<string name="settings_request_notification_access">Нам необходим доступ к уведомлениям для отображения информации песни.</string>
|
||||
<string name="settings_request_fitness_access">Нам нужно несколько разрешений для отображения шагов за этот день из Google Fit.</string>
|
||||
<string name="title_show_glance">Отображение дополнительной информации</string>
|
||||
<string name="description_show_glance_visible">Сервис включён</string>
|
||||
<string name="description_show_glance_not_visible">Сервис отключён</string>
|
||||
<string name="settings_sort_glance_providers_title">Приоритет источников данных</string>
|
||||
<string name="settings_sort_glance_providers_subtitle">Изменить важность источников данных</string>
|
||||
<string name="settings_custom_notes_title">Настраеваемые заметки</string>
|
||||
<string name="settings_low_battery_level_title">Уровень заряда аккумулятора</string>
|
||||
<string name="settings_daily_steps_title">Шаги за сегодня</string>
|
||||
<string name="battery_low_warning">Низкий уровень заряда аккумулятора</string>
|
||||
<string name="daily_steps_counter">%d шагов</string>
|
||||
<string name="charging">Зарядка</string>
|
||||
<string name="providers">Операторы</string>
|
||||
<string name="glance_info">Glance info will show up only when there are no events displayed and only when a few conditions are verified.</string>
|
||||
|
||||
<!-- Settings -->
|
||||
<string name="action_share">Поделиться</string>
|
||||
<string name="action_rate">Оценить приложение</string>
|
||||
<string name="action_support">Поддержите меня</string>
|
||||
<string name="action_feedback">Обратная связь</string>
|
||||
<string name="action_about">О разработчике</string>
|
||||
<string name="action_refresh_widget">Обновить виджет</string>
|
||||
<string name="error_opening_uri">Ошибка открытия URL: Ссылка скопирована в буфер обмена.</string>
|
||||
<string name="loading_text">Загрузка данных…</string>
|
||||
<string name="error_opening_app">Ошибка открытия приложения.</string>
|
||||
<string name="default_name">Приложение по умолчанию</string>
|
||||
<string name="action_save">Сохранить</string>
|
||||
<string name="settings_visible">Отображается</string>
|
||||
<string name="settings_not_visible">Не отображается</string>
|
||||
<string name="support_translations_title">Помочь с переводом</string>
|
||||
<string name="support_translations_subtitle">Открыть GitHub</string>
|
||||
<string name="support_website_title">Ознакомиться с моими другими проектами</string>
|
||||
<string name="support_website_subtitle">Тот же разработчик, множество возможностей</string>
|
||||
<string name="error">Упс, что-то пошло не так!</string>
|
||||
<string name="settings_theme_title">Тема</string>
|
||||
<string name="support_main_subtitle">Кофе — это топливо разработчиков</string>
|
||||
<string name="settings_subtitle_dark_theme_light">Светлая</string>
|
||||
<string name="settings_subtitle_dark_theme_dark">Тёмная</string>
|
||||
<string name="settings_subtitle_dark_theme_by_battery_saver">Установлено энергосбережением</string>
|
||||
<string name="settings_subtitle_dark_theme_follow_system">Следовать системной теме</string>
|
||||
<string name="settings_subtitle_dark_theme_default">По умолчанию</string>
|
||||
<string name="search">Поиск</string>
|
||||
<string name="settings_app_version_title">Версия приложения</string>
|
||||
<string name="settings_title_show_wallpaper">Показывать обои</string>
|
||||
<string name="support_refresh_widget_subtitle">Принудительно перезагрузить виджет</string>
|
||||
<string name="settings_feedback_subtitle">Это проект с открытым исходынм кодом, не ограничивайте себя, если хотите помочь.</string>
|
||||
<string name="settings_feedback_title">Отзывы и запрос функций</string>
|
||||
<string name="xiaomi_warning_title">Устройства Xiaomi</string>
|
||||
<string name="xiaomi_warning_message">Предоставьте разрешение для отображения всплывающих уведомлений в фоновом режиме в разделе "Прочие разрешения" настроек. Иначе вы не сможете открывать приложения по нажатию на виджет.</string>
|
||||
<string name="action_ignore">Проигнорировать</string>
|
||||
<string name="action_grant_permission">Предоставьте разрешения</string>
|
||||
<string name="settings_title">Настройки</string>
|
||||
<string name="style_header">Стиль</string>
|
||||
<string name="actions_header">Действия</string>
|
||||
<string name="provider_header">Настроить</string>
|
||||
<string name="appearance_header">Появление</string>
|
||||
<string name="preferences_header">Настройки</string>
|
||||
|
||||
<!-- Activities -->
|
||||
<string name="action_choose_application">Выберите приложение</string>
|
||||
<string name="support_main_title">Поддержать разработчика</string>
|
||||
<string name="thanks">Спасибо, что поддерживаете меня!</string>
|
||||
<string name="donation_coffee">Капучино</string>
|
||||
<string name="donation_donuts">Пара глазированных пончиков</string>
|
||||
<string name="donation_dinner">Ужин в Ginza Project</string>
|
||||
<string name="donation_breakfast">Скромный завтрак</string>
|
||||
<string name="donation_lunch">Хороший обед</string>
|
||||
<string name="action_show_widget_preview">Показать превью виджета</string>
|
||||
<string name="support_dev_subtitle">Этот проект разрабатывает один человек,\nспасибо за поддержку</string>
|
||||
<string name="settings_title_integrations">Интеграции</string>
|
||||
<string name="label_count_installed_integrations">%d установленные интеграции</string>
|
||||
</resources>
|
@ -1,3 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name" translatable="false">Another Widget</string>
|
||||
<string name="add_widget">Add</string>
|
||||
@ -57,15 +58,15 @@
|
||||
<string name="settings_second_row_info_title">Event info</string>
|
||||
<string name="settings_second_row_info_subtitle_1">Event address</string>
|
||||
<string name="settings_second_row_info_subtitle_0">Event time</string>
|
||||
<string name="settings_show_diff_time_title">Time left to the event</string>
|
||||
<string name="settings_show_diff_time_title">Time until the event</string>
|
||||
<string name="settings_show_declined_events_title">Declined events</string>
|
||||
<string name="default_event_app">Event details</string>
|
||||
<string name="default_calendar_app">Default calendar app</string>
|
||||
<string name="settings_show_multiple_events_title">Multiple events switcher</string>
|
||||
<string name="soon">soon</string>
|
||||
<string name="now">now</string>
|
||||
<string name="settings_widget_update_frequency_title">Time left update frequency</string>
|
||||
<string name="settings_widget_update_frequency_subtitle">High frequency causes more battery consume</string>
|
||||
<string name="settings_widget_update_frequency_title">Time until event update frequency</string>
|
||||
<string name="settings_widget_update_frequency_subtitle">High frequency causes more battery consumption</string>
|
||||
<string name="settings_widget_update_frequency_low">Low</string>
|
||||
<string name="settings_widget_update_frequency_default">Default</string>
|
||||
<string name="settings_widget_update_frequency_high">High</string>
|
||||
@ -88,8 +89,8 @@
|
||||
<string name="settings_weather_refresh_period_subtitle_5">24 hours</string>
|
||||
<string name="settings_custom_location_title">Location</string>
|
||||
<string name="custom_location_gps">Use geolocation</string>
|
||||
<string name="show_weather_visible">Weather info are visible</string>
|
||||
<string name="show_weather_not_visible">Weather info are hidden</string>
|
||||
<string name="show_weather_visible">Weather info is visible</string>
|
||||
<string name="show_weather_not_visible">Weather info is hidden</string>
|
||||
<string name="settings_weather_app_title">Tap on weather opens</string>
|
||||
<string name="settings_weather_provider_api_key_title">Weather API key</string>
|
||||
<string name="settings_weather_provider_api_key_subtitle_all_set">The weather provider is configured correctly</string>
|
||||
@ -106,8 +107,7 @@
|
||||
<string name="action_open_provider">Go to OpenWeatherMap.com</string>
|
||||
<string name="api_key_info_all_set">It may take up to ten minutes before your API key is activated. The weather will be updated as soon as it is available.</string>
|
||||
<string name="settings_weather_icon_pack_title">Icon pack</string>
|
||||
<string name="settings_weather_icon_pack_default">Default</string>
|
||||
<string name="settings_weather_icon_pack_minimal">Minimal</string>
|
||||
<string name="settings_weather_icon_pack_default">Icon pack %d</string>
|
||||
|
||||
<!-- Clock -->
|
||||
<string name="settings_clock_title">Clock</string>
|
||||
@ -146,6 +146,7 @@
|
||||
<string name="daily_steps_counter">%d steps so far</string>
|
||||
<string name="charging">Charging</string>
|
||||
<string name="providers">Providers</string>
|
||||
<string name="glance_info">Glance info will show up only when there are no events displayed and only when a few conditions are verified.</string>
|
||||
|
||||
<!-- Settings -->
|
||||
<string name="action_share">Share</string>
|
||||
|
1
googlefit/.gitignore
vendored
@ -1 +0,0 @@
|
||||
/build
|
@ -1,25 +0,0 @@
|
||||
apply plugin: 'com.android.dynamic-feature'
|
||||
|
||||
android {
|
||||
compileSdkVersion 29
|
||||
|
||||
defaultConfig {
|
||||
minSdkVersion 23
|
||||
targetSdkVersion 29
|
||||
versionCode 1
|
||||
versionName "1.0"
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation fileTree(dir: 'libs', include: ['*.jar'])
|
||||
implementation project(':app')
|
||||
|
||||
// At a Glance
|
||||
implementation 'com.google.android.gms:play-services-awareness:18.0.0'
|
||||
}
|
@ -1,16 +0,0 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:dist="http://schemas.android.com/apk/distribution"
|
||||
package="com.tommasoberlose.googlefit">
|
||||
<uses-permission android:name="android.permission.ACTIVITY_RECOGNITION" />
|
||||
<uses-permission android:name="com.google.android.gms.permission.ACTIVITY_RECOGNITION" />
|
||||
|
||||
<dist:module
|
||||
dist:instant="false"
|
||||
dist:title="@string/title_googlefit">
|
||||
<dist:delivery>
|
||||
<dist:on-demand />
|
||||
</dist:delivery>
|
||||
<dist:fusing dist:include="true" />
|
||||
</dist:module>
|
||||
</manifest>
|
||||
|