EtlDialog.java 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. package com.bgy.autosale.payutil;
  2. import android.app.Activity;
  3. import android.content.Context;
  4. import android.graphics.Bitmap;
  5. import android.graphics.drawable.Drawable;
  6. import android.os.IBinder;
  7. import android.text.TextUtils;
  8. import android.view.MotionEvent;
  9. import android.view.View;
  10. import android.view.inputmethod.InputMethodManager;
  11. import android.widget.Button;
  12. import android.widget.EditText;
  13. import android.widget.LinearLayout;
  14. import android.widget.RadioButton;
  15. import android.widget.RadioGroup;
  16. import android.widget.TextView;
  17. import com.bgy.autosale.R;
  18. import com.hboxs.base_library.constant.Name;
  19. import com.hboxs.base_library.listener.DialogClickListener;
  20. import com.hboxs.base_library.util.DrawableSelectorUtils;
  21. import com.hboxs.base_library.util.SharedPreferencesUtils;
  22. import com.hboxs.base_library.util.ToastUtil;
  23. import com.hboxs.base_library.util.UiUtil;
  24. import com.hboxs.base_library.widget.BaseDialog;
  25. import com.orhanobut.hawk.Hawk;
  26. /**
  27. * @author whw
  28. * @time 2019/3/13
  29. * @Description 一个输入框弹框
  30. */
  31. public class EtlDialog extends BaseDialog implements View.OnClickListener, RadioGroup.OnCheckedChangeListener {
  32. private String tips = UiUtil.getStringRes(R.string.glyid);
  33. private String machineType;
  34. public void setListener(DialogClickListener listener) {
  35. this.listener = listener;
  36. }
  37. private DialogClickListener listener;
  38. public EtlDialog(Context context, Activity activity) {
  39. super(context, activity);
  40. }
  41. @Override
  42. public void show() {
  43. super.show();
  44. }
  45. private Button btnApply;
  46. private RadioGroup rgMachineType;
  47. private RadioButton rb320,rb330;
  48. private LinearLayout llCodeImage;
  49. private TextView tvServerid;
  50. private EditText etServerId;
  51. @Override
  52. protected void initView() {
  53. btnApply=findViewById(R.id.btn_apply);
  54. btnApply.setOnClickListener(this);
  55. rgMachineType=findViewById(R.id.rg_machine_type);
  56. rgMachineType.setOnCheckedChangeListener(this);
  57. // Drawable drawableSelector = DrawableSelectorUtils.createDrawableSelector(mActivity);
  58. // btnApply.setBackground(drawableSelector);
  59. rb320=findViewById(R.id.rb_320);
  60. rb330=findViewById(R.id.rb_330);
  61. String model = Hawk.get(Name.MACHINE_TYPE, Name.SI320);
  62. if ("MG320".equals(model)) {
  63. rb320.setChecked(true);
  64. }else{
  65. rb330.setChecked(true);
  66. }
  67. // generateDeviceQRcode(model);
  68. int connectState = (int) SharedPreferencesUtils.getParam(Name.CONNECT_STATE, 999);
  69. llCodeImage=findViewById(R.id.ll_code_image);
  70. tvServerid=findViewById(R.id.tv_serverid);
  71. if (connectState==999) {
  72. llCodeImage.setVisibility(View.GONE);
  73. tvServerid.setVisibility(View.GONE);
  74. }
  75. etServerId=findViewById(R.id.et_server_id);
  76. }
  77. public void conceal(){
  78. rgMachineType.setVisibility(View.VISIBLE);
  79. }
  80. @Override
  81. protected int getLayout() {
  82. return R.layout.dialog_et;
  83. }
  84. @Override
  85. protected int getAnimType() {
  86. return ANIM_CENTER_IN_OUT;
  87. }
  88. @Override
  89. public void onClick(View v) {
  90. switch (v.getId()) {
  91. case R.id.btn_apply:
  92. Hawk.put(Name.MACHINE_TYPE,machineType);
  93. String trim = etServerId.getText().toString().trim();
  94. if (TextUtils.isEmpty(trim)) {
  95. ToastUtil.showToast(tips);
  96. return;
  97. }
  98. listener.onClickListener(R.id.btn_apply, trim);
  99. break;
  100. }
  101. dismiss();
  102. }
  103. @Override
  104. public void onCheckedChanged(RadioGroup group, int checkedId) {
  105. switch (checkedId) {
  106. case R.id.rb_320:
  107. machineType = "SI320";
  108. // generateDeviceQRcode("SI320");
  109. break;
  110. }
  111. }
  112. /**
  113. * 生成设备二维码方法
  114. */
  115. // public void generateDeviceQRcode(String model){
  116. // mCodeBitmap = ZXingUtils.createQRImage((FileUtil.getDeviceId1()+"+"+model+"+"+Heartbeat.clientId), 999, 999);
  117. // binding.codImage.setImageBitmap(mCodeBitmap);
  118. // }
  119. public Bitmap mCodeBitmap;
  120. @Override
  121. public boolean dispatchTouchEvent(MotionEvent ev) {
  122. if (ev.getAction() == MotionEvent.ACTION_DOWN) {
  123. View v = getCurrentFocus();
  124. if (isShouldHideKeyboard(v, ev)) {
  125. hideKeyboard(v.getWindowToken());
  126. }
  127. }
  128. return super.dispatchTouchEvent(ev);
  129. }
  130. /**
  131. * 根据EditText所在坐标和用户点击的坐标相对比,来判断是否隐藏键盘,因为当用户点击EditText时则不能隐藏
  132. *
  133. * @param v
  134. * @param event
  135. * @return
  136. */
  137. private boolean isShouldHideKeyboard(View v, MotionEvent event) {
  138. if (v != null && (v instanceof EditText)) {
  139. int[] l = {0, 0};
  140. v.getLocationInWindow(l);
  141. int left = l[0],
  142. top = l[1],
  143. bottom = top + v.getHeight(),
  144. right = left + v.getWidth();
  145. if (event.getX() > left && event.getX() < right
  146. && event.getY() > top && event.getY() < bottom) {
  147. // 点击EditText的事件,忽略它。
  148. return false;
  149. } else {
  150. return true;
  151. }
  152. }
  153. // 如果焦点不是EditText则忽略,这个发生在视图刚绘制完,第一个焦点不在EditText上,和用户用轨迹球选择其他的焦点
  154. return false;
  155. }
  156. /**
  157. * 获取InputMethodManager,隐藏软键盘
  158. * @param token
  159. */
  160. private void hideKeyboard(IBinder token) {
  161. if (token != null) {
  162. InputMethodManager im = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
  163. im.hideSoftInputFromWindow(token, InputMethodManager.HIDE_NOT_ALWAYS);
  164. }
  165. }
  166. @Override
  167. public boolean onTouchEvent( MotionEvent event) {
  168. return super.onTouchEvent(event);
  169. }
  170. public void setRgMachineTypeVisi(int visiable){
  171. rgMachineType.setVisibility(visiable);
  172. }
  173. public void setLlCodeImageVisi(int visiable){
  174. llCodeImage.setVisibility(visiable);
  175. }
  176. public void setTvserveridText(String text){
  177. tvServerid.setText(text);
  178. }
  179. public void setEtServerId(String text){
  180. etServerId.setHint(text);
  181. }
  182. public void setTips(String tips) {
  183. this.tips = tips;
  184. }
  185. }