Skip to content

Commit 54b50a0

Browse files
committed
Enable widget on API 36
1 parent fd62dd9 commit 54b50a0

File tree

6 files changed

+47
-3
lines changed

6 files changed

+47
-3
lines changed

app/src/main/AndroidManifest.xml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,21 @@
5454
android:resource="@xml/iss_widget_info" />
5555
</receiver>
5656

57+
<receiver
58+
android:name="com.surrus.peopleinspace.remotecompose.PeopleInSpaceWidgetReceiver"
59+
android:label="ISS Map"
60+
android:enabled="@bool/remotecompose_appwidget_available"
61+
android:exported="false"
62+
tools:targetApi="36">
63+
<intent-filter>
64+
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
65+
</intent-filter>
66+
67+
<meta-data
68+
android:name="android.appwidget.provider"
69+
android:resource="@xml/rc_peopleinspace_info" />
70+
</receiver>
71+
5772
</application>
5873

5974
</manifest>

app/src/main/java/com/surrus/peopleinspace/remotecompose/PeopleInSpaceCard.kt

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
package com.surrus.peopleinspace.remotecompose
22

33
import android.annotation.SuppressLint
4-
import androidx.compose.remote.creation.compose.layout.RemoteBox
4+
import androidx.compose.remote.creation.compose.capture.LocalRemoteComposeCreationState
5+
import androidx.compose.remote.creation.compose.layout.RemoteColumn
56
import androidx.compose.remote.creation.compose.layout.RemoteComposable
67
import androidx.compose.remote.creation.compose.layout.RemoteText
8+
import androidx.compose.remote.creation.compose.layout.remoteComponentHeight
9+
import androidx.compose.remote.creation.compose.layout.remoteComponentWidth
710
import androidx.compose.remote.creation.compose.modifier.RemoteModifier
811
import androidx.compose.remote.creation.compose.modifier.background
912
import androidx.compose.remote.creation.compose.modifier.fillMaxSize
@@ -19,13 +22,19 @@ import com.surrus.peopleinspace.remotecompose.util.RemotePreview
1922
@RemoteComposable
2023
@Composable
2124
fun PeopleInSpaceCard() {
22-
RemoteBox(
25+
RemoteColumn(
2326
modifier = RemoteModifier.fillMaxSize().background(Color.DarkGray)
2427
) {
28+
val state = LocalRemoteComposeCreationState.current
2529
// TODO real content
2630
val count = rememberRemoteIntValue { 5 }
31+
val width = remoteComponentWidth(state)
32+
val height = remoteComponentHeight(state)
2733
val text = RemoteString("People in Space: ") + count.toRemoteString(1, 0)
2834
RemoteText(text, color = RemoteColor(Color.White))
35+
36+
val sizeText = RemoteString("Size: ") + width.toRemoteString(3, 0) + RemoteString("x") + height.toRemoteString(1, 0)
37+
RemoteText(sizeText, color = RemoteColor(Color.White))
2938
}
3039
}
3140

app/src/main/java/com/surrus/peopleinspace/remotecompose/PeopleInSpaceWidgetReceiver.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import okio.ByteString
1414

1515
@RequiresApi(Build.VERSION_CODES.BAKLAVA)
1616
@SuppressLint("RestrictedApi")
17-
class RCMemberCardWidgetReceiver : AsyncAppWidgetReceiver() {
17+
class PeopleInSpaceWidgetReceiver : AsyncAppWidgetReceiver() {
1818
/** Called when widgets must provide remote views. */
1919

2020
override suspend fun update(context: Context, wm: AppWidgetManager, widgetIds: IntArray) {
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<resources>
3+
<!-- Boolean indicating if the library will work or not. Should be used to enable / disable app
4+
widget receivers. -->
5+
<bool name="remotecompose_appwidget_available">true</bool>
6+
</resources>

app/src/main/res/values/bools.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<resources>
3+
<!-- Boolean indicating if the library will work or not. Should be used to enable / disable app
4+
widget receivers. -->
5+
<bool name="remotecompose_appwidget_available">false</bool>
6+
</resources>
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:initialLayout="@layout/glance_default_loading_layout"
4+
android:minWidth="50dp"
5+
android:minHeight="50dp"
6+
android:resizeMode="horizontal|vertical"
7+
android:updatePeriodMillis="86400000"
8+
android:widgetCategory="home_screen" />

0 commit comments

Comments
 (0)