DialogLandConfig.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247
  1. package com.edufound.android.xyyf.config;
  2. import android.app.Activity;
  3. import android.content.Context;
  4. import android.content.pm.ActivityInfo;
  5. import android.graphics.Color;
  6. import android.os.Build;
  7. import android.text.Editable;
  8. import android.text.TextWatcher;
  9. import android.view.Gravity;
  10. import android.view.MotionEvent;
  11. import android.view.View;
  12. import android.widget.EditText;
  13. import android.widget.ImageView;
  14. import android.widget.LinearLayout;
  15. import android.widget.TextView;
  16. import com.edufound.android.xyyf.R;
  17. import com.edufound.android.xyyf.activity.MainActivity;
  18. import com.edufound.android.xyyf.main.MainView;
  19. import com.edufound.android.xyyf.phonelogin.PhoneLoginPersenter;
  20. import com.edufound.android.xyyf.util.Logger;
  21. import com.edufound.android.xyyf.util.ToastUtil;
  22. import com.mobile.auth.gatewayauth.AuthRegisterXmlConfig;
  23. import com.mobile.auth.gatewayauth.AuthUIConfig;
  24. import com.mobile.auth.gatewayauth.AuthUIControlClickListener;
  25. import com.mobile.auth.gatewayauth.PhoneNumberAuthHelper;
  26. import com.mobile.auth.gatewayauth.ui.AbstractPnsViewDelegate;
  27. import org.json.JSONException;
  28. import org.json.JSONObject;
  29. import java.io.IOException;
  30. public class DialogLandConfig extends BaseUIConfig {
  31. private int mOldScreenOrientation = ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT;
  32. MainView mView;
  33. int showType = 0;
  34. PhoneLoginPersenter mPersenter;
  35. TextView title;
  36. TextView change;
  37. LinearLayout mLayout;
  38. EditText mPhoneNum;
  39. TextView mGetVer;
  40. EditText mInputVer;
  41. LinearLayout mClose;
  42. ImageView mHWLogin;
  43. boolean isCheckedUP = false;
  44. public DialogLandConfig(Activity activity, PhoneNumberAuthHelper authHelper, MainView view) {
  45. super(activity, authHelper, view);
  46. mView = view;
  47. mPersenter = new PhoneLoginPersenter(null);
  48. }
  49. public DialogLandConfig(Activity activity, PhoneNumberAuthHelper authHelper) {
  50. super(activity, authHelper);
  51. mPersenter = new PhoneLoginPersenter(null);
  52. }
  53. @Override
  54. public void configAuthPage() {
  55. mAuthHelper.removeAuthRegisterXmlConfig();
  56. mAuthHelper.removeAuthRegisterViewConfig();
  57. int authPageOrientation = ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE;
  58. if (Build.VERSION.SDK_INT == 26) {
  59. mOldScreenOrientation = mActivity.getRequestedOrientation();
  60. mActivity.setRequestedOrientation(authPageOrientation);
  61. authPageOrientation = ActivityInfo.SCREEN_ORIENTATION_BEHIND;
  62. }
  63. updateScreenSize(authPageOrientation);
  64. final int dialogWidth = (int) (mScreenWidthDp * 1.1);
  65. final int dialogHeight = (int) (mScreenHeightDp * 0.4);
  66. mAuthHelper.addAuthRegisterXmlConfig(new AuthRegisterXmlConfig.Builder()
  67. .setLayout(R.layout.custom_land_dialog, new AbstractPnsViewDelegate() {
  68. @Override
  69. public void onViewCreated(final View view) {
  70. title = view.findViewById(R.id.custom_land_login_phone_title);
  71. change = view.findViewById(R.id.changePhoneNumLogin);
  72. mLayout = view.findViewById(R.id.custom_land_login_phone_frame);
  73. mPhoneNum = view.findViewById(R.id.phonenumber_login_number);
  74. mGetVer = view.findViewById(R.id.phonenumber_getverifcation);
  75. mInputVer = view.findViewById(R.id.phonenumber_login_ver);
  76. mClose = view.findViewById(R.id.login_phone_landscape_close);
  77. mHWLogin = view.findViewById(R.id.huawei_login);
  78. mGetVer.setOnClickListener(new View.OnClickListener() {
  79. @Override
  80. public void onClick(View v) {
  81. }
  82. });
  83. mPersenter.setVerText(mGetVer);
  84. mGetVer.setOnTouchListener(new View.OnTouchListener() {
  85. @Override
  86. public boolean onTouch(View v, MotionEvent event) {
  87. switch (event.getAction()) {
  88. case MotionEvent.ACTION_DOWN:
  89. mGetVer.setBackgroundResource(R.drawable.shape_login_phonenumber_getverification_selected);
  90. mGetVer.setTextColor(Color.WHITE);
  91. break;
  92. case MotionEvent.ACTION_CANCEL:
  93. case MotionEvent.ACTION_UP:
  94. try {
  95. mPersenter.getVCode(mPhoneNum.getText().toString());
  96. } catch (IOException e) {
  97. e.printStackTrace();
  98. }
  99. break;
  100. }
  101. return false;
  102. }
  103. });
  104. change.setOnClickListener(new View.OnClickListener() {
  105. @Override
  106. public void onClick(View v) {
  107. switch (showType) {
  108. case 0:
  109. //
  110. view.bringToFront();
  111. mLayout.setVisibility(View.VISIBLE);
  112. title.setText("登录注册解锁更多精彩内容");
  113. change.setText("一键登录");
  114. showType = 1;
  115. break;
  116. case 1:
  117. // view.bringToFront();
  118. mLayout.setVisibility(View.INVISIBLE);
  119. change.setText("切换账号");
  120. title.setText("登录");
  121. showType = 0;
  122. break;
  123. }
  124. }
  125. });
  126. mInputVer.addTextChangedListener(new TextWatcher() {
  127. @Override
  128. public void beforeTextChanged(CharSequence s, int start, int count, int after) {
  129. }
  130. @Override
  131. public void onTextChanged(CharSequence s, int start, int before, int count) {
  132. if (s.toString().length() == 4) {
  133. Logger.e("检查验证码并且登录");
  134. if (!isCheckedUP) {
  135. ToastUtil.showToast("请同意服务条款");
  136. return;
  137. }
  138. try {
  139. mPersenter.LoginByVCode(mPhoneNum.getText().toString(), mInputVer.getText().toString());
  140. } catch (JSONException e) {
  141. e.printStackTrace();
  142. }
  143. }
  144. }
  145. @Override
  146. public void afterTextChanged(Editable s) {
  147. }
  148. });
  149. mClose.setOnClickListener(new View.OnClickListener() {
  150. @Override
  151. public void onClick(View v) {
  152. MainActivity.getInstance().loadJSMehtodPost("closeLogin('700000')");
  153. mAuthHelper.quitLoginPage();
  154. }
  155. });
  156. mHWLogin.setOnClickListener(new View.OnClickListener() {
  157. @Override
  158. public void onClick(View v) {
  159. mAuthHelper.quitLoginPage();
  160. mPersenter.huaweiLogin(MainActivity.getInstance(), 8888);
  161. }
  162. });
  163. }
  164. }).build());
  165. showAllUi(dialogWidth, dialogHeight, authPageOrientation);
  166. }
  167. void showAllUi(int dialogWidth, int dialogHeight, int authPageOrientation) {
  168. mAuthHelper.setAuthUIConfig(new AuthUIConfig.Builder()
  169. .setNavHidden(true)
  170. .setCheckboxHidden(false)
  171. .setLogoHidden(true)
  172. .setSloganHidden(true)
  173. .setNavReturnHidden(true)
  174. .setSwitchAccHidden(true)
  175. // .setNumberFieldOffsetX(60)
  176. .setNumberLayoutGravity(Gravity.CENTER)
  177. .setNumberSize(24)
  178. .setNumFieldOffsetY(10)
  179. .setLogBtnOffsetY(60)
  180. .setPrivacyOffsetY_B(10)
  181. .setLogBtnMarginLeftAndRight(20)
  182. .setLogBtnWidth(175)
  183. .setLogBtnHeight(35)
  184. .setLogBtnLayoutGravity(Gravity.CENTER)
  185. .setLogBtnText("本机号码一键登录")
  186. .setLogBtnTextSize(18)
  187. .setDialogWidth(dialogWidth)
  188. .setNavText("")
  189. .setDialogHeight(dialogHeight)
  190. .setDialogOffsetY(0)
  191. .setScreenOrientation(authPageOrientation)
  192. .setAppPrivacyOne("《隐私权限和用户协议》", "http://m-xyyf-web.ai160.com/res/protocol/protocol.htm")
  193. .setStatusBarHidden(true)
  194. .setPrivacyMargin(60)
  195. .setPrivacyTextSize(12)
  196. .setVendorPrivacyPrefix("《")
  197. .setVendorPrivacySuffix("》")
  198. .create());
  199. mAuthHelper.setUIClickListener(new AuthUIControlClickListener() {
  200. @Override
  201. public void onClick(String s, Context context, String s1) {
  202. switch (Integer.valueOf(s)) {
  203. case 700003:
  204. JSONObject jsonObject = null;
  205. try {
  206. jsonObject = new JSONObject(s1);
  207. isCheckedUP = jsonObject.getBoolean("isChecked");
  208. if (isCheckedUP && mInputVer.getText().toString().length() == 4) {
  209. mPersenter.LoginByVCode(mPhoneNum.getText().toString(), mInputVer.getText().toString());
  210. }
  211. } catch (Exception e) {
  212. e.printStackTrace();
  213. }
  214. break;
  215. }
  216. }
  217. });
  218. }
  219. @Override
  220. public void onResume() {
  221. super.onResume();
  222. if (mOldScreenOrientation != mActivity.getRequestedOrientation()) {
  223. mActivity.setRequestedOrientation(mOldScreenOrientation);
  224. }
  225. }
  226. }