TODO implement custom Chrome tabs

This commit is contained in:
denizk0461
2023-04-08 18:53:51 +02:00
parent 3c65ccddb1
commit 03b86c8ab9
15 changed files with 65 additions and 42 deletions
@@ -29,7 +29,6 @@ class MainActivity : AppCompatActivity() {
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
setSupportActionBar(binding.toolbar)
val navController = findNavController(R.id.nav_host_fragment_content_main)
@@ -37,9 +36,10 @@ class MainActivity : AppCompatActivity() {
setupActionBarWithNavController(navController, appBarConfiguration)
binding.fab.setOnClickListener { view ->
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAnchorView(R.id.fab)
.setAction("Action", null).show()
findNavController(R.id.nav_host_fragment_content_main).navigate(R.id.action_FirstFragment_to_SecondFragment)
// Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
// .setAnchorView(R.id.fab)
// .setAction("Action", null).show()
}
}
@@ -3,7 +3,7 @@ package com.denizk0461.studip.adapter
import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.denizk0461.studip.data.StudIPEvent
import com.denizk0461.studip.model.StudIPEvent
import com.denizk0461.studip.databinding.ItemEventBinding
class StudIPEventAdapter(private val events: List<StudIPEvent>) : RecyclerView.Adapter<StudIPEventAdapter.EventViewHolder>() {
@@ -4,7 +4,7 @@ import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.denizk0461.studip.data.StudIPEvent
import com.denizk0461.studip.model.StudIPEvent
import com.denizk0461.studip.databinding.ItemEventPageBinding
class StudIPEventPageAdapter(private val events: List<StudIPEvent>) : RecyclerView.Adapter<StudIPEventPageAdapter.EventPageViewHolder>() {
@@ -1,5 +1,7 @@
package com.denizk0461.studip.data
import com.denizk0461.studip.model.StudIPEvent
object DummyData {
val events: Array<StudIPEvent> = arrayOf(
@@ -0,0 +1,29 @@
package com.denizk0461.studip.data
import android.content.Context
import android.graphics.Bitmap
import android.webkit.WebView
import android.webkit.WebViewClient
class StudIPScraper : WebViewClient() {
fun parse(context: Context) {
// val res = Jsoup.connect("https://elearning.uni-bremen.de/index.php?again=yes")
// .data("loginname", "deniz7", "password", "xSh4d0wZ3r0_+nbrmn")
// .method(Connection.Method.POST)
// .execute()
// val doc = Jsoup.connect("https://elearning.uni-bremen.de/dispatch.php/calendar/schedule").get()
// Log.d("HELLO", doc.toString())
}
override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
super.onPageStarted(view, url, favicon)
}
override fun onPageFinished(view: WebView?, url: String?) {
super.onPageFinished(view, url)
}
}
@@ -4,7 +4,7 @@ import androidx.lifecycle.LiveData
import androidx.room.Dao
import androidx.room.Insert
import androidx.room.Query
import com.denizk0461.studip.data.StudIPEvent
import com.denizk0461.studip.model.StudIPEvent
@Dao
interface EventDAO {
@@ -4,7 +4,7 @@ import android.content.Context
import androidx.room.Database
import androidx.room.Room
import androidx.room.RoomDatabase
import com.denizk0461.studip.data.StudIPEvent
import com.denizk0461.studip.model.StudIPEvent
@Database(entities = [StudIPEvent::class], version = 1)
abstract class EventDatabase : RoomDatabase() {
@@ -2,7 +2,7 @@ package com.denizk0461.studip.db
import android.app.Application
import androidx.lifecycle.LiveData
import com.denizk0461.studip.data.StudIPEvent
import com.denizk0461.studip.model.StudIPEvent
class EventRepository(app: Application) {
@@ -11,6 +11,7 @@ import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.PagerSnapHelper
import com.denizk0461.studip.adapter.StudIPEventPageAdapter
import com.denizk0461.studip.data.DummyData
import com.denizk0461.studip.data.StudIPScraper
import com.denizk0461.studip.databinding.FragmentEventBinding
import com.denizk0461.studip.viewmodel.EventViewModel
@@ -47,6 +48,8 @@ class EventFragment : Fragment() {
binding.recyclerView.scheduleLayoutAnimation()
}
viewModel.doAsync { StudIPScraper().parse(requireContext()) }
// binding.buttonFirst.setOnClickListener {
// findNavController().navigate(R.id.action_FirstFragment_to_SecondFragment)
// }
@@ -5,6 +5,7 @@ import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.webkit.WebChromeClient
import androidx.navigation.fragment.findNavController
import com.denizk0461.studip.R
import com.denizk0461.studip.databinding.FragmentSecondBinding
@@ -23,7 +24,7 @@ class SecondFragment : Fragment() {
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
): View {
_binding = FragmentSecondBinding.inflate(inflater, container, false)
return binding.root
@@ -33,9 +34,12 @@ class SecondFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.buttonSecond.setOnClickListener {
findNavController().navigate(R.id.action_SecondFragment_to_FirstFragment)
}
// binding.buttonSecond.setOnClickListener {
// findNavController().navigate(R.id.action_SecondFragment_to_FirstFragment)
// }
binding.webview.webChromeClient = WebChromeClient()
binding.webview.loadUrl("https://elearning.uni-bremen.de/index.php?again=yes")
}
override fun onDestroyView() {
@@ -1,4 +1,4 @@
package com.denizk0461.studip.data
package com.denizk0461.studip.model
import androidx.room.Entity
import androidx.room.Ignore
@@ -2,7 +2,7 @@ package com.denizk0461.studip.viewmodel
import android.app.Application
import androidx.lifecycle.LiveData
import com.denizk0461.studip.data.StudIPEvent
import com.denizk0461.studip.model.StudIPEvent
class EventViewModel(app: Application) : TemplateViewModel(app) {