general fixes webview activity
This commit is contained in:
parent
206277e704
commit
92f3bdb3cd
9 changed files with 37 additions and 37 deletions
|
|
@ -435,10 +435,10 @@
|
|||
</activity-alias>
|
||||
|
||||
<activity
|
||||
android:name=".ui.more.WebViewActivity"
|
||||
android:name=".ui.more.cookies.WebViewActivity"
|
||||
android:configChanges="locale"
|
||||
android:exported="true"
|
||||
android:launchMode="singleTask"
|
||||
android:excludeFromRecents="true"
|
||||
android:parentActivityName=".MainActivity"
|
||||
android:windowSoftInputMode="adjustResize">
|
||||
<intent-filter>
|
||||
|
|
@ -452,7 +452,7 @@
|
|||
android:name=".ui.more.settings.advanced.generateyoutubepotokens.webview.PoTokenWebViewLoginActivity"
|
||||
android:configChanges="locale"
|
||||
android:exported="true"
|
||||
android:launchMode="singleTask"
|
||||
android:excludeFromRecents="true"
|
||||
android:noHistory="true"
|
||||
android:parentActivityName=".ui.more.settings.SettingsActivity"
|
||||
android:windowSoftInputMode="adjustResize">
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ import com.deniscerri.ytdl.BuildConfig
|
|||
import com.deniscerri.ytdl.database.DBManager
|
||||
import com.deniscerri.ytdl.database.models.CookieItem
|
||||
import com.deniscerri.ytdl.database.repository.CookieRepository
|
||||
import com.deniscerri.ytdl.ui.more.WebViewActivity
|
||||
import com.deniscerri.ytdl.ui.more.cookies.WebViewActivity
|
||||
import com.deniscerri.ytdl.util.FileUtil
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ import com.deniscerri.ytdl.database.viewmodel.HistoryViewModel
|
|||
import com.deniscerri.ytdl.database.viewmodel.ResultViewModel
|
||||
import com.deniscerri.ytdl.ui.adapter.HomeAdapter
|
||||
import com.deniscerri.ytdl.ui.adapter.SearchSuggestionsAdapter
|
||||
import com.deniscerri.ytdl.ui.more.WebViewActivity
|
||||
import com.deniscerri.ytdl.ui.more.cookies.WebViewActivity
|
||||
import com.deniscerri.ytdl.util.Extensions.enableFastScroll
|
||||
import com.deniscerri.ytdl.util.Extensions.isURL
|
||||
import com.deniscerri.ytdl.util.NotificationUtil
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ import com.deniscerri.ytdl.database.viewmodel.HistoryViewModel
|
|||
import com.deniscerri.ytdl.database.viewmodel.ResultViewModel
|
||||
import com.deniscerri.ytdl.receiver.ShareActivity
|
||||
import com.deniscerri.ytdl.ui.BaseActivity
|
||||
import com.deniscerri.ytdl.ui.more.WebViewActivity
|
||||
import com.deniscerri.ytdl.ui.more.cookies.WebViewActivity
|
||||
import com.deniscerri.ytdl.util.UiUtil
|
||||
import com.facebook.shimmer.ShimmerFrameLayout
|
||||
import com.google.android.material.bottomsheet.BottomSheetBehavior
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package com.deniscerri.ytdl.ui.more
|
||||
package com.deniscerri.ytdl.ui.more.cookies
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.content.Context.INPUT_METHOD_SERVICE
|
||||
import android.content.Context
|
||||
import android.content.DialogInterface
|
||||
import android.content.Intent
|
||||
import android.content.SharedPreferences
|
||||
|
|
@ -32,6 +32,7 @@ import com.deniscerri.ytdl.R
|
|||
import com.deniscerri.ytdl.database.models.CookieItem
|
||||
import com.deniscerri.ytdl.database.viewmodel.CookieViewModel
|
||||
import com.deniscerri.ytdl.ui.adapter.CookieAdapter
|
||||
import com.deniscerri.ytdl.ui.more.cookies.WebViewActivity
|
||||
import com.deniscerri.ytdl.util.Extensions.enableTextHighlight
|
||||
import com.deniscerri.ytdl.util.FileUtil
|
||||
import com.deniscerri.ytdl.util.UiUtil
|
||||
|
|
@ -51,7 +52,6 @@ import kotlinx.coroutines.launch
|
|||
import kotlinx.coroutines.withContext
|
||||
import java.io.File
|
||||
|
||||
|
||||
class CookiesFragment : Fragment(), CookieAdapter.OnItemClickListener {
|
||||
private lateinit var recyclerView: RecyclerView
|
||||
private lateinit var listAdapter: CookieAdapter
|
||||
|
|
@ -136,7 +136,7 @@ class CookiesFragment : Fragment(), CookieAdapter.OnItemClickListener {
|
|||
deleteDialog.setNegativeButton(getString(R.string.cancel)) { dialogInterface: DialogInterface, _: Int -> dialogInterface.cancel() }
|
||||
deleteDialog.setPositiveButton(getString(R.string.ok)) { _: DialogInterface?, _: Int ->
|
||||
cookiesViewModel.deleteAll()
|
||||
kotlin.runCatching {
|
||||
runCatching {
|
||||
FileUtil.getCookieFile(requireContext(), true){
|
||||
File(it).apply { writeText("") }
|
||||
}
|
||||
|
|
@ -235,7 +235,7 @@ class CookiesFragment : Fragment(), CookieAdapter.OnItemClickListener {
|
|||
getCookies.isEnabled = urlEditText.text.isNotEmpty()
|
||||
}
|
||||
|
||||
val imm = mainActivity.getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager
|
||||
val imm = mainActivity.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
|
||||
urlEditText.postDelayed({
|
||||
urlEditText.requestFocus()
|
||||
imm.showSoftInput(urlEditText, 0)
|
||||
|
|
@ -262,7 +262,7 @@ class CookiesFragment : Fragment(), CookieAdapter.OnItemClickListener {
|
|||
|
||||
override fun onItemEnabledChanged(cookieItem: CookieItem, isEnabled: Boolean) {
|
||||
lifecycleScope.launch {
|
||||
withContext(Dispatchers.IO){
|
||||
withContext(Dispatchers.IO) {
|
||||
cookiesViewModel.changeCookieEnabledState(cookieItem.id, isEnabled)
|
||||
}
|
||||
}
|
||||
|
|
@ -280,7 +280,7 @@ class CookiesFragment : Fragment(), CookieAdapter.OnItemClickListener {
|
|||
|
||||
private var simpleCallback: ItemTouchHelper.SimpleCallback =
|
||||
object : ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT ) {
|
||||
override fun onMove(recyclerView: RecyclerView,viewHolder: RecyclerView.ViewHolder,target: RecyclerView.ViewHolder
|
||||
override fun onMove(recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder, target: RecyclerView.ViewHolder
|
||||
): Boolean {
|
||||
return false
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.deniscerri.ytdl.ui.more
|
||||
package com.deniscerri.ytdl.ui.more.cookies
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.content.SharedPreferences
|
||||
|
|
@ -9,7 +9,6 @@ import android.webkit.CookieManager
|
|||
import android.webkit.WebSettings
|
||||
import android.webkit.WebStorage
|
||||
import android.webkit.WebView
|
||||
import android.webkit.WebViewDatabase
|
||||
import android.widget.Toast
|
||||
import androidx.compose.foundation.layout.fillMaxSize
|
||||
import androidx.compose.foundation.layout.padding
|
||||
|
|
@ -19,29 +18,22 @@ import androidx.compose.runtime.remember
|
|||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.platform.ComposeView
|
||||
import androidx.core.view.children
|
||||
import androidx.core.view.forEach
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.preference.PreferenceManager
|
||||
import com.deniscerri.ytdl.R
|
||||
import com.deniscerri.ytdl.database.models.CookieItem
|
||||
import com.deniscerri.ytdl.database.viewmodel.CookieViewModel
|
||||
import com.deniscerri.ytdl.ui.BaseActivity
|
||||
import com.deniscerri.ytdl.util.Extensions.isYoutubeURL
|
||||
import com.deniscerri.ytdl.util.UiUtil
|
||||
import com.google.accompanist.web.AccompanistWebChromeClient
|
||||
import com.google.accompanist.web.AccompanistWebViewClient
|
||||
import com.google.accompanist.web.WebView
|
||||
import com.google.accompanist.web.rememberWebViewState
|
||||
import com.google.android.material.appbar.AppBarLayout
|
||||
import com.google.android.material.appbar.MaterialToolbar
|
||||
import com.google.android.material.button.MaterialButton
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
import org.hamcrest.Description
|
||||
|
||||
|
||||
class WebViewActivity : BaseActivity() {
|
||||
private lateinit var cookiesViewModel: CookieViewModel
|
||||
|
|
@ -109,7 +101,7 @@ class WebViewActivity : BaseActivity() {
|
|||
override fun onPageFinished(view: WebView?, url: String?) {
|
||||
webView = view
|
||||
super.onPageFinished(view, url)
|
||||
kotlin.runCatching {
|
||||
runCatching {
|
||||
toolbar.title = view?.title ?: ""
|
||||
cookies = cookieManager.getCookie(view?.url)
|
||||
}
|
||||
|
|
@ -124,9 +116,9 @@ class WebViewActivity : BaseActivity() {
|
|||
lifecycleScope.launch {
|
||||
withContext(Dispatchers.IO) {
|
||||
cookiesViewModel.getCookiesFromDB(url).getOrNull()?.let {
|
||||
kotlin.runCatching {
|
||||
runCatching {
|
||||
cookiesViewModel.insert(
|
||||
CookieItem(
|
||||
com.deniscerri.ytdl.database.models.CookieItem(
|
||||
0,
|
||||
url,
|
||||
it,
|
||||
|
|
@ -154,8 +146,12 @@ class WebViewActivity : BaseActivity() {
|
|||
}
|
||||
|
||||
cookieManager = CookieManager.getInstance()
|
||||
cookieManager.removeAllCookies(null)
|
||||
cookieManager.flush()
|
||||
|
||||
if (savedInstanceState == null) {
|
||||
cookieManager.removeAllCookies(null)
|
||||
cookieManager.flush()
|
||||
}
|
||||
|
||||
webViewCompose.apply {
|
||||
setContent { WebViewView() }
|
||||
}
|
||||
|
|
@ -186,20 +182,23 @@ class WebViewActivity : BaseActivity() {
|
|||
}
|
||||
}
|
||||
|
||||
Scaffold(modifier = Modifier.fillMaxSize()) { paddingValues ->
|
||||
WebView(
|
||||
state = rememberWebViewState(url), client = webViewClient, chromeClient = webViewChromeClient,
|
||||
modifier = Modifier
|
||||
Scaffold(modifier = Modifier.Companion.fillMaxSize()) { paddingValues ->
|
||||
com.google.accompanist.web.WebView(
|
||||
state = rememberWebViewState(url),
|
||||
client = webViewClient,
|
||||
chromeClient = webViewChromeClient,
|
||||
modifier = Modifier.Companion
|
||||
.padding(paddingValues)
|
||||
.fillMaxSize(),
|
||||
captureBackPresses = false, factory = { context ->
|
||||
captureBackPresses = false,
|
||||
factory = { context ->
|
||||
WebView(context).apply {
|
||||
settings.run {
|
||||
if (!incognito) {
|
||||
cacheMode = WebSettings.LOAD_DEFAULT
|
||||
domStorageEnabled = true
|
||||
setGeolocationEnabled(true)
|
||||
}else {
|
||||
} else {
|
||||
cacheMode = WebSettings.LOAD_NO_CACHE
|
||||
domStorageEnabled = false
|
||||
setGeolocationEnabled(false)
|
||||
|
|
@ -215,7 +214,8 @@ class WebViewActivity : BaseActivity() {
|
|||
if (Build.VERSION.SDK_INT >= 26) {
|
||||
safeBrowsingEnabled = true
|
||||
}
|
||||
preferences.edit().putString("useragent_header", userAgentString).apply()
|
||||
preferences.edit().putString("useragent_header", userAgentString)
|
||||
.apply()
|
||||
}
|
||||
cookieManager.setAcceptCookie(true)
|
||||
cookieManager.setAcceptThirdPartyCookies(this, true)
|
||||
|
|
@ -118,7 +118,7 @@ class MainSettingsFragment : PreferenceFragmentCompat() {
|
|||
}
|
||||
|
||||
val updating = findPreference<Preference>("updating")
|
||||
updating?.summary = "${getString(R.string.update_ytdl)}$separator ${getString(R.string.format_source)}$separator ${getString(R.string.update_app)}"
|
||||
updating?.summary = "${getString(R.string.update_ytdl)}$separator ${getString(R.string.update_app)}"
|
||||
updating?.setOnPreferenceClickListener {
|
||||
navController.navigate(R.id.action_mainSettingsFragment_to_updateSettingsFragment)
|
||||
true
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ import com.deniscerri.ytdl.R
|
|||
import com.deniscerri.ytdl.database.models.CookieItem
|
||||
import com.deniscerri.ytdl.database.models.YoutubeGeneratePoTokenItem
|
||||
import com.deniscerri.ytdl.database.models.YoutubePoTokenItem
|
||||
import com.deniscerri.ytdl.ui.more.WebViewActivity
|
||||
import com.deniscerri.ytdl.ui.more.cookies.WebViewActivity
|
||||
import com.deniscerri.ytdl.ui.more.settings.SettingsActivity
|
||||
import com.deniscerri.ytdl.ui.more.settings.advanced.generateyoutubepotokens.webview.PoTokenWebViewLoginActivity
|
||||
import com.deniscerri.ytdl.util.Extensions.enableTextHighlight
|
||||
|
|
|
|||
|
|
@ -89,7 +89,7 @@
|
|||
tools:layout="@layout/fragment_terminal" />
|
||||
<fragment
|
||||
android:id="@+id/cookiesFragment"
|
||||
android:name="com.deniscerri.ytdl.ui.more.CookiesFragment"
|
||||
android:name="com.deniscerri.ytdl.ui.more.cookies.CookiesFragment"
|
||||
tools:layout="@layout/fragment_cookies"
|
||||
android:label="CookiesFragment" />
|
||||
<fragment
|
||||
|
|
|
|||
Loading…
Reference in a new issue