From 79e8865dc92fbb266adf6f1bdbc78e32a69a5a61 Mon Sep 17 00:00:00 2001 From: harukin-DeskMini Date: Thu, 14 Apr 2022 03:10:12 +0900 Subject: [PATCH] =?UTF-8?q?=E8=A8=AD=E5=AE=9A=E7=94=BB=E9=9D=A2=E3=81=AE?= =?UTF-8?q?=E8=A8=AD=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App.js | 13 +- Apps.js | 948 +++++++++++++++++++++-------------------- components/news.js | 19 + components/settings.js | 44 ++ package.json | 2 + yarn.lock | 27 ++ 6 files changed, 595 insertions(+), 458 deletions(-) create mode 100644 components/news.js create mode 100644 components/settings.js diff --git a/App.js b/App.js index 987ce0f..766f753 100644 --- a/App.js +++ b/App.js @@ -10,7 +10,9 @@ import tndView from './ndView'; import trainbase from './trainbaseview'; import howto from './howto'; import menu from './menu'; +import News from './components/news.js'; import TestArea from './TestArea.js'; +import Setting from './components/settings.js'; const Stack = createStackNavigator(); const Tab = createBottomTabNavigator(); if (Platform.OS === 'android') { @@ -26,7 +28,7 @@ export default function App(){ (),}}/> - (),}}/> + (),}}/> (),}}/> @@ -41,6 +43,15 @@ function top(){ + ) } +function menuPage(){ + return( + + + + + ) +} \ No newline at end of file diff --git a/Apps.js b/Apps.js index bcbba39..4613d6f 100644 --- a/Apps.js +++ b/Apps.js @@ -1,50 +1,464 @@ -import React, { useRef } from 'react'; -import {View, Platform} from 'react-native'; +import React, { useEffect, useRef, useState } from 'react'; +import {View, Platform, ToastAndroid} from 'react-native'; import {WebView} from 'react-native-webview'; -import Constants from 'expo-constants';/* +import Constants from 'expo-constants'; +import AsyncStorage from '@react-native-async-storage/async-storage'; +/* import StatusbarDetect from './StatusbarDetect'; var Status = StatusbarDetect(); */ + export var webview = null; + export default function Apps (props) { const { navigation: { navigate } } = props; var urlcache=""; const webview = useRef(); - return ( - - {/* {Status} */} - { - console.log(event); - if(event.url != urlcache){//URL二重判定回避 - urlcache = event.url; - - if (event.url.includes("https://train.jr-shikoku.co.jp/usage.htm")) { - if(Platform.OS==="android")navigate('howto'); - webview?.current.goBack(); - //Actions.howto(); - } - else if (event.url.includes("https://train.jr-shikoku.co.jp/train.html")) { - //Actions.trainbase({info: event.url}); - if(Platform.OS==="android")navigate('trainbase', {info: event.url}); - webview?.current.goBack(); - } - } - } - } - onMessage={(event)=>{}} - injectedJavaScript={INJECTED_JAVASCRIPT}/> - - ); + const [iconSetting, setIconSetting] = useState(undefined) + useEffect(()=>{ + AsyncStorage.getItem("status") + .then(d=>{ + if(d != "2022/04/14"){ + navigate('news'); + } + }) + .catch(e=>{ + navigate('news'); + }) + },[]) + useEffect(()=>{ + AsyncStorage.getItem("iconSwitch").then( d =>{ + if(d){ + setIconSetting(d); + } + else{ + AsyncStorage.setItem("iconSwitch","true").then(()=>Updates.reloadAsync()) + } + + + }).catch(d=>AsyncStorage.setItem("iconSwitch","true").then(()=>Updates.reloadAsync())) + },[]) + +const fTrainIcon = iconSetting == "true" ?`JRF || setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/f/ef210a.png');`:``; +const trainIcon = iconSetting == "true" ? ` + +switch(列番データ){ + //しおかぜメイン + //8000 ノーマル + case "2M": + case "4M": + case "6M": + case "14M": + case "16M": + case "18M": + case "26M": + case "28M": + case "30M": + case "1M": + case "3M": + case "5M": + case "13M": + case "15M": + case "17M": + case "25M": + case "27M": + case "29M": + setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/s8000nr.png'); + break; + //8000 アンパン + case "10M": + case "22M": + case "9M": + case "21M": + setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/f/s8000ap.png'); + break; + + + //8600 + case "8M": + case "12M": + case "20M": + case "24M": + case "7M": + case "11M": + case "19M": + case "23M": + setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/s8600.png'); + break; + + //いしづちメイン + //8000 ノーマル + + case "1004M": + case "1006M": + case "1014M": + case "1016M": + case "1018M": + case "1026M": + case "1028M": + case "1030M": + case "1001M": + case "1003M": + case "1005M": + case "1013M": + case "1015M": + case "1017M": + case "1025M": + case "1027M": + case "1029M": + setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/s8000no.png'); + break; + + //8000 アンパン + case "1010M": + case "1022M": + case "1009M": + case "1021M": + setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/f/s8000ap.png'); + break; + + //8600 + case "1008M": + case "1012M": + case "1020M": + case "1024M": + case "1007M": + case "1011M": + case "1019M": + case "1023M": + setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/s8600_isz.png'); + break; + + //MEXP + //8000 + case "1092M": + setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/s8000no.png'); + break; + //8600 + case "1091M": + setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/s8600_isz.png'); + break; + //三桁いしづち + //8000 アンパン + case "1041M": + case "1044M": + setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/f/s8000ap.png'); + break; + //8600 + case "1043M": + case "1042M": + case "1046M": + setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/s8600_isz.png'); + break; + + + //南風 2700ノーマル + case "34D": + case "38D": + case "40D": + case "42D": + case "46D": + case "50D": + case "52D": + case "54D": + case "58D": + case "31D": + case "35D": + case "39D": + case "41D": + case "43D": + case "47D": + case "51D": + case "53D": + case "55D": + setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/s2700.png'); + break; + //2700アンパン + case "32D": + case "36D": + case "44D": + case "48D": + case "56D": + case "33D": + case "37D": + case "45D": + case "49D": + case "57D": + setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/f/s2700apr.png'); + break; + + + + //うずしお + //2700 + case "5006D": + case "5022D": + case "5013D": + case "5029D": + case "3002D": + case "3004D": + case "3010D": + case "3012D": + case "3016D": + case "3018D": + case "3024D": + case "3028D": + case "3030D": + case "3003D": + case "3005D": + case "3007D": + case "3015D": + case "3019D": + case "3021D": + case "3025D": + case "3027D": + case "3031D": + case "3033D": + setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/s2700_uzu.png'); + break; + + //2600 + case "3008D": + case "3014D": + case "3020D": + case "3026D": + case "3001D": + case "3011D": + case "3017D": + case "3023D": + setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/s2600.png'); + break; + + //キハ185 + case "3009D": + case "3032D": + setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/s185tu_uzu.png'); + break; + + //マリンライナー + case "3104M": + case "3106M": + case "3108M": + case "3110M": + case "3112M": + case "3114M": + case "3116M": + case "3118M": + case "3120M": + case "3122M": + case "3124M": + case "3126M": + case "3128M": + case "3130M": + case "3132M": + case "3134M": + case "3136M": + case "3138M": + case "3140M": + case "3142M": + case "3144M": + case "3146M": + case "3148M": + case "3150M": + case "3152M": + case "3154M": + case "3156M": + case "3158M": + case "3160M": + case "3162M": + case "3164M": + case "3166M": + case "3168M": + case "3170M": + case "3105M": + case "3107M": + case "3109M": + case "3111M": + case "3113M": + case "3115M": + case "3117M": + case "3119M": + case "3121M": + case "3123M": + case "3125M": + case "3127M": + case "3129M": + case "3131M": + case "3133M": + case "3135M": + case "3137M": + case "3139M": + case "3141M": + case "3143M": + case "3145M": + case "3147M": + case "3149M": + case "3151M": + case "3153M": + case "3155M": + case "3157M": + case "3159M": + case "3161M": + case "3163M": + case "3165M": + case "3167M": + case "3169M": + case "3175M": + setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/s5001.png'); + break; + case "3102M": + case "3101M": + case "3103M": + case "3171M": + case "3173M": + setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/s5001k.png'); + break; + + //サンライズ瀬戸 + case "5032M": + case "5031M": + case "8041M": //琴平延長高松迄 + case "8031M": //琴平延長高松以降 + setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/w285.png'); + break; + + //宇和海 + //2000 ノーマル + case "1052D": + case "1056D": + case "1058D": + case "1064D": + case "1070D": + case "1074D": + case "1076D": + case "1078D": + case "1080D": + case "1082D": + case "1051D": + case "1059D": + case "1065D": + case "1071D": + case "1073D": + case "1075D": + case "1077D": + case "1079D": + case "1053D": + setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/s2000_uwa.png'); + break; + //2000 アンパン込み + case "1054D": + case "1060D": + case "1062D": + case "1066D": + case "1068D": + case "1072D": + case "1055D": + case "1057D": + case "1061D": + case "1063D": + case "1067D": + case "1069D": + case "1081D": + setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/f/s2002a.png'); + break; + //しまんと + case "2002D": + case "2004D": + case "2006D": + case "2008D": + case "2001D": + case "2003D": + case "2005D": + case "2007D": + setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/s2700_smn.png'); + break; + + //あしずり 2000 + case "2074D": + case "2076D": + case "2080D": + case "2084D": + case "2086D": + case "2071D": + case "2075D": + case "2077D": + case "2081D": + case "2083D": + setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/s2000_asi.png'); + break; + + //あしずり 2700 + case "2078D": + case "2082D": + case "2088D": + case "2073D": + case "2079D": + case "2085D": + case "2072D": + setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/s2700_asi.png'); + break; + //剣山 + case "4002D": + case "4004D": + case "4006D": + case "4008D": + case "4010D": + case "4001D": + case "4003D": + case "4005D": + case "4007D": + case "4009D": + case "4011D": + setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/s185tu.png'); + break; + //むろと + case "5051D": + case "5052D": + setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/s185_mrt.png'); + break; + + + //よしのがわトロッコ + case "8452D": + case "8451D": + setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/f/s185to_ai.png'); + break; + + //岡山高松アントロ + case "8176D": + case "8179D": + //岡山琴平アントロ + case "8277D": + case "8278D": + setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/f/s32to4.png'); + break; + + //伊予灘ものがたり + case "8901D": + case "8903D": + case "8902D": + case "8904D": + setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/s185iyoy.png'); + break; + + + //千年ものがたり + case "8011D": + case "8012D": + setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/s185mm1.png'); + break; + + //夜明けものがたり + case "8053D": + case "8054D": + case "8062D": + case "8063D": + setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/s185ym1.png'); + break; + default: + break; } + +` : ``; const INJECTED_JAVASCRIPT = ` const setStationIcon = (行き先アイコン,img) =>{ let newItem = document.createElement("div"); @@ -83,424 +497,7 @@ const INJECTED_JAVASCRIPT = ` var 列番データ = element.getAttribute('onclick').split('"')[1]; var flag=false; var TrainType = undefined; - - - switch(列番データ){ - //しおかぜメイン - //8000 ノーマル - case "2M": - case "4M": - case "6M": - case "14M": - case "16M": - case "18M": - case "26M": - case "28M": - case "30M": - case "1M": - case "3M": - case "5M": - case "13M": - case "15M": - case "17M": - case "25M": - case "27M": - setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/s8000nr.png'); - break; - //8000 アンパン - case "10M": - case "22M": - case "9M": - case "21M": - setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/f/s8000ap.png'); - break; - - - //8600 - case "8M": - case "12M": - case "20M": - case "24M": - case "7M": - case "11M": - case "19M": - case "23M": - setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/s8600.png'); - break; - - //いしづちメイン - //8000 ノーマル - - case "1004M": - case "1006M": - case "1014M": - case "1016M": - case "1018M": - case "1026M": - case "1028M": - case "1030M": - case "1001M": - case "1003M": - case "1005M": - case "1013M": - case "1015M": - case "1017M": - case "1025M": - case "1027M": - setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/s8000no.png'); - break; - - //8000 アンパン - case "1010M": - case "1022M": - case "1009M": - case "1021M": - setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/f/s8000ap.png'); - break; - - //8600 - case "1008M": - case "1012M": - case "1020M": - case "1024M": - case "1007M": - case "1011M": - case "1019M": - case "1023M": - setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/s8600_isz.png'); - break; - - //MEXP - //8000 - case "1092M": - setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/s8000no.png'); - break; - //8600 - case "1091M": - setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/s8600_isz.png'); - break; - //三桁いしづち - //8000 アンパン - case "1041M": - case "1044M": - setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/f/s8000ap.png'); - break; - //8600 - case "1043M": - case "1042M": - case "1046M": - setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/s8600_isz.png'); - break; - - - //南風 2700ノーマル - case "34D": - case "38D": - case "40D": - case "42D": - case "46D": - case "50D": - case "52D": - case "54D": - case "58D": - case "31D": - case "35D": - case "39D": - case "41D": - case "43D": - case "47D": - case "51D": - case "53D": - case "55D": - setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/s2700.png'); - break; - //2700アンパン - case "32D": - case "36D": - case "44D": - case "48D": - case "56D": - case "33D": - case "37D": - case "45D": - case "49D": - case "57D": - setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/f/s2700apr.png'); - break; - - - - //うずしお - //2700 - case "5006D": - case "5022D": - case "5013D": - case "5029D": - case "3002D": - case "3004D": - case "3010D": - case "3012D": - case "3016D": - case "3018D": - case "3024D": - case "3028D": - case "3030D": - case "3003D": - case "3005D": - case "3007D": - case "3015D": - case "3019D": - case "3021D": - case "3025D": - case "3027D": - case "3031D": - case "3033D": - setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/s2700_uzu.png'); - break; - - //2600 - case "3008D": - case "3014D": - case "3020D": - case "3026D": - case "3001D": - case "3011D": - case "3017D": - case "3023D": - setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/s2600.png'); - break; - - //キハ185 - case "3009D": - case "3032D": - setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/s185tu_uzu.png'); - break; - - //マリンライナー - case "3104M": - case "3106M": - case "3108M": - case "3110M": - case "3112M": - case "3114M": - case "3116M": - case "3118M": - case "3120M": - case "3122M": - case "3124M": - case "3126M": - case "3128M": - case "3130M": - case "3132M": - case "3134M": - case "3136M": - case "3138M": - case "3140M": - case "3142M": - case "3144M": - case "3146M": - case "3148M": - case "3150M": - case "3152M": - case "3154M": - case "3156M": - case "3158M": - case "3160M": - case "3162M": - case "3164M": - case "3166M": - case "3168M": - case "3170M": - case "3105M": - case "3107M": - case "3109M": - case "3111M": - case "3113M": - case "3115M": - case "3117M": - case "3119M": - case "3121M": - case "3123M": - case "3125M": - case "3127M": - case "3129M": - case "3131M": - case "3133M": - case "3135M": - case "3137M": - case "3139M": - case "3141M": - case "3143M": - case "3145M": - case "3147M": - case "3149M": - case "3151M": - case "3153M": - case "3155M": - case "3157M": - case "3159M": - case "3161M": - case "3163M": - case "3165M": - case "3167M": - case "3169M": - case "3175M": - setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/s5001.png'); - break; - case "3102M": - case "3101M": - case "3103M": - case "3171M": - case "3173M": - setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/s5001k.png'); - break; - - //サンライズ瀬戸 - case "5032M": - case "5031M": - case "8041M": //琴平延長高松迄 - case "8031M": //琴平延長高松以降 - setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/w285.png'); - break; - - //宇和海 - //2000 ノーマル - case "1052D": - case "1056D": - case "1058D": - case "1064D": - case "1070D": - case "1074D": - case "1076D": - case "1078D": - case "1080D": - case "1082D": - case "1051D": - case "1059D": - case "1065D": - case "1071D": - case "1073D": - case "1075D": - case "1077D": - case "1079D": - case "1053D": - setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/s2000_uwa.png'); - break; - //2000 アンパン込み - case "1054D": - case "1060D": - case "1062D": - case "1066D": - case "1068D": - case "1072D": - case "1055D": - case "1057D": - case "1061D": - case "1063D": - case "1067D": - case "1069D": - case "1081D": - setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/f/s2002a.png'); - break; - //しまんと - case "2002D": - case "2004D": - case "2006D": - case "2008D": - case "2001D": - case "2003D": - case "2005D": - case "2007D": - setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/s2700_smn.png'); - break; - - //あしずり 2000 - case "2074D": - case "2076D": - case "2080D": - case "2084D": - case "2086D": - case "2071D": - case "2075D": - case "2077D": - case "2081D": - case "2083D": - setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/s2000_asi.png'); - break; - - //あしずり 2700 - case "2078D": - case "2082D": - case "2088D": - case "2073D": - case "2079D": - case "2085D": - case "2072D": - setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/s2700_asi.png'); - break; - //剣山 - case "4002D": - case "4004D": - case "4006D": - case "4008D": - case "4010D": - case "4001D": - case "4003D": - case "4005D": - case "4007D": - case "4009D": - case "4011D": - setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/s185tu.png'); - break; - //むろと - case "5051D": - case "5052D": - setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/s185_mrt.png'); - break; - - - //よしのがわトロッコ - case "8452D": - case "8451D": - setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/f/s185to_ai.png'); - break; - - //岡山高松アントロ - case "8176D": - case "8179D": - //岡山琴平アントロ - case "8277D": - case "8278D": - setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/f/s32to4.png'); - break; - - //伊予灘ものがたり - case "8901D": - case "8903D": - case "8902D": - case "8904D": - setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/s185iyoy.png'); - break; - - - //千年ものがたり - case "8011D": - case "8012D": - setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/s185mm1.png'); - break; - - //夜明けものがたり - case "8053D": - case "8054D": - case "8062D": - case "8063D": - setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/b/s185ym1.png'); - break; - default: - break; - } - - + `+trainIcon+` @@ -614,7 +611,7 @@ const INJECTED_JAVASCRIPT = ` //列番付与 行き先情報.innerText = 行き先情報.innerText+列番データ+(JRF ? "":"レ"); - JRF || setStationIcon(element.getElementsByTagName("img")[0],'http://www.trainfrontview.net/f/ef210a.png'); + `+fTrainIcon+` } } try{ @@ -709,3 +706,40 @@ const INJECTED_JAVASCRIPT = ` } `; + + return ( + + {/* {Status} */} + { + console.log(event); + if(event.url != urlcache){//URL二重判定回避 + urlcache = event.url; + + if (event.url.includes("https://train.jr-shikoku.co.jp/usage.htm")) { + if(Platform.OS==="android")navigate('howto'); + webview?.current.goBack(); + //Actions.howto(); + } + else if (event.url.includes("https://train.jr-shikoku.co.jp/train.html")) { + //Actions.trainbase({info: event.url}); + if(Platform.OS==="android")navigate('trainbase', {info: event.url}); + webview?.current.goBack(); + } + } + } + } + onMessage={(event)=>{}} + injectedJavaScript={INJECTED_JAVASCRIPT}/> + + ); +} \ No newline at end of file diff --git a/components/news.js b/components/news.js new file mode 100644 index 0000000..cdefe58 --- /dev/null +++ b/components/news.js @@ -0,0 +1,19 @@ +import React, { } from 'react'; +import {View,Text,TouchableOpacity } from 'react-native'; +import {WebView} from 'react-native-webview'; +import StatusbarDetect from '../StatusbarDetect'; +import AsyncStorage from '@react-native-async-storage/async-storage'; +var Status = StatusbarDetect(); +export default function News(props){ + const { navigation: { navigate } } = props; + return( + + + {AsyncStorage.setItem('status', "2022/04/14");navigate('Apps');}}> + + 更新情報を閉じる + + + + ) +} \ No newline at end of file diff --git a/components/settings.js b/components/settings.js new file mode 100644 index 0000000..f448672 --- /dev/null +++ b/components/settings.js @@ -0,0 +1,44 @@ +import React, { useState, useEffect } from 'react'; +import {View,Text,TouchableOpacity } from 'react-native'; +import * as Updates from 'expo-updates'; +import StatusbarDetect from '../StatusbarDetect'; +import AsyncStorage from '@react-native-async-storage/async-storage'; +var Status = StatusbarDetect(); +import { Switch } from 'react-native-elements'; + +export default function Setting(props){ + const { navigation: { navigate } } = props; + const [iconSetting, setIconSetting] = useState(undefined) + useEffect(()=>{ + AsyncStorage.getItem("iconSwitch").then( d =>{ + setIconSetting(d) + }) + },[]) + console.log(iconSetting); + return( + + + + 設定画面 + + + + 列車アイコンを表示する + + setIconSetting(value.toString())}/> + + + + + { + AsyncStorage.setItem("iconSwitch",iconSetting.toString()).then(()=>{ + Updates.reloadAsync() + }) + }}> + + 設定を保存して再読み込み + + + + ) +} \ No newline at end of file diff --git a/package.json b/package.json index 6b2cead..6fc6d62 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ }, "dependencies": { "@expo/vector-icons": "^12.0.0", + "@react-native-async-storage/async-storage": "^1.13.0", "@react-native-community/masked-view": "0.1.10", "@react-navigation/bottom-tabs": "^5.11.11", "@react-navigation/native": "^5.9.4", @@ -34,6 +35,7 @@ "react-native-router-flux": "^4.3.1", "react-native-safe-area-context": "3.2.0", "react-native-screens": "~3.0.0", + "react-native-storage": "^1.0.1", "react-native-svg": "12.1.0", "react-native-svg-uri": "^1.2.3", "react-native-vector-icons": "^8.1.0", diff --git a/yarn.lock b/yarn.lock index d7a00c7..e2d54cb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2787,6 +2787,13 @@ resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= +"@react-native-async-storage/async-storage@^1.13.0": + version "1.17.3" + resolved "https://registry.yarnpkg.com/@react-native-async-storage/async-storage/-/async-storage-1.17.3.tgz#fa7010aa9b6a811ff653df3698a90d3c173dd6a6" + integrity sha512-2dxdlGwBjBP2qYu6F72U7cRRFshISYiNEWCaQNOJtxUERCMaYRWcniYqhL248KSbGUMpRhFCEtliztsiGoYYMA== + dependencies: + merge-options "^3.0.4" + "@react-native-community/cli-debugger-ui@^4.13.1": version "4.13.1" resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-4.13.1.tgz#07de6d4dab80ec49231de1f1fbf658b4ad39b32c" @@ -5915,6 +5922,11 @@ is-plain-obj@^1.0.0: resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= +is-plain-obj@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== + is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" @@ -6685,6 +6697,13 @@ mdn-data@2.0.14: resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== +merge-options@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/merge-options/-/merge-options-3.0.4.tgz#84709c2aa2a4b24c1981f66c179fe5565cc6dbb7" + integrity sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ== + dependencies: + is-plain-obj "^2.1.0" + merge-stream@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" @@ -8347,6 +8366,14 @@ react-native-size-matters@^0.3.1: resolved "https://registry.yarnpkg.com/react-native-size-matters/-/react-native-size-matters-0.3.1.tgz#24d0cfc335a2c730f6d58bd7b43ea5a41be4b49f" integrity sha512-mKOfBLIBFBcs9br1rlZDvxD5+mAl8Gfr5CounwJtxI6Z82rGrMO+Kgl9EIg3RMVf3G855a85YVqHJL2f5EDRlw== +react-native-storage@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/react-native-storage/-/react-native-storage-1.0.1.tgz#2c493875ff76ec301987c951a8302f3a54381241" + integrity sha512-fXT2+zhkfHj3E1/ekbymO8JwcDGgnxeWBiNIa7Al14qB4i3MSOF88nyjIRuTyBsEwZl/f6JG7l+zwd/20+bmlA== + dependencies: + opencollective "^1.0.3" + opencollective-postinstall "^2.0.2" + react-native-svg-uri@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/react-native-svg-uri/-/react-native-svg-uri-1.2.3.tgz#2f67f30564068a0fee68a751845332a5185a1aab"