diff --git a/Apps.js b/Apps.js index ffc568d..c7031f3 100644 --- a/Apps.js +++ b/Apps.js @@ -14,7 +14,7 @@ import * as Updates from "expo-updates"; import { AS } from "./storageControl"; import { news } from "./config/newsUpdate"; -import { getStationList, lineList } from "./lib/getStationList"; +import { getStationList, lineList, lineListPair } from "./lib/getStationList"; import { injectJavascriptData } from "./lib/webViewInjectjavascript"; import { checkDuplicateTrainData } from "./lib/checkDuplicateTrainData"; import { useFavoriteStation } from "./stateBox/useFavoriteStation"; @@ -25,6 +25,8 @@ import TrainMenu from "./components/trainMenu"; import { EachTrainInfoCore } from "./components/ActionSheetComponents/EachTrainInfoCore"; import { useNavigation } from "@react-navigation/native"; +import { useTrainMenu } from "./stateBox/useTrainMenu"; +import { stationNamePair } from "./lib/getStationList2"; /* import StatusbarDetect from './StatusbarDetect'; var Status = StatusbarDetect(); */ @@ -37,6 +39,7 @@ export default function Apps({ stationData }) { const { favoriteStation } = useFavoriteStation(); const { isLandscape, setIsLandscape } = useDeviceOrientationChange(); const handleLayout = () => {}; + const { setSelectedLine } = useTrainMenu(); //画面表示関連 const [iconSetting, setIconSetting] = useState(undefined); @@ -164,6 +167,13 @@ export default function Apps({ stationData }) { }); return; } + case "currentLines": { + const lineInfo = dataSet.currentLines.split("\n")[0]; + const lineID = stationNamePair[lineInfo]; + + setSelectedLine(lineID); + return; + } default: { return; } diff --git a/components/trainMenu.js b/components/trainMenu.js index 659ee7e..0894e8e 100644 --- a/components/trainMenu.js +++ b/components/trainMenu.js @@ -38,7 +38,7 @@ export default function TrainMenu({ stationData, style }) { latitude: parseFloat(latlng[0]), longitude: parseFloat(latlng[1]), })), - { edgePadding: { top: 100, bottom: 50, left: 50, right: 50 } } // Add margin values here + { edgePadding: { top: 100, bottom: 100, left: 50, right: 50 } } // Add margin values here ); }, [stationPin]); return ( @@ -97,6 +97,16 @@ export default function TrainMenu({ stationData, style }) { }} onPress={() => SheetManager.show("TrainMenuLineSelector")} > + + ▲  ここを押して路線をフィルタリングできます  ▲ + {selectedLine ? lineListPair[stationIDPair[selectedLine]] - : "ここを押して路線をフィルタリングできます  ▲"} + : "JR四国 対象全駅"} diff --git a/lib/getStationList2.js b/lib/getStationList2.js index 11397b8..e554828 100644 --- a/lib/getStationList2.js +++ b/lib/getStationList2.js @@ -32,3 +32,15 @@ export const stationIDPair = { naruto: "N", seto: "M", }; + +export const stationNamePair = { + "予讃線(高松 - 松山)": "yosan", + "予讃線・内子線(松山 - 内子 - 宇和島)": "uwajima", + "予讃線・伊予灘線(向井原 - 伊予大洲)": "uwajima2", + "土讃線(多度津 - 高知)": "dosan", + "土讃線(高知 - 窪川)": "dosan2", + "高徳線(高松 - 徳島)": "koutoku", + "徳島線(徳島 - 阿波池田)": "tokushima", + "鳴門線(池谷 - 鳴門)": "naruto", + "瀬戸大橋線(児島 - 宇多津)": "seto", +}; diff --git a/lib/webViewInjectjavascript.js b/lib/webViewInjectjavascript.js index 27a218d..b1ff812 100644 --- a/lib/webViewInjectjavascript.js +++ b/lib/webViewInjectjavascript.js @@ -696,7 +696,11 @@ const setStrings = () =>{ } catch (e) {} } -const textInsert = new MutationObserver( (mutations) => setStrings()); +const textInsert = new MutationObserver( (mutations) =>{ + setStrings(); + const currentLines = document.querySelector('#topHeader div').innerText; + window.ReactNativeWebView.postMessage(JSON.stringify({type:"currentLines",currentLines})); +}); // 監視を開始 textInsert.observe(document.getElementById('disp'), {