Skip to content

Commit 222bd1d

Browse files
Merge pull request #17325 from nextcloud/fix/RetrieveHoverCardAsyncTask-npe
fix(retrieve-hover-card): npe
2 parents 63d0036 + 4a17021 commit 222bd1d

3 files changed

Lines changed: 73 additions & 81 deletions

File tree

app/src/main/java/com/owncloud/android/ui/asynctasks/RetrieveHoverCardAsyncTask.java

Lines changed: 0 additions & 79 deletions
This file was deleted.
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
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.owncloud.android.ui.asynctasks
8+
9+
import androidx.fragment.app.FragmentActivity
10+
import androidx.lifecycle.lifecycleScope
11+
import com.nextcloud.android.lib.resources.profile.GetHoverCardRemoteOperation
12+
import com.nextcloud.client.account.User
13+
import com.nextcloud.client.network.ClientFactory
14+
import com.owncloud.android.R
15+
import com.owncloud.android.lib.common.utils.Log_OC
16+
import com.owncloud.android.ui.fragment.ProfileBottomSheetDialog
17+
import com.owncloud.android.utils.DisplayUtils
18+
import com.owncloud.android.utils.theme.ViewThemeUtils
19+
import kotlinx.coroutines.Dispatchers
20+
import kotlinx.coroutines.launch
21+
import kotlinx.coroutines.withContext
22+
23+
class RetrieveHoverCardAsyncTask(
24+
private val user: User,
25+
private val userId: String,
26+
private val activity: FragmentActivity,
27+
private val clientFactory: ClientFactory,
28+
private val viewThemeUtils: ViewThemeUtils
29+
) {
30+
companion object {
31+
private const val TAG = "RetrieveHoverCardAsyncTask"
32+
}
33+
34+
@Suppress("TooGenericExceptionCaught")
35+
fun execute() {
36+
activity.lifecycleScope.launch {
37+
val result = withContext(Dispatchers.IO) {
38+
val client = clientFactory.createNextcloudClient(user)
39+
val operationResult = GetHoverCardRemoteOperation(userId).execute(client)
40+
return@withContext try {
41+
if (operationResult.isSuccess) {
42+
operationResult.getResultData()
43+
} else {
44+
null
45+
}
46+
} catch (e: Exception) {
47+
Log_OC.e(TAG, "exception: $e")
48+
null
49+
}
50+
}
51+
52+
withContext(Dispatchers.Main) {
53+
if (result?.actions.isNullOrEmpty()) {
54+
DisplayUtils.showSnackMessage(activity, R.string.no_actions)
55+
return@withContext
56+
}
57+
58+
ProfileBottomSheetDialog(
59+
activity,
60+
user,
61+
result,
62+
viewThemeUtils
63+
)
64+
.show()
65+
}
66+
}
67+
}
68+
}

app/src/main/java/com/owncloud/android/ui/fragment/FileDetailSharingFragment.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -770,10 +770,13 @@ class FileDetailSharingFragment :
770770
return
771771
}
772772

773+
val userId = shareWith ?: return
774+
val activity = fileActivity ?: return
775+
773776
RetrieveHoverCardAsyncTask(
774777
user,
775-
shareWith,
776-
fileActivity,
778+
userId,
779+
activity,
777780
clientFactory,
778781
viewThemeUtils
779782
).execute()

0 commit comments

Comments
 (0)