DialogLandConfig.java 11 KB

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