You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Merge branch 'v6' into feature/grouped-channels-endpoint
Brings PR #6426 (Predefined Filters) into the branch alongside the existing
Grouped Channels work. Both implementations coexist as sibling variants of
`QueryChannelsIdentifier` (Standard | Predefined | Grouped); registries,
repositories, state, and the Compose ChannelListViewModel/Factory absorb both
surfaces additively.
Key resolution decisions:
- `QueryChannelsSpec.cids` stays as a body `var` (pre-v6 baseline) to preserve
binary compatibility with the data-class-generated members. `setCids`
mutates the var in place.
- `QueryChannelsMutableState` keeps the simpler `(identifier, scope, ...)`
constructor; initial filter/sort and the spec shape are derived inside the
state from the identifier, so `StateRegistry` is just a registry-cache lookup.
- `QueryChannelsLogic.fetchChannelsFromCache` adopts v6's identifier-keyed
signature returning `CachedQueryChannels`; the Grouped offline path
(`loadOfflineGroupedChannels`) goes through the same signature and unwraps
`.channels`.
- `@JvmOverloads` dropped on the Compose Factory's Predefined and Grouped
constructors because their synthesized `(ChatClient, String)` overloads
clash — see task #23 for the proper fix.
Verification: builds clean across client/state/offline/compose/ui-components,
apiCheck passes, all unit tests on touched modules pass, detekt clean except
for three intentional TODO-marker comments left for follow-up.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: stream-chat-android-client/api/stream-chat-android-client.api
+56-9Lines changed: 56 additions & 9 deletions
Original file line number
Diff line number
Diff line change
@@ -489,25 +489,45 @@ public class io/getstream/chat/android/client/api/models/QueryChannelRequest : i
489
489
}
490
490
491
491
public final class io/getstream/chat/android/client/api/models/QueryChannelsRequest : io/getstream/chat/android/client/api/models/ChannelRequest {
492
+
public fun <init> (Lio/getstream/chat/android/models/FilterObject;I)V
493
+
public fun <init> (Lio/getstream/chat/android/models/FilterObject;II)V
494
+
public fun <init> (Lio/getstream/chat/android/models/FilterObject;IILio/getstream/chat/android/models/querysort/QuerySorter;)V
495
+
public fun <init> (Lio/getstream/chat/android/models/FilterObject;IILio/getstream/chat/android/models/querysort/QuerySorter;Ljava/lang/Integer;)V
492
496
public fun <init> (Lio/getstream/chat/android/models/FilterObject;IILio/getstream/chat/android/models/querysort/QuerySorter;Ljava/lang/Integer;Ljava/lang/Integer;)V
493
-
public synthetic fun <init> (Lio/getstream/chat/android/models/FilterObject;IILio/getstream/chat/android/models/querysort/QuerySorter;Ljava/lang/Integer;Ljava/lang/Integer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
497
+
public fun <init> (Lio/getstream/chat/android/models/FilterObject;IILio/getstream/chat/android/models/querysort/QuerySorter;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;)V
498
+
public fun <init> (Lio/getstream/chat/android/models/FilterObject;IILio/getstream/chat/android/models/querysort/QuerySorter;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;Ljava/util/Map;)V
499
+
public fun <init> (Lio/getstream/chat/android/models/FilterObject;IILio/getstream/chat/android/models/querysort/QuerySorter;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;Ljava/util/Map;Ljava/util/Map;)V
500
+
public synthetic fun <init> (Lio/getstream/chat/android/models/FilterObject;IILio/getstream/chat/android/models/querysort/QuerySorter;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;Ljava/util/Map;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
501
+
public fun <init> (Ljava/lang/String;I)V
502
+
public fun <init> (Ljava/lang/String;ILjava/util/Map;)V
503
+
public fun <init> (Ljava/lang/String;ILjava/util/Map;Ljava/util/Map;)V
504
+
public fun <init> (Ljava/lang/String;ILjava/util/Map;Ljava/util/Map;I)V
505
+
public fun <init> (Ljava/lang/String;ILjava/util/Map;Ljava/util/Map;ILjava/lang/Integer;)V
506
+
public fun <init> (Ljava/lang/String;ILjava/util/Map;Ljava/util/Map;ILjava/lang/Integer;Ljava/lang/Integer;)V
507
+
public synthetic fun <init> (Ljava/lang/String;ILjava/util/Map;Ljava/util/Map;ILjava/lang/Integer;Ljava/lang/Integer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
494
508
public final fun component1 ()Lio/getstream/chat/android/models/FilterObject;
495
509
public final fun component2 ()I
496
510
public final fun component3 ()I
497
511
public final fun component4 ()Lio/getstream/chat/android/models/querysort/QuerySorter;
498
512
public final fun component5 ()Ljava/lang/Integer;
499
513
public final fun component6 ()Ljava/lang/Integer;
500
-
public final fun copy (Lio/getstream/chat/android/models/FilterObject;IILio/getstream/chat/android/models/querysort/QuerySorter;Ljava/lang/Integer;Ljava/lang/Integer;)Lio/getstream/chat/android/client/api/models/QueryChannelsRequest;
501
-
public static synthetic fun copy$default (Lio/getstream/chat/android/client/api/models/QueryChannelsRequest;Lio/getstream/chat/android/models/FilterObject;IILio/getstream/chat/android/models/querysort/QuerySorter;Ljava/lang/Integer;Ljava/lang/Integer;ILjava/lang/Object;)Lio/getstream/chat/android/client/api/models/QueryChannelsRequest;
514
+
public final fun component7 ()Ljava/lang/String;
515
+
public final fun component8 ()Ljava/util/Map;
516
+
public final fun component9 ()Ljava/util/Map;
517
+
public final fun copy (Lio/getstream/chat/android/models/FilterObject;IILio/getstream/chat/android/models/querysort/QuerySorter;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;Ljava/util/Map;Ljava/util/Map;)Lio/getstream/chat/android/client/api/models/QueryChannelsRequest;
518
+
public static synthetic fun copy$default (Lio/getstream/chat/android/client/api/models/QueryChannelsRequest;Lio/getstream/chat/android/models/FilterObject;IILio/getstream/chat/android/models/querysort/QuerySorter;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;Ljava/util/Map;Ljava/util/Map;ILjava/lang/Object;)Lio/getstream/chat/android/client/api/models/QueryChannelsRequest;
502
519
public fun equals (Ljava/lang/Object;)Z
503
520
public final fun getFilter ()Lio/getstream/chat/android/models/FilterObject;
521
+
public final fun getFilterValues ()Ljava/util/Map;
504
522
public final fun getLimit ()I
505
523
public final fun getMemberLimit ()Ljava/lang/Integer;
506
524
public final fun getMessageLimit ()Ljava/lang/Integer;
507
525
public final fun getOffset ()I
526
+
public final fun getPredefinedFilter ()Ljava/lang/String;
508
527
public fun getPresence ()Z
509
528
public final fun getQuerySort ()Lio/getstream/chat/android/models/querysort/QuerySorter;
510
529
public final fun getSort ()Ljava/util/List;
530
+
public final fun getSortValues ()Ljava/util/Map;
511
531
public fun getState ()Z
512
532
public fun getWatch ()Z
513
533
public fun hashCode ()I
@@ -2833,6 +2853,21 @@ public final class io/getstream/chat/android/client/internal/state/plugin/QueryC
2833
2853
public fun toString ()Ljava/lang/String;
2834
2854
}
2835
2855
2856
+
public final class io/getstream/chat/android/client/internal/state/plugin/QueryChannelsIdentifier$Predefined : io/getstream/chat/android/client/internal/state/plugin/QueryChannelsIdentifier {
2857
+
public fun <init> (Ljava/lang/String;Ljava/util/Map;Ljava/util/Map;)V
2858
+
public final fun component1 ()Ljava/lang/String;
2859
+
public final fun component2 ()Ljava/util/Map;
2860
+
public final fun component3 ()Ljava/util/Map;
2861
+
public final fun copy (Ljava/lang/String;Ljava/util/Map;Ljava/util/Map;)Lio/getstream/chat/android/client/internal/state/plugin/QueryChannelsIdentifier$Predefined;
2862
+
public static synthetic fun copy$default (Lio/getstream/chat/android/client/internal/state/plugin/QueryChannelsIdentifier$Predefined;Ljava/lang/String;Ljava/util/Map;Ljava/util/Map;ILjava/lang/Object;)Lio/getstream/chat/android/client/internal/state/plugin/QueryChannelsIdentifier$Predefined;
2863
+
public fun equals (Ljava/lang/Object;)Z
2864
+
public final fun getFilterValues ()Ljava/util/Map;
2865
+
public final fun getName ()Ljava/lang/String;
2866
+
public final fun getSortValues ()Ljava/util/Map;
2867
+
public fun hashCode ()I
2868
+
public fun toString ()Ljava/lang/String;
2869
+
}
2870
+
2836
2871
public final class io/getstream/chat/android/client/internal/state/plugin/QueryChannelsIdentifier$Standard : io/getstream/chat/android/client/internal/state/plugin/QueryChannelsIdentifier {
2837
2872
public fun <init> (Lio/getstream/chat/android/models/FilterObject;Lio/getstream/chat/android/models/querysort/QuerySorter;)V
2838
2873
public final fun component1 ()Lio/getstream/chat/android/models/FilterObject;
@@ -3090,8 +3125,12 @@ public abstract interface class io/getstream/chat/android/client/persistance/rep
3090
3125
public abstract interface class io/getstream/chat/android/client/persistance/repository/QueryChannelsRepository {
3091
3126
public abstract fun clear (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
3092
3127
public abstract fun insertQueryChannels (Lio/getstream/chat/android/client/query/QueryChannelsSpec;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
3093
-
public abstract fun selectBy (Lio/getstream/chat/android/models/FilterObject;Lio/getstream/chat/android/models/querysort/QuerySorter;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
3094
-
public abstract fun selectBy (Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
3128
+
public fun selectBy (Lio/getstream/chat/android/models/FilterObject;Lio/getstream/chat/android/models/querysort/QuerySorter;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
3129
+
public fun selectBy (Ljava/lang/String;Ljava/util/Map;Ljava/util/Map;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
3130
+
public fun selectBy (Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
3131
+
public static synthetic fun selectBy$suspendImpl (Lio/getstream/chat/android/client/persistance/repository/QueryChannelsRepository;Lio/getstream/chat/android/models/FilterObject;Lio/getstream/chat/android/models/querysort/QuerySorter;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
3132
+
public static synthetic fun selectBy$suspendImpl (Lio/getstream/chat/android/client/persistance/repository/QueryChannelsRepository;Ljava/lang/String;Ljava/util/Map;Ljava/util/Map;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
3133
+
public static synthetic fun selectBy$suspendImpl (Lio/getstream/chat/android/client/persistance/repository/QueryChannelsRepository;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
3095
3134
}
3096
3135
3097
3136
public abstract interface class io/getstream/chat/android/client/persistance/repository/ReactionRepository {
@@ -3391,6 +3430,8 @@ public abstract interface class io/getstream/chat/android/client/plugin/listener
3391
3430
public static synthetic fun onQueryChannelsRequest$suspendImpl (Lio/getstream/chat/android/client/plugin/listeners/QueryChannelsListener;Lio/getstream/chat/android/client/api/models/QueryChannelsRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
3392
3431
public fun onQueryChannelsResult (Lio/getstream/result/Result;Lio/getstream/chat/android/client/api/models/QueryChannelsRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
3393
3432
public static synthetic fun onQueryChannelsResult$suspendImpl (Lio/getstream/chat/android/client/plugin/listeners/QueryChannelsListener;Lio/getstream/result/Result;Lio/getstream/chat/android/client/api/models/QueryChannelsRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
3433
+
public fun onQueryChannelsResultWithPredefinedFilter (Lio/getstream/result/Result;Lio/getstream/chat/android/client/api/models/QueryChannelsRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
3434
+
public static synthetic fun onQueryChannelsResultWithPredefinedFilter$suspendImpl (Lio/getstream/chat/android/client/plugin/listeners/QueryChannelsListener;Lio/getstream/result/Result;Lio/getstream/chat/android/client/api/models/QueryChannelsRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
3394
3435
}
3395
3436
3396
3437
public abstract interface class io/getstream/chat/android/client/plugin/listeners/QueryGroupedChannelsListener {
@@ -3508,19 +3549,25 @@ public final class io/getstream/chat/android/client/query/CreateChannelParams {
3508
3549
3509
3550
public final class io/getstream/chat/android/client/query/QueryChannelsSpec {
3510
3551
public fun <init> (Lio/getstream/chat/android/models/FilterObject;Lio/getstream/chat/android/models/querysort/QuerySorter;)V
3511
-
public fun <init> (Lio/getstream/chat/android/models/FilterObject;Lio/getstream/chat/android/models/querysort/QuerySorter;Ljava/lang/String;)V
3512
-
public synthetic fun <init> (Lio/getstream/chat/android/models/FilterObject;Lio/getstream/chat/android/models/querysort/QuerySorter;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
3552
+
public fun <init> (Lio/getstream/chat/android/models/FilterObject;Lio/getstream/chat/android/models/querysort/QuerySorter;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljava/util/Map;)V
3553
+
public synthetic fun <init> (Lio/getstream/chat/android/models/FilterObject;Lio/getstream/chat/android/models/querysort/QuerySorter;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
3513
3554
public final fun component1 ()Lio/getstream/chat/android/models/FilterObject;
3514
3555
public final fun component2 ()Lio/getstream/chat/android/models/querysort/QuerySorter;
3515
3556
public final fun component3 ()Ljava/lang/String;
3557
+
public final fun component4 ()Ljava/lang/String;
3558
+
public final fun component5 ()Ljava/util/Map;
3559
+
public final fun component6 ()Ljava/util/Map;
3516
3560
public final fun copy (Lio/getstream/chat/android/models/FilterObject;Lio/getstream/chat/android/models/querysort/QuerySorter;)Lio/getstream/chat/android/client/query/QueryChannelsSpec;
3517
-
public final fun copy (Lio/getstream/chat/android/models/FilterObject;Lio/getstream/chat/android/models/querysort/QuerySorter;Ljava/lang/String;)Lio/getstream/chat/android/client/query/QueryChannelsSpec;
3561
+
public final fun copy (Lio/getstream/chat/android/models/FilterObject;Lio/getstream/chat/android/models/querysort/QuerySorter;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljava/util/Map;)Lio/getstream/chat/android/client/query/QueryChannelsSpec;
3518
3562
public static synthetic fun copy$default (Lio/getstream/chat/android/client/query/QueryChannelsSpec;Lio/getstream/chat/android/models/FilterObject;Lio/getstream/chat/android/models/querysort/QuerySorter;ILjava/lang/Object;)Lio/getstream/chat/android/client/query/QueryChannelsSpec;
3519
-
public static synthetic fun copy$default (Lio/getstream/chat/android/client/query/QueryChannelsSpec;Lio/getstream/chat/android/models/FilterObject;Lio/getstream/chat/android/models/querysort/QuerySorter;Ljava/lang/String;ILjava/lang/Object;)Lio/getstream/chat/android/client/query/QueryChannelsSpec;
3563
+
public static synthetic fun copy$default (Lio/getstream/chat/android/client/query/QueryChannelsSpec;Lio/getstream/chat/android/models/FilterObject;Lio/getstream/chat/android/models/querysort/QuerySorter;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljava/util/Map;ILjava/lang/Object;)Lio/getstream/chat/android/client/query/QueryChannelsSpec;
3520
3564
public fun equals (Ljava/lang/Object;)Z
3521
3565
public final fun getCids ()Ljava/util/Set;
3522
3566
public final fun getFilter ()Lio/getstream/chat/android/models/FilterObject;
3523
3567
public final fun getGroupKey ()Ljava/lang/String;
3568
+
public final fun getPredefinedFilterName ()Ljava/lang/String;
3569
+
public final fun getPredefinedFilterValues ()Ljava/util/Map;
3570
+
public final fun getPredefinedSortValues ()Ljava/util/Map;
3524
3571
public final fun getQuerySort ()Lio/getstream/chat/android/models/querysort/QuerySorter;
Copy file name to clipboardExpand all lines: stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api/internal/DistinctChatApiEnabler.kt
0 commit comments