added data persistency for WebView (API19-)

remotes/origin/devel
yattoz 2019-12-10 19:19:40 +01:00
parent 459e044f06
commit cd1068e090
3 changed files with 15 additions and 20 deletions

View File

@ -6,7 +6,6 @@ import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.view.WindowManager
import android.webkit.WebView
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProviders
@ -26,24 +25,20 @@ class NewsFragment : Fragment() {
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
var root = inflater.inflate(R.layout.fragment_news, container, false) as View
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.KITKAT)
{
root = inflater.inflate(R.layout.fragment_news, container, false) as androidx.coordinatorlayout.widget.CoordinatorLayout
activity?.window?.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN)
val webView = WebView(context)
newsViewModel =
ViewModelProviders.of(this).get(NewsViewModel::class.java)
if (!newsViewModel.isWebViewLoaded)
{
try {
val webViewS = root.findViewById<WebView>(R.id.news_webview)
val webViewChat = WebViewNews(webViewS as WebView)
webViewChat.start()
newsViewModel.root = inflater.inflate(R.layout.fragment_chat, container, false)
newsViewModel.webView = newsViewModel.root.findViewById(R.id.news_webview)
newsViewModel.webViewNews = WebViewNews(newsViewModel.webView as WebView)
newsViewModel.webViewNews!!.start()
} catch (e: Exception) {
root = inflater.inflate(R.layout.fragment_error_chat, container, false)
newsViewModel.root = inflater.inflate(R.layout.fragment_error_chat, container, false)
}
newsViewModel.isWebViewLoaded = true
@ -52,13 +47,13 @@ class NewsFragment : Fragment() {
Log.d(tag, "webview already created!?")
}
return root
return newsViewModel.root
}
newsViewModel =
ViewModelProviders.of(this).get(NewsViewModel::class.java)
root = inflater.inflate(R.layout.fragment_news, container, false) as androidx.swiperefreshlayout.widget.SwipeRefreshLayout
val root = inflater.inflate(R.layout.fragment_news, container, false) as androidx.swiperefreshlayout.widget.SwipeRefreshLayout
viewManager = LinearLayoutManager(context)
viewAdapter = NewsAdapter(newsViewModel.newsArray, context!!)

View File

@ -2,6 +2,8 @@ package fr.forum_thalie.tsumugi.ui.news
import android.os.Build
import android.util.Log
import android.view.View
import android.webkit.WebView
import androidx.lifecycle.ViewModel
import androidx.recyclerview.widget.RecyclerView
import com.prof.rssparser.Parser
@ -17,12 +19,15 @@ import java.net.URL
import java.text.SimpleDateFormat
import java.util.*
import kotlin.collections.ArrayList
import kotlin.math.max
import kotlin.math.min
class NewsViewModel : ViewModel() {
lateinit var root: View
var webView: WebView? = null
var webViewNews: WebViewNews? = null
val newsArray : ArrayList<News> = ArrayList()
var isWebViewLoaded = false

View File

@ -15,12 +15,7 @@ class WebViewNews(private val webView: WebView) {
webSetting.javaScriptEnabled = true
webSetting.setSupportZoom(true)
/* TODO: in the future, it could be nice to have a parameters screen where you can:
- Set the text zoom
- Set your username (to not type it every time, would it be possible?)
- Hide the chat?
- do more? */
webSetting.textZoom = 90
webSetting.textZoom = 100
webSetting.setSupportMultipleWindows(true)
// needs to open target="_blank" links as KiwiIRC links have this attribute.