mirror of
https://github.com/immich-app/immich.git
synced 2025-07-09 03:04:16 -04:00
wip
This commit is contained in:
parent
a11ab4c3f7
commit
30bd74ea60
@ -3,6 +3,8 @@ plugins {
|
||||
id "kotlin-android"
|
||||
id "dev.flutter.flutter-gradle-plugin"
|
||||
id 'com.google.devtools.ksp'
|
||||
id 'org.jetbrains.kotlin.plugin.compose' version '2.0.20' // this version matches your Kotlin version
|
||||
|
||||
}
|
||||
|
||||
def localProperties = new Properties()
|
||||
@ -45,6 +47,10 @@ android {
|
||||
main.java.srcDirs += 'src/main/kotlin'
|
||||
}
|
||||
|
||||
buildFeatures {
|
||||
compose true
|
||||
}
|
||||
|
||||
defaultConfig {
|
||||
applicationId "app.alextran.immich"
|
||||
minSdkVersion 26
|
||||
@ -102,6 +108,9 @@ dependencies {
|
||||
|
||||
ksp "com.github.bumptech.glide:ksp:$glide_version"
|
||||
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.2'
|
||||
|
||||
//Glance Widget
|
||||
implementation "androidx.glance:glance-appwidget:1.1.1"
|
||||
}
|
||||
|
||||
// This is uncommented in F-Droid build script
|
||||
|
@ -141,6 +141,19 @@
|
||||
android:name="androidx.startup.InitializationProvider"
|
||||
android:authorities="${applicationId}.androidx-startup"
|
||||
tools:node="remove" />
|
||||
|
||||
|
||||
<!-- Widgets -->
|
||||
<receiver
|
||||
android:name="app.alextran.immich.widget.RandomWidget"
|
||||
android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
|
||||
</intent-filter>
|
||||
<meta-data
|
||||
android:name="android.appwidget.provider"
|
||||
android:resource="@xml/widget" />
|
||||
</receiver>
|
||||
</application>
|
||||
|
||||
|
||||
|
@ -0,0 +1,8 @@
|
||||
package app.alextran.immich.widget
|
||||
|
||||
import HomeWidgetGlanceWidgetReceiver
|
||||
|
||||
class RandomReceiver : HomeWidgetGlanceWidgetReceiver<RandomWidget>() {
|
||||
override val glanceAppWidget = RandomWidget()
|
||||
}
|
||||
|
@ -0,0 +1,37 @@
|
||||
package app.alextran.immich.widget
|
||||
|
||||
import HomeWidgetGlanceState
|
||||
import HomeWidgetGlanceStateDefinition
|
||||
import android.content.Context
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.glance.appwidget.*
|
||||
import androidx.glance.*
|
||||
import androidx.glance.layout.*
|
||||
import androidx.glance.state.*
|
||||
import androidx.glance.text.*
|
||||
|
||||
class RandomWidget : GlanceAppWidget() {
|
||||
override val stateDefinition: GlanceStateDefinition<*>
|
||||
get() = HomeWidgetGlanceStateDefinition()
|
||||
|
||||
override suspend fun provideGlance(context: Context, id: GlanceId) {
|
||||
provideContent {
|
||||
GlanceContent(context, currentState())
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
private fun GlanceContent(context: Context, currentState: HomeWidgetGlanceState) {
|
||||
val prefs = currentState.preferences
|
||||
val counter = prefs.getInt("counter", 0)
|
||||
Box(modifier = GlanceModifier.background(Color.White).padding(16.dp)) {
|
||||
Column() {
|
||||
Text(
|
||||
counter.toString()
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
7
mobile/android/app/src/main/res/xml/widget.xml
Normal file
7
mobile/android/app/src/main/res/xml/widget.xml
Normal file
@ -0,0 +1,7 @@
|
||||
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:initialLayout="@layout/glance_default_loading_layout"
|
||||
android:minWidth="110dp"
|
||||
android:minHeight="110dp"
|
||||
android:resizeMode="horizontal|vertical"
|
||||
android:updatePeriodMillis="1200000"
|
||||
/>
|
Loading…
x
Reference in New Issue
Block a user