diff --git a/.circleci/config.yml b/.circleci/config.yml index 0cf6061da..44e73a586 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -3,7 +3,7 @@ version: 2.1 executors: plaid-android-executor: docker: - - image: circleci/android:api-28-alpha + - image: circleci/android:api-29 working_directory: ~/plaid environment: JAVA_TOOL_OPTIONS: "-Xmx1536m" diff --git a/about/src/main/java/io/plaidapp/about/ui/widget/CutoutTextView.kt b/about/src/main/java/io/plaidapp/about/ui/widget/CutoutTextView.kt index 947efaf10..06aa834ea 100644 --- a/about/src/main/java/io/plaidapp/about/ui/widget/CutoutTextView.kt +++ b/about/src/main/java/io/plaidapp/about/ui/widget/CutoutTextView.kt @@ -25,10 +25,10 @@ import android.graphics.Paint import android.graphics.PorterDuff import android.graphics.PorterDuffXfermode import android.graphics.Rect -import androidx.core.content.res.ResourcesCompat import android.text.TextPaint import android.util.AttributeSet import android.view.View +import androidx.core.content.res.ResourcesCompat import androidx.core.graphics.applyCanvas import androidx.core.graphics.createBitmap import io.plaidapp.about.R @@ -71,7 +71,7 @@ class CutoutTextView(context: Context, attrs: AttributeSet) : View(context, attr ) } text = if (a.hasValue(R.styleable.CutoutTextView_android_text)) { - a.getString(R.styleable.CutoutTextView_android_text) + a.getString(R.styleable.CutoutTextView_android_text)!! } else { "" } @@ -119,7 +119,9 @@ class CutoutTextView(context: Context, attrs: AttributeSet) : View(context, attr } override fun onDraw(canvas: Canvas) { - canvas.drawBitmap(cutout, 0f, 0f, null) + cutout?.let { + canvas.drawBitmap(it, 0f, 0f, null) + } } override fun hasOverlappingRendering() = true diff --git a/build.gradle b/build.gradle index c26bcdeb8..8fde1991e 100644 --- a/build.gradle +++ b/build.gradle @@ -18,9 +18,9 @@ buildscript { scriptHandler -> apply from: 'repositories.gradle', to: scriptHandler ext.versions = [ - 'compileSdk' : 28, + 'compileSdk' : 29, 'minSdk' : 23, - 'targetSdk' : 28, + 'targetSdk' : 29, 'appcompat' : '1.1.0-rc01', 'androidx' : '1.0.0', 'androidxCollection' : '1.0.0', @@ -60,7 +60,7 @@ buildscript { scriptHandler -> ] dependencies { - classpath 'com.android.tools.build:gradle:3.6.0-alpha12' + classpath 'com.android.tools.build:gradle:3.6.0-beta03' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${versions.kotlin}" classpath "com.google.gms:google-services:${versions.googleServices}" classpath "io.fabric.tools:gradle:${versions.fabric}" diff --git a/core/src/main/java/io/plaidapp/core/ui/widget/BadgedFourThreeImageView.kt b/core/src/main/java/io/plaidapp/core/ui/widget/BadgedFourThreeImageView.kt index 85e4331ed..759c8ca44 100644 --- a/core/src/main/java/io/plaidapp/core/ui/widget/BadgedFourThreeImageView.kt +++ b/core/src/main/java/io/plaidapp/core/ui/widget/BadgedFourThreeImageView.kt @@ -31,10 +31,10 @@ import android.graphics.PorterDuffXfermode import android.graphics.Rect import android.graphics.Typeface import android.graphics.drawable.Drawable -import androidx.annotation.ColorInt import android.text.TextPaint import android.util.AttributeSet import android.view.Gravity +import androidx.annotation.ColorInt import androidx.core.graphics.applyCanvas import androidx.core.graphics.createBitmap import io.plaidapp.core.R @@ -139,7 +139,9 @@ class BadgedFourThreeImageView( override fun getIntrinsicHeight() = bitmap?.height ?: 0 override fun draw(canvas: Canvas) { - canvas.drawBitmap(bitmap, bounds.left.toFloat(), bounds.top.toFloat(), paint) + bitmap?.let { + canvas.drawBitmap(it, bounds.left.toFloat(), bounds.top.toFloat(), paint) + } } override fun setAlpha(alpha: Int) { diff --git a/core/src/main/java/io/plaidapp/core/ui/widget/CollapsingTitleLayout.java b/core/src/main/java/io/plaidapp/core/ui/widget/CollapsingTitleLayout.java index cc49717e9..cffe6abac 100644 --- a/core/src/main/java/io/plaidapp/core/ui/widget/CollapsingTitleLayout.java +++ b/core/src/main/java/io/plaidapp/core/ui/widget/CollapsingTitleLayout.java @@ -16,7 +16,6 @@ package io.plaidapp.core.ui.widget; -import android.annotation.TargetApi; import android.content.Context; import android.content.res.Resources; import android.content.res.TypedArray; @@ -25,11 +24,8 @@ import android.graphics.Paint; import android.graphics.Point; import android.graphics.Typeface; +import android.graphics.text.LineBreaker; import android.os.Build; -import androidx.annotation.FontRes; -import androidx.core.content.res.ResourcesCompat; -import androidx.core.view.GravityCompat; -import androidx.core.view.ViewCompat; import android.text.Layout; import android.text.SpannableStringBuilder; import android.text.Spanned; @@ -42,6 +38,12 @@ import android.view.View; import android.widget.FrameLayout; +import androidx.annotation.FontRes; +import androidx.annotation.RequiresApi; +import androidx.core.content.res.ResourcesCompat; +import androidx.core.view.GravityCompat; +import androidx.core.view.ViewCompat; + import io.plaidapp.core.R; import io.plaidapp.core.ui.span.TextColorSpan; import io.plaidapp.core.ui.transitions.ReflowText; @@ -57,7 +59,7 @@ public class CollapsingTitleLayout extends FrameLayout implements ReflowText.Reflowable { // constants - private static final int BREAK_STRATEGY = Layout.BREAK_STRATEGY_HIGH_QUALITY; + private static final int BREAK_STRATEGY = LineBreaker.BREAK_STRATEGY_HIGH_QUALITY; // configurable attributes private int titleInsetStart; @@ -345,7 +347,7 @@ private void createLayout(int width, float lineSpacingAdd) { } } - @TargetApi(Build.VERSION_CODES.M) + @RequiresApi(Build.VERSION_CODES.M) private void createLayoutM(int width, float lineSpacingAdd) { layout = StaticLayout.Builder.obtain(displayText, 0, displayText.length(), paint, width - titleInsetStart - titleInsetEnd) diff --git a/core/src/test/java/io/plaidapp/core/dribbble/data/search/DribbbleSearchConverterTest.kt b/core/src/test/java/io/plaidapp/core/dribbble/data/search/DribbbleSearchConverterTest.kt index 05232ffbb..62a78b222 100644 --- a/core/src/test/java/io/plaidapp/core/dribbble/data/search/DribbbleSearchConverterTest.kt +++ b/core/src/test/java/io/plaidapp/core/dribbble/data/search/DribbbleSearchConverterTest.kt @@ -50,6 +50,6 @@ class DribbbleSearchConverterTest { private fun loadData(path: String): String { val inputStream = DribbbleSearchConverterTest::class.java.getResourceAsStream(path) - return inputStream.bufferedReader().use { it.readText() } + return inputStream!!.bufferedReader().use { it.readText() } } }