From ea2b784137255c33deaee91eb9da264ca4a8095d Mon Sep 17 00:00:00 2001 From: Violet Caulfield <42452695+anultravioletaurora@users.noreply.github.com> Date: Wed, 29 Oct 2025 00:39:10 -0500 Subject: [PATCH] Quick Connect optimization --- assets/icons/teal-icon.png | Bin 0 -> 91355 bytes assets/icons/teal-icon.svg | 407 ------------------ ios/Jellify.xcodeproj/project.pbxproj | 20 +- src/api/mutations/quickconnect/index.ts | 28 +- src/api/queries/quickconnect/index.ts | 2 + .../Login/components/quick-connect.tsx | 78 ++-- src/screens/Login/server-address.tsx | 229 +++++----- src/screens/Login/server-authentication.tsx | 160 +++---- src/screens/Login/server-library.tsx | 8 +- 9 files changed, 280 insertions(+), 652 deletions(-) create mode 100644 assets/icons/teal-icon.png delete mode 100644 assets/icons/teal-icon.svg diff --git a/assets/icons/teal-icon.png b/assets/icons/teal-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3e257496fc2c0eec8162472aa2cb2ae804cbc856 GIT binary patch literal 91355 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
2^s3`uAx<%o*<0TQ3$= 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 literal 0 HcmV?d00001 diff --git a/assets/icons/teal-icon.svg b/assets/icons/teal-icon.svg deleted file mode 100644 index 197cc290..00000000 --- a/assets/icons/teal-icon.svg +++ /dev/null @@ -1,407 +0,0 @@ - - - - diff --git a/ios/Jellify.xcodeproj/project.pbxproj b/ios/Jellify.xcodeproj/project.pbxproj index bc4a7cf8..9fc3dfbe 100644 --- a/ios/Jellify.xcodeproj/project.pbxproj +++ b/ios/Jellify.xcodeproj/project.pbxproj @@ -93,8 +93,6 @@ /* Begin PBXFileSystemSynchronizedRootGroup section */ CFE47DDB2EA56B0200EB6067 /* icons */ = { isa = PBXFileSystemSynchronizedRootGroup; - exceptions = ( - ); path = icons; sourceTree = ""; }; @@ -397,10 +395,14 @@ inputFileListPaths = ( "${PODS_ROOT}/Target Support Files/Pods-Jellify/Pods-Jellify-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); + inputPaths = ( + ); name = "[CP] Embed Pods Frameworks"; outputFileListPaths = ( "${PODS_ROOT}/Target Support Files/Pods-Jellify/Pods-Jellify-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); + outputPaths = ( + ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Jellify/Pods-Jellify-frameworks.sh\"\n"; @@ -414,10 +416,14 @@ inputFileListPaths = ( "${PODS_ROOT}/Target Support Files/Pods-Jellify/Pods-Jellify-resources-${CONFIGURATION}-input-files.xcfilelist", ); + inputPaths = ( + ); name = "[CP] Copy Pods Resources"; outputFileListPaths = ( "${PODS_ROOT}/Target Support Files/Pods-Jellify/Pods-Jellify-resources-${CONFIGURATION}-output-files.xcfilelist", ); + outputPaths = ( + ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Jellify/Pods-Jellify-resources.sh\"\n"; @@ -697,10 +703,7 @@ "-DFOLLY_CFG_NO_COROUTINES=1", "-DFOLLY_HAVE_CLOCK_GETTIME=1", ); - OTHER_LDFLAGS = ( - "$(inherited)", - " ", - ); + OTHER_LDFLAGS = "$(inherited) "; REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; STRING_CATALOG_GENERATE_SYMBOLS = YES; @@ -787,10 +790,7 @@ "-DFOLLY_CFG_NO_COROUTINES=1", "-DFOLLY_HAVE_CLOCK_GETTIME=1", ); - OTHER_LDFLAGS = ( - "$(inherited)", - " ", - ); + OTHER_LDFLAGS = "$(inherited) "; REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; STRING_CATALOG_GENERATE_SYMBOLS = YES; diff --git a/src/api/mutations/quickconnect/index.ts b/src/api/mutations/quickconnect/index.ts index 2cd61232..322f3df5 100644 --- a/src/api/mutations/quickconnect/index.ts +++ b/src/api/mutations/quickconnect/index.ts @@ -1,20 +1,13 @@ import { AxiosResponse } from 'axios' -import { JellyfinCredentials } from '../../types/jellyfin-credentials' import { AuthenticationResult } from '@jellyfin/sdk/lib/generated-client' import { useMutation } from '@tanstack/react-query' import { useJellifyContext } from '../../../providers' import { JellifyUser } from '../../../types/JellifyUser' -import { capitalize, isUndefined } from 'lodash' +import { isUndefined } from 'lodash' import { getQuickConnectApi, getUserApi } from '@jellyfin/sdk/lib/utils/api' import { useNavigation } from '@react-navigation/native' import LoginStackParamList from '@/src/screens/Login/types' import { NativeStackNavigationProp } from '@react-navigation/native-stack' -import { getDeviceId, getDeviceNameSync, getUniqueIdSync } from 'react-native-device-info' -import { name, version } from '../../../../package.json' - -const QUICK_CONNECT_HEADER = encodeURIComponent( - `MediaBrowser Device='${getDeviceNameSync()}' DeviceId='${getUniqueIdSync()}'`, -) export const useInitiateQuickConnect = () => { const { api } = useJellifyContext() @@ -23,12 +16,7 @@ export const useInitiateQuickConnect = () => { mutationFn: async () => { if (isUndefined(api)) return Promise.reject(new Error('API client is not initialized')) - console.debug('Initiating Quick Connect', QUICK_CONNECT_HEADER) - return await getQuickConnectApi(api!).initiateQuickConnect({ - headers: { - Authorization: QUICK_CONNECT_HEADER, - }, - }) + return await getQuickConnectApi(api).initiateQuickConnect() }, onError: async (error: Error) => { console.error('An error occurred initiating Quick Connect', error) @@ -95,4 +83,16 @@ const useAuthenticateWithQuickConnect = () => { }) } +const useQuickConnectStatus = () => { + const { api } = useJellifyContext() + + return useMutation({ + mutationFn: async (secret: string) => { + return await getQuickConnectApi(api!).getQuickConnectState({ + secret, + }) + }, + }) +} + export default useAuthenticateWithQuickConnect diff --git a/src/api/queries/quickconnect/index.ts b/src/api/queries/quickconnect/index.ts index e7791c12..619689b3 100644 --- a/src/api/queries/quickconnect/index.ts +++ b/src/api/queries/quickconnect/index.ts @@ -10,6 +10,8 @@ const useGetQuickConnectState = (secret: string) => { queryFn: async () => { return await getQuickConnectApi(api!).getQuickConnectState({ secret }) }, + gcTime: 0, + staleTime: 0, }) } diff --git a/src/components/Login/components/quick-connect.tsx b/src/components/Login/components/quick-connect.tsx index 9585a5d8..0b233cb0 100644 --- a/src/components/Login/components/quick-connect.tsx +++ b/src/components/Login/components/quick-connect.tsx @@ -1,10 +1,12 @@ -import React, { useEffect, useState } from 'react' +import React, { useCallback, useEffect, useLayoutEffect } from 'react' import useAuthenticateWithQuickConnect, { useInitiateQuickConnect, } from '../../../api/mutations/quickconnect' import useGetQuickConnectState from '../../../api/queries/quickconnect' -import { View, Spinner, Button, YStack } from 'tamagui' -import { Text } from '../../Global/helpers/text' +import { View, Spinner, Button, YStack, H6, H5 } from 'tamagui' +import { useFocusEffect, useNavigation } from '@react-navigation/native' +import LoginStackParamList from '@/src/screens/Login/types' +import { NativeStackNavigationProp } from '@react-navigation/native-stack' // Handles polling, code display, error, and authentication function QuickConnectDisplay({ @@ -16,36 +18,44 @@ function QuickConnectDisplay({ code: string onExpired: () => void }) { - const { - data: stateData, - error: stateError, - isFetching: isStateFetching, - } = useGetQuickConnectState(secret) const { mutate: authenticate, isPending: isAuthenticating } = useAuthenticateWithQuickConnect() + const { + data: quickConnectData, + error: quickConnectError, + refetch: refetchQuickConnectData, + } = useGetQuickConnectState(secret) + + useEffect(() => {}, [secret, code]) + // Authenticate when ready useEffect(() => { - if (stateData?.data.Authenticated && secret) { + if (quickConnectData?.data.Authenticated && secret) { authenticate(secret) } - }, [stateData, secret, authenticate]) + }, [quickConnectData, secret, authenticate]) // Handle expired/errored code useEffect(() => { - if (stateError) { + if (quickConnectError) { onExpired() } - }, [stateError, onExpired]) + }, [quickConnectError, onExpired]) + + useEffect(() => { + const interval = setInterval(() => { + console.debug(`Checking Quick Connect State: ${JSON.stringify(quickConnectData)}`) + + if (quickConnectData?.data.Authenticated) clearInterval(interval) + refetchQuickConnectData() + }, 5000) + + return () => clearInterval(interval) + }, [secret]) return ( - {code} - {isStateFetching && } - {stateError && ( - - Code expired. Please try again. - - )} +
{code}
{isAuthenticating && }
) @@ -53,38 +63,36 @@ function QuickConnectDisplay({ // Initiates quick connect, manages secret/code state, and renders display export default function QuickConnectInitiator() { + const navigation = useNavigation>() + const { mutate: initiateQuickConnect, reset: resetInitiateQuickConnect, data: quickConnectData, - isPending: isInitiating, } = useInitiateQuickConnect() - // When QuickConnect is initiated, set secret and code - useEffect(() => { - initiateQuickConnect() - }, []) - - // Reset secret/code to retry - const handleExpired = () => { + const beginQuickConnect = useCallback(() => { resetInitiateQuickConnect() initiateQuickConnect() - } + }, [initiateQuickConnect, resetInitiateQuickConnect]) + + useEffect(() => { + initiateQuickConnect() + + return resetInitiateQuickConnect() + }) return ( - - Quick Connect - {isInitiating && } + +
Quick Connect
{quickConnectData?.data.Secret && quickConnectData?.data.Code ? ( ) : null} - {!quickConnectData?.data.Secret && !isInitiating && ( - - )} + {!quickConnectData?.data.Secret && }
) } diff --git a/src/screens/Login/server-address.tsx b/src/screens/Login/server-address.tsx index b4e5f216..92b91ee3 100644 --- a/src/screens/Login/server-address.tsx +++ b/src/screens/Login/server-address.tsx @@ -1,6 +1,6 @@ import React, { useEffect, useState } from 'react' import { isEmpty, isUndefined } from 'lodash' -import { Input, ListItem, Separator, Spinner, XStack, YGroup, YStack } from 'tamagui' +import { H3, Image, Input, ListItem, Separator, Spinner, XStack, YGroup, YStack } from 'tamagui' import { SwitchWithLabel } from '../../components/Global/helpers/switch-with-label' import { H2, Text } from '../../components/Global/helpers/text' import Button from '../../components/Global/helpers/button' @@ -62,121 +62,130 @@ export default function ServerAddress({ return ( - -

- Connect to Jellyfin -

-
+ + +

+ Connect to Jellyfin +

+
- - - {!serverAddressContainsProtocol && ( - - {useHttps ? HTTPS : HTTP} - - )} + + + {!serverAddressContainsProtocol && ( + + {useHttps ? HTTPS : HTTP} + + )} - - + { + if (!isUndefined(serverAddress)) + connectToServer({ serverAddress, useHttps }) + }} + /> + - - - - } - title='HTTPS' - subTitle='Use HTTPS to connect to Jellyfin' - disabled={serverAddressContainsProtocol} - > - setUseHttps(checked)} - label={ - serverAddressContainsHttps || useHttps - ? 'Use HTTPS' - : 'Use HTTP' + + + } - size='$2' - width={100} - /> - - - - - - - + setUseHttps(checked)} + label={ + serverAddressContainsHttps || useHttps + ? 'Use HTTPS' + : 'Use HTTP' + } + size='$2' + width={100} /> - } - title='Submit Usage and Crash Data' - subTitle='Send anonymized metrics and crash data' - > - setSendMetrics(checked)} - label='Send Metrics' - size='$2' - width={100} - /> - - - + + - {isPending ? ( - - ) : ( - - )} + + + + + } + title='Submit Usage and Crash Data' + subTitle='Send anonymized metrics and crash data' + > + setSendMetrics(checked)} + label='Send Metrics' + size='$2' + width={100} + /> + + + + +
) diff --git a/src/screens/Login/server-authentication.tsx b/src/screens/Login/server-authentication.tsx index dcbc2ead..aa3a8564 100644 --- a/src/screens/Login/server-authentication.tsx +++ b/src/screens/Login/server-authentication.tsx @@ -1,7 +1,7 @@ import React, { useEffect, useState } from 'react' import _ from 'lodash' import { H3, H6, Spacer, Spinner, XStack, YStack } from 'tamagui' -import { H2 } from '../../components/Global/helpers/text' +import { H2, Text } from '../../components/Global/helpers/text' import Button from '../../components/Global/helpers/button' import { SafeAreaView } from 'react-native-safe-area-context' import Input from '../../components/Global/helpers/input' @@ -38,90 +38,104 @@ export default function ServerAuthentication({ return ( - -

- {`Sign in to ${server?.name ?? 'Jellyfin'}`} -

-
- {server?.version ?? 'Unknown Jellyfin version'} -
-
- - } - placeholder='Username' - value={username} - style={ - IS_MAESTRO_BUILD ? { backgroundColor: '#000', color: '#000' } : undefined - } - testID='username_input' - secureTextEntry={IS_MAESTRO_BUILD} // If Maestro build, don't show the username as screen Records - onChangeText={(value: string | undefined) => setUsername(value)} - autoCapitalize='none' - autoCorrect={false} - autoComplete='username' - textContentType='username' - importantForAutofill='yes' - returnKeyType='next' - autoFocus - /> + + +

{`Sign in to ${server?.name ?? 'Jellyfin'}`}

+
{server?.version ?? 'Unknown Jellyfin version'}
+
+ + } + placeholder='Username' + value={username} + style={ + IS_MAESTRO_BUILD + ? { backgroundColor: '#000', color: '#000' } + : undefined + } + testID='username_input' + secureTextEntry={IS_MAESTRO_BUILD} // If Maestro build, don't show the username as screen Records + onChangeText={(value: string | undefined) => setUsername(value)} + autoCapitalize='none' + autoCorrect={false} + autoComplete='username' + textContentType='username' + importantForAutofill='yes' + returnKeyType='next' + autoFocus + /> - + - } - placeholder='Password' - value={password} - testID='password_input' - style={ - IS_MAESTRO_BUILD ? { backgroundColor: '#000', color: '#000' } : undefined - } - onChangeText={(value: string | undefined) => setPassword(value)} - autoCapitalize='none' - autoCorrect={false} - secureTextEntry // Always secure text entry - autoComplete='password' - textContentType='password' - importantForAutofill='yes' - returnKeyType='go' - /> + } + placeholder='Password' + value={password} + testID='password_input' + style={ + IS_MAESTRO_BUILD + ? { backgroundColor: '#000', color: '#000' } + : undefined + } + onChangeText={(value: string | undefined) => setPassword(value)} + autoCapitalize='none' + autoCorrect={false} + secureTextEntry // Always secure text entry + autoComplete='password' + textContentType='password' + importantForAutofill='yes' + returnKeyType='go' + /> - + - - - - - + + + + + + + + + + - {isPending ? ( - - ) : ( - - )} - + {/* */}
diff --git a/src/screens/Login/server-library.tsx b/src/screens/Login/server-library.tsx index 90204989..15efbf5e 100644 --- a/src/screens/Login/server-library.tsx +++ b/src/screens/Login/server-library.tsx @@ -6,6 +6,7 @@ import { BaseItemDto } from '@jellyfin/sdk/lib/generated-client/models' import LibrarySelector from '../../components/Global/components/library-selector' import LoginStackParamList from './types' import { useNavigation } from '@react-navigation/native' +import { useInitiateQuickConnect } from '../../api/mutations/quickconnect' export default function ServerLibrary({ navigation, @@ -16,6 +17,8 @@ export default function ServerLibrary({ const rootNavigation = useNavigation>() + const initiateQuickConnect = useInitiateQuickConnect() + const handleLibrarySelected = ( libraryId: string, selectedLibrary: BaseItemDto, @@ -32,9 +35,8 @@ export default function ServerLibrary({ } const handleCancel = () => { - navigation.navigate('ServerAuthentication', undefined, { - pop: true, - }) + initiateQuickConnect.reset() + navigation.popTo('ServerAuthentication', undefined) } return (