From 584239b1994b6733301e67e8831d4c3d433e9e4d Mon Sep 17 00:00:00 2001 From: syui Date: Sun, 7 Dec 2025 22:38:16 +0900 Subject: [PATCH] test gemini --- .../008-social-app-ios-policy-tos-error.patch | 62 +++++--- ios/patching/009-social-app-ios-license.patch | 139 +++++++++++++++++- .../021-social-app-ios-clean-feed.patch | 81 +++++++--- 3 files changed, 238 insertions(+), 44 deletions(-) diff --git a/ios/patching/008-social-app-ios-policy-tos-error.patch b/ios/patching/008-social-app-ios-policy-tos-error.patch index 83015ec..fd7d591 100644 --- a/ios/patching/008-social-app-ios-policy-tos-error.patch +++ b/ios/patching/008-social-app-ios-policy-tos-error.patch @@ -1,8 +1,8 @@ diff --git a/src/view/screens/PrivacyPolicy.tsx b/src/view/screens/PrivacyPolicy.tsx -index a89eaadc4..1da393f03 100644 +index a89eaadc4..045f660ef 100644 --- a/src/view/screens/PrivacyPolicy.tsx +++ b/src/view/screens/PrivacyPolicy.tsx -@@ -1,52 +1,13 @@ +@@ -1,51 +1,28 @@ import React from 'react' -import {View} from 'react-native' -import {msg, Trans} from '@lingui/macro' @@ -19,7 +19,7 @@ index a89eaadc4..1da393f03 100644 -import {TextLink} from '#/view/com/util/Link' -import {Text} from '#/view/com/util/text/Text' -import {ScrollView} from '#/view/com/util/Views' -+import { WebView } from 'react-native-webview' ++import {ScrollView} from 'react-native' import * as Layout from '#/components/Layout' -import {ViewHeader} from '../com/util/ViewHeader' - @@ -28,16 +28,19 @@ index a89eaadc4..1da393f03 100644 - const pal = usePalette('default') - const {_} = useLingui() - const setMinimalShellMode = useSetMinimalShellMode() -- ++import {useSetTitle} from '#/lib/hooks/useSetTitle' ++import {atoms as a, useTheme} from '#/alf' ++import {Text} from '#/components/Typography' + - useFocusEffect( - React.useCallback(() => { - setMinimalShellMode(false) - }, [setMinimalShellMode]), - ) -+import {useSetTitle} from '#/lib/hooks/useSetTitle' - +export function PrivacyPolicyScreen() { + useSetTitle('Privacy Policy') ++ const t = useTheme() + return ( - @@ -55,16 +58,26 @@ index a89eaadc4..1da393f03 100644 - - - -- -+ ++ ++ Privacy Policy ++ ++ ++ Please refer to the following page for the Privacy Policy. ++ ++ ++ ++ https://syu.is/about/support/privacy-policy ++ + ) - } diff --git a/src/view/screens/TermsOfService.tsx b/src/view/screens/TermsOfService.tsx -index d843c713c..b81767bd5 100644 +index d843c713c..324b270af 100644 --- a/src/view/screens/TermsOfService.tsx +++ b/src/view/screens/TermsOfService.tsx -@@ -1,50 +1,13 @@ +@@ -1,49 +1,28 @@ import React from 'react' -import {View} from 'react-native' -import {msg, Trans} from '@lingui/macro' @@ -81,7 +94,7 @@ index d843c713c..b81767bd5 100644 -import {TextLink} from '#/view/com/util/Link' -import {Text} from '#/view/com/util/text/Text' -import {ScrollView} from '#/view/com/util/Views' -+import { WebView } from 'react-native-webview' ++import {ScrollView} from 'react-native' import * as Layout from '#/components/Layout' -import {ViewHeader} from '../com/util/ViewHeader' - @@ -90,16 +103,19 @@ index d843c713c..b81767bd5 100644 - const pal = usePalette('default') - const setMinimalShellMode = useSetMinimalShellMode() - const {_} = useLingui() -- ++import {useSetTitle} from '#/lib/hooks/useSetTitle' ++import {atoms as a, useTheme} from '#/alf' ++import {Text} from '#/components/Typography' + - useFocusEffect( - React.useCallback(() => { - setMinimalShellMode(false) - }, [setMinimalShellMode]), - ) -+import {useSetTitle} from '#/lib/hooks/useSetTitle' - +export function TermsOfServiceScreen() { + useSetTitle('Terms of Service') ++ const t = useTheme() + return ( - @@ -115,8 +131,18 @@ index d843c713c..b81767bd5 100644 - - - -- -+ ++ ++ Terms of Service ++ ++ ++ Please refer to the following page for the Terms of Service. ++ ++ ++ ++ https://syu.is/about/support/tos ++ + ) - } diff --git a/ios/patching/009-social-app-ios-license.patch b/ios/patching/009-social-app-ios-license.patch index 0d94461..b330348 100644 --- a/ios/patching/009-social-app-ios-license.patch +++ b/ios/patching/009-social-app-ios-license.patch @@ -34,15 +34,144 @@ index c315a8341..9b2f50a83 100644 CommunityGuidelines: undefined CopyrightPolicy: undefined LanguageSettings: undefined +diff --git a/src/view/screens/License.tsx b/src/view/screens/License.tsx +new file mode 100644 +index 000000000..d35fe20ea +--- /dev/null ++++ b/src/view/screens/License.tsx +@@ -0,0 +1,86 @@ ++import React from 'react' ++import {ScrollView} from 'react-native' ++import * as Layout from '#/components/Layout' ++import {useSetTitle} from '#/lib/hooks/useSetTitle' ++import {atoms as a, useTheme} from '#/alf' ++import {Text} from '#/components/Typography' ++ ++export function LicenseScreen() { ++ useSetTitle('License') ++ const t = useTheme() ++ ++ return ( ++ ++ ++ License ++ ++ ++ This application is based on Bluesky Social App. ++ ++ ++ ++ https://github.com/bluesky-social/social-app ++ ++ ++ MIT License ++ ++ ++ Copyright (c) 2022-2025 Bluesky PBC ++ ++ ++ ++ Permission is hereby granted, free of charge, to any person obtaining a copy ++ of this software and associated documentation files (the "Software"), to deal ++ in the Software without restriction, including without limitation the rights ++ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ++ copies of the Software, and to permit persons to whom the Software is ++ furnished to do so, subject to the following conditions: ++ ++ ++ ++ The above copyright notice and this permission notice shall be included in all ++ copies or substantial portions of the Software. ++ ++ ++ ++ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ++ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ++ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ++ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ++ SOFTWARE. ++ ++ ++ 日本語訳(参考) ++ ++ ++ 本ソフトウェアおよび関連文書ファイル(以下「ソフトウェア」)のコピーを取得する ++ すべての人に対し、ソフトウェアを無制限に扱うことを無償で許可します。これには、 ++ ソフトウェアのコピーを使用、複製、変更、結合、公開、配布、サブライセンス、 ++ および/または販売する権利、ならびにソフトウェアを提供する相手にそうした行為を ++ 許可する権利が含まれますが、これらに限定されません。 ++ ++ ++ ++ 上記の著作権表示および本許諾表示を、ソフトウェアのすべてのコピーまたは ++ 重要な部分に記載するものとします。 ++ ++ ++ ++ ソフトウェアは「現状のまま」で提供され、明示黙示を問わず、商品性、特定目的への ++ 適合性、および権利非侵害についての保証を含む、いかなる種類の保証もなされません。 ++ いかなる場合においても、作者または著作権者は、契約行為、不法行為、またはそれ以外で ++ あろうと、ソフトウェアに起因または関連し、あるいはソフトウェアの使用または ++ その他の扱いによって生じる一切の請求、損害、その他の義務について責任を負わないものとします。 ++ ++ ++ ++ Original License: https://github.com/bluesky-social/social-app/blob/main/LICENSE ++ ++ ++ ++ ) ++} diff --git a/src/view/shell/Drawer.tsx b/src/view/shell/Drawer.tsx -index ed2a6cfb7..0b429e6f3 100644 +index ed2a6cfb7..f2192f20e 100644 --- a/src/view/shell/Drawer.tsx +++ b/src/view/shell/Drawer.tsx -@@ -460,6 +460,11 @@ function ExtraLinks() { - - Privacy Policy +@@ -689,34 +689,25 @@ function ExtraLinks() { + const {_} = useLingui() + const t = useTheme() + const kawaii = useKawaiiMode() ++ const navigation = useNavigation() + + return ( + +- +- Terms of Service +- +- +- Privacy Policy +- +- {kawaii && ( +- +- +- Logo by{' '} +- +- @sawaratsuki.bsky.social +- +- ++ navigation.navigate('TermsOfService')}> ++ ++ Terms of Service - +- )} ++ ++ navigation.navigate('PrivacyPolicy')}> ++ ++ Privacy Policy ++ ++ + navigation.navigate('License')}> + + License diff --git a/ios/patching/021-social-app-ios-clean-feed.patch b/ios/patching/021-social-app-ios-clean-feed.patch index b1be019..1d7cc0a 100644 --- a/ios/patching/021-social-app-ios-clean-feed.patch +++ b/ios/patching/021-social-app-ios-clean-feed.patch @@ -1,21 +1,60 @@ -diff --git a/src/view/screens/Home.tsx b/src/view/screens/Home.tsx -index e058e2883..e762b1418 100644 ---- a/src/view/screens/Home.tsx -+++ b/src/view/screens/Home.tsx -@@ -39,6 +39,16 @@ import {NoFeedsPinned} from '#/screens/Home/NoFeedsPinned' - import * as Layout from '#/components/Layout' - import {useDemoMode} from '#/storage/hooks/demo-mode' - -+const DEFAULT_PINNED_FEEDS = [{ -+ feedDescriptor: 'following', -+ displayName: 'Following', -+ id: 'following', -+ type: 'feed', -+ savedFeed: undefined, -+ pinned: true, -+}] -+ -+ - type Props = NativeStackScreenProps - export function HomeScreen(props: Props) { - const {setShowLoggedOut} = useLoggedOutViewControls() +diff --git a/src/view/com/posts/FollowingEmptyState.tsx b/src/view/com/posts/FollowingEmptyState.tsx +index 352cc1dc0..06987be51 100644 +--- a/src/view/com/posts/FollowingEmptyState.tsx ++++ b/src/view/com/posts/FollowingEmptyState.tsx +@@ -45,36 +45,6 @@ export function FollowingEmptyState() { + happening. + + +- +- +- +- You can also discover new Custom Feeds to follow. +- +- + + + ) +diff --git a/src/view/com/posts/PostFeed.tsx b/src/view/com/posts/PostFeed.tsx +index 4f25468c9..c35ad1c1a 100644 +--- a/src/view/com/posts/PostFeed.tsx ++++ b/src/view/com/posts/PostFeed.tsx +@@ -543,14 +543,6 @@ let PostFeed = ({ + }) + } + } else if (feedKind === 'following') { +- if (sliceIndex === 0) { +- // Show composer prompt for Following feed +- if (hasSession && gate('show_composer_prompt')) { +- arr.push({ +- type: 'composerPrompt', +- key: 'composerPrompt-' + sliceIndex, +- }) +- } + } + } else if (feedKind === 'profile') { + if (sliceIndex === 5) {