fixed tablet ui
|
|
@ -61,6 +61,7 @@
|
||||||
<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/10.png" width="30%" />
|
<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/10.png" width="30%" />
|
||||||
<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/11.png" width="30%" />
|
<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/11.png" width="30%" />
|
||||||
<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/12.png" width="30%" />
|
<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/12.png" width="30%" />
|
||||||
|
<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/13.png" width="90%" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
## 💬 Contact
|
## 💬 Contact
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ import android.provider.Settings
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.WindowInsets
|
import android.view.WindowInsets
|
||||||
|
import android.widget.CheckBox
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
import androidx.core.app.ActivityCompat
|
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.deniscerri.ytdlnis.util.UpdateUtil
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import com.google.android.material.navigation.NavigationBarView
|
import com.google.android.material.navigation.NavigationBarView
|
||||||
|
import com.google.android.material.navigation.NavigationView
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import java.io.BufferedReader
|
import java.io.BufferedReader
|
||||||
|
|
@ -50,7 +52,7 @@ class MainActivity : AppCompatActivity() {
|
||||||
private lateinit var preferences: SharedPreferences
|
private lateinit var preferences: SharedPreferences
|
||||||
private lateinit var resultViewModel: ResultViewModel
|
private lateinit var resultViewModel: ResultViewModel
|
||||||
private lateinit var cookieViewModel: CookieViewModel
|
private lateinit var cookieViewModel: CookieViewModel
|
||||||
private lateinit var navigationView: NavigationBarView
|
private lateinit var navigationView: View
|
||||||
private lateinit var navHostFragment : NavHostFragment
|
private lateinit var navHostFragment : NavHostFragment
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -72,18 +74,25 @@ class MainActivity : AppCompatActivity() {
|
||||||
|
|
||||||
navHostFragment = supportFragmentManager.findFragmentById(R.id.frame_layout) as NavHostFragment
|
navHostFragment = supportFragmentManager.findFragmentById(R.id.frame_layout) as NavHostFragment
|
||||||
val navController = navHostFragment.findNavController()
|
val navController = navHostFragment.findNavController()
|
||||||
navigationView = findViewById(R.id.bottomNavigationView)
|
navigationView = try {
|
||||||
|
findViewById(R.id.bottomNavigationView)
|
||||||
window.decorView.setOnApplyWindowInsetsListener { view: View, windowInsets: WindowInsets? ->
|
}catch (e: Exception){
|
||||||
val windowInsetsCompat = WindowInsetsCompat.toWindowInsetsCompat(
|
findViewById<NavigationView>(R.id.navigationView)
|
||||||
windowInsets!!, view
|
|
||||||
)
|
|
||||||
val isImeVisible = windowInsetsCompat.isVisible(WindowInsetsCompat.Type.ime())
|
|
||||||
navigationView.visibility =
|
|
||||||
if (isImeVisible) View.GONE else View.VISIBLE
|
|
||||||
view.onApplyWindowInsets(windowInsets)
|
|
||||||
}
|
}
|
||||||
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 startDestination = sharedPreferences.getString("start_destination", "")
|
||||||
val graph = navHostFragment.navController.navInflater.inflate(R.navigation.nav_graph)
|
val graph = navHostFragment.navController.navInflater.inflate(R.navigation.nav_graph)
|
||||||
|
|
@ -96,35 +105,58 @@ class MainActivity : AppCompatActivity() {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
navigationView.setupWithNavController(navController)
|
if (navigationView is NavigationBarView){
|
||||||
navigationView.setOnItemReselectedListener {
|
(navigationView as NavigationBarView).setupWithNavController(navController)
|
||||||
when (it.itemId) {
|
(navigationView as NavigationBarView).setOnItemReselectedListener {
|
||||||
R.id.homeFragment -> {
|
when (it.itemId) {
|
||||||
(navHostFragment.childFragmentManager.primaryNavigationFragment!! as HomeFragment).scrollToTop()
|
R.id.homeFragment -> {
|
||||||
}
|
(navHostFragment.childFragmentManager.primaryNavigationFragment!! as HomeFragment).scrollToTop()
|
||||||
R.id.historyFragment -> {
|
}
|
||||||
val intent = Intent(context, DownloadQueueActivity::class.java)
|
R.id.historyFragment -> {
|
||||||
startActivity(intent)
|
val intent = Intent(context, DownloadQueueActivity::class.java)
|
||||||
}
|
startActivity(intent)
|
||||||
R.id.moreFragment -> {
|
}
|
||||||
//navController.navigate(R.id.settingsFragment)
|
R.id.moreFragment -> {
|
||||||
val intent = Intent(context, SettingsActivity::class.java)
|
//navController.navigate(R.id.settingsFragment)
|
||||||
startActivity(intent)
|
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<CheckBox>(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()
|
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
|
val intent = intent
|
||||||
handleIntents(intent)
|
handleIntents(intent)
|
||||||
}
|
}
|
||||||
|
|
@ -138,11 +170,11 @@ class MainActivity : AppCompatActivity() {
|
||||||
}
|
}
|
||||||
|
|
||||||
fun disableBottomNavigation(){
|
fun disableBottomNavigation(){
|
||||||
navigationView.menu.forEach { it.isEnabled = false }
|
(navigationView as NavigationView).menu.forEach { it.isEnabled = false }
|
||||||
}
|
}
|
||||||
|
|
||||||
fun enableBottomNavigation(){
|
fun enableBottomNavigation(){
|
||||||
navigationView.menu.forEach { it.isEnabled = true }
|
(navigationView as NavigationView).menu.forEach { it.isEnabled = true }
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onResume() {
|
override fun onResume() {
|
||||||
|
|
|
||||||
|
|
@ -67,7 +67,7 @@ class DownloadBottomSheetDialog(private val resultItem: ResultItem, private val
|
||||||
behavior = BottomSheetBehavior.from(view.parent as View)
|
behavior = BottomSheetBehavior.from(view.parent as View)
|
||||||
val displayMetrics = DisplayMetrics()
|
val displayMetrics = DisplayMetrics()
|
||||||
requireActivity().windowManager.defaultDisplay.getMetrics(displayMetrics)
|
requireActivity().windowManager.defaultDisplay.getMetrics(displayMetrics)
|
||||||
behavior.peekHeight = displayMetrics.heightPixels - 400
|
behavior.peekHeight = displayMetrics.heightPixels - 700
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -66,11 +66,14 @@ class ActiveDownloadsFragment() : Fragment(), ActiveDownloadAdapter.OnItemClickL
|
||||||
activeRecyclerView = view.findViewById(R.id.download_recyclerview)
|
activeRecyclerView = view.findViewById(R.id.download_recyclerview)
|
||||||
activeRecyclerView.adapter = activeDownloads
|
activeRecyclerView.adapter = activeDownloads
|
||||||
|
|
||||||
val landScape = resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE && ! resources.getBoolean(R.bool.isTablet)
|
val landScape = resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE
|
||||||
if (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)
|
activeRecyclerView.layoutManager = GridLayoutManager(context, 2)
|
||||||
}
|
}
|
||||||
if (resources.getBoolean(R.bool.isTablet)) activeRecyclerView.layoutManager = GridLayoutManager(context, 3)
|
|
||||||
|
|
||||||
downloadViewModel.activeDownloads.observe(viewLifecycleOwner) {
|
downloadViewModel.activeDownloads.observe(viewLifecycleOwner) {
|
||||||
activeDownloads.submitList(it)
|
activeDownloads.submitList(it)
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import android.content.res.Configuration
|
||||||
import android.graphics.Canvas
|
import android.graphics.Canvas
|
||||||
import android.graphics.Color
|
import android.graphics.Color
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
import android.util.DisplayMetrics
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
|
|
@ -76,11 +77,14 @@ class CancelledDownloadsFragment : Fragment(), GenericDownloadAdapter.OnItemClic
|
||||||
val itemTouchHelper = ItemTouchHelper(simpleCallback)
|
val itemTouchHelper = ItemTouchHelper(simpleCallback)
|
||||||
itemTouchHelper.attachToRecyclerView(cancelledRecyclerView)
|
itemTouchHelper.attachToRecyclerView(cancelledRecyclerView)
|
||||||
|
|
||||||
val landScape = resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE && ! resources.getBoolean(R.bool.isTablet)
|
val landScape = resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE
|
||||||
if (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)
|
cancelledRecyclerView.layoutManager = GridLayoutManager(context, 2)
|
||||||
}
|
}
|
||||||
if (resources.getBoolean(R.bool.isTablet)) cancelledRecyclerView.layoutManager = GridLayoutManager(context, 3)
|
|
||||||
|
|
||||||
downloadViewModel.cancelledDownloads.observe(viewLifecycleOwner) {
|
downloadViewModel.cancelledDownloads.observe(viewLifecycleOwner) {
|
||||||
items = it.toMutableList()
|
items = it.toMutableList()
|
||||||
|
|
|
||||||
|
|
@ -80,11 +80,14 @@ class ErroredDownloadsFragment : Fragment(), GenericDownloadAdapter.OnItemClickL
|
||||||
val itemTouchHelper = ItemTouchHelper(simpleCallback)
|
val itemTouchHelper = ItemTouchHelper(simpleCallback)
|
||||||
itemTouchHelper.attachToRecyclerView(erroredRecyclerView)
|
itemTouchHelper.attachToRecyclerView(erroredRecyclerView)
|
||||||
|
|
||||||
val landScape = resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE && ! resources.getBoolean(R.bool.isTablet)
|
val landScape = resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE
|
||||||
if (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)
|
erroredRecyclerView.layoutManager = GridLayoutManager(context, 2)
|
||||||
}
|
}
|
||||||
if (resources.getBoolean(R.bool.isTablet)) erroredRecyclerView.layoutManager = GridLayoutManager(context, 3)
|
|
||||||
|
|
||||||
downloadViewModel.erroredDownloads.observe(viewLifecycleOwner) {
|
downloadViewModel.erroredDownloads.observe(viewLifecycleOwner) {
|
||||||
items = it.toMutableList()
|
items = it.toMutableList()
|
||||||
|
|
|
||||||
|
|
@ -113,13 +113,16 @@ class HistoryFragment : Fragment(), HistoryAdapter.OnItemClickListener{
|
||||||
requireActivity()
|
requireActivity()
|
||||||
)
|
)
|
||||||
recyclerView = view.findViewById(R.id.recyclerviewhistorys)
|
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
|
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
|
noResults?.visibility = GONE
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -88,11 +88,14 @@ class QueuedDownloadsFragment : Fragment(), GenericDownloadAdapter.OnItemClickLi
|
||||||
val itemTouchHelper = ItemTouchHelper(simpleCallback)
|
val itemTouchHelper = ItemTouchHelper(simpleCallback)
|
||||||
itemTouchHelper.attachToRecyclerView(queuedRecyclerView)
|
itemTouchHelper.attachToRecyclerView(queuedRecyclerView)
|
||||||
|
|
||||||
val landScape = resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE && ! resources.getBoolean(R.bool.isTablet)
|
val landScape = resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE
|
||||||
if (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)
|
queuedRecyclerView.layoutManager = GridLayoutManager(context, 2)
|
||||||
}
|
}
|
||||||
if (resources.getBoolean(R.bool.isTablet)) queuedRecyclerView.layoutManager = GridLayoutManager(context, 3)
|
|
||||||
|
|
||||||
downloadViewModel.queuedDownloads.observe(viewLifecycleOwner) {
|
downloadViewModel.queuedDownloads.observe(viewLifecycleOwner) {
|
||||||
items = it.toMutableList()
|
items = it.toMutableList()
|
||||||
|
|
|
||||||
61
app/src/main/res/layout-sw800dp-land/activity_main.xml
Normal file
|
|
@ -0,0 +1,61 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
tools:context=".MainActivity">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/incognito_header"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center"
|
||||||
|
android:text="Incognito"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:translationZ="20dp"
|
||||||
|
android:visibility="gone"
|
||||||
|
android:padding="5dp"
|
||||||
|
android:background="?colorPrimaryContainer"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="0dp"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/incognito_header">
|
||||||
|
|
||||||
|
<androidx.fragment.app.FragmentContainerView
|
||||||
|
android:id="@+id/frame_layout"
|
||||||
|
android:name="androidx.navigation.fragment.NavHostFragment"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="0dp"
|
||||||
|
app:defaultNavHost="true"
|
||||||
|
app:navGraph="@navigation/nav_graph"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toEndOf="@+id/navigationView"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<com.google.android.material.navigation.NavigationView
|
||||||
|
android:id="@+id/navigationView"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
app:labelVisibilityMode="unlabeled"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
app:headerLayout="@layout/header_navigation_drawer"
|
||||||
|
app:layout_constraintHorizontal_bias="0.0"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:menu="@menu/nav_menu_largescreen" />
|
||||||
|
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
279
app/src/main/res/layout-sw800dp-land/fragment_home.xml
Normal file
|
|
@ -0,0 +1,279 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<androidx.coordinatorlayout.widget.CoordinatorLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
android:id="@+id/homecoordinator"
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
|
||||||
|
<com.google.android.material.search.SearchView
|
||||||
|
android:id="@+id/search_view"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:hint="@string/search_hint"
|
||||||
|
app:layout_anchor="@id/search_bar">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<ScrollView
|
||||||
|
android:id="@+id/search_history_scroll_view"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
android:id="@+id/queries_constraint"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<com.google.android.material.chip.ChipGroup
|
||||||
|
android:id="@+id/queries"
|
||||||
|
android:layout_margin="10dp"
|
||||||
|
app:chipSpacingVertical="-10dp"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
app:layout_constraintHorizontal_bias="0.0"
|
||||||
|
app:layout_constraintEnd_toStartOf="@+id/init_search_query"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
app:singleLine="false" />
|
||||||
|
|
||||||
|
<com.google.android.material.button.MaterialButton
|
||||||
|
android:id="@+id/init_search_query"
|
||||||
|
style="?attr/materialIconButtonStyle"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_margin="10dp"
|
||||||
|
app:iconSize="20dp"
|
||||||
|
app:cornerRadius="10dp"
|
||||||
|
app:icon="@drawable/ic_search"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
|
<include
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginBottom="-10dp"
|
||||||
|
android:visibility="gone"
|
||||||
|
android:id="@+id/link_you_copied"
|
||||||
|
layout="@layout/search_suggestion_item"
|
||||||
|
/>
|
||||||
|
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/search_history_linear_layout"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</ScrollView>
|
||||||
|
|
||||||
|
<ScrollView
|
||||||
|
android:id="@+id/search_suggestions_scroll_view"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/search_suggestions_linear_layout"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
</ScrollView>
|
||||||
|
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</com.google.android.material.search.SearchView>
|
||||||
|
|
||||||
|
<com.google.android.material.appbar.AppBarLayout
|
||||||
|
android:id="@+id/home_appbarlayout"
|
||||||
|
app:liftOnScroll="true"
|
||||||
|
android:background="@null"
|
||||||
|
android:elevation="0dp"
|
||||||
|
app:elevation="0dp"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<com.google.android.material.search.SearchBar
|
||||||
|
android:id="@+id/search_bar"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center_horizontal"
|
||||||
|
android:layout_gravity="end"
|
||||||
|
app:layout_scrollFlags="scroll|enterAlways"
|
||||||
|
android:hint="@string/search_hint"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintHorizontal_bias="1.0"
|
||||||
|
app:layout_constraintStart_toEndOf="@+id/home_toolbar"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
app:menu="@menu/main_menu" />
|
||||||
|
|
||||||
|
</com.google.android.material.appbar.AppBarLayout>
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
app:layout_behavior="@string/appbar_scrolling_view_behavior"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:id="@+id/recyclerViewHome"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:scrollbars="vertical"
|
||||||
|
android:layout_marginLeft="10dp"
|
||||||
|
android:layout_marginRight="10dp"
|
||||||
|
android:clipToPadding="false"
|
||||||
|
android:paddingBottom="100dp"
|
||||||
|
app:spanCount="3"
|
||||||
|
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
|
||||||
|
/>
|
||||||
|
|
||||||
|
|
||||||
|
<com.facebook.shimmer.ShimmerFrameLayout
|
||||||
|
app:layout_behavior="@string/appbar_scrolling_view_behavior"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:id="@+id/shimmer_results_framelayout"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/shimmer_linear_layout"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_margin="10dp"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:weightSum="3"
|
||||||
|
android:layout_height="200dp">
|
||||||
|
|
||||||
|
<include
|
||||||
|
android:layout_weight="1"
|
||||||
|
layout="@layout/result_card_shimmer"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_width="0dp" />
|
||||||
|
<include
|
||||||
|
android:layout_weight="1"
|
||||||
|
layout="@layout/result_card_shimmer"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_width="0dp" />
|
||||||
|
<include
|
||||||
|
android:layout_weight="1"
|
||||||
|
layout="@layout/result_card_shimmer"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_width="0dp" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:weightSum="3"
|
||||||
|
android:layout_height="200dp">
|
||||||
|
|
||||||
|
<include
|
||||||
|
android:layout_weight="1"
|
||||||
|
layout="@layout/result_card_shimmer"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_width="0dp" />
|
||||||
|
<include
|
||||||
|
android:layout_weight="1"
|
||||||
|
layout="@layout/result_card_shimmer"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_width="0dp" />
|
||||||
|
<include
|
||||||
|
android:layout_weight="1"
|
||||||
|
layout="@layout/result_card_shimmer"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_width="0dp" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:weightSum="3"
|
||||||
|
android:layout_height="200dp">
|
||||||
|
|
||||||
|
<include
|
||||||
|
android:layout_weight="1"
|
||||||
|
layout="@layout/result_card_shimmer"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_width="0dp" />
|
||||||
|
<include
|
||||||
|
android:layout_weight="1"
|
||||||
|
layout="@layout/result_card_shimmer"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_width="0dp" />
|
||||||
|
<include
|
||||||
|
android:layout_weight="1"
|
||||||
|
layout="@layout/result_card_shimmer"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_width="0dp" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
|
</com.facebook.shimmer.ShimmerFrameLayout>
|
||||||
|
|
||||||
|
<androidx.coordinatorlayout.widget.CoordinatorLayout
|
||||||
|
android:id="@+id/home_fabs"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent" >
|
||||||
|
|
||||||
|
<androidx.coordinatorlayout.widget.CoordinatorLayout
|
||||||
|
android:id="@+id/download_all_coordinator"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:visibility="gone"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
<com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
|
||||||
|
android:id="@+id/download_all_fab"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_margin="16dp"
|
||||||
|
android:layout_gravity="bottom|end"
|
||||||
|
android:text="@string/download_all"
|
||||||
|
app:icon="@drawable/ic_down"/>
|
||||||
|
|
||||||
|
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||||
|
|
||||||
|
<androidx.coordinatorlayout.widget.CoordinatorLayout
|
||||||
|
android:id="@+id/download_selected_coordinator"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:visibility="gone"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
<com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
|
||||||
|
android:id="@+id/download_selected_fab"
|
||||||
|
app:elevation="0dp"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="bottom|end"
|
||||||
|
android:layout_margin="16dp"
|
||||||
|
app:icon="@drawable/ic_down"
|
||||||
|
android:text="@string/download"
|
||||||
|
app:srcCompat="@drawable/ic_music"/>
|
||||||
|
|
||||||
|
|
||||||
|
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||||
|
|
||||||
|
|
||||||
|
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||||
|
|
||||||
|
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||||
|
|
@ -13,6 +13,7 @@
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:text="Incognito"
|
android:text="Incognito"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
|
android:translationZ="20dp"
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
android:padding="5dp"
|
android:padding="5dp"
|
||||||
android:background="?colorPrimaryContainer"
|
android:background="?colorPrimaryContainer"
|
||||||
|
|
@ -20,29 +21,40 @@
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
<androidx.fragment.app.FragmentContainerView
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
android:id="@+id/frame_layout"
|
|
||||||
android:name="androidx.navigation.fragment.NavHostFragment"
|
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="0dp"
|
android:layout_height="0dp"
|
||||||
app:defaultNavHost="true"
|
|
||||||
app:navGraph="@navigation/nav_graph"
|
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toEndOf="@+id/bottomNavigationView"
|
|
||||||
app:layout_constraintTop_toBottomOf="@+id/incognito_header"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<com.google.android.material.navigationrail.NavigationRailView
|
|
||||||
android:id="@+id/bottomNavigationView"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
app:labelVisibilityMode="unlabeled"
|
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintHorizontal_bias="0.0"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:menu="@menu/bottom_nav_menu" />
|
app:layout_constraintTop_toBottomOf="@+id/incognito_header">
|
||||||
|
|
||||||
|
<androidx.fragment.app.FragmentContainerView
|
||||||
|
android:id="@+id/frame_layout"
|
||||||
|
android:name="androidx.navigation.fragment.NavHostFragment"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="0dp"
|
||||||
|
app:defaultNavHost="true"
|
||||||
|
app:navGraph="@navigation/nav_graph"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toEndOf="@+id/bottomNavigationView"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<com.google.android.material.navigationrail.NavigationRailView
|
||||||
|
android:id="@+id/bottomNavigationView"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
app:labelVisibilityMode="unlabeled"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
app:layout_constraintHorizontal_bias="0.0"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:menu="@menu/bottom_nav_menu" />
|
||||||
|
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
@ -153,7 +153,7 @@
|
||||||
android:layout_marginRight="10dp"
|
android:layout_marginRight="10dp"
|
||||||
android:clipToPadding="false"
|
android:clipToPadding="false"
|
||||||
android:paddingBottom="100dp"
|
android:paddingBottom="100dp"
|
||||||
app:spanCount="3"
|
app:spanCount="2"
|
||||||
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
|
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
|
@ -172,15 +172,74 @@
|
||||||
android:layout_margin="10dp"
|
android:layout_margin="10dp"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<include layout="@layout/result_card_shimmer" />
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:weightSum="2"
|
||||||
|
android:layout_height="250dp">
|
||||||
|
|
||||||
<include layout="@layout/result_card_shimmer" />
|
<include
|
||||||
|
android:layout_weight="1"
|
||||||
|
layout="@layout/result_card_shimmer"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_width="0dp" />
|
||||||
|
<include
|
||||||
|
android:layout_weight="1"
|
||||||
|
layout="@layout/result_card_shimmer"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_width="0dp" />
|
||||||
|
<include
|
||||||
|
android:layout_weight="1"
|
||||||
|
layout="@layout/result_card_shimmer"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_width="0dp" />
|
||||||
|
|
||||||
<include layout="@layout/result_card_shimmer" />
|
</LinearLayout>
|
||||||
|
|
||||||
<include layout="@layout/result_card_shimmer" />
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:weightSum="2"
|
||||||
|
android:layout_height="250dp">
|
||||||
|
|
||||||
<include layout="@layout/result_card_shimmer" />
|
<include
|
||||||
|
android:layout_weight="1"
|
||||||
|
layout="@layout/result_card_shimmer"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_width="0dp" />
|
||||||
|
<include
|
||||||
|
android:layout_weight="1"
|
||||||
|
layout="@layout/result_card_shimmer"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_width="0dp" />
|
||||||
|
<include
|
||||||
|
android:layout_weight="1"
|
||||||
|
layout="@layout/result_card_shimmer"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_width="0dp" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:weightSum="2"
|
||||||
|
android:layout_height="250dp">
|
||||||
|
|
||||||
|
<include
|
||||||
|
android:layout_weight="1"
|
||||||
|
layout="@layout/result_card_shimmer"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_width="0dp" />
|
||||||
|
<include
|
||||||
|
android:layout_weight="1"
|
||||||
|
layout="@layout/result_card_shimmer"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_width="0dp" />
|
||||||
|
<include
|
||||||
|
android:layout_weight="1"
|
||||||
|
layout="@layout/result_card_shimmer"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_width="0dp" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
|
||||||
|
|
@ -109,9 +109,10 @@
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/bottom_sheet_link"
|
android:id="@+id/bottom_sheet_link"
|
||||||
style="@style/Widget.Material3.Button.TextButton.Icon"
|
style="@style/Widget.Material3.Button.TextButton.Icon"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_margin="10dp"
|
android:layout_margin="10dp"
|
||||||
|
android:textAlignment="textStart"
|
||||||
android:singleLine="true"
|
android:singleLine="true"
|
||||||
android:text="@string/app_name"
|
android:text="@string/app_name"
|
||||||
android:textSize="15sp"
|
android:textSize="15sp"
|
||||||
|
|
|
||||||
33
app/src/main/res/layout/header_navigation_drawer.xml
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
<LinearLayout android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:layout_marginStart="15dp"
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
|
||||||
|
<com.google.android.material.button.MaterialButton
|
||||||
|
style="@style/Widget.Material3.Button.IconButton"
|
||||||
|
app:iconSize="50dp"
|
||||||
|
android:padding="0dp"
|
||||||
|
app:iconTint="@null"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
|
android:insetBottom="0dp"
|
||||||
|
android:insetLeft="0dp"
|
||||||
|
android:insetTop="0dp"
|
||||||
|
android:insetRight="0dp"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
app:icon="@drawable/ic_app_icon" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="20dp"
|
||||||
|
android:layout_marginBottom="20dp"
|
||||||
|
android:layout_marginStart="0dp"
|
||||||
|
android:textAppearance="?attr/textAppearanceHeadlineSmall"
|
||||||
|
android:textColor="?attr/colorOnSurface"
|
||||||
|
android:text="@string/app_name" />
|
||||||
|
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
@ -155,10 +155,11 @@
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/bottom_sheet_link"
|
android:id="@+id/bottom_sheet_link"
|
||||||
style="@style/Widget.Material3.Button.TextButton.Icon"
|
style="@style/Widget.Material3.Button.TextButton.Icon"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginHorizontal="10dp"
|
android:layout_marginHorizontal="10dp"
|
||||||
android:text="@string/app_name"
|
android:text="@string/app_name"
|
||||||
|
android:textAlignment="textStart"
|
||||||
android:textSize="15sp"
|
android:textSize="15sp"
|
||||||
app:icon="@drawable/ic_link" />
|
app:icon="@drawable/ic_link" />
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -85,7 +85,6 @@
|
||||||
android:maxLines="1"
|
android:maxLines="1"
|
||||||
android:ellipsize="end"
|
android:ellipsize="end"
|
||||||
android:paddingEnd="10dp"
|
android:paddingEnd="10dp"
|
||||||
android:paddingBottom="5dp"
|
|
||||||
android:shadowColor="@color/black"
|
android:shadowColor="@color/black"
|
||||||
android:shadowDx="4"
|
android:shadowDx="4"
|
||||||
android:shadowDy="4"
|
android:shadowDy="4"
|
||||||
|
|
|
||||||
40
app/src/main/res/menu/nav_menu_largescreen.xml
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<menu xmlns:android="http://schemas.android.com/apk/res/android" android:theme="@style/AppDefaultTheme">
|
||||||
|
|
||||||
|
<item android:title="@string/home"
|
||||||
|
android:icon="@drawable/ic_home"
|
||||||
|
android:checkable="true"
|
||||||
|
android:id="@+id/homeFragment"/>
|
||||||
|
<item android:title="@string/downloads"
|
||||||
|
android:icon="@drawable/ic_downloads"
|
||||||
|
android:checkable="true"
|
||||||
|
android:id="@+id/historyFragment"/>
|
||||||
|
<item android:title="@string/terminal"
|
||||||
|
android:icon="@drawable/ic_terminal"
|
||||||
|
android:checkable="true"
|
||||||
|
android:id="@+id/terminalActivity"/>
|
||||||
|
<item android:title="@string/logs"
|
||||||
|
android:icon="@drawable/ic_baseline_file_open_24"
|
||||||
|
android:checkable="true"
|
||||||
|
android:id="@+id/downloadLogListActivity"/>
|
||||||
|
<item android:title="@string/command_templates"
|
||||||
|
android:icon="@drawable/ic_baseline_keyboard_arrow_right_24"
|
||||||
|
android:checkable="true"
|
||||||
|
android:id="@+id/commandTemplatesActivity"/>
|
||||||
|
<item android:title="@string/download_queue"
|
||||||
|
android:icon="@drawable/baseline_downloading_24"
|
||||||
|
android:checkable="true"
|
||||||
|
android:id="@+id/downloadQueueActivity"/>
|
||||||
|
<item android:title="@string/cookies"
|
||||||
|
android:icon="@drawable/baseline_cookie_24"
|
||||||
|
android:checkable="true"
|
||||||
|
android:id="@+id/cookiesActivity"/>
|
||||||
|
<item android:title="@string/kill_app"
|
||||||
|
android:checkable="true"
|
||||||
|
android:icon="@drawable/ic_power"
|
||||||
|
android:id="@+id/terminate"/>
|
||||||
|
<item android:title="@string/settings"
|
||||||
|
android:checkable="true"
|
||||||
|
android:icon="@drawable/ic_settings"
|
||||||
|
android:id="@+id/settingsActivity"/>
|
||||||
|
</menu>
|
||||||
|
|
@ -15,7 +15,11 @@
|
||||||
android:id="@+id/historyFragment"
|
android:id="@+id/historyFragment"
|
||||||
android:name="com.deniscerri.ytdlnis.ui.downloads.HistoryFragment"
|
android:name="com.deniscerri.ytdlnis.ui.downloads.HistoryFragment"
|
||||||
android:label="@string/downloads"
|
android:label="@string/downloads"
|
||||||
tools:layout="@layout/fragment_history" />
|
tools:layout="@layout/fragment_history" >
|
||||||
|
<action
|
||||||
|
android:id="@+id/action_historyFragment_to_downloadQueueActivity"
|
||||||
|
app:destination="@id/downloadQueueActivity" />
|
||||||
|
</fragment>
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/moreFragment"
|
android:id="@+id/moreFragment"
|
||||||
android:name="com.deniscerri.ytdlnis.ui.more.MoreFragment"
|
android:name="com.deniscerri.ytdlnis.ui.more.MoreFragment"
|
||||||
|
|
@ -29,4 +33,31 @@
|
||||||
android:id="@+id/settingsFragment"
|
android:id="@+id/settingsFragment"
|
||||||
android:name="com.deniscerri.ytdlnis.ui.more.settings.SettingsFragment"
|
android:name="com.deniscerri.ytdlnis.ui.more.settings.SettingsFragment"
|
||||||
android:label="SettingsFragment" />
|
android:label="SettingsFragment" />
|
||||||
|
<activity
|
||||||
|
android:id="@+id/downloadQueueActivity"
|
||||||
|
android:name="com.deniscerri.ytdlnis.ui.downloads.DownloadQueueActivity"
|
||||||
|
android:label="DownloadQueueActivity"
|
||||||
|
tools:layout="@layout/activity_download_queue" />
|
||||||
|
<activity
|
||||||
|
android:id="@+id/downloadLogListActivity"
|
||||||
|
android:name="com.deniscerri.ytdlnis.ui.more.downloadLogs.DownloadLogListActivity"
|
||||||
|
android:label="DownloadLogListActivity" />
|
||||||
|
<activity
|
||||||
|
android:id="@+id/commandTemplatesActivity"
|
||||||
|
android:name="com.deniscerri.ytdlnis.ui.more.CommandTemplatesActivity"
|
||||||
|
android:label="CommandTemplatesActivity" />
|
||||||
|
<activity
|
||||||
|
android:id="@+id/cookiesActivity"
|
||||||
|
android:name="com.deniscerri.ytdlnis.ui.more.CookiesActivity"
|
||||||
|
android:label="CookiesActivity" />
|
||||||
|
<activity
|
||||||
|
android:id="@+id/settingsActivity"
|
||||||
|
android:name="com.deniscerri.ytdlnis.ui.more.settings.SettingsActivity"
|
||||||
|
android:label="activity_settings"
|
||||||
|
tools:layout="@layout/activity_settings" />
|
||||||
|
<activity
|
||||||
|
android:id="@+id/terminalActivity"
|
||||||
|
android:name="com.deniscerri.ytdlnis.ui.more.TerminalActivity"
|
||||||
|
android:label="activity_terminal"
|
||||||
|
tools:layout="@layout/activity_terminal" />
|
||||||
</navigation>
|
</navigation>
|
||||||
|
Before Width: | Height: | Size: 118 KiB After Width: | Height: | Size: 697 KiB |
|
Before Width: | Height: | Size: 309 KiB After Width: | Height: | Size: 2.5 MiB |
|
Before Width: | Height: | Size: 92 KiB After Width: | Height: | Size: 812 KiB |
|
Before Width: | Height: | Size: 294 KiB After Width: | Height: | Size: 986 KiB |
|
Before Width: | Height: | Size: 90 KiB After Width: | Height: | Size: 163 KiB |
|
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 156 KiB |
|
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 697 KiB |
|
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 170 KiB |
|
Before Width: | Height: | Size: 270 KiB After Width: | Height: | Size: 2 MiB |
|
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 150 KiB |
BIN
fastlane/metadata/android/en-US/images/phoneScreenshots/13.png
Normal file
|
After Width: | Height: | Size: 2.3 MiB |