BatteryInfoAdapter.java 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. package epson.maintain;
  2. import android.app.Activity;
  3. import android.content.Context;
  4. import android.view.LayoutInflater;
  5. import android.view.View;
  6. import android.view.ViewGroup;
  7. import android.widget.ArrayAdapter;
  8. import android.widget.ImageView;
  9. import android.widget.ListAdapter;
  10. import android.widget.ListView;
  11. import android.widget.TextView;
  12. import epson.print.R;
  13. import java.util.ArrayList;
  14. public class BatteryInfoAdapter extends ArrayAdapter<BatteryInfoAdapter.BatteryInfoList> {
  15. private LayoutInflater mInflater;
  16. private ArrayList<BatteryInfoList> mItems;
  17. private int mResourceId;
  18. public boolean isEnabled(int i) {
  19. return false;
  20. }
  21. public BatteryInfoAdapter(Context context, int i, ArrayList<BatteryInfoList> arrayList) {
  22. super(context, i, arrayList);
  23. mResourceId = i;
  24. mItems = arrayList;
  25. mInflater = (LayoutInflater) context.getSystemService("layout_inflater");
  26. }
  27. public View getView(int i, View view, ViewGroup viewGroup) {
  28. if (view == null) {
  29. view = mInflater.inflate(mResourceId, (ViewGroup) null);
  30. }
  31. BatteryInfoList batteryInfoList = mItems.get(i);
  32. ((TextView) view.findViewById(R.id.bt_name)).setText(batteryInfoList.getBatteryName());
  33. ((TextView) view.findViewById(R.id.bt_percentage)).setText(batteryInfoList.getBatteryStatusPercentage());
  34. ((ImageView) view.findViewById(R.id.bt_status_icon)).setImageResource(batteryInfoList.getBatteryStatusIcon());
  35. return view;
  36. }
  37. static class BatteryInfoList {
  38. private String mBatteryName = null;
  39. private String mBatteryPercentage = null;
  40. private int mBatteryStatusIcon = 0;
  41. BatteryInfoList() {
  42. }
  43. private String getBatteryName() {
  44. return mBatteryName;
  45. }
  46. private void setBatteryStatusName(String str) {
  47. mBatteryName = str;
  48. }
  49. private String getBatteryStatusPercentage() {
  50. return mBatteryPercentage;
  51. }
  52. private void setBatteryStatusPercentage(String str) {
  53. mBatteryPercentage = str;
  54. }
  55. private int getBatteryStatusIcon() {
  56. return mBatteryStatusIcon;
  57. }
  58. private void setBatteryStatusIcon(int i) {
  59. mBatteryStatusIcon = i;
  60. }
  61. }
  62. public static class BatteryInfoManager {
  63. static boolean batteryIsUnknown(int i, int i2) {
  64. return i == 0 || i2 == 2;
  65. }
  66. public static void showBatteryList(Activity activity, int i, int i2, int[] iArr, int[] iArr2) {
  67. ArrayList arrayList = new ArrayList();
  68. for (int i3 = 0; i3 < i; i3++) {
  69. BatteryInfoList batteryInfoList = new BatteryInfoList();
  70. setBatteryName(activity, batteryInfoList, i, i3);
  71. setBatteryPercentage(activity, batteryInfoList, i2, iArr[i3], iArr2[i3]);
  72. setBatteryIcon(activity, batteryInfoList, i2, iArr[i3], iArr2[i3]);
  73. arrayList.add(batteryInfoList);
  74. }
  75. showListView(activity, new BatteryInfoAdapter(activity, R.layout.maintain_battery_info, arrayList));
  76. }
  77. public static void clearBatteryList(Activity activity) {
  78. activity.findViewById(R.id.bt_PowerText).setVisibility(View.GONE);
  79. showListView(activity, (BatteryInfoAdapter) null);
  80. }
  81. static void setBatteryName(Context context, BatteryInfoList batteryInfoList, int i, int i2) {
  82. int i3 = i2 + 1;
  83. if (i == 1) {
  84. batteryInfoList.setBatteryStatusName(context.getString(R.string.bi_remain));
  85. return;
  86. }
  87. batteryInfoList.setBatteryStatusName(context.getString(R.string.bi_remain) + " " + i3);
  88. }
  89. static void setBatteryPercentage(Context context, BatteryInfoList batteryInfoList, int i, int i2, int i3) {
  90. if (batteryIsUnknown(i, i2)) {
  91. return;
  92. }
  93. if (i3 < 0 || i3 > 100) {
  94. batteryInfoList.setBatteryStatusPercentage(context.getString(R.string.bi_no_percentage));
  95. return;
  96. }
  97. batteryInfoList.setBatteryStatusPercentage(i3 + " %");
  98. }
  99. static void setBatteryIcon(Activity activity, BatteryInfoList batteryInfoList, int i, int i2, int i3) {
  100. if (batteryIsUnknown(i, i2)) {
  101. batteryInfoList.setBatteryStatusIcon(R.drawable.bi_not_inserted);
  102. return;
  103. }
  104. batteryInfoList.setBatteryStatusIcon(activity.getResources().getIdentifier(String.format("bi_%s_%d", new Object[]{i2 == 1 ? "charge" : "running", Integer.valueOf((76 > i3 || i3 > 100) ? (51 > i3 || i3 >= 76) ? (26 > i3 || i3 >= 51) ? (i3 <= 0 || i3 >= 26) ? 0 : 39 : 59 : 89 : 100)}), "drawable", activity.getPackageName()));
  105. }
  106. public static void showPowerText(Activity activity) {
  107. activity.findViewById(R.id.bt_PowerText).setVisibility(View.VISIBLE);
  108. }
  109. static void showListView(Activity activity, BatteryInfoAdapter batteryInfoAdapter) {
  110. ListView listView = (ListView) activity.findViewById(R.id.battery_list);
  111. listView.setAdapter(batteryInfoAdapter);
  112. setListViewHeight(listView);
  113. }
  114. static void setListViewHeight(ListView listView) {
  115. ListAdapter adapter = listView.getAdapter();
  116. ViewGroup.LayoutParams layoutParams = listView.getLayoutParams();
  117. if (adapter == null) {
  118. layoutParams.height = 0;
  119. } else {
  120. int i = 0;
  121. for (int i2 = 0; i2 < adapter.getCount(); i2++) {
  122. View view = adapter.getView(i2, (View) null, listView);
  123. view.measure(0, 0);
  124. i += view.getMeasuredHeight();
  125. }
  126. layoutParams.height = i + (listView.getDividerHeight() * (adapter.getCount() - 1));
  127. }
  128. listView.setLayoutParams(layoutParams);
  129. listView.requestLayout();
  130. }
  131. }
  132. }