Переглянути джерело

1.增加http请求的pageloading
2.修改部分界面字体字号
3.修改部分接口参数问题

FailedToRead 3 роки тому
батько
коміт
00fbb465af
41 змінених файлів з 302 додано та 105 видалено
  1. 5 5
      .idea/misc.xml
  2. 1 0
      app/src/fragmentRecommend/layout/popupwindow_record_remove.xml
  3. 3 5
      app/src/fragmentUser/layout/popupwindow_bind_wechat.xml
  4. 0 3
      app/src/main/java/com/edufound/reader/activity/CommentActivity.java
  5. 0 1
      app/src/main/java/com/edufound/reader/activity/PayActivity.java
  6. 4 3
      app/src/main/java/com/edufound/reader/activity/RecordActivity.java
  7. 0 3
      app/src/main/java/com/edufound/reader/activity/SmallFullVideoActivity.java
  8. 3 1
      app/src/main/java/com/edufound/reader/activity/UserInfoSettingActivity.java
  9. 2 2
      app/src/main/java/com/edufound/reader/adapter/SafflowerItemAdapter.java
  10. 1 0
      app/src/main/java/com/edufound/reader/application/EApplication.java
  11. 68 6
      app/src/main/java/com/edufound/reader/base/BaseActivity.java
  12. 2 6
      app/src/main/java/com/edufound/reader/base/BaseFragment.java
  13. 10 0
      app/src/main/java/com/edufound/reader/bean/TaskBean.java
  14. 9 0
      app/src/main/java/com/edufound/reader/bean/UserRecordBean.java
  15. 3 0
      app/src/main/java/com/edufound/reader/botsdk/BotMessageListener.java
  16. 0 1
      app/src/main/java/com/edufound/reader/botsdk/BotRegisterListener.java
  17. 3 1
      app/src/main/java/com/edufound/reader/fragment/RecommendFragment.java
  18. 0 1
      app/src/main/java/com/edufound/reader/popwindow/PopWindowUtil.java
  19. 1 1
      app/src/main/java/com/edufound/reader/presenter/CharacterFragmentPresenter.java
  20. 3 6
      app/src/main/java/com/edufound/reader/presenter/CommentPresenter.java
  21. 0 1
      app/src/main/java/com/edufound/reader/presenter/LoginAlertPresenter.java
  22. 0 3
      app/src/main/java/com/edufound/reader/presenter/MainPresenter.java
  23. 0 2
      app/src/main/java/com/edufound/reader/presenter/MyCollectionPresenter.java
  24. 0 3
      app/src/main/java/com/edufound/reader/presenter/MyTabFragmentPresenter.java
  25. 12 0
      app/src/main/java/com/edufound/reader/presenter/OthersRecordPresenter.java
  26. 1 6
      app/src/main/java/com/edufound/reader/presenter/PopWindowPresneter.java
  27. 33 10
      app/src/main/java/com/edufound/reader/presenter/RecommendFragmentPresenter.java
  28. 8 5
      app/src/main/java/com/edufound/reader/presenter/RecordPresenter.java
  29. 1 1
      app/src/main/java/com/edufound/reader/presenter/SafflowerPresenter.java
  30. 2 7
      app/src/main/java/com/edufound/reader/presenter/UserInfoSettingPresenter.java
  31. 76 0
      app/src/main/java/com/edufound/reader/receiver/ShowPageLoadingReceiver.java
  32. 2 1
      app/src/main/java/com/edufound/reader/util/Consts.java
  33. 2 1
      app/src/main/java/com/edufound/reader/util/HttpInterceptor.java
  34. 20 1
      app/src/main/java/com/edufound/reader/util/OkHttpClient.java
  35. 0 1
      app/src/main/java/com/edufound/reader/util/SizeUtils.java
  36. 0 1
      app/src/main/java/com/edufound/reader/videoutil/ViewPagerLayoutManager.java
  37. BIN
      app/src/main/res/drawable/page_loading.png
  38. 6 6
      app/src/main/res/layout/activity_customerservice.xml
  39. 2 4
      app/src/main/res/layout/activity_saffloer.xml
  40. 16 6
      app/src/main/res/layout/adapter_item_message.xml
  41. 3 1
      app/src/main/res/layout/fragment_main_user.xml

+ 5 - 5
.idea/misc.xml

@@ -32,7 +32,7 @@
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/fragmentRecommend/layout/fragment_main_recommend.xml" value="0.1" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/fragmentRecommend/layout/popup_myorder.xml" value="0.2889294403892944" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/fragmentRecommend/layout/popupwindow_myorder.xml" value="0.2889294403892944" />
-        <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/fragmentRecommend/layout/popupwindow_record_remove.xml" value="0.2980535279805353" />
+        <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/fragmentRecommend/layout/popupwindow_record_remove.xml" value="0.5" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/fragmentRecommend/layout/slide_video_marqueen_item.xml" value="0.5" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/fragmentUser/drawable/fragment_user_info_divider.xml" value="0.31640625" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/fragmentUser/layout/activity_mycollection.xml" value="0.2" />
@@ -66,14 +66,14 @@
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/activity_alert_login.xml" value="0.22" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/activity_comment.xml" value="0.33" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/activity_crash_dialog.xml" value="0.12" />
-        <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/activity_customerservice.xml" value="0.5384615384615384" />
+        <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/activity_customerservice.xml" value="0.5" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/activity_main.xml" value="0.3107843137254902" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/activity_message.xml" value="0.14" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/activity_otherrecord.xml" value="0.43462897526501765" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/activity_pay.xml" value="0.2" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/activity_pay_item.xml" value="0.75" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/activity_record.xml" value="0.33" />
-        <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/activity_saffloer.xml" value="0.4390009606147935" />
+        <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/activity_saffloer.xml" value="0.2" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/activity_saffloer_sign_layout_item.xml" value="0.67" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/activity_saffloer_window_item.xml" value="0.6294277929155313" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/activity_userinfo_setting.xml" value="0.33" />
@@ -81,7 +81,7 @@
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/activity_web.xml" value="0.2731143552311436" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/adapter_item_comment.xml" value="1.5" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/adapter_item_comment_relayout_item.xml" value="0.6661807580174927" />
-        <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/adapter_item_message.xml" value="0.22" />
+        <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/adapter_item_message.xml" value="0.3165266106442577" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/adapter_item_myfollow.xml" value="1.0" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/adapter_item_myollow.xml" value="0.25" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/adapter_item_popupwindow_myorder.xml" value="0.22" />
@@ -96,7 +96,7 @@
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/first_tip.xml" value="0.9" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/fragment_main_character.xml" value="0.18" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/fragment_main_recommend.xml" value="0.2" />
-        <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/fragment_main_user.xml" value="0.5301204819277109" />
+        <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/fragment_main_user.xml" value="0.43545279383429675" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/fragment_user_rv_bottom.xml" value="0.30103359173126615" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/fragment_user_rv_header.xml" value="0.2" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/lifecycle_exception.xml" value="0.2396593673965937" />

+ 1 - 0
app/src/fragmentRecommend/layout/popupwindow_record_remove.xml

@@ -48,6 +48,7 @@
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
                                 android:layout_gravity="center"
+                                android:layout_marginTop="30dp"
                                 android:text="确认删除么?"
                                 android:textColor="#AB722D"
                                 android:textSize="40dp"></TextView>

+ 3 - 5
app/src/fragmentUser/layout/popupwindow_bind_wechat.xml

@@ -63,8 +63,7 @@
                         android:layout_marginTop="11dp"
                         android:text="绑定微信"
                         android:textColor="@color/white"
-                        android:textSize="36dp"
-                        android:textStyle="bold"></TextView>
+                        android:textSize="30dp"></TextView>
             </FrameLayout>
 
             <FrameLayout
@@ -86,14 +85,13 @@
 
             <TextView
                     android:layout_width="wrap_content"
-                    android:layout_height="44dp"
+                    android:layout_height="37dp"
                     android:layout_gravity="center"
                     android:layout_marginLeft="35dp"
                     android:layout_marginTop="130dp"
                     android:text="扫码绑定微信"
                     android:textColor="#333333"
-                    android:textSize="36dp"
-                    android:textStyle="bold"></TextView>
+                    android:textSize="30dp"></TextView>
 
         </FrameLayout>
     </LinearLayout>

+ 0 - 3
app/src/main/java/com/edufound/reader/activity/CommentActivity.java

@@ -87,7 +87,6 @@ public class CommentActivity extends BaseMvpActivity<CommentPresenter> implement
         mPresenter.attachView(this);
         backName = EApplication.mActivityList.get(EApplication.mActivityList.size() - 2).getLocalClassName();
         addUiClickListener(mBack, o -> {
-            Logger.e("backName:" + backName);
             if (backName.contains("SmallFullVideoActivity")) {
                 mPresenter.sendBackReceiver();
             }
@@ -122,7 +121,6 @@ public class CommentActivity extends BaseMvpActivity<CommentPresenter> implement
         });
 
         addUiClickListener(mTouchBack, o -> {
-            Logger.e("backName:" + backName);
             if (backName.contains("SmallFullVideoActivity")) {
                 mPresenter.sendBackReceiver();
             }
@@ -227,7 +225,6 @@ public class CommentActivity extends BaseMvpActivity<CommentPresenter> implement
     @Override
     protected void onDestroy() {
         mPresenter.activityDestory();
-        Logger.e("backName:" + backName);
         if (backName.contains("MainActivity")) {
             mPresenter.sendBackReceiver();
         }

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

@@ -51,7 +51,6 @@ public class PayActivity extends BaseMvpActivity<PayPresenter> implements PayCon
             mActivity.finish();
         });
         addUiClickListener(mToMyOrder, o -> {
-            Toast.makeText(mActivity, "to my order", Toast.LENGTH_SHORT).show();
             PopWindowUtil.showMyOrderWindow(mActivity, getRootView());
         });
         mPresenter.getProductInfo();

+ 4 - 3
app/src/main/java/com/edufound/reader/activity/RecordActivity.java

@@ -26,6 +26,7 @@ import com.edufound.reader.base.BaseMvpActivity;
 import com.edufound.reader.bean.ChannelCodeEnum;
 import com.edufound.reader.botsdk.BotRegisterListener;
 import com.edufound.reader.contract.RecordContract;
+import com.edufound.reader.cusview.CusToast;
 import com.edufound.reader.cusview.RvListJzvdStd;
 import com.edufound.reader.presenter.RecordPresenter;
 import com.edufound.reader.util.Consts;
@@ -97,9 +98,9 @@ public class RecordActivity extends BaseMvpActivity<RecordPresenter> implements
         addUiClickListener(mMikeIcon, o -> {
             if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
                     && checkSelfPermission(Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED) {
+//                CusToast.getInstance(mActivity).show("未获得录音权限", 2000);
                 Toast.makeText(mActivity, "未获得录音权限", Toast.LENGTH_SHORT).show();
 
-
                 String isgranted = MMKVUtil.getInstance().decodeString("record_granted");
                 if (isgranted == null || isgranted.equals("")) {
                     //一次都没有出来过
@@ -120,7 +121,8 @@ public class RecordActivity extends BaseMvpActivity<RecordPresenter> implements
                                 startRecordStatus();
                             }
                         } else {
-                            Toast.makeText(mActivity, "请购买会员后尝试", Toast.LENGTH_SHORT).show();
+//                            CusToast.getInstance(mActivity).show("请购买会员后尝试",2000);
+                            BotRegisterListener.payBaiDuVip();
                         }
 
                     }
@@ -250,7 +252,6 @@ public class RecordActivity extends BaseMvpActivity<RecordPresenter> implements
     public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
         super.onRequestPermissionsResult(requestCode, permissions, grantResults);
         if (requestCode == PermissionsUtil.GET_RECODE_AUDIO) {
-            Logger.e("grantResults[0]:" + grantResults[0]);
             if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                 //获取成功
                 MMKVUtil.getInstance().encode("record_granted", "1");

+ 0 - 3
app/src/main/java/com/edufound/reader/activity/SmallFullVideoActivity.java

@@ -34,7 +34,6 @@ public class SmallFullVideoActivity extends BaseMvpActivity<SmallFullVideoPresen
 
     @Override
     public void initView() {
-        Logger.e("创建smallFullVideoActivity");
         mActivity = this;
         mPresenter = new SmallFullVideoPresenter(getSupportFragmentManager());
         mPresenter.attachView(this);
@@ -119,8 +118,6 @@ public class SmallFullVideoActivity extends BaseMvpActivity<SmallFullVideoPresen
         public void pageBack(Intent intent) {
             if (intent.getAction().equals(BackPageReceiver.BACK_HOME_REF_VIDEO_ITEM)) {
                 //从其他页面回来了。查询一下单独的item数据,然后赋值
-                Logger.e("收到了回来的广播了:SmallFullVideoActivity");
-                Logger.e("收到了回来的广播了:--------SmallFullVideoActivity");
                 mPresenter.refRecordById(intent.getStringExtra("recordId"));
             }
         }

+ 3 - 1
app/src/main/java/com/edufound/reader/activity/UserInfoSettingActivity.java

@@ -28,6 +28,7 @@ import com.edufound.reader.bean.ChannelCodeEnum;
 import com.edufound.reader.bean.UserBean;
 import com.edufound.reader.botsdk.BotRegisterListener;
 import com.edufound.reader.contract.UserInfoSettingContract;
+import com.edufound.reader.cusview.CusToast;
 import com.edufound.reader.listener.PopUtilClickListener;
 import com.edufound.reader.popwindow.PopWindowUtil;
 import com.edufound.reader.presenter.UserInfoSettingPresenter;
@@ -250,7 +251,8 @@ public class UserInfoSettingActivity extends BaseMvpActivity<UserInfoSettingPres
             public boolean onEditorAction(TextView textView, int actionId, KeyEvent keyEvent) {
                 if (actionId == KeyEvent.ACTION_DOWN || actionId == EditorInfo.IME_ACTION_DONE) {
                     if (TextUtils.isEmpty(mNickName.getText().toString())) {
-                        Toast.makeText(getActivity(), "请输入昵称", Toast.LENGTH_SHORT).show();
+//                        CusToast.getInstance(mActivity).show("请输入昵称", 2000);
+                        Toast.makeText(mActivity, "请输入昵称", Toast.LENGTH_SHORT).show();
                         return true;
                     }
                     hideSoftInput();

+ 2 - 2
app/src/main/java/com/edufound/reader/adapter/SafflowerItemAdapter.java

@@ -39,8 +39,8 @@ public class SafflowerItemAdapter extends RecyclerView.Adapter<SafflowerItemHold
 
     @Override
     public void onBindViewHolder(@NonNull SafflowerItemHolder holder, int position) {
-        holder.mTitle.setText(mListData.get(position).getTask().getTitle());
-        holder.mFlowerCount.setText(mListData.get(position).getTask().getAward());
+        holder.mTitle.setText(mListData.get(position).getTask().getShortTitle());
+        holder.mFlowerCount.setText("+" + mListData.get(position).getTask().getAward());
         if (mListData.get(position).getUserTask() == null) {
             holder.mOverCount.setText("0");
             holder.mOverFlower.setText("奖励 0");

+ 1 - 0
app/src/main/java/com/edufound/reader/application/EApplication.java

@@ -21,6 +21,7 @@ import com.edufound.reader.bean.ChannelCodeEnum;
 import com.edufound.reader.botsdk.BotConstants;
 import com.edufound.reader.botsdk.BotMessageListener;
 import com.edufound.reader.botsdk.BotSDKUtils;
+import com.edufound.reader.cusview.CusToast;
 import com.edufound.reader.support.CrashLog;
 import com.edufound.reader.support.DebugSafeModeTipActivity;
 import com.edufound.reader.support.DebugSafeModeUI;

+ 68 - 6
app/src/main/java/com/edufound/reader/base/BaseActivity.java

@@ -44,6 +44,7 @@ import com.edufound.reader.cusview.CusToast;
 import com.edufound.reader.receiver.HomeKeyEventReceiver;
 import com.edufound.reader.receiver.NetworkChangeReceiver;
 import com.edufound.reader.receiver.ShowFollowReceiver;
+import com.edufound.reader.receiver.ShowPageLoadingReceiver;
 import com.edufound.reader.util.Consts;
 import com.edufound.reader.util.DeviceUuidFactory;
 import com.edufound.reader.util.EfunboxUtil;
@@ -86,6 +87,9 @@ public abstract class BaseActivity extends AppCompatActivity {
 
     View mFirstIntoView;
 
+    ImageView pageLoading;
+    boolean pageLoadingShow = false;
+
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -126,7 +130,8 @@ public abstract class BaseActivity extends AppCompatActivity {
         //注册小红花广播
         ShowFollowReceiver.registerReceiver(this);
         ShowFollowReceiver.registerObserver(showFollow);
-
+        ShowPageLoadingReceiver.registerReceiver(this);
+        ShowPageLoadingReceiver.registerObserver(pageLoadingReceiver);
 
     }
 
@@ -142,6 +147,8 @@ public abstract class BaseActivity extends AppCompatActivity {
         NetworkChangeReceiver.unRegisterObserver(NetStateChangeObserver);
         ShowFollowReceiver.unRegisterReceiver(this);
         ShowFollowReceiver.unRegisterObserver(showFollow);
+        ShowPageLoadingReceiver.unRegisterReceiver(this);
+        ShowPageLoadingReceiver.unRegisterObserver(pageLoadingReceiver);
     }
 
     /**
@@ -229,6 +236,7 @@ public abstract class BaseActivity extends AppCompatActivity {
         public void onDisconnect() {
             //断网了
             onGetDisconnect();
+//            CusToast.getInstance(Consts.getmApplicAtion()).show("网络异常,请检查网络。", 2000);
             Toast.makeText(Consts.getmApplicAtion(), "网络异常,请检查网络。", Toast.LENGTH_SHORT).show();
         }
 
@@ -309,19 +317,28 @@ public abstract class BaseActivity extends AppCompatActivity {
                     params.topMargin = SizeUtils.dp2px(Consts.getmApplicAtion().getBaseContext(), 80);
                     if (Integer.valueOf(message.arg1) % 2 == 0) {
                         //双数
-                        params.rightMargin = SizeUtils.dp2px(Consts.getmApplicAtion().getBaseContext(), 30);
                     } else {
-                        params.rightMargin = SizeUtils.dp2px(Consts.getmApplicAtion().getBaseContext(), 70);
+                        params.rightMargin = SizeUtils.dp2px(Consts.getmApplicAtion().getBaseContext(), 20);
+                        params.rightMargin = SizeUtils.dp2px(Consts.getmApplicAtion().getBaseContext(), 60);
                     }
 
                     imageView.setLayoutParams(params);
                     getRootView().addView(imageView);
-                    ObjectAnimator mRotationImgAnim = ObjectAnimator.ofFloat(imageView, "translationY", 0, -200);
-                    mRotationImgAnim.setDuration(1500);
+                    ObjectAnimator mTranslationY = ObjectAnimator.ofFloat(imageView, "translationY", 0, -200);
+                    mTranslationY.setDuration(1500);
                     ObjectAnimator alphaAnim = ObjectAnimator.ofFloat(imageView, "alpha", 1f, 0f);
                     alphaAnim.setDuration(1500);
+                    ObjectAnimator mRotationImgAnim = ObjectAnimator.ofFloat(imageView, "rotation", 0.0F, 359.0F);
+                    mRotationImgAnim.setRepeatCount(-1);
+                    mRotationImgAnim.setDuration(1000);
+                    ObjectAnimator scaleXAnim = ObjectAnimator.ofFloat(imageView, "scaleX", 1f, 2f);
+                    ObjectAnimator scaleYAnim = ObjectAnimator.ofFloat(imageView, "scaleY", 1f, 2f);
+                    scaleXAnim.setDuration(1000);
+                    scaleYAnim.setDuration(1000);
+                    LinearInterpolator rotation_interpolator = new LinearInterpolator();
+                    mRotationImgAnim.setInterpolator(rotation_interpolator); //设置匀速旋转,不卡顿 icon_anim.start();
                     AnimatorSet animatorSet = new AnimatorSet();
-                    animatorSet.play(mRotationImgAnim).with(alphaAnim);
+                    animatorSet.play(mTranslationY).with(alphaAnim).with(mRotationImgAnim).with(scaleXAnim).with(scaleYAnim);
                     animatorSet.addListener(new AnimatorListenerAdapter() {
                         @Override
                         public void onAnimationEnd(Animator animation) {
@@ -386,6 +403,36 @@ public abstract class BaseActivity extends AppCompatActivity {
     }
 
 
+    public void showPageLoading() {
+        if (pageLoading == null) {
+            pageLoading = new ImageView(this);
+            pageLoading.setImageResource(R.drawable.page_loading);
+            FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(SizeUtils.dp2px(this, 60), SizeUtils.dp2px(this, 60));
+            params.gravity = Gravity.CENTER;
+            pageLoading.setLayoutParams(params);
+            ObjectAnimator mRotationImgAnim = ObjectAnimator.ofFloat(pageLoading, "rotation", 0.0F, 359.0F);
+            mRotationImgAnim.setRepeatCount(-1);
+            mRotationImgAnim.setDuration(1000);
+            mRotationImgAnim.start();
+        }
+        if (pageLoadingShow) {
+            return;
+        }
+        getRootView().addView(pageLoading);
+        pageLoadingShow = true;
+    }
+
+    public void hidePageLoading() {
+        if (pageLoading == null) {
+            return;
+        }
+        if (pageLoadingShow) {
+            getRootView().removeView(pageLoading);
+            pageLoadingShow = false;
+        }
+    }
+
+
     public Gson getGson() {
         return mGson;
     }
@@ -479,6 +526,7 @@ public abstract class BaseActivity extends AppCompatActivity {
                 botHandleIntent(intent, customData);
                 return;
             }
+            Logger.e("intent:" + intent.name);
             if (BotRegisterListener.isNoLoginIntent(intent)) {
                 //不是获取手机号
                 Logger.e("不是获取手机号--不是获取手机号:" + intent.name + "---" + intent.slots.toString());
@@ -550,10 +598,12 @@ public abstract class BaseActivity extends AppCompatActivity {
                                     @Override
                                     public void onFailure(HttpInfo info) throws IOException {
                                         Logger.e("手机号注册失败:" + info.getRetDetail());
+//                                        CusToast.getInstance(topActivity).show("注册失败", 2000);
                                         Toast.makeText(topActivity, "注册失败", Toast.LENGTH_SHORT).show();
                                     }
                                 });
                             } else {
+//                                CusToast.getInstance(topActivity).show("手机号不正确", 2000);
                                 Toast.makeText(topActivity, "手机号不正确", Toast.LENGTH_SHORT).show();
                             }
                         }
@@ -635,4 +685,16 @@ public abstract class BaseActivity extends AppCompatActivity {
             showFollowCountAnim(intent.getStringExtra("follow_count"));
         }
     };
+
+    ShowPageLoadingReceiver.PageLoading pageLoadingReceiver = new ShowPageLoadingReceiver.PageLoading() {
+        @Override
+        public void show(Intent intent) {
+            showPageLoading();
+        }
+
+        @Override
+        public void hide(Intent intent) {
+            hidePageLoading();
+        }
+    };
 }

+ 2 - 6
app/src/main/java/com/edufound/reader/base/BaseFragment.java

@@ -230,14 +230,12 @@ public abstract class BaseFragment extends Fragment {
                         public void onSuccess(HttpInfo info) throws IOException {
                             JSONObject object = JSONObject.parseObject(info.getRetDetail().toString());
                             String phone = JSONObject.parseObject(object.getString("data")).getString("phone");
-                            Logger.e("获取的手机号:" + phone);
                             if (EfunboxUtil.isMobileNO(phone)) {
                                 Map<String, String> map = new HashMap<>();
                                 map.put("deviceCode", DeviceUuidFactory.getUuid());
                                 map.put("channel", Consts.getUmengChannel());
                                 map.put("mobileNo", phone);
                                 map.put("nickName", EfunboxUtil.setPhoneMiddle(phone));
-                                Logger.e("Consts.getmConstsBaiDuUserBean().getUserInfo().getUserId():" + Consts.getmConstsBaiDuUserBean().getUserInfo().getUserId());
                                 map.put("userId", Consts.getmConstsBaiDuUserBean().getUserInfo().getUserId());
                                 if (MMKVUtil.getInstance().decodeString(MMKVEncodeKey.USER_GRADE).equals("") || MMKVUtil.getInstance().decodeString(MMKVEncodeKey.USER_GRADE) == null) {
                                     //如果没有,默认给一年级
@@ -247,11 +245,9 @@ public abstract class BaseFragment extends Fragment {
                                 }
 
                                 String json = mGson.toJson(map);
-                                Logger.e("json:" + json);
                                 userApiServer.registerUserId(topActivity, json, new Callback() {
                                     @Override
                                     public void onSuccess(HttpInfo info) throws IOException {
-                                        Logger.e("手机号注册成功:" + info.getRetDetail());
 
                                         HttpResultBean<UserBean> bean = info.getRetDetail(new TypeToken<HttpResultBean<UserBean>>() {
                                         }.getType());
@@ -261,12 +257,10 @@ public abstract class BaseFragment extends Fragment {
                                         String nickName = EfunboxUtil.setPhoneMiddle(bean.getData().getMobile());
                                         bean.getData().setNickName(nickName);
                                         Consts.setmConstsUserBean(bean.getData());
-                                        Logger.e("看看到底对没有:" + mGson.toJson(Consts.getmConstsUserBean()));
                                         refUserInfo(Consts.getmConstsUserBean());
                                         userApiServer.loginSign(topActivity, new Callback() {
                                             @Override
                                             public void onSuccess(HttpInfo info) throws IOException {
-                                                Logger.e("info:" + info.getRetDetail());
                                                 HttpResultBean<SignBean> bean = info.getRetDetail(new TypeToken<HttpResultBean<SignBean>>() {
                                                 }.getType());
                                                 if (bean.getData().getIsSign()) {
@@ -284,10 +278,12 @@ public abstract class BaseFragment extends Fragment {
                                     @Override
                                     public void onFailure(HttpInfo info) throws IOException {
                                         Logger.e("手机号注册失败:" + info.getRetDetail());
+//                                        CusToast.getInstance(topActivity).show("注册失败",2000);
                                         Toast.makeText(topActivity, "注册失败", Toast.LENGTH_SHORT).show();
                                     }
                                 });
                             } else {
+//                                CusToast.getInstance(topActivity).show("手机号不正确",2000);
                                 Toast.makeText(topActivity, "手机号不正确", Toast.LENGTH_SHORT).show();
                             }
                         }

+ 10 - 0
app/src/main/java/com/edufound/reader/bean/TaskBean.java

@@ -58,6 +58,16 @@ public class TaskBean {
 
         private String type;
 
+        private String shortTitle;
+
+        public String getShortTitle() {
+            return shortTitle;
+        }
+
+        public void setShortTitle(String shortTitle) {
+            this.shortTitle = shortTitle;
+        }
+
         public void setAward(String award) {
             this.award = award;
         }

+ 9 - 0
app/src/main/java/com/edufound/reader/bean/UserRecordBean.java

@@ -130,6 +130,15 @@ public class UserRecordBean {
 
         private String videoPath;
 
+        private String readAmount;
+
+        public String getReadAmount() {
+            return readAmount;
+        }
+
+        public void setReadAmount(String readAmount) {
+            this.readAmount = readAmount;
+        }
 
         public String getAudioPath() {
             return this.audioPath;

+ 3 - 0
app/src/main/java/com/edufound/reader/botsdk/BotMessageListener.java

@@ -6,6 +6,7 @@ import com.baidu.duer.botsdk.BotIdentity;
 import com.baidu.duer.botsdk.BotIntent;
 import com.baidu.duer.botsdk.IBotMessageListener;
 import com.edufound.reader.application.EApplication;
+import com.edufound.reader.cusview.CusToast;
 import com.edufound.reader.util.Consts;
 import com.orhanobut.logger.Logger;
 
@@ -130,10 +131,12 @@ public class BotMessageListener implements IBotMessageListener {
     @Override
     public void onRegisterFailed(int i) {
 //        Toast.makeText(Consts.getmApplicAtion(), "注册失败", Toast.LENGTH_LONG).show();
+//        CusToast.getInstance(Consts.getmApplicAtion()).show("注册百度sdk失败", 2000);
     }
 
     @Override
     public void onRegisterSucceed() {
 //        Toast.makeText(Consts.getmApplicAtion(), "注册百度sdk成功", Toast.LENGTH_LONG).show();
+//        CusToast.getInstance(Consts.getmApplicAtion()).show("注册百度sdk成功", 2000);
     }
 }

+ 0 - 1
app/src/main/java/com/edufound/reader/botsdk/BotRegisterListener.java

@@ -52,7 +52,6 @@ public class BotRegisterListener {
     }
 
     public static void getBaiDuVipInfo() {
-        Logger.e("获取是否是百度VIP权限");
         LinkClickedEventPayload linkClickedEventPayload = new LinkClickedEventPayload();
         linkClickedEventPayload.url = String.format("dueros://%s/getVipInfo" + "?channel_type=bot_child&from=wutong|show|yifang|ldpy", BotConstants.BOTID);
         BotSdk.getInstance().uploadLinkClickedEvent(linkClickedEventPayload);

+ 3 - 1
app/src/main/java/com/edufound/reader/fragment/RecommendFragment.java

@@ -156,6 +156,7 @@ public class RecommendFragment extends BaseMvpFragment<RecommendFragmentPresente
                 mPresenter.scrollToUpFunction(mRecyclerView);
             });
             addUiClickListener(mVideoNext, o -> {
+                mPresenter.checkIsOver();
                 mPresenter.scrollToNextFunction(mRecyclerView, true);
 //                mPresenter.toNext(mRecyclerView);
                 Logger.e("下一个视频");
@@ -172,7 +173,8 @@ public class RecommendFragment extends BaseMvpFragment<RecommendFragmentPresente
                     bundle.putString("exampleId", mPresenter.getCurVideoExampleId().toString());
                     toNextActivity(RecordActivity.class, bundle);
                 } else {
-                    Toast.makeText(getActivity(), "您还不是VIP,请购买后使用", Toast.LENGTH_SHORT).show();
+//                    Toast.makeText(getActivity(), "您还不是VIP,请购买后使用", Toast.LENGTH_SHORT).show();
+                    BotRegisterListener.payBaiDuVip();
                 }
             }
         });

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

@@ -111,7 +111,6 @@ public class PopWindowUtil {
         gridRadioGroup.setOnCheckedChangeListener(new GridRadioGroup.OnCheckedChangeListener() {
             @Override
             public void onCheckedChanged(GridRadioGroup group, int checkedId) {
-                Logger.e("checkedId:" + checkedId);
                 group.check(checkedId);
                 switch (checkedId) {
                     case R.id.popupwindow_select_grade_one:

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

@@ -126,7 +126,7 @@ public class CharacterFragmentPresenter extends BasePresenter<CharacterFragmentC
 //        GlideUtils.loadRoundCircleImage(mContext, mDataList.get(index).getUserRead().getCoverImg(), imgIcon, SizeUtils.dp2px(mContext, 20));
         GlideUtils.loadImage(mContext, mDataList.get(index).getUserRead().getCoverImg(), imgIcon);
         name.setText(mDataList.get(index).getUserRead().getTitle());
-        allcount.setText(EfunboxUtil.checkNum10000(mDataList.get(index).getUserRead().getCommentAmount()));
+        allcount.setText(EfunboxUtil.checkNum10000(mDataList.get(index).getUserRead().getReadAmount()));
         looknum.setText(EfunboxUtil.checkNum10000(mDataList.get(index).getUserRead().getPlayAmount()));
         thumbnum.setText(EfunboxUtil.checkNum10000(mDataList.get(index).getUserRead().getLikeAmount()));
         startnum.setText(EfunboxUtil.checkNum10000(mDataList.get(index).getUserRead().getFavoritesAmount()));

+ 3 - 6
app/src/main/java/com/edufound/reader/presenter/CommentPresenter.java

@@ -16,8 +16,10 @@ import com.edufound.reader.bean.CommentListReplyBean;
 import com.edufound.reader.bean.HttpResultBean;
 import com.edufound.reader.bean.HttpResultDataListBean;
 import com.edufound.reader.contract.CommentContract;
+import com.edufound.reader.cusview.CusToast;
 import com.edufound.reader.model.CommentModel;
 import com.edufound.reader.receiver.BackPageReceiver;
+import com.edufound.reader.util.Consts;
 import com.google.gson.reflect.TypeToken;
 import com.okhttplib.HttpInfo;
 import com.okhttplib.callback.Callback;
@@ -93,7 +95,6 @@ public class CommentPresenter extends BasePresenter<CommentContract.View> implem
     public void getAllComment(String exampleId, String pageIndex) {
         if (mDataList != null && mDataList.size() >= commentSize) {
             loadOver = true;
-            Logger.e("commentSize:" + commentSize + "---mDataList.size():" + mDataList.size());
 //            Toast.makeText(mView.getActivity(), "没有更多了", Toast.LENGTH_SHORT).show();
             return;
         }
@@ -120,13 +121,11 @@ public class CommentPresenter extends BasePresenter<CommentContract.View> implem
                     });
                 }
                 pageCommentIndex++;
-                Logger.e("commentSize:" + commentSize + "---mDataList.size():" + mDataList.size());
                 mView.setMaxCommentCount(commentSize);
             }
 
             @Override
             public void onFailure(HttpInfo info) throws IOException {
-                Logger.e("获取带分层评论失败:" + info.getRetDetail());
             }
         });
     }
@@ -152,10 +151,8 @@ public class CommentPresenter extends BasePresenter<CommentContract.View> implem
                         }
                         mCommentItemAdapter.notifyDataSetChanged();
                         mView.moveRecyclearView(0);
-                        Logger.e("之前的--commentSize:" + commentSize);
                         commentSize = commentSize + 1;
                         mView.setMaxCommentCount(commentSize);
-                        Logger.e("之后的---commentSize:" + commentSize);
                         mView.doPostsSuccess();
                     }
                 });
@@ -178,7 +175,7 @@ public class CommentPresenter extends BasePresenter<CommentContract.View> implem
                 }.getType());
                 if (bean.getCode().equals("403")) {
                     //点过赞了
-                    Toast.makeText(mView.getActivity(), "已经点过赞了", Toast.LENGTH_SHORT).show();
+//                    CusToast.getInstance(Consts.getmApplicAtion()).show("已经点过赞了。", 2000);
                 } else if (bean.getCode().equals("200")) {
                     mDataList.get(position).setIsLike(true);
                     mDataList.get(position).setLikeCount(bean.getData());

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

@@ -100,7 +100,6 @@ public class LoginAlertPresenter extends BasePresenter<LoginAlertContract.View>
                 @Override
                 public void onSuccess(HttpInfo info) throws IOException {
                     String result = info.getRetDetail();
-                    Logger.e("result:" + result);
                     getVCode = 9999;
                 }
 

+ 0 - 3
app/src/main/java/com/edufound/reader/presenter/MainPresenter.java

@@ -176,7 +176,6 @@ public class MainPresenter extends BasePresenter<MainContract.View> implements M
         mUserApi.isLogin(mView.getActivity(), DeviceUuidFactory.getUuid(), new Callback() {
             @Override
             public void onSuccess(HttpInfo info) throws IOException {
-                Logger.e("用户是否登录成功:" + info.getRetDetail());
                 HttpResultBean<UserBean> bean = info.getRetDetail(new TypeToken<HttpResultBean<UserBean>>() {
                 }.getType());
                 if (bean.getCode().equals("300")) {
@@ -197,7 +196,6 @@ public class MainPresenter extends BasePresenter<MainContract.View> implements M
                     mUserApi.loginSign(mView.getActivity(), new Callback() {
                         @Override
                         public void onSuccess(HttpInfo info) throws IOException {
-                            Logger.e("info:" + info.getRetDetail());
                             HttpResultBean<SignBean> bean = info.getRetDetail(new TypeToken<HttpResultBean<SignBean>>() {
                             }.getType());
                             if (bean.getData().getIsSign()) {
@@ -241,7 +239,6 @@ public class MainPresenter extends BasePresenter<MainContract.View> implements M
                 map.put("grade", MMKVUtil.getInstance().decodeString(MMKVEncodeKey.USER_GRADE));
             }
             String json = ((BaseActivity) mView.getActivity()).getGson().toJson(map);
-            Logger.e("json:" + json);
             mUserApi.registerMobile(mView.getActivity(), json, new Callback() {
                 @Override
                 public void onSuccess(HttpInfo info) throws IOException {

+ 0 - 2
app/src/main/java/com/edufound/reader/presenter/MyCollectionPresenter.java

@@ -170,12 +170,10 @@ public class MyCollectionPresenter extends BasePresenter<MyCollectionContract.Vi
             if (intent.getAction().equals(BackPageReceiver.BACK_HOME_REMOVE_VIDEO_ITEM)) {
                 //删除item
                 int position = Integer.valueOf(intent.getStringExtra("position"));
-                Logger.e("删除item:" + position + ",添加到map里");
                 mRemovMap.put("del" + position, position);
             } else if (intent.getAction().equals(BackPageReceiver.BACK_HOME_ADD_VIDEO_ITEM)) {
                 //添加item
                 int position = Integer.valueOf(intent.getStringExtra("position"));
-                Logger.e("添加item:" + position + ",从需要遍历的map里删除");
                 if (mRemovMap.get("del" + position) != null) {
                     mRemovMap.remove("del" + position);
                 }

+ 0 - 3
app/src/main/java/com/edufound/reader/presenter/MyTabFragmentPresenter.java

@@ -272,8 +272,6 @@ public class MyTabFragmentPresenter extends BasePresenter<MyTabFragmentContract.
 
             @Override
             public void onFailure(HttpInfo info) throws IOException {
-                Logger.e("获取我的朗读列表错误:" + info.getRetDetail());
-                Logger.e("获取我的朗读列表错误:" + info.getNetCode());
                 Logger.e("获取我的朗读列表错误:" + info.getRetCode());
 
             }
@@ -373,7 +371,6 @@ public class MyTabFragmentPresenter extends BasePresenter<MyTabFragmentContract.
                 HttpResultBean<String> bean = info.getRetDetail(new TypeToken<HttpResultBean<String>>() {
                 }.getType());
                 if (Integer.valueOf(bean.getData()) == 0) {
-                    Logger.e("没有审核中的了");
                     if (isNedRef) {
                         sendRefMyFragment();
                         mUserFragmentHandler.removeMessages(MyTabFragmentModel.GET_CHECK_NUM);

+ 12 - 0
app/src/main/java/com/edufound/reader/presenter/OthersRecordPresenter.java

@@ -1,6 +1,7 @@
 package com.edufound.reader.presenter;
 
 import android.content.Intent;
+import android.os.Build;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
@@ -43,6 +44,8 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import androidx.annotation.RequiresApi;
+
 public class OthersRecordPresenter extends BasePresenter<OthersRecordContract.View> implements OthersRecordContract.Presenter {
 
 
@@ -175,6 +178,7 @@ public class OthersRecordPresenter extends BasePresenter<OthersRecordContract.Vi
         map.put("uid", uid);
         String json = ((BaseActivity) mView.getActivity()).getGson().toJson(map);
         mModel.doFollow(mView.getActivity(), json, new Callback() {
+            @RequiresApi(api = Build.VERSION_CODES.N)
             @Override
             public void onSuccess(HttpInfo info) throws IOException {
                 HttpResultBean<FansBean> bean = info.getRetDetail(new TypeToken<HttpResultBean<FansBean>>() {
@@ -182,10 +186,18 @@ public class OthersRecordPresenter extends BasePresenter<OthersRecordContract.Vi
                 if (bean.getData().getStatus().equals("NORMAL")) {
                     //已关注状态
                     mView.doFollowSuccess(true);
+                    mDataList.forEach((item) -> {
+                        item.setFans(true);
+
+                    });
                 } else if (bean.getData().getStatus().equals("DEL")) {
                     //未关注状态
                     mView.doFollowSuccess(false);
+                    mDataList.forEach((item) -> {
+                        item.setFans(false);
+                    });
                 }
+                getOtherUserInfo(uid);
             }
 
             @Override

+ 1 - 6
app/src/main/java/com/edufound/reader/presenter/PopWindowPresneter.java

@@ -74,10 +74,6 @@ public class PopWindowPresneter {
         int speedd = bean.getSpeed();
         int tone = bean.getTone();
         int score = (int) ((integrity * 0.5) + (bean.getOverall() * 0.3) + (speedd * 0.1) + (tone * 0.1));
-        Logger.e("(integrity * 0.3):" + (integrity * 0.5));
-        Logger.e(" (bean.getOverall() * 0.5)" + (bean.getOverall() * 0.5));
-        Logger.e(" (speedd * 0.1):" + (speedd * 0.1));
-        Logger.e("(tone * 0.1):" + (tone * 0.1));
         int startCount = 0;
         if (score > 0 && score <= 20) {
             //1个星星
@@ -95,7 +91,6 @@ public class PopWindowPresneter {
             //5个星星
             startCount = 5;
         }
-        Logger.e("score:" + score);
         //先显示评测报告,处理测评报告逻辑
         {
             mOverFrame.setVisibility(View.VISIBLE);
@@ -259,7 +254,7 @@ public class PopWindowPresneter {
                             mReUpload.setOnClickListener(new View.OnClickListener() {
                                 @Override
                                 public void onClick(View view) {
-                                    Toast.makeText(context, "重新上传", Toast.LENGTH_SHORT).show();
+//                                    Toast.makeText(context, "重新上传", Toast.LENGTH_SHORT).show();
                                     mModel.upLoadRecord(context, Consts.getRecordUpLoadFileUrl(), mUploadProgressBack);
                                 }
                             });

+ 33 - 10
app/src/main/java/com/edufound/reader/presenter/RecommendFragmentPresenter.java

@@ -86,11 +86,22 @@ public class RecommendFragmentPresenter extends BasePresenter<RecommendFragmentC
         if (type == 0) {
             //推荐的接口
             initVideoDate(rv, startPosition);
-            getRecommendDataList();
+            mView.getRootView().post(new Runnable() {
+                @Override
+                public void run() {
+                    getRecommendDataList();
+                }
+            });
         } else if (type == 1) {
             //关注的所有人的所有视频
             initVideoDate(rv, startPosition);
-            getMyFollowAllVideo();
+
+            mView.getRootView().post(new Runnable() {
+                @Override
+                public void run() {
+                    getMyFollowAllVideo();
+                }
+            });
         } else if (type == 2) {
             //上级页面传的json
             mDataList = ((BaseActivity) mView.getActivity()).getGson().fromJson(mView.getDataJson(), new TypeToken<List<UserRecordBean>>() {
@@ -143,9 +154,9 @@ public class RecommendFragmentPresenter extends BasePresenter<RecommendFragmentC
                 autoPlayVideo(rv);
                 mCurrentPosition = position;
                 if (mCurrentPosition == 0) {
-                    Toast.makeText(mContext, "已经是第一个了", Toast.LENGTH_SHORT).show();
+                    Toast.makeText(mContext, "到顶了", Toast.LENGTH_SHORT).show();
                 } else if (mCurrentPosition == (mTotalSize - 1)) {
-                    Toast.makeText(mContext, "已经是最后一个了", Toast.LENGTH_SHORT).show();
+                    Toast.makeText(mContext, "到底了", Toast.LENGTH_SHORT).show();
                 }
 //                Logger.e("mCurrentPosition:" + mCurrentPosition);
 //                Logger.e("mDataList:" + mDataList.size());
@@ -248,7 +259,13 @@ public class RecommendFragmentPresenter extends BasePresenter<RecommendFragmentC
 
             @Override
             public void onFailure(HttpInfo info) throws IOException {
-                CusToast.getInstance(mView.getActivity()).show(info.getRetDetail(), 3000);
+                Logger.e("info:" + info.getRetDetail());
+                Logger.e("info-getRetCode:" + info.getRetCode());
+                Logger.e("info-getUrl:" + info.getUrl());
+                Logger.e("info-getUrl:" + info.getParams().toString());
+
+//                CusToast.getInstance(mView.getActivity()).show(info.getRetDetail(), 3000);
+//                Toast.makeText(mView.getActivity(), info.getRetDetail(), Toast.LENGTH_SHORT).show();
             }
         });
     }
@@ -323,7 +340,6 @@ public class RecommendFragmentPresenter extends BasePresenter<RecommendFragmentC
             public void onSuccess(HttpInfo info) throws IOException {
                 HttpResultBean<UserRecordBean> bean = info.getRetDetail(new TypeToken<HttpResultBean<UserRecordBean>>() {
                 }.getType());
-                Logger.e("mCurrentPosition:" + mCurrentPosition);
                 mDataList.set(mCurrentPosition, bean.getData());
                 mView.getRootView().post(new Runnable() {
                     @Override
@@ -398,7 +414,8 @@ public class RecommendFragmentPresenter extends BasePresenter<RecommendFragmentC
                     @Override
                     public void onComplete() {
                         if (mCurrentPosition >= mTotalSize - 1) {
-                            Toast.makeText(mView.getActivity(), "全部播放完成", Toast.LENGTH_SHORT).show();
+                            //Toast.makeText(mView.getActivity(), "全部播放完成", Toast.LENGTH_SHORT).show();
+                            CusToast.getInstance(mView.getActivity()).show("注册失败", 2000);
 //                            mView.getActivity().finish();
                             return;
                         }
@@ -421,7 +438,14 @@ public class RecommendFragmentPresenter extends BasePresenter<RecommendFragmentC
     }
 
 
+    public void checkIsOver() {
+        if (mCurrentPosition >= mDataList.size() - 1) {
+            Toast.makeText(mContext, "到底了", Toast.LENGTH_SHORT).show();
+        }
+    }
+
     public void scrollToNextFunction(RecyclerView rv, boolean needScroll) {
+
         //获取当前显示的View 的数据
         int childCount = rv.getChildCount();
         //获取最后一具 Item 对应的View
@@ -437,7 +461,6 @@ public class RecommendFragmentPresenter extends BasePresenter<RecommendFragmentC
 //            Toast.makeText(this, "已滑动到底部了", Toast.LENGTH_LONG).show();
 //            CToast.makeText(mView.getActivity(), "滑动到最后一个啦", 3000).show();
 
-            Logger.e("loadOver:" + loadOver);
             if (loadOver) {
                 return;
             }
@@ -457,12 +480,12 @@ public class RecommendFragmentPresenter extends BasePresenter<RecommendFragmentC
 
     public void scrollToUpFunction(RecyclerView rv) {
         //获取当前显示的View 的数据
-        Logger.e("mCurrentPosition:" + mCurrentPosition);
         if (mCurrentPosition > 0) {
             rv.smoothScrollToPosition(mCurrentPosition - 1);
             mCurrentPosition = mCurrentPosition - 1;
         } else if (mCurrentPosition == 0) {
-            Toast.makeText(mContext, "已经是第一个了", Toast.LENGTH_SHORT).show();
+            Toast.makeText(mContext, "到顶了", Toast.LENGTH_SHORT).show();
+//            CusToast.getInstance(mContext).show("已经是第一个了", 2000);
         }
 
 

+ 8 - 5
app/src/main/java/com/edufound/reader/presenter/RecordPresenter.java

@@ -22,6 +22,7 @@ import com.edufound.reader.bean.RecordResultBean;
 import com.edufound.reader.bean.UserRecordBean;
 import com.edufound.reader.botsdk.BotRegisterListener;
 import com.edufound.reader.contract.RecordContract;
+import com.edufound.reader.cusview.CusToast;
 import com.edufound.reader.cusview.FullScreenVideoController;
 import com.edufound.reader.cusview.RvListJzvdStd;
 import com.edufound.reader.listener.PopupRecordStatusListener;
@@ -141,14 +142,12 @@ public class RecordPresenter extends BasePresenter<RecordContract.View> implemen
 
     @Override
     public void initVideoPlayer(String url) {
-        Logger.e("url:" + url);
         mView.getJZVideoView().setUp(new JZDataSource(url), JzvdStd.SCREEN_FULLSCREEN, JZMediaIjk.class, mReadId);
     }
 
     @Override
     public void onVideoCompletion() {
         if (playType.equals("READ")) {
-            Logger.e("onVideoCompletion里面的停止");
             mView.refRecordStatus();
         }
     }
@@ -158,6 +157,8 @@ public class RecordPresenter extends BasePresenter<RecordContract.View> implemen
         switch (what) {
             case -10000:
 //                mVideoHandler.sendEmptyMessage(DISCONNECT_NETWORK);
+//                Toast.makeText(mView.getActivity(), "网络出现异常", Toast.LENGTH_SHORT).show();
+//                CusToast.getInstance(mView.getActivity()).show("网络出现异常",2000);
                 Toast.makeText(mView.getActivity(), "网络出现异常", Toast.LENGTH_SHORT).show();
                 mView.getActivity().finish();
                 break;
@@ -166,6 +167,7 @@ public class RecordPresenter extends BasePresenter<RecordContract.View> implemen
                 mView.getJZVideoView().reset();
                 mView.getJZVideoView().onStatePreparingPlaying();
                 Toast.makeText(mView.getActivity(), "视频异常--what:" + what + "--extra:" + extra, Toast.LENGTH_SHORT).show();
+//                CusToast.getInstance(mView.getActivity()).show("视频异常--what:" + what + "--extra:" + extra,2000);
                 mView.getActivity().finish();
                 break;
         }
@@ -181,7 +183,6 @@ public class RecordPresenter extends BasePresenter<RecordContract.View> implemen
             case Jzvd.STATE_PREPARING_PLAYING:
                 //已经开始播放了
                 if (playType.equals("READ") && (mRecordServices.getIsRecording() == false)) {
-                    Logger.e("准备完毕,可以播放");
                     mRecordServices.startRecord(mView.getActivity(), mRecordUserRead.getId(), mRecordUserRead.getLessonText());
                     mView.getJZVideoView().setCanPause(false);
                 }
@@ -262,7 +263,7 @@ public class RecordPresenter extends BasePresenter<RecordContract.View> implemen
 
             @Override
             public void clickUploadingErrorBtn() {
-                Toast.makeText(mView.getActivity(), "上传失败按钮", Toast.LENGTH_SHORT).show();
+//                Toast.makeText(mView.getActivity(), "上传失败按钮", Toast.LENGTH_SHORT).show();
             }
         });
     }
@@ -325,7 +326,9 @@ public class RecordPresenter extends BasePresenter<RecordContract.View> implemen
 
                 @Override
                 public void onRecordError(String tokenId, EvalResult result) {
-                    Toast.makeText(mView.getActivity(), "录音失败:" + result.text(), Toast.LENGTH_SHORT).show();
+                    //Toast.makeText(mView.getActivity(), "录音失败:" + result.text(), Toast.LENGTH_SHORT).show();
+//                    CusToast.getInstance(mView.getActivity()).show("录音失败", 2000);
+                    Toast.makeText(Consts.getmApplicAtion(), "录音失败", Toast.LENGTH_SHORT).show();
                 }
 
                 @Override

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

@@ -202,7 +202,7 @@ public class SafflowerPresenter extends BasePresenter<SafflowerContract.View> im
                         return true;
                     }
                     mDataList.forEach((item) -> {
-                        mDesList.add(item.getTask().getTitle() + "奖励" + item.getTask().getSort() + "朵小红花," + "每日" + item.getTask().getJoinAmount() + "次上限");
+                        mDesList.add(item.getTask().getTitle() + "奖励" + item.getTask().getSort() + "朵小红花," + "每日" + item.getTask().getJoinAmount() + "次上限");
                     });
                     break;
             }

+ 2 - 7
app/src/main/java/com/edufound/reader/presenter/UserInfoSettingPresenter.java

@@ -11,6 +11,7 @@ import com.edufound.reader.bean.HttpResultBean;
 import com.edufound.reader.bean.MyInfoBean;
 import com.edufound.reader.bean.UserBean;
 import com.edufound.reader.contract.UserInfoSettingContract;
+import com.edufound.reader.cusview.CusToast;
 import com.edufound.reader.model.UserInfoSettingModel;
 import com.edufound.reader.receiver.BackPageReceiver;
 import com.edufound.reader.util.Consts;
@@ -69,7 +70,6 @@ public class UserInfoSettingPresenter extends BasePresenter<UserInfoSettingContr
         mModel.updateMyInfo(mView.getActivity(), ((BaseActivity) mView.getActivity()).getGson().toJson(bean), new Callback() {
             @Override
             public void onSuccess(HttpInfo info) throws IOException {
-                Logger.e("更新信息成功:" + info.getRetDetail());
                 HttpResultBean<UserBean> bean = info.getRetDetail(new TypeToken<HttpResultBean<UserBean>>() {
                 }.getType());
                 mView.getUserInfoSuccess(bean.getData());
@@ -110,10 +110,8 @@ public class UserInfoSettingPresenter extends BasePresenter<UserInfoSettingContr
         mUserApi.getBaiDuUserPhone(mView.getActivity(), token, new Callback() {
             @Override
             public void onSuccess(HttpInfo info) throws IOException {
-                Logger.e("获取百度手机号成功:" + info.getRetDetail());
                 JSONObject object = JSONObject.parseObject(info.getRetDetail().toString());
                 String phone = JSONObject.parseObject(object.getString("data")).getString("phone");
-                Logger.e("获取的手机号:" + phone);
                 registerMobile(phone);
             }
 
@@ -138,11 +136,9 @@ public class UserInfoSettingPresenter extends BasePresenter<UserInfoSettingContr
                 map.put("grade", MMKVUtil.getInstance().decodeString(MMKVEncodeKey.USER_GRADE));
             }
             String json = ((BaseActivity) mView.getActivity()).getGson().toJson(map);
-            Logger.e("json:" + json);
             mUserApi.registerMobile(mView.getActivity(), json, new Callback() {
                 @Override
                 public void onSuccess(HttpInfo info) throws IOException {
-                    Logger.e("手机号注册成功:" + info.getRetDetail());
                     HttpResultBean<UserBean> bean = info.getRetDetail(new TypeToken<HttpResultBean<UserBean>>() {
                     }.getType());
                     Consts.setUID(bean.getData().getUid());
@@ -150,13 +146,12 @@ public class UserInfoSettingPresenter extends BasePresenter<UserInfoSettingContr
                     String nickName = EfunboxUtil.setPhoneMiddle(bean.getData().getMobile());
                     bean.getData().setNickName(nickName);
                     Consts.setmConstsUserBean(bean.getData());
-                    Logger.e("看看到底对没有:" + ((BaseActivity) mView.getActivity()).getGson().toJson(Consts.getmConstsUserBean()));
                 }
 
                 @Override
                 public void onFailure(HttpInfo info) throws IOException {
-                    Logger.e("手机号注册失败:" + info.getRetDetail());
                     Toast.makeText(mView.getActivity(), "注册失败", Toast.LENGTH_SHORT).show();
+//                    CusToast.getInstance(mView.getActivity()).show("注册失败",2000);
                 }
             });
         } else {

+ 76 - 0
app/src/main/java/com/edufound/reader/receiver/ShowPageLoadingReceiver.java

@@ -0,0 +1,76 @@
+package com.edufound.reader.receiver;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+public class ShowPageLoadingReceiver extends BroadcastReceiver {
+
+    private List<PageLoading> mObservers = new ArrayList<>();
+    private static boolean isRegister = false;
+    public static final String PAGE_LOADING_SHOW = "com.edufound.reader.show.page.loading";
+    public static final String PAGE_LOADING_HIDE = "com.edufound.reader.show.page.hide";
+
+    private static class InstanceHolder {
+        private static final ShowPageLoadingReceiver INSTANCE = new ShowPageLoadingReceiver();
+    }
+
+    @Override
+    public void onReceive(Context context, Intent intent) {
+        if (PAGE_LOADING_SHOW.equals(intent.getAction())) {
+            for (PageLoading observer : mObservers) {
+                observer.show(intent);
+            }
+        } else if (PAGE_LOADING_HIDE.equals(intent.getAction())) {
+            for (PageLoading observer : mObservers) {
+                observer.hide(intent);
+            }
+        }
+
+    }
+
+    public static void registerReceiver(Context context) {
+        IntentFilter intentFilter = new IntentFilter();
+        intentFilter.addAction(PAGE_LOADING_SHOW);
+        intentFilter.addAction(PAGE_LOADING_HIDE);
+        context.registerReceiver(InstanceHolder.INSTANCE, intentFilter);
+        isRegister = true;
+    }
+
+    public static void unRegisterReceiver(Context context) {
+        if (isRegister) {
+            context.unregisterReceiver(InstanceHolder.INSTANCE);
+        }
+    }
+
+    public static void registerObserver(PageLoading observer) {
+        if (observer == null) {
+            return;
+        }
+        if (!InstanceHolder.INSTANCE.mObservers.contains(observer)) {
+            InstanceHolder.INSTANCE.mObservers.add(observer);
+        }
+    }
+
+    public static void unRegisterObserver(PageLoading observer) {
+        if (observer == null) {
+            return;
+        }
+        if (InstanceHolder.INSTANCE.mObservers == null) {
+            return;
+        }
+        InstanceHolder.INSTANCE.mObservers.remove(observer);
+    }
+
+
+    public interface PageLoading {
+        void show(Intent intent);
+
+        void hide(Intent intent);
+    }
+}

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

@@ -24,7 +24,8 @@ public class Consts {
 
     private static String agreementServices = "http://m-xyyf-web.ai160.com/res/protocol/service.htm";
 
-    private static final String FinalApiUrl = "http://reader-api.efunbox.cn";
+    //    private static final String FinalApiUrl = "http://reader-api.efunbox.cn";
+    private static final String FinalApiUrl = "https://reader-xiaoai-api.ai160.com";
 
     private static String UMENG_CHANNEL = null;
 

+ 2 - 1
app/src/main/java/com/edufound/reader/util/HttpInterceptor.java

@@ -2,6 +2,7 @@ package com.edufound.reader.util;
 
 import android.widget.Toast;
 
+import com.edufound.reader.cusview.CusToast;
 import com.okhttplib.HttpInfo;
 import com.okhttplib.interceptor.ExceptionInterceptor;
 import com.okhttplib.interceptor.ResultInterceptor;
@@ -48,7 +49,7 @@ public class HttpInterceptor {
                     info.setRetDetail(info.getUrl() + "---请检查网络连接是否正常[" + info.getNetCode() + "]");
                     break;
                 case HttpInfo.ConnectionTimeOut:
-                    Toast.makeText(Consts.getmApplicAtion(), "连接超时", Toast.LENGTH_SHORT).show();
+//                    CusToast.getInstance(Consts.getmApplicAtion()).show("手机号不正确", 2000);
                     info.setRetDetail("连接超时");
                     break;
                 case HttpInfo.WriteAndReadTimeOut:

+ 20 - 1
app/src/main/java/com/edufound/reader/util/OkHttpClient.java

@@ -7,6 +7,7 @@ import android.os.Environment;
 
 import com.edufound.reader.bean.HttpResultBean;
 import com.edufound.reader.receiver.ShowFollowReceiver;
+import com.edufound.reader.receiver.ShowPageLoadingReceiver;
 import com.google.gson.reflect.TypeToken;
 import com.okhttplib.HttpInfo;
 import com.okhttplib.OkHttpUtil;
@@ -53,26 +54,41 @@ public class OkHttpClient {
 
     public static void doGetAsync(Activity activity, HttpInfo.Builder info, BaseCallback callback) {
         Logger.e("postUid:" + Consts.getUID());
+        if (!info.build().getUrl().contains("posts/list")) {
+            Intent intent = new Intent(ShowPageLoadingReceiver.PAGE_LOADING_SHOW);
+            Consts.getmApplicAtion().getApplicationContext().sendBroadcast(intent);
+        }
         OkHttpUtil.getDefault(activity).doGetAsync(info.addHead("uid", Consts.getUID()).build(), new EfunboxCallBack(callback));
     }
 
 
     public static void doPostAsync(Activity activity, HttpInfo.Builder info, BaseCallback callback) {
         Logger.e("postUid:" + Consts.getUID());
+        Intent intent = new Intent(ShowPageLoadingReceiver.PAGE_LOADING_SHOW);
+        Consts.getmApplicAtion().getApplicationContext().sendBroadcast(intent);
         OkHttpUtil.getDefault(activity).doPostAsync(info.addHead("uid", Consts.getUID()).build(), new EfunboxCallBack(callback));
     }
 
     public static void doPostAsync(HttpInfo.Builder info, BaseCallback callback) {
+        Logger.e("info.build().getUrl():" + info.build().getUrl());
+        if (!info.build().getUrl().contains("playLog")) {
+            Intent intent = new Intent(ShowPageLoadingReceiver.PAGE_LOADING_SHOW);
+            Consts.getmApplicAtion().getApplicationContext().sendBroadcast(intent);
+        }
         OkHttpUtil.getDefault().doPostAsync(info.addHead("uid", Consts.getUID()).build(), new EfunboxCallBack(callback));
     }
 
     public static void doPutAsync(Activity activity, HttpInfo.Builder info, BaseCallback callback) {
         Logger.e("postUid:" + Consts.getUID());
+        Intent intent = new Intent(ShowPageLoadingReceiver.PAGE_LOADING_SHOW);
+        Consts.getmApplicAtion().getApplicationContext().sendBroadcast(intent);
         OkHttpUtil.getDefault(activity).doPutAsync(info.addHead("uid", Consts.getUID()).build(), new EfunboxCallBack(callback));
     }
 
     public static void doDeleteAsync(Activity activity, HttpInfo.Builder info, BaseCallback callback) {
         Logger.e("postUid:" + Consts.getUID());
+        Intent intent = new Intent(ShowPageLoadingReceiver.PAGE_LOADING_SHOW);
+        Consts.getmApplicAtion().getApplicationContext().sendBroadcast(intent);
         OkHttpUtil.getDefault(activity).doDeleteAsync(info.addHead("uid", Consts.getUID()).build(), new EfunboxCallBack(callback));
     }
 
@@ -97,18 +113,21 @@ class EfunboxCallBack implements Callback {
         if (bean.getCount() != null && !bean.getCount().equals("")) {
             if (Integer.valueOf(bean.getCount()) > 0) {
                 //显示小红花
-                Logger.e("显示小红花");
                 Intent intent = new Intent(ShowFollowReceiver.SHOW_FOLLOW);
                 intent.putExtra("follow_count", bean.getCount());
                 Consts.getmApplicAtion().getApplicationContext().sendBroadcast(intent);
             }
         }
+        Intent intent = new Intent(ShowPageLoadingReceiver.PAGE_LOADING_HIDE);
+        Consts.getmApplicAtion().getApplicationContext().sendBroadcast(intent);
         mCallBack.onSuccess(info);
     }
 
     @Override
     public void onFailure(HttpInfo info) throws IOException {
         mCallBack.onFailure(info);
+        Intent intent = new Intent(ShowPageLoadingReceiver.PAGE_LOADING_HIDE);
+        Consts.getmApplicAtion().getApplicationContext().sendBroadcast(intent);
     }
 }
 

+ 0 - 1
app/src/main/java/com/edufound/reader/util/SizeUtils.java

@@ -136,7 +136,6 @@ public class SizeUtils {
      * @param view 视图
      */
     public static void measureViewInLV(View view) {
-        Logger.e("tips", "U should copy the following code.");
         /*
         ViewGroup.LayoutParams p = view.getLayoutParams();
         if (p == null) {

+ 0 - 1
app/src/main/java/com/edufound/reader/videoutil/ViewPagerLayoutManager.java

@@ -83,7 +83,6 @@ public class ViewPagerLayoutManager extends LinearLayoutManager {
      */
     @Override
     public void onScrollStateChanged(int state) {
-        Logger.e("onPageSelected--onScrollStateChanged:--state:" + state);
         switch (state) {
             case RecyclerView.SCROLL_STATE_IDLE:
                 View viewIdle = mPagerSnapHelper.findSnapView(this);

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


+ 6 - 6
app/src/main/res/layout/activity_customerservice.xml

@@ -59,11 +59,11 @@
                         android:layout_width="wrap_content"
                         android:layout_height="44dp"
                         android:layout_gravity="top"
-                        android:layout_marginLeft="378dp"
+                        android:layout_marginLeft="408dp"
                         android:layout_marginTop="11dp"
                         android:text="感谢使用 联系我们"
                         android:textColor="@color/white"
-                        android:textSize="36dp"></TextView>
+                        android:textSize="30dp"></TextView>
             </FrameLayout>
 
             <FrameLayout
@@ -71,7 +71,7 @@
                     android:layout_height="225dp"
                     android:layout_gravity="center"
                     android:layout_marginLeft="35dp"
-                    android:layout_marginBottom="40dp"
+                    android:layout_marginBottom="50dp"
                     android:background="@drawable/popup_window_bind_wechat_qrcode_bg">
 
                 <ImageView
@@ -79,7 +79,7 @@
                         android:layout_width="203dp"
                         android:layout_height="203dp"
                         android:layout_gravity="center"
-                        android:src="@color/red"></ImageView>
+                        android:src="@color/translucent_background"></ImageView>
             </FrameLayout>
 
 
@@ -88,9 +88,9 @@
                     android:layout_height="wrap_content"
                     android:layout_gravity="center"
                     android:layout_marginLeft="35dp"
-                    android:layout_marginTop="130dp"
+                    android:layout_marginTop="120dp"
                     android:gravity="center"
-                    android:lineHeight="40dp"
+                    android:lineSpacingMultiplier="1.3"
                     android:text="客服沟通 | 问题反馈 | 产品吐槽\n有任何问题均可在线咨询哦"
                     android:textColor="#333333"
                     android:textSize="28dp"></TextView>

+ 2 - 4
app/src/main/res/layout/activity_saffloer.xml

@@ -65,10 +65,8 @@
                             android:orientation="horizontal">
 
                         <ImageView
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:scaleX="0.9"
-                                android:scaleY="0.9"
+                                android:layout_width="50dp"
+                                android:layout_height="40dp"
                                 android:src="@drawable/anim_red_follow"></ImageView>
 
                         <TextView

+ 16 - 6
app/src/main/res/layout/adapter_item_message.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+        xmlns:roundframelayout="http://schemas.android.com/apk/res-auto"
         android:layout_width="952dp"
         android:layout_height="wrap_content"
         android:layout_gravity="center"
@@ -27,22 +28,31 @@
                 android:layout_height="match_parent"
                 android:orientation="vertical">
 
-            <ImageView
-                    android:id="@+id/adapter_item_message_isnew"
-                    android:layout_width="18dp"
-                    android:layout_height="18dp"
+            <com.edufound.reader.cusview.RoundFrameLayout
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
                     android:layout_marginLeft="12dp"
                     android:layout_marginTop="12dp"
-                    android:src="@color/red"></ImageView>
+                    roundframelayout:radio="30">
+
+                <ImageView
+                        android:id="@+id/adapter_item_message_isnew"
+                        android:layout_width="18dp"
+                        android:layout_height="18dp"
+
+                        android:src="@color/red"></ImageView>
+            </com.edufound.reader.cusview.RoundFrameLayout>
+
 
             <TextView
                     android:id="@+id/adapter_item_message_content"
                     android:layout_width="898dp"
                     android:layout_height="wrap_content"
                     android:layout_gravity="center"
+                    android:lineSpacingMultiplier="1.5"
                     android:text=""
                     android:textColor="#333333"
-                    android:textSize="34dp"></TextView>
+                    android:textSize="30dp"></TextView>
 
             <TextView
                     android:id="@+id/adapter_item_message_loadall"

+ 3 - 1
app/src/main/res/layout/fragment_main_user.xml

@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
         xmlns:app="http://schemas.android.com/apk/res-auto"
+        xmlns:roundframelayout="http://schemas.android.com/apk/res-auto"
         xmlns:tools="http://schemas.android.com/tools"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
@@ -292,7 +293,8 @@
                                     android:layout_gravity="right|top"
                                     android:layout_marginTop="10dp"
                                     android:layout_marginRight="10dp"
-                                    android:background="@color/red"></com.edufound.reader.cusview.RoundFrameLayout>
+                                    android:background="@color/red"
+                                    roundframelayout:radio="30"></com.edufound.reader.cusview.RoundFrameLayout>
                         </FrameLayout>
 
                         <ImageView