From e311823cecf76a1d4826aef80a0973ad3fc87131 Mon Sep 17 00:00:00 2001 From: Konrad Pozniak Date: Fri, 4 Sep 2020 19:51:09 +0200 Subject: [PATCH] build against API 30, change deprecated stuff --- app/build.gradle.kts | 5 +++-- .../pixelcat/components/about/AboutActivity.kt | 11 ++++++----- .../components/about/licenses/LicenseActivity.kt | 11 ++++++----- .../pixelcat/components/compose/ComposeActivity.kt | 14 ++++++++------ .../pixelcat/components/login/LoginActivity.kt | 11 ++++++----- .../components/login/LoginWebViewActivity.kt | 6 +++--- .../pixelcat/components/main/MainActivity.kt | 13 +++++++------ .../pixelcat/components/profile/ProfileActivity.kt | 11 +++++++---- .../components/settings/SettingsActivity.kt | 11 ++++++----- .../components/timeline/detail/DetailActivity.kt | 13 ++++++++----- .../components/util/extension/ContextExtensions.kt | 12 +++++++++--- 11 files changed, 69 insertions(+), 49 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 411df4a..69cef36 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -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") diff --git a/app/src/main/kotlin/at/connyduck/pixelcat/components/about/AboutActivity.kt b/app/src/main/kotlin/at/connyduck/pixelcat/components/about/AboutActivity.kt index eac5a76..3c97560 100644 --- a/app/src/main/kotlin/at/connyduck/pixelcat/components/about/AboutActivity.kt +++ b/app/src/main/kotlin/at/connyduck/pixelcat/components/about/AboutActivity.kt @@ -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) diff --git a/app/src/main/kotlin/at/connyduck/pixelcat/components/about/licenses/LicenseActivity.kt b/app/src/main/kotlin/at/connyduck/pixelcat/components/about/licenses/LicenseActivity.kt index e02340e..3fb4249 100644 --- a/app/src/main/kotlin/at/connyduck/pixelcat/components/about/licenses/LicenseActivity.kt +++ b/app/src/main/kotlin/at/connyduck/pixelcat/components/about/licenses/LicenseActivity.kt @@ -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) diff --git a/app/src/main/kotlin/at/connyduck/pixelcat/components/compose/ComposeActivity.kt b/app/src/main/kotlin/at/connyduck/pixelcat/components/compose/ComposeActivity.kt index 8476916..bd7180e 100644 --- a/app/src/main/kotlin/at/connyduck/pixelcat/components/compose/ComposeActivity.kt +++ b/app/src/main/kotlin/at/connyduck/pixelcat/components/compose/ComposeActivity.kt @@ -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()) { diff --git a/app/src/main/kotlin/at/connyduck/pixelcat/components/login/LoginActivity.kt b/app/src/main/kotlin/at/connyduck/pixelcat/components/login/LoginActivity.kt index f558ac4..544ab6d 100644 --- a/app/src/main/kotlin/at/connyduck/pixelcat/components/login/LoginActivity.kt +++ b/app/src/main/kotlin/at/connyduck/pixelcat/components/login/LoginActivity.kt @@ -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 { 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) diff --git a/app/src/main/kotlin/at/connyduck/pixelcat/components/login/LoginWebViewActivity.kt b/app/src/main/kotlin/at/connyduck/pixelcat/components/login/LoginWebViewActivity.kt index 8ca6043..b409340 100644 --- a/app/src/main/kotlin/at/connyduck/pixelcat/components/login/LoginWebViewActivity.kt +++ b/app/src/main/kotlin/at/connyduck/pixelcat/components/login/LoginWebViewActivity.kt @@ -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( diff --git a/app/src/main/kotlin/at/connyduck/pixelcat/components/main/MainActivity.kt b/app/src/main/kotlin/at/connyduck/pixelcat/components/main/MainActivity.kt index d1b60df..bc911d3 100644 --- a/app/src/main/kotlin/at/connyduck/pixelcat/components/main/MainActivity.kt +++ b/app/src/main/kotlin/at/connyduck/pixelcat/components/main/MainActivity.kt @@ -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) diff --git a/app/src/main/kotlin/at/connyduck/pixelcat/components/profile/ProfileActivity.kt b/app/src/main/kotlin/at/connyduck/pixelcat/components/profile/ProfileActivity.kt index 2ffccea..57c0cf3 100644 --- a/app/src/main/kotlin/at/connyduck/pixelcat/components/profile/ProfileActivity.kt +++ b/app/src/main/kotlin/at/connyduck/pixelcat/components/profile/ProfileActivity.kt @@ -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) { diff --git a/app/src/main/kotlin/at/connyduck/pixelcat/components/settings/SettingsActivity.kt b/app/src/main/kotlin/at/connyduck/pixelcat/components/settings/SettingsActivity.kt index edf3b7f..bc2b5d6 100644 --- a/app/src/main/kotlin/at/connyduck/pixelcat/components/settings/SettingsActivity.kt +++ b/app/src/main/kotlin/at/connyduck/pixelcat/components/settings/SettingsActivity.kt @@ -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 diff --git a/app/src/main/kotlin/at/connyduck/pixelcat/components/timeline/detail/DetailActivity.kt b/app/src/main/kotlin/at/connyduck/pixelcat/components/timeline/detail/DetailActivity.kt index 9af28ae..e30fc2c 100644 --- a/app/src/main/kotlin/at/connyduck/pixelcat/components/timeline/detail/DetailActivity.kt +++ b/app/src/main/kotlin/at/connyduck/pixelcat/components/timeline/detail/DetailActivity.kt @@ -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( diff --git a/app/src/main/kotlin/at/connyduck/pixelcat/components/util/extension/ContextExtensions.kt b/app/src/main/kotlin/at/connyduck/pixelcat/components/util/extension/ContextExtensions.kt index 5420773..1e5c4b4 100644 --- a/app/src/main/kotlin/at/connyduck/pixelcat/components/util/extension/ContextExtensions.kt +++ b/app/src/main/kotlin/at/connyduck/pixelcat/components/util/extension/ContextExtensions.kt @@ -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