From 1049a4d8686be71c637b0f012db3bb92d84701a4 Mon Sep 17 00:00:00 2001 From: hunteraraujo Date: Sat, 2 Sep 2023 17:42:14 -0700 Subject: [PATCH] Add ApiSettingsViewModel for managing API base URL Created a new ViewModel called ApiSettingsViewModel that is responsible for getting and setting the API's base URL. Utilized the shared_preferences package for persistent storage of the base URL. --- lib/viewmodels/api_settings_viewmodel.dart | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 lib/viewmodels/api_settings_viewmodel.dart diff --git a/lib/viewmodels/api_settings_viewmodel.dart b/lib/viewmodels/api_settings_viewmodel.dart new file mode 100644 index 00000000..3b55adff --- /dev/null +++ b/lib/viewmodels/api_settings_viewmodel.dart @@ -0,0 +1,26 @@ +import 'package:flutter/material.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +class ApiSettingsViewModel with ChangeNotifier { + String _baseURL = "http://127.0.0.1:8000"; + SharedPreferences? _prefs; + + ApiSettingsViewModel() { + _loadBaseURL(); + } + + String get baseURL => _baseURL; + + void _loadBaseURL() async { + _prefs = await SharedPreferences.getInstance(); + _baseURL = _prefs?.getString('baseURL') ?? _baseURL; + notifyListeners(); + } + + void updateBaseURL(String newURL) async { + _baseURL = newURL; + _prefs ??= await SharedPreferences.getInstance(); + _prefs?.setString('baseURL', newURL); + notifyListeners(); + } +}