From 45b64f28cb31f61423bf6ccf51a71aadffef32fb Mon Sep 17 00:00:00 2001 From: harukin-expo-dev-env Date: Sat, 9 Mar 2024 06:39:23 +0000 Subject: [PATCH] =?UTF-8?q?=E3=82=B3=E3=83=B3=E3=83=9D=E3=83=BC=E3=83=8D?= =?UTF-8?q?=E3=83=B3=E3=83=88=E6=95=B4=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.json | 22 ++--- .../{HelloWidget.jsx => TraInfoEXWidget.jsx} | 2 +- .../AndroidWidget/widget-task-handler.jsx | 13 +-- components/settings.js | 90 +++++++++---------- 4 files changed, 54 insertions(+), 73 deletions(-) rename components/AndroidWidget/{HelloWidget.jsx => TraInfoEXWidget.jsx} (97%) diff --git a/app.json b/app.json index 0ff9455..8ee7df3 100644 --- a/app.json +++ b/app.json @@ -3,10 +3,7 @@ "name": "JR四国運行状況", "slug": "jrshikoku", "privacy": "public", - "platforms": [ - "ios", - "android" - ], + "platforms": ["ios", "android"], "plugins": [ [ "react-native-android-widget", @@ -15,8 +12,8 @@ { "name": "JR_shikoku_train_info", "label": "JR四国列車遅延速報EX", - "minWidth": "320dp", - "minHeight": "120dp", + "minWidth": "70dp", + "minHeight": "50dp", "description": "JR四国列車遅延速報EXのウィジェットです。30分ごとに自動更新します。タッチすると強制更新します。", "previewImage": "./assets/icon.png", "updatePeriodMillis": 1800000, @@ -39,9 +36,7 @@ "fallbackToCacheTimeout": 0, "url": "https://u.expo.dev/398abf60-57a7-11e9-970c-8f04356d08bf" }, - "assetBundlePatterns": [ - "**/*" - ], + "assetBundlePatterns": ["**/*"], "ios": { "buildNumber": "31", "supportsTablet": true, @@ -57,18 +52,13 @@ ] }, "entitlements": { - "com.apple.developer.nfc.readersession.formats": [ - "TAG" - ] + "com.apple.developer.nfc.readersession.formats": ["TAG"] } }, "android": { "package": "jrshikokuinfo.xprocess.hrkn", "versionCode": 20, - "permissions": [ - "ACCESS_FINE_LOCATION", - "NFC" - ], + "permissions": ["ACCESS_FINE_LOCATION", "NFC"], "googleServicesFile": "./google-services.json", "config": { "googleMaps": { diff --git a/components/AndroidWidget/HelloWidget.jsx b/components/AndroidWidget/TraInfoEXWidget.jsx similarity index 97% rename from components/AndroidWidget/HelloWidget.jsx rename to components/AndroidWidget/TraInfoEXWidget.jsx index 472aa0d..6a8e9e1 100644 --- a/components/AndroidWidget/HelloWidget.jsx +++ b/components/AndroidWidget/TraInfoEXWidget.jsx @@ -5,7 +5,7 @@ import { ListWidget, } from "react-native-android-widget"; -export function HelloWidget({ time, delayString }) { +export function TraInfoEXWidget({ time, delayString }) { return ( ); break; - break; - - break; - case "WIDGET_DELETED": // Not needed for now break; - - break; - default: break; } diff --git a/components/settings.js b/components/settings.js index aae81ac..98d346f 100644 --- a/components/settings.js +++ b/components/settings.js @@ -1,4 +1,4 @@ -import React, { useState, useEffect } from "react"; +import React, { useState, useEffect, useLayoutEffect } from "react"; import { View, Text, TouchableOpacity, Linking } from "react-native"; import * as ExpoFelicaReader from "../modules/expo-felica-reader/src"; import * as Updates from "expo-updates"; @@ -17,11 +17,7 @@ export default function Setting(props) { const [usePDFView, setUsePDFView] = useState(false); const [trainMenu, setTrainMenu] = useState(false); const [trainPosition, setTrainPosition] = useState(false); - const testNFC = async () => { - const resulit = await ExpoFelicaReader.scan(); - alert(resulit); - }; - useEffect(() => { + useLayoutEffect(() => { AS.getItem("iconSwitch").then(setIconSetting); AS.getItem("mapSwitch").then(setMapSwitch); AS.getItem("stationSwitch").then(setStationMenu); @@ -29,6 +25,22 @@ export default function Setting(props) { AS.getItem("trainSwitch").then(setTrainMenu); AS.getItem("trainPositionSwitch").then(setTrainPosition); }, []); + const testNFC = async () => { + const resulit = await ExpoFelicaReader.scan(); + alert(resulit); + }; + const updateAndReload = () => { + Promise.all([ + AS.setItem("iconSwitch", iconSetting.toString()), + AS.setItem("mapSwitch", mapSwitch.toString()), + AS.setItem("stationSwitch", stationMenu.toString()), + AS.setItem("usePDFView", usePDFView.toString()), + AS.setItem("trainSwitch", trainMenu.toString()), + AS.setItem("trainPositionSwitch", trainPosition.toString()), + ]).then(() => { + Updates.reloadAsync(); + }); + }; return ( @@ -59,10 +71,10 @@ export default function Setting(props) { 列車アイコンを表示する - setIconSetting(value.toString())} + @@ -78,11 +90,7 @@ export default function Setting(props) { マップを表示する(beta) - setMapSwitch(value.toString())} - /> + - setStationMenu(value.toString())} + @@ -116,10 +124,10 @@ export default function Setting(props) { 時刻表PDFをアプリ外で表示 - setUsePDFView(value.toString())} + @@ -135,11 +143,7 @@ export default function Setting(props) { 列車メニュー - setTrainMenu(value.toString())} - /> + - setTrainPosition(value.toString())} + @@ -176,7 +180,7 @@ export default function Setting(props) { testNFC()} + onPress={testNFC} > { - Promise.all([ - AS.setItem("iconSwitch", iconSetting.toString()), - AS.setItem("mapSwitch", mapSwitch.toString()), - AS.setItem("stationSwitch", stationMenu.toString()), - AS.setItem("usePDFView", usePDFView.toString()), - AS.setItem("trainSwitch", trainMenu.toString()), - AS.setItem("trainPositionSwitch", trainPosition.toString()), - ]).then(() => { - Updates.reloadAsync(); - }); - }} + onPress={updateAndReload} > @@ -246,3 +239,10 @@ export default function Setting(props) { ); } +const SimpleSwitch = ({ bool, setBool, color }) => ( + setBool(value.toString())} + /> +);