Explorar el Código

修改测试人员反馈的问题

316044749 hace 7 años
padre
commit
6eabc080af
Se han modificado 41 ficheros con 572 adiciones y 138 borrados
  1. 1 1
      app/src/main/AndroidManifest.xml
  2. 4 0
      app/src/main/java/com/ynstkz/shitu/android/activity/AlterPasswordActivity.java
  3. 4 0
      app/src/main/java/com/ynstkz/shitu/android/activity/AlterUserNameActivity.java
  4. 174 6
      app/src/main/java/com/ynstkz/shitu/android/activity/CourseDetailActivity.java
  5. 4 0
      app/src/main/java/com/ynstkz/shitu/android/activity/FindPasswordAffirmActivity.java
  6. 8 0
      app/src/main/java/com/ynstkz/shitu/android/activity/LoginActivity.java
  7. 2 2
      app/src/main/java/com/ynstkz/shitu/android/activity/MineCollectActivity.java
  8. 2 0
      app/src/main/java/com/ynstkz/shitu/android/activity/MineCommentActivity.java
  9. 21 14
      app/src/main/java/com/ynstkz/shitu/android/activity/OrgDetailActivity.java
  10. 3 1
      app/src/main/java/com/ynstkz/shitu/android/activity/OrgWriteCommentActivity.java
  11. 8 0
      app/src/main/java/com/ynstkz/shitu/android/activity/RegisterSubmitActivity.java
  12. 5 5
      app/src/main/java/com/ynstkz/shitu/android/adapter/MineCollectItemAdapter.java
  13. 10 5
      app/src/main/java/com/ynstkz/shitu/android/adapter/MineCommentItemAdapter.java
  14. 6 1
      app/src/main/java/com/ynstkz/shitu/android/adapter/OrgCommentListAdapter.java
  15. 8 3
      app/src/main/java/com/ynstkz/shitu/android/adapter/OrgListAdapter.java
  16. 19 0
      app/src/main/java/com/ynstkz/shitu/android/application/STSign.java
  17. 174 42
      app/src/main/java/com/ynstkz/shitu/android/bean/CourseDetilBean.java
  18. 3 3
      app/src/main/java/com/ynstkz/shitu/android/bean/OrgDetailBean.java
  19. 8 8
      app/src/main/java/com/ynstkz/shitu/android/bean/OrgItemBean.java
  20. 8 8
      app/src/main/java/com/ynstkz/shitu/android/data/RequestGroup.java
  21. 22 9
      app/src/main/java/com/ynstkz/shitu/android/fragment/HomeFragment.java
  22. 2 0
      app/src/main/java/com/ynstkz/shitu/android/fragment/MineSignUpItemFragment.java
  23. 10 4
      app/src/main/java/com/ynstkz/shitu/android/fragment/OrgListFragment.java
  24. 1 2
      app/src/main/java/com/ynstkz/shitu/android/fragment/UserCenterFragment.java
  25. BIN
      app/src/main/res/drawable-xxhdpi/default_org_banner_bg.png
  26. 2 1
      app/src/main/res/drawable/ic_marker_inactive.xml
  27. 1 1
      app/src/main/res/layout/activity_alter_password.xml
  28. 1 1
      app/src/main/res/layout/activity_alterusername.xml
  29. 24 3
      app/src/main/res/layout/activity_course_detail.xml
  30. 1 1
      app/src/main/res/layout/activity_findpassword_affirm.xml
  31. 1 1
      app/src/main/res/layout/activity_login.xml
  32. 1 0
      app/src/main/res/layout/activity_minecomment.xml
  33. 8 2
      app/src/main/res/layout/activity_org_detail.xml
  34. 2 2
      app/src/main/res/layout/activity_register_submint.xml
  35. 1 1
      app/src/main/res/layout/item_mine_collect.xml
  36. 5 5
      app/src/main/res/layout/item_minecomment_list.xml
  37. 2 4
      app/src/main/res/layout/item_org_course_recommend_list.xml
  38. 1 1
      app/src/main/res/layout/item_org_list.xml
  39. 12 1
      app/src/main/res/layout/item_org_recommend_list.xml
  40. 1 0
      app/src/main/res/values/colors.xml
  41. 2 0
      app/src/main/res/values/strings.xml

+ 1 - 1
app/src/main/AndroidManifest.xml

@@ -51,7 +51,7 @@
         <activity android:name=".activity.LoginActivity"
             android:screenOrientation="portrait"
             android:windowSoftInputMode="stateHidden"
-            android:launchMode="singleInstance"/>
+            android:launchMode="singleTask"/>
 
         <!--注册-->
         <activity android:name=".activity.RegisterActivity"

+ 4 - 0
app/src/main/java/com/ynstkz/shitu/android/activity/AlterPasswordActivity.java

@@ -80,6 +80,10 @@ public class AlterPasswordActivity extends TitleBarActivity {
                     showToast("密码不能为空");
                     return;
                 }
+                if(pwd.length() < 8 || pwd.length() > 20) {
+                    showToast(getString(R.string.error_pwd_length));
+                    return;
+                }
                 if(TextUtils.isEmpty(pwd_again)){
                     showToast("确认密码不能为空");
                     return;

+ 4 - 0
app/src/main/java/com/ynstkz/shitu/android/activity/AlterUserNameActivity.java

@@ -68,6 +68,10 @@ public class AlterUserNameActivity extends TitleBarActivity {
                     showToast(getString(R.string.empty_username));
                     return;
                 }
+                if(userName.length() > 20) {
+                    showToast("请输入小于20位的用户名");
+                    return;
+                }
                 progressDialog = new ProgressDialog(AlterUserNameActivity.this);
                 progressDialog.setMessage("正在提交");
                 progressDialog.show();

+ 174 - 6
app/src/main/java/com/ynstkz/shitu/android/activity/CourseDetailActivity.java

@@ -1,18 +1,25 @@
 package com.ynstkz.shitu.android.activity;
 
+import android.annotation.SuppressLint;
 import android.content.Intent;
 import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
 import android.support.annotation.Nullable;
 import android.support.v4.view.ViewPager;
 import android.text.TextUtils;
 import android.view.View;
 import android.widget.ImageView;
+import android.widget.LinearLayout;
 import android.widget.RelativeLayout;
 import android.widget.TextView;
 
+import com.bumptech.glide.Glide;
+import com.common.library.okhttp.OkHttpUtils;
 import com.common.library.okhttp.callback.Callback;
 import com.google.gson.Gson;
 import com.ynstkz.shitu.android.R;
+import com.ynstkz.shitu.android.adapter.ViewPagerAdapter;
 import com.ynstkz.shitu.android.base.BaseBean;
 import com.ynstkz.shitu.android.base.TitleBarActivity;
 import com.ynstkz.shitu.android.bean.CourseDetilBean;
@@ -21,6 +28,9 @@ import com.ynstkz.shitu.android.data.SharedPreferencesUtils;
 import com.ynstkz.shitu.android.data.UrlCat;
 import com.ynstkz.shitu.android.helper.UmengShareHelper;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import butterknife.Bind;
 import okhttp3.Call;
 import okhttp3.Response;
@@ -51,17 +61,27 @@ public class CourseDetailActivity extends TitleBarActivity {
     ImageView ivShare;
     @Bind(R.id.tv_course_marketprice)
     TextView tvCourseMarketprice;
-    @Bind(R.id.tv_enrollmentArea)
-    TextView tvEnrollmentArea;
     @Bind(R.id.tv_requirement)
     TextView tvRequirement;
     @Bind(R.id.tv_view_count)
     TextView tvViewCount;
+    @Bind(R.id.ll_collect)
+    LinearLayout llCollect;
+    @Bind(R.id.iv_banner_bg)
+    ImageView ivBannerBg;
+    @Bind(R.id.ll_point_main)
+    LinearLayout llPointMain;
+    @Bind(R.id.tv_enrollmentArea)
+    TextView tvEnrollmentArea;
 
     private String courseId;
     private CourseDetilBean courseDetilBean;
     private boolean isCollect;
 
+    private int bannerIndex;
+    private List<ImageView> listPointView;
+    private int pointIndex;
+
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -116,7 +136,7 @@ public class CourseDetailActivity extends TitleBarActivity {
             public void onClick(View view) {
                 if (courseDetilBean != null) {
                     UmengShareHelper.show(CourseDetailActivity.this, courseDetilBean.getData().getTitle(), courseDetilBean.getData().getDetail(),
-                            "http://www.baidu.com", courseDetilBean.getData().getCoursePic());
+                            "http://www.baidu.com", "");
                 }
             }
         });
@@ -138,6 +158,24 @@ public class CourseDetailActivity extends TitleBarActivity {
                 }
             }
         });
+
+        vpBanner.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+            @Override
+            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+
+            }
+
+            @Override
+            public void onPageSelected(int position) {
+                pointIndex = position;
+                refreshPointView();
+            }
+
+            @Override
+            public void onPageScrollStateChanged(int state) {
+
+            }
+        });
     }
 
     /**
@@ -147,7 +185,7 @@ public class CourseDetailActivity extends TitleBarActivity {
      */
     private void getCourseDetail(String courseId) {
 
-        RequestGroup.getCourseDetail(courseId, new Callback() {
+        RequestGroup.getCourseDetail(this, courseId, new Callback() {
             @Override
             public Object parseNetworkResponse(Response response, int id) throws Exception {
                 return new Gson().fromJson(response.body().string(), CourseDetilBean.class);
@@ -181,18 +219,120 @@ public class CourseDetailActivity extends TitleBarActivity {
             return;
         }
         CourseDetilBean.DataBean dataBean = courseDetilBean.getData();
-        tvViewCount.setText("收藏:" + courseDetilBean.getData().getViewCount() + "次");
+        initBannerView(dataBean);
+        tvViewCount.setText("收藏:" + courseDetilBean.getData().getCollectCount() + "次");
         tvTitle.setText(dataBean.getTitle());
         tvOrgName.setText(dataBean.getTitle());
         tvOrgDesc.setText(dataBean.getDetail());
         tvPrice.setText("¥" + dataBean.getPrice() + "元");
         tvCourseMarketprice.setText("市场价¥" + dataBean.getMarketPrice());
         isCollect = courseDetilBean.getData().isCollect();
-        tvEnrollmentArea.setText(courseDetilBean.getData().getEnrollmentArea());
         tvRequirement.setText(courseDetilBean.getData().getRequirement());
         initCollectIcon();
+        //招生区域
+        initEnrollAreaList(dataBean);
     }
 
+    /**
+     * 初始化banner信息
+     */
+    private void initBannerView(CourseDetilBean.DataBean dataBean) {
+
+        if (dataBean == null || dataBean.getCoursePicList() == null) {
+            return;
+        }
+        List<CourseDetilBean.DataBean.CoursePicListBean> coursePicList = courseDetilBean.getData().getCoursePicList();
+
+        if (coursePicList != null && coursePicList.size() > 0) {
+            ivBannerBg.setVisibility(View.GONE);
+            List<View> listShowPic = new ArrayList<>();
+            for (int i = 0; i < coursePicList.size(); i++) {
+                ImageView imageView = new ImageView(this);
+                final CourseDetilBean.DataBean.CoursePicListBean coursePicListBean = coursePicList.get(i);
+                String picUrl = coursePicListBean.getPicUrl();
+                if (!TextUtils.isEmpty(picUrl)) {
+                    if (picUrl.startsWith("http")) {
+                        Glide.with(this).load(picUrl).into(imageView);
+                    } else {
+                        Glide.with(this).load(UrlCat.HOST + picUrl).into(imageView);
+                    }
+                }
+                listShowPic.add(imageView);
+            }
+            ViewPagerAdapter adapter = new ViewPagerAdapter(listShowPic);
+            vpBanner.setAdapter(adapter);
+            vpBanner.setCurrentItem(bannerIndex);
+            adapter.notifyDataSetChanged();
+            initPointView(dataBean);
+            handler.sendEmptyMessageDelayed(0, 3000);
+        } else {
+            ivBannerBg.setVisibility(View.VISIBLE);
+            vpBanner.setVisibility(View.GONE);
+        }
+    }
+
+    /**
+     * 初始化焦点View
+     */
+    private void initPointView(CourseDetilBean.DataBean dataBean) {
+        if (dataBean == null || dataBean.getCoursePicList() == null || dataBean.getCoursePicList().size() == 0) {
+            return;
+        }
+        int showPicSize = courseDetilBean.getData().getCoursePicList().size();
+        if (showPicSize > 0) {
+            listPointView = new ArrayList<>();
+            for (int i = 0; i < showPicSize; i++) {
+                ImageView imageView = new ImageView(this);
+                imageView.setImageResource(R.drawable.banner_point_nomal);
+                LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(15, 15);
+                params.rightMargin = 10;
+                imageView.setLayoutParams(params);
+                listPointView.add(imageView);
+                llPointMain.addView(imageView);
+            }
+            refreshPointView();
+        }
+    }
+
+    /**
+     * 刷新焦点图片
+     */
+    private void refreshPointView() {
+        if (courseDetilBean == null || courseDetilBean.getData() == null ||
+                courseDetilBean.getData().getCoursePicList() == null || courseDetilBean.getData().getCoursePicList().size() == 0) {
+            return;
+        }
+        if (pointIndex >= courseDetilBean.getData().getCoursePicList().size()) {
+            pointIndex = 0;
+        }
+        if (listPointView != null && courseDetilBean.getData().getCoursePicList().size() > 0) {
+            for (int i = 0; i < listPointView.size(); i++) {
+                if (i == pointIndex) {
+                    listPointView.get(i).setImageResource(R.drawable.banner_point_press);
+                } else {
+                    listPointView.get(i).setImageResource(R.drawable.banner_point_nomal);
+                }
+            }
+        }
+    }
+
+    /**
+     * 招生区域
+     *
+     * @param dataBean
+     */
+    private void initEnrollAreaList(CourseDetilBean.DataBean dataBean) {
+        if (dataBean == null || dataBean.getEnrollAreaList() == null) {
+            return;
+        }
+        String areaName = "";
+        if (dataBean.getEnrollAreaList().size() > 0) {
+            for (int i = 0; i < dataBean.getEnrollAreaList().size(); i++) {
+                areaName = areaName + dataBean.getEnrollAreaList().get(i).getAddress() + "\n";
+            }
+        }
+        tvEnrollmentArea.setText(areaName);
+    }
 
     /**
      * 收藏
@@ -272,6 +412,27 @@ public class CourseDetailActivity extends TitleBarActivity {
         }
     }
 
+
+    @SuppressLint("HandlerLeak")
+    Handler handler = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+                case 0:
+                    bannerIndex++;
+                    pointIndex++;
+                    if (bannerIndex < courseDetilBean.getData().getCoursePicList().size()) {
+                        vpBanner.setCurrentItem(bannerIndex);
+                    } else {
+                        vpBanner.setCurrentItem(0);
+                        bannerIndex = 0;
+                    }
+                    handler.sendEmptyMessageDelayed(0, 3000);
+                    break;
+            }
+        }
+    };
+
     @Override
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
         switch (requestCode) {
@@ -280,4 +441,11 @@ public class CourseDetailActivity extends TitleBarActivity {
                 break;
         }
     }
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        handler.removeCallbacksAndMessages(null);
+        OkHttpUtils.getInstance().cancelTag(this);
+    }
 }

+ 4 - 0
app/src/main/java/com/ynstkz/shitu/android/activity/FindPasswordAffirmActivity.java

@@ -75,6 +75,10 @@ public class FindPasswordAffirmActivity extends TitleBarActivity {
                     showToast("密码不能为空!");
                     return;
                 }
+                if(pwd.length() < 8 || pwd.length() > 20) {
+                    showToast(getString(R.string.error_pwd_length));
+                    return;
+                }
                 if(TextUtils.isEmpty(rePwd)){
                     showToast("确认密码不能为空!");
                     return;

+ 8 - 0
app/src/main/java/com/ynstkz/shitu/android/activity/LoginActivity.java

@@ -405,10 +405,18 @@ public class LoginActivity extends TitleBarActivity {
             showToast("用户名不能为空!");
             return false;
         }
+        if(userName.length() > 20) {
+            showToast(getString(R.string.error_username_length));
+            return false;
+        }
         if (TextUtils.isEmpty(userPwd)) {
             showToast("密码不能为空!");
             return false;
         }
+        if(userPwd.length() < 8 || userPwd.length() > 20) {
+            showToast(getString(R.string.error_pwd_length));
+            return false;
+        }
         return true;
     }
 

+ 2 - 2
app/src/main/java/com/ynstkz/shitu/android/activity/MineCollectActivity.java

@@ -17,6 +17,7 @@ import com.google.gson.Gson;
 import com.ynstkz.shitu.android.R;
 import com.ynstkz.shitu.android.adapter.MineCollectItemAdapter;
 import com.ynstkz.shitu.android.adapter.MineCommentItemAdapter;
+import com.ynstkz.shitu.android.application.STSign;
 import com.ynstkz.shitu.android.base.TitleBarActivity;
 import com.ynstkz.shitu.android.bean.MyCollectBean;
 import com.ynstkz.shitu.android.bean.OrgItemBean;
@@ -117,8 +118,7 @@ public class MineCollectActivity extends TitleBarActivity implements PullToRefre
 
             @Override
             public void onError(Call call, Exception e, int id) {
-                showToast(getString(R.string.error_msg));
-                showNoData();
+                STSign.getInstance().tonkenError(MineCollectActivity.this, e);
             }
 
             @Override

+ 2 - 0
app/src/main/java/com/ynstkz/shitu/android/activity/MineCommentActivity.java

@@ -14,6 +14,7 @@ import com.common.library.pulltorefresh.PullToRefreshListView;
 import com.google.gson.Gson;
 import com.ynstkz.shitu.android.R;
 import com.ynstkz.shitu.android.adapter.MineCommentItemAdapter;
+import com.ynstkz.shitu.android.application.STSign;
 import com.ynstkz.shitu.android.base.TitleBarActivity;
 import com.ynstkz.shitu.android.bean.MyCommnetBean;
 import com.ynstkz.shitu.android.data.RequestGroup;
@@ -106,6 +107,7 @@ public class MineCommentActivity extends TitleBarActivity implements PullToRefre
             public void onError(Call call, Exception e, int id) {
                 showToast(getString(R.string.error_msg));
                 pullToRefresh.onRefreshComplete();
+                STSign.getInstance().tonkenError(MineCommentActivity.this, e);
             }
 
             @Override

+ 21 - 14
app/src/main/java/com/ynstkz/shitu/android/activity/OrgDetailActivity.java

@@ -12,7 +12,6 @@ import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.AdapterView;
-import android.widget.ArrayAdapter;
 import android.widget.GridView;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
@@ -21,6 +20,7 @@ import android.widget.ScrollView;
 import android.widget.TextView;
 
 import com.bumptech.glide.Glide;
+import com.common.library.okhttp.OkHttpUtils;
 import com.common.library.okhttp.callback.Callback;
 import com.common.library.utils.DateUtil;
 import com.google.gson.Gson;
@@ -40,7 +40,6 @@ import com.ynstkz.shitu.android.data.UrlCat;
 import com.ynstkz.shitu.android.exter.GlideRoundTransform;
 import com.ynstkz.shitu.android.helper.UmengShareHelper;
 import com.ynstkz.shitu.android.view.ListViewForScrollView;
-import com.ynstkz.shitu.android.view.ScrollViewWithGridView;
 
 import java.util.ArrayList;
 import java.util.Date;
@@ -104,6 +103,8 @@ public class OrgDetailActivity extends TitleBarActivity {
     LinearLayout llCollect;
     @Bind(R.id.ll_point_main)
     LinearLayout llPointMain;
+    @Bind(R.id.iv_banner_bg)
+    ImageView ivBannerBg;
 
     private int memberId;
     private boolean isCollect;
@@ -257,7 +258,7 @@ public class OrgDetailActivity extends TitleBarActivity {
 
     private void getOrgDetail(int memberId, final boolean isScollTop) {
 
-        RequestGroup.getOrgDetail(memberId + "", new Callback() {
+        RequestGroup.getOrgDetail(this,memberId + "", new Callback() {
             @Override
             public Object parseNetworkResponse(Response response, int id) throws Exception {
                 return new Gson().fromJson(response.body().string(), OrgDetailBean.class);
@@ -301,6 +302,7 @@ public class OrgDetailActivity extends TitleBarActivity {
         tvCollectcount.setText("收藏:" + dataBean.getCollectCount() + "次");
         tvAddress.setText(dataBean.getAddress());
         tvOrgDesc.setText(dataBean.getIntroduction());
+        rbScore.setProgress((int)dataBean.getScore());
         isCollect = dataBean.isCollect();
         initCollectIcon();
 
@@ -380,6 +382,7 @@ public class OrgDetailActivity extends TitleBarActivity {
      */
     private void initBannerView() {
         if (dataBean.getShowPicList() != null && dataBean.getShowPicList().size() > 0) {
+            ivBannerBg.setVisibility(View.GONE);
             List<View> listShowPic = new ArrayList<>();
             for (int i = 0; i < dataBean.getShowPicList().size(); i++) {
                 ImageView imageView = new ImageView(this);
@@ -407,21 +410,24 @@ public class OrgDetailActivity extends TitleBarActivity {
             vpBanner.setCurrentItem(bannerIndex);
             adapter.notifyDataSetChanged();
             initPointView();
-//            handler.sendEmptyMessage(0);
+            handler.sendEmptyMessageDelayed(0,3000);
+        } else {
+            ivBannerBg.setVisibility(View.VISIBLE);
+            vpBanner.setVisibility(View.GONE);
         }
     }
 
     /**
      * 初始化焦点View
      */
-    private void initPointView(){
-        if(dataBean == null || dataBean.getShowPicList() == null || dataBean.getShowPicList().size() == 0) {
+    private void initPointView() {
+        if (dataBean == null || dataBean.getShowPicList() == null || dataBean.getShowPicList().size() == 0) {
             return;
         }
         int showPicSize = dataBean.getShowPicList().size();
-        if(showPicSize > 0){
+        if (showPicSize > 0) {
             listPointView = new ArrayList<>();
-            for(int i=0; i< showPicSize; i++) {
+            for (int i = 0; i < showPicSize; i++) {
                 ImageView imageView = new ImageView(this);
                 imageView.setImageResource(R.drawable.banner_point_nomal);
                 LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(15, 15);
@@ -437,16 +443,16 @@ public class OrgDetailActivity extends TitleBarActivity {
     /**
      * 刷新焦点图片
      */
-    private void refreshPointView(){
-        if(dataBean == null || dataBean.getShowPicList() == null || dataBean.getShowPicList().size() == 0) {
+    private void refreshPointView() {
+        if (dataBean == null || dataBean.getShowPicList() == null || dataBean.getShowPicList().size() == 0) {
             return;
         }
-        if(pointIndex >= dataBean.getShowPicList().size()) {
+        if (pointIndex >= dataBean.getShowPicList().size()) {
             pointIndex = 0;
         }
-        if(listPointView != null && dataBean.getShowPicList().size() > 0){
-            for(int i=0; i<listPointView.size(); i++){
-                if(i == pointIndex) {
+        if (listPointView != null && dataBean.getShowPicList().size() > 0) {
+            for (int i = 0; i < listPointView.size(); i++) {
+                if (i == pointIndex) {
                     listPointView.get(i).setImageResource(R.drawable.banner_point_press);
                 } else {
                     listPointView.get(i).setImageResource(R.drawable.banner_point_nomal);
@@ -574,5 +580,6 @@ public class OrgDetailActivity extends TitleBarActivity {
     protected void onDestroy() {
         super.onDestroy();
         handler.removeCallbacksAndMessages(null);
+        OkHttpUtils.getInstance().cancelTag(this);
     }
 }

+ 3 - 1
app/src/main/java/com/ynstkz/shitu/android/activity/OrgWriteCommentActivity.java

@@ -33,6 +33,7 @@ import com.google.gson.Gson;
 import com.ynstkz.shitu.android.BuildConfig;
 import com.ynstkz.shitu.android.R;
 import com.ynstkz.shitu.android.adapter.OrgCommentPicAdapter;
+import com.ynstkz.shitu.android.application.STSign;
 import com.ynstkz.shitu.android.base.TitleBarActivity;
 import com.ynstkz.shitu.android.bean.OrgCommentSubmintBean;
 import com.ynstkz.shitu.android.data.RequestGroup;
@@ -177,7 +178,8 @@ public class OrgWriteCommentActivity extends TitleBarActivity implements View.On
             @Override
             public void onError(Call call, Exception e, int id) {
                 progressDialog.dismiss();
-                showToast(e.getMessage());
+                STSign.logout();
+                startActivity(new Intent(OrgWriteCommentActivity.this, LoginActivity.class));
             }
 
             @Override

+ 8 - 0
app/src/main/java/com/ynstkz/shitu/android/activity/RegisterSubmitActivity.java

@@ -110,7 +110,15 @@ public class RegisterSubmitActivity extends TitleBarActivity {
                     return;
                 }
                 String userName = editUsername.getText().toString().trim();
+                if(userName.length() > 20) {
+                    showToast("请输入小于20位的用户名");
+                    return;
+                }
                 String pwd = editPassword.getText().toString().trim();
+                if(pwd.length() < 8 || pwd.length() > 20) {
+                    showToast("请输入8-20位密码");
+                    return;
+                }
                 String rePwd = editPasswordAgain.getText().toString().trim();
                 if (verifyData(phoneNumber, userName, pwd, rePwd)) {
                     register(phoneNumber, userName, pwd, rePwd, code);

+ 5 - 5
app/src/main/java/com/ynstkz/shitu/android/adapter/MineCollectItemAdapter.java

@@ -62,18 +62,18 @@ public class MineCollectItemAdapter extends CCListAdapter<OrgItemBean>{
 
             @Override
             public void updateView(OrgItemBean content, int position) {
-                if(!TextUtils.isEmpty(content.getHeadPic())){
-                    if(content.getHeadPic().startsWith("http")) {
-                        Glide.with(context).load(content.getHeadPic()).into(ivHeadPic);
+                if(!TextUtils.isEmpty(content.getLogo())){
+                    if(content.getLogo().startsWith("http")) {
+                        Glide.with(context).load(content.getLogo()).into(ivHeadPic);
                     } else {
-                        Glide.with(context).load(UrlCat.HOST + content.getHeadPic()).into(ivHeadPic);
+                        Glide.with(context).load(UrlCat.HOST + content.getLogo()).into(ivHeadPic);
                     }
                 } else {
                     ivHeadPic.setImageResource(R.drawable.org_item_default_icon);
                 }
                 tvMemberName.setText(content.getMemberName());
                 tvRegaddress.setText(content.getAddress());
-                materialRatingBar.setProgress(content.getScore());
+                materialRatingBar.setProgress((int)content.getScore());
             }
         };
     }

+ 10 - 5
app/src/main/java/com/ynstkz/shitu/android/adapter/MineCommentItemAdapter.java

@@ -4,6 +4,7 @@ import android.annotation.SuppressLint;
 import android.content.Context;
 import android.content.Intent;
 import android.support.v4.content.ContextCompat;
+import android.text.TextUtils;
 import android.view.View;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
@@ -17,6 +18,7 @@ import com.github.vipulasri.timelineview.TimelineView;
 import com.ynstkz.shitu.android.R;
 import com.ynstkz.shitu.android.activity.OrgCommentItemBean;
 import com.ynstkz.shitu.android.activity.OrgDetailActivity;
+import com.ynstkz.shitu.android.data.UrlCat;
 import com.ynstkz.shitu.android.utils.VectorDrawableUtils;
 
 import java.util.Date;
@@ -77,23 +79,26 @@ public class MineCommentItemAdapter extends CCListAdapter{
             @SuppressLint("SetTextI18n")
             @Override
             public void updateView(Object content, int position) {
-
                 final OrgCommentItemBean orgCommentItemBean = adapterContent.get(position);
                 if(position == 0){
-                    timeMarker.setMarker(VectorDrawableUtils.getDrawable(context, R.drawable.ic_marker_inactive, R.color.main_color));
+                    timeMarker.setMarker(VectorDrawableUtils.getDrawable(context, R.drawable.ic_marker_inactive, R.color.commont_timeline));
                     tvDate.setText(DateUtil.format(new Date(orgCommentItemBean.getCreateTime()), "yyyy") + "\n" +
                             DateUtil.format(new Date(orgCommentItemBean.getCreateTime()), "MM-dd"));
                 } else if (position == 1){
-                    timeMarker.setMarker(VectorDrawableUtils.getDrawable(context, R.drawable.ic_marker_active, R.color.main_color));
+                    timeMarker.setMarker(VectorDrawableUtils.getDrawable(context, R.drawable.ic_marker_active, R.color.commont_timeline));
                     tvDate.setText(DateUtil.format(new Date(orgCommentItemBean.getCreateTime()), "MM-dd"));
                 } else {
-                    timeMarker.setMarker(ContextCompat.getDrawable(context, R.drawable.ic_marker), ContextCompat.getColor(context, R.color.colorPrimary));
+                    timeMarker.setMarker(ContextCompat.getDrawable(context, R.drawable.ic_marker), ContextCompat.getColor(context, R.color.commont_timeline));
                     tvDate.setText(DateUtil.format(new Date(orgCommentItemBean.getCreateTime()), "MM-dd"));
                 }
                 rbScore.setProgress(orgCommentItemBean.getScore() * 2);
                 tvContent.setText(orgCommentItemBean.getContent());
                 tvOrgName.setText(orgCommentItemBean.getMemberName());
-                Glide.with(context).load(orgCommentItemBean.getHeadPic()).into(ivOrgIcon);
+                if(!TextUtils.isEmpty(orgCommentItemBean.getHeadPic())){
+                    Glide.with(context).load(UrlCat.HOST + orgCommentItemBean.getHeadPic()).into(ivOrgIcon);
+                } else {
+                    ivOrgIcon.setImageResource(R.drawable.org_item_default_icon);
+                }
                 tvAddress.setText(orgCommentItemBean.getAddress());
 
                 llOrgMain.setOnClickListener(new View.OnClickListener() {

+ 6 - 1
app/src/main/java/com/ynstkz/shitu/android/adapter/OrgCommentListAdapter.java

@@ -14,6 +14,7 @@ import com.common.library.adapter.CCListAdapter;
 import com.common.library.utils.DateUtil;
 import com.ynstkz.shitu.android.R;
 import com.ynstkz.shitu.android.bean.EvaluateListBean;
+import com.ynstkz.shitu.android.data.UrlCat;
 
 import java.util.Date;
 import java.util.List;
@@ -70,7 +71,11 @@ public class OrgCommentListAdapter extends CCListAdapter<EvaluateListBean>{
             @Override
             public void updateView(EvaluateListBean content, int position) {
                 if(!TextUtils.isEmpty(content.getHeadPic())){
-                    Glide.with(context).load(content.getHeadPic()).into(ivIcon);
+                    if(content.getHeadPic().startsWith("http")){
+                        Glide.with(context).load(content.getHeadPic()).into(ivIcon);
+                    } else {
+                        Glide.with(context).load(UrlCat.HOST + content.getHeadPic()).into(ivIcon);
+                    }
                 } else {
                     ivIcon.setImageResource(R.drawable.default_head_icon);
                 }

+ 8 - 3
app/src/main/java/com/ynstkz/shitu/android/adapter/OrgListAdapter.java

@@ -16,6 +16,7 @@ import com.ynstkz.shitu.android.R;
 import com.ynstkz.shitu.android.activity.CourseDetailActivity;
 import com.ynstkz.shitu.android.bean.CourseItemBean;
 import com.ynstkz.shitu.android.bean.OrgItemBean;
+import com.ynstkz.shitu.android.data.UrlCat;
 import com.ynstkz.shitu.android.exter.GlideRoundTransform;
 
 import java.util.List;
@@ -67,10 +68,14 @@ public class OrgListAdapter extends CCListAdapter<OrgItemBean> {
             @Override
             public void updateView(OrgItemBean content, int position) {
                 tv_memberName.setText(content.getMemberName());
-                rb_score.setProgress(content.getScore() * 2);
+                rb_score.setProgress((int)content.getScore());
                 tvViewCount.setText("浏览人数:" + content.getViewCount() + "人");
-                if(!TextUtils.isEmpty(content.getHeadPic())){
-                    Glide.with(context).load(content.getHeadPic()).asBitmap().transform(new GlideRoundTransform(context)).into(iv_headPic);
+                if(!TextUtils.isEmpty(content.getLocation())){
+                    if(content.getLogo().startsWith("http")){
+                        Glide.with(context).load(content.getLogo()).asBitmap().transform(new GlideRoundTransform(context)).into(iv_headPic);
+                    } else {
+                        Glide.with(context).load(UrlCat.HOST + content.getLogo()).asBitmap().transform(new GlideRoundTransform(context)).into(iv_headPic);
+                    }
                 } else {
                     iv_headPic.setImageResource(R.drawable.org_item_default_icon);
                 }

+ 19 - 0
app/src/main/java/com/ynstkz/shitu/android/application/STSign.java

@@ -16,6 +16,7 @@ import com.common.library.okhttp.callback.Callback;
 import com.common.library.utils.PixelUtil;
 import com.google.gson.Gson;
 import com.ynstkz.shitu.android.R;
+import com.ynstkz.shitu.android.activity.LoginActivity;
 import com.ynstkz.shitu.android.base.BaseBean;
 import com.ynstkz.shitu.android.bean.UserInfoBean;
 import com.ynstkz.shitu.android.common.Constants;
@@ -180,4 +181,22 @@ public class STSign {
         SharedPreferencesDao.remove(SharedPreferencesUtils.KEY_USERID);
         Cache.clean(Constants.CACHE_USER_KEY);
     }
+
+    /**
+     * 重新登陆
+     * @param context
+     */
+    public void tonkenError(Context context, Exception e){
+        tonkenError(context, e, false);
+    }
+
+    public void tonkenError(Context context, Exception e, boolean isLogin){
+        if(e.getMessage().indexOf("401") > 0) {
+            Toast.makeText(context, context.getResources().getString(R.string.token_error), Toast.LENGTH_SHORT).show();
+            STSign.logout();
+        }
+        if(isLogin){
+            context.startActivity(new Intent(context, LoginActivity.class));
+        }
+    }
 }

+ 174 - 42
app/src/main/java/com/ynstkz/shitu/android/bean/CourseDetilBean.java

@@ -1,8 +1,9 @@
 package com.ynstkz.shitu.android.bean;
 
+import com.google.gson.annotations.SerializedName;
 import com.ynstkz.shitu.android.base.BaseBean;
 
-import java.io.Serializable;
+import java.util.List;
 
 /**
  * 作者:fuchangle on 2018/3/12 16:51
@@ -12,6 +13,7 @@ public class CourseDetilBean extends BaseBean{
 
     private DataBean data;
 
+
     public DataBean getData() {
         return data;
     }
@@ -20,65 +22,49 @@ public class CourseDetilBean extends BaseBean{
         this.data = data;
     }
 
-    public static class DataBean implements Serializable{
+    public static class DataBean {
 
-        private int marketPrice;
+        private String marketPrice;
         private boolean isNormal;
         private int collectCount;
-        private boolean isCollect;
-        private String enrollmentArea;
         private String memberName;
         private String lon;
         private String requirement;
         private String title;
-        private String coursePic;
         private String phone;
-        private int price;
+        private String price;
         private String detail;
         private int courseId;
         private String introduction;
         private String lat;
         private int memberId;
+        private List<EnrollAreaListBean> enrollAreaList;
+        private List<CoursePicListBean> coursePicList;
         private String viewCount;
+        private boolean isCollect;
 
-        public int getMarketPrice() {
+        public String getMarketPrice() {
             return marketPrice;
         }
 
-        public void setMarketPrice(int marketPrice) {
+        public void setMarketPrice(String marketPrice) {
             this.marketPrice = marketPrice;
         }
 
-        public int getCollectCount() {
-            return collectCount;
-        }
-
-        public void setCollectCount(int collectCount) {
-            this.collectCount = collectCount;
-        }
-
-        public boolean isNormal() {
+        public boolean isIsNormal() {
             return isNormal;
         }
 
-        public void setNormal(boolean normal) {
-            isNormal = normal;
-        }
-
-        public boolean isCollect() {
-            return isCollect;
-        }
-
-        public void setCollect(boolean collect) {
-            isCollect = collect;
+        public void setIsNormal(boolean isNormal) {
+            this.isNormal = isNormal;
         }
 
-        public String getEnrollmentArea() {
-            return enrollmentArea;
+        public int getCollectCount() {
+            return collectCount;
         }
 
-        public void setEnrollmentArea(String enrollmentArea) {
-            this.enrollmentArea = enrollmentArea;
+        public void setCollectCount(int collectCount) {
+            this.collectCount = collectCount;
         }
 
         public String getMemberName() {
@@ -113,14 +99,6 @@ public class CourseDetilBean extends BaseBean{
             this.title = title;
         }
 
-        public String getCoursePic() {
-            return coursePic;
-        }
-
-        public void setCoursePic(String coursePic) {
-            this.coursePic = coursePic;
-        }
-
         public String getPhone() {
             return phone;
         }
@@ -129,11 +107,11 @@ public class CourseDetilBean extends BaseBean{
             this.phone = phone;
         }
 
-        public int getPrice() {
+        public String getPrice() {
             return price;
         }
 
-        public void setPrice(int price) {
+        public void setPrice(String price) {
             this.price = price;
         }
 
@@ -177,6 +155,30 @@ public class CourseDetilBean extends BaseBean{
             this.memberId = memberId;
         }
 
+        public List<EnrollAreaListBean> getEnrollAreaList() {
+            return enrollAreaList;
+        }
+
+        public void setEnrollAreaList(List<EnrollAreaListBean> enrollAreaList) {
+            this.enrollAreaList = enrollAreaList;
+        }
+
+        public List<CoursePicListBean> getCoursePicList() {
+            return coursePicList;
+        }
+
+        public void setCoursePicList(List<CoursePicListBean> coursePicList) {
+            this.coursePicList = coursePicList;
+        }
+
+        public boolean isNormal() {
+            return isNormal;
+        }
+
+        public void setNormal(boolean normal) {
+            isNormal = normal;
+        }
+
         public String getViewCount() {
             return viewCount;
         }
@@ -184,5 +186,135 @@ public class CourseDetilBean extends BaseBean{
         public void setViewCount(String viewCount) {
             this.viewCount = viewCount;
         }
+
+        public boolean isCollect() {
+            return isCollect;
+        }
+
+        public void setCollect(boolean collect) {
+            isCollect = collect;
+        }
+
+        public static class EnrollAreaListBean {
+            /**
+             * areaId : 22
+             * courseId : 74
+             * provinceId : 7
+             * cityId : 102
+             * districtId : 905
+             * address : 测试
+             * createTime : null
+             * updateTime : null
+             */
+
+            private int areaId;
+            private int courseId;
+            private int provinceId;
+            private int cityId;
+            private int districtId;
+            private String address;
+            private String createTime;
+            private String updateTime;
+
+            public int getAreaId() {
+                return areaId;
+            }
+
+            public void setAreaId(int areaId) {
+                this.areaId = areaId;
+            }
+
+            public int getCourseId() {
+                return courseId;
+            }
+
+            public void setCourseId(int courseId) {
+                this.courseId = courseId;
+            }
+
+            public int getProvinceId() {
+                return provinceId;
+            }
+
+            public void setProvinceId(int provinceId) {
+                this.provinceId = provinceId;
+            }
+
+            public int getCityId() {
+                return cityId;
+            }
+
+            public void setCityId(int cityId) {
+                this.cityId = cityId;
+            }
+
+            public int getDistrictId() {
+                return districtId;
+            }
+
+            public void setDistrictId(int districtId) {
+                this.districtId = districtId;
+            }
+
+            public String getAddress() {
+                return address;
+            }
+
+            public void setAddress(String address) {
+                this.address = address;
+            }
+
+            public String getCreateTime() {
+                return createTime;
+            }
+
+            public void setCreateTime(String createTime) {
+                this.createTime = createTime;
+            }
+
+            public String getUpdateTime() {
+                return updateTime;
+            }
+
+            public void setUpdateTime(String updateTime) {
+                this.updateTime = updateTime;
+            }
+        }
+
+        public static class CoursePicListBean {
+            /**
+             * picId : 64
+             * courseId : 74
+             * picUrl : /upload/course/9/2018-04-24/ecbwini0ksuknr2c8ouxmayy7ykly2f8.png
+             */
+
+            private int picId;
+            private int courseId;
+            private String picUrl;
+
+            public int getPicId() {
+                return picId;
+            }
+
+            public void setPicId(int picId) {
+                this.picId = picId;
+            }
+
+            public int getCourseId() {
+                return courseId;
+            }
+
+            public void setCourseId(int courseId) {
+                this.courseId = courseId;
+            }
+
+            public String getPicUrl() {
+                return picUrl;
+            }
+
+            public void setPicUrl(String picUrl) {
+                this.picUrl = picUrl;
+            }
+        }
     }
 }

+ 3 - 3
app/src/main/java/com/ynstkz/shitu/android/bean/OrgDetailBean.java

@@ -27,7 +27,7 @@ public class OrgDetailBean extends BaseBean{
         private int collectCount;
         private String memberName;
         private String headPic;
-        private int score;
+        private double score;
         private String phone;
         private int viewCount;
         private String introduction;
@@ -79,11 +79,11 @@ public class OrgDetailBean extends BaseBean{
             this.headPic = headPic;
         }
 
-        public int getScore() {
+        public double getScore() {
             return score;
         }
 
-        public void setScore(int score) {
+        public void setScore(double score) {
             this.score = score;
         }
 

+ 8 - 8
app/src/main/java/com/ynstkz/shitu/android/bean/OrgItemBean.java

@@ -10,21 +10,21 @@ import java.util.List;
 
 public class OrgItemBean extends BaseBean{
 
-    private int score;
+    private double score;
     private String address;
     private String memberName;
     private String location;
     private int viewCount;
-    private String headPic;
+    private String logo;
     private int memberId;
     private List<CourseItemBean> courseList;
     private String scoreCount;
 
-    public int getScore() {
+    public double getScore() {
         return score;
     }
 
-    public void setScore(int score) {
+    public void setScore(double score) {
         this.score = score;
     }
 
@@ -60,12 +60,12 @@ public class OrgItemBean extends BaseBean{
         this.viewCount = viewCount;
     }
 
-    public String getHeadPic() {
-        return headPic;
+    public String getLogo() {
+        return logo;
     }
 
-    public void setHeadPic(String headPic) {
-        this.headPic = headPic;
+    public void setLogo(String logo) {
+        this.logo = logo;
     }
 
     public int getMemberId() {

+ 8 - 8
app/src/main/java/com/ynstkz/shitu/android/data/RequestGroup.java

@@ -242,7 +242,7 @@ public class RequestGroup {
      * @param pageNumber
      * @param callback
      */
-    public static void getNearbyAgencyList(String pageNumber, String lon, String lat, String agencyTypeId, String sortType, String keyword, Callback callback){
+    public static void getNearbyAgencyList(Object obj, String pageNumber, String lon, String lat, String agencyTypeId, String sortType, String keyword, Callback callback){
         Map<String, String> params = getSystemParams();
         params.put("pageNumber",pageNumber);
         params.put("pageSize", "10");
@@ -261,7 +261,7 @@ public class RequestGroup {
         if(!TextUtils.isEmpty(keyword)){
             params.put("keyword", keyword);
         }
-        OkHttpUtils.get().url(UrlCat.URL_AGENCY_LIST).params(params).build().execute(callback);
+        OkHttpUtils.get().url(UrlCat.URL_AGENCY_LIST).tag(obj).params(params).build().execute(callback);
     }
 
     /**
@@ -270,12 +270,12 @@ public class RequestGroup {
      * @param pageSize
      * @param callback
      */
-    public static void getAgencyRecommendList(String pageNumber, String pageSize, String location, Callback callback){
+    public static void getAgencyRecommendList(Object obj, String pageNumber, String pageSize, String location, Callback callback){
         Map<String, String> params = getSystemParams();
         params.put("pageNumber",pageNumber);
         params.put("pageSize", pageSize);
         params.put("location", location);
-        OkHttpUtils.get().url(UrlCat.URL_AGENCY_RECOMMEND_LIST).params(params).build().execute(callback);
+        OkHttpUtils.get().url(UrlCat.URL_AGENCY_RECOMMEND_LIST).tag(obj).params(params).build().execute(callback);
     }
 
     /**
@@ -290,20 +290,20 @@ public class RequestGroup {
      * 机构详情
      * @param memberId
      */
-    public static void getOrgDetail(String memberId, Callback callback){
+    public static void getOrgDetail(Object obj, String memberId, Callback callback){
         Map<String, String> params = getSystemParams();
         params.put("memberId", memberId);
-        OkHttpUtils.get().url(UrlCat.URL_AGENCY_DETAIL).params(params).build().execute(callback);
+        OkHttpUtils.get().url(UrlCat.URL_AGENCY_DETAIL).tag(obj).params(params).build().execute(callback);
     }
 
     /**
      * 课程详情
      * @param courseId
      */
-    public static void getCourseDetail(String courseId, Callback callback){
+    public static void getCourseDetail(Object obj, String courseId, Callback callback){
         Map<String, String> params = getSystemParams();
         params.put("courseId", courseId);
-        OkHttpUtils.get().url(UrlCat.URL_COURSE_DETAIL).params(params).build().execute(callback);
+        OkHttpUtils.get().url(UrlCat.URL_COURSE_DETAIL).tag(obj).params(params).build().execute(callback);
     }
 
     /**

+ 22 - 9
app/src/main/java/com/ynstkz/shitu/android/fragment/HomeFragment.java

@@ -19,6 +19,7 @@ import android.view.View;
 import android.view.ViewGroup;
 import android.view.inputmethod.EditorInfo;
 import android.widget.AdapterView;
+import android.widget.Button;
 import android.widget.EditText;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
@@ -28,6 +29,7 @@ import android.widget.TextView;
 
 import com.bumptech.glide.Glide;
 import com.common.library.cache.Cache;
+import com.common.library.okhttp.OkHttpUtils;
 import com.common.library.okhttp.callback.Callback;
 import com.common.library.pulltorefresh.PullToRefreshBase;
 import com.common.library.pulltorefresh.PullToRefreshScrollView;
@@ -51,6 +53,7 @@ import com.ynstkz.shitu.android.bean.OrgRecommendListBean;
 import com.ynstkz.shitu.android.common.Constants;
 import com.ynstkz.shitu.android.data.RequestGroup;
 import com.ynstkz.shitu.android.data.SharedPreferencesUtils;
+import com.ynstkz.shitu.android.data.UrlCat;
 import com.ynstkz.shitu.android.event.LocationChangedEvent;
 import com.ynstkz.shitu.android.exter.GlideRoundTransform;
 import com.ynstkz.shitu.android.view.ScrollViewWithGridView;
@@ -333,7 +336,7 @@ public class HomeFragment extends BaseFragment implements PullToRefreshBase.OnRe
      */
     private void getOrgRecommendList(String location) {
 
-        RequestGroup.getAgencyRecommendList(pageNumber + "", "25", location, new Callback() {
+        RequestGroup.getAgencyRecommendList(this,pageNumber + "", "25", location, new Callback() {
             @Override
             public Object parseNetworkResponse(Response response, int id) throws Exception {
                 return new Gson().fromJson(response.body().string(), OrgRecommendListBean.class);
@@ -385,33 +388,43 @@ public class HomeFragment extends BaseFragment implements PullToRefreshBase.OnRe
             MaterialRatingBar rb_score = view.findViewById(R.id.rb_score);
             TextView tv_regaddress = view.findViewById(R.id.tv_regaddress);
             TextView tvviewcount = view.findViewById(R.id.tv_view_count);
+            Button llCourseMore = view.findViewById(R.id.ll_course_more);
             //加载机构数据
             final OrgItemBean orgItemBean = listOrg.get(i);
-            if (!TextUtils.isEmpty(orgItemBean.getHeadPic())) {
-                Glide.with(getActivity()).load(orgItemBean.getHeadPic()).asBitmap().transform(new GlideRoundTransform(getActivity())).into(iv_headPic);
+            if (!TextUtils.isEmpty(orgItemBean.getLogo())) {
+                if(orgItemBean.getLogo().startsWith("http")){
+                    Glide.with(getActivity()).load(orgItemBean.getLogo()).asBitmap().transform(new GlideRoundTransform(getActivity())).into(iv_headPic);
+                } else {
+                    Glide.with(getActivity()).load(UrlCat.HOST + orgItemBean.getLogo()).asBitmap().transform(new GlideRoundTransform(getActivity())).into(iv_headPic);
+                }
             } else {
                 iv_headPic.setImageResource(R.drawable.org_item_default_icon);
             }
             tv_memberName.setText(orgItemBean.getMemberName());
-            rb_score.setProgress(orgItemBean.getScore() * 2);
+            rb_score.setProgress((int)orgItemBean.getScore());
             tv_regaddress.setText(orgItemBean.getAddress());
             tvviewcount.setText(orgItemBean.getScoreCount() + "条评论");
 
             //加载课程数据
-            LinearLayout llCourseMain = view.findViewById(R.id.ll_course_main);
+            final LinearLayout llCourseMain = view.findViewById(R.id.ll_course_main);
             if (orgItemBean.getCourseList() != null && orgItemBean.getCourseList().size() > 0) {
                 llCourseMain.setVisibility(View.VISIBLE);
                 llCourseMain.removeAllViews();
+
                 for (int j = 0; j < orgItemBean.getCourseList().size(); j++) {
-                    View courseView = LayoutInflater.from(getActivity()).inflate(R.layout.item_org_course_recommend_list, null);
+                    final View courseView = LayoutInflater.from(getActivity()).inflate(R.layout.item_org_course_recommend_list, null);
                     TextView tvCourseTitle = courseView.findViewById(R.id.tv_course_title);
                     TextView tvCoursePrice = courseView.findViewById(R.id.tv_course_price);
                     TextView tvCourseMarketprice = courseView.findViewById(R.id.tv_course_marketprice);
 
                     final CourseItemBean courseItemBean = orgItemBean.getCourseList().get(j);
                     tvCourseTitle.setText(courseItemBean.getTitle());
-                    tvCoursePrice.setText("¥" + courseItemBean.getPrice());
-                    tvCourseMarketprice.setText("市场价:¥" + courseItemBean.getMarketPrice());
+                    if(!TextUtils.isEmpty(courseItemBean.getPrice())){
+                        tvCoursePrice.setText("¥" + courseItemBean.getPrice());
+                    }
+                    if(!TextUtils.isEmpty(courseItemBean.getMarketPrice())) {
+                        tvCourseMarketprice.setText("市场价:¥" + courseItemBean.getMarketPrice());
+                    }
 
                     //课程详情
                     courseView.setOnClickListener(new View.OnClickListener() {
@@ -422,7 +435,6 @@ public class HomeFragment extends BaseFragment implements PullToRefreshBase.OnRe
                             startActivity(intent);
                         }
                     });
-
                     llCourseMain.addView(courseView);
                 }
             } else {
@@ -602,5 +614,6 @@ public class HomeFragment extends BaseFragment implements PullToRefreshBase.OnRe
         ButterKnife.unbind(this);
         EventBus.getDefault().unregister(this);
         handler.removeCallbacksAndMessages(null);
+        OkHttpUtils.getInstance().cancelTag(this);
     }
 }

+ 2 - 0
app/src/main/java/com/ynstkz/shitu/android/fragment/MineSignUpItemFragment.java

@@ -16,6 +16,7 @@ import com.common.library.pulltorefresh.PullToRefreshListView;
 import com.google.gson.Gson;
 import com.ynstkz.shitu.android.R;
 import com.ynstkz.shitu.android.adapter.MineSignUpAdapter;
+import com.ynstkz.shitu.android.application.STSign;
 import com.ynstkz.shitu.android.base.BaseFragment;
 import com.ynstkz.shitu.android.bean.MineSignUpItemBean;
 import com.ynstkz.shitu.android.bean.SignUpRecorsBean;
@@ -107,6 +108,7 @@ public class MineSignUpItemFragment extends BaseFragment implements PullToRefres
             @Override
             public void onError(Call call, Exception e, int id) {
                 showNoData();
+                STSign.getInstance().tonkenError(getActivity(), e);
             }
 
             @Override

+ 10 - 4
app/src/main/java/com/ynstkz/shitu/android/fragment/OrgListFragment.java

@@ -24,6 +24,7 @@ import com.amap.api.services.geocoder.GeocodeResult;
 import com.amap.api.services.geocoder.GeocodeSearch;
 import com.amap.api.services.geocoder.RegeocodeResult;
 import com.common.library.cache.Cache;
+import com.common.library.okhttp.OkHttpUtils;
 import com.common.library.okhttp.callback.Callback;
 import com.common.library.pulltorefresh.PullToRefreshBase;
 import com.common.library.pulltorefresh.PullToRefreshListView;
@@ -298,7 +299,7 @@ public class OrgListFragment extends BaseFragment implements PullToRefreshBase.O
      */
     private void getOrgList() {
 
-        RequestGroup.getNearbyAgencyList(pageNumber + "", longitude + "", latitude + "", agencyTypeId, sortType, keyword, new Callback() {
+        RequestGroup.getNearbyAgencyList(this, pageNumber + "", longitude + "", latitude + "", agencyTypeId, sortType, keyword, new Callback() {
             @Override
             public Object parseNetworkResponse(Response response, int id) throws Exception {
                 return new Gson().fromJson(response.body().string(), OrgListBean.class);
@@ -439,9 +440,13 @@ public class OrgListFragment extends BaseFragment implements PullToRefreshBase.O
      * 显示无数据
      */
     private void showNoData(){
-        rlNodata.setVisibility(View.VISIBLE);
-        ivNodataIcon.setImageResource(R.drawable.nodata_apply);
-        tvNodataLab.setText(getString(R.string.nodata_org));
+        try {
+            rlNodata.setVisibility(View.VISIBLE);
+            ivNodataIcon.setImageResource(R.drawable.nodata_apply);
+            tvNodataLab.setText(getString(R.string.nodata_org));
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
     }
 
     @Override
@@ -477,6 +482,7 @@ public class OrgListFragment extends BaseFragment implements PullToRefreshBase.O
         super.onDestroyView();
         ButterKnife.unbind(this);
         EventBus.getDefault().unregister(this);
+        OkHttpUtils.getInstance().cancelTag(this);
     }
 
 }

+ 1 - 2
app/src/main/java/com/ynstkz/shitu/android/fragment/UserCenterFragment.java

@@ -191,8 +191,7 @@ public class UserCenterFragment extends BaseFragment {
 
             @Override
             public void onError(Call call, Exception e, int id) {
-                showToast(getString(R.string.token_error));
-                STSign.logout();
+                STSign.getInstance().tonkenError(getActivity(), e);
             }
 
             @Override

BIN
app/src/main/res/drawable-xxhdpi/default_org_banner_bg.png


+ 2 - 1
app/src/main/res/drawable/ic_marker_inactive.xml

@@ -1,4 +1,5 @@
 <vector android:height="24dp" android:viewportHeight="426.667"
     android:viewportWidth="426.667" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
-    <path android:fillColor="#FF000000" android:pathData="M213.3,0C95.5,0 0,95.5 0,213.3s95.5,213.3 213.3,213.3s213.3,-95.5 213.3,-213.3S331.2,0 213.3,0zM213.3,387.4c-96.1,0 -174.1,-77.9 -174.1,-174.1s77.9,-174.1 174.1,-174.1c96.1,0.1 174,78 174.1,174.1C387.4,309.5 309.5,387.4 213.3,387.4z"/>
+    <path android:fillColor="#FF000000"
+        android:pathData="M213.3,0C95.5,0 0,95.5 0,213.3s95.5,213.3 213.3,213.3s213.3,-95.5 213.3,-213.3S331.2,0 213.3,0zM213.3,387.4c-96.1,0 -174.1,-77.9 -174.1,-174.1s77.9,-174.1 174.1,-174.1c96.1,0.1 174,78 174.1,174.1C387.4,309.5 309.5,387.4 213.3,387.4z"/>
 </vector>

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

@@ -55,7 +55,7 @@
             android:layout_marginLeft="@dimen/company_5dp"
             android:background="@null"
             android:inputType="textPassword"
-            android:hint="请输入密码"/>
+            android:hint="请输入8-20位的密码"/>
 
     </LinearLayout>
 

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

@@ -13,7 +13,7 @@
         android:layout_height="@dimen/company_50dp"
         android:padding="@dimen/default_content_margin"
         android:background="@color/white"
-        android:hint="请输入用户名"/>
+        android:hint="请输入小于20位的用户名"/>
 
     <Button
         android:id="@+id/btn_save"

+ 24 - 3
app/src/main/res/layout/activity_course_detail.xml

@@ -27,10 +27,14 @@
             android:layout_centerInParent="true"
             android:lines="1"
             android:ellipsize="end"
+            android:layout_toLeftOf="@+id/ll_collect"
+            android:layout_toRightOf="@+id/iv_back"
+            android:gravity="center"
             android:scrollHorizontally="true"
             android:textColor="@color/white"/>
 
         <LinearLayout
+            android:id="@+id/ll_collect"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_alignParentRight="true"
@@ -42,7 +46,8 @@
                 android:id="@+id/iv_collect"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:src="@drawable/collect_icon"/>
+                android:src="@drawable/collect_icon"
+                android:visibility="gone"/>
 
             <ImageView
                 android:id="@+id/iv_share"
@@ -68,14 +73,30 @@
 
             <RelativeLayout
                 android:layout_width="match_parent"
-                android:layout_height="150dp"
-                android:background="@color/white">
+                android:layout_height="180dp"
+                android:background="#EEEEEE">
+
+                <ImageView
+                    android:id="@+id/iv_banner_bg"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:src="@drawable/default_org_banner_bg"/>
 
                 <android.support.v4.view.ViewPager
                     android:id="@+id/vp_banner"
                     android:layout_width="match_parent"
                     android:layout_height="match_parent" />
 
+                <LinearLayout
+                    android:id="@+id/ll_point_main"
+                    android:layout_width="wrap_content"
+                    android:layout_height="@dimen/company_20dp"
+                    android:layout_alignParentRight="true"
+                    android:layout_alignParentBottom="true"
+                    android:layout_marginBottom="@dimen/company_5dp"
+                    android:layout_marginRight="@dimen/company_20dp"
+                    android:orientation="horizontal"/>
+
             </RelativeLayout>
 
             <LinearLayout

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

@@ -66,7 +66,7 @@
             android:layout_height="@dimen/company_50dp"
             android:layout_marginTop="@dimen/company_10dp"
             android:background="@drawable/shapre_default_edit_bg"
-            android:hint="请输入密码"
+            android:hint="请输入8-20位的密码"
             android:inputType="textPassword"
             android:maxLines="1"
             android:textCursorDrawable="@null"

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

@@ -89,7 +89,7 @@
                 android:layout_height="@dimen/company_50dp"
                 android:layout_marginTop="@dimen/company_20dp"
                 android:background="@drawable/shapre_default_edit_bg"
-                android:hint="请输入登密码"
+                android:hint="请输入登密码"
                 android:inputType="textPassword"
                 android:maxLines="1"
                 android:textCursorDrawable="@null"

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

@@ -11,6 +11,7 @@
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:padding="@dimen/default_content_margin"
+        android:scrollbars="none"
         android:divider="@null"/>
 
     <RelativeLayout

+ 8 - 2
app/src/main/res/layout/activity_org_detail.xml

@@ -74,7 +74,13 @@
             <RelativeLayout
                 android:layout_width="match_parent"
                 android:layout_height="180dp"
-                android:background="@color/white">
+                android:background="#EEEEEE">
+
+                <ImageView
+                    android:id="@+id/iv_banner_bg"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:src="@drawable/default_org_banner_bg"/>
 
                 <android.support.v4.view.ViewPager
                     android:id="@+id/vp_banner"
@@ -252,7 +258,7 @@
                         android:isIndicator="true"
                         app:mrb_progressTint="@color/rb_color"
                         app:mrb_secondaryProgressTint="@color/color_999"
-                        android:stepSize="0.5"
+                        android:stepSize="1"
                         style="@style/Widget.MaterialRatingBar.RatingBar" />
 
                     <LinearLayout

+ 2 - 2
app/src/main/res/layout/activity_register_submint.xml

@@ -64,7 +64,7 @@
             android:layout_height="@dimen/company_50dp"
             android:layout_marginTop="@dimen/company_10dp"
             android:background="@drawable/shapre_default_edit_bg"
-            android:hint="请输入的用户名"
+            android:hint="请输入小于20位的用户名"
             android:maxLines="1"
             android:textCursorDrawable="@null"
             android:textSize="@dimen/company_14sp" />
@@ -75,7 +75,7 @@
             android:layout_height="@dimen/company_50dp"
             android:layout_marginTop="@dimen/company_10dp"
             android:background="@drawable/shapre_default_edit_bg"
-            android:hint="请输入密码"
+            android:hint="请输入8-20位密码"
             android:maxLines="1"
             android:textCursorDrawable="@null"
             android:textSize="@dimen/company_14sp"

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

@@ -45,7 +45,7 @@
                     android:isIndicator="true"
                     app:mrb_progressTint="@color/rb_color"
                     app:mrb_secondaryProgressTint="@color/color_999"
-                    android:stepSize="0.5"
+                    android:stepSize="1"
                     style="@style/Widget.MaterialRatingBar.RatingBar" />
 
                 <TextView

+ 5 - 5
app/src/main/res/layout/item_minecomment_list.xml

@@ -18,7 +18,7 @@
         app:markerInCenter = "false"
         app:markerSize="20dp"
         app:lineSize="3dp"
-        app:line="@color/colorPrimary"/>
+        app:line="@color/commont_timeline"/>
 
     <LinearLayout
         android:layout_width="match_parent"
@@ -54,16 +54,16 @@
         <LinearLayout
             android:id="@+id/ll_org_main"
             android:layout_width="match_parent"
-            android:layout_height="@dimen/company_60dp"
+            android:layout_height="@dimen/company_90dp"
             android:orientation="horizontal"
             android:padding="@dimen/company_5dp"
             android:background="#F0F0F0">
 
             <ImageView
                 android:id="@+id/iv_org_icon"
-                android:layout_width="wrap_content"
-                android:layout_height="match_parent"
-                android:src="@mipmap/ic_launcher"
+                android:layout_width="@dimen/company_80dp"
+                android:layout_height="@dimen/company_80dp"
+                android:layout_gravity="center_vertical"
                 android:scaleType="centerCrop"/>
 
             <RelativeLayout

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

@@ -35,8 +35,7 @@
                 android:layout_height="wrap_content"
                 android:layout_gravity="right"
                 android:textSize="@dimen/company_20sp"
-                android:textColor="#ff695c"
-                android:text="$20"/>
+                android:textColor="#ff695c"/>
 
             <TextView
                 android:id="@+id/tv_course_marketprice"
@@ -45,8 +44,7 @@
                 android:layout_gravity="right"
                 android:layout_marginTop="@dimen/company_10dp"
                 android:textColor="@color/color_999"
-                android:textSize="11sp"
-                android:text="市场价:¥34"/>
+                android:textSize="11sp"/>
 
 
         </LinearLayout>

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

@@ -45,7 +45,7 @@
                     android:isIndicator="true"
                     app:mrb_progressTint="@color/rb_color"
                     app:mrb_secondaryProgressTint="@color/color_999"
-                    android:stepSize="0.5"
+                    android:stepSize="1"
                     style="@style/Widget.MaterialRatingBar.RatingBar.Indicator.Small" />
 
                 <TextView

+ 12 - 1
app/src/main/res/layout/item_org_recommend_list.xml

@@ -46,7 +46,7 @@
                     android:isIndicator="true"
                     app:mrb_progressTint="@color/rb_color"
                     app:mrb_secondaryProgressTint="@color/color_999"
-                    android:stepSize="0.1"
+                    android:stepSize="1"
                     style="@style/Widget.MaterialRatingBar.RatingBar.Indicator.Small" />
 
                 <TextView
@@ -94,6 +94,17 @@
 
     </LinearLayout>
 
+    <Button
+        android:id="@+id/ll_course_more"
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/company_30dp"
+        android:background="@null"
+        android:textSize="@dimen/company_12sp"
+        android:textColor="@color/main_color"
+        android:orientation="vertical"
+        android:text="查看其他课程"
+        android:visibility="gone"/>
+
     <TextView
         android:layout_width="match_parent"
         android:layout_height="@dimen/company_5dp"

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

@@ -17,4 +17,5 @@
     <color name="color_price">#ff695c</color>
     <color name="rb_color">#FDB70F</color>
     <color name="usercenter_primary">#27BBEE</color>
+    <color name="commont_timeline">#D3D3D3</color>
 </resources>

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

@@ -17,4 +17,6 @@
 
     <string name="token_error">登录过期,请重新登录</string>
     <string name="alter_phone_msg">更换手机号后,下次登录可使用新的手机号登录\n当前手机号为:%1$s</string>
+    <string name="error_username_length">请输入小于20位的用户名</string>
+    <string name="error_pwd_length">请输入8-20位的密码</string>
 </resources>