Switched to QuadFlask colorpicker

This commit is contained in:
M66B
2019-09-29 16:31:13 +02:00
parent 97bc466942
commit fc3866f908
16 changed files with 79 additions and 107 deletions

View File

@@ -2882,13 +2882,13 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
}
private void onMenuColoredStar(final TupleMessageEx message) {
int color = (message.color == null ? Color.TRANSPARENT : message.color);
Bundle args = new Bundle();
args.putLong("id", message.id);
args.putInt("color", message.color == null ? Color.TRANSPARENT : message.color);
args.putString("title", context.getString(R.string.title_flag_color));
FragmentDialogColor fragment = new FragmentDialogColor();
fragment.initialize(R.string.title_flag_color, color, args, context);
fragment.setArguments(args);
fragment.setTargetFragment(parentFragment, FragmentMessages.REQUEST_MESSAGE_COLOR);
fragment.show(parentFragment.getFragmentManager(), "message:color");
}

View File

@@ -303,8 +303,12 @@ public class FragmentAccount extends FragmentBase {
btnColor.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Bundle args = new Bundle();
args.putInt("color", btnColor.getColor());
args.putString("title", getString(R.string.title_color));
FragmentDialogColor fragment = new FragmentDialogColor();
fragment.initialize(R.string.title_color, btnColor.getColor(), new Bundle(), getContext());
fragment.setArguments(args);
fragment.setTargetFragment(FragmentAccount.this, REQUEST_COLOR);
fragment.show(getFragmentManager(), "account:color");
}

View File

@@ -1040,8 +1040,12 @@ public class FragmentCompose extends FragmentBase {
Log.i("Style action=" + action);
if (action == R.id.menu_color) {
Bundle args = new Bundle();
args.putInt("color", Color.TRANSPARENT);
args.putString("title", getString(R.string.title_style_color));
FragmentDialogColor fragment = new FragmentDialogColor();
fragment.initialize(R.string.title_style_color, Color.TRANSPARENT, new Bundle(), getContext());
fragment.setArguments(args);
fragment.setTargetFragment(FragmentCompose.this, REQUEST_COLOR);
fragment.show(getFragmentManager(), "account:color");
return true;

View File

@@ -19,49 +19,51 @@ package eu.faircode.email;
Copyright 2018-2019 by Marcel Bokhorst (M66B)
*/
import android.content.Context;
import android.content.Intent;
import android.app.Dialog;
import android.content.DialogInterface;
import android.graphics.Color;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.android.colorpicker.ColorPickerDialog;
import com.flask.colorpicker.ColorPickerView;
import com.flask.colorpicker.builder.ColorPickerClickListener;
import com.flask.colorpicker.builder.ColorPickerDialogBuilder;
import static android.app.Activity.RESULT_OK;
public class FragmentDialogColor extends ColorPickerDialog {
private Bundle args;
public void initialize(int title, int color, Bundle args, Context context) {
this.args = args;
int[] colors = context.getResources().getIntArray(R.array.colorPicker);
super.initialize(title, colors, color, 4, colors.length);
}
public class FragmentDialogColor extends FragmentDialogBase {
@NonNull
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null)
this.args = savedInstanceState.getBundle("fair:extra");
}
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
int color = getArguments().getInt("color");
String title = getArguments().getString("title");
@Override
public void onSaveInstanceState(Bundle outState) {
outState.putBundle("fair:extra", args);
super.onSaveInstanceState(outState);
}
if (color == Color.TRANSPARENT)
color = Color.BLUE;
@Override
public void onColorSelected(int color) {
Fragment target = getTargetFragment();
if (target != null) {
args.putInt("color", color);
Intent data = new Intent();
data.putExtra("args", args);
target.onActivityResult(getTargetRequestCode(), RESULT_OK, data);
}
dismiss();
return ColorPickerDialogBuilder
.with(getContext())
.setTitle(title)
.initialColor(color)
.wheelType(ColorPickerView.WHEEL_TYPE.FLOWER)
.density(12)
.lightnessSliderOnly()
.setPositiveButton(android.R.string.ok, new ColorPickerClickListener() {
@Override
public void onClick(DialogInterface dialog, int selectedColor, Integer[] allColors) {
getArguments().putInt("color", selectedColor);
sendResult(RESULT_OK);
}
})
.setNegativeButton(R.string.title_reset, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
getArguments().putInt("color", Color.TRANSPARENT);
sendResult(RESULT_OK);
}
})
.build();
}
}

View File

@@ -286,8 +286,12 @@ public class FragmentIdentity extends FragmentBase {
btnColor.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Bundle args = new Bundle();
args.putInt("color", btnColor.getColor());
args.putString("title", getString(R.string.title_color));
FragmentDialogColor fragment = new FragmentDialogColor();
fragment.initialize(R.string.title_flag_color, btnColor.getColor(), new Bundle(), getContext());
fragment.setArguments(args);
fragment.setTargetFragment(FragmentIdentity.this, REQUEST_COLOR);
fragment.show(getFragmentManager(), "identity:color");
}

View File

@@ -1589,13 +1589,13 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
}
private void onMenuColor() {
int color = (message.color == null ? Color.TRANSPARENT : message.color);
Bundle args = new Bundle();
args.putLong("id", message.id);
args.putInt("color", message.color == null ? Color.TRANSPARENT : message.color);
args.putString("title", getString(R.string.title_flag_color));
FragmentDialogColor fragment = new FragmentDialogColor();
fragment.initialize(R.string.title_flag_color, color, args, getContext());
fragment.setArguments(args);
fragment.setTargetFragment(FragmentMessages.this, FragmentMessages.REQUEST_MESSAGE_COLOR);
fragment.show(getFragmentManager(), "message:color");
}
@@ -1973,8 +1973,12 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
}
private void onActionFlagColorSelection() {
Bundle args = new Bundle();
args.putInt("color", Color.TRANSPARENT);
args.putString("title", getString(R.string.title_flag_color));
FragmentDialogColor fragment = new FragmentDialogColor();
fragment.initialize(R.string.title_flag_color, Color.TRANSPARENT, new Bundle(), getContext());
fragment.setArguments(args);
fragment.setTargetFragment(FragmentMessages.this, REQUEST_MESSAGES_COLOR);
fragment.show(getFragmentManager(), "messages:color");
}

View File

@@ -132,8 +132,12 @@ public class FragmentPop extends FragmentBase {
btnColor.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Bundle args = new Bundle();
args.putInt("color", btnColor.getColor());
args.putString("title", getString(R.string.title_color));
FragmentDialogColor fragment = new FragmentDialogColor();
fragment.initialize(R.string.title_color, btnColor.getColor(), new Bundle(), getContext());
fragment.setArguments(args);
fragment.setTargetFragment(FragmentPop.this, REQUEST_COLOR);
fragment.show(getFragmentManager(), "account:color");
}

View File

@@ -366,8 +366,12 @@ public class FragmentRule extends FragmentBase {
btnColor.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Bundle args = new Bundle();
args.putInt("color", btnColor.getColor());
args.putString("title", getString(R.string.title_flag_color));
FragmentDialogColor fragment = new FragmentDialogColor();
fragment.initialize(R.string.title_flag_color, btnColor.getColor(), new Bundle(), getContext());
fragment.setArguments(args);
fragment.setTargetFragment(FragmentRule.this, REQUEST_COLOR);
fragment.show(getFragmentManager(), "rule:color");
}