Skip to content

Commit 4bb6ecf

Browse files
committed
Workaround to make value visible in Kodi settings sliders
Different Kodi versions use different format strings. For now ignore the format string to make the value visible again. Move core functionality into a helper method.
1 parent 81fc536 commit 4bb6ecf

File tree

1 file changed

+11
-10
lines changed

1 file changed

+11
-10
lines changed

XBMC Remote/SettingsValuesViewController.m

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -232,9 +232,7 @@ - (NSString*)getActionButtonTitle {
232232
subTitle = [NSString stringWithFormat:@": %@", settingOptions[longPressRow.row][@"label"]];
233233
break;
234234
case cSlider:
235-
if (itemControls[@"formatlabel"] != nil) {
236-
stringFormat = [NSString stringWithFormat:@": %@", itemControls[@"formatlabel"]];
237-
}
235+
stringFormat = [self getStringFormatFromItem:itemControls defaultFormat:stringFormat];
238236
subTitle = [NSString stringWithFormat:stringFormat, (int)storeSliderValue];
239237
break;
240238
case cUnsupported:
@@ -344,7 +342,14 @@ - (void)retrieveXBMCData:(NSString*)method parameters:(NSDictionary*)params item
344342
return;
345343
}
346344

347-
#pragma mark -
345+
#pragma mark Helper
346+
347+
- (NSString*)getStringFormatFromItem:(id)item defaultFormat:(NSString*)defaultFormat {
348+
// Workaround!! For now ignore item[@"formatlabel"] as this needs an updated parser to support different
349+
// formats like "%i ms" vs. "{0:d} ms".
350+
return defaultFormat;
351+
}
352+
348353
#pragma mark Table view data source
349354

350355
- (CGFloat)tableView:(UITableView*)tableView heightForRowAtIndexPath:(NSIndexPath*)indexPath {
@@ -526,9 +531,7 @@ - (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSI
526531
slider.minimumValue = [self.detailItem[@"minimum"] intValue];
527532
slider.maximumValue = [self.detailItem[@"maximum"] intValue];
528533
slider.value = [self.detailItem[@"value"] intValue];
529-
if (itemControls[@"formatlabel"] != nil) {
530-
stringFormat = [NSString stringWithFormat:@"%@", itemControls[@"formatlabel"]];
531-
}
534+
stringFormat = [self getStringFormatFromItem:itemControls defaultFormat:stringFormat];
532535
sliderLabel.text = [NSString stringWithFormat:stringFormat, [self.detailItem[@"value"] intValue]];
533536
break;
534537

@@ -789,9 +792,7 @@ - (void)sliderAction:(id)sender {
789792
if ([[[slider superview] viewWithTag:102] isKindOfClass:[UILabel class]]) {
790793
UILabel *sliderLabel = (UILabel*)[[slider superview] viewWithTag:102];
791794
NSString *stringFormat = @"%i";
792-
if (itemControls[@"formatlabel"] != nil) {
793-
stringFormat = [NSString stringWithFormat:@"%@", itemControls[@"formatlabel"]];
794-
}
795+
stringFormat = [self getStringFormatFromItem:itemControls defaultFormat:stringFormat];
795796
sliderLabel.text = [NSString stringWithFormat:stringFormat, (int)storeSliderValue];
796797
}
797798
}

0 commit comments

Comments
 (0)