diff --git a/README.MD b/README.MD
index 410353a0..ab37e4bf 100644
--- a/README.MD
+++ b/README.MD
@@ -61,6 +61,7 @@
+
## 💬 Contact
diff --git a/app/src/main/java/com/deniscerri/ytdlnis/MainActivity.kt b/app/src/main/java/com/deniscerri/ytdlnis/MainActivity.kt
index 985826d5..25686649 100644
--- a/app/src/main/java/com/deniscerri/ytdlnis/MainActivity.kt
+++ b/app/src/main/java/com/deniscerri/ytdlnis/MainActivity.kt
@@ -16,6 +16,7 @@ import android.provider.Settings
import android.util.Log
import android.view.View
import android.view.WindowInsets
+import android.widget.CheckBox
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import androidx.core.app.ActivityCompat
@@ -34,6 +35,7 @@ import com.deniscerri.ytdlnis.ui.more.settings.SettingsActivity
import com.deniscerri.ytdlnis.util.UpdateUtil
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.google.android.material.navigation.NavigationBarView
+import com.google.android.material.navigation.NavigationView
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import java.io.BufferedReader
@@ -50,7 +52,7 @@ class MainActivity : AppCompatActivity() {
private lateinit var preferences: SharedPreferences
private lateinit var resultViewModel: ResultViewModel
private lateinit var cookieViewModel: CookieViewModel
- private lateinit var navigationView: NavigationBarView
+ private lateinit var navigationView: View
private lateinit var navHostFragment : NavHostFragment
@@ -72,18 +74,25 @@ class MainActivity : AppCompatActivity() {
navHostFragment = supportFragmentManager.findFragmentById(R.id.frame_layout) as NavHostFragment
val navController = navHostFragment.findNavController()
- navigationView = findViewById(R.id.bottomNavigationView)
-
- window.decorView.setOnApplyWindowInsetsListener { view: View, windowInsets: WindowInsets? ->
- val windowInsetsCompat = WindowInsetsCompat.toWindowInsetsCompat(
- windowInsets!!, view
- )
- val isImeVisible = windowInsetsCompat.isVisible(WindowInsetsCompat.Type.ime())
- navigationView.visibility =
- if (isImeVisible) View.GONE else View.VISIBLE
- view.onApplyWindowInsets(windowInsets)
+ navigationView = try {
+ findViewById(R.id.bottomNavigationView)
+ }catch (e: Exception){
+ findViewById(R.id.navigationView)
}
- var sharedPreferences = getSharedPreferences("root_preferences", Activity.MODE_PRIVATE)
+
+ if (navigationView is NavigationBarView){
+ window.decorView.setOnApplyWindowInsetsListener { view: View, windowInsets: WindowInsets? ->
+ val windowInsetsCompat = WindowInsetsCompat.toWindowInsetsCompat(
+ windowInsets!!, view
+ )
+ val isImeVisible = windowInsetsCompat.isVisible(WindowInsetsCompat.Type.ime())
+ navigationView.visibility =
+ if (isImeVisible) View.GONE else View.VISIBLE
+ view.onApplyWindowInsets(windowInsets)
+ }
+ }
+
+ val sharedPreferences = getSharedPreferences("root_preferences", Activity.MODE_PRIVATE)
val startDestination = sharedPreferences.getString("start_destination", "")
val graph = navHostFragment.navController.navInflater.inflate(R.navigation.nav_graph)
@@ -96,35 +105,58 @@ class MainActivity : AppCompatActivity() {
- navigationView.setupWithNavController(navController)
- navigationView.setOnItemReselectedListener {
- when (it.itemId) {
- R.id.homeFragment -> {
- (navHostFragment.childFragmentManager.primaryNavigationFragment!! as HomeFragment).scrollToTop()
- }
- R.id.historyFragment -> {
- val intent = Intent(context, DownloadQueueActivity::class.java)
- startActivity(intent)
- }
- R.id.moreFragment -> {
- //navController.navigate(R.id.settingsFragment)
- val intent = Intent(context, SettingsActivity::class.java)
- startActivity(intent)
+ if (navigationView is NavigationBarView){
+ (navigationView as NavigationBarView).setupWithNavController(navController)
+ (navigationView as NavigationBarView).setOnItemReselectedListener {
+ when (it.itemId) {
+ R.id.homeFragment -> {
+ (navHostFragment.childFragmentManager.primaryNavigationFragment!! as HomeFragment).scrollToTop()
+ }
+ R.id.historyFragment -> {
+ val intent = Intent(context, DownloadQueueActivity::class.java)
+ startActivity(intent)
+ }
+ R.id.moreFragment -> {
+ //navController.navigate(R.id.settingsFragment)
+ val intent = Intent(context, SettingsActivity::class.java)
+ startActivity(intent)
+ }
}
}
}
+ if (navigationView is NavigationView){
+ (navigationView as NavigationView).setupWithNavController(navController)
+ //terminate button
+ (navigationView as NavigationView).menu.getItem(7).setOnMenuItemClickListener {
+ if (sharedPreferences.getBoolean("ask_terminate_app", true)){
+ var doNotShowAgain = false
+ val terminateDialog = MaterialAlertDialogBuilder(this)
+ terminateDialog.setTitle(getString(R.string.confirm_delete_history))
+ val dialogView = layoutInflater.inflate(R.layout.dialog_terminate_app, null)
+ val checkbox = dialogView.findViewById(R.id.doNotShowAgain)
+ terminateDialog.setView(dialogView)
+ checkbox.setOnCheckedChangeListener { compoundButton, b ->
+ doNotShowAgain = compoundButton.isChecked
+ }
+
+ terminateDialog.setNegativeButton(getString(R.string.cancel)) { dialogInterface: DialogInterface, _: Int -> dialogInterface.cancel() }
+ terminateDialog.setPositiveButton(getString(R.string.ok)) { _: DialogInterface?, _: Int ->
+ if (doNotShowAgain){
+ sharedPreferences.edit().putBoolean("ask_terminate_app", false).apply()
+ }
+ finishAndRemoveTask()
+ exitProcess(0)
+ }
+ terminateDialog.show()
+ }else{
+ finishAndRemoveTask()
+ exitProcess(0)
+ }
+ true
+ }
+ }
+
cookieViewModel.updateCookiesFile()
-
- //TODO PLAYLIST FORMAT UPDATING
-// val infoUtil = InfoUtil(context)
-// val list = arrayOf(
-// "https://www.youtube.com/watch?v=tYcqn48SMT8",
-// "https://www.youtube.com/watch?v=QNrNKPKe5oc"
-// )
-// infoUtil.getFormatsTest(list.toList()){
-// Log.e("gff", it.toString())
-// }
-
val intent = intent
handleIntents(intent)
}
@@ -138,11 +170,11 @@ class MainActivity : AppCompatActivity() {
}
fun disableBottomNavigation(){
- navigationView.menu.forEach { it.isEnabled = false }
+ (navigationView as NavigationView).menu.forEach { it.isEnabled = false }
}
fun enableBottomNavigation(){
- navigationView.menu.forEach { it.isEnabled = true }
+ (navigationView as NavigationView).menu.forEach { it.isEnabled = true }
}
override fun onResume() {
diff --git a/app/src/main/java/com/deniscerri/ytdlnis/ui/downloadcard/DownloadBottomSheetDialog.kt b/app/src/main/java/com/deniscerri/ytdlnis/ui/downloadcard/DownloadBottomSheetDialog.kt
index 87e16b90..2e46c02f 100644
--- a/app/src/main/java/com/deniscerri/ytdlnis/ui/downloadcard/DownloadBottomSheetDialog.kt
+++ b/app/src/main/java/com/deniscerri/ytdlnis/ui/downloadcard/DownloadBottomSheetDialog.kt
@@ -67,7 +67,7 @@ class DownloadBottomSheetDialog(private val resultItem: ResultItem, private val
behavior = BottomSheetBehavior.from(view.parent as View)
val displayMetrics = DisplayMetrics()
requireActivity().windowManager.defaultDisplay.getMetrics(displayMetrics)
- behavior.peekHeight = displayMetrics.heightPixels - 400
+ behavior.peekHeight = displayMetrics.heightPixels - 700
}
diff --git a/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/ActiveDownloadsFragment.kt b/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/ActiveDownloadsFragment.kt
index 31c54bc2..ffbf7994 100644
--- a/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/ActiveDownloadsFragment.kt
+++ b/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/ActiveDownloadsFragment.kt
@@ -66,11 +66,14 @@ class ActiveDownloadsFragment() : Fragment(), ActiveDownloadAdapter.OnItemClickL
activeRecyclerView = view.findViewById(R.id.download_recyclerview)
activeRecyclerView.adapter = activeDownloads
- val landScape = resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE && ! resources.getBoolean(R.bool.isTablet)
- if (landScape){
+ val landScape = resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE
+ val displayMetrics: DisplayMetrics = requireContext().resources.displayMetrics
+ val dpWidth: Float = displayMetrics.widthPixels / displayMetrics.density
+ if (dpWidth > 1200 && landScape){
+ activeRecyclerView.layoutManager = GridLayoutManager(context, 3)
+ }else if (landScape || dpWidth >= 700){
activeRecyclerView.layoutManager = GridLayoutManager(context, 2)
}
- if (resources.getBoolean(R.bool.isTablet)) activeRecyclerView.layoutManager = GridLayoutManager(context, 3)
downloadViewModel.activeDownloads.observe(viewLifecycleOwner) {
activeDownloads.submitList(it)
diff --git a/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/CancelledDownloadsFragment.kt b/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/CancelledDownloadsFragment.kt
index 0ed7479f..f4887209 100644
--- a/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/CancelledDownloadsFragment.kt
+++ b/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/CancelledDownloadsFragment.kt
@@ -6,6 +6,7 @@ import android.content.res.Configuration
import android.graphics.Canvas
import android.graphics.Color
import android.os.Bundle
+import android.util.DisplayMetrics
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
@@ -76,11 +77,14 @@ class CancelledDownloadsFragment : Fragment(), GenericDownloadAdapter.OnItemClic
val itemTouchHelper = ItemTouchHelper(simpleCallback)
itemTouchHelper.attachToRecyclerView(cancelledRecyclerView)
- val landScape = resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE && ! resources.getBoolean(R.bool.isTablet)
- if (landScape){
+ val landScape = resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE
+ val displayMetrics: DisplayMetrics = requireContext().resources.displayMetrics
+ val dpWidth: Float = displayMetrics.widthPixels / displayMetrics.density
+ if (dpWidth > 1200 && landScape){
+ cancelledRecyclerView.layoutManager = GridLayoutManager(context, 3)
+ }else if (landScape || dpWidth >= 700){
cancelledRecyclerView.layoutManager = GridLayoutManager(context, 2)
}
- if (resources.getBoolean(R.bool.isTablet)) cancelledRecyclerView.layoutManager = GridLayoutManager(context, 3)
downloadViewModel.cancelledDownloads.observe(viewLifecycleOwner) {
items = it.toMutableList()
diff --git a/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/ErroredDownloadsFragment.kt b/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/ErroredDownloadsFragment.kt
index 94123a36..e5c803d0 100644
--- a/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/ErroredDownloadsFragment.kt
+++ b/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/ErroredDownloadsFragment.kt
@@ -80,11 +80,14 @@ class ErroredDownloadsFragment : Fragment(), GenericDownloadAdapter.OnItemClickL
val itemTouchHelper = ItemTouchHelper(simpleCallback)
itemTouchHelper.attachToRecyclerView(erroredRecyclerView)
- val landScape = resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE && ! resources.getBoolean(R.bool.isTablet)
- if (landScape){
+ val landScape = resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE
+ val displayMetrics: DisplayMetrics = requireContext().resources.displayMetrics
+ val dpWidth: Float = displayMetrics.widthPixels / displayMetrics.density
+ if (dpWidth > 1200 && landScape){
+ erroredRecyclerView.layoutManager = GridLayoutManager(context, 3)
+ }else if (landScape || dpWidth >= 700){
erroredRecyclerView.layoutManager = GridLayoutManager(context, 2)
}
- if (resources.getBoolean(R.bool.isTablet)) erroredRecyclerView.layoutManager = GridLayoutManager(context, 3)
downloadViewModel.erroredDownloads.observe(viewLifecycleOwner) {
items = it.toMutableList()
diff --git a/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/HistoryFragment.kt b/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/HistoryFragment.kt
index 8dcc831b..957d5c73 100644
--- a/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/HistoryFragment.kt
+++ b/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/HistoryFragment.kt
@@ -113,13 +113,16 @@ class HistoryFragment : Fragment(), HistoryAdapter.OnItemClickListener{
requireActivity()
)
recyclerView = view.findViewById(R.id.recyclerviewhistorys)
- if (resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE && ! resources.getBoolean(R.bool.isTablet)){
- recyclerView?.layoutManager = GridLayoutManager(context, 2)
- }
- if (resources.getBoolean(R.bool.isTablet)) recyclerView?.layoutManager = GridLayoutManager(context, 3)
-
recyclerView?.adapter = historyAdapter
+ val landScape = resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE
+ val displayMetrics: DisplayMetrics = requireContext().resources.displayMetrics
+ val dpWidth: Float = displayMetrics.widthPixels / displayMetrics.density
+ if (dpWidth > 1200 && landScape){
+ recyclerView?.layoutManager = GridLayoutManager(context, 3)
+ }else if (landScape || dpWidth >= 700){
+ recyclerView?.layoutManager = GridLayoutManager(context, 2)
+ }
noResults?.visibility = GONE
diff --git a/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/QueuedDownloadsFragment.kt b/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/QueuedDownloadsFragment.kt
index 62d0f2cb..1d69809f 100644
--- a/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/QueuedDownloadsFragment.kt
+++ b/app/src/main/java/com/deniscerri/ytdlnis/ui/downloads/QueuedDownloadsFragment.kt
@@ -88,11 +88,14 @@ class QueuedDownloadsFragment : Fragment(), GenericDownloadAdapter.OnItemClickLi
val itemTouchHelper = ItemTouchHelper(simpleCallback)
itemTouchHelper.attachToRecyclerView(queuedRecyclerView)
- val landScape = resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE && ! resources.getBoolean(R.bool.isTablet)
- if (landScape){
+ val landScape = resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE
+ val displayMetrics: DisplayMetrics = requireContext().resources.displayMetrics
+ val dpWidth: Float = displayMetrics.widthPixels / displayMetrics.density
+ if (dpWidth > 1200 && landScape){
+ queuedRecyclerView.layoutManager = GridLayoutManager(context, 3)
+ }else if (landScape || dpWidth >= 700){
queuedRecyclerView.layoutManager = GridLayoutManager(context, 2)
}
- if (resources.getBoolean(R.bool.isTablet)) queuedRecyclerView.layoutManager = GridLayoutManager(context, 3)
downloadViewModel.queuedDownloads.observe(viewLifecycleOwner) {
items = it.toMutableList()
diff --git a/app/src/main/res/layout-sw800dp-land/activity_main.xml b/app/src/main/res/layout-sw800dp-land/activity_main.xml
new file mode 100644
index 00000000..0be84496
--- /dev/null
+++ b/app/src/main/res/layout-sw800dp-land/activity_main.xml
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout-sw800dp-land/fragment_home.xml b/app/src/main/res/layout-sw800dp-land/fragment_home.xml
new file mode 100644
index 00000000..36365c1c
--- /dev/null
+++ b/app/src/main/res/layout-sw800dp-land/fragment_home.xml
@@ -0,0 +1,279 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout-sw800dp/activity_main.xml b/app/src/main/res/layout-sw800dp/activity_main.xml
index 8e74f56b..22ec92b3 100644
--- a/app/src/main/res/layout-sw800dp/activity_main.xml
+++ b/app/src/main/res/layout-sw800dp/activity_main.xml
@@ -13,6 +13,7 @@
android:gravity="center"
android:text="Incognito"
android:textStyle="bold"
+ android:translationZ="20dp"
android:visibility="gone"
android:padding="5dp"
android:background="?colorPrimaryContainer"
@@ -20,29 +21,40 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
-
-
-
+ app:layout_constraintTop_toBottomOf="@+id/incognito_header">
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout-sw800dp/fragment_home.xml b/app/src/main/res/layout-sw800dp/fragment_home.xml
index 0729b4bc..86bf9a4b 100644
--- a/app/src/main/res/layout-sw800dp/fragment_home.xml
+++ b/app/src/main/res/layout-sw800dp/fragment_home.xml
@@ -153,7 +153,7 @@
android:layout_marginRight="10dp"
android:clipToPadding="false"
android:paddingBottom="100dp"
- app:spanCount="3"
+ app:spanCount="2"
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
/>
@@ -172,15 +172,74 @@
android:layout_margin="10dp"
android:orientation="vertical">
-
+
-
+
+
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/download_bottom_sheet.xml b/app/src/main/res/layout/download_bottom_sheet.xml
index 6ae34a10..57b2dfe6 100644
--- a/app/src/main/res/layout/download_bottom_sheet.xml
+++ b/app/src/main/res/layout/download_bottom_sheet.xml
@@ -109,9 +109,10 @@