Skip to content

Commit 8a5d2ca

Browse files
committed
fix(assistant): process-text visibility
Signed-off-by: alperozturk96 <alper_ozturk@proton.me>
1 parent 3475330 commit 8a5d2ca

File tree

4 files changed

+60
-4
lines changed

4 files changed

+60
-4
lines changed

app/src/main/AndroidManifest.xml

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -136,13 +136,20 @@
136136
<activity
137137
android:name="com.nextcloud.ui.composeActivity.ComposeActivity"
138138
android:exported="true"
139-
android:label="@string/compose_activity_label">
139+
android:label="@string/compose_activity_label"/>
140+
141+
<activity-alias
142+
android:name="com.nextcloud.ui.composeActivity.ComposeProcessTextAlias"
143+
android:targetActivity="com.nextcloud.ui.composeActivity.ComposeActivity"
144+
android:exported="true">
145+
140146
<intent-filter>
141147
<action android:name="android.intent.action.PROCESS_TEXT" />
142148
<category android:name="android.intent.category.DEFAULT" />
143149
<data android:mimeType="text/plain" />
144150
</intent-filter>
145-
</activity>
151+
152+
</activity-alias>
146153

147154
<uses-library
148155
android:name="org.apache.http.legacy"
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
/*
2+
* Nextcloud - Android Client
3+
*
4+
* SPDX-FileCopyrightText: 2026 Alper Ozturk <alper.ozturk@nextcloud.com>
5+
* SPDX-License-Identifier: AGPL-3.0-or-later
6+
*/
7+
package com.nextcloud.ui.composeActivity
8+
9+
import android.content.ComponentName
10+
import android.content.Context
11+
import android.content.pm.PackageManager
12+
import com.owncloud.android.utils.theme.CapabilityUtils
13+
import javax.inject.Inject
14+
import javax.inject.Singleton
15+
16+
@Singleton
17+
class ComposeProcessTextAlias @Inject constructor(private val context: Context) {
18+
19+
fun configure() {
20+
val capability = CapabilityUtils.getCapability(context)
21+
val isAssistantAvailable = capability.assistant.isTrue
22+
23+
val componentName = ComponentName(
24+
context,
25+
"com.nextcloud.ui.composeActivity.ComposeProcessTextAlias"
26+
)
27+
28+
val newState = if (isAssistantAvailable) {
29+
PackageManager.COMPONENT_ENABLED_STATE_ENABLED
30+
} else {
31+
PackageManager.COMPONENT_ENABLED_STATE_DISABLED
32+
}
33+
34+
context.packageManager.setComponentEnabledSetting(
35+
componentName,
36+
newState,
37+
PackageManager.DONT_KILL_APP
38+
)
39+
}
40+
}

app/src/main/java/com/owncloud/android/MainApp.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@
5959
import com.nextcloud.client.preferences.DarkMode;
6060
import com.nextcloud.receiver.NetworkChangeListener;
6161
import com.nextcloud.receiver.NetworkChangeReceiver;
62+
import com.nextcloud.ui.composeActivity.ComposeProcessTextAlias;
6263
import com.nextcloud.utils.extensions.ContextExtensionsKt;
6364
import com.nextcloud.utils.mdm.MDMConfig;
6465
import com.nmc.android.ui.LauncherActivity;
@@ -78,6 +79,7 @@
7879
import com.owncloud.android.lib.common.OwnCloudClientManagerFactory;
7980
import com.owncloud.android.lib.common.utils.Log_OC;
8081
import com.owncloud.android.lib.resources.status.NextcloudVersion;
82+
import com.owncloud.android.lib.resources.status.OCCapability;
8183
import com.owncloud.android.lib.resources.status.OwnCloudVersion;
8284
import com.owncloud.android.ui.activity.SyncedFoldersActivity;
8385
import com.owncloud.android.ui.notifications.NotificationUtils;
@@ -86,6 +88,7 @@
8688
import com.owncloud.android.utils.PermissionUtil;
8789
import com.owncloud.android.utils.ReceiversHelper;
8890
import com.owncloud.android.utils.SecurityUtils;
91+
import com.owncloud.android.utils.theme.CapabilityUtils;
8992
import com.owncloud.android.utils.theme.ViewThemeUtils;
9093

9194
import org.conscrypt.Conscrypt;
@@ -190,6 +193,8 @@ public class MainApp extends Application implements HasAndroidInjector, NetworkC
190193

191194
@Inject WalledCheckCache walledCheckCache;
192195

196+
@Inject ComposeProcessTextAlias composeProcessTextAlias;
197+
193198
// workaround because injection is initialized on onAttachBaseContext
194199
// and getApplicationContext is null at that point, which crashes when getting current user
195200
@Inject Provider<ViewThemeUtils> viewThemeUtilsProvider;
@@ -372,8 +377,6 @@ public void onCreate() {
372377
if (!MDMConfig.INSTANCE.sendFilesSupport(this)) {
373378
disableDocumentsStorageProvider();
374379
}
375-
376-
377380
}
378381

379382
public void disableDocumentsStorageProvider() {
@@ -387,6 +390,7 @@ public void disableDocumentsStorageProvider() {
387390
private final LifecycleEventObserver lifecycleEventObserver = ((lifecycleOwner, event) -> {
388391
if (event == Lifecycle.Event.ON_START) {
389392
Log_OC.d(TAG, "APP IN FOREGROUND");
393+
composeProcessTextAlias.configure();
390394

391395
if (preferences.startAutoUploadOnStart()) {
392396
FilesSyncHelper.startAutoUploadForEnabledSyncedFolders(syncedFolderProvider,

app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ import com.nextcloud.model.WorkerState
7676
import com.nextcloud.model.WorkerState.FileDownloadCompleted
7777
import com.nextcloud.model.WorkerState.FileDownloadStarted
7878
import com.nextcloud.model.WorkerState.OfflineOperationsCompleted
79+
import com.nextcloud.ui.composeActivity.ComposeProcessTextAlias
7980
import com.nextcloud.utils.extensions.getParcelableArgument
8081
import com.nextcloud.utils.extensions.isActive
8182
import com.nextcloud.utils.extensions.lastFragment
@@ -214,6 +215,9 @@ class FileDisplayActivity :
214215
@Inject
215216
lateinit var localBroadcastManager: LocalBroadcastManager
216217

218+
@Inject
219+
lateinit var composeProcessTextAlias: ComposeProcessTextAlias
220+
217221
@Inject
218222
lateinit var preferences: AppPreferences
219223

@@ -2831,6 +2835,7 @@ class FileDisplayActivity :
28312835
)
28322836
val userChanged = (existingAccountName != lastDisplayedAccountName)
28332837
if (userChanged) {
2838+
composeProcessTextAlias.configure()
28342839
Log_OC.d(TAG, "Initializing Fragments in onAccountChanged..")
28352840
initFragments()
28362841
if (file.isFolder && TextUtils.isEmpty(searchQuery)) {

0 commit comments

Comments
 (0)