diff --git a/GeneralWebView.tsx b/GeneralWebView.tsx index 9e58f67..080c049 100644 --- a/GeneralWebView.tsx +++ b/GeneralWebView.tsx @@ -94,7 +94,7 @@ export default ({ route }) => { onNavigationStateChange={(navState) => { setCanGoBack(navState.canGoBack); if (navState.url === "https://unyohub.2pd.jp/integration/succeeded.php") { - goBack(); + webViewRef.current?.goBack(); if (!hasAlerted.current) { hasAlerted.current = true; Alert.alert("鉄道運用HUBへの投稿完了", "運用HUBからのこのアプリへのデータ反映には暫く時間がかかりますので、しばらくお待ちください。", [ diff --git a/components/Settings/DataSourceSettings.tsx b/components/Settings/DataSourceSettings.tsx index c929204..2b73843 100644 --- a/components/Settings/DataSourceSettings.tsx +++ b/components/Settings/DataSourceSettings.tsx @@ -147,16 +147,17 @@ const DataSourceAccordionCard: React.FC = ({ /* 定数 */ /* ------------------------------------------------------------------ */ const UNYOHUB_FEATURES: Feature[] = [ - { icon: "calendar-today", label: "運用データ", text: "本日・過去数日から投稿があった運用の継続予測運用情報を表示" }, + { icon: "calendar-today", label: "運用データ", text: "当日・過去数日から投稿があった運用の継続予測運用情報を表示" }, { icon: "map-outline", label: "対象エリア", text: "JR四国全線" }, - { icon: "train", label: "対象運用", text: "JR四国管内営業列車及び貨物列車に対応、臨時列車/突発運用は非対応" }, - { icon: "plus", label: "追加機能", text: "前日、当日、翌日の運用の投稿が可能" }, + { icon: "train", label: "対象運用", text: "JR四国管内営業列車及び貨物列車,定期回送列車に対応、臨時列車/突発運用は非対応" }, + { icon: "pencil", label: "入力方式", text: "アプリ内連携システムにて当日の運用の投稿が可能" }, ]; const ELESITE_FEATURES: Feature[] = [ - { icon: "calendar-today", label: "運用データ", text: "当日に報告のあった運用情報のみ表示" }, - { icon: "map-outline", label: "対象エリア", text: "予讃線/瀬戸大橋線(なお直通している特急などの列番は含みます)" }, + { icon: "calendar-today", label: "運用データ", text: "当日報告のあった運用情報のみ表示" }, + { icon: "map-outline", label: "対象エリア", text: "予讃線/瀬戸大橋線(直通している特急などの列番は含みます)" }, { icon: "train", label: "対象運用", text: "JR四国管内営業列車対応、臨時列車/突発運用は非対応" }, + { icon: "pencil", label: "入力方式", text: "アプリ外リンク連携にて当日の運用の投稿が可能" }, ]; /* ------------------------------------------------------------------ */ @@ -242,7 +243,7 @@ export const DataSourceSettings = () => { enabled={useElesite} onToggle={handleToggleElesite} description={ - "えれサイトは、鉄道運用情報を共有するためのサイトです。皆様からの投稿を通じて、鉄道運行に関する情報を共有するサイトです。JR 四国の特急・普通列車を中心に対応しています。\n\nデータがある列車では地図上に緑色の「E」バッジが表示され、列車情報画面の編成表示も更新されます。" + "えれサイトは、鉄道の運用情報を利用者同士で共有するサービスです。皆様からの投稿をもとに、列車のリアルタイムな動きを反映しています。JR四国の特急・普通列車をはじめ、現在は全国の路線に対応しています。\n\nデータがある列車では地図上にアイコンでマークが表示され、列車情報画面の編成表示も更新されます。" } features={ELESITE_FEATURES} linkLabel="elesite-next.com を開く" diff --git a/lib/jrDataSystemEnvironment.ts b/lib/jrDataSystemEnvironment.ts index 3e8272b..1a654d9 100644 --- a/lib/jrDataSystemEnvironment.ts +++ b/lib/jrDataSystemEnvironment.ts @@ -4,12 +4,12 @@ export const JR_DATA_SYSTEM_ENVS = { caption: "現在の本番環境", baseUrl: "https://jr-shikoku-data-system.pages.dev", }, - chatgpt: { - label: "ChatGPT", - caption: "experiment-ux-refactoring-co-3crz", - baseUrl: - "https://experiment-ux-refactoring-co-3crz.jr-shikoku-data-system.pages.dev", - }, + // chatgpt: { + // label: "ChatGPT", + // caption: "experiment-ux-refactoring-co-3crz", + // baseUrl: + // "https://experiment-ux-refactoring-co-3crz.jr-shikoku-data-system.pages.dev", + // }, claude: { label: "Claude", caption: "experiment-ux-refactoring-co-6cw7", diff --git a/lib/stackOption.ts b/lib/stackOption.ts index 2d570e7..ff79c39 100644 --- a/lib/stackOption.ts +++ b/lib/stackOption.ts @@ -1,8 +1,39 @@ -import { TransitionPresets } from "@react-navigation/stack"; +import { Platform } from "react-native"; +import { + CardStyleInterpolators, + TransitionPresets, +} from "@react-navigation/stack"; +import type { StackCardInterpolationProps } from "@react-navigation/stack"; + +/** + * Android用: モーダルのスライドアップはそのまま維持しつつ、 + * 背景カードへのアニメーション(scale, borderRadius等)を無効化する。 + * Android で背景カードのアニメーションが描画の乱れを引き起こすため。 + */ +const forModalPresentationAndroid = ( + props: StackCardInterpolationProps +) => { + const result = CardStyleInterpolators.forModalPresentationIOS(props); + + // 背景カード(next が存在する)にはスタイル変更を適用しない + if (props.next) { + return { + cardStyle: {}, + overlayStyle: result.overlayStyle, + }; + } + + return result; +}; + export const optionData = { gestureEnabled: true, ...TransitionPresets.ModalPresentationIOS, + ...(Platform.OS === "android" && { + cardStyleInterpolator: forModalPresentationAndroid, + }), cardOverlayEnabled: true, headerTransparent: true, headerShown: false, + detachPreviousScreen: false, }; diff --git a/lib/webViewInjectjavascript.ts b/lib/webViewInjectjavascript.ts index 0119594..db3248d 100644 --- a/lib/webViewInjectjavascript.ts +++ b/lib/webViewInjectjavascript.ts @@ -859,7 +859,7 @@ export const injectJavascriptData = ({ if(hasElesite) { const elesiteOffsetPx = _blueOffset + (hasUnyohub ? 20 : 0); const offsetStyle = badgeVerticalPos + ":" + elesiteOffsetPx + "px;"; - badgeHtml += "
"; + badgeHtml += "
"; } 行き先情報.insertAdjacentHTML('beforebegin', "
" + badgeHtml + "

" + (TrainNumberOverride ? TrainNumberOverride : TrainNumber) + "

" + (isWanman ? "ワンマン " : "") + "

" + viaData + "

" + optionalText + "

" + trainName + "

" + (ToData ? ToData + "行" : ToData) + "

" + trainType + "

" + (hasProblem ? "‼️停止中‼️" : "") + "

"); diff --git a/stateBox/useCurrentTrain.tsx b/stateBox/useCurrentTrain.tsx index 5b56be1..009a57b 100644 --- a/stateBox/useCurrentTrain.tsx +++ b/stateBox/useCurrentTrain.tsx @@ -141,14 +141,7 @@ export const CurrentTrainProvider: FC = ({ children }) => { } else { inject(`setReload()`); } - }, 15000, false, !!fixedPosition.type); - useEffect(() => { - if (fixedPosition?.type) { - setIntervalState.start(); - } else { - setIntervalState.stop(); - } - }, [fixedPosition]); + }, 15000, true, false); type getPositionFuncType = ( currentTrainData: trainDataType @@ -327,7 +320,7 @@ export const CurrentTrainProvider: FC = ({ children }) => { const [_0, _1] = useInterval(() => { getCurrentTrain(); - }, 10000, true, !!fixedPosition.type); //10秒毎に全在線列車取得 + }, 15000, true, false); //15秒毎に全在線列車取得 return (