StatusItem ui elements
This commit is contained in:
parent
8fa0de19c2
commit
31b0ce21e5
2 changed files with 144 additions and 0 deletions
|
@ -0,0 +1,64 @@
|
|||
package info.nightscout.androidaps.plugins.PumpInsight.utils;
|
||||
|
||||
/**
|
||||
* Created by jamorham on 26/01/2018.
|
||||
*
|
||||
* For representing row status items
|
||||
*/
|
||||
|
||||
public class StatusItem {
|
||||
|
||||
public enum Highlight {
|
||||
NORMAL,
|
||||
GOOD,
|
||||
BAD,
|
||||
NOTICE,
|
||||
CRITICAL
|
||||
}
|
||||
|
||||
public String name;
|
||||
public String value;
|
||||
public Highlight highlight;
|
||||
public String button_name;
|
||||
public Runnable runnable;
|
||||
|
||||
|
||||
public StatusItem(String name, String value) {
|
||||
this(name, value, Highlight.NORMAL);
|
||||
}
|
||||
|
||||
public StatusItem() {
|
||||
this("line-break", "", Highlight.NORMAL);
|
||||
}
|
||||
|
||||
public StatusItem(String name, Highlight highlight) {
|
||||
this("heading-break", name, highlight);
|
||||
}
|
||||
|
||||
public StatusItem(String name, Runnable runnable) {
|
||||
this("button-break", "", Highlight.NORMAL, name, runnable);
|
||||
}
|
||||
|
||||
public StatusItem(String name, String value, Highlight highlight) {
|
||||
this(name, value, highlight, null, null);
|
||||
}
|
||||
|
||||
public StatusItem(String name, String value, Highlight highlight, String button_name, Runnable runnable) {
|
||||
this.name = name;
|
||||
this.value = value;
|
||||
this.highlight = highlight;
|
||||
this.button_name = button_name;
|
||||
this.runnable = runnable;
|
||||
}
|
||||
|
||||
public StatusItem(String name, Integer value) {
|
||||
this(name, value, Highlight.NORMAL);
|
||||
}
|
||||
|
||||
public StatusItem(String name, Integer value, Highlight highlight) {
|
||||
this.name = name;
|
||||
this.value = Integer.toString(value);
|
||||
this.highlight = highlight;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,80 @@
|
|||
package info.nightscout.androidaps.plugins.PumpInsight.utils.ui;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.graphics.Color;
|
||||
import android.view.Gravity;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import info.nightscout.androidaps.R;
|
||||
import info.nightscout.androidaps.plugins.PumpInsight.utils.StatusItem;
|
||||
|
||||
/**
|
||||
* Created by jamorham on 26/01/2018.
|
||||
*
|
||||
* Convert StatusItem to View
|
||||
*/
|
||||
|
||||
public class StatusItemViewAdapter {
|
||||
|
||||
private final Activity activity;
|
||||
private final ViewGroup holder;
|
||||
|
||||
public StatusItemViewAdapter(Activity activity, ViewGroup holder) {
|
||||
this.activity = activity;
|
||||
this.holder = holder;
|
||||
}
|
||||
|
||||
public View inflateStatus(StatusItem statusItem) {
|
||||
if (activity == null) return null;
|
||||
final View child = activity.getLayoutInflater().inflate(R.layout.insightpump_statuselements, null);
|
||||
final TextView name = child.findViewById(R.id.insightstatuslabel);
|
||||
final TextView value = child.findViewById(R.id.insightstatusvalue);
|
||||
final TextView spacer = child.findViewById(R.id.insightstatusspacer);
|
||||
final LinearLayout layout = child.findViewById(R.id.insightstatuslayout);
|
||||
|
||||
if (statusItem.name.equals("line-break")) {
|
||||
spacer.setVisibility(View.GONE);
|
||||
name.setVisibility(View.GONE);
|
||||
value.setVisibility(View.GONE);
|
||||
layout.setPadding(10, 10, 10, 10);
|
||||
} else if (statusItem.name.equals("heading-break")) {
|
||||
value.setVisibility(View.GONE);
|
||||
spacer.setVisibility(View.GONE);
|
||||
name.setText(statusItem.value);
|
||||
name.setGravity(Gravity.CENTER_HORIZONTAL);
|
||||
name.setTextColor(Color.parseColor("#fff9c4"));
|
||||
} else {
|
||||
name.setText(statusItem.name);
|
||||
value.setText(statusItem.value);
|
||||
}
|
||||
|
||||
final int this_color = getHighlightColor(statusItem);
|
||||
name.setBackgroundColor(this_color);
|
||||
value.setBackgroundColor(this_color);
|
||||
spacer.setBackgroundColor(this_color);
|
||||
|
||||
if (holder != null) {
|
||||
holder.addView(child);
|
||||
}
|
||||
return child;
|
||||
}
|
||||
|
||||
private static int getHighlightColor(StatusItem row) {
|
||||
switch (row.highlight) {
|
||||
case BAD:
|
||||
return Color.parseColor("#480000");
|
||||
case NOTICE:
|
||||
return Color.parseColor("#403000");
|
||||
case GOOD:
|
||||
return Color.parseColor("#003000");
|
||||
case CRITICAL:
|
||||
return Color.parseColor("#770000");
|
||||
default:
|
||||
return Color.TRANSPARENT;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in a new issue