Alderis with Preference Bundles

Alderis acts as a drop-in replacement for libcolorpicker, an abandoned but still very popular color picker library on jailbroken iOS. Packages can simply change their dependencies list to replace org.thebigboss.libcolorpicker with ws.hbang.alderis (>= 1.1) to switch the color picker to Alderis. No other changes required!

Alderis also provides a replacement, cleaner interface for preference bundles. Example usage:

<dict>
    <key>cell</key>
    <string>PSLinkCell</string>
    <key>cellClass</key>
    <string>HBColorPickerTableCell</string>
    <key>defaults</key>
    <string>com.example.myawesomething</string>
    <key>default</key>
    <string>#33b5e5</string>
    <key>label</key>
    <string>Tint Color</string>
    <key>showAlphaSlider</key>
    <true/>
    <key>PostNotification</key>
    <string>com.example.myawesomething/ReloadPrefs</string>
</dict>

Compared to libcolorpicker’s API design, this leans on the fundamentals of Preferences.framework, including using the framework’s built-in preference value getters/setters system. In fact, the only two distinct parts are the cellClass and the showAlphaSlider key. The rest should seem natural to typical Preference specifier plist usage.

Remember to link against the libcolorpicker library from the preference bundle. With Theos, this might look like:

MyAwesomeThing_LIBRARIES = colorpicker

The functionality described in this section is only available in the jailbreak package for Alderis, specifically in the libcolorpicker.dylib binary (lcpshim), and is not included in the App Store (CocoaPods/Carthage) version.