Skip to content

Commit

Permalink
feat: Add slim lock for multi trait list
Browse files Browse the repository at this point in the history
  • Loading branch information
rlperez committed Dec 29, 2021
1 parent 378330d commit b0f8176
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 20 deletions.
19 changes: 3 additions & 16 deletions lib/traits/detail_screen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import 'package:yonomi_device_widgets/providers/battery_level_trait_provider.dar
import 'package:yonomi_device_widgets/providers/lock_provider.dart';
import 'package:yonomi_device_widgets/providers/power_trait_provider.dart';
import 'package:yonomi_device_widgets/providers/trait_detail_provider.dart';
import 'package:yonomi_device_widgets/assets/traits/lock_item_icon.dart';
import 'package:yonomi_device_widgets/traits/expandable/battery_expand_widget.dart';
import 'package:yonomi_device_widgets/traits/lock_widget.dart';
import 'package:yonomi_device_widgets/traits/power_widget.dart';
Expand All @@ -14,6 +13,7 @@ import 'package:yonomi_platform_sdk/yonomi-sdk.dart';
import 'package:yonomi_device_widgets/ui/widget_style_constants.dart';

import 'expandable/device_expand_widget.dart';
import 'expandable/lock_expand_widget.dart';
import 'expandable/power_expand_widget.dart';

class DetailScreen extends StatelessWidget {
Expand Down Expand Up @@ -110,21 +110,8 @@ class DetailScreenWidget extends StatelessWidget {
switch (trait.runtimeType) {
case LockTrait:
return Consumer<LockProvider>(builder: (_, lockProvider, child) {
return Row(
children: [
LockIcon(
lockProvider.isLocked,
size: 20.0,
color: WidgetStyleConstants.deviceDetailIconColorActive,
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(lockProvider.getLockTrait().name,
style: TextStyle(
fontSize: 20,
color: WidgetStyleConstants.darkTextColor))),
],
);
return LockExpandWidget(lockProvider,
backgroundColor: backgroundColor);
});
case PowerTrait:
return Consumer<PowerTraitProvider>(builder: (_, powerProvider, child) {
Expand Down
4 changes: 2 additions & 2 deletions lib/traits/expandable/battery_expand_widget.dart
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import 'package:flutter/material.dart';
import 'package:yonomi_device_widgets/assets/traits/battery_level_icon.dart';
import 'package:yonomi_device_widgets/traits/expandable/device_expandable_widget.dart';
import 'package:yonomi_device_widgets/traits/expandable/device_expand_widget.dart';
import 'package:yonomi_device_widgets/ui/widget_style_constants.dart';

class BatteryExpandWidget extends DeviceExpandableWidget {
class BatteryExpandWidget extends DeviceExpandWidget {
BatteryExpandWidget(_batteryLevelTraitProvider,
{Color? backgroundColor, Key? key})
: super(
Expand Down
30 changes: 30 additions & 0 deletions lib/traits/expandable/lock_expand_widget.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import 'package:flutter/cupertino.dart';
import 'package:yonomi_device_widgets/assets/traits/lock_item_icon.dart';
import 'package:yonomi_device_widgets/providers/lock_provider.dart';
import 'package:yonomi_device_widgets/traits/expandable/device_expand_widget.dart';
import 'package:yonomi_device_widgets/ui/widget_style_constants.dart';

class LockExpandWidget extends DeviceExpandWidget {
LockExpandWidget(LockProvider _lockProvider,
{Color? backgroundColor, Key? key})
: super(
leftIcon: LockIcon(_lockProvider.isLocked,
size: 20.0,
color: WidgetStyleConstants.deviceDetailIconColorActive),
rightIcon: CupertinoSwitch(
onChanged: (bool value) {
_lockTap(_lockProvider);
},
value: _lockProvider.isLocked,
),
headerText: Text(_lockProvider.deviceDetail.displayName,
style: TextStyle(
fontSize: 20, color: WidgetStyleConstants.darkTextColor)),
backgroundColor: backgroundColor,
key: key);

static void _lockTap(LockProvider provider) {
bool setLock = !provider.isLocked;
provider.setLockUnlockAction(provider.deviceDetail.id, setLock);
}
}
7 changes: 5 additions & 2 deletions lib/traits/expandable/power_expand_widget.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,11 @@ import 'package:flutter/cupertino.dart';
import 'package:yonomi_device_widgets/assets/traits/power_item_icon.dart';
import 'package:yonomi_device_widgets/traits/expandable/device_expand_widget.dart';
import 'package:yonomi_device_widgets/ui/widget_style_constants.dart';
import 'package:yonomi_device_widgets/providers/power_trait_provider.dart';

class PowerExpandWidget extends DeviceExpandWidget {
PowerExpandWidget(_powerProvider, {Color? backgroundColor, Key? key})
PowerExpandWidget(PowerTraitProvider _powerProvider,
{Color? backgroundColor, Key? key})
: super(
leftIcon: PowerItemIcon(_powerProvider.getOnOffState,
size: 20.0,
Expand All @@ -18,7 +20,8 @@ class PowerExpandWidget extends DeviceExpandWidget {
),
headerText: Text(
_powerProvider.getPowerTrait()?.name ?? 'Power Switch',
style: TextStyle(fontSize: 20)),
style: TextStyle(
fontSize: 20, color: WidgetStyleConstants.darkTextColor)),
backgroundColor: backgroundColor,
key: key);
}

0 comments on commit b0f8176

Please sign in to comment.