Quellcode durchsuchen

1.第一版横屏朗读小咖秀

FailedToRead vor 20 Stunden
Ursprung
Commit
e3874ba12c
33 geänderte Dateien mit 288 neuen und 48 gelöschten Zeilen
  1. 26 0
      .idea/appInsightsSettings.xml
  2. 1 1
      .idea/compiler.xml
  3. 10 0
      .idea/deploymentTargetDropDown.xml
  4. 10 0
      .idea/deploymentTargetSelector.xml
  5. 4 5
      .idea/gradle.xml
  6. 1 2
      .idea/misc.xml
  7. 17 0
      .idea/runConfigurations.xml
  8. 23 2
      app/build.gradle
  9. 17 2
      app/src/main/AndroidManifest.xml
  10. 14 2
      app/src/main/java/com/edufound/reader/activity/CommentActivity.java
  11. 1 0
      app/src/main/java/com/edufound/reader/activity/RecordActivity.java
  12. 31 5
      app/src/main/java/com/edufound/reader/activity/UserInfoSettingActivity.java
  13. 1 0
      app/src/main/java/com/edufound/reader/activity/payactivity/PayActivity.java
  14. 14 4
      app/src/main/java/com/edufound/reader/adapter/RankListItemAdapter.java
  15. 7 13
      app/src/main/java/com/edufound/reader/application/EApplication.java
  16. 6 0
      app/src/main/java/com/edufound/reader/bean/ChannelCodeEnum.java
  17. 19 0
      app/src/main/java/com/edufound/reader/contract/ComplaintActivityContract.java
  18. 0 1
      app/src/main/java/com/edufound/reader/cusview/CusToast.java
  19. 5 1
      app/src/main/java/com/edufound/reader/cusview/ModelViewC.java
  20. 5 2
      app/src/main/java/com/edufound/reader/cusview/ModelViewE.java
  21. 6 0
      app/src/main/java/com/edufound/reader/model/ComplaintActivityModel.java
  22. 2 0
      app/src/main/java/com/edufound/reader/popwindow/PopWindowUtil.java
  23. 13 0
      app/src/main/java/com/edufound/reader/presenter/ComplaintActivityPresenter.java
  24. 3 1
      app/src/main/java/com/edufound/reader/presenter/LoginAlertPresenter.java
  25. 1 0
      app/src/main/java/com/edufound/reader/presenter/RecommendFragmentPresenter.java
  26. 11 0
      app/src/main/java/com/edufound/reader/presenter/SplashPresenter.java
  27. 5 2
      app/src/main/java/com/edufound/reader/util/Consts.java
  28. 2 0
      app/src/main/java/com/edufound/reader/util/DeviceUuidFactory.java
  29. 4 2
      app/src/main/java/com/edufound/reader/util/EfunboxUtil.java
  30. 25 0
      app/src/main/res/layout/activity_userinfo_setting.xml
  31. 0 1
      app/src/main/res/layout/popupwindow_mi_sound_qrcode_layout.xml
  32. 3 2
      app/src/main/res/layout/popupwindow_record_status.xml
  33. 1 0
      app/src/main/res/values/strings.xml

+ 26 - 0
.idea/appInsightsSettings.xml

@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="AppInsightsSettings">
+    <option name="tabSettings">
+      <map>
+        <entry key="Firebase Crashlytics">
+          <value>
+            <InsightsFilterSettings>
+              <option name="connection">
+                <ConnectionSetting>
+                  <option name="appId" value="PLACEHOLDER" />
+                  <option name="mobileSdkAppId" value="" />
+                  <option name="projectId" value="" />
+                  <option name="projectNumber" value="" />
+                </ConnectionSetting>
+              </option>
+              <option name="signal" value="SIGNAL_UNSPECIFIED" />
+              <option name="timeIntervalDays" value="THIRTY_DAYS" />
+              <option name="visibilityType" value="ALL" />
+            </InsightsFilterSettings>
+          </value>
+        </entry>
+      </map>
+    </option>
+  </component>
+</project>

+ 1 - 1
.idea/compiler.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="CompilerConfiguration">
-    <bytecodeTargetLevel target="1.8" />
+    <bytecodeTargetLevel target="11" />
   </component>
 </project>

+ 10 - 0
.idea/deploymentTargetDropDown.xml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="deploymentTargetDropDown">
+    <value>
+      <entry key="app">
+        <State />
+      </entry>
+    </value>
+  </component>
+</project>

+ 10 - 0
.idea/deploymentTargetSelector.xml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="deploymentTargetSelector">
+    <selectionStates>
+      <SelectionState runConfigName="app">
+        <option name="selectionMode" value="DROPDOWN" />
+      </SelectionState>
+    </selectionStates>
+  </component>
+</project>

+ 4 - 5
.idea/gradle.xml

@@ -4,18 +4,17 @@
   <component name="GradleSettings">
     <option name="linkedExternalProjectsSettings">
       <GradleProjectSettings>
-        <option name="testRunner" value="GRADLE" />
-        <option name="disableWrapperSourceDistributionNotification" value="true" />
-        <option name="distributionType" value="DEFAULT_WRAPPED" />
+        <option name="testRunner" value="CHOOSE_PER_TEST" />
         <option name="externalProjectPath" value="$PROJECT_DIR$" />
-        <option name="gradleHome" value="$APPLICATION_HOME_DIR$/gradle" />
-        <option name="gradleJvm" value="1.8 (2)" />
+        <option name="gradleHome" value="$USER_HOME$/.gradle/wrapper/dists/gradle-7.4-bin/c0gwcg53nkjbqw7r0h0umtfvt/gradle-7.4" />
+        <option name="gradleJvm" value="11 (2)" />
         <option name="modules">
           <set>
             <option value="$PROJECT_DIR$" />
             <option value="$PROJECT_DIR$/app" />
           </set>
         </option>
+        <option name="resolveExternalAnnotations" value="false" />
       </GradleProjectSettings>
     </option>
   </component>

+ 1 - 2
.idea/misc.xml

@@ -1,4 +1,3 @@
-<?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="DesignSurface">
     <option name="filePathToZoomLevelMap">
@@ -209,7 +208,7 @@
       </map>
     </option>
   </component>
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_11" project-jdk-name="1.8" project-jdk-type="JavaSDK">
     <output url="file://$PROJECT_DIR$/build/classes" />
   </component>
   <component name="ProjectType">

+ 17 - 0
.idea/runConfigurations.xml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="RunConfigurationProducerService">
+    <option name="ignoredProducers">
+      <set>
+        <option value="com.intellij.execution.junit.AbstractAllInDirectoryConfigurationProducer" />
+        <option value="com.intellij.execution.junit.AllInPackageConfigurationProducer" />
+        <option value="com.intellij.execution.junit.PatternConfigurationProducer" />
+        <option value="com.intellij.execution.junit.TestInClassConfigurationProducer" />
+        <option value="com.intellij.execution.junit.UniqueIdConfigurationProducer" />
+        <option value="com.intellij.execution.junit.testDiscovery.JUnitTestDiscoveryConfigurationProducer" />
+        <option value="org.jetbrains.kotlin.idea.junit.KotlinJUnitRunConfigurationProducer" />
+        <option value="org.jetbrains.kotlin.idea.junit.KotlinPatternConfigurationProducer" />
+      </set>
+    </option>
+  </component>
+</project>

+ 23 - 2
app/build.gradle

@@ -56,7 +56,7 @@ android {
                         def fileName = "efunbox_reader_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")) {
+                        if (channel == ("3006")) {
                             newoutputFile = "\\义方\\"
                         } else if (channel == ("3002")) {
                             newoutputFile = "\\天猫精灵\\"
@@ -74,6 +74,8 @@ android {
                             newoutputFile = "\\步步高\\"
                         } else if (channel == ("3010")) {
                             newoutputFile = "\\讯飞pad\\"
+                        } else if (channel == ("3011")) {
+                            newoutputFile = "\\百度学习机\\"
                         }
                         output.outputFileName = new File(newoutputFile, fileName)
                     }
@@ -119,6 +121,7 @@ android {
             manifestPlaceholders = [
                     appCode: "3006",
                     appIcon: "@drawable/icon",
+                    appName: "课文朗读"
             ]
         }
         //百度(小度音响)
@@ -127,6 +130,7 @@ android {
             manifestPlaceholders = [
                     appCode: "3003",
                     appIcon: "@drawable/icon",
+                    appName: "课文朗读"
             ]
         }
         //天猫精灵
@@ -135,6 +139,7 @@ android {
             manifestPlaceholders = [
                     appCode: "3002",
                     appIcon: "@drawable/icon",
+                    appName: "课文朗读"
             ]
         }
         //小爱音响
@@ -144,6 +149,7 @@ android {
             manifestPlaceholders = [
                     appCode: "2016",
                     appIcon: "@drawable/icon",
+                    appName: "课文朗读"
             ]
         }
         //联想渠道
@@ -152,6 +158,7 @@ android {
             manifestPlaceholders = [
                     appCode: "3004",
                     appIcon: "@drawable/icon",
+                    appName: "课文朗读"
             ]
         }
 
@@ -161,6 +168,7 @@ android {
             manifestPlaceholders = [
                     appCode: "3007",
                     appIcon: "@drawable/icon",
+                    appName: "课文朗读"
             ]
         }
 
@@ -172,6 +180,7 @@ android {
             manifestPlaceholders = [
                     appCode: "3008",
                     appIcon: "@drawable/icon",
+                    appName: "课文朗读"
             ]
         }
         //步步高pad
@@ -180,6 +189,7 @@ android {
             manifestPlaceholders = [
                     appCode: "3009",
                     appIcon: "@drawable/icon",
+                    appName: "课文朗读"
             ]
         }
 
@@ -189,11 +199,22 @@ android {
             manifestPlaceholders = [
                     appCode: "3010",
                     appIcon: "@drawable/icon",
+                    appName: "课文朗读"
+            ]
+        }
+
+        //百度学习机
+        channel_bdxxj {
+            signingConfig signingConfigs.efunboxKey
+            manifestPlaceholders = [
+                    appCode: "3011",
+                    appIcon: "@drawable/langduxiaokaciu",
+                    appName: "朗读小咖秀"
             ]
         }
     }
     productFlavors.all {
-        flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: manifestPlaceholders.appCode, icon: manifestPlaceholders.appIcon]
+        flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: manifestPlaceholders.appCode, icon: manifestPlaceholders.appIcon, APP_NAME: manifestPlaceholders.appName]
     }
 
     compileOptions {

+ 17 - 2
app/src/main/AndroidManifest.xml

@@ -25,13 +25,14 @@
         android:allowBackup="true"
         android:hardwareAccelerated="true"
         android:icon="${icon}"
-        android:label="@string/app_name"
+        android:label="${APP_NAME}"
         android:largeHeap="true"
         android:maxAspectRatio="2.4"
         android:roundIcon="${icon}"
         android:supportsRtl="true"
         android:theme="@style/AppStartTheme"
-        android:usesCleartextTraffic="true">
+        android:usesCleartextTraffic="true"
+        tools:replace="android:label">
         <meta-data
             android:name="android.max_aspect"
             android:value="2.4" />
@@ -54,6 +55,7 @@
             android:resizeableActivity="false"
             android:screenOrientation="landscape"
             android:splitMotionEvents="false"
+            android:theme="@style/FullScreen"
             android:windowSoftInputMode="adjustNothing|stateHidden">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
@@ -303,6 +305,19 @@
 
 
         <activity
+            android:name=".activity.ComplaintActivity"
+            android:configChanges="screenLayout|screenSize|keyboardHidden|keyboard|orientation"
+            android:label=""
+            android:launchMode="singleTask"
+            android:maxAspectRatio="2.1"
+            android:resizeableActivity="false"
+            android:screenOrientation="landscape"
+            android:splitMotionEvents="false"
+            android:theme="@style/efunboxTransparentLoginAlert"
+            android:windowSoftInputMode="adjustNothing|stateHidden" />
+
+
+        <activity
             android:name=".support.DebugSafeModeTipActivity"
             android:configChanges="screenLayout|screenSize|keyboardHidden|keyboard|orientation"
             android:label=""

+ 14 - 2
app/src/main/java/com/edufound/reader/activity/CommentActivity.java

@@ -23,6 +23,7 @@ import com.edufound.reader.annotation.BindView;
 import com.edufound.reader.application.EApplication;
 import com.edufound.reader.base.BaseMvpActivity;
 import com.edufound.reader.contract.CommentContract;
+import com.edufound.reader.cusview.CusToast;
 import com.edufound.reader.presenter.CommentPresenter;
 import com.edufound.reader.util.Consts;
 import com.jakewharton.rxbinding4.view.RxView;
@@ -32,6 +33,7 @@ import java.util.HashMap;
 
 import androidx.annotation.NonNull;
 import androidx.recyclerview.widget.RecyclerView;
+
 import io.reactivex.rxjava3.annotations.Nullable;
 
 public class CommentActivity extends BaseMvpActivity<CommentPresenter> implements CommentContract.View {
@@ -102,12 +104,22 @@ public class CommentActivity extends BaseMvpActivity<CommentPresenter> implement
                 //发送评论回复
 //                Toast.makeText(getActivity(), "发送评论回复", Toast.LENGTH_SHORT).show();
                 if (!TextUtils.isEmpty(mCommentEdit.getText().toString().trim())) {
-                    mPresenter.doReplyComment(mCommentEdit.getText().toString().trim());
+                    if (Consts.mWordFilter.filter_jk_info2(mCommentEdit.getText().toString().trim()).contains("<mgc>")) {
+                        Logger.e("有问题");
+                        CusToast.getInstance(mActivity).show("请文明发言", 1000);
+                    } else {
+                        mPresenter.doReplyComment(mCommentEdit.getText().toString().trim());
+                    }
                 }
             } else {
 //                Toast.makeText(getActivity(), "发送评论", Toast.LENGTH_SHORT).show();
                 if (!TextUtils.isEmpty(mCommentEdit.getText().toString().trim())) {
-                    mPresenter.doPosts(mCommentEdit.getText().toString().trim());
+                    if (Consts.mWordFilter.filter_jk_info2(mCommentEdit.getText().toString().trim()).contains("<mgc>")) {
+                        Logger.e("有问题");
+                        CusToast.getInstance(mActivity).show("请文明发言", 1000);
+                    } else {
+                        mPresenter.doPosts(mCommentEdit.getText().toString().trim());
+                    }
                 }
             }
         });

+ 1 - 0
app/src/main/java/com/edufound/reader/activity/RecordActivity.java

@@ -97,6 +97,7 @@ public class RecordActivity extends BaseMvpActivity<RecordPresenter> implements
                 Toast.makeText(mActivity, "未获得录音权限", Toast.LENGTH_SHORT).show();
 
                 String isgranted = MMKVUtil.getInstance().decodeString("record_granted");
+                Logger.e("isgranted:" + isgranted);
                 if (isgranted == null || isgranted.equals("")) {
                     //一次都没有出来过
                     PermissionsUtil.verifyAudioPermissions(this);

+ 31 - 5
app/src/main/java/com/edufound/reader/activity/UserInfoSettingActivity.java

@@ -70,6 +70,8 @@ public class UserInfoSettingActivity extends BaseMvpActivity<UserInfoSettingPres
     LinearLayout mSwitchLayout;
     @BindView(id = R.id.activity_userinfo_setting_bindphonenum_layout)
     LinearLayout mBindPhoneNumLayout;
+    @BindView(id = R.id.activity_userinfo_setting_tousu_layout)
+    LinearLayout mTouSuLayout;
 
     @BindView(id = R.id.activity_userinfo_setting_nickname)
     EditText mNickName;
@@ -163,6 +165,7 @@ public class UserInfoSettingActivity extends BaseMvpActivity<UserInfoSettingPres
             getActivity().startActivity(intent);
         });
 
+        mTouSuLayout.setVisibility(View.GONE);
         if (Consts.getUMengChannel().equals(ChannelCodeEnum.BAIDU.getChannelCode())) {
             //百度渠道,隐藏注销和退出登录按钮
             mCancellationLayout.setVisibility(View.GONE);
@@ -206,11 +209,14 @@ public class UserInfoSettingActivity extends BaseMvpActivity<UserInfoSettingPres
             mBindWeChat.setVisibility(View.GONE);
             mBindPhoneNumLayout.setVisibility(View.GONE);
             mSwitchLayout.setVisibility(View.GONE);
+            mTouSuLayout.setVisibility(View.VISIBLE);
+
         } else if (Consts.getUMengChannel().equals(ChannelCodeEnum.BUBUGAO.getChannelCode()) ||
                 Consts.getUMengChannel().equals(ChannelCodeEnum.LENOVO_PAD.getChannelCode()) ||
                 Consts.getUMengChannel().equals(ChannelCodeEnum.JINGDONGFANG.getChannelCode()) ||
                 Consts.getUMengChannel().equals(ChannelCodeEnum.XUNFEI.getChannelCode()) ||
-                Consts.getUMengChannel().equals(ChannelCodeEnum.YIFANG.getChannelCode())) {
+                Consts.getUMengChannel().equals(ChannelCodeEnum.YIFANG.getChannelCode()) ||
+                Consts.getUMengChannel().equals(ChannelCodeEnum.BAIDU_XUEXIJI.getChannelCode())) {
             mBindPhoneNumLayout.setVisibility(View.GONE);
             mBindWeChat.setVisibility(View.GONE);
         }
@@ -352,8 +358,14 @@ public class UserInfoSettingActivity extends BaseMvpActivity<UserInfoSettingPres
                             return;
                         }
                         hideSoftInput();
-                        Consts.getmConstsUserBean().setNickName(mNickName.getText().toString().trim());
-                        mPresenter.upadteMyInfo(Consts.getmConstsUserBean());
+                        if (Consts.mWordFilter.filter_jk_info2(mNickName.getText().toString().trim()).contains("")) {
+                            CusToast.getInstance(mActivity).show("请文明修改昵称", 2000);
+                            mNickName.setText(Consts.getmConstsUserBean().getNickName());
+                            return;
+                        } else {
+                            Consts.getmConstsUserBean().setNickName(mNickName.getText().toString().trim());
+                            mPresenter.upadteMyInfo(Consts.getmConstsUserBean());
+                        }
                     } else {
                         mNickName.setFilters(new InputFilter[]{new InputFilter.LengthFilter(6)});
                     }
@@ -369,8 +381,14 @@ public class UserInfoSettingActivity extends BaseMvpActivity<UserInfoSettingPres
                         return true;
                     }
                     hideSoftInput();
-                    Consts.getmConstsUserBean().setNickName(mNickName.getText().toString().trim());
-                    mPresenter.upadteMyInfo(Consts.getmConstsUserBean());
+                    if (Consts.mWordFilter.filter_jk_info2(mNickName.getText().toString().trim()).contains("")) {
+                        CusToast.getInstance(mActivity).show("请文明修改昵称", 2000);
+                        mNickName.setText(Consts.getmConstsUserBean().getNickName());
+                        return true;
+                    } else {
+                        Consts.getmConstsUserBean().setNickName(mNickName.getText().toString().trim());
+                        mPresenter.upadteMyInfo(Consts.getmConstsUserBean());
+                    }
                     mNickName.clearFocus();
                     return true;
                 }
@@ -386,6 +404,14 @@ public class UserInfoSettingActivity extends BaseMvpActivity<UserInfoSettingPres
             mUserNum.setVisibility(View.INVISIBLE);
         }
 
+
+        addUiClickListener(mTouSuLayout, new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                toNextActivity(ComplaintActivity.class);
+            }
+        });
+
         mPresenter.getMyInfo();
     }
 

+ 1 - 0
app/src/main/java/com/edufound/reader/activity/payactivity/PayActivity.java

@@ -173,6 +173,7 @@ public class PayActivity extends BaseMvpActivity<PayPresenter> implements PayCon
         Logger.e("intentResult:" + intentResult);
     }
 
+
     @Override
     public boolean onKeyDown(int keyCode, KeyEvent event) {
         return true;

+ 14 - 4
app/src/main/java/com/edufound/reader/adapter/RankListItemAdapter.java

@@ -64,10 +64,20 @@ public class RankListItemAdapter extends RecyclerView.Adapter<RankListViewHoler>
                 holder.mNumber.setText((position + 1) + "");
                 break;
         }
-        holder.mName.setText(mListData.get(position).getUser().getNickName());
-        holder.mThumb.setText(mListData.get(position).getUserRead().getLikeAmount());
-        holder.mCollection.setText(mListData.get(position).getUserRead().getFavoritesAmount());
-        holder.mScore.setText(mListData.get(position).getUserRead().getScore());
+        if (mListData.get(position) != null) {
+            if (mListData.get(position).getUser() != null) {
+                if (mListData.get(position).getUser().getNickName() != null) {
+                    holder.mName.setText(mListData.get(position).getUser().getNickName());
+                    holder.mThumb.setText(mListData.get(position).getUserRead().getLikeAmount());
+                    holder.mCollection.setText(mListData.get(position).getUserRead().getFavoritesAmount());
+                    holder.mScore.setText(mListData.get(position).getUserRead().getScore());
+                }
+            } else {
+                Logger.e("mListData.get(position).getUser()是空的-position:" + position);
+            }
+        } else {
+            Logger.e("mListData.get(position)是空的--position:" + position);
+        }
 
     }
 

+ 7 - 13
app/src/main/java/com/edufound/reader/application/EApplication.java

@@ -31,6 +31,7 @@ import com.edufound.reader.util.DeviceUuidFactory;
 import com.edufound.reader.util.ExceptionHandler;
 import com.edufound.reader.util.GlideUtils;
 import com.edufound.reader.util.OkHttpClient;
+import com.edufound.reader.util.WordFilter;
 import com.orhanobut.logger.AndroidLogAdapter;
 import com.orhanobut.logger.FormatStrategy;
 import com.orhanobut.logger.Logger;
@@ -64,22 +65,24 @@ public class EApplication extends Application {
 
             //初始化异常监听
             if (!Consts.isIsDebug()) {
-                initException();
+//                initException();
             }
-
             XmlPullParserFactory.newInstance().setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
 
             //初始化OKhttp3
             OkHttpClient.initOkHttpUtil(getApplicationContext());
 
 
-//
+            Consts.mWordFilter = new WordFilter();
+            //因为内部是静态对象,所以这里先调用一次生成实例,后面可以加速查找过程,懒得改源码了
             new Thread() {
                 @Override
                 public void run() {
                     super.run();
                     //清除所有图片缓存
                     GlideUtils.removeAll(getApplicationContext());
+                    //初始化过滤词库
+                    Consts.mWordFilter.filter_jk_info2("初始化");
                 }
             }.start();
 
@@ -95,21 +98,12 @@ public class EApplication extends Application {
             //初始化友盟
             UMConfigure.setLogEnabled(true);
             UMConfigure.preInit(this, getUmengAppKey(), getUmengChannel());
-            UMConfigure.getOaid(this, new OnGetOaidListener() {
-                @Override
-                public void onGetOaid(String s) {
-//                    Logger.e("umeng_oaid:" + s);
-                }
-            });
+
             MobclickAgent.setPageCollectionMode(MobclickAgent.PageMode.AUTO);
 
 //            UMConfigure.preInit(this,"");
             //初始化MMKV
             MMKV.initialize(this);
-            //初始化DeviceUuidFactory
-            if (DeviceUuidFactory.getUuid() == null) {
-                new DeviceUuidFactory(getApplicationContext());
-            }
             Consts.setUID("test");
             //初始化activity监听
             registerActivityLifecycleCallbacks(activityLifecycleCallbacks);

+ 6 - 0
app/src/main/java/com/edufound/reader/bean/ChannelCodeEnum.java

@@ -56,6 +56,12 @@ public enum ChannelCodeEnum {
         public String getChannelCode() {
             return "3010";
         }
+    },
+    BAIDU_XUEXIJI {
+        //百度学习机
+        public String getChannelCode() {
+            return "3011";
+        }
     };
 
 

+ 19 - 0
app/src/main/java/com/edufound/reader/contract/ComplaintActivityContract.java

@@ -0,0 +1,19 @@
+package com.edufound.reader.contract;
+
+import android.widget.CheckedTextView;
+
+import com.edufound.reader.base.BaseView;
+
+public interface ComplaintActivityContract {
+    interface Model {
+    }
+
+    interface View extends BaseView {
+    }
+
+    interface Presenter {
+
+        void changeCheckText(CheckedTextView ctv);
+
+    }
+}

+ 0 - 1
app/src/main/java/com/edufound/reader/cusview/CusToast.java

@@ -39,7 +39,6 @@ public class CusToast extends Toast {
     }
 
 
-    @RequiresApi(api = Build.VERSION_CODES.P)
     public CusToast(Context context, Handler handler) {
         super(context);
         this.handler = handler;

+ 5 - 1
app/src/main/java/com/edufound/reader/cusview/ModelViewC.java

@@ -171,7 +171,11 @@ public class ModelViewC extends FrameLayout {
                 if (!TextUtils.isEmpty(mListData.get(position).getUser().getWechatName())) {
                     holder.mNickName.setText(mListData.get(position).getUser().getWechatName());
                 } else {
-                    holder.mNickName.setText(mListData.get(position).getUser().getMobile());
+                    if (!TextUtils.isEmpty(mListData.get(position).getUser().getMobile())) {
+                        holder.mNickName.setText(mListData.get(position).getUser().getMobile());
+                    } else {
+                        holder.mNickName.setText(mListData.get(position).getUser().getEid());
+                    }
                 }
             }
             if (holder.mNickName.getText().toString().length() > 11) {

+ 5 - 2
app/src/main/java/com/edufound/reader/cusview/ModelViewE.java

@@ -115,7 +115,6 @@ public class ModelViewE extends FrameLayout {
 
         mRecyclerView.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.VERTICAL, false));
 
-        //测试数据
 
         if (bean.getReadUserList().get(0).getTopList() != null && bean.getReadUserList().get(0).getTopList().size() != 0) {
             ModelViewEAdapter adapter = new ModelViewEAdapter(mContext, bean.getReadUserList().get(0).getTopList());
@@ -171,7 +170,11 @@ public class ModelViewE extends FrameLayout {
                 if (!TextUtils.isEmpty(mListData.get(position).getUser().getWechatName())) {
                     holder.mNickName.setText(mListData.get(position).getUser().getWechatName());
                 } else {
-                    holder.mNickName.setText(mListData.get(position).getUser().getMobile());
+                    if (!TextUtils.isEmpty(mListData.get(position).getUser().getMobile())) {
+                        holder.mNickName.setText(mListData.get(position).getUser().getMobile());
+                    } else {
+                        holder.mNickName.setText(mListData.get(position).getUser().getEid());
+                    }
                 }
             }
             if (holder.mNickName.getText().toString().length() > 11) {

+ 6 - 0
app/src/main/java/com/edufound/reader/model/ComplaintActivityModel.java

@@ -0,0 +1,6 @@
+package com.edufound.reader.model;
+
+import com.edufound.reader.contract.ComplaintActivityContract;
+
+public class ComplaintActivityModel implements ComplaintActivityContract.Model {
+}

+ 2 - 0
app/src/main/java/com/edufound/reader/popwindow/PopWindowUtil.java

@@ -37,6 +37,7 @@ import com.edufound.reader.bean.UserRecordBean;
 import com.edufound.reader.cusview.GridRadioGroup;
 import com.edufound.reader.listener.PopUtilClickListener;
 import com.edufound.reader.listener.PopupRecordStatusListener;
+import com.edufound.reader.util.MMKVUtil;
 import com.edufound.reader.util.miutil.MiSoundSDKUtil;
 import com.edufound.reader.presenter.PopWindowPresneter;
 import com.edufound.reader.util.Consts;
@@ -117,6 +118,7 @@ public class PopWindowUtil {
         RxView.longClicks(image).subscribe(o -> {
             //显示deviceInfo
             showDeviceInfo(context);
+            MMKVUtil.getInstance().clearAll();
         });
 
 

+ 13 - 0
app/src/main/java/com/edufound/reader/presenter/ComplaintActivityPresenter.java

@@ -0,0 +1,13 @@
+package com.edufound.reader.presenter;
+
+import android.widget.CheckedTextView;
+
+import com.edufound.reader.base.BasePresenter;
+import com.edufound.reader.contract.ComplaintActivityContract;
+
+public class ComplaintActivityPresenter extends BasePresenter implements ComplaintActivityContract.Presenter {
+    @Override
+    public void changeCheckText(CheckedTextView ctv) {
+        ctv.setChecked(true);
+    }
+}

+ 3 - 1
app/src/main/java/com/edufound/reader/presenter/LoginAlertPresenter.java

@@ -82,6 +82,8 @@ public class LoginAlertPresenter extends BasePresenter<LoginAlertContract.View>
         for (int i = 0; i < leftBrackets.size(); i++) {
             final int finalI = i;
             style.setSpan(new ClickableSpan() {
+
+
                 @Override
                 public void onClick(@NonNull View widget) {
                     lookPrivacy(finalI);
@@ -170,6 +172,7 @@ public class LoginAlertPresenter extends BasePresenter<LoginAlertContract.View>
                 } else {
                     params.put("grade", MMKVUtil.getInstance().decodeString(MMKVEncodeKey.USER_GRADE));
                 }
+
                 mUserApi.registerMobileByVCode(mView.getActivity(), new Gson().toJson(params), new Callback() {
                     @Override
                     public void onSuccess(HttpInfo info) throws IOException {
@@ -203,7 +206,6 @@ public class LoginAlertPresenter extends BasePresenter<LoginAlertContract.View>
                         Toast.makeText(mView.getActivity(), "注册失败," + info.getRetDetail(), Toast.LENGTH_SHORT).show();
                     }
                 });
-
 //                } else {
 //                    Toast.makeText(mView.getActivity(), "验证码输入错误", Toast.LENGTH_SHORT).show();
 //                }

+ 1 - 0
app/src/main/java/com/edufound/reader/presenter/RecommendFragmentPresenter.java

@@ -448,6 +448,7 @@ public class RecommendFragmentPresenter extends BasePresenter<RecommendFragmentC
             public void onSuccess(HttpInfo info) throws IOException {
                 HttpResultBean<HttpResultDataListBean<UserRecordBean>> bean = info.getRetDetail(new TypeToken<HttpResultBean<HttpResultDataListBean<UserRecordBean>>>() {
                 }.getType());
+                Logger.e("关注的人:" + info.getRetDetail());
                 mAdapter.addMored(bean.getData().getList());
 //                    mDataList.addAll(bean.getData().getList());
                 mTotalSize = Integer.valueOf(bean.getData().getTotalSize());

+ 11 - 0
app/src/main/java/com/edufound/reader/presenter/SplashPresenter.java

@@ -55,6 +55,7 @@ import com.okhttplib.HttpInfo;
 import com.okhttplib.callback.Callback;
 import com.orhanobut.logger.Logger;
 import com.umeng.commonsdk.UMConfigure;
+import com.umeng.commonsdk.listener.OnGetOaidListener;
 
 import org.json.JSONException;
 import org.json.JSONObject;
@@ -162,7 +163,17 @@ public class SplashPresenter extends BasePresenter<SplashContract.View> implemen
 
     public void getUserInfo(Intent intent) {
         UMConfigure.submitPolicyGrantResult(mView.getActivity(), true);
+        //初始化DeviceUuidFactory
+        if (DeviceUuidFactory.getUuid() == null) {
+            new DeviceUuidFactory(mView.getActivity());
+        }
         UMConfigure.init(mView.getActivity(), Consts.getUMengAppKey(), Consts.getUMengChannel(), UMConfigure.DEVICE_TYPE_PHONE, "");
+        UMConfigure.getOaid(mView.getActivity(), new OnGetOaidListener() {
+            @Override
+            public void onGetOaid(String s) {
+//                    Logger.e("umeng_oaid:" + s);
+            }
+        });
         mUserApi.postFirstEnter(new Callback() {
             @Override
             public void onSuccess(HttpInfo info) throws IOException {

+ 5 - 2
app/src/main/java/com/edufound/reader/util/Consts.java

@@ -61,6 +61,9 @@ public class Consts {
     public static int VIEW_CLICK_TIME = 1000;
 
 
+    public static WordFilter mWordFilter;
+
+
     public static boolean isIsHaveFlowerEvent() {
         return isHaveFlowerEvent;
     }
@@ -160,8 +163,8 @@ public class Consts {
 
         if (isDebug) {
             //测试环境
-//            FinalApiUrl = "http://reader-api.efunbox.cn";
-            FinalApiUrl = "https://reader-xiaoai-api.ai160.com";
+            FinalApiUrl = "http://reader-api.efunbox.cn";
+//            FinalApiUrl = "https://reader-xiaoai-api.ai160.com";
         } else {
             FinalApiUrl = "https://reader-xiaoai-api.ai160.com";
         }

+ 2 - 0
app/src/main/java/com/edufound/reader/util/DeviceUuidFactory.java

@@ -5,6 +5,8 @@ import android.content.Context;
 import android.provider.Settings;
 import android.telephony.TelephonyManager;
 
+import com.orhanobut.logger.Logger;
+
 import java.io.UnsupportedEncodingException;
 import java.util.UUID;
 

+ 4 - 2
app/src/main/java/com/edufound/reader/util/EfunboxUtil.java

@@ -202,7 +202,8 @@ public class EfunboxUtil {
                 Consts.getUMengChannel().equals(ChannelCodeEnum.BUBUGAO.getChannelCode()) ||
                 Consts.getUMengChannel().equals(ChannelCodeEnum.YIFANG.getChannelCode()) ||
                 Consts.getUMengChannel().equals(ChannelCodeEnum.XUNFEI.getChannelCode()) ||
-                Consts.getUMengChannel().equals(ChannelCodeEnum.LENOVO_PAD.getChannelCode())) {
+                Consts.getUMengChannel().equals(ChannelCodeEnum.LENOVO_PAD.getChannelCode()) ||
+                Consts.getUMengChannel().equals(ChannelCodeEnum.BAIDU_XUEXIJI.getChannelCode())) {
             //京东方、、步步高、义方、联想pad
             Intent intent = new Intent(context, LoginQRAlertActivity.class);
             context.startActivity(intent);
@@ -231,7 +232,8 @@ public class EfunboxUtil {
                 Consts.getUMengChannel().equals(ChannelCodeEnum.JINGDONGFANG.getChannelCode()) ||
                 Consts.getUMengChannel().equals(ChannelCodeEnum.LENOVO_PAD.getChannelCode()) ||
                 Consts.getUMengChannel().equals(ChannelCodeEnum.XUNFEI.getChannelCode()) ||
-                Consts.getUMengChannel().equals(ChannelCodeEnum.BUBUGAO.getChannelCode())) {
+                Consts.getUMengChannel().equals(ChannelCodeEnum.BUBUGAO.getChannelCode()) ||
+                Consts.getUMengChannel().equals(ChannelCodeEnum.BAIDU_XUEXIJI.getChannelCode())) {
             //义方调用普通版支付,联想也用
             topay = new Intent(activity, PayActivity.class);
             activity.startActivity(topay);

+ 25 - 0
app/src/main/res/layout/activity_userinfo_setting.xml

@@ -435,6 +435,31 @@
                                     android:textColor="#333333"
                                     android:textSize="30dp"></TextView>
                             </LinearLayout>
+
+
+                            <LinearLayout
+                                android:id="@+id/activity_userinfo_setting_tousu_layout"
+                                android:layout_width="0dp"
+                                android:layout_height="match_parent"
+                                android:layout_weight="1"
+                                android:gravity="center"
+                                android:orientation="vertical">
+
+                                <ImageView
+                                    android:layout_width="100dp"
+                                    android:layout_height="100dp"
+                                    android:src="@drawable/tousu"></ImageView>
+
+                                <TextView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="42dp"
+                                    android:layout_gravity="center"
+                                    android:gravity="center"
+                                    android:text="投诉建议"
+                                    android:textColor="#333333"
+                                    android:textSize="30dp"></TextView>
+                            </LinearLayout>
+
                         </LinearLayout>
                     </com.edufound.reader.cusview.RoundFrameLayout>
                 </LinearLayout>

+ 0 - 1
app/src/main/res/layout/popupwindow_mi_sound_qrcode_layout.xml

@@ -91,7 +91,6 @@
                 android:layout_height="515dp"
                 android:layout_gravity="center"
                 android:background="@drawable/mi_sound_login_bg"
-                android:visibility="gone"
                 app:layout_constraintBottom_toBottomOf="parent"
                 app:layout_constraintEnd_toEndOf="parent"
                 app:layout_constraintStart_toStartOf="parent"

+ 3 - 2
app/src/main/res/layout/popupwindow_record_status.xml

@@ -276,10 +276,11 @@
             android:layout_width="718dp"
             android:layout_height="630dp"
             android:layout_gravity="center|left"
+
             android:background="@drawable/popup_record_status_upload_start"
             android:scaleX="0.9"
             android:scaleY="0.9"
-            android:visibility="gone">
+            android:visibility="visible">
 
             <TextView
                 android:layout_width="wrap_content"
@@ -365,7 +366,7 @@
             android:background="@drawable/popup_record_status_upload_error"
             android:scaleX="0.9"
             android:scaleY="0.9"
-            android:visibility="gone">
+            android:visibility="visible">
 
             <LinearLayout
                 android:layout_width="300dp"

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

@@ -1,6 +1,7 @@
 <resources>
     <!--    <string name="app_name">朗读配音</string>-->
     <string name="app_name">课文朗读</string>
+    <string name="app_name_xiaokaxiu">朗读小咖秀</string>
 
 
 </resources>