diff --git a/Apps.js b/Apps.js
index 0c9e76b..ea1f68f 100644
--- a/Apps.js
+++ b/Apps.js
@@ -56,6 +56,7 @@ export default function Apps({
const [stationBoardData, setStationBoardData] = useState(undefined);
const [originalStationList, setOriginalStationList] = useState();
const [selectedStation, setSelectedStation] = useState(undefined);
+ const [trainMenu, setTrainMenu] = useState("true");
let once = false;
useEffect(() => {
getStationList().then(setOriginalStationList);
@@ -66,7 +67,8 @@ export default function Apps({
const injectJavascript = injectJavascriptData(
mapSwitch,
iconSetting,
- stationMenu
+ stationMenu,
+ trainMenu
);
useEffect(() => {
@@ -109,7 +111,7 @@ export default function Apps({
AS.getItem("stationSwitch")
.then((d) => {
if (d) {
- setStationMenu(d);
+ setTrainMenu(d);
} else {
AS.setItem("stationSwitch", "true").then(Updates.reloadAsync);
}
@@ -118,6 +120,20 @@ export default function Apps({
AS.setItem("stationSwitch", "true").then(Updates.reloadAsync)
);
}, []);
+ useEffect(() => {
+ //列車メニュースイッチ
+ AS.getItem("trainSwitch")
+ .then((d) => {
+ if (d) {
+ setStationMenu(d);
+ } else {
+ AS.setItem("trainSwitch", "true").then(Updates.reloadAsync);
+ }
+ })
+ .catch((d) =>
+ AS.setItem("trainSwitch", "true").then(Updates.reloadAsync)
+ );
+ }, []);
const onMessage = (event) => {
if (event.nativeEvent.data.includes("train.html")) {
diff --git a/components/ActionSheetComponents/EachTrainInfo.js b/components/ActionSheetComponents/EachTrainInfo.js
index 80233a8..2cdd6e2 100644
--- a/components/ActionSheetComponents/EachTrainInfo.js
+++ b/components/ActionSheetComponents/EachTrainInfo.js
@@ -12,6 +12,7 @@ import {
} from "react-native";
import { Ionicons, MaterialCommunityIcons } from "@expo/vector-icons";
import ActionSheet from "react-native-actions-sheet";
+import { AS } from "../../storageControl";
import LottieView from "lottie-react-native";
import trainList from "../../assets/originData/trainList";
import { lineList } from "../../lib/getStationList";
@@ -33,6 +34,20 @@ export const EachTrainInfo = ({
const [isTop, setIsTop] = useState(true);
const [currentPosition, setCurrentPosition] = useState([]);
+ const [trainPositionSwitch, setTrainPositionSwitch] = useState("false");
+
+ useEffect(() => {
+ //列車現在地アイコン表示スイッチ
+ AS.getItem("trainPositionSwitch")
+ .then((d) => {
+ if (d) {
+ setTrainPositionSwitch(d);
+ } else {
+ }
+ })
+ .catch((d) => AS.setItem("trainPositionSwitch", "false"));
+ }, []);
+
const getStationData = (stationName) => {
const Stations = stationList.map((a) =>
a.filter((d) => d.StationName == stationName)
@@ -128,7 +143,6 @@ export const EachTrainInfo = ({
if (array.length == 2) {
const index1 = stopStationIDList.indexOf(array[0]);
const index2 = stopStationIDList.indexOf(array[1]);
- console.log(index1, index2);
if (index1 != -1 && index2 != -1) {
// 駅間で通過駅も無い場合
if (index1 < index2) {
@@ -153,20 +167,44 @@ export const EachTrainInfo = ({
}
}
} else {
+ const getNearStationID = (stationID) => {
+ for (let i = 0; i <= stopStationIDListNumber.length; i++) {
+ console.log(stopStationIDListNumber[i].ID, stationID);
+ if (stopStationIDListNumber[i].ID < stationID) {
+ if (stopStationIDListNumber[i + 1].ID > stationID) {
+ return i + 1;
+ }
+ }
+ if (stopStationIDListNumber[i].ID > stationID) {
+ if (stopStationIDListNumber[i + 1].ID < stationID) {
+ return i + 1;
+ }
+ }
+ }
+ };
+ let newIndex1 = index1;
+ let newIndex2 = index2;
+ if (index1 == -1) {
+ newIndex1 = getNearStationID(arrayNumber[0].ID);
+ }
+ if (index2 == -1) {
+ newIndex2 = getNearStationID(arrayNumber[1].ID);
+ }
+ if (newIndex1 && newIndex2) {
+ return [newIndex1, newIndex2];
+ }
+
+ // 通過駅の場合
}
- // 通過駅の場合
+ return [];
}
-
- return [];
}
-
// 使用例
- const points = findReversalPoints(currentPosition);
- console.log(points);
+ const points =
+ trainPositionSwitch == "true" ? findReversalPoints(currentPosition) : [];
useEffect(() => {
- console.log(data);
setIsTop(true);
if (!data.trainNum) return;
const TD = trainList[data.trainNum];
@@ -368,7 +406,7 @@ export const EachTrainInfo = ({
-
-
+ */}
{
AS.getItem("iconSwitch").then(setIconSetting);
AS.getItem("mapSwitch").then(setMapSwitch);
AS.getItem("stationSwitch").then(setStationMenu);
+ AS.getItem("trainSwitch").then(setTrainMenu);
+ AS.getItem("trainPositionSwitch").then(setTrainPosition);
}, []);
return (
@@ -83,7 +87,7 @@ export default function Setting(props) {
textAlignVertical: "center",
}}
>
- 駅メニューを表示(beta)
+ 駅メニューを表示
setStationMenu(value.toString())}
/>
+
+
+ 列車メニュー
+
+
+ setTrainMenu(value.toString())}
+ />
+
+
+
+ →列車現在位置表示(alpha)
+
+
+ setTrainPosition(value.toString())}
+ />
+
{
Updates.reloadAsync();
});
diff --git a/lib/webViewInjectjavascript.js b/lib/webViewInjectjavascript.js
index 55ff219..443cd65 100644
--- a/lib/webViewInjectjavascript.js
+++ b/lib/webViewInjectjavascript.js
@@ -706,8 +706,7 @@ makeTrainView.observe(document.getElementById('modal_content'), {
});
`;
const makeTrainMenu =
- //trainMenu == "true"
- true
+ trainMenu == "true"
? `
// これの中身抽出ShowTrainTimeInfo("1228M","normal")
function setTrainMenuDialog(d){
@@ -725,7 +724,7 @@ makeTrainView.observe(document.getElementById('modal_content'), {
window.ReactNativeWebView.postMessage(JSON.stringify({type:"ShowTrainTimeInfo",trainNum,limited}));
};
`
- : ``;
+ : `function setTrainMenuDialog(d){}`;
const makeStationMenu =
stationMenu == "true"