fixed video type not changing container & added more details in history details card
This commit is contained in:
parent
cf8159dcc9
commit
44f33e1508
14 changed files with 211 additions and 117 deletions
|
|
@ -65,7 +65,7 @@
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</activity>
|
</activity>
|
||||||
<activity
|
<activity
|
||||||
android:name=".ui.downloadqueue.DownloadQueueActivity"
|
android:name=".ui.downloads.DownloadQueueActivity"
|
||||||
android:configChanges="layoutDirection|locale"
|
android:configChanges="layoutDirection|locale"
|
||||||
android:parentActivityName=".MainActivity"
|
android:parentActivityName=".MainActivity"
|
||||||
android:exported="true">
|
android:exported="true">
|
||||||
|
|
|
||||||
|
|
@ -24,8 +24,8 @@ import androidx.work.WorkManager
|
||||||
import com.deniscerri.ytdlnis.databinding.ActivityMainBinding
|
import com.deniscerri.ytdlnis.databinding.ActivityMainBinding
|
||||||
import com.deniscerri.ytdlnis.service.IDownloaderListener
|
import com.deniscerri.ytdlnis.service.IDownloaderListener
|
||||||
import com.deniscerri.ytdlnis.service.IDownloaderService
|
import com.deniscerri.ytdlnis.service.IDownloaderService
|
||||||
import com.deniscerri.ytdlnis.ui.downloadqueue.DownloadQueueActivity
|
import com.deniscerri.ytdlnis.ui.downloads.DownloadQueueActivity
|
||||||
import com.deniscerri.ytdlnis.ui.HistoryFragment
|
import com.deniscerri.ytdlnis.ui.downloads.HistoryFragment
|
||||||
import com.deniscerri.ytdlnis.ui.HomeFragment
|
import com.deniscerri.ytdlnis.ui.HomeFragment
|
||||||
import com.deniscerri.ytdlnis.ui.more.MoreFragment
|
import com.deniscerri.ytdlnis.ui.more.MoreFragment
|
||||||
import com.deniscerri.ytdlnis.ui.more.settings.SettingsActivity
|
import com.deniscerri.ytdlnis.ui.more.settings.SettingsActivity
|
||||||
|
|
|
||||||
|
|
@ -71,14 +71,6 @@ class GenericDownloadAdapter(onItemClickListener: OnItemClickListener, activity:
|
||||||
val type = card.findViewById<TextView>(R.id.type)
|
val type = card.findViewById<TextView>(R.id.type)
|
||||||
type!!.text = item.type.toString().uppercase()
|
type!!.text = item.type.toString().uppercase()
|
||||||
|
|
||||||
val formatNote = card.findViewById<TextView>(R.id.format_note)
|
|
||||||
if (item.type == DownloadViewModel.Type.command){
|
|
||||||
formatNote.visibility = View.GONE
|
|
||||||
}else{
|
|
||||||
formatNote.text = item.format.format_note
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
val codec = card.findViewById<TextView>(R.id.codec)
|
val codec = card.findViewById<TextView>(R.id.codec)
|
||||||
val codecText =
|
val codecText =
|
||||||
if (item.format.encoding != "") {
|
if (item.format.encoding != "") {
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import android.util.Log
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
|
import android.widget.AdapterView
|
||||||
import android.widget.ArrayAdapter
|
import android.widget.ArrayAdapter
|
||||||
import android.widget.AutoCompleteTextView
|
import android.widget.AutoCompleteTextView
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
|
|
@ -135,6 +136,12 @@ class DownloadVideoFragment(private val resultItem: ResultItem) : Fragment() {
|
||||||
containers
|
containers
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
(container!!.editText as AutoCompleteTextView?)!!.onItemClickListener =
|
||||||
|
AdapterView.OnItemClickListener { _: AdapterView<*>?, _: View?, index: Int, _: Long ->
|
||||||
|
downloadItem.format.container = containers[index]
|
||||||
|
}
|
||||||
|
|
||||||
val selectedContainer: String = downloadItem.format.container
|
val selectedContainer: String = downloadItem.format.container
|
||||||
containerAutoCompleteTextView!!.setText(selectedContainer, false)
|
containerAutoCompleteTextView!!.setText(selectedContainer, false)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.deniscerri.ytdlnis.ui.downloadqueue
|
package com.deniscerri.ytdlnis.ui.downloads
|
||||||
|
|
||||||
import android.app.Activity
|
import android.app.Activity
|
||||||
import android.content.res.Configuration
|
import android.content.res.Configuration
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.deniscerri.ytdlnis.ui.downloadqueue
|
package com.deniscerri.ytdlnis.ui.downloads
|
||||||
|
|
||||||
import android.app.Activity
|
import android.app.Activity
|
||||||
import android.content.DialogInterface
|
import android.content.DialogInterface
|
||||||
|
|
@ -8,7 +8,6 @@ import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.view.Window
|
import android.view.Window
|
||||||
import android.widget.AdapterView.OnItemClickListener
|
|
||||||
import android.widget.Button
|
import android.widget.Button
|
||||||
import android.widget.LinearLayout
|
import android.widget.LinearLayout
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
|
|
@ -27,9 +26,7 @@ import com.deniscerri.ytdlnis.util.FileUtil
|
||||||
import com.deniscerri.ytdlnis.util.UiUtil
|
import com.deniscerri.ytdlnis.util.UiUtil
|
||||||
import com.google.android.material.bottomsheet.BottomSheetDialog
|
import com.google.android.material.bottomsheet.BottomSheetDialog
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import org.w3c.dom.Text
|
|
||||||
import java.sql.Date
|
import java.sql.Date
|
||||||
import java.sql.Timestamp
|
|
||||||
import java.text.DateFormat
|
import java.text.DateFormat
|
||||||
import java.text.SimpleDateFormat
|
import java.text.SimpleDateFormat
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
@ -1,14 +1,9 @@
|
||||||
package com.deniscerri.ytdlnis.ui.downloadqueue
|
package com.deniscerri.ytdlnis.ui.downloads
|
||||||
|
|
||||||
import android.util.Log
|
|
||||||
import androidx.annotation.NonNull
|
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.fragment.app.FragmentManager
|
import androidx.fragment.app.FragmentManager
|
||||||
import androidx.lifecycle.Lifecycle
|
import androidx.lifecycle.Lifecycle
|
||||||
import androidx.viewpager2.adapter.FragmentStateAdapter
|
import androidx.viewpager2.adapter.FragmentStateAdapter
|
||||||
import com.deniscerri.ytdlnis.database.models.DownloadItem
|
|
||||||
import com.deniscerri.ytdlnis.database.models.ResultItem
|
|
||||||
import com.google.gson.Gson
|
|
||||||
|
|
||||||
class DownloadListFragmentAdapter (
|
class DownloadListFragmentAdapter (
|
||||||
fragmentManager : FragmentManager,
|
fragmentManager : FragmentManager,
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.deniscerri.ytdlnis.ui.downloadqueue
|
package com.deniscerri.ytdlnis.ui.downloads
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.deniscerri.ytdlnis.ui.downloadqueue
|
package com.deniscerri.ytdlnis.ui.downloads
|
||||||
|
|
||||||
import android.app.Activity
|
import android.app.Activity
|
||||||
import android.content.DialogInterface
|
import android.content.DialogInterface
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.deniscerri.ytdlnis.ui
|
package com.deniscerri.ytdlnis.ui.downloads
|
||||||
|
|
||||||
import android.app.Activity
|
import android.app.Activity
|
||||||
import android.content.*
|
import android.content.*
|
||||||
|
|
@ -378,31 +378,61 @@ class HistoryFragment : Fragment(), HistoryAdapter.OnItemClickListener{
|
||||||
bottomSheet = BottomSheetDialog(fragmentContext!!)
|
bottomSheet = BottomSheetDialog(fragmentContext!!)
|
||||||
bottomSheet!!.requestWindowFeature(Window.FEATURE_NO_TITLE)
|
bottomSheet!!.requestWindowFeature(Window.FEATURE_NO_TITLE)
|
||||||
bottomSheet!!.setContentView(R.layout.history_item_details_bottom_sheet)
|
bottomSheet!!.setContentView(R.layout.history_item_details_bottom_sheet)
|
||||||
val video = findItem(itemID)
|
val item = findItem(itemID)
|
||||||
val title = bottomSheet!!.findViewById<TextView>(R.id.bottom_sheet_title)
|
val title = bottomSheet!!.findViewById<TextView>(R.id.bottom_sheet_title)
|
||||||
title!!.text = video!!.title
|
title!!.text = item!!.title
|
||||||
val author = bottomSheet!!.findViewById<TextView>(R.id.bottom_sheet_author)
|
val author = bottomSheet!!.findViewById<TextView>(R.id.bottom_sheet_author)
|
||||||
author!!.text = video.author
|
author!!.text = item.author
|
||||||
|
|
||||||
|
val type = bottomSheet!!.findViewById<TextView>(R.id.type)
|
||||||
|
val formatNote = bottomSheet!!.findViewById<TextView>(R.id.format_note)
|
||||||
|
val codec = bottomSheet!!.findViewById<TextView>(R.id.codec)
|
||||||
|
val fileSize = bottomSheet!!.findViewById<TextView>(R.id.file_size)
|
||||||
|
|
||||||
|
type!!.text = item.type.toString().uppercase()
|
||||||
|
|
||||||
|
if (item.format.format_note == "?") formatNote!!.visibility = View.GONE
|
||||||
|
else formatNote!!.text = item.format.format_note
|
||||||
|
|
||||||
|
val codecText =
|
||||||
|
if (item.format.encoding != "") {
|
||||||
|
item.format.encoding.uppercase()
|
||||||
|
}else if (item.format.vcodec != "none" && item.format.vcodec != ""){
|
||||||
|
item.format.vcodec.uppercase()
|
||||||
|
} else {
|
||||||
|
item.format.acodec.uppercase()
|
||||||
|
}
|
||||||
|
if (codecText == "" || codecText == "none"){
|
||||||
|
codec!!.visibility = View.GONE
|
||||||
|
}else{
|
||||||
|
codec!!.visibility = View.VISIBLE
|
||||||
|
codec.text = codecText
|
||||||
|
}
|
||||||
|
|
||||||
|
val fileSizeReadable = fileUtil!!.convertFileSize(item.format.filesize)
|
||||||
|
if (fileSizeReadable == "?") fileSize!!.visibility = View.GONE
|
||||||
|
else fileSize!!.text = fileSizeReadable
|
||||||
|
|
||||||
val link = bottomSheet!!.findViewById<Button>(R.id.bottom_sheet_link)
|
val link = bottomSheet!!.findViewById<Button>(R.id.bottom_sheet_link)
|
||||||
val url = video.url
|
val url = item.url
|
||||||
link!!.text = url
|
link!!.text = url
|
||||||
link.tag = itemID
|
link.tag = itemID
|
||||||
link.setOnClickListener{
|
link.setOnClickListener{
|
||||||
uiUtil!!.openLinkIntent(requireContext(), video.url, bottomSheet)
|
uiUtil!!.openLinkIntent(requireContext(), item.url, bottomSheet)
|
||||||
}
|
}
|
||||||
link.setOnLongClickListener{
|
link.setOnLongClickListener{
|
||||||
uiUtil!!.copyLinkToClipBoard(requireContext(), video.url, bottomSheet)
|
uiUtil!!.copyLinkToClipBoard(requireContext(), item.url, bottomSheet)
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
val remove = bottomSheet!!.findViewById<Button>(R.id.bottomsheet_remove_button)
|
val remove = bottomSheet!!.findViewById<Button>(R.id.bottomsheet_remove_button)
|
||||||
remove!!.tag = itemID
|
remove!!.tag = itemID
|
||||||
remove.setOnClickListener{
|
remove.setOnClickListener{
|
||||||
removeItem(video)
|
removeItem(item)
|
||||||
}
|
}
|
||||||
val openFile = bottomSheet!!.findViewById<Button>(R.id.bottomsheet_open_file_button)
|
val openFile = bottomSheet!!.findViewById<Button>(R.id.bottomsheet_open_file_button)
|
||||||
openFile!!.tag = itemID
|
openFile!!.tag = itemID
|
||||||
openFile.setOnClickListener{
|
openFile.setOnClickListener{
|
||||||
uiUtil!!.openFileIntent(requireContext(), video.downloadPath)
|
uiUtil!!.openFileIntent(requireContext(), item.downloadPath)
|
||||||
}
|
}
|
||||||
if (!isPresent) openFile.visibility = GONE
|
if (!isPresent) openFile.visibility = GONE
|
||||||
bottomSheet!!.show()
|
bottomSheet!!.show()
|
||||||
|
|
@ -1,11 +1,10 @@
|
||||||
package com.deniscerri.ytdlnis.ui.downloadqueue
|
package com.deniscerri.ytdlnis.ui.downloads
|
||||||
|
|
||||||
import android.app.Activity
|
import android.app.Activity
|
||||||
import android.content.res.Configuration
|
import android.content.res.Configuration
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.View.OnClickListener
|
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.view.Window
|
import android.view.Window
|
||||||
import android.widget.Button
|
import android.widget.Button
|
||||||
|
|
@ -36,81 +36,88 @@
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<LinearLayout
|
<HorizontalScrollView
|
||||||
android:id="@+id/linearLayout3"
|
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:scrollbars="none"
|
||||||
android:layout_gravity="bottom"
|
|
||||||
android:orientation="horizontal"
|
|
||||||
android:layout_marginStart="20dp"
|
android:layout_marginStart="20dp"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
android:layout_height="wrap_content">
|
||||||
app:layout_constraintTop_toBottomOf="@+id/url">
|
|
||||||
|
|
||||||
<TextView
|
<LinearLayout
|
||||||
android:id="@+id/type"
|
android:id="@+id/linearLayout3"
|
||||||
style="@style/Widget.Material3.FloatingActionButton.Large.Primary"
|
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginEnd="5dp"
|
android:layout_gravity="bottom"
|
||||||
android:background="?attr/colorAccent"
|
android:orientation="horizontal"
|
||||||
android:clickable="false"
|
|
||||||
android:gravity="center"
|
|
||||||
android:minWidth="30dp"
|
|
||||||
android:paddingHorizontal="10dp"
|
|
||||||
app:cornerRadius="10dp"
|
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent"/>
|
app:layout_constraintTop_toBottomOf="@+id/url">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/format_note"
|
android:id="@+id/type"
|
||||||
style="@style/Widget.Material3.FloatingActionButton.Large.Primary"
|
style="@style/Widget.Material3.FloatingActionButton.Large.Primary"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginEnd="5dp"
|
android:layout_marginEnd="5dp"
|
||||||
android:background="?attr/colorPrimary"
|
android:background="?attr/colorAccent"
|
||||||
android:clickable="false"
|
android:clickable="false"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:minWidth="30dp"
|
android:minWidth="30dp"
|
||||||
android:paddingHorizontal="10dp"
|
android:paddingHorizontal="10dp"
|
||||||
app:cornerRadius="10dp"
|
app:cornerRadius="10dp"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent"/>
|
app:layout_constraintTop_toTopOf="parent"/>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/codec"
|
android:id="@+id/format_note"
|
||||||
style="@style/Widget.Material3.FloatingActionButton.Large.Secondary"
|
style="@style/Widget.Material3.FloatingActionButton.Large.Primary"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginEnd="5dp"
|
android:layout_marginEnd="5dp"
|
||||||
android:background="?attr/colorSecondary"
|
android:background="?attr/colorPrimary"
|
||||||
android:clickable="false"
|
android:clickable="false"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:minWidth="30dp"
|
android:minWidth="30dp"
|
||||||
android:paddingHorizontal="10dp"
|
android:paddingHorizontal="10dp"
|
||||||
app:cornerRadius="10dp"
|
app:cornerRadius="10dp"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toTopOf="parent"/>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/file_size"
|
android:id="@+id/codec"
|
||||||
style="@style/Widget.Material3.FloatingActionButton.Large.Tertiary"
|
style="@style/Widget.Material3.FloatingActionButton.Large.Secondary"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginEnd="5dp"
|
android:layout_marginEnd="5dp"
|
||||||
android:background="?attr/colorSecondary"
|
android:background="?attr/colorSecondary"
|
||||||
android:clickable="false"
|
android:clickable="false"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:minWidth="30dp"
|
android:minWidth="30dp"
|
||||||
android:paddingHorizontal="10dp"
|
android:paddingHorizontal="10dp"
|
||||||
app:cornerRadius="10dp"
|
app:cornerRadius="10dp"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
</LinearLayout>
|
<TextView
|
||||||
|
android:id="@+id/file_size"
|
||||||
|
style="@style/Widget.Material3.FloatingActionButton.Large.Tertiary"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginEnd="5dp"
|
||||||
|
android:background="?attr/colorSecondary"
|
||||||
|
android:clickable="false"
|
||||||
|
android:gravity="center"
|
||||||
|
android:minWidth="30dp"
|
||||||
|
android:paddingHorizontal="10dp"
|
||||||
|
app:cornerRadius="10dp"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</HorizontalScrollView>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/scheduled_time_linear"
|
android:id="@+id/scheduled_time_linear"
|
||||||
|
|
|
||||||
|
|
@ -99,23 +99,6 @@
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent"/>
|
app:layout_constraintTop_toTopOf="parent"/>
|
||||||
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/format_note"
|
|
||||||
style="@style/Widget.Material3.FloatingActionButton.Large.Primary"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginEnd="5dp"
|
|
||||||
android:background="?attr/colorPrimary"
|
|
||||||
android:clickable="false"
|
|
||||||
android:gravity="center"
|
|
||||||
android:minWidth="30dp"
|
|
||||||
android:paddingHorizontal="10dp"
|
|
||||||
app:cornerRadius="10dp"
|
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toTopOf="parent"/>
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/codec"
|
android:id="@+id/codec"
|
||||||
style="@style/Widget.Material3.FloatingActionButton.Large.Secondary"
|
style="@style/Widget.Material3.FloatingActionButton.Large.Secondary"
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,90 @@
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
<HorizontalScrollView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:scrollbars="none"
|
||||||
|
android:layout_marginStart="20dp"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/linearLayout3"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="bottom"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/url">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/type"
|
||||||
|
style="@style/Widget.Material3.FloatingActionButton.Large.Primary"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginEnd="5dp"
|
||||||
|
android:background="?attr/colorAccent"
|
||||||
|
android:clickable="false"
|
||||||
|
android:gravity="center"
|
||||||
|
android:minWidth="30dp"
|
||||||
|
android:paddingHorizontal="10dp"
|
||||||
|
app:cornerRadius="10dp"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"/>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/format_note"
|
||||||
|
style="@style/Widget.Material3.FloatingActionButton.Large.Primary"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginEnd="5dp"
|
||||||
|
android:background="?attr/colorPrimary"
|
||||||
|
android:clickable="false"
|
||||||
|
android:gravity="center"
|
||||||
|
android:minWidth="30dp"
|
||||||
|
android:paddingHorizontal="10dp"
|
||||||
|
app:cornerRadius="10dp"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"/>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/codec"
|
||||||
|
style="@style/Widget.Material3.FloatingActionButton.Large.Secondary"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginEnd="5dp"
|
||||||
|
android:background="?attr/colorSecondary"
|
||||||
|
android:clickable="false"
|
||||||
|
android:gravity="center"
|
||||||
|
android:minWidth="30dp"
|
||||||
|
android:paddingHorizontal="10dp"
|
||||||
|
app:cornerRadius="10dp"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/file_size"
|
||||||
|
style="@style/Widget.Material3.FloatingActionButton.Large.Tertiary"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginEnd="5dp"
|
||||||
|
android:background="?attr/colorSecondary"
|
||||||
|
android:clickable="false"
|
||||||
|
android:gravity="center"
|
||||||
|
android:minWidth="30dp"
|
||||||
|
android:paddingHorizontal="10dp"
|
||||||
|
app:cornerRadius="10dp"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</HorizontalScrollView>
|
||||||
|
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
style="@style/Widget.Material3.Button.TextButton.Icon"
|
style="@style/Widget.Material3.Button.TextButton.Icon"
|
||||||
android:id="@+id/bottom_sheet_link"
|
android:id="@+id/bottom_sheet_link"
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue