change animations for bottom sheet
This commit is contained in:
parent
d860511ce9
commit
2bfb998e4a
18 changed files with 378 additions and 199 deletions
|
|
@ -133,7 +133,7 @@
|
||||||
<option name="myDefaultNotNull" value="android.support.annotation.NonNull" />
|
<option name="myDefaultNotNull" value="android.support.annotation.NonNull" />
|
||||||
<option name="myNullables">
|
<option name="myNullables">
|
||||||
<value>
|
<value>
|
||||||
<list size="12">
|
<list size="13">
|
||||||
<item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.Nullable" />
|
<item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.Nullable" />
|
||||||
<item index="1" class="java.lang.String" itemvalue="javax.annotation.Nullable" />
|
<item index="1" class="java.lang.String" itemvalue="javax.annotation.Nullable" />
|
||||||
<item index="2" class="java.lang.String" itemvalue="javax.annotation.CheckForNull" />
|
<item index="2" class="java.lang.String" itemvalue="javax.annotation.CheckForNull" />
|
||||||
|
|
@ -146,12 +146,13 @@
|
||||||
<item index="9" class="java.lang.String" itemvalue="androidx.annotation.RecentlyNullable" />
|
<item index="9" class="java.lang.String" itemvalue="androidx.annotation.RecentlyNullable" />
|
||||||
<item index="10" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.qual.Nullable" />
|
<item index="10" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.qual.Nullable" />
|
||||||
<item index="11" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NullableType" />
|
<item index="11" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NullableType" />
|
||||||
|
<item index="12" class="java.lang.String" itemvalue="org.jspecify.nullness.Nullable" />
|
||||||
</list>
|
</list>
|
||||||
</value>
|
</value>
|
||||||
</option>
|
</option>
|
||||||
<option name="myNotNulls">
|
<option name="myNotNulls">
|
||||||
<value>
|
<value>
|
||||||
<list size="11">
|
<list size="12">
|
||||||
<item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.NotNull" />
|
<item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.NotNull" />
|
||||||
<item index="1" class="java.lang.String" itemvalue="javax.annotation.Nonnull" />
|
<item index="1" class="java.lang.String" itemvalue="javax.annotation.Nonnull" />
|
||||||
<item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.NonNull" />
|
<item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.NonNull" />
|
||||||
|
|
@ -163,6 +164,7 @@
|
||||||
<item index="8" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NonNullType" />
|
<item index="8" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NonNullType" />
|
||||||
<item index="9" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NonNullDecl" />
|
<item index="9" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NonNullDecl" />
|
||||||
<item index="10" class="java.lang.String" itemvalue="org.eclipse.jdt.annotation.NonNull" />
|
<item index="10" class="java.lang.String" itemvalue="org.eclipse.jdt.annotation.NonNull" />
|
||||||
|
<item index="11" class="java.lang.String" itemvalue="org.jspecify.nullness.NonNull" />
|
||||||
</list>
|
</list>
|
||||||
</value>
|
</value>
|
||||||
</option>
|
</option>
|
||||||
|
|
|
||||||
|
|
@ -72,9 +72,8 @@ android {
|
||||||
signingConfig signingConfigs.debug
|
signingConfig signingConfigs.debug
|
||||||
}
|
}
|
||||||
|
|
||||||
benchmark {
|
dev {
|
||||||
initWith buildTypes.release
|
initWith buildTypes.release
|
||||||
proguardFiles 'baseline-profiles-rules.pro'
|
|
||||||
}
|
}
|
||||||
|
|
||||||
debug {
|
debug {
|
||||||
|
|
@ -169,4 +168,7 @@ dependencies {
|
||||||
implementation "com.squareup.okhttp3:logging-interceptor:4.7.2"
|
implementation "com.squareup.okhttp3:logging-interceptor:4.7.2"
|
||||||
|
|
||||||
implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.4.1"
|
implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.4.1"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -32,9 +32,6 @@
|
||||||
<action android:name="android.intent.action.MAIN" />
|
<action android:name="android.intent.action.MAIN" />
|
||||||
<category android:name="android.intent.category.LAUNCHER" />
|
<category android:name="android.intent.category.LAUNCHER" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</activity>
|
|
||||||
<activity android:name=".receiver.ShareActivity"
|
|
||||||
android:exported="true">
|
|
||||||
|
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.SEND" />
|
<action android:name="android.intent.action.SEND" />
|
||||||
|
|
@ -47,6 +44,21 @@
|
||||||
<data android:mimeType="application/txt" />
|
<data android:mimeType="application/txt" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
|
|
||||||
|
</activity>
|
||||||
|
<activity android:name=".receiver.ShareActivity"
|
||||||
|
android:exported="true">
|
||||||
|
|
||||||
|
<!-- <intent-filter>-->
|
||||||
|
<!-- <action android:name="android.intent.action.SEND" />-->
|
||||||
|
<!-- <category android:name="android.intent.category.DEFAULT" />-->
|
||||||
|
<!-- <data android:mimeType="text/plain" />-->
|
||||||
|
<!-- </intent-filter>-->
|
||||||
|
<!-- <intent-filter>-->
|
||||||
|
<!-- <action android:name="android.intent.action.SEND" />-->
|
||||||
|
<!-- <category android:name="android.intent.category.DEFAULT"/>-->
|
||||||
|
<!-- <data android:mimeType="application/txt" />-->
|
||||||
|
<!-- </intent-filter>-->
|
||||||
|
|
||||||
</activity>
|
</activity>
|
||||||
<activity
|
<activity
|
||||||
android:name=".ui.settings.SettingsActivity"
|
android:name=".ui.settings.SettingsActivity"
|
||||||
|
|
|
||||||
|
|
@ -1,30 +1,16 @@
|
||||||
package com.deniscerri.ytdlnis
|
package com.deniscerri.ytdlnis
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
|
||||||
import android.app.Application
|
import android.app.Application
|
||||||
import android.content.Context
|
|
||||||
import android.content.pm.PackageInfo
|
|
||||||
import android.content.pm.PackageManager
|
|
||||||
import android.os.Build
|
|
||||||
import android.util.Log
|
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.preference.PreferenceManager
|
import androidx.preference.PreferenceManager
|
||||||
import androidx.work.Configuration
|
import androidx.work.Configuration
|
||||||
import androidx.work.WorkManager
|
import androidx.work.WorkManager
|
||||||
import com.deniscerri.ytdlnis.util.NotificationUtil
|
import com.deniscerri.ytdlnis.util.NotificationUtil
|
||||||
import com.deniscerri.ytdlnis.util.UpdateUtil
|
|
||||||
import com.google.android.material.color.DynamicColors
|
import com.google.android.material.color.DynamicColors
|
||||||
import com.yausername.aria2c.Aria2c
|
import com.yausername.aria2c.Aria2c
|
||||||
import com.yausername.ffmpeg.FFmpeg
|
import com.yausername.ffmpeg.FFmpeg
|
||||||
import com.yausername.youtubedl_android.YoutubeDL
|
import com.yausername.youtubedl_android.YoutubeDL
|
||||||
import com.yausername.youtubedl_android.YoutubeDLException
|
import com.yausername.youtubedl_android.YoutubeDLException
|
||||||
import io.reactivex.Completable
|
|
||||||
import io.reactivex.android.schedulers.AndroidSchedulers
|
|
||||||
import io.reactivex.exceptions.UndeliverableException
|
|
||||||
import io.reactivex.observers.DisposableCompletableObserver
|
|
||||||
import io.reactivex.plugins.RxJavaPlugins
|
|
||||||
import io.reactivex.schedulers.Schedulers
|
|
||||||
import java.io.File
|
|
||||||
import java.util.concurrent.Executors
|
import java.util.concurrent.Executors
|
||||||
|
|
||||||
class App : Application() {
|
class App : Application() {
|
||||||
|
|
|
||||||
|
|
@ -235,8 +235,8 @@ class HistoryFragment : Fragment(), HistoryAdapter.OnItemClickListener{
|
||||||
sortSheet = BottomSheetDialog(requireContext())
|
sortSheet = BottomSheetDialog(requireContext())
|
||||||
sortSheet!!.requestWindowFeature(Window.FEATURE_NO_TITLE)
|
sortSheet!!.requestWindowFeature(Window.FEATURE_NO_TITLE)
|
||||||
sortSheet!!.setContentView(R.layout.history_sort_sheet)
|
sortSheet!!.setContentView(R.layout.history_sort_sheet)
|
||||||
val newest = sortSheet!!.findViewById<TextView>(R.id.newest)
|
val newest = sortSheet!!.findViewById<TextView>(R.id.date)
|
||||||
val oldest = sortSheet!!.findViewById<TextView>(R.id.oldest)
|
val oldest = sortSheet!!.findViewById<TextView>(R.id.title)
|
||||||
newest!!.setOnClickListener {
|
newest!!.setOnClickListener {
|
||||||
historyViewModel.setSorting(HistorySort.DESC)
|
historyViewModel.setSorting(HistorySort.DESC)
|
||||||
sortSheet!!.cancel()
|
sortSheet!!.cancel()
|
||||||
|
|
@ -245,7 +245,7 @@ class HistoryFragment : Fragment(), HistoryAdapter.OnItemClickListener{
|
||||||
historyViewModel.setSorting(HistorySort.ASC)
|
historyViewModel.setSorting(HistorySort.ASC)
|
||||||
sortSheet!!.cancel()
|
sortSheet!!.cancel()
|
||||||
}
|
}
|
||||||
val cancel = sortSheet!!.findViewById<TextView>(R.id.cancel)
|
val cancel = sortSheet!!.findViewById<TextView>(R.id.author)
|
||||||
cancel!!.setOnClickListener { sortSheet!!.cancel() }
|
cancel!!.setOnClickListener { sortSheet!!.cancel() }
|
||||||
sortSheet!!.show()
|
sortSheet!!.show()
|
||||||
sortSheet!!.window!!.setLayout(
|
sortSheet!!.window!!.setLayout(
|
||||||
|
|
|
||||||
|
|
@ -135,6 +135,8 @@ class HomeFragment : Fragment(), HomeAdapter.OnItemClickListener, View.OnClickLi
|
||||||
showSingleDownloadSheet(it[0], DownloadViewModel.Type.video)
|
showSingleDownloadSheet(it[0], DownloadViewModel.Type.video)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
downloadAllFabCoordinator!!.visibility = GONE
|
||||||
}
|
}
|
||||||
firstBoot = false
|
firstBoot = false
|
||||||
}
|
}
|
||||||
|
|
@ -169,6 +171,7 @@ class HomeFragment : Fragment(), HomeAdapter.OnItemClickListener, View.OnClickLi
|
||||||
inputQueriesLength = inputQueries!!.size
|
inputQueriesLength = inputQueries!!.size
|
||||||
Handler(Looper.getMainLooper()).post { scrollToTop() }
|
Handler(Looper.getMainLooper()).post { scrollToTop() }
|
||||||
val thread = Thread {
|
val thread = Thread {
|
||||||
|
resultViewModel.parseQuery(inputQueries!!.pop()!!, true)
|
||||||
while (!inputQueries!!.isEmpty()) {
|
while (!inputQueries!!.isEmpty()) {
|
||||||
inputQuery = inputQueries!!.pop()
|
inputQuery = inputQueries!!.pop()
|
||||||
resultViewModel.parseQuery(inputQuery!!, false)
|
resultViewModel.parseQuery(inputQuery!!, false)
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
package com.deniscerri.ytdlnis.ui.downloadcard
|
||||||
|
|
||||||
|
import android.view.View
|
||||||
|
import androidx.viewpager2.widget.ViewPager2
|
||||||
|
import kotlin.math.abs
|
||||||
|
|
||||||
|
|
||||||
|
class BackgroundToForegroundPageTransformer : ViewPager2.PageTransformer {
|
||||||
|
override fun transformPage(page: View, pos: Float) {
|
||||||
|
val scale = if (pos < 0) pos + 1f else abs(1f - pos)
|
||||||
|
page.scaleX = scale
|
||||||
|
page.scaleY = scale
|
||||||
|
page.pivotX = page.width * 0.5f
|
||||||
|
page.pivotY = page.height * 0.5f
|
||||||
|
page.alpha = if (pos < -1f || pos > 1f) 0f else 1f - (scale - 1f)
|
||||||
|
|
||||||
|
page.post {
|
||||||
|
val wMeasureSpec = View.MeasureSpec.makeMeasureSpec(page.width, View.MeasureSpec.EXACTLY)
|
||||||
|
val hMeasureSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED)
|
||||||
|
page.measure(wMeasureSpec, hMeasureSpec)
|
||||||
|
page.minimumHeight = hMeasureSpec
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -9,7 +9,10 @@ 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.*
|
import android.widget.AdapterView
|
||||||
|
import android.widget.ArrayAdapter
|
||||||
|
import android.widget.AutoCompleteTextView
|
||||||
|
import android.widget.TextView
|
||||||
import androidx.activity.result.contract.ActivityResultContracts
|
import androidx.activity.result.contract.ActivityResultContracts
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
|
|
@ -18,16 +21,12 @@ import com.deniscerri.ytdlnis.MainActivity
|
||||||
import com.deniscerri.ytdlnis.R
|
import com.deniscerri.ytdlnis.R
|
||||||
import com.deniscerri.ytdlnis.database.models.DownloadItem
|
import com.deniscerri.ytdlnis.database.models.DownloadItem
|
||||||
import com.deniscerri.ytdlnis.database.models.ResultItem
|
import com.deniscerri.ytdlnis.database.models.ResultItem
|
||||||
import com.deniscerri.ytdlnis.database.repository.DownloadRepository
|
|
||||||
import com.deniscerri.ytdlnis.database.viewmodel.DownloadViewModel
|
import com.deniscerri.ytdlnis.database.viewmodel.DownloadViewModel
|
||||||
import com.deniscerri.ytdlnis.database.viewmodel.ResultViewModel
|
import com.deniscerri.ytdlnis.database.viewmodel.DownloadViewModel.Type
|
||||||
import com.deniscerri.ytdlnis.databinding.FragmentHomeBinding
|
import com.deniscerri.ytdlnis.databinding.FragmentHomeBinding
|
||||||
import com.deniscerri.ytdlnis.util.FileUtil
|
import com.deniscerri.ytdlnis.util.FileUtil
|
||||||
import com.google.android.material.textfield.TextInputLayout
|
import com.google.android.material.textfield.TextInputLayout
|
||||||
import kotlinx.coroutines.Dispatchers
|
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import kotlinx.coroutines.withContext
|
|
||||||
import com.deniscerri.ytdlnis.database.viewmodel.DownloadViewModel.Type
|
|
||||||
|
|
||||||
|
|
||||||
class DownloadAudioFragment(private var resultItem: ResultItem) : Fragment() {
|
class DownloadAudioFragment(private var resultItem: ResultItem) : Fragment() {
|
||||||
|
|
@ -44,6 +43,10 @@ class DownloadAudioFragment(private var resultItem: ResultItem) : Fragment() {
|
||||||
|
|
||||||
lateinit var downloadItem: DownloadItem
|
lateinit var downloadItem: DownloadItem
|
||||||
|
|
||||||
|
override fun onResume() {
|
||||||
|
super.onResume()
|
||||||
|
}
|
||||||
|
|
||||||
override fun onCreateView(
|
override fun onCreateView(
|
||||||
inflater: LayoutInflater,
|
inflater: LayoutInflater,
|
||||||
container: ViewGroup?,
|
container: ViewGroup?,
|
||||||
|
|
@ -168,12 +171,19 @@ class DownloadAudioFragment(private var resultItem: ResultItem) : Fragment() {
|
||||||
containers
|
containers
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
val selectedContainer: String = if (containers.contains(formats[formats.lastIndex].container)){
|
|
||||||
formats[formats.lastIndex].container
|
val selectedContainer: String = try {
|
||||||
}else{
|
if (containers.contains(formats[formats.lastIndex].container)){
|
||||||
|
formats[formats.lastIndex].container
|
||||||
|
}else{
|
||||||
|
containers[0]
|
||||||
|
}
|
||||||
|
}catch (e: Exception){
|
||||||
containers[0]
|
containers[0]
|
||||||
}
|
}
|
||||||
|
|
||||||
downloadItem.format.container = selectedContainer
|
downloadItem.format.container = selectedContainer
|
||||||
|
Log.e("TAG", selectedContainer)
|
||||||
containerAutoCompleteTextView!!.setText(selectedContainer, false)
|
containerAutoCompleteTextView!!.setText(selectedContainer, false)
|
||||||
(container!!.editText as AutoCompleteTextView?)!!.onItemClickListener =
|
(container!!.editText as AutoCompleteTextView?)!!.onItemClickListener =
|
||||||
AdapterView.OnItemClickListener { _: AdapterView<*>?, _: View?, index: Int, _: Long ->
|
AdapterView.OnItemClickListener { _: AdapterView<*>?, _: View?, index: Int, _: Long ->
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,11 @@ import android.content.DialogInterface
|
||||||
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.widget.Adapter
|
||||||
import android.widget.Button
|
import android.widget.Button
|
||||||
|
import androidx.coordinatorlayout.widget.CoordinatorLayout
|
||||||
|
import androidx.core.view.get
|
||||||
|
import androidx.core.view.size
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.viewpager2.widget.ViewPager2
|
import androidx.viewpager2.widget.ViewPager2
|
||||||
import com.deniscerri.ytdlnis.R
|
import com.deniscerri.ytdlnis.R
|
||||||
|
|
@ -78,7 +82,7 @@ class DownloadBottomSheetDialog(private val resultItem: ResultItem, private val
|
||||||
|
|
||||||
tabLayout.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener {
|
tabLayout.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener {
|
||||||
override fun onTabSelected(tab: TabLayout.Tab?) {
|
override fun onTabSelected(tab: TabLayout.Tab?) {
|
||||||
viewPager2.currentItem = tab!!.position
|
viewPager2.setCurrentItem(tab!!.position, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onTabUnselected(tab: TabLayout.Tab?) {
|
override fun onTabUnselected(tab: TabLayout.Tab?) {
|
||||||
|
|
@ -93,16 +97,8 @@ class DownloadBottomSheetDialog(private val resultItem: ResultItem, private val
|
||||||
tabLayout.selectTab(tabLayout.getTabAt(position))
|
tabLayout.selectTab(tabLayout.getTabAt(position))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
viewPager2.setPageTransformer { v, _ ->
|
|
||||||
v.post {
|
|
||||||
val wMeasureSpec = View.MeasureSpec.makeMeasureSpec(v.width, View.MeasureSpec.EXACTLY)
|
|
||||||
val hMeasureSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED)
|
|
||||||
v.measure(wMeasureSpec, hMeasureSpec)
|
|
||||||
|
|
||||||
viewPager2.layoutParams = (viewPager2.layoutParams).also { lp -> lp.height = v.measuredHeight }
|
viewPager2.setPageTransformer(BackgroundToForegroundPageTransformer())
|
||||||
viewPager2.invalidate()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
val scheduleBtn = view.findViewById<MaterialButton>(R.id.bottomsheet_schedule_button)
|
val scheduleBtn = view.findViewById<MaterialButton>(R.id.bottomsheet_schedule_button)
|
||||||
scheduleBtn.setOnClickListener{
|
scheduleBtn.setOnClickListener{
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,6 @@ import java.io.InputStreamReader
|
||||||
import java.net.HttpURLConnection
|
import java.net.HttpURLConnection
|
||||||
import java.net.URL
|
import java.net.URL
|
||||||
import java.util.concurrent.atomic.AtomicReference
|
import java.util.concurrent.atomic.AtomicReference
|
||||||
import java.io.File
|
|
||||||
|
|
||||||
class UpdateUtil(var context: Context) {
|
class UpdateUtil(var context: Context) {
|
||||||
private val tag = "UpdateUtil"
|
private val tag = "UpdateUtil"
|
||||||
|
|
|
||||||
|
|
@ -1,112 +1,127 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
<LinearLayout
|
<ScrollView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:paddingTop="20dp"
|
|
||||||
android:paddingBottom="0dp"
|
|
||||||
android:paddingHorizontal="20dp"
|
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
<TextView
|
|
||||||
android:id="@+id/bottom_sheet_title"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:textSize="25sp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/download" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/bottom_sheet_subtitle"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:textSize="15sp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/configure_download" />
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
|
|
||||||
<com.google.android.material.tabs.TabLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:backgroundTint="@android:color/transparent"
|
|
||||||
app:tabMode="scrollable"
|
|
||||||
android:layout_margin="10dp"
|
|
||||||
app:tabGravity="fill"
|
|
||||||
android:id="@+id/download_tablayout" >
|
|
||||||
|
|
||||||
<com.google.android.material.tabs.TabItem
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:text="@string/audio" />
|
|
||||||
|
|
||||||
<com.google.android.material.tabs.TabItem
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:text="@string/video" />
|
|
||||||
|
|
||||||
<com.google.android.material.tabs.TabItem
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:text="@string/run_command" />
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</com.google.android.material.tabs.TabLayout>
|
|
||||||
|
|
||||||
|
|
||||||
<androidx.viewpager2.widget.ViewPager2
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:id="@+id/download_viewpager" />
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_gravity="bottom"
|
|
||||||
android:padding="10dp"
|
|
||||||
android:orientation="horizontal">
|
|
||||||
|
|
||||||
|
|
||||||
<Button
|
|
||||||
style="@style/Widget.Material3.Button.IconButton.Filled.Tonal"
|
|
||||||
android:id="@+id/bottomsheet_schedule_button"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginEnd="10dp"
|
|
||||||
app:icon="@drawable/ic_clock" />
|
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:orientation="vertical"
|
||||||
android:layout_gravity="bottom"
|
android:layout_height="wrap_content">
|
||||||
android:gravity="end"
|
|
||||||
android:orientation="horizontal">
|
|
||||||
|
|
||||||
<Button
|
<LinearLayout
|
||||||
style="@style/Widget.Material3.Button.OutlinedButton.Icon"
|
|
||||||
android:id="@+id/bottomsheet_cancel_button"
|
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/cancel"
|
android:paddingTop="20dp"
|
||||||
android:layout_marginEnd="10dp"
|
android:paddingBottom="0dp"
|
||||||
app:icon="@drawable/ic_cancel" />
|
android:paddingHorizontal="20dp"
|
||||||
|
android:orientation="vertical">
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/bottom_sheet_title"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:textSize="25sp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/download" />
|
||||||
|
|
||||||
<Button
|
<TextView
|
||||||
style="@style/Widget.Material3.Button.ElevatedButton.Icon"
|
android:id="@+id/bottom_sheet_subtitle"
|
||||||
android:id="@+id/bottomsheet_download_button"
|
android:layout_width="wrap_content"
|
||||||
android:layout_width="wrap_content"
|
android:textSize="15sp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/configure_download" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<com.google.android.material.tabs.TabLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/download"
|
android:backgroundTint="@android:color/transparent"
|
||||||
app:icon="@drawable/ic_down"
|
app:tabMode="scrollable"
|
||||||
android:autoLink="all"/>
|
android:layout_margin="10dp"
|
||||||
|
app:tabGravity="fill"
|
||||||
|
android:id="@+id/download_tablayout" >
|
||||||
|
|
||||||
|
<com.google.android.material.tabs.TabItem
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:text="@string/audio" />
|
||||||
|
|
||||||
|
<com.google.android.material.tabs.TabItem
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:text="@string/video" />
|
||||||
|
|
||||||
|
<com.google.android.material.tabs.TabItem
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:text="@string/run_command" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</com.google.android.material.tabs.TabLayout>
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.viewpager2.widget.ViewPager2
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:id="@+id/download_viewpager" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="bottom"
|
||||||
|
android:padding="10dp"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
|
||||||
|
<Button
|
||||||
|
style="@style/Widget.Material3.Button.IconButton.Filled.Tonal"
|
||||||
|
android:id="@+id/bottomsheet_schedule_button"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginEnd="10dp"
|
||||||
|
app:icon="@drawable/ic_clock" />
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_gravity="bottom"
|
||||||
|
android:gravity="end"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<Button
|
||||||
|
style="@style/Widget.Material3.Button.OutlinedButton.Icon"
|
||||||
|
android:id="@+id/bottomsheet_cancel_button"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/cancel"
|
||||||
|
android:layout_marginEnd="10dp"
|
||||||
|
app:icon="@drawable/ic_cancel" />
|
||||||
|
|
||||||
|
<Button
|
||||||
|
style="@style/Widget.Material3.Button.ElevatedButton.Icon"
|
||||||
|
android:id="@+id/bottomsheet_download_button"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/download"
|
||||||
|
app:icon="@drawable/ic_down"
|
||||||
|
android:autoLink="all"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
</LinearLayout>
|
</ScrollView>
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
@ -11,6 +11,56 @@
|
||||||
android:padding="10dp"
|
android:padding="10dp"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- <androidx.constraintlayout.widget.ConstraintLayout-->
|
||||||
|
<!-- android:id="@+id/result_card_constraintLayout"-->
|
||||||
|
<!-- android:layout_width="match_parent"-->
|
||||||
|
<!-- android:layout_height="wrap_content">-->
|
||||||
|
|
||||||
|
<!-- <RelativeLayout-->
|
||||||
|
<!-- android:id="@+id/result_relative_layout"-->
|
||||||
|
<!-- android:layout_width="0dp"-->
|
||||||
|
<!-- android:layout_height="0dp"-->
|
||||||
|
<!-- app:layout_constraintDimensionRatio="H,16:9"-->
|
||||||
|
<!-- app:layout_constraintStart_toStartOf="parent"-->
|
||||||
|
<!-- app:layout_constraintEnd_toEndOf="parent"-->
|
||||||
|
<!-- app:layout_constraintTop_toTopOf="parent">-->
|
||||||
|
|
||||||
|
<!-- <com.google.android.material.card.MaterialCardView-->
|
||||||
|
<!-- android:id="@+id/result_card_view"-->
|
||||||
|
<!-- android:layout_width="match_parent"-->
|
||||||
|
<!-- android:layout_height="match_parent"-->
|
||||||
|
<!-- app:cardCornerRadius="10dp"-->
|
||||||
|
<!-- app:cardElevation="10dp"-->
|
||||||
|
<!-- app:cardMaxElevation="12dp"-->
|
||||||
|
<!-- app:cardBackgroundColor="@color/black"-->
|
||||||
|
<!-- app:cardPreventCornerOverlap="true"-->
|
||||||
|
<!-- android:checkable="true"-->
|
||||||
|
<!-- app:strokeWidth="0dp"-->
|
||||||
|
<!-- android:layout_margin="10dp">-->
|
||||||
|
|
||||||
|
<!-- <com.devbrackets.android.exomedia.ui.widget.VideoView-->
|
||||||
|
<!-- android:id="@+id/result_video_view"-->
|
||||||
|
<!-- android:layout_width="match_parent"-->
|
||||||
|
<!-- android:layout_height="match_parent"-->
|
||||||
|
<!-- app:useDefaultControls="true"/>-->
|
||||||
|
|
||||||
|
<!-- </com.google.android.material.card.MaterialCardView>-->
|
||||||
|
<!-- </RelativeLayout>-->
|
||||||
|
|
||||||
|
<!-- </androidx.constraintlayout.widget.ConstraintLayout>-->
|
||||||
|
|
||||||
|
<!-- <com.google.android.material.slider.RangeSlider-->
|
||||||
|
<!-- android:id="@+id/range_slider"-->
|
||||||
|
<!-- android:layout_marginHorizontal="10dp"-->
|
||||||
|
<!-- android:layout_width="match_parent"-->
|
||||||
|
<!-- android:layout_height="wrap_content"-->
|
||||||
|
<!-- app:values="@array/initial_slider_values"-->
|
||||||
|
<!-- android:valueFrom="0.0"-->
|
||||||
|
|
||||||
|
<!-- android:valueTo="100.0" />-->
|
||||||
|
|
||||||
<com.google.android.material.textfield.TextInputLayout
|
<com.google.android.material.textfield.TextInputLayout
|
||||||
android:id="@+id/title_textinput"
|
android:id="@+id/title_textinput"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,55 @@
|
||||||
android:padding="10dp"
|
android:padding="10dp"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
|
||||||
|
<!-- <androidx.constraintlayout.widget.ConstraintLayout-->
|
||||||
|
<!-- android:id="@+id/result_card_constraintLayout"-->
|
||||||
|
<!-- android:layout_width="match_parent"-->
|
||||||
|
<!-- android:layout_height="wrap_content">-->
|
||||||
|
|
||||||
|
<!-- <RelativeLayout-->
|
||||||
|
<!-- android:id="@+id/result_relative_layout"-->
|
||||||
|
<!-- android:layout_width="0dp"-->
|
||||||
|
<!-- android:layout_height="0dp"-->
|
||||||
|
<!-- app:layout_constraintDimensionRatio="H,16:9"-->
|
||||||
|
<!-- app:layout_constraintStart_toStartOf="parent"-->
|
||||||
|
<!-- app:layout_constraintEnd_toEndOf="parent"-->
|
||||||
|
<!-- app:layout_constraintTop_toTopOf="parent">-->
|
||||||
|
|
||||||
|
<!-- <com.google.android.material.card.MaterialCardView-->
|
||||||
|
<!-- android:id="@+id/result_card_view"-->
|
||||||
|
<!-- android:layout_width="match_parent"-->
|
||||||
|
<!-- android:layout_height="match_parent"-->
|
||||||
|
<!-- app:cardCornerRadius="10dp"-->
|
||||||
|
<!-- app:cardElevation="10dp"-->
|
||||||
|
<!-- app:cardMaxElevation="12dp"-->
|
||||||
|
<!-- app:cardBackgroundColor="@color/black"-->
|
||||||
|
<!-- app:cardPreventCornerOverlap="true"-->
|
||||||
|
<!-- android:checkable="true"-->
|
||||||
|
<!-- app:strokeWidth="0dp"-->
|
||||||
|
<!-- android:layout_margin="10dp">-->
|
||||||
|
|
||||||
|
<!-- <com.devbrackets.android.exomedia.ui.widget.VideoView-->
|
||||||
|
<!-- android:id="@+id/result_video_view"-->
|
||||||
|
<!-- android:layout_width="match_parent"-->
|
||||||
|
<!-- android:layout_height="match_parent"-->
|
||||||
|
<!-- app:useDefaultControls="true"/>-->
|
||||||
|
|
||||||
|
<!-- </com.google.android.material.card.MaterialCardView>-->
|
||||||
|
<!-- </RelativeLayout>-->
|
||||||
|
|
||||||
|
<!-- </androidx.constraintlayout.widget.ConstraintLayout>-->
|
||||||
|
|
||||||
|
<!-- <com.google.android.material.slider.RangeSlider-->
|
||||||
|
<!-- android:id="@+id/range_slider"-->
|
||||||
|
<!-- android:layout_marginHorizontal="10dp"-->
|
||||||
|
<!-- android:layout_width="match_parent"-->
|
||||||
|
<!-- android:layout_height="wrap_content"-->
|
||||||
|
<!-- app:values="@array/initial_slider_values"-->
|
||||||
|
<!-- android:valueFrom="0.0"-->
|
||||||
|
|
||||||
|
<!-- android:valueTo="100.0" />-->
|
||||||
|
|
||||||
<com.google.android.material.textfield.TextInputLayout
|
<com.google.android.material.textfield.TextInputLayout
|
||||||
android:id="@+id/title_textinput"
|
android:id="@+id/title_textinput"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
|
|
||||||
|
|
@ -13,8 +13,6 @@
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content">
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<com.google.android.material.appbar.MaterialToolbar
|
<com.google.android.material.appbar.MaterialToolbar
|
||||||
android:id="@+id/home_toolbar"
|
android:id="@+id/home_toolbar"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
|
@ -43,56 +41,50 @@
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
|
<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:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
|
||||||
|
/>
|
||||||
|
|
||||||
|
|
||||||
|
<com.facebook.shimmer.ShimmerFrameLayout
|
||||||
|
app:layout_behavior="@string/appbar_scrolling_view_behavior"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:layout_marginTop="?attr/actionBarSize"
|
android:id="@+id/shimmer_results_framelayout"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
<LinearLayout
|
||||||
|
android:id="@+id/shimmer_linear_layout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:id="@+id/recyclerViewHome"
|
|
||||||
android:nestedScrollingEnabled="false"
|
|
||||||
android:orientation="vertical"
|
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:scrollbars="vertical"
|
android:layout_margin="10dp"
|
||||||
android:layout_marginLeft="10dp"
|
|
||||||
android:layout_marginRight="10dp"
|
|
||||||
android:clipToPadding="false"
|
|
||||||
android:paddingBottom="100dp"
|
|
||||||
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
|
|
||||||
/>
|
|
||||||
|
|
||||||
|
|
||||||
<com.facebook.shimmer.ShimmerFrameLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:id="@+id/shimmer_results_framelayout"
|
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<LinearLayout
|
<include layout="@layout/result_card_shimmer" />
|
||||||
android:id="@+id/shimmer_linear_layout"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_margin="10dp"
|
|
||||||
android:orientation="vertical">
|
|
||||||
|
|
||||||
<include layout="@layout/result_card_shimmer" />
|
<include layout="@layout/result_card_shimmer" />
|
||||||
|
|
||||||
<include layout="@layout/result_card_shimmer" />
|
<include layout="@layout/result_card_shimmer" />
|
||||||
|
|
||||||
<include layout="@layout/result_card_shimmer" />
|
<include layout="@layout/result_card_shimmer" />
|
||||||
|
|
||||||
<include layout="@layout/result_card_shimmer" />
|
<include layout="@layout/result_card_shimmer" />
|
||||||
|
|
||||||
<include layout="@layout/result_card_shimmer" />
|
|
||||||
|
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
</com.facebook.shimmer.ShimmerFrameLayout>
|
</com.facebook.shimmer.ShimmerFrameLayout>
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<androidx.coordinatorlayout.widget.CoordinatorLayout
|
<androidx.coordinatorlayout.widget.CoordinatorLayout
|
||||||
android:id="@+id/home_fabs"
|
android:id="@+id/home_fabs"
|
||||||
|
|
|
||||||
|
|
@ -12,39 +12,72 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_margin="10dp"
|
android:layout_margin="10dp"
|
||||||
android:padding="10dp"
|
android:padding="10dp"
|
||||||
|
android:layout_marginVertical="10dp"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<TextView
|
<LinearLayout
|
||||||
android:id="@+id/newest"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:textSize="15sp"
|
android:orientation="horizontal">
|
||||||
android:text="@string/newest_first"
|
|
||||||
android:drawablePadding="20dp"
|
|
||||||
android:paddingBottom="20dp"
|
|
||||||
app:drawableLeftCompat="@drawable/ic_up" />
|
|
||||||
|
|
||||||
<TextView
|
<ImageView
|
||||||
android:id="@+id/oldest"
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:src="@drawable/ic_up"/>
|
||||||
|
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/date"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textSize="15sp"
|
||||||
|
android:padding="10dp"
|
||||||
|
android:text="@string/date_added" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:textSize="15sp"
|
android:orientation="horizontal">
|
||||||
android:text="@string/oldest_first"
|
|
||||||
android:drawablePadding="20dp"
|
|
||||||
android:paddingBottom="20dp"
|
|
||||||
app:drawableLeftCompat="@drawable/ic_down" />
|
|
||||||
|
|
||||||
<View style="@style/Divider.Horizontal"/>
|
<ImageView
|
||||||
|
android:visibility="invisible"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:src="@drawable/ic_up"/>
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/cancel"
|
<TextView
|
||||||
|
android:id="@+id/title"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textSize="15sp"
|
||||||
|
android:padding="10dp"
|
||||||
|
android:text="@string/title" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:textSize="15sp"
|
android:orientation="horizontal">
|
||||||
app:icon="@drawable/ic_link"
|
|
||||||
android:text="@string/cancel"
|
<ImageView
|
||||||
android:drawablePadding="20dp"
|
android:visibility="invisible"
|
||||||
app:drawableLeftCompat="@drawable/ic_cancel" />
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:src="@drawable/ic_up"/>
|
||||||
|
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/author"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textSize="15sp"
|
||||||
|
android:padding="10dp"
|
||||||
|
android:text="@string/author" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -53,4 +53,9 @@
|
||||||
<string-array name="sponsorblock_settings_default">
|
<string-array name="sponsorblock_settings_default">
|
||||||
<item>music_offtopic</item>
|
<item>music_offtopic</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
|
||||||
|
<array name="initial_slider_values">
|
||||||
|
<item>0.0</item>
|
||||||
|
<item>100.0</item>
|
||||||
|
</array>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
@ -165,4 +165,5 @@
|
||||||
<string name="template">Template</string>
|
<string name="template">Template</string>
|
||||||
<string name="logs">Logs</string>
|
<string name="logs">Logs</string>
|
||||||
<string name="commands">Commands</string>
|
<string name="commands">Commands</string>
|
||||||
|
<string name="date_added">Date added</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
@ -4,8 +4,8 @@
|
||||||
buildscript {
|
buildscript {
|
||||||
|
|
||||||
def versionMajor = 1
|
def versionMajor = 1
|
||||||
def versionMinor = 4
|
def versionMinor = 5
|
||||||
def versionPatch = 9
|
def versionPatch = 0
|
||||||
def versionBuild = 0 // bump for dogfood builds, public betas, etc.
|
def versionBuild = 0 // bump for dogfood builds, public betas, etc.
|
||||||
|
|
||||||
ext {
|
ext {
|
||||||
|
|
@ -37,8 +37,8 @@ buildscript {
|
||||||
}
|
}
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id 'com.android.application' version '7.4.0' apply false
|
id 'com.android.application' version '7.4.1' apply false
|
||||||
id 'com.android.library' version '7.4.0' apply false
|
id 'com.android.library' version '7.4.1' apply false
|
||||||
id 'org.jetbrains.kotlin.android' version '1.7.21' apply false
|
id 'org.jetbrains.kotlin.android' version '1.7.21' apply false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue