build against API 30, change deprecated stuff

This commit is contained in:
Konrad Pozniak 2020-09-04 19:51:09 +02:00
parent 4bf3038c47
commit e311823cec
11 changed files with 69 additions and 49 deletions

View File

@ -6,11 +6,11 @@ plugins {
} }
android { android {
compileSdkVersion(29) compileSdkVersion(30)
defaultConfig { defaultConfig {
applicationId = "at.connyduck.pixelcat" applicationId = "at.connyduck.pixelcat"
minSdkVersion(24) minSdkVersion(24)
targetSdkVersion(29) targetSdkVersion(30)
versionCode = 1 versionCode = 1
versionName = "0.0" versionName = "0.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
@ -79,6 +79,7 @@ dependencies {
implementation("androidx.emoji:emoji-bundled:1.1.0") implementation("androidx.emoji:emoji-bundled:1.1.0")
implementation("androidx.paging:paging-runtime-ktx:3.0.0-alpha05") implementation("androidx.paging:paging-runtime-ktx:3.0.0-alpha05")
implementation("androidx.viewpager2:viewpager2:1.0.0") implementation("androidx.viewpager2:viewpager2:1.0.0")
implementation("androidx.window:window:1.0.0-alpha01")
implementation("androidx.room:room-ktx:$roomVersion") implementation("androidx.room:room-ktx:$roomVersion")
kapt("androidx.room:room-compiler:$roomVersion") kapt("androidx.room:room-compiler:$roomVersion")

View File

@ -23,6 +23,9 @@ import android.content.Context
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.view.ViewGroup import android.view.ViewGroup
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.view.WindowInsetsCompat.Type.systemBars
import at.connyduck.pixelcat.BuildConfig import at.connyduck.pixelcat.BuildConfig
import at.connyduck.pixelcat.R import at.connyduck.pixelcat.R
import at.connyduck.pixelcat.components.about.licenses.LicenseActivity import at.connyduck.pixelcat.components.about.licenses.LicenseActivity
@ -37,13 +40,11 @@ class AboutActivity : BaseActivity() {
val binding = ActivityAboutBinding.inflate(layoutInflater) val binding = ActivityAboutBinding.inflate(layoutInflater)
setContentView(binding.root) setContentView(binding.root)
binding.root.setOnApplyWindowInsetsListener { _, insets -> ViewCompat.setOnApplyWindowInsetsListener(binding.root) { _, insets ->
val top = insets.systemWindowInsetTop val top = insets.getInsets(systemBars()).top
val toolbarParams = binding.aboutToolbar.layoutParams as ViewGroup.MarginLayoutParams val toolbarParams = binding.aboutToolbar.layoutParams as ViewGroup.MarginLayoutParams
toolbarParams.topMargin = top toolbarParams.topMargin = top
WindowInsetsCompat.CONSUMED
insets.consumeSystemWindowInsets()
} }
setSupportActionBar(binding.aboutToolbar) setSupportActionBar(binding.aboutToolbar)

View File

@ -26,6 +26,9 @@ import android.util.Log
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.TextView import android.widget.TextView
import androidx.annotation.RawRes import androidx.annotation.RawRes
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.view.WindowInsetsCompat.Type.systemBars
import at.connyduck.pixelcat.R import at.connyduck.pixelcat.R
import at.connyduck.pixelcat.components.general.BaseActivity import at.connyduck.pixelcat.components.general.BaseActivity
import at.connyduck.pixelcat.databinding.ActivityLicenseBinding import at.connyduck.pixelcat.databinding.ActivityLicenseBinding
@ -41,13 +44,11 @@ class LicenseActivity : BaseActivity() {
val binding = ActivityLicenseBinding.inflate(layoutInflater) val binding = ActivityLicenseBinding.inflate(layoutInflater)
setContentView(binding.root) setContentView(binding.root)
binding.licenseContainer.setOnApplyWindowInsetsListener { _, insets -> ViewCompat.setOnApplyWindowInsetsListener(binding.licenseContainer) { _, insets ->
val top = insets.systemWindowInsetTop val top = insets.getInsets(systemBars()).top
val toolbarParams = binding.licenseToolbar.layoutParams as ViewGroup.MarginLayoutParams val toolbarParams = binding.licenseToolbar.layoutParams as ViewGroup.MarginLayoutParams
toolbarParams.topMargin = top toolbarParams.topMargin = top
WindowInsetsCompat.CONSUMED
insets.consumeSystemWindowInsets()
} }
setSupportActionBar(binding.licenseToolbar) setSupportActionBar(binding.licenseToolbar)

View File

@ -23,8 +23,12 @@ import android.app.Activity
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.view.ViewGroup
import androidx.activity.viewModels import androidx.activity.viewModels
import androidx.coordinatorlayout.widget.CoordinatorLayout import androidx.coordinatorlayout.widget.CoordinatorLayout
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.view.WindowInsetsCompat.Type.systemBars
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import at.connyduck.pixelcat.R import at.connyduck.pixelcat.R
@ -56,13 +60,11 @@ class ComposeActivity : BaseActivity(), OnImageActionClickListener {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
setContentView(binding.root) setContentView(binding.root)
binding.root.setOnApplyWindowInsetsListener { _, insets -> ViewCompat.setOnApplyWindowInsetsListener(binding.root) { _, insets ->
val top = insets.systemWindowInsetTop val top = insets.getInsets(systemBars()).top
val toolbarParams = binding.composeAppBar.layoutParams as ViewGroup.MarginLayoutParams
val toolbarParams = binding.composeAppBar.layoutParams as CoordinatorLayout.LayoutParams
toolbarParams.topMargin = top toolbarParams.topMargin = top
WindowInsetsCompat.CONSUMED
insets.consumeSystemWindowInsets()
} }
if (viewModel.imageLiveData.value.isNullOrEmpty()) { if (viewModel.imageLiveData.value.isNullOrEmpty()) {

View File

@ -26,6 +26,9 @@ import android.view.Menu
import android.view.MenuItem import android.view.MenuItem
import android.view.ViewGroup import android.view.ViewGroup
import androidx.activity.viewModels import androidx.activity.viewModels
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.view.WindowInsetsCompat.Type.systemBars
import androidx.lifecycle.Observer import androidx.lifecycle.Observer
import at.connyduck.pixelcat.components.main.MainActivity import at.connyduck.pixelcat.components.main.MainActivity
import at.connyduck.pixelcat.R import at.connyduck.pixelcat.R
@ -51,13 +54,11 @@ class LoginActivity : BaseActivity(), Observer<LoginModel> {
setContentView(binding.root) setContentView(binding.root)
binding.loginContainer.setOnApplyWindowInsetsListener { _, insets -> ViewCompat.setOnApplyWindowInsetsListener(binding.loginContainer) { _, insets ->
val top = insets.systemWindowInsetTop val top = insets.getInsets(systemBars()).top
val toolbarParams = binding.loginToolbar.layoutParams as ViewGroup.MarginLayoutParams val toolbarParams = binding.loginToolbar.layoutParams as ViewGroup.MarginLayoutParams
toolbarParams.topMargin = top toolbarParams.topMargin = top
WindowInsetsCompat.CONSUMED
insets.consumeSystemWindowInsets()
} }
setSupportActionBar(binding.loginToolbar) setSupportActionBar(binding.loginToolbar)

View File

@ -40,9 +40,9 @@ class LoginWebViewActivity : AppCompatActivity() {
binding = ActivityLoginWebViewBinding.inflate(layoutInflater) binding = ActivityLoginWebViewBinding.inflate(layoutInflater)
setContentView(binding.root) setContentView(binding.root)
val domain = intent.getStringExtra(EXTRA_DOMAIN) val domain = intent.getStringExtra(EXTRA_DOMAIN)!!
val clientId = intent.getStringExtra(EXTRA_CLIENT_ID) val clientId = intent.getStringExtra(EXTRA_CLIENT_ID)!!
val clientSecret = intent.getStringExtra(EXTRA_CLIENT_SECRET) val clientSecret = intent.getStringExtra(EXTRA_CLIENT_SECRET)!!
val endpoint = "/oauth/authorize" val endpoint = "/oauth/authorize"
val parameters = mapOf( val parameters = mapOf(

View File

@ -22,8 +22,11 @@ package at.connyduck.pixelcat.components.main
import android.app.Activity import android.app.Activity
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.view.ViewGroup
import android.widget.LinearLayout import android.widget.LinearLayout
import androidx.activity.viewModels import androidx.activity.viewModels
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import at.connyduck.pixelcat.R import at.connyduck.pixelcat.R
import at.connyduck.pixelcat.components.compose.ComposeActivity import at.connyduck.pixelcat.components.compose.ComposeActivity
import at.connyduck.pixelcat.components.general.BaseActivity import at.connyduck.pixelcat.components.general.BaseActivity
@ -88,13 +91,11 @@ class MainActivity : BaseActivity() {
binding = ActivityMainBinding.inflate(layoutInflater) binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root) setContentView(binding.root)
binding.container.setOnApplyWindowInsetsListener { _, insets -> ViewCompat.setOnApplyWindowInsetsListener(binding.container) { _, insets ->
val top = insets.systemWindowInsetTop val top = insets.getInsets(WindowInsetsCompat.Type.systemBars()).top
val viewPagerParams = binding.mainViewPager.layoutParams as ViewGroup.MarginLayoutParams
val viewPagerParams = binding.mainViewPager.layoutParams as LinearLayout.LayoutParams
viewPagerParams.topMargin = top viewPagerParams.topMargin = top
WindowInsetsCompat.CONSUMED
insets.consumeSystemWindowInsets()
} }
mainFragmentAdapter = MainFragmentAdapter(this) mainFragmentAdapter = MainFragmentAdapter(this)

View File

@ -22,6 +22,10 @@ package at.connyduck.pixelcat.components.profile
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.view.ViewGroup
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.view.WindowInsetsCompat.Type.systemBars
import androidx.fragment.app.commit import androidx.fragment.app.commit
import at.connyduck.pixelcat.R import at.connyduck.pixelcat.R
import at.connyduck.pixelcat.components.general.BaseActivity import at.connyduck.pixelcat.components.general.BaseActivity
@ -36,12 +40,11 @@ class ProfileActivity : BaseActivity() {
setContentView(binding.root) setContentView(binding.root)
binding.root.setOnApplyWindowInsetsListener { _, insets -> ViewCompat.setOnApplyWindowInsetsListener(binding.root) { _, insets ->
val top = insets.systemWindowInsetTop val top = insets.getInsets(systemBars()).top
binding.root.setPadding(0, top, 0, 0) binding.root.setPadding(0, top, 0, 0)
insets.consumeSystemWindowInsets() WindowInsetsCompat.CONSUMED
} }
if (supportFragmentManager.findFragmentById(R.id.layoutContainer) == null) { if (supportFragmentManager.findFragmentById(R.id.layoutContainer) == null) {

View File

@ -26,6 +26,9 @@ import android.content.SharedPreferences
import android.os.Bundle import android.os.Bundle
import android.view.ViewGroup import android.view.ViewGroup
import androidx.appcompat.app.AppCompatDelegate import androidx.appcompat.app.AppCompatDelegate
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.view.WindowInsetsCompat.Type.systemBars
import androidx.preference.PreferenceFragmentCompat import androidx.preference.PreferenceFragmentCompat
import at.connyduck.pixelcat.R import at.connyduck.pixelcat.R
import at.connyduck.pixelcat.components.general.BaseActivity import at.connyduck.pixelcat.components.general.BaseActivity
@ -46,13 +49,11 @@ class SettingsActivity : BaseActivity(), SharedPreferences.OnSharedPreferenceCha
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
setContentView(binding.root) setContentView(binding.root)
binding.settingsContainer.setOnApplyWindowInsetsListener { _, insets -> ViewCompat.setOnApplyWindowInsetsListener(binding.settingsContainer) { _, insets ->
val top = insets.systemWindowInsetTop val top = insets.getInsets(systemBars()).top
val toolbarParams = binding.settingsToolbar.layoutParams as ViewGroup.MarginLayoutParams val toolbarParams = binding.settingsToolbar.layoutParams as ViewGroup.MarginLayoutParams
toolbarParams.topMargin = top toolbarParams.topMargin = top
WindowInsetsCompat.CONSUMED
insets.consumeSystemWindowInsets()
} }
supportFragmentManager supportFragmentManager

View File

@ -5,7 +5,9 @@ import android.content.Intent
import android.os.Bundle import android.os.Bundle
import androidx.activity.viewModels import androidx.activity.viewModels
import androidx.core.graphics.Insets import androidx.core.graphics.Insets
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat import androidx.core.view.WindowInsetsCompat
import androidx.core.view.WindowInsetsCompat.Type.systemBars
import androidx.recyclerview.widget.ConcatAdapter import androidx.recyclerview.widget.ConcatAdapter
import at.connyduck.pixelcat.R import at.connyduck.pixelcat.R
import at.connyduck.pixelcat.components.general.BaseActivity import at.connyduck.pixelcat.components.general.BaseActivity
@ -41,13 +43,14 @@ class DetailActivity : BaseActivity(), TimeLineActionListener {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
setContentView(binding.root) setContentView(binding.root)
binding.root.setOnApplyWindowInsetsListener { _, insets -> ViewCompat.setOnApplyWindowInsetsListener(binding.root) { _, insets ->
binding.root.setPadding(0, insets.systemWindowInsetTop, 0, 0) val systemInsets = insets.getInsets(systemBars())
WindowInsetsCompat.Builder(WindowInsetsCompat.toWindowInsetsCompat(insets)) binding.root.setPadding(0, systemInsets.top, 0, 0)
.setSystemWindowInsets(Insets.of(insets.systemWindowInsetLeft, 0, insets.systemWindowInsetRight, insets.systemWindowInsetBottom))
WindowInsetsCompat.Builder(insets)
.setInsets(systemBars(), Insets.of(systemInsets.left, 0, systemInsets.right, systemInsets.bottom))
.build() .build()
.toWindowInsets()
} }
binding.detailSwipeRefresh.setColorSchemeColors( binding.detailSwipeRefresh.setColorSchemeColors(

View File

@ -20,6 +20,7 @@
package at.connyduck.pixelcat.components.util.extension package at.connyduck.pixelcat.components.util.extension
import android.content.Context import android.content.Context
import android.os.Build
import android.util.DisplayMetrics import android.util.DisplayMetrics
import android.util.TypedValue import android.util.TypedValue
import android.view.WindowManager import android.view.WindowManager
@ -27,10 +28,15 @@ import androidx.annotation.AttrRes
import androidx.annotation.ColorInt import androidx.annotation.ColorInt
fun Context.getDisplayWidthInPx(): Int { fun Context.getDisplayWidthInPx(): Int {
val metrics = DisplayMetrics()
val windowManager = getSystemService(Context.WINDOW_SERVICE) as WindowManager val windowManager = getSystemService(Context.WINDOW_SERVICE) as WindowManager
windowManager.defaultDisplay.getMetrics(metrics)
return metrics.widthPixels return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
windowManager.currentWindowMetrics.bounds.width()
} else {
val metrics = DisplayMetrics()
windowManager.defaultDisplay.getMetrics(metrics)
metrics.widthPixels
}
} }
@ColorInt @ColorInt