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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -22,6 +22,10 @@ package at.connyduck.pixelcat.components.profile
import android.content.Context
import android.content.Intent
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 at.connyduck.pixelcat.R
import at.connyduck.pixelcat.components.general.BaseActivity
@ -36,12 +40,11 @@ class ProfileActivity : BaseActivity() {
setContentView(binding.root)
binding.root.setOnApplyWindowInsetsListener { _, insets ->
val top = insets.systemWindowInsetTop
ViewCompat.setOnApplyWindowInsetsListener(binding.root) { _, insets ->
val top = insets.getInsets(systemBars()).top
binding.root.setPadding(0, top, 0, 0)
insets.consumeSystemWindowInsets()
WindowInsetsCompat.CONSUMED
}
if (supportFragmentManager.findFragmentById(R.id.layoutContainer) == null) {

View File

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

View File

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

View File

@ -20,6 +20,7 @@
package at.connyduck.pixelcat.components.util.extension
import android.content.Context
import android.os.Build
import android.util.DisplayMetrics
import android.util.TypedValue
import android.view.WindowManager
@ -27,10 +28,15 @@ import androidx.annotation.AttrRes
import androidx.annotation.ColorInt
fun Context.getDisplayWidthInPx(): Int {
val metrics = DisplayMetrics()
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