14afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung/*
24afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung * Copyright (C) 2013 The Android Open Source Project
34afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung *
44afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung * Licensed under the Apache License, Version 2.0 (the "License");
54afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung * you may not use this file except in compliance with the License.
64afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung * You may obtain a copy of the License at
74afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung *
84afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung *      http://www.apache.org/licenses/LICENSE-2.0
94afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung *
104afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung * Unless required by applicable law or agreed to in writing, software
114afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung * distributed under the License is distributed on an "AS IS" BASIS,
124afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
134afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung * See the License for the specific language governing permissions and
144afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung * limitations under the License.
154afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung */
164afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung
174afba187f8990ae2b3afaf8fcdb6039f231f4914James Kungpackage com.android.calendar.event;
184afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung
198de796dfd3a1dad6cb386077e785d09fc02bec7bJames Kungimport android.app.Dialog;
204afba187f8990ae2b3afaf8fcdb6039f231f4914James Kungimport android.content.DialogInterface;
214afba187f8990ae2b3afaf8fcdb6039f231f4914James Kungimport android.os.Bundle;
224afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung
234afba187f8990ae2b3afaf8fcdb6039f231f4914James Kungimport com.android.calendar.R;
24a8b8c0d17adf3e8f9b34a5da89592aa7069c0bddJames Kungimport com.android.colorpicker.ColorPickerDialog;
254afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung
264afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung/**
274afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung * A dialog which displays event colors, with an additional button for the calendar color.
284afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung */
294afba187f8990ae2b3afaf8fcdb6039f231f4914James Kungpublic class EventColorPickerDialog extends ColorPickerDialog {
304afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung
314afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung    private static final int NUM_COLUMNS = 4;
328de796dfd3a1dad6cb386077e785d09fc02bec7bJames Kung    private static final String KEY_CALENDAR_COLOR = "calendar_color";
334afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung
344afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung    private int mCalendarColor;
354afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung
364afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung    public EventColorPickerDialog() {
374afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung        // Empty constructor required for dialog fragment.
384afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung    }
394afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung
408de796dfd3a1dad6cb386077e785d09fc02bec7bJames Kung    public static EventColorPickerDialog newInstance(int[] colors, int selectedColor,
418de796dfd3a1dad6cb386077e785d09fc02bec7bJames Kung            int calendarColor, boolean isTablet) {
428de796dfd3a1dad6cb386077e785d09fc02bec7bJames Kung        EventColorPickerDialog ret = new EventColorPickerDialog();
438de796dfd3a1dad6cb386077e785d09fc02bec7bJames Kung        ret.initialize(R.string.event_color_picker_dialog_title, colors, selectedColor, NUM_COLUMNS,
444afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung                isTablet ? SIZE_LARGE : SIZE_SMALL);
458de796dfd3a1dad6cb386077e785d09fc02bec7bJames Kung        ret.setCalendarColor(calendarColor);
468de796dfd3a1dad6cb386077e785d09fc02bec7bJames Kung        return ret;
478de796dfd3a1dad6cb386077e785d09fc02bec7bJames Kung    }
488de796dfd3a1dad6cb386077e785d09fc02bec7bJames Kung
498de796dfd3a1dad6cb386077e785d09fc02bec7bJames Kung    @Override
508de796dfd3a1dad6cb386077e785d09fc02bec7bJames Kung    public void onCreate(Bundle savedInstanceState) {
518de796dfd3a1dad6cb386077e785d09fc02bec7bJames Kung        super.onCreate(savedInstanceState);
528de796dfd3a1dad6cb386077e785d09fc02bec7bJames Kung        if (savedInstanceState != null) {
538de796dfd3a1dad6cb386077e785d09fc02bec7bJames Kung            mCalendarColor = savedInstanceState.getInt(KEY_CALENDAR_COLOR);
548de796dfd3a1dad6cb386077e785d09fc02bec7bJames Kung        }
558de796dfd3a1dad6cb386077e785d09fc02bec7bJames Kung    }
568de796dfd3a1dad6cb386077e785d09fc02bec7bJames Kung
578de796dfd3a1dad6cb386077e785d09fc02bec7bJames Kung    @Override
588de796dfd3a1dad6cb386077e785d09fc02bec7bJames Kung    public void onSaveInstanceState(Bundle outState) {
598de796dfd3a1dad6cb386077e785d09fc02bec7bJames Kung        super.onSaveInstanceState(outState);
608de796dfd3a1dad6cb386077e785d09fc02bec7bJames Kung        outState.putInt(KEY_CALENDAR_COLOR, mCalendarColor);
614afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung    }
624afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung
634afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung    public void setCalendarColor(int color) {
644afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung        mCalendarColor = color;
654afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung    }
664afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung
674afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung    @Override
688de796dfd3a1dad6cb386077e785d09fc02bec7bJames Kung    public Dialog onCreateDialog(Bundle savedInstanceState) {
698de796dfd3a1dad6cb386077e785d09fc02bec7bJames Kung        Dialog dialog = super.onCreateDialog(savedInstanceState);
704afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung        mAlertDialog.setButton(DialogInterface.BUTTON_NEUTRAL,
718de796dfd3a1dad6cb386077e785d09fc02bec7bJames Kung                getActivity().getString(R.string.event_color_set_to_default),
724afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung                new DialogInterface.OnClickListener() {
734afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung
744afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung                    @Override
754afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung                    public void onClick(DialogInterface dialog, int which) {
76318227abcb8fa14731907aefff6d65fa33dee6c6James Kung                        onColorSelected(mCalendarColor);
774afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung                    }
784afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung                }
794afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung        );
808de796dfd3a1dad6cb386077e785d09fc02bec7bJames Kung        return dialog;
814afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung    }
824afba187f8990ae2b3afaf8fcdb6039f231f4914James Kung}
83