feat(mobile): android widgets (#19310)

* wip

* wip widgets

* more wip changes

* latest changes

* working random widget

* cleanup

* add configurable widget

* add memory widget and cleanup of codebase

* album name handling

* add deeplinks

* finish minor refactoring and add some polish :)

* fix single shot type on random widget

Co-authored-by: shenlong <139912620+shenlong-tanwen@users.noreply.github.com>

* switch to ExposedDropdownMenuBox for random configure activity

* handle empty album and no connection edge cases

* android project cleanup

* fix proguard and gson issues

* fix deletion handling

* fix proguard stripping for widget model classes/enums

* change random configuration activity close to a checkmark on right side

---------

Co-authored-by: shenlong <139912620+shenlong-tanwen@users.noreply.github.com>
This commit is contained in:
Brandon Wees
2025-07-18 09:37:07 -05:00
committed by GitHub
parent 7bae49ebd5
commit f32d4f15b6
21 changed files with 1098 additions and 12 deletions

View File

@@ -1,4 +1,3 @@
import 'dart:io';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/constants/constants.dart';
import 'package:immich_mobile/repositories/widget.repository.dart';
@@ -33,10 +32,8 @@ class WidgetService {
}
Future<void> refreshWidgets() async {
if (Platform.isAndroid) return;
for (final name in kWidgetNames) {
await _repository.refresh(name);
for (final (iOSName, androidName) in kWidgetNames) {
await _repository.refresh(iOSName, androidName);
}
}
}