diff --git a/app/phone/src/main/java/com/nomadics9/ananas/MainActivity.kt b/app/phone/src/main/java/com/nomadics9/ananas/MainActivity.kt index 6fcc5a19..74a3c1a5 100644 --- a/app/phone/src/main/java/com/nomadics9/ananas/MainActivity.kt +++ b/app/phone/src/main/java/com/nomadics9/ananas/MainActivity.kt @@ -92,7 +92,7 @@ class MainActivity : AppCompatActivity() { navController.addOnDestinationChangedListener { _, destination, _ -> binding.navView.visibility = when (destination.id) { - R.id.twoPaneSettingsFragment, R.id.serverSelectFragment, R.id.addServerFragment, R.id.loginFragment, com.mikepenz.aboutlibraries.R.id.about_libraries_dest, R.id.usersFragment, R.id.serverAddressesFragment -> View.GONE + R.id.twoPaneSettingsFragment, R.id.serverSelectFragment, R.id.addServerFragment, R.id.loginFragment, com.mikepenz.aboutlibraries.R.id.about_libraries_dest, R.id.usersFragment, R.id.serverAddressesFragment, R.id.requestsWebFragment -> View.GONE else -> View.VISIBLE } if (destination.id == com.mikepenz.aboutlibraries.R.id.about_libraries_dest) { diff --git a/app/phone/src/main/java/com/nomadics9/ananas/fragments/HomeFragment.kt b/app/phone/src/main/java/com/nomadics9/ananas/fragments/HomeFragment.kt index 73f67153..4ba7ddef 100644 --- a/app/phone/src/main/java/com/nomadics9/ananas/fragments/HomeFragment.kt +++ b/app/phone/src/main/java/com/nomadics9/ananas/fragments/HomeFragment.kt @@ -74,6 +74,12 @@ class HomeFragment : Fragment() { val searchView = search.actionView as SearchView searchView.queryHint = getString(CoreR.string.search_hint) + val requests = menu.findItem(CoreR.id.action_requests) + requests.setOnMenuItemClickListener{ + navigateToRequestsWebViewFragment() + true + } + search.setOnActionExpandListener( object : MenuItem.OnActionExpandListener { override fun onMenuItemActionExpand(item: MenuItem): Boolean { @@ -251,4 +257,10 @@ class HomeFragment : Fragment() { HomeFragmentDirections.actionHomeFragmentToSearchResultFragment(query), ) } + + private fun navigateToRequestsWebViewFragment() { + findNavController().navigate( + HomeFragmentDirections.actionHomeFragmentToRequestsWebFragment() + ) + } } diff --git a/app/phone/src/main/java/com/nomadics9/ananas/fragments/RequestsWebViewFragment.kt b/app/phone/src/main/java/com/nomadics9/ananas/fragments/RequestsWebViewFragment.kt new file mode 100644 index 00000000..61af3021 --- /dev/null +++ b/app/phone/src/main/java/com/nomadics9/ananas/fragments/RequestsWebViewFragment.kt @@ -0,0 +1,71 @@ +package com.nomadics9.ananas.fragments + +import android.graphics.Bitmap +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.webkit.WebSettings +import android.webkit.WebView +import android.webkit.WebViewClient +import android.widget.ProgressBar +import androidx.activity.OnBackPressedCallback +import androidx.fragment.app.Fragment +import com.nomadics9.ananas.R +import dagger.hilt.android.AndroidEntryPoint + +@AndroidEntryPoint +class RequestsWebViewFragment : Fragment() { + private lateinit var webView: WebView + private lateinit var progressBar: ProgressBar + + override fun onCreateView( + inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + val rootView = inflater.inflate(R.layout.fragment_webview, container, false) + + webView = rootView.findViewById(R.id.webview) + progressBar = rootView.findViewById(R.id.progressBar) + + val webSettings: WebSettings = webView.settings + webSettings.javaScriptEnabled = true // Enable JavaScript if required + + // Set WebViewClient to handle loading URLs within the WebView + webView.webViewClient = object : WebViewClient() { + override fun shouldOverrideUrlLoading(view: WebView?, url: String?): Boolean { + // Return false to indicate that the WebView should load the URL + return false + } + } + + // Set up WebView client to handle page loading events + webView.webViewClient = object : WebViewClient() { + override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) { + super.onPageStarted(view, url, favicon) + progressBar.visibility = View.VISIBLE // Show progress bar when page starts loading + } + + override fun onPageFinished(view: WebView?, url: String?) { + super.onPageFinished(view, url) + progressBar.visibility = View.GONE // Hide progress bar when page finishes loading + } + } + + // Load your URL here + webView.loadUrl("https://r.askar.tv") + + requireActivity().onBackPressedDispatcher.addCallback(viewLifecycleOwner, object : OnBackPressedCallback(true) { + override fun handleOnBackPressed() { + if (webView.canGoBack()) { + webView.goBack() + } else { + isEnabled = false + requireActivity().onBackPressed() + } + } + }) + return rootView + } + +} diff --git a/app/phone/src/main/java/com/nomadics9/ananas/fragments/SettingsFragment.kt b/app/phone/src/main/java/com/nomadics9/ananas/fragments/SettingsFragment.kt index b3bd27b1..f1b4eac4 100644 --- a/app/phone/src/main/java/com/nomadics9/ananas/fragments/SettingsFragment.kt +++ b/app/phone/src/main/java/com/nomadics9/ananas/fragments/SettingsFragment.kt @@ -55,5 +55,10 @@ class SettingsFragment : PreferenceFragmentCompat() { findNavController().navigate(TwoPaneSettingsFragmentDirections.actionSettingsFragmentToAboutLibraries()) true } + + findPreference("requests")?.setOnPreferenceClickListener { + findNavController().navigate(TwoPaneSettingsFragmentDirections.actionNavigationSettingsToRequestsWebFragment()) + true + } } } diff --git a/app/phone/src/main/res/layout/fragment_webview.xml b/app/phone/src/main/res/layout/fragment_webview.xml new file mode 100644 index 00000000..b6be1c66 --- /dev/null +++ b/app/phone/src/main/res/layout/fragment_webview.xml @@ -0,0 +1,16 @@ + + + + + + diff --git a/app/phone/src/main/res/navigation/app_navigation.xml b/app/phone/src/main/res/navigation/app_navigation.xml index e62476df..819f304a 100644 --- a/app/phone/src/main/res/navigation/app_navigation.xml +++ b/app/phone/src/main/res/navigation/app_navigation.xml @@ -49,6 +49,9 @@ + + + android:name="com.nomadics9.ananas.fragments.SettingsFragment"> + + + - \ No newline at end of file + diff --git a/buildSrc/src/main/kotlin/Versions.kt b/buildSrc/src/main/kotlin/Versions.kt index 90428fdc..20f16746 100644 --- a/buildSrc/src/main/kotlin/Versions.kt +++ b/buildSrc/src/main/kotlin/Versions.kt @@ -1,7 +1,7 @@ import org.gradle.api.JavaVersion object Versions { - const val appCode = 1 + const val appCode = 3 const val appName = "0.14.2" const val compileSdk = 34 diff --git a/core/src/main/res/drawable/ic_requests.xml b/core/src/main/res/drawable/ic_requests.xml new file mode 100644 index 00000000..aa2d01b8 --- /dev/null +++ b/core/src/main/res/drawable/ic_requests.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/core/src/main/res/menu/home_menu.xml b/core/src/main/res/menu/home_menu.xml index afe5b5a0..71baac66 100644 --- a/core/src/main/res/menu/home_menu.xml +++ b/core/src/main/res/menu/home_menu.xml @@ -3,6 +3,12 @@ xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> + + Unmark as played Add to favorites Remove from favorites + AlaskarTV Requests diff --git a/core/src/main/res/xml/fragment_settings.xml b/core/src/main/res/xml/fragment_settings.xml index fb9db661..028c16c8 100644 --- a/core/src/main/res/xml/fragment_settings.xml +++ b/core/src/main/res/xml/fragment_settings.xml @@ -12,6 +12,11 @@ app:key="switchServer" app:title="@string/settings_category_servers" /> + +