@@ -14,11 +14,34 @@ import { useTheme } from './src/hooks/useTheme';
1414import { setDynamicShortcuts } from 'shortcut' ;
1515import { moveTaskToBack , setExcludeFromRecents } from 'native-util' ;
1616import { networkAutoSwitchService } from './src/services/NetworkAutoSwitchService' ;
17- import {
18- isShareIntentUrl ,
19- parseQuickTileUrl ,
20- shouldEnableAutoUpdateCheck ,
21- } from './src/utils/appLaunch' ;
17+
18+ const QUICK_UPLOAD_URL = 'syncclipboard://quick-upload' ;
19+ const QUICK_DOWNLOAD_URL = 'syncclipboard://quick-download' ;
20+
21+ function parseQuickTileUrl ( url : string | null ) : {
22+ isQuickTile : boolean ;
23+ fromForeground : boolean ;
24+ direction : SyncDirection ;
25+ } {
26+ if ( ! url ) return { isQuickTile : false , fromForeground : false , direction : SyncDirection . Download } ;
27+ const fromForeground = url . includes ( 'fg=1' ) ;
28+ if ( url . startsWith ( QUICK_UPLOAD_URL ) ) {
29+ return { isQuickTile : true , fromForeground, direction : SyncDirection . Upload } ;
30+ }
31+ if ( url . startsWith ( QUICK_DOWNLOAD_URL ) ) {
32+ return { isQuickTile : true , fromForeground, direction : SyncDirection . Download } ;
33+ }
34+ return { isQuickTile : false , fromForeground : false , direction : SyncDirection . Download } ;
35+ }
36+
37+ function isShareIntentUrl ( url : string | null ) : boolean {
38+ if ( ! url ) return false ;
39+ try {
40+ return new URL ( url ) . hostname === 'expo-sharing' ;
41+ } catch {
42+ return false ;
43+ }
44+ }
2245
2346async function runOverlayNetworkPreflight ( ) : Promise < void > {
2447 try {
@@ -32,7 +55,6 @@ type AppMode = 'checking' | 'home';
3255
3356export default function App ( ) {
3457 const [ appMode , setAppMode ] = useState < AppMode > ( 'checking' ) ;
35- const [ autoUpdateCheckEnabled , setAutoUpdateCheckEnabled ] = useState ( false ) ;
3658 // 快速操作覆盖层:始终以 overlay 形式显示,不卸载 AppNavigator/HomeScreen
3759 const [ shareReceiveOverlay , setShareReceiveOverlay ] = useState ( false ) ;
3860 const [ quickActionOverlay , setQuickActionOverlay ] = useState < {
@@ -91,9 +113,6 @@ export default function App() {
91113 await runOverlayNetworkPreflight ( ) ;
92114 // fg=1 完成后留在 app,fg=0/无fg 完成后退出
93115 setQuickActionOverlay ( { direction, exitAfterSync : ! fromForeground } ) ;
94- } else if ( shouldEnableAutoUpdateCheck ( url ) ) {
95- // URL 解析完成且不是 overlay 冷启动,才允许首页自动检查更新。
96- setAutoUpdateCheckEnabled ( true ) ;
97116 }
98117 } ) ;
99118
@@ -123,9 +142,7 @@ export default function App() {
123142 < ThemeProvider >
124143 < I18nProvider >
125144 < ThemedStatusBar />
126- { appMode === 'checking' ? null : (
127- < AppNavigator autoUpdateCheckEnabled = { autoUpdateCheckEnabled } />
128- ) }
145+ { appMode === 'checking' ? null : < AppNavigator /> }
129146 { shareReceiveOverlay && (
130147 < View style = { StyleSheet . absoluteFill } >
131148 < ShareReceiveScreen
0 commit comments