added data persistency for WebView (API19-)
parent
459e044f06
commit
cd1068e090
|
|
@ -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!!)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
Loading…
Reference in New Issue