package com.edufound.android.xyyf.config; import android.app.Activity; import android.content.Context; import android.content.pm.ActivityInfo; import android.graphics.Color; import android.os.Build; import android.text.Editable; import android.text.TextWatcher; import android.view.Gravity; import android.view.MotionEvent; import android.view.View; import android.widget.EditText; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import com.edufound.android.xyyf.R; import com.edufound.android.xyyf.activity.MainActivity; import com.edufound.android.xyyf.main.MainView; import com.edufound.android.xyyf.phonelogin.PhoneLoginPersenter; import com.edufound.android.xyyf.util.Logger; import com.edufound.android.xyyf.util.ToastUtil; import com.mobile.auth.gatewayauth.AuthRegisterXmlConfig; import com.mobile.auth.gatewayauth.AuthUIConfig; import com.mobile.auth.gatewayauth.AuthUIControlClickListener; import com.mobile.auth.gatewayauth.PhoneNumberAuthHelper; import com.mobile.auth.gatewayauth.ui.AbstractPnsViewDelegate; import org.json.JSONException; import org.json.JSONObject; import java.io.IOException; public class DialogLandConfig extends BaseUIConfig { private int mOldScreenOrientation = ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT; MainView mView; int showType = 0; PhoneLoginPersenter mPersenter; TextView title; TextView change; LinearLayout mLayout; EditText mPhoneNum; TextView mGetVer; EditText mInputVer; LinearLayout mClose; boolean isCheckedUP = false; public DialogLandConfig(Activity activity, PhoneNumberAuthHelper authHelper, MainView view) { super(activity, authHelper, view); mView = view; mPersenter = new PhoneLoginPersenter(null); } public DialogLandConfig(Activity activity, PhoneNumberAuthHelper authHelper) { super(activity, authHelper); mPersenter = new PhoneLoginPersenter(null); } @Override public void configAuthPage() { mAuthHelper.removeAuthRegisterXmlConfig(); mAuthHelper.removeAuthRegisterViewConfig(); int authPageOrientation = ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE; if (Build.VERSION.SDK_INT == 26) { mOldScreenOrientation = mActivity.getRequestedOrientation(); mActivity.setRequestedOrientation(authPageOrientation); authPageOrientation = ActivityInfo.SCREEN_ORIENTATION_BEHIND; } updateScreenSize(authPageOrientation); final int dialogWidth = (int) (mScreenWidthDp * 1.1); final int dialogHeight = (int) (mScreenHeightDp * 0.4); mAuthHelper.addAuthRegisterXmlConfig(new AuthRegisterXmlConfig.Builder() .setLayout(R.layout.custom_land_dialog, new AbstractPnsViewDelegate() { @Override public void onViewCreated(final View view) { title = view.findViewById(R.id.custom_land_login_phone_title); change = view.findViewById(R.id.changePhoneNumLogin); mLayout = view.findViewById(R.id.custom_land_login_phone_frame); mPhoneNum = view.findViewById(R.id.phonenumber_login_number); mGetVer = view.findViewById(R.id.phonenumber_getverifcation); mInputVer = view.findViewById(R.id.phonenumber_login_ver); mClose = view.findViewById(R.id.login_phone_landscape_close); mGetVer.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { } }); mPersenter.setVerText(mGetVer); mGetVer.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: mGetVer.setBackgroundResource(R.drawable.shape_login_phonenumber_getverification_selected); mGetVer.setTextColor(Color.WHITE); break; case MotionEvent.ACTION_CANCEL: case MotionEvent.ACTION_UP: try { mPersenter.getVCode(mPhoneNum.getText().toString()); } catch (IOException e) { e.printStackTrace(); } break; } return false; } }); change.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { switch (showType) { case 0: // view.bringToFront(); mLayout.setVisibility(View.VISIBLE); title.setText("登录注册解锁更多精彩内容"); change.setText("一键登录"); showType = 1; break; case 1: // view.bringToFront(); mLayout.setVisibility(View.INVISIBLE); change.setText("切换账号"); title.setText("登录"); showType = 0; break; } } }); mInputVer.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { if (s.toString().length() == 4) { Logger.e("检查验证码并且登录"); if (!isCheckedUP) { ToastUtil.showToast("请同意服务条款"); return; } try { mPersenter.LoginByVCode(mPhoneNum.getText().toString(), s.toString()); } catch (JSONException e) { e.printStackTrace(); } } } @Override public void afterTextChanged(Editable s) { } }); mClose.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { MainActivity.getInstance().loadJSMehtodPost("closeLogin('700000')"); mAuthHelper.quitLoginPage(); } }); } }).build()); showAllUi(dialogWidth, dialogHeight, authPageOrientation); } void showAllUi(int dialogWidth, int dialogHeight, int authPageOrientation) { mAuthHelper.setAuthUIConfig(new AuthUIConfig.Builder() .setNavHidden(true) .setCheckboxHidden(false) .setLogoHidden(true) .setSloganHidden(true) .setNavReturnHidden(true) .setSwitchAccHidden(true) // .setNumberFieldOffsetX(60) .setNumberLayoutGravity(Gravity.CENTER) .setNumberSize(24) .setNumFieldOffsetY(10) .setLogBtnOffsetY(60) .setPrivacyOffsetY_B(10) .setLogBtnMarginLeftAndRight(20) .setLogBtnWidth(175) .setLogBtnHeight(35) .setLogBtnLayoutGravity(Gravity.CENTER) .setLogBtnText("本机号码一键登录") .setLogBtnTextSize(18) .setDialogWidth(dialogWidth) .setNavText("") .setDialogHeight(dialogHeight) .setDialogOffsetY(0) .setScreenOrientation(authPageOrientation) .setAppPrivacyOne("《隐私政策》", "http://m-xyyf-web.ai160.com/res/protocol/private.htm") .setAppPrivacyTwo("《用户协议》", "http://m-xyyf-web.ai160.com/res/protocol/service.htm") .setStatusBarHidden(true) .setPrivacyMargin(60) .setPrivacyTextSize(12) .setVendorPrivacyPrefix("《") .setVendorPrivacySuffix("》") .create()); mAuthHelper.setUIClickListener(new AuthUIControlClickListener() { @Override public void onClick(String s, Context context, String s1) { Logger.e("s:" + s); Logger.e("s1:" + s1); switch (Integer.valueOf(s)) { case 700003: JSONObject jsonObject = null; try { jsonObject = new JSONObject(s1); isCheckedUP = jsonObject.getBoolean("isChecked"); if (isCheckedUP && mInputVer.getText().toString().length() == 4) { mPersenter.LoginByVCode(mPhoneNum.getText().toString(), mInputVer.getText().toString()); } } catch (Exception e) { e.printStackTrace(); } break; } } }); } @Override public void onResume() { super.onResume(); if (mOldScreenOrientation != mActivity.getRequestedOrientation()) { mActivity.setRequestedOrientation(mOldScreenOrientation); } } }