diff --git a/com.discord/apktool.yml b/com.discord/apktool.yml index f0ada6ad4e..234eb824e3 100644 --- a/com.discord/apktool.yml +++ b/com.discord/apktool.yml @@ -1,5 +1,5 @@ !!brut.androlib.meta.MetaInfo -apkFileName: com.discord-1296.apk +apkFileName: com.discord-1297.apk compressionType: false doNotCompress: - resources.arsc @@ -81,5 +81,5 @@ usesFramework: tag: null version: 2.4.2-83a459-SNAPSHOT versionInfo: - versionCode: '1296' - versionName: '45.0' + versionCode: '1297' + versionName: '45.1' diff --git a/com.discord/original/AndroidManifest.xml b/com.discord/original/AndroidManifest.xml index 0c853a4a62..72fff6932f 100644 Binary files a/com.discord/original/AndroidManifest.xml and b/com.discord/original/AndroidManifest.xml differ diff --git a/com.discord/res/drawable-xxxhdpi/img_age_gate_failure.png b/com.discord/res/drawable-xxxhdpi/img_age_gate_failure.png index 8d4c0a7a3a..508b70a677 100644 Binary files a/com.discord/res/drawable-xxxhdpi/img_age_gate_failure.png and b/com.discord/res/drawable-xxxhdpi/img_age_gate_failure.png differ diff --git a/com.discord/res/values/strings.xml b/com.discord/res/values/strings.xml index 1c512e6553..88d57db5ae 100644 --- a/com.discord/res/values/strings.xml +++ b/com.discord/res/values/strings.xml @@ -1079,7 +1079,7 @@ We’re here to make a good impression." Invite Your Communities to Discord Share Discord Learn More - View our Help Center for more info or hit us up on Twitter. We’re excited to see you express yourself with stickers. + View our Help Center for more info or hit us up on [Twitter](https://twitter.com/discord). We’re excited to see you express yourself with stickers. Have a question? Stickers are here! Channel @@ -1195,7 +1195,7 @@ We’re here to make a good impression." Presets Select a color Transparency - 9aaf091650b4477e83cb1663d656a7eb + a85b1a6fb80c4948aac306383643238f Coming Soon Search Animated GIFs on the Web Text to search for @@ -2401,8 +2401,8 @@ We’re here to make a good impression." Select a voice channel Select a server for your stream Screen Share - **New!** You can now screenshare and video chat at the same time. - New! You can now screenshare and video chat at the same time. + **New!** You can now Screen Share and video chat at the same time. + New! You can now Screen Share and video chat at the same time. Got it Sound may not be available when sharing a screen on your device. Audio sharing may not work on your Windows version. Please upgrade to the latest Windows 10. @@ -3976,7 +3976,7 @@ Want to know more about Discord?" 100MB upload size for high-quality file sharing. HD Video Up to 4K source resolution and up to 60fps screen share. - Hi-res video, screenshare, and Go Live streaming. $[Info](infoHook) + Hi-res video, Screen Share, and Go Live streaming. $[Info](infoHook) Support a Server Get %1$s and %2$s off extra Boosts. $[Learn more](learnMoreHook). Customized Profile @@ -4156,7 +4156,7 @@ Want to know more about Discord?" You can switch to other apps for your friends to see. The latest version of Android is required for your audio to be shared. You’re sharing your screen! Participants without video are currently hidden. Would you like to show them? - Screenshare + Screen Share Sharing screen Stop sharing Moderation @@ -4316,8 +4316,8 @@ Want to know more about Discord?" What a cold, emotionless world. No Reactions Start up some conversations, then keep track of them here! - "This channel has special permissions. To use screenshare in it, you'll need someone, like a server moderator or admin, to change your permissions." - No Screenshare Permission + "This channel has special permissions. To use Screen Share in it, you'll need someone, like a server moderator or admin, to change your permissions." + No Screen Share Permission You do not have permission to send messages in this channel. No stickers match your search No System Messages @@ -4551,7 +4551,7 @@ Want to know more about Discord?" Options Options matching **%1$s** Orange - To use screenshare, please update OS version to 12.0 or above. + To use Screen Share, please update OS version to 12.0 or above. OS Version Requirement Other options Other Reactions diff --git a/com.discord/smali/com/discord/BuildConfig.smali b/com.discord/smali/com/discord/BuildConfig.smali index 52f770330e..837db461d4 100644 --- a/com.discord/smali/com/discord/BuildConfig.smali +++ b/com.discord/smali/com/discord/BuildConfig.smali @@ -42,11 +42,11 @@ .field public static final SAMSUNGxDISCORD_CLIENT_ID:Ljava/lang/String; = "97t47j218f" -.field public static final USER_AGENT:Ljava/lang/String; = "Discord-Android/1296" +.field public static final USER_AGENT:Ljava/lang/String; = "Discord-Android/1297" -.field public static final VERSION_CODE:I = 0x510 +.field public static final VERSION_CODE:I = 0x511 -.field public static final VERSION_NAME:Ljava/lang/String; = "45.0" +.field public static final VERSION_NAME:Ljava/lang/String; = "45.1" # direct methods diff --git a/com.discord/smali/com/discord/app/AppLog.smali b/com.discord/smali/com/discord/app/AppLog.smali index 6df5d71616..b08d8c6d63 100644 --- a/com.discord/smali/com/discord/app/AppLog.smali +++ b/com.discord/smali/com/discord/app/AppLog.smali @@ -393,7 +393,7 @@ sget-object v0, Lcom/discord/utilities/buildutils/BuildUtils;->INSTANCE:Lcom/discord/utilities/buildutils/BuildUtils; - const-string v1, "45.0" + const-string v1, "45.1" invoke-virtual {v0, v1}, Lcom/discord/utilities/buildutils/BuildUtils;->isValidBuildVersionName(Ljava/lang/String;)Z diff --git a/com.discord/smali/com/discord/stores/StoreApplicationStreamPreviews.smali b/com.discord/smali/com/discord/stores/StoreApplicationStreamPreviews.smali index 8e62429320..6b3e422106 100644 --- a/com.discord/smali/com/discord/stores/StoreApplicationStreamPreviews.smali +++ b/com.discord/smali/com/discord/stores/StoreApplicationStreamPreviews.smali @@ -302,7 +302,7 @@ .method public final fetchStreamPreviewIfNotFetching(Lcom/discord/utilities/streams/StreamContext;)V .locals 1 - const-string v0, "streamContext" + const-string/jumbo v0, "streamContext" invoke-static {p1, v0}, Lc0/n/c/j;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V diff --git a/com.discord/smali/com/discord/stores/StoreClientVersion.smali b/com.discord/smali/com/discord/stores/StoreClientVersion.smali index e6aa840828..31626160cc 100644 --- a/com.discord/smali/com/discord/stores/StoreClientVersion.smali +++ b/com.discord/smali/com/discord/stores/StoreClientVersion.smali @@ -28,7 +28,7 @@ invoke-direct {p0}, Lcom/discord/stores/Store;->()V - const/16 v0, 0x510 + const/16 v0, 0x511 iput v0, p0, Lcom/discord/stores/StoreClientVersion;->clientVersion:I diff --git a/com.discord/smali/com/discord/stores/StoreStream$deferredInit$1.smali b/com.discord/smali/com/discord/stores/StoreStream$deferredInit$1.smali index a051f9cec3..c1a304d4f3 100644 --- a/com.discord/smali/com/discord/stores/StoreStream$deferredInit$1.smali +++ b/com.discord/smali/com/discord/stores/StoreStream$deferredInit$1.smali @@ -614,7 +614,7 @@ invoke-direct {v2, v3}, Lcom/discord/stores/StoreStream$deferredInit$1$5;->(Lcom/discord/stores/StoreStream;)V - const-string v3, "streamChannelSelected" + const-string/jumbo v3, "streamChannelSelected" invoke-static {v0, v1, v3, v2}, Lcom/discord/stores/StoreStream;->access$dispatchSubscribe(Lcom/discord/stores/StoreStream;Lrx/Observable;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V diff --git a/com.discord/smali/com/discord/stores/StoreStream.smali b/com.discord/smali/com/discord/stores/StoreStream.smali index 103c33e401..558c711670 100644 --- a/com.discord/smali/com/discord/stores/StoreStream.smali +++ b/com.discord/smali/com/discord/stores/StoreStream.smali @@ -602,7 +602,11 @@ iget-object v1, v8, Lcom/discord/stores/StoreStream;->clock:Lcom/discord/utilities/time/Clock; - invoke-direct {v0, v1, v8}, Lcom/discord/stores/StoreUserPresence;->(Lcom/discord/utilities/time/Clock;Lcom/discord/stores/StoreStream;)V + invoke-static {}, Lcom/discord/stores/updates/ObservationDeckProvider;->get()Lcom/discord/stores/updates/ObservationDeck; + + move-result-object v2 + + invoke-direct {v0, v1, v8, v2}, Lcom/discord/stores/StoreUserPresence;->(Lcom/discord/utilities/time/Clock;Lcom/discord/stores/StoreStream;Lcom/discord/stores/updates/ObservationDeck;)V iput-object v0, v8, Lcom/discord/stores/StoreStream;->presences:Lcom/discord/stores/StoreUserPresence; @@ -1340,7 +1344,7 @@ iput-object v0, v8, Lcom/discord/stores/StoreStream;->expressionPickerNavigation:Lcom/discord/stores/StoreExpressionPickerNavigation; - const/16 v0, 0xf + const/16 v0, 0x10 new-array v0, v0, [Lcom/discord/stores/StoreV2; @@ -1356,78 +1360,84 @@ aput-object v1, v0, v11 - iget-object v1, v8, Lcom/discord/stores/StoreStream;->accessibility:Lcom/discord/stores/StoreAccessibility; + iget-object v1, v8, Lcom/discord/stores/StoreStream;->presences:Lcom/discord/stores/StoreUserPresence; const/4 v2, 0x3 aput-object v1, v0, v2 - iget-object v1, v8, Lcom/discord/stores/StoreStream;->connectivity:Lcom/discord/stores/StoreConnectivity; + iget-object v1, v8, Lcom/discord/stores/StoreStream;->accessibility:Lcom/discord/stores/StoreAccessibility; const/4 v2, 0x4 aput-object v1, v0, v2 - iget-object v1, v8, Lcom/discord/stores/StoreStream;->connectionOpen:Lcom/discord/stores/StoreConnectionOpen; + iget-object v1, v8, Lcom/discord/stores/StoreStream;->connectivity:Lcom/discord/stores/StoreConnectivity; const/4 v2, 0x5 aput-object v1, v0, v2 - iget-object v1, v8, Lcom/discord/stores/StoreStream;->guildWelcomeScreens:Lcom/discord/stores/StoreGuildWelcomeScreens; + iget-object v1, v8, Lcom/discord/stores/StoreStream;->connectionOpen:Lcom/discord/stores/StoreConnectionOpen; const/4 v2, 0x6 aput-object v1, v0, v2 - iget-object v1, v8, Lcom/discord/stores/StoreStream;->videoStreams:Lcom/discord/stores/StoreVideoStreams; + iget-object v1, v8, Lcom/discord/stores/StoreStream;->guildWelcomeScreens:Lcom/discord/stores/StoreGuildWelcomeScreens; const/4 v2, 0x7 aput-object v1, v0, v2 - iget-object v1, v8, Lcom/discord/stores/StoreStream;->clientDataState:Lcom/discord/stores/StoreClientDataState; + iget-object v1, v8, Lcom/discord/stores/StoreStream;->videoStreams:Lcom/discord/stores/StoreVideoStreams; const/16 v2, 0x8 aput-object v1, v0, v2 - iget-object v1, v8, Lcom/discord/stores/StoreStream;->gifPicker:Lcom/discord/stores/StoreGifPicker; + iget-object v1, v8, Lcom/discord/stores/StoreStream;->clientDataState:Lcom/discord/stores/StoreClientDataState; const/16 v2, 0x9 aput-object v1, v0, v2 - iget-object v1, v8, Lcom/discord/stores/StoreStream;->stickers:Lcom/discord/stores/StoreStickers; + iget-object v1, v8, Lcom/discord/stores/StoreStream;->gifPicker:Lcom/discord/stores/StoreGifPicker; const/16 v2, 0xa aput-object v1, v0, v2 - iget-object v1, v8, Lcom/discord/stores/StoreStream;->guildMemberCounts:Lcom/discord/stores/StoreGuildMemberCounts; + iget-object v1, v8, Lcom/discord/stores/StoreStream;->stickers:Lcom/discord/stores/StoreStickers; const/16 v2, 0xb aput-object v1, v0, v2 - iget-object v1, v8, Lcom/discord/stores/StoreStream;->experiments:Lcom/discord/stores/StoreExperiments; + iget-object v1, v8, Lcom/discord/stores/StoreStream;->guildMemberCounts:Lcom/discord/stores/StoreGuildMemberCounts; const/16 v2, 0xc aput-object v1, v0, v2 - iget-object v1, v8, Lcom/discord/stores/StoreStream;->messageReplies:Lcom/discord/stores/StoreMessageReplies; + iget-object v1, v8, Lcom/discord/stores/StoreStream;->experiments:Lcom/discord/stores/StoreExperiments; const/16 v2, 0xd aput-object v1, v0, v2 - iget-object v1, v8, Lcom/discord/stores/StoreStream;->guildProfiles:Lcom/discord/stores/StoreGuildProfiles; + iget-object v1, v8, Lcom/discord/stores/StoreStream;->messageReplies:Lcom/discord/stores/StoreMessageReplies; const/16 v2, 0xe aput-object v1, v0, v2 + iget-object v1, v8, Lcom/discord/stores/StoreStream;->guildProfiles:Lcom/discord/stores/StoreGuildProfiles; + + const/16 v2, 0xf + + aput-object v1, v0, v2 + invoke-static {v0}, Lf/h/a/f/f/n/f;->listOf([Ljava/lang/Object;)Ljava/util/List; move-result-object v0 @@ -4978,7 +4988,7 @@ invoke-direct {v1, p0}, Lcom/discord/stores/StoreStream$initGatewaySocketListeners$1;->(Lcom/discord/stores/StoreStream;)V - const-string v2, "streamConnectionOpen" + const-string/jumbo v2, "streamConnectionOpen" invoke-direct {p0, v0, v2, v1}, Lcom/discord/stores/StoreStream;->dispatchSubscribe(Lrx/Observable;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V @@ -4992,7 +5002,7 @@ invoke-direct {v1, p0}, Lcom/discord/stores/StoreStream$initGatewaySocketListeners$2;->(Lcom/discord/stores/StoreStream;)V - const-string v2, "streamConnected" + const-string/jumbo v2, "streamConnected" invoke-direct {p0, v0, v2, v1}, Lcom/discord/stores/StoreStream;->dispatchSubscribe(Lrx/Observable;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V @@ -5160,7 +5170,7 @@ invoke-direct {v1, p0}, Lcom/discord/stores/StoreStream$initGatewaySocketListeners$14;->(Lcom/discord/stores/StoreStream;)V - const-string v2, "streamChannelCreated" + const-string/jumbo v2, "streamChannelCreated" invoke-direct {p0, v0, v2, v1}, Lcom/discord/stores/StoreStream;->dispatchSubscribe(Lrx/Observable;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V @@ -5174,7 +5184,7 @@ invoke-direct {v1, p0}, Lcom/discord/stores/StoreStream$initGatewaySocketListeners$15;->(Lcom/discord/stores/StoreStream;)V - const-string v2, "streamChannelDeleted" + const-string/jumbo v2, "streamChannelDeleted" invoke-direct {p0, v0, v2, v1}, Lcom/discord/stores/StoreStream;->dispatchSubscribe(Lrx/Observable;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V @@ -5188,7 +5198,7 @@ invoke-direct {v1, p0}, Lcom/discord/stores/StoreStream$initGatewaySocketListeners$16;->(Lcom/discord/stores/StoreStream;)V - const-string v2, "streamChannelUnreadUpdate" + const-string/jumbo v2, "streamChannelUnreadUpdate" invoke-direct {p0, v0, v2, v1}, Lcom/discord/stores/StoreStream;->dispatchSubscribe(Lrx/Observable;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V @@ -5504,7 +5514,7 @@ invoke-direct {v1, p0}, Lcom/discord/stores/StoreStream$initGatewaySocketListeners$38;->(Lcom/discord/stores/StoreStream;)V - const-string v2, "streamCallDelete" + const-string/jumbo v2, "streamCallDelete" invoke-direct {p0, v0, v2, v1}, Lcom/discord/stores/StoreStream;->dispatchSubscribe(Lrx/Observable;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V @@ -5518,7 +5528,7 @@ invoke-direct {v1, p0}, Lcom/discord/stores/StoreStream$initGatewaySocketListeners$39;->(Lcom/discord/stores/StoreStream;)V - const-string v2, "streamCallCreateOrUpdate" + const-string/jumbo v2, "streamCallCreateOrUpdate" invoke-direct {p0, v0, v2, v1}, Lcom/discord/stores/StoreStream;->dispatchSubscribe(Lrx/Observable;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V @@ -5744,7 +5754,7 @@ iget-object v0, p0, Lcom/discord/stores/StoreStream;->dispatcher:Lcom/discord/stores/Dispatcher; - const/16 v1, 0x2b + const/16 v1, 0x2a new-array v1, v1, [Lcom/discord/stores/DispatchHandler; @@ -5764,243 +5774,237 @@ aput-object v2, v1, v3 - iget-object v2, p0, Lcom/discord/stores/StoreStream;->presences:Lcom/discord/stores/StoreUserPresence; + iget-object v2, p0, Lcom/discord/stores/StoreStream;->voiceChannelSelected:Lcom/discord/stores/StoreVoiceChannelSelected; const/4 v3, 0x3 aput-object v2, v1, v3 - iget-object v2, p0, Lcom/discord/stores/StoreStream;->voiceChannelSelected:Lcom/discord/stores/StoreVoiceChannelSelected; + iget-object v2, p0, Lcom/discord/stores/StoreStream;->voiceStates:Lcom/discord/stores/StoreVoiceStates; const/4 v3, 0x4 aput-object v2, v1, v3 - iget-object v2, p0, Lcom/discord/stores/StoreStream;->voiceStates:Lcom/discord/stores/StoreVoiceStates; + iget-object v2, p0, Lcom/discord/stores/StoreStream;->applicationStreaming:Lcom/discord/stores/StoreApplicationStreaming; const/4 v3, 0x5 aput-object v2, v1, v3 - iget-object v2, p0, Lcom/discord/stores/StoreStream;->applicationStreaming:Lcom/discord/stores/StoreApplicationStreaming; + iget-object v2, p0, Lcom/discord/stores/StoreStream;->callsIncoming:Lcom/discord/stores/StoreCallsIncoming; const/4 v3, 0x6 aput-object v2, v1, v3 - iget-object v2, p0, Lcom/discord/stores/StoreStream;->callsIncoming:Lcom/discord/stores/StoreCallsIncoming; + iget-object v2, p0, Lcom/discord/stores/StoreStream;->guildSubscriptions:Lcom/discord/stores/StoreGuildSubscriptions; const/4 v3, 0x7 aput-object v2, v1, v3 - iget-object v2, p0, Lcom/discord/stores/StoreStream;->guildSubscriptions:Lcom/discord/stores/StoreGuildSubscriptions; + iget-object v2, p0, Lcom/discord/stores/StoreStream;->lazyChannelMembersStore:Lcom/discord/stores/StoreChannelMembers; const/16 v3, 0x8 aput-object v2, v1, v3 - iget-object v2, p0, Lcom/discord/stores/StoreStream;->lazyChannelMembersStore:Lcom/discord/stores/StoreChannelMembers; + iget-object v2, p0, Lcom/discord/stores/StoreStream;->permissions:Lcom/discord/stores/StorePermissions; const/16 v3, 0x9 aput-object v2, v1, v3 - iget-object v2, p0, Lcom/discord/stores/StoreStream;->permissions:Lcom/discord/stores/StorePermissions; + iget-object v2, p0, Lcom/discord/stores/StoreStream;->customEmojis:Lcom/discord/stores/StoreEmojiCustom; const/16 v3, 0xa aput-object v2, v1, v3 - iget-object v2, p0, Lcom/discord/stores/StoreStream;->customEmojis:Lcom/discord/stores/StoreEmojiCustom; + iget-object v2, p0, Lcom/discord/stores/StoreStream;->gameParty:Lcom/discord/stores/StoreGameParty; const/16 v3, 0xb aput-object v2, v1, v3 - iget-object v2, p0, Lcom/discord/stores/StoreStream;->gameParty:Lcom/discord/stores/StoreGameParty; + iget-object v2, p0, Lcom/discord/stores/StoreStream;->bans:Lcom/discord/stores/StoreBans; const/16 v3, 0xc aput-object v2, v1, v3 - iget-object v2, p0, Lcom/discord/stores/StoreStream;->bans:Lcom/discord/stores/StoreBans; + iget-object v2, p0, Lcom/discord/stores/StoreStream;->guildEmojis:Lcom/discord/stores/StoreEmojiGuild; const/16 v3, 0xd aput-object v2, v1, v3 - iget-object v2, p0, Lcom/discord/stores/StoreStream;->guildEmojis:Lcom/discord/stores/StoreEmojiGuild; + iget-object v2, p0, Lcom/discord/stores/StoreStream;->auditLog:Lcom/discord/stores/StoreAuditLog; const/16 v3, 0xe aput-object v2, v1, v3 - iget-object v2, p0, Lcom/discord/stores/StoreStream;->auditLog:Lcom/discord/stores/StoreAuditLog; + iget-object v2, p0, Lcom/discord/stores/StoreStream;->messageAck:Lcom/discord/stores/StoreMessageAck; const/16 v3, 0xf aput-object v2, v1, v3 - iget-object v2, p0, Lcom/discord/stores/StoreStream;->messageAck:Lcom/discord/stores/StoreMessageAck; + iget-object v2, p0, Lcom/discord/stores/StoreStream;->messagesMostRecent:Lcom/discord/stores/StoreMessagesMostRecent; const/16 v3, 0x10 aput-object v2, v1, v3 - iget-object v2, p0, Lcom/discord/stores/StoreStream;->messagesMostRecent:Lcom/discord/stores/StoreMessagesMostRecent; + iget-object v2, p0, Lcom/discord/stores/StoreStream;->messageUploads:Lcom/discord/stores/StoreMessageUploads; const/16 v3, 0x11 aput-object v2, v1, v3 - iget-object v2, p0, Lcom/discord/stores/StoreStream;->messageUploads:Lcom/discord/stores/StoreMessageUploads; + iget-object v2, p0, Lcom/discord/stores/StoreStream;->messageReactions:Lcom/discord/stores/StoreMessageReactions; const/16 v3, 0x12 aput-object v2, v1, v3 - iget-object v2, p0, Lcom/discord/stores/StoreStream;->messageReactions:Lcom/discord/stores/StoreMessageReactions; + iget-object v2, p0, Lcom/discord/stores/StoreStream;->usersTyping:Lcom/discord/stores/StoreUserTyping; const/16 v3, 0x13 aput-object v2, v1, v3 - iget-object v2, p0, Lcom/discord/stores/StoreStream;->usersTyping:Lcom/discord/stores/StoreUserTyping; + iget-object v2, p0, Lcom/discord/stores/StoreStream;->application:Lcom/discord/stores/StoreApplication; const/16 v3, 0x14 aput-object v2, v1, v3 - iget-object v2, p0, Lcom/discord/stores/StoreStream;->application:Lcom/discord/stores/StoreApplication; + iget-object v2, p0, Lcom/discord/stores/StoreStream;->paymentSources:Lcom/discord/stores/StorePaymentSources; const/16 v3, 0x15 aput-object v2, v1, v3 - iget-object v2, p0, Lcom/discord/stores/StoreStream;->paymentSources:Lcom/discord/stores/StorePaymentSources; + iget-object v2, p0, Lcom/discord/stores/StoreStream;->subscriptions:Lcom/discord/stores/StoreSubscriptions; const/16 v3, 0x16 aput-object v2, v1, v3 - iget-object v2, p0, Lcom/discord/stores/StoreStream;->subscriptions:Lcom/discord/stores/StoreSubscriptions; + iget-object v2, p0, Lcom/discord/stores/StoreStream;->mfa:Lcom/discord/stores/StoreMFA; const/16 v3, 0x17 aput-object v2, v1, v3 - iget-object v2, p0, Lcom/discord/stores/StoreStream;->mfa:Lcom/discord/stores/StoreMFA; + iget-object v2, p0, Lcom/discord/stores/StoreStream;->guildsSorted:Lcom/discord/stores/StoreGuildsSorted; const/16 v3, 0x18 aput-object v2, v1, v3 - iget-object v2, p0, Lcom/discord/stores/StoreStream;->guildsSorted:Lcom/discord/stores/StoreGuildsSorted; + iget-object v2, p0, Lcom/discord/stores/StoreStream;->applicationStreamPreviews:Lcom/discord/stores/StoreApplicationStreamPreviews; const/16 v3, 0x19 aput-object v2, v1, v3 - iget-object v2, p0, Lcom/discord/stores/StoreStream;->applicationStreamPreviews:Lcom/discord/stores/StoreApplicationStreamPreviews; + iget-object v2, p0, Lcom/discord/stores/StoreStream;->premiumGuildSubscriptions:Lcom/discord/stores/StorePremiumGuildSubscription; const/16 v3, 0x1a aput-object v2, v1, v3 - iget-object v2, p0, Lcom/discord/stores/StoreStream;->premiumGuildSubscriptions:Lcom/discord/stores/StorePremiumGuildSubscription; + iget-object v2, p0, Lcom/discord/stores/StoreStream;->expandedGuildFolders:Lcom/discord/stores/StoreExpandedGuildFolders; const/16 v3, 0x1b aput-object v2, v1, v3 - iget-object v2, p0, Lcom/discord/stores/StoreStream;->expandedGuildFolders:Lcom/discord/stores/StoreExpandedGuildFolders; + iget-object v2, p0, Lcom/discord/stores/StoreStream;->mentions:Lcom/discord/stores/StoreMentions; const/16 v3, 0x1c aput-object v2, v1, v3 - iget-object v2, p0, Lcom/discord/stores/StoreStream;->mentions:Lcom/discord/stores/StoreMentions; + iget-object v2, p0, Lcom/discord/stores/StoreStream;->guildSettings:Lcom/discord/stores/StoreUserGuildSettings; const/16 v3, 0x1d aput-object v2, v1, v3 - iget-object v2, p0, Lcom/discord/stores/StoreStream;->guildSettings:Lcom/discord/stores/StoreUserGuildSettings; + iget-object v2, p0, Lcom/discord/stores/StoreStream;->entitlements:Lcom/discord/stores/StoreEntitlements; const/16 v3, 0x1e aput-object v2, v1, v3 - iget-object v2, p0, Lcom/discord/stores/StoreStream;->entitlements:Lcom/discord/stores/StoreEntitlements; + iget-object v2, p0, Lcom/discord/stores/StoreStream;->streamRtcConnection:Lcom/discord/stores/StoreStreamRtcConnection; const/16 v3, 0x1f aput-object v2, v1, v3 - iget-object v2, p0, Lcom/discord/stores/StoreStream;->streamRtcConnection:Lcom/discord/stores/StoreStreamRtcConnection; + iget-object v2, p0, Lcom/discord/stores/StoreStream;->userAffinities:Lcom/discord/stores/StoreUserAffinities; const/16 v3, 0x20 aput-object v2, v1, v3 - iget-object v2, p0, Lcom/discord/stores/StoreStream;->userAffinities:Lcom/discord/stores/StoreUserAffinities; + iget-object v2, p0, Lcom/discord/stores/StoreStream;->audioDevices:Lcom/discord/stores/StoreAudioDevices; const/16 v3, 0x21 aput-object v2, v1, v3 - iget-object v2, p0, Lcom/discord/stores/StoreStream;->audioDevices:Lcom/discord/stores/StoreAudioDevices; + iget-object v2, p0, Lcom/discord/stores/StoreStream;->storeChannelCategories:Lcom/discord/stores/StoreChannelCategories; const/16 v3, 0x22 aput-object v2, v1, v3 - iget-object v2, p0, Lcom/discord/stores/StoreStream;->storeChannelCategories:Lcom/discord/stores/StoreChannelCategories; + iget-object v2, p0, Lcom/discord/stores/StoreStream;->guildTemplates:Lcom/discord/stores/StoreGuildTemplates; const/16 v3, 0x23 aput-object v2, v1, v3 - iget-object v2, p0, Lcom/discord/stores/StoreStream;->guildTemplates:Lcom/discord/stores/StoreGuildTemplates; + iget-object v2, p0, Lcom/discord/stores/StoreStream;->tabsNavigation:Lcom/discord/stores/StoreTabsNavigation; const/16 v3, 0x24 aput-object v2, v1, v3 - iget-object v2, p0, Lcom/discord/stores/StoreStream;->tabsNavigation:Lcom/discord/stores/StoreTabsNavigation; + iget-object v2, p0, Lcom/discord/stores/StoreStream;->userNotes:Lcom/discord/stores/StoreUserNotes; const/16 v3, 0x25 aput-object v2, v1, v3 - iget-object v2, p0, Lcom/discord/stores/StoreStream;->userNotes:Lcom/discord/stores/StoreUserNotes; + iget-object v2, p0, Lcom/discord/stores/StoreStream;->maskedLinks:Lcom/discord/stores/StoreMaskedLinks; const/16 v3, 0x26 aput-object v2, v1, v3 - iget-object v2, p0, Lcom/discord/stores/StoreStream;->maskedLinks:Lcom/discord/stores/StoreMaskedLinks; + iget-object v2, p0, Lcom/discord/stores/StoreStream;->stickers:Lcom/discord/stores/StoreStickers; const/16 v3, 0x27 aput-object v2, v1, v3 - iget-object v2, p0, Lcom/discord/stores/StoreStream;->stickers:Lcom/discord/stores/StoreStickers; + iget-object v2, p0, Lcom/discord/stores/StoreStream;->googlePlayPurchases:Lcom/discord/stores/StoreGooglePlayPurchases; const/16 v3, 0x28 aput-object v2, v1, v3 - iget-object v2, p0, Lcom/discord/stores/StoreStream;->googlePlayPurchases:Lcom/discord/stores/StoreGooglePlayPurchases; - - const/16 v3, 0x29 - - aput-object v2, v1, v3 - iget-object v2, p0, Lcom/discord/stores/StoreStream;->googlePlaySkuDetails:Lcom/discord/stores/StoreGooglePlaySkuDetails; - const/16 v3, 0x2a + const/16 v3, 0x29 aput-object v2, v1, v3 diff --git a/com.discord/smali/com/discord/stores/StoreUserPresence$Companion$LocalPresenceUpdateSource$1.smali b/com.discord/smali/com/discord/stores/StoreUserPresence$Companion$LocalPresenceUpdateSource$1.smali new file mode 100644 index 0000000000..3c281bd1ec --- /dev/null +++ b/com.discord/smali/com/discord/stores/StoreUserPresence$Companion$LocalPresenceUpdateSource$1.smali @@ -0,0 +1,27 @@ +.class public final Lcom/discord/stores/StoreUserPresence$Companion$LocalPresenceUpdateSource$1; +.super Ljava/lang/Object; +.source "StoreUserPresence.kt" + +# interfaces +.implements Lcom/discord/stores/updates/ObservationDeck$UpdateSource; + + +# annotations +.annotation system Ldalvik/annotation/EnclosingClass; + value = Lcom/discord/stores/StoreUserPresence; +.end annotation + +.annotation system Ldalvik/annotation/InnerClass; + accessFlags = 0x19 + name = null +.end annotation + + +# direct methods +.method public constructor ()V + .locals 0 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + return-void +.end method diff --git a/com.discord/smali/com/discord/stores/StoreUserPresence$Companion.smali b/com.discord/smali/com/discord/stores/StoreUserPresence$Companion.smali new file mode 100644 index 0000000000..a7106d9213 --- /dev/null +++ b/com.discord/smali/com/discord/stores/StoreUserPresence$Companion.smali @@ -0,0 +1,32 @@ +.class public final Lcom/discord/stores/StoreUserPresence$Companion; +.super Ljava/lang/Object; +.source "StoreUserPresence.kt" + + +# annotations +.annotation system Ldalvik/annotation/EnclosingClass; + value = Lcom/discord/stores/StoreUserPresence; +.end annotation + +.annotation system Ldalvik/annotation/InnerClass; + accessFlags = 0x19 + name = "Companion" +.end annotation + + +# direct methods +.method public constructor ()V + .locals 0 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + return-void +.end method + +.method public synthetic constructor (Lkotlin/jvm/internal/DefaultConstructorMarker;)V + .locals 0 + + invoke-direct {p0}, Lcom/discord/stores/StoreUserPresence$Companion;->()V + + return-void +.end method diff --git a/com.discord/smali/com/discord/stores/StoreUserPresence$observeAllPresences$1.smali b/com.discord/smali/com/discord/stores/StoreUserPresence$observeAllPresences$1.smali new file mode 100644 index 0000000000..0e5177b91d --- /dev/null +++ b/com.discord/smali/com/discord/stores/StoreUserPresence$observeAllPresences$1.smali @@ -0,0 +1,80 @@ +.class public final Lcom/discord/stores/StoreUserPresence$observeAllPresences$1; +.super Lc0/n/c/k; +.source "StoreUserPresence.kt" + +# interfaces +.implements Lkotlin/jvm/functions/Function0; + + +# annotations +.annotation system Ldalvik/annotation/EnclosingMethod; + value = Lcom/discord/stores/StoreUserPresence;->observeAllPresences()Lrx/Observable; +.end annotation + +.annotation system Ldalvik/annotation/InnerClass; + accessFlags = 0x19 + name = null +.end annotation + +.annotation system Ldalvik/annotation/Signature; + value = { + "Lc0/n/c/k;", + "Lkotlin/jvm/functions/Function0<", + "Ljava/util/Map<", + "Ljava/lang/Long;", + "+", + "Lcom/discord/models/domain/ModelPresence;", + ">;>;" + } +.end annotation + + +# instance fields +.field public final synthetic this$0:Lcom/discord/stores/StoreUserPresence; + + +# direct methods +.method public constructor (Lcom/discord/stores/StoreUserPresence;)V + .locals 0 + + iput-object p1, p0, Lcom/discord/stores/StoreUserPresence$observeAllPresences$1;->this$0:Lcom/discord/stores/StoreUserPresence; + + const/4 p1, 0x0 + + invoke-direct {p0, p1}, Lc0/n/c/k;->(I)V + + return-void +.end method + + +# virtual methods +.method public bridge synthetic invoke()Ljava/lang/Object; + .locals 1 + + invoke-virtual {p0}, Lcom/discord/stores/StoreUserPresence$observeAllPresences$1;->invoke()Ljava/util/Map; + + move-result-object v0 + + return-object v0 +.end method + +.method public final invoke()Ljava/util/Map; + .locals 1 + .annotation system Ldalvik/annotation/Signature; + value = { + "()", + "Ljava/util/Map<", + "Ljava/lang/Long;", + "Lcom/discord/models/domain/ModelPresence;", + ">;" + } + .end annotation + + iget-object v0, p0, Lcom/discord/stores/StoreUserPresence$observeAllPresences$1;->this$0:Lcom/discord/stores/StoreUserPresence; + + invoke-static {v0}, Lcom/discord/stores/StoreUserPresence;->access$getPresencesSnapshot$p(Lcom/discord/stores/StoreUserPresence;)Ljava/util/Map; + + move-result-object v0 + + return-object v0 +.end method diff --git a/com.discord/smali/com/discord/stores/StoreUserPresence$getApplicationActivity$1.smali b/com.discord/smali/com/discord/stores/StoreUserPresence$observeApplicationActivity$1.smali similarity index 82% rename from com.discord/smali/com/discord/stores/StoreUserPresence$getApplicationActivity$1.smali rename to com.discord/smali/com/discord/stores/StoreUserPresence$observeApplicationActivity$1.smali index e3fcbf7f49..6aa49dd80c 100644 --- a/com.discord/smali/com/discord/stores/StoreUserPresence$getApplicationActivity$1.smali +++ b/com.discord/smali/com/discord/stores/StoreUserPresence$observeApplicationActivity$1.smali @@ -1,4 +1,4 @@ -.class public final Lcom/discord/stores/StoreUserPresence$getApplicationActivity$1; +.class public final Lcom/discord/stores/StoreUserPresence$observeApplicationActivity$1; .super Ljava/lang/Object; .source "StoreUserPresence.kt" @@ -8,7 +8,7 @@ # annotations .annotation system Ldalvik/annotation/EnclosingMethod; - value = Lcom/discord/stores/StoreUserPresence;->getApplicationActivity(JJ)Lrx/Observable; + value = Lcom/discord/stores/StoreUserPresence;->observeApplicationActivity(JJ)Lrx/Observable; .end annotation .annotation system Ldalvik/annotation/InnerClass; @@ -40,7 +40,7 @@ .method public constructor (J)V .locals 0 - iput-wide p1, p0, Lcom/discord/stores/StoreUserPresence$getApplicationActivity$1;->$applicationId:J + iput-wide p1, p0, Lcom/discord/stores/StoreUserPresence$observeApplicationActivity$1;->$applicationId:J invoke-direct {p0}, Ljava/lang/Object;->()V @@ -94,7 +94,7 @@ move-result-wide v2 - iget-wide v4, p0, Lcom/discord/stores/StoreUserPresence$getApplicationActivity$1;->$applicationId:J + iget-wide v4, p0, Lcom/discord/stores/StoreUserPresence$observeApplicationActivity$1;->$applicationId:J cmp-long v6, v2, v4 @@ -125,7 +125,7 @@ check-cast p1, Lcom/discord/models/domain/ModelPresence; - invoke-virtual {p0, p1}, Lcom/discord/stores/StoreUserPresence$getApplicationActivity$1;->call(Lcom/discord/models/domain/ModelPresence;)Lcom/discord/models/domain/activity/ModelActivity; + invoke-virtual {p0, p1}, Lcom/discord/stores/StoreUserPresence$observeApplicationActivity$1;->call(Lcom/discord/models/domain/ModelPresence;)Lcom/discord/models/domain/activity/ModelActivity; move-result-object p1 diff --git a/com.discord/smali/com/discord/stores/StoreUserPresence$observeLocalPresence$1.smali b/com.discord/smali/com/discord/stores/StoreUserPresence$observeLocalPresence$1.smali new file mode 100644 index 0000000000..ebdb9c3c0e --- /dev/null +++ b/com.discord/smali/com/discord/stores/StoreUserPresence$observeLocalPresence$1.smali @@ -0,0 +1,68 @@ +.class public final Lcom/discord/stores/StoreUserPresence$observeLocalPresence$1; +.super Lc0/n/c/k; +.source "StoreUserPresence.kt" + +# interfaces +.implements Lkotlin/jvm/functions/Function0; + + +# annotations +.annotation system Ldalvik/annotation/EnclosingMethod; + value = Lcom/discord/stores/StoreUserPresence;->observeLocalPresence()Lrx/Observable; +.end annotation + +.annotation system Ldalvik/annotation/InnerClass; + accessFlags = 0x19 + name = null +.end annotation + +.annotation system Ldalvik/annotation/Signature; + value = { + "Lc0/n/c/k;", + "Lkotlin/jvm/functions/Function0<", + "Lcom/discord/models/domain/ModelPresence;", + ">;" + } +.end annotation + + +# instance fields +.field public final synthetic this$0:Lcom/discord/stores/StoreUserPresence; + + +# direct methods +.method public constructor (Lcom/discord/stores/StoreUserPresence;)V + .locals 0 + + iput-object p1, p0, Lcom/discord/stores/StoreUserPresence$observeLocalPresence$1;->this$0:Lcom/discord/stores/StoreUserPresence; + + const/4 p1, 0x0 + + invoke-direct {p0, p1}, Lc0/n/c/k;->(I)V + + return-void +.end method + + +# virtual methods +.method public final invoke()Lcom/discord/models/domain/ModelPresence; + .locals 1 + + iget-object v0, p0, Lcom/discord/stores/StoreUserPresence$observeLocalPresence$1;->this$0:Lcom/discord/stores/StoreUserPresence; + + invoke-static {v0}, Lcom/discord/stores/StoreUserPresence;->access$getLocalPresenceSnapshot$p(Lcom/discord/stores/StoreUserPresence;)Lcom/discord/models/domain/ModelPresence; + + move-result-object v0 + + return-object v0 +.end method + +.method public bridge synthetic invoke()Ljava/lang/Object; + .locals 1 + + invoke-virtual {p0}, Lcom/discord/stores/StoreUserPresence$observeLocalPresence$1;->invoke()Lcom/discord/models/domain/ModelPresence; + + move-result-object v0 + + return-object v0 +.end method diff --git a/com.discord/smali/com/discord/stores/StoreUserPresence$getForUserId$1.smali b/com.discord/smali/com/discord/stores/StoreUserPresence$observePresenceForUser$1.smali similarity index 80% rename from com.discord/smali/com/discord/stores/StoreUserPresence$getForUserId$1.smali rename to com.discord/smali/com/discord/stores/StoreUserPresence$observePresenceForUser$1.smali index b9bda3d857..ab3e2a956a 100644 --- a/com.discord/smali/com/discord/stores/StoreUserPresence$getForUserId$1.smali +++ b/com.discord/smali/com/discord/stores/StoreUserPresence$observePresenceForUser$1.smali @@ -1,4 +1,4 @@ -.class public final Lcom/discord/stores/StoreUserPresence$getForUserId$1; +.class public final Lcom/discord/stores/StoreUserPresence$observePresenceForUser$1; .super Ljava/lang/Object; .source "StoreUserPresence.kt" @@ -8,7 +8,7 @@ # annotations .annotation system Ldalvik/annotation/EnclosingMethod; - value = Lcom/discord/stores/StoreUserPresence;->getForUserId(J)Lrx/Observable; + value = Lcom/discord/stores/StoreUserPresence;->observePresenceForUser(J)Lrx/Observable; .end annotation .annotation system Ldalvik/annotation/InnerClass; @@ -44,7 +44,7 @@ .method public constructor (J)V .locals 0 - iput-wide p1, p0, Lcom/discord/stores/StoreUserPresence$getForUserId$1;->$userId:J + iput-wide p1, p0, Lcom/discord/stores/StoreUserPresence$observePresenceForUser$1;->$userId:J invoke-direct {p0}, Ljava/lang/Object;->()V @@ -66,7 +66,7 @@ } .end annotation - iget-wide v0, p0, Lcom/discord/stores/StoreUserPresence$getForUserId$1;->$userId:J + iget-wide v0, p0, Lcom/discord/stores/StoreUserPresence$observePresenceForUser$1;->$userId:J invoke-static {v0, v1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; @@ -86,7 +86,7 @@ check-cast p1, Ljava/util/Map; - invoke-virtual {p0, p1}, Lcom/discord/stores/StoreUserPresence$getForUserId$1;->call(Ljava/util/Map;)Lcom/discord/models/domain/ModelPresence; + invoke-virtual {p0, p1}, Lcom/discord/stores/StoreUserPresence$observePresenceForUser$1;->call(Ljava/util/Map;)Lcom/discord/models/domain/ModelPresence; move-result-object p1 diff --git a/com.discord/smali/com/discord/stores/StoreUserPresence$getForUserIds$1.smali b/com.discord/smali/com/discord/stores/StoreUserPresence$observePresencesForUsers$1.smali similarity index 86% rename from com.discord/smali/com/discord/stores/StoreUserPresence$getForUserIds$1.smali rename to com.discord/smali/com/discord/stores/StoreUserPresence$observePresencesForUsers$1.smali index 98c61e29c8..829c769a66 100644 --- a/com.discord/smali/com/discord/stores/StoreUserPresence$getForUserIds$1.smali +++ b/com.discord/smali/com/discord/stores/StoreUserPresence$observePresencesForUsers$1.smali @@ -1,4 +1,4 @@ -.class public final Lcom/discord/stores/StoreUserPresence$getForUserIds$1; +.class public final Lcom/discord/stores/StoreUserPresence$observePresencesForUsers$1; .super Ljava/lang/Object; .source "StoreUserPresence.kt" @@ -8,7 +8,7 @@ # annotations .annotation system Ldalvik/annotation/EnclosingMethod; - value = Lcom/discord/stores/StoreUserPresence;->getForUserIds(Ljava/util/Collection;)Lrx/Observable; + value = Lcom/discord/stores/StoreUserPresence;->observePresencesForUsers(Ljava/util/Collection;)Lrx/Observable; .end annotation .annotation system Ldalvik/annotation/InnerClass; @@ -47,7 +47,7 @@ .method public constructor (Ljava/util/Collection;)V .locals 0 - iput-object p1, p0, Lcom/discord/stores/StoreUserPresence$getForUserIds$1;->$userIds:Ljava/util/Collection; + iput-object p1, p0, Lcom/discord/stores/StoreUserPresence$observePresencesForUsers$1;->$userIds:Ljava/util/Collection; invoke-direct {p0}, Ljava/lang/Object;->()V @@ -61,7 +61,7 @@ check-cast p1, Ljava/util/Map; - invoke-virtual {p0, p1}, Lcom/discord/stores/StoreUserPresence$getForUserIds$1;->call(Ljava/util/Map;)Ljava/util/Map; + invoke-virtual {p0, p1}, Lcom/discord/stores/StoreUserPresence$observePresencesForUsers$1;->call(Ljava/util/Map;)Ljava/util/Map; move-result-object p1 @@ -124,7 +124,7 @@ move-result-wide v2 - iget-object v4, p0, Lcom/discord/stores/StoreUserPresence$getForUserIds$1;->$userIds:Ljava/util/Collection; + iget-object v4, p0, Lcom/discord/stores/StoreUserPresence$observePresencesForUsers$1;->$userIds:Ljava/util/Collection; invoke-static {v2, v3}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; diff --git a/com.discord/smali/com/discord/stores/StoreUserPresence.smali b/com.discord/smali/com/discord/stores/StoreUserPresence.smali index 2f20b93e82..a8d32f204e 100644 --- a/com.discord/smali/com/discord/stores/StoreUserPresence.smali +++ b/com.discord/smali/com/discord/stores/StoreUserPresence.smali @@ -1,41 +1,34 @@ .class public final Lcom/discord/stores/StoreUserPresence; -.super Lcom/discord/stores/Store; +.super Lcom/discord/stores/StoreV2; .source "StoreUserPresence.kt" -# interfaces -.implements Lcom/discord/stores/DispatchHandler; - # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { - Lcom/discord/stores/StoreUserPresence$TimestampedPresence; + Lcom/discord/stores/StoreUserPresence$TimestampedPresence;, + Lcom/discord/stores/StoreUserPresence$Companion; } .end annotation +# static fields +.field public static final Companion:Lcom/discord/stores/StoreUserPresence$Companion; + +.field public static final LocalPresenceUpdateSource:Lcom/discord/stores/StoreUserPresence$Companion$LocalPresenceUpdateSource$1; + + # instance fields .field public final clock:Lcom/discord/utilities/time/Clock; -.field public isDirty:Z - -.field public isLocalPresenceDirty:Z - .field public localPresence:Lcom/discord/models/domain/ModelPresence; -.field public final localPresenceSubject:Lrx/subjects/SerializedSubject; - .annotation system Ldalvik/annotation/Signature; - value = { - "Lrx/subjects/SerializedSubject<", - "Lcom/discord/models/domain/ModelPresence;", - "Lcom/discord/models/domain/ModelPresence;", - ">;" - } - .end annotation -.end field +.field public localPresenceSnapshot:Lcom/discord/models/domain/ModelPresence; .field public meUser:Lcom/discord/models/domain/ModelUser; +.field public final observationDeck:Lcom/discord/stores/updates/ObservationDeck; + .field public final presences:Lcom/discord/utilities/collections/SnowflakePartitionMap$CopiablePartitionMap; .annotation system Ldalvik/annotation/Signature; value = { @@ -46,18 +39,13 @@ .end annotation .end field -.field public final presencesPublisher:Lrx/subjects/SerializedSubject; +.field public presencesSnapshot:Ljava/util/Map; .annotation system Ldalvik/annotation/Signature; value = { - "Lrx/subjects/SerializedSubject<", "Ljava/util/Map<", "Ljava/lang/Long;", "Lcom/discord/models/domain/ModelPresence;", - ">;", - "Ljava/util/Map<", - "Ljava/lang/Long;", - "Lcom/discord/models/domain/ModelPresence;", - ">;>;" + ">;" } .end annotation .end field @@ -79,7 +67,27 @@ # direct methods -.method public constructor (Lcom/discord/utilities/time/Clock;Lcom/discord/stores/StoreStream;)V +.method public static constructor ()V + .locals 2 + + new-instance v0, Lcom/discord/stores/StoreUserPresence$Companion; + + const/4 v1, 0x0 + + invoke-direct {v0, v1}, Lcom/discord/stores/StoreUserPresence$Companion;->(Lkotlin/jvm/internal/DefaultConstructorMarker;)V + + sput-object v0, Lcom/discord/stores/StoreUserPresence;->Companion:Lcom/discord/stores/StoreUserPresence$Companion; + + new-instance v0, Lcom/discord/stores/StoreUserPresence$Companion$LocalPresenceUpdateSource$1; + + invoke-direct {v0}, Lcom/discord/stores/StoreUserPresence$Companion$LocalPresenceUpdateSource$1;->()V + + sput-object v0, Lcom/discord/stores/StoreUserPresence;->LocalPresenceUpdateSource:Lcom/discord/stores/StoreUserPresence$Companion$LocalPresenceUpdateSource$1; + + return-void +.end method + +.method public constructor (Lcom/discord/utilities/time/Clock;Lcom/discord/stores/StoreStream;Lcom/discord/stores/updates/ObservationDeck;)V .locals 10 const-string v0, "clock" @@ -90,21 +98,27 @@ invoke-static {p2, v0}, Lc0/n/c/j;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V - invoke-direct {p0}, Lcom/discord/stores/Store;->()V + const-string v0, "observationDeck" + + invoke-static {p3, v0}, Lc0/n/c/j;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V + + invoke-direct {p0}, Lcom/discord/stores/StoreV2;->()V iput-object p1, p0, Lcom/discord/stores/StoreUserPresence;->clock:Lcom/discord/utilities/time/Clock; iput-object p2, p0, Lcom/discord/stores/StoreUserPresence;->stream:Lcom/discord/stores/StoreStream; + iput-object p3, p0, Lcom/discord/stores/StoreUserPresence;->observationDeck:Lcom/discord/stores/updates/ObservationDeck; + new-instance p1, Lcom/discord/utilities/collections/SnowflakePartitionMap$CopiablePartitionMap; const/4 p2, 0x0 - const/4 v0, 0x1 + const/4 p3, 0x1 - const/4 v1, 0x0 + const/4 v0, 0x0 - invoke-direct {p1, p2, v0, v1}, Lcom/discord/utilities/collections/SnowflakePartitionMap$CopiablePartitionMap;->(IILkotlin/jvm/internal/DefaultConstructorMarker;)V + invoke-direct {p1, p2, p3, v0}, Lcom/discord/utilities/collections/SnowflakePartitionMap$CopiablePartitionMap;->(IILkotlin/jvm/internal/DefaultConstructorMarker;)V iput-object p1, p0, Lcom/discord/stores/StoreUserPresence;->presences:Lcom/discord/utilities/collections/SnowflakePartitionMap$CopiablePartitionMap; @@ -114,19 +128,11 @@ iput-object p1, p0, Lcom/discord/stores/StoreUserPresence;->userGuildPresences:Ljava/util/HashMap; - new-instance p1, Lrx/subjects/SerializedSubject; + new-instance p1, Ljava/util/HashMap; - new-instance p2, Ljava/util/HashMap; + invoke-direct {p1}, Ljava/util/HashMap;->()V - invoke-direct {p2}, Ljava/util/HashMap;->()V - - invoke-static {p2}, Lrx/subjects/BehaviorSubject;->h0(Ljava/lang/Object;)Lrx/subjects/BehaviorSubject; - - move-result-object p2 - - invoke-direct {p1, p2}, Lrx/subjects/SerializedSubject;->(Lrx/subjects/Subject;)V - - iput-object p1, p0, Lcom/discord/stores/StoreUserPresence;->presencesPublisher:Lrx/subjects/SerializedSubject; + iput-object p1, p0, Lcom/discord/stores/StoreUserPresence;->presencesSnapshot:Ljava/util/Map; new-instance p1, Lcom/discord/models/domain/ModelPresence; @@ -152,15 +158,47 @@ iput-object p1, p0, Lcom/discord/stores/StoreUserPresence;->localPresence:Lcom/discord/models/domain/ModelPresence; - new-instance p2, Lrx/subjects/SerializedSubject; + const/4 v1, 0x0 - invoke-static {p1}, Lrx/subjects/BehaviorSubject;->h0(Ljava/lang/Object;)Lrx/subjects/BehaviorSubject; + const/16 v8, 0x3f + + invoke-static/range {v0 .. v9}, Lcom/discord/models/domain/ModelPresence;->copy$default(Lcom/discord/models/domain/ModelPresence;Lcom/discord/models/domain/ModelPresence$Status;Ljava/util/List;Lcom/discord/models/domain/ModelPresence$ClientStatuses;Lcom/discord/models/domain/ModelUser;Ljava/lang/Long;JILjava/lang/Object;)Lcom/discord/models/domain/ModelPresence; move-result-object p1 - invoke-direct {p2, p1}, Lrx/subjects/SerializedSubject;->(Lrx/subjects/Subject;)V + iput-object p1, p0, Lcom/discord/stores/StoreUserPresence;->localPresenceSnapshot:Lcom/discord/models/domain/ModelPresence; - iput-object p2, p0, Lcom/discord/stores/StoreUserPresence;->localPresenceSubject:Lrx/subjects/SerializedSubject; + return-void +.end method + +.method public static final synthetic access$getLocalPresenceSnapshot$p(Lcom/discord/stores/StoreUserPresence;)Lcom/discord/models/domain/ModelPresence; + .locals 0 + + iget-object p0, p0, Lcom/discord/stores/StoreUserPresence;->localPresenceSnapshot:Lcom/discord/models/domain/ModelPresence; + + return-object p0 +.end method + +.method public static final synthetic access$getPresencesSnapshot$p(Lcom/discord/stores/StoreUserPresence;)Ljava/util/Map; + .locals 0 + + iget-object p0, p0, Lcom/discord/stores/StoreUserPresence;->presencesSnapshot:Ljava/util/Map; + + return-object p0 +.end method + +.method public static final synthetic access$setLocalPresenceSnapshot$p(Lcom/discord/stores/StoreUserPresence;Lcom/discord/models/domain/ModelPresence;)V + .locals 0 + + iput-object p1, p0, Lcom/discord/stores/StoreUserPresence;->localPresenceSnapshot:Lcom/discord/models/domain/ModelPresence; + + return-void +.end method + +.method public static final synthetic access$setPresencesSnapshot$p(Lcom/discord/stores/StoreUserPresence;Ljava/util/Map;)V + .locals 0 + + iput-object p1, p0, Lcom/discord/stores/StoreUserPresence;->presencesSnapshot:Ljava/util/Map; return-void .end method @@ -277,289 +315,283 @@ .end method .method private final flattenPresence(J)V - .locals 16 + .locals 13 .annotation runtime Lcom/discord/stores/StoreThread; .end annotation - move-object/from16 v0, p0 + iget-object v0, p0, Lcom/discord/stores/StoreUserPresence;->userGuildPresences:Ljava/util/HashMap; - iget-object v1, v0, Lcom/discord/stores/StoreUserPresence;->userGuildPresences:Ljava/util/HashMap; - - invoke-static/range {p1 .. p2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; - - move-result-object v2 - - invoke-virtual {v1, v2}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; + invoke-static {p1, p2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; move-result-object v1 - check-cast v1, Ljava/util/Map; + invoke-virtual {v0, v1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; - const/4 v2, 0x0 + move-result-object v0 - if-eqz v1, :cond_4 + check-cast v0, Ljava/util/Map; - invoke-interface {v1}, Ljava/util/Map;->values()Ljava/util/Collection; + const/4 v1, 0x0 - move-result-object v1 + if-eqz v0, :cond_4 - if-eqz v1, :cond_4 + invoke-interface {v0}, Ljava/util/Map;->values()Ljava/util/Collection; - invoke-interface {v1}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator; + move-result-object v0 - move-result-object v1 + if-eqz v0, :cond_4 - invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z + invoke-interface {v0}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator; - move-result v3 + move-result-object v0 - if-nez v3, :cond_0 + invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z - move-object v3, v2 + move-result v2 + + if-nez v2, :cond_0 + + move-object v2, v1 goto :goto_0 :cond_0 - invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; + invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; - move-result-object v3 + move-result-object v2 - invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z + invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z - move-result v4 + move-result v3 - if-nez v4, :cond_1 + if-nez v3, :cond_1 goto :goto_0 :cond_1 - move-object v4, v3 + move-object v3, v2 - check-cast v4, Lcom/discord/stores/StoreUserPresence$TimestampedPresence; - - invoke-virtual {v4}, Lcom/discord/stores/StoreUserPresence$TimestampedPresence;->getTimestamp()J - - move-result-wide v4 - - :cond_2 - invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; - - move-result-object v6 - - move-object v7, v6 - - check-cast v7, Lcom/discord/stores/StoreUserPresence$TimestampedPresence; - - invoke-virtual {v7}, Lcom/discord/stores/StoreUserPresence$TimestampedPresence;->getTimestamp()J - - move-result-wide v7 - - cmp-long v9, v4, v7 - - if-gez v9, :cond_3 - - move-object v3, v6 - - move-wide v4, v7 - - :cond_3 - invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z - - move-result v6 - - if-nez v6, :cond_2 - - :goto_0 check-cast v3, Lcom/discord/stores/StoreUserPresence$TimestampedPresence; - if-eqz v3, :cond_4 + invoke-virtual {v3}, Lcom/discord/stores/StoreUserPresence$TimestampedPresence;->getTimestamp()J - invoke-virtual {v3}, Lcom/discord/stores/StoreUserPresence$TimestampedPresence;->getPresence()Lcom/discord/models/domain/ModelPresence; + move-result-wide v3 - move-result-object v1 + :cond_2 + invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; + + move-result-object v5 + + move-object v6, v5 + + check-cast v6, Lcom/discord/stores/StoreUserPresence$TimestampedPresence; + + invoke-virtual {v6}, Lcom/discord/stores/StoreUserPresence$TimestampedPresence;->getTimestamp()J + + move-result-wide v6 + + cmp-long v8, v3, v6 + + if-gez v8, :cond_3 + + move-object v2, v5 + + move-wide v3, v6 + + :cond_3 + invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z + + move-result v5 + + if-nez v5, :cond_2 + + :goto_0 + check-cast v2, Lcom/discord/stores/StoreUserPresence$TimestampedPresence; + + if-eqz v2, :cond_4 + + invoke-virtual {v2}, Lcom/discord/stores/StoreUserPresence$TimestampedPresence;->getPresence()Lcom/discord/models/domain/ModelPresence; + + move-result-object v0 goto :goto_1 :cond_4 - move-object v1, v2 + move-object v0, v1 :goto_1 - if-eqz v1, :cond_5 + if-eqz v0, :cond_5 - invoke-virtual {v1}, Lcom/discord/models/domain/ModelPresence;->getStatus()Lcom/discord/models/domain/ModelPresence$Status; + invoke-virtual {v0}, Lcom/discord/models/domain/ModelPresence;->getStatus()Lcom/discord/models/domain/ModelPresence$Status; - move-result-object v3 + move-result-object v2 - if-eqz v3, :cond_5 + if-eqz v2, :cond_5 goto :goto_2 :cond_5 - sget-object v3, Lcom/discord/models/domain/ModelPresence$Status;->OFFLINE:Lcom/discord/models/domain/ModelPresence$Status; + sget-object v2, Lcom/discord/models/domain/ModelPresence$Status;->OFFLINE:Lcom/discord/models/domain/ModelPresence$Status; :goto_2 - move-object v5, v3 + move-object v4, v2 - if-eqz v1, :cond_6 + if-eqz v0, :cond_6 - invoke-virtual {v1}, Lcom/discord/models/domain/ModelPresence;->getActivities()Ljava/util/List; + invoke-virtual {v0}, Lcom/discord/models/domain/ModelPresence;->getActivities()Ljava/util/List; + + move-result-object v2 + + if-eqz v2, :cond_6 + + sget-object v3, Lcom/discord/utilities/presence/PresenceUtils;->INSTANCE:Lcom/discord/utilities/presence/PresenceUtils; + + invoke-virtual {v3}, Lcom/discord/utilities/presence/PresenceUtils;->getACTIVITY_COMPARATOR$app_productionDiscordExternalRelease()Ljava/util/Comparator; move-result-object v3 - if-eqz v3, :cond_6 + invoke-static {v2, v3}, Lc0/i/f;->sortedWith(Ljava/lang/Iterable;Ljava/util/Comparator;)Ljava/util/List; - sget-object v4, Lcom/discord/utilities/presence/PresenceUtils;->INSTANCE:Lcom/discord/utilities/presence/PresenceUtils; + move-result-object v2 - invoke-virtual {v4}, Lcom/discord/utilities/presence/PresenceUtils;->getACTIVITY_COMPARATOR$app_productionDiscordExternalRelease()Ljava/util/Comparator; + invoke-static {v2}, Lc0/i/f;->reversed(Ljava/lang/Iterable;)Ljava/util/List; - move-result-object v4 + move-result-object v2 - invoke-static {v3, v4}, Lc0/i/f;->sortedWith(Ljava/lang/Iterable;Ljava/util/Comparator;)Ljava/util/List; - - move-result-object v3 - - invoke-static {v3}, Lc0/i/f;->reversed(Ljava/lang/Iterable;)Ljava/util/List; - - move-result-object v3 - - move-object v6, v3 + move-object v5, v2 goto :goto_3 :cond_6 - move-object v6, v2 + move-object v5, v1 :goto_3 - if-eqz v1, :cond_7 + if-eqz v0, :cond_7 - invoke-virtual {v1}, Lcom/discord/models/domain/ModelPresence;->getClientStatuses()Lcom/discord/models/domain/ModelPresence$ClientStatuses; + invoke-virtual {v0}, Lcom/discord/models/domain/ModelPresence;->getClientStatuses()Lcom/discord/models/domain/ModelPresence$ClientStatuses; - move-result-object v1 + move-result-object v0 goto :goto_4 :cond_7 - move-object v1, v2 + move-object v0, v1 :goto_4 - sget-object v3, Lcom/discord/models/domain/ModelPresence$Status;->OFFLINE:Lcom/discord/models/domain/ModelPresence$Status; + sget-object v2, Lcom/discord/models/domain/ModelPresence$Status;->OFFLINE:Lcom/discord/models/domain/ModelPresence$Status; - const/4 v14, 0x1 + if-ne v4, v2, :cond_8 - if-ne v5, v3, :cond_8 + iget-object v0, p0, Lcom/discord/stores/StoreUserPresence;->userGuildPresences:Ljava/util/HashMap; - iget-object v1, v0, Lcom/discord/stores/StoreUserPresence;->userGuildPresences:Ljava/util/HashMap; - - invoke-static/range {p1 .. p2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; - - move-result-object v2 - - invoke-virtual {v1, v2}, Ljava/util/HashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object; - - iget-object v1, v0, Lcom/discord/stores/StoreUserPresence;->presences:Lcom/discord/utilities/collections/SnowflakePartitionMap$CopiablePartitionMap; - - invoke-static/range {p1 .. p2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; - - move-result-object v2 - - invoke-virtual {v1, v2}, Lcom/discord/utilities/collections/SnowflakePartitionMap$CopiablePartitionMap;->remove(Ljava/lang/Object;)Ljava/lang/Object; + invoke-static {p1, p2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; move-result-object v1 - check-cast v1, Lcom/discord/models/domain/ModelPresence; + invoke-virtual {v0, v1}, Ljava/util/HashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object; - if-eqz v1, :cond_c + iget-object v0, p0, Lcom/discord/stores/StoreUserPresence;->presences:Lcom/discord/utilities/collections/SnowflakePartitionMap$CopiablePartitionMap; - iput-boolean v14, v0, Lcom/discord/stores/StoreUserPresence;->isDirty:Z + invoke-static {p1, p2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; + + move-result-object p1 + + invoke-virtual {v0, p1}, Lcom/discord/utilities/collections/SnowflakePartitionMap$CopiablePartitionMap;->remove(Ljava/lang/Object;)Ljava/lang/Object; + + move-result-object p1 + + if-eqz p1, :cond_c + + invoke-virtual {p0}, Lcom/discord/stores/StoreV2;->markChanged()V goto :goto_6 :cond_8 - iget-object v3, v0, Lcom/discord/stores/StoreUserPresence;->presences:Lcom/discord/utilities/collections/SnowflakePartitionMap$CopiablePartitionMap; + iget-object v2, p0, Lcom/discord/stores/StoreUserPresence;->presences:Lcom/discord/utilities/collections/SnowflakePartitionMap$CopiablePartitionMap; - invoke-static/range {p1 .. p2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; - - move-result-object v4 - - invoke-virtual {v3, v4}, Lcom/discord/utilities/collections/SnowflakePartitionMap$CopiablePartitionMap;->get(Ljava/lang/Object;)Ljava/lang/Object; + invoke-static {p1, p2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; move-result-object v3 - check-cast v3, Lcom/discord/models/domain/ModelPresence; - - if-eqz v3, :cond_9 - - invoke-virtual {v3}, Lcom/discord/models/domain/ModelPresence;->getStatus()Lcom/discord/models/domain/ModelPresence$Status; + invoke-virtual {v2, v3}, Lcom/discord/utilities/collections/SnowflakePartitionMap$CopiablePartitionMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v2 + check-cast v2, Lcom/discord/models/domain/ModelPresence; + + if-eqz v2, :cond_9 + + invoke-virtual {v2}, Lcom/discord/models/domain/ModelPresence;->getStatus()Lcom/discord/models/domain/ModelPresence$Status; + + move-result-object v1 + :cond_9 - if-ne v2, v5, :cond_a + if-ne v1, v4, :cond_a - invoke-virtual {v3}, Lcom/discord/models/domain/ModelPresence;->getActivities()Ljava/util/List; + invoke-virtual {v2}, Lcom/discord/models/domain/ModelPresence;->getActivities()Ljava/util/List; - move-result-object v2 + move-result-object v1 - invoke-static {v2, v6}, Lc0/n/c/j;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z + invoke-static {v1, v5}, Lc0/n/c/j;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z - move-result v2 + move-result v1 - xor-int/2addr v2, v14 + xor-int/lit8 v1, v1, 0x1 - if-nez v2, :cond_a + if-nez v1, :cond_a - invoke-virtual {v3}, Lcom/discord/models/domain/ModelPresence;->getClientStatuses()Lcom/discord/models/domain/ModelPresence$ClientStatuses; + invoke-virtual {v2}, Lcom/discord/models/domain/ModelPresence;->getClientStatuses()Lcom/discord/models/domain/ModelPresence$ClientStatuses; - move-result-object v2 + move-result-object v1 - invoke-static {v2, v1}, Lc0/n/c/j;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z + invoke-static {v1, v0}, Lc0/n/c/j;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z - move-result v2 + move-result v1 - xor-int/2addr v2, v14 + xor-int/lit8 v1, v1, 0x1 - if-eqz v2, :cond_c + if-eqz v1, :cond_c :cond_a - iget-object v2, v0, Lcom/discord/stores/StoreUserPresence;->presences:Lcom/discord/utilities/collections/SnowflakePartitionMap$CopiablePartitionMap; + iget-object v1, p0, Lcom/discord/stores/StoreUserPresence;->presences:Lcom/discord/utilities/collections/SnowflakePartitionMap$CopiablePartitionMap; - invoke-static/range {p1 .. p2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; + invoke-static {p1, p2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; - move-result-object v3 + move-result-object p1 - new-instance v15, Lcom/discord/models/domain/ModelPresence; + new-instance p2, Lcom/discord/models/domain/ModelPresence; - if-eqz v1, :cond_b + if-eqz v0, :cond_b goto :goto_5 :cond_b - sget-object v1, Lcom/discord/models/domain/ModelPresence$ClientStatuses;->Companion:Lcom/discord/models/domain/ModelPresence$ClientStatuses$Companion; + sget-object v0, Lcom/discord/models/domain/ModelPresence$ClientStatuses;->Companion:Lcom/discord/models/domain/ModelPresence$ClientStatuses$Companion; - invoke-virtual {v1}, Lcom/discord/models/domain/ModelPresence$ClientStatuses$Companion;->empty()Lcom/discord/models/domain/ModelPresence$ClientStatuses; + invoke-virtual {v0}, Lcom/discord/models/domain/ModelPresence$ClientStatuses$Companion;->empty()Lcom/discord/models/domain/ModelPresence$ClientStatuses; - move-result-object v1 + move-result-object v0 :goto_5 - move-object v7, v1 + move-object v6, v0 + + const/4 v7, 0x0 const/4 v8, 0x0 - const/4 v9, 0x0 + const-wide/16 v9, 0x0 - const-wide/16 v10, 0x0 + const/16 v11, 0x38 - const/16 v12, 0x38 + const/4 v12, 0x0 - const/4 v13, 0x0 + move-object v3, p2 - move-object v4, v15 + invoke-direct/range {v3 .. v12}, Lcom/discord/models/domain/ModelPresence;->(Lcom/discord/models/domain/ModelPresence$Status;Ljava/util/List;Lcom/discord/models/domain/ModelPresence$ClientStatuses;Lcom/discord/models/domain/ModelUser;Ljava/lang/Long;JILkotlin/jvm/internal/DefaultConstructorMarker;)V - invoke-direct/range {v4 .. v13}, Lcom/discord/models/domain/ModelPresence;->(Lcom/discord/models/domain/ModelPresence$Status;Ljava/util/List;Lcom/discord/models/domain/ModelPresence$ClientStatuses;Lcom/discord/models/domain/ModelUser;Ljava/lang/Long;JILkotlin/jvm/internal/DefaultConstructorMarker;)V + invoke-interface {v1, p1, p2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; - invoke-interface {v2, v3, v15}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; - - iput-boolean v14, v0, Lcom/discord/stores/StoreUserPresence;->isDirty:Z + invoke-virtual {p0}, Lcom/discord/stores/StoreV2;->markChanged()V :cond_c :goto_6 @@ -1075,13 +1107,15 @@ iput-object v2, v0, Lcom/discord/stores/StoreUserPresence;->localPresence:Lcom/discord/models/domain/ModelPresence; - iget-object v4, v0, Lcom/discord/stores/StoreUserPresence;->localPresenceSubject:Lrx/subjects/SerializedSubject; + new-array v2, v14, [Lcom/discord/stores/updates/ObservationDeck$UpdateSource; - iget-object v4, v4, Lrx/subjects/SerializedSubject;->e:Ll0/n/c; + const/4 v4, 0x0 - invoke-virtual {v4, v2}, Ll0/n/c;->onNext(Ljava/lang/Object;)V + sget-object v5, Lcom/discord/stores/StoreUserPresence;->LocalPresenceUpdateSource:Lcom/discord/stores/StoreUserPresence$Companion$LocalPresenceUpdateSource$1; - iput-boolean v14, v0, Lcom/discord/stores/StoreUserPresence;->isLocalPresenceDirty:Z + aput-object v5, v2, v4 + + invoke-virtual {v0, v2}, Lcom/discord/stores/StoreV2;->markChanged([Lcom/discord/stores/updates/ObservationDeck$UpdateSource;)V :cond_9 const-wide v14, 0x7fffffffffffffffL @@ -1120,9 +1154,9 @@ if-nez v1, :cond_a - const/4 v1, 0x0 + sget-object v1, Lcom/discord/stores/StoreUserPresence;->LocalPresenceUpdateSource:Lcom/discord/stores/StoreUserPresence$Companion$LocalPresenceUpdateSource$1; - iput-boolean v1, v0, Lcom/discord/stores/StoreUserPresence;->isLocalPresenceDirty:Z + invoke-virtual {v0, v1}, Lcom/discord/stores/StoreV2;->markUnchanged(Lcom/discord/stores/updates/ObservationDeck$UpdateSource;)V :cond_a return-void @@ -1130,167 +1164,6 @@ # virtual methods -.method public final get()Lrx/Observable; - .locals 1 - .annotation system Ldalvik/annotation/Signature; - value = { - "()", - "Lrx/Observable<", - "Ljava/util/Map<", - "Ljava/lang/Long;", - "Lcom/discord/models/domain/ModelPresence;", - ">;>;" - } - .end annotation - - iget-object v0, p0, Lcom/discord/stores/StoreUserPresence;->presencesPublisher:Lrx/subjects/SerializedSubject; - - invoke-static {v0}, Lcom/discord/utilities/rx/ObservableExtensionsKt;->computationBuffered(Lrx/Observable;)Lrx/Observable; - - move-result-object v0 - - return-object v0 -.end method - -.method public final getApplicationActivity(JJ)Lrx/Observable; - .locals 0 - .annotation system Ldalvik/annotation/Signature; - value = { - "(JJ)", - "Lrx/Observable<", - "Lcom/discord/models/domain/activity/ModelActivity;", - ">;" - } - .end annotation - - invoke-virtual {p0, p1, p2}, Lcom/discord/stores/StoreUserPresence;->getForUserId(J)Lrx/Observable; - - move-result-object p1 - - new-instance p2, Lcom/discord/stores/StoreUserPresence$getApplicationActivity$1; - - invoke-direct {p2, p3, p4}, Lcom/discord/stores/StoreUserPresence$getApplicationActivity$1;->(J)V - - invoke-virtual {p1, p2}, Lrx/Observable;->D(Ll0/k/b;)Lrx/Observable; - - move-result-object p1 - - invoke-virtual {p1}, Lrx/Observable;->q()Lrx/Observable; - - move-result-object p1 - - const-string p2, "getForUserId(userId)\n \u2026 .distinctUntilChanged()" - - invoke-static {p1, p2}, Lc0/n/c/j;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V - - return-object p1 -.end method - -.method public final getForUserId(J)Lrx/Observable; - .locals 2 - .annotation system Ldalvik/annotation/Signature; - value = { - "(J)", - "Lrx/Observable<", - "Lcom/discord/models/domain/ModelPresence;", - ">;" - } - .end annotation - - invoke-virtual {p0}, Lcom/discord/stores/StoreUserPresence;->get()Lrx/Observable; - - move-result-object v0 - - new-instance v1, Lcom/discord/stores/StoreUserPresence$getForUserId$1; - - invoke-direct {v1, p1, p2}, Lcom/discord/stores/StoreUserPresence$getForUserId$1;->(J)V - - invoke-virtual {v0, v1}, Lrx/Observable;->D(Ll0/k/b;)Lrx/Observable; - - move-result-object p1 - - invoke-virtual {p1}, Lrx/Observable;->q()Lrx/Observable; - - move-result-object p1 - - const-string p2, "get()\n .map { it[\u2026 .distinctUntilChanged()" - - invoke-static {p1, p2}, Lc0/n/c/j;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V - - return-object p1 -.end method - -.method public final getForUserIds(Ljava/util/Collection;)Lrx/Observable; - .locals 2 - .annotation system Ldalvik/annotation/Signature; - value = { - "(", - "Ljava/util/Collection<", - "Ljava/lang/Long;", - ">;)", - "Lrx/Observable<", - "Ljava/util/Map<", - "Ljava/lang/Long;", - "Lcom/discord/models/domain/ModelPresence;", - ">;>;" - } - .end annotation - - const-string/jumbo v0, "userIds" - - invoke-static {p1, v0}, Lc0/n/c/j;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V - - invoke-virtual {p0}, Lcom/discord/stores/StoreUserPresence;->get()Lrx/Observable; - - move-result-object v0 - - new-instance v1, Lcom/discord/stores/StoreUserPresence$getForUserIds$1; - - invoke-direct {v1, p1}, Lcom/discord/stores/StoreUserPresence$getForUserIds$1;->(Ljava/util/Collection;)V - - invoke-virtual {v0, v1}, Lrx/Observable;->D(Ll0/k/b;)Lrx/Observable; - - move-result-object p1 - - invoke-virtual {p1}, Lrx/Observable;->q()Lrx/Observable; - - move-result-object p1 - - const-string v0, "get()\n .map { it.\u2026 .distinctUntilChanged()" - - invoke-static {p1, v0}, Lc0/n/c/j;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V - - return-object p1 -.end method - -.method public final getLocalPresence()Lrx/Observable; - .locals 2 - .annotation system Ldalvik/annotation/Signature; - value = { - "()", - "Lrx/Observable<", - "Lcom/discord/models/domain/ModelPresence;", - ">;" - } - .end annotation - - iget-object v0, p0, Lcom/discord/stores/StoreUserPresence;->localPresenceSubject:Lrx/subjects/SerializedSubject; - - invoke-static {v0}, Lcom/discord/utilities/rx/ObservableExtensionsKt;->computationLatest(Lrx/Observable;)Lrx/Observable; - - move-result-object v0 - - invoke-virtual {v0}, Lrx/Observable;->q()Lrx/Observable; - - move-result-object v0 - - const-string v1, "localPresenceSubject\n \u2026 .distinctUntilChanged()" - - invoke-static {v0, v1}, Lc0/n/c/j;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V - - return-object v0 -.end method - .method public final getLocalPresence$app_productionDiscordExternalRelease()Lcom/discord/models/domain/ModelPresence; .locals 1 @@ -1299,6 +1172,14 @@ return-object v0 .end method +.method public final getObservationDeck()Lcom/discord/stores/updates/ObservationDeck; + .locals 1 + + iget-object v0, p0, Lcom/discord/stores/StoreUserPresence;->observationDeck:Lcom/discord/stores/updates/ObservationDeck; + + return-object v0 +.end method + .method public final getPresences()Lcom/discord/utilities/collections/SnowflakePartitionMap$CopiablePartitionMap; .locals 1 .annotation system Ldalvik/annotation/Signature; @@ -1424,9 +1305,7 @@ invoke-direct {p0, v0, p1, v1}, Lcom/discord/stores/StoreUserPresence;->updateSelfPresence(Lcom/discord/models/domain/ModelUserSettings;Ljava/util/List;Z)V - const/4 p1, 0x1 - - iput-boolean p1, p0, Lcom/discord/stores/StoreUserPresence;->isDirty:Z + invoke-virtual {p0}, Lcom/discord/stores/StoreV2;->markChanged()V return-void .end method @@ -1727,38 +1606,240 @@ return-void .end method -.method public onDispatchEnded()V +.method public final observeAllPresences()Lrx/Observable; + .locals 8 + .annotation system Ldalvik/annotation/Signature; + value = { + "()", + "Lrx/Observable<", + "Ljava/util/Map<", + "Ljava/lang/Long;", + "Lcom/discord/models/domain/ModelPresence;", + ">;>;" + } + .end annotation + + iget-object v0, p0, Lcom/discord/stores/StoreUserPresence;->observationDeck:Lcom/discord/stores/updates/ObservationDeck; + + const/4 v1, 0x1 + + new-array v1, v1, [Lcom/discord/stores/updates/ObservationDeck$UpdateSource; + + const/4 v2, 0x0 + + aput-object p0, v1, v2 + + new-instance v5, Lcom/discord/stores/StoreUserPresence$observeAllPresences$1; + + invoke-direct {v5, p0}, Lcom/discord/stores/StoreUserPresence$observeAllPresences$1;->(Lcom/discord/stores/StoreUserPresence;)V + + const/4 v3, 0x0 + + const/4 v4, 0x0 + + const/16 v6, 0xe + + const/4 v7, 0x0 + + invoke-static/range {v0 .. v7}, Lcom/discord/stores/updates/ObservationDeck;->connectRx$default(Lcom/discord/stores/updates/ObservationDeck;[Lcom/discord/stores/updates/ObservationDeck$UpdateSource;ZLrx/Emitter$BackpressureMode;Ljava/lang/String;Lkotlin/jvm/functions/Function0;ILjava/lang/Object;)Lrx/Observable; + + move-result-object v0 + + return-object v0 +.end method + +.method public final observeApplicationActivity(JJ)Lrx/Observable; + .locals 0 + .annotation system Ldalvik/annotation/Signature; + value = { + "(JJ)", + "Lrx/Observable<", + "Lcom/discord/models/domain/activity/ModelActivity;", + ">;" + } + .end annotation + + invoke-virtual {p0, p1, p2}, Lcom/discord/stores/StoreUserPresence;->observePresenceForUser(J)Lrx/Observable; + + move-result-object p1 + + new-instance p2, Lcom/discord/stores/StoreUserPresence$observeApplicationActivity$1; + + invoke-direct {p2, p3, p4}, Lcom/discord/stores/StoreUserPresence$observeApplicationActivity$1;->(J)V + + invoke-virtual {p1, p2}, Lrx/Observable;->D(Ll0/k/b;)Lrx/Observable; + + move-result-object p1 + + invoke-virtual {p1}, Lrx/Observable;->q()Lrx/Observable; + + move-result-object p1 + + const-string p2, "observePresenceForUser(u\u2026 .distinctUntilChanged()" + + invoke-static {p1, p2}, Lc0/n/c/j;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V + + return-object p1 +.end method + +.method public final observeLocalPresence()Lrx/Observable; + .locals 8 + .annotation system Ldalvik/annotation/Signature; + value = { + "()", + "Lrx/Observable<", + "Lcom/discord/models/domain/ModelPresence;", + ">;" + } + .end annotation + + iget-object v0, p0, Lcom/discord/stores/StoreUserPresence;->observationDeck:Lcom/discord/stores/updates/ObservationDeck; + + const/4 v1, 0x1 + + new-array v1, v1, [Lcom/discord/stores/updates/ObservationDeck$UpdateSource; + + sget-object v2, Lcom/discord/stores/StoreUserPresence;->LocalPresenceUpdateSource:Lcom/discord/stores/StoreUserPresence$Companion$LocalPresenceUpdateSource$1; + + const/4 v3, 0x0 + + aput-object v2, v1, v3 + + new-instance v5, Lcom/discord/stores/StoreUserPresence$observeLocalPresence$1; + + invoke-direct {v5, p0}, Lcom/discord/stores/StoreUserPresence$observeLocalPresence$1;->(Lcom/discord/stores/StoreUserPresence;)V + + const/4 v2, 0x0 + + const/4 v3, 0x0 + + const/4 v4, 0x0 + + const/16 v6, 0xe + + const/4 v7, 0x0 + + invoke-static/range {v0 .. v7}, Lcom/discord/stores/updates/ObservationDeck;->connectRx$default(Lcom/discord/stores/updates/ObservationDeck;[Lcom/discord/stores/updates/ObservationDeck$UpdateSource;ZLrx/Emitter$BackpressureMode;Ljava/lang/String;Lkotlin/jvm/functions/Function0;ILjava/lang/Object;)Lrx/Observable; + + move-result-object v0 + + invoke-static {v0}, Lcom/discord/utilities/rx/ObservableExtensionsKt;->computationLatest(Lrx/Observable;)Lrx/Observable; + + move-result-object v0 + + invoke-virtual {v0}, Lrx/Observable;->q()Lrx/Observable; + + move-result-object v0 + + const-string v1, "observationDeck\n .c\u2026 .distinctUntilChanged()" + + invoke-static {v0, v1}, Lc0/n/c/j;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V + + return-object v0 +.end method + +.method public final observePresenceForUser(J)Lrx/Observable; + .locals 2 + .annotation system Ldalvik/annotation/Signature; + value = { + "(J)", + "Lrx/Observable<", + "Lcom/discord/models/domain/ModelPresence;", + ">;" + } + .end annotation + + invoke-virtual {p0}, Lcom/discord/stores/StoreUserPresence;->observeAllPresences()Lrx/Observable; + + move-result-object v0 + + new-instance v1, Lcom/discord/stores/StoreUserPresence$observePresenceForUser$1; + + invoke-direct {v1, p1, p2}, Lcom/discord/stores/StoreUserPresence$observePresenceForUser$1;->(J)V + + invoke-virtual {v0, v1}, Lrx/Observable;->D(Ll0/k/b;)Lrx/Observable; + + move-result-object p1 + + invoke-virtual {p1}, Lrx/Observable;->q()Lrx/Observable; + + move-result-object p1 + + const-string p2, "observeAllPresences()\n \u2026 .distinctUntilChanged()" + + invoke-static {p1, p2}, Lc0/n/c/j;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V + + return-object p1 +.end method + +.method public final observePresencesForUsers(Ljava/util/Collection;)Lrx/Observable; + .locals 2 + .annotation system Ldalvik/annotation/Signature; + value = { + "(", + "Ljava/util/Collection<", + "Ljava/lang/Long;", + ">;)", + "Lrx/Observable<", + "Ljava/util/Map<", + "Ljava/lang/Long;", + "Lcom/discord/models/domain/ModelPresence;", + ">;>;" + } + .end annotation + + const-string/jumbo v0, "userIds" + + invoke-static {p1, v0}, Lc0/n/c/j;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V + + invoke-virtual {p0}, Lcom/discord/stores/StoreUserPresence;->observeAllPresences()Lrx/Observable; + + move-result-object v0 + + new-instance v1, Lcom/discord/stores/StoreUserPresence$observePresencesForUsers$1; + + invoke-direct {v1, p1}, Lcom/discord/stores/StoreUserPresence$observePresencesForUsers$1;->(Ljava/util/Collection;)V + + invoke-virtual {v0, v1}, Lrx/Observable;->D(Ll0/k/b;)Lrx/Observable; + + move-result-object p1 + + invoke-virtual {p1}, Lrx/Observable;->q()Lrx/Observable; + + move-result-object p1 + + const-string v0, "observeAllPresences()\n \u2026 .distinctUntilChanged()" + + invoke-static {p1, v0}, Lc0/n/c/j;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V + + return-object p1 +.end method + +.method public snapshotData()V .locals 8 .annotation runtime Lcom/discord/stores/StoreThread; .end annotation - iget-boolean v0, p0, Lcom/discord/stores/StoreUserPresence;->isDirty:Z + iget-object v0, p0, Lcom/discord/stores/StoreUserPresence;->presences:Lcom/discord/utilities/collections/SnowflakePartitionMap$CopiablePartitionMap; - const/4 v1, 0x0 + invoke-virtual {v0}, Lcom/discord/utilities/collections/SnowflakePartitionMap$CopiablePartitionMap;->fastCopy()Ljava/util/Map; + + move-result-object v0 + + iput-object v0, p0, Lcom/discord/stores/StoreUserPresence;->presencesSnapshot:Ljava/util/Map; + + invoke-virtual {p0}, Lcom/discord/stores/StoreV2;->getUpdateSources()Ljava/util/Set; + + move-result-object v0 + + sget-object v1, Lcom/discord/stores/StoreUserPresence;->LocalPresenceUpdateSource:Lcom/discord/stores/StoreUserPresence$Companion$LocalPresenceUpdateSource$1; + + invoke-interface {v0, v1}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z + + move-result v0 if-eqz v0, :cond_0 - iget-object v0, p0, Lcom/discord/stores/StoreUserPresence;->presencesPublisher:Lrx/subjects/SerializedSubject; - - iget-object v2, p0, Lcom/discord/stores/StoreUserPresence;->presences:Lcom/discord/utilities/collections/SnowflakePartitionMap$CopiablePartitionMap; - - invoke-virtual {v2}, Lcom/discord/utilities/collections/SnowflakePartitionMap$CopiablePartitionMap;->fastCopy()Ljava/util/Map; - - move-result-object v2 - - iget-object v0, v0, Lrx/subjects/SerializedSubject;->e:Ll0/n/c; - - invoke-virtual {v0, v2}, Ll0/n/c;->onNext(Ljava/lang/Object;)V - - iput-boolean v1, p0, Lcom/discord/stores/StoreUserPresence;->isDirty:Z - - :cond_0 - iget-boolean v0, p0, Lcom/discord/stores/StoreUserPresence;->isLocalPresenceDirty:Z - - if-eqz v0, :cond_1 - - iput-boolean v1, p0, Lcom/discord/stores/StoreUserPresence;->isLocalPresenceDirty:Z - sget-object v0, Lcom/discord/stores/StoreStream;->Companion:Lcom/discord/stores/StoreStream$Companion; invoke-virtual {v0}, Lcom/discord/stores/StoreStream$Companion;->getGatewaySocket()Lcom/discord/stores/StoreGatewayConnection; @@ -1787,16 +1868,18 @@ invoke-static/range {v1 .. v7}, Lcom/discord/stores/StoreGatewayConnection;->presenceUpdate$default(Lcom/discord/stores/StoreGatewayConnection;Lcom/discord/models/domain/ModelPresence$Status;Ljava/lang/Long;Ljava/util/List;Ljava/lang/Boolean;ILjava/lang/Object;)Z - :cond_1 + :cond_0 return-void .end method .method public final updateActivity(ILcom/discord/models/domain/activity/ModelActivity;Z)V - .locals 11 + .locals 12 .annotation runtime Lcom/discord/stores/StoreThread; .end annotation - const/4 v0, 0x1 + const/4 v0, 0x0 + + const/4 v1, 0x1 if-nez p3, :cond_4 @@ -1808,9 +1891,9 @@ if-eqz p3, :cond_2 - new-instance v1, Ljava/util/ArrayList; + new-instance v2, Ljava/util/ArrayList; - invoke-direct {v1}, Ljava/util/ArrayList;->()V + invoke-direct {v2}, Ljava/util/ArrayList;->()V invoke-interface {p3}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator; @@ -1820,53 +1903,53 @@ :goto_0 invoke-interface {p3}, Ljava/util/Iterator;->hasNext()Z - move-result v2 + move-result v3 - if-eqz v2, :cond_3 + if-eqz v3, :cond_3 invoke-interface {p3}, Ljava/util/Iterator;->next()Ljava/lang/Object; - move-result-object v2 + move-result-object v3 - move-object v3, v2 + move-object v4, v3 - check-cast v3, Lcom/discord/models/domain/activity/ModelActivity; + check-cast v4, Lcom/discord/models/domain/activity/ModelActivity; - invoke-virtual {v3}, Lcom/discord/models/domain/activity/ModelActivity;->getType()I + invoke-virtual {v4}, Lcom/discord/models/domain/activity/ModelActivity;->getType()I - move-result v3 + move-result v4 if-eqz p2, :cond_1 invoke-virtual {p2}, Lcom/discord/models/domain/activity/ModelActivity;->getType()I - move-result v4 + move-result v5 - if-ne v3, v4, :cond_1 + if-ne v4, v5, :cond_1 - const/4 v3, 0x1 + const/4 v4, 0x1 goto :goto_1 :cond_1 - const/4 v3, 0x0 + const/4 v4, 0x0 :goto_1 - if-eqz v3, :cond_0 + if-eqz v4, :cond_0 - invoke-interface {v1, v2}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z + invoke-interface {v2, v3}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z goto :goto_0 :cond_2 - const/4 v1, 0x0 + const/4 v2, 0x0 :cond_3 - invoke-static {p2, v1}, Lc0/n/c/j;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z + invoke-static {p2, v2}, Lc0/n/c/j;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z move-result p3 - xor-int/2addr p3, v0 + xor-int/2addr p3, v1 if-eqz p3, :cond_6 @@ -1897,7 +1980,7 @@ move-result-object p1 :goto_2 - move-object v3, p1 + move-object v4, p1 new-instance p1, Lcom/discord/models/domain/ModelPresence; @@ -1905,33 +1988,33 @@ invoke-virtual {p2}, Lcom/discord/models/domain/ModelPresence;->getStatus()Lcom/discord/models/domain/ModelPresence$Status; - move-result-object v2 - - const/4 v4, 0x0 + move-result-object v3 const/4 v5, 0x0 const/4 v6, 0x0 - const-wide/16 v7, 0x0 + const/4 v7, 0x0 - const/16 v9, 0x3c + const-wide/16 v8, 0x0 - const/4 v10, 0x0 + const/16 v10, 0x3c - move-object v1, p1 + const/4 v11, 0x0 - invoke-direct/range {v1 .. v10}, Lcom/discord/models/domain/ModelPresence;->(Lcom/discord/models/domain/ModelPresence$Status;Ljava/util/List;Lcom/discord/models/domain/ModelPresence$ClientStatuses;Lcom/discord/models/domain/ModelUser;Ljava/lang/Long;JILkotlin/jvm/internal/DefaultConstructorMarker;)V + move-object v2, p1 + + invoke-direct/range {v2 .. v11}, Lcom/discord/models/domain/ModelPresence;->(Lcom/discord/models/domain/ModelPresence$Status;Ljava/util/List;Lcom/discord/models/domain/ModelPresence$ClientStatuses;Lcom/discord/models/domain/ModelUser;Ljava/lang/Long;JILkotlin/jvm/internal/DefaultConstructorMarker;)V iput-object p1, p0, Lcom/discord/stores/StoreUserPresence;->localPresence:Lcom/discord/models/domain/ModelPresence; - iget-object p2, p0, Lcom/discord/stores/StoreUserPresence;->localPresenceSubject:Lrx/subjects/SerializedSubject; + new-array p1, v1, [Lcom/discord/stores/updates/ObservationDeck$UpdateSource; - iget-object p2, p2, Lrx/subjects/SerializedSubject;->e:Ll0/n/c; + sget-object p2, Lcom/discord/stores/StoreUserPresence;->LocalPresenceUpdateSource:Lcom/discord/stores/StoreUserPresence$Companion$LocalPresenceUpdateSource$1; - invoke-virtual {p2, p1}, Ll0/n/c;->onNext(Ljava/lang/Object;)V + aput-object p2, p1, v0 - iput-boolean v0, p0, Lcom/discord/stores/StoreUserPresence;->isLocalPresenceDirty:Z + invoke-virtual {p0, p1}, Lcom/discord/stores/StoreV2;->markChanged([Lcom/discord/stores/updates/ObservationDeck$UpdateSource;)V iget-object p1, p0, Lcom/discord/stores/StoreUserPresence;->meUser:Lcom/discord/models/domain/ModelUser; @@ -1945,21 +2028,21 @@ invoke-static {p1, p2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; - move-result-object v1 + move-result-object v0 - invoke-virtual {p3, v1}, Lcom/discord/utilities/collections/SnowflakePartitionMap$CopiablePartitionMap;->get(Ljava/lang/Object;)Ljava/lang/Object; + invoke-virtual {p3, v0}, Lcom/discord/utilities/collections/SnowflakePartitionMap$CopiablePartitionMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object p3 check-cast p3, Lcom/discord/models/domain/ModelPresence; - iget-object v1, p0, Lcom/discord/stores/StoreUserPresence;->localPresence:Lcom/discord/models/domain/ModelPresence; + iget-object v0, p0, Lcom/discord/stores/StoreUserPresence;->localPresence:Lcom/discord/models/domain/ModelPresence; - invoke-static {p3, v1}, Lc0/n/c/j;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z + invoke-static {p3, v0}, Lc0/n/c/j;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z move-result p3 - xor-int/2addr p3, v0 + xor-int/2addr p3, v1 if-eqz p3, :cond_6 @@ -1973,7 +2056,7 @@ invoke-interface {p3, p1, p2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; - iput-boolean v0, p0, Lcom/discord/stores/StoreUserPresence;->isDirty:Z + invoke-virtual {p0}, Lcom/discord/stores/StoreV2;->markChanged()V :cond_6 return-void diff --git a/com.discord/smali/com/discord/stores/StoreV2.smali b/com.discord/smali/com/discord/stores/StoreV2.smali index 3a6572ff67..e7de7a4936 100644 --- a/com.discord/smali/com/discord/stores/StoreV2.smali +++ b/com.discord/smali/com/discord/stores/StoreV2.smali @@ -86,6 +86,20 @@ return-void .end method +.method public final markUnchanged(Lcom/discord/stores/updates/ObservationDeck$UpdateSource;)V + .locals 1 + + const-string/jumbo v0, "updateSource" + + invoke-static {p1, v0}, Lc0/n/c/j;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V + + iget-object v0, p0, Lcom/discord/stores/StoreV2;->updateSources:Ljava/util/Set; + + invoke-interface {v0, p1}, Ljava/util/Set;->remove(Ljava/lang/Object;)Z + + return-void +.end method + .method public onDispatchEnded()V .locals 1 diff --git a/com.discord/smali/com/discord/stores/StoreVoiceParticipants$get$1$2$2.smali b/com.discord/smali/com/discord/stores/StoreVoiceParticipants$get$1$2$2.smali index 4fbfee85a2..41dd2d89d3 100644 --- a/com.discord/smali/com/discord/stores/StoreVoiceParticipants$get$1$2$2.smali +++ b/com.discord/smali/com/discord/stores/StoreVoiceParticipants$get$1$2$2.smali @@ -228,7 +228,7 @@ invoke-static {v11, v1}, Lc0/n/c/j;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V - const-string v1, "streamContexts" + const-string/jumbo v1, "streamContexts" move-object/from16 v12, p8 diff --git a/com.discord/smali/com/discord/utilities/analytics/AnalyticSuperProperties.smali b/com.discord/smali/com/discord/utilities/analytics/AnalyticSuperProperties.smali index 671be11dd9..b46574bbb8 100644 --- a/com.discord/smali/com/discord/utilities/analytics/AnalyticSuperProperties.smali +++ b/com.discord/smali/com/discord/utilities/analytics/AnalyticSuperProperties.smali @@ -173,7 +173,7 @@ const-string v3, "browser_user_agent" - const-string v4, "Discord-Android/1296" + const-string v4, "Discord-Android/1297" invoke-direct {v2, v3, v4}, Lkotlin/Pair;->(Ljava/lang/Object;Ljava/lang/Object;)V @@ -181,7 +181,7 @@ const/4 v1, 0x2 - const/16 v2, 0x510 + const/16 v2, 0x511 invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; @@ -201,7 +201,7 @@ const-string v3, "client_version" - const-string v4, "45.0" + const-string v4, "45.1" invoke-direct {v2, v3, v4}, Lkotlin/Pair;->(Ljava/lang/Object;Ljava/lang/Object;)V diff --git a/com.discord/smali/com/discord/utilities/analytics/AnalyticsTracker.smali b/com.discord/smali/com/discord/utilities/analytics/AnalyticsTracker.smali index 6e44c70d75..4f9c6c4c84 100644 --- a/com.discord/smali/com/discord/utilities/analytics/AnalyticsTracker.smali +++ b/com.discord/smali/com/discord/utilities/analytics/AnalyticsTracker.smali @@ -930,7 +930,7 @@ move-result-object v0 - invoke-virtual {v0}, Lcom/discord/stores/StoreUserPresence;->getLocalPresence()Lrx/Observable; + invoke-virtual {v0}, Lcom/discord/stores/StoreUserPresence;->observeLocalPresence()Lrx/Observable; move-result-object v0 @@ -940,7 +940,7 @@ move-result-object v1 - invoke-virtual {v1, p1, p2}, Lcom/discord/stores/StoreUserPresence;->getForUserId(J)Lrx/Observable; + invoke-virtual {v1, p1, p2}, Lcom/discord/stores/StoreUserPresence;->observePresenceForUser(J)Lrx/Observable; move-result-object p1 diff --git a/com.discord/smali/com/discord/utilities/rest/RestAPI$AppHeadersProvider.smali b/com.discord/smali/com/discord/utilities/rest/RestAPI$AppHeadersProvider.smali index 353a7eff4f..97408ac738 100644 --- a/com.discord/smali/com/discord/utilities/rest/RestAPI$AppHeadersProvider.smali +++ b/com.discord/smali/com/discord/utilities/rest/RestAPI$AppHeadersProvider.smali @@ -159,7 +159,7 @@ .method public getUserAgent()Ljava/lang/String; .locals 1 - const-string v0, "Discord-Android/1296" + const-string v0, "Discord-Android/1297" return-object v0 .end method diff --git a/com.discord/smali/com/discord/views/user/UserAvatarPresenceViewController.smali b/com.discord/smali/com/discord/views/user/UserAvatarPresenceViewController.smali index a2c8328650..e5649b30c5 100644 --- a/com.discord/smali/com/discord/views/user/UserAvatarPresenceViewController.smali +++ b/com.discord/smali/com/discord/views/user/UserAvatarPresenceViewController.smali @@ -103,7 +103,7 @@ invoke-static {p4, p5}, Lc0/n/c/j;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V - const-string p5, "streamContextService" + const-string/jumbo p5, "streamContextService" invoke-static {p3, p5}, Lc0/n/c/j;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V diff --git a/com.discord/smali/com/discord/widgets/channels/WidgetGroupInviteFriends$Model$Companion$getFilteredFriends$3.smali b/com.discord/smali/com/discord/widgets/channels/WidgetGroupInviteFriends$Model$Companion$getFilteredFriends$3.smali index 8139f30685..0d3470280d 100644 --- a/com.discord/smali/com/discord/widgets/channels/WidgetGroupInviteFriends$Model$Companion$getFilteredFriends$3.smali +++ b/com.discord/smali/com/discord/widgets/channels/WidgetGroupInviteFriends$Model$Companion$getFilteredFriends$3.smali @@ -102,7 +102,7 @@ move-result-object v1 - invoke-virtual {v0, v1}, Lcom/discord/stores/StoreUserPresence;->getForUserIds(Ljava/util/Collection;)Lrx/Observable; + invoke-virtual {v0, v1}, Lcom/discord/stores/StoreUserPresence;->observePresencesForUsers(Ljava/util/Collection;)Lrx/Observable; move-result-object v0 diff --git a/com.discord/smali/com/discord/widgets/channels/list/WidgetChannelListModel$Companion.smali b/com.discord/smali/com/discord/widgets/channels/list/WidgetChannelListModel$Companion.smali index ce74103f7d..302a9fda31 100644 --- a/com.discord/smali/com/discord/widgets/channels/list/WidgetChannelListModel$Companion.smali +++ b/com.discord/smali/com/discord/widgets/channels/list/WidgetChannelListModel$Companion.smali @@ -104,7 +104,7 @@ move-result-object v0 - invoke-virtual {v0}, Lcom/discord/stores/StoreUserPresence;->get()Lrx/Observable; + invoke-virtual {v0}, Lcom/discord/stores/StoreUserPresence;->observeAllPresences()Lrx/Observable; move-result-object v3 diff --git a/com.discord/smali/com/discord/widgets/channels/memberlist/PrivateChannelMemberListService$observeStateForGroupDm$2.smali b/com.discord/smali/com/discord/widgets/channels/memberlist/PrivateChannelMemberListService$observeStateForGroupDm$2.smali index 15f0a25b49..2b0e220073 100644 --- a/com.discord/smali/com/discord/widgets/channels/memberlist/PrivateChannelMemberListService$observeStateForGroupDm$2.smali +++ b/com.discord/smali/com/discord/widgets/channels/memberlist/PrivateChannelMemberListService$observeStateForGroupDm$2.smali @@ -104,7 +104,7 @@ move-result-object v1 - invoke-virtual {v1, p1}, Lcom/discord/stores/StoreUserPresence;->getForUserIds(Ljava/util/Collection;)Lrx/Observable; + invoke-virtual {v1, p1}, Lcom/discord/stores/StoreUserPresence;->observePresencesForUsers(Ljava/util/Collection;)Lrx/Observable; move-result-object p1 diff --git a/com.discord/smali/com/discord/widgets/chat/input/WidgetChatInputCommandsModel.smali b/com.discord/smali/com/discord/widgets/chat/input/WidgetChatInputCommandsModel.smali index aac60ddb81..2e5d4b3bf4 100644 --- a/com.discord/smali/com/discord/widgets/chat/input/WidgetChatInputCommandsModel.smali +++ b/com.discord/smali/com/discord/widgets/chat/input/WidgetChatInputCommandsModel.smali @@ -1068,7 +1068,7 @@ move-result-object v0 - invoke-virtual {v0}, Lcom/discord/stores/StoreUserPresence;->get()Lrx/Observable; + invoke-virtual {v0}, Lcom/discord/stores/StoreUserPresence;->observeAllPresences()Lrx/Observable; move-result-object v0 @@ -1482,7 +1482,7 @@ move-result-object v1 - invoke-virtual {v1, p1}, Lcom/discord/stores/StoreUserPresence;->getForUserIds(Ljava/util/Collection;)Lrx/Observable; + invoke-virtual {v1, p1}, Lcom/discord/stores/StoreUserPresence;->observePresencesForUsers(Ljava/util/Collection;)Lrx/Observable; move-result-object p1 diff --git a/com.discord/smali/com/discord/widgets/chat/list/ViewEmbedGameInvite$Model$Companion$getForShare$activityObs$1.smali b/com.discord/smali/com/discord/widgets/chat/list/ViewEmbedGameInvite$Model$Companion$getForShare$activityObs$1.smali index 68222f4f67..e4ea7a2273 100644 --- a/com.discord/smali/com/discord/widgets/chat/list/ViewEmbedGameInvite$Model$Companion$getForShare$activityObs$1.smali +++ b/com.discord/smali/com/discord/widgets/chat/list/ViewEmbedGameInvite$Model$Companion$getForShare$activityObs$1.smali @@ -101,7 +101,7 @@ move-result-wide v3 - invoke-virtual {v0, v1, v2, v3, v4}, Lcom/discord/stores/StoreUserPresence;->getApplicationActivity(JJ)Lrx/Observable; + invoke-virtual {v0, v1, v2, v3, v4}, Lcom/discord/stores/StoreUserPresence;->observeApplicationActivity(JJ)Lrx/Observable; move-result-object p1 diff --git a/com.discord/smali/com/discord/widgets/chat/list/ViewEmbedGameInvite$Model$Companion.smali b/com.discord/smali/com/discord/widgets/chat/list/ViewEmbedGameInvite$Model$Companion.smali index ba2b09ebad..d18a6b4e32 100644 --- a/com.discord/smali/com/discord/widgets/chat/list/ViewEmbedGameInvite$Model$Companion.smali +++ b/com.discord/smali/com/discord/widgets/chat/list/ViewEmbedGameInvite$Model$Companion.smali @@ -532,7 +532,7 @@ move-result-wide v6 - invoke-virtual {v0, v4, v5, v6, v7}, Lcom/discord/stores/StoreUserPresence;->getApplicationActivity(JJ)Lrx/Observable; + invoke-virtual {v0, v4, v5, v6, v7}, Lcom/discord/stores/StoreUserPresence;->observeApplicationActivity(JJ)Lrx/Observable; move-result-object v4 diff --git a/com.discord/smali/com/discord/widgets/chat/list/WidgetChatListAdapterItemListenTogether$Model$Companion.smali b/com.discord/smali/com/discord/widgets/chat/list/WidgetChatListAdapterItemListenTogether$Model$Companion.smali index 0e175c7a98..76a925c5df 100644 --- a/com.discord/smali/com/discord/widgets/chat/list/WidgetChatListAdapterItemListenTogether$Model$Companion.smali +++ b/com.discord/smali/com/discord/widgets/chat/list/WidgetChatListAdapterItemListenTogether$Model$Companion.smali @@ -236,7 +236,7 @@ move-result-wide v1 - invoke-virtual {v0, v1, v2}, Lcom/discord/stores/StoreUserPresence;->getForUserId(J)Lrx/Observable; + invoke-virtual {v0, v1, v2}, Lcom/discord/stores/StoreUserPresence;->observePresenceForUser(J)Lrx/Observable; move-result-object v0 diff --git a/com.discord/smali/com/discord/widgets/debugging/WidgetFatalCrash.smali b/com.discord/smali/com/discord/widgets/debugging/WidgetFatalCrash.smali index 795d47355b..98658cdb97 100644 --- a/com.discord/smali/com/discord/widgets/debugging/WidgetFatalCrash.smali +++ b/com.discord/smali/com/discord/widgets/debugging/WidgetFatalCrash.smali @@ -446,7 +446,7 @@ new-array v2, v0, [Ljava/lang/Object; - const-string v4, "45.0" + const-string v4, "45.1" aput-object v4, v2, v3 diff --git a/com.discord/smali/com/discord/widgets/friends/FriendsListViewModel$Factory.smali b/com.discord/smali/com/discord/widgets/friends/FriendsListViewModel$Factory.smali index b9d4d35b34..7adeb2ef6b 100644 --- a/com.discord/smali/com/discord/widgets/friends/FriendsListViewModel$Factory.smali +++ b/com.discord/smali/com/discord/widgets/friends/FriendsListViewModel$Factory.smali @@ -104,7 +104,7 @@ move-result-object v0 - invoke-virtual {v0}, Lcom/discord/stores/StoreUserPresence;->get()Lrx/Observable; + invoke-virtual {v0}, Lcom/discord/stores/StoreUserPresence;->observeAllPresences()Lrx/Observable; move-result-object v2 diff --git a/com.discord/smali/com/discord/widgets/friends/WidgetFriendsFindNearby$ModelProvider.smali b/com.discord/smali/com/discord/widgets/friends/WidgetFriendsFindNearby$ModelProvider.smali index 97d10c9fa5..b88db8276e 100644 --- a/com.discord/smali/com/discord/widgets/friends/WidgetFriendsFindNearby$ModelProvider.smali +++ b/com.discord/smali/com/discord/widgets/friends/WidgetFriendsFindNearby$ModelProvider.smali @@ -81,7 +81,7 @@ move-result-object v1 - invoke-virtual {v1, p1}, Lcom/discord/stores/StoreUserPresence;->getForUserIds(Ljava/util/Collection;)Lrx/Observable; + invoke-virtual {v1, p1}, Lcom/discord/stores/StoreUserPresence;->observePresencesForUsers(Ljava/util/Collection;)Lrx/Observable; move-result-object v1 diff --git a/com.discord/smali/com/discord/widgets/home/WidgetHomeModel$Companion.smali b/com.discord/smali/com/discord/widgets/home/WidgetHomeModel$Companion.smali index 851a0e8596..c572f9243f 100644 --- a/com.discord/smali/com/discord/widgets/home/WidgetHomeModel$Companion.smali +++ b/com.discord/smali/com/discord/widgets/home/WidgetHomeModel$Companion.smali @@ -70,7 +70,7 @@ move-result-object v0 - invoke-virtual {v0}, Lcom/discord/stores/StoreUserPresence;->get()Lrx/Observable; + invoke-virtual {v0}, Lcom/discord/stores/StoreUserPresence;->observeAllPresences()Lrx/Observable; move-result-object v3 diff --git a/com.discord/smali_classes2/com/discord/widgets/settings/WidgetSettings$Model$Companion.smali b/com.discord/smali_classes2/com/discord/widgets/settings/WidgetSettings$Model$Companion.smali index ad8c05b29a..4311d0224a 100644 --- a/com.discord/smali_classes2/com/discord/widgets/settings/WidgetSettings$Model$Companion.smali +++ b/com.discord/smali_classes2/com/discord/widgets/settings/WidgetSettings$Model$Companion.smali @@ -72,7 +72,7 @@ move-result-object v2 - invoke-virtual {v2}, Lcom/discord/stores/StoreUserPresence;->getLocalPresence()Lrx/Observable; + invoke-virtual {v2}, Lcom/discord/stores/StoreUserPresence;->observeLocalPresence()Lrx/Observable; move-result-object v2 diff --git a/com.discord/smali_classes2/com/discord/widgets/settings/WidgetSettings.smali b/com.discord/smali_classes2/com/discord/widgets/settings/WidgetSettings.smali index 49c1bbc3d7..9b3c75933e 100644 --- a/com.discord/smali_classes2/com/discord/widgets/settings/WidgetSettings.smali +++ b/com.discord/smali_classes2/com/discord/widgets/settings/WidgetSettings.smali @@ -1950,7 +1950,7 @@ invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; - const-string v0, " - 45.0 (1296)" + const-string v0, " - 45.1 (1297)" invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; diff --git a/com.discord/smali_classes2/com/discord/widgets/user/WidgetUserMutualFriends$Model.smali b/com.discord/smali_classes2/com/discord/widgets/user/WidgetUserMutualFriends$Model.smali index 62ad973aeb..ad2b202d89 100644 --- a/com.discord/smali_classes2/com/discord/widgets/user/WidgetUserMutualFriends$Model.smali +++ b/com.discord/smali_classes2/com/discord/widgets/user/WidgetUserMutualFriends$Model.smali @@ -305,7 +305,7 @@ move-result-object v0 - invoke-virtual {v0, p2}, Lcom/discord/stores/StoreUserPresence;->getForUserIds(Ljava/util/Collection;)Lrx/Observable; + invoke-virtual {v0, p2}, Lcom/discord/stores/StoreUserPresence;->observePresencesForUsers(Ljava/util/Collection;)Lrx/Observable; move-result-object v3 diff --git a/com.discord/smali_classes2/com/discord/widgets/user/WidgetUserStatusSheetViewModel$Factory.smali b/com.discord/smali_classes2/com/discord/widgets/user/WidgetUserStatusSheetViewModel$Factory.smali index 9cbccdf324..a7eadf92b3 100644 --- a/com.discord/smali_classes2/com/discord/widgets/user/WidgetUserStatusSheetViewModel$Factory.smali +++ b/com.discord/smali_classes2/com/discord/widgets/user/WidgetUserStatusSheetViewModel$Factory.smali @@ -39,7 +39,7 @@ } .end annotation - invoke-virtual {p1}, Lcom/discord/stores/StoreUserPresence;->getLocalPresence()Lrx/Observable; + invoke-virtual {p1}, Lcom/discord/stores/StoreUserPresence;->observeLocalPresence()Lrx/Observable; move-result-object p1 diff --git a/com.discord/smali_classes2/com/discord/widgets/user/presence/ModelRichPresence$Companion.smali b/com.discord/smali_classes2/com/discord/widgets/user/presence/ModelRichPresence$Companion.smali index 6dc476d9bb..8eb2a8ea3b 100644 --- a/com.discord/smali_classes2/com/discord/widgets/user/presence/ModelRichPresence$Companion.smali +++ b/com.discord/smali_classes2/com/discord/widgets/user/presence/ModelRichPresence$Companion.smali @@ -71,7 +71,7 @@ invoke-static {p3, v0}, Lc0/n/c/j;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V - invoke-virtual {p3, p1, p2}, Lcom/discord/stores/StoreUserPresence;->getForUserId(J)Lrx/Observable; + invoke-virtual {p3, p1, p2}, Lcom/discord/stores/StoreUserPresence;->observePresenceForUser(J)Lrx/Observable; move-result-object p1 diff --git a/com.discord/smali_classes2/com/discord/widgets/user/search/WidgetGlobalSearchModel$Companion.smali b/com.discord/smali_classes2/com/discord/widgets/user/search/WidgetGlobalSearchModel$Companion.smali index d82602064c..122681a2da 100644 --- a/com.discord/smali_classes2/com/discord/widgets/user/search/WidgetGlobalSearchModel$Companion.smali +++ b/com.discord/smali_classes2/com/discord/widgets/user/search/WidgetGlobalSearchModel$Companion.smali @@ -242,7 +242,7 @@ move-result-object v2 - invoke-virtual {v2}, Lcom/discord/stores/StoreUserPresence;->get()Lrx/Observable; + invoke-virtual {v2}, Lcom/discord/stores/StoreUserPresence;->observeAllPresences()Lrx/Observable; move-result-object v4