mirror of
https://github.com/hmalik144/easy_cc_flutter.git
synced 2026-03-17 23:25:55 +00:00
home widget update
This commit is contained in:
@@ -1,9 +1,11 @@
|
|||||||
import 'package:easy_cc_flutter/Utils/currency_utils.dart';
|
import 'package:easy_cc_flutter/Utils/currency_utils.dart';
|
||||||
import 'package:easy_cc_flutter/data/network/backup_currency_api.dart';
|
import 'package:easy_cc_flutter/data/network/backup_currency_api.dart';
|
||||||
import 'package:easy_cc_flutter/data/network/currency_api.dart';
|
import 'package:easy_cc_flutter/data/network/currency_api.dart';
|
||||||
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:home_widget/home_widget.dart';
|
import 'package:home_widget/home_widget.dart';
|
||||||
import 'package:logger/logger.dart';
|
import 'package:logger/logger.dart';
|
||||||
|
import 'package:workmanager/workmanager.dart';
|
||||||
|
|
||||||
import 'data/model/currency.dart';
|
import 'data/model/currency.dart';
|
||||||
import 'data/prefs/preference_provider.dart';
|
import 'data/prefs/preference_provider.dart';
|
||||||
@@ -24,7 +26,8 @@ Future<void> main() async {
|
|||||||
runApp(const MyApp());
|
runApp(const MyApp());
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> backgroundCallback(Uri? uri) async {
|
@pragma("vm:entry-point")
|
||||||
|
Future<bool?> backgroundCallback(Uri? uri) async {
|
||||||
PreferenceProvider prefs = PreferenceProvider();
|
PreferenceProvider prefs = PreferenceProvider();
|
||||||
await prefs.init();
|
await prefs.init();
|
||||||
CurrencyApi api = CurrencyApi.create();
|
CurrencyApi api = CurrencyApi.create();
|
||||||
@@ -35,7 +38,7 @@ Future<void> backgroundCallback(Uri? uri) async {
|
|||||||
Map<String, String>? querys = uri?.queryParameters;
|
Map<String, String>? querys = uri?.queryParameters;
|
||||||
String? widgetId = querys?["id"];
|
String? widgetId = querys?["id"];
|
||||||
|
|
||||||
await updateWidget(widgetId, repository);
|
return await updateWidget(widgetId, repository);
|
||||||
} else if (uri?.host == 'createwidget') {
|
} else if (uri?.host == 'createwidget') {
|
||||||
Map<String, String>? querys = uri?.queryParameters;
|
Map<String, String>? querys = uri?.queryParameters;
|
||||||
String? widgetId = querys?["id"];
|
String? widgetId = querys?["id"];
|
||||||
@@ -45,26 +48,29 @@ Future<void> backgroundCallback(Uri? uri) async {
|
|||||||
await HomeWidget.saveWidgetData<String>("${widgetId}_from", from);
|
await HomeWidget.saveWidgetData<String>("${widgetId}_from", from);
|
||||||
await HomeWidget.saveWidgetData<String>("${widgetId}_to", to);
|
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? from = await HomeWidget.getWidgetData<String>("${widgetId}_from");
|
||||||
String? to = await HomeWidget.getWidgetData<String>("${widgetId}_to");
|
String? to = await HomeWidget.getWidgetData<String>("${widgetId}_to");
|
||||||
|
|
||||||
if (from == null || to == null) {
|
if (from == null || to == null) {
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Currency currency = await repository.getConversationRateFromApi(from, to);
|
Currency currency = await repository.getConversationRateFromApi(from, to);
|
||||||
|
|
||||||
await HomeWidget.saveWidgetData<String>("${widgetId}_from", from);
|
await HomeWidget.saveWidgetData<String>("${widgetId}_from", from);
|
||||||
await HomeWidget.saveWidgetData<String>("${widgetId}_to", to);
|
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.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 {
|
class MyApp extends StatelessWidget {
|
||||||
|
|||||||
19
pubspec.lock
19
pubspec.lock
@@ -288,7 +288,7 @@ packages:
|
|||||||
name: home_widget
|
name: home_widget
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.1.6"
|
version: "0.2.0+1"
|
||||||
http_multi_server:
|
http_multi_server:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -379,7 +379,7 @@ packages:
|
|||||||
name: material_color_utilities
|
name: material_color_utilities
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.2.0"
|
version: "0.1.5"
|
||||||
meta:
|
meta:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -622,7 +622,7 @@ packages:
|
|||||||
name: source_span
|
name: source_span
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.9.1"
|
version: "1.9.0"
|
||||||
stack_trace:
|
stack_trace:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -685,7 +685,7 @@ packages:
|
|||||||
name: test_api
|
name: test_api
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.4.13"
|
version: "0.4.12"
|
||||||
timing:
|
timing:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -734,7 +734,7 @@ packages:
|
|||||||
name: vector_math
|
name: vector_math
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.1.3"
|
version: "2.1.2"
|
||||||
watcher:
|
watcher:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -756,6 +756,13 @@ packages:
|
|||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.0.0"
|
version: "3.0.0"
|
||||||
|
workmanager:
|
||||||
|
dependency: "direct main"
|
||||||
|
description:
|
||||||
|
name: workmanager
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "0.5.1"
|
||||||
xdg_directories:
|
xdg_directories:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -778,5 +785,5 @@ packages:
|
|||||||
source: hosted
|
source: hosted
|
||||||
version: "3.1.1"
|
version: "3.1.1"
|
||||||
sdks:
|
sdks:
|
||||||
dart: ">=2.18.0-190.0.dev <3.0.0"
|
dart: ">=2.18.0 <3.0.0"
|
||||||
flutter: ">=3.0.0"
|
flutter: ">=3.0.0"
|
||||||
|
|||||||
@@ -49,7 +49,8 @@ dependencies:
|
|||||||
mockito: ^5.3.2
|
mockito: ^5.3.2
|
||||||
json_annotation: ^4.7.0
|
json_annotation: ^4.7.0
|
||||||
flutter_launcher_icons: ^0.10.0
|
flutter_launcher_icons: ^0.10.0
|
||||||
home_widget: ^0.1.6
|
home_widget: ^0.2.0+1
|
||||||
|
workmanager: ^0.5.1
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
flutter_test:
|
flutter_test:
|
||||||
|
|||||||
Reference in New Issue
Block a user