Browse Source

1.增加登录页面

FailedToRead 3 years ago
parent
commit
c20779b877
100 changed files with 1430 additions and 283 deletions
  1. 103 11
      app/build.gradle
  2. BIN
      app/libs/crashshield-release.aar
  3. BIN
      app/libs/phoneNumber-L-AuthSDK-2.10.1.aar
  4. BIN
      app/libs/phoneNumber-L-AuthSDK-2.11.1.1.aar
  5. 23 5
      app/src/main/AndroidManifest.xml
  6. 88 0
      app/src/main/java/com/edufound/android/xyyf/activity/DialogActivity.java
  7. 36 156
      app/src/main/java/com/edufound/android/xyyf/activity/MainActivity.java
  8. 184 0
      app/src/main/java/com/edufound/android/xyyf/activity/PhoneNumLoginActivity.java
  9. 26 3
      app/src/main/java/com/edufound/android/xyyf/application/EApplication.java
  10. 3 1
      app/src/main/java/com/edufound/android/xyyf/config/BaseUIConfig.java
  11. 7 2
      app/src/main/java/com/edufound/android/xyyf/config/DialogLandConfig.java
  12. 155 0
      app/src/main/java/com/edufound/android/xyyf/config/FullPortConfig.java
  13. 68 5
      app/src/main/java/com/edufound/android/xyyf/interfaces/JsInterfaces.java
  14. 41 13
      app/src/main/java/com/edufound/android/xyyf/main/MainPersenter.java
  15. 3 0
      app/src/main/java/com/edufound/android/xyyf/main/MainView.java
  16. 2 2
      app/src/main/java/com/edufound/android/xyyf/pay/PayInit.java
  17. 1 0
      app/src/main/java/com/edufound/android/xyyf/pay/PayPersenter.java
  18. 34 0
      app/src/main/java/com/edufound/android/xyyf/phonelogin/PhoneLoginModel.java
  19. 200 0
      app/src/main/java/com/edufound/android/xyyf/phonelogin/PhoneLoginPersenter.java
  20. 17 0
      app/src/main/java/com/edufound/android/xyyf/phonelogin/PhoneLoginView.java
  21. 10 4
      app/src/main/java/com/edufound/android/xyyf/receiver/NetworkChangeReceiver.java
  22. 1 1
      app/src/main/java/com/edufound/android/xyyf/util/Logger.java
  23. 23 0
      app/src/main/java/com/edufound/android/xyyf/util/OKHttpUtil.java
  24. 2 2
      app/src/main/java/com/edufound/android/xyyf/util/ShowDebugUrl.java
  25. 2 0
      app/src/main/java/com/edufound/android/xyyf/wxapi/WXPayEntryActivity.java
  26. BIN
      app/src/main/res/drawable-v24/icon.png
  27. 8 0
      app/src/main/res/drawable-v24/shape_login_phonenumber_getverification_selected.xml
  28. 8 0
      app/src/main/res/drawable-v24/shape_login_phonenumber_login.xml
  29. 0 66
      app/src/main/res/drawable/edufound_loading.xml
  30. BIN
      app/src/main/res/drawable/ic_launcher.jpg
  31. BIN
      app/src/main/res/drawable/icon.png
  32. BIN
      app/src/main/res/drawable/loading.png
  33. BIN
      app/src/main/res/drawable/loading1.png
  34. BIN
      app/src/main/res/drawable/loading10.png
  35. BIN
      app/src/main/res/drawable/loading11.png
  36. BIN
      app/src/main/res/drawable/loading12.png
  37. BIN
      app/src/main/res/drawable/loading13.png
  38. BIN
      app/src/main/res/drawable/loading14.png
  39. BIN
      app/src/main/res/drawable/loading15.png
  40. BIN
      app/src/main/res/drawable/loading16.png
  41. BIN
      app/src/main/res/drawable/loading17.png
  42. BIN
      app/src/main/res/drawable/loading18.png
  43. BIN
      app/src/main/res/drawable/loading19.png
  44. BIN
      app/src/main/res/drawable/loading2.png
  45. BIN
      app/src/main/res/drawable/loading20.png
  46. BIN
      app/src/main/res/drawable/loading3.png
  47. BIN
      app/src/main/res/drawable/loading4.png
  48. BIN
      app/src/main/res/drawable/loading5.png
  49. BIN
      app/src/main/res/drawable/loading6.png
  50. BIN
      app/src/main/res/drawable/loading7.png
  51. BIN
      app/src/main/res/drawable/loading8.png
  52. BIN
      app/src/main/res/drawable/loading9.png
  53. BIN
      app/src/main/res/drawable/logincheck.png
  54. BIN
      app/src/main/res/drawable/logincheck_selected.png
  55. 9 0
      app/src/main/res/drawable/rotate_loading.xml
  56. 8 0
      app/src/main/res/drawable/shape_corner.xml
  57. 6 0
      app/src/main/res/drawable/shape_corner_date.xml
  58. 8 0
      app/src/main/res/drawable/shape_login_phonenumber_edittext.xml
  59. 8 0
      app/src/main/res/drawable/shape_login_phonenumber_getverification.xml
  60. 8 0
      app/src/main/res/drawable/shape_login_phonenumber_getverification_selected.xml
  61. 8 0
      app/src/main/res/drawable/shape_login_phonenumber_login.xml
  62. BIN
      app/src/main/res/drawable/videopower.jpg
  63. 1 1
      app/src/main/res/layout/activity_main.xml
  64. 184 0
      app/src/main/res/layout/activity_privacypolicy.xml
  65. 9 5
      app/src/main/res/layout/date_view.xml
  66. 112 0
      app/src/main/res/layout/login_phonenumber.xml
  67. 1 2
      app/src/main/res/layout/player_controller.xml
  68. BIN
      app/src/main/res/raw/correctanswer.wav
  69. BIN
      app/src/main/res/raw/wronganswer.wav
  70. 1 0
      app/src/main/res/values/projectstring.xml
  71. 20 1
      app/src/main/res/values/styles.xml
  72. 0 1
      push/build/.transforms/91413793ec6afb3f93b934e923b343e2.bin
  73. BIN
      push/build/.transforms/91413793ec6afb3f93b934e923b343e2/classes/classes.dex
  74. BIN
      push/build/intermediates/aar_libs_directory/debug/libs/accs_sdk_taobao-3.3.7.2-open.jar
  75. BIN
      push/build/intermediates/aar_libs_directory/debug/libs/alicloud-android-sdk-httpdns-1.1.3.1.jar
  76. BIN
      push/build/intermediates/aar_libs_directory/debug/libs/alicloud-android-utils-1.0.3.jar
  77. BIN
      push/build/intermediates/aar_libs_directory/debug/libs/networksdk-3.5.5-open.jar
  78. BIN
      push/build/intermediates/aar_libs_directory/debug/libs/tlog_adapter-3.0.0.17.jar
  79. BIN
      push/build/intermediates/aar_libs_directory/debug/libs/tnet4android-3.1.14.9.jar
  80. BIN
      push/build/intermediates/aar_libs_directory/debug/libs/umeng-common-2.1.0.jar
  81. BIN
      push/build/intermediates/aar_libs_directory/debug/libs/umeng-push-6.0.1.jar
  82. BIN
      push/build/intermediates/aar_main_jar/debug/classes.jar
  83. 0 0
      push/build/intermediates/annotations_typedef_file/debug/typedefs.txt
  84. BIN
      push/build/intermediates/incremental/debug-mergeJavaRes/merge-state
  85. BIN
      push/build/intermediates/incremental/debug-mergeJavaRes/zip-cache/3kmAb+i0vSyQRwpE5SaI_YwvMzw=
  86. BIN
      push/build/intermediates/incremental/debug-mergeJavaRes/zip-cache/5AemtJw9ZreMxLuJhzgv58YIeJ4=
  87. BIN
      push/build/intermediates/incremental/debug-mergeJavaRes/zip-cache/UCzi_5mHUTil__+wSky4J4oDKOU=
  88. BIN
      push/build/intermediates/incremental/debug-mergeJavaRes/zip-cache/Z3L7Zn9qCpBh2pKBhBn0nAAceSQ=
  89. BIN
      push/build/intermediates/incremental/debug-mergeJavaRes/zip-cache/ZN9fYr34xsGzYbVm0mMND064qG0=
  90. BIN
      push/build/intermediates/incremental/debug-mergeJavaRes/zip-cache/q3Gg9vAufoSX1avxsVKgkearq_o=
  91. BIN
      push/build/intermediates/incremental/debug-mergeJavaRes/zip-cache/uPNGRd8IfWfZa8cnkVhhPx8Ee_o=
  92. BIN
      push/build/intermediates/incremental/debug-mergeJavaRes/zip-cache/yDzV8Jrf8EtquU+vNsqcoy29H0I=
  93. 1 1
      push/build/intermediates/incremental/packageDebugResources/compile-file-map.properties
  94. 1 1
      push/build/intermediates/incremental/packageReleaseResources/compile-file-map.properties
  95. BIN
      push/build/intermediates/library_and_local_jars_jni/debug/jni/arm64-v8a/libcocklogic-1.1.3.so
  96. BIN
      push/build/intermediates/library_and_local_jars_jni/debug/jni/arm64-v8a/libtnet-3.1.14.so
  97. BIN
      push/build/intermediates/library_and_local_jars_jni/debug/jni/armeabi-v7a/libcocklogic-1.1.3.so
  98. BIN
      push/build/intermediates/library_and_local_jars_jni/debug/jni/armeabi-v7a/libtnet-3.1.14.so
  99. BIN
      push/build/intermediates/library_and_local_jars_jni/debug/jni/armeabi/libcocklogic-1.1.3.so
  100. 0 0
      push/build/intermediates/library_and_local_jars_jni/debug/jni/armeabi/libtnet-3.1.14.so

+ 103 - 11
app/build.gradle

@@ -1,6 +1,22 @@
 apply plugin: "com.android.application"
 
+def releaseTime() {
+    return new Date().format("yyyyMMdd", TimeZone.getTimeZone("UTC"))
+}
+
 android {
+    compileSdkVersion 28
+    defaultConfig {
+        applicationId "com.edufound.android.xyyf"
+        minSdkVersion 16
+        targetSdkVersion 28
+        versionCode 10000
+        versionName "1.0.0.0"
+        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
+        multiDexEnabled true
+        flavorDimensions "versionCode"
+        manifestPlaceholders = [UMENG_CHANNEL_VALUE: "2006"]//添加一个默认渠道号
+    }
     signingConfigs {
         efunbox {
             keyAlias "edufound_key"
@@ -15,20 +31,42 @@ android {
             storePassword "edufound123"
         }
     }
-    compileSdkVersion 28
-    defaultConfig {
-        applicationId "com.edufound.android.xyyf"
-        minSdkVersion 16
-        targetSdkVersion 28
-        versionCode 10000
-        versionName "1.0.0.0"
-        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
-        multiDexEnabled true
-    }
     buildTypes {
         release {
             minifyEnabled false
             proguardFiles getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro"
+            signingConfig signingConfigs.efunbox
+            zipAlignEnabled true
+            applicationVariants.all { variant ->
+                variant.outputs.each { output ->
+                    def outputFile = output.outputFileName
+                    if (outputFile != null && output.outputFileName.endsWith('.apk')) {
+                        def fileName = "efunbox_tv_v${defaultConfig.versionCode}_${releaseTime()}_${variant.productFlavors[0].manifestPlaceholders.UMENG_CHANNEL_VALUE}_r.apk"
+                        def channel = variant.productFlavors[0].manifestPlaceholders.UMENG_CHANNEL_VALUE;
+                        def newoutputFile = "";
+                        if (channel == ("2006")) {
+                            newoutputFile = "\\义方\\"
+                        } else if (channel == ("2001")) {
+                            newoutputFile = "\\应用宝\\"
+                        } else if (channel == ("2002")) {
+                            newoutputFile = "\\360应用市场\\"
+                        } else if (channel == ("2003")) {
+                            newoutputFile = "\\百度手机助手\\"
+                        } else if (channel == ("2008")) {
+                            newoutputFile = "\\小米\\"
+                        } else if (channel == ("2007")) {
+                            newoutputFile = "\\vivo\\"
+                        }
+                        output.outputFileName = new File(newoutputFile, fileName)
+                    }
+                }
+
+            }
+        }
+        debug {
+            minifyEnabled false
+            proguardFiles getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro"
+            signingConfig signingConfigs.efunbox
         }
     }
     repositories {
@@ -42,6 +80,60 @@ android {
             jniLibs.srcDirs = ["libs"]
         }
     }
+    productFlavors {
+        //义方
+        channel_efunbox {
+            signingConfig signingConfigs.efunbox
+            manifestPlaceholders = [
+                    appCode: "2006",
+                    appIcon: "@drawable/icon",
+            ]
+        }
+        //应用宝
+        channel_yyb {
+            signingConfig signingConfigs.efunbox
+            manifestPlaceholders = [
+                    appCode: "2001",
+                    appIcon: "@drawable/icon",
+            ]
+        }
+        //360应用市场
+        channel_360 {
+            signingConfig signingConfigs.efunbox
+            manifestPlaceholders = [
+                    appCode: "2002",
+                    appIcon: "@drawable/icon",
+            ]
+        }
+        //百度手机助手
+        channel_bdsjzs {
+            signingConfig signingConfigs.efunbox
+            manifestPlaceholders = [
+                    appCode: "2003",
+                    appIcon: "@drawable/icon",
+            ]
+        }
+        //vivo
+        channel_vivo {
+            signingConfig signingConfigs.efunbox
+            manifestPlaceholders = [
+                    appCode: "2007",
+                    appIcon: "@drawable/icon",
+            ]
+        }
+        //小米
+        channel_xiaomi {
+            signingConfig signingConfigs.efunbox
+            manifestPlaceholders = [
+                    appCode: "2008",
+                    appIcon: "@drawable/icon",
+            ]
+        }
+
+    }
+    productFlavors.all {
+        flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: manifestPlaceholders.appCode, icon: manifestPlaceholders.appIcon]
+    }
 }
 allprojects {
     repositories {
@@ -111,6 +203,6 @@ dependencies {
     implementation 'com.cncoderx.wheelview:library:1.2.5'
     //阿里一键登录和校验
     implementation(name: 'crashshield-release', ext: 'aar')
-    implementation(name: 'phoneNumber-L-AuthSDK-2.10.1', ext: 'aar')
+    implementation(name: 'phoneNumber-L-AuthSDK-2.11.1.1', ext: 'aar')
 }
 

BIN
app/libs/crashshield-release.aar


BIN
app/libs/phoneNumber-L-AuthSDK-2.10.1.aar


BIN
app/libs/phoneNumber-L-AuthSDK-2.11.1.1.aar


+ 23 - 5
app/src/main/AndroidManifest.xml

@@ -13,14 +13,15 @@
     <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
     <uses-permission android:name="com.xiaomi.permission.AUTH_THIRDPAY" />
     <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
-
+    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <!-- 切换网络通道 -->
+    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <!-- 开关wifi状态,解决国内机型移动网络权限问题需要 -->
     <uses-sdk tools:overrideLibrary="tv.danmaku.ijk.media.player_arm64,tv.danmaku.ijk.media.player_x86_64" />
 
 
     <application
             android:name="com.edufound.android.xyyf.application.EApplication"
             android:allowBackup="false"
-            android:icon="@drawable/ic_launcher"
+            android:icon="${icon}"
             android:label="@string/app_name"
             android:networkSecurityConfig="@xml/network_security_config"
             android:resizeableActivity="true"
@@ -50,7 +51,17 @@
 
                 <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
+            <intent-filter>
+                <action android:name="android.intent.action.VIEW" />
+
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.BROWSABLE" />
 
+                <data
+                        android:host="com.edufound.android.xyyf"
+                        android:path="/main"
+                        android:scheme="efunbox" />
+            </intent-filter>
         </activity>
         <activity
                 android:name="com.edufound.android.xyyf.activity.IJKPlayerActivity"
@@ -63,14 +74,21 @@
                 android:screenOrientation="landscape"
                 android:theme="@style/NoTitle"></activity>
 
-
+        <activity
+                android:name=".activity.DialogActivity"
+                android:screenOrientation="landscape"
+                android:theme="@style/dialog"></activity>
+        <activity
+                android:name=".activity.PhoneNumLoginActivity"
+                android:screenOrientation="portrait"
+                android:theme="@style/phone_login"></activity>
         <!--友盟start-->
         <meta-data
                 android:name="UMENG_APPKEY"
-                android:value="" />
+                android:value="5ffbb9e0f1eb4f3f9b58b05e" />
         <meta-data
                 android:name="UMENG_CHANNEL"
-                android:value="@string/app_code_yf" />
+                android:value="${UMENG_CHANNEL_VALUE}" />
         <!--友盟end-->
 
         <activity

+ 88 - 0
app/src/main/java/com/edufound/android/xyyf/activity/DialogActivity.java

@@ -0,0 +1,88 @@
+package com.edufound.android.xyyf.activity;
+
+import android.app.Activity;
+import android.content.Context;
+import android.os.Bundle;
+import android.os.Process;
+import android.support.annotation.Nullable;
+import android.util.DisplayMetrics;
+import android.view.View;
+
+import com.edufound.android.xyyf.R;
+import com.edufound.android.xyyf.base.BaseActivity;
+import com.edufound.android.xyyf.util.SPutil;
+
+public class DialogActivity extends BaseActivity {
+    private static DisplayMetrics metric = new DisplayMetrics();
+
+    @Override
+    protected void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+//        int widht = getWidth(this);
+//        int height = getHeight(this);
+//        initDesignSize(this, widht, height);
+        View bv = this.findViewById(android.R.id.title);
+        bv.setVisibility(View.GONE);
+        setFinishOnTouchOutside(false);
+        setContentView(R.layout.activity_privacypolicy);
+        findViewById(R.id.activity_dialog_cancel).setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                android.os.Process.killProcess(Process.myPid());
+            }
+        });
+
+        findViewById(R.id.activity_dialog_ok).setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                SPutil.setPrefBoolean(DialogActivity.this, "privacyOK", true);
+                finish();
+            }
+        });
+
+    }
+
+    /**
+     * 获取宽度
+     */
+    public int getWidth(Activity context) {
+        context.getWindowManager().getDefaultDisplay().getMetrics(metric);
+        return metric.widthPixels; // 屏幕宽度(像素)
+    }
+
+    /**
+     * 获取宽度
+     */
+    public int getHeight(Activity context) {
+        context.getWindowManager().getDefaultDisplay().getMetrics(metric);
+        return metric.heightPixels; // 屏幕高度(像素)
+    }
+
+
+    public void initDesignSize(Context context, int screenWidth, int screenHeight) {
+        int designWidth = 1280;
+        int designHeight = 720;
+        float ds = 1.0f * designWidth / designHeight;
+        float ts = 1.0f * screenWidth / screenHeight;
+        float designScale = 0.0f;
+        if (ds >= ts) {
+            int targetWidth = screenWidth;
+            designScale = 1.0f * targetWidth / designWidth;
+
+        } else {
+            int targetHeight = screenHeight;
+            designScale = 1.0f * targetHeight / designHeight;
+
+        }
+        setDisplay(context, designScale);
+    }
+
+    private void setDisplay(Context context, float designScale) {
+        DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
+        displayMetrics.density = designScale;
+        displayMetrics.scaledDensity = displayMetrics.density;
+        displayMetrics.xdpi = displayMetrics.density * 160;
+        displayMetrics.ydpi = displayMetrics.xdpi;
+        displayMetrics.densityDpi = Float.valueOf(displayMetrics.xdpi).intValue();
+    }
+}

File diff suppressed because it is too large
+ 36 - 156
app/src/main/java/com/edufound/android/xyyf/activity/MainActivity.java


+ 184 - 0
app/src/main/java/com/edufound/android/xyyf/activity/PhoneNumLoginActivity.java

@@ -0,0 +1,184 @@
+package com.edufound.android.xyyf.activity;
+
+import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
+import android.animation.ObjectAnimator;
+import android.animation.ValueAnimator;
+import android.app.Activity;
+import android.graphics.Color;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.support.annotation.Nullable;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.ViewParent;
+import android.widget.EditText;
+import android.widget.FrameLayout;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import com.edufound.android.xyyf.R;
+import com.edufound.android.xyyf.base.BaseActivity;
+import com.edufound.android.xyyf.config.AppUtils;
+import com.edufound.android.xyyf.phonelogin.PhoneLoginPersenter;
+import com.edufound.android.xyyf.phonelogin.PhoneLoginView;
+import com.edufound.android.xyyf.util.Logger;
+
+import org.json.JSONException;
+
+import java.io.IOException;
+
+public class PhoneNumLoginActivity extends BaseActivity implements PhoneLoginView {
+
+
+    PhoneLoginPersenter mPersenter;
+    Activity mActivity;
+    final int COUNT_DOWN = 0x5564;
+    EditText phone_number;
+    EditText intpu_verifaction;
+    TextView phonenumber_getverifcation;
+    TextView phonenumber_login;
+    TextView change_text;
+    int countDownNum = 60;
+    int oldWidth = -1;
+
+    @Override
+    protected void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.login_phonenumber);
+        setFinishOnTouchOutside(false);
+        mActivity = this;
+        mPersenter = new PhoneLoginPersenter(this);
+        init();
+    }
+
+    void init() {
+        phone_number = (EditText) findViewById(R.id.phonenumber_phonenumber);
+        intpu_verifaction = (EditText) findViewById(R.id.phonenumber_verifcation);
+        phonenumber_getverifcation = (TextView) findViewById(R.id.phonenumber_getverifcation);
+        phonenumber_login = (TextView) findViewById(R.id.phonenumber_login);
+        change_text = (TextView) findViewById(R.id.change_text);
+        change_text.setText("切换一键登录");
+        LinearLayout parent = (LinearLayout) phone_number.getParent();
+        FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, AppUtils.dp2px(this, 280));
+        params.setMargins(AppUtils.dp2px(this, 20), 0, AppUtils.dp2px(this, 20), AppUtils.dp2px(this, 20));
+        parent.setLayoutParams(params);
+        change_text.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                finish();
+            }
+        });
+        phonenumber_getverifcation.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                //此处获取验证码
+            }
+        });
+        phonenumber_getverifcation.setOnTouchListener(new View.OnTouchListener() {
+            @Override
+            public boolean onTouch(View v, MotionEvent event) {
+                switch (event.getAction()) {
+                    case MotionEvent.ACTION_DOWN:
+                        phonenumber_getverifcation.setBackgroundResource(R.drawable.shape_login_phonenumber_getverification_selected);
+                        phonenumber_getverifcation.setTextColor(Color.WHITE);
+                        if (oldWidth <= 0) {
+                            oldWidth = phonenumber_getverifcation.getWidth();
+                        }
+                        break;
+                    case MotionEvent.ACTION_CANCEL:
+                    case MotionEvent.ACTION_UP:
+                        try {
+                            mPersenter.getVCode(phone_number.getText().toString());
+                        } catch (IOException e) {
+                            e.printStackTrace();
+                        }
+                        break;
+                }
+                return false;
+            }
+        });
+
+        phonenumber_login.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                try {
+                    mPersenter.LoginByVCode(phone_number.getText().toString(), intpu_verifaction.getText().toString());
+                } catch (JSONException e) {
+                    e.printStackTrace();
+                }
+            }
+        });
+
+    }
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        removeAllHandler();
+    }
+
+    Handler handler = new Handler(new Handler.Callback() {
+        @Override
+        public boolean handleMessage(Message msg) {
+            switch (msg.what) {
+                case COUNT_DOWN:
+                    if (countDownNum <= 0) {
+                        countDownNum = 60;
+                        phonenumber_getverifcation.setEnabled(true);
+                        phonenumber_getverifcation.setText("获取验证码");
+                        mPersenter.WidthAnim(phonenumber_getverifcation, oldWidth, 500);
+                        return true;
+                    }
+                    countDownNum--;
+                    phonenumber_getverifcation.setText(String.valueOf(countDownNum));
+                    handler.sendEmptyMessageDelayed(COUNT_DOWN, 1000);
+                    break;
+            }
+            return false;
+        }
+    });
+
+    void removeAllHandler() {
+        handler.removeMessages(COUNT_DOWN);
+    }
+
+
+    @Override
+    public Activity getActivity() {
+        return mActivity;
+    }
+
+    @Override
+    public void changeVText(int type) {
+        switch (type) {
+            case 0:
+                //请求成功等待验证码
+                handler.post(new Runnable() {
+                    @Override
+                    public void run() {
+                        mPersenter.WidthAnim(phonenumber_getverifcation, phonenumber_getverifcation.getHeight(), 500);
+                        phonenumber_getverifcation.setEnabled(false);
+                        handler.sendEmptyMessageDelayed(COUNT_DOWN, 0);
+                    }
+                });
+                break;
+            case 1:
+                handler.post(new Runnable() {
+                    @Override
+                    public void run() {
+                        phonenumber_getverifcation.setBackgroundResource(R.drawable.shape_login_phonenumber_getverification);
+                        phonenumber_getverifcation.setTextColor(Color.parseColor("#FFA301"));
+                        countDownNum = 60;
+                        phonenumber_getverifcation.setEnabled(true);
+                        phonenumber_getverifcation.setText("获取验证码");
+                        mPersenter.WidthAnim(phonenumber_getverifcation, oldWidth, 500);
+                        handler.removeMessages(COUNT_DOWN);
+                    }
+                });
+                break;
+        }
+    }
+}

+ 26 - 3
app/src/main/java/com/edufound/android/xyyf/application/EApplication.java

@@ -5,6 +5,8 @@ import android.app.ActivityManager;
 import android.app.Application;
 import android.content.Context;
 import android.content.Intent;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
 import android.support.annotation.Nullable;
 
 import com.edufound.android.xyyf.R;
@@ -28,6 +30,7 @@ public class EApplication extends Application {
 
     final String XIAOMI_ID = "";
     final String XIAOMI_KEY = "";
+    static String mUMengAppID;
 
     @Override
     public void onCreate() {
@@ -36,9 +39,10 @@ public class EApplication extends Application {
         ContextUtil.setApplication(this);
         //上线关掉debug模式
         ContextUtil.setIsDebug(true);
+        mUMengAppID = getChannelName();
         //根据appcode初始化支付sdk
-        UMConfigure.setLogEnabled(true);
-        UMConfigure.init(this, "5e34d2fb4ca3574b1800005b", getAppCode() + "", UMConfigure.DEVICE_TYPE_PHONE, "dfc59afd6dc6b1550ff1c2e0c7eb10fd");
+//        UMConfigure.setLogEnabled(true);
+//        UMConfigure.init(this, "5ffbb9e0f1eb4f3f9b58b05e", getAppCode() + "", UMConfigure.DEVICE_TYPE_PHONE, "dfc59afd6dc6b1550ff1c2e0c7eb10fd");
 //        PushAgent mPushAgent = PushAgent.getInstance(this);
 //        mPushAgent.register(new IUmengRegisterCallback() {
 //            @Override
@@ -143,9 +147,28 @@ public class EApplication extends Application {
 
     public static String getAppCode() {
         //记得改友盟code
-        return ContextUtil.getContext().getString(R.string.app_code_yf);
+        return mUMengAppID;
     }
 
+    public String getChannelName() {
+        String channelName = null;
+        try {
+            PackageManager packageManager = getPackageManager();
+            if (packageManager != null) {
+                //注意此处为ApplicationInfo 而不是 ActivityInfo,因为友盟设置的meta-data是在application标签中,而不是某activity标签中,所以用ApplicationInfo
+                ApplicationInfo applicationInfo = packageManager.
+                        getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA);
+                if (applicationInfo != null) {
+                    if (applicationInfo.metaData != null) {
+                        channelName = String.valueOf(applicationInfo.metaData.get("UMENG_CHANNEL"));
+                    }
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return channelName;
+    }
 
 }
 

+ 3 - 1
app/src/main/java/com/edufound/android/xyyf/config/BaseUIConfig.java

@@ -27,7 +27,9 @@ public abstract class BaseUIConfig implements AuthPageConfig {
             case 0:
                 return new DialogLandConfig(activity, authHelper, view);
             case 1:
-                return new DialogLandConfigNoUI(activity, authHelper, view);
+//                return new DialogLandConfigNoUI(activity, authHelper, view);
+            case 2:
+                return new FullPortConfig(activity, authHelper, view);
         }
         return null;
     }

+ 7 - 2
app/src/main/java/com/edufound/android/xyyf/config/DialogLandConfig.java

@@ -12,6 +12,7 @@ import android.widget.RelativeLayout;
 import com.edufound.android.xyyf.R;
 import com.edufound.android.xyyf.interfaces.JsInterfaces;
 import com.edufound.android.xyyf.main.MainView;
+import com.edufound.android.xyyf.util.Logger;
 import com.mobile.auth.gatewayauth.AuthRegisterXmlConfig;
 import com.mobile.auth.gatewayauth.AuthUIConfig;
 import com.mobile.auth.gatewayauth.PhoneNumberAuthHelper;
@@ -26,10 +27,12 @@ public class DialogLandConfig extends BaseUIConfig {
     public DialogLandConfig(Activity activity, PhoneNumberAuthHelper authHelper, MainView view) {
         super(activity, authHelper, view);
         mView = view;
+        Logger.e("DialogLandConfig");
     }
 
     @Override
     public void configAuthPage() {
+        Logger.e("configAuthPage");
         mAuthHelper.removeAuthRegisterXmlConfig();
         mAuthHelper.removeAuthRegisterViewConfig();
         int authPageOrientation = ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE;
@@ -40,7 +43,7 @@ public class DialogLandConfig extends BaseUIConfig {
         }
         updateScreenSize(authPageOrientation);
         final int dialogWidth = (int) (mScreenWidthDp * 0.9);
-        final int dialogHeight = (int) (mScreenHeightDp * 0.4);
+        final int dialogHeight = (int) (mScreenHeightDp * 0.35);
 
         //sdk默认控件的区域是marginTop50dp
         int designHeight = dialogHeight - 60;
@@ -57,6 +60,7 @@ public class DialogLandConfig extends BaseUIConfig {
                         close.setOnClickListener(new View.OnClickListener() {
                             @Override
                             public void onClick(View v) {
+                                mView.loadJSMehtodPost("closeLogin()");
                                 mAuthHelper.quitLoginPage();
                             }
                         });
@@ -68,7 +72,6 @@ public class DialogLandConfig extends BaseUIConfig {
                         phoneNumLogin.setOnClickListener(new View.OnClickListener() {
                             @Override
                             public void onClick(View v) {
-                                Log.e("PhoneNumberAuthDemo", "-----------切换手机号登录------------");
 //                                mView.getPersenter().getJsInterfaces().NOUILOGIN();
                                 mView.loadJSMehtodPost("changePhoneLogin()");
                                 mAuthHelper.quitLoginPage();
@@ -109,11 +112,13 @@ public class DialogLandConfig extends BaseUIConfig {
                 .setProtocolGravity(Gravity.CENTER_VERTICAL)
                 .setScreenOrientation(authPageOrientation)
                 .create());
+        Logger.e("showAllUi");
     }
 
     @Override
     public void onResume() {
         super.onResume();
+        Logger.e("configAuthPage  onResume");
         if (mOldScreenOrientation != mActivity.getRequestedOrientation()) {
             mActivity.setRequestedOrientation(mOldScreenOrientation);
         }

+ 155 - 0
app/src/main/java/com/edufound/android/xyyf/config/FullPortConfig.java

@@ -0,0 +1,155 @@
+package com.edufound.android.xyyf.config;
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.ActivityInfo;
+import android.graphics.Color;
+import android.os.Build;
+import android.util.Log;
+import android.view.Gravity;
+import android.view.MotionEvent;
+import android.view.View;
+import android.widget.EditText;
+import android.widget.TextView;
+
+import com.alibaba.fastjson.JSONObject;
+import com.edufound.android.xyyf.R;
+import com.edufound.android.xyyf.activity.PhoneNumLoginActivity;
+import com.edufound.android.xyyf.main.MainView;
+import com.edufound.android.xyyf.util.Logger;
+import com.mobile.auth.gatewayauth.AuthRegisterViewConfig;
+import com.mobile.auth.gatewayauth.AuthRegisterXmlConfig;
+import com.mobile.auth.gatewayauth.AuthUIConfig;
+import com.mobile.auth.gatewayauth.AuthUIControlClickListener;
+import com.mobile.auth.gatewayauth.CustomInterface;
+import com.mobile.auth.gatewayauth.PhoneNumberAuthHelper;
+import com.mobile.auth.gatewayauth.ResultCode;
+import com.mobile.auth.gatewayauth.ui.AbstractPnsViewDelegate;
+
+public class FullPortConfig extends BaseUIConfig {
+    private final String TAG = "全屏竖屏样式";
+    EditText phone_number;
+    EditText intpu_verifaction;
+    TextView phonenumber_getverifcation;
+    TextView phonenumber_login;
+    TextView change_text;
+    MainView mView;
+    int pageType = 0;//0是一键登录,1是输入手机号登录
+
+    public FullPortConfig(Activity activity, PhoneNumberAuthHelper authHelper, MainView view) {
+        super(activity, authHelper, view);
+        mView = view;
+    }
+
+    @Override
+    public void configAuthPage() {
+        mAuthHelper.setUIClickListener(new AuthUIControlClickListener() {
+            @Override
+            public void onClick(String s, Context context, String s1) {
+                switch (s) {
+                    //点击授权页默认样式的返回按钮
+                    case ResultCode.CODE_ERROR_USER_CANCEL:
+                        Logger.e("CODE_ERROR_USER_CANCEL");
+                        mAuthHelper.quitLoginPage();
+                        mActivity.finish();
+                        break;
+                    //点击授权页默认样式的切换其他登录方式 会关闭授权页
+                    //如果不希望关闭授权页那就setSwitchAccHidden(true)隐藏默认的  通过自定义view添加自己的
+                    case ResultCode.CODE_ERROR_USER_SWITCH:
+                        Logger.e("CODE_ERROR_USER_SWITCH");
+                        return;
+                    //点击一键登录按钮会发出此回调
+                    //当协议栏没有勾选时 点击按钮会有默认toast 如果不需要或者希望自定义内容 setLogBtnToastHidden(true)隐藏默认Toast
+                    //通过此回调自己设置toast
+                    case ResultCode.CODE_ERROR_USER_LOGIN_BTN:
+                        Logger.e("CODE_ERROR_USER_LOGIN_BTN:" + s1);
+
+                        break;
+                    //checkbox状态改变触发此回调
+                    case ResultCode.CODE_ERROR_USER_CHECKBOX:
+                        Logger.e("CODE_ERROR_USER_CHECKBOX");
+                        break;
+                    //点击协议栏触发此回调
+                    case ResultCode.CODE_ERROR_USER_PROTOCOL_CONTROL:
+                        Logger.e("CODE_ERROR_USER_PROTOCOL_CONTROL");
+                        break;
+                    default:
+                        break;
+
+                }
+            }
+
+
+        });
+        mAuthHelper.removeAuthRegisterXmlConfig();
+        mAuthHelper.removeAuthRegisterViewConfig();
+        mAuthHelper.addAuthRegisterXmlConfig(new AuthRegisterXmlConfig.Builder()
+                .setLayout(R.layout.login_phonenumber, new AbstractPnsViewDelegate() {
+                    @Override
+                    public void onViewCreated(final View view) {
+                        phone_number = (EditText) findViewById(R.id.phonenumber_phonenumber);
+                        intpu_verifaction = (EditText) findViewById(R.id.phonenumber_verifcation);
+                        phonenumber_getverifcation = (TextView) findViewById(R.id.phonenumber_getverifcation);
+                        phonenumber_login = (TextView) findViewById(R.id.phonenumber_login);
+                        change_text = (TextView) findViewById(R.id.change_text);
+                        phone_number.setVisibility(View.INVISIBLE);
+                        intpu_verifaction.setVisibility(View.INVISIBLE);
+                        phonenumber_getverifcation.setVisibility(View.INVISIBLE);
+                        phonenumber_login.setVisibility(View.INVISIBLE);
+                        change_text.setOnClickListener(new View.OnClickListener() {
+                            @Override
+                            public void onClick(View v) {
+                                Logger.e("change_textchange_textchange_textchange_textchange_textchange_text");
+                                Intent intent = new Intent(mActivity, PhoneNumLoginActivity.class);
+                                mActivity.startActivity(intent);
+                            }
+                        });
+                    }
+                })
+                .build());
+
+        int authPageOrientation = ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT;
+        if (Build.VERSION.SDK_INT == 26) {
+            authPageOrientation = ActivityInfo.SCREEN_ORIENTATION_BEHIND;
+        }
+        mAuthHelper.setAuthUIConfig(new AuthUIConfig.Builder()
+                .setAppPrivacyOne("《APP用户协议》", "http://m-xyyf-web.ai160.com/res/protocol/protocol.htm")
+//                .setAppPrivacyTwo("《百度》", "https://www.baidu.com")
+                .setPrivacyState(true)
+                .setAppPrivacyColor(Color.parseColor("#0B0B0B"), Color.parseColor("#2CBCFF"))
+                //隐藏默认切换其他登录方式
+                .setSwitchAccHidden(true)
+                //隐藏默认Toast
+                .setLogBtnToastHidden(false)
+                //沉浸式状态栏
+                .setStatusBarHidden(false)
+                .setStatusBarColor(Color.WHITE)
+                .setStatusBarUIFlag(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN)
+                .setLightColor(true)
+                .setWebNavTextSize(20)
+                //图片或者xml的传参方式为不包含后缀名的全称 需要文件需要放在drawable或drawable-xxx目录下 in_activity.xml, mytel_app_launcher.png
+//                .setAuthPageActIn("in_activity", "out_activity")
+//                .setAuthPageActOut("in_activity", "out_activity")
+                .setVendorPrivacyPrefix("《")
+                .setVendorPrivacySuffix("》")
+                .setPageBackgroundPath("page_background_color")
+                .setLogoImgPath("icon")
+                //一键登录按钮三种状态背景示例login_btn_bg.xml
+                .setLogBtnBackgroundPath("login_btn_bg")
+                .setScreenOrientation(authPageOrientation)
+                .setNavText("")
+                .setNavReturnHidden(true)
+                .setNavColor(Color.WHITE)
+                .setSloganHidden(true)
+                .setSwitchAccText("其他手机号登录")
+                .setSwitchAccTextColor(Color.parseColor("#0B0B0B"))
+                .setProtocolLayoutGravity(Gravity.TOP)
+                .setUncheckedImgPath("logincheck")
+                .setCheckedImgPath("logincheck_selected")
+                .setPrivacyTextSize(12)
+                .setProtocolGravity(Gravity.TOP)
+                .create());
+    }
+
+}

+ 68 - 5
app/src/main/java/com/edufound/android/xyyf/interfaces/JsInterfaces.java

@@ -3,6 +3,7 @@ package com.edufound.android.xyyf.interfaces;
 import android.app.AlertDialog;
 import android.content.DialogInterface;
 import android.content.Intent;
+import android.graphics.Color;
 import android.media.MediaPlayer;
 import android.view.KeyEvent;
 import android.webkit.JavascriptInterface;
@@ -32,6 +33,7 @@ import com.google.gson.Gson;
 import com.mobile.auth.gatewayauth.PhoneNumberAuthHelper;
 import com.mobile.auth.gatewayauth.ResultCode;
 import com.mobile.auth.gatewayauth.TokenResultListener;
+import com.mobile.auth.gatewayauth.model.InitResult;
 import com.mobile.auth.gatewayauth.model.TokenRet;
 import com.tencent.mm.opensdk.modelbiz.WXLaunchMiniProgram;
 import com.tencent.mm.opensdk.modelmsg.SendAuth;
@@ -268,7 +270,47 @@ public class JsInterfaces {
 
     @JavascriptInterface
     public void clickMusic(String left, String right) {
-        mediaPlayer.setVolume(Float.valueOf(left), Float.valueOf(right));
+        if (mediaPlayerType == 0) {
+
+        } else {
+            mediaPlayerType = 0;
+            mediaPlayer = new MediaPlayer();
+            mediaPlayer.reset();
+            mediaPlayer = MediaPlayer.create(mView.getActivity(), R.raw.click_music);
+            mediaPlayer.setVolume(Float.valueOf(left), Float.valueOf(right));
+        }
+        mediaPlayer.start();
+    }
+
+    int mediaPlayerType = -1;
+
+    @JavascriptInterface
+    public void startWrong(String left, String right) {
+        if (mediaPlayerType == 1) {
+
+        } else {
+            mediaPlayerType = 1;
+            mediaPlayer = new MediaPlayer();
+            mediaPlayer.reset();
+            mediaPlayer = MediaPlayer.create(mView.getActivity(), R.raw.wronganswer);
+            mediaPlayer.setVolume(Float.valueOf(left), Float.valueOf(right));
+        }
+
+        mediaPlayer.start();
+    }
+
+    @JavascriptInterface
+    public void startCorrect(String left, String right) {
+        if (mediaPlayerType == 2) {
+
+        } else {
+            mediaPlayerType = 2;
+            mediaPlayer = new MediaPlayer();
+            mediaPlayer.reset();
+            mediaPlayer = MediaPlayer.create(mView.getActivity(), R.raw.correctanswer);
+            mediaPlayer.setVolume(Float.valueOf(left), Float.valueOf(right));
+        }
+
         mediaPlayer.start();
     }
 
@@ -289,6 +331,10 @@ public class JsInterfaces {
         PayInit.getInstance().WX_API.sendReq(req);
     }
 
+    @JavascriptInterface
+    public void setBackGround(String color) {
+        mView.getWebView().setBackgroundColor(Color.parseColor(color));
+    }
 
     @JavascriptInterface
     public void showDeviceInfo() {
@@ -307,11 +353,12 @@ public class JsInterfaces {
 
     @JavascriptInterface
     public void showMessageDialog(String json) {
+        Logger.e("showMessageDialog--json:" + json);
         if (mMessageDialogBuilder == null) {
             mMessageDialogBuilder = new AlertDialog.Builder(mView.getActivity());
         }
         mMessageBean = mGson.fromJson(json, MessageDialogBean.class);
-        mMessageDialogBuilder.setIcon(R.drawable.icon_mobile_256_v8);
+        mMessageDialogBuilder.setIcon(R.drawable.icon);
         mMessageDialogBuilder.setTitle(mMessageBean.title);
         mMessageDialogBuilder.setMessage(mMessageBean.message);
         mMessageDialogBuilder.setPositiveButton(mMessageBean.buttontext, new DialogInterface.OnClickListener() {
@@ -345,13 +392,25 @@ public class JsInterfaces {
         return AppUtils.dp2px(mView.getActivity(), num);
     }
 
+
+    @JavascriptInterface
+    public void showPhoneNumberLogin(int type) {
+        AuthPageConfig mUIConfig = BaseUIConfig.init(type, mView.getActivity(), mPhoneNumberAuthHelperl, mView);
+        mUIConfig.configAuthPage();
+        mPhoneNumberAuthHelperl.getLoginToken(mView.getActivity(), 5000);
+    }
+
     @JavascriptInterface
     public void showPhoneNumberLogin() {
-        AuthPageConfig mUIConfig = BaseUIConfig.init(0, mView.getActivity(), mPhoneNumberAuthHelperl, mView);
+        AuthPageConfig mUIConfig = BaseUIConfig.init(2, mView.getActivity(), mPhoneNumberAuthHelperl, mView);
         mUIConfig.configAuthPage();
         mPhoneNumberAuthHelperl.getLoginToken(mView.getActivity(), 5000);
     }
 
+    public void quitLoginPage() {
+        mPhoneNumberAuthHelperl.quitLoginPage();
+    }
+
     public void NOUILOGIN() {
 //        AuthPageConfig mUIConfig = BaseUIConfig.init(1, mView.getActivity(), mPhoneNumberAuthHelperl,mView);
 //        mUIConfig.configAuthPage();
@@ -361,6 +420,7 @@ public class JsInterfaces {
     TokenResultListener tokenResultListener = new TokenResultListener() {
         @Override
         public void onTokenSuccess(String s) {
+            Logger.e("sssss:" + s);
             TokenRet tokenRet = null;
             try {
                 tokenRet = JSON.parseObject(s, TokenRet.class);
@@ -397,8 +457,11 @@ public class JsInterfaces {
 
         @Override
         public void onTokenFailed(String s) {
-            Logger.e("失败了:" + s);
-            ToastUtil.showToast("失败了:" + s);
+//            Logger.e("失败了:" + s);
+//            ToastUtil.showToast("失败了:" + s);
+            mView.loadJsMehtod("closeLogin()");
         }
+
+
     };
 }

+ 41 - 13
app/src/main/java/com/edufound/android/xyyf/main/MainPersenter.java

@@ -7,6 +7,7 @@ import android.app.Dialog;
 import android.content.Context;
 import android.content.Intent;
 import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
 import android.graphics.Color;
 import android.media.MediaMetadataRetriever;
 import android.media.ThumbnailUtils;
@@ -74,7 +75,8 @@ public class MainPersenter implements MainIPersenter {
     ErrorView mErrorView;
     Dialog mErrorViewDialog;
     private DeviceUtil deviceUtil;
-
+    Bitmap mVideoBitmap = null;
+    Intent getIntent;
 
     public MainPersenter(MainView view) {
         mView = view;
@@ -82,6 +84,8 @@ public class MainPersenter implements MainIPersenter {
         deviceUtil = new DeviceUtil();
         mJsInterfaces = new JsInterfaces(mView);
         mPayInterfaces = new EfunboxPayInterfaces(mView);
+        mVideoBitmap = BitmapFactory.decodeResource(mView.getActivity().getResources(),
+                R.drawable.videopower);
     }
 
     @Override
@@ -126,6 +130,10 @@ public class MainPersenter implements MainIPersenter {
         webview.getSettings().setLoadWithOverviewMode(true);
         webview.getSettings().setTextZoom(100);
         webview.setWebChromeClient(new WebChromeClient() {
+            @Override
+            public Bitmap getDefaultVideoPoster() {
+                return mVideoBitmap;
+            }
 
             @Override
             public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
@@ -217,6 +225,7 @@ public class MainPersenter implements MainIPersenter {
 
     @Override
     public void openWeb(Intent intent) {
+        getIntent = intent;
         mView.loadUrl("");
         mLoadUrl = mModel.getDefaultLoadUrl();
         String intent_url = intent.getStringExtra("url");
@@ -372,17 +381,18 @@ public class MainPersenter implements MainIPersenter {
     @Override
     public void onDisConnNetWork() {
 //        ToastUtil.showToast("断网了。。");
-        mView.stopWebView();
+//        mView.stopWebView();
         showDisConnNeWorkWindow();
     }
 
     @Override
     public void onConnNetWork() {
         Logger.e("onConnNetWork");
-//        if (mErrorViewDialog != null) {
-//            mErrorViewDialog.dismiss();
+        if (mErrorViewDialog != null) {
+            mErrorViewDialog.dismiss();
 //            mView.resumeWebView();
-//        }
+        }
+        openWeb(getIntent);
     }
 
     void showDisConnNeWorkWindow() {
@@ -491,13 +501,16 @@ public class MainPersenter implements MainIPersenter {
     int getYear = 0;
     int getMonth = 0;
     int getDay = 0;
-    int year_index = 0;
     List<String> view_y_list = new ArrayList<>();
     List<String> view_m_list = new ArrayList<>();
     List<String> view_d_list1 = new ArrayList<>();
     List<String> view_d_list2 = new ArrayList<>();
     List<String> view_d_list3 = new ArrayList<>();
     List<String> view_d_list4 = new ArrayList<>();
+    int yearindex;
+    int monthindex;
+    int dayindex;
+    int dayoldindex;
 
     @Override
     public void showDateView(final int show_type) {
@@ -511,12 +524,12 @@ public class MainPersenter implements MainIPersenter {
                 // 获取月
                 int month = selectedDate.get(Calendar.MONTH);
                 // 获取日
-                int date = selectedDate.get(Calendar.DATE);
+                int day = selectedDate.get(Calendar.DATE);
                 if (view_y_list.size() == 0) {
                     for (int i = year - 50; i < year + 150; i++) {
-                        year_index++;
+                        yearindex++;
                         if (i < year) {
-                            year_index++;
+                            yearindex++;
                         }
                         view_y_list.add(String.valueOf(i) + "年");
                     }
@@ -554,7 +567,9 @@ public class MainPersenter implements MainIPersenter {
                 ok.setOnClickListener(new View.OnClickListener() {
                     @Override
                     public void onClick(View v) {
-                        mView.loadJSMehtodPost("getAndroidDate('" + getYear + "','" + getMonth + "','" + getDay + "')");
+                        dayindex = dayoldindex;
+                        Logger.e("dayindex:"+dayindex);
+                        mView.loadJSMehtodPost("getAndroidDate('" + getYear + "','" + (getMonth) + "','" + getDay + "')");
                         mView.getRootView().removeView(layout);
                     }
                 });
@@ -571,6 +586,7 @@ public class MainPersenter implements MainIPersenter {
                     @Override
                     public void onChanged(WheelView view, int oldIndex, int newIndex) {
                         CharSequence text = view.getItem(newIndex);
+                        yearindex = newIndex;
 //                        Logger.e("WheelView:" + String.format("index: %d, text: %s", newIndex, text));
                         getYear = Integer.valueOf(text.subSequence(0, text.toString().indexOf("年")).toString());
                         changeDay(view_d);
@@ -580,6 +596,7 @@ public class MainPersenter implements MainIPersenter {
                     @Override
                     public void onChanged(WheelView view, int oldIndex, int newIndex) {
                         CharSequence text = view.getItem(newIndex);
+                        monthindex = newIndex;
 //                        Logger.e("WheelView:" + String.format("index: %d, text: %s", newIndex, text));
                         getMonth = Integer.valueOf(text.subSequence(0, text.toString().indexOf("月")).toString());
                         changeDay(view_d);
@@ -588,14 +605,25 @@ public class MainPersenter implements MainIPersenter {
                 view_d.setOnWheelChangedListener(new OnWheelChangedListener() {
                     @Override
                     public void onChanged(WheelView view, int oldIndex, int newIndex) {
+                        dayoldindex = newIndex;
                         CharSequence text = view.getItem(newIndex);
 //                        Logger.e("WheelView:" + String.format("index: %d, text: %s", newIndex, text));
                         getDay = Integer.valueOf(text.subSequence(0, text.toString().indexOf("日")).toString());
                     }
                 });
-                view_y.setCurrentIndex(year_index);
-                view_m.setCurrentIndex(month);
-                view_d.setCurrentIndex(date - 1);
+
+                if (monthindex == 0) {
+                    view_y.setCurrentIndex(yearindex);
+                    view_m.setCurrentIndex(month);
+                    getMonth = month + 1;
+                    changeDay(view_d);
+                    view_d.setCurrentIndex(day - 1);
+                } else {
+                    view_y.setCurrentIndex(yearindex);
+                    view_m.setCurrentIndex(monthindex);
+                    view_d.setCurrentIndex(dayindex);
+                }
+
                 mView.getRootView().addView(layout);
 
             }

+ 3 - 0
app/src/main/java/com/edufound/android/xyyf/main/MainView.java

@@ -1,6 +1,7 @@
 package com.edufound.android.xyyf.main;
 
 import android.app.Activity;
+import android.webkit.WebView;
 import android.widget.FrameLayout;
 
 import com.edufound.android.xyyf.base.BaseView;
@@ -47,6 +48,8 @@ public interface MainView extends BaseView {
 
     Gson getGson();
 
+    WebView getWebView();
+
     FrameLayout getRootView();
 
     MainPersenter getPersenter();

+ 2 - 2
app/src/main/java/com/edufound/android/xyyf/pay/PayInit.java

@@ -11,8 +11,8 @@ public class PayInit {
     //微信api
     public IWXAPI WX_API;
     //微信appid
-    public String WX_APPID = "wx51acc19c8f7a0f6f";
-    public String WX_SECRET = "e830d45f497025041269ef6221140c3d";
+    public String WX_APPID = "wx838e1561b4088ea9";
+    public String WX_SECRET = "9836ab986deb54258feb94b3f9d76cf1";
 
     public static PayInit getInstance() {
         if (mIntences == null) {

+ 1 - 0
app/src/main/java/com/edufound/android/xyyf/pay/PayPersenter.java

@@ -43,6 +43,7 @@ public class PayPersenter implements PayIPersenter {
 
     @Override
     public void WeChatPay(String json) {
+        Logger.e("WeChatPayWeChatPayWeChatPayWeChatPayWeChatPayWeChatPayWeChatPay:json--" + json);
         if (!PayInit.getInstance().WX_API.isWXAppInstalled()) {
             ToastUtil.showToast("请安装微信");
             return;

+ 34 - 0
app/src/main/java/com/edufound/android/xyyf/phonelogin/PhoneLoginModel.java

@@ -0,0 +1,34 @@
+package com.edufound.android.xyyf.phonelogin;
+
+import com.edufound.android.xyyf.R;
+import com.edufound.android.xyyf.base.BaseModel;
+import com.edufound.android.xyyf.util.ContextUtil;
+
+//做请求操作之类的
+public class PhoneLoginModel implements BaseModel {
+
+    private final String MEMBER_URL = "http://m-xyyf-api.ai160.com/member/";
+
+    public PhoneLoginModel() {
+
+    }
+
+    @Override
+    public void LoadData(LoadDataBack callback) {
+        if (true) {
+            callback.success("12333333");
+        } else {
+            callback.failure();
+        }
+    }
+
+
+    public String getVerificationCodeUrl() {
+        return MEMBER_URL + "verificationCode/";
+    }
+
+    public String getVCodeLoginUrl() {
+        return MEMBER_URL + "registerMobile";
+    }
+
+}

+ 200 - 0
app/src/main/java/com/edufound/android/xyyf/phonelogin/PhoneLoginPersenter.java

@@ -0,0 +1,200 @@
+package com.edufound.android.xyyf.phonelogin;
+
+import android.animation.ValueAnimator;
+import android.os.Handler;
+import android.os.Message;
+import android.text.TextUtils;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.edufound.android.xyyf.activity.MainActivity;
+import com.edufound.android.xyyf.application.EApplication;
+import com.edufound.android.xyyf.base.BasePersenter;
+import com.edufound.android.xyyf.util.ContextUtil;
+import com.edufound.android.xyyf.util.DeviceUuidFactory;
+import com.edufound.android.xyyf.util.Logger;
+import com.edufound.android.xyyf.util.OKHttpUtil;
+import com.edufound.android.xyyf.util.SPutil;
+import com.edufound.android.xyyf.util.ToastUtil;
+import com.google.gson.JsonObject;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+import okhttp3.Call;
+import okhttp3.Callback;
+import okhttp3.Request;
+import okhttp3.Response;
+
+public class PhoneLoginPersenter implements PhoneLoginIPersenter {
+
+    PhoneLoginModel mModel;
+    PhoneLoginView mView;
+    String phoneNum = "";
+
+    public PhoneLoginPersenter(PhoneLoginView view) {
+        mModel = new PhoneLoginModel();
+        mView = view;
+    }
+
+
+    @Override
+    public void loadData() {
+
+    }
+
+    @Override
+    public void onDisConnNetWork() {
+
+    }
+
+    @Override
+    public void onConnNetWork() {
+
+    }
+
+    public void WidthAnim(final View view, int end, int time) {
+        ValueAnimator anim = ValueAnimator.ofInt(view.getMeasuredWidth(), end);
+        anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
+            @Override
+            public void onAnimationUpdate(ValueAnimator valueAnimator) {
+                int val = (Integer) valueAnimator.getAnimatedValue();
+                ViewGroup.LayoutParams layoutParams = view.getLayoutParams();
+                layoutParams.width = val;
+                view.setLayoutParams(layoutParams);
+            }
+        });
+        anim.setDuration(time);
+        anim.start();
+    }
+
+
+    public boolean isMobileNO(String mobileNums) {
+/**
+    * 判断字符串是否符合手机号码格式
+    * 移动号段: 134,135,136,137,138,139,147,150,151,152,157,158,159,170,178,182,183,184,187,188
+    * 联通号段: 130,131,132,145,155,156,170,171,175,176,185,186
+    * 电信号段: 133,149,153,170,173,177,180,181,189
+    * @param str
+    * @return 待检测的字符串
+    */
+        String telRegex = "^((13[0-9])|(14[5,7,9])|(15[^4])|(18[0-9])|(17[0,1,3,5,6,7,8]))\\d{8}$";// "[1]"代表第1位为数字1,"[358]"代表第二位可以为3、5、8中的一个,"\\d{9}"代表后面是可以是0~9的数字,有9位。
+        if (TextUtils.isEmpty(mobileNums)) {
+            return false;
+        } else {
+            return mobileNums.matches(telRegex);
+        }
+    }
+
+    public void getVCode(String phoneNum) throws IOException {
+        this.phoneNum = phoneNum;
+        if (!isMobileNO(phoneNum)) {
+            ToastUtil.showToast("请输入正确的手机号");
+            mView.changeVText(1);
+            return;
+        }
+        mView.changeVText(0);
+        OKHttpUtil.getInstance().doGetSync(mModel.getVerificationCodeUrl() + phoneNum, new Callback() {
+            @Override
+            public void onFailure(Call call, IOException e) {
+                Logger.e("onFailure:" + e.getMessage());
+            }
+
+            @Override
+            public void onResponse(Call call, Response response) throws IOException {
+                try {
+                    String json = response.body().string();
+                    JSONObject jsonObject = new JSONObject(json);
+                    Logger.e("json:" + json);
+                    if (jsonObject.getBoolean("success")) {
+
+                    } else {
+                        final String error = jsonObject.getString("message");
+                        handler.post(new Runnable() {
+                            @Override
+                            public void run() {
+                                ToastUtil.showToast(error);
+                            }
+                        });
+                        mView.changeVText(1);
+                    }
+                } catch (JSONException e) {
+                    e.printStackTrace();
+                }
+
+            }
+        });
+
+    }
+
+
+    public void LoginByVCode(String phone, String vcode) throws JSONException {
+        String preuuid = SPutil.getPrefString(ContextUtil.getContext(), DeviceUuidFactory.UUID_SPKEY, "");
+        if (preuuid.equals("")) {
+            preuuid = DeviceUuidFactory.getUuid().toString();
+        }
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("deviceCode", preuuid);
+        jsonObject.put("channel", EApplication.getAppCode());
+        jsonObject.put("code", vcode);
+        if (this.phoneNum.equals("")) {
+            this.phoneNum = phone;
+        }
+        if (TextUtils.isEmpty(this.phoneNum.trim())) {
+            ToastUtil.showToast("请输入手机号");
+            return;
+        }
+        if (TextUtils.isEmpty(vcode.trim())) {
+            ToastUtil.showToast("请输入验证码");
+            return;
+        }
+        jsonObject.put("mobileNo", this.phoneNum);
+        OKHttpUtil.getInstance().postPhoneLogin(mModel.getVCodeLoginUrl(), jsonObject.toString(), new OKHttpUtil.ResultCallback() {
+            @Override
+            public void onError(Request request, Exception e) {
+                Logger.e("登录:onError");
+            }
+
+            @Override
+            public void onResponse(Object response) {
+                String json = response.toString();
+                try {
+                    JSONObject jsonObject1 = new JSONObject(json);
+                    Logger.e("登录:" + json);
+                    if (jsonObject1.getBoolean("success")) {
+                        MainActivity.getInstance().loadJSMehtodPost("phoneSuccess(" + json + ")");
+                        MainActivity.getInstance().quitPhoneLoginPage();
+                        mView.getActivity().finish();
+                    } else {
+                        final String error = jsonObject1.getString("message");
+                        handler.post(new Runnable() {
+                            @Override
+                            public void run() {
+                                ToastUtil.showToast(error);
+                            }
+                        });
+                    }
+                } catch (JSONException e) {
+                    e.printStackTrace();
+                }
+
+            }
+        });
+    }
+
+    Handler handler = new Handler(new Handler.Callback() {
+        @Override
+        public boolean handleMessage(Message msg) {
+            return false;
+        }
+    });
+
+}
+
+
+interface PhoneLoginIPersenter extends BasePersenter {
+}

+ 17 - 0
app/src/main/java/com/edufound/android/xyyf/phonelogin/PhoneLoginView.java

@@ -0,0 +1,17 @@
+package com.edufound.android.xyyf.phonelogin;
+
+import android.app.Activity;
+import android.webkit.WebView;
+import android.widget.FrameLayout;
+
+import com.edufound.android.xyyf.base.BaseView;
+import com.google.gson.Gson;
+
+
+public interface PhoneLoginView extends BaseView {
+    //把View拋出給Presenter調用
+
+
+    void changeVText(int type);
+
+}

+ 10 - 4
app/src/main/java/com/edufound/android/xyyf/receiver/NetworkChangeReceiver.java

@@ -39,7 +39,10 @@ public class NetworkChangeReceiver extends BroadcastReceiver {
         ConnectivityManager connectMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
         NetworkInfo networkInfo = connectMgr.getActiveNetworkInfo();
         if (networkInfo != null && networkInfo.isConnected()) {
-            handler.sendEmptyMessage(CONNECT);
+            if (!ContextUtil.getNetWorkState()) {
+                handler.sendEmptyMessage(CONNECT);
+            }
+            ContextUtil.setmNetWorkState(true);
             if (networkInfo.getType() == ConnectivityManager.TYPE_WIFI) {
                 strNetworkType = "WIFI";
                 ContextUtil.setmNetWorkState(true);
@@ -72,15 +75,17 @@ public class NetworkChangeReceiver extends BroadcastReceiver {
 
                 }
                 Logger.e("Network getSubtype : " + Integer.valueOf(networkType).toString());
-                ToastUtil.showToast("当前网络环境:" + strNetworkType);
-                ContextUtil.setmNetWorkState(true);
+//                ToastUtil.showToast("当前网络环境:" + strNetworkType);
+
             }
         } else {
             ContextUtil.setmNetWorkState(false);
+            handler.sendEmptyMessageDelayed(DISCONNECT, 5000);
             strNetworkType = "-1";
-            handler.sendEmptyMessageDelayed(DISCONNECT, 2000);
+
 
         }
+        Logger.e("setmNetWorkState:" + ContextUtil.getNetWorkState());
         Logger.e("Network Type : " + strNetworkType);
     }
 
@@ -93,6 +98,7 @@ public class NetworkChangeReceiver extends BroadcastReceiver {
                     mView.DisconnNetWork();
                     break;
                 case CONNECT:
+                    handler.removeMessages(CONNECT);
                     handler.removeMessages(DISCONNECT);
                     mView.ConnNeWork();
                     break;

+ 1 - 1
app/src/main/java/com/edufound/android/xyyf/util/Logger.java

@@ -4,7 +4,7 @@ import android.util.Log;
 
 public class Logger {
 
-    static String TAG = "com.edufound.mobile";
+    static String TAG = "com.edufound.android.xyyf";
 
     public static void e(String message) {
         Log.e(TAG, message);

+ 23 - 0
app/src/main/java/com/edufound/android/xyyf/util/OKHttpUtil.java

@@ -5,6 +5,9 @@ import android.os.Handler;
 import android.os.Looper;
 
 
+import com.alibaba.fastjson.JSONObject;
+import com.edufound.android.xyyf.application.EApplication;
+
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
@@ -477,6 +480,26 @@ public class OKHttpUtil {
     }
 
 
+    public static void postUserTime(ResultCallback resultCallback) {
+//        JSONObject obj = new JSONObject();
+//        obj.put("channel", EApplication.getAppCode());
+//        long runtime = System.currentTimeMillis() - ContextUtil.getAppStartTime();
+//        obj.put("timeAcc", String.valueOf(runtime));
+//        obj.put("deviceCode", ContextUtil.getUserUuid());
+//        String json = obj.toJSONString();
+//        Logger.e("post user time json:" + json);
+//        getInstance()._postJsonDataAsync(ContextUtil.getPostUserTimeUrl(), json, resultCallback);
+    }
+
+
+    public void postPhoneLogin(String url, String json, ResultCallback resultCallback) {
+        MediaType JSON = MediaType.parse("application/json;charset=utf-8");
+        RequestBody requestBody = RequestBody.create(JSON, json);
+        Request request = new Request.Builder().url(url).post(requestBody).build();
+        deliveryResult(resultCallback, request);
+    }
+
+
     public void doGetSync(String url, Callback callback) throws IOException {
         // 创建一个Request
         Request request = new Request.Builder()

+ 2 - 2
app/src/main/java/com/edufound/android/xyyf/util/ShowDebugUrl.java

@@ -93,10 +93,10 @@ public final class ShowDebugUrl implements Callback {
 
     private static final ShowDebugUrl INSTANCE = new ShowDebugUrl();
 
-    public static void dispatchKeyEvent(KeyEvent e, MainView mainview) {
+    public static void dispatchKeyEvent(KeyEvent e, Activity activity) {
         try {
 
-            mContext = mView.getActivity();
+            mContext = activity;
             getInstance().dispathInput(e);
         } catch (final Exception ex) {
             ex.printStackTrace();

+ 2 - 0
app/src/main/java/com/edufound/android/xyyf/wxapi/WXPayEntryActivity.java

@@ -9,6 +9,7 @@ import com.edufound.android.xyyf.R;
 import com.edufound.android.xyyf.main.MainPersenter;
 import com.edufound.android.xyyf.pay.PayInit;
 import com.edufound.android.xyyf.util.ContextUtil;
+import com.edufound.android.xyyf.util.Logger;
 import com.tencent.mm.opensdk.constants.ConstantsAPI;
 import com.tencent.mm.opensdk.modelbase.BaseReq;
 import com.tencent.mm.opensdk.modelbase.BaseResp;
@@ -48,6 +49,7 @@ public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler {
         if (baseResp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {
             Message msg = new Message();
             msg.what = MainPersenter.PAY_RESULT;
+            Logger.e("baseResp.errCode:" + baseResp.errCode);
             msg.obj = baseResp.errCode;
             MainPersenter.mPersenterHandler.sendMessage(msg);
             Intent intent_restart = new Intent(ContextUtil.CLOSE_ACTIVITY_PAY);

BIN
app/src/main/res/drawable-v24/icon.png


+ 8 - 0
app/src/main/res/drawable-v24/shape_login_phonenumber_getverification_selected.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#FFA301" />
+    <corners android:radius="25dp" />
+    <stroke
+            android:width="2dp"
+            android:color="#FFA301" />
+</shape>

+ 8 - 0
app/src/main/res/drawable-v24/shape_login_phonenumber_login.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#2CBCFF" />
+    <corners android:radius="25dp" />
+    <stroke
+            android:width="0dp"
+            android:color="#F3F3F3" />
+</shape>

+ 0 - 66
app/src/main/res/drawable/edufound_loading.xml

@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<animation-list xmlns:apk="http://schemas.android.com/apk/res/android"
-    apk:oneshot="false">
-    <item
-        apk:drawable="@drawable/loading1"
-        apk:duration="10" />
-    <item
-        apk:drawable="@drawable/loading2"
-        apk:duration="10" />
-    <item
-        apk:drawable="@drawable/loading3"
-        apk:duration="10" />
-    <item
-        apk:drawable="@drawable/loading4"
-        apk:duration="10" />
-    <item
-        apk:drawable="@drawable/loading5"
-        apk:duration="10" />
-    <item
-        apk:drawable="@drawable/loading6"
-        apk:duration="10" />
-    <item
-        apk:drawable="@drawable/loading7"
-        apk:duration="10" />
-    <item
-        apk:drawable="@drawable/loading8"
-        apk:duration="10" />
-    <item
-        apk:drawable="@drawable/loading9"
-        apk:duration="10" />
-    <item
-        apk:drawable="@drawable/loading10"
-        apk:duration="10" />
-    <item
-        apk:drawable="@drawable/loading11"
-        apk:duration="10" />
-    <item
-        apk:drawable="@drawable/loading12"
-        apk:duration="10" />
-    <item
-        apk:drawable="@drawable/loading13"
-        apk:duration="10" />
-    <item
-        apk:drawable="@drawable/loading14"
-        apk:duration="10" />
-    <item
-        apk:drawable="@drawable/loading15"
-        apk:duration="10" />
-    <item
-        apk:drawable="@drawable/loading16"
-        apk:duration="10" />
-    <item
-        apk:drawable="@drawable/loading17"
-        apk:duration="10" />
-    <item
-        apk:drawable="@drawable/loading18"
-        apk:duration="10" />
-    <item
-        apk:drawable="@drawable/loading19"
-        apk:duration="10" />
-    <item
-        apk:drawable="@drawable/loading20"
-        apk:duration="10" />
-
-
-</animation-list>

BIN
app/src/main/res/drawable/ic_launcher.jpg


BIN
app/src/main/res/drawable/icon.png


BIN
app/src/main/res/drawable/loading.png


BIN
app/src/main/res/drawable/loading1.png


BIN
app/src/main/res/drawable/loading10.png


BIN
app/src/main/res/drawable/loading11.png


BIN
app/src/main/res/drawable/loading12.png


BIN
app/src/main/res/drawable/loading13.png


BIN
app/src/main/res/drawable/loading14.png


BIN
app/src/main/res/drawable/loading15.png


BIN
app/src/main/res/drawable/loading16.png


BIN
app/src/main/res/drawable/loading17.png


BIN
app/src/main/res/drawable/loading18.png


BIN
app/src/main/res/drawable/loading19.png


BIN
app/src/main/res/drawable/loading2.png


BIN
app/src/main/res/drawable/loading20.png


BIN
app/src/main/res/drawable/loading3.png


BIN
app/src/main/res/drawable/loading4.png


BIN
app/src/main/res/drawable/loading5.png


BIN
app/src/main/res/drawable/loading6.png


BIN
app/src/main/res/drawable/loading7.png


BIN
app/src/main/res/drawable/loading8.png


BIN
app/src/main/res/drawable/loading9.png


BIN
app/src/main/res/drawable/logincheck.png


BIN
app/src/main/res/drawable/logincheck_selected.png


+ 9 - 0
app/src/main/res/drawable/rotate_loading.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<rotate xmlns:android="http://schemas.android.com/apk/res/android"
+        android:duration="1000"
+        android:fillAfter="true"
+        android:fromDegrees="0"
+        android:pivotX="50%"
+        android:pivotY="50%"
+        android:repeatMode="restart"
+        android:toDegrees="360"></rotate>

+ 8 - 0
app/src/main/res/drawable/shape_corner.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#ffffff" />
+    <corners android:radius="20dp" />
+    <stroke
+            android:width="1dp"
+            android:color="#ffffff" />
+</shape>

+ 6 - 0
app/src/main/res/drawable/shape_corner_date.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#ffffff" />
+    <corners android:radius="15dp" />
+
+</shape>

+ 8 - 0
app/src/main/res/drawable/shape_login_phonenumber_edittext.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#F3F3F3" />
+    <corners android:radius="25dp" />
+    <stroke
+            android:width="0dp"
+            android:color="#F3F3F3" />
+</shape>

+ 8 - 0
app/src/main/res/drawable/shape_login_phonenumber_getverification.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#ffffff" />
+    <corners android:radius="25dp" />
+    <stroke
+            android:width="2dp"
+            android:color="#FFA301" />
+</shape>

+ 8 - 0
app/src/main/res/drawable/shape_login_phonenumber_getverification_selected.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#FFA301" />
+    <corners android:radius="25dp" />
+    <stroke
+            android:width="2dp"
+            android:color="#FFA301" />
+</shape>

+ 8 - 0
app/src/main/res/drawable/shape_login_phonenumber_login.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#2CBCFF" />
+    <corners android:radius="25dp" />
+    <stroke
+            android:width="0dp"
+            android:color="#F3F3F3" />
+</shape>

BIN
app/src/main/res/drawable/videopower.jpg


+ 1 - 1
app/src/main/res/layout/activity_main.xml

@@ -13,7 +13,7 @@
             android:layout_height="wrap_content"
             android:layout_gravity="center"
             android:layout_marginBottom="5dp"
-            android:background="@drawable/edufound_loading" />
+            android:background="@drawable/loading" />
 
 
     <android.support.v7.widget.RecyclerView

File diff suppressed because it is too large
+ 184 - 0
app/src/main/res/layout/activity_privacypolicy.xml


+ 9 - 5
app/src/main/res/layout/date_view.xml

@@ -18,7 +18,7 @@
             android:layout_width="433.5dp"
             android:layout_height="224.5dp"
             android:layout_gravity="center"
-            android:background="@drawable/date_bg"
+            android:background="@drawable/shape_corner_date"
             android:orientation="vertical">
 
         <LinearLayout
@@ -34,7 +34,9 @@
                     android:layout_weight="1"
                     android:gravity="center"
                     android:text="取消"
-                    android:textSize="20sp"></TextView>
+                    android:textColor="#2CBCFF"
+                    android:textSize="22sp"
+                    android:textStyle="bold"></TextView>
 
             <TextView
                     android:id="@+id/date_title"
@@ -43,8 +45,9 @@
                     android:layout_weight="1"
                     android:gravity="center"
                     android:text="生日选择"
-                    android:textColor="#ff188ef7"
-                    android:textSize="22sp"></TextView>
+                    android:textColor="@color/black"
+                    android:textSize="22sp"
+                    android:textStyle="bold"></TextView>
 
             <TextView
                     android:id="@+id/date_ok"
@@ -54,7 +57,8 @@
                     android:gravity="center"
                     android:text="确认"
                     android:textColor="#ffff9a31"
-                    android:textSize="20sp"></TextView>
+                    android:textSize="22sp"
+                    android:textStyle="bold"></TextView>
         </LinearLayout>
 
         <LinearLayout

+ 112 - 0
app/src/main/res/layout/login_phonenumber.xml

@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:background="@color/transparent">
+
+    <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="250dp"
+            android:layout_marginLeft="30dp"
+            android:layout_marginTop="180dp"
+            android:layout_marginRight="30dp"
+            android:background="@color/white"
+            android:orientation="vertical">
+
+        <EditText
+                android:id="@+id/phonenumber_phonenumber"
+                android:layout_width="match_parent"
+                android:layout_height="0dp"
+                android:layout_weight="1"
+                android:background="@drawable/shape_login_phonenumber_edittext"
+                android:gravity="left|center"
+                android:hint="请输入手机号码"
+                android:inputType="number"
+                android:maxLength="11"
+                android:paddingLeft="30dp"
+                android:paddingRight="10dp"
+                android:textSize="20sp"></EditText>
+
+        <View
+                android:layout_width="match_parent"
+                android:layout_height="0dp"
+                android:layout_weight="0.5"></View>
+
+        <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="0dp"
+                android:layout_weight="1"
+                android:orientation="horizontal">
+
+            <EditText
+                    android:id="@+id/phonenumber_verifcation"
+                    android:layout_width="0dp"
+                    android:layout_height="match_parent"
+                    android:layout_gravity="center"
+                    android:layout_weight="1.3"
+                    android:background="@drawable/shape_login_phonenumber_edittext"
+                    android:gravity="left|center"
+                    android:hint="请输入验证码"
+                    android:inputType="number"
+                    android:maxLength="4"
+                    android:paddingLeft="30dp"
+                    android:paddingRight="10dp"
+                    android:textSize="20sp"></EditText>
+
+            <View
+                    android:layout_width="0dp"
+                    android:layout_height="match_parent"
+                    android:layout_weight="0.1"></View>
+
+            <FrameLayout
+                    android:layout_width="0dp"
+                    android:layout_height="match_parent"
+                    android:layout_weight="1">
+
+                <TextView
+                        android:id="@+id/phonenumber_getverifcation"
+                        android:layout_width="match_parent"
+                        android:layout_height="match_parent"
+                        android:layout_gravity="center|right"
+                        android:background="@drawable/shape_login_phonenumber_getverification"
+                        android:gravity="center"
+                        android:text="获取验证码"
+                        android:textColor="#FFA301"
+                        android:textSize="20sp"></TextView>
+            </FrameLayout>
+        </LinearLayout>
+
+        <View
+                android:layout_width="match_parent"
+                android:layout_height="0dp"
+                android:layout_weight="0.5"></View>
+
+        <TextView
+                android:id="@+id/phonenumber_login"
+                android:layout_width="match_parent"
+                android:layout_height="0dp"
+                android:layout_weight="1"
+                android:background="@drawable/shape_login_phonenumber_login"
+                android:gravity="center"
+                android:text="登 录"
+                android:textColor="@color/white"
+                android:textSize="20sp"></TextView>
+
+        <View
+                android:layout_width="match_parent"
+                android:layout_height="0dp"
+                android:layout_weight="0.5"></View>
+
+        <TextView
+                android:id="@+id/change_text"
+                android:layout_width="match_parent"
+                android:layout_height="0dp"
+                android:layout_gravity="center|bottom"
+                android:layout_weight="1"
+                android:gravity="top|center"
+                android:text="切换手机号登录"
+                android:textColor="#0B0B0B"
+                android:textSize="16sp"></TextView>
+
+    </LinearLayout>
+</FrameLayout>

+ 1 - 2
app/src/main/res/layout/player_controller.xml

@@ -116,8 +116,7 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_gravity="center"
-            android:layout_marginBottom="5dp"
-            android:background="@drawable/edufound_loading" />
+            android:layout_marginBottom="5dp" />
     </FrameLayout>
 
 </FrameLayout>

BIN
app/src/main/res/raw/correctanswer.wav


BIN
app/src/main/res/raw/wronganswer.wav


+ 1 - 0
app/src/main/res/values/projectstring.xml

@@ -2,6 +2,7 @@
 <resources>
     <!--8.0生产环境前端地址 http://ott80-web.ai160.com/stage/index/index.html-->
     <string name="default_url">http://192.168.1.126:8080/efunbox-xyyf-web/1.0.0/stage/index/index.html</string>
+    <!--    <string name="default_url">http://m-xyyf-web.ai160.com/stage/index/index.html</string>-->
     <!--义方渠道-->
     <string name="app_code_yf">2006</string>
     <!--应用宝-->

+ 20 - 1
app/src/main/res/values/styles.xml

@@ -31,7 +31,7 @@
         <!-- <item name="android:windowIsTranslucent">true</item>-->
         <!-- 兼容API 7-->
         <item name="android:windowActionBar">false</item>
-        <item name="android:windowBackground">@drawable/efunbox_window_bg</item>
+        <!--        <item name="android:windowBackground">@drawable/videopower</item>-->
         <item name="android:windowNoTitle">true</item>
         <item name="android:windowFullscreen">true</item>
     </style>
@@ -68,4 +68,23 @@
         <item name="android:backgroundDimAmount">0.1</item>
         <item name="android:windowAnimationStyle">@null</item>
     </style>
+
+    <style name="dialog" parent="@android:style/Theme.Dialog">
+        <item name="android:windowFrame">@null</item>
+        <item name="android:windowIsFloating">true</item>
+        <item name="android:windowIsTranslucent">true</item>
+        <item name="android:windowNoTitle">true</item>
+        <item name="android:background">@color/transparent</item>
+        <item name="android:windowBackground">@color/transparent</item>
+        <item name="android:backgroundDimEnabled">true</item>
+    </style>
+
+    <style name="phone_login" parent="@android:style/Theme.Dialog">
+        <item name="android:windowFrame">@null</item>
+        <item name="android:windowIsFloating">true</item>
+        <item name="android:windowIsTranslucent">true</item>
+        <item name="android:windowNoTitle">true</item>
+        <item name="android:windowBackground">@android:color/transparent</item>
+        <item name="android:backgroundDimEnabled">false</item>
+    </style>
 </resources>

+ 0 - 1
push/build/.transforms/91413793ec6afb3f93b934e923b343e2.bin

@@ -1 +0,0 @@
-o/classes

BIN
push/build/.transforms/91413793ec6afb3f93b934e923b343e2/classes/classes.dex


BIN
push/build/intermediates/aar_libs_directory/debug/libs/accs_sdk_taobao-3.3.7.2-open.jar


BIN
push/build/intermediates/aar_libs_directory/debug/libs/alicloud-android-sdk-httpdns-1.1.3.1.jar


BIN
push/build/intermediates/aar_libs_directory/debug/libs/alicloud-android-utils-1.0.3.jar


BIN
push/build/intermediates/aar_libs_directory/debug/libs/networksdk-3.5.5-open.jar


BIN
push/build/intermediates/aar_libs_directory/debug/libs/tlog_adapter-3.0.0.17.jar


BIN
push/build/intermediates/aar_libs_directory/debug/libs/tnet4android-3.1.14.9.jar


BIN
push/build/intermediates/aar_libs_directory/debug/libs/umeng-common-2.1.0.jar


BIN
push/build/intermediates/aar_libs_directory/debug/libs/umeng-push-6.0.1.jar


BIN
push/build/intermediates/aar_main_jar/debug/classes.jar


+ 0 - 0
push/build/intermediates/annotations_typedef_file/debug/typedefs.txt


BIN
push/build/intermediates/incremental/debug-mergeJavaRes/merge-state


BIN
push/build/intermediates/incremental/debug-mergeJavaRes/zip-cache/3kmAb+i0vSyQRwpE5SaI_YwvMzw=


BIN
push/build/intermediates/incremental/debug-mergeJavaRes/zip-cache/5AemtJw9ZreMxLuJhzgv58YIeJ4=


BIN
push/build/intermediates/incremental/debug-mergeJavaRes/zip-cache/UCzi_5mHUTil__+wSky4J4oDKOU=


BIN
push/build/intermediates/incremental/debug-mergeJavaRes/zip-cache/Z3L7Zn9qCpBh2pKBhBn0nAAceSQ=


BIN
push/build/intermediates/incremental/debug-mergeJavaRes/zip-cache/ZN9fYr34xsGzYbVm0mMND064qG0=


BIN
push/build/intermediates/incremental/debug-mergeJavaRes/zip-cache/q3Gg9vAufoSX1avxsVKgkearq_o=


BIN
push/build/intermediates/incremental/debug-mergeJavaRes/zip-cache/uPNGRd8IfWfZa8cnkVhhPx8Ee_o=


BIN
push/build/intermediates/incremental/debug-mergeJavaRes/zip-cache/yDzV8Jrf8EtquU+vNsqcoy29H0I=


+ 1 - 1
push/build/intermediates/incremental/packageDebugResources/compile-file-map.properties

@@ -1,3 +1,3 @@
-#Mon Dec 21 11:29:06 CST 2020
+#Thu Dec 24 16:11:48 CST 2020
 G\:\\WorkSpace\\Git_WorkSpace\\efunbox-xyyf-mobile-android\\efunbox-xyyf-mobile-android-master\\push\\res\\layout\\upush_bar_image_notification.xml=G\:\\WorkSpace\\Git_WorkSpace\\efunbox-xyyf-mobile-android\\efunbox-xyyf-mobile-android-master\\push\\build\\intermediates\\packaged_res\\debug\\layout\\upush_bar_image_notification.xml
 G\:\\WorkSpace\\Git_WorkSpace\\efunbox-xyyf-mobile-android\\efunbox-xyyf-mobile-android-master\\push\\res\\layout\\upush_notification.xml=G\:\\WorkSpace\\Git_WorkSpace\\efunbox-xyyf-mobile-android\\efunbox-xyyf-mobile-android-master\\push\\build\\intermediates\\packaged_res\\debug\\layout\\upush_notification.xml

+ 1 - 1
push/build/intermediates/incremental/packageReleaseResources/compile-file-map.properties

@@ -1,3 +1,3 @@
-#Mon Dec 21 11:34:03 CST 2020
+#Thu Dec 24 16:03:43 CST 2020
 G\:\\WorkSpace\\Git_WorkSpace\\efunbox-xyyf-mobile-android\\efunbox-xyyf-mobile-android-master\\push\\res\\layout\\upush_bar_image_notification.xml=G\:\\WorkSpace\\Git_WorkSpace\\efunbox-xyyf-mobile-android\\efunbox-xyyf-mobile-android-master\\push\\build\\intermediates\\packaged_res\\release\\layout\\upush_bar_image_notification.xml
 G\:\\WorkSpace\\Git_WorkSpace\\efunbox-xyyf-mobile-android\\efunbox-xyyf-mobile-android-master\\push\\res\\layout\\upush_notification.xml=G\:\\WorkSpace\\Git_WorkSpace\\efunbox-xyyf-mobile-android\\efunbox-xyyf-mobile-android-master\\push\\build\\intermediates\\packaged_res\\release\\layout\\upush_notification.xml

BIN
push/build/intermediates/library_and_local_jars_jni/debug/jni/arm64-v8a/libcocklogic-1.1.3.so


BIN
push/build/intermediates/library_and_local_jars_jni/debug/jni/arm64-v8a/libtnet-3.1.14.so


BIN
push/build/intermediates/library_and_local_jars_jni/debug/jni/armeabi-v7a/libcocklogic-1.1.3.so


BIN
push/build/intermediates/library_and_local_jars_jni/debug/jni/armeabi-v7a/libtnet-3.1.14.so


BIN
push/build/intermediates/library_and_local_jars_jni/debug/jni/armeabi/libcocklogic-1.1.3.so


+ 0 - 0
push/build/intermediates/library_and_local_jars_jni/debug/jni/armeabi/libtnet-3.1.14.so


Some files were not shown because too many files changed in this diff