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
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values-night-v31/themes.xml b/app/src/main/res/values-night-v31/themes.xml
new file mode 100644
index 00000000..85ce7f65
--- /dev/null
+++ b/app/src/main/res/values-night-v31/themes.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values-v21/styles.xml b/app/src/main/res/values-v21/styles.xml
new file mode 100644
index 00000000..7151caeb
--- /dev/null
+++ b/app/src/main/res/values-v21/styles.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values-v31/styles.xml b/app/src/main/res/values-v31/styles.xml
new file mode 100644
index 00000000..95ec732a
--- /dev/null
+++ b/app/src/main/res/values-v31/styles.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values-v31/themes.xml b/app/src/main/res/values-v31/themes.xml
new file mode 100644
index 00000000..447f2866
--- /dev/null
+++ b/app/src/main/res/values-v31/themes.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml
new file mode 100644
index 00000000..7781ac86
--- /dev/null
+++ b/app/src/main/res/values/attrs.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
index 76beac89..ad54b384 100644
--- a/app/src/main/res/values/dimens.xml
+++ b/app/src/main/res/values/dimens.xml
@@ -1,4 +1,10 @@
16dp
+
+
+ 0dp
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 567041c6..b864e3fa 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -44,6 +44,8 @@
Location update
Network online
Network offline
+ The widget shows the service status
+ Status widget
Device Settings
The app has been hidden. To open it again please dial 8722227 (TRACCAR).
Please enter a valid http:// or https:// URL
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
new file mode 100644
index 00000000..c401ade6
--- /dev/null
+++ b/app/src/main/res/values/styles.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml
index 46ea1a42..29c89f0b 100644
--- a/app/src/main/res/values/themes.xml
+++ b/app/src/main/res/values/themes.xml
@@ -7,4 +7,12 @@
- @color/accent
+
+
+
+
diff --git a/app/src/main/res/xml/status_widget_info.xml b/app/src/main/res/xml/status_widget_info.xml
new file mode 100644
index 00000000..bb685920
--- /dev/null
+++ b/app/src/main/res/xml/status_widget_info.xml
@@ -0,0 +1,13 @@
+
+
\ No newline at end of file
From 9360ed26ff9d8a7dfe9c65d01b146445e48a0d66 Mon Sep 17 00:00:00 2001
From: Anton-V-K <20116984+Anton-V-K@users.noreply.github.com>
Date: Sat, 29 Jan 2022 21:44:22 +0300
Subject: [PATCH 2/8] Status Widget #429
---
.../java/org/traccar/client/StatusWidget.kt | 29 +++++++++---------
.../drawable-hdpi/status_widget_preview.png | Bin 4287 -> 0 bytes
.../drawable-mdpi/status_widget_preview.png | Bin 2606 -> 0 bytes
.../drawable-xhdpi/status_widget_preview.png | Bin 6002 -> 0 bytes
.../drawable-xxhdpi/status_widget_preview.png | Bin 9615 -> 0 bytes
.../status_widget_preview.png | Bin 13368 -> 0 bytes
app/src/main/res/xml/status_widget_info.xml | 4 +--
7 files changed, 16 insertions(+), 17 deletions(-)
delete mode 100644 app/src/main/res/drawable-hdpi/status_widget_preview.png
delete mode 100644 app/src/main/res/drawable-mdpi/status_widget_preview.png
delete mode 100644 app/src/main/res/drawable-xhdpi/status_widget_preview.png
delete mode 100644 app/src/main/res/drawable-xxhdpi/status_widget_preview.png
delete mode 100644 app/src/main/res/drawable-xxxhdpi/status_widget_preview.png
diff --git a/app/src/main/java/org/traccar/client/StatusWidget.kt b/app/src/main/java/org/traccar/client/StatusWidget.kt
index 14d75f17..48a07c8b 100644
--- a/app/src/main/java/org/traccar/client/StatusWidget.kt
+++ b/app/src/main/java/org/traccar/client/StatusWidget.kt
@@ -63,21 +63,20 @@ class StatusWidget : AppWidgetProvider() {
update(context, manager, appWidgetIds)
}
- }
-
-}
-
-// Performs update for the widgets with given identifiers.
-internal fun update(context: Context, appWidgetManager: AppWidgetManager, appWidgetIds: IntArray) {
- val prefs = PreferenceManager.getDefaultSharedPreferences(context)
- val enabled = prefs.getBoolean(MainFragment.KEY_STATUS, false)
- // There may be multiple widgets active, so update all of them
- for (appWidgetId in appWidgetIds) {
- // Construct the RemoteViews object
- val views = RemoteViews(context.packageName, R.layout.status_widget)
- views.setImageViewResource(R.id.ivEnabled, if (enabled) R.mipmap.ic_start else R.mipmap.ic_stop)
+ // Performs update for the widgets with given identifiers.
+ internal fun update(context: Context, appWidgetManager: AppWidgetManager, appWidgetIds: IntArray) {
+ val prefs = PreferenceManager.getDefaultSharedPreferences(context)
+ val enabled = prefs.getBoolean(MainFragment.KEY_STATUS, false)
+ // There may be multiple widgets active, so update all of them
+ for (appWidgetId in appWidgetIds) {
+ // Construct the RemoteViews object
+ val views = RemoteViews(context.packageName, R.layout.status_widget)
+ views.setImageViewResource(R.id.ivEnabled, if (enabled) R.mipmap.ic_start else R.mipmap.ic_stop)
- // Instruct the widget manager to update the widget
- appWidgetManager.updateAppWidget(appWidgetId, views)
+ // Instruct the widget manager to update the widget
+ appWidgetManager.updateAppWidget(appWidgetId, views)
+ }
+ }
}
+
}
\ No newline at end of file
diff --git a/app/src/main/res/drawable-hdpi/status_widget_preview.png b/app/src/main/res/drawable-hdpi/status_widget_preview.png
deleted file mode 100644
index 0193bcb30ff6b981090fb92544d599e182e12d6f..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 4287
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