From 1e2960a72afec622aa2c8d54831d460877ed549e Mon Sep 17 00:00:00 2001 From: Marcel Hibbe Date: Wed, 26 May 2021 22:20:23 +0200 Subject: [PATCH] add example for leaflet in WebView Signed-off-by: Marcel Hibbe --- app/src/main/AndroidManifest.xml | 4 ++ app/src/main/assets/index.html | 38 +++++++++++++++++++ .../talk/activities/LeafletWebView.kt | 32 ++++++++++++++++ .../talk/controllers/ChatController.kt | 22 +++++++---- app/src/main/res/layout/leaflet_webview.xml | 13 +++++++ 5 files changed, 101 insertions(+), 8 deletions(-) create mode 100644 app/src/main/assets/index.html create mode 100644 app/src/main/java/com/nextcloud/talk/activities/LeafletWebView.kt create mode 100644 app/src/main/res/layout/leaflet_webview.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index c5b1af412..4001a9a0e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -141,6 +141,10 @@ android:configChanges="orientation|keyboardHidden|screenSize"> + + + diff --git a/app/src/main/assets/index.html b/app/src/main/assets/index.html new file mode 100644 index 000000000..b830f6d00 --- /dev/null +++ b/app/src/main/assets/index.html @@ -0,0 +1,38 @@ + + + + + + + + +
+ + + + \ No newline at end of file diff --git a/app/src/main/java/com/nextcloud/talk/activities/LeafletWebView.kt b/app/src/main/java/com/nextcloud/talk/activities/LeafletWebView.kt new file mode 100644 index 000000000..559d5b1b2 --- /dev/null +++ b/app/src/main/java/com/nextcloud/talk/activities/LeafletWebView.kt @@ -0,0 +1,32 @@ +package com.nextcloud.talk.activities + +import android.annotation.SuppressLint +import android.os.Bundle +import android.webkit.WebView +import android.webkit.WebViewClient +import androidx.appcompat.app.AppCompatActivity +import com.nextcloud.talk.databinding.LeafletWebviewBinding + +class LeafletWebView : AppCompatActivity() { + lateinit var binding: LeafletWebviewBinding + + + @SuppressLint("SetJavaScriptEnabled") + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + binding = LeafletWebviewBinding.inflate(layoutInflater) + setContentView(binding.root) + + binding.webview.settings.javaScriptEnabled = true + + binding.webview.webViewClient = object : WebViewClient() { + override fun shouldOverrideUrlLoading(view: WebView?, url: String?): Boolean { + view?.loadUrl(url) + return true + } + } + binding.webview.loadUrl("file:///android_asset/index.html?51.5263,13.0384"); + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt b/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt index 404ce0eb7..1b7afd498 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt +++ b/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt @@ -77,6 +77,7 @@ import com.facebook.imagepipeline.datasource.BaseBitmapDataSubscriber import com.facebook.imagepipeline.image.CloseableImage import com.google.android.flexbox.FlexboxLayout import com.nextcloud.talk.R +import com.nextcloud.talk.activities.LeafletWebView import com.nextcloud.talk.activities.MagicCallActivity import com.nextcloud.talk.adapters.messages.MagicIncomingTextMessageViewHolder import com.nextcloud.talk.adapters.messages.MagicOutcomingTextMessageViewHolder @@ -121,7 +122,6 @@ import com.nextcloud.talk.utils.NotificationUtils import com.nextcloud.talk.utils.UriUtils import com.nextcloud.talk.utils.bundle.BundleKeys import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_ACTIVE_CONVERSATION -import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_NEW_CONVERSATION import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_ROOM_ID import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_ROOM_TOKEN import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_USER_ENTITY @@ -797,13 +797,19 @@ class ChatController(args: Bundle) : fun showShareLocationScreen(){ Log.d(TAG, "showShareLocationScreen") - val bundle = Bundle() - bundle.putBoolean(KEY_NEW_CONVERSATION, true) - router.pushController( - RouterTransaction.with(LocationController(bundle)) - .pushChangeHandler(HorizontalChangeHandler()) - .popChangeHandler(HorizontalChangeHandler()) - ) + // val bundle = Bundle() + // bundle.putBoolean(KEY_NEW_CONVERSATION, true) + // router.pushController( + // RouterTransaction.with(LocationController(bundle)) + // .pushChangeHandler(HorizontalChangeHandler()) + // .popChangeHandler(HorizontalChangeHandler()) + // ) + + val leafletIntent = Intent(context, LeafletWebView::class.java) + leafletIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) + // fullScreenImageIntent.putExtra("FILE_NAME", filename) + // fullScreenImageIntent.putExtra("IS_GIF", isGif(mimetype)) + context!!.startActivity(leafletIntent) } private fun showConversationInfoScreen() { diff --git a/app/src/main/res/layout/leaflet_webview.xml b/app/src/main/res/layout/leaflet_webview.xml new file mode 100644 index 000000000..67f0dbf55 --- /dev/null +++ b/app/src/main/res/layout/leaflet_webview.xml @@ -0,0 +1,13 @@ + + + + + + + \ No newline at end of file