MCPcopy Create free account
hub / github.com/crosspoint-reader/crosspoint-reader / loop

Method loop

src/activities/settings/SettingsActivity.cpp:115–183  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

113}
114
115void SettingsActivity::loop() {
116 bool hasChangedCategory = false;
117
118 // Handle actions with early return
119 if (mappedInput.wasPressed(MappedInputManager::Button::Confirm)) {
120 if (selectedSettingIndex == 0) {
121 selectedCategoryIndex = (selectedCategoryIndex < categoryCount - 1) ? (selectedCategoryIndex + 1) : 0;
122 hasChangedCategory = true;
123 requestUpdate();
124 } else {
125 toggleCurrentSetting();
126 requestUpdate();
127 return;
128 }
129 }
130
131 if (mappedInput.wasPressed(MappedInputManager::Button::Back)) {
132 if (selectedSettingIndex > 0) {
133 selectedSettingIndex = 0;
134 requestUpdate();
135 } else {
136 SETTINGS.saveToFile();
137 onGoHome();
138 }
139 return;
140 }
141
142 // Handle navigation
143 buttonNavigator.onNextRelease([this] {
144 selectedSettingIndex = ButtonNavigator::nextIndex(selectedSettingIndex, settingsCount + 1);
145 requestUpdate();
146 });
147
148 buttonNavigator.onPreviousRelease([this] {
149 selectedSettingIndex = ButtonNavigator::previousIndex(selectedSettingIndex, settingsCount + 1);
150 requestUpdate();
151 });
152
153 buttonNavigator.onNextContinuous([this, &hasChangedCategory] {
154 hasChangedCategory = true;
155 selectedCategoryIndex = ButtonNavigator::nextIndex(selectedCategoryIndex, categoryCount);
156 requestUpdate();
157 });
158
159 buttonNavigator.onPreviousContinuous([this, &hasChangedCategory] {
160 hasChangedCategory = true;
161 selectedCategoryIndex = ButtonNavigator::previousIndex(selectedCategoryIndex, categoryCount);
162 requestUpdate();
163 });
164
165 if (hasChangedCategory) {
166 selectedSettingIndex = (selectedSettingIndex == 0) ? 0 : 1;
167 switch (selectedCategoryIndex) {
168 case 0:
169 currentSettings = &displaySettings;
170 break;
171 case 1:
172 currentSettings = &readerSettings;

Callers

nothing calls this directly

Calls 7

onNextReleaseMethod · 0.80
onPreviousReleaseMethod · 0.80
onNextContinuousMethod · 0.80
onPreviousContinuousMethod · 0.80
wasPressedMethod · 0.45
saveToFileMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected