BitmapHelper fix
This commit is contained in:
parent
4b7ce7035b
commit
47ec562aa0
BIN
.idea/caches/build_file_checksums.ser
generated
BIN
.idea/caches/build_file_checksums.ser
generated
Binary file not shown.
@ -18,8 +18,8 @@ android {
|
||||
applicationId "com.tommasoberlose.anotherwidget"
|
||||
minSdkVersion 23
|
||||
targetSdkVersion 29
|
||||
versionCode 58
|
||||
versionName "2.0.4"
|
||||
versionCode 59
|
||||
versionName "2.0.5"
|
||||
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
}
|
||||
|
Binary file not shown.
@ -3,41 +3,40 @@ package com.tommasoberlose.anotherwidget.helpers
|
||||
import android.content.Context
|
||||
import android.graphics.*
|
||||
import android.graphics.drawable.Drawable
|
||||
import android.util.Log
|
||||
import android.view.View
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.graphics.drawable.DrawableCompat
|
||||
import com.google.firebase.crashlytics.FirebaseCrashlytics
|
||||
import java.lang.Exception
|
||||
|
||||
object BitmapHelper {
|
||||
|
||||
|
||||
fun getBitmapFromView(view: View): Bitmap {
|
||||
fun getBitmapFromView(view: View, width: Int? = null, height: Int? = null, draw: Boolean = true): Bitmap {
|
||||
//Define a bitmap with the same size as the view
|
||||
val measuredWidth = View.MeasureSpec.makeMeasureSpec(view.width, View.MeasureSpec.UNSPECIFIED)
|
||||
val measuredHeight = View.MeasureSpec.makeMeasureSpec(view.height, View.MeasureSpec.UNSPECIFIED)
|
||||
val measuredWidth = View.MeasureSpec.makeMeasureSpec(width ?: view.width, if (width != null) View.MeasureSpec.EXACTLY else View.MeasureSpec.UNSPECIFIED)
|
||||
val measuredHeight = View.MeasureSpec.makeMeasureSpec(height ?: view.height, if (height != null) View.MeasureSpec.EXACTLY else View.MeasureSpec.UNSPECIFIED)
|
||||
view.measure(measuredWidth, measuredHeight)
|
||||
view.layout(0,0, measuredWidth, measuredHeight)
|
||||
val returnedBitmap = Bitmap.createBitmap(view.measuredWidth, view.measuredHeight, Bitmap.Config.ARGB_8888)
|
||||
//Bind a canvas to it
|
||||
val canvas = Canvas(returnedBitmap)
|
||||
// draw the view on the canvas
|
||||
view.draw(canvas)
|
||||
//return the bitmap
|
||||
return returnedBitmap
|
||||
}
|
||||
|
||||
fun getBitmapFromView(view: View, w: Int, h: Int): Bitmap {
|
||||
//Define a bitmap with the same size as the view
|
||||
val measuredWidth = View.MeasureSpec.makeMeasureSpec(w, View.MeasureSpec.EXACTLY)
|
||||
val measuredHeight = View.MeasureSpec.makeMeasureSpec(h, View.MeasureSpec.EXACTLY)
|
||||
view.measure(measuredWidth, measuredHeight)
|
||||
view.layout(0,0, measuredWidth, measuredHeight)
|
||||
val returnedBitmap = Bitmap.createBitmap(view.measuredWidth, view.measuredHeight, Bitmap.Config.ARGB_8888)
|
||||
//Bind a canvas to it
|
||||
val canvas = Canvas(returnedBitmap)
|
||||
// draw the view on the canvas
|
||||
view.draw(canvas)
|
||||
//return the bitmap
|
||||
return returnedBitmap
|
||||
return try {
|
||||
val btm = Bitmap.createBitmap(
|
||||
view.measuredWidth,
|
||||
view.measuredHeight,
|
||||
Bitmap.Config.ARGB_8888
|
||||
)
|
||||
if (draw) {
|
||||
//Bind a canvas to it
|
||||
val canvas = Canvas(btm)
|
||||
// draw the view on the canvas
|
||||
view.layout(0, 0, measuredWidth, measuredHeight)
|
||||
view.draw(canvas)
|
||||
//return the bitmap
|
||||
}
|
||||
btm
|
||||
} catch (ex: Exception) {
|
||||
FirebaseCrashlytics.getInstance().recordException(ex)
|
||||
Bitmap.createBitmap(5, 5, Bitmap.Config.ARGB_8888)
|
||||
}
|
||||
}
|
||||
|
||||
fun getResizedBitmap(image: Bitmap, maxSize: Int): Bitmap {
|
||||
|
@ -16,7 +16,6 @@ import android.util.Log
|
||||
import android.util.TypedValue
|
||||
import android.view.View
|
||||
import android.widget.ImageView
|
||||
import android.widget.RelativeLayout
|
||||
import android.widget.RemoteViews
|
||||
import android.widget.TextView
|
||||
import androidx.core.content.ContextCompat
|
||||
@ -39,7 +38,6 @@ import kotlinx.android.synthetic.main.the_widget.view.*
|
||||
import java.text.DateFormat
|
||||
import java.util.*
|
||||
import java.util.concurrent.TimeUnit
|
||||
import kotlin.math.min
|
||||
|
||||
|
||||
class MainWidget : AppWidgetProvider() {
|
||||
@ -102,8 +100,7 @@ class MainWidget : AppWidgetProvider() {
|
||||
var views = RemoteViews(context.packageName, R.layout.the_widget_sans)
|
||||
|
||||
val generatedView = generateWidgetView(context)
|
||||
generatedView.measure(0, 0)
|
||||
views.setImageViewBitmap(R.id.bitmap_container, BitmapHelper.getBitmapFromView(generatedView, w - 32.toPixel(context), generatedView.measuredHeight))
|
||||
views.setImageViewBitmap(R.id.bitmap_container, BitmapHelper.getBitmapFromView(generatedView, width = w - 32.toPixel(context)))
|
||||
|
||||
// Clock
|
||||
views = updateClockView(context, views, appWidgetId)
|
||||
@ -118,8 +115,7 @@ class MainWidget : AppWidgetProvider() {
|
||||
private fun updateCalendarView(context: Context, v: View, views: RemoteViews, widgetID: Int): RemoteViews {
|
||||
val eventRepository = EventRepository(context)
|
||||
|
||||
v.empty_date.measure(0, 0)
|
||||
views.setImageViewBitmap(R.id.empty_date_rect, BitmapHelper.getBitmapFromView(v.empty_date))
|
||||
views.setImageViewBitmap(R.id.empty_date_rect, BitmapHelper.getBitmapFromView(v.empty_date, draw = false))
|
||||
|
||||
views.setViewVisibility(R.id.empty_layout_rect, View.VISIBLE)
|
||||
views.setViewVisibility(R.id.calendar_layout_rect, View.GONE)
|
||||
@ -133,13 +129,11 @@ class MainWidget : AppWidgetProvider() {
|
||||
|
||||
if (Preferences.showEvents && context.checkGrantedPermission(Manifest.permission.READ_CALENDAR) && nextEvent != null) {
|
||||
if (Preferences.showNextEvent && eventRepository.getEventsCount() > 1) {
|
||||
v.action_next.measure(0, 0)
|
||||
views.setImageViewBitmap(R.id.action_next_rect, BitmapHelper.getBitmapFromView(v.action_next))
|
||||
views.setImageViewBitmap(R.id.action_next_rect, BitmapHelper.getBitmapFromView(v.action_next, draw = false))
|
||||
views.setViewVisibility(R.id.action_next_rect, View.VISIBLE)
|
||||
views.setOnClickPendingIntent(R.id.action_next_rect, PendingIntent.getBroadcast(context, widgetID, Intent(context, NewCalendarEventReceiver::class.java).apply { action = Actions.ACTION_GO_TO_NEXT_EVENT }, 0))
|
||||
|
||||
v.action_previous.measure(0, 0)
|
||||
views.setImageViewBitmap(R.id.action_previous_rect, BitmapHelper.getBitmapFromView(v.action_previous))
|
||||
views.setImageViewBitmap(R.id.action_previous_rect, BitmapHelper.getBitmapFromView(v.action_previous, draw = false))
|
||||
views.setViewVisibility(R.id.action_previous_rect, View.VISIBLE)
|
||||
views.setOnClickPendingIntent(R.id.action_previous_rect, PendingIntent.getBroadcast(context, widgetID, Intent(context, NewCalendarEventReceiver::class.java).apply { action = Actions.ACTION_GO_TO_PREVIOUS_EVENT }, 0))
|
||||
} else {
|
||||
@ -152,8 +146,7 @@ class MainWidget : AppWidgetProvider() {
|
||||
views.setOnClickPendingIntent(R.id.next_event_difference_time_rect, pIntent)
|
||||
|
||||
if (Preferences.showDiffTime && Calendar.getInstance().timeInMillis < (nextEvent.startDate - 1000 * 60 * 60)) {
|
||||
v.next_event_difference_time.measure(0, 0)
|
||||
views.setImageViewBitmap(R.id.next_event_difference_time_rect, BitmapHelper.getBitmapFromView(v.next_event_difference_time))
|
||||
views.setImageViewBitmap(R.id.next_event_difference_time_rect, BitmapHelper.getBitmapFromView(v.next_event_difference_time, draw = false))
|
||||
views.setViewVisibility(R.id.next_event_difference_time_rect, View.VISIBLE)
|
||||
} else {
|
||||
views.setViewVisibility(R.id.next_event_difference_time_rect, View.GONE)
|
||||
@ -166,12 +159,9 @@ class MainWidget : AppWidgetProvider() {
|
||||
views.setOnClickPendingIntent(R.id.second_row_rect, pIntent)
|
||||
}
|
||||
|
||||
v.next_event.measure(0, 0)
|
||||
views.setImageViewBitmap(R.id.next_event_rect, BitmapHelper.getBitmapFromView(v.next_event))
|
||||
views.setImageViewBitmap(R.id.next_event_rect, BitmapHelper.getBitmapFromView(v.next_event, draw = false))
|
||||
|
||||
|
||||
v.second_row.measure(0, 0)
|
||||
views.setImageViewBitmap(R.id.second_row_rect, BitmapHelper.getBitmapFromView(v.second_row))
|
||||
views.setImageViewBitmap(R.id.second_row_rect, BitmapHelper.getBitmapFromView(v.second_row, draw = false))
|
||||
views.setViewVisibility(R.id.second_row_rect, View.VISIBLE)
|
||||
|
||||
views.setViewVisibility(R.id.empty_layout_rect, View.GONE)
|
||||
@ -180,11 +170,9 @@ class MainWidget : AppWidgetProvider() {
|
||||
val clockIntent = PendingIntent.getActivity(context, widgetID, IntentHelper.getClockIntent(context), 0)
|
||||
views.setOnClickPendingIntent(R.id.second_row_rect, clockIntent)
|
||||
|
||||
v.next_event.measure(0, 0)
|
||||
views.setImageViewBitmap(R.id.next_event_rect, BitmapHelper.getBitmapFromView(v.next_event))
|
||||
views.setImageViewBitmap(R.id.next_event_rect, BitmapHelper.getBitmapFromView(v.next_event, draw = false))
|
||||
|
||||
v.second_row.measure(0, 0)
|
||||
views.setImageViewBitmap(R.id.second_row_rect, BitmapHelper.getBitmapFromView(v.second_row))
|
||||
views.setImageViewBitmap(R.id.second_row_rect, BitmapHelper.getBitmapFromView(v.second_row, draw = false))
|
||||
views.setViewVisibility(R.id.second_row_rect, View.VISIBLE)
|
||||
|
||||
views.setViewVisibility(R.id.empty_layout_rect, View.GONE)
|
||||
@ -207,11 +195,9 @@ class MainWidget : AppWidgetProvider() {
|
||||
views.setOnClickPendingIntent(R.id.weather_rect, weatherPIntent)
|
||||
views.setOnClickPendingIntent(R.id.calendar_weather_rect, weatherPIntent)
|
||||
|
||||
v.weather.measure(0, 0)
|
||||
views.setImageViewBitmap(R.id.weather_rect, BitmapHelper.getBitmapFromView(v.weather))
|
||||
views.setImageViewBitmap(R.id.weather_rect, BitmapHelper.getBitmapFromView(v.weather, draw = false))
|
||||
|
||||
v.calendar_weather.measure(0, 0)
|
||||
views.setImageViewBitmap(R.id.calendar_weather_rect, BitmapHelper.getBitmapFromView(v.calendar_weather))
|
||||
views.setImageViewBitmap(R.id.calendar_weather_rect, BitmapHelper.getBitmapFromView(v.calendar_weather, draw = false))
|
||||
} else {
|
||||
views.setViewVisibility(R.id.weather_rect, View.GONE)
|
||||
views.setViewVisibility(R.id.calendar_weather_rect, View.GONE)
|
||||
|
@ -19,6 +19,43 @@
|
||||
android:paddingTop="8dp"
|
||||
android:paddingBottom="8dp"
|
||||
android:orientation="vertical">
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingTop="16dp"
|
||||
android:paddingBottom="16dp"
|
||||
android:paddingLeft="8dp"
|
||||
android:paddingRight="8dp"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
android:background="?android:attr/selectableItemBackground"
|
||||
android:gravity="center_vertical"
|
||||
android:id="@+id/action_refresh_widget"
|
||||
android:orientation="horizontal">
|
||||
<ImageView
|
||||
android:layout_width="48dp"
|
||||
android:layout_height="48dp"
|
||||
android:padding="10dp"
|
||||
android:src="@drawable/round_refresh"
|
||||
android:tint="@color/colorPrimaryText"/>
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingLeft="8dp"
|
||||
android:paddingRight="8dp"
|
||||
android:orientation="vertical">
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/AnotherWidget.Settings.Title"
|
||||
android:text="@string/action_refresh_widget"/>
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/support_refresh_widget_subtitle"
|
||||
style="@style/AnotherWidget.Settings.Subtitle" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
@ -93,44 +130,6 @@
|
||||
style="@style/AnotherWidget.Settings.Subtitle"/>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingTop="16dp"
|
||||
android:paddingBottom="16dp"
|
||||
android:paddingLeft="8dp"
|
||||
android:paddingRight="8dp"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
android:visibility="gone"
|
||||
android:background="?android:attr/selectableItemBackground"
|
||||
android:gravity="center_vertical"
|
||||
android:id="@+id/action_refresh_widget"
|
||||
android:orientation="horizontal">
|
||||
<ImageView
|
||||
android:layout_width="48dp"
|
||||
android:layout_height="48dp"
|
||||
android:padding="12dp"
|
||||
android:src="@drawable/round_cancel_presentation"
|
||||
android:tint="@color/colorPrimaryText"/>
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingLeft="8dp"
|
||||
android:paddingRight="8dp"
|
||||
android:orientation="vertical">
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/AnotherWidget.Settings.Title"
|
||||
android:text="@string/action_refresh_widget"/>
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/support_refresh_widget_subtitle"
|
||||
style="@style/AnotherWidget.Settings.Subtitle" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -1,171 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="add_widget">Widget hinzufügen</string>
|
||||
<string name="button_request_permission">Rechte erteilen</string>
|
||||
<string name="title_permission_calendar">Sehen Sie Ihre Termine</string>
|
||||
<string name="title_permission_location">Kontrolliere das Wetter</string>
|
||||
<string name="description_permission_calendar">Gewähren Sie Zugriff auf Ihren Kalender, um Ereignisse in Ihrem
|
||||
Widget anzuzeigen.\n\t
|
||||
</string>
|
||||
<string name="description_permission_location">Gewähren Sie Zugriff auf Ihren Ort, um das Wetter in Ihrem Widget
|
||||
anzuzeigen.\n\t
|
||||
</string>
|
||||
<string name="settings_filter_calendar_title">Veranstaltungen filtern</string>
|
||||
<string name="action_share">Teilen</string>
|
||||
<string name="action_rate">App bewertern</string>
|
||||
<string name="action_support">Ünterstützten Sie mich</string>
|
||||
<string name="all_set_title">Gut gemacht!</string>
|
||||
<string name="notification_subtitle">Sehen Sie sich Ihre Ereignisse und das Wetter in einem anderen Widget an.
|
||||
</string>
|
||||
<string name="notification_title">Holen Sie mehr aus Ihrem Widget heraus</string>
|
||||
<string name="all_set_subtitle">Sie haben die Konfiguration abgeschlossen. Achten Sie auf Updates.</string>
|
||||
<string name="all_set_btn">Bleiben Sie aktuell</string>
|
||||
<string name="action_about">Über</string>
|
||||
<string name="h_code">Std</string>
|
||||
<string name="min_code">" Min"</string>
|
||||
<string name="in_code">in</string>
|
||||
<string name="action_project">Projekt</string>
|
||||
<string name="settings_unit_title">Messeinheit</string>
|
||||
<string name="settings_unit_subtitle">Wählen Sie die Einheit der Temperaturmessung</string>
|
||||
<string name="settings_filter_calendar_subtitle">Sichtbarkeit der Kalender</string>
|
||||
<string name="settings_all_day_title">Ganztag-Veranstaltungen</string>
|
||||
<string name="settings_all_day_subtitle_visible">Sichtbar</string>
|
||||
<string name="settings_all_day_subtitle_gone">Nicht sichtbar</string>
|
||||
<string name="main_calendar">Kalender-Account</string>
|
||||
<string name="settings_calendar_title">Kalender-Einstellungen</string>
|
||||
<string name="settings_weather_title">Wetter-Einstellungen</string>
|
||||
<string name="settings_general_title">Allgemeine Einstellungen</string>
|
||||
<string name="calendar_settings_list_error">Fehler beim Laden der Kalenderliste</string>
|
||||
<string name="settings_hour_format_title">Stundenformat</string>
|
||||
<string name="settings_hour_format_subtitle_12">12 Stunden AM/PM</string>
|
||||
<string name="settings_hour_format_subtitle_24">24 Stunden</string>
|
||||
<string name="all_day">Ganztag-Veranstaltung</string>
|
||||
<string name="settings_date_format_title">Datumsformat</string>
|
||||
<string name="settings_weather_refresh_period_title">Aktualisierungszeitraum</string>
|
||||
<string name="settings_weather_refresh_period_subtitle_0">30 Minuten</string>
|
||||
<string name="settings_weather_refresh_period_subtitle_1">1 Stunde</string>
|
||||
<string name="settings_weather_refresh_period_subtitle_2">3 Stunden</string>
|
||||
<string name="settings_weather_refresh_period_subtitle_3">6 Stunden</string>
|
||||
<string name="settings_weather_refresh_period_subtitle_4">12 Stunden</string>
|
||||
<string name="settings_weather_refresh_period_subtitle_5">24 Stunden</string>
|
||||
<string name="settings_custom_location_title">" Benutzerdefinierte Position"</string>
|
||||
<string name="custom_location_gps">Geo-Lokalisierung</string>
|
||||
<string name="action_refresh_widget">Widget erneuern</string>
|
||||
<string name="show_events_visible">Veranstaltungen sind sichtbar</string>
|
||||
<string name="show_events_not_visible">Veranstaltungen sind nicht sichtbar</string>
|
||||
<string name="show_weather_visible">Wetterinfos sind sichtbar</string>
|
||||
<string name="show_weather_not_visible">Wetterinfos sind nicht sichtbar</string>
|
||||
<string name="settings_show_until_subtitle_0">3 Stunden später</string>
|
||||
<string name="settings_show_until_subtitle_1">6 Stunden später</string>
|
||||
<string name="settings_show_until_subtitle_2">12 Stunden später</string>
|
||||
<string name="settings_show_until_subtitle_3">24 Stunden später</string>
|
||||
<string name="settings_show_until_subtitle_4">3 Tage später</string>
|
||||
<string name="settings_show_until_subtitle_5">7 Tage später</string>
|
||||
<string name="settings_show_until_title">Sehen Sie die Ereignisse höchstens bis</string>
|
||||
<string name="day_char">T</string>
|
||||
<string name="error_opening_uri">Fehler beim Öffnen der URL: Link in die Zwischenablage kopiert.</string>
|
||||
<string name="loading_text">Daten werden geladen...</string>
|
||||
<string name="error_opening_app">Fehler beim Öffnen der App.</string>
|
||||
<string name="settings_calendar_app_title">Beim Klick auf\'s Datum öffnet sich</string>
|
||||
<string name="settings_weather_app_title">Beim Klick auf\'s Wetter öffnet sich</string>
|
||||
<string name="default_name">Standardapp</string>
|
||||
<string name="action_choose_application">App wählen</string>
|
||||
<string name="settings_weather_provider_api_key_title">Wetter-Anbieter</string>
|
||||
<string name="settings_weather_provider_api_key_subtitle_all_set">Der Wetteranbieter ist korrekt konfiguriert
|
||||
</string>
|
||||
<string name="settings_weather_provider_api_key_subtitle_not_set">Der Wetteranbieter muss konfiguriert werden
|
||||
</string>
|
||||
<string name="notification_gps_title">GPS einschalten</string>
|
||||
<string name="notification_gps_subtitle">Google Awareness benötigt aktives GPS zum Arbeiten.</string>
|
||||
<string name="action_feedback">Rückmeldung</string>
|
||||
<string name="feedback_title">AW Rückmeldung</string>
|
||||
<string name="feedback_chooser_title">E-Mail senden...</string>
|
||||
<string name="feedback_error">Fehler beim Senden der E-Mail.</string>
|
||||
<string name="api_key_hint">OpenWeather API Key</string>
|
||||
<string name="action_save">Speichern</string>
|
||||
<string name="error_no_calendar">Keine Kalender gefunden</string>
|
||||
<string name="api_key_info_title">Was ist zu tun</string>
|
||||
<string name="api_key_info_text">
|
||||
<![CDATA[Another Widget ist eine kostenlose Anwendung und wird ohne Bannerwerbung bleiben.<BR /> <BR />Aufgrund seines großen Erfolges, der sicherlich meine Erwartungen übertrifft, unterstützt der Wetteranbieter nicht alle ankommenden Anfragen (einfach, weil es kostenlos und daher begrenzt ist).<BR /><BR />Ich muss jeden von Ihnen bitten, ein Konto bei OpenWeather persönlich zu registrieren. Der Vorgang dauert nur ein paar Minuten, und wenn der Schlüssel aktiviert ist, haben Sie keine Probleme mit dem Wetter.<BR /><BR />Ich entschuldige mich für die Unannehmlichkeiten und stütze mich weiter!]]></string>
|
||||
<string name="api_key_title_1">Registrierung eines OpenWeather Kontos</string>
|
||||
<string name="api_key_subtitle_1">Registrieren Sie ein kostenloses Konto bei OpenWeather. Es wird nur ein paar
|
||||
Minuten dauern.
|
||||
</string>
|
||||
<string name="api_key_title_2">API-Key kopieren</string>
|
||||
<string name="api_key_subtitle_2">Greifen Sie über Ihre Kontoeinstellungen auf das API-Schlüsselmenü zu und kopieren
|
||||
Sie den Standardschlüssel.
|
||||
</string>
|
||||
<string name="api_key_title_3">Fügen Sie den Schlüssel zur App hinzu</string>
|
||||
<string name="api_key_subtitle_3">Geben Sie den Schlüssel in diesem Abschnitt ein und speichern Sie ihn. Sobald der
|
||||
Schlüssel aktiviert ist, ist das Wetter sichtbar.
|
||||
</string>
|
||||
<string name="api_key_info_start">Hi zusammen!</string>
|
||||
<string name="action_open_provider">Öffnen von OpenWeather.com</string>
|
||||
<string name="api_key_info_all_set">
|
||||
<![CDATA[Es kann bis zu <b> zehn Minuten </b> dauern, bis der API-Schlüssel aktiviert wird.<BR /><i> Entspannen </ i> Sie! Das Wetter wird aktualisiert, sobald es verfügbar ist !!]]></string>
|
||||
<string name="well_done">Gut gemacht!</string>
|
||||
<string name="hs_code">Std</string>
|
||||
<string name="tomorrow">Morgen</string>
|
||||
<string name="today">Heute</string>
|
||||
<string name="settings_event_app_title">Klick auf die Veranstaltung öffnet</string>
|
||||
<string name="settings_second_row_info_title">Informationen der zweiten Reihe</string>
|
||||
<string name="settings_font_color_title">Textfarbe</string>
|
||||
<string name="title_main_text_size">Schriftgröße erste Reihe</string>
|
||||
<string name="title_second_text_size">Schriftgröße zweite Reihe</string>
|
||||
<string name="settings_clock_title">Einstellung der Uhr</string>
|
||||
<string name="settings_second_row_info_subtitle_1">Zeige Ereignisadresse anstelle von Zeit</string>
|
||||
<string name="settings_second_row_info_subtitle_0">Zeige Ereignisszeit</string>
|
||||
<string name="settings_second_row_info_subtitle_2">Zeige nächste Erinnerung</string>
|
||||
<string name="settings_clock_app_title">Klick der Uhr öffnet</string>
|
||||
<string name="title_show_clock">Uhr anzeigen</string>
|
||||
<string name="description_show_clock">Zeigt die Zeit über Ereignisse und Wetter an</string>
|
||||
<string name="show_clock_visible">Uhr ist sichtbar</string>
|
||||
<string name="show_clock_not_visible">Uhr ist nicht sichtbar</string>
|
||||
<string name="settings_clock_text_size_title">Schriftgrößte der Uhr</string>
|
||||
<string name="title_text_shadow">Schatten des Textes</string>
|
||||
<string name="settings_text_shadow_subtitle_none">Keins</string>
|
||||
<string name="settings_text_shadow_subtitle_low">Niedrig</string>
|
||||
<string name="settings_text_shadow_subtitle_high">Hoch</string>
|
||||
<string name="advanced_settings_title">Erweiterte Einstellungen</string>
|
||||
<string name="settings_product_sans_font_title">Product Sans Font</string>
|
||||
<string name="settings_product_sans_font_subtitle">Durch die Verwendung von Product Sans wurde die Möglichkeit zum
|
||||
Antippen von Widget-Elementen deaktiviert. Ich arbeite dran.
|
||||
</string>
|
||||
<string name="settings_show_diff_time_title">Zeit für die Veranstaltung</string>
|
||||
<string name="settings_visible">Sichtbar</string>
|
||||
<string name="settings_not_visible">Nicht sichtbar</string>
|
||||
<string name="settings_show_declined_events_title">Abgelehnte Ereignisse</string>
|
||||
<string name="default_weather_app">Google Wetter</string>
|
||||
<string name="default_event_app">Google Kalender Veranstalungsdetails</string>
|
||||
<string name="default_calendar_app">Standard Kalender-App</string>
|
||||
<string name="default_clock_app">Standard Uhr-App</string>
|
||||
<string name="settings_show_until_subtitle_7">1 Stunde später</string>
|
||||
<string name="settings_show_until_subtitle_6">30 Minuten später</string>
|
||||
<string name="action_default">Default</string>
|
||||
<string name="action_none">Deaktiviert</string>
|
||||
<string name="settings_custom_font_title">Widget Schriftart</string>
|
||||
<string name="custom_font_subtitle_0">Geräte Schriftart</string>
|
||||
<string name="custom_font_subtitle_1">Produkt Schriftart</string>
|
||||
<string name="action_go_to_next_event">Zeige nächste Veranstaltung</string>
|
||||
<string name="settings_show_multiple_events_title">Zähler für mehrere Ereignisse</string>
|
||||
<string name="support_main_title">Unterstütze den Entwickler mit</string>
|
||||
<string name="support_translations_title">Bei der Übersetzung helfen</string>
|
||||
<string name="support_translations_subtitle">Öffne einen pull request auf GitHub</string>
|
||||
<string name="support_website_title">Schauen Sie sich meine anderen Projekte an</string>
|
||||
<string name="support_website_subtitle">Selber Entwickler, mehr Möglichkeiten</string>
|
||||
<string name="error">Ops, da ist etwas falsch gelaufen!</string>
|
||||
<string name="thanks">Danke für Ihre Unterstützung</string>
|
||||
<string name="donation_coffee">Einen italenischen Kaffee</string>
|
||||
<string name="donation_donuts">Einige glasierte Donuts</string>
|
||||
<string name="donation_dinner">Ein teueres Abendessen</string>
|
||||
<string name="donation_breakfast">Ein englischen Frühstück</string>
|
||||
<string name="donation_lunch">Ein schnelles Mittagsessen</string>
|
||||
<string name="background_service_title">Another Widget läuft</string>
|
||||
<string name="background_service_subtitle">AW läuft im Hintergrund</string>
|
||||
<string name="action_show_widget_preview">Zeige die Widget Vorschau</string>
|
||||
<string name="action_hide_widget_preview">Verstecke die Widget Vorschau</string>
|
||||
<string name="error_widget_notification_title">GPS ist aus</string>
|
||||
<string name="error_widget_notification_subtitle">GPS wieder aktivieren, damit ein Another Widget
|
||||
Wetterinformationen mit der Google Awareness API aktualisieren kann.
|
||||
</string>
|
||||
</resources>
|
@ -95,8 +95,8 @@
|
||||
<string name="today">Oggi</string>
|
||||
<string name="settings_event_app_title">Gli eventi aprono</string>
|
||||
<string name="settings_second_row_info_title">Informazione Seconda Riga</string>
|
||||
<string name="settings_second_row_info_subtitle_0">Mostra orario evento</string>
|
||||
<string name="settings_second_row_info_subtitle_1">Mostra indirizzo evento invece dell\'orario</string>
|
||||
<string name="settings_second_row_info_subtitle_0">Orario evento</string>
|
||||
<string name="settings_second_row_info_subtitle_1">Location evento</string>
|
||||
<string name="settings_second_row_info_subtitle_2">Mostra orario prossimo allarme</string>
|
||||
<string name="settings_font_color_title">Colore Testo</string>
|
||||
<string name="title_main_text_size">Dimensione Testo Prima Riga</string>
|
||||
|
@ -49,7 +49,7 @@
|
||||
<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="action_refresh_widget">Hard refresh</string>
|
||||
<string name="action_refresh_widget">Refresh widget</string>
|
||||
<string name="show_events_visible">Events are visible</string>
|
||||
<string name="show_events_not_visible">Events are not visible</string>
|
||||
<string name="show_weather_visible">Weather info is visible</string>
|
||||
@ -101,8 +101,8 @@
|
||||
<string name="today">today</string>
|
||||
<string name="settings_event_app_title">Tap on event opens</string>
|
||||
<string name="settings_second_row_info_title">Second row information</string>
|
||||
<string name="settings_second_row_info_subtitle_1">Show event address instead of time</string>
|
||||
<string name="settings_second_row_info_subtitle_0">Show event time</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_second_row_info_subtitle_2">Show next alarm time</string>
|
||||
<string name="settings_font_color_title">Text color</string>
|
||||
<string name="title_main_text_size">First row text size</string>
|
||||
|
@ -3,7 +3,7 @@
|
||||
xmlns:dist="http://schemas.android.com/apk/distribution"
|
||||
featureSplit="tasksintegration"
|
||||
package="com.tommasoberlose.anotherwidget"
|
||||
android:versionCode="58"
|
||||
android:versionCode="59"
|
||||
android:versionName="2.0.4" >
|
||||
|
||||
<uses-sdk
|
||||
|
@ -1,4 +1,4 @@
|
||||
#Mon May 04 11:34:58 CEST 2020
|
||||
#Mon May 04 15:26:16 CEST 2020
|
||||
base.0=/Users/tommaso/Documents/MyCode/another-widget/tasksintegration/build/intermediates/dex/debug/mergeProjectDexDebug/out/classes.dex
|
||||
path.0=classes.dex
|
||||
renamed.0=classes.dex
|
||||
|
Binary file not shown.
@ -4,7 +4,7 @@
|
||||
featureSplit="tasksintegration"
|
||||
package="com.tommasoberlose.anotherwidget"
|
||||
android:targetSandboxVersion="2"
|
||||
android:versionCode="58"
|
||||
android:versionCode="59"
|
||||
android:versionName="2.0.4" >
|
||||
|
||||
<uses-sdk
|
||||
|
@ -3,7 +3,7 @@
|
||||
3 xmlns:dist="http://schemas.android.com/apk/distribution"
|
||||
4 featureSplit="tasksintegration"
|
||||
5 package="com.tommasoberlose.anotherwidget"
|
||||
6 android:versionCode="58"
|
||||
6 android:versionCode="59"
|
||||
7 android:versionName="2.0.4" >
|
||||
8
|
||||
9 <uses-sdk
|
||||
|
@ -3,7 +3,7 @@
|
||||
xmlns:dist="http://schemas.android.com/apk/distribution"
|
||||
featureSplit="tasksintegration"
|
||||
package="com.tommasoberlose.anotherwidget"
|
||||
android:versionCode="58"
|
||||
android:versionCode="59"
|
||||
android:versionName="2.0.4" >
|
||||
|
||||
<uses-sdk
|
||||
|
@ -3,7 +3,7 @@
|
||||
xmlns:dist="http://schemas.android.com/apk/distribution"
|
||||
featureSplit="tasksintegration"
|
||||
package="com.tommasoberlose.anotherwidget"
|
||||
android:versionCode="58"
|
||||
android:versionCode="59"
|
||||
android:versionName="2.0.4" >
|
||||
|
||||
<uses-sdk android:targetSdkVersion="29" />
|
||||
|
Loading…
x
Reference in New Issue
Block a user