// Path: library/src/main/java/com/philliphsu/numberpadtimepicker/BottomSheetNumberPadTimePickerThemer.java
// public interface BottomSheetNumberPadTimePickerThemer extends NumberPadTimePickerThemer {
//     BottomSheetNumberPadTimePickerThemer setFabBackgroundColor(ColorStateList colors);
// 
//     BottomSheetNumberPadTimePickerThemer setFabRippleColor(@ColorInt int color);
// 
//     BottomSheetNumberPadTimePickerThemer setFabIconTint(ColorStateList tint);
// 
//     BottomSheetNumberPadTimePickerThemer setAnimateFabBackgroundColor(boolean animate);
// 
//     BottomSheetNumberPadTimePickerThemer setShowFabPolicy(@ShowFabPolicy int policy);
// 
//     BottomSheetNumberPadTimePickerThemer setAnimateFabIn(boolean animateIn);
// 
//     BottomSheetNumberPadTimePickerThemer setBackspaceLocation(@BackspaceLocation int location);
// 
//     @Override
//     BottomSheetNumberPadTimePickerThemer setInputTimeTextColor(@ColorInt int color);
// 
//     @Override
//     BottomSheetNumberPadTimePickerThemer setInputAmPmTextColor(@ColorInt int color);
// 
//     @Override
//     BottomSheetNumberPadTimePickerThemer setBackspaceTint(ColorStateList colors);
// 
//     @Override
//     BottomSheetNumberPadTimePickerThemer setNumberKeysTextColor(ColorStateList colors);
// 
//     @Override
//     BottomSheetNumberPadTimePickerThemer setAltKeysTextColor(ColorStateList colors);
// 
//     @Override
//     BottomSheetNumberPadTimePickerThemer setHeaderBackground(Drawable background);
// 
//     @Override
//     BottomSheetNumberPadTimePickerThemer setNumberPadBackground(Drawable background);
// 
//     @Override
//     BottomSheetNumberPadTimePickerThemer setDivider(Drawable divider);
// }
// 
// Path: library/src/main/java/com/philliphsu/numberpadtimepicker/NumberPadTimePickerThemer.java
// public interface NumberPadTimePickerThemer {
//     NumberPadTimePickerThemer setInputTimeTextColor(@ColorInt int color);
// 
//     NumberPadTimePickerThemer setInputAmPmTextColor(@ColorInt int color);
// 
//     NumberPadTimePickerThemer setBackspaceTint(ColorStateList colors);
// 
//     NumberPadTimePickerThemer setNumberKeysTextColor(ColorStateList colors);
// 
//     NumberPadTimePickerThemer setAltKeysTextColor(ColorStateList colors);
// 
//     NumberPadTimePickerThemer setHeaderBackground(Drawable background);
// 
//     NumberPadTimePickerThemer setNumberPadBackground(Drawable background);
// 
//     NumberPadTimePickerThemer setDivider(Drawable divider);
// }


import android.content.Context;
import com.philliphsu.numberpadtimepicker.BottomSheetNumberPadTimePickerThemer;
import com.philliphsu.numberpadtimepicker.NumberPadTimePickerThemer;
package com.philliphsu.numberpadtimepickersample;



public class CustomThemeController {
    private static CustomThemeController instance;

    private final CustomThemeModel model;

    private CustomThemeController(Context context) {
        model = CustomThemeModel.get(context);
    }

    public static CustomThemeController get(Context context) {
        if (instance == null) {
            instance = new CustomThemeController(context);
        }
        return instance;
    }

    public void applyCustomTheme(NumberPadTimePickerThemer themer) {
        themer.setHeaderBackground(model.getHeaderBackground())
                .setInputTimeTextColor(model.getInputTimeTextColor())
                .setInputAmPmTextColor(model.getInputAmPmTextColor())
                .setNumberPadBackground(model.getNumberPadBackground())
                .setNumberKeysTextColor(model.getNumberKeysTextColor())
                .setAltKeysTextColor(model.getAltKeysTextColor())
                .setDivider(model.getDivider())
                .setBackspaceTint(model.getBackspaceTint());
// Path: library/src/main/java/com/philliphsu/numberpadtimepicker/BottomSheetNumberPadTimePickerThemer.java
// public interface BottomSheetNumberPadTimePickerThemer extends NumberPadTimePickerThemer {
//     BottomSheetNumberPadTimePickerThemer setFabBackgroundColor(ColorStateList colors);
// 
//     BottomSheetNumberPadTimePickerThemer setFabRippleColor(@ColorInt int color);
// 
//     BottomSheetNumberPadTimePickerThemer setFabIconTint(ColorStateList tint);
// 
//     BottomSheetNumberPadTimePickerThemer setAnimateFabBackgroundColor(boolean animate);
// 
//     BottomSheetNumberPadTimePickerThemer setShowFabPolicy(@ShowFabPolicy int policy);
// 
//     BottomSheetNumberPadTimePickerThemer setAnimateFabIn(boolean animateIn);
// 
//     BottomSheetNumberPadTimePickerThemer setBackspaceLocation(@BackspaceLocation int location);
// 
//     @Override
//     BottomSheetNumberPadTimePickerThemer setInputTimeTextColor(@ColorInt int color);
// 
//     @Override
//     BottomSheetNumberPadTimePickerThemer setInputAmPmTextColor(@ColorInt int color);
// 
//     @Override
//     BottomSheetNumberPadTimePickerThemer setBackspaceTint(ColorStateList colors);
// 
//     @Override
//     BottomSheetNumberPadTimePickerThemer setNumberKeysTextColor(ColorStateList colors);
// 
//     @Override
//     BottomSheetNumberPadTimePickerThemer setAltKeysTextColor(ColorStateList colors);
// 
//     @Override
//     BottomSheetNumberPadTimePickerThemer setHeaderBackground(Drawable background);
// 
//     @Override
//     BottomSheetNumberPadTimePickerThemer setNumberPadBackground(Drawable background);
// 
//     @Override
//     BottomSheetNumberPadTimePickerThemer setDivider(Drawable divider);
// }
// 
// Path: library/src/main/java/com/philliphsu/numberpadtimepicker/NumberPadTimePickerThemer.java
// public interface NumberPadTimePickerThemer {
//     NumberPadTimePickerThemer setInputTimeTextColor(@ColorInt int color);
// 
//     NumberPadTimePickerThemer setInputAmPmTextColor(@ColorInt int color);
// 
//     NumberPadTimePickerThemer setBackspaceTint(ColorStateList colors);
// 
//     NumberPadTimePickerThemer setNumberKeysTextColor(ColorStateList colors);
// 
//     NumberPadTimePickerThemer setAltKeysTextColor(ColorStateList colors);
// 
//     NumberPadTimePickerThemer setHeaderBackground(Drawable background);
// 
//     NumberPadTimePickerThemer setNumberPadBackground(Drawable background);
// 
//     NumberPadTimePickerThemer setDivider(Drawable divider);
// }


// Path: sample/src/main/java/com/philliphsu/numberpadtimepickersample/CustomThemeController.java
import android.content.Context;
import com.philliphsu.numberpadtimepicker.BottomSheetNumberPadTimePickerThemer;
import com.philliphsu.numberpadtimepicker.NumberPadTimePickerThemer;

package com.philliphsu.numberpadtimepickersample;



public class CustomThemeController {
    private static CustomThemeController instance;

    private final CustomThemeModel model;

    private CustomThemeController(Context context) {
        model = CustomThemeModel.get(context);
    }

    public static CustomThemeController get(Context context) {
        if (instance == null) {
            instance = new CustomThemeController(context);
        }
        return instance;
    }

    public void applyCustomTheme(NumberPadTimePickerThemer themer) {
        themer.setHeaderBackground(model.getHeaderBackground())
                .setInputTimeTextColor(model.getInputTimeTextColor())
                .setInputAmPmTextColor(model.getInputAmPmTextColor())
                .setNumberPadBackground(model.getNumberPadBackground())
                .setNumberKeysTextColor(model.getNumberKeysTextColor())
                .setAltKeysTextColor(model.getAltKeysTextColor())
                .setDivider(model.getDivider())
                .setBackspaceTint(model.getBackspaceTint());
        if (themer instanceof BottomSheetNumberPadTimePickerThemer) {