Skip to content

Commit

Permalink
Use binary-compatibility-validator plugin (#239)
Browse files Browse the repository at this point in the history
Add binary-compatibility-validator plugin
  • Loading branch information
nkmrh authored Sep 8, 2023
1 parent 5d6d026 commit 800f157
Show file tree
Hide file tree
Showing 8 changed files with 936 additions and 0 deletions.
8 changes: 8 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,13 @@ commands:
name: Doc check
command: ./gradlew dokkaHtml --parallel --max-workers=4

run_api_check:
steps:
- run:
name: API check
command:
./gradlew apiCheck -q || (echo "❌ apiCheck failed, If there are intended differences in the public API, you can run ./gradlew apiDump and commit the output. See more details https://github.com/Kotlin/binary-compatibility-validator." && exit 1)

run_static_analysis:
steps:
- run:
Expand All @@ -62,6 +69,7 @@ jobs:
- run_build
- run_lint
- run_doc_check
- run_api_check
- android/run-tests:
test-command: ./gradlew --stacktrace --info testDebug --parallel --max-workers=4
- run_static_analysis
Expand Down
8 changes: 8 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,14 @@ buildscript {
}
}

plugins {
id 'org.jetbrains.kotlinx.binary-compatibility-validator' version '0.13.2'
}

apiValidation {
ignoredProjects += ["test_lib", "sample_kotlin", "sample_java"]
}

allprojects {
repositories {
google()
Expand Down
571 changes: 571 additions & 0 deletions core/api/core.api

Large diffs are not rendered by default.

60 changes: 60 additions & 0 deletions inappmessaging/api/inappmessaging.api
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
public final class io/karte/android/inappmessaging/BuildConfig {
public static final field BUILD_TYPE Ljava/lang/String;
public static final field DEBUG Z
public static final field LIBRARY_PACKAGE_NAME Ljava/lang/String;
public static final field LIB_VERSION Ljava/lang/String;
public fun <init> ()V
}

public final class io/karte/android/inappmessaging/InAppMessaging : io/karte/android/utilities/ActivityLifecycleCallback, io/karte/android/core/library/ActionModule, io/karte/android/core/library/Library, io/karte/android/core/library/TrackModule, io/karte/android/core/library/UserModule {
public static final field Companion Lio/karte/android/inappmessaging/InAppMessaging$Companion;
public fun <init> ()V
public fun configure (Lio/karte/android/KarteApp;)V
public static final fun dismiss ()V
public static final fun getDelegate ()Lio/karte/android/inappmessaging/InAppMessagingDelegate;
public fun getEventRejectionFilterRules ()Ljava/util/List;
public fun getName ()Ljava/lang/String;
public fun getVersion ()Ljava/lang/String;
public fun intercept (Lio/karte/android/tracking/client/TrackRequest;)Lio/karte/android/tracking/client/TrackRequest;
public static final fun isPresenting ()Z
public fun isPublic ()Z
public fun onActivityStarted (Landroid/app/Activity;)V
public fun prepare (Lio/karte/android/tracking/Event;)Lio/karte/android/tracking/Event;
public fun receive (Lio/karte/android/tracking/client/TrackResponse;Lio/karte/android/tracking/client/TrackRequest;)V
public static final fun registerPopupWindow (Landroid/widget/PopupWindow;)V
public static final fun registerWindow (Landroid/view/Window;)V
public fun renewVisitorId (Ljava/lang/String;Ljava/lang/String;)V
public fun reset ()V
public fun resetAll ()V
public static final fun setDelegate (Lio/karte/android/inappmessaging/InAppMessagingDelegate;)V
public static final fun suppress ()V
public fun unconfigure (Lio/karte/android/KarteApp;)V
public static final fun unsuppress ()V
}

public final class io/karte/android/inappmessaging/InAppMessaging$Companion {
public final fun dismiss ()V
public final fun getDelegate ()Lio/karte/android/inappmessaging/InAppMessagingDelegate;
public final fun isPresenting ()Z
public final fun registerPopupWindow (Landroid/widget/PopupWindow;)V
public final fun registerWindow (Landroid/view/Window;)V
public final fun setDelegate (Lio/karte/android/inappmessaging/InAppMessagingDelegate;)V
public final fun suppress ()V
public final fun unsuppress ()V
}

public final class io/karte/android/inappmessaging/InAppMessaging$Config {
public static final field INSTANCE Lio/karte/android/inappmessaging/InAppMessaging$Config;
public static final fun getEnabledWebViewCache ()Z
public static final fun setEnabledWebViewCache (Z)V
}

public abstract class io/karte/android/inappmessaging/InAppMessagingDelegate {
public fun <init> ()V
public fun onDismissed (Ljava/lang/String;Ljava/lang/String;)V
public fun onPresented (Ljava/lang/String;Ljava/lang/String;)V
public fun onWindowDismissed ()V
public fun onWindowPresented ()V
public fun shouldOpenURL (Landroid/net/Uri;)Z
}

54 changes: 54 additions & 0 deletions inbox/api/inbox.api
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
public final class io/karte/android/inbox/BuildConfig {
public static final field BUILD_TYPE Ljava/lang/String;
public static final field DEBUG Z
public static final field LIBRARY_PACKAGE_NAME Ljava/lang/String;
public static final field LIB_VERSION Ljava/lang/String;
public fun <init> ()V
}

public final class io/karte/android/inbox/Inbox : io/karte/android/core/library/Library {
public static final field Companion Lio/karte/android/inbox/Inbox$Companion;
public fun <init> ()V
public fun configure (Lio/karte/android/KarteApp;)V
public fun getName ()Ljava/lang/String;
public fun getVersion ()Ljava/lang/String;
public fun isPublic ()Z
public fun unconfigure (Lio/karte/android/KarteApp;)V
}

public final class io/karte/android/inbox/Inbox$Companion {
public final fun fetchMessages (Ljava/lang/Integer;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun fetchMessages$default (Lio/karte/android/inbox/Inbox$Companion;Ljava/lang/Integer;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public final fun fetchMessagesAsync (Ljava/lang/Integer;Ljava/lang/String;Landroid/os/Handler;Lkotlin/jvm/functions/Function1;)V
public static synthetic fun fetchMessagesAsync$default (Lio/karte/android/inbox/Inbox$Companion;Ljava/lang/Integer;Ljava/lang/String;Landroid/os/Handler;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V
public final fun openMessages (Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public final fun openMessagesAsync (Ljava/util/List;Landroid/os/Handler;Lkotlin/jvm/functions/Function1;)V
}

public final class io/karte/android/inbox/models/InboxMessage {
public fun <init> (Ljava/util/Date;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZLjava/util/Map;)V
public final fun component1 ()Ljava/util/Date;
public final fun component2 ()Ljava/lang/String;
public final fun component3 ()Ljava/lang/String;
public final fun component4 ()Ljava/lang/String;
public final fun component5 ()Ljava/lang/String;
public final fun component6 ()Ljava/lang/String;
public final fun component7 ()Ljava/lang/String;
public final fun component8 ()Z
public final fun component9 ()Ljava/util/Map;
public final fun copy (Ljava/util/Date;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZLjava/util/Map;)Lio/karte/android/inbox/models/InboxMessage;
public static synthetic fun copy$default (Lio/karte/android/inbox/models/InboxMessage;Ljava/util/Date;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZLjava/util/Map;ILjava/lang/Object;)Lio/karte/android/inbox/models/InboxMessage;
public fun equals (Ljava/lang/Object;)Z
public final fun getAttachmentUrl ()Ljava/lang/String;
public final fun getBody ()Ljava/lang/String;
public final fun getCampaignId ()Ljava/lang/String;
public final fun getCustomPayload ()Ljava/util/Map;
public final fun getLinkUrl ()Ljava/lang/String;
public final fun getMessageId ()Ljava/lang/String;
public final fun getTimestamp ()Ljava/util/Date;
public final fun getTitle ()Ljava/lang/String;
public fun hashCode ()I
public final fun isRead ()Z
public fun toString ()Ljava/lang/String;
}

119 changes: 119 additions & 0 deletions notifications/api/notifications.api
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
public final class io/karte/android/notifications/BuildConfig {
public static final field BUILD_TYPE Ljava/lang/String;
public static final field DEBUG Z
public static final field LIBRARY_PACKAGE_NAME Ljava/lang/String;
public static final field LIB_VERSION Ljava/lang/String;
public fun <init> ()V
}

public final class io/karte/android/notifications/KarteAttributes : io/karte/android/tracking/DTO {
public field body Ljava/lang/String;
public field channel Ljava/lang/String;
public field fileUrl Ljava/lang/String;
public field link Ljava/lang/String;
public field sound Z
public field title Ljava/lang/String;
public fun <init> ()V
public fun <init> (Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public final fun component1 ()Ljava/lang/String;
public final fun component2 ()Ljava/lang/String;
public final fun component3 ()Z
public final fun component4 ()Ljava/lang/String;
public final fun component5 ()Ljava/lang/String;
public final fun component7 ()Ljava/lang/String;
public final fun copy (Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lio/karte/android/notifications/KarteAttributes;
public static synthetic fun copy$default (Lio/karte/android/notifications/KarteAttributes;Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lio/karte/android/notifications/KarteAttributes;
public fun equals (Ljava/lang/Object;)Z
public fun hashCode ()I
public fun load (Lorg/json/JSONObject;)Lio/karte/android/notifications/KarteAttributes;
public synthetic fun load (Lorg/json/JSONObject;)Ljava/lang/Object;
public fun toString ()Ljava/lang/String;
}

public final class io/karte/android/notifications/MessageHandler {
public static final field Companion Lio/karte/android/notifications/MessageHandler$Companion;
public synthetic fun <init> (Landroid/content/Context;Ljava/util/Map;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
public static final fun canHandleMessage (Lcom/google/firebase/messaging/RemoteMessage;)Z
public static final fun canHandleMessage (Ljava/util/Map;)Z
public static final fun copyInfoToIntent (Ljava/util/Map;Landroid/content/Intent;)V
public static final fun extractKarteAttributes (Lcom/google/firebase/messaging/RemoteMessage;)Lio/karte/android/notifications/KarteAttributes;
public static final fun extractKarteAttributes (Ljava/util/Map;)Lio/karte/android/notifications/KarteAttributes;
public final fun getContext ()Landroid/content/Context;
public final fun getData ()Ljava/util/Map;
public static final fun handleMessage (Landroid/content/Context;Lcom/google/firebase/messaging/RemoteMessage;)Z
public static final fun handleMessage (Landroid/content/Context;Lcom/google/firebase/messaging/RemoteMessage;Landroid/app/Notification;)Z
public static final fun handleMessage (Landroid/content/Context;Lcom/google/firebase/messaging/RemoteMessage;Landroid/app/Notification;Landroid/content/Intent;)Z
public static final fun handleMessage (Landroid/content/Context;Lcom/google/firebase/messaging/RemoteMessage;Landroid/content/Intent;)Z
public static final fun handleMessage (Landroid/content/Context;Ljava/util/Map;)Z
public static final fun handleMessage (Landroid/content/Context;Ljava/util/Map;Landroid/app/Notification;)Z
public static final fun handleMessage (Landroid/content/Context;Ljava/util/Map;Landroid/app/Notification;Landroid/content/Intent;)Z
public static final fun handleMessage (Landroid/content/Context;Ljava/util/Map;Landroid/content/Intent;)Z
}

public final class io/karte/android/notifications/MessageHandler$Companion {
public final fun canHandleMessage (Lcom/google/firebase/messaging/RemoteMessage;)Z
public final fun canHandleMessage (Ljava/util/Map;)Z
public final fun copyInfoToIntent (Ljava/util/Map;Landroid/content/Intent;)V
public final fun extractKarteAttributes (Lcom/google/firebase/messaging/RemoteMessage;)Lio/karte/android/notifications/KarteAttributes;
public final fun extractKarteAttributes (Ljava/util/Map;)Lio/karte/android/notifications/KarteAttributes;
public final fun handleMessage (Landroid/content/Context;Lcom/google/firebase/messaging/RemoteMessage;)Z
public final fun handleMessage (Landroid/content/Context;Lcom/google/firebase/messaging/RemoteMessage;Landroid/app/Notification;)Z
public final fun handleMessage (Landroid/content/Context;Lcom/google/firebase/messaging/RemoteMessage;Landroid/app/Notification;Landroid/content/Intent;)Z
public final fun handleMessage (Landroid/content/Context;Lcom/google/firebase/messaging/RemoteMessage;Landroid/content/Intent;)Z
public final fun handleMessage (Landroid/content/Context;Ljava/util/Map;)Z
public final fun handleMessage (Landroid/content/Context;Ljava/util/Map;Landroid/app/Notification;)Z
public final fun handleMessage (Landroid/content/Context;Ljava/util/Map;Landroid/app/Notification;Landroid/content/Intent;)Z
public final fun handleMessage (Landroid/content/Context;Ljava/util/Map;Landroid/content/Intent;)Z
public static synthetic fun handleMessage$default (Lio/karte/android/notifications/MessageHandler$Companion;Landroid/content/Context;Lcom/google/firebase/messaging/RemoteMessage;Landroid/app/Notification;Landroid/content/Intent;ILjava/lang/Object;)Z
public static synthetic fun handleMessage$default (Lio/karte/android/notifications/MessageHandler$Companion;Landroid/content/Context;Lcom/google/firebase/messaging/RemoteMessage;Landroid/content/Intent;ILjava/lang/Object;)Z
public static synthetic fun handleMessage$default (Lio/karte/android/notifications/MessageHandler$Companion;Landroid/content/Context;Ljava/util/Map;Landroid/app/Notification;Landroid/content/Intent;ILjava/lang/Object;)Z
public static synthetic fun handleMessage$default (Lio/karte/android/notifications/MessageHandler$Companion;Landroid/content/Context;Ljava/util/Map;Landroid/content/Intent;ILjava/lang/Object;)Z
}

public final class io/karte/android/notifications/Notifications : io/karte/android/utilities/ActivityLifecycleCallback, io/karte/android/core/library/Library {
public static final field Companion Lio/karte/android/notifications/Notifications$Companion;
public fun <init> ()V
public fun configure (Lio/karte/android/KarteApp;)V
public fun getName ()Ljava/lang/String;
public fun getVersion ()Ljava/lang/String;
public fun isPublic ()Z
public fun onActivityPaused (Landroid/app/Activity;)V
public fun onActivityResumed (Landroid/app/Activity;)V
public static final fun registerFCMToken (Ljava/lang/String;)V
public fun unconfigure (Lio/karte/android/KarteApp;)V
}

public final class io/karte/android/notifications/Notifications$Companion {
public final fun registerFCMToken (Ljava/lang/String;)V
}

public final class io/karte/android/notifications/Notifications$Config {
public static final field INSTANCE Lio/karte/android/notifications/Notifications$Config;
public static final fun getEnabledFCMTokenResend ()Z
public static final fun setEnabledFCMTokenResend (Z)V
}

public final class io/karte/android/notifications/NotificationsConfig : io/karte/android/core/library/LibraryConfig {
public static final field Companion Lio/karte/android/notifications/NotificationsConfig$Companion;
public synthetic fun <init> (ZLkotlin/jvm/internal/DefaultConstructorMarker;)V
public final fun getEnabledFCMTokenResend ()Z
}

public final class io/karte/android/notifications/NotificationsConfig$Builder {
public fun <init> ()V
public final fun build ()Lio/karte/android/notifications/NotificationsConfig;
public final fun enabledFCMTokenResend (Z)Lio/karte/android/notifications/NotificationsConfig$Builder;
public final fun getEnabledFCMTokenResend ()Z
public final synthetic fun setEnabledFCMTokenResend (Z)V
}

public final class io/karte/android/notifications/NotificationsConfig$Companion {
public final fun build (Lkotlin/jvm/functions/Function1;)Lio/karte/android/notifications/NotificationsConfig;
public static synthetic fun build$default (Lio/karte/android/notifications/NotificationsConfig$Companion;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lio/karte/android/notifications/NotificationsConfig;
}

public final class io/karte/android/notifications/NotificationsKt {
public static final fun registerFCMToken (Lio/karte/android/KarteApp$Companion;Ljava/lang/String;)V
}

54 changes: 54 additions & 0 deletions variables/api/variables.api
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
public final class io/karte/android/variables/BuildConfig {
public static final field BUILD_TYPE Ljava/lang/String;
public static final field DEBUG Z
public static final field LIBRARY_PACKAGE_NAME Ljava/lang/String;
public static final field LIB_VERSION Ljava/lang/String;
public fun <init> ()V
}

public abstract interface class io/karte/android/variables/FetchCompletion : io/karte/android/tracking/TrackCompletion {
}

public final class io/karte/android/variables/Variable {
public static final field Companion Lio/karte/android/variables/Variable$Companion;
public final fun component1 ()Ljava/lang/String;
public final fun component2 ()Ljava/lang/String;
public final fun component3 ()Ljava/lang/String;
public final fun component4 ()Ljava/lang/Object;
public final fun component5 ()Ljava/lang/String;
public final fun component6 ()Ljava/lang/String;
public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;)Lio/karte/android/variables/Variable;
public static synthetic fun copy$default (Lio/karte/android/variables/Variable;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lio/karte/android/variables/Variable;
public fun equals (Ljava/lang/Object;)Z
public final fun getBoolean (Z)Z
public final fun getCampaignId ()Ljava/lang/String;
public final fun getDouble (D)D
public final fun getEventHash ()Ljava/lang/String;
public final fun getJSONArray (Lorg/json/JSONArray;)Lorg/json/JSONArray;
public final fun getJSONObject (Lorg/json/JSONObject;)Lorg/json/JSONObject;
public final fun getLong (J)J
public final fun getName ()Ljava/lang/String;
public final fun getShortenId ()Ljava/lang/String;
public final fun getString (Ljava/lang/String;)Ljava/lang/String;
public final fun getTimestamp ()Ljava/lang/String;
public final fun getValue ()Ljava/lang/Object;
public fun hashCode ()I
public final fun isDefined ()Z
public fun toString ()Ljava/lang/String;
}

public final class io/karte/android/variables/Variable$Companion {
}

public class io/karte/android/variables/Variables {
public static fun fetch ()V
public static fun fetch (Lio/karte/android/variables/FetchCompletion;)V
public static fun get (Ljava/lang/String;)Lio/karte/android/variables/Variable;
public static fun trackClick (Ljava/util/List;)V
public static fun trackClick (Ljava/util/List;Ljava/util/Map;)V
public static fun trackClick (Ljava/util/List;Lorg/json/JSONObject;)V
public static fun trackOpen (Ljava/util/List;)V
public static fun trackOpen (Ljava/util/List;Ljava/util/Map;)V
public static fun trackOpen (Ljava/util/List;Lorg/json/JSONObject;)V
}

Loading

0 comments on commit 800f157

Please sign in to comment.