EMMA Coverage Report (generated Fri Aug 23 16:39:17 PDT 2013)
[all classes][org.chromium.ui]

COVERAGE SUMMARY FOR SOURCE FILE [ColorPickerDialog.java]

nameclass, %method, %block, %line, %
ColorPickerDialog.java0%   (0/5)0%   (0/17)0%   (0/229)0%   (0/53)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class ColorPickerDialog0%   (0/1)0%   (0/9)0%   (0/180)0%   (0/43)
ColorPickerDialog (Context, OnColorChangedListener, int): void 0%   (0/1)0%   (0/116)0%   (0/25)
access$000 (ColorPickerDialog): int 0%   (0/1)0%   (0/3)0%   (0/1)
access$100 (ColorPickerDialog, int): void 0%   (0/1)0%   (0/4)0%   (0/1)
access$200 (ColorPickerDialog): int 0%   (0/1)0%   (0/3)0%   (0/1)
access$300 (ColorPickerDialog): void 0%   (0/1)0%   (0/3)0%   (0/1)
onColorChanged (int): void 0%   (0/1)0%   (0/4)0%   (0/2)
showAdvancedView (): void 0%   (0/1)0%   (0/28)0%   (0/8)
tryNotifyColorSet (int): void 0%   (0/1)0%   (0/8)0%   (0/3)
updateCurrentColor (int): void 0%   (0/1)0%   (0/11)0%   (0/4)
     
class ColorPickerDialog$10%   (0/1)0%   (0/2)0%   (0/13)0%   (0/3)
ColorPickerDialog$1 (ColorPickerDialog): void 0%   (0/1)0%   (0/6)0%   (0/1)
onClick (DialogInterface, int): void 0%   (0/1)0%   (0/7)0%   (0/2)
     
class ColorPickerDialog$20%   (0/1)0%   (0/2)0%   (0/13)0%   (0/3)
ColorPickerDialog$2 (ColorPickerDialog): void 0%   (0/1)0%   (0/6)0%   (0/1)
onClick (DialogInterface, int): void 0%   (0/1)0%   (0/7)0%   (0/2)
     
class ColorPickerDialog$30%   (0/1)0%   (0/2)0%   (0/13)0%   (0/3)
ColorPickerDialog$3 (ColorPickerDialog): void 0%   (0/1)0%   (0/6)0%   (0/1)
onCancel (DialogInterface): void 0%   (0/1)0%   (0/7)0%   (0/2)
     
class ColorPickerDialog$40%   (0/1)0%   (0/2)0%   (0/10)0%   (0/3)
ColorPickerDialog$4 (ColorPickerDialog): void 0%   (0/1)0%   (0/6)0%   (0/1)
onClick (View): void 0%   (0/1)0%   (0/4)0%   (0/2)

1// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4 
5package org.chromium.ui;
6 
7import android.app.AlertDialog;
8import android.app.Dialog;
9import android.content.Context;
10import android.content.DialogInterface;
11import android.view.LayoutInflater;
12import android.view.View;
13import android.widget.Button;
14import android.widget.TextView;
15 
16/**
17 * UI for the color chooser that shows on the Android platform as a result of
18 * <input type=color > form element.
19 */
20public class ColorPickerDialog extends AlertDialog implements OnColorChangedListener {
21    private final ColorPickerAdvanced mAdvancedColorPicker;
22 
23    private final ColorPickerSimple mSimpleColorPicker;
24 
25    private final Button mMoreButton;
26 
27    // The view up in the corner that shows the user the color they've currently selected.
28    private final View mCurrentColorView;
29 
30    private final OnColorChangedListener mListener;
31 
32    private final int mInitialColor;
33 
34    private int mCurrentColor;
35 
36    /**
37     * @param context The context the dialog is to run in.
38     * @param theme The theme to display the dialog in.
39     * @param listener The object to notify when the color is set.
40     * @param color The initial color to set.
41     */
42    public ColorPickerDialog(Context context, OnColorChangedListener listener, int color) {
43        super(context, 0);
44 
45        mListener = listener;
46        mInitialColor = color;
47        mCurrentColor = mInitialColor;
48 
49        // Initialize title
50        LayoutInflater inflater = (LayoutInflater) context
51                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
52        View title = inflater.inflate(R.layout.color_picker_dialog_title, null);
53        setCustomTitle(title);
54 
55        mCurrentColorView = title.findViewById(R.id.selected_color_view);
56 
57        TextView titleText = (TextView) title.findViewById(R.id.title);
58        titleText.setText(R.string.color_picker_dialog_title);
59 
60        // Initialize Set/Cancel buttons
61        String positiveButtonText = context.getString(R.string.color_picker_button_set);
62        setButton(BUTTON_POSITIVE, positiveButtonText,
63                new Dialog.OnClickListener() {
64                    @Override
65                    public void onClick(DialogInterface dialogInterface, int i) {
66                        tryNotifyColorSet(mCurrentColor);
67                    }
68                });
69 
70        // Note that with the color picker there's not really any such thing as
71        // "cancelled".
72        // The color picker flow only finishes when we return a color, so we
73        // have to always
74        // return something. The concept of "cancelled" in this case just means
75        // returning
76        // the color that we were initialized with.
77        String negativeButtonText = context.getString(R.string.color_picker_button_cancel);
78        setButton(BUTTON_NEGATIVE, negativeButtonText,
79                new Dialog.OnClickListener() {
80                    @Override
81                    public void onClick(DialogInterface dialogInterface, int i) {
82                        tryNotifyColorSet(mInitialColor);
83                    }
84                });
85 
86        setOnCancelListener(new DialogInterface.OnCancelListener() {
87            @Override
88            public void onCancel(DialogInterface arg0) {
89                tryNotifyColorSet(mInitialColor);
90            }
91        });
92 
93        // Initialize main content view
94        View content = inflater.inflate(R.layout.color_picker_dialog_content, null);
95        setView(content);
96 
97        // Initialize More button.
98        mMoreButton = (Button) content.findViewById(R.id.more_colors_button);
99        mMoreButton.setOnClickListener(new Button.OnClickListener() {
100            @Override
101            public void onClick(View v) {
102                showAdvancedView();
103            }
104        });
105 
106        // Initialize advanced color view (hidden initially).
107        mAdvancedColorPicker =
108                (ColorPickerAdvanced) content.findViewById(R.id.color_picker_advanced);
109        mAdvancedColorPicker.setVisibility(View.GONE);
110 
111        // Initialize simple color view (default view).
112        mSimpleColorPicker = (ColorPickerSimple) content.findViewById(R.id.color_picker_simple);
113        mSimpleColorPicker.init(this);
114 
115        updateCurrentColor(mInitialColor);
116    }
117 
118    /**
119     * Listens to the ColorPicker for when the user has changed the selected color, and
120     * updates the current color (the color shown in the title) accordingly.
121     *
122     * @param color The new color chosen by the user.
123     */
124    @Override
125    public void onColorChanged(int color) {
126        updateCurrentColor(color);
127    }
128 
129    /**
130     * Hides the simple view (the default) and shows the advanced one instead, hiding the
131     * "More" button at the same time.
132     */
133    private void showAdvancedView() {
134        // Only need to hide the borders, not the Views themselves, since the Views are
135        // contained within the borders.
136        View buttonBorder = findViewById(R.id.more_colors_button_border);
137        buttonBorder.setVisibility(View.GONE);
138 
139        View simpleViewBorder = findViewById(R.id.color_picker_simple_border);
140        simpleViewBorder.setVisibility(View.GONE);
141 
142        mAdvancedColorPicker.setVisibility(View.VISIBLE);
143        mAdvancedColorPicker.setListener(this);
144        mAdvancedColorPicker.setColor(mCurrentColor);
145    }
146 
147    /**
148     * Tries to notify any listeners that the color has been set.
149     */
150    private void tryNotifyColorSet(int color) {
151        if (mListener != null) {
152            mListener.onColorChanged(color);
153        }
154    }
155 
156    /**
157     * Updates the internal cache of the currently selected color, updating the colorful little
158     * box in the title at the same time.
159     */
160    private void updateCurrentColor(int color) {
161        mCurrentColor = color;
162        if (mCurrentColorView != null) {
163            mCurrentColorView.setBackgroundColor(color);
164        }
165    }
166}

[all classes][org.chromium.ui]
EMMA 2.0.5312 (C) Vladimir Roubtsov