Skip to content

Commit

Permalink
fix: simplified the logic to use bootstrap directly
Browse files Browse the repository at this point in the history
  • Loading branch information
Suraj Adhikari committed Dec 6, 2021
1 parent 71a0149 commit 9ad42a4
Show file tree
Hide file tree
Showing 4 changed files with 61 additions and 37 deletions.
3 changes: 3 additions & 0 deletions lib/assets/traits/device_item_icon.dart
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ class DeviceItemIcon {
static Widget buildLockIcon(
[double size = WidgetStyleConstants.defaultDeviceIconSize,
Color color = WidgetStyleConstants.deviceIconColor]) {
print('REACHED BUILD LOCK ICON');
return LockIcon(
true,
size: size,
Expand All @@ -30,6 +31,8 @@ class DeviceItemIcon {
static Widget buildUnlockIcon(
[double size = WidgetStyleConstants.defaultDeviceIconSize,
Color color = WidgetStyleConstants.deviceIconColor]) {
print('REACHED BUILD UNLOCK ICON');

return LockIcon(
false,
size: size,
Expand Down
4 changes: 2 additions & 2 deletions lib/assets/traits/lock_item_icon.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import 'package:flutter/cupertino.dart';
import 'package:bootstrap_icons/bootstrap_icons.dart';
import 'package:flutter/material.dart';
import 'package:yonomi_device_widgets/ui/widget_style_constants.dart';

Expand All @@ -19,7 +19,7 @@ class LockIcon extends StatelessWidget {

@override
Widget build(BuildContext context) {
return Icon(_locked ? Icons.lock : Icons.lock_open,
return Icon(_locked ? BootstrapIcons.lock : BootstrapIcons.unlock,
size: _size, color: _color);
}
}
55 changes: 39 additions & 16 deletions lib/traits/detail_screen.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import 'package:bootstrap_icons/bootstrap_icons.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:yonomi_device_widgets/assets/traits/unknown_item_icon.dart';
import 'package:yonomi_device_widgets/providers/lock_provider.dart';
import 'package:yonomi_device_widgets/providers/trait_based_device_notifier.dart';
import 'package:yonomi_device_widgets/traits/lock.dart';
Expand All @@ -16,10 +18,27 @@ class DetailScreen extends StatelessWidget {
switch (name) {
case 'lock':
return Consumer<LockProvider>(builder: (_, lockProvider, child) {
return LockWidget();
return Padding(
padding: const EdgeInsets.all(8.0),
child: LockWidget(),
);
});
default:
return Text(name);
return Padding(
padding: const EdgeInsets.all(8.0),
child: Row(
children: [
Icon(
BootstrapIcons.box,
size: 20,
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text('Unknown trait', style: TextStyle(fontSize: 20)),
),
],
),
);
}
}

Expand All @@ -33,20 +52,24 @@ class DetailScreen extends StatelessWidget {
ChangeNotifierProvider(
create: (context) => LockProvider(request, deviceId)),
],
child: Consumer<TraitBasedDeviceNotifier>(
builder: (_, traitBasedDeviceNotifier, child) {
if (traitBasedDeviceNotifier.deviceDetail == null) {
return CircularProgressIndicator();
} else {
return Column(
children:
traitBasedDeviceNotifier.deviceDetail!.traits.map((element) {
return Row(
children: [createWidget(element.name)],
);
}).toList());
}
}),
child: Center(
child: Consumer<TraitBasedDeviceNotifier>(
builder: (_, traitBasedDeviceNotifier, child) {
if (traitBasedDeviceNotifier.deviceDetail == null) {
return CircularProgressIndicator();
} else {
return Column(
children: traitBasedDeviceNotifier.deviceDetail!.traits
.map((element) {
return Row(
children: [
createWidget(element.name),
],
);
}).toList());
}
}),
),
);
}
}
36 changes: 17 additions & 19 deletions lib/traits/lock.dart
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import 'package:bootstrap_icons/bootstrap_icons.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:yonomi_device_widgets/assets/traits/device_item_icon.dart';
import 'package:yonomi_device_widgets/components/arc.dart';
import 'package:yonomi_device_widgets/providers/lock_provider.dart';
import 'package:yonomi_device_widgets/ui/widget_style_constants.dart';

Expand All @@ -25,28 +25,26 @@ class LockWidget extends StatelessWidget {
],
),
SizedBox(
height: 80,
height: 10,
),
Center(
child: Arc(
showThumb: false,
centerWidget: SizedBox(
width: 175,
height: 175,
child: GestureDetector(
child: getLockStateIcon(lockProvider),
onTap: () => _lockTap(lockProvider),
)),
color: lockProvider.isLocked
? WidgetStyleConstants.deviceDetailIconColorActive
: WidgetStyleConstants.deviceDetailIconColorInactive,
initialValue: 0.0,
maxValue: 1.0,
onFinalSetPoint: (double value) {},
),
child: SizedBox(
width: 100,
height: 100,
child: lockProvider.loadingDetail
? CircularProgressIndicator()
: lockProvider.isLocked
? Icon(
BootstrapIcons.lock,
size: 100,
)
: Icon(
BootstrapIcons.unlock,
size: 100,
)),
),
SizedBox(
height: 80,
height: 10,
),
CupertinoSwitch(
onChanged: (bool value) {
Expand Down

0 comments on commit 9ad42a4

Please sign in to comment.