Skip to content

Commit

Permalink
Merge pull request #181 from newhinton/main
Browse files Browse the repository at this point in the history
Use relative layout in widgets
  • Loading branch information
Bnyro authored Feb 25, 2024
2 parents 0ccb5e8 + bf1e3d1 commit e18f619
Show file tree
Hide file tree
Showing 15 changed files with 124 additions and 191 deletions.
1 change: 1 addition & 0 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ dependencies {
implementation(libs.material)
implementation(libs.material.icons.extended)

implementation(libs.sdp.android)
implementation(libs.ui.viewbinding)
testImplementation(libs.junit)
androidTestImplementation(libs.androidx.test.ext.junit)
Expand Down
14 changes: 4 additions & 10 deletions app/src/main/java/com/bnyro/clock/widgets/DigitalClockWidget.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import android.appwidget.AppWidgetProvider
import android.content.Context
import android.content.Intent
import android.os.Build
import android.util.SizeF
import android.widget.RemoteViews
import com.bnyro.clock.R
import com.bnyro.clock.ui.MainActivity
Expand All @@ -26,19 +25,14 @@ class DigitalClockWidget : AppWidgetProvider() {
PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE
)

val viewMapping: Map<SizeF, RemoteViews> = mapOf(
SizeF(150f, 100f) to RemoteViews(context.packageName, R.layout.digital_clock_small).apply {
setOnClickPendingIntent(R.id.container, pendingIntent)
},
SizeF(215f, 100f) to RemoteViews(context.packageName, R.layout.digital_clock_large).apply {
setOnClickPendingIntent(R.id.container, pendingIntent)
}
)
val viewMapping = RemoteViews(context.packageName, R.layout.digital_clock).apply {
setOnClickPendingIntent(R.id.container, pendingIntent)
}

val views = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
RemoteViews(viewMapping)
} else {
viewMapping.values.first()
viewMapping
}

appWidgetManager.updateAppWidget(appWidgetId, views)
Expand Down
14 changes: 4 additions & 10 deletions app/src/main/java/com/bnyro/clock/widgets/VerticalClockWidget.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import android.appwidget.AppWidgetProvider
import android.content.Context
import android.content.Intent
import android.os.Build
import android.util.SizeF
import android.widget.RemoteViews
import com.bnyro.clock.R
import com.bnyro.clock.ui.MainActivity
Expand All @@ -26,19 +25,14 @@ class VerticalClockWidget : AppWidgetProvider() {
PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE
)

val viewMapping: Map<SizeF, RemoteViews> = mapOf(
SizeF(150f, 100f) to RemoteViews(context.packageName, R.layout.vertical_clock_small).apply {
setOnClickPendingIntent(R.id.container, pendingIntent)
},
SizeF(215f, 100f) to RemoteViews(context.packageName, R.layout.vertical_clock_large).apply {
setOnClickPendingIntent(R.id.container, pendingIntent)
}
)
val viewMapping = RemoteViews(context.packageName, R.layout.vertical_clock).apply {
setOnClickPendingIntent(R.id.container, pendingIntent)
}

val views = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
RemoteViews(viewMapping)
} else {
viewMapping.values.first()
viewMapping
}

appWidgetManager.updateAppWidget(appWidgetId, views)
Expand Down
44 changes: 44 additions & 0 deletions app/src/main/res/layout/digital_clock.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:theme="@style/Theme.Material3.DynamicColors.DayNight"
android:background="@drawable/widget_shape"
android:paddingHorizontal="@dimen/_10sdp"
android:paddingVertical="@dimen/_3sdp"
android:id="@+id/frameLayout"
android:gravity="center|center_vertical">

<LinearLayout
android:id="@+id/container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center">

<TextClock
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:format12Hour="EE, MMM dd"
android:format24Hour="EE, MMM dd"
android:textColor="@color/widgetSecondaryTextColor"
android:text="Today"
android:textSize="@dimen/_8sdp"
android:id="@+id/textClock" />

<TextClock
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_minus2sdp"
android:format12Hour="hh:mm"
android:format24Hour="kk:mm"
android:textColor="@color/widgetPrimaryTextColor"
android:textSize="@dimen/_40sdp"
android:textStyle="bold"
android:text="12:34"
android:id="@+id/textClock2"
android:singleLine="true" />

</LinearLayout>

</RelativeLayout>
36 changes: 0 additions & 36 deletions app/src/main/res/layout/digital_clock_large.xml

This file was deleted.

37 changes: 0 additions & 37 deletions app/src/main/res/layout/digital_clock_small.xml

This file was deleted.

53 changes: 53 additions & 0 deletions app/src/main/res/layout/vertical_clock.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:theme="@style/Theme.Material3.DynamicColors.DayNight"
android:background="@drawable/widget_shape"
android:paddingHorizontal="@dimen/_10sdp"
android:paddingVertical="@dimen/_3sdp"
android:gravity="center|center_vertical">

<LinearLayout
android:id="@+id/container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">

<TextClock
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:format12Hour="EE, MMM dd"
android:format24Hour="EE, MMM dd"
android:text="Today"
android:textSize="@dimen/_8sdp"
android:textColor="@color/widgetSecondaryTextColor" />

<TextClock
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_minus2sdp"
android:layout_gravity="center"
android:format12Hour="hh"
android:format24Hour="kk"
android:text="12"
android:textStyle="bold"
android:textColor="@color/widgetPrimaryTextColor"
android:textSize="@dimen/_60sdp" />

<TextClock
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:format12Hour="mm"
android:format24Hour="mm"
android:text="34"
android:textColor="@color/widgetPrimaryTextColor"
android:textSize="@dimen/_60sdp"
android:textStyle="bold"
android:layout_marginTop="@dimen/_minus25sdp" />

</LinearLayout>

</RelativeLayout>
47 changes: 0 additions & 47 deletions app/src/main/res/layout/vertical_clock_large.xml

This file was deleted.

47 changes: 0 additions & 47 deletions app/src/main/res/layout/vertical_clock_small.xml

This file was deleted.

5 changes: 5 additions & 0 deletions app/src/main/res/values-night-v31/colors.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="widgetPrimaryTextColor">@android:color/system_accent1_200</color>
<color name="widgetSecondaryTextColor">@android:color/system_accent2_200</color>
</resources>
5 changes: 5 additions & 0 deletions app/src/main/res/values-v31/colors.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="widgetPrimaryTextColor">@android:color/system_accent1_600</color>
<color name="widgetSecondaryTextColor">@android:color/system_accent2_600</color>
</resources>
2 changes: 2 additions & 0 deletions app/src/main/res/values/colors.xml
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="windowBackground">#FFFFFFFF</color>
<color name="widgetPrimaryTextColor">?attr/colorOnSecondaryContainer</color>
<color name="widgetSecondaryTextColor">?attr/colorOnSecondaryContainer</color>
</resources>
2 changes: 1 addition & 1 deletion app/src/main/res/xml/digital_clock_widget.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
android:description="@string/digital_clock"
android:minWidth="180dp"
android:minHeight="50dp"
android:previewLayout="@layout/digital_clock_small"
android:previewLayout="@layout/digital_clock"
android:resizeMode="horizontal|vertical"
android:widgetCategory="home_screen"
tools:targetApi="s" />
6 changes: 3 additions & 3 deletions app/src/main/res/xml/vertical_clock_widget.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:description="@string/vertical_clock"
android:minWidth="180dp"
android:minHeight="120dp"
android:previewLayout="@layout/vertical_clock_small"
android:minWidth="120dp"
android:minHeight="70dp"
android:previewLayout="@layout/vertical_clock"
android:resizeMode="horizontal|vertical"
android:widgetCategory="home_screen"
tools:targetApi="s" />
Loading

0 comments on commit e18f619

Please sign in to comment.