DataUsageDetailViewpublic class DataUsageDetailView extends android.widget.LinearLayout Layout for the data usage detail in quick settings. |
Fields Summary |
---|
private static final double | KB | private static final double | MB | private static final double | GB | private final DecimalFormat | FORMAT |
Methods Summary |
---|
public void | bind(NetworkController.MobileDataController.DataUsageInfo info)
final Resources res = mContext.getResources();
final int titleId;
final long bytes;
int usageColor = R.color.system_accent_color;
final String top;
String bottom = null;
if (info.usageLevel < info.warningLevel || info.limitLevel <= 0) {
// under warning, or no limit
titleId = R.string.quick_settings_cellular_detail_data_usage;
bytes = info.usageLevel;
top = res.getString(R.string.quick_settings_cellular_detail_data_warning,
formatBytes(info.warningLevel));
} else if (info.usageLevel <= info.limitLevel) {
// over warning, under limit
titleId = R.string.quick_settings_cellular_detail_remaining_data;
bytes = info.limitLevel - info.usageLevel;
top = res.getString(R.string.quick_settings_cellular_detail_data_used,
formatBytes(info.usageLevel));
bottom = res.getString(R.string.quick_settings_cellular_detail_data_limit,
formatBytes(info.limitLevel));
} else {
// over limit
titleId = R.string.quick_settings_cellular_detail_over_limit;
bytes = info.usageLevel - info.limitLevel;
top = res.getString(R.string.quick_settings_cellular_detail_data_used,
formatBytes(info.usageLevel));
bottom = res.getString(R.string.quick_settings_cellular_detail_data_limit,
formatBytes(info.limitLevel));
usageColor = R.color.system_warning_color;
}
final TextView title = (TextView) findViewById(android.R.id.title);
title.setText(titleId);
final TextView usage = (TextView) findViewById(R.id.usage_text);
usage.setText(formatBytes(bytes));
usage.setTextColor(res.getColor(usageColor));
final DataUsageGraph graph = (DataUsageGraph) findViewById(R.id.usage_graph);
graph.setLevels(info.limitLevel, info.warningLevel, info.usageLevel);
final TextView carrier = (TextView) findViewById(R.id.usage_carrier_text);
carrier.setText(info.carrier);
final TextView period = (TextView) findViewById(R.id.usage_period_text);
period.setText(info.period);
final TextView infoTop = (TextView) findViewById(R.id.usage_info_top_text);
infoTop.setVisibility(top != null ? View.VISIBLE : View.GONE);
infoTop.setText(top);
final TextView infoBottom = (TextView) findViewById(R.id.usage_info_bottom_text);
infoBottom.setVisibility(bottom != null ? View.VISIBLE : View.GONE);
infoBottom.setText(bottom);
| private java.lang.String | formatBytes(long bytes)
final long b = Math.abs(bytes);
double val;
String suffix;
if (b > 100 * MB) {
val = b / GB;
suffix = "GB";
} else if (b > 100 * KB) {
val = b / MB;
suffix = "MB";
} else {
val = b / KB;
suffix = "KB";
}
return FORMAT.format(val * (bytes < 0 ? -1 : 1)) + " " + suffix;
| protected void | onConfigurationChanged(android.content.res.Configuration newConfig)
super.onConfigurationChanged(newConfig);
FontSizeUtils.updateFontSize(this, android.R.id.title, R.dimen.qs_data_usage_text_size);
FontSizeUtils.updateFontSize(this, R.id.usage_text, R.dimen.qs_data_usage_usage_text_size);
FontSizeUtils.updateFontSize(this, R.id.usage_carrier_text,
R.dimen.qs_data_usage_text_size);
FontSizeUtils.updateFontSize(this, R.id.usage_info_top_text,
R.dimen.qs_data_usage_text_size);
FontSizeUtils.updateFontSize(this, R.id.usage_period_text, R.dimen.qs_data_usage_text_size);
FontSizeUtils.updateFontSize(this, R.id.usage_info_bottom_text,
R.dimen.qs_data_usage_text_size);
|
|