mirror of
https://github.com/nextcloud/talk-android
synced 2025-07-10 06:14:10 +01:00
Implement first steps for sending file share links to files client
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
This commit is contained in:
parent
41920403a3
commit
2e678252bd
@ -2660,6 +2660,69 @@ class ChatActivity :
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun isInstanceFileUrl(user: User, url: String): Boolean {
|
||||||
|
return url.startsWith(user.baseUrl!!) &&
|
||||||
|
(isInstanceInternalFileShareUrl(user.baseUrl!!, url) || isInstanceInternalFileUrl(user.baseUrl!!, url))
|
||||||
|
}
|
||||||
|
|
||||||
|
fun isInstanceInternalFileShareUrl(baseUrl: String, url: String): Boolean {
|
||||||
|
// https://cloud.nextcloud.com/f/41
|
||||||
|
return url.startsWith("$baseUrl/f/") || url.startsWith("$baseUrl/index.php/f/")
|
||||||
|
}
|
||||||
|
|
||||||
|
fun extractInstanceInternalFileShareFileId(url: String): String {
|
||||||
|
// https://cloud.nextcloud.com/f/41
|
||||||
|
return "41"
|
||||||
|
}
|
||||||
|
|
||||||
|
fun isInstanceInternalFileUrl(baseUrl: String, url: String): Boolean {
|
||||||
|
//https://cloud.nextcloud.com/apps/files/?dir=/Engineering&fileid=41
|
||||||
|
return url.startsWith("$baseUrl/apps/files/") || url.startsWith("$baseUrl/index.php/apps/files/")
|
||||||
|
}
|
||||||
|
|
||||||
|
fun extractInstanceInternalFileFileId(url: String): String {
|
||||||
|
// https://cloud.nextcloud.com/apps/files/?dir=/Engineering&fileid=41
|
||||||
|
return "41"
|
||||||
|
}
|
||||||
|
|
||||||
|
fun isInstanceInternalFileUrlNew(baseUrl: String, url: String): Boolean {
|
||||||
|
//https://cloud.nextcloud.com/apps/files/files/41?dir=/
|
||||||
|
return url.startsWith("$baseUrl/apps/files/files/") || url.startsWith("$baseUrl/index.php/apps/files/files/")
|
||||||
|
}
|
||||||
|
|
||||||
|
fun extractInstanceInternalFileFileIdNew(url: String): String {
|
||||||
|
// https://cloud.nextcloud.com/apps/files/files/41?dir=/
|
||||||
|
return "41"
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun startActivity(intent: Intent) {
|
||||||
|
val user = currentUserProvider.currentUser.blockingGet()
|
||||||
|
if (intent.data != null && TextUtils.equals(intent.action, Intent.ACTION_VIEW)) {
|
||||||
|
val uri = intent.data.toString()
|
||||||
|
if (uri.startsWith(user.baseUrl!!)) {
|
||||||
|
if (isInstanceInternalFileShareUrl(user.baseUrl!!, uri)) {
|
||||||
|
// https://cloud.nextcloud.com/f/41
|
||||||
|
val fileViewerUtils = FileViewerUtils(this, user)
|
||||||
|
fileViewerUtils.openFileInFilesApp(uri, extractInstanceInternalFileShareFileId(uri))
|
||||||
|
} else if (isInstanceInternalFileUrl(user.baseUrl!!, uri)) {
|
||||||
|
// https://cloud.nextcloud.com/apps/files/?dir=/Engineering&fileid=41
|
||||||
|
val fileViewerUtils = FileViewerUtils(this, user)
|
||||||
|
fileViewerUtils.openFileInFilesApp(uri, extractInstanceInternalFileFileId(uri))
|
||||||
|
} else if (isInstanceInternalFileUrlNew(user.baseUrl!!, uri)) {
|
||||||
|
// https://cloud.nextcloud.com/apps/files/?dir=/Engineering&fileid=41
|
||||||
|
val fileViewerUtils = FileViewerUtils(this, user)
|
||||||
|
fileViewerUtils.openFileInFilesApp(uri, extractInstanceInternalFileFileIdNew(uri))
|
||||||
|
} else {
|
||||||
|
super.startActivity(intent)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
super.startActivity(intent)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
super.startActivity(intent)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fun sendSelectLocalFileIntent() {
|
fun sendSelectLocalFileIntent() {
|
||||||
if (!permissionUtil.isFilesPermissionGranted()) {
|
if (!permissionUtil.isFilesPermissionGranted()) {
|
||||||
requestReadFilesPermissions()
|
requestReadFilesPermissions()
|
||||||
|
Loading…
Reference in New Issue
Block a user