mirror of
https://github.com/M66B/FairEmail.git
synced 2025-12-31 18:11:03 +01:00
Added selecting widget background color
This commit is contained in:
@@ -21,8 +21,10 @@ package eu.faircode.email;
|
||||
|
||||
import android.appwidget.AppWidgetManager;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.graphics.Color;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
@@ -30,6 +32,7 @@ import android.widget.AdapterView;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.Button;
|
||||
import android.widget.CheckBox;
|
||||
import android.widget.CompoundButton;
|
||||
import android.widget.Spinner;
|
||||
import android.widget.TextView;
|
||||
|
||||
@@ -38,6 +41,10 @@ import androidx.annotation.Nullable;
|
||||
import androidx.constraintlayout.widget.Group;
|
||||
import androidx.preference.PreferenceManager;
|
||||
|
||||
import com.flask.colorpicker.ColorPickerView;
|
||||
import com.flask.colorpicker.builder.ColorPickerClickListener;
|
||||
import com.flask.colorpicker.builder.ColorPickerDialogBuilder;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
@@ -50,12 +57,14 @@ public class ActivityWidgetUnified extends ActivityBase {
|
||||
private CheckBox cbUnseen;
|
||||
private CheckBox cbFlagged;
|
||||
private CheckBox cbSemiTransparent;
|
||||
private Button btnColor;
|
||||
private Spinner spFontSize;
|
||||
private Spinner spPadding;
|
||||
private Button btnSave;
|
||||
private ContentLoadingProgressBar pbWait;
|
||||
private Group grpReady;
|
||||
|
||||
private int background = Color.TRANSPARENT;
|
||||
private ArrayAdapter<EntityAccount> adapterAccount;
|
||||
private ArrayAdapter<TupleFolderEx> adapterFolder;
|
||||
private ArrayAdapter<String> adapterFontSize;
|
||||
@@ -71,6 +80,9 @@ public class ActivityWidgetUnified extends ActivityBase {
|
||||
return;
|
||||
}
|
||||
|
||||
if (savedInstanceState != null)
|
||||
background = savedInstanceState.getInt("fair:color");
|
||||
|
||||
appWidgetId = extras.getInt(
|
||||
AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID);
|
||||
|
||||
@@ -82,6 +94,7 @@ public class ActivityWidgetUnified extends ActivityBase {
|
||||
cbUnseen = findViewById(R.id.cbUnseen);
|
||||
cbFlagged = findViewById(R.id.cbFlagged);
|
||||
cbSemiTransparent = findViewById(R.id.cbSemiTransparent);
|
||||
btnColor = findViewById(R.id.btnColor);
|
||||
spFontSize = findViewById(R.id.spFontSize);
|
||||
spPadding = findViewById(R.id.spPadding);
|
||||
btnSave = findViewById(R.id.btnSave);
|
||||
@@ -91,6 +104,40 @@ public class ActivityWidgetUnified extends ActivityBase {
|
||||
final Intent resultValue = new Intent();
|
||||
resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
|
||||
|
||||
cbSemiTransparent.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
||||
@Override
|
||||
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
||||
btnColor.setEnabled(!isChecked);
|
||||
}
|
||||
});
|
||||
|
||||
btnColor.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
ColorPickerDialogBuilder
|
||||
.with(ActivityWidgetUnified.this)
|
||||
.setTitle(R.string.title_widget_background)
|
||||
.showColorEdit(true)
|
||||
.wheelType(ColorPickerView.WHEEL_TYPE.FLOWER)
|
||||
.density(6)
|
||||
.lightnessSliderOnly()
|
||||
.setPositiveButton(android.R.string.ok, new ColorPickerClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int selectedColor, Integer[] allColors) {
|
||||
background = selectedColor;
|
||||
}
|
||||
})
|
||||
.setNegativeButton(R.string.title_reset, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
background = Color.TRANSPARENT;
|
||||
}
|
||||
})
|
||||
.build()
|
||||
.show();
|
||||
}
|
||||
});
|
||||
|
||||
btnSave.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
@@ -114,6 +161,7 @@ public class ActivityWidgetUnified extends ActivityBase {
|
||||
editor.putBoolean("widget." + appWidgetId + ".unseen", cbUnseen.isChecked());
|
||||
editor.putBoolean("widget." + appWidgetId + ".flagged", cbFlagged.isChecked());
|
||||
editor.putBoolean("widget." + appWidgetId + ".semi", cbSemiTransparent.isChecked());
|
||||
editor.putInt("widget." + appWidgetId + ".background", background);
|
||||
editor.putInt("widget." + appWidgetId + ".font", spFontSize.getSelectedItemPosition());
|
||||
editor.putInt("widget." + appWidgetId + ".padding", spPadding.getSelectedItemPosition());
|
||||
|
||||
@@ -216,6 +264,7 @@ public class ActivityWidgetUnified extends ActivityBase {
|
||||
adapterPadding.setDropDownViewResource(R.layout.spinner_item1_dropdown);
|
||||
spPadding.setAdapter(adapterPadding);
|
||||
|
||||
btnColor.setEnabled(!cbSemiTransparent.isChecked());
|
||||
grpReady.setVisibility(View.GONE);
|
||||
pbWait.setVisibility(View.VISIBLE);
|
||||
|
||||
@@ -252,4 +301,10 @@ public class ActivityWidgetUnified extends ActivityBase {
|
||||
}
|
||||
}.execute(this, new Bundle(), "widget:accounts");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onSaveInstanceState(Bundle outState) {
|
||||
outState.putInt("fair:color", background);
|
||||
super.onSaveInstanceState(outState);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user