Skip to content

Commit

Permalink
Remove beta settings (#361)
Browse files Browse the repository at this point in the history
  • Loading branch information
PaulPickhardt authored Dec 1, 2023
1 parent 8f57fda commit dd106b4
Show file tree
Hide file tree
Showing 5 changed files with 118 additions and 181 deletions.
9 changes: 7 additions & 2 deletions lib/home/views/nav.dart
Original file line number Diff line number Diff line change
Expand Up @@ -51,10 +51,15 @@ class NavBarView extends StatelessWidget {
color: Colors.white,
context: context,
),
Content(
text: settings.backend == Backend.staging ? " DD" : " HH",
color: Colors.white,
context: context,
),
Flexible(
fit: FlexFit.tight,
child: Content(
text: settings.backend == Backend.staging ? " DD" : " HH",
child: Small(
text: settings.backend == Backend.production ? " beta" : "",
color: Colors.white,
context: context,
),
Expand Down
17 changes: 5 additions & 12 deletions lib/settings/services/settings.dart
Original file line number Diff line number Diff line change
Expand Up @@ -426,15 +426,6 @@ class Settings with ChangeNotifier {
this.didViewUserTransfer = defaultDidViewUserTransfer,
});

/// Load the beta settings from the shared preferences.
Future<void> loadBetaSettings(SharedPreferences storage) async {
try {
routingEndpoint = RoutingEndpoint.values.byName(storage.getString(routingEndpointKey)!);
} catch (e) {
/* Do nothing and use the default value given by the constructor. */
}
}

/// Load the internal settings from the shared preferences.
Future<void> loadInternalSettings(SharedPreferences storage) async {
enablePerformanceOverlay = storage.getBool(enablePerformanceOverlayKey) ?? defaultEnablePerformanceOverlay;
Expand Down Expand Up @@ -470,6 +461,11 @@ class Settings with ChangeNotifier {
} catch (e) {
/* Do nothing and use the default value given by the constructor. */
}
try {
routingEndpoint = RoutingEndpoint.values.byName(storage.getString(routingEndpointKey)!);
} catch (e) {
/* Do nothing and use the default value given by the constructor. */
}

enableGamification = storage.getBool(enableGamificationKey) ?? defaultEnableGamification;
}
Expand All @@ -483,9 +479,6 @@ class Settings with ChangeNotifier {
// All internal settings - use the default values if internal features are disabled.
if (canEnableInternalFeatures) await loadInternalSettings(storage);

// All beta settings - use the default values if beta features are disabled.
if (canEnableBetaFeatures) await loadBetaSettings(storage);

// All remaining settings.
connectionErrorCounter = storage.getInt(connectionErrorCounterKey) ?? defaultConnectionErrorCounter;
useCounter = storage.getInt(useCounterKey) ?? defaultUseCounter;
Expand Down
156 changes: 0 additions & 156 deletions lib/settings/views/beta.dart

This file was deleted.

91 changes: 91 additions & 0 deletions lib/settings/views/internal.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import 'package:priobike/common/layout/spacing.dart';
import 'package:priobike/common/layout/text.dart';
import 'package:priobike/common/map/image_cache.dart';
import 'package:priobike/home/services/shortcuts.dart';
import 'package:priobike/logging/logger.dart';
import 'package:priobike/main.dart';
import 'package:priobike/migration/services.dart';
import 'package:priobike/news/services/news.dart';
Expand All @@ -18,13 +19,16 @@ import 'package:priobike/settings/models/backend.dart';
import 'package:priobike/settings/models/datastream.dart';
import 'package:priobike/settings/models/positioning.dart';
import 'package:priobike/settings/models/prediction.dart';
import 'package:priobike/settings/models/routing.dart';
import 'package:priobike/settings/models/sg_labels.dart';
import 'package:priobike/settings/models/sg_selector.dart';
import 'package:priobike/settings/services/settings.dart';
import 'package:priobike/settings/views/main.dart';
import 'package:priobike/status/services/status_history.dart';
import 'package:priobike/status/services/summary.dart';
import 'package:priobike/tutorial/service.dart';
import 'package:priobike/weather/service.dart';
import 'package:share_plus/share_plus.dart';

class InternalSettingsView extends StatefulWidget {
const InternalSettingsView({super.key});
Expand Down Expand Up @@ -165,6 +169,22 @@ class InternalSettingsViewState extends State<InternalSettingsView> {
Migration.addTestMigrationData();
}

/// A callback that is executed when a routing endpoint is selected.
Future<void> onSelectRoutingMode(RoutingEndpoint routingEndpoint) async {
// Tell the settings service that we selected the new backend.
await settings.setRoutingEndpoint(routingEndpoint);

if (mounted) Navigator.pop(context);
}

/// A callback that is executed when a sg-selector is selected.
Future<void> onSelectSGSelector(SGSelector sgSelector) async {
// Tell the settings service that we selected the new sg-selector.
await settings.setSGSelector(sgSelector);

if (mounted) Navigator.pop(context);
}

@override
Widget build(BuildContext context) {
return AnnotatedRegionWrapper(
Expand Down Expand Up @@ -285,6 +305,77 @@ class InternalSettingsViewState extends State<InternalSettingsView> {
),
),
),
Padding(
padding: const EdgeInsets.only(top: 8),
child: SettingsElement(
title: "Routing",
subtitle: settings.routingEndpoint.description,
icon: Icons.expand_more,
callback: () => showAppSheet(
context: context,
builder: (BuildContext context) {
return SettingsSelection(
elements: RoutingEndpoint.values,
selected: settings.routingEndpoint,
title: (RoutingEndpoint e) => e.description,
callback: onSelectRoutingMode,
);
},
),
),
),
Padding(
padding: const EdgeInsets.only(left: 34, top: 8, bottom: 8, right: 24),
child: Small(
text:
"Innerhalb von Hamburg kannst Du das DRN-Routing auswählen. Im Digitalen Radverkehrsnetz (DRN) sind alle Radwege oder durch das Rad befahrbare Straßen in Hamburg enthalten. Die Routenberechnung ist aber noch in Entwicklung und kann derzeit auch zu falschen Routen führen.",
context: context,
),
),
Padding(
padding: const EdgeInsets.only(top: 8),
child: SettingsElement(
title: "Logs senden",
icon: Icons.ios_share_rounded,
callback: () => Share.share(Logger.db.join("\n"), subject: 'Logs für PrioBike'),
),
),
Padding(
padding: const EdgeInsets.only(left: 34, top: 8, bottom: 8, right: 24),
child: Small(
text:
"Wenn Du Probleme mit der App hast, kannst Du uns gerne die Logs schicken. Dann können wir genau sehen, was bei Dir kaputt ist.",
context: context,
),
),
Padding(
padding: const EdgeInsets.only(top: 8),
child: SettingsElement(
title: "Auswahl der Ampeln",
subtitle: settings.sgSelector.description,
icon: Icons.expand_more,
callback: () => showAppSheet(
context: context,
builder: (BuildContext context) {
return SettingsSelection(
elements: SGSelector.values,
selected: settings.sgSelector,
title: (SGSelector e) => e.description,
callback: onSelectSGSelector,
);
},
),
),
),
Padding(
padding: const EdgeInsets.only(left: 34, top: 8, bottom: 8, right: 24),
child: Small(
text:
"Wenn Du Probleme mit der Auswahl der Ampeln entlang der Route hast, kannst Du diese Einstellung wechseln.",
context: context,
),
),
const SmallVSpace(),
Padding(
padding: const EdgeInsets.only(top: 8),
child: SettingsElement(
Expand Down
26 changes: 15 additions & 11 deletions lib/settings/views/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import 'package:priobike/common/layout/text.dart';
import 'package:priobike/common/layout/tiles.dart';
import 'package:priobike/home/views/survey.dart';
import 'package:priobike/licenses/views.dart';
import 'package:priobike/logging/logger.dart';
import 'package:priobike/main.dart';
import 'package:priobike/privacy/views.dart';
import 'package:priobike/settings/models/backend.dart';
Expand All @@ -18,11 +19,11 @@ import 'package:priobike/settings/models/speed.dart';
import 'package:priobike/settings/models/tracking.dart';
import 'package:priobike/settings/services/features.dart';
import 'package:priobike/settings/services/settings.dart';
import 'package:priobike/settings/views/beta.dart';
import 'package:priobike/settings/views/internal.dart';
import 'package:priobike/settings/views/text.dart';
import 'package:priobike/tracking/services/tracking.dart';
import 'package:priobike/user.dart';
import 'package:share_plus/share_plus.dart';
import 'package:url_launcher/url_launcher.dart';

class SettingsElement extends StatelessWidget {
Expand Down Expand Up @@ -301,16 +302,19 @@ class SettingsViewState extends State<SettingsView> {
},
),
],
if (feature.canEnableBetaFeatures) ...[
const SmallVSpace(),
SettingsElement(
title: "Beta Features",
icon: Icons.quiz,
callback: () {
Navigator.of(context).push(
MaterialPageRoute(builder: (_) => const BetaSettingsView()),
);
},
if (settings.backend == Backend.production) ...[
const VSpace(),
Padding(
padding: const EdgeInsets.only(left: 32),
child: Content(text: "Beta", context: context),
),
Padding(
padding: const EdgeInsets.only(top: 8),
child: SettingsElement(
title: "Logs senden",
icon: Icons.ios_share_rounded,
callback: () => Share.share(Logger.db.join("\n"), subject: 'Logs für PrioBike'),
),
),
],
const VSpace(),
Expand Down

0 comments on commit dd106b4

Please sign in to comment.