Skip to content
This repository was archived by the owner on Sep 30, 2024. It is now read-only.

Convert Insetter main library to Kotlin #78

Merged
merged 11 commits into from
Dec 23, 2020
7 changes: 7 additions & 0 deletions .idea/dictionaries/insetter.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 11 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,16 @@ subprojects {
}
}

tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach {
kotlinOptions {
// Treat all Kotlin warnings as errors
allWarningsAsErrors = true

// Set JVM target to 1.8
jvmTarget = "1.8"
}
}

// Read in the signing.properties file if it is exists
def signingPropsFile = rootProject.file('release/signing.properties')
if (signingPropsFile.exists()) {
Expand All @@ -82,7 +92,7 @@ subprojects {
localProperties.each { prop ->
if (prop.key == "signing.secretKeyRingFile") {
// If this is the key ring, treat it as a relative path
project.ext.set(prop.key, this.rootProject.file(prop.value).absolutePath)
project.ext.set(prop.key, rootProject.file(prop.value).absolutePath)
} else {
project.ext.set(prop.key, prop.value)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
package dev.chrisbanes.insetter.buildsrc

object Versions {
const val ktlint = "0.39.0"
const val ktlint = "0.40.0"
}

object Libs {
Expand Down Expand Up @@ -51,8 +51,8 @@ object Libs {
const val espressoCore = "androidx.test.espresso:espresso-core:3.2.0"
}

const val core = "androidx.core:core:1.5.0-alpha04"
const val coreKtx = "androidx.core:core-ktx:1.5.0-alpha04"
const val core = "androidx.core:core:1.5.0-alpha05"
const val coreKtx = "androidx.core:core-ktx:1.5.0-alpha05"
}

const val constraintLayout = "androidx.constraintlayout:constraintlayout:2.0.0"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@ public static void applyInsetsFromBooleans(
}

@BindingAdapter("layout_edgeToEdge")
@Deprecated
public static void setEdgeToEdgeFlags(@NonNull final View view, boolean enabled) {
if (Build.VERSION.SDK_INT >= 16) {
Insetter.setEdgeToEdgeSystemUiFlags(view, enabled);
Expand Down
2 changes: 2 additions & 0 deletions ktx/src/main/java/dev/chrisbanes/insetter/viewinsetter.kt
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,9 @@ inline fun View.doOnApplyWindowInsets(
* @see View.setSystemUiVisibility
* @see Insetter.setEdgeToEdgeSystemUiFlags
*/
@Suppress("DEPRECATION")
@RequiresApi(16)
@Deprecated("Use WindowCompat.setDecorFitsSystemWindows() instead")
fun View.setEdgeToEdgeSystemUiFlags(enabled: Boolean = true) =
Insetter.setEdgeToEdgeSystemUiFlags(this, enabled)

Expand Down
70 changes: 48 additions & 22 deletions library/api/library.api
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,29 @@ public final class dev/chrisbanes/insetter/Insetter {
public static final field CONSUME_ALL I
public static final field CONSUME_AUTO I
public static final field CONSUME_NONE I
public fun applyInsetsToView (Landroid/view/View;Landroidx/core/view/WindowInsetsCompat;Ldev/chrisbanes/insetter/ViewState;)V
public fun applyToView (Landroid/view/View;)V
public static fun builder ()Ldev/chrisbanes/insetter/Insetter$Builder;
public static fun setEdgeToEdgeSystemUiFlags (Landroid/view/View;Z)V
public static final field Companion Ldev/chrisbanes/insetter/Insetter$Companion;
public synthetic fun <init> (Ldev/chrisbanes/insetter/Insetter$Builder;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
public final fun applyInsetsToView (Landroid/view/View;Landroidx/core/view/WindowInsetsCompat;Ldev/chrisbanes/insetter/ViewState;)V
public final fun applyToView (Landroid/view/View;)V
public static final fun builder ()Ldev/chrisbanes/insetter/Insetter$Builder;
public static final fun setEdgeToEdgeSystemUiFlags (Landroid/view/View;Z)V
}

public final class dev/chrisbanes/insetter/Insetter$Builder {
public fun applySystemGestureInsetsToMargin (I)Ldev/chrisbanes/insetter/Insetter$Builder;
public fun applySystemGestureInsetsToPadding (I)Ldev/chrisbanes/insetter/Insetter$Builder;
public fun applySystemWindowInsetsToMargin (I)Ldev/chrisbanes/insetter/Insetter$Builder;
public fun applySystemWindowInsetsToPadding (I)Ldev/chrisbanes/insetter/Insetter$Builder;
public fun applyToView (Landroid/view/View;)Ldev/chrisbanes/insetter/Insetter;
public fun build ()Ldev/chrisbanes/insetter/Insetter;
public fun consumeSystemWindowInsets (I)Ldev/chrisbanes/insetter/Insetter$Builder;
public fun consumeSystemWindowInsets (Z)Ldev/chrisbanes/insetter/Insetter$Builder;
public fun setOnApplyInsetsListener (Ldev/chrisbanes/insetter/OnApplyInsetsListener;)Ldev/chrisbanes/insetter/Insetter$Builder;
public final fun applySystemGestureInsetsToMargin (I)Ldev/chrisbanes/insetter/Insetter$Builder;
public final fun applySystemGestureInsetsToPadding (I)Ldev/chrisbanes/insetter/Insetter$Builder;
public final fun applySystemWindowInsetsToMargin (I)Ldev/chrisbanes/insetter/Insetter$Builder;
public final fun applySystemWindowInsetsToPadding (I)Ldev/chrisbanes/insetter/Insetter$Builder;
public final fun applyToView (Landroid/view/View;)Ldev/chrisbanes/insetter/Insetter;
public final fun build ()Ldev/chrisbanes/insetter/Insetter;
public final fun consumeSystemWindowInsets (I)Ldev/chrisbanes/insetter/Insetter$Builder;
public final fun consumeSystemWindowInsets (Z)Ldev/chrisbanes/insetter/Insetter$Builder;
public final fun setOnApplyInsetsListener (Ldev/chrisbanes/insetter/OnApplyInsetsListener;)Ldev/chrisbanes/insetter/Insetter$Builder;
}

public final class dev/chrisbanes/insetter/Insetter$Companion {
public final fun builder ()Ldev/chrisbanes/insetter/Insetter$Builder;
public final fun setEdgeToEdgeSystemUiFlags (Landroid/view/View;Z)V
}

public abstract interface annotation class dev/chrisbanes/insetter/Insetter$ConsumeOptions : java/lang/annotation/Annotation {
Expand All @@ -30,32 +37,51 @@ public abstract interface class dev/chrisbanes/insetter/OnApplyInsetsListener {
public final class dev/chrisbanes/insetter/Side {
public static final field ALL I
public static final field BOTTOM I
public static final field INSTANCE Ldev/chrisbanes/insetter/Side;
public static final field LEFT I
public static final field NONE I
public static final field RIGHT I
public static final field TOP I
public static fun create (ZZZZ)I
public static final fun create (ZZZZ)I
}

public abstract interface annotation class dev/chrisbanes/insetter/Sides : java/lang/annotation/Annotation {
}

public class dev/chrisbanes/insetter/ViewDimensions {
public final class dev/chrisbanes/insetter/ViewDimensions {
public static final field Companion Ldev/chrisbanes/insetter/ViewDimensions$Companion;
public static final field EMPTY Ldev/chrisbanes/insetter/ViewDimensions;
public fun <init> (IIII)V
public final fun component1 ()I
public final fun component2 ()I
public final fun component3 ()I
public final fun component4 ()I
public final fun copy (IIII)Ldev/chrisbanes/insetter/ViewDimensions;
public static synthetic fun copy$default (Ldev/chrisbanes/insetter/ViewDimensions;IIIIILjava/lang/Object;)Ldev/chrisbanes/insetter/ViewDimensions;
public fun equals (Ljava/lang/Object;)Z
public fun getBottom ()I
public fun getLeft ()I
public fun getRight ()I
public fun getTop ()I
public final fun getBottom ()I
public final fun getLeft ()I
public final fun getRight ()I
public final fun getTop ()I
public fun hashCode ()I
public fun toString ()Ljava/lang/String;
}

public class dev/chrisbanes/insetter/ViewState {
public final class dev/chrisbanes/insetter/ViewDimensions$Companion {
}

public final class dev/chrisbanes/insetter/ViewState {
public fun <init> ()V
public fun <init> (Landroid/view/View;)V
public fun <init> (Ldev/chrisbanes/insetter/ViewDimensions;Ldev/chrisbanes/insetter/ViewDimensions;)V
public synthetic fun <init> (Ldev/chrisbanes/insetter/ViewDimensions;Ldev/chrisbanes/insetter/ViewDimensions;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public final fun component1 ()Ldev/chrisbanes/insetter/ViewDimensions;
public final fun component2 ()Ldev/chrisbanes/insetter/ViewDimensions;
public final fun copy (Ldev/chrisbanes/insetter/ViewDimensions;Ldev/chrisbanes/insetter/ViewDimensions;)Ldev/chrisbanes/insetter/ViewState;
public static synthetic fun copy$default (Ldev/chrisbanes/insetter/ViewState;Ldev/chrisbanes/insetter/ViewDimensions;Ldev/chrisbanes/insetter/ViewDimensions;ILjava/lang/Object;)Ldev/chrisbanes/insetter/ViewState;
public fun equals (Ljava/lang/Object;)Z
public fun getMargins ()Ldev/chrisbanes/insetter/ViewDimensions;
public fun getPaddings ()Ldev/chrisbanes/insetter/ViewDimensions;
public final fun getMargins ()Ldev/chrisbanes/insetter/ViewDimensions;
public final fun getPaddings ()Ldev/chrisbanes/insetter/ViewDimensions;
public fun hashCode ()I
public fun toString ()Ljava/lang/String;
}
Expand Down
6 changes: 5 additions & 1 deletion library/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,10 @@ apply plugin: 'com.android.library'

apply plugin: 'kotlin-android'

kotlin {
explicitApi()
}

android {
compileSdkVersion 30

Expand Down Expand Up @@ -49,9 +53,9 @@ android {

dependencies {
api Libs.AndroidX.core
implementation Libs.Kotlin.stdlib

androidTestImplementation project(':test-utils')
androidTestImplementation Libs.Kotlin.stdlib
androidTestImplementation Libs.junit
androidTestImplementation Libs.AndroidX.Test.core
androidTestImplementation Libs.AndroidX.Test.ext
Expand Down
2 changes: 2 additions & 0 deletions library/src/androidTest/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="dev.chrisbanes.insetter">

<uses-sdk android:targetSdkVersion="30" />

<application>
<activity
android:name="android.app.Activity"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ import androidx.core.view.WindowInsetsCompat
import androidx.test.annotation.UiThreadTest
import androidx.test.ext.junit.rules.ActivityScenarioRule
import androidx.test.filters.SdkSuppress
import dev.chrisbanes.insetter.Insetter.EDGE_TO_EDGE_FLAGS
import dev.chrisbanes.insetter.Insetter.Companion.EDGE_TO_EDGE_FLAGS
import org.junit.Assert.assertEquals
import org.junit.Assert.assertNotNull
import org.junit.Assert.assertNull
Expand Down Expand Up @@ -142,6 +142,7 @@ class InsetterTestCase {

@Test
@UiThreadTest
@Suppress("DEPRECATION")
fun test_setEdgeToEdgeSystemUiFlags() {
addViewToContainer(setEdgeToEdgeFlags = false)

Expand All @@ -154,6 +155,7 @@ class InsetterTestCase {

@Test
@UiThreadTest
@Suppress("DEPRECATION")
fun test_setEdgeToEdgeSystemUiFlags_doesntOverwrite() {
addViewToContainer(setEdgeToEdgeFlags = false)

Expand All @@ -178,6 +180,7 @@ class InsetterTestCase {
container.addView(view)
}
if (setEdgeToEdgeFlags) {
@Suppress("DEPRECATION")
view.systemUiVisibility = EDGE_TO_EDGE_FLAGS
}
}
Expand Down
Loading