diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 3664fae..8d9de44 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -16,6 +16,7 @@ android:supportsRtl="true" android:theme="@style/Theme.IOSClockWidget" tools:targetApi="31"> + @@ -43,10 +44,22 @@ android:resource="@xml/i_o_s_clock_widget_info" /> + + + + + + + + + android:exported="true"> diff --git a/app/src/main/java/com/ray650128/iosclockwidget/receiver/IOSCalendarWidget.kt b/app/src/main/java/com/ray650128/iosclockwidget/receiver/IOSCalendarWidget.kt new file mode 100644 index 0000000..75baf6c --- /dev/null +++ b/app/src/main/java/com/ray650128/iosclockwidget/receiver/IOSCalendarWidget.kt @@ -0,0 +1,45 @@ +package com.ray650128.iosclockwidget.receiver + +import android.appwidget.AppWidgetManager +import android.appwidget.AppWidgetProvider +import android.content.Context +import android.widget.RemoteViews +import com.ray650128.iosclockwidget.R + +/** + * Implementation of App Widget functionality. + */ +class IOSCalendarWidget : AppWidgetProvider() { + override fun onUpdate( + context: Context, + appWidgetManager: AppWidgetManager, + appWidgetIds: IntArray + ) { + // There may be multiple widgets active, so update all of them + for (appWidgetId in appWidgetIds) { + updateCalendarWidget(context, appWidgetManager, appWidgetId) + } + } + + override fun onEnabled(context: Context) { + // Enter relevant functionality for when the first widget is created + } + + override fun onDisabled(context: Context) { + // Enter relevant functionality for when the last widget is disabled + } +} + +internal fun updateCalendarWidget( + context: Context, + appWidgetManager: AppWidgetManager, + appWidgetId: Int +) { + val widgetText = context.getString(R.string.appwidget_text) + // Construct the RemoteViews object + val views = RemoteViews(context.packageName, R.layout.i_o_s_calendar_widget) + views.setTextViewText(R.id.appwidget_text, widgetText) + + // Instruct the widget manager to update the widget + appWidgetManager.updateAppWidget(appWidgetId, views) +} \ No newline at end of file diff --git a/app/src/main/java/com/ray650128/iosclockwidget/receiver/IOSClockWidget.kt b/app/src/main/java/com/ray650128/iosclockwidget/receiver/IOSClockWidget.kt index 2b84f80..22a70be 100644 --- a/app/src/main/java/com/ray650128/iosclockwidget/receiver/IOSClockWidget.kt +++ b/app/src/main/java/com/ray650128/iosclockwidget/receiver/IOSClockWidget.kt @@ -27,7 +27,7 @@ class IOSClockWidget : AppWidgetProvider() { when (intent?.action) { ClockUpdateService.SECOND_CHANGED -> { for (appWidgetId in appWidgetIds) { - updateAppWidget(context, appWidgetManager, appWidgetId) + updateClockWidget(context, appWidgetManager, appWidgetId) } } } @@ -40,7 +40,7 @@ class IOSClockWidget : AppWidgetProvider() { ) { // There may be multiple widgets active, so update all of them for (appWidgetId in appWidgetIds) { - updateAppWidget(context, appWidgetManager, appWidgetId) + updateClockWidget(context, appWidgetManager, appWidgetId) } } @@ -53,7 +53,7 @@ class IOSClockWidget : AppWidgetProvider() { } } -internal fun updateAppWidget( +internal fun updateClockWidget( context: Context, appWidgetManager: AppWidgetManager, appWidgetId: Int diff --git a/app/src/main/res/drawable-nodpi/example_appwidget_preview.png b/app/src/main/res/drawable-nodpi/ios_calendar_widget_preview.png similarity index 100% rename from app/src/main/res/drawable-nodpi/example_appwidget_preview.png rename to app/src/main/res/drawable-nodpi/ios_calendar_widget_preview.png diff --git a/app/src/main/res/drawable-nodpi/ios_clock_widget_preview.png b/app/src/main/res/drawable-nodpi/ios_clock_widget_preview.png new file mode 100644 index 0000000..37a8073 Binary files /dev/null and b/app/src/main/res/drawable-nodpi/ios_clock_widget_preview.png differ diff --git a/app/src/main/res/layout/i_o_s_calendar_widget.xml b/app/src/main/res/layout/i_o_s_calendar_widget.xml new file mode 100644 index 0000000..b17730b --- /dev/null +++ b/app/src/main/res/layout/i_o_s_calendar_widget.xml @@ -0,0 +1,19 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/xml/i_o_s_calendar_widget_info.xml b/app/src/main/res/xml/i_o_s_calendar_widget_info.xml new file mode 100644 index 0000000..a57f026 --- /dev/null +++ b/app/src/main/res/xml/i_o_s_calendar_widget_info.xml @@ -0,0 +1,14 @@ + + \ No newline at end of file diff --git a/app/src/main/res/xml/i_o_s_clock_widget_info.xml b/app/src/main/res/xml/i_o_s_clock_widget_info.xml index 5474b8c..b42f18b 100644 --- a/app/src/main/res/xml/i_o_s_clock_widget_info.xml +++ b/app/src/main/res/xml/i_o_s_clock_widget_info.xml @@ -5,7 +5,7 @@ android:initialLayout="@layout/i_o_s_clock_widget" android:minWidth="40dp" android:minHeight="40dp" - android:previewImage="@drawable/example_appwidget_preview" + android:previewImage="@drawable/ios_clock_widget_preview" android:previewLayout="@layout/i_o_s_clock_widget" android:resizeMode="none" android:targetCellWidth="1"