Kwgt Clock Widget (2026)

<!-- res/layout/widget_clock.xml --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/widgetBackground" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:gravity="center" android:padding="16dp" android:background="@drawable/widget_background"> <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:id="@+id/clockTime" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="12:00" android:textSize="80sp" android:textColor="#FFFFFF" android:textStyle="bold" android:fontFamily="sans-serif-medium" /> <TextView android:id="@+id/clockAmPm" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@id/clockTime" android:layout_alignBottom="@id/clockTime" android:layout_marginStart="8dp" android:layout_marginBottom="12dp" android:text="AM" android:textSize="24sp" android:textColor="#FF6B6B" /> </RelativeLayout>

private fun saveSettings() val resultValue = Intent() resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId) setResult(RESULT_OK, resultValue) val widgetManager = AppWidgetManager.getInstance(this) val views = RemoteViews(packageName, R.layout.widget_clock) // Apply all saved settings val textColor = prefs.getInt("text_color", Color.WHITE) val accentColor = prefs.getInt("accent_color", Color.parseColor("#FF6B6B")) val bgColor = prefs.getInt("bg_color", Color.parseColor("#1A1A1A")) views.setTextColor(R.id.clockTime, textColor) views.setTextColor(R.id.clockDate, textColor) views.setTextColor(R.id.clockAmPm, accentColor) views.setInt(R.id.widgetBackground, "setBackgroundColor", bgColor) widgetManager.updateAppWidget(appWidgetId, views) finish() kwgt clock widget

private var appWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID private lateinit var prefs: SharedPreferences !-- res/layout/widget_clock.xml --&gt

class KWGTClockWidget : AppWidgetProvider() Color.WHITE) val accentColor = prefs.getInt("accent_color"

private fun applyWidgetSettings(context: Context, views: RemoteViews) val prefs = context.getSharedPreferences("widget_prefs", Context.MODE_PRIVATE) // Color settings val textColor = prefs.getInt("text_color", -1) val accentColor = prefs.getInt("accent_color", -1) val bgColor = prefs.getInt("bg_color", -1) if (textColor != -1) views.setTextColor(R.id.clockTime, textColor) views.setTextColor(R.id.clockDate, textColor) if (accentColor != -1) views.setTextColor(R.id.clockAmPm, accentColor) if (bgColor != -1) views.setInt(R.id.widgetBackground, "setBackgroundColor", bgColor) // Font size settings val timeSize = prefs.getInt("time_size", 80) val dateSize = prefs.getInt("date_size", 18) val ampmSize = prefs.getInt("ampm_size", 24) views.setFloat(R.id.clockTime, "setTextSize", timeSize.toFloat()) views.setFloat(R.id.clockDate, "setTextSize", dateSize.toFloat()) views.setFloat(R.id.clockAmPm, "setTextSize", ampmSize.toFloat()) // Font family val fontFamily = prefs.getString("font_family", "sans-serif-medium") views.setString(R.id.clockTime, "setTypeface", fontFamily)

1. Main Widget Structure (Kustom JSON) "version": 3.2, "name": "Modern Digital Clock Widget", "size": "width": 500, "height": 300 , "background": "type": "shape", "color": "#1A1A1A", "radius": 25, "shadow": true , "layers": [ "type": "text", "name": "Time Display", "text": "$df(hh:mm)$", "color": "#FFFFFF", "size": 80, "font": "Roboto-Bold", "align": "center", "x": 250, "y": 100, "width": 400 , "type": "text", "name": "AM/PM", "text": "$df(a)$", "color": "#FF6B6B", "size": 24, "font": "Roboto-Regular", "align": "center", "x": 420, "y": 80, "width": 60 , "type": "text", "name": "Date", "text": "$df(EEEE, MMMM d)$", "color": "#B0B0B0", "size": 18, "font": "Roboto-Regular", "align": "center", "x": 250, "y": 160, "width": 400 ]