diff options
author | tobiasKaminsky <tobias@kaminsky.me> | 2021-10-20 09:13:52 +0300 |
---|---|---|
committer | Tim Krüger (Rebase PR Action) <t@timkrueger.me> | 2022-11-11 17:59:38 +0300 |
commit | 6784c08ef45fc5cb9ec0d4fb0527faa2468dd5c3 (patch) | |
tree | 3b1182d9e6c01dc733fd2364d5eb63abb9117733 | |
parent | 263edbc1d0fa4329fb02775d26f2ca8544a8b181 (diff) |
Handle incoming intent with server and userId as payloadhandleIntent
Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
-rw-r--r-- | app/src/main/AndroidManifest.xml | 6 | ||||
-rw-r--r-- | app/src/main/java/com/nextcloud/talk/activities/MainActivity.kt | 19 |
2 files changed, 25 insertions, 0 deletions
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 4ce0e5d2c..92a535365 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -133,6 +133,12 @@ <data android:scheme="content" /> <data android:scheme="file" /> </intent-filter> + + <intent-filter> + <action android:name="android.intent.action.VIEW" /> + <category android:name="android.intent.category.DEFAULT" /> + <data android:mimeType="text/text" /> + </intent-filter> </activity> <activity diff --git a/app/src/main/java/com/nextcloud/talk/activities/MainActivity.kt b/app/src/main/java/com/nextcloud/talk/activities/MainActivity.kt index e4a5ed9ed..1ef395eb3 100644 --- a/app/src/main/java/com/nextcloud/talk/activities/MainActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/activities/MainActivity.kt @@ -64,6 +64,7 @@ import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.Disposable import io.reactivex.schedulers.Schedulers import org.parceler.Parcels +import java.net.URI import javax.inject.Inject @AutoInjector(NextcloudTalkApplication::class) @@ -245,6 +246,24 @@ class MainActivity : BaseActivity(), ActionBarProvider { } } } + + if (intent.action == Intent.ACTION_VIEW && + intent.extras?.get("server") != null && + intent.extras?.get("userId") != null + ) { + val baseUrl = intent.extras?.get("server") as URI // intent.extras.getString("server") is empty?! + val user = intent.extras?.get("userId") as String + + if (userUtils.currentUser?.baseUrl?.endsWith(baseUrl.toString()) == true && user.isNotEmpty()) { + startConversation(user) + } else { + Snackbar.make( + binding.controllerContainer, + R.string.nc_phone_book_integration_account_not_found, + Snackbar.LENGTH_LONG + ).show() + } + } } private fun startConversation(userId: String) { |