mirror of
https://github.com/nextcloud/talk-android
synced 2025-02-01 20:22:03 +00: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() {
|
||||
if (!permissionUtil.isFilesPermissionGranted()) {
|
||||
requestReadFilesPermissions()
|
||||
|
Loading…
Reference in New Issue
Block a user