// Metro module 11990 (f11991). import { useEffect } from "react"; import ApplicationStore from "../applications/ApplicationStore"; import { AnalyticEvents, PlatformTypes } from "../../Constants"; import { ImageSizes } from "../activities/Constants"; import { isListenedSessionEntry, isWatchedMediaEntry, isTopArtistEntry } from "./ContentInventoryTypes"; import { getAssetImage } from "../../utils/ApplicationAssetUtils"; import { intl, t } from "../../intl/index.native"; import useEntryActivityAndApplication from "./useEntryActivityAndApplication"; import { useGame } from "../games/hooks/useGame"; import { isStageActivity, unpackStageChannelParty } from "../stage_channels/StageChannelRichPresenceUtils"; import AvatarUtils from "../../utils/AvatarUtils"; import isOnXbox from "../activities/utils/isOnXbox"; import Platforms from "../../lib/Platforms"; import isOnPlayStation from "../activities/utils/isOnPlayStation"; import { useGetOrFetchApplication } from "../applications/useGetOrFetchApplications"; import { useStateFromStores } from "../../_bundle/Module589"; import AnalyticsUtils from "../../utils/AnalyticsUtils"; import isCrunchyrollActivity from "../activities/utils/isCrunchyrollActivity"; let useTrackActivityDefaultIcon, useRichImageForActivity; const useComputedImagesForActivity = function useComputedImagesForActivity(activity, a1) { let r50; L28: { const richImageForActivity = useRichImageForActivity(activity, a1); const { largeImage, smallImage } = richImageForActivity; if (largeImage != null) { r50 = { largeImage, smallImage }; } else if (isStageActivity(activity)) { const r93 = unpackStageChannelParty(activity); const src2 = r93 != null ? AvatarUtils.getGuildIconURL({ id: r93.guildId, icon: activity == null ? void 0 : activity.assets?.small_image, size: ImageSizes.SMALL }) : void 0; r50 = { largeImage: src2 != null ? { src: src2 } : void 0, smallImage: void 0 }; } else if (isOnXbox(activity)) { r50 = { largeImage: { src: Platforms.get(PlatformTypes.XBOX).icon.customPNG, alt: intl.string(t.Nfvo72) }, smallImage: void 0 }; } else { if (smallImage == null && isOnPlayStation(activity)) { r50 = { largeImage: { src: Platforms.get(PlatformTypes.PLAYSTATION).icon.lightPNG, alt: intl.string(t.fFl4jo) }, smallImage: void 0 }; break L28; } const src = a1 == null ? void 0 : a1.getIconURL(ImageSizes.LARGE); const name2 = a1?.name; const largeImage2 = src != null ? { src, alt: name2 == null ? intl.string(t["2B/phM"]) : intl.formatToPlainString(t.tiKyYg, { applicationName: name2 }) } : void 0; r50 = largeImage2 != null ? { largeImage: largeImage2, smallImage } : { largeImage: smallImage, smallImage: void 0 }; } } return r50; }; useTrackActivityDefaultIcon = function useTrackActivityDefaultIcon({ activity, application, largeImageSrc, trackingSource }) { let stateFromStores, application_found, c19323_4, name, type, session_id, has_rich_assets, c19323_9; stateFromStores = void 0; application_found = void 0; c19323_4 = void 0; name = void 0; type = void 0; session_id = void 0; has_rich_assets = void 0; c19323_9 = void 0; const application_id = activity?.application_id; const getOrFetchApplication = useGetOrFetchApplication(application_id); const stateFromStores2 = useStateFromStores([ApplicationStore], () => application_id != null && ApplicationStore.didFetchingApplicationFail(application_id)); stateFromStores = application_id == null || getOrFetchApplication != null || stateFromStores2; application_found = getOrFetchApplication != null || application != null; const r5 = largeImageSrc == null; c19323_4 = r5; name = activity?.name; type = activity?.type; session_id = activity?.session_id; has_rich_assets = (activity == null ? void 0 : activity.assets?.large_image) != null || (activity == null ? void 0 : activity.assets?.small_image) != null; const r42 = activity != null; c19323_9 = r42; useEffect(() => { if (c19323_9 && stateFromStores && c19323_4) { AnalyticsUtils.track(AnalyticEvents.ACTIVITY_DEFAULT_ICON_SHOWN, { source: trackingSource, application_id, activity_name: name, activity_type: type, activity_session_id: session_id, application_found, has_rich_assets }); } }, [trackingSource, r42, stateFromStores, r5, application_id, name, type, session_id, application_found, has_rich_assets]); }; useRichImageForActivity = function useRichImageForActivity(activity, activityApplication) { const getOrFetchApplication = useGetOrFetchApplication(activity?.application_id); if (activity == null) { return { largeImage: void 0, smallImage: void 0 }; } const r14 = activity == null ? void 0 : activity.assets?.large_image; const r22 = r14 != null; let largeImage = void 0; if (r22) { const r28 = { src: getAssetImage(activity.application_id, r14, [ImageSizes.LARGE, ImageSizes.LARGE]), text: null, url: null }; const assets = activity.assets; const r30 = assets == null; let text = void 0; if (!r30) { const large_text = assets.large_text; text = large_text == null ? void 0 : large_text.trim(); } r28.text = text; r28.url = activity.assets?.large_url; largeImage = r28; } const r42 = isCrunchyrollActivity(activity) ? void 0 : activity == null ? void 0 : activity.assets?.small_image; const r47 = r42 != null; let smallImage = void 0; if (r47) { const r57 = { src: getAssetImage(activity.application_id, r42, [ImageSizes.LARGE, ImageSizes.LARGE]), text: null, url: null }; const assets2 = activity.assets; const r59 = assets2 == null; let text2 = void 0; if (!r59) { const small_text = assets2.small_text; text2 = small_text == null ? void 0 : small_text.trim(); } r57.text = text2; r57.url = activity.assets?.small_url; smallImage = r57; } if (largeImage == null) { const r67 = activityApplication == null ? getOrFetchApplication : activityApplication; const src = r67 == null ? void 0 : r67.getIconURL(ImageSizes.LARGE); const name2 = r67?.name; largeImage = src != null ? { src, alt: name2 == null ? intl.string(t["2B/phM"]) : intl.formatToPlainString(t.tiKyYg, { applicationName: name2 }) } : void 0; } return { largeImage, smallImage }; }; export function getApplicationImage(a0) { const src = a0 == null ? void 0 : a0.getIconURL(ImageSizes.LARGE); const name2 = a0?.name; if (src != null) { return { src, alt: name2 == null ? intl.string(t["2B/phM"]) : intl.formatToPlainString(t.tiKyYg, { applicationName: name2 }) }; } } export function useImageForContentEntry({ entry, showCoverImage = true, trackingSource: trackingSource2 }) { let r76; const entryActivityAndApplication = useEntryActivityAndApplication(entry); const { activity, activityApplication } = entryActivityAndApplication; let fallbackApplication = entryActivityAndApplication.fallbackApplication; const r13 = fallbackApplication == null ? activityApplication : fallbackApplication; const richImageForActivity = useRichImageForActivity(activity, activityApplication); const { largeImage, smallImage } = richImageForActivity; const largeImage2 = useComputedImagesForActivity(activity, r13).largeImage; const data = useGame(r13 == null ? void 0 : r13.getCanonicalGameId()).data; const src = data == null ? void 0 : data.getCoverURL(); const largeImage3 = isListenedSessionEntry(entry) && entry.extra.entries.length > 0 ? { src: entry.extra.entries[0].media.image_url } : isWatchedMediaEntry(entry) ? { src: getAssetImage(entry.extra.application_id, entry.extra.media_assets_large_image, ImageSizes.LARGE), alt: entry.extra.media_title } : isTopArtistEntry(entry) ? { src: entry.extra.media.image_url } : void 0; L27: { if (largeImage != null) { r76 = { largeImage, smallImage }; } else if (largeImage3 != null) { r76 = { largeImage: largeImage3, smallImage: void 0 }; } else { if (src != null && showCoverImage) { r76 = { largeImage: { src }, smallImage: void 0 }; break L27; } r76 = { largeImage: largeImage2, smallImage: void 0 }; } } if (fallbackApplication == null) { fallbackApplication = activityApplication; } useTrackActivityDefaultIcon({ activity, application: fallbackApplication, largeImageSrc: r76.largeImage?.src, trackingSource: trackingSource2 }); return r76; } export function useImageForActivity(a0, a1, a2) { const computedImagesForActivity = useComputedImagesForActivity(a0, a1); useTrackActivityDefaultIcon({ activity: a0, application: a1, largeImageSrc: computedImagesForActivity.largeImage?.src, trackingSource: a2 }); return computedImagesForActivity; } export { useRichImageForActivity };