diff --git a/control b/control index 146d1a1..b3354d2 100644 --- a/control +++ b/control @@ -1,7 +1,7 @@ Package: ws.hbang.common Name: Cephei Depends: mobilesubstrate, preferenceloader -Version: 1.2.1 +Version: 1.2.2 Architecture: iphoneos-arm Description: Useful functions for tweak developers Maintainer: HASHBANG Productions diff --git a/prefs/HBDiscreteSliderTableCell.h b/prefs/HBDiscreteSliderTableCell.h index 08f029a..1c3a3b2 100644 --- a/prefs/HBDiscreteSliderTableCell.h +++ b/prefs/HBDiscreteSliderTableCell.h @@ -7,7 +7,8 @@ * number. Additionally, when dragging the slider, it jumps to these lines * so the user's preference will always be a whole number. * - * Requires iOS 7.0 or later. + * Requires iOS 7.0 or later. Superclass is dynamically changed at runtime to + * not break iOS 5 and 6, which do not have the PSSliderTableCell class. * * ### Specifier Parameters * All parameters specific to @@ -33,7 +34,7 @@ * */ -@interface HBDiscreteSliderTableCell : PSSliderTableCell +@interface HBDiscreteSliderTableCell : PSControlTableCell @property (nonatomic, retain) PSDiscreteSlider *control; diff --git a/prefs/HBDiscreteSliderTableCell.m b/prefs/HBDiscreteSliderTableCell.x similarity index 54% rename from prefs/HBDiscreteSliderTableCell.m rename to prefs/HBDiscreteSliderTableCell.x index 9ca1d47..b03d6c9 100644 --- a/prefs/HBDiscreteSliderTableCell.m +++ b/prefs/HBDiscreteSliderTableCell.x @@ -9,8 +9,12 @@ @implementation HBDiscreteSliderTableCell #pragma mark - PSControlTableCell - (PSDiscreteSlider *)newControl { - PSDiscreteSlider *slider = [[PSDiscreteSlider alloc] initWithFrame:CGRectZero]; - slider.trackMarkersColor = [UIColor colorWithWhite:0.596078f alpha:1]; + PSDiscreteSlider *slider = [[%c(PSDiscreteSlider) ?: UISlider.class alloc] initWithFrame:CGRectZero]; + + if ([slider respondsToSelector:@selector(setTrackMarkersColor:)]) { + slider.trackMarkersColor = [UIColor colorWithWhite:0.596078f alpha:1]; + } + return slider; } diff --git a/prefs/Tweak.x b/prefs/Tweak.x index fa31606..746f26b 100644 --- a/prefs/Tweak.x +++ b/prefs/Tweak.x @@ -1,4 +1,7 @@ -#import +#import "HBDiscreteSliderTableCell.h" +#import + +#pragma mark - iOS < 7 UISlider label fix static NSInteger const kUISliderLabelTag = 1986096245; @@ -12,3 +15,14 @@ static NSInteger const kUISliderLabelTag = 1986096245; } %end + +#pragma mark - Version-specific runtime changes + +%ctor { + if (IS_IOS_OR_NEWER(iOS_7_0)) { +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated" + class_setSuperclass(HBDiscreteSliderTableCell.class, %c(PSSliderTableCell)); +#pragma clang diagnostic pop + } +}