Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -661,7 +661,17 @@ public fun randomQueryChannelsSpec(
filter: FilterObject = NeutralFilterObject,
sort: QuerySorter<Channel> = QuerySortByField(),
cids: Set<String> = emptySet(),
): QueryChannelsSpec = QueryChannelsSpec(filter, sort).apply { this.cids = cids }
predefinedFilterName: String? = null,
predefinedFilterValues: Map<String, Any>? = null,
predefinedSortValues: Map<String, Any>? = null,
): QueryChannelsSpec = QueryChannelsSpec(
filter = filter,
querySort = sort,
cids = cids,
predefinedFilterName = predefinedFilterName,
predefinedFilterValues = predefinedFilterValues,
predefinedSortValues = predefinedSortValues,
)

public fun randomNotificationRemovedFromChannelEvent(
cid: String = randomCID(),
Expand Down
72 changes: 68 additions & 4 deletions stream-chat-android-client/api/stream-chat-android-client.api
Original file line number Diff line number Diff line change
Expand Up @@ -484,25 +484,45 @@ public class io/getstream/chat/android/client/api/models/QueryChannelRequest : i
}

public final class io/getstream/chat/android/client/api/models/QueryChannelsRequest : io/getstream/chat/android/client/api/models/ChannelRequest {
public fun <init> (Lio/getstream/chat/android/models/FilterObject;I)V
public fun <init> (Lio/getstream/chat/android/models/FilterObject;II)V
public fun <init> (Lio/getstream/chat/android/models/FilterObject;IILio/getstream/chat/android/models/querysort/QuerySorter;)V
public fun <init> (Lio/getstream/chat/android/models/FilterObject;IILio/getstream/chat/android/models/querysort/QuerySorter;Ljava/lang/Integer;)V
public fun <init> (Lio/getstream/chat/android/models/FilterObject;IILio/getstream/chat/android/models/querysort/QuerySorter;Ljava/lang/Integer;Ljava/lang/Integer;)V
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
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
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
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
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
public fun <init> (Ljava/lang/String;I)V
public fun <init> (Ljava/lang/String;ILjava/util/Map;)V
public fun <init> (Ljava/lang/String;ILjava/util/Map;Ljava/util/Map;)V
public fun <init> (Ljava/lang/String;ILjava/util/Map;Ljava/util/Map;I)V
public fun <init> (Ljava/lang/String;ILjava/util/Map;Ljava/util/Map;ILjava/lang/Integer;)V
public fun <init> (Ljava/lang/String;ILjava/util/Map;Ljava/util/Map;ILjava/lang/Integer;Ljava/lang/Integer;)V
public synthetic fun <init> (Ljava/lang/String;ILjava/util/Map;Ljava/util/Map;ILjava/lang/Integer;Ljava/lang/Integer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public final fun component1 ()Lio/getstream/chat/android/models/FilterObject;
public final fun component2 ()I
public final fun component3 ()I
public final fun component4 ()Lio/getstream/chat/android/models/querysort/QuerySorter;
public final fun component5 ()Ljava/lang/Integer;
public final fun component6 ()Ljava/lang/Integer;
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;
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;
public final fun component7 ()Ljava/lang/String;
public final fun component8 ()Ljava/util/Map;
public final fun component9 ()Ljava/util/Map;
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;
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;
public fun equals (Ljava/lang/Object;)Z
public final fun getFilter ()Lio/getstream/chat/android/models/FilterObject;
public final fun getFilterValues ()Ljava/util/Map;
public final fun getLimit ()I
public final fun getMemberLimit ()Ljava/lang/Integer;
public final fun getMessageLimit ()Ljava/lang/Integer;
public final fun getOffset ()I
public final fun getPredefinedFilter ()Ljava/lang/String;
public fun getPresence ()Z
public final fun getQuerySort ()Lio/getstream/chat/android/models/querysort/QuerySorter;
public final fun getSort ()Ljava/util/List;
public final fun getSortValues ()Ljava/util/Map;
public fun getState ()Z
public fun getWatch ()Z
public fun hashCode ()I
Expand Down Expand Up @@ -2799,6 +2819,34 @@ public abstract interface class io/getstream/chat/android/client/interceptor/mes
public abstract fun prepareMessage (Lio/getstream/chat/android/models/Message;Ljava/lang/String;Ljava/lang/String;Lio/getstream/chat/android/models/User;)Lio/getstream/chat/android/models/Message;
}

public final class io/getstream/chat/android/client/internal/state/plugin/QueryChannelsIdentifier$Predefined : io/getstream/chat/android/client/internal/state/plugin/QueryChannelsIdentifier {
public fun <init> (Ljava/lang/String;Ljava/util/Map;Ljava/util/Map;)V
public final fun component1 ()Ljava/lang/String;
public final fun component2 ()Ljava/util/Map;
public final fun component3 ()Ljava/util/Map;
public final fun copy (Ljava/lang/String;Ljava/util/Map;Ljava/util/Map;)Lio/getstream/chat/android/client/internal/state/plugin/QueryChannelsIdentifier$Predefined;
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;
public fun equals (Ljava/lang/Object;)Z
public final fun getFilterValues ()Ljava/util/Map;
public final fun getName ()Ljava/lang/String;
public final fun getSortValues ()Ljava/util/Map;
public fun hashCode ()I
public fun toString ()Ljava/lang/String;
}

public final class io/getstream/chat/android/client/internal/state/plugin/QueryChannelsIdentifier$Standard : io/getstream/chat/android/client/internal/state/plugin/QueryChannelsIdentifier {
public fun <init> (Lio/getstream/chat/android/models/FilterObject;Lio/getstream/chat/android/models/querysort/QuerySorter;)V
public final fun component1 ()Lio/getstream/chat/android/models/FilterObject;
public final fun component2 ()Lio/getstream/chat/android/models/querysort/QuerySorter;
public final fun copy (Lio/getstream/chat/android/models/FilterObject;Lio/getstream/chat/android/models/querysort/QuerySorter;)Lio/getstream/chat/android/client/internal/state/plugin/QueryChannelsIdentifier$Standard;
public static synthetic fun copy$default (Lio/getstream/chat/android/client/internal/state/plugin/QueryChannelsIdentifier$Standard;Lio/getstream/chat/android/models/FilterObject;Lio/getstream/chat/android/models/querysort/QuerySorter;ILjava/lang/Object;)Lio/getstream/chat/android/client/internal/state/plugin/QueryChannelsIdentifier$Standard;
public fun equals (Ljava/lang/Object;)Z
public final fun getFilter ()Lio/getstream/chat/android/models/FilterObject;
public final fun getSort ()Lio/getstream/chat/android/models/querysort/QuerySorter;
public fun hashCode ()I
public fun toString ()Ljava/lang/String;
}
Comment thread
coderabbitai[bot] marked this conversation as resolved.

public final class io/getstream/chat/android/client/logger/ChatLogLevel : java/lang/Enum {
public static final field ALL Lio/getstream/chat/android/client/logger/ChatLogLevel;
public static final field DEBUG Lio/getstream/chat/android/client/logger/ChatLogLevel;
Expand Down Expand Up @@ -3043,7 +3091,10 @@ public abstract interface class io/getstream/chat/android/client/persistance/rep
public abstract interface class io/getstream/chat/android/client/persistance/repository/QueryChannelsRepository {
public abstract fun clear (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public abstract fun insertQueryChannels (Lio/getstream/chat/android/client/query/QueryChannelsSpec;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public abstract fun selectBy (Lio/getstream/chat/android/models/FilterObject;Lio/getstream/chat/android/models/querysort/QuerySorter;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public fun selectBy (Lio/getstream/chat/android/models/FilterObject;Lio/getstream/chat/android/models/querysort/QuerySorter;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public fun selectBy (Ljava/lang/String;Ljava/util/Map;Ljava/util/Map;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
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;
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;
}

public abstract interface class io/getstream/chat/android/client/persistance/repository/ReactionRepository {
Expand Down Expand Up @@ -3341,6 +3392,8 @@ public abstract interface class io/getstream/chat/android/client/plugin/listener
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;
public fun onQueryChannelsResult (Lio/getstream/result/Result;Lio/getstream/chat/android/client/api/models/QueryChannelsRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
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;
public fun onQueryChannelsResultWithPredefinedFilter (Lio/getstream/result/Result;Lio/getstream/chat/android/client/api/models/QueryChannelsRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
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;
}

public abstract interface class io/getstream/chat/android/client/plugin/listeners/QueryMembersListener {
Expand Down Expand Up @@ -3452,13 +3505,24 @@ public final class io/getstream/chat/android/client/query/CreateChannelParams {

public final class io/getstream/chat/android/client/query/QueryChannelsSpec {
public fun <init> (Lio/getstream/chat/android/models/FilterObject;Lio/getstream/chat/android/models/querysort/QuerySorter;)V
public fun <init> (Lio/getstream/chat/android/models/FilterObject;Lio/getstream/chat/android/models/querysort/QuerySorter;Ljava/util/Set;Ljava/lang/String;Ljava/util/Map;Ljava/util/Map;)V
public synthetic fun <init> (Lio/getstream/chat/android/models/FilterObject;Lio/getstream/chat/android/models/querysort/QuerySorter;Ljava/util/Set;Ljava/lang/String;Ljava/util/Map;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public final fun component1 ()Lio/getstream/chat/android/models/FilterObject;
public final fun component2 ()Lio/getstream/chat/android/models/querysort/QuerySorter;
public final fun component3 ()Ljava/util/Set;
public final fun component4 ()Ljava/lang/String;
public final fun component5 ()Ljava/util/Map;
public final fun component6 ()Ljava/util/Map;
public final fun copy (Lio/getstream/chat/android/models/FilterObject;Lio/getstream/chat/android/models/querysort/QuerySorter;)Lio/getstream/chat/android/client/query/QueryChannelsSpec;
public final fun copy (Lio/getstream/chat/android/models/FilterObject;Lio/getstream/chat/android/models/querysort/QuerySorter;Ljava/util/Set;Ljava/lang/String;Ljava/util/Map;Ljava/util/Map;)Lio/getstream/chat/android/client/query/QueryChannelsSpec;
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;
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/util/Set;Ljava/lang/String;Ljava/util/Map;Ljava/util/Map;ILjava/lang/Object;)Lio/getstream/chat/android/client/query/QueryChannelsSpec;
public fun equals (Ljava/lang/Object;)Z
public final fun getCids ()Ljava/util/Set;
public final fun getFilter ()Lio/getstream/chat/android/models/FilterObject;
public final fun getPredefinedFilterName ()Ljava/lang/String;
public final fun getPredefinedFilterValues ()Ljava/util/Map;
public final fun getPredefinedSortValues ()Ljava/util/Map;
public final fun getQuerySort ()Lio/getstream/chat/android/models/querysort/QuerySorter;
public fun hashCode ()I
public final fun setCids (Ljava/util/Set;)V
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ import io.getstream.chat.android.client.api.models.GetThreadOptions
import io.getstream.chat.android.client.api.models.PinnedMessagesPagination
import io.getstream.chat.android.client.api.models.QueryChannelRequest
import io.getstream.chat.android.client.api.models.QueryChannelsRequest
import io.getstream.chat.android.client.api.models.QueryChannelsResult
import io.getstream.chat.android.client.api.models.QueryThreadsRequest
import io.getstream.chat.android.client.api.models.QueryUsersRequest
import io.getstream.chat.android.client.api.models.SendActionRequest
Expand Down Expand Up @@ -2989,7 +2990,7 @@ internal constructor(
*/
@CheckResult
@InternalStreamChatApi
public fun queryChannelsInternal(request: QueryChannelsRequest): Call<List<Channel>> {
public fun queryChannelsInternal(request: QueryChannelsRequest): Call<QueryChannelsResult> {
return api.queryChannels(request)
}

Expand Down Expand Up @@ -3017,7 +3018,7 @@ internal constructor(
this.watch = false
this.state = state
}
when (val result = api.queryChannels(request).await()) {
when (val result = api.queryChannels(request).map { it.channels }.await()) {
is Result.Success -> {
val channels = result.value
if (channels.isEmpty()) {
Expand Down Expand Up @@ -3128,18 +3129,20 @@ internal constructor(
@CheckResult
public fun queryChannels(request: QueryChannelsRequest): Call<List<Channel>> {
logger.d { "[queryChannels] offset: ${request.offset}, limit: ${request.limit}" }
return queryChannelsInternal(request = request).doOnStart(userScope) {
return api.queryChannels(request).doOnStart(userScope) {
plugins.forEach { listener ->
logger.v { "[queryChannels] #doOnStart; plugin: ${listener::class.qualifiedName}" }
listener.onQueryChannelsRequest(request)
}
}.doOnResult(userScope) { result ->
plugins.forEach { listener ->
logger.v { "[queryChannels] #doOnResult; plugin: ${listener::class.qualifiedName}" }
listener.onQueryChannelsResult(result, request)
listener.onQueryChannelsResultWithPredefinedFilter(result, request)
}
}.precondition(plugins) {
onQueryChannelsPrecondition(request)
}.map {
it.channels
}.share(userScope) {
QueryChannelsIdentifier(request)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import io.getstream.chat.android.client.api.models.GetThreadOptions
import io.getstream.chat.android.client.api.models.PinnedMessagesPagination
import io.getstream.chat.android.client.api.models.QueryChannelRequest
import io.getstream.chat.android.client.api.models.QueryChannelsRequest
import io.getstream.chat.android.client.api.models.QueryChannelsResult
import io.getstream.chat.android.client.api.models.QueryThreadsRequest
import io.getstream.chat.android.client.api.models.QueryUsersRequest
import io.getstream.chat.android.client.api.models.SendActionRequest
Expand Down Expand Up @@ -286,7 +287,7 @@ internal interface ChatApi {
): Call<List<Message>>

@CheckResult
fun queryChannels(query: QueryChannelsRequest): Call<List<Channel>>
fun queryChannels(query: QueryChannelsRequest): Call<QueryChannelsResult>

@CheckResult
fun updateUsers(users: List<User>): Call<List<User>>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import io.getstream.chat.android.client.api.ChatApi
import io.getstream.chat.android.client.api.models.PinnedMessagesPagination
import io.getstream.chat.android.client.api.models.QueryChannelRequest
import io.getstream.chat.android.client.api.models.QueryChannelsRequest
import io.getstream.chat.android.client.api.models.QueryChannelsResult
import io.getstream.chat.android.client.api2.optimisation.hash.ChannelQueryKey
import io.getstream.chat.android.client.api2.optimisation.hash.GetNewerRepliesHash
import io.getstream.chat.android.client.api2.optimisation.hash.GetPinnedMessagesHash
Expand Down Expand Up @@ -133,7 +134,7 @@ internal class DistinctChatApi(
}
}

override fun queryChannels(query: QueryChannelsRequest): Call<List<Channel>> {
override fun queryChannels(query: QueryChannelsRequest): Call<QueryChannelsResult> {
val uniqueKey = query.hashCode()
StreamLog.d(TAG) { "[queryChannels] query: $query, uniqueKey: $uniqueKey" }
return getOrCreate(uniqueKey) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import io.getstream.chat.android.client.api.ChatApi
import io.getstream.chat.android.client.api.models.PinnedMessagesPagination
import io.getstream.chat.android.client.api.models.QueryChannelRequest
import io.getstream.chat.android.client.api.models.QueryChannelsRequest
import io.getstream.chat.android.client.api.models.QueryChannelsResult
import io.getstream.chat.android.models.BannedUser
import io.getstream.chat.android.models.BannedUsersSort
import io.getstream.chat.android.models.Channel
Expand Down Expand Up @@ -77,7 +78,7 @@ internal class DistinctChatApiEnabler(
return getApi().getPinnedMessages(channelType, channelId, limit, sort, pagination)
}

override fun queryChannels(query: QueryChannelsRequest): Call<List<Channel>> {
override fun queryChannels(query: QueryChannelsRequest): Call<QueryChannelsResult> {
return getApi().queryChannels(query)
}

Expand Down
Loading
Loading