Skip to content

Commit 7c23c12

Browse files
committed
fix: Prevent empty favorites
1 parent 44c6005 commit 7c23c12

3 files changed

Lines changed: 16 additions & 2 deletions

File tree

src/display/core/ProfileManager.cpp

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,10 @@ bool ProfileManager::saveProfile(Profile &profile) {
155155
return ok;
156156
}
157157

158-
bool ProfileManager::deleteProfile(const String &uuid) { return _fs.remove(profilePath(uuid)); }
158+
bool ProfileManager::deleteProfile(const String &uuid) {
159+
_settings.removeFavoritedProfile(uuid);
160+
return _fs.remove(profilePath(uuid));
161+
}
159162

160163
bool ProfileManager::profileExists(const String &uuid) { return _fs.exists(profilePath(uuid)); }
161164

@@ -170,3 +173,13 @@ void ProfileManager::selectProfile(const String &uuid) {
170173
Profile ProfileManager::getSelectedProfile() const { return selectedProfile; }
171174

172175
void ProfileManager::loadSelectedProfile(Profile &outProfile) { loadProfile(_settings.getSelectedProfile(), outProfile); }
176+
177+
std::vector<String> ProfileManager::getFavoritedProfiles() {
178+
std::vector<String> favoritedProfiles;
179+
for (String profile : _settings.getFavoritedProfiles()) {
180+
if (profileExists(profile)) {
181+
favoritedProfiles.push_back(profile);
182+
}
183+
}
184+
return favoritedProfiles;
185+
}

src/display/core/ProfileManager.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ class ProfileManager {
2020
void selectProfile(const String &uuid);
2121
Profile getSelectedProfile() const;
2222
void loadSelectedProfile(Profile &outProfile);
23+
std::vector<String> getFavoritedProfiles();
2324

2425
private:
2526
Profile selectedProfile{};

src/display/ui/default/DefaultUI.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ void DefaultUI::changeScreen(lv_obj_t **screen, void (*target_init)()) {
157157
}
158158

159159
void DefaultUI::onProfileSwitch() {
160-
favoritedProfiles = controller->getSettings().getFavoritedProfiles();
160+
favoritedProfiles = profileManager->getFavoritedProfiles();
161161
currentProfileIdx = 0;
162162
currentProfileId = favoritedProfiles[currentProfileIdx];
163163
currentProfileChoice = Profile{};

0 commit comments

Comments
 (0)