device management features, settings module and contact sync
Device management: - Activity meter with steps charts and history - Apps usage with daily breakdown and top apps - Health monitoring (heart rate, oxygen, blood pressure) - Scheduled activities with timeline and CRUD - Contacts sync to device via contact-lists - Locate device, rewards refactor Settings (new module): - Block phone - SOS contacts - WiFi networks - Alarm refactor with full CRUD - Settings menu with feature stubs Account: - Personal data and account settings refactor Shared: - 100+ i18n keys in 6 languages - New routes in app_router - WeekDayChips, TimeRangeSelector shared widgets - Legacy dashboard shell simplified
This commit is contained in:
@@ -4,6 +4,7 @@
|
||||
<uses-permission android:name="android.permission.CAMERA" />
|
||||
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
|
||||
<uses-permission android:name="android.permission.USE_BIOMETRIC" />
|
||||
<uses-permission android:name="android.permission.READ_CONTACTS" />
|
||||
|
||||
<application
|
||||
android:label="@string/app_name"
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError
|
||||
android.useAndroidX=true
|
||||
android.enableJetifier=true
|
||||
|
||||
# permission_handler: enable contacts permission
|
||||
PERMISSION_CONTACTS=1
|
||||
|
||||
@@ -47,6 +47,8 @@
|
||||
<true/>
|
||||
<key>UIStatusBarHidden</key>
|
||||
<true/>
|
||||
<key>NSContactsUsageDescription</key>
|
||||
<string>Necesitamos acceso a tus contactos para seleccionar números de teléfono.</string>
|
||||
<key>NSCameraUsageDescription</key>
|
||||
<string>Necesitamos la cámara para escanear códigos QR</string>
|
||||
<key>NSLocationWhenInUseUsageDescription</key>
|
||||
|
||||
@@ -26,7 +26,7 @@ late final GoRouter appRouter;
|
||||
void configureAppRouter() {
|
||||
appRouter = GoRouter(
|
||||
navigatorKey: rootNavigatorKey,
|
||||
initialLocation: AppRoutes.controlPanel,
|
||||
initialLocation: AppRoutes.onboarding,
|
||||
debugLogDiagnostics: true,
|
||||
routes: [
|
||||
GoRoute(
|
||||
@@ -94,10 +94,27 @@ void configureAppRouter() {
|
||||
name: 'device_management',
|
||||
pageBuilder: DeviceManagementBuilder().buildPage,
|
||||
routes: [
|
||||
GoRoute(
|
||||
path: 'scheduled_activities',
|
||||
name: 'scheduled_activities',
|
||||
pageBuilder: const ScheduledActivitiesBuilder().buildPage,
|
||||
),
|
||||
GoRoute(
|
||||
path: 'contacts',
|
||||
name: 'contacts',
|
||||
pageBuilder: ContactsBuilder().buildPage,
|
||||
pageBuilder: const ContactsBuilder().buildPage,
|
||||
routes: [
|
||||
GoRoute(
|
||||
path: 'edit/:contactId',
|
||||
name: 'edit_contact',
|
||||
pageBuilder: const EditContactBuilder().buildPage,
|
||||
),
|
||||
],
|
||||
),
|
||||
GoRoute(
|
||||
path: 'health',
|
||||
name: 'health',
|
||||
pageBuilder: const HealthBuilder().buildPage,
|
||||
),
|
||||
GoRoute(
|
||||
path: 'remote_connection',
|
||||
@@ -114,6 +131,16 @@ void configureAppRouter() {
|
||||
name: 'rewards',
|
||||
pageBuilder: RewardsBuilder().buildPage,
|
||||
),
|
||||
GoRoute(
|
||||
path: 'activity_meter',
|
||||
name: 'activity_meter',
|
||||
pageBuilder: const ActivityMeterBuilder().buildPage,
|
||||
),
|
||||
GoRoute(
|
||||
path: 'apps_use',
|
||||
name: 'apps_use',
|
||||
pageBuilder: const AppsUseBuilder().buildPage,
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
@@ -131,7 +158,7 @@ void configureAppRouter() {
|
||||
StatefulShellBranch(
|
||||
routes: [
|
||||
GoRoute(
|
||||
path: '${ AppRoutes.legacyDashboard}/chat',
|
||||
path: '${AppRoutes.legacyDashboard}/chat',
|
||||
name: 'legacy_chat',
|
||||
pageBuilder: (context, state) => MaterialPage<void>(
|
||||
key: state.pageKey,
|
||||
@@ -150,80 +177,80 @@ void configureAppRouter() {
|
||||
pageBuilder: SettingsBuilder().buildPage,
|
||||
routes: [
|
||||
GoRoute(
|
||||
path: AppRoutes.alarm,
|
||||
path: 'alarm',
|
||||
name: 'alarm',
|
||||
pageBuilder: AlarmBuilder().buildPage,
|
||||
),
|
||||
/*GoRoute (
|
||||
path: AppRoutes.appStore,
|
||||
name: 'app_store',
|
||||
// pageBuilder: AppStoreBuilder().buildPage,
|
||||
),
|
||||
GoRoute (
|
||||
path: AppRoutes.battery,
|
||||
name: 'battery',
|
||||
// pageBuilder: BatteryBuilder().buildPage,
|
||||
),
|
||||
GoRoute (
|
||||
path: AppRoutes.blockPhone,
|
||||
name: 'block_phone',
|
||||
// pageBuilder: BlockPhoneBuilder().buildPage,
|
||||
),
|
||||
GoRoute (
|
||||
path: AppRoutes.disableFunctions,
|
||||
name: 'disable_functions',
|
||||
// pageBuilder: DisableFunctionsBuilder().buildPage,
|
||||
),
|
||||
GoRoute (
|
||||
path: AppRoutes.language,
|
||||
name: 'language',
|
||||
// pageBuilder: LanguageBuilder().buildPage,
|
||||
),
|
||||
GoRoute (
|
||||
path: AppRoutes.legacyNotifications,
|
||||
name: 'legacy_notifications',
|
||||
// pageBuilder: LegacyNotificationsBuilder().buildPage,
|
||||
),*/
|
||||
GoRoute (
|
||||
path: AppRoutes.remoteManagement,
|
||||
GoRoute(
|
||||
path: 'remote_management',
|
||||
name: 'remote_management',
|
||||
pageBuilder: RemoteManagementBuilder().buildPage,
|
||||
),
|
||||
/*GoRoute (
|
||||
path: AppRoutes.remoteOnOff,
|
||||
name: 'remote_on_off',
|
||||
// pageBuilder: RemoteOnOffBuilder().buildPage,
|
||||
),
|
||||
GoRoute (
|
||||
path: AppRoutes.smsAlert,
|
||||
name: 'sms_alert',
|
||||
// pageBuilder: SmsAlertBuilder().buildPage,
|
||||
),*/
|
||||
GoRoute (
|
||||
path: AppRoutes.sosContacts,
|
||||
GoRoute(
|
||||
path: 'sos_agenda',
|
||||
name: 'sos_agenda',
|
||||
pageBuilder: SosContactsBuilder().buildPage,
|
||||
),
|
||||
GoRoute (
|
||||
path: AppRoutes.sound,
|
||||
GoRoute(
|
||||
path: 'sound',
|
||||
name: 'sound',
|
||||
pageBuilder: SoundBuilder().buildPage,
|
||||
),
|
||||
/*GoRoute (
|
||||
path: AppRoutes.syncClock,
|
||||
GoRoute(
|
||||
path: 'sync_clock',
|
||||
name: 'sync_clock',
|
||||
// pageBuilder: SyncClockBuilder().buildPage,
|
||||
pageBuilder: SyncClockBuilder().buildPage,
|
||||
),
|
||||
GoRoute (
|
||||
path: AppRoutes.timezone,
|
||||
GoRoute(
|
||||
path: 'app_store',
|
||||
name: 'app_store',
|
||||
pageBuilder: AppStoreBuilder().buildPage,
|
||||
),
|
||||
GoRoute(
|
||||
path: 'battery',
|
||||
name: 'battery',
|
||||
pageBuilder: BatteryBuilder().buildPage,
|
||||
),
|
||||
GoRoute(
|
||||
path: 'block_phone',
|
||||
name: 'block_phone',
|
||||
pageBuilder: BlockPhoneBuilder().buildPage,
|
||||
),
|
||||
GoRoute(
|
||||
path: 'disable_functions',
|
||||
name: 'disable_functions',
|
||||
pageBuilder: DisableFunctionsBuilder().buildPage,
|
||||
),
|
||||
GoRoute(
|
||||
path: 'language',
|
||||
name: 'language',
|
||||
pageBuilder: LanguageBuilder().buildPage,
|
||||
),
|
||||
GoRoute(
|
||||
path: 'legacy_notifications',
|
||||
name: 'legacy_notifications',
|
||||
pageBuilder: LegacyNotificationsBuilder().buildPage,
|
||||
),
|
||||
GoRoute(
|
||||
path: 'remote_on_off',
|
||||
name: 'remote_on_off',
|
||||
pageBuilder: RemoteOnOffBuilder().buildPage,
|
||||
),
|
||||
GoRoute(
|
||||
path: 'sms_alert',
|
||||
name: 'sms_alert',
|
||||
pageBuilder: SmsAlertBuilder().buildPage,
|
||||
),
|
||||
GoRoute(
|
||||
path: 'timezone',
|
||||
name: 'timezone',
|
||||
// pageBuilder: TimezoneBuilder().buildPage,
|
||||
pageBuilder: TimezoneBuilder().buildPage,
|
||||
),
|
||||
GoRoute (
|
||||
path: AppRoutes.wifiSettings,
|
||||
GoRoute(
|
||||
path: 'wifi_settings',
|
||||
name: 'wifi_settings',
|
||||
// pageBuilder: WifiSettingsBuilder().buildPage,
|
||||
),*/
|
||||
pageBuilder: WifiSettingsBuilder().buildPage,
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
|
||||
@@ -406,6 +406,14 @@ packages:
|
||||
description: flutter
|
||||
source: sdk
|
||||
version: "0.0.0"
|
||||
flutter_contacts:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: flutter_contacts
|
||||
sha256: "388d32cd33f16640ee169570128c933b45f3259bddbfae7a100bb49e5ffea9ae"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.9+2"
|
||||
flutter_launcher_icons:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
|
||||
@@ -43,7 +43,7 @@ dependency_overrides:
|
||||
sca_treezor:
|
||||
path: ../../packages/sca_treezor
|
||||
settings:
|
||||
path: ..\\..\\modules\\legacy\\modules\\settings
|
||||
path: ../../modules/legacy/modules/settings
|
||||
sf_infrastructure:
|
||||
path: ../../packages/sf_infrastructure
|
||||
sf_localizations:
|
||||
|
||||
Reference in New Issue
Block a user