Home widget update (#25)

* home widget update

* - fix for homescreen
 - version updated
This commit is contained in:
2023-02-18 11:14:35 +00:00
committed by GitHub
parent 1bfd6e38e5
commit c1fc8b8e65
3 changed files with 23 additions and 11 deletions

View File

@@ -24,7 +24,8 @@ Future<void> main() async {
runApp(const MyApp());
}
Future<void> backgroundCallback(Uri? uri) async {
@pragma("vm:entry-point")
Future<bool?> backgroundCallback(Uri? uri) async {
PreferenceProvider prefs = PreferenceProvider();
await prefs.init();
CurrencyApi api = CurrencyApi.create();
@@ -35,7 +36,7 @@ Future<void> backgroundCallback(Uri? uri) async {
Map<String, String>? querys = uri?.queryParameters;
String? widgetId = querys?["id"];
await updateWidget(widgetId, repository);
return await updateWidget(widgetId, repository);
} else if (uri?.host == 'createwidget') {
Map<String, String>? querys = uri?.queryParameters;
String? widgetId = querys?["id"];
@@ -45,26 +46,29 @@ Future<void> backgroundCallback(Uri? uri) async {
await HomeWidget.saveWidgetData<String>("${widgetId}_from", from);
await HomeWidget.saveWidgetData<String>("${widgetId}_to", to);
await updateWidget(widgetId, repository);
return await updateWidget(widgetId, repository);
}
return null;
}
Future<void> updateWidget(String? widgetId, Repository repository) async {
Future<bool?> updateWidget(String? widgetId, Repository repository) async {
String? from = await HomeWidget.getWidgetData<String>("${widgetId}_from");
String? to = await HomeWidget.getWidgetData<String>("${widgetId}_to");
if (from == null || to == null) {
return;
return false;
}
Currency currency = await repository.getConversationRateFromApi(from, to);
await HomeWidget.saveWidgetData<String>("${widgetId}_from", from);
await HomeWidget.saveWidgetData<String>("${widgetId}_to", to);
await HomeWidget.saveWidgetData<String>("${widgetId}_rate", currency.rate.toString());
await HomeWidget.saveWidgetData<String>(
"${widgetId}_rate", currency.rate.toString());
await HomeWidget.saveWidgetData<bool>("${widgetId}_forced_update", true);
await HomeWidget.updateWidget(name: 'AppWidgetProvider', iOSName: 'AppWidgetProvider');
return await HomeWidget.updateWidget(
name: 'AppWidgetProvider', iOSName: 'AppWidgetProvider');
}
class MyApp extends StatelessWidget {