From 13347a1cd834b602ee5b71a97215b4d8a677fa0a Mon Sep 17 00:00:00 2001 From: tmaxxdd Date: Tue, 18 Feb 2025 18:15:12 +0100 Subject: [PATCH 1/2] Corrected naming --- .../dev/snipme/snipmeapp/bridge/Bridge.java | 2526 ----------------- .../snipme/snipmeapp/bridge/ModelPlugin.kt | 97 +- .../bridge/detail/DetailModelPlugin.kt | 1 - .../bridge/login/LoginModelPlugin.kt | 1 - .../snipmeapp/bridge/main/MainModelPlugin.kt | 1 - .../snipme/snipmeapp/channel/DataModel.g.kt | 1125 ++++++++ .../infrastructure/local/ReactionEntry.kt | 1 - .../snipme/snipmeapp/bridge/ModelPlugin.g.kt | 1125 ++++++++ .../kotlin/dev/snipme/bridge/ModelPlugin.g.kt | 1125 ++++++++ .../snipme/snipmeapp/bridge/ModelPlugin.g.kt | 1125 ++++++++ .../main_model.dart => channel/contract.dart} | 18 +- .../generated.g.dart} | 2 +- .../lib/generated/data_model.g.dart | 1246 ++++++++ flutter_module/lib/main.dart | 2 +- .../details_page_state_provider.dart | 2 +- .../providers/login_page_state_provider.dart | 2 +- .../providers/main_page_state_provider.dart | 2 +- .../providers/model_bridge_provider.dart | 2 +- .../presentation/screens/details_screen.dart | 5 +- .../presentation/screens/login_screen.dart | 2 +- .../lib/presentation/screens/main_screen.dart | 4 +- .../presentation/widgets/code_text_view.dart | 2 +- .../widgets/snippet_action_bar.dart | 2 +- .../widgets/snippet_details_bar.dart | 2 +- .../widgets/snippet_list_item.dart | 2 +- .../extensions/collection_extensions.dart | 2 +- .../utils/extensions/state_extensions.dart | 2 +- .../hooks/use_observable_state_hook.dart | 33 - flutter_module/lib/utils/mock/mocks.dart | 2 +- flutter_module/pubspec.lock | 107 +- flutter_module/pubspec.yaml | 64 +- 31 files changed, 5845 insertions(+), 2787 deletions(-) delete mode 100644 app/src/main/java/dev/snipme/snipmeapp/bridge/Bridge.java create mode 100644 app/src/main/java/dev/snipme/snipmeapp/channel/DataModel.g.kt create mode 100644 flutter_module/android/src/main/java/dev/snipme/snipmeapp/bridge/ModelPlugin.g.kt create mode 100644 flutter_module/android/src/main/kotlin/dev/snipme/bridge/ModelPlugin.g.kt create mode 100644 flutter_module/android/src/main/kotlin/dev/snipme/snipmeapp/bridge/ModelPlugin.g.kt rename flutter_module/{bridge/main_model.dart => channel/contract.dart} (90%) rename flutter_module/lib/{model/main_model.dart => bridge/generated.g.dart} (99%) create mode 100644 flutter_module/lib/generated/data_model.g.dart delete mode 100644 flutter_module/lib/utils/hooks/use_observable_state_hook.dart diff --git a/app/src/main/java/dev/snipme/snipmeapp/bridge/Bridge.java b/app/src/main/java/dev/snipme/snipmeapp/bridge/Bridge.java deleted file mode 100644 index b16744b..0000000 --- a/app/src/main/java/dev/snipme/snipmeapp/bridge/Bridge.java +++ /dev/null @@ -1,2526 +0,0 @@ -// Autogenerated from Pigeon (v22.5.0), do not edit directly. -// See also: https://pub.dev/packages/pigeon - -package dev.snipme.snipmeapp.bridge; - -import static java.lang.annotation.ElementType.METHOD; -import static java.lang.annotation.RetentionPolicy.CLASS; - -import android.util.Log; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import io.flutter.plugin.common.BasicMessageChannel; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugin.common.MessageCodec; -import io.flutter.plugin.common.StandardMessageCodec; -import java.io.ByteArrayOutputStream; -import java.lang.annotation.Retention; -import java.lang.annotation.Target; -import java.nio.ByteBuffer; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; - -/** Generated class from Pigeon. */ -@SuppressWarnings({"unused", "unchecked", "CodeBlock2Expr", "RedundantSuppression", "serial"}) -public class Bridge { - - /** Error class for passing custom error details to Flutter via a thrown PlatformException. */ - public static class FlutterError extends RuntimeException { - - /** The error code. */ - public final String code; - - /** The error details. Must be a datatype supported by the api codec. */ - public final Object details; - - public FlutterError(@NonNull String code, @Nullable String message, @Nullable Object details) - { - super(message); - this.code = code; - this.details = details; - } - } - - @NonNull - protected static ArrayList wrapError(@NonNull Throwable exception) { - ArrayList errorList = new ArrayList<>(3); - if (exception instanceof FlutterError) { - FlutterError error = (FlutterError) exception; - errorList.add(error.code); - errorList.add(error.getMessage()); - errorList.add(error.details); - } else { - errorList.add(exception.toString()); - errorList.add(exception.getClass().getSimpleName()); - errorList.add( - "Cause: " + exception.getCause() + ", Stacktrace: " + Log.getStackTraceString(exception)); - } - return errorList; - } - - @Target(METHOD) - @Retention(CLASS) - @interface CanIgnoreReturnValue {} - - public enum SnippetLanguageType { - C(0), - CPP(1), - OBJECTIVE_C(2), - C_SHARP(3), - JAVA(4), - BASH(5), - PYTHON(6), - PERL(7), - RUBY(8), - SWIFT(9), - JAVASCRIPT(10), - KOTLIN(11), - COFFEESCRIPT(12), - RUST(13), - BASIC(14), - CLOJURE(15), - CSS(16), - DART(17), - ERLANG(18), - GO(19), - HASKELL(20), - LISP(21), - LLVM(22), - LUA(23), - MATLAB(24), - ML(25), - MUMPS(26), - NEMERLE(27), - PASCAL(28), - R(29), - RD(30), - SCALA(31), - SQL(32), - TEX(33), - VB(34), - VHDL(35), - TCL(36), - XQUERY(37), - YAML(38), - MARKDOWN(39), - JSON(40), - XML(41), - PROTO(42), - REGEX(43), - UNKNOWN(44); - - final int index; - - SnippetLanguageType(final int index) { - this.index = index; - } - } - - public enum SnippetFilterType { - ALL(0), - MINE(1), - SHARED(2); - - final int index; - - SnippetFilterType(final int index) { - this.index = index; - } - } - - public enum UserReaction { - NONE(0), - LIKE(1), - DISLIKE(2); - - final int index; - - UserReaction(final int index) { - this.index = index; - } - } - - public enum ModelState { - LOADING(0), - LOADED(1), - ERROR(2); - - final int index; - - ModelState(final int index) { - this.index = index; - } - } - - public enum MainModelEvent { - NONE(0), - ALERT(1), - LOGOUT(2); - - final int index; - - MainModelEvent(final int index) { - this.index = index; - } - } - - public enum DetailModelEvent { - NONE(0), - SAVED(1), - DELETED(2); - - final int index; - - DetailModelEvent(final int index) { - this.index = index; - } - } - - public enum LoginModelEvent { - NONE(0), - LOGGED(1); - - final int index; - - LoginModelEvent(final int index) { - this.index = index; - } - } - - /** Generated class from Pigeon that represents data sent in messages. */ - public static final class Snippet { - private @Nullable String uuid; - - public @Nullable String getUuid() { - return uuid; - } - - public void setUuid(@Nullable String setterArg) { - this.uuid = setterArg; - } - - private @Nullable String title; - - public @Nullable String getTitle() { - return title; - } - - public void setTitle(@Nullable String setterArg) { - this.title = setterArg; - } - - private @Nullable SnippetCode code; - - public @Nullable SnippetCode getCode() { - return code; - } - - public void setCode(@Nullable SnippetCode setterArg) { - this.code = setterArg; - } - - private @Nullable SnippetLanguage language; - - public @Nullable SnippetLanguage getLanguage() { - return language; - } - - public void setLanguage(@Nullable SnippetLanguage setterArg) { - this.language = setterArg; - } - - private @Nullable Owner owner; - - public @Nullable Owner getOwner() { - return owner; - } - - public void setOwner(@Nullable Owner setterArg) { - this.owner = setterArg; - } - - private @Nullable Boolean isOwner; - - public @Nullable Boolean getIsOwner() { - return isOwner; - } - - public void setIsOwner(@Nullable Boolean setterArg) { - this.isOwner = setterArg; - } - - private @Nullable String timeAgo; - - public @Nullable String getTimeAgo() { - return timeAgo; - } - - public void setTimeAgo(@Nullable String setterArg) { - this.timeAgo = setterArg; - } - - private @Nullable Long voteResult; - - public @Nullable Long getVoteResult() { - return voteResult; - } - - public void setVoteResult(@Nullable Long setterArg) { - this.voteResult = setterArg; - } - - private @Nullable UserReaction userReaction; - - public @Nullable UserReaction getUserReaction() { - return userReaction; - } - - public void setUserReaction(@Nullable UserReaction setterArg) { - this.userReaction = setterArg; - } - - private @Nullable Boolean isPrivate; - - public @Nullable Boolean getIsPrivate() { - return isPrivate; - } - - public void setIsPrivate(@Nullable Boolean setterArg) { - this.isPrivate = setterArg; - } - - private @Nullable Boolean isLiked; - - public @Nullable Boolean getIsLiked() { - return isLiked; - } - - public void setIsLiked(@Nullable Boolean setterArg) { - this.isLiked = setterArg; - } - - private @Nullable Boolean isDisliked; - - public @Nullable Boolean getIsDisliked() { - return isDisliked; - } - - public void setIsDisliked(@Nullable Boolean setterArg) { - this.isDisliked = setterArg; - } - - private @Nullable Boolean isSaved; - - public @Nullable Boolean getIsSaved() { - return isSaved; - } - - public void setIsSaved(@Nullable Boolean setterArg) { - this.isSaved = setterArg; - } - - private @Nullable Boolean isToDelete; - - public @Nullable Boolean getIsToDelete() { - return isToDelete; - } - - public void setIsToDelete(@Nullable Boolean setterArg) { - this.isToDelete = setterArg; - } - - @Override - public boolean equals(Object o) { - if (this == o) { return true; } - if (o == null || getClass() != o.getClass()) { return false; } - Snippet that = (Snippet) o; - return Objects.equals(uuid, that.uuid) && Objects.equals(title, that.title) && Objects.equals(code, that.code) && Objects.equals(language, that.language) && Objects.equals(owner, that.owner) && Objects.equals(isOwner, that.isOwner) && Objects.equals(timeAgo, that.timeAgo) && Objects.equals(voteResult, that.voteResult) && Objects.equals(userReaction, that.userReaction) && Objects.equals(isPrivate, that.isPrivate) && Objects.equals(isLiked, that.isLiked) && Objects.equals(isDisliked, that.isDisliked) && Objects.equals(isSaved, that.isSaved) && Objects.equals(isToDelete, that.isToDelete); - } - - @Override - public int hashCode() { - return Objects.hash(uuid, title, code, language, owner, isOwner, timeAgo, voteResult, userReaction, isPrivate, isLiked, isDisliked, isSaved, isToDelete); - } - - public static final class Builder { - - private @Nullable String uuid; - - @CanIgnoreReturnValue - public @NonNull Builder setUuid(@Nullable String setterArg) { - this.uuid = setterArg; - return this; - } - - private @Nullable String title; - - @CanIgnoreReturnValue - public @NonNull Builder setTitle(@Nullable String setterArg) { - this.title = setterArg; - return this; - } - - private @Nullable SnippetCode code; - - @CanIgnoreReturnValue - public @NonNull Builder setCode(@Nullable SnippetCode setterArg) { - this.code = setterArg; - return this; - } - - private @Nullable SnippetLanguage language; - - @CanIgnoreReturnValue - public @NonNull Builder setLanguage(@Nullable SnippetLanguage setterArg) { - this.language = setterArg; - return this; - } - - private @Nullable Owner owner; - - @CanIgnoreReturnValue - public @NonNull Builder setOwner(@Nullable Owner setterArg) { - this.owner = setterArg; - return this; - } - - private @Nullable Boolean isOwner; - - @CanIgnoreReturnValue - public @NonNull Builder setIsOwner(@Nullable Boolean setterArg) { - this.isOwner = setterArg; - return this; - } - - private @Nullable String timeAgo; - - @CanIgnoreReturnValue - public @NonNull Builder setTimeAgo(@Nullable String setterArg) { - this.timeAgo = setterArg; - return this; - } - - private @Nullable Long voteResult; - - @CanIgnoreReturnValue - public @NonNull Builder setVoteResult(@Nullable Long setterArg) { - this.voteResult = setterArg; - return this; - } - - private @Nullable UserReaction userReaction; - - @CanIgnoreReturnValue - public @NonNull Builder setUserReaction(@Nullable UserReaction setterArg) { - this.userReaction = setterArg; - return this; - } - - private @Nullable Boolean isPrivate; - - @CanIgnoreReturnValue - public @NonNull Builder setIsPrivate(@Nullable Boolean setterArg) { - this.isPrivate = setterArg; - return this; - } - - private @Nullable Boolean isLiked; - - @CanIgnoreReturnValue - public @NonNull Builder setIsLiked(@Nullable Boolean setterArg) { - this.isLiked = setterArg; - return this; - } - - private @Nullable Boolean isDisliked; - - @CanIgnoreReturnValue - public @NonNull Builder setIsDisliked(@Nullable Boolean setterArg) { - this.isDisliked = setterArg; - return this; - } - - private @Nullable Boolean isSaved; - - @CanIgnoreReturnValue - public @NonNull Builder setIsSaved(@Nullable Boolean setterArg) { - this.isSaved = setterArg; - return this; - } - - private @Nullable Boolean isToDelete; - - @CanIgnoreReturnValue - public @NonNull Builder setIsToDelete(@Nullable Boolean setterArg) { - this.isToDelete = setterArg; - return this; - } - - public @NonNull Snippet build() { - Snippet pigeonReturn = new Snippet(); - pigeonReturn.setUuid(uuid); - pigeonReturn.setTitle(title); - pigeonReturn.setCode(code); - pigeonReturn.setLanguage(language); - pigeonReturn.setOwner(owner); - pigeonReturn.setIsOwner(isOwner); - pigeonReturn.setTimeAgo(timeAgo); - pigeonReturn.setVoteResult(voteResult); - pigeonReturn.setUserReaction(userReaction); - pigeonReturn.setIsPrivate(isPrivate); - pigeonReturn.setIsLiked(isLiked); - pigeonReturn.setIsDisliked(isDisliked); - pigeonReturn.setIsSaved(isSaved); - pigeonReturn.setIsToDelete(isToDelete); - return pigeonReturn; - } - } - - @NonNull - ArrayList toList() { - ArrayList toListResult = new ArrayList<>(14); - toListResult.add(uuid); - toListResult.add(title); - toListResult.add(code); - toListResult.add(language); - toListResult.add(owner); - toListResult.add(isOwner); - toListResult.add(timeAgo); - toListResult.add(voteResult); - toListResult.add(userReaction); - toListResult.add(isPrivate); - toListResult.add(isLiked); - toListResult.add(isDisliked); - toListResult.add(isSaved); - toListResult.add(isToDelete); - return toListResult; - } - - static @NonNull Snippet fromList(@NonNull ArrayList pigeonVar_list) { - Snippet pigeonResult = new Snippet(); - Object uuid = pigeonVar_list.get(0); - pigeonResult.setUuid((String) uuid); - Object title = pigeonVar_list.get(1); - pigeonResult.setTitle((String) title); - Object code = pigeonVar_list.get(2); - pigeonResult.setCode((SnippetCode) code); - Object language = pigeonVar_list.get(3); - pigeonResult.setLanguage((SnippetLanguage) language); - Object owner = pigeonVar_list.get(4); - pigeonResult.setOwner((Owner) owner); - Object isOwner = pigeonVar_list.get(5); - pigeonResult.setIsOwner((Boolean) isOwner); - Object timeAgo = pigeonVar_list.get(6); - pigeonResult.setTimeAgo((String) timeAgo); - Object voteResult = pigeonVar_list.get(7); - pigeonResult.setVoteResult((Long) voteResult); - Object userReaction = pigeonVar_list.get(8); - pigeonResult.setUserReaction((UserReaction) userReaction); - Object isPrivate = pigeonVar_list.get(9); - pigeonResult.setIsPrivate((Boolean) isPrivate); - Object isLiked = pigeonVar_list.get(10); - pigeonResult.setIsLiked((Boolean) isLiked); - Object isDisliked = pigeonVar_list.get(11); - pigeonResult.setIsDisliked((Boolean) isDisliked); - Object isSaved = pigeonVar_list.get(12); - pigeonResult.setIsSaved((Boolean) isSaved); - Object isToDelete = pigeonVar_list.get(13); - pigeonResult.setIsToDelete((Boolean) isToDelete); - return pigeonResult; - } - } - - /** Generated class from Pigeon that represents data sent in messages. */ - public static final class SnippetCode { - private @Nullable String raw; - - public @Nullable String getRaw() { - return raw; - } - - public void setRaw(@Nullable String setterArg) { - this.raw = setterArg; - } - - private @Nullable List tokens; - - public @Nullable List getTokens() { - return tokens; - } - - public void setTokens(@Nullable List setterArg) { - this.tokens = setterArg; - } - - @Override - public boolean equals(Object o) { - if (this == o) { return true; } - if (o == null || getClass() != o.getClass()) { return false; } - SnippetCode that = (SnippetCode) o; - return Objects.equals(raw, that.raw) && Objects.equals(tokens, that.tokens); - } - - @Override - public int hashCode() { - return Objects.hash(raw, tokens); - } - - public static final class Builder { - - private @Nullable String raw; - - @CanIgnoreReturnValue - public @NonNull Builder setRaw(@Nullable String setterArg) { - this.raw = setterArg; - return this; - } - - private @Nullable List tokens; - - @CanIgnoreReturnValue - public @NonNull Builder setTokens(@Nullable List setterArg) { - this.tokens = setterArg; - return this; - } - - public @NonNull SnippetCode build() { - SnippetCode pigeonReturn = new SnippetCode(); - pigeonReturn.setRaw(raw); - pigeonReturn.setTokens(tokens); - return pigeonReturn; - } - } - - @NonNull - ArrayList toList() { - ArrayList toListResult = new ArrayList<>(2); - toListResult.add(raw); - toListResult.add(tokens); - return toListResult; - } - - static @NonNull SnippetCode fromList(@NonNull ArrayList pigeonVar_list) { - SnippetCode pigeonResult = new SnippetCode(); - Object raw = pigeonVar_list.get(0); - pigeonResult.setRaw((String) raw); - Object tokens = pigeonVar_list.get(1); - pigeonResult.setTokens((List) tokens); - return pigeonResult; - } - } - - /** Generated class from Pigeon that represents data sent in messages. */ - public static final class SyntaxToken { - private @Nullable Long start; - - public @Nullable Long getStart() { - return start; - } - - public void setStart(@Nullable Long setterArg) { - this.start = setterArg; - } - - private @Nullable Long end; - - public @Nullable Long getEnd() { - return end; - } - - public void setEnd(@Nullable Long setterArg) { - this.end = setterArg; - } - - private @Nullable Long color; - - public @Nullable Long getColor() { - return color; - } - - public void setColor(@Nullable Long setterArg) { - this.color = setterArg; - } - - @Override - public boolean equals(Object o) { - if (this == o) { return true; } - if (o == null || getClass() != o.getClass()) { return false; } - SyntaxToken that = (SyntaxToken) o; - return Objects.equals(start, that.start) && Objects.equals(end, that.end) && Objects.equals(color, that.color); - } - - @Override - public int hashCode() { - return Objects.hash(start, end, color); - } - - public static final class Builder { - - private @Nullable Long start; - - @CanIgnoreReturnValue - public @NonNull Builder setStart(@Nullable Long setterArg) { - this.start = setterArg; - return this; - } - - private @Nullable Long end; - - @CanIgnoreReturnValue - public @NonNull Builder setEnd(@Nullable Long setterArg) { - this.end = setterArg; - return this; - } - - private @Nullable Long color; - - @CanIgnoreReturnValue - public @NonNull Builder setColor(@Nullable Long setterArg) { - this.color = setterArg; - return this; - } - - public @NonNull SyntaxToken build() { - SyntaxToken pigeonReturn = new SyntaxToken(); - pigeonReturn.setStart(start); - pigeonReturn.setEnd(end); - pigeonReturn.setColor(color); - return pigeonReturn; - } - } - - @NonNull - ArrayList toList() { - ArrayList toListResult = new ArrayList<>(3); - toListResult.add(start); - toListResult.add(end); - toListResult.add(color); - return toListResult; - } - - static @NonNull SyntaxToken fromList(@NonNull ArrayList pigeonVar_list) { - SyntaxToken pigeonResult = new SyntaxToken(); - Object start = pigeonVar_list.get(0); - pigeonResult.setStart((Long) start); - Object end = pigeonVar_list.get(1); - pigeonResult.setEnd((Long) end); - Object color = pigeonVar_list.get(2); - pigeonResult.setColor((Long) color); - return pigeonResult; - } - } - - /** Generated class from Pigeon that represents data sent in messages. */ - public static final class SnippetLanguage { - private @Nullable String raw; - - public @Nullable String getRaw() { - return raw; - } - - public void setRaw(@Nullable String setterArg) { - this.raw = setterArg; - } - - private @Nullable SnippetLanguageType type; - - public @Nullable SnippetLanguageType getType() { - return type; - } - - public void setType(@Nullable SnippetLanguageType setterArg) { - this.type = setterArg; - } - - @Override - public boolean equals(Object o) { - if (this == o) { return true; } - if (o == null || getClass() != o.getClass()) { return false; } - SnippetLanguage that = (SnippetLanguage) o; - return Objects.equals(raw, that.raw) && Objects.equals(type, that.type); - } - - @Override - public int hashCode() { - return Objects.hash(raw, type); - } - - public static final class Builder { - - private @Nullable String raw; - - @CanIgnoreReturnValue - public @NonNull Builder setRaw(@Nullable String setterArg) { - this.raw = setterArg; - return this; - } - - private @Nullable SnippetLanguageType type; - - @CanIgnoreReturnValue - public @NonNull Builder setType(@Nullable SnippetLanguageType setterArg) { - this.type = setterArg; - return this; - } - - public @NonNull SnippetLanguage build() { - SnippetLanguage pigeonReturn = new SnippetLanguage(); - pigeonReturn.setRaw(raw); - pigeonReturn.setType(type); - return pigeonReturn; - } - } - - @NonNull - ArrayList toList() { - ArrayList toListResult = new ArrayList<>(2); - toListResult.add(raw); - toListResult.add(type); - return toListResult; - } - - static @NonNull SnippetLanguage fromList(@NonNull ArrayList pigeonVar_list) { - SnippetLanguage pigeonResult = new SnippetLanguage(); - Object raw = pigeonVar_list.get(0); - pigeonResult.setRaw((String) raw); - Object type = pigeonVar_list.get(1); - pigeonResult.setType((SnippetLanguageType) type); - return pigeonResult; - } - } - - /** Generated class from Pigeon that represents data sent in messages. */ - public static final class Owner { - private @Nullable Long id; - - public @Nullable Long getId() { - return id; - } - - public void setId(@Nullable Long setterArg) { - this.id = setterArg; - } - - private @Nullable String login; - - public @Nullable String getLogin() { - return login; - } - - public void setLogin(@Nullable String setterArg) { - this.login = setterArg; - } - - @Override - public boolean equals(Object o) { - if (this == o) { return true; } - if (o == null || getClass() != o.getClass()) { return false; } - Owner that = (Owner) o; - return Objects.equals(id, that.id) && Objects.equals(login, that.login); - } - - @Override - public int hashCode() { - return Objects.hash(id, login); - } - - public static final class Builder { - - private @Nullable Long id; - - @CanIgnoreReturnValue - public @NonNull Builder setId(@Nullable Long setterArg) { - this.id = setterArg; - return this; - } - - private @Nullable String login; - - @CanIgnoreReturnValue - public @NonNull Builder setLogin(@Nullable String setterArg) { - this.login = setterArg; - return this; - } - - public @NonNull Owner build() { - Owner pigeonReturn = new Owner(); - pigeonReturn.setId(id); - pigeonReturn.setLogin(login); - return pigeonReturn; - } - } - - @NonNull - ArrayList toList() { - ArrayList toListResult = new ArrayList<>(2); - toListResult.add(id); - toListResult.add(login); - return toListResult; - } - - static @NonNull Owner fromList(@NonNull ArrayList pigeonVar_list) { - Owner pigeonResult = new Owner(); - Object id = pigeonVar_list.get(0); - pigeonResult.setId((Long) id); - Object login = pigeonVar_list.get(1); - pigeonResult.setLogin((String) login); - return pigeonResult; - } - } - - /** Generated class from Pigeon that represents data sent in messages. */ - public static final class SnippetFilter { - private @Nullable List languages; - - public @Nullable List getLanguages() { - return languages; - } - - public void setLanguages(@Nullable List setterArg) { - this.languages = setterArg; - } - - private @Nullable List selectedLanguages; - - public @Nullable List getSelectedLanguages() { - return selectedLanguages; - } - - public void setSelectedLanguages(@Nullable List setterArg) { - this.selectedLanguages = setterArg; - } - - private @Nullable List scopes; - - public @Nullable List getScopes() { - return scopes; - } - - public void setScopes(@Nullable List setterArg) { - this.scopes = setterArg; - } - - private @Nullable String selectedScope; - - public @Nullable String getSelectedScope() { - return selectedScope; - } - - public void setSelectedScope(@Nullable String setterArg) { - this.selectedScope = setterArg; - } - - @Override - public boolean equals(Object o) { - if (this == o) { return true; } - if (o == null || getClass() != o.getClass()) { return false; } - SnippetFilter that = (SnippetFilter) o; - return Objects.equals(languages, that.languages) && Objects.equals(selectedLanguages, that.selectedLanguages) && Objects.equals(scopes, that.scopes) && Objects.equals(selectedScope, that.selectedScope); - } - - @Override - public int hashCode() { - return Objects.hash(languages, selectedLanguages, scopes, selectedScope); - } - - public static final class Builder { - - private @Nullable List languages; - - @CanIgnoreReturnValue - public @NonNull Builder setLanguages(@Nullable List setterArg) { - this.languages = setterArg; - return this; - } - - private @Nullable List selectedLanguages; - - @CanIgnoreReturnValue - public @NonNull Builder setSelectedLanguages(@Nullable List setterArg) { - this.selectedLanguages = setterArg; - return this; - } - - private @Nullable List scopes; - - @CanIgnoreReturnValue - public @NonNull Builder setScopes(@Nullable List setterArg) { - this.scopes = setterArg; - return this; - } - - private @Nullable String selectedScope; - - @CanIgnoreReturnValue - public @NonNull Builder setSelectedScope(@Nullable String setterArg) { - this.selectedScope = setterArg; - return this; - } - - public @NonNull SnippetFilter build() { - SnippetFilter pigeonReturn = new SnippetFilter(); - pigeonReturn.setLanguages(languages); - pigeonReturn.setSelectedLanguages(selectedLanguages); - pigeonReturn.setScopes(scopes); - pigeonReturn.setSelectedScope(selectedScope); - return pigeonReturn; - } - } - - @NonNull - ArrayList toList() { - ArrayList toListResult = new ArrayList<>(4); - toListResult.add(languages); - toListResult.add(selectedLanguages); - toListResult.add(scopes); - toListResult.add(selectedScope); - return toListResult; - } - - static @NonNull SnippetFilter fromList(@NonNull ArrayList pigeonVar_list) { - SnippetFilter pigeonResult = new SnippetFilter(); - Object languages = pigeonVar_list.get(0); - pigeonResult.setLanguages((List) languages); - Object selectedLanguages = pigeonVar_list.get(1); - pigeonResult.setSelectedLanguages((List) selectedLanguages); - Object scopes = pigeonVar_list.get(2); - pigeonResult.setScopes((List) scopes); - Object selectedScope = pigeonVar_list.get(3); - pigeonResult.setSelectedScope((String) selectedScope); - return pigeonResult; - } - } - - /** Generated class from Pigeon that represents data sent in messages. */ - public static final class MainModelStateData { - private @Nullable ModelState state; - - public @Nullable ModelState getState() { - return state; - } - - public void setState(@Nullable ModelState setterArg) { - this.state = setterArg; - } - - private @Nullable Boolean isLoading; - - public @Nullable Boolean getIsLoading() { - return isLoading; - } - - public void setIsLoading(@Nullable Boolean setterArg) { - this.isLoading = setterArg; - } - - private @Nullable List data; - - public @Nullable List getData() { - return data; - } - - public void setData(@Nullable List setterArg) { - this.data = setterArg; - } - - private @Nullable SnippetFilter filter; - - public @Nullable SnippetFilter getFilter() { - return filter; - } - - public void setFilter(@Nullable SnippetFilter setterArg) { - this.filter = setterArg; - } - - private @Nullable String error; - - public @Nullable String getError() { - return error; - } - - public void setError(@Nullable String setterArg) { - this.error = setterArg; - } - - private @Nullable Long oldHash; - - public @Nullable Long getOldHash() { - return oldHash; - } - - public void setOldHash(@Nullable Long setterArg) { - this.oldHash = setterArg; - } - - private @Nullable Long newHash; - - public @Nullable Long getNewHash() { - return newHash; - } - - public void setNewHash(@Nullable Long setterArg) { - this.newHash = setterArg; - } - - @Override - public boolean equals(Object o) { - if (this == o) { return true; } - if (o == null || getClass() != o.getClass()) { return false; } - MainModelStateData that = (MainModelStateData) o; - return Objects.equals(state, that.state) && Objects.equals(isLoading, that.isLoading) && Objects.equals(data, that.data) && Objects.equals(filter, that.filter) && Objects.equals(error, that.error) && Objects.equals(oldHash, that.oldHash) && Objects.equals(newHash, that.newHash); - } - - @Override - public int hashCode() { - return Objects.hash(state, isLoading, data, filter, error, oldHash, newHash); - } - - public static final class Builder { - - private @Nullable ModelState state; - - @CanIgnoreReturnValue - public @NonNull Builder setState(@Nullable ModelState setterArg) { - this.state = setterArg; - return this; - } - - private @Nullable Boolean isLoading; - - @CanIgnoreReturnValue - public @NonNull Builder setIsLoading(@Nullable Boolean setterArg) { - this.isLoading = setterArg; - return this; - } - - private @Nullable List data; - - @CanIgnoreReturnValue - public @NonNull Builder setData(@Nullable List setterArg) { - this.data = setterArg; - return this; - } - - private @Nullable SnippetFilter filter; - - @CanIgnoreReturnValue - public @NonNull Builder setFilter(@Nullable SnippetFilter setterArg) { - this.filter = setterArg; - return this; - } - - private @Nullable String error; - - @CanIgnoreReturnValue - public @NonNull Builder setError(@Nullable String setterArg) { - this.error = setterArg; - return this; - } - - private @Nullable Long oldHash; - - @CanIgnoreReturnValue - public @NonNull Builder setOldHash(@Nullable Long setterArg) { - this.oldHash = setterArg; - return this; - } - - private @Nullable Long newHash; - - @CanIgnoreReturnValue - public @NonNull Builder setNewHash(@Nullable Long setterArg) { - this.newHash = setterArg; - return this; - } - - public @NonNull MainModelStateData build() { - MainModelStateData pigeonReturn = new MainModelStateData(); - pigeonReturn.setState(state); - pigeonReturn.setIsLoading(isLoading); - pigeonReturn.setData(data); - pigeonReturn.setFilter(filter); - pigeonReturn.setError(error); - pigeonReturn.setOldHash(oldHash); - pigeonReturn.setNewHash(newHash); - return pigeonReturn; - } - } - - @NonNull - ArrayList toList() { - ArrayList toListResult = new ArrayList<>(7); - toListResult.add(state); - toListResult.add(isLoading); - toListResult.add(data); - toListResult.add(filter); - toListResult.add(error); - toListResult.add(oldHash); - toListResult.add(newHash); - return toListResult; - } - - static @NonNull MainModelStateData fromList(@NonNull ArrayList pigeonVar_list) { - MainModelStateData pigeonResult = new MainModelStateData(); - Object state = pigeonVar_list.get(0); - pigeonResult.setState((ModelState) state); - Object isLoading = pigeonVar_list.get(1); - pigeonResult.setIsLoading((Boolean) isLoading); - Object data = pigeonVar_list.get(2); - pigeonResult.setData((List) data); - Object filter = pigeonVar_list.get(3); - pigeonResult.setFilter((SnippetFilter) filter); - Object error = pigeonVar_list.get(4); - pigeonResult.setError((String) error); - Object oldHash = pigeonVar_list.get(5); - pigeonResult.setOldHash((Long) oldHash); - Object newHash = pigeonVar_list.get(6); - pigeonResult.setNewHash((Long) newHash); - return pigeonResult; - } - } - - /** Generated class from Pigeon that represents data sent in messages. */ - public static final class MainModelEventData { - private @Nullable MainModelEvent event; - - public @Nullable MainModelEvent getEvent() { - return event; - } - - public void setEvent(@Nullable MainModelEvent setterArg) { - this.event = setterArg; - } - - private @Nullable String message; - - public @Nullable String getMessage() { - return message; - } - - public void setMessage(@Nullable String setterArg) { - this.message = setterArg; - } - - private @Nullable Long oldHash; - - public @Nullable Long getOldHash() { - return oldHash; - } - - public void setOldHash(@Nullable Long setterArg) { - this.oldHash = setterArg; - } - - private @Nullable Long newHash; - - public @Nullable Long getNewHash() { - return newHash; - } - - public void setNewHash(@Nullable Long setterArg) { - this.newHash = setterArg; - } - - @Override - public boolean equals(Object o) { - if (this == o) { return true; } - if (o == null || getClass() != o.getClass()) { return false; } - MainModelEventData that = (MainModelEventData) o; - return Objects.equals(event, that.event) && Objects.equals(message, that.message) && Objects.equals(oldHash, that.oldHash) && Objects.equals(newHash, that.newHash); - } - - @Override - public int hashCode() { - return Objects.hash(event, message, oldHash, newHash); - } - - public static final class Builder { - - private @Nullable MainModelEvent event; - - @CanIgnoreReturnValue - public @NonNull Builder setEvent(@Nullable MainModelEvent setterArg) { - this.event = setterArg; - return this; - } - - private @Nullable String message; - - @CanIgnoreReturnValue - public @NonNull Builder setMessage(@Nullable String setterArg) { - this.message = setterArg; - return this; - } - - private @Nullable Long oldHash; - - @CanIgnoreReturnValue - public @NonNull Builder setOldHash(@Nullable Long setterArg) { - this.oldHash = setterArg; - return this; - } - - private @Nullable Long newHash; - - @CanIgnoreReturnValue - public @NonNull Builder setNewHash(@Nullable Long setterArg) { - this.newHash = setterArg; - return this; - } - - public @NonNull MainModelEventData build() { - MainModelEventData pigeonReturn = new MainModelEventData(); - pigeonReturn.setEvent(event); - pigeonReturn.setMessage(message); - pigeonReturn.setOldHash(oldHash); - pigeonReturn.setNewHash(newHash); - return pigeonReturn; - } - } - - @NonNull - ArrayList toList() { - ArrayList toListResult = new ArrayList<>(4); - toListResult.add(event); - toListResult.add(message); - toListResult.add(oldHash); - toListResult.add(newHash); - return toListResult; - } - - static @NonNull MainModelEventData fromList(@NonNull ArrayList pigeonVar_list) { - MainModelEventData pigeonResult = new MainModelEventData(); - Object event = pigeonVar_list.get(0); - pigeonResult.setEvent((MainModelEvent) event); - Object message = pigeonVar_list.get(1); - pigeonResult.setMessage((String) message); - Object oldHash = pigeonVar_list.get(2); - pigeonResult.setOldHash((Long) oldHash); - Object newHash = pigeonVar_list.get(3); - pigeonResult.setNewHash((Long) newHash); - return pigeonResult; - } - } - - /** Generated class from Pigeon that represents data sent in messages. */ - public static final class DetailModelStateData { - private @Nullable ModelState state; - - public @Nullable ModelState getState() { - return state; - } - - public void setState(@Nullable ModelState setterArg) { - this.state = setterArg; - } - - private @Nullable Boolean isLoading; - - public @Nullable Boolean getIsLoading() { - return isLoading; - } - - public void setIsLoading(@Nullable Boolean setterArg) { - this.isLoading = setterArg; - } - - private @Nullable Snippet data; - - public @Nullable Snippet getData() { - return data; - } - - public void setData(@Nullable Snippet setterArg) { - this.data = setterArg; - } - - private @Nullable String error; - - public @Nullable String getError() { - return error; - } - - public void setError(@Nullable String setterArg) { - this.error = setterArg; - } - - private @Nullable Long oldHash; - - public @Nullable Long getOldHash() { - return oldHash; - } - - public void setOldHash(@Nullable Long setterArg) { - this.oldHash = setterArg; - } - - private @Nullable Long newHash; - - public @Nullable Long getNewHash() { - return newHash; - } - - public void setNewHash(@Nullable Long setterArg) { - this.newHash = setterArg; - } - - @Override - public boolean equals(Object o) { - if (this == o) { return true; } - if (o == null || getClass() != o.getClass()) { return false; } - DetailModelStateData that = (DetailModelStateData) o; - return Objects.equals(state, that.state) && Objects.equals(isLoading, that.isLoading) && Objects.equals(data, that.data) && Objects.equals(error, that.error) && Objects.equals(oldHash, that.oldHash) && Objects.equals(newHash, that.newHash); - } - - @Override - public int hashCode() { - return Objects.hash(state, isLoading, data, error, oldHash, newHash); - } - - public static final class Builder { - - private @Nullable ModelState state; - - @CanIgnoreReturnValue - public @NonNull Builder setState(@Nullable ModelState setterArg) { - this.state = setterArg; - return this; - } - - private @Nullable Boolean isLoading; - - @CanIgnoreReturnValue - public @NonNull Builder setIsLoading(@Nullable Boolean setterArg) { - this.isLoading = setterArg; - return this; - } - - private @Nullable Snippet data; - - @CanIgnoreReturnValue - public @NonNull Builder setData(@Nullable Snippet setterArg) { - this.data = setterArg; - return this; - } - - private @Nullable String error; - - @CanIgnoreReturnValue - public @NonNull Builder setError(@Nullable String setterArg) { - this.error = setterArg; - return this; - } - - private @Nullable Long oldHash; - - @CanIgnoreReturnValue - public @NonNull Builder setOldHash(@Nullable Long setterArg) { - this.oldHash = setterArg; - return this; - } - - private @Nullable Long newHash; - - @CanIgnoreReturnValue - public @NonNull Builder setNewHash(@Nullable Long setterArg) { - this.newHash = setterArg; - return this; - } - - public @NonNull DetailModelStateData build() { - DetailModelStateData pigeonReturn = new DetailModelStateData(); - pigeonReturn.setState(state); - pigeonReturn.setIsLoading(isLoading); - pigeonReturn.setData(data); - pigeonReturn.setError(error); - pigeonReturn.setOldHash(oldHash); - pigeonReturn.setNewHash(newHash); - return pigeonReturn; - } - } - - @NonNull - ArrayList toList() { - ArrayList toListResult = new ArrayList<>(6); - toListResult.add(state); - toListResult.add(isLoading); - toListResult.add(data); - toListResult.add(error); - toListResult.add(oldHash); - toListResult.add(newHash); - return toListResult; - } - - static @NonNull DetailModelStateData fromList(@NonNull ArrayList pigeonVar_list) { - DetailModelStateData pigeonResult = new DetailModelStateData(); - Object state = pigeonVar_list.get(0); - pigeonResult.setState((ModelState) state); - Object isLoading = pigeonVar_list.get(1); - pigeonResult.setIsLoading((Boolean) isLoading); - Object data = pigeonVar_list.get(2); - pigeonResult.setData((Snippet) data); - Object error = pigeonVar_list.get(3); - pigeonResult.setError((String) error); - Object oldHash = pigeonVar_list.get(4); - pigeonResult.setOldHash((Long) oldHash); - Object newHash = pigeonVar_list.get(5); - pigeonResult.setNewHash((Long) newHash); - return pigeonResult; - } - } - - /** Generated class from Pigeon that represents data sent in messages. */ - public static final class DetailModelEventData { - private @Nullable DetailModelEvent event; - - public @Nullable DetailModelEvent getEvent() { - return event; - } - - public void setEvent(@Nullable DetailModelEvent setterArg) { - this.event = setterArg; - } - - private @Nullable String value; - - public @Nullable String getValue() { - return value; - } - - public void setValue(@Nullable String setterArg) { - this.value = setterArg; - } - - private @Nullable Long oldHash; - - public @Nullable Long getOldHash() { - return oldHash; - } - - public void setOldHash(@Nullable Long setterArg) { - this.oldHash = setterArg; - } - - private @Nullable Long newHash; - - public @Nullable Long getNewHash() { - return newHash; - } - - public void setNewHash(@Nullable Long setterArg) { - this.newHash = setterArg; - } - - @Override - public boolean equals(Object o) { - if (this == o) { return true; } - if (o == null || getClass() != o.getClass()) { return false; } - DetailModelEventData that = (DetailModelEventData) o; - return Objects.equals(event, that.event) && Objects.equals(value, that.value) && Objects.equals(oldHash, that.oldHash) && Objects.equals(newHash, that.newHash); - } - - @Override - public int hashCode() { - return Objects.hash(event, value, oldHash, newHash); - } - - public static final class Builder { - - private @Nullable DetailModelEvent event; - - @CanIgnoreReturnValue - public @NonNull Builder setEvent(@Nullable DetailModelEvent setterArg) { - this.event = setterArg; - return this; - } - - private @Nullable String value; - - @CanIgnoreReturnValue - public @NonNull Builder setValue(@Nullable String setterArg) { - this.value = setterArg; - return this; - } - - private @Nullable Long oldHash; - - @CanIgnoreReturnValue - public @NonNull Builder setOldHash(@Nullable Long setterArg) { - this.oldHash = setterArg; - return this; - } - - private @Nullable Long newHash; - - @CanIgnoreReturnValue - public @NonNull Builder setNewHash(@Nullable Long setterArg) { - this.newHash = setterArg; - return this; - } - - public @NonNull DetailModelEventData build() { - DetailModelEventData pigeonReturn = new DetailModelEventData(); - pigeonReturn.setEvent(event); - pigeonReturn.setValue(value); - pigeonReturn.setOldHash(oldHash); - pigeonReturn.setNewHash(newHash); - return pigeonReturn; - } - } - - @NonNull - ArrayList toList() { - ArrayList toListResult = new ArrayList<>(4); - toListResult.add(event); - toListResult.add(value); - toListResult.add(oldHash); - toListResult.add(newHash); - return toListResult; - } - - static @NonNull DetailModelEventData fromList(@NonNull ArrayList pigeonVar_list) { - DetailModelEventData pigeonResult = new DetailModelEventData(); - Object event = pigeonVar_list.get(0); - pigeonResult.setEvent((DetailModelEvent) event); - Object value = pigeonVar_list.get(1); - pigeonResult.setValue((String) value); - Object oldHash = pigeonVar_list.get(2); - pigeonResult.setOldHash((Long) oldHash); - Object newHash = pigeonVar_list.get(3); - pigeonResult.setNewHash((Long) newHash); - return pigeonResult; - } - } - - /** Generated class from Pigeon that represents data sent in messages. */ - public static final class LoginModelStateData { - private @Nullable ModelState state; - - public @Nullable ModelState getState() { - return state; - } - - public void setState(@Nullable ModelState setterArg) { - this.state = setterArg; - } - - private @Nullable Boolean isLoading; - - public @Nullable Boolean getIsLoading() { - return isLoading; - } - - public void setIsLoading(@Nullable Boolean setterArg) { - this.isLoading = setterArg; - } - - private @Nullable Long oldHash; - - public @Nullable Long getOldHash() { - return oldHash; - } - - public void setOldHash(@Nullable Long setterArg) { - this.oldHash = setterArg; - } - - private @Nullable Long newHash; - - public @Nullable Long getNewHash() { - return newHash; - } - - public void setNewHash(@Nullable Long setterArg) { - this.newHash = setterArg; - } - - @Override - public boolean equals(Object o) { - if (this == o) { return true; } - if (o == null || getClass() != o.getClass()) { return false; } - LoginModelStateData that = (LoginModelStateData) o; - return Objects.equals(state, that.state) && Objects.equals(isLoading, that.isLoading) && Objects.equals(oldHash, that.oldHash) && Objects.equals(newHash, that.newHash); - } - - @Override - public int hashCode() { - return Objects.hash(state, isLoading, oldHash, newHash); - } - - public static final class Builder { - - private @Nullable ModelState state; - - @CanIgnoreReturnValue - public @NonNull Builder setState(@Nullable ModelState setterArg) { - this.state = setterArg; - return this; - } - - private @Nullable Boolean isLoading; - - @CanIgnoreReturnValue - public @NonNull Builder setIsLoading(@Nullable Boolean setterArg) { - this.isLoading = setterArg; - return this; - } - - private @Nullable Long oldHash; - - @CanIgnoreReturnValue - public @NonNull Builder setOldHash(@Nullable Long setterArg) { - this.oldHash = setterArg; - return this; - } - - private @Nullable Long newHash; - - @CanIgnoreReturnValue - public @NonNull Builder setNewHash(@Nullable Long setterArg) { - this.newHash = setterArg; - return this; - } - - public @NonNull LoginModelStateData build() { - LoginModelStateData pigeonReturn = new LoginModelStateData(); - pigeonReturn.setState(state); - pigeonReturn.setIsLoading(isLoading); - pigeonReturn.setOldHash(oldHash); - pigeonReturn.setNewHash(newHash); - return pigeonReturn; - } - } - - @NonNull - ArrayList toList() { - ArrayList toListResult = new ArrayList<>(4); - toListResult.add(state); - toListResult.add(isLoading); - toListResult.add(oldHash); - toListResult.add(newHash); - return toListResult; - } - - static @NonNull LoginModelStateData fromList(@NonNull ArrayList pigeonVar_list) { - LoginModelStateData pigeonResult = new LoginModelStateData(); - Object state = pigeonVar_list.get(0); - pigeonResult.setState((ModelState) state); - Object isLoading = pigeonVar_list.get(1); - pigeonResult.setIsLoading((Boolean) isLoading); - Object oldHash = pigeonVar_list.get(2); - pigeonResult.setOldHash((Long) oldHash); - Object newHash = pigeonVar_list.get(3); - pigeonResult.setNewHash((Long) newHash); - return pigeonResult; - } - } - - /** Generated class from Pigeon that represents data sent in messages. */ - public static final class LoginModelEventData { - private @Nullable LoginModelEvent event; - - public @Nullable LoginModelEvent getEvent() { - return event; - } - - public void setEvent(@Nullable LoginModelEvent setterArg) { - this.event = setterArg; - } - - private @Nullable Long oldHash; - - public @Nullable Long getOldHash() { - return oldHash; - } - - public void setOldHash(@Nullable Long setterArg) { - this.oldHash = setterArg; - } - - private @Nullable Long newHash; - - public @Nullable Long getNewHash() { - return newHash; - } - - public void setNewHash(@Nullable Long setterArg) { - this.newHash = setterArg; - } - - @Override - public boolean equals(Object o) { - if (this == o) { return true; } - if (o == null || getClass() != o.getClass()) { return false; } - LoginModelEventData that = (LoginModelEventData) o; - return Objects.equals(event, that.event) && Objects.equals(oldHash, that.oldHash) && Objects.equals(newHash, that.newHash); - } - - @Override - public int hashCode() { - return Objects.hash(event, oldHash, newHash); - } - - public static final class Builder { - - private @Nullable LoginModelEvent event; - - @CanIgnoreReturnValue - public @NonNull Builder setEvent(@Nullable LoginModelEvent setterArg) { - this.event = setterArg; - return this; - } - - private @Nullable Long oldHash; - - @CanIgnoreReturnValue - public @NonNull Builder setOldHash(@Nullable Long setterArg) { - this.oldHash = setterArg; - return this; - } - - private @Nullable Long newHash; - - @CanIgnoreReturnValue - public @NonNull Builder setNewHash(@Nullable Long setterArg) { - this.newHash = setterArg; - return this; - } - - public @NonNull LoginModelEventData build() { - LoginModelEventData pigeonReturn = new LoginModelEventData(); - pigeonReturn.setEvent(event); - pigeonReturn.setOldHash(oldHash); - pigeonReturn.setNewHash(newHash); - return pigeonReturn; - } - } - - @NonNull - ArrayList toList() { - ArrayList toListResult = new ArrayList<>(3); - toListResult.add(event); - toListResult.add(oldHash); - toListResult.add(newHash); - return toListResult; - } - - static @NonNull LoginModelEventData fromList(@NonNull ArrayList pigeonVar_list) { - LoginModelEventData pigeonResult = new LoginModelEventData(); - Object event = pigeonVar_list.get(0); - pigeonResult.setEvent((LoginModelEvent) event); - Object oldHash = pigeonVar_list.get(1); - pigeonResult.setOldHash((Long) oldHash); - Object newHash = pigeonVar_list.get(2); - pigeonResult.setNewHash((Long) newHash); - return pigeonResult; - } - } - - private static class PigeonCodec extends StandardMessageCodec { - public static final PigeonCodec INSTANCE = new PigeonCodec(); - - private PigeonCodec() {} - - @Override - protected Object readValueOfType(byte type, @NonNull ByteBuffer buffer) { - switch (type) { - case (byte) 129: { - Object value = readValue(buffer); - return value == null ? null : SnippetLanguageType.values()[((Long) value).intValue()]; - } - case (byte) 130: { - Object value = readValue(buffer); - return value == null ? null : SnippetFilterType.values()[((Long) value).intValue()]; - } - case (byte) 131: { - Object value = readValue(buffer); - return value == null ? null : UserReaction.values()[((Long) value).intValue()]; - } - case (byte) 132: { - Object value = readValue(buffer); - return value == null ? null : ModelState.values()[((Long) value).intValue()]; - } - case (byte) 133: { - Object value = readValue(buffer); - return value == null ? null : MainModelEvent.values()[((Long) value).intValue()]; - } - case (byte) 134: { - Object value = readValue(buffer); - return value == null ? null : DetailModelEvent.values()[((Long) value).intValue()]; - } - case (byte) 135: { - Object value = readValue(buffer); - return value == null ? null : LoginModelEvent.values()[((Long) value).intValue()]; - } - case (byte) 136: - return Snippet.fromList((ArrayList) readValue(buffer)); - case (byte) 137: - return SnippetCode.fromList((ArrayList) readValue(buffer)); - case (byte) 138: - return SyntaxToken.fromList((ArrayList) readValue(buffer)); - case (byte) 139: - return SnippetLanguage.fromList((ArrayList) readValue(buffer)); - case (byte) 140: - return Owner.fromList((ArrayList) readValue(buffer)); - case (byte) 141: - return SnippetFilter.fromList((ArrayList) readValue(buffer)); - case (byte) 142: - return MainModelStateData.fromList((ArrayList) readValue(buffer)); - case (byte) 143: - return MainModelEventData.fromList((ArrayList) readValue(buffer)); - case (byte) 144: - return DetailModelStateData.fromList((ArrayList) readValue(buffer)); - case (byte) 145: - return DetailModelEventData.fromList((ArrayList) readValue(buffer)); - case (byte) 146: - return LoginModelStateData.fromList((ArrayList) readValue(buffer)); - case (byte) 147: - return LoginModelEventData.fromList((ArrayList) readValue(buffer)); - default: - return super.readValueOfType(type, buffer); - } - } - - @Override - protected void writeValue(@NonNull ByteArrayOutputStream stream, Object value) { - if (value instanceof SnippetLanguageType) { - stream.write(129); - writeValue(stream, value == null ? null : ((SnippetLanguageType) value).index); - } else if (value instanceof SnippetFilterType) { - stream.write(130); - writeValue(stream, value == null ? null : ((SnippetFilterType) value).index); - } else if (value instanceof UserReaction) { - stream.write(131); - writeValue(stream, value == null ? null : ((UserReaction) value).index); - } else if (value instanceof ModelState) { - stream.write(132); - writeValue(stream, value == null ? null : ((ModelState) value).index); - } else if (value instanceof MainModelEvent) { - stream.write(133); - writeValue(stream, value == null ? null : ((MainModelEvent) value).index); - } else if (value instanceof DetailModelEvent) { - stream.write(134); - writeValue(stream, value == null ? null : ((DetailModelEvent) value).index); - } else if (value instanceof LoginModelEvent) { - stream.write(135); - writeValue(stream, value == null ? null : ((LoginModelEvent) value).index); - } else if (value instanceof Snippet) { - stream.write(136); - writeValue(stream, ((Snippet) value).toList()); - } else if (value instanceof SnippetCode) { - stream.write(137); - writeValue(stream, ((SnippetCode) value).toList()); - } else if (value instanceof SyntaxToken) { - stream.write(138); - writeValue(stream, ((SyntaxToken) value).toList()); - } else if (value instanceof SnippetLanguage) { - stream.write(139); - writeValue(stream, ((SnippetLanguage) value).toList()); - } else if (value instanceof Owner) { - stream.write(140); - writeValue(stream, ((Owner) value).toList()); - } else if (value instanceof SnippetFilter) { - stream.write(141); - writeValue(stream, ((SnippetFilter) value).toList()); - } else if (value instanceof MainModelStateData) { - stream.write(142); - writeValue(stream, ((MainModelStateData) value).toList()); - } else if (value instanceof MainModelEventData) { - stream.write(143); - writeValue(stream, ((MainModelEventData) value).toList()); - } else if (value instanceof DetailModelStateData) { - stream.write(144); - writeValue(stream, ((DetailModelStateData) value).toList()); - } else if (value instanceof DetailModelEventData) { - stream.write(145); - writeValue(stream, ((DetailModelEventData) value).toList()); - } else if (value instanceof LoginModelStateData) { - stream.write(146); - writeValue(stream, ((LoginModelStateData) value).toList()); - } else if (value instanceof LoginModelEventData) { - stream.write(147); - writeValue(stream, ((LoginModelEventData) value).toList()); - } else { - super.writeValue(stream, value); - } - } - } - - /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ - public interface MainModelBridge { - - @NonNull - MainModelStateData getState(); - - @NonNull - MainModelEventData getEvent(); - - void resetEvent(); - - void initState(); - - void filterLanguage(@NonNull String language, @NonNull Boolean isSelected); - - void filterScope(@NonNull String scope); - - void logOut(); - - /** The codec used by MainModelBridge. */ - static @NonNull MessageCodec getCodec() { - return PigeonCodec.INSTANCE; - } - /**Sets up an instance of `MainModelBridge` to handle messages through the `binaryMessenger`. */ - static void setUp(@NonNull BinaryMessenger binaryMessenger, @Nullable MainModelBridge api) { - setUp(binaryMessenger, "", api); - } - static void setUp(@NonNull BinaryMessenger binaryMessenger, @NonNull String messageChannelSuffix, @Nullable MainModelBridge api) { - messageChannelSuffix = messageChannelSuffix.isEmpty() ? "" : "." + messageChannelSuffix; - { - BasicMessageChannel channel = - new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.flutter_module.MainModelBridge.getState" + messageChannelSuffix, getCodec()); - if (api != null) { - channel.setMessageHandler( - (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); - try { - MainModelStateData output = api.getState(); - wrapped.add(0, output); - } - catch (Throwable exception) { - wrapped = wrapError(exception); - } - reply.reply(wrapped); - }); - } else { - channel.setMessageHandler(null); - } - } - { - BasicMessageChannel channel = - new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.flutter_module.MainModelBridge.getEvent" + messageChannelSuffix, getCodec()); - if (api != null) { - channel.setMessageHandler( - (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); - try { - MainModelEventData output = api.getEvent(); - wrapped.add(0, output); - } - catch (Throwable exception) { - wrapped = wrapError(exception); - } - reply.reply(wrapped); - }); - } else { - channel.setMessageHandler(null); - } - } - { - BasicMessageChannel channel = - new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.flutter_module.MainModelBridge.resetEvent" + messageChannelSuffix, getCodec()); - if (api != null) { - channel.setMessageHandler( - (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); - try { - api.resetEvent(); - wrapped.add(0, null); - } - catch (Throwable exception) { - wrapped = wrapError(exception); - } - reply.reply(wrapped); - }); - } else { - channel.setMessageHandler(null); - } - } - { - BinaryMessenger.TaskQueue taskQueue = binaryMessenger.makeBackgroundTaskQueue(); - BasicMessageChannel channel = - new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.flutter_module.MainModelBridge.initState" + messageChannelSuffix, getCodec(), taskQueue); - if (api != null) { - channel.setMessageHandler( - (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); - try { - api.initState(); - wrapped.add(0, null); - } - catch (Throwable exception) { - wrapped = wrapError(exception); - } - reply.reply(wrapped); - }); - } else { - channel.setMessageHandler(null); - } - } - { - BinaryMessenger.TaskQueue taskQueue = binaryMessenger.makeBackgroundTaskQueue(); - BasicMessageChannel channel = - new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.flutter_module.MainModelBridge.filterLanguage" + messageChannelSuffix, getCodec(), taskQueue); - if (api != null) { - channel.setMessageHandler( - (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); - ArrayList args = (ArrayList) message; - String languageArg = (String) args.get(0); - Boolean isSelectedArg = (Boolean) args.get(1); - try { - api.filterLanguage(languageArg, isSelectedArg); - wrapped.add(0, null); - } - catch (Throwable exception) { - wrapped = wrapError(exception); - } - reply.reply(wrapped); - }); - } else { - channel.setMessageHandler(null); - } - } - { - BinaryMessenger.TaskQueue taskQueue = binaryMessenger.makeBackgroundTaskQueue(); - BasicMessageChannel channel = - new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.flutter_module.MainModelBridge.filterScope" + messageChannelSuffix, getCodec(), taskQueue); - if (api != null) { - channel.setMessageHandler( - (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); - ArrayList args = (ArrayList) message; - String scopeArg = (String) args.get(0); - try { - api.filterScope(scopeArg); - wrapped.add(0, null); - } - catch (Throwable exception) { - wrapped = wrapError(exception); - } - reply.reply(wrapped); - }); - } else { - channel.setMessageHandler(null); - } - } - { - BinaryMessenger.TaskQueue taskQueue = binaryMessenger.makeBackgroundTaskQueue(); - BasicMessageChannel channel = - new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.flutter_module.MainModelBridge.logOut" + messageChannelSuffix, getCodec(), taskQueue); - if (api != null) { - channel.setMessageHandler( - (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); - try { - api.logOut(); - wrapped.add(0, null); - } - catch (Throwable exception) { - wrapped = wrapError(exception); - } - reply.reply(wrapped); - }); - } else { - channel.setMessageHandler(null); - } - } - } - } - /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ - public interface DetailModelBridge { - - @NonNull - DetailModelStateData getState(); - - @NonNull - DetailModelEventData getEvent(); - - void resetEvent(); - - void load(@NonNull String uuid); - - void like(); - - void dislike(); - - void save(); - - void copyToClipboard(); - - void share(); - - void delete(); - - /** The codec used by DetailModelBridge. */ - static @NonNull MessageCodec getCodec() { - return PigeonCodec.INSTANCE; - } - /**Sets up an instance of `DetailModelBridge` to handle messages through the `binaryMessenger`. */ - static void setUp(@NonNull BinaryMessenger binaryMessenger, @Nullable DetailModelBridge api) { - setUp(binaryMessenger, "", api); - } - static void setUp(@NonNull BinaryMessenger binaryMessenger, @NonNull String messageChannelSuffix, @Nullable DetailModelBridge api) { - messageChannelSuffix = messageChannelSuffix.isEmpty() ? "" : "." + messageChannelSuffix; - { - BasicMessageChannel channel = - new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.getState" + messageChannelSuffix, getCodec()); - if (api != null) { - channel.setMessageHandler( - (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); - try { - DetailModelStateData output = api.getState(); - wrapped.add(0, output); - } - catch (Throwable exception) { - wrapped = wrapError(exception); - } - reply.reply(wrapped); - }); - } else { - channel.setMessageHandler(null); - } - } - { - BasicMessageChannel channel = - new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.getEvent" + messageChannelSuffix, getCodec()); - if (api != null) { - channel.setMessageHandler( - (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); - try { - DetailModelEventData output = api.getEvent(); - wrapped.add(0, output); - } - catch (Throwable exception) { - wrapped = wrapError(exception); - } - reply.reply(wrapped); - }); - } else { - channel.setMessageHandler(null); - } - } - { - BasicMessageChannel channel = - new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.resetEvent" + messageChannelSuffix, getCodec()); - if (api != null) { - channel.setMessageHandler( - (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); - try { - api.resetEvent(); - wrapped.add(0, null); - } - catch (Throwable exception) { - wrapped = wrapError(exception); - } - reply.reply(wrapped); - }); - } else { - channel.setMessageHandler(null); - } - } - { - BasicMessageChannel channel = - new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.load" + messageChannelSuffix, getCodec()); - if (api != null) { - channel.setMessageHandler( - (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); - ArrayList args = (ArrayList) message; - String uuidArg = (String) args.get(0); - try { - api.load(uuidArg); - wrapped.add(0, null); - } - catch (Throwable exception) { - wrapped = wrapError(exception); - } - reply.reply(wrapped); - }); - } else { - channel.setMessageHandler(null); - } - } - { - BasicMessageChannel channel = - new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.like" + messageChannelSuffix, getCodec()); - if (api != null) { - channel.setMessageHandler( - (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); - try { - api.like(); - wrapped.add(0, null); - } - catch (Throwable exception) { - wrapped = wrapError(exception); - } - reply.reply(wrapped); - }); - } else { - channel.setMessageHandler(null); - } - } - { - BasicMessageChannel channel = - new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.dislike" + messageChannelSuffix, getCodec()); - if (api != null) { - channel.setMessageHandler( - (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); - try { - api.dislike(); - wrapped.add(0, null); - } - catch (Throwable exception) { - wrapped = wrapError(exception); - } - reply.reply(wrapped); - }); - } else { - channel.setMessageHandler(null); - } - } - { - BasicMessageChannel channel = - new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.save" + messageChannelSuffix, getCodec()); - if (api != null) { - channel.setMessageHandler( - (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); - try { - api.save(); - wrapped.add(0, null); - } - catch (Throwable exception) { - wrapped = wrapError(exception); - } - reply.reply(wrapped); - }); - } else { - channel.setMessageHandler(null); - } - } - { - BasicMessageChannel channel = - new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.copyToClipboard" + messageChannelSuffix, getCodec()); - if (api != null) { - channel.setMessageHandler( - (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); - try { - api.copyToClipboard(); - wrapped.add(0, null); - } - catch (Throwable exception) { - wrapped = wrapError(exception); - } - reply.reply(wrapped); - }); - } else { - channel.setMessageHandler(null); - } - } - { - BasicMessageChannel channel = - new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.share" + messageChannelSuffix, getCodec()); - if (api != null) { - channel.setMessageHandler( - (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); - try { - api.share(); - wrapped.add(0, null); - } - catch (Throwable exception) { - wrapped = wrapError(exception); - } - reply.reply(wrapped); - }); - } else { - channel.setMessageHandler(null); - } - } - { - BasicMessageChannel channel = - new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.delete" + messageChannelSuffix, getCodec()); - if (api != null) { - channel.setMessageHandler( - (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); - try { - api.delete(); - wrapped.add(0, null); - } - catch (Throwable exception) { - wrapped = wrapError(exception); - } - reply.reply(wrapped); - }); - } else { - channel.setMessageHandler(null); - } - } - } - } - /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ - public interface LoginModelBridge { - - @NonNull - LoginModelStateData getState(); - - @NonNull - LoginModelEventData getEvent(); - - void loginOrRegister(@NonNull String email, @NonNull String password); - - void checkLoginState(); - - void resetEvent(); - - /** The codec used by LoginModelBridge. */ - static @NonNull MessageCodec getCodec() { - return PigeonCodec.INSTANCE; - } - /**Sets up an instance of `LoginModelBridge` to handle messages through the `binaryMessenger`. */ - static void setUp(@NonNull BinaryMessenger binaryMessenger, @Nullable LoginModelBridge api) { - setUp(binaryMessenger, "", api); - } - static void setUp(@NonNull BinaryMessenger binaryMessenger, @NonNull String messageChannelSuffix, @Nullable LoginModelBridge api) { - messageChannelSuffix = messageChannelSuffix.isEmpty() ? "" : "." + messageChannelSuffix; - { - BasicMessageChannel channel = - new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.flutter_module.LoginModelBridge.getState" + messageChannelSuffix, getCodec()); - if (api != null) { - channel.setMessageHandler( - (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); - try { - LoginModelStateData output = api.getState(); - wrapped.add(0, output); - } - catch (Throwable exception) { - wrapped = wrapError(exception); - } - reply.reply(wrapped); - }); - } else { - channel.setMessageHandler(null); - } - } - { - BasicMessageChannel channel = - new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.flutter_module.LoginModelBridge.getEvent" + messageChannelSuffix, getCodec()); - if (api != null) { - channel.setMessageHandler( - (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); - try { - LoginModelEventData output = api.getEvent(); - wrapped.add(0, output); - } - catch (Throwable exception) { - wrapped = wrapError(exception); - } - reply.reply(wrapped); - }); - } else { - channel.setMessageHandler(null); - } - } - { - BasicMessageChannel channel = - new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.flutter_module.LoginModelBridge.loginOrRegister" + messageChannelSuffix, getCodec()); - if (api != null) { - channel.setMessageHandler( - (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); - ArrayList args = (ArrayList) message; - String emailArg = (String) args.get(0); - String passwordArg = (String) args.get(1); - try { - api.loginOrRegister(emailArg, passwordArg); - wrapped.add(0, null); - } - catch (Throwable exception) { - wrapped = wrapError(exception); - } - reply.reply(wrapped); - }); - } else { - channel.setMessageHandler(null); - } - } - { - BasicMessageChannel channel = - new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.flutter_module.LoginModelBridge.checkLoginState" + messageChannelSuffix, getCodec()); - if (api != null) { - channel.setMessageHandler( - (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); - try { - api.checkLoginState(); - wrapped.add(0, null); - } - catch (Throwable exception) { - wrapped = wrapError(exception); - } - reply.reply(wrapped); - }); - } else { - channel.setMessageHandler(null); - } - } - { - BasicMessageChannel channel = - new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.flutter_module.LoginModelBridge.resetEvent" + messageChannelSuffix, getCodec()); - if (api != null) { - channel.setMessageHandler( - (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); - try { - api.resetEvent(); - wrapped.add(0, null); - } - catch (Throwable exception) { - wrapped = wrapError(exception); - } - reply.reply(wrapped); - }); - } else { - channel.setMessageHandler(null); - } - } - } - } -} diff --git a/app/src/main/java/dev/snipme/snipmeapp/bridge/ModelPlugin.kt b/app/src/main/java/dev/snipme/snipmeapp/bridge/ModelPlugin.kt index 734cf9a..8928c55 100644 --- a/app/src/main/java/dev/snipme/snipmeapp/bridge/ModelPlugin.kt +++ b/app/src/main/java/dev/snipme/snipmeapp/bridge/ModelPlugin.kt @@ -10,14 +10,13 @@ import org.koin.core.component.KoinComponent import dev.snipme.snipmeapp.domain.reaction.UserReaction import dev.snipme.snipmeapp.domain.snippets.* import java.util.* - -/* - flutter pub run pigeon \ - --input bridge/main_model.dart \ - --dart_out lib/model/main_model.dart \ - --java_out ../app/src/main/java/dev/snipme/snipmeapp/bridge/Bridge.java \ - --java_package "dev.snipme.snipmeapp.bridge" - */ +import dev.snipme.snipmeapp.channel.Snippet as ChannelSnippet +import dev.snipme.snipmeapp.channel.SnippetCode as ChannelSnippetCode +import dev.snipme.snipmeapp.channel.SnippetLanguage as ChannelSnippetLanguage +import dev.snipme.snipmeapp.channel.SnippetLanguageType as ChannelSnippetLanguageType +import dev.snipme.snipmeapp.channel.UserReaction as ChannelUserReaction +import dev.snipme.snipmeapp.channel.SyntaxToken as ChannelSyntaxToken +import dev.snipme.snipmeapp.channel.Owner as ChannelOwner abstract class ModelPlugin : FlutterPlugin, KoinComponent { @@ -32,58 +31,49 @@ abstract class ModelPlugin : FlutterPlugin, KoinComponent { } } -fun Snippet.toModelData(): Bridge.Snippet { - val it = this - return Bridge.Snippet().apply { - uuid = it.uuid - title = it.title - code = it.code.toModelSnippetCode() - language = it.language.toModelSnippetLanguage() - owner = it.owner.toModelOwner() - isOwner = it.isOwner - voteResult = (it.numberOfLikes - it.numberOfDislikes).toLong() - userReaction = it.userReaction.toModelUserReaction() - isLiked = it.userReaction.toModelReactionState(UserReaction.LIKE) - isDisliked = it.userReaction.toModelReactionState(UserReaction.DISLIKE) - isPrivate = it.visibility == SnippetVisibility.PRIVATE - isSaved = calculateSavedState(it.isOwner, it.visibility) - isToDelete = it.isOwner +fun Snippet.toModelData(): ChannelSnippet = + ChannelSnippet( + uuid = uuid, + title = title, + code = code.toModelSnippetCode(), + language = language.toModelSnippetLanguage(), + owner = owner.toModelOwner(), + isOwner = isOwner, + voteResult = (numberOfLikes - numberOfDislikes).toLong(), + userReaction = userReaction.toModelUserReaction(), + isLiked = userReaction.toModelReactionState(UserReaction.LIKE), + isDisliked = userReaction.toModelReactionState(UserReaction.DISLIKE), + isPrivate = visibility == SnippetVisibility.PRIVATE, + isSaved = calculateSavedState(isOwner, visibility), + isToDelete = isOwner, timeAgo = DateUtils.getRelativeTimeSpanString( - it.modifiedAt.time, + modifiedAt.time, Date().time, DateUtils.SECOND_IN_MILLIS ).toString() - } -} + ) -private fun Owner.toModelOwner() = - Bridge.Owner().let { - it.id = id.toLong() - it.login = login - it - } +private fun Owner.toModelOwner() = ChannelOwner(id = id.toLong(), login = login) private fun SnippetCode.toModelSnippetCode() = - Bridge.SnippetCode().let { - it.raw = raw - it.tokens = highlighted.getSpans().map { span -> + ChannelSnippetCode( + raw = raw, + tokens = highlighted.getSpans().map { span -> span.toSyntaxToken(highlighted) - } - it - } + }, + ) private fun SnippetLanguage.toModelSnippetLanguage() = - Bridge.SnippetLanguage().let { - it.raw = raw - it.type = Bridge.SnippetLanguageType.valueOf(type.name) - it - } + ChannelSnippetLanguage( + raw = raw, + type = ChannelSnippetLanguageType.valueOf(type.name), + ) -private fun UserReaction.toModelUserReaction(): Bridge.UserReaction = +private fun UserReaction.toModelUserReaction(): ChannelUserReaction = when (this) { - UserReaction.LIKE -> Bridge.UserReaction.LIKE - UserReaction.DISLIKE -> Bridge.UserReaction.DISLIKE - else -> Bridge.UserReaction.NONE + UserReaction.LIKE -> ChannelUserReaction.LIKE + UserReaction.DISLIKE -> ChannelUserReaction.DISLIKE + else -> ChannelUserReaction.NONE } private fun UserReaction.toModelReactionState(reaction: UserReaction) = @@ -98,9 +88,8 @@ private fun calculateSavedState( } private fun ForegroundColorSpan.toSyntaxToken(spannable: Spanned) = - Bridge.SyntaxToken().let { - it.start = spannable.getSpanStart(this).toLong() - it.end = spannable.getSpanEnd(this).toLong() - it.color = foregroundColor.toLong() - it - } + ChannelSyntaxToken( + start = spannable.getSpanStart(this).toLong(), + end = spannable.getSpanEnd(this).toLong(), + color = foregroundColor.toLong(), + ) diff --git a/app/src/main/java/dev/snipme/snipmeapp/bridge/detail/DetailModelPlugin.kt b/app/src/main/java/dev/snipme/snipmeapp/bridge/detail/DetailModelPlugin.kt index a43651c..7c37358 100644 --- a/app/src/main/java/dev/snipme/snipmeapp/bridge/detail/DetailModelPlugin.kt +++ b/app/src/main/java/dev/snipme/snipmeapp/bridge/detail/DetailModelPlugin.kt @@ -2,7 +2,6 @@ package dev.snipme.snipmeapp.bridge.detail import io.flutter.plugin.common.BinaryMessenger import org.koin.core.component.inject -import dev.snipme.snipmeapp.bridge.Bridge import dev.snipme.snipmeapp.bridge.ModelPlugin import dev.snipme.snipmeapp.bridge.toModelData diff --git a/app/src/main/java/dev/snipme/snipmeapp/bridge/login/LoginModelPlugin.kt b/app/src/main/java/dev/snipme/snipmeapp/bridge/login/LoginModelPlugin.kt index ef323ee..7229fab 100644 --- a/app/src/main/java/dev/snipme/snipmeapp/bridge/login/LoginModelPlugin.kt +++ b/app/src/main/java/dev/snipme/snipmeapp/bridge/login/LoginModelPlugin.kt @@ -2,7 +2,6 @@ package dev.snipme.snipmeapp.bridge.login import io.flutter.plugin.common.BinaryMessenger import org.koin.core.component.inject -import dev.snipme.snipmeapp.bridge.Bridge import dev.snipme.snipmeapp.bridge.ModelPlugin class LoginModelPlugin : ModelPlugin(), Bridge.LoginModelBridge { diff --git a/app/src/main/java/dev/snipme/snipmeapp/bridge/main/MainModelPlugin.kt b/app/src/main/java/dev/snipme/snipmeapp/bridge/main/MainModelPlugin.kt index efb3cd4..1cdd07b 100644 --- a/app/src/main/java/dev/snipme/snipmeapp/bridge/main/MainModelPlugin.kt +++ b/app/src/main/java/dev/snipme/snipmeapp/bridge/main/MainModelPlugin.kt @@ -2,7 +2,6 @@ package dev.snipme.snipmeapp.bridge.main import io.flutter.plugin.common.BinaryMessenger import org.koin.core.component.inject -import dev.snipme.snipmeapp.bridge.Bridge import dev.snipme.snipmeapp.bridge.ModelPlugin import dev.snipme.snipmeapp.bridge.toModelData import dev.snipme.snipmeapp.domain.snippets.Snippet diff --git a/app/src/main/java/dev/snipme/snipmeapp/channel/DataModel.g.kt b/app/src/main/java/dev/snipme/snipmeapp/channel/DataModel.g.kt new file mode 100644 index 0000000..c21575c --- /dev/null +++ b/app/src/main/java/dev/snipme/snipmeapp/channel/DataModel.g.kt @@ -0,0 +1,1125 @@ +// Autogenerated from Pigeon (v24.2.0), do not edit directly. +// See also: https://pub.dev/packages/pigeon +@file:Suppress("UNCHECKED_CAST", "ArrayInDataClass") + +package dev.snipme.snipmeapp.channel + +import android.util.Log +import io.flutter.plugin.common.BasicMessageChannel +import io.flutter.plugin.common.BinaryMessenger +import io.flutter.plugin.common.EventChannel +import io.flutter.plugin.common.MessageCodec +import io.flutter.plugin.common.StandardMethodCodec +import io.flutter.plugin.common.StandardMessageCodec +import java.io.ByteArrayOutputStream +import java.nio.ByteBuffer + +private fun wrapResult(result: Any?): List { + return listOf(result) +} + +private fun wrapError(exception: Throwable): List { + return if (exception is FlutterError) { + listOf( + exception.code, + exception.message, + exception.details + ) + } else { + listOf( + exception.javaClass.simpleName, + exception.toString(), + "Cause: " + exception.cause + ", Stacktrace: " + Log.getStackTraceString(exception) + ) + } +} + +/** + * Error class for passing custom error details to Flutter via a thrown PlatformException. + * @property code The error code. + * @property message The error message. + * @property details The error details. Must be a datatype supported by the api codec. + */ +class FlutterError ( + val code: String, + override val message: String? = null, + val details: Any? = null +) : Throwable() + +enum class SnippetLanguageType(val raw: Int) { + C(0), + CPP(1), + OBJECTIVE_C(2), + C_SHARP(3), + JAVA(4), + BASH(5), + PYTHON(6), + PERL(7), + RUBY(8), + SWIFT(9), + JAVASCRIPT(10), + KOTLIN(11), + COFFEESCRIPT(12), + RUST(13), + BASIC(14), + CLOJURE(15), + CSS(16), + DART(17), + ERLANG(18), + GO(19), + HASKELL(20), + LISP(21), + LLVM(22), + LUA(23), + MATLAB(24), + ML(25), + MUMPS(26), + NEMERLE(27), + PASCAL(28), + R(29), + RD(30), + SCALA(31), + SQL(32), + TEX(33), + VB(34), + VHDL(35), + TCL(36), + XQUERY(37), + YAML(38), + MARKDOWN(39), + JSON(40), + XML(41), + PROTO(42), + REGEX(43), + UNKNOWN(44); + + companion object { + fun ofRaw(raw: Int): SnippetLanguageType? { + return values().firstOrNull { it.raw == raw } + } + } +} + +enum class SnippetFilterType(val raw: Int) { + ALL(0), + MINE(1), + SHARED(2); + + companion object { + fun ofRaw(raw: Int): SnippetFilterType? { + return values().firstOrNull { it.raw == raw } + } + } +} + +enum class UserReaction(val raw: Int) { + NONE(0), + LIKE(1), + DISLIKE(2); + + companion object { + fun ofRaw(raw: Int): UserReaction? { + return values().firstOrNull { it.raw == raw } + } + } +} + +enum class ModelState(val raw: Int) { + LOADING(0), + LOADED(1), + ERROR(2); + + companion object { + fun ofRaw(raw: Int): ModelState? { + return values().firstOrNull { it.raw == raw } + } + } +} + +enum class MainModelEvent(val raw: Int) { + NONE(0), + ALERT(1), + LOGOUT(2); + + companion object { + fun ofRaw(raw: Int): MainModelEvent? { + return values().firstOrNull { it.raw == raw } + } + } +} + +enum class DetailModelEvent(val raw: Int) { + NONE(0), + SAVED(1), + DELETED(2); + + companion object { + fun ofRaw(raw: Int): DetailModelEvent? { + return values().firstOrNull { it.raw == raw } + } + } +} + +enum class LoginModelEvent(val raw: Int) { + NONE(0), + LOGGED(1); + + companion object { + fun ofRaw(raw: Int): LoginModelEvent? { + return values().firstOrNull { it.raw == raw } + } + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class Snippet ( + val uuid: String? = null, + val title: String? = null, + val code: SnippetCode? = null, + val language: SnippetLanguage? = null, + val owner: Owner? = null, + val isOwner: Boolean? = null, + val timeAgo: String? = null, + val voteResult: Long? = null, + val userReaction: UserReaction? = null, + val isPrivate: Boolean? = null, + val isLiked: Boolean? = null, + val isDisliked: Boolean? = null, + val isSaved: Boolean? = null, + val isToDelete: Boolean? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): Snippet { + val uuid = pigeonVar_list[0] as String? + val title = pigeonVar_list[1] as String? + val code = pigeonVar_list[2] as SnippetCode? + val language = pigeonVar_list[3] as SnippetLanguage? + val owner = pigeonVar_list[4] as Owner? + val isOwner = pigeonVar_list[5] as Boolean? + val timeAgo = pigeonVar_list[6] as String? + val voteResult = pigeonVar_list[7] as Long? + val userReaction = pigeonVar_list[8] as UserReaction? + val isPrivate = pigeonVar_list[9] as Boolean? + val isLiked = pigeonVar_list[10] as Boolean? + val isDisliked = pigeonVar_list[11] as Boolean? + val isSaved = pigeonVar_list[12] as Boolean? + val isToDelete = pigeonVar_list[13] as Boolean? + return Snippet(uuid, title, code, language, owner, isOwner, timeAgo, voteResult, userReaction, isPrivate, isLiked, isDisliked, isSaved, isToDelete) + } + } + fun toList(): List { + return listOf( + uuid, + title, + code, + language, + owner, + isOwner, + timeAgo, + voteResult, + userReaction, + isPrivate, + isLiked, + isDisliked, + isSaved, + isToDelete, + ) + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class SnippetCode ( + val raw: String? = null, + val tokens: List? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): SnippetCode { + val raw = pigeonVar_list[0] as String? + val tokens = pigeonVar_list[1] as List? + return SnippetCode(raw, tokens) + } + } + fun toList(): List { + return listOf( + raw, + tokens, + ) + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class SyntaxToken ( + val start: Long? = null, + val end: Long? = null, + val color: Long? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): SyntaxToken { + val start = pigeonVar_list[0] as Long? + val end = pigeonVar_list[1] as Long? + val color = pigeonVar_list[2] as Long? + return SyntaxToken(start, end, color) + } + } + fun toList(): List { + return listOf( + start, + end, + color, + ) + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class SnippetLanguage ( + val raw: String? = null, + val type: SnippetLanguageType? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): SnippetLanguage { + val raw = pigeonVar_list[0] as String? + val type = pigeonVar_list[1] as SnippetLanguageType? + return SnippetLanguage(raw, type) + } + } + fun toList(): List { + return listOf( + raw, + type, + ) + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class Owner ( + val id: Long? = null, + val login: String? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): Owner { + val id = pigeonVar_list[0] as Long? + val login = pigeonVar_list[1] as String? + return Owner(id, login) + } + } + fun toList(): List { + return listOf( + id, + login, + ) + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class SnippetFilter ( + val languages: List? = null, + val selectedLanguages: List? = null, + val scopes: List? = null, + val selectedScope: String? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): SnippetFilter { + val languages = pigeonVar_list[0] as List? + val selectedLanguages = pigeonVar_list[1] as List? + val scopes = pigeonVar_list[2] as List? + val selectedScope = pigeonVar_list[3] as String? + return SnippetFilter(languages, selectedLanguages, scopes, selectedScope) + } + } + fun toList(): List { + return listOf( + languages, + selectedLanguages, + scopes, + selectedScope, + ) + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class MainModelStateData ( + val state: ModelState? = null, + val isLoading: Boolean? = null, + val data: List? = null, + val filter: SnippetFilter? = null, + val error: String? = null, + val oldHash: Long? = null, + val newHash: Long? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): MainModelStateData { + val state = pigeonVar_list[0] as ModelState? + val isLoading = pigeonVar_list[1] as Boolean? + val data = pigeonVar_list[2] as List? + val filter = pigeonVar_list[3] as SnippetFilter? + val error = pigeonVar_list[4] as String? + val oldHash = pigeonVar_list[5] as Long? + val newHash = pigeonVar_list[6] as Long? + return MainModelStateData(state, isLoading, data, filter, error, oldHash, newHash) + } + } + fun toList(): List { + return listOf( + state, + isLoading, + data, + filter, + error, + oldHash, + newHash, + ) + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class MainModelEventData ( + val event: MainModelEvent? = null, + val message: String? = null, + val oldHash: Long? = null, + val newHash: Long? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): MainModelEventData { + val event = pigeonVar_list[0] as MainModelEvent? + val message = pigeonVar_list[1] as String? + val oldHash = pigeonVar_list[2] as Long? + val newHash = pigeonVar_list[3] as Long? + return MainModelEventData(event, message, oldHash, newHash) + } + } + fun toList(): List { + return listOf( + event, + message, + oldHash, + newHash, + ) + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class DetailModelStateData ( + val state: ModelState? = null, + val isLoading: Boolean? = null, + val data: Snippet? = null, + val error: String? = null, + val oldHash: Long? = null, + val newHash: Long? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): DetailModelStateData { + val state = pigeonVar_list[0] as ModelState? + val isLoading = pigeonVar_list[1] as Boolean? + val data = pigeonVar_list[2] as Snippet? + val error = pigeonVar_list[3] as String? + val oldHash = pigeonVar_list[4] as Long? + val newHash = pigeonVar_list[5] as Long? + return DetailModelStateData(state, isLoading, data, error, oldHash, newHash) + } + } + fun toList(): List { + return listOf( + state, + isLoading, + data, + error, + oldHash, + newHash, + ) + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class DetailModelEventData ( + val event: DetailModelEvent? = null, + val value: String? = null, + val oldHash: Long? = null, + val newHash: Long? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): DetailModelEventData { + val event = pigeonVar_list[0] as DetailModelEvent? + val value = pigeonVar_list[1] as String? + val oldHash = pigeonVar_list[2] as Long? + val newHash = pigeonVar_list[3] as Long? + return DetailModelEventData(event, value, oldHash, newHash) + } + } + fun toList(): List { + return listOf( + event, + value, + oldHash, + newHash, + ) + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class LoginModelStateData ( + val state: ModelState? = null, + val isLoading: Boolean? = null, + val oldHash: Long? = null, + val newHash: Long? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): LoginModelStateData { + val state = pigeonVar_list[0] as ModelState? + val isLoading = pigeonVar_list[1] as Boolean? + val oldHash = pigeonVar_list[2] as Long? + val newHash = pigeonVar_list[3] as Long? + return LoginModelStateData(state, isLoading, oldHash, newHash) + } + } + fun toList(): List { + return listOf( + state, + isLoading, + oldHash, + newHash, + ) + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class LoginModelEventData ( + val event: LoginModelEvent? = null, + val oldHash: Long? = null, + val newHash: Long? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): LoginModelEventData { + val event = pigeonVar_list[0] as LoginModelEvent? + val oldHash = pigeonVar_list[1] as Long? + val newHash = pigeonVar_list[2] as Long? + return LoginModelEventData(event, oldHash, newHash) + } + } + fun toList(): List { + return listOf( + event, + oldHash, + newHash, + ) + } +} +private open class DataModelPigeonCodec : StandardMessageCodec() { + override fun readValueOfType(type: Byte, buffer: ByteBuffer): Any? { + return when (type) { + 129.toByte() -> { + return (readValue(buffer) as Long?)?.let { + SnippetLanguageType.ofRaw(it.toInt()) + } + } + 130.toByte() -> { + return (readValue(buffer) as Long?)?.let { + SnippetFilterType.ofRaw(it.toInt()) + } + } + 131.toByte() -> { + return (readValue(buffer) as Long?)?.let { + UserReaction.ofRaw(it.toInt()) + } + } + 132.toByte() -> { + return (readValue(buffer) as Long?)?.let { + ModelState.ofRaw(it.toInt()) + } + } + 133.toByte() -> { + return (readValue(buffer) as Long?)?.let { + MainModelEvent.ofRaw(it.toInt()) + } + } + 134.toByte() -> { + return (readValue(buffer) as Long?)?.let { + DetailModelEvent.ofRaw(it.toInt()) + } + } + 135.toByte() -> { + return (readValue(buffer) as Long?)?.let { + LoginModelEvent.ofRaw(it.toInt()) + } + } + 136.toByte() -> { + return (readValue(buffer) as? List)?.let { + Snippet.fromList(it) + } + } + 137.toByte() -> { + return (readValue(buffer) as? List)?.let { + SnippetCode.fromList(it) + } + } + 138.toByte() -> { + return (readValue(buffer) as? List)?.let { + SyntaxToken.fromList(it) + } + } + 139.toByte() -> { + return (readValue(buffer) as? List)?.let { + SnippetLanguage.fromList(it) + } + } + 140.toByte() -> { + return (readValue(buffer) as? List)?.let { + Owner.fromList(it) + } + } + 141.toByte() -> { + return (readValue(buffer) as? List)?.let { + SnippetFilter.fromList(it) + } + } + 142.toByte() -> { + return (readValue(buffer) as? List)?.let { + MainModelStateData.fromList(it) + } + } + 143.toByte() -> { + return (readValue(buffer) as? List)?.let { + MainModelEventData.fromList(it) + } + } + 144.toByte() -> { + return (readValue(buffer) as? List)?.let { + DetailModelStateData.fromList(it) + } + } + 145.toByte() -> { + return (readValue(buffer) as? List)?.let { + DetailModelEventData.fromList(it) + } + } + 146.toByte() -> { + return (readValue(buffer) as? List)?.let { + LoginModelStateData.fromList(it) + } + } + 147.toByte() -> { + return (readValue(buffer) as? List)?.let { + LoginModelEventData.fromList(it) + } + } + else -> super.readValueOfType(type, buffer) + } + } + override fun writeValue(stream: ByteArrayOutputStream, value: Any?) { + when (value) { + is SnippetLanguageType -> { + stream.write(129) + writeValue(stream, value.raw) + } + is SnippetFilterType -> { + stream.write(130) + writeValue(stream, value.raw) + } + is UserReaction -> { + stream.write(131) + writeValue(stream, value.raw) + } + is ModelState -> { + stream.write(132) + writeValue(stream, value.raw) + } + is MainModelEvent -> { + stream.write(133) + writeValue(stream, value.raw) + } + is DetailModelEvent -> { + stream.write(134) + writeValue(stream, value.raw) + } + is LoginModelEvent -> { + stream.write(135) + writeValue(stream, value.raw) + } + is Snippet -> { + stream.write(136) + writeValue(stream, value.toList()) + } + is SnippetCode -> { + stream.write(137) + writeValue(stream, value.toList()) + } + is SyntaxToken -> { + stream.write(138) + writeValue(stream, value.toList()) + } + is SnippetLanguage -> { + stream.write(139) + writeValue(stream, value.toList()) + } + is Owner -> { + stream.write(140) + writeValue(stream, value.toList()) + } + is SnippetFilter -> { + stream.write(141) + writeValue(stream, value.toList()) + } + is MainModelStateData -> { + stream.write(142) + writeValue(stream, value.toList()) + } + is MainModelEventData -> { + stream.write(143) + writeValue(stream, value.toList()) + } + is DetailModelStateData -> { + stream.write(144) + writeValue(stream, value.toList()) + } + is DetailModelEventData -> { + stream.write(145) + writeValue(stream, value.toList()) + } + is LoginModelStateData -> { + stream.write(146) + writeValue(stream, value.toList()) + } + is LoginModelEventData -> { + stream.write(147) + writeValue(stream, value.toList()) + } + else -> super.writeValue(stream, value) + } + } +} + +/** Generated interface from Pigeon that represents a handler of messages from Flutter. */ +interface MainModelBridge { + fun getState(): MainModelStateData + fun getEvent(): MainModelEventData + fun resetEvent() + fun initState() + fun filterLanguage(language: String, isSelected: Boolean) + fun filterScope(scope: String) + fun logOut() + + companion object { + /** The codec used by MainModelBridge. */ + val codec: MessageCodec by lazy { + DataModelPigeonCodec() + } + /** Sets up an instance of `MainModelBridge` to handle messages through the `binaryMessenger`. */ + @JvmOverloads + fun setUp(binaryMessenger: BinaryMessenger, api: MainModelBridge?, messageChannelSuffix: String = "") { + val separatedMessageChannelSuffix = if (messageChannelSuffix.isNotEmpty()) ".$messageChannelSuffix" else "" + val taskQueue = binaryMessenger.makeBackgroundTaskQueue() + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.MainModelBridge.getState$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + listOf(api.getState()) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.MainModelBridge.getEvent$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + listOf(api.getEvent()) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.MainModelBridge.resetEvent$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.resetEvent() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.MainModelBridge.initState$separatedMessageChannelSuffix", codec, taskQueue) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.initState() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.MainModelBridge.filterLanguage$separatedMessageChannelSuffix", codec, taskQueue) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val languageArg = args[0] as String + val isSelectedArg = args[1] as Boolean + val wrapped: List = try { + api.filterLanguage(languageArg, isSelectedArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.MainModelBridge.filterScope$separatedMessageChannelSuffix", codec, taskQueue) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val scopeArg = args[0] as String + val wrapped: List = try { + api.filterScope(scopeArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.MainModelBridge.logOut$separatedMessageChannelSuffix", codec, taskQueue) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.logOut() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } +} +/** Generated interface from Pigeon that represents a handler of messages from Flutter. */ +interface DetailModelBridge { + fun getState(): DetailModelStateData + fun getEvent(): DetailModelEventData + fun resetEvent() + fun load(uuid: String) + fun like() + fun dislike() + fun save() + fun copyToClipboard() + fun share() + fun delete() + + companion object { + /** The codec used by DetailModelBridge. */ + val codec: MessageCodec by lazy { + DataModelPigeonCodec() + } + /** Sets up an instance of `DetailModelBridge` to handle messages through the `binaryMessenger`. */ + @JvmOverloads + fun setUp(binaryMessenger: BinaryMessenger, api: DetailModelBridge?, messageChannelSuffix: String = "") { + val separatedMessageChannelSuffix = if (messageChannelSuffix.isNotEmpty()) ".$messageChannelSuffix" else "" + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.getState$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + listOf(api.getState()) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.getEvent$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + listOf(api.getEvent()) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.resetEvent$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.resetEvent() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.load$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val uuidArg = args[0] as String + val wrapped: List = try { + api.load(uuidArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.like$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.like() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.dislike$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.dislike() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.save$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.save() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.copyToClipboard$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.copyToClipboard() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.share$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.share() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.delete$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.delete() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } +} +/** Generated interface from Pigeon that represents a handler of messages from Flutter. */ +interface LoginModelBridge { + fun getState(): LoginModelStateData + fun getEvent(): LoginModelEventData + fun loginOrRegister(email: String, password: String) + fun checkLoginState() + fun resetEvent() + + companion object { + /** The codec used by LoginModelBridge. */ + val codec: MessageCodec by lazy { + DataModelPigeonCodec() + } + /** Sets up an instance of `LoginModelBridge` to handle messages through the `binaryMessenger`. */ + @JvmOverloads + fun setUp(binaryMessenger: BinaryMessenger, api: LoginModelBridge?, messageChannelSuffix: String = "") { + val separatedMessageChannelSuffix = if (messageChannelSuffix.isNotEmpty()) ".$messageChannelSuffix" else "" + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.LoginModelBridge.getState$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + listOf(api.getState()) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.LoginModelBridge.getEvent$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + listOf(api.getEvent()) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.LoginModelBridge.loginOrRegister$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val emailArg = args[0] as String + val passwordArg = args[1] as String + val wrapped: List = try { + api.loginOrRegister(emailArg, passwordArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.LoginModelBridge.checkLoginState$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.checkLoginState() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.LoginModelBridge.resetEvent$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.resetEvent() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } +} diff --git a/app/src/main/java/dev/snipme/snipmeapp/infrastructure/local/ReactionEntry.kt b/app/src/main/java/dev/snipme/snipmeapp/infrastructure/local/ReactionEntry.kt index b32bad5..c832293 100644 --- a/app/src/main/java/dev/snipme/snipmeapp/infrastructure/local/ReactionEntry.kt +++ b/app/src/main/java/dev/snipme/snipmeapp/infrastructure/local/ReactionEntry.kt @@ -4,7 +4,6 @@ import androidx.room.Entity import androidx.room.ForeignKey import androidx.room.Index import androidx.room.PrimaryKey -import dev.snipme.snipmeapp.bridge.Bridge.Snippet @Entity( tableName = "reactions", diff --git a/flutter_module/android/src/main/java/dev/snipme/snipmeapp/bridge/ModelPlugin.g.kt b/flutter_module/android/src/main/java/dev/snipme/snipmeapp/bridge/ModelPlugin.g.kt new file mode 100644 index 0000000..7d7e55e --- /dev/null +++ b/flutter_module/android/src/main/java/dev/snipme/snipmeapp/bridge/ModelPlugin.g.kt @@ -0,0 +1,1125 @@ +// Autogenerated from Pigeon (v24.2.0), do not edit directly. +// See also: https://pub.dev/packages/pigeon +@file:Suppress("UNCHECKED_CAST", "ArrayInDataClass") + +package dev.snipme.snipmeapp.bridge + +import android.util.Log +import io.flutter.plugin.common.BasicMessageChannel +import io.flutter.plugin.common.BinaryMessenger +import io.flutter.plugin.common.EventChannel +import io.flutter.plugin.common.MessageCodec +import io.flutter.plugin.common.StandardMethodCodec +import io.flutter.plugin.common.StandardMessageCodec +import java.io.ByteArrayOutputStream +import java.nio.ByteBuffer + +private fun wrapResult(result: Any?): List { + return listOf(result) +} + +private fun wrapError(exception: Throwable): List { + return if (exception is FlutterError) { + listOf( + exception.code, + exception.message, + exception.details + ) + } else { + listOf( + exception.javaClass.simpleName, + exception.toString(), + "Cause: " + exception.cause + ", Stacktrace: " + Log.getStackTraceString(exception) + ) + } +} + +/** + * Error class for passing custom error details to Flutter via a thrown PlatformException. + * @property code The error code. + * @property message The error message. + * @property details The error details. Must be a datatype supported by the api codec. + */ +class FlutterError ( + val code: String, + override val message: String? = null, + val details: Any? = null +) : Throwable() + +enum class SnippetLanguageType(val raw: Int) { + C(0), + CPP(1), + OBJECTIVE_C(2), + C_SHARP(3), + JAVA(4), + BASH(5), + PYTHON(6), + PERL(7), + RUBY(8), + SWIFT(9), + JAVASCRIPT(10), + KOTLIN(11), + COFFEESCRIPT(12), + RUST(13), + BASIC(14), + CLOJURE(15), + CSS(16), + DART(17), + ERLANG(18), + GO(19), + HASKELL(20), + LISP(21), + LLVM(22), + LUA(23), + MATLAB(24), + ML(25), + MUMPS(26), + NEMERLE(27), + PASCAL(28), + R(29), + RD(30), + SCALA(31), + SQL(32), + TEX(33), + VB(34), + VHDL(35), + TCL(36), + XQUERY(37), + YAML(38), + MARKDOWN(39), + JSON(40), + XML(41), + PROTO(42), + REGEX(43), + UNKNOWN(44); + + companion object { + fun ofRaw(raw: Int): SnippetLanguageType? { + return values().firstOrNull { it.raw == raw } + } + } +} + +enum class SnippetFilterType(val raw: Int) { + ALL(0), + MINE(1), + SHARED(2); + + companion object { + fun ofRaw(raw: Int): SnippetFilterType? { + return values().firstOrNull { it.raw == raw } + } + } +} + +enum class UserReaction(val raw: Int) { + NONE(0), + LIKE(1), + DISLIKE(2); + + companion object { + fun ofRaw(raw: Int): UserReaction? { + return values().firstOrNull { it.raw == raw } + } + } +} + +enum class ModelState(val raw: Int) { + LOADING(0), + LOADED(1), + ERROR(2); + + companion object { + fun ofRaw(raw: Int): ModelState? { + return values().firstOrNull { it.raw == raw } + } + } +} + +enum class MainModelEvent(val raw: Int) { + NONE(0), + ALERT(1), + LOGOUT(2); + + companion object { + fun ofRaw(raw: Int): MainModelEvent? { + return values().firstOrNull { it.raw == raw } + } + } +} + +enum class DetailModelEvent(val raw: Int) { + NONE(0), + SAVED(1), + DELETED(2); + + companion object { + fun ofRaw(raw: Int): DetailModelEvent? { + return values().firstOrNull { it.raw == raw } + } + } +} + +enum class LoginModelEvent(val raw: Int) { + NONE(0), + LOGGED(1); + + companion object { + fun ofRaw(raw: Int): LoginModelEvent? { + return values().firstOrNull { it.raw == raw } + } + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class Snippet ( + val uuid: String? = null, + val title: String? = null, + val code: SnippetCode? = null, + val language: SnippetLanguage? = null, + val owner: Owner? = null, + val isOwner: Boolean? = null, + val timeAgo: String? = null, + val voteResult: Long? = null, + val userReaction: UserReaction? = null, + val isPrivate: Boolean? = null, + val isLiked: Boolean? = null, + val isDisliked: Boolean? = null, + val isSaved: Boolean? = null, + val isToDelete: Boolean? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): Snippet { + val uuid = pigeonVar_list[0] as String? + val title = pigeonVar_list[1] as String? + val code = pigeonVar_list[2] as SnippetCode? + val language = pigeonVar_list[3] as SnippetLanguage? + val owner = pigeonVar_list[4] as Owner? + val isOwner = pigeonVar_list[5] as Boolean? + val timeAgo = pigeonVar_list[6] as String? + val voteResult = pigeonVar_list[7] as Long? + val userReaction = pigeonVar_list[8] as UserReaction? + val isPrivate = pigeonVar_list[9] as Boolean? + val isLiked = pigeonVar_list[10] as Boolean? + val isDisliked = pigeonVar_list[11] as Boolean? + val isSaved = pigeonVar_list[12] as Boolean? + val isToDelete = pigeonVar_list[13] as Boolean? + return Snippet(uuid, title, code, language, owner, isOwner, timeAgo, voteResult, userReaction, isPrivate, isLiked, isDisliked, isSaved, isToDelete) + } + } + fun toList(): List { + return listOf( + uuid, + title, + code, + language, + owner, + isOwner, + timeAgo, + voteResult, + userReaction, + isPrivate, + isLiked, + isDisliked, + isSaved, + isToDelete, + ) + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class SnippetCode ( + val raw: String? = null, + val tokens: List? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): SnippetCode { + val raw = pigeonVar_list[0] as String? + val tokens = pigeonVar_list[1] as List? + return SnippetCode(raw, tokens) + } + } + fun toList(): List { + return listOf( + raw, + tokens, + ) + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class SyntaxToken ( + val start: Long? = null, + val end: Long? = null, + val color: Long? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): SyntaxToken { + val start = pigeonVar_list[0] as Long? + val end = pigeonVar_list[1] as Long? + val color = pigeonVar_list[2] as Long? + return SyntaxToken(start, end, color) + } + } + fun toList(): List { + return listOf( + start, + end, + color, + ) + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class SnippetLanguage ( + val raw: String? = null, + val type: SnippetLanguageType? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): SnippetLanguage { + val raw = pigeonVar_list[0] as String? + val type = pigeonVar_list[1] as SnippetLanguageType? + return SnippetLanguage(raw, type) + } + } + fun toList(): List { + return listOf( + raw, + type, + ) + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class Owner ( + val id: Long? = null, + val login: String? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): Owner { + val id = pigeonVar_list[0] as Long? + val login = pigeonVar_list[1] as String? + return Owner(id, login) + } + } + fun toList(): List { + return listOf( + id, + login, + ) + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class SnippetFilter ( + val languages: List? = null, + val selectedLanguages: List? = null, + val scopes: List? = null, + val selectedScope: String? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): SnippetFilter { + val languages = pigeonVar_list[0] as List? + val selectedLanguages = pigeonVar_list[1] as List? + val scopes = pigeonVar_list[2] as List? + val selectedScope = pigeonVar_list[3] as String? + return SnippetFilter(languages, selectedLanguages, scopes, selectedScope) + } + } + fun toList(): List { + return listOf( + languages, + selectedLanguages, + scopes, + selectedScope, + ) + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class MainModelStateData ( + val state: ModelState? = null, + val isLoading: Boolean? = null, + val data: List? = null, + val filter: SnippetFilter? = null, + val error: String? = null, + val oldHash: Long? = null, + val newHash: Long? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): MainModelStateData { + val state = pigeonVar_list[0] as ModelState? + val isLoading = pigeonVar_list[1] as Boolean? + val data = pigeonVar_list[2] as List? + val filter = pigeonVar_list[3] as SnippetFilter? + val error = pigeonVar_list[4] as String? + val oldHash = pigeonVar_list[5] as Long? + val newHash = pigeonVar_list[6] as Long? + return MainModelStateData(state, isLoading, data, filter, error, oldHash, newHash) + } + } + fun toList(): List { + return listOf( + state, + isLoading, + data, + filter, + error, + oldHash, + newHash, + ) + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class MainModelEventData ( + val event: MainModelEvent? = null, + val message: String? = null, + val oldHash: Long? = null, + val newHash: Long? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): MainModelEventData { + val event = pigeonVar_list[0] as MainModelEvent? + val message = pigeonVar_list[1] as String? + val oldHash = pigeonVar_list[2] as Long? + val newHash = pigeonVar_list[3] as Long? + return MainModelEventData(event, message, oldHash, newHash) + } + } + fun toList(): List { + return listOf( + event, + message, + oldHash, + newHash, + ) + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class DetailModelStateData ( + val state: ModelState? = null, + val isLoading: Boolean? = null, + val data: Snippet? = null, + val error: String? = null, + val oldHash: Long? = null, + val newHash: Long? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): DetailModelStateData { + val state = pigeonVar_list[0] as ModelState? + val isLoading = pigeonVar_list[1] as Boolean? + val data = pigeonVar_list[2] as Snippet? + val error = pigeonVar_list[3] as String? + val oldHash = pigeonVar_list[4] as Long? + val newHash = pigeonVar_list[5] as Long? + return DetailModelStateData(state, isLoading, data, error, oldHash, newHash) + } + } + fun toList(): List { + return listOf( + state, + isLoading, + data, + error, + oldHash, + newHash, + ) + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class DetailModelEventData ( + val event: DetailModelEvent? = null, + val value: String? = null, + val oldHash: Long? = null, + val newHash: Long? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): DetailModelEventData { + val event = pigeonVar_list[0] as DetailModelEvent? + val value = pigeonVar_list[1] as String? + val oldHash = pigeonVar_list[2] as Long? + val newHash = pigeonVar_list[3] as Long? + return DetailModelEventData(event, value, oldHash, newHash) + } + } + fun toList(): List { + return listOf( + event, + value, + oldHash, + newHash, + ) + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class LoginModelStateData ( + val state: ModelState? = null, + val isLoading: Boolean? = null, + val oldHash: Long? = null, + val newHash: Long? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): LoginModelStateData { + val state = pigeonVar_list[0] as ModelState? + val isLoading = pigeonVar_list[1] as Boolean? + val oldHash = pigeonVar_list[2] as Long? + val newHash = pigeonVar_list[3] as Long? + return LoginModelStateData(state, isLoading, oldHash, newHash) + } + } + fun toList(): List { + return listOf( + state, + isLoading, + oldHash, + newHash, + ) + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class LoginModelEventData ( + val event: LoginModelEvent? = null, + val oldHash: Long? = null, + val newHash: Long? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): LoginModelEventData { + val event = pigeonVar_list[0] as LoginModelEvent? + val oldHash = pigeonVar_list[1] as Long? + val newHash = pigeonVar_list[2] as Long? + return LoginModelEventData(event, oldHash, newHash) + } + } + fun toList(): List { + return listOf( + event, + oldHash, + newHash, + ) + } +} +private open class ModelPluginPigeonCodec : StandardMessageCodec() { + override fun readValueOfType(type: Byte, buffer: ByteBuffer): Any? { + return when (type) { + 129.toByte() -> { + return (readValue(buffer) as Long?)?.let { + SnippetLanguageType.ofRaw(it.toInt()) + } + } + 130.toByte() -> { + return (readValue(buffer) as Long?)?.let { + SnippetFilterType.ofRaw(it.toInt()) + } + } + 131.toByte() -> { + return (readValue(buffer) as Long?)?.let { + UserReaction.ofRaw(it.toInt()) + } + } + 132.toByte() -> { + return (readValue(buffer) as Long?)?.let { + ModelState.ofRaw(it.toInt()) + } + } + 133.toByte() -> { + return (readValue(buffer) as Long?)?.let { + MainModelEvent.ofRaw(it.toInt()) + } + } + 134.toByte() -> { + return (readValue(buffer) as Long?)?.let { + DetailModelEvent.ofRaw(it.toInt()) + } + } + 135.toByte() -> { + return (readValue(buffer) as Long?)?.let { + LoginModelEvent.ofRaw(it.toInt()) + } + } + 136.toByte() -> { + return (readValue(buffer) as? List)?.let { + Snippet.fromList(it) + } + } + 137.toByte() -> { + return (readValue(buffer) as? List)?.let { + SnippetCode.fromList(it) + } + } + 138.toByte() -> { + return (readValue(buffer) as? List)?.let { + SyntaxToken.fromList(it) + } + } + 139.toByte() -> { + return (readValue(buffer) as? List)?.let { + SnippetLanguage.fromList(it) + } + } + 140.toByte() -> { + return (readValue(buffer) as? List)?.let { + Owner.fromList(it) + } + } + 141.toByte() -> { + return (readValue(buffer) as? List)?.let { + SnippetFilter.fromList(it) + } + } + 142.toByte() -> { + return (readValue(buffer) as? List)?.let { + MainModelStateData.fromList(it) + } + } + 143.toByte() -> { + return (readValue(buffer) as? List)?.let { + MainModelEventData.fromList(it) + } + } + 144.toByte() -> { + return (readValue(buffer) as? List)?.let { + DetailModelStateData.fromList(it) + } + } + 145.toByte() -> { + return (readValue(buffer) as? List)?.let { + DetailModelEventData.fromList(it) + } + } + 146.toByte() -> { + return (readValue(buffer) as? List)?.let { + LoginModelStateData.fromList(it) + } + } + 147.toByte() -> { + return (readValue(buffer) as? List)?.let { + LoginModelEventData.fromList(it) + } + } + else -> super.readValueOfType(type, buffer) + } + } + override fun writeValue(stream: ByteArrayOutputStream, value: Any?) { + when (value) { + is SnippetLanguageType -> { + stream.write(129) + writeValue(stream, value.raw) + } + is SnippetFilterType -> { + stream.write(130) + writeValue(stream, value.raw) + } + is UserReaction -> { + stream.write(131) + writeValue(stream, value.raw) + } + is ModelState -> { + stream.write(132) + writeValue(stream, value.raw) + } + is MainModelEvent -> { + stream.write(133) + writeValue(stream, value.raw) + } + is DetailModelEvent -> { + stream.write(134) + writeValue(stream, value.raw) + } + is LoginModelEvent -> { + stream.write(135) + writeValue(stream, value.raw) + } + is Snippet -> { + stream.write(136) + writeValue(stream, value.toList()) + } + is SnippetCode -> { + stream.write(137) + writeValue(stream, value.toList()) + } + is SyntaxToken -> { + stream.write(138) + writeValue(stream, value.toList()) + } + is SnippetLanguage -> { + stream.write(139) + writeValue(stream, value.toList()) + } + is Owner -> { + stream.write(140) + writeValue(stream, value.toList()) + } + is SnippetFilter -> { + stream.write(141) + writeValue(stream, value.toList()) + } + is MainModelStateData -> { + stream.write(142) + writeValue(stream, value.toList()) + } + is MainModelEventData -> { + stream.write(143) + writeValue(stream, value.toList()) + } + is DetailModelStateData -> { + stream.write(144) + writeValue(stream, value.toList()) + } + is DetailModelEventData -> { + stream.write(145) + writeValue(stream, value.toList()) + } + is LoginModelStateData -> { + stream.write(146) + writeValue(stream, value.toList()) + } + is LoginModelEventData -> { + stream.write(147) + writeValue(stream, value.toList()) + } + else -> super.writeValue(stream, value) + } + } +} + +/** Generated interface from Pigeon that represents a handler of messages from Flutter. */ +interface MainModelBridge { + fun getState(): MainModelStateData + fun getEvent(): MainModelEventData + fun resetEvent() + fun initState() + fun filterLanguage(language: String, isSelected: Boolean) + fun filterScope(scope: String) + fun logOut() + + companion object { + /** The codec used by MainModelBridge. */ + val codec: MessageCodec by lazy { + ModelPluginPigeonCodec() + } + /** Sets up an instance of `MainModelBridge` to handle messages through the `binaryMessenger`. */ + @JvmOverloads + fun setUp(binaryMessenger: BinaryMessenger, api: MainModelBridge?, messageChannelSuffix: String = "") { + val separatedMessageChannelSuffix = if (messageChannelSuffix.isNotEmpty()) ".$messageChannelSuffix" else "" + val taskQueue = binaryMessenger.makeBackgroundTaskQueue() + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.MainModelBridge.getState$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + listOf(api.getState()) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.MainModelBridge.getEvent$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + listOf(api.getEvent()) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.MainModelBridge.resetEvent$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.resetEvent() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.MainModelBridge.initState$separatedMessageChannelSuffix", codec, taskQueue) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.initState() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.MainModelBridge.filterLanguage$separatedMessageChannelSuffix", codec, taskQueue) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val languageArg = args[0] as String + val isSelectedArg = args[1] as Boolean + val wrapped: List = try { + api.filterLanguage(languageArg, isSelectedArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.MainModelBridge.filterScope$separatedMessageChannelSuffix", codec, taskQueue) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val scopeArg = args[0] as String + val wrapped: List = try { + api.filterScope(scopeArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.MainModelBridge.logOut$separatedMessageChannelSuffix", codec, taskQueue) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.logOut() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } +} +/** Generated interface from Pigeon that represents a handler of messages from Flutter. */ +interface DetailModelBridge { + fun getState(): DetailModelStateData + fun getEvent(): DetailModelEventData + fun resetEvent() + fun load(uuid: String) + fun like() + fun dislike() + fun save() + fun copyToClipboard() + fun share() + fun delete() + + companion object { + /** The codec used by DetailModelBridge. */ + val codec: MessageCodec by lazy { + ModelPluginPigeonCodec() + } + /** Sets up an instance of `DetailModelBridge` to handle messages through the `binaryMessenger`. */ + @JvmOverloads + fun setUp(binaryMessenger: BinaryMessenger, api: DetailModelBridge?, messageChannelSuffix: String = "") { + val separatedMessageChannelSuffix = if (messageChannelSuffix.isNotEmpty()) ".$messageChannelSuffix" else "" + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.getState$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + listOf(api.getState()) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.getEvent$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + listOf(api.getEvent()) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.resetEvent$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.resetEvent() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.load$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val uuidArg = args[0] as String + val wrapped: List = try { + api.load(uuidArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.like$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.like() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.dislike$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.dislike() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.save$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.save() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.copyToClipboard$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.copyToClipboard() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.share$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.share() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.delete$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.delete() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } +} +/** Generated interface from Pigeon that represents a handler of messages from Flutter. */ +interface LoginModelBridge { + fun getState(): LoginModelStateData + fun getEvent(): LoginModelEventData + fun loginOrRegister(email: String, password: String) + fun checkLoginState() + fun resetEvent() + + companion object { + /** The codec used by LoginModelBridge. */ + val codec: MessageCodec by lazy { + ModelPluginPigeonCodec() + } + /** Sets up an instance of `LoginModelBridge` to handle messages through the `binaryMessenger`. */ + @JvmOverloads + fun setUp(binaryMessenger: BinaryMessenger, api: LoginModelBridge?, messageChannelSuffix: String = "") { + val separatedMessageChannelSuffix = if (messageChannelSuffix.isNotEmpty()) ".$messageChannelSuffix" else "" + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.LoginModelBridge.getState$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + listOf(api.getState()) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.LoginModelBridge.getEvent$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + listOf(api.getEvent()) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.LoginModelBridge.loginOrRegister$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val emailArg = args[0] as String + val passwordArg = args[1] as String + val wrapped: List = try { + api.loginOrRegister(emailArg, passwordArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.LoginModelBridge.checkLoginState$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.checkLoginState() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.LoginModelBridge.resetEvent$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.resetEvent() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } +} diff --git a/flutter_module/android/src/main/kotlin/dev/snipme/bridge/ModelPlugin.g.kt b/flutter_module/android/src/main/kotlin/dev/snipme/bridge/ModelPlugin.g.kt new file mode 100644 index 0000000..7d7e55e --- /dev/null +++ b/flutter_module/android/src/main/kotlin/dev/snipme/bridge/ModelPlugin.g.kt @@ -0,0 +1,1125 @@ +// Autogenerated from Pigeon (v24.2.0), do not edit directly. +// See also: https://pub.dev/packages/pigeon +@file:Suppress("UNCHECKED_CAST", "ArrayInDataClass") + +package dev.snipme.snipmeapp.bridge + +import android.util.Log +import io.flutter.plugin.common.BasicMessageChannel +import io.flutter.plugin.common.BinaryMessenger +import io.flutter.plugin.common.EventChannel +import io.flutter.plugin.common.MessageCodec +import io.flutter.plugin.common.StandardMethodCodec +import io.flutter.plugin.common.StandardMessageCodec +import java.io.ByteArrayOutputStream +import java.nio.ByteBuffer + +private fun wrapResult(result: Any?): List { + return listOf(result) +} + +private fun wrapError(exception: Throwable): List { + return if (exception is FlutterError) { + listOf( + exception.code, + exception.message, + exception.details + ) + } else { + listOf( + exception.javaClass.simpleName, + exception.toString(), + "Cause: " + exception.cause + ", Stacktrace: " + Log.getStackTraceString(exception) + ) + } +} + +/** + * Error class for passing custom error details to Flutter via a thrown PlatformException. + * @property code The error code. + * @property message The error message. + * @property details The error details. Must be a datatype supported by the api codec. + */ +class FlutterError ( + val code: String, + override val message: String? = null, + val details: Any? = null +) : Throwable() + +enum class SnippetLanguageType(val raw: Int) { + C(0), + CPP(1), + OBJECTIVE_C(2), + C_SHARP(3), + JAVA(4), + BASH(5), + PYTHON(6), + PERL(7), + RUBY(8), + SWIFT(9), + JAVASCRIPT(10), + KOTLIN(11), + COFFEESCRIPT(12), + RUST(13), + BASIC(14), + CLOJURE(15), + CSS(16), + DART(17), + ERLANG(18), + GO(19), + HASKELL(20), + LISP(21), + LLVM(22), + LUA(23), + MATLAB(24), + ML(25), + MUMPS(26), + NEMERLE(27), + PASCAL(28), + R(29), + RD(30), + SCALA(31), + SQL(32), + TEX(33), + VB(34), + VHDL(35), + TCL(36), + XQUERY(37), + YAML(38), + MARKDOWN(39), + JSON(40), + XML(41), + PROTO(42), + REGEX(43), + UNKNOWN(44); + + companion object { + fun ofRaw(raw: Int): SnippetLanguageType? { + return values().firstOrNull { it.raw == raw } + } + } +} + +enum class SnippetFilterType(val raw: Int) { + ALL(0), + MINE(1), + SHARED(2); + + companion object { + fun ofRaw(raw: Int): SnippetFilterType? { + return values().firstOrNull { it.raw == raw } + } + } +} + +enum class UserReaction(val raw: Int) { + NONE(0), + LIKE(1), + DISLIKE(2); + + companion object { + fun ofRaw(raw: Int): UserReaction? { + return values().firstOrNull { it.raw == raw } + } + } +} + +enum class ModelState(val raw: Int) { + LOADING(0), + LOADED(1), + ERROR(2); + + companion object { + fun ofRaw(raw: Int): ModelState? { + return values().firstOrNull { it.raw == raw } + } + } +} + +enum class MainModelEvent(val raw: Int) { + NONE(0), + ALERT(1), + LOGOUT(2); + + companion object { + fun ofRaw(raw: Int): MainModelEvent? { + return values().firstOrNull { it.raw == raw } + } + } +} + +enum class DetailModelEvent(val raw: Int) { + NONE(0), + SAVED(1), + DELETED(2); + + companion object { + fun ofRaw(raw: Int): DetailModelEvent? { + return values().firstOrNull { it.raw == raw } + } + } +} + +enum class LoginModelEvent(val raw: Int) { + NONE(0), + LOGGED(1); + + companion object { + fun ofRaw(raw: Int): LoginModelEvent? { + return values().firstOrNull { it.raw == raw } + } + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class Snippet ( + val uuid: String? = null, + val title: String? = null, + val code: SnippetCode? = null, + val language: SnippetLanguage? = null, + val owner: Owner? = null, + val isOwner: Boolean? = null, + val timeAgo: String? = null, + val voteResult: Long? = null, + val userReaction: UserReaction? = null, + val isPrivate: Boolean? = null, + val isLiked: Boolean? = null, + val isDisliked: Boolean? = null, + val isSaved: Boolean? = null, + val isToDelete: Boolean? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): Snippet { + val uuid = pigeonVar_list[0] as String? + val title = pigeonVar_list[1] as String? + val code = pigeonVar_list[2] as SnippetCode? + val language = pigeonVar_list[3] as SnippetLanguage? + val owner = pigeonVar_list[4] as Owner? + val isOwner = pigeonVar_list[5] as Boolean? + val timeAgo = pigeonVar_list[6] as String? + val voteResult = pigeonVar_list[7] as Long? + val userReaction = pigeonVar_list[8] as UserReaction? + val isPrivate = pigeonVar_list[9] as Boolean? + val isLiked = pigeonVar_list[10] as Boolean? + val isDisliked = pigeonVar_list[11] as Boolean? + val isSaved = pigeonVar_list[12] as Boolean? + val isToDelete = pigeonVar_list[13] as Boolean? + return Snippet(uuid, title, code, language, owner, isOwner, timeAgo, voteResult, userReaction, isPrivate, isLiked, isDisliked, isSaved, isToDelete) + } + } + fun toList(): List { + return listOf( + uuid, + title, + code, + language, + owner, + isOwner, + timeAgo, + voteResult, + userReaction, + isPrivate, + isLiked, + isDisliked, + isSaved, + isToDelete, + ) + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class SnippetCode ( + val raw: String? = null, + val tokens: List? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): SnippetCode { + val raw = pigeonVar_list[0] as String? + val tokens = pigeonVar_list[1] as List? + return SnippetCode(raw, tokens) + } + } + fun toList(): List { + return listOf( + raw, + tokens, + ) + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class SyntaxToken ( + val start: Long? = null, + val end: Long? = null, + val color: Long? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): SyntaxToken { + val start = pigeonVar_list[0] as Long? + val end = pigeonVar_list[1] as Long? + val color = pigeonVar_list[2] as Long? + return SyntaxToken(start, end, color) + } + } + fun toList(): List { + return listOf( + start, + end, + color, + ) + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class SnippetLanguage ( + val raw: String? = null, + val type: SnippetLanguageType? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): SnippetLanguage { + val raw = pigeonVar_list[0] as String? + val type = pigeonVar_list[1] as SnippetLanguageType? + return SnippetLanguage(raw, type) + } + } + fun toList(): List { + return listOf( + raw, + type, + ) + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class Owner ( + val id: Long? = null, + val login: String? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): Owner { + val id = pigeonVar_list[0] as Long? + val login = pigeonVar_list[1] as String? + return Owner(id, login) + } + } + fun toList(): List { + return listOf( + id, + login, + ) + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class SnippetFilter ( + val languages: List? = null, + val selectedLanguages: List? = null, + val scopes: List? = null, + val selectedScope: String? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): SnippetFilter { + val languages = pigeonVar_list[0] as List? + val selectedLanguages = pigeonVar_list[1] as List? + val scopes = pigeonVar_list[2] as List? + val selectedScope = pigeonVar_list[3] as String? + return SnippetFilter(languages, selectedLanguages, scopes, selectedScope) + } + } + fun toList(): List { + return listOf( + languages, + selectedLanguages, + scopes, + selectedScope, + ) + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class MainModelStateData ( + val state: ModelState? = null, + val isLoading: Boolean? = null, + val data: List? = null, + val filter: SnippetFilter? = null, + val error: String? = null, + val oldHash: Long? = null, + val newHash: Long? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): MainModelStateData { + val state = pigeonVar_list[0] as ModelState? + val isLoading = pigeonVar_list[1] as Boolean? + val data = pigeonVar_list[2] as List? + val filter = pigeonVar_list[3] as SnippetFilter? + val error = pigeonVar_list[4] as String? + val oldHash = pigeonVar_list[5] as Long? + val newHash = pigeonVar_list[6] as Long? + return MainModelStateData(state, isLoading, data, filter, error, oldHash, newHash) + } + } + fun toList(): List { + return listOf( + state, + isLoading, + data, + filter, + error, + oldHash, + newHash, + ) + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class MainModelEventData ( + val event: MainModelEvent? = null, + val message: String? = null, + val oldHash: Long? = null, + val newHash: Long? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): MainModelEventData { + val event = pigeonVar_list[0] as MainModelEvent? + val message = pigeonVar_list[1] as String? + val oldHash = pigeonVar_list[2] as Long? + val newHash = pigeonVar_list[3] as Long? + return MainModelEventData(event, message, oldHash, newHash) + } + } + fun toList(): List { + return listOf( + event, + message, + oldHash, + newHash, + ) + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class DetailModelStateData ( + val state: ModelState? = null, + val isLoading: Boolean? = null, + val data: Snippet? = null, + val error: String? = null, + val oldHash: Long? = null, + val newHash: Long? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): DetailModelStateData { + val state = pigeonVar_list[0] as ModelState? + val isLoading = pigeonVar_list[1] as Boolean? + val data = pigeonVar_list[2] as Snippet? + val error = pigeonVar_list[3] as String? + val oldHash = pigeonVar_list[4] as Long? + val newHash = pigeonVar_list[5] as Long? + return DetailModelStateData(state, isLoading, data, error, oldHash, newHash) + } + } + fun toList(): List { + return listOf( + state, + isLoading, + data, + error, + oldHash, + newHash, + ) + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class DetailModelEventData ( + val event: DetailModelEvent? = null, + val value: String? = null, + val oldHash: Long? = null, + val newHash: Long? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): DetailModelEventData { + val event = pigeonVar_list[0] as DetailModelEvent? + val value = pigeonVar_list[1] as String? + val oldHash = pigeonVar_list[2] as Long? + val newHash = pigeonVar_list[3] as Long? + return DetailModelEventData(event, value, oldHash, newHash) + } + } + fun toList(): List { + return listOf( + event, + value, + oldHash, + newHash, + ) + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class LoginModelStateData ( + val state: ModelState? = null, + val isLoading: Boolean? = null, + val oldHash: Long? = null, + val newHash: Long? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): LoginModelStateData { + val state = pigeonVar_list[0] as ModelState? + val isLoading = pigeonVar_list[1] as Boolean? + val oldHash = pigeonVar_list[2] as Long? + val newHash = pigeonVar_list[3] as Long? + return LoginModelStateData(state, isLoading, oldHash, newHash) + } + } + fun toList(): List { + return listOf( + state, + isLoading, + oldHash, + newHash, + ) + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class LoginModelEventData ( + val event: LoginModelEvent? = null, + val oldHash: Long? = null, + val newHash: Long? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): LoginModelEventData { + val event = pigeonVar_list[0] as LoginModelEvent? + val oldHash = pigeonVar_list[1] as Long? + val newHash = pigeonVar_list[2] as Long? + return LoginModelEventData(event, oldHash, newHash) + } + } + fun toList(): List { + return listOf( + event, + oldHash, + newHash, + ) + } +} +private open class ModelPluginPigeonCodec : StandardMessageCodec() { + override fun readValueOfType(type: Byte, buffer: ByteBuffer): Any? { + return when (type) { + 129.toByte() -> { + return (readValue(buffer) as Long?)?.let { + SnippetLanguageType.ofRaw(it.toInt()) + } + } + 130.toByte() -> { + return (readValue(buffer) as Long?)?.let { + SnippetFilterType.ofRaw(it.toInt()) + } + } + 131.toByte() -> { + return (readValue(buffer) as Long?)?.let { + UserReaction.ofRaw(it.toInt()) + } + } + 132.toByte() -> { + return (readValue(buffer) as Long?)?.let { + ModelState.ofRaw(it.toInt()) + } + } + 133.toByte() -> { + return (readValue(buffer) as Long?)?.let { + MainModelEvent.ofRaw(it.toInt()) + } + } + 134.toByte() -> { + return (readValue(buffer) as Long?)?.let { + DetailModelEvent.ofRaw(it.toInt()) + } + } + 135.toByte() -> { + return (readValue(buffer) as Long?)?.let { + LoginModelEvent.ofRaw(it.toInt()) + } + } + 136.toByte() -> { + return (readValue(buffer) as? List)?.let { + Snippet.fromList(it) + } + } + 137.toByte() -> { + return (readValue(buffer) as? List)?.let { + SnippetCode.fromList(it) + } + } + 138.toByte() -> { + return (readValue(buffer) as? List)?.let { + SyntaxToken.fromList(it) + } + } + 139.toByte() -> { + return (readValue(buffer) as? List)?.let { + SnippetLanguage.fromList(it) + } + } + 140.toByte() -> { + return (readValue(buffer) as? List)?.let { + Owner.fromList(it) + } + } + 141.toByte() -> { + return (readValue(buffer) as? List)?.let { + SnippetFilter.fromList(it) + } + } + 142.toByte() -> { + return (readValue(buffer) as? List)?.let { + MainModelStateData.fromList(it) + } + } + 143.toByte() -> { + return (readValue(buffer) as? List)?.let { + MainModelEventData.fromList(it) + } + } + 144.toByte() -> { + return (readValue(buffer) as? List)?.let { + DetailModelStateData.fromList(it) + } + } + 145.toByte() -> { + return (readValue(buffer) as? List)?.let { + DetailModelEventData.fromList(it) + } + } + 146.toByte() -> { + return (readValue(buffer) as? List)?.let { + LoginModelStateData.fromList(it) + } + } + 147.toByte() -> { + return (readValue(buffer) as? List)?.let { + LoginModelEventData.fromList(it) + } + } + else -> super.readValueOfType(type, buffer) + } + } + override fun writeValue(stream: ByteArrayOutputStream, value: Any?) { + when (value) { + is SnippetLanguageType -> { + stream.write(129) + writeValue(stream, value.raw) + } + is SnippetFilterType -> { + stream.write(130) + writeValue(stream, value.raw) + } + is UserReaction -> { + stream.write(131) + writeValue(stream, value.raw) + } + is ModelState -> { + stream.write(132) + writeValue(stream, value.raw) + } + is MainModelEvent -> { + stream.write(133) + writeValue(stream, value.raw) + } + is DetailModelEvent -> { + stream.write(134) + writeValue(stream, value.raw) + } + is LoginModelEvent -> { + stream.write(135) + writeValue(stream, value.raw) + } + is Snippet -> { + stream.write(136) + writeValue(stream, value.toList()) + } + is SnippetCode -> { + stream.write(137) + writeValue(stream, value.toList()) + } + is SyntaxToken -> { + stream.write(138) + writeValue(stream, value.toList()) + } + is SnippetLanguage -> { + stream.write(139) + writeValue(stream, value.toList()) + } + is Owner -> { + stream.write(140) + writeValue(stream, value.toList()) + } + is SnippetFilter -> { + stream.write(141) + writeValue(stream, value.toList()) + } + is MainModelStateData -> { + stream.write(142) + writeValue(stream, value.toList()) + } + is MainModelEventData -> { + stream.write(143) + writeValue(stream, value.toList()) + } + is DetailModelStateData -> { + stream.write(144) + writeValue(stream, value.toList()) + } + is DetailModelEventData -> { + stream.write(145) + writeValue(stream, value.toList()) + } + is LoginModelStateData -> { + stream.write(146) + writeValue(stream, value.toList()) + } + is LoginModelEventData -> { + stream.write(147) + writeValue(stream, value.toList()) + } + else -> super.writeValue(stream, value) + } + } +} + +/** Generated interface from Pigeon that represents a handler of messages from Flutter. */ +interface MainModelBridge { + fun getState(): MainModelStateData + fun getEvent(): MainModelEventData + fun resetEvent() + fun initState() + fun filterLanguage(language: String, isSelected: Boolean) + fun filterScope(scope: String) + fun logOut() + + companion object { + /** The codec used by MainModelBridge. */ + val codec: MessageCodec by lazy { + ModelPluginPigeonCodec() + } + /** Sets up an instance of `MainModelBridge` to handle messages through the `binaryMessenger`. */ + @JvmOverloads + fun setUp(binaryMessenger: BinaryMessenger, api: MainModelBridge?, messageChannelSuffix: String = "") { + val separatedMessageChannelSuffix = if (messageChannelSuffix.isNotEmpty()) ".$messageChannelSuffix" else "" + val taskQueue = binaryMessenger.makeBackgroundTaskQueue() + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.MainModelBridge.getState$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + listOf(api.getState()) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.MainModelBridge.getEvent$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + listOf(api.getEvent()) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.MainModelBridge.resetEvent$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.resetEvent() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.MainModelBridge.initState$separatedMessageChannelSuffix", codec, taskQueue) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.initState() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.MainModelBridge.filterLanguage$separatedMessageChannelSuffix", codec, taskQueue) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val languageArg = args[0] as String + val isSelectedArg = args[1] as Boolean + val wrapped: List = try { + api.filterLanguage(languageArg, isSelectedArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.MainModelBridge.filterScope$separatedMessageChannelSuffix", codec, taskQueue) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val scopeArg = args[0] as String + val wrapped: List = try { + api.filterScope(scopeArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.MainModelBridge.logOut$separatedMessageChannelSuffix", codec, taskQueue) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.logOut() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } +} +/** Generated interface from Pigeon that represents a handler of messages from Flutter. */ +interface DetailModelBridge { + fun getState(): DetailModelStateData + fun getEvent(): DetailModelEventData + fun resetEvent() + fun load(uuid: String) + fun like() + fun dislike() + fun save() + fun copyToClipboard() + fun share() + fun delete() + + companion object { + /** The codec used by DetailModelBridge. */ + val codec: MessageCodec by lazy { + ModelPluginPigeonCodec() + } + /** Sets up an instance of `DetailModelBridge` to handle messages through the `binaryMessenger`. */ + @JvmOverloads + fun setUp(binaryMessenger: BinaryMessenger, api: DetailModelBridge?, messageChannelSuffix: String = "") { + val separatedMessageChannelSuffix = if (messageChannelSuffix.isNotEmpty()) ".$messageChannelSuffix" else "" + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.getState$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + listOf(api.getState()) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.getEvent$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + listOf(api.getEvent()) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.resetEvent$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.resetEvent() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.load$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val uuidArg = args[0] as String + val wrapped: List = try { + api.load(uuidArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.like$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.like() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.dislike$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.dislike() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.save$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.save() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.copyToClipboard$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.copyToClipboard() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.share$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.share() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.delete$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.delete() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } +} +/** Generated interface from Pigeon that represents a handler of messages from Flutter. */ +interface LoginModelBridge { + fun getState(): LoginModelStateData + fun getEvent(): LoginModelEventData + fun loginOrRegister(email: String, password: String) + fun checkLoginState() + fun resetEvent() + + companion object { + /** The codec used by LoginModelBridge. */ + val codec: MessageCodec by lazy { + ModelPluginPigeonCodec() + } + /** Sets up an instance of `LoginModelBridge` to handle messages through the `binaryMessenger`. */ + @JvmOverloads + fun setUp(binaryMessenger: BinaryMessenger, api: LoginModelBridge?, messageChannelSuffix: String = "") { + val separatedMessageChannelSuffix = if (messageChannelSuffix.isNotEmpty()) ".$messageChannelSuffix" else "" + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.LoginModelBridge.getState$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + listOf(api.getState()) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.LoginModelBridge.getEvent$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + listOf(api.getEvent()) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.LoginModelBridge.loginOrRegister$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val emailArg = args[0] as String + val passwordArg = args[1] as String + val wrapped: List = try { + api.loginOrRegister(emailArg, passwordArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.LoginModelBridge.checkLoginState$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.checkLoginState() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.LoginModelBridge.resetEvent$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.resetEvent() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } +} diff --git a/flutter_module/android/src/main/kotlin/dev/snipme/snipmeapp/bridge/ModelPlugin.g.kt b/flutter_module/android/src/main/kotlin/dev/snipme/snipmeapp/bridge/ModelPlugin.g.kt new file mode 100644 index 0000000..7d7e55e --- /dev/null +++ b/flutter_module/android/src/main/kotlin/dev/snipme/snipmeapp/bridge/ModelPlugin.g.kt @@ -0,0 +1,1125 @@ +// Autogenerated from Pigeon (v24.2.0), do not edit directly. +// See also: https://pub.dev/packages/pigeon +@file:Suppress("UNCHECKED_CAST", "ArrayInDataClass") + +package dev.snipme.snipmeapp.bridge + +import android.util.Log +import io.flutter.plugin.common.BasicMessageChannel +import io.flutter.plugin.common.BinaryMessenger +import io.flutter.plugin.common.EventChannel +import io.flutter.plugin.common.MessageCodec +import io.flutter.plugin.common.StandardMethodCodec +import io.flutter.plugin.common.StandardMessageCodec +import java.io.ByteArrayOutputStream +import java.nio.ByteBuffer + +private fun wrapResult(result: Any?): List { + return listOf(result) +} + +private fun wrapError(exception: Throwable): List { + return if (exception is FlutterError) { + listOf( + exception.code, + exception.message, + exception.details + ) + } else { + listOf( + exception.javaClass.simpleName, + exception.toString(), + "Cause: " + exception.cause + ", Stacktrace: " + Log.getStackTraceString(exception) + ) + } +} + +/** + * Error class for passing custom error details to Flutter via a thrown PlatformException. + * @property code The error code. + * @property message The error message. + * @property details The error details. Must be a datatype supported by the api codec. + */ +class FlutterError ( + val code: String, + override val message: String? = null, + val details: Any? = null +) : Throwable() + +enum class SnippetLanguageType(val raw: Int) { + C(0), + CPP(1), + OBJECTIVE_C(2), + C_SHARP(3), + JAVA(4), + BASH(5), + PYTHON(6), + PERL(7), + RUBY(8), + SWIFT(9), + JAVASCRIPT(10), + KOTLIN(11), + COFFEESCRIPT(12), + RUST(13), + BASIC(14), + CLOJURE(15), + CSS(16), + DART(17), + ERLANG(18), + GO(19), + HASKELL(20), + LISP(21), + LLVM(22), + LUA(23), + MATLAB(24), + ML(25), + MUMPS(26), + NEMERLE(27), + PASCAL(28), + R(29), + RD(30), + SCALA(31), + SQL(32), + TEX(33), + VB(34), + VHDL(35), + TCL(36), + XQUERY(37), + YAML(38), + MARKDOWN(39), + JSON(40), + XML(41), + PROTO(42), + REGEX(43), + UNKNOWN(44); + + companion object { + fun ofRaw(raw: Int): SnippetLanguageType? { + return values().firstOrNull { it.raw == raw } + } + } +} + +enum class SnippetFilterType(val raw: Int) { + ALL(0), + MINE(1), + SHARED(2); + + companion object { + fun ofRaw(raw: Int): SnippetFilterType? { + return values().firstOrNull { it.raw == raw } + } + } +} + +enum class UserReaction(val raw: Int) { + NONE(0), + LIKE(1), + DISLIKE(2); + + companion object { + fun ofRaw(raw: Int): UserReaction? { + return values().firstOrNull { it.raw == raw } + } + } +} + +enum class ModelState(val raw: Int) { + LOADING(0), + LOADED(1), + ERROR(2); + + companion object { + fun ofRaw(raw: Int): ModelState? { + return values().firstOrNull { it.raw == raw } + } + } +} + +enum class MainModelEvent(val raw: Int) { + NONE(0), + ALERT(1), + LOGOUT(2); + + companion object { + fun ofRaw(raw: Int): MainModelEvent? { + return values().firstOrNull { it.raw == raw } + } + } +} + +enum class DetailModelEvent(val raw: Int) { + NONE(0), + SAVED(1), + DELETED(2); + + companion object { + fun ofRaw(raw: Int): DetailModelEvent? { + return values().firstOrNull { it.raw == raw } + } + } +} + +enum class LoginModelEvent(val raw: Int) { + NONE(0), + LOGGED(1); + + companion object { + fun ofRaw(raw: Int): LoginModelEvent? { + return values().firstOrNull { it.raw == raw } + } + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class Snippet ( + val uuid: String? = null, + val title: String? = null, + val code: SnippetCode? = null, + val language: SnippetLanguage? = null, + val owner: Owner? = null, + val isOwner: Boolean? = null, + val timeAgo: String? = null, + val voteResult: Long? = null, + val userReaction: UserReaction? = null, + val isPrivate: Boolean? = null, + val isLiked: Boolean? = null, + val isDisliked: Boolean? = null, + val isSaved: Boolean? = null, + val isToDelete: Boolean? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): Snippet { + val uuid = pigeonVar_list[0] as String? + val title = pigeonVar_list[1] as String? + val code = pigeonVar_list[2] as SnippetCode? + val language = pigeonVar_list[3] as SnippetLanguage? + val owner = pigeonVar_list[4] as Owner? + val isOwner = pigeonVar_list[5] as Boolean? + val timeAgo = pigeonVar_list[6] as String? + val voteResult = pigeonVar_list[7] as Long? + val userReaction = pigeonVar_list[8] as UserReaction? + val isPrivate = pigeonVar_list[9] as Boolean? + val isLiked = pigeonVar_list[10] as Boolean? + val isDisliked = pigeonVar_list[11] as Boolean? + val isSaved = pigeonVar_list[12] as Boolean? + val isToDelete = pigeonVar_list[13] as Boolean? + return Snippet(uuid, title, code, language, owner, isOwner, timeAgo, voteResult, userReaction, isPrivate, isLiked, isDisliked, isSaved, isToDelete) + } + } + fun toList(): List { + return listOf( + uuid, + title, + code, + language, + owner, + isOwner, + timeAgo, + voteResult, + userReaction, + isPrivate, + isLiked, + isDisliked, + isSaved, + isToDelete, + ) + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class SnippetCode ( + val raw: String? = null, + val tokens: List? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): SnippetCode { + val raw = pigeonVar_list[0] as String? + val tokens = pigeonVar_list[1] as List? + return SnippetCode(raw, tokens) + } + } + fun toList(): List { + return listOf( + raw, + tokens, + ) + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class SyntaxToken ( + val start: Long? = null, + val end: Long? = null, + val color: Long? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): SyntaxToken { + val start = pigeonVar_list[0] as Long? + val end = pigeonVar_list[1] as Long? + val color = pigeonVar_list[2] as Long? + return SyntaxToken(start, end, color) + } + } + fun toList(): List { + return listOf( + start, + end, + color, + ) + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class SnippetLanguage ( + val raw: String? = null, + val type: SnippetLanguageType? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): SnippetLanguage { + val raw = pigeonVar_list[0] as String? + val type = pigeonVar_list[1] as SnippetLanguageType? + return SnippetLanguage(raw, type) + } + } + fun toList(): List { + return listOf( + raw, + type, + ) + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class Owner ( + val id: Long? = null, + val login: String? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): Owner { + val id = pigeonVar_list[0] as Long? + val login = pigeonVar_list[1] as String? + return Owner(id, login) + } + } + fun toList(): List { + return listOf( + id, + login, + ) + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class SnippetFilter ( + val languages: List? = null, + val selectedLanguages: List? = null, + val scopes: List? = null, + val selectedScope: String? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): SnippetFilter { + val languages = pigeonVar_list[0] as List? + val selectedLanguages = pigeonVar_list[1] as List? + val scopes = pigeonVar_list[2] as List? + val selectedScope = pigeonVar_list[3] as String? + return SnippetFilter(languages, selectedLanguages, scopes, selectedScope) + } + } + fun toList(): List { + return listOf( + languages, + selectedLanguages, + scopes, + selectedScope, + ) + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class MainModelStateData ( + val state: ModelState? = null, + val isLoading: Boolean? = null, + val data: List? = null, + val filter: SnippetFilter? = null, + val error: String? = null, + val oldHash: Long? = null, + val newHash: Long? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): MainModelStateData { + val state = pigeonVar_list[0] as ModelState? + val isLoading = pigeonVar_list[1] as Boolean? + val data = pigeonVar_list[2] as List? + val filter = pigeonVar_list[3] as SnippetFilter? + val error = pigeonVar_list[4] as String? + val oldHash = pigeonVar_list[5] as Long? + val newHash = pigeonVar_list[6] as Long? + return MainModelStateData(state, isLoading, data, filter, error, oldHash, newHash) + } + } + fun toList(): List { + return listOf( + state, + isLoading, + data, + filter, + error, + oldHash, + newHash, + ) + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class MainModelEventData ( + val event: MainModelEvent? = null, + val message: String? = null, + val oldHash: Long? = null, + val newHash: Long? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): MainModelEventData { + val event = pigeonVar_list[0] as MainModelEvent? + val message = pigeonVar_list[1] as String? + val oldHash = pigeonVar_list[2] as Long? + val newHash = pigeonVar_list[3] as Long? + return MainModelEventData(event, message, oldHash, newHash) + } + } + fun toList(): List { + return listOf( + event, + message, + oldHash, + newHash, + ) + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class DetailModelStateData ( + val state: ModelState? = null, + val isLoading: Boolean? = null, + val data: Snippet? = null, + val error: String? = null, + val oldHash: Long? = null, + val newHash: Long? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): DetailModelStateData { + val state = pigeonVar_list[0] as ModelState? + val isLoading = pigeonVar_list[1] as Boolean? + val data = pigeonVar_list[2] as Snippet? + val error = pigeonVar_list[3] as String? + val oldHash = pigeonVar_list[4] as Long? + val newHash = pigeonVar_list[5] as Long? + return DetailModelStateData(state, isLoading, data, error, oldHash, newHash) + } + } + fun toList(): List { + return listOf( + state, + isLoading, + data, + error, + oldHash, + newHash, + ) + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class DetailModelEventData ( + val event: DetailModelEvent? = null, + val value: String? = null, + val oldHash: Long? = null, + val newHash: Long? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): DetailModelEventData { + val event = pigeonVar_list[0] as DetailModelEvent? + val value = pigeonVar_list[1] as String? + val oldHash = pigeonVar_list[2] as Long? + val newHash = pigeonVar_list[3] as Long? + return DetailModelEventData(event, value, oldHash, newHash) + } + } + fun toList(): List { + return listOf( + event, + value, + oldHash, + newHash, + ) + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class LoginModelStateData ( + val state: ModelState? = null, + val isLoading: Boolean? = null, + val oldHash: Long? = null, + val newHash: Long? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): LoginModelStateData { + val state = pigeonVar_list[0] as ModelState? + val isLoading = pigeonVar_list[1] as Boolean? + val oldHash = pigeonVar_list[2] as Long? + val newHash = pigeonVar_list[3] as Long? + return LoginModelStateData(state, isLoading, oldHash, newHash) + } + } + fun toList(): List { + return listOf( + state, + isLoading, + oldHash, + newHash, + ) + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class LoginModelEventData ( + val event: LoginModelEvent? = null, + val oldHash: Long? = null, + val newHash: Long? = null +) + { + companion object { + fun fromList(pigeonVar_list: List): LoginModelEventData { + val event = pigeonVar_list[0] as LoginModelEvent? + val oldHash = pigeonVar_list[1] as Long? + val newHash = pigeonVar_list[2] as Long? + return LoginModelEventData(event, oldHash, newHash) + } + } + fun toList(): List { + return listOf( + event, + oldHash, + newHash, + ) + } +} +private open class ModelPluginPigeonCodec : StandardMessageCodec() { + override fun readValueOfType(type: Byte, buffer: ByteBuffer): Any? { + return when (type) { + 129.toByte() -> { + return (readValue(buffer) as Long?)?.let { + SnippetLanguageType.ofRaw(it.toInt()) + } + } + 130.toByte() -> { + return (readValue(buffer) as Long?)?.let { + SnippetFilterType.ofRaw(it.toInt()) + } + } + 131.toByte() -> { + return (readValue(buffer) as Long?)?.let { + UserReaction.ofRaw(it.toInt()) + } + } + 132.toByte() -> { + return (readValue(buffer) as Long?)?.let { + ModelState.ofRaw(it.toInt()) + } + } + 133.toByte() -> { + return (readValue(buffer) as Long?)?.let { + MainModelEvent.ofRaw(it.toInt()) + } + } + 134.toByte() -> { + return (readValue(buffer) as Long?)?.let { + DetailModelEvent.ofRaw(it.toInt()) + } + } + 135.toByte() -> { + return (readValue(buffer) as Long?)?.let { + LoginModelEvent.ofRaw(it.toInt()) + } + } + 136.toByte() -> { + return (readValue(buffer) as? List)?.let { + Snippet.fromList(it) + } + } + 137.toByte() -> { + return (readValue(buffer) as? List)?.let { + SnippetCode.fromList(it) + } + } + 138.toByte() -> { + return (readValue(buffer) as? List)?.let { + SyntaxToken.fromList(it) + } + } + 139.toByte() -> { + return (readValue(buffer) as? List)?.let { + SnippetLanguage.fromList(it) + } + } + 140.toByte() -> { + return (readValue(buffer) as? List)?.let { + Owner.fromList(it) + } + } + 141.toByte() -> { + return (readValue(buffer) as? List)?.let { + SnippetFilter.fromList(it) + } + } + 142.toByte() -> { + return (readValue(buffer) as? List)?.let { + MainModelStateData.fromList(it) + } + } + 143.toByte() -> { + return (readValue(buffer) as? List)?.let { + MainModelEventData.fromList(it) + } + } + 144.toByte() -> { + return (readValue(buffer) as? List)?.let { + DetailModelStateData.fromList(it) + } + } + 145.toByte() -> { + return (readValue(buffer) as? List)?.let { + DetailModelEventData.fromList(it) + } + } + 146.toByte() -> { + return (readValue(buffer) as? List)?.let { + LoginModelStateData.fromList(it) + } + } + 147.toByte() -> { + return (readValue(buffer) as? List)?.let { + LoginModelEventData.fromList(it) + } + } + else -> super.readValueOfType(type, buffer) + } + } + override fun writeValue(stream: ByteArrayOutputStream, value: Any?) { + when (value) { + is SnippetLanguageType -> { + stream.write(129) + writeValue(stream, value.raw) + } + is SnippetFilterType -> { + stream.write(130) + writeValue(stream, value.raw) + } + is UserReaction -> { + stream.write(131) + writeValue(stream, value.raw) + } + is ModelState -> { + stream.write(132) + writeValue(stream, value.raw) + } + is MainModelEvent -> { + stream.write(133) + writeValue(stream, value.raw) + } + is DetailModelEvent -> { + stream.write(134) + writeValue(stream, value.raw) + } + is LoginModelEvent -> { + stream.write(135) + writeValue(stream, value.raw) + } + is Snippet -> { + stream.write(136) + writeValue(stream, value.toList()) + } + is SnippetCode -> { + stream.write(137) + writeValue(stream, value.toList()) + } + is SyntaxToken -> { + stream.write(138) + writeValue(stream, value.toList()) + } + is SnippetLanguage -> { + stream.write(139) + writeValue(stream, value.toList()) + } + is Owner -> { + stream.write(140) + writeValue(stream, value.toList()) + } + is SnippetFilter -> { + stream.write(141) + writeValue(stream, value.toList()) + } + is MainModelStateData -> { + stream.write(142) + writeValue(stream, value.toList()) + } + is MainModelEventData -> { + stream.write(143) + writeValue(stream, value.toList()) + } + is DetailModelStateData -> { + stream.write(144) + writeValue(stream, value.toList()) + } + is DetailModelEventData -> { + stream.write(145) + writeValue(stream, value.toList()) + } + is LoginModelStateData -> { + stream.write(146) + writeValue(stream, value.toList()) + } + is LoginModelEventData -> { + stream.write(147) + writeValue(stream, value.toList()) + } + else -> super.writeValue(stream, value) + } + } +} + +/** Generated interface from Pigeon that represents a handler of messages from Flutter. */ +interface MainModelBridge { + fun getState(): MainModelStateData + fun getEvent(): MainModelEventData + fun resetEvent() + fun initState() + fun filterLanguage(language: String, isSelected: Boolean) + fun filterScope(scope: String) + fun logOut() + + companion object { + /** The codec used by MainModelBridge. */ + val codec: MessageCodec by lazy { + ModelPluginPigeonCodec() + } + /** Sets up an instance of `MainModelBridge` to handle messages through the `binaryMessenger`. */ + @JvmOverloads + fun setUp(binaryMessenger: BinaryMessenger, api: MainModelBridge?, messageChannelSuffix: String = "") { + val separatedMessageChannelSuffix = if (messageChannelSuffix.isNotEmpty()) ".$messageChannelSuffix" else "" + val taskQueue = binaryMessenger.makeBackgroundTaskQueue() + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.MainModelBridge.getState$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + listOf(api.getState()) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.MainModelBridge.getEvent$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + listOf(api.getEvent()) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.MainModelBridge.resetEvent$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.resetEvent() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.MainModelBridge.initState$separatedMessageChannelSuffix", codec, taskQueue) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.initState() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.MainModelBridge.filterLanguage$separatedMessageChannelSuffix", codec, taskQueue) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val languageArg = args[0] as String + val isSelectedArg = args[1] as Boolean + val wrapped: List = try { + api.filterLanguage(languageArg, isSelectedArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.MainModelBridge.filterScope$separatedMessageChannelSuffix", codec, taskQueue) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val scopeArg = args[0] as String + val wrapped: List = try { + api.filterScope(scopeArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.MainModelBridge.logOut$separatedMessageChannelSuffix", codec, taskQueue) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.logOut() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } +} +/** Generated interface from Pigeon that represents a handler of messages from Flutter. */ +interface DetailModelBridge { + fun getState(): DetailModelStateData + fun getEvent(): DetailModelEventData + fun resetEvent() + fun load(uuid: String) + fun like() + fun dislike() + fun save() + fun copyToClipboard() + fun share() + fun delete() + + companion object { + /** The codec used by DetailModelBridge. */ + val codec: MessageCodec by lazy { + ModelPluginPigeonCodec() + } + /** Sets up an instance of `DetailModelBridge` to handle messages through the `binaryMessenger`. */ + @JvmOverloads + fun setUp(binaryMessenger: BinaryMessenger, api: DetailModelBridge?, messageChannelSuffix: String = "") { + val separatedMessageChannelSuffix = if (messageChannelSuffix.isNotEmpty()) ".$messageChannelSuffix" else "" + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.getState$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + listOf(api.getState()) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.getEvent$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + listOf(api.getEvent()) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.resetEvent$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.resetEvent() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.load$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val uuidArg = args[0] as String + val wrapped: List = try { + api.load(uuidArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.like$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.like() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.dislike$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.dislike() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.save$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.save() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.copyToClipboard$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.copyToClipboard() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.share$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.share() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.DetailModelBridge.delete$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.delete() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } +} +/** Generated interface from Pigeon that represents a handler of messages from Flutter. */ +interface LoginModelBridge { + fun getState(): LoginModelStateData + fun getEvent(): LoginModelEventData + fun loginOrRegister(email: String, password: String) + fun checkLoginState() + fun resetEvent() + + companion object { + /** The codec used by LoginModelBridge. */ + val codec: MessageCodec by lazy { + ModelPluginPigeonCodec() + } + /** Sets up an instance of `LoginModelBridge` to handle messages through the `binaryMessenger`. */ + @JvmOverloads + fun setUp(binaryMessenger: BinaryMessenger, api: LoginModelBridge?, messageChannelSuffix: String = "") { + val separatedMessageChannelSuffix = if (messageChannelSuffix.isNotEmpty()) ".$messageChannelSuffix" else "" + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.LoginModelBridge.getState$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + listOf(api.getState()) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.LoginModelBridge.getEvent$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + listOf(api.getEvent()) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.LoginModelBridge.loginOrRegister$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val emailArg = args[0] as String + val passwordArg = args[1] as String + val wrapped: List = try { + api.loginOrRegister(emailArg, passwordArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.LoginModelBridge.checkLoginState$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.checkLoginState() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.flutter_module.LoginModelBridge.resetEvent$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.resetEvent() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } +} diff --git a/flutter_module/bridge/main_model.dart b/flutter_module/channel/contract.dart similarity index 90% rename from flutter_module/bridge/main_model.dart rename to flutter_module/channel/contract.dart index 94515c7..a3fd0fd 100644 --- a/flutter_module/bridge/main_model.dart +++ b/flutter_module/channel/contract.dart @@ -1,7 +1,15 @@ import 'package:pigeon/pigeon.dart'; +@ConfigurePigeon( + PigeonOptions( + dartOut: 'lib/generated/data_model.g.dart', + // Generate in parent android module + kotlinOut: + '../app/src/main/java/dev/snipme/snipmeapp/channel/DataModel.g.kt', + kotlinOptions: KotlinOptions(package: 'dev.snipme.snipmeapp.channel'), + ), +) // General - class Snippet { String? uuid; String? title; @@ -97,11 +105,7 @@ class SnippetFilter { String? selectedScope; } -enum UserReaction { - none, - like, - dislike -} +enum UserReaction { none, like, dislike } // State @@ -216,4 +220,4 @@ abstract class LoginModelBridge { void checkLoginState(); void resetEvent(); -} \ No newline at end of file +} diff --git a/flutter_module/lib/model/main_model.dart b/flutter_module/lib/bridge/generated.g.dart similarity index 99% rename from flutter_module/lib/model/main_model.dart rename to flutter_module/lib/bridge/generated.g.dart index 587929e..50b7613 100644 --- a/flutter_module/lib/model/main_model.dart +++ b/flutter_module/lib/bridge/generated.g.dart @@ -1,4 +1,4 @@ -// Autogenerated from Pigeon (v22.5.0), do not edit directly. +// Autogenerated from Pigeon (v24.2.0), do not edit directly. // See also: https://pub.dev/packages/pigeon // ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators, omit_local_variable_types, unused_shown_name, unnecessary_import, no_leading_underscores_for_local_identifiers diff --git a/flutter_module/lib/generated/data_model.g.dart b/flutter_module/lib/generated/data_model.g.dart new file mode 100644 index 0000000..50b7613 --- /dev/null +++ b/flutter_module/lib/generated/data_model.g.dart @@ -0,0 +1,1246 @@ +// Autogenerated from Pigeon (v24.2.0), do not edit directly. +// See also: https://pub.dev/packages/pigeon +// ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators, omit_local_variable_types, unused_shown_name, unnecessary_import, no_leading_underscores_for_local_identifiers + +import 'dart:async'; +import 'dart:typed_data' show Float64List, Int32List, Int64List, Uint8List; + +import 'package:flutter/foundation.dart' show ReadBuffer, WriteBuffer; +import 'package:flutter/services.dart'; + +PlatformException _createConnectionError(String channelName) { + return PlatformException( + code: 'channel-error', + message: 'Unable to establish connection on channel: "$channelName".', + ); +} + +enum SnippetLanguageType { + c, + cpp, + objectiveC, + cSharp, + java, + bash, + python, + perl, + ruby, + swift, + javascript, + kotlin, + coffeescript, + rust, + basic, + clojure, + css, + dart, + erlang, + go, + haskell, + lisp, + llvm, + lua, + matlab, + ml, + mumps, + nemerle, + pascal, + r, + rd, + scala, + sql, + tex, + vb, + vhdl, + tcl, + xquery, + yaml, + markdown, + json, + xml, + proto, + regex, + unknown, +} + +enum SnippetFilterType { + all, + mine, + shared, +} + +enum UserReaction { + none, + like, + dislike, +} + +enum ModelState { + loading, + loaded, + error, +} + +enum MainModelEvent { + none, + alert, + logout, +} + +enum DetailModelEvent { + none, + saved, + deleted, +} + +enum LoginModelEvent { + none, + logged, +} + +class Snippet { + Snippet({ + this.uuid, + this.title, + this.code, + this.language, + this.owner, + this.isOwner, + this.timeAgo, + this.voteResult, + this.userReaction, + this.isPrivate, + this.isLiked, + this.isDisliked, + this.isSaved, + this.isToDelete, + }); + + String? uuid; + + String? title; + + SnippetCode? code; + + SnippetLanguage? language; + + Owner? owner; + + bool? isOwner; + + String? timeAgo; + + int? voteResult; + + UserReaction? userReaction; + + bool? isPrivate; + + bool? isLiked; + + bool? isDisliked; + + bool? isSaved; + + bool? isToDelete; + + Object encode() { + return [ + uuid, + title, + code, + language, + owner, + isOwner, + timeAgo, + voteResult, + userReaction, + isPrivate, + isLiked, + isDisliked, + isSaved, + isToDelete, + ]; + } + + static Snippet decode(Object result) { + result as List; + return Snippet( + uuid: result[0] as String?, + title: result[1] as String?, + code: result[2] as SnippetCode?, + language: result[3] as SnippetLanguage?, + owner: result[4] as Owner?, + isOwner: result[5] as bool?, + timeAgo: result[6] as String?, + voteResult: result[7] as int?, + userReaction: result[8] as UserReaction?, + isPrivate: result[9] as bool?, + isLiked: result[10] as bool?, + isDisliked: result[11] as bool?, + isSaved: result[12] as bool?, + isToDelete: result[13] as bool?, + ); + } +} + +class SnippetCode { + SnippetCode({ + this.raw, + this.tokens, + }); + + String? raw; + + List? tokens; + + Object encode() { + return [ + raw, + tokens, + ]; + } + + static SnippetCode decode(Object result) { + result as List; + return SnippetCode( + raw: result[0] as String?, + tokens: (result[1] as List?)?.cast(), + ); + } +} + +class SyntaxToken { + SyntaxToken({ + this.start, + this.end, + this.color, + }); + + int? start; + + int? end; + + int? color; + + Object encode() { + return [ + start, + end, + color, + ]; + } + + static SyntaxToken decode(Object result) { + result as List; + return SyntaxToken( + start: result[0] as int?, + end: result[1] as int?, + color: result[2] as int?, + ); + } +} + +class SnippetLanguage { + SnippetLanguage({ + this.raw, + this.type, + }); + + String? raw; + + SnippetLanguageType? type; + + Object encode() { + return [ + raw, + type, + ]; + } + + static SnippetLanguage decode(Object result) { + result as List; + return SnippetLanguage( + raw: result[0] as String?, + type: result[1] as SnippetLanguageType?, + ); + } +} + +class Owner { + Owner({ + this.id, + this.login, + }); + + int? id; + + String? login; + + Object encode() { + return [ + id, + login, + ]; + } + + static Owner decode(Object result) { + result as List; + return Owner( + id: result[0] as int?, + login: result[1] as String?, + ); + } +} + +class SnippetFilter { + SnippetFilter({ + this.languages, + this.selectedLanguages, + this.scopes, + this.selectedScope, + }); + + List? languages; + + List? selectedLanguages; + + List? scopes; + + String? selectedScope; + + Object encode() { + return [ + languages, + selectedLanguages, + scopes, + selectedScope, + ]; + } + + static SnippetFilter decode(Object result) { + result as List; + return SnippetFilter( + languages: (result[0] as List?)?.cast(), + selectedLanguages: (result[1] as List?)?.cast(), + scopes: (result[2] as List?)?.cast(), + selectedScope: result[3] as String?, + ); + } +} + +class MainModelStateData { + MainModelStateData({ + this.state, + this.isLoading, + this.data, + this.filter, + this.error, + this.oldHash, + this.newHash, + }); + + ModelState? state; + + bool? isLoading; + + List? data; + + SnippetFilter? filter; + + String? error; + + int? oldHash; + + int? newHash; + + Object encode() { + return [ + state, + isLoading, + data, + filter, + error, + oldHash, + newHash, + ]; + } + + static MainModelStateData decode(Object result) { + result as List; + return MainModelStateData( + state: result[0] as ModelState?, + isLoading: result[1] as bool?, + data: (result[2] as List?)?.cast(), + filter: result[3] as SnippetFilter?, + error: result[4] as String?, + oldHash: result[5] as int?, + newHash: result[6] as int?, + ); + } +} + +class MainModelEventData { + MainModelEventData({ + this.event, + this.message, + this.oldHash, + this.newHash, + }); + + MainModelEvent? event; + + String? message; + + int? oldHash; + + int? newHash; + + Object encode() { + return [ + event, + message, + oldHash, + newHash, + ]; + } + + static MainModelEventData decode(Object result) { + result as List; + return MainModelEventData( + event: result[0] as MainModelEvent?, + message: result[1] as String?, + oldHash: result[2] as int?, + newHash: result[3] as int?, + ); + } +} + +class DetailModelStateData { + DetailModelStateData({ + this.state, + this.isLoading, + this.data, + this.error, + this.oldHash, + this.newHash, + }); + + ModelState? state; + + bool? isLoading; + + Snippet? data; + + String? error; + + int? oldHash; + + int? newHash; + + Object encode() { + return [ + state, + isLoading, + data, + error, + oldHash, + newHash, + ]; + } + + static DetailModelStateData decode(Object result) { + result as List; + return DetailModelStateData( + state: result[0] as ModelState?, + isLoading: result[1] as bool?, + data: result[2] as Snippet?, + error: result[3] as String?, + oldHash: result[4] as int?, + newHash: result[5] as int?, + ); + } +} + +class DetailModelEventData { + DetailModelEventData({ + this.event, + this.value, + this.oldHash, + this.newHash, + }); + + DetailModelEvent? event; + + String? value; + + int? oldHash; + + int? newHash; + + Object encode() { + return [ + event, + value, + oldHash, + newHash, + ]; + } + + static DetailModelEventData decode(Object result) { + result as List; + return DetailModelEventData( + event: result[0] as DetailModelEvent?, + value: result[1] as String?, + oldHash: result[2] as int?, + newHash: result[3] as int?, + ); + } +} + +class LoginModelStateData { + LoginModelStateData({ + this.state, + this.isLoading, + this.oldHash, + this.newHash, + }); + + ModelState? state; + + bool? isLoading; + + int? oldHash; + + int? newHash; + + Object encode() { + return [ + state, + isLoading, + oldHash, + newHash, + ]; + } + + static LoginModelStateData decode(Object result) { + result as List; + return LoginModelStateData( + state: result[0] as ModelState?, + isLoading: result[1] as bool?, + oldHash: result[2] as int?, + newHash: result[3] as int?, + ); + } +} + +class LoginModelEventData { + LoginModelEventData({ + this.event, + this.oldHash, + this.newHash, + }); + + LoginModelEvent? event; + + int? oldHash; + + int? newHash; + + Object encode() { + return [ + event, + oldHash, + newHash, + ]; + } + + static LoginModelEventData decode(Object result) { + result as List; + return LoginModelEventData( + event: result[0] as LoginModelEvent?, + oldHash: result[1] as int?, + newHash: result[2] as int?, + ); + } +} + + +class _PigeonCodec extends StandardMessageCodec { + const _PigeonCodec(); + @override + void writeValue(WriteBuffer buffer, Object? value) { + if (value is int) { + buffer.putUint8(4); + buffer.putInt64(value); + } else if (value is SnippetLanguageType) { + buffer.putUint8(129); + writeValue(buffer, value.index); + } else if (value is SnippetFilterType) { + buffer.putUint8(130); + writeValue(buffer, value.index); + } else if (value is UserReaction) { + buffer.putUint8(131); + writeValue(buffer, value.index); + } else if (value is ModelState) { + buffer.putUint8(132); + writeValue(buffer, value.index); + } else if (value is MainModelEvent) { + buffer.putUint8(133); + writeValue(buffer, value.index); + } else if (value is DetailModelEvent) { + buffer.putUint8(134); + writeValue(buffer, value.index); + } else if (value is LoginModelEvent) { + buffer.putUint8(135); + writeValue(buffer, value.index); + } else if (value is Snippet) { + buffer.putUint8(136); + writeValue(buffer, value.encode()); + } else if (value is SnippetCode) { + buffer.putUint8(137); + writeValue(buffer, value.encode()); + } else if (value is SyntaxToken) { + buffer.putUint8(138); + writeValue(buffer, value.encode()); + } else if (value is SnippetLanguage) { + buffer.putUint8(139); + writeValue(buffer, value.encode()); + } else if (value is Owner) { + buffer.putUint8(140); + writeValue(buffer, value.encode()); + } else if (value is SnippetFilter) { + buffer.putUint8(141); + writeValue(buffer, value.encode()); + } else if (value is MainModelStateData) { + buffer.putUint8(142); + writeValue(buffer, value.encode()); + } else if (value is MainModelEventData) { + buffer.putUint8(143); + writeValue(buffer, value.encode()); + } else if (value is DetailModelStateData) { + buffer.putUint8(144); + writeValue(buffer, value.encode()); + } else if (value is DetailModelEventData) { + buffer.putUint8(145); + writeValue(buffer, value.encode()); + } else if (value is LoginModelStateData) { + buffer.putUint8(146); + writeValue(buffer, value.encode()); + } else if (value is LoginModelEventData) { + buffer.putUint8(147); + writeValue(buffer, value.encode()); + } else { + super.writeValue(buffer, value); + } + } + + @override + Object? readValueOfType(int type, ReadBuffer buffer) { + switch (type) { + case 129: + final int? value = readValue(buffer) as int?; + return value == null ? null : SnippetLanguageType.values[value]; + case 130: + final int? value = readValue(buffer) as int?; + return value == null ? null : SnippetFilterType.values[value]; + case 131: + final int? value = readValue(buffer) as int?; + return value == null ? null : UserReaction.values[value]; + case 132: + final int? value = readValue(buffer) as int?; + return value == null ? null : ModelState.values[value]; + case 133: + final int? value = readValue(buffer) as int?; + return value == null ? null : MainModelEvent.values[value]; + case 134: + final int? value = readValue(buffer) as int?; + return value == null ? null : DetailModelEvent.values[value]; + case 135: + final int? value = readValue(buffer) as int?; + return value == null ? null : LoginModelEvent.values[value]; + case 136: + return Snippet.decode(readValue(buffer)!); + case 137: + return SnippetCode.decode(readValue(buffer)!); + case 138: + return SyntaxToken.decode(readValue(buffer)!); + case 139: + return SnippetLanguage.decode(readValue(buffer)!); + case 140: + return Owner.decode(readValue(buffer)!); + case 141: + return SnippetFilter.decode(readValue(buffer)!); + case 142: + return MainModelStateData.decode(readValue(buffer)!); + case 143: + return MainModelEventData.decode(readValue(buffer)!); + case 144: + return DetailModelStateData.decode(readValue(buffer)!); + case 145: + return DetailModelEventData.decode(readValue(buffer)!); + case 146: + return LoginModelStateData.decode(readValue(buffer)!); + case 147: + return LoginModelEventData.decode(readValue(buffer)!); + default: + return super.readValueOfType(type, buffer); + } + } +} + +class MainModelBridge { + /// Constructor for [MainModelBridge]. The [binaryMessenger] named argument is + /// available for dependency injection. If it is left null, the default + /// BinaryMessenger will be used which routes to the host platform. + MainModelBridge({BinaryMessenger? binaryMessenger, String messageChannelSuffix = ''}) + : pigeonVar_binaryMessenger = binaryMessenger, + pigeonVar_messageChannelSuffix = messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; + final BinaryMessenger? pigeonVar_binaryMessenger; + + static const MessageCodec pigeonChannelCodec = _PigeonCodec(); + + final String pigeonVar_messageChannelSuffix; + + Future getState() async { + final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_module.MainModelBridge.getState$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send(null) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as MainModelStateData?)!; + } + } + + Future getEvent() async { + final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_module.MainModelBridge.getEvent$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send(null) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as MainModelEventData?)!; + } + } + + Future resetEvent() async { + final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_module.MainModelBridge.resetEvent$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send(null) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } + + Future initState() async { + final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_module.MainModelBridge.initState$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send(null) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } + + Future filterLanguage(String language, bool isSelected) async { + final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_module.MainModelBridge.filterLanguage$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([language, isSelected]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } + + Future filterScope(String scope) async { + final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_module.MainModelBridge.filterScope$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([scope]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } + + Future logOut() async { + final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_module.MainModelBridge.logOut$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send(null) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } +} + +class DetailModelBridge { + /// Constructor for [DetailModelBridge]. The [binaryMessenger] named argument is + /// available for dependency injection. If it is left null, the default + /// BinaryMessenger will be used which routes to the host platform. + DetailModelBridge({BinaryMessenger? binaryMessenger, String messageChannelSuffix = ''}) + : pigeonVar_binaryMessenger = binaryMessenger, + pigeonVar_messageChannelSuffix = messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; + final BinaryMessenger? pigeonVar_binaryMessenger; + + static const MessageCodec pigeonChannelCodec = _PigeonCodec(); + + final String pigeonVar_messageChannelSuffix; + + Future getState() async { + final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_module.DetailModelBridge.getState$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send(null) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as DetailModelStateData?)!; + } + } + + Future getEvent() async { + final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_module.DetailModelBridge.getEvent$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send(null) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as DetailModelEventData?)!; + } + } + + Future resetEvent() async { + final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_module.DetailModelBridge.resetEvent$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send(null) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } + + Future load(String uuid) async { + final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_module.DetailModelBridge.load$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([uuid]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } + + Future like() async { + final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_module.DetailModelBridge.like$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send(null) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } + + Future dislike() async { + final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_module.DetailModelBridge.dislike$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send(null) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } + + Future save() async { + final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_module.DetailModelBridge.save$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send(null) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } + + Future copyToClipboard() async { + final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_module.DetailModelBridge.copyToClipboard$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send(null) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } + + Future share() async { + final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_module.DetailModelBridge.share$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send(null) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } + + Future delete() async { + final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_module.DetailModelBridge.delete$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send(null) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } +} + +class LoginModelBridge { + /// Constructor for [LoginModelBridge]. The [binaryMessenger] named argument is + /// available for dependency injection. If it is left null, the default + /// BinaryMessenger will be used which routes to the host platform. + LoginModelBridge({BinaryMessenger? binaryMessenger, String messageChannelSuffix = ''}) + : pigeonVar_binaryMessenger = binaryMessenger, + pigeonVar_messageChannelSuffix = messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; + final BinaryMessenger? pigeonVar_binaryMessenger; + + static const MessageCodec pigeonChannelCodec = _PigeonCodec(); + + final String pigeonVar_messageChannelSuffix; + + Future getState() async { + final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_module.LoginModelBridge.getState$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send(null) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as LoginModelStateData?)!; + } + } + + Future getEvent() async { + final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_module.LoginModelBridge.getEvent$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send(null) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as LoginModelEventData?)!; + } + } + + Future loginOrRegister(String email, String password) async { + final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_module.LoginModelBridge.loginOrRegister$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([email, password]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } + + Future checkLoginState() async { + final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_module.LoginModelBridge.checkLoginState$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send(null) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } + + Future resetEvent() async { + final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_module.LoginModelBridge.resetEvent$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send(null) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } +} diff --git a/flutter_module/lib/main.dart b/flutter_module/lib/main.dart index 17e9fc7..f15a561 100644 --- a/flutter_module/lib/main.dart +++ b/flutter_module/lib/main.dart @@ -1,5 +1,5 @@ import 'package:flutter/material.dart'; -import 'package:flutter_module/model/main_model.dart'; +import 'package:flutter_module/generated/data_model.g.dart'; import 'package:flutter_module/presentation/navigation/details/details_navigator.dart'; import 'package:flutter_module/presentation/navigation/login/login_navigator.dart'; import 'package:flutter_module/presentation/screens//main_screen.dart'; diff --git a/flutter_module/lib/presentation/providers/details_page_state_provider.dart b/flutter_module/lib/presentation/providers/details_page_state_provider.dart index 4c46edf..73e8323 100644 --- a/flutter_module/lib/presentation/providers/details_page_state_provider.dart +++ b/flutter_module/lib/presentation/providers/details_page_state_provider.dart @@ -1,4 +1,4 @@ -import 'package:flutter_module/model/main_model.dart'; +import 'package:flutter_module/generated/data_model.g.dart'; import 'package:flutter_module/presentation/providers/model_bridge_provider.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; diff --git a/flutter_module/lib/presentation/providers/login_page_state_provider.dart b/flutter_module/lib/presentation/providers/login_page_state_provider.dart index 35aa7b2..137333e 100644 --- a/flutter_module/lib/presentation/providers/login_page_state_provider.dart +++ b/flutter_module/lib/presentation/providers/login_page_state_provider.dart @@ -1,4 +1,4 @@ -import 'package:flutter_module/model/main_model.dart'; +import 'package:flutter_module/generated/data_model.g.dart'; import 'package:flutter_module/presentation/providers/model_bridge_provider.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; diff --git a/flutter_module/lib/presentation/providers/main_page_state_provider.dart b/flutter_module/lib/presentation/providers/main_page_state_provider.dart index a7c5dcc..2dc6d98 100644 --- a/flutter_module/lib/presentation/providers/main_page_state_provider.dart +++ b/flutter_module/lib/presentation/providers/main_page_state_provider.dart @@ -1,4 +1,4 @@ -import 'package:flutter_module/model/main_model.dart'; +import 'package:flutter_module/generated/data_model.g.dart'; import 'package:flutter_module/presentation/providers/model_bridge_provider.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; diff --git a/flutter_module/lib/presentation/providers/model_bridge_provider.dart b/flutter_module/lib/presentation/providers/model_bridge_provider.dart index 19a4fa0..e48f258 100644 --- a/flutter_module/lib/presentation/providers/model_bridge_provider.dart +++ b/flutter_module/lib/presentation/providers/model_bridge_provider.dart @@ -1,5 +1,5 @@ import 'package:hooks_riverpod/hooks_riverpod.dart'; -import 'package:flutter_module/model/main_model.dart'; +import 'package:flutter_module/generated/data_model.g.dart'; final loginBridge = Provider((ref) => LoginModelBridge()); final mainBridge = Provider((ref) => MainModelBridge()); diff --git a/flutter_module/lib/presentation/screens/details_screen.dart b/flutter_module/lib/presentation/screens/details_screen.dart index 9ef6271..e9625c7 100644 --- a/flutter_module/lib/presentation/screens/details_screen.dart +++ b/flutter_module/lib/presentation/screens/details_screen.dart @@ -1,9 +1,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; -import 'package:flutter_module/model/main_model.dart'; +import 'package:flutter_module/generated/data_model.g.dart'; import 'package:flutter_module/presentation/navigation/details/details_navigator.dart'; import 'package:flutter_module/presentation/providers/details_page_state_provider.dart'; -import 'package:flutter_module/presentation/providers/model_bridge_provider.dart'; import 'package:flutter_module/presentation/screens/named_screen.dart'; import 'package:flutter_module/presentation/styles/color_styles.dart'; import 'package:flutter_module/presentation/styles/dimens.dart'; @@ -13,9 +12,7 @@ import 'package:flutter_module/presentation/widgets/no_overscroll_single_child_s import 'package:flutter_module/presentation/widgets/snippet_action_bar.dart'; import 'package:flutter_module/presentation/widgets/snippet_details_bar.dart'; import 'package:flutter_module/presentation/widgets/view_state_wrapper.dart'; -import 'package:flutter_module/utils/extensions/state_extensions.dart'; import 'package:flutter_module/utils/hooks/use_navigator.dart'; -import 'package:flutter_module/utils/hooks/use_observable_state_hook.dart'; import 'package:go_router/go_router.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; diff --git a/flutter_module/lib/presentation/screens/login_screen.dart b/flutter_module/lib/presentation/screens/login_screen.dart index a38f884..e1fd63f 100644 --- a/flutter_module/lib/presentation/screens/login_screen.dart +++ b/flutter_module/lib/presentation/screens/login_screen.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:flutter_module/generated/assets.dart'; -import 'package:flutter_module/model/main_model.dart'; +import 'package:flutter_module/generated/data_model.g.dart'; import 'package:flutter_module/presentation/navigation/login/login_navigator.dart'; import 'package:flutter_module/presentation/providers/login_page_state_provider.dart'; import 'package:flutter_module/presentation/screens/named_screen.dart'; diff --git a/flutter_module/lib/presentation/screens/main_screen.dart b/flutter_module/lib/presentation/screens/main_screen.dart index 8e39a04..356bd20 100644 --- a/flutter_module/lib/presentation/screens/main_screen.dart +++ b/flutter_module/lib/presentation/screens/main_screen.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:flutter_module/generated/assets.dart'; -import 'package:flutter_module/model/main_model.dart'; +import 'package:flutter_module/generated/data_model.g.dart'; import 'package:flutter_module/presentation/navigation/details/details_navigator.dart'; import 'package:flutter_module/presentation/navigation/login/login_navigator.dart'; import 'package:flutter_module/presentation/providers/main_page_state_provider.dart'; @@ -14,9 +14,7 @@ import 'package:flutter_module/presentation/widgets/filter_dropdown.dart'; import 'package:flutter_module/presentation/widgets/filter_list_view.dart'; import 'package:flutter_module/presentation/widgets/snippet_list_item.dart'; import 'package:flutter_module/presentation/widgets/view_state_wrapper.dart'; -import 'package:flutter_module/utils/extensions/state_extensions.dart'; import 'package:flutter_module/utils/hooks/use_navigator.dart'; -import 'package:flutter_module/utils/hooks/use_observable_state_hook.dart'; import 'package:go_router_plus/go_router_plus.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; diff --git a/flutter_module/lib/presentation/widgets/code_text_view.dart b/flutter_module/lib/presentation/widgets/code_text_view.dart index bc514d5..90ad6b9 100644 --- a/flutter_module/lib/presentation/widgets/code_text_view.dart +++ b/flutter_module/lib/presentation/widgets/code_text_view.dart @@ -1,7 +1,7 @@ import 'dart:convert'; import 'package:flutter/material.dart'; -import 'package:flutter_module/model/main_model.dart'; +import 'package:flutter_module/generated/data_model.g.dart'; import 'package:flutter_module/presentation/styles/text_styles.dart'; import 'package:flutter_module/utils/extensions/collection_extensions.dart'; import 'package:flutter_module/utils/extensions/text_extensions.dart'; diff --git a/flutter_module/lib/presentation/widgets/snippet_action_bar.dart b/flutter_module/lib/presentation/widgets/snippet_action_bar.dart index 7f4d0eb..9c0e0cd 100644 --- a/flutter_module/lib/presentation/widgets/snippet_action_bar.dart +++ b/flutter_module/lib/presentation/widgets/snippet_action_bar.dart @@ -1,5 +1,5 @@ import 'package:flutter/material.dart'; -import 'package:flutter_module/model/main_model.dart'; +import 'package:flutter_module/generated/data_model.g.dart'; import 'package:flutter_module/presentation/styles/dimens.dart'; import 'package:flutter_module/presentation/styles/surface_styles.dart'; import 'package:flutter_module/presentation/widgets/state_icon.dart'; diff --git a/flutter_module/lib/presentation/widgets/snippet_details_bar.dart b/flutter_module/lib/presentation/widgets/snippet_details_bar.dart index d3ec723..9f35679 100644 --- a/flutter_module/lib/presentation/widgets/snippet_details_bar.dart +++ b/flutter_module/lib/presentation/widgets/snippet_details_bar.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_module/generated/assets.dart'; -import 'package:flutter_module/model/main_model.dart'; +import 'package:flutter_module/generated/data_model.g.dart'; import 'package:flutter_module/presentation/styles/dimens.dart'; import 'package:flutter_module/presentation/styles/surface_styles.dart'; import 'package:flutter_module/presentation/styles/text_styles.dart'; diff --git a/flutter_module/lib/presentation/widgets/snippet_list_item.dart b/flutter_module/lib/presentation/widgets/snippet_list_item.dart index 34a707d..2150250 100644 --- a/flutter_module/lib/presentation/widgets/snippet_list_item.dart +++ b/flutter_module/lib/presentation/widgets/snippet_list_item.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; -import 'package:flutter_module/model/main_model.dart'; +import 'package:flutter_module/generated/data_model.g.dart'; import 'package:flutter_module/presentation/styles/color_styles.dart'; import 'package:flutter_module/presentation/styles/dimens.dart'; import 'package:flutter_module/presentation/styles/surface_styles.dart'; diff --git a/flutter_module/lib/utils/extensions/collection_extensions.dart b/flutter_module/lib/utils/extensions/collection_extensions.dart index f385eb8..432a8ef 100644 --- a/flutter_module/lib/utils/extensions/collection_extensions.dart +++ b/flutter_module/lib/utils/extensions/collection_extensions.dart @@ -1,7 +1,7 @@ import 'package:equatable/equatable.dart'; import 'package:flutter/material.dart'; import 'package:flutter/painting.dart'; -import 'package:flutter_module/model/main_model.dart'; +import 'package:flutter_module/generated/data_model.g.dart'; import 'package:flutter_module/presentation/styles/text_styles.dart'; import 'package:flutter_module/utils/extensions/text_extensions.dart'; import 'package:collection/collection.dart'; diff --git a/flutter_module/lib/utils/extensions/state_extensions.dart b/flutter_module/lib/utils/extensions/state_extensions.dart index e4960f9..1bb8163 100644 --- a/flutter_module/lib/utils/extensions/state_extensions.dart +++ b/flutter_module/lib/utils/extensions/state_extensions.dart @@ -1,4 +1,4 @@ -import 'package:flutter_module/model/main_model.dart'; +import 'package:flutter_module/generated/data_model.g.dart'; extension MainModelStateDataExtension on MainModelStateData { bool equals(Object other) { diff --git a/flutter_module/lib/utils/hooks/use_observable_state_hook.dart b/flutter_module/lib/utils/hooks/use_observable_state_hook.dart deleted file mode 100644 index 19c4054..0000000 --- a/flutter_module/lib/utils/hooks/use_observable_state_hook.dart +++ /dev/null @@ -1,33 +0,0 @@ -import 'dart:async'; - -import 'package:flutter/foundation.dart'; -import 'package:flutter_hooks/flutter_hooks.dart'; -import 'package:flutter_module/utils/hooks/use_same_state.dart'; - -typedef StateEqualsListener = bool Function(Object, Object); - -ValueNotifier useObservableState( - T initialData, - Future Function() getSource, - StateEqualsListener stateEquals, [ - List cancelKeys = const [], - List refreshKeys = const [], -]) { - final state = useSameState(initialData); - - final timer = useMemoized( - () => Timer.periodic(const Duration(milliseconds: 500), (_) async { - final T newData = await getSource(); - if (!stateEquals(state.value as Object, newData as Object)) { - state.value = newData; - } - }), - refreshKeys, - ); - - useEffect(() { - return () => timer.cancel(); - }, cancelKeys); - - return state; -} diff --git a/flutter_module/lib/utils/mock/mocks.dart b/flutter_module/lib/utils/mock/mocks.dart index 4ea496c..7da7de7 100644 --- a/flutter_module/lib/utils/mock/mocks.dart +++ b/flutter_module/lib/utils/mock/mocks.dart @@ -1,5 +1,5 @@ import 'package:flutter/material.dart'; -import 'package:flutter_module/model/main_model.dart'; +import 'package:flutter_module/generated/data_model.g.dart'; class Mocks { static final snippet = Snippet( diff --git a/flutter_module/pubspec.lock b/flutter_module/pubspec.lock index e4bc463..acb7de5 100644 --- a/flutter_module/pubspec.lock +++ b/flutter_module/pubspec.lock @@ -5,18 +5,18 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: "0b2f2bd91ba804e53a61d757b986f89f1f9eaed5b11e4b2f5a2468d86d6c9fc7" + sha256: dc27559385e905ad30838356c5f5d574014ba39872d732111cd07ac0beff4c57 url: "https://pub.dev" source: hosted - version: "67.0.0" + version: "80.0.0" analyzer: - dependency: transitive + dependency: "direct main" description: name: analyzer - sha256: "37577842a27e4338429a1cbc32679d508836510b056f1eedf0c8d20e39c1383d" + sha256: "192d1c5b944e7e53b24b5586db760db934b177d4147c42fbca8c8c5f1eb8d11e" url: "https://pub.dev" source: hosted - version: "6.4.1" + version: "7.3.0" args: dependency: transitive description: @@ -45,10 +45,10 @@ packages: dependency: transitive description: name: build - sha256: "80184af8b6cb3e5c1c4ec6d8544d27711700bc3e6d2efad04238c7b5290889f0" + sha256: cef23f1eda9b57566c81e2133d196f8e3df48f244b317368d65c5943d91148f0 url: "https://pub.dev" source: hosted - version: "2.4.1" + version: "2.4.2" build_config: dependency: transitive description: @@ -69,26 +69,26 @@ packages: dependency: transitive description: name: build_resolvers - sha256: "339086358431fa15d7eca8b6a36e5d783728cf025e559b834f4609a1fcfb7b0a" + sha256: b9e4fda21d846e192628e7a4f6deda6888c36b5b69ba02ff291a01fd529140f0 url: "https://pub.dev" source: hosted - version: "2.4.2" + version: "2.4.4" build_runner: dependency: "direct dev" description: name: build_runner - sha256: "644dc98a0f179b872f612d3eb627924b578897c629788e858157fa5e704ca0c7" + sha256: "74691599a5bc750dc96a6b4bfd48f7d9d66453eab04c7f4063134800d6a5c573" url: "https://pub.dev" source: hosted - version: "2.4.11" + version: "2.4.14" build_runner_core: dependency: transitive description: name: build_runner_core - sha256: e3c79f69a64bdfcd8a776a3c28db4eb6e3fb5356d013ae5eb2e52007706d5dbe + sha256: "22e3aa1c80e0ada3722fe5b63fd43d9c8990759d0a2cf489c8c5d7b2bdebc021" url: "https://pub.dev" source: hosted - version: "7.3.1" + version: "8.0.0" built_collection: dependency: transitive description: @@ -121,14 +121,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.3" - clock: - dependency: transitive - description: - name: clock - sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf - url: "https://pub.dev" - source: hosted - version: "1.1.1" code_builder: dependency: transitive description: @@ -138,7 +130,7 @@ packages: source: hosted version: "4.10.0" collection: - dependency: "direct main" + dependency: transitive description: name: collection sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf @@ -173,10 +165,10 @@ packages: dependency: transitive description: name: dart_style - sha256: "99e066ce75c89d6b29903d788a7bb9369cf754f7b24bf70bf4b6d6d6b26853b9" + sha256: "27eb0ae77836989a3bc541ce55595e8ceee0992807f14511552a898ddd0d88ac" url: "https://pub.dev" source: hosted - version: "2.3.6" + version: "3.0.1" equatable: dependency: "direct main" description: @@ -185,14 +177,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.5" - fake_async: - dependency: transitive - description: - name: fake_async - sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" - url: "https://pub.dev" - source: hosted - version: "1.3.1" file: dependency: transitive description: @@ -210,7 +194,7 @@ packages: source: hosted version: "1.1.1" flutter: - dependency: "direct main" + dependency: transitive description: flutter source: sdk version: "0.0.0" @@ -238,11 +222,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.6.1" - flutter_test: - dependency: "direct dev" - description: flutter - source: sdk - version: "0.0.0" flutter_web_plugins: dependency: transitive description: flutter @@ -336,30 +315,6 @@ packages: url: "https://pub.dev" source: hosted version: "4.9.0" - leak_tracker: - dependency: transitive - description: - name: leak_tracker - sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06" - url: "https://pub.dev" - source: hosted - version: "10.0.7" - leak_tracker_flutter_testing: - dependency: transitive - description: - name: leak_tracker_flutter_testing - sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379" - url: "https://pub.dev" - source: hosted - version: "3.0.8" - leak_tracker_testing: - dependency: transitive - description: - name: leak_tracker_testing - sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" - url: "https://pub.dev" - source: hosted - version: "3.0.1" lints: dependency: transitive description: @@ -444,10 +399,10 @@ packages: dependency: "direct dev" description: name: pigeon - sha256: bb5505b81fc9c718911fe7188c88a67566c37497a66f4d4abcfe29fb08614ea3 + sha256: da22fa111e14a27dc2060f9891fd645649a76b108450f26eb9e72e1cdb2890b7 url: "https://pub.dev" source: hosted - version: "22.6.0" + version: "24.2.0" pool: dependency: transitive description: @@ -480,14 +435,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.6.1" - riverpod_annotation: - dependency: "direct main" - description: - name: riverpod_annotation - sha256: e14b0bf45b71326654e2705d462f21b958f987087be850afd60578fcd502d1b8 - url: "https://pub.dev" - source: hosted - version: "2.6.1" shelf: dependency: transitive description: @@ -601,26 +548,26 @@ packages: dependency: "direct main" description: name: test - sha256: "713a8789d62f3233c46b4a90b174737b2c04cb6ae4500f2aa8b1be8f03f5e67f" + sha256: "301b213cd241ca982e9ba50266bd3f5bd1ea33f1455554c5abb85d1be0e2d87e" url: "https://pub.dev" source: hosted - version: "1.25.8" + version: "1.25.15" test_api: dependency: transitive description: name: test_api - sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c" + sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd url: "https://pub.dev" source: hosted - version: "0.7.3" + version: "0.7.4" test_core: dependency: transitive description: name: test_core - sha256: "12391302411737c176b0b5d6491f466b0dd56d4763e347b6714efbaa74d7953d" + sha256: "84d17c3486c8dfdbe5e12a50c8ae176d15e2a771b96909a9442b40173649ccaa" url: "https://pub.dev" source: hosted - version: "0.6.5" + version: "0.6.8" timing: dependency: transitive description: @@ -702,5 +649,5 @@ packages: source: hosted version: "3.1.2" sdks: - dart: ">=3.4.0 <4.0.0" - flutter: ">=3.18.0-18.0.pre.54" + dart: ">=3.6.0 <4.0.0" + flutter: ">=3.3.0" diff --git a/flutter_module/pubspec.yaml b/flutter_module/pubspec.yaml index 7bd8e58..4557956 100644 --- a/flutter_module/pubspec.yaml +++ b/flutter_module/pubspec.yaml @@ -1,20 +1,5 @@ name: flutter_module description: A new flutter module project. - -# The following defines the version and build number for your application. -# A version number is three numbers separated by dots, like 1.2.43 -# followed by an optional build number separated by a +. -# Both the version and the builder number may be overridden in flutter -# build by specifying --build-name and --build-number, respectively. -# In Android, build-name is used as versionName while build-number used as versionCode. -# Read more about Android versioning at https://developer.android.com/studio/publish/versioning -# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. -# Read more about iOS versioning at -# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -# -# This version is used _only_ for the Runner app, which is used if you just do -# a `flutter run` or a `flutter make-host-app-editable`. It has no impact -# on any other native host app that you embed your Flutter project into. version: 1.0.0+1 environment: @@ -26,30 +11,22 @@ scripts: get: "fvm flutter pub get" gen: "fvm flutter pub run build_runner build --delete-conflicting-outputs" run: "fvm flutter run" + pigeon: "fvm dart run pigeon --input=channel/contract.dart" dependencies: - flutter: - sdk: flutter equatable: ^2.0.5 flutter_hooks: ^0.20.5 test: ^1.21.4 go_router: ^6.5.9 go_router_plus: ^4.1.1 validators: ^3.0.0 - - collection: any logger: ^2.4.0 flutter_riverpod: ^2.6.1 hooks_riverpod: ^2.6.1 dev_dependencies: - flutter_test: - sdk: flutter build_runner: ^2.2.1 flutter_lints: ^4.0.0 - pigeon: ^22.5.0 - -# For information on the generic Dart part of this file, see the -# following screens: https://dart.dev/tools/pub/pubspec + pigeon: ^24.2.0 flutter_assets_generator: named_with_parent: false # Don't add folder to icons's name @@ -62,9 +39,6 @@ flutter: pluginClass: PigeonPlugin ios: pluginClass: PigeonPlugin - # The following line ensures that the Material Icons font is - # included with your application, so that you can use the icons in - # the material Icons class. uses-material-design: true assets: - assets/images/illustrations/app_logo.png @@ -76,40 +50,6 @@ flutter: fonts: - asset: fonts/Kanit-Regular.ttf - - # An image asset can refer to one or more resolution-specific "variants", see - # https://flutter.dev/assets-and-images/#resolution-aware. - - # For details regarding adding assets from package dependencies, see - # https://flutter.dev/assets-and-images/#from-packages - - # To add Flutter specific custom fonts to your application, add a fonts - # section here, in this "flutter" section. Each entry in this list should - # have a "family" key with the font family name, and a "fonts" key with a - # list giving the asset and other descriptors for the font. For - # example: - # fonts: - # - family: Schyler - # fonts: - # - asset: fonts/Schyler-Regular.ttf - # - asset: fonts/Schyler-Italic.ttf - # style: italic - # - family: Trajan Pro - # fonts: - # - asset: fonts/TrajanPro.ttf - # - asset: fonts/TrajanPro_Bold.ttf - # weight: 700 - # - # For details regarding fonts from package dependencies, - # see https://flutter.dev/custom-fonts/#from-packages - - - # This section identifies your Flutter project as a module meant for - # embedding in a native host app. These identifiers should _not_ ordinarily - # be changed after generation - they are used to ensure that the tooling can - # maintain consistency when adding or modifying assets and plugins. - # They also do not have any bearing on your native host application's - # identifiers, which may be completely independent or the same as these. module: androidX: true androidPackage: dev.snipme.flutter_module From 742a5aae9a58617a5d708aa255a65df8d82dd7fd Mon Sep 17 00:00:00 2001 From: tmaxxdd Date: Tue, 18 Feb 2025 18:31:59 +0100 Subject: [PATCH 2/2] Corrected types --- .../bridge/detail/DetailModelPlugin.kt | 57 +++++++------- .../bridge/login/LoginModelPlugin.kt | 47 +++++++----- .../snipmeapp/bridge/main/MainModelPlugin.kt | 76 ++++++++++--------- 3 files changed, 98 insertions(+), 82 deletions(-) diff --git a/app/src/main/java/dev/snipme/snipmeapp/bridge/detail/DetailModelPlugin.kt b/app/src/main/java/dev/snipme/snipmeapp/bridge/detail/DetailModelPlugin.kt index 7c37358..c32e405 100644 --- a/app/src/main/java/dev/snipme/snipmeapp/bridge/detail/DetailModelPlugin.kt +++ b/app/src/main/java/dev/snipme/snipmeapp/bridge/detail/DetailModelPlugin.kt @@ -4,22 +4,27 @@ import io.flutter.plugin.common.BinaryMessenger import org.koin.core.component.inject import dev.snipme.snipmeapp.bridge.ModelPlugin import dev.snipme.snipmeapp.bridge.toModelData +import dev.snipme.snipmeapp.channel.DetailModelBridge as ChannelDetailModelBridge +import dev.snipme.snipmeapp.channel.ModelState as ChannelModelState +import dev.snipme.snipmeapp.channel.DetailModelStateData as ChannelDetailModelStateData +import dev.snipme.snipmeapp.channel.DetailModelEvent as ChannelDetailModelEvent +import dev.snipme.snipmeapp.channel.DetailModelEventData as ChannelDetailModelEventData -class DetailModelPlugin : ModelPlugin(), Bridge.DetailModelBridge { +class DetailModelPlugin : ModelPlugin(), ChannelDetailModelBridge { private val model: DetailModel by inject() private var oldEvent: DetailEvent? = null private var oldState: DetailViewState? = null - override fun getState(): Bridge.DetailModelStateData = getData(model.state.value) + override fun getState(): ChannelDetailModelStateData = getData(model.state.value) - override fun getEvent(): Bridge.DetailModelEventData = getEvent(model.event.value) + override fun getEvent(): ChannelDetailModelEventData = getEvent(model.event.value) override fun resetEvent() { model.event.value = Idle } - override fun onSetup(messenger: BinaryMessenger, bridge: Bridge.DetailModelBridge?) { - Bridge.DetailModelBridge.setUp(messenger, bridge) + override fun onSetup(messenger: BinaryMessenger, bridge: ChannelDetailModelBridge?) { + ChannelDetailModelBridge.setUp(messenger, bridge) } override fun load(uuid: String) { @@ -50,40 +55,40 @@ class DetailModelPlugin : ModelPlugin(), Bridge.Detail model.delete() } - private fun getData(viewState: DetailViewState): Bridge.DetailModelStateData { - return Bridge.DetailModelStateData().apply { - state = viewState.toModelState() - isLoading = viewState is Loading - data = (viewState as? Loaded)?.snippet?.toModelData() - oldHash = oldState?.hashCode()?.toLong() - newHash = viewState.hashCode().toLong() - }.also { + private fun getData(viewState: DetailViewState): ChannelDetailModelStateData { + return ChannelDetailModelStateData( + state = viewState.toModelState(), + isLoading = viewState is Loading, + data = (viewState as? Loaded)?.snippet?.toModelData(), + oldHash = oldState?.hashCode()?.toLong(), + newHash = viewState.hashCode().toLong(), + ).also { oldState = viewState } } - private fun getEvent(detailEvent: DetailEvent): Bridge.DetailModelEventData { - return Bridge.DetailModelEventData().apply { - event = detailEvent.toModelEvent() - value = (detailEvent as? Saved)?.snippetId.toString() - oldHash = oldEvent?.hashCode()?.toLong() - newHash = detailEvent.hashCode().toLong() - }.also { + private fun getEvent(detailEvent: DetailEvent): ChannelDetailModelEventData { + return ChannelDetailModelEventData( + event = detailEvent.toModelEvent(), + value = (detailEvent as? Saved)?.snippetId.toString(), + oldHash = oldEvent?.hashCode()?.toLong(), + newHash = detailEvent.hashCode().toLong(), + ).also { oldEvent = detailEvent } } private fun DetailViewState.toModelState() = when (this) { - Loading -> Bridge.ModelState.LOADING - is Loaded -> Bridge.ModelState.LOADED - else -> Bridge.ModelState.ERROR + Loading -> ChannelModelState.LOADING + is Loaded -> ChannelModelState.LOADED + else -> ChannelModelState.ERROR } private fun DetailEvent.toModelEvent() = when (this) { - is Saved -> Bridge.DetailModelEvent.SAVED - is Deleted -> Bridge.DetailModelEvent.DELETED - else -> Bridge.DetailModelEvent.NONE + is Saved -> ChannelDetailModelEvent.SAVED + is Deleted -> ChannelDetailModelEvent.DELETED + else -> ChannelDetailModelEvent.NONE } } \ No newline at end of file diff --git a/app/src/main/java/dev/snipme/snipmeapp/bridge/login/LoginModelPlugin.kt b/app/src/main/java/dev/snipme/snipmeapp/bridge/login/LoginModelPlugin.kt index 7229fab..e9565f8 100644 --- a/app/src/main/java/dev/snipme/snipmeapp/bridge/login/LoginModelPlugin.kt +++ b/app/src/main/java/dev/snipme/snipmeapp/bridge/login/LoginModelPlugin.kt @@ -3,22 +3,27 @@ package dev.snipme.snipmeapp.bridge.login import io.flutter.plugin.common.BinaryMessenger import org.koin.core.component.inject import dev.snipme.snipmeapp.bridge.ModelPlugin +import dev.snipme.snipmeapp.channel.LoginModelBridge as ChannelLoginModelBridge +import dev.snipme.snipmeapp.channel.ModelState as ChannelModelState +import dev.snipme.snipmeapp.channel.LoginModelStateData as ChannelLoginModelStateData +import dev.snipme.snipmeapp.channel.LoginModelEvent as ChannelLoginModelEvent +import dev.snipme.snipmeapp.channel.LoginModelEventData as ChannelLoginModelEventData -class LoginModelPlugin : ModelPlugin(), Bridge.LoginModelBridge { +class LoginModelPlugin : ModelPlugin(), ChannelLoginModelBridge { private var oldEvent: LoginEvent? = null private var oldState: LoginState? = null private val model: LoginModel by inject() - override fun getState(): Bridge.LoginModelStateData = getModelState(model.state.value) + override fun getState(): ChannelLoginModelStateData = getModelState(model.state.value) - override fun getEvent(): Bridge.LoginModelEventData = getModelEvent(model.event.value) + override fun getEvent(): ChannelLoginModelEventData = getModelEvent(model.event.value) override fun resetEvent() { model.event.value = Idle } - override fun onSetup(messenger: BinaryMessenger, bridge: Bridge.LoginModelBridge?) { - Bridge.LoginModelBridge.setUp(messenger, bridge) + override fun onSetup(messenger: BinaryMessenger, bridge: ChannelLoginModelBridge?) { + ChannelLoginModelBridge.setUp(messenger, bridge) } override fun checkLoginState() { @@ -29,35 +34,35 @@ class LoginModelPlugin : ModelPlugin(), Bridge.LoginMod model.loginOrRegister(email, password) } - private fun getModelEvent(loginEvent: LoginEvent): Bridge.LoginModelEventData { - return Bridge.LoginModelEventData().apply { - event = loginEvent.toModelLoginEvent() - oldHash = oldEvent?.hashCode()?.toLong() ?: 0 - newHash = loginEvent.hashCode().toLong() - }.also { + private fun getModelEvent(loginEvent: LoginEvent): ChannelLoginModelEventData { + return ChannelLoginModelEventData( + event = loginEvent.toModelLoginEvent(), + oldHash = oldEvent?.hashCode()?.toLong() ?: 0, + newHash = loginEvent.hashCode().toLong(), + ).also { oldEvent = loginEvent } } - private fun getModelState(loginState: LoginState): Bridge.LoginModelStateData { - return Bridge.LoginModelStateData().apply { - state = loginState.toModelLoginState() - oldHash = oldState?.hashCode()?.toLong() ?: 0 - newHash = loginState.hashCode().toLong() - }.also { + private fun getModelState(loginState: LoginState): ChannelLoginModelStateData { + return ChannelLoginModelStateData( + state = loginState.toModelLoginState(), + oldHash = oldState?.hashCode()?.toLong() ?: 0, + newHash = loginState.hashCode().toLong(), + ).also { oldState = loginState } } private fun LoginState.toModelLoginState() = when (this) { - Loaded -> Bridge.ModelState.LOADED - else -> Bridge.ModelState.LOADING + Loaded -> ChannelModelState.LOADED + else -> ChannelModelState.LOADING } private fun LoginEvent.toModelLoginEvent() = when (this) { - Logged -> Bridge.LoginModelEvent.LOGGED - else -> Bridge.LoginModelEvent.NONE + Logged -> ChannelLoginModelEvent.LOGGED + else -> ChannelLoginModelEvent.NONE } } \ No newline at end of file diff --git a/app/src/main/java/dev/snipme/snipmeapp/bridge/main/MainModelPlugin.kt b/app/src/main/java/dev/snipme/snipmeapp/bridge/main/MainModelPlugin.kt index 1cdd07b..a30c9e6 100644 --- a/app/src/main/java/dev/snipme/snipmeapp/bridge/main/MainModelPlugin.kt +++ b/app/src/main/java/dev/snipme/snipmeapp/bridge/main/MainModelPlugin.kt @@ -6,22 +6,29 @@ import dev.snipme.snipmeapp.bridge.ModelPlugin import dev.snipme.snipmeapp.bridge.toModelData import dev.snipme.snipmeapp.domain.snippets.Snippet import dev.snipme.snipmeapp.domain.snippets.SnippetFilters +import dev.snipme.snipmeapp.channel.MainModelBridge as ChannelMainModelBridge +import dev.snipme.snipmeapp.channel.MainModelStateData as ChannelMainModelStateData +import dev.snipme.snipmeapp.channel.MainModelEventData as ChannelMainModelEventData +import dev.snipme.snipmeapp.channel.MainModelEvent as ChannelMainModelEvent +import dev.snipme.snipmeapp.channel.ModelState as ChannelModelState +import dev.snipme.snipmeapp.channel.SnippetFilter as ChannelSnippetFilter -class MainModelPlugin : ModelPlugin(), Bridge.MainModelBridge { + +class MainModelPlugin : ModelPlugin(), ChannelMainModelBridge { private val model: MainModel by inject() private var oldEvent: MainEvent? = null private var oldState: MainViewState? = null override fun onSetup( messenger: BinaryMessenger, - bridge: Bridge.MainModelBridge? + bridge: ChannelMainModelBridge? ) { - Bridge.MainModelBridge.setUp(messenger, bridge) + ChannelMainModelBridge.setUp(messenger, bridge) } - override fun getState(): Bridge.MainModelStateData = getState(model.state.value) + override fun getState(): ChannelMainModelStateData = getState(model.state.value) - override fun getEvent(): Bridge.MainModelEventData = getEvent(model.event.value) + override fun getEvent(): ChannelMainModelEventData = getEvent(model.event.value) override fun resetEvent() { model.event.value = Startup @@ -43,53 +50,52 @@ class MainModelPlugin : ModelPlugin(), Bridge.MainModelB model.logOut() } - private fun getState(viewState: MainViewState): Bridge.MainModelStateData { - return Bridge.MainModelStateData().apply { - state = viewState.toModelState() - isLoading = viewState is Loading - data = (viewState as? Loaded)?.snippets?.toModelData() - filter = (viewState as? Loaded)?.filters?.toModelFilter() - oldHash = oldState?.hashCode()?.toLong() - newHash = viewState.hashCode().toLong() - }.also { + private fun getState(viewState: MainViewState): ChannelMainModelStateData { + return ChannelMainModelStateData( + state = viewState.toModelState(), + isLoading = viewState is Loading, + data = (viewState as? Loaded)?.snippets?.toModelData(), + filter = (viewState as? Loaded)?.filters?.toModelFilter(), + oldHash = oldState?.hashCode()?.toLong(), + newHash = viewState.hashCode().toLong(), + ).also { oldState = viewState } } - private fun getEvent(viewEvent: MainEvent): Bridge.MainModelEventData { - return Bridge.MainModelEventData().apply { - event = viewEvent.toModelEvent() - message = (viewEvent as? Alert)?.message - oldHash = oldEvent?.hashCode()?.toLong() - newHash = viewEvent.hashCode().toLong() - }.also { + private fun getEvent(viewEvent: MainEvent): ChannelMainModelEventData { + return ChannelMainModelEventData( + event = viewEvent.toModelEvent(), + message = (viewEvent as? Alert)?.message, + oldHash = oldEvent?.hashCode()?.toLong(), + newHash = viewEvent.hashCode().toLong(), + ).also { oldEvent = viewEvent } } private fun MainEvent.toModelEvent() = when (this) { - is Alert -> Bridge.MainModelEvent.ALERT - is Logout -> Bridge.MainModelEvent.LOGOUT - else -> Bridge.MainModelEvent.NONE + is Alert -> ChannelMainModelEvent.ALERT + is Logout -> ChannelMainModelEvent.LOGOUT + else -> ChannelMainModelEvent.NONE } private fun MainViewState.toModelState() = when (this) { - Loading -> Bridge.ModelState.LOADING - is Loaded -> Bridge.ModelState.LOADED - is Error -> Bridge.ModelState.ERROR + Loading -> ChannelModelState.LOADING + is Loaded -> ChannelModelState.LOADED + is Error -> ChannelModelState.ERROR } private fun List.toModelData() = map { it.toModelData() } - private fun SnippetFilters.toModelFilter(): Bridge.SnippetFilter { - val it = this - return Bridge.SnippetFilter().apply { - languages = it.languages - selectedLanguages = it.selectedLanguages - scopes = it.scopes - selectedScope = it.selectedScope - } + private fun SnippetFilters.toModelFilter(): ChannelSnippetFilter { + return ChannelSnippetFilter( + languages = languages, + selectedLanguages = selectedLanguages, + scopes = scopes, + selectedScope = selectedScope, + ) } }