PDF表示切替機能実装

This commit is contained in:
harukin-OneMix4 2023-12-23 03:43:32 +09:00
parent 305d386fcc
commit 6233c94a80
2 changed files with 41 additions and 9 deletions

View File

@ -10,6 +10,7 @@ import { widthPercentageToDP as wp } from "react-native-responsive-screen";
import lineColorList from "../../assets/originData/lineColorList"; import lineColorList from "../../assets/originData/lineColorList";
import { getPDFViewURL } from "../../lib/getPdfViewURL"; import { getPDFViewURL } from "../../lib/getPdfViewURL";
import { useBusAndTrainData } from "../../stateBox/useBusAndTrainData"; import { useBusAndTrainData } from "../../stateBox/useBusAndTrainData";
import { AS } from "../../storageControl";
export const StationDeteilView = (props) => { export const StationDeteilView = (props) => {
const { const {
@ -31,6 +32,11 @@ export const StationDeteilView = (props) => {
} }
setTrainBus(data[0]); setTrainBus(data[0]);
}, [currentStation]); }, [currentStation]);
const [usePDFView, setUsePDFView] = useState(undefined);
useEffect(() => {
AS.getItem("usePDFView").then(setUsePDFView);
}, []);
const info = const info =
currentStation && currentStation &&
(currentStation[0].StationTimeTable.match(".pdf") (currentStation[0].StationTimeTable.match(".pdf")
@ -75,10 +81,12 @@ export const StationDeteilView = (props) => {
currentStation={currentStation} currentStation={currentStation}
originalStationList={originalStationList} originalStationList={originalStationList}
oP={() => { oP={() => {
navigate("howto", { usePDFView == "true"
info, ? Linking.openURL(currentStation[0].StationTimeTable)
onExit, : navigate("howto", {
}); info,
onExit,
});
StationBoardAcSR.current?.hide(); StationBoardAcSR.current?.hide();
}} }}
oLP={() => Linking.openURL(currentStation[0].StationTimeTable)} oLP={() => Linking.openURL(currentStation[0].StationTimeTable)}
@ -141,10 +149,12 @@ export const StationDeteilView = (props) => {
icon={<FontAwesome name="table" color="white" size={50} />} icon={<FontAwesome name="table" color="white" size={50} />}
flex={1} flex={1}
onPressButton={() => { onPressButton={() => {
navigate("howto", { usePDFView == "true"
info, ? Linking.openURL(currentStation[0].StationTimeTable)
onExit, : navigate("howto", {
}); info,
onExit,
});
StationBoardAcSR.current?.hide(); StationBoardAcSR.current?.hide();
}} }}
onLongPressButton={() => onLongPressButton={() =>

View File

@ -13,12 +13,14 @@ export default function Setting(props) {
const [iconSetting, setIconSetting] = useState(undefined); const [iconSetting, setIconSetting] = useState(undefined);
const [mapSwitch, setMapSwitch] = useState(undefined); const [mapSwitch, setMapSwitch] = useState(undefined);
const [stationMenu, setStationMenu] = useState(undefined); const [stationMenu, setStationMenu] = useState(undefined);
const [usePDFView, setUsePDFView] = useState(undefined);
const [trainMenu, setTrainMenu] = useState(undefined); const [trainMenu, setTrainMenu] = useState(undefined);
const [trainPosition, setTrainPosition] = useState(undefined); const [trainPosition, setTrainPosition] = useState(undefined);
useEffect(() => { useEffect(() => {
AS.getItem("iconSwitch").then(setIconSetting); AS.getItem("iconSwitch").then(setIconSetting);
AS.getItem("mapSwitch").then(setMapSwitch); AS.getItem("mapSwitch").then(setMapSwitch);
AS.getItem("stationSwitch").then(setStationMenu); AS.getItem("stationSwitch").then(setStationMenu);
AS.getItem("usePDFView").then(setUsePDFView);
AS.getItem("trainSwitch").then(setTrainMenu); AS.getItem("trainSwitch").then(setTrainMenu);
AS.getItem("trainPositionSwitch").then(setTrainPosition); AS.getItem("trainPositionSwitch").then(setTrainPosition);
}, []); }, []);
@ -96,6 +98,25 @@ export default function Setting(props) {
onValueChange={(value) => setStationMenu(value.toString())} onValueChange={(value) => setStationMenu(value.toString())}
/> />
</View> </View>
<View style={{ flexDirection: "row", padding: 10 }}>
<Text
style={{
fontSize: 25,
alignItems: "center",
alignContent: "center",
textAlign: "center",
textAlignVertical: "center",
}}
>
時刻表PDFをアプリ外で表示
</Text>
<View style={{ flex: 1 }} />
<Switch
value={usePDFView == "true" ? true : false}
color={usePDFView == "true" ? "red" : null}
onValueChange={(value) => setUsePDFView(value.toString())}
/>
</View>
<View style={{ flexDirection: "row", padding: 10 }}> <View style={{ flexDirection: "row", padding: 10 }}>
<Text <Text
style={{ style={{
@ -158,7 +179,7 @@ export default function Setting(props) {
textAlignVertical: "center", textAlignVertical: "center",
}} }}
> >
releaseChannel: {Updates.releaseChannel} releaseChannel: {Updates.channel}
</Text> </Text>
<View style={{ flex: 1 }} /> <View style={{ flex: 1 }} />
</View> </View>
@ -179,6 +200,7 @@ export default function Setting(props) {
AS.setItem("iconSwitch", iconSetting.toString()), AS.setItem("iconSwitch", iconSetting.toString()),
AS.setItem("mapSwitch", mapSwitch.toString()), AS.setItem("mapSwitch", mapSwitch.toString()),
AS.setItem("stationSwitch", stationMenu.toString()), AS.setItem("stationSwitch", stationMenu.toString()),
AS.setItem("usePDFView", usePDFView.toString()),
AS.setItem("trainSwitch", trainMenu.toString()), AS.setItem("trainSwitch", trainMenu.toString()),
AS.setItem("trainPositionSwitch", trainPosition.toString()), AS.setItem("trainPositionSwitch", trainPosition.toString()),
]).then(() => { ]).then(() => {