diff --git a/app/build.gradle b/app/build.gradle
index db02e99..d145624 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -35,7 +35,7 @@ android {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
- compileSdkVersion 30
+ compileSdkVersion 31
buildToolsVersion '30.0.3'
buildFeatures {
viewBinding true
@@ -43,7 +43,7 @@ android {
defaultConfig {
applicationId "apps.amine.bou.readerforselfoss"
minSdkVersion 16
- targetSdkVersion 30
+ targetSdkVersion 31
versionCode versionCodeFromGit()
versionName versionNameFromGit()
@@ -101,14 +101,14 @@ dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
// Android Support
- implementation "androidx.appcompat:appcompat:1.3.0-alpha02"
- implementation 'com.google.android.material:material:1.3.0-beta01'
- implementation 'androidx.recyclerview:recyclerview:1.2.0-beta01'
+ implementation "androidx.appcompat:appcompat:1.4.0-beta01"
+ implementation 'com.google.android.material:material:1.5.0-alpha04'
+ implementation 'androidx.recyclerview:recyclerview:1.3.0-alpha01'
implementation "androidx.legacy:legacy-support-v4:$android_version"
implementation 'androidx.vectordrawable:vectordrawable:1.2.0-alpha02'
implementation "androidx.browser:browser:1.3.0"
implementation "androidx.cardview:cardview:$android_version"
- implementation 'androidx.constraintlayout:constraintlayout:2.1.0-alpha2'
+ implementation 'androidx.constraintlayout:constraintlayout:2.1.1'
implementation 'org.jsoup:jsoup:1.13.1'
//multidex
@@ -120,13 +120,13 @@ dependencies {
}
// Async
- implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.9'
+ implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.0'
// Retrofit + http logging + okhttp
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
- implementation 'com.squareup.okhttp3:logging-interceptor:3.9.0'
+ implementation 'com.squareup.okhttp3:logging-interceptor:4.9.1'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
- implementation 'com.burgstaller:okhttp-digest:1.12'
+ implementation 'com.burgstaller:okhttp-digest:2.5'
// Material-ish things
implementation 'com.ashokvarma.android:bottom-navigation-bar:2.1.0'
@@ -151,14 +151,13 @@ dependencies {
//PhotoView
implementation 'com.github.chrisbanes:PhotoView:2.0.0'
- implementation 'androidx.core:core-ktx:1.5.0-alpha05'
+ implementation 'androidx.core:core-ktx:1.7.0-beta02'
- implementation "androidx.lifecycle:lifecycle-livedata:2.3.0-rc01"
- implementation "androidx.lifecycle:lifecycle-common-java8:2.3.0-rc01"
+ implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.4.0-rc01"
+ implementation "androidx.lifecycle:lifecycle-common-java8:2.4.0-rc01"
- implementation "androidx.room:room-runtime:2.3.0-alpha04"
- implementation "androidx.room:room-ktx:2.3.0-alpha04"
- kapt "androidx.room:room-compiler:2.3.0-alpha04"
+ implementation "androidx.room:room-ktx:2.4.0-alpha05"
+ kapt "androidx.room:room-compiler:2.4.0-alpha05"
implementation "android.arch.work:work-runtime-ktx:$work_version"
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 748ff1b..f42790b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -15,7 +15,8 @@
android:theme="@style/NoBar">
+ android:theme="@style/SplashTheme"
+ android:exported="true">
@@ -48,7 +49,8 @@
+ android:parentActivityName=".SourcesActivity"
+ android:exported="true">
diff --git a/app/src/main/java/apps/amine/bou/readerforselfoss/api/selfoss/SelfossApi.kt b/app/src/main/java/apps/amine/bou/readerforselfoss/api/selfoss/SelfossApi.kt
index 558e503..b29c26e 100644
--- a/app/src/main/java/apps/amine/bou/readerforselfoss/api/selfoss/SelfossApi.kt
+++ b/app/src/main/java/apps/amine/bou/readerforselfoss/api/selfoss/SelfossApi.kt
@@ -14,6 +14,8 @@ import com.burgstaller.okhttp.digest.Credentials
import com.burgstaller.okhttp.digest.DigestAuthenticator
import com.google.gson.GsonBuilder
import okhttp3.*
+import okhttp3.MediaType.Companion.toMediaTypeOrNull
+import okhttp3.ResponseBody.Companion.toResponseBody
import okhttp3.logging.HttpLoggingInterceptor
import retrofit2.Call
import retrofit2.Retrofit
@@ -68,7 +70,7 @@ class SelfossApi(
val request: Request = chain.request()
val response: Response = chain.proceed(request)
- if (response.code() == 408) {
+ if (response.code == 408) {
return response
}
return response
@@ -103,7 +105,7 @@ class SelfossApi(
httpClient
.addInterceptor { chain ->
val res = chain.proceed(chain.request())
- if (res.code() == timeoutCode) {
+ if (res.code == timeoutCode) {
throw SocketTimeoutException("timeout")
}
res
@@ -117,7 +119,7 @@ class SelfossApi(
Response.Builder()
.code(timeoutCode)
.protocol(Protocol.HTTP_2)
- .body(ResponseBody.create(MediaType.parse("text/plain"), ""))
+ .body("".toResponseBody("text/plain".toMediaTypeOrNull()))
.message("")
.request(request)
.build()
diff --git a/app/src/main/java/apps/amine/bou/readerforselfoss/utils/LinksUtils.kt b/app/src/main/java/apps/amine/bou/readerforselfoss/utils/LinksUtils.kt
index b3f42b6..94b1639 100644
--- a/app/src/main/java/apps/amine/bou/readerforselfoss/utils/LinksUtils.kt
+++ b/app/src/main/java/apps/amine/bou/readerforselfoss/utils/LinksUtils.kt
@@ -20,6 +20,7 @@ import apps.amine.bou.readerforselfoss.ReaderActivity
import apps.amine.bou.readerforselfoss.api.selfoss.Item
import apps.amine.bou.readerforselfoss.utils.customtabs.CustomTabActivityHelper
import okhttp3.HttpUrl
+import okhttp3.HttpUrl.Companion.toHttpUrlOrNull
fun Context.buildCustomTabsIntent(): CustomTabsIntent {
@@ -138,13 +139,13 @@ private fun openInBrowser(linkDecoded: String, app: Activity) {
}
fun String.isUrlValid(): Boolean =
- HttpUrl.parse(this) != null && Patterns.WEB_URL.matcher(this).matches()
+ this.toHttpUrlOrNull() != null && Patterns.WEB_URL.matcher(this).matches()
fun String.isBaseUrlValid(ctx: Context): Boolean {
- val baseUrl = HttpUrl.parse(this)
+ val baseUrl = this.toHttpUrlOrNull()
var existsAndEndsWithSlash = false
if (baseUrl != null) {
- val pathSegments = baseUrl.pathSegments()
+ val pathSegments = baseUrl.pathSegments
existsAndEndsWithSlash = "" == pathSegments[pathSegments.size - 1]
}
diff --git a/build.gradle b/build.gradle
index 4d6928b..958a529 100644
--- a/build.gradle
+++ b/build.gradle
@@ -2,7 +2,7 @@
buildscript {
ext {
- kotlin_version = '1.4.21'
+ kotlin_version = '1.5.31'
android_version = '1.0.0'
androidx_version = '1.1.0-alpha05'
lifecycle_version = '2.2.0-alpha01'
@@ -17,7 +17,7 @@ buildscript {
}
}
dependencies {
- classpath 'com.android.tools.build:gradle:4.1.1'
+ classpath 'com.android.tools.build:gradle:7.0.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
@@ -37,14 +37,4 @@ task clean(type: Delete) {
delete rootProject.buildDir
}
-project.ext.preDexLibs = !project.hasProperty('disablePreDex')
-
-subprojects {
- project.plugins.whenPluginAdded { plugin ->
- if ("com.android.build.gradle.AppPlugin" == plugin.class.name) {
- project.android.dexOptions.preDexLibraries = rootProject.ext.preDexLibs
- } else if ("com.android.build.gradle.LibraryPlugin" == plugin.class.name) {
- project.android.dexOptions.preDexLibraries = rootProject.ext.preDexLibs
- }
- }
-}
\ No newline at end of file
+project.ext.preDexLibs = !project.hasProperty('disablePreDex')
\ No newline at end of file
diff --git a/gradle.properties b/gradle.properties
index 9abd3c9..c035bd9 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -16,6 +16,5 @@ org.gradle.jvmargs=-Xmx1536m
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
org.gradle.caching=true
-android.enableD8=true
android.useAndroidX=true
android.enableJetifier=true
\ No newline at end of file
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 999ae0d..f717da0 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip