アイコンの設定更新
471
app.json
@ -1,79 +1,13 @@
|
|||||||
{
|
{
|
||||||
"expo": {
|
"expo": {
|
||||||
"name": "JR四国運行状況",
|
"name": "JR四国非公式",
|
||||||
"slug": "jrshikoku",
|
"slug": "jrshikoku",
|
||||||
"platforms": ["ios", "android"],
|
"platforms": ["ios", "android"],
|
||||||
"plugins": [
|
|
||||||
"expo-localization",
|
|
||||||
[
|
|
||||||
"expo-video",
|
|
||||||
{
|
|
||||||
"supportsBackgroundPlayback": true,
|
|
||||||
"supportsPictureInPicture": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"react-native-android-widget",
|
|
||||||
{
|
|
||||||
"widgets": [
|
|
||||||
{
|
|
||||||
"name": "JR_shikoku_train_info",
|
|
||||||
"label": "JR四国列車遅延速報EX",
|
|
||||||
"minWidth": "70dp",
|
|
||||||
"minHeight": "50dp",
|
|
||||||
"description": "JR四国列車遅延速報EXのウィジェットです。30分ごとに自動更新します。タッチすると強制更新します。",
|
|
||||||
"previewImage": "./assets/icon.png",
|
|
||||||
"updatePeriodMillis": 1800000,
|
|
||||||
"resizeMode": "horizontal|vertical"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"expo-font",
|
|
||||||
[
|
|
||||||
"expo-screen-orientation",
|
|
||||||
{
|
|
||||||
"initialOrientation": "DEFAULT"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"expo-location",
|
|
||||||
{
|
|
||||||
"locationWhenInUsePermission": "この位置情報は、リンク画面で現在地側近の駅情報を取得するのに使用されます。"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"expo-alternate-app-icons",
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"name": "EF65",
|
|
||||||
"ios": {
|
|
||||||
"light":"./assets/icons/ef65_rp0.png",
|
|
||||||
"dark":"./assets/icons/ef65_rp0.png",
|
|
||||||
"tinted":"./assets/icons/ef65_rp0.png"
|
|
||||||
},
|
|
||||||
"android": {
|
|
||||||
"foregroundImage": "./assets/icons/ef65_rp0.png",
|
|
||||||
"backgroundColor": "#001413"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "8000NN",
|
|
||||||
"ios": "./assets/icons/s8000nn.png",
|
|
||||||
"android": {
|
|
||||||
"foregroundImage": "./assets/icons/s8000nn.png",
|
|
||||||
"backgroundColor": "#001413"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
]
|
|
||||||
],
|
|
||||||
"version": "6.0",
|
"version": "6.0",
|
||||||
"orientation": "default",
|
"orientation": "default",
|
||||||
"icon": "./assets/icons/s8000nn.png",
|
"icon": "./assets/icons/s8600.png",
|
||||||
"splash": {
|
"splash": {
|
||||||
"image": "./assets/splash.png",
|
"image": "./assets/splash.png",
|
||||||
"resizeMode": "vertical",
|
|
||||||
"backgroundColor": "#00b8ff"
|
"backgroundColor": "#00b8ff"
|
||||||
},
|
},
|
||||||
"updates": {
|
"updates": {
|
||||||
@ -82,7 +16,7 @@
|
|||||||
},
|
},
|
||||||
"assetBundlePatterns": ["**/*"],
|
"assetBundlePatterns": ["**/*"],
|
||||||
"ios": {
|
"ios": {
|
||||||
"buildNumber": "39",
|
"buildNumber": "41",
|
||||||
"supportsTablet": false,
|
"supportsTablet": false,
|
||||||
"bundleIdentifier": "jrshikokuinfo.xprocess.hrkn",
|
"bundleIdentifier": "jrshikokuinfo.xprocess.hrkn",
|
||||||
"config": {
|
"config": {
|
||||||
@ -103,7 +37,7 @@
|
|||||||
},
|
},
|
||||||
"android": {
|
"android": {
|
||||||
"package": "jrshikokuinfo.xprocess.hrkn",
|
"package": "jrshikokuinfo.xprocess.hrkn",
|
||||||
"versionCode": 22,
|
"versionCode": 23,
|
||||||
"permissions": [
|
"permissions": [
|
||||||
"ACCESS_FINE_LOCATION",
|
"ACCESS_FINE_LOCATION",
|
||||||
"NFC"
|
"NFC"
|
||||||
@ -122,6 +56,401 @@
|
|||||||
},
|
},
|
||||||
"runtimeVersion": {
|
"runtimeVersion": {
|
||||||
"policy": "sdkVersion"
|
"policy": "sdkVersion"
|
||||||
}
|
},
|
||||||
|
"plugins": [
|
||||||
|
"expo-font",
|
||||||
|
"expo-localization",
|
||||||
|
[
|
||||||
|
"expo-video",
|
||||||
|
{
|
||||||
|
"supportsBackgroundPlayback": true,
|
||||||
|
"supportsPictureInPicture": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"expo-screen-orientation",
|
||||||
|
{
|
||||||
|
"initialOrientation": "DEFAULT"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"expo-location",
|
||||||
|
{
|
||||||
|
"locationWhenInUsePermission": "この位置情報は、リンク画面で現在地側近の駅情報を取得するのに使用されます。"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"react-native-android-widget",
|
||||||
|
{
|
||||||
|
"widgets": [
|
||||||
|
{
|
||||||
|
"name": "JR_shikoku_train_info",
|
||||||
|
"label": "列車遅延速報EX",
|
||||||
|
"minWidth": "70dp",
|
||||||
|
"minHeight": "50dp",
|
||||||
|
"description": "JR四国列車遅延速報EXのウィジェットです。30分ごとに自動更新します。タッチすると強制更新します。",
|
||||||
|
"previewImage": "./assets/icon.png",
|
||||||
|
"updatePeriodMillis": 1800000,
|
||||||
|
"resizeMode": "horizontal|vertical"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "JR_shikoku_train_strange",
|
||||||
|
"label": "怪レい列車",
|
||||||
|
"minWidth": "70dp",
|
||||||
|
"minHeight": "50dp",
|
||||||
|
"description": "JR四国怪レい列車BOTのウィジェットです。30分ごとに自動更新します。タッチすると強制更新します。",
|
||||||
|
"previewImage": "./assets/icon.png",
|
||||||
|
"updatePeriodMillis": 1800000,
|
||||||
|
"resizeMode": "horizontal|vertical"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "JR_shikoku_info",
|
||||||
|
"label": "運行情報",
|
||||||
|
"minWidth": "70dp",
|
||||||
|
"minHeight": "50dp",
|
||||||
|
"description": "JR四国運行情報のウィジェットです。30分ごとに自動更新します。タッチすると強制更新します。",
|
||||||
|
"previewImage": "./assets/icon.png",
|
||||||
|
"updatePeriodMillis": 1800000,
|
||||||
|
"resizeMode": "horizontal|vertical"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "JR_shikoku_apps_shortcut",
|
||||||
|
"label": "クイックアクセス",
|
||||||
|
"minWidth": "70dp",
|
||||||
|
"minHeight": "50dp",
|
||||||
|
"description": "JR四国非公式アプリの各種リンクを表示するウィジェットです。",
|
||||||
|
"previewImage": "./assets/icon.png",
|
||||||
|
"updatePeriodMillis": 1800000,
|
||||||
|
"resizeMode": "horizontal|vertical"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"expo-alternate-app-icons",
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name": "185mrt",
|
||||||
|
"ios": "./assets/icons/185_mrt.png",
|
||||||
|
"android": {
|
||||||
|
"foregroundImage": "./assets/icons/185_mrt.png",
|
||||||
|
"backgroundColor": "#001413"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "32kpuuy",
|
||||||
|
"ios": "./assets/icons/32kpuuy.png",
|
||||||
|
"android": {
|
||||||
|
"foregroundImage": "./assets/icons/32kpuuy.png",
|
||||||
|
"backgroundColor": "#001413"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "54",
|
||||||
|
"ios": "./assets/icons/54.png",
|
||||||
|
"android": {
|
||||||
|
"foregroundImage": "./assets/icons/54.png",
|
||||||
|
"backgroundColor": "#001413"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "EF65",
|
||||||
|
"ios": "./assets/icons/ef65.png",
|
||||||
|
"android": {
|
||||||
|
"foregroundImage": "./assets/icons/ef65.png",
|
||||||
|
"backgroundColor": "#001413"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "1500",
|
||||||
|
"ios": "./assets/icons/s1500.png",
|
||||||
|
"android": {
|
||||||
|
"foregroundImage": "./assets/icons/s1500.png",
|
||||||
|
"backgroundColor": "#001413"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "185mm1",
|
||||||
|
"ios": "./assets/icons/s185mm1.png",
|
||||||
|
"android": {
|
||||||
|
"foregroundImage": "./assets/icons/s185mm1.png",
|
||||||
|
"backgroundColor": "#001413"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "185ym1",
|
||||||
|
"ios": "./assets/icons/s185ym1.png",
|
||||||
|
"android": {
|
||||||
|
"foregroundImage": "./assets/icons/s185ym1.png",
|
||||||
|
"backgroundColor": "#001413"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "2600",
|
||||||
|
"ios": "./assets/icons/s2600.png",
|
||||||
|
"android": {
|
||||||
|
"foregroundImage": "./assets/icons/s2600.png",
|
||||||
|
"backgroundColor": "#001413"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "2700apy",
|
||||||
|
"ios": "./assets/icons/s2700apy.png",
|
||||||
|
"android": {
|
||||||
|
"foregroundImage": "./assets/icons/s2700apy.png",
|
||||||
|
"backgroundColor": "#001413"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "6000p",
|
||||||
|
"ios": "./assets/icons/s6000p.png",
|
||||||
|
"android": {
|
||||||
|
"foregroundImage": "./assets/icons/s6000p.png",
|
||||||
|
"backgroundColor": "#001413"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "8000ap",
|
||||||
|
"ios": "./assets/icons/s8000ap.png",
|
||||||
|
"android": {
|
||||||
|
"foregroundImage": "./assets/icons/s8000ap.png",
|
||||||
|
"backgroundColor": "#001413"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "8600",
|
||||||
|
"ios": "./assets/icons/s8600.png",
|
||||||
|
"android": {
|
||||||
|
"foregroundImage": "./assets/icons/s8600.png",
|
||||||
|
"backgroundColor": "#001413"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "213w",
|
||||||
|
"ios": "./assets/icons/w213w.png",
|
||||||
|
"android": {
|
||||||
|
"foregroundImage": "./assets/icons/w213w.png",
|
||||||
|
"backgroundColor": "#001413"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "32",
|
||||||
|
"ios": "./assets/icons/32.png",
|
||||||
|
"android": {
|
||||||
|
"foregroundImage": "./assets/icons/32.png",
|
||||||
|
"backgroundColor": "#001413"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "32tht",
|
||||||
|
"ios": "./assets/icons/32tht.png",
|
||||||
|
"android": {
|
||||||
|
"foregroundImage": "./assets/icons/32tht.png",
|
||||||
|
"backgroundColor": "#001413"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "54st",
|
||||||
|
"ios": "./assets/icons/54st.png",
|
||||||
|
"android": {
|
||||||
|
"foregroundImage": "./assets/icons/54st.png",
|
||||||
|
"backgroundColor": "#001413"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "1000",
|
||||||
|
"ios": "./assets/icons/s1000.png",
|
||||||
|
"android": {
|
||||||
|
"foregroundImage": "./assets/icons/s1000.png",
|
||||||
|
"backgroundColor": "#001413"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "185iyor",
|
||||||
|
"ios": "./assets/icons/s185iyor.png",
|
||||||
|
"android": {
|
||||||
|
"foregroundImage": "./assets/icons/s185iyor.png",
|
||||||
|
"backgroundColor": "#001413"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "185toai",
|
||||||
|
"ios": "./assets/icons/s185to_ai.png",
|
||||||
|
"android": {
|
||||||
|
"foregroundImage": "./assets/icons/s185to_ai.png",
|
||||||
|
"backgroundColor": "#001413"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "2000asi",
|
||||||
|
"ios": "./assets/icons/s2000_asi.png",
|
||||||
|
"android": {
|
||||||
|
"foregroundImage": "./assets/icons/s2000_asi.png",
|
||||||
|
"backgroundColor": "#001413"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "N2000",
|
||||||
|
"ios": "./assets/icons/s2000n.png",
|
||||||
|
"android": {
|
||||||
|
"foregroundImage": "./assets/icons/s2000n.png",
|
||||||
|
"backgroundColor": "#001413"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "2700",
|
||||||
|
"ios": "./assets/icons/s2700.png",
|
||||||
|
"android": {
|
||||||
|
"foregroundImage": "./assets/icons/s2700.png",
|
||||||
|
"backgroundColor": "#001413"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "5001",
|
||||||
|
"ios": "./assets/icons/s5001.png",
|
||||||
|
"android": {
|
||||||
|
"foregroundImage": "./assets/icons/s5001.png",
|
||||||
|
"backgroundColor": "#001413"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "7000",
|
||||||
|
"ios": "./assets/icons/s7000.png",
|
||||||
|
"android": {
|
||||||
|
"foregroundImage": "./assets/icons/s7000.png",
|
||||||
|
"backgroundColor": "#001413"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "8000nn",
|
||||||
|
"ios": "./assets/icons/s8000nn.png",
|
||||||
|
"android": {
|
||||||
|
"foregroundImage": "./assets/icons/s8000nn.png",
|
||||||
|
"backgroundColor": "#001413"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "8000no",
|
||||||
|
"ios": "./assets/icons/s8000no.png",
|
||||||
|
"android": {
|
||||||
|
"foregroundImage": "./assets/icons/s8000no.png",
|
||||||
|
"backgroundColor": "#001413"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "9640",
|
||||||
|
"ios": "./assets/icons/tosa9640.png",
|
||||||
|
"android": {
|
||||||
|
"foregroundImage": "./assets/icons/tosa9640.png",
|
||||||
|
"backgroundColor": "#001413"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "285",
|
||||||
|
"ios": "./assets/icons/w285.png",
|
||||||
|
"android": {
|
||||||
|
"foregroundImage": "./assets/icons/w285.png",
|
||||||
|
"backgroundColor": "#001413"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "32at",
|
||||||
|
"ios": "./assets/icons/32at.png",
|
||||||
|
"android": {
|
||||||
|
"foregroundImage": "./assets/icons/32at.png",
|
||||||
|
"backgroundColor": "#001413"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "40",
|
||||||
|
"ios": "./assets/icons/40.png",
|
||||||
|
"android": {
|
||||||
|
"foregroundImage": "./assets/icons/40.png",
|
||||||
|
"backgroundColor": "#001413"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "EF210",
|
||||||
|
"ios": "./assets/icons/ef210.png",
|
||||||
|
"android": {
|
||||||
|
"foregroundImage": "./assets/icons/ef210.png",
|
||||||
|
"backgroundColor": "#001413"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "1200n",
|
||||||
|
"ios": "./assets/icons/s1200n.png",
|
||||||
|
"android": {
|
||||||
|
"foregroundImage": "./assets/icons/s1200n.png",
|
||||||
|
"backgroundColor": "#001413"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "185iyoy",
|
||||||
|
"ios": "./assets/icons/s185iyoy.png",
|
||||||
|
"android": {
|
||||||
|
"foregroundImage": "./assets/icons/s185iyoy.png",
|
||||||
|
"backgroundColor": "#001413"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "185tu",
|
||||||
|
"ios": "./assets/icons/s185tu.png",
|
||||||
|
"android": {
|
||||||
|
"foregroundImage": "./assets/icons/s185tu.png",
|
||||||
|
"backgroundColor": "#001413"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "2002a",
|
||||||
|
"ios": "./assets/icons/s2002a.png",
|
||||||
|
"android": {
|
||||||
|
"foregroundImage": "./assets/icons/s2002a.png",
|
||||||
|
"backgroundColor": "#001413"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "2700apr",
|
||||||
|
"ios": "./assets/icons/s2700apr.png",
|
||||||
|
"android": {
|
||||||
|
"foregroundImage": "./assets/icons/s2700apr.png",
|
||||||
|
"backgroundColor": "#001413"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "5001k",
|
||||||
|
"ios": "./assets/icons/s5001k.png",
|
||||||
|
"android": {
|
||||||
|
"foregroundImage": "./assets/icons/s5001k.png",
|
||||||
|
"backgroundColor": "#001413"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "s7200",
|
||||||
|
"ios": "./assets/icons/s7200.png",
|
||||||
|
"android": {
|
||||||
|
"foregroundImage": "./assets/icons/s7200.png",
|
||||||
|
"backgroundColor": "#001413"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "8000nr",
|
||||||
|
"ios": "./assets/icons/s8000nr.png",
|
||||||
|
"android": {
|
||||||
|
"foregroundImage": "./assets/icons/s8000nr.png",
|
||||||
|
"backgroundColor": "#001413"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "9640jgr",
|
||||||
|
"ios": "./assets/icons/tosa9640jgr.png",
|
||||||
|
"android": {
|
||||||
|
"foregroundImage": "./assets/icons/tosa9640jgr.png",
|
||||||
|
"backgroundColor": "#001413"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
BIN
assets/icons/32.png
Normal file
After Width: | Height: | Size: 7.0 KiB |
BIN
assets/icons/32at.png
Normal file
After Width: | Height: | Size: 8.5 KiB |
BIN
assets/icons/32kpuuy.png
Normal file
After Width: | Height: | Size: 8.7 KiB |
BIN
assets/icons/32tht.png
Normal file
After Width: | Height: | Size: 8.5 KiB |
BIN
assets/icons/40.png
Normal file
After Width: | Height: | Size: 7.1 KiB |
BIN
assets/icons/54.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
assets/icons/54st.png
Normal file
After Width: | Height: | Size: 9.2 KiB |
BIN
assets/icons/ef210.png
Normal file
After Width: | Height: | Size: 8.0 KiB |
Before Width: | Height: | Size: 483 B |
BIN
assets/icons/ef65.png
Normal file
After Width: | Height: | Size: 8.5 KiB |
Before Width: | Height: | Size: 505 B |
45
assets/icons/icons.ts
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
export default () =>{
|
||||||
|
return [
|
||||||
|
{ "id": "32", "name": "キハ32形", "icon": require("./32.png") },
|
||||||
|
{ "id": "32kpuuy", "name": "キハ32形かっぱうようよ号", "icon": require("./32kpuuy.png") },
|
||||||
|
{ "id": "32tht", "name": "キハ32形新幹線ホビートレイン", "icon": require("./32tht.png") },
|
||||||
|
{ "id": "32at", "name": "キクハ32形アンパンマントロッコ", "icon": require("./32at.png") },
|
||||||
|
{ "id": "54", "name": "キハ54形", "icon": require("./54.png") },
|
||||||
|
{ "id": "54st", "name": "キハ54形しまんトロッコ", "icon": require("./54st.png") },
|
||||||
|
{ "id": "40", "name": "キハ40", "icon": require("./40.png") },
|
||||||
|
{ "id": "185mrt", "name": "キハ185系四国色", "icon": require("./s185_mrt.png") },
|
||||||
|
{ "id": "185tu", "name": "キハ185系剣山色", "icon": require("./s185tu.png") },
|
||||||
|
{ "id": "185iyor", "name": "キハ185系伊予灘ものがたり(赤)", "icon": require("./s185iyor.png") },
|
||||||
|
{ "id": "185iyoy", "name": "キハ185系伊予灘ものがたり(黄)", "icon": require("./s185iyoy.png") },
|
||||||
|
{ "id": "185toai", "name": "キハ185系藍よしのがわトロッコ", "icon": require("./s185to_ai.png") },
|
||||||
|
{ "id": "185mm1", "name": "キハ185系四国まんなか千年ものがたり(緑)", "icon": require("./s185mm1.png") },
|
||||||
|
{ "id": "185ym1", "name": "キハ185系時代の夜明けのものがたり(茶)", "icon": require("./s185ym1.png") },
|
||||||
|
{ "id": "1000", "name": "1000形", "icon": require("./s1000.png") },
|
||||||
|
{ "id": "1200n", "name": "1200形", "icon": require("./s1200n.png") },
|
||||||
|
{ "id": "1500", "name": "1500形", "icon": require("./s1500.png") },
|
||||||
|
{ "id": "5001", "name": "5000系(二階建て)", "icon": require("./s5001.png") },
|
||||||
|
{ "id": "5001k", "name": "5000系(平屋側)", "icon": require("./s5001k.png") },
|
||||||
|
{ "id": "6000p", "name": "6000系", "icon": require("./s6000p.png") },
|
||||||
|
{ "id": "7000", "name": "7000系", "icon": require("./s7000.png") },
|
||||||
|
{ "id": "7200", "name": "7200系", "icon": require("./s7200.png") },
|
||||||
|
{ "id": "2000asi", "name": "2000系", "icon": require("./s2000_asi.png") },
|
||||||
|
{ "id": "N2000", "name": "N2000系", "icon": require("./s2000n.png") },
|
||||||
|
{ "id": "2002a", "name": "2000系アンパンマン", "icon": require("./s2002a.png") },
|
||||||
|
{ "id": "2600", "name": "2600系" , "icon": require("./s2600.png")},
|
||||||
|
{ "id": "2700", "name": "2700系", "icon": require("./s2700.png") },
|
||||||
|
{ "id": "2700apy", "name": "2700系アンパンマン(黄)", "icon": require("./s2700apy.png") },
|
||||||
|
{ "id": "2700apr", "name": "2700系アンパンマン(赤)", "icon": require("./s2700apr.png") },
|
||||||
|
{ "id": "8000no", "name": "8000系(オレンジ)", "icon": require("./s8000no.png") },
|
||||||
|
{ "id": "8000nr", "name": "8000系(赤)", "icon": require("./s8000nr.png") },
|
||||||
|
{ "id": "8000ap", "name": "8000系アンパンマン", "icon": require("./s8000ap.png") },
|
||||||
|
{ "id": "8000nn", "name": "8000系リニューアル改", "icon": require("./s8000nn.png") },
|
||||||
|
{ "id": "8600", "name": "8600系", "icon": require("./s8600.png") },
|
||||||
|
{ "id": "9640", "name": "9640形(白)", "icon": require("./tosa9640.png") },
|
||||||
|
{ "id": "9640jgr", "name": "9640形オープンデッキ(緑)", "icon": require("./tosa9640jgr.png") },
|
||||||
|
{ "id": "285", "name": "285系サンライズ瀬戸", "icon": require("./w285.png") },
|
||||||
|
{ "id": "213w", "name": "ラ・マル・ド・ボァ", "icon": require("./w213w.png") },
|
||||||
|
{ "id": "EF65", "name": "EF65", "icon": require("./ef65.png") },
|
||||||
|
{ "id": "EF210", "name": "EF210", "icon": require("./ef210.png") },
|
||||||
|
]
|
||||||
|
|
||||||
|
}
|
Before Width: | Height: | Size: 455 B After Width: | Height: | Size: 6.8 KiB |
Before Width: | Height: | Size: 934 B After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 541 B After Width: | Height: | Size: 7.0 KiB |
Before Width: | Height: | Size: 803 B After Width: | Height: | Size: 8.7 KiB |
Before Width: | Height: | Size: 550 B |
Before Width: | Height: | Size: 1004 B After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 9.7 KiB |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 12 KiB |
BIN
assets/icons/s2000n.png
Normal file
After Width: | Height: | Size: 6.9 KiB |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 630 B |
Before Width: | Height: | Size: 564 B |
Before Width: | Height: | Size: 544 B |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 562 B |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 9.2 KiB |
Before Width: | Height: | Size: 483 B After Width: | Height: | Size: 6.9 KiB |
Before Width: | Height: | Size: 504 B After Width: | Height: | Size: 6.9 KiB |
Before Width: | Height: | Size: 592 B After Width: | Height: | Size: 8.3 KiB |
Before Width: | Height: | Size: 1005 B After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 9.3 KiB |
Before Width: | Height: | Size: 448 B After Width: | Height: | Size: 6.8 KiB |
Before Width: | Height: | Size: 531 B After Width: | Height: | Size: 7.0 KiB |
Before Width: | Height: | Size: 567 B After Width: | Height: | Size: 8.6 KiB |
Before Width: | Height: | Size: 939 B After Width: | Height: | Size: 8.8 KiB |
@ -8,7 +8,6 @@ export const EachTrainInfo = ({ payload }) => {
|
|||||||
return (
|
return (
|
||||||
<ActionSheet
|
<ActionSheet
|
||||||
gestureEnabled={true}
|
gestureEnabled={true}
|
||||||
//gestureEnabled={!actionSheetHorizonalScroll}
|
|
||||||
CustomHeaderComponent={<></>}
|
CustomHeaderComponent={<></>}
|
||||||
ref={actionSheetRef}
|
ref={actionSheetRef}
|
||||||
drawUnderStatusBar={false}
|
drawUnderStatusBar={false}
|
||||||
|
@ -10,6 +10,7 @@ import {
|
|||||||
LayoutAnimation,
|
LayoutAnimation,
|
||||||
} from "react-native";
|
} from "react-native";
|
||||||
import { SheetManager } from "react-native-actions-sheet";
|
import { SheetManager } from "react-native-actions-sheet";
|
||||||
|
import { useScrollHandlers } from "react-native-actions-sheet";
|
||||||
import { AS } from "../../storageControl";
|
import { AS } from "../../storageControl";
|
||||||
import trainList from "../../assets/originData/trainList";
|
import trainList from "../../assets/originData/trainList";
|
||||||
import { lineListPair } from "../../lib/getStationList";
|
import { lineListPair } from "../../lib/getStationList";
|
||||||
@ -188,7 +189,7 @@ export const EachTrainInfoCore = ({
|
|||||||
const count = position * 44 - 50;
|
const count = position * 44 - 50;
|
||||||
// 0.5秒待機してからスクロール
|
// 0.5秒待機してからスクロール
|
||||||
setTimeout(
|
setTimeout(
|
||||||
() => ScrollViewRef.current?.scrollTo({ y: count, animated: true }),
|
() => scrollHandlers.ref.current?.scrollTo({ y: count, animated: true }),
|
||||||
400
|
400
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -219,8 +220,9 @@ export const EachTrainInfoCore = ({
|
|||||||
|
|
||||||
const { height } = useWindowDimensions();
|
const { height } = useWindowDimensions();
|
||||||
const { isLandscape } = useDeviceOrientationChange();
|
const { isLandscape } = useDeviceOrientationChange();
|
||||||
const ScrollViewRef = useRef();
|
const scrollHandlers = actionSheetRef
|
||||||
|
? useScrollHandlers("scrollview-1", actionSheetRef)
|
||||||
|
: null;
|
||||||
const [trueTrainID, setTrueTrainID] = useState();
|
const [trueTrainID, setTrueTrainID] = useState();
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!data.trainNum) return;
|
if (!data.trainNum) return;
|
||||||
@ -411,7 +413,7 @@ export const EachTrainInfoCore = ({
|
|||||||
from={from}
|
from={from}
|
||||||
styles={styles}
|
styles={styles}
|
||||||
actionSheetRef={actionSheetRef}
|
actionSheetRef={actionSheetRef}
|
||||||
ScrollViewRef={ScrollViewRef}
|
scrollHandlers={scrollHandlers}
|
||||||
containerProps={{
|
containerProps={{
|
||||||
style: {
|
style: {
|
||||||
maxHeight: isLandscape ? height - 94 : (height / 100) * 70,
|
maxHeight: isLandscape ? height - 94 : (height / 100) * 70,
|
||||||
|
@ -20,7 +20,7 @@ export const getInfoString = async () => {
|
|||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
});
|
});
|
||||||
ToastAndroid.show(`${text}`, ToastAndroid.SHORT);
|
//ToastAndroid.show(`${text}`, ToastAndroid.SHORT);
|
||||||
return { time, text };
|
return { time, text };
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@ export const getDelayData = async () => {
|
|||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
});
|
});
|
||||||
ToastAndroid.show(`${delayString}`, ToastAndroid.SHORT);
|
//ToastAndroid.show(`${delayString}`, ToastAndroid.SHORT);
|
||||||
return { time, delayString };
|
return { time, delayString };
|
||||||
};
|
};
|
||||||
export function TraInfoEXWidget({ time, delayString }) {
|
export function TraInfoEXWidget({ time, delayString }) {
|
||||||
|
@ -20,11 +20,11 @@ export async function widgetTaskHandler(props) {
|
|||||||
const WidgetName = await AS.getItem(
|
const WidgetName = await AS.getItem(
|
||||||
`widgetType/${widgetInfo.widgetId}`
|
`widgetType/${widgetInfo.widgetId}`
|
||||||
).catch((e) => "JR_shikoku_train_info");
|
).catch((e) => "JR_shikoku_train_info");
|
||||||
ToastAndroid.show(
|
// ToastAndroid.show(
|
||||||
`Widget Action: ${JSON.stringify(widgetInfo.widgetId)}`,
|
// `Widget Action: ${JSON.stringify(widgetInfo.widgetId)}`,
|
||||||
ToastAndroid.SHORT
|
// ToastAndroid.SHORT
|
||||||
);
|
// );
|
||||||
ToastAndroid.show(`Widget Name: ${WidgetName}`, ToastAndroid.SHORT);
|
//ToastAndroid.show(`Widget Name: ${WidgetName}`, ToastAndroid.SHORT);
|
||||||
switch (widgetAction) {
|
switch (widgetAction) {
|
||||||
case "WIDGET_ADDED":
|
case "WIDGET_ADDED":
|
||||||
case "WIDGET_UPDATE":
|
case "WIDGET_UPDATE":
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { ScrollView, View, Animated, LayoutAnimation } from "react-native";
|
import { ScrollView, View, Animated, LayoutAnimation } from "react-native";
|
||||||
import React, { useEffect, useMemo, useState, useLayoutEffect } from "react";
|
import React, { useEffect, useMemo, useState, useLayoutEffect } from "react";
|
||||||
import { useScrollHandlers } from "react-native-actions-sheet";
|
import { NativeViewGestureHandler } from "react-native-gesture-handler";
|
||||||
import { AS } from "../storageControl";
|
import { AS } from "../storageControl";
|
||||||
|
|
||||||
export const DynamicHeaderScrollView = (props) => {
|
export const DynamicHeaderScrollView = (props) => {
|
||||||
@ -13,7 +13,7 @@ export const DynamicHeaderScrollView = (props) => {
|
|||||||
topStickyContent,
|
topStickyContent,
|
||||||
styles,
|
styles,
|
||||||
from,
|
from,
|
||||||
ScrollViewRef,
|
scrollHandlers,
|
||||||
} = props;
|
} = props;
|
||||||
const [headerSize, setHeaderSize] = useState("default");
|
const [headerSize, setHeaderSize] = useState("default");
|
||||||
useLayoutEffect(() => {
|
useLayoutEffect(() => {
|
||||||
@ -53,9 +53,7 @@ export const DynamicHeaderScrollView = (props) => {
|
|||||||
|
|
||||||
const Scroll_Distance = Max_Header_Height - Min_Header_Height;
|
const Scroll_Distance = Max_Header_Height - Min_Header_Height;
|
||||||
|
|
||||||
const scrollHandlers = actionSheetRef
|
|
||||||
? useScrollHandlers("scrollview-1", actionSheetRef)
|
|
||||||
: null;
|
|
||||||
|
|
||||||
const shotHeaderStyle = {
|
const shotHeaderStyle = {
|
||||||
on: {
|
on: {
|
||||||
@ -110,6 +108,7 @@ export const DynamicHeaderScrollView = (props) => {
|
|||||||
const [headerVisible, setHeaderVisible] = useState(false);
|
const [headerVisible, setHeaderVisible] = useState(false);
|
||||||
|
|
||||||
const onScroll = (event) => {
|
const onScroll = (event) => {
|
||||||
|
scrollHandlers.onScroll(event);
|
||||||
switch (headerSize) {
|
switch (headerSize) {
|
||||||
case "big":
|
case "big":
|
||||||
setHeaderVisible(false);
|
setHeaderVisible(false);
|
||||||
@ -153,26 +152,31 @@ export const DynamicHeaderScrollView = (props) => {
|
|||||||
{topStickyContent}
|
{topStickyContent}
|
||||||
</Animated.View>
|
</Animated.View>
|
||||||
</View>
|
</View>
|
||||||
<ScrollView
|
<NativeViewGestureHandler
|
||||||
{...scrollHandlers}
|
simultaneousHandlers={scrollHandlers.simultaneousHandlers}
|
||||||
style={{ backgroundColor: "white", zIndex: 0 }}
|
|
||||||
stickyHeaderIndices={[1]}
|
|
||||||
scrollEventThrottle={16}
|
|
||||||
onScroll={onScroll}
|
|
||||||
ref={ScrollViewRef}
|
|
||||||
>
|
>
|
||||||
<View style={{ height: Scroll_Distance, flexDirection: "column" }} />
|
<ScrollView
|
||||||
{topStickyContent && (
|
nestedScrollEnabled
|
||||||
<View
|
ref={scrollHandlers.ref}
|
||||||
style={{
|
onLayout={scrollHandlers.onLayout}
|
||||||
paddingTop: Min_Header_Height + 40,
|
scrollEventThrottle={scrollHandlers.scrollEventThrottle}
|
||||||
flexDirection: "column",
|
style={{ backgroundColor: "white", zIndex: 0 }}
|
||||||
}}
|
stickyHeaderIndices={[1]}
|
||||||
index={1}
|
onScroll={onScroll}
|
||||||
/>
|
>
|
||||||
)}
|
<View style={{ height: Scroll_Distance, flexDirection: "column" }} />
|
||||||
{children}
|
{topStickyContent && (
|
||||||
</ScrollView>
|
<View
|
||||||
|
style={{
|
||||||
|
paddingTop: Min_Header_Height + 40,
|
||||||
|
flexDirection: "column",
|
||||||
|
}}
|
||||||
|
index={1}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
|
{children}
|
||||||
|
</ScrollView>
|
||||||
|
</NativeViewGestureHandler>
|
||||||
</View>
|
</View>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
147
components/Settings/LauncherIconSettings.js
Normal file
@ -0,0 +1,147 @@
|
|||||||
|
import React, { useEffect, useState } from "react";
|
||||||
|
import { View, Text, TouchableOpacity, ScrollView, Image } from "react-native";
|
||||||
|
import { useNavigation } from "@react-navigation/native";
|
||||||
|
import { CheckBox } from "react-native-elements";
|
||||||
|
import { AS } from "../../storageControl";
|
||||||
|
import icons from "../../assets/icons/icons";
|
||||||
|
import app from "../../app.json";
|
||||||
|
import { ListItem } from "native-base";
|
||||||
|
import {
|
||||||
|
setAlternateAppIcon,
|
||||||
|
resetAppIcon,
|
||||||
|
getAppIconName,
|
||||||
|
supportsAlternateIcons,
|
||||||
|
} from "expo-alternate-app-icons";
|
||||||
|
import { widthPercentageToDP } from "react-native-responsive-screen";
|
||||||
|
|
||||||
|
export const LauncherIconSettings = ({ navigate }) => {
|
||||||
|
const { goBack } = useNavigation();
|
||||||
|
const [iconList, ] = useState(icons());
|
||||||
|
const [currentIcon, ] = useState(getAppIconName());
|
||||||
|
return (
|
||||||
|
<View style={{ height: "100%", backgroundColor: "#0099CC" }}>
|
||||||
|
<View style={{ backgroundColor: "#0099CC", flexDirection: "row" }}>
|
||||||
|
<View style={{ flex: 1 }}>
|
||||||
|
<TouchableOpacity
|
||||||
|
onPress={goBack}
|
||||||
|
style={{
|
||||||
|
flexDirection: "column",
|
||||||
|
flex: 1,
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<View style={{ flex: 1 }} />
|
||||||
|
<Text
|
||||||
|
style={{
|
||||||
|
fontSize: 20,
|
||||||
|
fontWeight: "bold",
|
||||||
|
textAlign: "left",
|
||||||
|
textAlignVertical: "center",
|
||||||
|
color: "white",
|
||||||
|
padding: 10,
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
< 設定
|
||||||
|
</Text>
|
||||||
|
<View style={{ flex: 1 }} />
|
||||||
|
</TouchableOpacity>
|
||||||
|
</View>
|
||||||
|
|
||||||
|
<Text
|
||||||
|
style={{
|
||||||
|
fontSize: 20,
|
||||||
|
fontWeight: "bold",
|
||||||
|
textAlign: "center",
|
||||||
|
color: "white",
|
||||||
|
padding: 10,
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
アイコン設定
|
||||||
|
</Text>
|
||||||
|
<View style={{ flex: 1 }}></View>
|
||||||
|
</View>
|
||||||
|
<ScrollView style={{ flex: 1, backgroundColor: "white" }}>
|
||||||
|
{currentIcon ? (
|
||||||
|
<>
|
||||||
|
<Text
|
||||||
|
style={{
|
||||||
|
backgroundColor: "#DDDDDD",
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
現在のアイコン:
|
||||||
|
{iconList.filter(({ id }) => id == currentIcon)[0].id}
|
||||||
|
</Text>
|
||||||
|
|
||||||
|
<View
|
||||||
|
style={{
|
||||||
|
flexDirection: "cokumn",
|
||||||
|
alignItems: "center",
|
||||||
|
justifyContent: "center",
|
||||||
|
backgroundColor: "#DDDDDD",
|
||||||
|
padding: 10,
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<Image
|
||||||
|
source={
|
||||||
|
iconList.filter(({ id }) => id == currentIcon)[0].icon
|
||||||
|
}
|
||||||
|
style={{
|
||||||
|
width: 50,
|
||||||
|
height: 50,
|
||||||
|
padding: 30,
|
||||||
|
borderWidth: 1,
|
||||||
|
borderRadius: 10,
|
||||||
|
borderColor: "white",
|
||||||
|
margin: 10,
|
||||||
|
backgroundColor: "white",
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
<Text>JR四国非公式アプリ</Text>
|
||||||
|
</View>
|
||||||
|
</>
|
||||||
|
) : (
|
||||||
|
<></>
|
||||||
|
)}
|
||||||
|
<View
|
||||||
|
style={{
|
||||||
|
flexDirection: "row",
|
||||||
|
flexWrap: "wrap",
|
||||||
|
alignContent: "center",
|
||||||
|
justifyContent: "center",
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{iconList.map(({ name, icon, id }) => {
|
||||||
|
return (
|
||||||
|
<TouchableOpacity
|
||||||
|
key={id}
|
||||||
|
style={{
|
||||||
|
margin: 10,
|
||||||
|
alignItems: "center",
|
||||||
|
justifyContent: "center",
|
||||||
|
width: widthPercentageToDP("30%"),
|
||||||
|
maxWidth: 60,
|
||||||
|
height: 100,
|
||||||
|
|
||||||
|
borderColor: "#999999",
|
||||||
|
borderWidth: id == currentIcon ? 2 : 0,
|
||||||
|
borderRadius: 10,
|
||||||
|
}}
|
||||||
|
onPress={() => {
|
||||||
|
setAlternateAppIcon(id)
|
||||||
|
.then((res) => {
|
||||||
|
alert(res);
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
alert(err);
|
||||||
|
});
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<Image source={icon} style={{ width: 50, height: 50 }} />
|
||||||
|
<Text>{id}</Text>
|
||||||
|
</TouchableOpacity>
|
||||||
|
);
|
||||||
|
})}
|
||||||
|
</View>
|
||||||
|
</ScrollView>
|
||||||
|
</View>
|
||||||
|
);
|
||||||
|
};
|
@ -120,106 +120,62 @@ export const SettingTopPage = ({
|
|||||||
falseText={"リンクメニュー"}
|
falseText={"リンクメニュー"}
|
||||||
trueText={"列車位置情報"}
|
trueText={"列車位置情報"}
|
||||||
/>
|
/>
|
||||||
<ListItem
|
<SettingList
|
||||||
activeScale={0.95}
|
string="お気に入り登録の並び替え"
|
||||||
Component={TouchableScale}
|
|
||||||
bottomDivider
|
|
||||||
onPress={() =>
|
onPress={() =>
|
||||||
navigation.navigate("setting", { screen: "FavoriteSettings" })
|
navigation.navigate("setting", { screen: "FavoriteSettings" })
|
||||||
}
|
}
|
||||||
>
|
/>
|
||||||
<ListItem.Content>
|
<SettingList
|
||||||
<ListItem.Title>お気に入り登録の並び替え</ListItem.Title>
|
string={`通知設定${
|
||||||
</ListItem.Content>
|
expoPushToken == "" ? "(通知設定をオンにしてください)" : "(β)"
|
||||||
<ListItem.Chevron />
|
}`}
|
||||||
</ListItem>
|
|
||||||
<ListItem
|
|
||||||
activeScale={0.95}
|
|
||||||
Component={TouchableScale}
|
|
||||||
bottomDivider
|
|
||||||
onPress={() =>
|
onPress={() =>
|
||||||
navigation.navigate("setting", { screen: "NotificationSettings" })
|
navigation.navigate("setting", { screen: "NotificationSettings" })
|
||||||
}
|
}
|
||||||
disabled={expoPushToken == ""}
|
disabled={expoPushToken == ""}
|
||||||
>
|
/>
|
||||||
<ListItem.Content>
|
|
||||||
<ListItem.Title>
|
|
||||||
通知設定
|
|
||||||
{expoPushToken == "" ? "(通知設定をオンにしてください)" : "(β)"}
|
|
||||||
</ListItem.Title>
|
|
||||||
</ListItem.Content>
|
|
||||||
<ListItem.Chevron />
|
|
||||||
</ListItem>
|
|
||||||
|
|
||||||
<ListItem
|
<SettingList
|
||||||
activeScale={0.95}
|
string="レイアウト設定"
|
||||||
Component={TouchableScale}
|
|
||||||
bottomDivider
|
|
||||||
onPress={() =>
|
onPress={() =>
|
||||||
navigation.navigate("setting", { screen: "LayoutSettings" })
|
navigation.navigate("setting", { screen: "LayoutSettings" })
|
||||||
}
|
}
|
||||||
>
|
/>
|
||||||
<ListItem.Content>
|
|
||||||
<ListItem.Title>レイアウト設定</ListItem.Title>
|
|
||||||
</ListItem.Content>
|
|
||||||
<ListItem.Chevron />
|
|
||||||
</ListItem>
|
|
||||||
{Platform.OS === "android" ? (
|
{Platform.OS === "android" ? (
|
||||||
<ListItem
|
<SettingList
|
||||||
activeScale={0.95}
|
string="ウィジェット設定"
|
||||||
Component={TouchableScale}
|
|
||||||
bottomDivider
|
|
||||||
onPress={() =>
|
onPress={() =>
|
||||||
navigation.navigate("setting", { screen: "WidgetSettings" })
|
navigation.navigate("setting", { screen: "WidgetSettings" })
|
||||||
}
|
}
|
||||||
>
|
/>
|
||||||
<ListItem.Content>
|
|
||||||
<ListItem.Title>ウィジェット設定</ListItem.Title>
|
|
||||||
</ListItem.Content>
|
|
||||||
<ListItem.Chevron />
|
|
||||||
</ListItem>
|
|
||||||
) : null}
|
) : null}
|
||||||
<ListItem
|
<SettingList
|
||||||
activeScale={0.95}
|
string="アイコン設定"
|
||||||
Component={TouchableScale}
|
onPress={() =>
|
||||||
bottomDivider
|
navigation.navigate("setting", { screen: "LauncherIconSettings" })
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
<SettingList
|
||||||
|
string="プライバシーポリシー"
|
||||||
onPress={() =>
|
onPress={() =>
|
||||||
Linking.openURL(
|
Linking.openURL(
|
||||||
"https://nexcloud.haruk.in/sites/press-harukin/JRShikokuApps/policy"
|
"https://nexcloud.haruk.in/sites/press-harukin/JRShikokuApps/policy"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
>
|
/>
|
||||||
<ListItem.Content>
|
|
||||||
<ListItem.Title>プライバシーポリシー</ListItem.Title>
|
|
||||||
</ListItem.Content>
|
|
||||||
<ListItem.Chevron />
|
|
||||||
</ListItem>
|
|
||||||
|
|
||||||
<ListItem
|
<SettingList
|
||||||
activeScale={0.95}
|
string="開発情報"
|
||||||
Component={TouchableScale}
|
|
||||||
bottomDivider
|
|
||||||
onPress={() =>
|
onPress={() =>
|
||||||
Linking.openURL("https://nexcloud.haruk.in/s/2WFEN5oLPGtrRqT")
|
Linking.openURL("https://nexcloud.haruk.in/s/2WFEN5oLPGtrRqT")
|
||||||
}
|
}
|
||||||
>
|
/>
|
||||||
<ListItem.Content>
|
|
||||||
<ListItem.Title>開発情報</ListItem.Title>
|
|
||||||
</ListItem.Content>
|
|
||||||
<ListItem.Chevron />
|
|
||||||
</ListItem>
|
|
||||||
|
|
||||||
<ListItem
|
<SettingList
|
||||||
activeScale={0.95}
|
string="運営Twitter"
|
||||||
Component={TouchableScale}
|
|
||||||
bottomDivider
|
|
||||||
onPress={() => Linking.openURL("https://twitter.com/Xprocess_main")}
|
onPress={() => Linking.openURL("https://twitter.com/Xprocess_main")}
|
||||||
>
|
/>
|
||||||
<ListItem.Content>
|
|
||||||
<ListItem.Title>運営Twitter</ListItem.Title>
|
|
||||||
</ListItem.Content>
|
|
||||||
<ListItem.Chevron />
|
|
||||||
</ListItem>
|
|
||||||
|
|
||||||
{/* <ListItem style={{ flexDirection: "row" }} onPress={() => testNFC()}>
|
{/* <ListItem style={{ flexDirection: "row" }} onPress={() => testNFC()}>
|
||||||
<Text
|
<Text
|
||||||
@ -258,3 +214,20 @@ export const SettingTopPage = ({
|
|||||||
</View>
|
</View>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const SettingList = ({ string, onPress, disabled }) => {
|
||||||
|
return (
|
||||||
|
<ListItem
|
||||||
|
activeScale={0.95}
|
||||||
|
Component={TouchableScale}
|
||||||
|
bottomDivider
|
||||||
|
onPress={onPress}
|
||||||
|
disabled={disabled}
|
||||||
|
>
|
||||||
|
<ListItem.Content>
|
||||||
|
<ListItem.Title>{string}</ListItem.Title>
|
||||||
|
</ListItem.Content>
|
||||||
|
<ListItem.Chevron />
|
||||||
|
</ListItem>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
@ -23,6 +23,7 @@ import { LayoutSettings } from "./LayoutSettings";
|
|||||||
import { FavoriteSettings } from "./FavoriteSettings";
|
import { FavoriteSettings } from "./FavoriteSettings";
|
||||||
import { WidgetSettings } from "./WidgetSettings";
|
import { WidgetSettings } from "./WidgetSettings";
|
||||||
import { NotificationSettings } from "./NotificationSettings";
|
import { NotificationSettings } from "./NotificationSettings";
|
||||||
|
import { LauncherIconSettings } from "./LauncherIconSettings";
|
||||||
|
|
||||||
const Stack = createStackNavigator();
|
const Stack = createStackNavigator();
|
||||||
export default function Setting(props) {
|
export default function Setting(props) {
|
||||||
@ -148,6 +149,18 @@ export default function Setting(props) {
|
|||||||
>
|
>
|
||||||
{(props) => <WidgetSettings {...props} navigate={navigate} />}
|
{(props) => <WidgetSettings {...props} navigate={navigate} />}
|
||||||
</Stack.Screen>
|
</Stack.Screen>
|
||||||
|
<Stack.Screen
|
||||||
|
name="LauncherIconSettings"
|
||||||
|
options={{
|
||||||
|
gestureEnabled: true,
|
||||||
|
...TransitionPresets.SlideFromRightIOS,
|
||||||
|
cardOverlayEnabled: true,
|
||||||
|
headerTransparent: true,
|
||||||
|
headerShown: false,
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{(props) => <LauncherIconSettings {...props} navigate={navigate} />}
|
||||||
|
</Stack.Screen>
|
||||||
<Stack.Screen
|
<Stack.Screen
|
||||||
name="FavoriteSettings"
|
name="FavoriteSettings"
|
||||||
options={{
|
options={{
|
||||||
|
6
eas.json
@ -35,6 +35,12 @@
|
|||||||
},
|
},
|
||||||
"production5.0": {
|
"production5.0": {
|
||||||
"channel": "dmm"
|
"channel": "dmm"
|
||||||
|
},
|
||||||
|
"beta6.0": {
|
||||||
|
"channel": "ebookjapan"
|
||||||
|
},
|
||||||
|
"production6.0": {
|
||||||
|
"channel": "ebay"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"submit": {
|
"submit": {
|
||||||
|
@ -63,6 +63,7 @@
|
|||||||
"react-native-touchable-scale": "^2.2.0",
|
"react-native-touchable-scale": "^2.2.0",
|
||||||
"react-native-vector-icons": "^10.2.0",
|
"react-native-vector-icons": "^10.2.0",
|
||||||
"react-native-view-shot": "~4.0.3",
|
"react-native-view-shot": "~4.0.3",
|
||||||
|
"react-native-walkthrough-tooltip": "^1.6.0",
|
||||||
"react-native-webview": "13.12.5",
|
"react-native-webview": "13.12.5",
|
||||||
"typescript": "^5.3.0"
|
"typescript": "^5.3.0"
|
||||||
},
|
},
|
||||||
|
13
yarn.lock
@ -7014,6 +7014,11 @@ react-devtools-core@^5.3.1:
|
|||||||
shell-quote "^1.6.1"
|
shell-quote "^1.6.1"
|
||||||
ws "^7"
|
ws "^7"
|
||||||
|
|
||||||
|
react-fast-compare@^2.0.4:
|
||||||
|
version "2.0.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-2.0.4.tgz#e84b4d455b0fec113e0402c329352715196f81f9"
|
||||||
|
integrity sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==
|
||||||
|
|
||||||
react-freeze@^1.0.0:
|
react-freeze@^1.0.0:
|
||||||
version "1.0.3"
|
version "1.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/react-freeze/-/react-freeze-1.0.3.tgz#5e3ca90e682fed1d73a7cb50c2c7402b3e85618d"
|
resolved "https://registry.yarnpkg.com/react-freeze/-/react-freeze-1.0.3.tgz#5e3ca90e682fed1d73a7cb50c2c7402b3e85618d"
|
||||||
@ -7274,6 +7279,14 @@ react-native-view-shot@~4.0.3:
|
|||||||
dependencies:
|
dependencies:
|
||||||
html2canvas "^1.4.1"
|
html2canvas "^1.4.1"
|
||||||
|
|
||||||
|
react-native-walkthrough-tooltip@^1.6.0:
|
||||||
|
version "1.6.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/react-native-walkthrough-tooltip/-/react-native-walkthrough-tooltip-1.6.0.tgz#a9b9196973d2fdef8f36bbcae57c93069cd9fb3e"
|
||||||
|
integrity sha512-8DHpcqsF+2VULYnKJCSZtllhlFUFiZcWCwOlw5RLkS451ElxPWJn9ShOFVZtkPMcwQAirq3SovumVM7Y/li0Fw==
|
||||||
|
dependencies:
|
||||||
|
prop-types "^15.6.1"
|
||||||
|
react-fast-compare "^2.0.4"
|
||||||
|
|
||||||
react-native-webview@13.12.5:
|
react-native-webview@13.12.5:
|
||||||
version "13.12.5"
|
version "13.12.5"
|
||||||
resolved "https://registry.yarnpkg.com/react-native-webview/-/react-native-webview-13.12.5.tgz#ed9eec1eda234d7cf18d329859b9bdebf7e258b6"
|
resolved "https://registry.yarnpkg.com/react-native-webview/-/react-native-webview-13.12.5.tgz#ed9eec1eda234d7cf18d329859b9bdebf7e258b6"
|
||||||
|