Android Open Source - wally Color Picker Dialog Fragment






From Project

Back to project page wally.

License

The source code is released under:

Apache License

If you think the Android project wally listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * Copyright (C) 2010 Daniel Nilsson//from w  w w .  j av a  2  s. c  o m
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package net.margaritov.preference.colorpicker.dialog;

import android.app.Dialog;
import android.graphics.Color;
import android.graphics.PixelFormat;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.DialogFragment;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.LinearLayout;

import com.musenkishi.wally.R;

import net.margaritov.preference.colorpicker.view.ColorPanelView;
import net.margaritov.preference.colorpicker.view.ColorPickerView;

public class ColorPickerDialogFragment extends DialogFragment implements ColorPickerView.OnColorChangedListener {

    public static final String TAG = "ColorPickerDialogFragment";
    private static final String STATE_CURRENT_COLOR = TAG + ".CurrentColor";

    private ColorPickerView colorPicker;

    private ColorPanelView oldColor;
    private ColorPanelView newColor;

    private ColorPickerView.OnColorChangedListener onColorChangedListener;

    private OnDialogButtonClickedListener onDialogButtonClickedListener;

    private Button buttonPositive;
    private Button buttonNegative;

    private int initialColor = Color.BLACK;

    public interface OnDialogButtonClickedListener{
        abstract void onPositiveButtonClicked(DialogFragment dialogFragment);
        abstract void onNegativeButtonClicked(DialogFragment dialogFragment);
    }

    public ColorPickerDialogFragment() {
    }

    public ColorPickerDialogFragment(int initialColor, ColorPickerView.OnColorChangedListener onColorChangedListener, OnDialogButtonClickedListener onDialogButtonClickedListener) {
        this.onColorChangedListener = onColorChangedListener;
        this.initialColor = initialColor;
        this.onDialogButtonClickedListener = onDialogButtonClickedListener;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setRetainInstance(true);
    }

    @NonNull
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {

        if (getActivity() != null) {
            final Dialog dialog = new Dialog(getActivity(), android.R.style.Theme_DeviceDefault_Light_Dialog);
            dialog.getWindow().setFormat(PixelFormat.RGBA_8888);

            dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
            dialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
            dialog.setContentView(R.layout.view_color_picker_dialog);

            colorPicker = (ColorPickerView) dialog.findViewById(R.id.color_picker_view);
            oldColor = (ColorPanelView) dialog.findViewById(R.id.color_panel_old);
            newColor = (ColorPanelView) dialog.findViewById(R.id.color_panel_new);
            ((LinearLayout) oldColor.getParent()).setPadding(Math
                    .round(colorPicker.getDrawingOffset()), 0, Math
                    .round(colorPicker.getDrawingOffset()), 0);
            colorPicker.setOnColorChangedListener(this);
            oldColor.setColor(initialColor);
            if (savedInstanceState == null) {
                colorPicker.setColor(initialColor, true);
            }

            buttonNegative = (Button) dialog.findViewById(R.id.dialog_button_negative);
            buttonPositive = (Button) dialog.findViewById(R.id.dialog_button_positive);

            buttonNegative.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (onDialogButtonClickedListener != null) {
                        onDialogButtonClickedListener.onNegativeButtonClicked(ColorPickerDialogFragment.this);
                    }
                    dismiss();
                }
            });
            buttonPositive.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (onDialogButtonClickedListener != null) {
                        onDialogButtonClickedListener.onPositiveButtonClicked(ColorPickerDialogFragment.this);
                    }
                    dismiss();
                }
            });
            return dialog;
        } else {
            return super.onCreateDialog(savedInstanceState);
        }
    }

    @Override
    public void onSaveInstanceState(Bundle outState) {
        outState.putInt(STATE_CURRENT_COLOR, colorPicker.getColor());
        super.onSaveInstanceState(outState);
    }

    @Override
    public void onViewStateRestored(Bundle savedInstanceState) { //FIXME not getting called when rotating
        if (savedInstanceState != null) {
            if (savedInstanceState.containsKey(STATE_CURRENT_COLOR)){
                final int color = savedInstanceState.getInt(STATE_CURRENT_COLOR);
                colorPicker.setColor(color, true);
            } else {
                colorPicker.setColor(initialColor, true);
            }
        } else {
            colorPicker.setColor(initialColor, true);
        }
        super.onViewStateRestored(savedInstanceState);
    }

    @Override
    public void onDestroyView() {
        if (getDialog() != null && getRetainInstance())
            getDialog().setDismissMessage(null);
        super.onDestroyView();
    }

    @Override
    public void onColorChanged(int color) {
        newColor.setColor(color);

        if (onColorChangedListener != null) {
            onColorChangedListener.onColorChanged(color);

        }

    }

    public void setOnDialogButtonClickedListener(OnDialogButtonClickedListener onDialogButtonClickedListener){
        this.onDialogButtonClickedListener = onDialogButtonClickedListener;
    }

    public void setAlphaSliderVisible(boolean visible) {
        colorPicker.setAlphaSliderVisible(visible);
    }

    public int getColor() {
        return colorPicker.getColor();
    }

}




Java Source Code List

com.musenkishi.wally.activities.ImageDetailsActivity.java
com.musenkishi.wally.activities.MainActivity.java
com.musenkishi.wally.adapters.RecyclerImagesAdapter.java
com.musenkishi.wally.adapters.RecyclerSavedImagesAdapter.java
com.musenkishi.wally.adapters.SmartFragmentPagerAdapter.java
com.musenkishi.wally.adapters.SmartFragmentStatePagerAdapter.java
com.musenkishi.wally.anim.BaseItemAnimator.java
com.musenkishi.wally.anim.ScaleInOutItemAnimator.java
com.musenkishi.wally.anim.interpolator.EaseInOutBezierInterpolator.java
com.musenkishi.wally.anim.interpolator.FastOutLinearInInterpolator.java
com.musenkishi.wally.anim.interpolator.FastOutSlowInInterpolator.java
com.musenkishi.wally.anim.interpolator.LinearOutSlowInInterpolator.java
com.musenkishi.wally.base.BaseActivity.java
com.musenkishi.wally.base.BaseFragment.java
com.musenkishi.wally.base.GridFragment.java
com.musenkishi.wally.base.WallyApplication.java
com.musenkishi.wally.dataprovider.DataProvider.java
com.musenkishi.wally.dataprovider.FileManager.java
com.musenkishi.wally.dataprovider.NetworkDataProvider.java
com.musenkishi.wally.dataprovider.SharedPreferencesDataProvider.java
com.musenkishi.wally.dataprovider.models.DataProviderError.java
com.musenkishi.wally.dataprovider.models.SaveImageRequest.java
com.musenkishi.wally.dataprovider.okhttp.OkHttpStreamFetcher.java
com.musenkishi.wally.dataprovider.okhttp.OkHttpUrlLoader.java
com.musenkishi.wally.dataprovider.util.Parser.java
com.musenkishi.wally.fragments.CustomResolutionDialogFragment.java
com.musenkishi.wally.fragments.FilterDialogFragment.java
com.musenkishi.wally.fragments.ImageZoomFragment.java
com.musenkishi.wally.fragments.LatestFragment.java
com.musenkishi.wally.fragments.MaterialDialogFragment.java
com.musenkishi.wally.fragments.RandomImagesFragment.java
com.musenkishi.wally.fragments.SavedImagesFragment.java
com.musenkishi.wally.fragments.SearchFragment.java
com.musenkishi.wally.fragments.ToplistFragment.java
com.musenkishi.wally.models.Author.java
com.musenkishi.wally.models.ExceptionReporter.java
com.musenkishi.wally.models.Filter.java
com.musenkishi.wally.models.ImagePage.java
com.musenkishi.wally.models.Image.java
com.musenkishi.wally.models.ListFilterGroup.java
com.musenkishi.wally.models.Rating.java
com.musenkishi.wally.models.SavedImageData.java
com.musenkishi.wally.models.Size.java
com.musenkishi.wally.models.Tag.java
com.musenkishi.wally.models.filters.FilterAspectRatioKeys.java
com.musenkishi.wally.models.filters.FilterBoardsKeys.java
com.musenkishi.wally.models.filters.FilterBoards.java
com.musenkishi.wally.models.filters.FilterGroup.java
com.musenkishi.wally.models.filters.FilterGroupsStructure.java
com.musenkishi.wally.models.filters.FilterPurityKeys.java
com.musenkishi.wally.models.filters.FilterPurity.java
com.musenkishi.wally.models.filters.FilterResOptKeys.java
com.musenkishi.wally.models.filters.FilterResOpt.java
com.musenkishi.wally.models.filters.FilterResolutionKeys.java
com.musenkishi.wally.models.filters.FilterTimeSpanKeys.java
com.musenkishi.wally.muzei.WallyArtSource.java
com.musenkishi.wally.notification.NotificationProvider.java
com.musenkishi.wally.observers.FileChangeReceiver.java
com.musenkishi.wally.observers.FiltersChangeReceiver.java
com.musenkishi.wally.util.Blur.java
com.musenkishi.wally.util.PaletteLoader.java
com.musenkishi.wally.util.PaletteRequest.java
com.musenkishi.wally.util.SparseBooleanArrayParcelable.java
com.musenkishi.wally.util.TextClickableSpan.java
com.musenkishi.wally.util.TextLinkBuilder.java
com.musenkishi.wally.util.TypefaceSpan.java
com.musenkishi.wally.views.AutoGridView.java
com.musenkishi.wally.views.GridRecyclerView.java
com.musenkishi.wally.views.ObservableScrollView.java
com.musenkishi.wally.views.TabBarView.java
com.musenkishi.wally.views.TabView.java
com.musenkishi.wally.views.swipeclearlayout.SwipeClearLayout.java
net.margaritov.preference.colorpicker.dialog.ColorPickerDialogFragment.java
net.margaritov.preference.colorpicker.drawable.AlphaPatternDrawable.java
net.margaritov.preference.colorpicker.preference.ColorPickerPreference.java
net.margaritov.preference.colorpicker.view.ColorPanelView.java
net.margaritov.preference.colorpicker.view.ColorPickerView.java
nl.codesoup.cubicbezier.CubicBezierInterpolator.java