package com.code44.finance.ui;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.support.v4.app.FragmentManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import com.code44.finance.R;
import com.larswerkman.holocolorpicker.ColorPicker;
import com.larswerkman.holocolorpicker.SaturationBar;
import com.larswerkman.holocolorpicker.ValueBar;
public class SelectColorFragment extends DialogFragment {
private static final String ARG_COLOR = "ARG_COLOR";
private OnColorSelectedListener mOnColorSelectedListener;
public static void show(FragmentManager fm, String tag, int color, OnColorSelectedListener listener) {
final Bundle args = new Bundle();
args.putInt(ARG_COLOR, color);
final SelectColorFragment fragment = new SelectColorFragment();
fragment.setArguments(args);
fragment.setOnColorSelectedListener(listener);
fragment.show(fm, tag);
}
public static void setListenerIfVisible(FragmentManager fm, String tag, OnColorSelectedListener listener) {
final SelectColorFragment fragment = (SelectColorFragment) fm.findFragmentByTag(tag);
if (fragment != null) {
fragment.setOnColorSelectedListener(listener);
}
}
public static void removeListenerIfVisible(FragmentManager fm, String tag) {
setListenerIfVisible(fm, tag, null);
}
@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final int style = DialogFragment.STYLE_NO_FRAME;
final int theme = android.R.style.Theme_Holo_Light_Dialog;
setStyle(style, theme);
}
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_select_color, container, false);
}
@Override public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
// Get arguments
final int color = getArguments().getInt(ARG_COLOR);
// Get views
final ColorPicker picker_CP = (ColorPicker) view.findViewById(R.id.picker_CP);
final SaturationBar saturation_SB = (SaturationBar) view.findViewById(R.id.saturation_SB);
final ValueBar value_VB = (ValueBar) view.findViewById(R.id.value_SB);
final Button cancel_B = (Button) view.findViewById(R.id.cancelButton);
final Button select_B = (Button) view.findViewById(R.id.select_B);
// Setup
picker_CP.addSaturationBar(saturation_SB);
picker_CP.addValueBar(value_VB);
picker_CP.setColor(color);
picker_CP.setOldCenterColor(color);
picker_CP.setNewCenterColor(color);
cancel_B.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dismiss();
}
});
select_B.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mOnColorSelectedListener != null) {
mOnColorSelectedListener.onColorSelected(picker_CP.getColor());
}
dismiss();
}
});
}
public void setOnColorSelectedListener(OnColorSelectedListener onColorSelectedListener) {
this.mOnColorSelectedListener = onColorSelectedListener;
}
public static interface OnColorSelectedListener {
public void onColorSelected(int color);
}
}