[mob][photos] fix widget tap on iOS (#6882)
## Description Widget tap was not opening the specified photo because the app group id was not setting correctly when the method was being called. ## Tests
This commit is contained in:
@@ -12,6 +12,8 @@ PODS:
|
|||||||
- Flutter
|
- Flutter
|
||||||
- device_info_plus (0.0.1):
|
- device_info_plus (0.0.1):
|
||||||
- Flutter
|
- Flutter
|
||||||
|
- emoji_picker_flutter (0.0.1):
|
||||||
|
- Flutter
|
||||||
- ffmpeg_kit_custom (6.0.3)
|
- ffmpeg_kit_custom (6.0.3)
|
||||||
- ffmpeg_kit_flutter (6.0.3):
|
- ffmpeg_kit_flutter (6.0.3):
|
||||||
- ffmpeg_kit_custom
|
- ffmpeg_kit_custom
|
||||||
@@ -179,6 +181,8 @@ PODS:
|
|||||||
- PromisesObjC (2.4.0)
|
- PromisesObjC (2.4.0)
|
||||||
- receive_sharing_intent (1.8.1):
|
- receive_sharing_intent (1.8.1):
|
||||||
- Flutter
|
- Flutter
|
||||||
|
- rust_lib_photos (0.0.1):
|
||||||
|
- Flutter
|
||||||
- SDWebImage (5.21.1):
|
- SDWebImage (5.21.1):
|
||||||
- SDWebImage/Core (= 5.21.1)
|
- SDWebImage/Core (= 5.21.1)
|
||||||
- SDWebImage/Core (5.21.1)
|
- SDWebImage/Core (5.21.1)
|
||||||
@@ -228,6 +232,8 @@ PODS:
|
|||||||
- Flutter
|
- Flutter
|
||||||
- url_launcher_ios (0.0.1):
|
- url_launcher_ios (0.0.1):
|
||||||
- Flutter
|
- Flutter
|
||||||
|
- vibration (1.7.5):
|
||||||
|
- Flutter
|
||||||
- video_player_avfoundation (0.0.1):
|
- video_player_avfoundation (0.0.1):
|
||||||
- Flutter
|
- Flutter
|
||||||
- FlutterMacOS
|
- FlutterMacOS
|
||||||
@@ -248,6 +254,7 @@ DEPENDENCIES:
|
|||||||
- cupertino_http (from `.symlinks/plugins/cupertino_http/darwin`)
|
- cupertino_http (from `.symlinks/plugins/cupertino_http/darwin`)
|
||||||
- dart_ui_isolate (from `.symlinks/plugins/dart_ui_isolate/ios`)
|
- dart_ui_isolate (from `.symlinks/plugins/dart_ui_isolate/ios`)
|
||||||
- device_info_plus (from `.symlinks/plugins/device_info_plus/ios`)
|
- device_info_plus (from `.symlinks/plugins/device_info_plus/ios`)
|
||||||
|
- emoji_picker_flutter (from `.symlinks/plugins/emoji_picker_flutter/ios`)
|
||||||
- ffmpeg_kit_flutter (from `.symlinks/plugins/ffmpeg_kit_flutter/ios`)
|
- ffmpeg_kit_flutter (from `.symlinks/plugins/ffmpeg_kit_flutter/ios`)
|
||||||
- file_saver (from `.symlinks/plugins/file_saver/ios`)
|
- file_saver (from `.symlinks/plugins/file_saver/ios`)
|
||||||
- firebase_core (from `.symlinks/plugins/firebase_core/ios`)
|
- firebase_core (from `.symlinks/plugins/firebase_core/ios`)
|
||||||
@@ -294,6 +301,7 @@ DEPENDENCIES:
|
|||||||
- thermal (from `.symlinks/plugins/thermal/ios`)
|
- thermal (from `.symlinks/plugins/thermal/ios`)
|
||||||
- ua_client_hints (from `.symlinks/plugins/ua_client_hints/ios`)
|
- ua_client_hints (from `.symlinks/plugins/ua_client_hints/ios`)
|
||||||
- url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)
|
- url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)
|
||||||
|
- vibration (from `.symlinks/plugins/vibration/ios`)
|
||||||
- video_player_avfoundation (from `.symlinks/plugins/video_player_avfoundation/darwin`)
|
- video_player_avfoundation (from `.symlinks/plugins/video_player_avfoundation/darwin`)
|
||||||
- video_thumbnail (from `.symlinks/plugins/video_thumbnail/ios`)
|
- video_thumbnail (from `.symlinks/plugins/video_thumbnail/ios`)
|
||||||
- volume_controller (from `.symlinks/plugins/volume_controller/ios`)
|
- volume_controller (from `.symlinks/plugins/volume_controller/ios`)
|
||||||
@@ -336,6 +344,8 @@ EXTERNAL SOURCES:
|
|||||||
:path: ".symlinks/plugins/dart_ui_isolate/ios"
|
:path: ".symlinks/plugins/dart_ui_isolate/ios"
|
||||||
device_info_plus:
|
device_info_plus:
|
||||||
:path: ".symlinks/plugins/device_info_plus/ios"
|
:path: ".symlinks/plugins/device_info_plus/ios"
|
||||||
|
emoji_picker_flutter:
|
||||||
|
:path: ".symlinks/plugins/emoji_picker_flutter/ios"
|
||||||
ffmpeg_kit_flutter:
|
ffmpeg_kit_flutter:
|
||||||
:path: ".symlinks/plugins/ffmpeg_kit_flutter/ios"
|
:path: ".symlinks/plugins/ffmpeg_kit_flutter/ios"
|
||||||
file_saver:
|
file_saver:
|
||||||
@@ -428,6 +438,8 @@ EXTERNAL SOURCES:
|
|||||||
:path: ".symlinks/plugins/ua_client_hints/ios"
|
:path: ".symlinks/plugins/ua_client_hints/ios"
|
||||||
url_launcher_ios:
|
url_launcher_ios:
|
||||||
:path: ".symlinks/plugins/url_launcher_ios/ios"
|
:path: ".symlinks/plugins/url_launcher_ios/ios"
|
||||||
|
vibration:
|
||||||
|
:path: ".symlinks/plugins/vibration/ios"
|
||||||
video_player_avfoundation:
|
video_player_avfoundation:
|
||||||
:path: ".symlinks/plugins/video_player_avfoundation/darwin"
|
:path: ".symlinks/plugins/video_player_avfoundation/darwin"
|
||||||
video_thumbnail:
|
video_thumbnail:
|
||||||
@@ -446,6 +458,7 @@ SPEC CHECKSUMS:
|
|||||||
cupertino_http: 94ac07f5ff090b8effa6c5e2c47871d48ab7c86c
|
cupertino_http: 94ac07f5ff090b8effa6c5e2c47871d48ab7c86c
|
||||||
dart_ui_isolate: 46f6714abe6891313267153ef6f9748d8ecfcab1
|
dart_ui_isolate: 46f6714abe6891313267153ef6f9748d8ecfcab1
|
||||||
device_info_plus: 21fcca2080fbcd348be798aa36c3e5ed849eefbe
|
device_info_plus: 21fcca2080fbcd348be798aa36c3e5ed849eefbe
|
||||||
|
emoji_picker_flutter: ed468d9746c21711e66b2788880519a9de5de211
|
||||||
ffmpeg_kit_custom: 682b4f2f1ff1f8abae5a92f6c3540f2441d5be99
|
ffmpeg_kit_custom: 682b4f2f1ff1f8abae5a92f6c3540f2441d5be99
|
||||||
ffmpeg_kit_flutter: 915b345acc97d4142e8a9a8549d177ff10f043f5
|
ffmpeg_kit_flutter: 915b345acc97d4142e8a9a8549d177ff10f043f5
|
||||||
file_saver: 6cdbcddd690cb02b0c1a0c225b37cd805c2bf8b6
|
file_saver: 6cdbcddd690cb02b0c1a0c225b37cd805c2bf8b6
|
||||||
@@ -497,6 +510,7 @@ SPEC CHECKSUMS:
|
|||||||
privacy_screen: 3159a541f5d3a31bea916cfd4e58f9dc722b3fd4
|
privacy_screen: 3159a541f5d3a31bea916cfd4e58f9dc722b3fd4
|
||||||
PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47
|
PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47
|
||||||
receive_sharing_intent: 222384f00ffe7e952bbfabaa9e3967cb87e5fe00
|
receive_sharing_intent: 222384f00ffe7e952bbfabaa9e3967cb87e5fe00
|
||||||
|
rust_lib_photos: 04d3901908d2972192944083310b65abf410774c
|
||||||
SDWebImage: f29024626962457f3470184232766516dee8dfea
|
SDWebImage: f29024626962457f3470184232766516dee8dfea
|
||||||
SDWebImageWebPCoder: e38c0a70396191361d60c092933e22c20d5b1380
|
SDWebImageWebPCoder: e38c0a70396191361d60c092933e22c20d5b1380
|
||||||
Sentry: da60d980b197a46db0b35ea12cb8f39af48d8854
|
Sentry: da60d980b197a46db0b35ea12cb8f39af48d8854
|
||||||
@@ -510,6 +524,7 @@ SPEC CHECKSUMS:
|
|||||||
thermal: d4c48be750d1ddbab36b0e2dcb2471531bc8df41
|
thermal: d4c48be750d1ddbab36b0e2dcb2471531bc8df41
|
||||||
ua_client_hints: 92fe0d139619b73ec9fcb46cc7e079a26178f586
|
ua_client_hints: 92fe0d139619b73ec9fcb46cc7e079a26178f586
|
||||||
url_launcher_ios: 694010445543906933d732453a59da0a173ae33d
|
url_launcher_ios: 694010445543906933d732453a59da0a173ae33d
|
||||||
|
vibration: 8e2f50fc35bb736f9eecb7dd9f7047fbb6a6e888
|
||||||
video_player_avfoundation: 2cef49524dd1f16c5300b9cd6efd9611ce03639b
|
video_player_avfoundation: 2cef49524dd1f16c5300b9cd6efd9611ce03639b
|
||||||
video_thumbnail: b637e0ad5f588ca9945f6e2c927f73a69a661140
|
video_thumbnail: b637e0ad5f588ca9945f6e2c927f73a69a661140
|
||||||
volume_controller: 3657a1f65bedb98fa41ff7dc5793537919f31b12
|
volume_controller: 3657a1f65bedb98fa41ff7dc5793537919f31b12
|
||||||
|
|||||||
@@ -532,6 +532,7 @@
|
|||||||
"${BUILT_PRODUCTS_DIR}/cupertino_http/cupertino_http.framework",
|
"${BUILT_PRODUCTS_DIR}/cupertino_http/cupertino_http.framework",
|
||||||
"${BUILT_PRODUCTS_DIR}/dart_ui_isolate/dart_ui_isolate.framework",
|
"${BUILT_PRODUCTS_DIR}/dart_ui_isolate/dart_ui_isolate.framework",
|
||||||
"${BUILT_PRODUCTS_DIR}/device_info_plus/device_info_plus.framework",
|
"${BUILT_PRODUCTS_DIR}/device_info_plus/device_info_plus.framework",
|
||||||
|
"${BUILT_PRODUCTS_DIR}/emoji_picker_flutter/emoji_picker_flutter.framework",
|
||||||
"${BUILT_PRODUCTS_DIR}/file_saver/file_saver.framework",
|
"${BUILT_PRODUCTS_DIR}/file_saver/file_saver.framework",
|
||||||
"${BUILT_PRODUCTS_DIR}/flutter_email_sender/flutter_email_sender.framework",
|
"${BUILT_PRODUCTS_DIR}/flutter_email_sender/flutter_email_sender.framework",
|
||||||
"${BUILT_PRODUCTS_DIR}/flutter_image_compress_common/flutter_image_compress_common.framework",
|
"${BUILT_PRODUCTS_DIR}/flutter_image_compress_common/flutter_image_compress_common.framework",
|
||||||
@@ -575,6 +576,7 @@
|
|||||||
"${BUILT_PRODUCTS_DIR}/thermal/thermal.framework",
|
"${BUILT_PRODUCTS_DIR}/thermal/thermal.framework",
|
||||||
"${BUILT_PRODUCTS_DIR}/ua_client_hints/ua_client_hints.framework",
|
"${BUILT_PRODUCTS_DIR}/ua_client_hints/ua_client_hints.framework",
|
||||||
"${BUILT_PRODUCTS_DIR}/url_launcher_ios/url_launcher_ios.framework",
|
"${BUILT_PRODUCTS_DIR}/url_launcher_ios/url_launcher_ios.framework",
|
||||||
|
"${BUILT_PRODUCTS_DIR}/vibration/vibration.framework",
|
||||||
"${BUILT_PRODUCTS_DIR}/video_player_avfoundation/video_player_avfoundation.framework",
|
"${BUILT_PRODUCTS_DIR}/video_player_avfoundation/video_player_avfoundation.framework",
|
||||||
"${BUILT_PRODUCTS_DIR}/video_thumbnail/video_thumbnail.framework",
|
"${BUILT_PRODUCTS_DIR}/video_thumbnail/video_thumbnail.framework",
|
||||||
"${BUILT_PRODUCTS_DIR}/volume_controller/volume_controller.framework",
|
"${BUILT_PRODUCTS_DIR}/volume_controller/volume_controller.framework",
|
||||||
@@ -627,6 +629,7 @@
|
|||||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/cupertino_http.framework",
|
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/cupertino_http.framework",
|
||||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/dart_ui_isolate.framework",
|
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/dart_ui_isolate.framework",
|
||||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/device_info_plus.framework",
|
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/device_info_plus.framework",
|
||||||
|
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/emoji_picker_flutter.framework",
|
||||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/file_saver.framework",
|
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/file_saver.framework",
|
||||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_email_sender.framework",
|
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_email_sender.framework",
|
||||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_image_compress_common.framework",
|
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_image_compress_common.framework",
|
||||||
@@ -670,6 +673,7 @@
|
|||||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/thermal.framework",
|
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/thermal.framework",
|
||||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ua_client_hints.framework",
|
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ua_client_hints.framework",
|
||||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/url_launcher_ios.framework",
|
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/url_launcher_ios.framework",
|
||||||
|
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/vibration.framework",
|
||||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/video_player_avfoundation.framework",
|
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/video_player_avfoundation.framework",
|
||||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/video_thumbnail.framework",
|
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/video_thumbnail.framework",
|
||||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/volume_controller.framework",
|
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/volume_controller.framework",
|
||||||
|
|||||||
@@ -27,9 +27,12 @@ import workmanager
|
|||||||
|
|
||||||
// Retrieve the link from parameters
|
// Retrieve the link from parameters
|
||||||
if let url = AppLinks.shared.getLink(launchOptions: launchOptions) {
|
if let url = AppLinks.shared.getLink(launchOptions: launchOptions) {
|
||||||
// We have a link, propagate it to your Flutter app or not
|
// only accept non-homewidget urls for AppLinks
|
||||||
AppLinks.shared.handleLink(url: url)
|
if !url.absoluteString.contains("&homeWidget") {
|
||||||
return true // Returning true will stop the propagation to other packages
|
AppLinks.shared.handleLink(url: url)
|
||||||
|
// link is handled, stop propagation
|
||||||
|
return true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
|
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
|
||||||
|
|||||||
@@ -89,8 +89,9 @@ class _EnteAppState extends State<EnteApp> with WidgetsBindingObserver {
|
|||||||
_checkForWidgetLaunch();
|
_checkForWidgetLaunch();
|
||||||
}
|
}
|
||||||
|
|
||||||
void _checkForWidgetLaunch() {
|
Future<void> _checkForWidgetLaunch() async {
|
||||||
hw.HomeWidget.initiallyLaunchedFromHomeWidget().then(
|
await HomeWidgetService.instance.setAppGroup();
|
||||||
|
await hw.HomeWidget.initiallyLaunchedFromHomeWidget().then(
|
||||||
(uri) => HomeWidgetService.instance.onLaunchFromWidget(uri, context),
|
(uri) => HomeWidgetService.instance.onLaunchFromWidget(uri, context),
|
||||||
);
|
);
|
||||||
hw.HomeWidget.widgetClicked.listen(
|
hw.HomeWidget.widgetClicked.listen(
|
||||||
|
|||||||
@@ -174,7 +174,6 @@ Future<void> _runMinimally(String taskId, TimeLogger tlog) async {
|
|||||||
// Misc Services
|
// Misc Services
|
||||||
await UserService.instance.init();
|
await UserService.instance.init();
|
||||||
NotificationService.instance.init(prefs);
|
NotificationService.instance.init(prefs);
|
||||||
if (Platform.isAndroid) HomeWidgetService.instance.init(prefs);
|
|
||||||
|
|
||||||
// Begin Execution
|
// Begin Execution
|
||||||
// only runs for android
|
// only runs for android
|
||||||
@@ -269,8 +268,6 @@ Future<void> _init(bool isBackground, {String via = ''}) async {
|
|||||||
await SyncService.instance.init(preferences);
|
await SyncService.instance.init(preferences);
|
||||||
_logger.info("SyncService init done $tlog");
|
_logger.info("SyncService init done $tlog");
|
||||||
|
|
||||||
HomeWidgetService.instance.init(preferences);
|
|
||||||
|
|
||||||
if (!isBackground) {
|
if (!isBackground) {
|
||||||
await _scheduleFGHomeWidgetSync();
|
await _scheduleFGHomeWidgetSync();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,12 +39,7 @@ class AlbumHomeWidgetService {
|
|||||||
|
|
||||||
// Properties
|
// Properties
|
||||||
final Logger _logger = Logger((AlbumHomeWidgetService).toString());
|
final Logger _logger = Logger((AlbumHomeWidgetService).toString());
|
||||||
late final SharedPreferences _prefs;
|
SharedPreferences get _prefs => ServiceLocator.instance.prefs;
|
||||||
|
|
||||||
// Initialization
|
|
||||||
void init(SharedPreferences prefs) {
|
|
||||||
_prefs = prefs;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Public methods
|
// Public methods
|
||||||
List<int>? getSelectedAlbumIds() {
|
List<int>? getSelectedAlbumIds() {
|
||||||
|
|||||||
@@ -55,23 +55,22 @@ class HomeWidgetService {
|
|||||||
|
|
||||||
final Logger _logger = Logger((HomeWidgetService).toString());
|
final Logger _logger = Logger((HomeWidgetService).toString());
|
||||||
final computeLock = Lock();
|
final computeLock = Lock();
|
||||||
|
bool _isAppGroupSet = false;
|
||||||
|
|
||||||
void init(SharedPreferences prefs) {
|
Future<void> setAppGroup({String id = iOSGroupIDMemory}) async {
|
||||||
setAppGroupID(iOSGroupIDMemory);
|
if (!Platform.isIOS || _isAppGroupSet) return;
|
||||||
_initializeWidgetServices(prefs);
|
_logger.info("Setting app group id");
|
||||||
}
|
await hw.HomeWidget.setAppGroupId(id).catchError(
|
||||||
|
(error) {
|
||||||
void _initializeWidgetServices(SharedPreferences prefs) {
|
_logger.severe("Failed to set app group ID: $error");
|
||||||
AlbumHomeWidgetService.instance.init(prefs);
|
return null;
|
||||||
PeopleHomeWidgetService.instance.init(prefs);
|
},
|
||||||
MemoryHomeWidgetService.instance.init(prefs);
|
);
|
||||||
}
|
_isAppGroupSet = true;
|
||||||
|
|
||||||
void setAppGroupID(String id) {
|
|
||||||
hw.HomeWidget.setAppGroupId(id).ignore();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> initHomeWidget([bool isBg = false]) async {
|
Future<void> initHomeWidget([bool isBg = false]) async {
|
||||||
|
await setAppGroup();
|
||||||
await AlbumHomeWidgetService.instance.initAlbumHomeWidget(isBg);
|
await AlbumHomeWidgetService.instance.initAlbumHomeWidget(isBg);
|
||||||
await PeopleHomeWidgetService.instance.initPeopleHomeWidget();
|
await PeopleHomeWidgetService.instance.initPeopleHomeWidget();
|
||||||
await MemoryHomeWidgetService.instance.initMemoryHomeWidget();
|
await MemoryHomeWidgetService.instance.initMemoryHomeWidget();
|
||||||
@@ -218,7 +217,7 @@ class HomeWidgetService {
|
|||||||
|
|
||||||
Future<void> clearWidget(bool autoLogout) async {
|
Future<void> clearWidget(bool autoLogout) async {
|
||||||
if (autoLogout) {
|
if (autoLogout) {
|
||||||
setAppGroupID(iOSGroupIDMemory);
|
await setAppGroup();
|
||||||
}
|
}
|
||||||
|
|
||||||
await Future.wait([
|
await Future.wait([
|
||||||
|
|||||||
@@ -31,12 +31,7 @@ class MemoryHomeWidgetService {
|
|||||||
|
|
||||||
// Properties
|
// Properties
|
||||||
final Logger _logger = Logger((MemoryHomeWidgetService).toString());
|
final Logger _logger = Logger((MemoryHomeWidgetService).toString());
|
||||||
late final SharedPreferences _prefs;
|
SharedPreferences get _prefs => ServiceLocator.instance.prefs;
|
||||||
|
|
||||||
// Initialization
|
|
||||||
void init(SharedPreferences prefs) {
|
|
||||||
_prefs = prefs;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Preference getters and setters
|
// Preference getters and setters
|
||||||
bool? hasLastYearMemoriesSelected() {
|
bool? hasLastYearMemoriesSelected() {
|
||||||
|
|||||||
@@ -35,14 +35,9 @@ class PeopleHomeWidgetService {
|
|||||||
|
|
||||||
// Properties
|
// Properties
|
||||||
final Logger _logger = Logger((PeopleHomeWidgetService).toString());
|
final Logger _logger = Logger((PeopleHomeWidgetService).toString());
|
||||||
late final SharedPreferences _prefs;
|
SharedPreferences get _prefs => ServiceLocator.instance.prefs;
|
||||||
final peopleChangedLock = Lock();
|
final peopleChangedLock = Lock();
|
||||||
|
|
||||||
// Initialization
|
|
||||||
void init(SharedPreferences prefs) {
|
|
||||||
_prefs = prefs;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Public methods
|
// Public methods
|
||||||
List<String>? getSelectedPeople() {
|
List<String>? getSelectedPeople() {
|
||||||
return _prefs.getStringList(SELECTED_PEOPLE_KEY);
|
return _prefs.getStringList(SELECTED_PEOPLE_KEY);
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
- (prtk) Fix widget initial launch on iOS
|
||||||
- (prtk) Upgrade Flutter version to 3.32.8
|
- (prtk) Upgrade Flutter version to 3.32.8
|
||||||
- (prtk) Run FFMpeg in an isolate
|
- (prtk) Run FFMpeg in an isolate
|
||||||
- Neeraj: Handle custom domain links
|
- Neeraj: Handle custom domain links
|
||||||
|
|||||||
Reference in New Issue
Block a user