From 95e0d2c26a71eaea7c731a053f6cadf2378310ed Mon Sep 17 00:00:00 2001 From: Filipe Bezerra Date: Mon, 7 Dec 2020 13:44:24 -0300 Subject: [PATCH 1/6] refactor: Update libraries and build file to latest versions --- app/build.gradle | 29 +++++++++++++++++++---------- build.gradle | 20 ++++++++++---------- 2 files changed, 29 insertions(+), 20 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index f3b69919..940328fb 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -15,17 +15,18 @@ * */ -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'kotlin-kapt' -apply plugin: "androidx.navigation.safeargs" -apply plugin: 'kotlin-android-extensions' +plugins { + id 'com.android.application' + id 'kotlin-android' + id 'kotlin-kapt' + id 'androidx.navigation.safeargs.kotlin' +} android { compileSdkVersion 30 defaultConfig { applicationId "com.example.android.devbyteviewer" - minSdkVersion 19 + minSdkVersion 21 targetSdkVersion 30 versionCode 1 versionName "1.0" @@ -38,11 +39,20 @@ android { proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } - + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + kotlinOptions { + jvmTarget = '1.8' + } buildFeatures { dataBinding true } - + packagingOptions { + exclude 'DebugProbesKt.bin' + exclude 'META-INF/atomicfu.kotlin_module' + } } dependencies { @@ -51,7 +61,7 @@ dependencies { // Support libraries implementation "androidx.appcompat:appcompat:$version_appcompat" - implementation "androidx.fragment:fragment:$version_fragment" + implementation "androidx.fragment:fragment-ktx:$version_fragment" implementation "androidx.constraintlayout:constraintlayout:$version_constraint_layout" // Android KTX @@ -68,7 +78,6 @@ dependencies { // Retrofit for networking implementation "com.squareup.retrofit2:retrofit:$version_retrofit" implementation "com.squareup.retrofit2:converter-moshi:$version_retrofit" - implementation "com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:$version_retrofit_coroutines_adapter" // Moshi for parsing the JSON format implementation "com.squareup.moshi:moshi:$version_moshi" diff --git a/build.gradle b/build.gradle index 96b9bbb6..e369b020 100644 --- a/build.gradle +++ b/build.gradle @@ -19,23 +19,23 @@ buildscript { ext { - version_core = "1.3.1" + version_core = "1.3.2" version_coroutine = "1.3.7" version_retrofit_coroutines_adapter = "0.9.2" version_navigation = '1.0.0' - version_constraint_layout = "2.0.0" - version_gradle = '4.0.1' - version_kotlin = "1.3.72" + version_constraint_layout = "2.0.4" + version_gradle = '4.1.1' + version_kotlin = "1.4.20" version_lifecycle_extensions = "2.2.0" lifecycle_version = "2.2.0" version_room = "2.2.5" version_appcompat = "1.2.0" - version_fragment = "1.0.0" - version_retrofit = "2.5.0" - version_kotlin_coroutines = "1.1.0" - version_moshi = "1.8.0" - version_glide = "4.8.0" - version_joda = "2.10" + version_fragment = "1.2.5" + version_retrofit = "2.9.0" + version_kotlin_coroutines = "1.4.1" + version_moshi = "1.11.0" + version_glide = "4.11.0" + version_joda = "2.10.7" version_work = "1.0.1" version_timber = "4.7.1" } From a5854c2483d6319f3b18f260737f27e3adf95cf2 Mon Sep 17 00:00:00 2001 From: Filipe Bezerra Date: Mon, 7 Dec 2020 13:45:35 -0300 Subject: [PATCH 2/6] feat: Implement DatabaseVideo entity class --- .../database/DatabaseEntities.kt | 24 +++++++++++++++++++ .../network/DataTransferObjects.kt | 12 ++++++++++ .../android/devbyteviewer/network/Service.kt | 4 +--- .../viewmodels/DevByteViewModel.kt | 2 +- 4 files changed, 38 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/example/android/devbyteviewer/database/DatabaseEntities.kt b/app/src/main/java/com/example/android/devbyteviewer/database/DatabaseEntities.kt index 777e11bd..1369ba95 100644 --- a/app/src/main/java/com/example/android/devbyteviewer/database/DatabaseEntities.kt +++ b/app/src/main/java/com/example/android/devbyteviewer/database/DatabaseEntities.kt @@ -17,3 +17,27 @@ package com.example.android.devbyteviewer.database +import androidx.room.ColumnInfo +import androidx.room.Entity +import androidx.room.PrimaryKey +import com.example.android.devbyteviewer.domain.Video + +@Entity +data class DatabaseVideo( + @PrimaryKey @ColumnInfo(name = "url") val url: String, + @ColumnInfo(name = "title") val title: String, + @ColumnInfo(name = "description") val description: String, + @ColumnInfo(name = "updated") val updated: String, + @ColumnInfo(name = "thumbnail") val thumbnail: String, +) + +fun List.asDomainModel(): List