chore(deps): update android-plugin to v8 (major) (#333)
* Update android-plugin to v8 * ci: upgrade to java 17 * fix: transitive R classes and buildconfig * lint: fix ktlint issues * lint: fix ktlint issues * lint: fix ktlint issues --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: jarnedemeulemeester <jarnedemeulemeester@gmail.com>
This commit is contained in:
parent
0d4c38d34b
commit
22542614cd
32 changed files with 118 additions and 115 deletions
8
.github/workflows/build.yaml
vendored
8
.github/workflows/build.yaml
vendored
|
@ -13,10 +13,10 @@ jobs:
|
|||
uses: actions/checkout@v3
|
||||
- name: Validate Gradle Wrapper
|
||||
uses: gradle/wrapper-validation-action@v1
|
||||
- name: Set up JDK 11
|
||||
- name: Set up JDK 17
|
||||
uses: actions/setup-java@v3
|
||||
with:
|
||||
java-version: 11
|
||||
java-version: 17
|
||||
distribution: temurin
|
||||
- name: Setup Gradle
|
||||
uses: gradle/gradle-build-action@v2
|
||||
|
@ -30,10 +30,10 @@ jobs:
|
|||
uses: actions/checkout@v3
|
||||
- name: Validate Gradle Wrapper
|
||||
uses: gradle/wrapper-validation-action@v1
|
||||
- name: Set up JDK 11
|
||||
- name: Set up JDK 17
|
||||
uses: actions/setup-java@v3
|
||||
with:
|
||||
java-version: 11
|
||||
java-version: 17
|
||||
distribution: temurin
|
||||
- name: Setup Gradle
|
||||
uses: gradle/gradle-build-action@v2
|
||||
|
|
|
@ -55,8 +55,8 @@ android {
|
|||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility = JavaVersion.VERSION_11
|
||||
targetCompatibility = JavaVersion.VERSION_11
|
||||
sourceCompatibility = JavaVersion.VERSION_17
|
||||
targetCompatibility = JavaVersion.VERSION_17
|
||||
}
|
||||
|
||||
buildFeatures {
|
||||
|
|
|
@ -11,6 +11,7 @@ import dev.jdtech.jellyfin.adapters.HomeEpisodeListAdapter
|
|||
import dev.jdtech.jellyfin.adapters.ServerGridAdapter
|
||||
import dev.jdtech.jellyfin.adapters.ViewItemListAdapter
|
||||
import dev.jdtech.jellyfin.api.JellyfinApi
|
||||
import dev.jdtech.jellyfin.core.R as CoreR
|
||||
import dev.jdtech.jellyfin.models.Server
|
||||
import dev.jdtech.jellyfin.models.User
|
||||
import java.util.UUID
|
||||
|
@ -58,7 +59,7 @@ fun bindItemBackdropById(imageView: ImageView, itemId: UUID) {
|
|||
@BindingAdapter("personImage")
|
||||
fun bindPersonImage(imageView: ImageView, person: BaseItemPerson) {
|
||||
imageView
|
||||
.loadImage("/items/${person.id}/Images/${ImageType.PRIMARY}", placeholderId = R.drawable.person_placeholder)
|
||||
.loadImage("/items/${person.id}/Images/${ImageType.PRIMARY}", placeholderId = CoreR.drawable.person_placeholder)
|
||||
.posterDescription(person.name)
|
||||
}
|
||||
|
||||
|
@ -108,13 +109,13 @@ fun bindSeasonPoster(imageView: ImageView, seasonId: UUID) {
|
|||
@BindingAdapter("userImage")
|
||||
fun bindUserImage(imageView: ImageView, user: User) {
|
||||
imageView
|
||||
.loadImage("/users/${user.id}/Images/${ImageType.PRIMARY}", placeholderId = R.drawable.user_placeholder)
|
||||
.loadImage("/users/${user.id}/Images/${ImageType.PRIMARY}", placeholderId = CoreR.drawable.user_placeholder)
|
||||
.posterDescription(user.name)
|
||||
}
|
||||
|
||||
private fun ImageView.loadImage(
|
||||
url: String,
|
||||
@DrawableRes placeholderId: Int = R.color.neutral_800,
|
||||
@DrawableRes placeholderId: Int = CoreR.color.neutral_800,
|
||||
@DrawableRes errorPlaceHolderId: Int? = null
|
||||
): View {
|
||||
val api = JellyfinApi.getInstance(context.applicationContext)
|
||||
|
@ -131,9 +132,9 @@ private fun ImageView.loadImage(
|
|||
}
|
||||
|
||||
private fun View.posterDescription(name: String?) {
|
||||
contentDescription = context.resources.getString(R.string.image_description_poster, name)
|
||||
contentDescription = context.resources.getString(CoreR.string.image_description_poster, name)
|
||||
}
|
||||
|
||||
private fun View.backdropDescription(name: String?) {
|
||||
contentDescription = context.resources.getString(R.string.image_description_backdrop, name)
|
||||
contentDescription = context.resources.getString(CoreR.string.image_description_backdrop, name)
|
||||
}
|
||||
|
|
|
@ -13,6 +13,7 @@ import androidx.navigation.ui.NavigationUiSaveStateControl
|
|||
import androidx.navigation.ui.setupActionBarWithNavController
|
||||
import com.google.android.material.navigation.NavigationBarView
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import dev.jdtech.jellyfin.core.R as CoreR
|
||||
import dev.jdtech.jellyfin.database.ServerDatabaseDao
|
||||
import dev.jdtech.jellyfin.databinding.ActivityMainBinding
|
||||
import dev.jdtech.jellyfin.utils.loadDownloadLocation
|
||||
|
@ -39,7 +40,7 @@ class MainActivity : AppCompatActivity() {
|
|||
super.onCreate(savedInstanceState)
|
||||
|
||||
if (appPreferences.amoledTheme) {
|
||||
setTheme(R.style.Theme_FindroidAMOLED)
|
||||
setTheme(CoreR.style.Theme_FindroidAMOLED)
|
||||
}
|
||||
|
||||
binding = ActivityMainBinding.inflate(layoutInflater)
|
||||
|
@ -81,11 +82,11 @@ class MainActivity : AppCompatActivity() {
|
|||
|
||||
navController.addOnDestinationChangedListener { _, destination, _ ->
|
||||
binding.navView.visibility = when (destination.id) {
|
||||
R.id.twoPaneSettingsFragment, R.id.serverSelectFragment, R.id.addServerFragment, R.id.loginFragment, R.id.about_libraries_dest, R.id.usersFragment, R.id.serverAddressesFragment -> View.GONE
|
||||
R.id.twoPaneSettingsFragment, R.id.serverSelectFragment, R.id.addServerFragment, R.id.loginFragment, com.mikepenz.aboutlibraries.R.id.about_libraries_dest, R.id.usersFragment, R.id.serverAddressesFragment -> View.GONE
|
||||
else -> View.VISIBLE
|
||||
}
|
||||
if (destination.id == R.id.about_libraries_dest) binding.mainToolbar.title =
|
||||
getString(R.string.app_info)
|
||||
if (destination.id == com.mikepenz.aboutlibraries.R.id.about_libraries_dest) binding.mainToolbar.title =
|
||||
getString(CoreR.string.app_info)
|
||||
}
|
||||
|
||||
loadDownloadLocation(applicationContext)
|
||||
|
|
|
@ -22,6 +22,7 @@ import dev.jdtech.jellyfin.dialogs.SpeedSelectionDialogFragment
|
|||
import dev.jdtech.jellyfin.dialogs.TrackSelectionDialogFragment
|
||||
import dev.jdtech.jellyfin.mpv.MPVPlayer
|
||||
import dev.jdtech.jellyfin.mpv.TrackType
|
||||
import dev.jdtech.jellyfin.player.video.R as PlayerVideoR
|
||||
import dev.jdtech.jellyfin.utils.PlayerGestureHelper
|
||||
import dev.jdtech.jellyfin.utils.PreviewScrubListener
|
||||
import dev.jdtech.jellyfin.viewmodels.PlayerActivityViewModel
|
||||
|
@ -109,7 +110,7 @@ class PlayerActivity : BasePlayerActivity() {
|
|||
|
||||
val trackSelectionDialogBuilder = TrackSelectionDialogBuilder(
|
||||
this,
|
||||
resources.getString(R.string.select_audio_track),
|
||||
resources.getString(PlayerVideoR.string.select_audio_track),
|
||||
viewModel.player,
|
||||
C.TRACK_TYPE_AUDIO
|
||||
)
|
||||
|
@ -142,7 +143,7 @@ class PlayerActivity : BasePlayerActivity() {
|
|||
|
||||
val trackSelectionDialogBuilder = TrackSelectionDialogBuilder(
|
||||
this,
|
||||
resources.getString(R.string.select_subtile_track),
|
||||
resources.getString(PlayerVideoR.string.select_subtile_track),
|
||||
viewModel.player,
|
||||
C.TRACK_TYPE_TEXT
|
||||
)
|
||||
|
|
|
@ -5,7 +5,7 @@ import android.view.ViewGroup
|
|||
import androidx.recyclerview.widget.DiffUtil
|
||||
import androidx.recyclerview.widget.ListAdapter
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import dev.jdtech.jellyfin.R
|
||||
import dev.jdtech.jellyfin.core.R as CoreR
|
||||
import dev.jdtech.jellyfin.databinding.BaseItemBinding
|
||||
import dev.jdtech.jellyfin.models.DownloadSeriesMetadata
|
||||
import dev.jdtech.jellyfin.utils.downloadSeriesMetadataToBaseItemDto
|
||||
|
@ -23,7 +23,7 @@ class DownloadSeriesListAdapter(
|
|||
binding.itemCount.text = item.episodes.size.toString()
|
||||
if (fixedWidth) {
|
||||
binding.itemLayout.layoutParams.width =
|
||||
parent.resources.getDimension(R.dimen.overview_media_width).toInt()
|
||||
parent.resources.getDimension(CoreR.dimen.overview_media_width).toInt()
|
||||
(binding.itemLayout.layoutParams as ViewGroup.MarginLayoutParams).bottomMargin = 0
|
||||
}
|
||||
binding.executePendingBindings()
|
||||
|
|
|
@ -6,7 +6,7 @@ import android.view.ViewGroup
|
|||
import androidx.recyclerview.widget.DiffUtil
|
||||
import androidx.recyclerview.widget.ListAdapter
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import dev.jdtech.jellyfin.R
|
||||
import dev.jdtech.jellyfin.core.R as CoreR
|
||||
import dev.jdtech.jellyfin.databinding.BaseItemBinding
|
||||
import dev.jdtech.jellyfin.models.PlayerItem
|
||||
import dev.jdtech.jellyfin.utils.downloadMetadataToBaseItemDto
|
||||
|
@ -24,7 +24,7 @@ class DownloadViewItemListAdapter(
|
|||
binding.itemName.text = item.name
|
||||
binding.itemCount.visibility = View.GONE
|
||||
if (fixedWidth) {
|
||||
binding.itemLayout.layoutParams.width = parent.resources.getDimension(R.dimen.overview_media_width).toInt()
|
||||
binding.itemLayout.layoutParams.width = parent.resources.getDimension(CoreR.dimen.overview_media_width).toInt()
|
||||
(binding.itemLayout.layoutParams as ViewGroup.MarginLayoutParams).bottomMargin = 0
|
||||
}
|
||||
binding.executePendingBindings()
|
||||
|
|
|
@ -6,7 +6,7 @@ import android.view.ViewGroup
|
|||
import androidx.recyclerview.widget.DiffUtil
|
||||
import androidx.recyclerview.widget.ListAdapter
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import dev.jdtech.jellyfin.R
|
||||
import dev.jdtech.jellyfin.core.R as CoreR
|
||||
import dev.jdtech.jellyfin.databinding.BaseItemBinding
|
||||
import org.jellyfin.sdk.model.api.BaseItemDto
|
||||
import org.jellyfin.sdk.model.api.BaseItemKind
|
||||
|
@ -25,7 +25,7 @@ class ViewItemListAdapter(
|
|||
if (item.userData?.unplayedItemCount != null && item.userData?.unplayedItemCount!! > 0) View.VISIBLE else View.GONE
|
||||
if (fixedWidth) {
|
||||
binding.itemLayout.layoutParams.width =
|
||||
parent.resources.getDimension(R.dimen.overview_media_width).toInt()
|
||||
parent.resources.getDimension(CoreR.dimen.overview_media_width).toInt()
|
||||
(binding.itemLayout.layoutParams as ViewGroup.MarginLayoutParams).bottomMargin = 0
|
||||
}
|
||||
binding.executePendingBindings()
|
||||
|
|
|
@ -6,7 +6,7 @@ import android.view.ViewGroup
|
|||
import androidx.paging.PagingDataAdapter
|
||||
import androidx.recyclerview.widget.DiffUtil
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import dev.jdtech.jellyfin.R
|
||||
import dev.jdtech.jellyfin.core.R as CoreR
|
||||
import dev.jdtech.jellyfin.databinding.BaseItemBinding
|
||||
import org.jellyfin.sdk.model.api.BaseItemDto
|
||||
import org.jellyfin.sdk.model.api.BaseItemKind
|
||||
|
@ -26,7 +26,7 @@ class ViewItemPagingAdapter(
|
|||
if (item.userData?.unplayedItemCount != null && item.userData?.unplayedItemCount!! > 0) View.VISIBLE else View.GONE
|
||||
if (fixedWidth) {
|
||||
binding.itemLayout.layoutParams.width =
|
||||
parent.resources.getDimension(R.dimen.overview_media_width).toInt()
|
||||
parent.resources.getDimension(CoreR.dimen.overview_media_width).toInt()
|
||||
(binding.itemLayout.layoutParams as ViewGroup.MarginLayoutParams).bottomMargin = 0
|
||||
}
|
||||
binding.executePendingBindings()
|
||||
|
|
|
@ -5,7 +5,7 @@ import android.view.ViewGroup
|
|||
import androidx.recyclerview.widget.DiffUtil
|
||||
import androidx.recyclerview.widget.ListAdapter
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import dev.jdtech.jellyfin.R
|
||||
import dev.jdtech.jellyfin.core.R as CoreR
|
||||
import dev.jdtech.jellyfin.databinding.NextUpSectionBinding
|
||||
import dev.jdtech.jellyfin.databinding.ViewItemBinding
|
||||
import dev.jdtech.jellyfin.models.HomeItem
|
||||
|
@ -29,7 +29,7 @@ class ViewListAdapter(
|
|||
) {
|
||||
val view = dataItem.view
|
||||
binding.view = view
|
||||
binding.viewName.text = binding.viewName.context.resources.getString(R.string.latest_library, view.name)
|
||||
binding.viewName.text = binding.viewName.context.resources.getString(CoreR.string.latest_library, view.name)
|
||||
binding.itemsRecyclerView.adapter =
|
||||
ViewItemListAdapter(onItemClickListener, fixedWidth = true)
|
||||
binding.viewAll.setOnClickListener {
|
||||
|
|
|
@ -13,12 +13,13 @@ import androidx.lifecycle.lifecycleScope
|
|||
import androidx.lifecycle.repeatOnLifecycle
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import androidx.navigation.fragment.navArgs
|
||||
import com.google.android.material.R as MaterialR
|
||||
import com.google.android.material.bottomsheet.BottomSheetBehavior
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialog
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import dev.jdtech.jellyfin.R
|
||||
import dev.jdtech.jellyfin.bindBaseItemImage
|
||||
import dev.jdtech.jellyfin.core.R as CoreR
|
||||
import dev.jdtech.jellyfin.databinding.EpisodeBottomSheetBinding
|
||||
import dev.jdtech.jellyfin.dialogs.ErrorDialogFragment
|
||||
import dev.jdtech.jellyfin.models.PlayerItem
|
||||
|
@ -91,11 +92,11 @@ class EpisodeBottomSheetFragment : BottomSheetDialogFragment() {
|
|||
when (viewModel.played) {
|
||||
true -> {
|
||||
viewModel.markAsUnplayed(episodeId)
|
||||
binding.checkButton.setTintColorAttribute(R.attr.colorOnSecondaryContainer, requireActivity().theme)
|
||||
binding.checkButton.setTintColorAttribute(MaterialR.attr.colorOnSecondaryContainer, requireActivity().theme)
|
||||
}
|
||||
false -> {
|
||||
viewModel.markAsPlayed(episodeId)
|
||||
binding.checkButton.setTintColor(R.color.red, requireActivity().theme)
|
||||
binding.checkButton.setTintColor(CoreR.color.red, requireActivity().theme)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -104,13 +105,13 @@ class EpisodeBottomSheetFragment : BottomSheetDialogFragment() {
|
|||
when (viewModel.favorite) {
|
||||
true -> {
|
||||
viewModel.unmarkAsFavorite(episodeId)
|
||||
binding.favoriteButton.setImageResource(R.drawable.ic_heart)
|
||||
binding.favoriteButton.setTintColorAttribute(R.attr.colorOnSecondaryContainer, requireActivity().theme)
|
||||
binding.favoriteButton.setImageResource(CoreR.drawable.ic_heart)
|
||||
binding.favoriteButton.setTintColorAttribute(MaterialR.attr.colorOnSecondaryContainer, requireActivity().theme)
|
||||
}
|
||||
false -> {
|
||||
viewModel.markAsFavorite(episodeId)
|
||||
binding.favoriteButton.setImageResource(R.drawable.ic_heart_filled)
|
||||
binding.favoriteButton.setTintColor(R.color.red, requireActivity().theme)
|
||||
binding.favoriteButton.setImageResource(CoreR.drawable.ic_heart_filled)
|
||||
binding.favoriteButton.setTintColor(CoreR.color.red, requireActivity().theme)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -118,7 +119,7 @@ class EpisodeBottomSheetFragment : BottomSheetDialogFragment() {
|
|||
binding.downloadButton.setOnClickListener {
|
||||
binding.downloadButton.isEnabled = false
|
||||
viewModel.download()
|
||||
binding.downloadButton.setTintColor(R.color.red, requireActivity().theme)
|
||||
binding.downloadButton.setTintColor(CoreR.color.red, requireActivity().theme)
|
||||
}
|
||||
|
||||
viewModel.loadEpisode(episodeId)
|
||||
|
@ -131,7 +132,7 @@ class EpisodeBottomSheetFragment : BottomSheetDialogFragment() {
|
|||
binding.deleteButton.setOnClickListener {
|
||||
viewModel.deleteEpisode()
|
||||
dismiss()
|
||||
findNavController().navigate(R.id.downloadFragment)
|
||||
findNavController().navigate(CoreR.id.downloadFragment)
|
||||
}
|
||||
|
||||
binding.checkButton.isVisible = false
|
||||
|
@ -163,7 +164,7 @@ class EpisodeBottomSheetFragment : BottomSheetDialogFragment() {
|
|||
val clickable = canPlay && (available || canRetry)
|
||||
binding.playButton.isEnabled = clickable
|
||||
binding.playButton.alpha = if (!clickable) 0.5F else 1.0F
|
||||
binding.playButton.setImageResource(if (!canRetry) R.drawable.ic_play else R.drawable.ic_rotate_ccw)
|
||||
binding.playButton.setImageResource(if (!canRetry) CoreR.drawable.ic_play else CoreR.drawable.ic_rotate_ccw)
|
||||
if (!(available || canRetry)) {
|
||||
binding.playButton.setImageResource(android.R.color.transparent)
|
||||
binding.progressCircular.isVisible = true
|
||||
|
@ -171,24 +172,24 @@ class EpisodeBottomSheetFragment : BottomSheetDialogFragment() {
|
|||
|
||||
// Check icon
|
||||
when (played) {
|
||||
true -> binding.checkButton.setTintColor(R.color.red, requireActivity().theme)
|
||||
false -> binding.checkButton.setTintColorAttribute(R.attr.colorOnSecondaryContainer, requireActivity().theme)
|
||||
true -> binding.checkButton.setTintColor(CoreR.color.red, requireActivity().theme)
|
||||
false -> binding.checkButton.setTintColorAttribute(MaterialR.attr.colorOnSecondaryContainer, requireActivity().theme)
|
||||
}
|
||||
|
||||
// Favorite icon
|
||||
val favoriteDrawable = when (favorite) {
|
||||
true -> R.drawable.ic_heart_filled
|
||||
false -> R.drawable.ic_heart
|
||||
true -> CoreR.drawable.ic_heart_filled
|
||||
false -> CoreR.drawable.ic_heart
|
||||
}
|
||||
binding.favoriteButton.setImageResource(favoriteDrawable)
|
||||
if (favorite) binding.favoriteButton.setTintColor(R.color.red, requireActivity().theme)
|
||||
if (favorite) binding.favoriteButton.setTintColor(CoreR.color.red, requireActivity().theme)
|
||||
|
||||
when (canDownload) {
|
||||
true -> {
|
||||
binding.downloadButtonWrapper.isVisible = true
|
||||
binding.downloadButton.isEnabled = !downloaded
|
||||
|
||||
if (downloaded) binding.downloadButton.setTintColor(R.color.red, requireActivity().theme)
|
||||
if (downloaded) binding.downloadButton.setTintColor(CoreR.color.red, requireActivity().theme)
|
||||
}
|
||||
false -> {
|
||||
binding.downloadButtonWrapper.isVisible = false
|
||||
|
@ -196,7 +197,7 @@ class EpisodeBottomSheetFragment : BottomSheetDialogFragment() {
|
|||
}
|
||||
|
||||
binding.episodeName.text = getString(
|
||||
R.string.episode_name_extended,
|
||||
CoreR.string.episode_name_extended,
|
||||
episode.parentIndexNumber,
|
||||
episode.indexNumber,
|
||||
episode.name
|
||||
|
@ -233,7 +234,7 @@ class EpisodeBottomSheetFragment : BottomSheetDialogFragment() {
|
|||
binding.playButton.setImageDrawable(
|
||||
ContextCompat.getDrawable(
|
||||
requireActivity(),
|
||||
R.drawable.ic_play
|
||||
CoreR.drawable.ic_play
|
||||
)
|
||||
)
|
||||
binding.progressCircular.visibility = View.INVISIBLE
|
||||
|
@ -246,7 +247,7 @@ class EpisodeBottomSheetFragment : BottomSheetDialogFragment() {
|
|||
binding.playButton.setImageDrawable(
|
||||
ContextCompat.getDrawable(
|
||||
requireActivity(),
|
||||
R.drawable.ic_play
|
||||
CoreR.drawable.ic_play
|
||||
)
|
||||
)
|
||||
binding.progressCircular.visibility = View.INVISIBLE
|
||||
|
|
|
@ -21,10 +21,10 @@ import androidx.lifecycle.lifecycleScope
|
|||
import androidx.lifecycle.repeatOnLifecycle
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import dev.jdtech.jellyfin.R
|
||||
import dev.jdtech.jellyfin.adapters.HomeEpisodeListAdapter
|
||||
import dev.jdtech.jellyfin.adapters.ViewItemListAdapter
|
||||
import dev.jdtech.jellyfin.adapters.ViewListAdapter
|
||||
import dev.jdtech.jellyfin.core.R as CoreR
|
||||
import dev.jdtech.jellyfin.databinding.FragmentHomeBinding
|
||||
import dev.jdtech.jellyfin.dialogs.ErrorDialogFragment
|
||||
import dev.jdtech.jellyfin.utils.checkIfLoginRequired
|
||||
|
@ -64,12 +64,12 @@ class HomeFragment : Fragment() {
|
|||
menuHost.addMenuProvider(
|
||||
object : MenuProvider {
|
||||
override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
|
||||
menuInflater.inflate(R.menu.home_menu, menu)
|
||||
menuInflater.inflate(CoreR.menu.home_menu, menu)
|
||||
|
||||
val settings = menu.findItem(R.id.action_settings)
|
||||
val search = menu.findItem(R.id.action_search)
|
||||
val settings = menu.findItem(CoreR.id.action_settings)
|
||||
val search = menu.findItem(CoreR.id.action_search)
|
||||
val searchView = search.actionView as SearchView
|
||||
searchView.queryHint = getString(R.string.search_hint)
|
||||
searchView.queryHint = getString(CoreR.string.search_hint)
|
||||
|
||||
search.setOnActionExpandListener(
|
||||
object : MenuItem.OnActionExpandListener {
|
||||
|
@ -101,7 +101,7 @@ class HomeFragment : Fragment() {
|
|||
|
||||
override fun onMenuItemSelected(menuItem: MenuItem): Boolean {
|
||||
return when (menuItem.itemId) {
|
||||
R.id.action_settings -> {
|
||||
CoreR.id.action_settings -> {
|
||||
navigateToSettingsFragment()
|
||||
true
|
||||
}
|
||||
|
@ -148,7 +148,7 @@ class HomeFragment : Fragment() {
|
|||
when (item.type) {
|
||||
BaseItemKind.EPISODE -> navigateToEpisodeBottomSheetFragment(item)
|
||||
BaseItemKind.MOVIE -> navigateToMediaInfoFragment(item)
|
||||
else -> Toast.makeText(requireContext(), R.string.unknown_error, LENGTH_LONG)
|
||||
else -> Toast.makeText(requireContext(), CoreR.string.unknown_error, LENGTH_LONG)
|
||||
.show()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,8 +20,8 @@ import androidx.navigation.fragment.navArgs
|
|||
import androidx.paging.LoadState
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import dev.jdtech.jellyfin.AppPreferences
|
||||
import dev.jdtech.jellyfin.R
|
||||
import dev.jdtech.jellyfin.adapters.ViewItemPagingAdapter
|
||||
import dev.jdtech.jellyfin.core.R as CoreR
|
||||
import dev.jdtech.jellyfin.databinding.FragmentLibraryBinding
|
||||
import dev.jdtech.jellyfin.dialogs.ErrorDialogFragment
|
||||
import dev.jdtech.jellyfin.dialogs.SortDialogFragment
|
||||
|
@ -63,12 +63,12 @@ class LibraryFragment : Fragment() {
|
|||
menuHost.addMenuProvider(
|
||||
object : MenuProvider {
|
||||
override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
|
||||
menuInflater.inflate(R.menu.library_menu, menu)
|
||||
menuInflater.inflate(CoreR.menu.library_menu, menu)
|
||||
}
|
||||
|
||||
override fun onMenuItemSelected(menuItem: MenuItem): Boolean {
|
||||
return when (menuItem.itemId) {
|
||||
R.id.action_sort_by -> {
|
||||
CoreR.id.action_sort_by -> {
|
||||
SortDialogFragment(
|
||||
args.libraryId,
|
||||
args.libraryType,
|
||||
|
@ -80,7 +80,7 @@ class LibraryFragment : Fragment() {
|
|||
)
|
||||
true
|
||||
}
|
||||
R.id.action_sort_order -> {
|
||||
CoreR.id.action_sort_order -> {
|
||||
SortDialogFragment(
|
||||
args.libraryId,
|
||||
args.libraryType,
|
||||
|
|
|
@ -16,8 +16,8 @@ import androidx.navigation.fragment.findNavController
|
|||
import androidx.navigation.fragment.navArgs
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import dev.jdtech.jellyfin.AppPreferences
|
||||
import dev.jdtech.jellyfin.R
|
||||
import dev.jdtech.jellyfin.adapters.UserLoginListAdapter
|
||||
import dev.jdtech.jellyfin.core.R as CoreR
|
||||
import dev.jdtech.jellyfin.database.ServerDatabaseDao
|
||||
import dev.jdtech.jellyfin.databinding.FragmentLoginBinding
|
||||
import dev.jdtech.jellyfin.viewmodels.LoginViewModel
|
||||
|
@ -109,7 +109,7 @@ class LoginFragment : Fragment() {
|
|||
}
|
||||
is LoginViewModel.QuickConnectUiState.Normal -> {
|
||||
binding.buttonQuickconnectLayout.isVisible = true
|
||||
binding.buttonQuickconnect.text = resources.getString(R.string.quick_connect)
|
||||
binding.buttonQuickconnect.text = resources.getString(CoreR.string.quick_connect)
|
||||
binding.buttonQuickconnectProgress.isVisible = false
|
||||
}
|
||||
is LoginViewModel.QuickConnectUiState.Waiting -> {
|
||||
|
|
|
@ -19,8 +19,8 @@ import androidx.lifecycle.lifecycleScope
|
|||
import androidx.lifecycle.repeatOnLifecycle
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import dev.jdtech.jellyfin.R
|
||||
import dev.jdtech.jellyfin.adapters.CollectionListAdapter
|
||||
import dev.jdtech.jellyfin.core.R as CoreR
|
||||
import dev.jdtech.jellyfin.databinding.FragmentMediaBinding
|
||||
import dev.jdtech.jellyfin.dialogs.ErrorDialogFragment
|
||||
import dev.jdtech.jellyfin.utils.checkIfLoginRequired
|
||||
|
@ -84,11 +84,11 @@ class MediaFragment : Fragment() {
|
|||
menuHost.addMenuProvider(
|
||||
object : MenuProvider {
|
||||
override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
|
||||
menuInflater.inflate(R.menu.media_menu, menu)
|
||||
menuInflater.inflate(CoreR.menu.media_menu, menu)
|
||||
|
||||
val search = menu.findItem(R.id.action_search)
|
||||
val search = menu.findItem(CoreR.id.action_search)
|
||||
val searchView = search.actionView as SearchView
|
||||
searchView.queryHint = getString(R.string.search_hint)
|
||||
searchView.queryHint = getString(CoreR.string.search_hint)
|
||||
|
||||
searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
|
||||
override fun onQueryTextSubmit(p0: String?): Boolean {
|
||||
|
|
|
@ -16,13 +16,14 @@ import androidx.lifecycle.lifecycleScope
|
|||
import androidx.lifecycle.repeatOnLifecycle
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import androidx.navigation.fragment.navArgs
|
||||
import com.google.android.material.R as MaterialR
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import dev.jdtech.jellyfin.AppPreferences
|
||||
import dev.jdtech.jellyfin.R
|
||||
import dev.jdtech.jellyfin.adapters.PersonListAdapter
|
||||
import dev.jdtech.jellyfin.adapters.ViewItemListAdapter
|
||||
import dev.jdtech.jellyfin.bindBaseItemImage
|
||||
import dev.jdtech.jellyfin.bindItemBackdropImage
|
||||
import dev.jdtech.jellyfin.core.R as CoreR
|
||||
import dev.jdtech.jellyfin.databinding.FragmentMediaInfoBinding
|
||||
import dev.jdtech.jellyfin.dialogs.ErrorDialogFragment
|
||||
import dev.jdtech.jellyfin.dialogs.VideoVersionDialogFragment
|
||||
|
@ -165,14 +166,14 @@ class MediaInfoFragment : Fragment() {
|
|||
true -> {
|
||||
viewModel.markAsUnplayed(args.itemId)
|
||||
binding.checkButton.setTintColorAttribute(
|
||||
R.attr.colorOnSecondaryContainer,
|
||||
MaterialR.attr.colorOnSecondaryContainer,
|
||||
requireActivity().theme
|
||||
)
|
||||
}
|
||||
|
||||
false -> {
|
||||
viewModel.markAsPlayed(args.itemId)
|
||||
binding.checkButton.setTintColor(R.color.red, requireActivity().theme)
|
||||
binding.checkButton.setTintColor(CoreR.color.red, requireActivity().theme)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -181,17 +182,17 @@ class MediaInfoFragment : Fragment() {
|
|||
when (viewModel.favorite) {
|
||||
true -> {
|
||||
viewModel.unmarkAsFavorite(args.itemId)
|
||||
binding.favoriteButton.setImageResource(R.drawable.ic_heart)
|
||||
binding.favoriteButton.setImageResource(CoreR.drawable.ic_heart)
|
||||
binding.favoriteButton.setTintColorAttribute(
|
||||
R.attr.colorOnSecondaryContainer,
|
||||
MaterialR.attr.colorOnSecondaryContainer,
|
||||
requireActivity().theme
|
||||
)
|
||||
}
|
||||
|
||||
false -> {
|
||||
viewModel.markAsFavorite(args.itemId)
|
||||
binding.favoriteButton.setImageResource(R.drawable.ic_heart_filled)
|
||||
binding.favoriteButton.setTintColor(R.color.red, requireActivity().theme)
|
||||
binding.favoriteButton.setImageResource(CoreR.drawable.ic_heart_filled)
|
||||
binding.favoriteButton.setTintColor(CoreR.color.red, requireActivity().theme)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -201,7 +202,7 @@ class MediaInfoFragment : Fragment() {
|
|||
viewModel.download()
|
||||
binding.downloadButton.imageTintList = ColorStateList.valueOf(
|
||||
resources.getColor(
|
||||
R.color.red,
|
||||
CoreR.color.red,
|
||||
requireActivity().theme
|
||||
)
|
||||
)
|
||||
|
@ -214,7 +215,7 @@ class MediaInfoFragment : Fragment() {
|
|||
|
||||
binding.deleteButton.setOnClickListener {
|
||||
viewModel.deleteItem()
|
||||
findNavController().navigate(R.id.downloadFragment)
|
||||
findNavController().navigate(CoreR.id.downloadFragment)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -231,7 +232,7 @@ class MediaInfoFragment : Fragment() {
|
|||
val clickable = canPlay && (available || canRetry)
|
||||
binding.playButton.isEnabled = clickable
|
||||
binding.playButton.alpha = if (!clickable) 0.5F else 1.0F
|
||||
binding.playButton.setImageResource(if (!canRetry) R.drawable.ic_play else R.drawable.ic_rotate_ccw)
|
||||
binding.playButton.setImageResource(if (!canRetry) CoreR.drawable.ic_play else CoreR.drawable.ic_rotate_ccw)
|
||||
if (!(available || canRetry)) {
|
||||
binding.playButton.setImageResource(android.R.color.transparent)
|
||||
binding.progressCircular.isVisible = true
|
||||
|
@ -239,20 +240,20 @@ class MediaInfoFragment : Fragment() {
|
|||
|
||||
// Check icon
|
||||
when (played) {
|
||||
true -> binding.checkButton.setTintColor(R.color.red, requireActivity().theme)
|
||||
true -> binding.checkButton.setTintColor(CoreR.color.red, requireActivity().theme)
|
||||
false -> binding.checkButton.setTintColorAttribute(
|
||||
R.attr.colorOnSecondaryContainer,
|
||||
MaterialR.attr.colorOnSecondaryContainer,
|
||||
requireActivity().theme
|
||||
)
|
||||
}
|
||||
|
||||
// Favorite icon
|
||||
val favoriteDrawable = when (favorite) {
|
||||
true -> R.drawable.ic_heart_filled
|
||||
false -> R.drawable.ic_heart
|
||||
true -> CoreR.drawable.ic_heart_filled
|
||||
false -> CoreR.drawable.ic_heart
|
||||
}
|
||||
binding.favoriteButton.setImageResource(favoriteDrawable)
|
||||
if (favorite) binding.favoriteButton.setTintColor(R.color.red, requireActivity().theme)
|
||||
if (favorite) binding.favoriteButton.setTintColor(CoreR.color.red, requireActivity().theme)
|
||||
|
||||
when (canDownload) {
|
||||
true -> {
|
||||
|
@ -260,7 +261,7 @@ class MediaInfoFragment : Fragment() {
|
|||
binding.downloadButton.isEnabled = !downloaded
|
||||
|
||||
if (downloaded) binding.downloadButton.setTintColor(
|
||||
R.color.red,
|
||||
CoreR.color.red,
|
||||
requireActivity().theme
|
||||
)
|
||||
}
|
||||
|
@ -355,7 +356,7 @@ class MediaInfoFragment : Fragment() {
|
|||
binding.description.text = item.overview
|
||||
binding.nextUpLayout.isVisible = nextUp != null
|
||||
binding.nextUpName.text = getString(
|
||||
R.string.episode_name_extended,
|
||||
CoreR.string.episode_name_extended,
|
||||
nextUp?.parentIndexNumber,
|
||||
nextUp?.indexNumber,
|
||||
nextUp?.name
|
||||
|
@ -391,7 +392,7 @@ class MediaInfoFragment : Fragment() {
|
|||
binding.playButton.setImageDrawable(
|
||||
ContextCompat.getDrawable(
|
||||
requireActivity(),
|
||||
R.drawable.ic_play
|
||||
CoreR.drawable.ic_play
|
||||
)
|
||||
)
|
||||
binding.progressCircular.visibility = View.INVISIBLE
|
||||
|
@ -403,7 +404,7 @@ class MediaInfoFragment : Fragment() {
|
|||
binding.playButton.setImageDrawable(
|
||||
ContextCompat.getDrawable(
|
||||
requireActivity(),
|
||||
R.drawable.ic_play
|
||||
CoreR.drawable.ic_play
|
||||
)
|
||||
)
|
||||
binding.progressCircular.visibility = View.INVISIBLE
|
||||
|
|
|
@ -15,9 +15,9 @@ import androidx.lifecycle.repeatOnLifecycle
|
|||
import androidx.navigation.fragment.findNavController
|
||||
import androidx.navigation.fragment.navArgs
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import dev.jdtech.jellyfin.R
|
||||
import dev.jdtech.jellyfin.adapters.ViewItemListAdapter
|
||||
import dev.jdtech.jellyfin.bindItemImage
|
||||
import dev.jdtech.jellyfin.core.R as CoreR
|
||||
import dev.jdtech.jellyfin.databinding.FragmentPersonDetailBinding
|
||||
import dev.jdtech.jellyfin.dialogs.ErrorDialogFragment
|
||||
import dev.jdtech.jellyfin.utils.checkIfLoginRequired
|
||||
|
@ -126,11 +126,11 @@ internal class PersonDetailFragment : Fragment() {
|
|||
with(binding.overview) {
|
||||
if (layoutParams.height == ConstraintLayout.LayoutParams.WRAP_CONTENT) {
|
||||
updateLayoutParams { height = ConstraintLayout.LayoutParams.MATCH_CONSTRAINT }
|
||||
binding.readAll.text = getString(R.string.view_all)
|
||||
binding.readAll.text = getString(CoreR.string.view_all)
|
||||
binding.overviewGradient.isVisible = true
|
||||
} else {
|
||||
updateLayoutParams { height = ConstraintLayout.LayoutParams.WRAP_CONTENT }
|
||||
binding.readAll.text = getString(R.string.hide)
|
||||
binding.readAll.text = getString(CoreR.string.hide)
|
||||
binding.overviewGradient.isVisible = false
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,12 +5,12 @@ import androidx.appcompat.app.AppCompatDelegate
|
|||
import androidx.preference.ListPreference
|
||||
import androidx.preference.PreferenceFragmentCompat
|
||||
import androidx.preference.SwitchPreferenceCompat
|
||||
import dev.jdtech.jellyfin.R
|
||||
import dev.jdtech.jellyfin.core.R as CoreR
|
||||
|
||||
@Suppress("unused")
|
||||
class SettingsAppearanceFragment : PreferenceFragmentCompat() {
|
||||
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
|
||||
setPreferencesFromResource(R.xml.fragment_settings_appearance, rootKey)
|
||||
setPreferencesFromResource(CoreR.xml.fragment_settings_appearance, rootKey)
|
||||
|
||||
findPreference<ListPreference>("theme")?.setOnPreferenceChangeListener { _, newValue ->
|
||||
when (newValue) {
|
||||
|
|
|
@ -4,12 +4,12 @@ import android.os.Bundle
|
|||
import android.text.InputType
|
||||
import androidx.preference.EditTextPreference
|
||||
import androidx.preference.PreferenceFragmentCompat
|
||||
import dev.jdtech.jellyfin.R
|
||||
import dev.jdtech.jellyfin.core.R as CoreR
|
||||
|
||||
@Suppress("unused")
|
||||
class SettingsCacheFragment : PreferenceFragmentCompat() {
|
||||
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
|
||||
setPreferencesFromResource(R.xml.fragment_settings_cache, rootKey)
|
||||
setPreferencesFromResource(CoreR.xml.fragment_settings_cache, rootKey)
|
||||
|
||||
findPreference<EditTextPreference>("pref_image_cache_size")?.setOnBindEditTextListener { editText ->
|
||||
editText.inputType = InputType.TYPE_CLASS_NUMBER
|
||||
|
|
|
@ -5,7 +5,7 @@ import androidx.fragment.app.viewModels
|
|||
import androidx.preference.EditTextPreference
|
||||
import androidx.preference.PreferenceFragmentCompat
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import dev.jdtech.jellyfin.R
|
||||
import dev.jdtech.jellyfin.core.R as CoreR
|
||||
import dev.jdtech.jellyfin.viewmodels.SettingsDeviceViewModel
|
||||
|
||||
@AndroidEntryPoint
|
||||
|
@ -15,7 +15,7 @@ class SettingsDeviceFragment : PreferenceFragmentCompat() {
|
|||
private val viewModel: SettingsDeviceViewModel by viewModels()
|
||||
|
||||
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
|
||||
setPreferencesFromResource(R.xml.fragment_settings_device, rootKey)
|
||||
setPreferencesFromResource(CoreR.xml.fragment_settings_device, rootKey)
|
||||
|
||||
findPreference<EditTextPreference>("deviceName")?.setOnPreferenceChangeListener { _, name ->
|
||||
viewModel.updateDeviceName(name.toString())
|
||||
|
|
|
@ -2,11 +2,11 @@ package dev.jdtech.jellyfin.fragments
|
|||
|
||||
import android.os.Bundle
|
||||
import androidx.preference.PreferenceFragmentCompat
|
||||
import dev.jdtech.jellyfin.R
|
||||
import dev.jdtech.jellyfin.core.R as CoreR
|
||||
|
||||
@Suppress("unused")
|
||||
class SettingsDownloadsFragment : PreferenceFragmentCompat() {
|
||||
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
|
||||
setPreferencesFromResource(R.xml.fragment_settings_downloads, rootKey)
|
||||
setPreferencesFromResource(CoreR.xml.fragment_settings_downloads, rootKey)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,7 +8,7 @@ import androidx.preference.Preference
|
|||
import androidx.preference.PreferenceFragmentCompat
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import dev.jdtech.jellyfin.AppPreferences
|
||||
import dev.jdtech.jellyfin.R
|
||||
import dev.jdtech.jellyfin.core.R as CoreR
|
||||
import javax.inject.Inject
|
||||
|
||||
@AndroidEntryPoint
|
||||
|
@ -17,7 +17,7 @@ class SettingsFragment : PreferenceFragmentCompat() {
|
|||
lateinit var appPreferences: AppPreferences
|
||||
|
||||
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
|
||||
setPreferencesFromResource(R.xml.fragment_settings, rootKey)
|
||||
setPreferencesFromResource(CoreR.xml.fragment_settings, rootKey)
|
||||
|
||||
findPreference<Preference>("switchServer")?.setOnPreferenceClickListener {
|
||||
findNavController().navigate(TwoPaneSettingsFragmentDirections.actionNavigationSettingsToServerSelectFragment())
|
||||
|
|
|
@ -2,11 +2,11 @@ package dev.jdtech.jellyfin.fragments
|
|||
|
||||
import android.os.Bundle
|
||||
import androidx.preference.PreferenceFragmentCompat
|
||||
import dev.jdtech.jellyfin.R
|
||||
import dev.jdtech.jellyfin.core.R as CoreR
|
||||
|
||||
@Suppress("unused")
|
||||
class SettingsLanguageFragment : PreferenceFragmentCompat() {
|
||||
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
|
||||
setPreferencesFromResource(R.xml.fragment_settings_language, rootKey)
|
||||
setPreferencesFromResource(CoreR.xml.fragment_settings_language, rootKey)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,12 +5,12 @@ import android.text.InputType
|
|||
import androidx.preference.EditTextPreference
|
||||
import androidx.preference.PreferenceFragmentCompat
|
||||
import dev.jdtech.jellyfin.Constants
|
||||
import dev.jdtech.jellyfin.R
|
||||
import dev.jdtech.jellyfin.core.R as CoreR
|
||||
|
||||
@Suppress("unused")
|
||||
class SettingsNetworkFragment : PreferenceFragmentCompat() {
|
||||
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
|
||||
setPreferencesFromResource(R.xml.fragment_settings_network, rootKey)
|
||||
setPreferencesFromResource(CoreR.xml.fragment_settings_network, rootKey)
|
||||
|
||||
findPreference<EditTextPreference>(Constants.PREF_NETWORK_SOCKET_TIMEOUT)?.setOnBindEditTextListener { editText ->
|
||||
editText.inputType = InputType.TYPE_CLASS_NUMBER
|
||||
|
|
|
@ -7,12 +7,12 @@ import android.text.InputType
|
|||
import androidx.preference.EditTextPreference
|
||||
import androidx.preference.Preference
|
||||
import androidx.preference.PreferenceFragmentCompat
|
||||
import dev.jdtech.jellyfin.R
|
||||
import dev.jdtech.jellyfin.core.R as CoreR
|
||||
|
||||
@Suppress("unused")
|
||||
class SettingsPlayerFragment : PreferenceFragmentCompat() {
|
||||
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
|
||||
setPreferencesFromResource(R.xml.fragment_settings_player, rootKey)
|
||||
setPreferencesFromResource(CoreR.xml.fragment_settings_player, rootKey)
|
||||
findPreference<EditTextPreference>("pref_player_seek_back_inc")?.setOnBindEditTextListener { editText ->
|
||||
editText.inputType = InputType.TYPE_CLASS_NUMBER
|
||||
}
|
||||
|
|
|
@ -28,8 +28,8 @@ android {
|
|||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility = JavaVersion.VERSION_11
|
||||
targetCompatibility = JavaVersion.VERSION_11
|
||||
sourceCompatibility = JavaVersion.VERSION_17
|
||||
targetCompatibility = JavaVersion.VERSION_17
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -32,8 +32,8 @@ android {
|
|||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility = JavaVersion.VERSION_11
|
||||
targetCompatibility = JavaVersion.VERSION_11
|
||||
sourceCompatibility = JavaVersion.VERSION_17
|
||||
targetCompatibility = JavaVersion.VERSION_17
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -18,6 +18,4 @@ android.useAndroidX=true
|
|||
# Kotlin code style for this project: "official" or "obsolete":
|
||||
kotlin.code.style=official
|
||||
android.injected.testOnly=false
|
||||
|
||||
# For compatibility with AGP 7.4. Should be removed when AGP 8.0 is released
|
||||
android.experimental.legacyTransform.forceNonIncremental=true
|
||||
android.defaults.buildfeatures.buildconfig=true
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[versions]
|
||||
aboutlibraries = "10.6.2"
|
||||
android-plugin = "7.4.2"
|
||||
android-plugin = "8.0.0"
|
||||
androidx-activity = "1.7.0"
|
||||
androidx-appcompat = "1.6.1"
|
||||
androidx-constraintlayout = "2.1.4"
|
||||
|
|
|
@ -26,8 +26,8 @@ android {
|
|||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility = JavaVersion.VERSION_11
|
||||
targetCompatibility = JavaVersion.VERSION_11
|
||||
sourceCompatibility = JavaVersion.VERSION_17
|
||||
targetCompatibility = JavaVersion.VERSION_17
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -27,8 +27,8 @@ android {
|
|||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility = JavaVersion.VERSION_11
|
||||
targetCompatibility = JavaVersion.VERSION_11
|
||||
sourceCompatibility = JavaVersion.VERSION_17
|
||||
targetCompatibility = JavaVersion.VERSION_17
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -24,8 +24,8 @@ android {
|
|||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility = JavaVersion.VERSION_11
|
||||
targetCompatibility = JavaVersion.VERSION_11
|
||||
sourceCompatibility = JavaVersion.VERSION_17
|
||||
targetCompatibility = JavaVersion.VERSION_17
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue