CopySettingActivity.java 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. package epson.print.copy;
  2. import android.content.Context;
  3. import android.content.Intent;
  4. import android.os.Bundle;
  5. import android.view.LayoutInflater;
  6. import android.view.View;
  7. import android.view.ViewGroup;
  8. import android.widget.AdapterView;
  9. import android.widget.ArrayAdapter;
  10. import android.widget.ImageView;
  11. import android.widget.ListView;
  12. import android.widget.TextView;
  13. import com.epson.mobilephone.common.wifidirect.WiFiDirectManager;
  14. import java.util.ArrayList;
  15. import java.util.Iterator;
  16. import epson.print.R;
  17. import epson.print.Util.EPLog;
  18. import epson.print.copy.Component.ecopycomponent.ECopyComponent;
  19. import epson.print.copy.Component.ecopycomponent.ECopyOptionItem;
  20. public class CopySettingActivity extends ActivityBase {
  21. private String TAG = "CopySettingActivity";
  22. ECopyComponent.ICopyOptionListener optionListener;
  23. ActivityBase.OptionItemChangedListener optionValueChangedListener;
  24. String settingItemKey;
  25. public void onCreate(Bundle bundle) {
  26. super.onCreate(bundle);
  27. EPLog.i(TAG, "onCreate");
  28. setContentView((int) R.layout.copy_setting);
  29. Intent intent = getIntent();
  30. if (intent != null) {
  31. settingItemKey = intent.getStringExtra("Key");
  32. setActionBar(string(settingItemKey), true);
  33. }
  34. optionValueChangedListener = new ActivityBase.OptionItemChangedListener() {
  35. public void onOptionItemChanged(ECopyOptionItem eCopyOptionItem) {
  36. copyComponent.setCopyOptionItem(eCopyOptionItem);
  37. }
  38. };
  39. optionListener = new ECopyComponent.ICopyOptionListener() {
  40. public void onCopyOptionChanged(ECopyOptionItem eCopyOptionItem, ArrayList<ECopyOptionItem> arrayList, ECopyComponent.ICopyOptionListener.CopyOptionChangedError copyOptionChangedError) {
  41. loading.dismiss();
  42. if (copyOptionChangedError != null) {
  43. CopySettingActivity copySettingActivity = CopySettingActivity.this;
  44. ActivityBase.errorDialog errordialog = new ActivityBase.errorDialog(copySettingActivity);
  45. String[] reasonText = errordialog.getReasonText(copyOptionChangedError);
  46. errordialog.showErrorDialog(reasonText[0], reasonText[1]);
  47. return;
  48. }
  49. finish();
  50. }
  51. };
  52. optionContext = copyComponent.getBindedCopyOptionContext();
  53. copyComponent.bindCopyOptionContext(optionContext, optionListener);
  54. buildCopyOptions(copyComponent.getCopyOptionItems());
  55. }
  56. private void buildCopyOptions(ArrayList<ECopyOptionItem> arrayList) {
  57. EPLog.i(TAG, "buildCopyOptions");
  58. Iterator<ECopyOptionItem> it = arrayList.iterator();
  59. while (it.hasNext()) {
  60. ECopyOptionItem next = it.next();
  61. ECopyOptionItem.ECopyOptionItemKey key = next.getKey();
  62. if (key.name().equalsIgnoreCase(settingItemKey)) {
  63. optionValueMap.put(key, new OthersettingValue(next));
  64. }
  65. }
  66. }
  67. class OthersettingValue extends ActivityBase.ListOptionValue {
  68. int selectedItemPos;
  69. OthersettingValue(ECopyOptionItem eCopyOptionItem) {
  70. super();
  71. bindOption(eCopyOptionItem);
  72. capabilitySetting(eCopyOptionItem, CopySettingActivity.this);
  73. setOptionValueChangedListener (optionValueChangedListener);
  74. }
  75. private SettingAdapter getArrayAdapter(OthersettingValue othersettingValue, Context context) {
  76. return new SettingAdapter(context, R.layout.setting_item, othersettingValue.getKeyArray());
  77. }
  78. private void capabilitySetting(ECopyOptionItem eCopyOptionItem, Context context) {
  79. ListView listView = (ListView) findViewById(R.id.copy_setting_list);
  80. listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
  81. public void onItemClick(AdapterView<?> adapterView, View view, int i, long j) {
  82. loading.show();
  83. optionItem.selectChoice((ECopyOptionItem.ECopyOptionItemChoice) choices.get(i));
  84. if (changedListener != null) {
  85. changedListener.onOptionItemChanged (optionItem);
  86. }
  87. isKeepSimpleAPConnection = true;
  88. }
  89. });
  90. listView.setAdapter(getArrayAdapter(this, context));
  91. for (int i = 0; i < choices.size(); i++) {
  92. if (selected == choices.get(i)) {
  93. selectedItemPos = i;
  94. return;
  95. }
  96. }
  97. }
  98. private class SettingAdapter extends ArrayAdapter<String> {
  99. private LayoutInflater inflater;
  100. private String[] items;
  101. public SettingAdapter(Context context, int i, String[] strArr) {
  102. super(context, i, strArr);
  103. items = strArr;
  104. inflater = (LayoutInflater) context.getSystemService(Service.LAYOUT_INFLATER_SERVICE);
  105. }
  106. public View getView(int i, View view, ViewGroup viewGroup) {
  107. if (view == null) {
  108. view = inflater.inflate(R.layout.setting_item, (ViewGroup) null);
  109. }
  110. ((TextView) view.findViewById(R.id.setting_name)).setText(items[i]);
  111. if (i == selectedItemPos) {
  112. ((ImageView) view.findViewById(R.id.setting_active_icon)).setVisibility(0);
  113. } else {
  114. ((ImageView) view.findViewById(R.id.setting_active_icon)).setVisibility(8);
  115. }
  116. return view;
  117. }
  118. }
  119. }
  120. public void onBackPressed() {
  121. isKeepSimpleAPConnection = true;
  122. finish();
  123. }
  124. protected void onResume() {
  125. super.onResume();
  126. if (!WiFiDirectManager.isNeedConnect(this, WiFiDirectManager.DEVICE_TYPE_PRINTER)) {
  127. isTryConnectSimpleAp = false;
  128. } else if (!isTryConnectSimpleAp) {
  129. isTryConnectSimpleAp = true;
  130. if (WiFiDirectManager.reconnect(this, WiFiDirectManager.DEVICE_TYPE_PRINTER, -1)) {
  131. isKeepSimpleAPConnection = true;
  132. }
  133. }
  134. }
  135. protected void onPause() {
  136. super.onPause();
  137. if (!isKeepSimpleAPConnection) {
  138. WiFiDirectManager.disconnect(this, WiFiDirectManager.DEVICE_TYPE_PRINTER, ActivityBase.printerIp);
  139. }
  140. }
  141. }