From a1699679df48a96cbd985c15d416830ff63b958f Mon Sep 17 00:00:00 2001 From: Lory-Stan TANASI Date: Tue, 25 Jul 2023 12:00:50 +0200 Subject: [PATCH 1/6] refactor: reformat code --- .../activities/main/MainActivity.kt | 1 - .../tanasi/streamflix/adapters/AppAdapter.kt | 40 +++++++++++++++++-- .../viewholders/ProviderViewHolder.kt | 2 - .../adapters/viewholders/TvShowViewHolder.kt | 7 +++- .../fragments/player/PlayerViewModel.kt | 2 +- .../tanasi/streamflix/providers/Provider.kt | 8 +++- .../com/tanasi/streamflix/utils/Extensions.kt | 10 ++++- 7 files changed, 59 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/com/tanasi/streamflix/activities/main/MainActivity.kt b/app/src/main/java/com/tanasi/streamflix/activities/main/MainActivity.kt index db958d99..e65dc84a 100644 --- a/app/src/main/java/com/tanasi/streamflix/activities/main/MainActivity.kt +++ b/app/src/main/java/com/tanasi/streamflix/activities/main/MainActivity.kt @@ -6,7 +6,6 @@ import android.widget.Toast import androidx.activity.OnBackPressedCallback import androidx.activity.viewModels import androidx.fragment.app.FragmentActivity -import androidx.navigation.NavOptions import androidx.navigation.fragment.NavHostFragment import com.bumptech.glide.Glide import com.tanasi.navigation.widget.setupWithNavController diff --git a/app/src/main/java/com/tanasi/streamflix/adapters/AppAdapter.kt b/app/src/main/java/com/tanasi/streamflix/adapters/AppAdapter.kt index f5aba3d6..ab49e11c 100644 --- a/app/src/main/java/com/tanasi/streamflix/adapters/AppAdapter.kt +++ b/app/src/main/java/com/tanasi/streamflix/adapters/AppAdapter.kt @@ -3,9 +3,43 @@ package com.tanasi.streamflix.adapters import android.view.LayoutInflater import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import com.tanasi.streamflix.adapters.viewholders.* -import com.tanasi.streamflix.databinding.* -import com.tanasi.streamflix.models.* +import com.tanasi.streamflix.adapters.viewholders.CategoryViewHolder +import com.tanasi.streamflix.adapters.viewholders.EpisodeViewHolder +import com.tanasi.streamflix.adapters.viewholders.GenreViewHolder +import com.tanasi.streamflix.adapters.viewholders.MovieViewHolder +import com.tanasi.streamflix.adapters.viewholders.PeopleViewHolder +import com.tanasi.streamflix.adapters.viewholders.ProviderViewHolder +import com.tanasi.streamflix.adapters.viewholders.SeasonViewHolder +import com.tanasi.streamflix.adapters.viewholders.TvShowViewHolder +import com.tanasi.streamflix.databinding.ContentCategorySwiperBinding +import com.tanasi.streamflix.databinding.ContentMovieBinding +import com.tanasi.streamflix.databinding.ContentMovieCastsBinding +import com.tanasi.streamflix.databinding.ContentMovieRecommendationsBinding +import com.tanasi.streamflix.databinding.ContentPeopleBinding +import com.tanasi.streamflix.databinding.ContentTvShowBinding +import com.tanasi.streamflix.databinding.ContentTvShowCastsBinding +import com.tanasi.streamflix.databinding.ContentTvShowRecommendationsBinding +import com.tanasi.streamflix.databinding.ContentTvShowSeasonsBinding +import com.tanasi.streamflix.databinding.ItemCategoryBinding +import com.tanasi.streamflix.databinding.ItemEpisodeBinding +import com.tanasi.streamflix.databinding.ItemEpisodeContinueWatchingBinding +import com.tanasi.streamflix.databinding.ItemGenreGridBinding +import com.tanasi.streamflix.databinding.ItemMovieBinding +import com.tanasi.streamflix.databinding.ItemMovieContinueWatchingBinding +import com.tanasi.streamflix.databinding.ItemMovieGridBinding +import com.tanasi.streamflix.databinding.ItemPeopleBinding +import com.tanasi.streamflix.databinding.ItemProviderBinding +import com.tanasi.streamflix.databinding.ItemSeasonBinding +import com.tanasi.streamflix.databinding.ItemTvShowBinding +import com.tanasi.streamflix.databinding.ItemTvShowGridBinding +import com.tanasi.streamflix.models.Category +import com.tanasi.streamflix.models.Episode +import com.tanasi.streamflix.models.Genre +import com.tanasi.streamflix.models.Movie +import com.tanasi.streamflix.models.People +import com.tanasi.streamflix.models.Provider +import com.tanasi.streamflix.models.Season +import com.tanasi.streamflix.models.TvShow class AppAdapter( val items: MutableList = mutableListOf() diff --git a/app/src/main/java/com/tanasi/streamflix/adapters/viewholders/ProviderViewHolder.kt b/app/src/main/java/com/tanasi/streamflix/adapters/viewholders/ProviderViewHolder.kt index 3238e51a..c95952e2 100644 --- a/app/src/main/java/com/tanasi/streamflix/adapters/viewholders/ProviderViewHolder.kt +++ b/app/src/main/java/com/tanasi/streamflix/adapters/viewholders/ProviderViewHolder.kt @@ -1,11 +1,9 @@ package com.tanasi.streamflix.adapters.viewholders -import androidx.navigation.NavOptions import androidx.navigation.findNavController import androidx.recyclerview.widget.RecyclerView import androidx.viewbinding.ViewBinding import com.bumptech.glide.Glide -import com.tanasi.streamflix.R import com.tanasi.streamflix.databinding.ItemProviderBinding import com.tanasi.streamflix.fragments.providers.ProvidersFragmentDirections import com.tanasi.streamflix.models.Provider diff --git a/app/src/main/java/com/tanasi/streamflix/adapters/viewholders/TvShowViewHolder.kt b/app/src/main/java/com/tanasi/streamflix/adapters/viewholders/TvShowViewHolder.kt index 2207127a..13de9341 100644 --- a/app/src/main/java/com/tanasi/streamflix/adapters/viewholders/TvShowViewHolder.kt +++ b/app/src/main/java/com/tanasi/streamflix/adapters/viewholders/TvShowViewHolder.kt @@ -11,7 +11,12 @@ import androidx.viewbinding.ViewBinding import com.bumptech.glide.Glide import com.tanasi.streamflix.R import com.tanasi.streamflix.adapters.AppAdapter -import com.tanasi.streamflix.databinding.* +import com.tanasi.streamflix.databinding.ContentTvShowBinding +import com.tanasi.streamflix.databinding.ContentTvShowCastsBinding +import com.tanasi.streamflix.databinding.ContentTvShowRecommendationsBinding +import com.tanasi.streamflix.databinding.ContentTvShowSeasonsBinding +import com.tanasi.streamflix.databinding.ItemTvShowBinding +import com.tanasi.streamflix.databinding.ItemTvShowGridBinding import com.tanasi.streamflix.fragments.genre.GenreFragment import com.tanasi.streamflix.fragments.genre.GenreFragmentDirections import com.tanasi.streamflix.fragments.home.HomeFragment diff --git a/app/src/main/java/com/tanasi/streamflix/fragments/player/PlayerViewModel.kt b/app/src/main/java/com/tanasi/streamflix/fragments/player/PlayerViewModel.kt index 568f52a2..f57bf8bf 100644 --- a/app/src/main/java/com/tanasi/streamflix/fragments/player/PlayerViewModel.kt +++ b/app/src/main/java/com/tanasi/streamflix/fragments/player/PlayerViewModel.kt @@ -28,7 +28,7 @@ class PlayerViewModel( } - fun getVideo( + private fun getVideo( videoType: PlayerFragment.VideoType, id: String, ) = viewModelScope.launch(Dispatchers.IO) { diff --git a/app/src/main/java/com/tanasi/streamflix/providers/Provider.kt b/app/src/main/java/com/tanasi/streamflix/providers/Provider.kt index 1f4c12db..1ab98290 100644 --- a/app/src/main/java/com/tanasi/streamflix/providers/Provider.kt +++ b/app/src/main/java/com/tanasi/streamflix/providers/Provider.kt @@ -2,7 +2,13 @@ package com.tanasi.streamflix.providers import com.tanasi.streamflix.adapters.AppAdapter import com.tanasi.streamflix.fragments.player.PlayerFragment -import com.tanasi.streamflix.models.* +import com.tanasi.streamflix.models.Category +import com.tanasi.streamflix.models.Episode +import com.tanasi.streamflix.models.Genre +import com.tanasi.streamflix.models.Movie +import com.tanasi.streamflix.models.People +import com.tanasi.streamflix.models.TvShow +import com.tanasi.streamflix.models.Video interface Provider { diff --git a/app/src/main/java/com/tanasi/streamflix/utils/Extensions.kt b/app/src/main/java/com/tanasi/streamflix/utils/Extensions.kt index 30286df6..ac8424bb 100644 --- a/app/src/main/java/com/tanasi/streamflix/utils/Extensions.kt +++ b/app/src/main/java/com/tanasi/streamflix/utils/Extensions.kt @@ -19,7 +19,8 @@ import com.google.android.exoplayer2.Tracks import com.tanasi.streamflix.R import com.tanasi.streamflix.activities.main.MainActivity import java.text.SimpleDateFormat -import java.util.* +import java.util.Calendar +import java.util.Locale import kotlin.math.abs fun String.toCalendar(): Calendar? { @@ -120,7 +121,12 @@ inline fun View.layoutParams(block: T.() -> if (layoutParams is T) block(layoutParams as T) } -fun View.margin(left: Float? = null, top: Float? = null, right: Float? = null, bottom: Float? = null) { +fun View.margin( + left: Float? = null, + top: Float? = null, + right: Float? = null, + bottom: Float? = null +) { layoutParams { left?.run { leftMargin = dpToPx(this) } top?.run { topMargin = dpToPx(this) } From 509afd4f1241426e5a23caf0adbbba83d1fcc0ef Mon Sep 17 00:00:00 2001 From: Lory-Stan TANASI Date: Tue, 25 Jul 2023 12:01:05 +0200 Subject: [PATCH 2/6] build: upgrade Android Gradle Plugin dependency from 7.3.1 to 7.4.2 --- build.gradle | 4 ++-- gradle/wrapper/gradle-wrapper.properties | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build.gradle b/build.gradle index d01ff06c..bee4ab87 100644 --- a/build.gradle +++ b/build.gradle @@ -10,8 +10,8 @@ buildscript { } plugins { - id 'com.android.application' version '7.3.1' apply false - id 'com.android.library' version '7.3.1' apply false + id 'com.android.application' version '7.4.2' apply false + id 'com.android.library' version '7.4.2' apply false id 'org.jetbrains.kotlin.android' version '1.6.21' apply false } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index a18d54e5..f45ca71c 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ #Sat May 21 18:07:27 CEST 2022 distributionBase=GRADLE_USER_HOME -distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip distributionPath=wrapper/dists zipStorePath=wrapper/dists zipStoreBase=GRADLE_USER_HOME From 49d5b37bc718ae2a7f72c390be84a021e4bee98a Mon Sep 17 00:00:00 2001 From: Lory-Stan TANASI Date: Tue, 25 Jul 2023 12:01:18 +0200 Subject: [PATCH 3/6] build: upgrade Android Gradle Plugin dependency from 7.4.2 to 8.0.2 --- build.gradle | 4 ++-- gradle.properties | 4 +++- gradle/wrapper/gradle-wrapper.properties | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/build.gradle b/build.gradle index bee4ab87..e0cf71ab 100644 --- a/build.gradle +++ b/build.gradle @@ -10,8 +10,8 @@ buildscript { } plugins { - id 'com.android.application' version '7.4.2' apply false - id 'com.android.library' version '7.4.2' apply false + id 'com.android.application' version '8.0.2' apply false + id 'com.android.library' version '8.0.2' apply false id 'org.jetbrains.kotlin.android' version '1.6.21' apply false } diff --git a/gradle.properties b/gradle.properties index cd0519bb..022338b7 100644 --- a/gradle.properties +++ b/gradle.properties @@ -20,4 +20,6 @@ kotlin.code.style=official # Enables namespacing of each library's R class so that its R class includes only the # resources declared in the library itself and none from the library's dependencies, # thereby reducing the size of the R class for that library -android.nonTransitiveRClass=true \ No newline at end of file +android.nonTransitiveRClass=true +android.defaults.buildfeatures.buildconfig=true +android.nonFinalResIds=false \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index f45ca71c..b679bd1c 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ #Sat May 21 18:07:27 CEST 2022 distributionBase=GRADLE_USER_HOME -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip distributionPath=wrapper/dists zipStorePath=wrapper/dists zipStoreBase=GRADLE_USER_HOME From 53f7c772b7757852858b14e1a967531028af3163 Mon Sep 17 00:00:00 2001 From: Lory-Stan TANASI Date: Tue, 25 Jul 2023 12:01:33 +0200 Subject: [PATCH 4/6] build(gradle): update dependencies --- app/build.gradle | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 08db034d..aafd0e04 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -40,11 +40,11 @@ dependencies { implementation 'androidx.leanback:leanback:1.0.0' implementation 'com.github.bumptech.glide:glide:4.13.1' - implementation 'com.google.android.exoplayer:exoplayer-core:2.18.5' - implementation 'com.google.android.exoplayer:exoplayer-dash:2.18.5' - implementation 'com.google.android.exoplayer:exoplayer-hls:2.18.5' - implementation 'com.google.android.exoplayer:extension-mediasession:2.18.5' - implementation 'com.google.android.exoplayer:exoplayer-ui:2.18.5' + implementation 'com.google.android.exoplayer:exoplayer-core:2.19.0' + implementation 'com.google.android.exoplayer:exoplayer-dash:2.19.0' + implementation 'com.google.android.exoplayer:exoplayer-hls:2.19.0' + implementation 'com.google.android.exoplayer:extension-mediasession:2.19.0' + implementation 'com.google.android.exoplayer:exoplayer-ui:2.19.0' implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup.okhttp3:okhttp:5.0.0-alpha.9' From ed7ab6061c6ccbae66b42ca035b511e854cc52cf Mon Sep 17 00:00:00 2001 From: Lory-Stan TANASI Date: Tue, 25 Jul 2023 12:01:48 +0200 Subject: [PATCH 5/6] build(gradle): update version to 1.3.4 --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index aafd0e04..4b66ad05 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -13,8 +13,8 @@ android { applicationId "com.tanasi.streamflix" minSdk 23 targetSdk 33 - versionCode 8 - versionName "1.3.3" + versionCode 9 + versionName "1.3.4" } buildTypes { From e5e25fb206853cdd7bfcb4715beabc745ec7dd05 Mon Sep 17 00:00:00 2001 From: Lory-Stan TANASI Date: Tue, 25 Jul 2023 12:19:50 +0200 Subject: [PATCH 6/6] feat(github): use Java 17 to run release workflow --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6bc9c2d4..5cc7ba86 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -16,7 +16,7 @@ jobs: - name: Setup JDK environment uses: actions/setup-java@v1 with: - java-version: 11 + java-version: 17 - name: Make Gradle executable run: chmod +x ./gradlew