Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8de796df authored by James Kung's avatar James Kung
Browse files

Replacing colorpicker constructor with newInstance

Bug: 8295327
Change-Id: Iba6de7fb8f6aff5a41595c84e9cd496facc23264
parent f6c6a278
Loading
Loading
Loading
Loading
+77 −22
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.calendar;

import android.app.Activity;
import android.app.Dialog;
import android.content.ContentUris;
import android.content.ContentValues;
import android.content.Context;
@@ -38,6 +39,9 @@ public class CalendarColorPickerDialog extends ColorPickerDialog {

    private static final int NUM_COLUMNS = 4;

    private static final String KEY_CALENDAR_ID = "calendar_id";
    private static final String KEY_COLOR_KEYS = "color_keys";

    private static final int TOKEN_QUERY_CALENDARS = 1 << 1;
    private static final int TOKEN_QUERY_COLORS = 1 << 2;

@@ -64,9 +68,7 @@ public class CalendarColorPickerDialog extends ColorPickerDialog {


    private QueryService mService;
    private Uri mUri;
    private SparseIntArray mColorKeyMap = new SparseIntArray();

    private long mCalendarId;

    private class QueryService extends AsyncQueryService {
@@ -113,6 +115,7 @@ public class CalendarColorPickerDialog extends ColorPickerDialog {
                        dismiss();
                        break;
                    }
                    mColorKeyMap.clear();
                    ArrayList<Integer> colors = new ArrayList<Integer>();
                    do
                    {
@@ -128,7 +131,7 @@ public class CalendarColorPickerDialog extends ColorPickerDialog {
                    for (int i = 0; i < mColors.length; i++) {
                        mColors[i] = colorsToSort[i];
                    }
                    showPalette();
                    showPaletteView();
                    cursor.close();
                    break;
            }
@@ -139,14 +142,14 @@ public class CalendarColorPickerDialog extends ColorPickerDialog {

        @Override
        public void onColorSelected(int color) {
            if (color == mSelectedColor) {
            if (color == mSelectedColor || mService == null) {
                return;
            }

            ContentValues values = new ContentValues();
            values.put(Calendars.CALENDAR_COLOR_KEY, mColorKeyMap.get(color));
            mService.startUpdate(mService.getNextToken(), null, mUri, values,
                    null, null, Utils.UNDO_DELAY);
            mService.startUpdate(mService.getNextToken(), null, ContentUris.withAppendedId(
                    Calendars.CONTENT_URI, mCalendarId), values, null, null, Utils.UNDO_DELAY);
        }
    }

@@ -154,29 +157,81 @@ public class CalendarColorPickerDialog extends ColorPickerDialog {
        // Empty constructor required for dialog fragments.
    }

    public CalendarColorPickerDialog(long calendarId, boolean isTablet) {
        super(R.string.calendar_color_picker_dialog_title, null, -1, NUM_COLUMNS,
    public static CalendarColorPickerDialog newInstance(long calendarId, boolean isTablet) {
        CalendarColorPickerDialog ret = new CalendarColorPickerDialog();
        ret.setArguments(R.string.calendar_color_picker_dialog_title, NUM_COLUMNS,
                isTablet ? SIZE_LARGE : SIZE_SMALL);
        mListener = new OnCalendarColorSelectedListener();
        mCalendarId = calendarId;
        mUri = ContentUris.withAppendedId(Calendars.CONTENT_URI, mCalendarId);
        ret.setCalendarId(calendarId);
        return ret;
    }

    @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putLong(KEY_CALENDAR_ID, mCalendarId);
        saveColorKeys(outState);
    }

    private void saveColorKeys(Bundle outState) {
        int[] colorKeys = new int[mColors.length];
        for (int i = 0; i < mColors.length; i++) {
            colorKeys[i] = mColorKeyMap.get(mColors[i]);
        }
        outState.putIntArray(KEY_COLOR_KEYS, colorKeys);
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (savedInstanceState != null) {
            mCalendarId = savedInstanceState.getLong(KEY_CALENDAR_ID);
            retrieveColorKeys(savedInstanceState);
        }
        setOnColorSelectedListener(new OnCalendarColorSelectedListener());
    }

    private void retrieveColorKeys(Bundle savedInstanceState) {
        int[] colorKeys = savedInstanceState.getIntArray(KEY_COLOR_KEYS);
        if (mColors != null && colorKeys != null) {
            for (int i = 0; i < mColors.length; i++) {
                mColorKeyMap.put(mColors[i], colorKeys[i]);
            }
        }
    }

    @Override
    public void setColors(int[] colors) {
        throw new IllegalStateException("Must call setCalendarId() to update calendar colors");
    }

    @Override
    public void setColors(int[] colors, int selectedColor) {
        throw new IllegalStateException("Must call setCalendarId() to update calendar colors");
    }

    public void setCalendarId(long calendarId) {
        if (calendarId != mCalendarId) {
            mCalendarId = calendarId;
        mUri = ContentUris.withAppendedId(Calendars.CONTENT_URI, mCalendarId);
        if (mService != null) {
            mService.startQuery(TOKEN_QUERY_CALENDARS, null, mUri, CALENDARS_PROJECTION,
                    null, null, null);
            startQuery();
        }
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        final Activity activity = getActivity();
        mService = new QueryService(activity);
        mService.startQuery(TOKEN_QUERY_CALENDARS, null, mUri, CALENDARS_PROJECTION,
                null, null, null);
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        Dialog dialog = super.onCreateDialog(savedInstanceState);
        mService = new QueryService(getActivity());
        if (mColors == null) {
            startQuery();
        }
        return dialog;
    }

    private void startQuery() {
        if (mService != null) {
            showProgressBarView();
            mService.startQuery(TOKEN_QUERY_CALENDARS, null,
                    ContentUris.withAppendedId(Calendars.CONTENT_URI, mCalendarId),
                    CALENDARS_PROJECTION, null, null, null);
        }
    }
}
+1 −1
Original line number Diff line number Diff line
@@ -1225,7 +1225,7 @@ public class EventInfoFragment extends DialogFragment implements OnCheckedChange

    private void showEventColorPickerDialog() {
        if (mDialog == null) {
            mDialog = new EventColorPickerDialog(mColors, mCurrentColor, mCalendarColor,
            mDialog = EventColorPickerDialog.newInstance(mColors, mCurrentColor, mCalendarColor,
                    mIsTabletConfig);
            mDialog.setTargetFragment(this, REQUEST_CODE_COLOR_PICKER);
        }
+1 −1
Original line number Diff line number Diff line
@@ -360,7 +360,7 @@ public class EditEventFragment extends Fragment implements EventHandler, OnColor
        public void onClick(View v) {
            int[] colors = mModel.getCalendarEventColors();
            if (mDialog == null) {
                mDialog = new EventColorPickerDialog(colors, mModel.mEventColor,
                mDialog = EventColorPickerDialog.newInstance(colors, mModel.mEventColor,
                        mModel.mCalendarColor, mView.mIsMultipane);
                mDialog.setTargetFragment(EditEventFragment.this, REQUEST_CODE_COLOR_PICKER);
            } else {
+26 −8
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.calendar.event;

import android.app.Activity;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;

@@ -29,6 +30,7 @@ import com.android.colorpicker.ColorPickerDialog;
public class EventColorPickerDialog extends ColorPickerDialog {

    private static final int NUM_COLUMNS = 4;
    private static final String KEY_CALENDAR_COLOR = "calendar_color";

    private int mCalendarColor;

@@ -36,11 +38,27 @@ public class EventColorPickerDialog extends ColorPickerDialog {
        // Empty constructor required for dialog fragment.
    }

    public EventColorPickerDialog(int[] colors, int selectedColor, int calendarColor,
            boolean isTablet) {
        super(R.string.event_color_picker_dialog_title, colors, selectedColor, NUM_COLUMNS,
    public static EventColorPickerDialog newInstance(int[] colors, int selectedColor,
            int calendarColor, boolean isTablet) {
        EventColorPickerDialog ret = new EventColorPickerDialog();
        ret.initialize(R.string.event_color_picker_dialog_title, colors, selectedColor, NUM_COLUMNS,
                isTablet ? SIZE_LARGE : SIZE_SMALL);
        mCalendarColor = calendarColor;
        ret.setCalendarColor(calendarColor);
        return ret;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (savedInstanceState != null) {
            mCalendarColor = savedInstanceState.getInt(KEY_CALENDAR_COLOR);
        }
    }

    @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putInt(KEY_CALENDAR_COLOR, mCalendarColor);
    }

    public void setCalendarColor(int color) {
@@ -48,11 +66,10 @@ public class EventColorPickerDialog extends ColorPickerDialog {
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        final Activity activity = getActivity();
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        Dialog dialog = super.onCreateDialog(savedInstanceState);
        mAlertDialog.setButton(DialogInterface.BUTTON_NEUTRAL,
                activity.getString(R.string.event_color_set_to_default),
                getActivity().getString(R.string.event_color_set_to_default),
                new DialogInterface.OnClickListener() {

                    @Override
@@ -61,5 +78,6 @@ public class EventColorPickerDialog extends ColorPickerDialog {
                    }
                }
        );
        return dialog;
    }
}
+1 −1
Original line number Diff line number Diff line
@@ -236,7 +236,7 @@ public class SelectCalendarsSimpleAdapter extends BaseAdapter implements ListAda
            @Override
            public void onClick(View v) {
                if (mDialog == null) {
                    mDialog = new CalendarColorPickerDialog(mData[position].id, mIsTablet);
                    mDialog = CalendarColorPickerDialog.newInstance(mData[position].id, mIsTablet);
                } else {
                    mDialog.setCalendarId(mData[position].id);
                }
Loading