diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 20c10607b707..510fcb26a49d 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -136,13 +136,20 @@
+ android:label="@string/compose_activity_label"/>
+
+
+
-
+
+
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+package com.nextcloud.ui.composeActivity
+
+import android.content.ComponentName
+import android.content.Context
+import android.content.pm.PackageManager
+import com.owncloud.android.utils.theme.CapabilityUtils
+import javax.inject.Inject
+import javax.inject.Singleton
+
+@Singleton
+class ComposeProcessTextAlias @Inject constructor(private val context: Context) {
+
+ fun configure() {
+ val capability = CapabilityUtils.getCapability(context)
+ val isAssistantAvailable = capability.assistant.isTrue
+
+ val componentName = ComponentName(
+ context,
+ "com.nextcloud.ui.composeActivity.ComposeProcessTextAlias"
+ )
+
+ val newState = if (isAssistantAvailable) {
+ PackageManager.COMPONENT_ENABLED_STATE_ENABLED
+ } else {
+ PackageManager.COMPONENT_ENABLED_STATE_DISABLED
+ }
+
+ context.packageManager.setComponentEnabledSetting(
+ componentName,
+ newState,
+ PackageManager.DONT_KILL_APP
+ )
+ }
+}
diff --git a/app/src/main/java/com/owncloud/android/MainApp.java b/app/src/main/java/com/owncloud/android/MainApp.java
index f46ed83f14e8..2a73e0d810cc 100644
--- a/app/src/main/java/com/owncloud/android/MainApp.java
+++ b/app/src/main/java/com/owncloud/android/MainApp.java
@@ -59,6 +59,7 @@
import com.nextcloud.client.preferences.DarkMode;
import com.nextcloud.receiver.NetworkChangeListener;
import com.nextcloud.receiver.NetworkChangeReceiver;
+import com.nextcloud.ui.composeActivity.ComposeProcessTextAlias;
import com.nextcloud.utils.extensions.ContextExtensionsKt;
import com.nextcloud.utils.mdm.MDMConfig;
import com.nmc.android.ui.LauncherActivity;
@@ -78,6 +79,7 @@
import com.owncloud.android.lib.common.OwnCloudClientManagerFactory;
import com.owncloud.android.lib.common.utils.Log_OC;
import com.owncloud.android.lib.resources.status.NextcloudVersion;
+import com.owncloud.android.lib.resources.status.OCCapability;
import com.owncloud.android.lib.resources.status.OwnCloudVersion;
import com.owncloud.android.ui.activity.SyncedFoldersActivity;
import com.owncloud.android.ui.notifications.NotificationUtils;
@@ -86,6 +88,7 @@
import com.owncloud.android.utils.PermissionUtil;
import com.owncloud.android.utils.ReceiversHelper;
import com.owncloud.android.utils.SecurityUtils;
+import com.owncloud.android.utils.theme.CapabilityUtils;
import com.owncloud.android.utils.theme.ViewThemeUtils;
import org.conscrypt.Conscrypt;
@@ -190,6 +193,8 @@ public class MainApp extends Application implements HasAndroidInjector, NetworkC
@Inject WalledCheckCache walledCheckCache;
+ @Inject ComposeProcessTextAlias composeProcessTextAlias;
+
// workaround because injection is initialized on onAttachBaseContext
// and getApplicationContext is null at that point, which crashes when getting current user
@Inject Provider viewThemeUtilsProvider;
@@ -372,8 +377,6 @@ public void onCreate() {
if (!MDMConfig.INSTANCE.sendFilesSupport(this)) {
disableDocumentsStorageProvider();
}
-
-
}
public void disableDocumentsStorageProvider() {
@@ -387,6 +390,7 @@ public void disableDocumentsStorageProvider() {
private final LifecycleEventObserver lifecycleEventObserver = ((lifecycleOwner, event) -> {
if (event == Lifecycle.Event.ON_START) {
Log_OC.d(TAG, "APP IN FOREGROUND");
+ composeProcessTextAlias.configure();
if (preferences.startAutoUploadOnStart()) {
FilesSyncHelper.startAutoUploadForEnabledSyncedFolders(syncedFolderProvider,
diff --git a/app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt b/app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt
index 2b22bdb8f58f..84ee90953e30 100644
--- a/app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt
+++ b/app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt
@@ -76,6 +76,7 @@ import com.nextcloud.model.WorkerState
import com.nextcloud.model.WorkerState.FileDownloadCompleted
import com.nextcloud.model.WorkerState.FileDownloadStarted
import com.nextcloud.model.WorkerState.OfflineOperationsCompleted
+import com.nextcloud.ui.composeActivity.ComposeProcessTextAlias
import com.nextcloud.utils.extensions.getParcelableArgument
import com.nextcloud.utils.extensions.isActive
import com.nextcloud.utils.extensions.lastFragment
@@ -214,6 +215,9 @@ class FileDisplayActivity :
@Inject
lateinit var localBroadcastManager: LocalBroadcastManager
+ @Inject
+ lateinit var composeProcessTextAlias: ComposeProcessTextAlias
+
@Inject
lateinit var preferences: AppPreferences
@@ -2831,6 +2835,7 @@ class FileDisplayActivity :
)
val userChanged = (existingAccountName != lastDisplayedAccountName)
if (userChanged) {
+ composeProcessTextAlias.configure()
Log_OC.d(TAG, "Initializing Fragments in onAccountChanged..")
initFragments()
if (file.isFolder && TextUtils.isEmpty(searchQuery)) {