From 22141e15d8eba9ab4fab241f4c6af5033ef88e53 Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 18 Jul 2023 18:06:59 +0300 Subject: [PATCH] Updated on 2026-08-14 --- features/learn2earn/impl/build.gradle.kts | 1 + .../webView/Learn2earnWebViewActivity.kt | 87 ++++++++++--------- .../webView/Learn2earnWebViewClient.kt | 4 +- .../src/main/res/layout/activity_web_view.xml | 38 -------- 4 files changed, 47 insertions(+), 83 deletions(-) delete mode 100644 features/learn2earn/impl/src/main/res/layout/activity_web_view.xml diff --git a/features/learn2earn/impl/build.gradle.kts b/features/learn2earn/impl/build.gradle.kts index 26d0179187..52671d615a 100644 --- a/features/learn2earn/impl/build.gradle.kts +++ b/features/learn2earn/impl/build.gradle.kts @@ -35,6 +35,7 @@ dependencies { implementation(deps.compose.foundation) implementation(deps.compose.ui) implementation(deps.compose.ui.tooling) + implementation(deps.compose.accompanist.webView) /** Preferences */ implementation(deps.krateSharedPref) diff --git a/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/presentation/webView/Learn2earnWebViewActivity.kt b/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/presentation/webView/Learn2earnWebViewActivity.kt index 7300fcdb06..f88f31dd0d 100644 --- a/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/presentation/webView/Learn2earnWebViewActivity.kt +++ b/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/presentation/webView/Learn2earnWebViewActivity.kt @@ -1,12 +1,19 @@ package com.tangem.feature.learn2earn.presentation.webView import android.os.Bundle -import android.view.MenuItem -import android.webkit.WebView +import androidx.activity.compose.BackHandler +import androidx.activity.compose.setContent import androidx.activity.viewModels -import androidx.appcompat.app.ActionBar import androidx.appcompat.app.AppCompatActivity -import com.tangem.feature.learn2earn.impl.R +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Column +import androidx.compose.runtime.Composable +import androidx.compose.runtime.remember +import androidx.compose.ui.Modifier +import com.google.accompanist.web.WebView +import com.google.accompanist.web.rememberWebViewState +import com.tangem.core.ui.components.appbar.AppBarWithBackButton +import com.tangem.core.ui.res.TangemTheme import dagger.hilt.android.AndroidEntryPoint /** @@ -17,53 +24,47 @@ class Learn2earnWebViewActivity : AppCompatActivity() { private val viewModel by viewModels() - private lateinit var actionBar: ActionBar - private lateinit var webView: WebView - override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContentView(R.layout.activity_web_view) - val webViewData = viewModel.extractData(intent) - setSupportActionBar(findViewById(R.id.toolbar)) - actionBar = supportActionBar!! - actionBar.setDisplayHomeAsUpEnabled(true) - actionBar.setDisplayShowHomeEnabled(true) - actionBar.title = webViewData.uri.authority - webView = findViewById(R.id.web_view) - - webView.settings.javaScriptEnabled = true - webView.settings.domStorageEnabled = true - webView.settings.loadsImagesAutomatically = true - - webView.webViewClient = Learn2earnWebViewClient( - redirectHandler = viewModel, - headers = webViewData.headers, - finishSessionHandler = { finish() }, - ) - webView.loadUrl( - webViewData.uri.toString(), - webViewData.headers, - ) - } - - override fun onOptionsItemSelected(item: MenuItem): Boolean { - return when (item.itemId) { - android.R.id.home -> { - finish() - true + setContent { + TangemTheme { + BackHandler(onBack = { finish() }) + ScreenContent(webViewData) } - else -> super.onOptionsItemSelected(item) } } - override fun onDestroy() { - webView.clearHistory() - webView.clearCache(true) - webView.destroy() - - super.onDestroy() + @Composable + private fun ScreenContent(webViewData: WebViewData) { + Column { + AppBarWithBackButton( + modifier = Modifier.background(TangemTheme.colors.background.secondary), + text = webViewData.uri.authority, + onBackClick = { finish() }, + ) + WebView( + state = rememberWebViewState( + url = webViewData.uri.toString(), + additionalHttpHeaders = webViewData.headers + ), + onCreated = { + it.settings.apply { + javaScriptEnabled = true + domStorageEnabled = true + loadsImagesAutomatically = true + } + }, + client = remember { + Learn2earnWebViewClient( + redirectHandler = viewModel, + headers = webViewData.headers, + finishSessionHandler = { finish() }, + ) + }, + ) + } } companion object { diff --git a/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/presentation/webView/Learn2earnWebViewClient.kt b/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/presentation/webView/Learn2earnWebViewClient.kt index 7a96dbc90b..575b074b03 100644 --- a/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/presentation/webView/Learn2earnWebViewClient.kt +++ b/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/presentation/webView/Learn2earnWebViewClient.kt @@ -2,7 +2,7 @@ package com.tangem.feature.learn2earn.presentation.webView import android.webkit.WebResourceRequest import android.webkit.WebView -import android.webkit.WebViewClient +import com.google.accompanist.web.AccompanistWebViewClient import com.tangem.feature.learn2earn.domain.api.WebViewAction import com.tangem.feature.learn2earn.domain.api.WebViewRedirectHandler import timber.log.Timber @@ -11,7 +11,7 @@ internal class Learn2earnWebViewClient( private val redirectHandler: WebViewRedirectHandler, private val headers: Map, private val finishSessionHandler: () -> Unit, -) : WebViewClient() { +) : AccompanistWebViewClient() { override fun shouldOverrideUrlLoading(view: WebView, request: WebResourceRequest): Boolean { Timber.d("url: ${request.url}") diff --git a/features/learn2earn/impl/src/main/res/layout/activity_web_view.xml b/features/learn2earn/impl/src/main/res/layout/activity_web_view.xml deleted file mode 100644 index 8737917c56..0000000000 --- a/features/learn2earn/impl/src/main/res/layout/activity_web_view.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file