1
0
mirror of https://codeberg.org/Freeyourgadget/Gadgetbridge synced 2024-11-28 21:06:50 +01:00

Fossil HR: added option to disable widget circle

This commit is contained in:
Daniel Dakhno 2020-04-04 02:19:30 +02:00
parent 9c50c61267
commit b2a6b4b03b
5 changed files with 36 additions and 6 deletions

View File

@ -188,6 +188,7 @@ public class HRConfigActivity extends AbstractGBActivity implements View.OnClick
JSONObject widgetObject = new JSONObject();
widgetObject
.put("name", widget.getName())
.put("drawCircle", widget.getDrawCircle())
.put("elements", elementArray);
widgetArray.put(widgetObject);
@ -208,7 +209,7 @@ public class HRConfigActivity extends AbstractGBActivity implements View.OnClick
for (int i = 0; i < customWidgets.length(); i++) {
JSONObject customWidgetObject = customWidgets.getJSONObject(i);
CustomWidget widget = new CustomWidget(
customWidgetObject.getString("name"), 0, 0, "default" // FIXME: handle force white background
customWidgetObject.getString("name"), 0, 0, "default", false // FIXME: handle force white background
);
JSONArray elements = customWidgetObject.getJSONArray("elements");

View File

@ -7,6 +7,8 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.RadioButton;
@ -48,9 +50,10 @@ public class WidgetSettingsActivity extends AbstractGBActivity {
if(getIntent().hasExtra("EXTRA_WIDGET")){
subject = (CustomWidget) getIntent().getExtras().get("EXTRA_WIDGET");
((EditText) findViewById(R.id.qhybrid_widget_name)).setText(subject.getName());
((CheckBox)findViewById(R.id.qhybrid_widget_circle)).setChecked(subject.getDrawCircle());
resultCode = RESULT_CODE_WIDGET_UPDATED;
}else{
subject = new CustomWidget("", 0, 63, "default"); // FIXME: handle force white background
subject = new CustomWidget("", 0, 63, "default", false); // FIXME: handle force white background
resultCode = RESULT_CODE_WIDGET_CREATED;
findViewById(R.id.qhybrid_widget_delete).setEnabled(false);
}
@ -93,6 +96,13 @@ public class WidgetSettingsActivity extends AbstractGBActivity {
showElementDialog(null);
}
});
((CheckBox)findViewById(R.id.qhybrid_widget_circle)).setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
subject.setDrawCircle(b);
}
});
}
private void showElementDialog(@Nullable final CustomWidgetElement element){

View File

@ -193,11 +193,14 @@ public class FossilHRWatchAdapter extends FossilWatchAdapter {
for(int i = 0; i < customWidgets.length(); i++){
JSONObject customWidget = customWidgets.getJSONObject(i);
if(customWidget.getString("name").equals(identifier)){
boolean drawCircle = false;
if(customWidget.has("drawCircle")) drawCircle = customWidget.getBoolean("drawCircle");
CustomWidget newWidget = new CustomWidget(
customWidget.getString("name"),
positionMap.get(position),
63,
fontColor
fontColor,
drawCircle
);
JSONArray elements = customWidget.getJSONArray("elements");
@ -263,8 +266,8 @@ public class FossilHRWatchAdapter extends FossilWatchAdapter {
boolean backgroundDrawn = false;
Paint circlePaint = new Paint();
if(!backgroundDrawn){
if(widget.getDrawCircle() && !backgroundDrawn){
Paint circlePaint = new Paint();
circlePaint.setColor(forceWhiteBackground ? Color.WHITE : Color.BLACK);
circlePaint.setStyle(Paint.Style.FILL);
circlePaint.setStrokeWidth(3);

View File

@ -9,12 +9,22 @@ public class CustomWidget extends Widget {
private ArrayList<CustomWidgetElement> elements = new ArrayList<>();
private int angle, distance;
private String name;
private boolean drawCircle;
public CustomWidget(String name, int angle, int distance, String fontColor) {
public CustomWidget(String name, int angle, int distance, String fontColor, boolean drawCircle) {
super(null, angle, distance, fontColor);
this.angle = angle;
this.distance = distance;
this.name = name;
this.drawCircle = drawCircle;
}
public boolean getDrawCircle(){
return this.drawCircle;
}
public void setDrawCircle(boolean drawCircle){
this.drawCircle = drawCircle;
}
public int getAngle() {

View File

@ -43,6 +43,12 @@
android:layout_height="wrap_content"
android:text="add element" />
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="draw circle"
android:id="@+id/qhybrid_widget_circle" />
</LinearLayout>
<LinearLayout