Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/dev'
Browse files Browse the repository at this point in the history
  • Loading branch information
Clon1998 committed Mar 31, 2022
2 parents f16065e + 3bfecaf commit 4a810b6
Show file tree
Hide file tree
Showing 8 changed files with 65 additions and 47 deletions.
9 changes: 5 additions & 4 deletions lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,15 @@ import 'package:mobileraker/ui/components/bottomsheet/setup_bottom_sheet_ui.dart
import 'package:mobileraker/ui/components/dialog/setup_dialog_ui.dart';
import 'package:mobileraker/ui/components/snackbar/setup_snackbar.dart';
import 'package:mobileraker/ui/theme_setup.dart';
import 'package:mobileraker/util/misc.dart';
import 'package:stacked_services/stacked_services.dart';

import 'app/app_setup.router.dart';
import 'service/setting_service.dart';
import 'ui/views/setting/setting_viewmodel.dart';

String? initialRoute;

Future<void> main() async {
Logger.level = Level.info;
// EasyLocalization.logger.enableLevels = [LevelMessages.info];
Expand All @@ -33,6 +36,7 @@ Future<void> main() async {
setupBottomSheetUi();
await FirebaseAnalytics.instance.logAppOpen();
await setupCat();
initialRoute = await selectInitialRoute();
runApp(EasyLocalization(
child: MyApp(),
supportedLocales: [Locale('en'), Locale('de')],
Expand All @@ -43,7 +47,6 @@ Future<void> main() async {
}

class MyApp extends StatelessWidget {
final _settingService = locator<SettingService>();

// This widget is the root of your application.
@override
Expand All @@ -54,9 +57,7 @@ class MyApp extends StatelessWidget {
darkTheme: getDarkTheme(context),
navigatorKey: StackedService.navigatorKey,
onGenerateRoute: StackedRouter().onGenerateRoute,
initialRoute: _settingService.readBool(startWithOverviewKey)
? Routes.overViewView
: null,
initialRoute: initialRoute,
localizationsDelegates: [
FormBuilderLocalizations.delegate,
...context.localizationDelegates
Expand Down
4 changes: 4 additions & 0 deletions lib/repository/printer_setting_hive_repository.dart
Original file line number Diff line number Diff line change
Expand Up @@ -36,4 +36,8 @@ class PrinterSettingHiveRepository implements PrinterSettingRepository {
Future<List<PrinterSetting>> fetchAll() {
return Future.value(_boxPrinterSettings.values.toList(growable: false));
}

Future<int> count() {
return Future.value(_boxPrinterSettings.length);
}
}
1 change: 1 addition & 0 deletions lib/repository/printer_setting_repository.dart
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ abstract class PrinterSettingRepository {
Future<PrinterSetting> remove(String uuid);

Future<List<PrinterSetting>> fetchAll();
Future<int> count();


}
4 changes: 4 additions & 0 deletions lib/service/machine_service.dart
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,10 @@ class MachineService {
return _printerSettingRepo.fetchAll();
}

Future<int> count() {
return _printerSettingRepo.count();
}

setMachineActive(PrinterSetting? printerSetting) async {
if (printerSetting == null) {
// This case sets no printer as active!
Expand Down
59 changes: 32 additions & 27 deletions lib/ui/components/drawer/nav_drawer_view.dart
Original file line number Diff line number Diff line change
Expand Up @@ -49,13 +49,15 @@ class NavigationDrawerWidget
..._buildPrinterSelection(context, model),
],
),
buildMenuItem(
model,
text: 'pages.overview.title'.tr(),
icon: FlutterIcons.view_dashboard_mco,
path: Routes.overViewView,
),
Divider(),
if ((model.data?.length ?? 0) > 1) ...[
buildMenuItem(
model,
text: 'pages.overview.title'.tr(),
icon: FlutterIcons.view_dashboard_mco,
path: Routes.overViewView,
),
Divider(),
],
buildMenuItem(
model,
text: 'pages.dashboard.title'.tr(),
Expand Down Expand Up @@ -103,28 +105,31 @@ class NavigationDrawerWidget
alignment: Alignment.center,
padding: EdgeInsets.only(bottom: 20, top: 10),
child: RichText(
text: TextSpan(text: 'components.nav_drawer.footer'.tr(), children: [
new TextSpan(
text: ' GitHub ',
style: new TextStyle(color: Colors.blue),
text: TextSpan(
text: 'components.nav_drawer.footer'.tr(),
children: [
WidgetSpan(
child: Icon(FlutterIcons.github_alt_faw, size: 18),
new TextSpan(
text: ' GitHub ',
style: new TextStyle(color: Colors.blue),
children: [
WidgetSpan(
child:
Icon(FlutterIcons.github_alt_faw, size: 18),
),
],
recognizer: TapGestureRecognizer()
..onTap = () async {
const String url =
'https://github.com/Clon1998/mobileraker';
if (await canLaunch(url)) {
//TODO Fix this... neds Android Package Visibility
await launch(url);
} else {
throw 'Could not launch $url';
}
},
),
],
recognizer: TapGestureRecognizer()
..onTap = () async {
const String url =
'https://github.com/Clon1998/mobileraker';
if (await canLaunch(url)) {
//TODO Fix this... neds Android Package Visibility
await launch(url);
} else {
throw 'Could not launch $url';
}
},
),
]),
]),
textAlign: TextAlign.center,
)),
],
Expand Down
4 changes: 2 additions & 2 deletions lib/ui/views/overview/overview_view.dart
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ class OverViewView extends ViewModelBuilderWidget<OverViewViewModel> {
);

Widget _buildBody(BuildContext context, OverViewViewModel model) {
if (!model.areMachinesAvailable) {
if (!model.dataReady) {
return Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
Expand All @@ -56,7 +56,7 @@ class OverViewView extends ViewModelBuilderWidget<OverViewViewModel> {
));
}

List<PrinterSetting> machines = model.machines;
List<PrinterSetting> machines = model.data!;

return SingleChildScrollView(
child: Column(
Expand Down
17 changes: 3 additions & 14 deletions lib/ui/views/overview/overview_viewmodel.dart
Original file line number Diff line number Diff line change
@@ -1,29 +1,18 @@
import 'package:mobileraker/app/app_setup.locator.dart';
import 'package:mobileraker/app/app_setup.logger.dart';
import 'package:mobileraker/app/app_setup.router.dart';
import 'package:mobileraker/domain/printer_setting.dart';
import 'package:mobileraker/service/machine_service.dart';
import 'package:stacked/stacked.dart';
import 'package:stacked_services/stacked_services.dart';

const String _MachineList = 'machineList';

class OverViewViewModel extends MultipleStreamViewModel {
final _logger = getLogger('MasterViewModel');
class OverViewViewModel extends FutureViewModel<List<PrinterSetting>> {
final _machineService = locator<MachineService>();
final _navigationService = locator<NavigationService>();

List<PrinterSetting> get machines => dataMap![_MachineList];

bool get areMachinesAvailable => dataReady(_MachineList);
@override
Future<List<PrinterSetting>> futureToRun() => _machineService.fetchAll();

void onAddPressed() {
_navigationService.navigateTo(Routes.printersAdd);
}

@override
Map<String, StreamData> get streamsMap => {
_MachineList: StreamData<List<PrinterSetting>>(
_machineService.fetchAll().asStream())
};
}
14 changes: 14 additions & 0 deletions lib/util/misc.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import 'package:mobileraker/app/app_setup.locator.dart';
import 'package:mobileraker/app/app_setup.router.dart';
import 'package:mobileraker/enums/dialog_type.dart';
import 'package:mobileraker/service/machine_service.dart';
import 'package:mobileraker/service/setting_service.dart';
import 'package:mobileraker/ui/components/dialog/editForm/range_edit_form_view.dart';
import 'package:mobileraker/ui/views/setting/setting_viewmodel.dart';
Expand Down Expand Up @@ -66,3 +68,15 @@ Future<DialogResponse<dynamic>?> numberOrRangeDialog(
secondaryButtonTitle: secondaryButtonTitle,
data: data);
}

Future<String?> selectInitialRoute() async {
final _settingService = locator<SettingService>();
final _machineService = locator<MachineService>();

if (!_settingService.readBool(startWithOverviewKey)) return null;

var c = await _machineService.count();
if (c == 1) return null;

return Routes.overViewView;
}

0 comments on commit 4a810b6

Please sign in to comment.