ウィジェットのコア作成

This commit is contained in:
harukin-expo-dev-env
2024-05-21 10:06:08 +00:00
parent 59e2ea32d8
commit f85c79ab2c
3 changed files with 201 additions and 42 deletions

View File

@@ -5,13 +5,16 @@ import { CheckBox } from "react-native-elements";
import { TripleSwitchArea } from "../atom/TripleSwitchArea";
import { getWidgetInfo, WidgetPreview } from "react-native-android-widget";
import { TraInfoEXWidget } from "../AndroidWidget/TraInfoEXWidget";
import { AS } from "../../storageControl";
import {
getDelayData,
nameToWidget,
getInfoString,
} from "../AndroidWidget/widget-task-handler";
import { ListItem } from "native-base";
export const WidgetSettings = ({ navigate }) => {
const { JR_shikoku_train_info, Info_Widget } = nameToWidget;
const [widgetList, setWidgetList] = useState([]);
useEffect(() => {
const d = [];
@@ -28,14 +31,18 @@ export const WidgetSettings = ({ navigate }) => {
});
setWidgetList(d);
}, []);
const [time, setTime] = useState(time);
const [delayString, setDelayString] = useState(delayString);
const [trainInfo, setTrainInfo] = useState();
useEffect(() => {
getDelayData().then(({ time, delayString }) => {
setTime(time);
setDelayString(delayString);
});
getInfoString().then(({ time, text }) => {
setTime(time);
setTrainInfo(text);
});
}, []);
return (
<View style={{ height: "100%", backgroundColor: "#0099CC" }}>
@@ -90,18 +97,31 @@ export const WidgetSettings = ({ navigate }) => {
margin: 10,
}}
>
{Object.keys(nameToWidget).map((Name) => {
const Data = nameToWidget[Name];
return (
<WidgetPreview
renderWidget={() => (
<Data time={time} delayString={delayString} />
)}
width={400}
height={250}
/>
);
})}
<WidgetPreview
renderWidget={() => (
<JR_shikoku_train_info time={time} delayString={delayString} />
)}
width={400}
height={250}
/>
</View>
<View
style={{
borderRadius: 15,
borderColor: "black",
borderWidth: 5,
borderStyle: "solid",
overflow: "hidden",
margin: 10,
}}
>
<WidgetPreview
renderWidget={() => (
<Info_Widget time={time} delayString={trainInfo} />
)}
width={400}
height={250}
/>
</View>
</View>
<ListItem key={"default"}>
@@ -129,33 +149,48 @@ export const WidgetSettings = ({ navigate }) => {
名前
</Text>
</ListItem>
{widgetList.map((widget) => (
<ListItem key={widget.widgetId}>
<Text
style={{
fontSize: 20,
alignItems: "center",
alignContent: "center",
textAlign: "center",
textAlignVertical: "center",
marginRight: 10,
{widgetList.map((widget) => {
return (
<ListItem
key={widget.widgetId}
onPress={() => {
//widget.widgetNameで定義されてないもう一つのウィジェットを選択する
if (widget.widgetName === "Info_Widget") {
AS.setItem(
`widgetType/${widget.widgetId}`,
"JR_shikoku_train_info"
);
} else {
AS.setItem(`widgetType/${widget.widgetId}`, "Info_Widget");
}
}}
>
{widget.widgetId}
</Text>
<Text
style={{
fontSize: 20,
alignItems: "center",
alignContent: "center",
textAlign: "center",
textAlignVertical: "center",
}}
>
{widget.widgetName}
</Text>
</ListItem>
))}
<Text
style={{
fontSize: 20,
alignItems: "center",
alignContent: "center",
textAlign: "center",
textAlignVertical: "center",
marginRight: 10,
}}
>
{widget.widgetId}
</Text>
<Text
style={{
fontSize: 20,
alignItems: "center",
alignContent: "center",
textAlign: "center",
textAlignVertical: "center",
}}
>
{widget.widgetName}
</Text>
</ListItem>
);
})}
</ScrollView>
<Text
style={{