Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -239,4 +239,7 @@ dependencies {
implementation(libs.mlkit.genai.prompt)
ksp(libs.mlkit.genai.schema.compiler)

// AppFunctions API
implementation(libs.androidx.appfunctions)
ksp(libs.androidx.appfunctions.compiler)
}
3 changes: 3 additions & 0 deletions app/proguard-rules.pro
Original file line number Diff line number Diff line change
Expand Up @@ -61,3 +61,6 @@
public static <fields>;
}
-keep class com.sameerasw.essentials.domain.genai.** { *; }
-keep class com.sameerasw.essentials.appfunctions.** { *; }
-keep class androidx.appfunctions.** { *; }

19 changes: 19 additions & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1209,6 +1209,25 @@
</intent-filter>
</receiver>

<service
android:name=".appfunctions.EssentialsAppFunctionService"
android:permission="android.permission.BIND_APP_FUNCTION_SERVICE"
android:exported="true"
tools:targetApi="36">
<property
android:name="android.app.appfunctions.schema"
android:value="app_functions_schema.xsd" />
<property
android:name="android.app.appfunctions.v2"
android:value="essentials_app_function_service.xml" />
<intent-filter>
<action android:name="android.app.appfunctions.AppFunctionService" />
</intent-filter>
</service>
<property
android:name="android.app.appfunctions.app_metadata"
android:resource="@xml/app_metadata" />

</application>

</manifest>
2 changes: 2 additions & 0 deletions app/src/main/java/com/sameerasw/essentials/EssentialsApp.kt
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ class EssentialsApp : Application() {
com.sameerasw.essentials.services.DeviceInfoSyncManager.init(this)
com.sameerasw.essentials.utils.ServiceUtils.startRequiredServices(this)

com.sameerasw.essentials.appfunctions.AppFunctionAvailabilityManager.updateAvailability(this)

initSentry()

val intentFilter = IntentFilter().apply {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package com.sameerasw.essentials.appfunctions

import android.content.Context
import android.os.Build
import android.util.Log
import androidx.appfunctions.AppFunctionManager
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch

object AppFunctionAvailabilityManager {
private const val TAG = "AppFunctionAvailabilityManager"

fun updateAvailability(context: Context) {
if (Build.VERSION.SDK_INT < 36) return

CoroutineScope(Dispatchers.IO).launch {
try {
val appFunctionManager = AppFunctionManager.getInstance(context) ?: return@launch
Log.d(TAG, "AppFunctionManager initialized successfully")
} catch (e: Exception) {
Log.e(TAG, "Error updating AppFunction availability", e)
}
}
}
}
Loading
Loading