Pārlūkot izejas kodu

Fixed compiler warnings

sirekanian 3 gadi atpakaļ
vecāks
revīzija
e6d5381236

+ 1 - 0
app/build.gradle.kts

@@ -9,6 +9,7 @@ androidExtensions {
 }
 
 android {
+    namespace = "com.sirekanyan.knigopis"
     compileSdk = 33
     defaultConfig {
         applicationId = "com.sirekanyan.knigopis"

+ 1 - 2
app/src/main/AndroidManifest.xml

@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools"
-    package="com.sirekanyan.knigopis">
+    xmlns:tools="http://schemas.android.com/tools">
 
     <uses-permission android:name="android.permission.INTERNET" />
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

+ 1 - 1
app/src/main/java/com/sirekanyan/knigopis/common/android/adapter/SimpleItemCallback.kt

@@ -2,7 +2,7 @@ package com.sirekanyan.knigopis.common.android.adapter
 
 import androidx.recyclerview.widget.DiffUtil.ItemCallback
 
-class SimpleItemCallback<T>(private val getId: (T) -> String) : ItemCallback<T>() {
+class SimpleItemCallback<T : Any>(private val getId: (T) -> String) : ItemCallback<T>() {
 
     override fun areItemsTheSame(oldItem: T, newItem: T) = getId(oldItem) == getId(newItem)
 

+ 13 - 0
app/src/main/java/com/sirekanyan/knigopis/common/extensions/Intent.kt

@@ -0,0 +1,13 @@
+package com.sirekanyan.knigopis.common.extensions
+
+import android.content.Intent
+import android.os.Build
+import android.os.Parcelable
+
+inline fun <reified T : Parcelable> Intent.getParcelableExtraCompat(name: String): T? =
+    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
+        getParcelableExtra(name, T::class.java)
+    } else {
+        @Suppress("DEPRECATION")
+        getParcelableExtra(name)
+    }

+ 9 - 6
app/src/main/java/com/sirekanyan/knigopis/feature/MainActivity.kt

@@ -6,6 +6,7 @@ import android.content.Intent
 import android.content.Intent.*
 import android.net.Uri
 import android.os.Bundle
+import androidx.activity.OnBackPressedCallback
 import androidx.activity.result.contract.ActivityResultContracts.StartActivityForResult
 import com.sirekanyan.knigopis.R
 import com.sirekanyan.knigopis.common.BaseActivity
@@ -40,6 +41,13 @@ class MainActivity : BaseActivity(),
 
     private val presenter by lazy { providePresenter() }
     private val api by lazy { app.endpoint }
+    private val onBackPressedCallback = object : OnBackPressedCallback(true) {
+        override fun handleOnBackPressed() {
+            if (!presenter.back()) {
+                finish()
+            }
+        }
+    }
 
     override fun onCreate(savedInstanceState: Bundle?) {
         setTheme(R.style.Theme_Knigopis)
@@ -47,6 +55,7 @@ class MainActivity : BaseActivity(),
         setContentView(R.layout.activity_main)
         val restoredCurrentTab = savedInstanceState?.getMainState()?.currentTab
         presenter.init(restoredCurrentTab)
+        onBackPressedDispatcher.addCallback(onBackPressedCallback)
     }
 
     override fun onStart() {
@@ -88,12 +97,6 @@ class MainActivity : BaseActivity(),
         }
     }
 
-    override fun onBackPressed() {
-        if (!presenter.back()) {
-            super.onBackPressed()
-        }
-    }
-
     override fun openLoginScreen() {
         startLoginActivity()
     }

+ 2 - 1
app/src/main/java/com/sirekanyan/knigopis/feature/book/BookActivity.kt

@@ -5,6 +5,7 @@ import android.content.Intent
 import android.os.Bundle
 import com.sirekanyan.knigopis.R
 import com.sirekanyan.knigopis.common.BaseActivity
+import com.sirekanyan.knigopis.common.extensions.getParcelableExtraCompat
 import com.sirekanyan.knigopis.common.functions.extra
 import com.sirekanyan.knigopis.dependency.providePresenter
 import com.sirekanyan.knigopis.model.EditBookModel
@@ -16,7 +17,7 @@ fun Context.createBookIntent(book: EditBookModel): Intent =
 
 class BookActivity : BaseActivity(), BookPresenter.Router {
 
-    private val presenter by lazy { providePresenter(intent.getParcelableExtra(EXTRA_BOOK)!!) }
+    private val presenter by lazy { providePresenter(intent.getParcelableExtraCompat(EXTRA_BOOK)!!) }
 
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)

+ 7 - 1
app/src/main/java/com/sirekanyan/knigopis/feature/login/LoginActivity.kt

@@ -7,6 +7,7 @@ import android.content.Intent.ACTION_VIEW
 import android.net.Uri
 import android.os.Bundle
 import androidx.appcompat.app.AppCompatActivity
+import androidx.browser.customtabs.CustomTabColorSchemeParams
 import androidx.browser.customtabs.CustomTabsIntent
 import androidx.core.content.ContextCompat
 import com.sirekanyan.knigopis.R
@@ -43,7 +44,12 @@ class LoginActivity : AppCompatActivity(), LoginPresenter.Router {
 
     override fun openBrowser(website: Website): Boolean {
         val toolbarColor = ContextCompat.getColor(this, website.color)
-        val customTabsIntent = CustomTabsIntent.Builder().setToolbarColor(toolbarColor).build()
+        val colorSchemeParams = CustomTabColorSchemeParams.Builder()
+            .setToolbarColor(toolbarColor)
+            .build()
+        val customTabsIntent = CustomTabsIntent.Builder()
+            .setDefaultColorSchemeParams(colorSchemeParams)
+            .build()
         return try {
             customTabsIntent.launchUrl(this, website.uri)
             true