Skip to content

Commit

Permalink
fix: lock widget display
Browse files Browse the repository at this point in the history
  • Loading branch information
Suraj Adhikari committed Dec 6, 2021
1 parent 522bdef commit 0633664
Show file tree
Hide file tree
Showing 2 changed files with 77 additions and 46 deletions.
41 changes: 37 additions & 4 deletions lib/traits/detail_screen.dart
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.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';
import 'package:yonomi_platform_sdk/yonomi-sdk.dart';
import 'package:yonomi_platform_sdk/yonomi-sdk.dart' as yoSdk;

class DetailScreen extends StatelessWidget {
final Request request;
Expand All @@ -11,10 +12,42 @@ class DetailScreen extends StatelessWidget {
const DetailScreen({Key? key, required this.request, required this.deviceId})
: super(key: key);

Widget createWidget(String name) {
switch (name) {
case 'lock':
return Consumer<LockProvider>(builder: (_, lockProvider, child) {
return LockWidget();
});
default:
return Text(name);
}
}

/*
return MultiProvider(
providers: [
Provider<LoginProvider>.value(value: loginProvider),
ChangeNotifierProvider<DevicesProvider>(
create: (context) => DevicesProvider(loginProvider.request),
),
ChangeNotifierProvider(
create: (context) => UserInfoProvider(loginProvider.request)),
],
child: YonomiHomePage(
title: StringConstants.app_title,
),
);
*/
@override
Widget build(BuildContext context) {
return ChangeNotifierProvider(
create: (_) => TraitBasedDeviceNotifier(request, deviceId),
return MultiProvider(
providers: [
ChangeNotifierProvider<TraitBasedDeviceNotifier>(
create: (context) => TraitBasedDeviceNotifier(request, deviceId),
),
ChangeNotifierProvider(
create: (context) => LockProvider(request, deviceId)),
],
child: Consumer<TraitBasedDeviceNotifier>(
builder: (_, traitBasedDeviceNotifier, child) {
if (traitBasedDeviceNotifier.deviceDetail == null) {
Expand All @@ -24,7 +57,7 @@ class DetailScreen extends StatelessWidget {
children:
traitBasedDeviceNotifier.deviceDetail!.traits.map((element) {
return Row(
children: [Text(element.name)],
children: [createWidget(element.name)],
);
}).toList());
}
Expand Down
82 changes: 40 additions & 42 deletions lib/traits/lock.dart
Original file line number Diff line number Diff line change
Expand Up @@ -13,50 +13,48 @@ class LockWidget extends StatelessWidget {

return lockProvider.loadingDetail
? Center(child: CircularProgressIndicator())
: Scaffold(
body: Column(
mainAxisAlignment: MainAxisAlignment.start,
children: [
Row(
children: <Widget>[
Text(
lockProvider.deviceDetail.displayName,
style: Theme.of(context).textTheme.headline6,
),
],
),
SizedBox(
height: 80,
),
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) {},
: Column(
mainAxisAlignment: MainAxisAlignment.start,
children: [
Row(
children: <Widget>[
Text(
lockProvider.deviceDetail.displayName,
style: Theme.of(context).textTheme.headline6,
),
],
),
SizedBox(
height: 80,
),
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) {},
),
SizedBox(
height: 80,
),
CupertinoSwitch(
onChanged: (bool value) {
_lockTap(lockProvider);
},
value: lockProvider.isLocked,
),
],
),
),
SizedBox(
height: 80,
),
CupertinoSwitch(
onChanged: (bool value) {
_lockTap(lockProvider);
},
value: lockProvider.isLocked,
),
],
);
}

Expand Down

0 comments on commit 0633664

Please sign in to comment.