Browse Source

1.需求报名前增加登录判断,登录成功后刷新数据
2.所以列表添加底部加载功能

zhangxinyu 5 years ago
parent
commit
3ffe6753c4

+ 22 - 4
app/src/main/java/com/webrain/happywork/ui/activity/DemandDetailActivity.java

@@ -1,5 +1,6 @@
 package com.webrain.happywork.ui.activity;
 
+import android.content.Intent;
 import android.os.Bundle;
 import android.text.TextUtils;
 import android.view.View;
@@ -7,7 +8,10 @@ import android.widget.Button;
 import android.widget.TextView;
 
 import com.webrain.baselibrary.AppConstant;
+import com.webrain.baselibrary.EventConstant;
+import com.webrain.baselibrary.event.StringEvent;
 import com.webrain.baselibrary.utils.DateUtils;
+import com.webrain.happywork.AppCacheManager;
 import com.webrain.happywork.R;
 import com.webrain.happywork.bean.RequirementBean;
 import com.webrain.happywork.ui.base.BaseActivity;
@@ -16,6 +20,8 @@ import com.webrain.happywork.ui.mvp.presenter.DemandDetailPresenter;
 import com.webrain.happywork.ui.widget.dialog.MineLightDialog;
 import com.webrain.happywork.ui.widget.dialog.SureDialog;
 
+import org.greenrobot.eventbus.Subscribe;
+
 import butterknife.BindView;
 import butterknife.OnClick;
 
@@ -147,15 +153,27 @@ public class DemandDetailActivity extends BaseActivity<DemandDetailPresenter> im
     public void onClick(View view) {
         switch (view.getId()) {
             case R.id.btn_apply:
-                if (mineLightDialog == null) {
-                    mineLightDialog = new MineLightDialog(mContext);
-                    mineLightDialog.setOnClickSureListener(onClickSureListener);
+                if (AppCacheManager.getInstance().isLogin()) {
+                    if (mineLightDialog == null) {
+                        mineLightDialog = new MineLightDialog(mContext);
+                        mineLightDialog.setOnClickSureListener(onClickSureListener);
+                    }
+                    mineLightDialog.show();
+                } else {
+                    startActivity(new Intent(mContext, LoginActivity.class));
                 }
-                mineLightDialog.show();
                 break;
         }
     }
 
+    @Subscribe
+    public void onEvent(StringEvent event) {
+        if (event.getData().equals(EventConstant.EVENT_LOGIN)) {
+            mvpPresenter.getRequirementDetail(true);
+        }
+    }
+
+
     /**
      * 错误页面刷新按钮
      */

+ 23 - 2
app/src/main/java/com/webrain/happywork/ui/activity/MainActivity.java

@@ -6,6 +6,7 @@ import android.os.Bundle;
 import android.support.annotation.NonNull;
 import android.view.KeyEvent;
 import android.view.View;
+import android.widget.AbsListView;
 import android.widget.LinearLayout;
 import android.widget.RelativeLayout;
 import android.widget.TextView;
@@ -123,7 +124,7 @@ public class MainActivity extends BaseActivity<MainPresenter> implements MainCon
     @Subscribe
     public void onEvent(StringEvent event) {
         if (event.getData().equals(EventConstant.EVENT_LOGOUT)) {
-            finish();
+            mvpPresenter.getRequirements(true, true);
         }else if(event.getData().equals(EventConstant.EVENT_LOGIN)){
             mvpPresenter.getRequirements(true, true);
         }
@@ -299,6 +300,26 @@ public class MainActivity extends BaseActivity<MainPresenter> implements MainCon
         }
     };
     /**
+     * 监听ListView 滑动 , 实现滑动底部加载更多
+     */
+    AbsListView.OnScrollListener onScrollListener = new AbsListView.OnScrollListener() {
+        private boolean mLastItemVisible;
+
+        @Override
+        public void onScrollStateChanged(AbsListView view, int scrollState) {
+            if (scrollState == AbsListView.OnScrollListener.SCROLL_STATE_IDLE
+                    && mLastItemVisible) {
+                mvpPresenter.getRequirements(false, false);
+            }
+        }
+
+        @Override
+        public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
+            mLastItemVisible = (totalItemCount > 0)
+                    && (firstVisibleItem + visibleItemCount >= totalItemCount - 1);
+        }
+    };
+    /**
      * listView 滚动位置回调
      */
     ScrollListView.OnScrollMoveListener onScrollMoveListener = new ScrollListView.OnScrollMoveListener() {
@@ -312,7 +333,6 @@ public class MainActivity extends BaseActivity<MainPresenter> implements MainCon
         }
 
     };
-
     /**
      * ActionBar 图标点击回调
      */
@@ -353,6 +373,7 @@ public class MainActivity extends BaseActivity<MainPresenter> implements MainCon
             ivContent.addHeaderView(mHeaderView.getView());
             ivContent.addFooterView(mFooterView.getView());
             ivContent.setOnScrollMoveListener(onScrollMoveListener);
+            ivContent.setExternalOnScrollListener(onScrollListener);
             ivContent.setOnItemClickListener(mAdapter);
         } else {
             mAdapter.updateData(mData);

+ 23 - 0
app/src/main/java/com/webrain/happywork/ui/activity/MineApplyListActivity.java

@@ -3,6 +3,7 @@ package com.webrain.happywork.ui.activity;
 import android.os.Bundle;
 import android.support.annotation.NonNull;
 import android.view.View;
+import android.widget.AbsListView;
 import android.widget.LinearLayout;
 import android.widget.ListView;
 
@@ -68,6 +69,7 @@ public class MineApplyListActivity extends BaseActivity<MineApplyListPresenter>
             ivContent.setAdapter(mAdapter);
             ivContent.addFooterView(mFooterView.getView());
             ivContent.setOnItemClickListener(mAdapter);
+            ivContent.setOnScrollListener(onScrollListener);
             ivContent.setEmptyView(llEmpty);
         } else {
             mAdapter.updateData(mData);
@@ -91,6 +93,27 @@ public class MineApplyListActivity extends BaseActivity<MineApplyListPresenter>
     }
 
     /**
+     * 监听ListView 滑动 , 实现滑动底部加载更多
+     */
+    AbsListView.OnScrollListener onScrollListener = new AbsListView.OnScrollListener() {
+        private boolean mLastItemVisible;
+
+        @Override
+        public void onScrollStateChanged(AbsListView view, int scrollState) {
+            if (scrollState == AbsListView.OnScrollListener.SCROLL_STATE_IDLE
+                    && mLastItemVisible) {
+                mvpPresenter.getApplyList(false, false);
+            }
+        }
+
+        @Override
+        public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
+            mLastItemVisible = (totalItemCount > 0)
+                    && (firstVisibleItem + visibleItemCount >= totalItemCount - 1);
+        }
+    };
+
+    /**
      * 错误页面刷新按钮
      */
     View.OnClickListener onRefreshClickListener = new View.OnClickListener() {

+ 0 - 1
app/src/main/java/com/webrain/happywork/ui/activity/MineCenterActivity.java

@@ -146,7 +146,6 @@ public class MineCenterActivity extends BaseActivity<MineCenterPresenter> implem
     public void logout() {
         AppCacheManager.getInstance().clear();
         EventBus.getDefault().post(new StringEvent(EventConstant.EVENT_LOGOUT));
-        startActivity(new Intent(mContext, LoginActivity.class));
         finish();
     }
 

+ 23 - 0
app/src/main/java/com/webrain/happywork/ui/activity/MineCollectionRecordListActivity.java

@@ -3,6 +3,7 @@ package com.webrain.happywork.ui.activity;
 import android.os.Bundle;
 import android.support.annotation.NonNull;
 import android.view.View;
+import android.widget.AbsListView;
 import android.widget.ListView;
 
 import com.scwang.smartrefresh.layout.api.RefreshLayout;
@@ -55,6 +56,7 @@ public class MineCollectionRecordListActivity extends BaseActivity<MineCollectio
             mAdapter.updateData(mData);
             ivContent.setAdapter(mAdapter);
             ivContent.addFooterView(mFooterView.getView());
+            ivContent.setOnScrollListener(onScrollListener);
             ivContent.setOnItemClickListener(mAdapter);
         } else {
             mAdapter.updateData(mData);
@@ -78,6 +80,27 @@ public class MineCollectionRecordListActivity extends BaseActivity<MineCollectio
     }
 
     /**
+     * 监听ListView 滑动 , 实现滑动底部加载更多
+     */
+    AbsListView.OnScrollListener onScrollListener = new AbsListView.OnScrollListener() {
+        private boolean mLastItemVisible;
+
+        @Override
+        public void onScrollStateChanged(AbsListView view, int scrollState) {
+            if (scrollState == AbsListView.OnScrollListener.SCROLL_STATE_IDLE
+                    && mLastItemVisible) {
+                mvpPresenter.getCollectionRecordList(false, false);
+            }
+        }
+
+        @Override
+        public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
+            mLastItemVisible = (totalItemCount > 0)
+                    && (firstVisibleItem + visibleItemCount >= totalItemCount - 1);
+        }
+    };
+
+    /**
      * 错误页面刷新按钮
      */
     View.OnClickListener onRefreshClickListener = new View.OnClickListener() {

+ 23 - 0
app/src/main/java/com/webrain/happywork/ui/activity/MineOrderListActivity.java

@@ -3,6 +3,7 @@ package com.webrain.happywork.ui.activity;
 import android.os.Bundle;
 import android.support.annotation.NonNull;
 import android.view.View;
+import android.widget.AbsListView;
 import android.widget.LinearLayout;
 import android.widget.ListView;
 
@@ -65,6 +66,7 @@ public class MineOrderListActivity extends BaseActivity<MineOrderListPresenter>
             ivContent.setAdapter(mAdapter);
             ivContent.addFooterView(mFooterView.getView());
             ivContent.setOnItemClickListener(mAdapter);
+            ivContent.setOnScrollListener(onScrollListener);
             ivContent.setEmptyView(llEmpty);
         } else {
             mAdapter.updateData(mData);
@@ -116,6 +118,27 @@ public class MineOrderListActivity extends BaseActivity<MineOrderListPresenter>
     }
 
     /**
+     * 监听ListView 滑动 , 实现滑动底部加载更多
+     */
+    AbsListView.OnScrollListener onScrollListener = new AbsListView.OnScrollListener() {
+        private boolean mLastItemVisible;
+
+        @Override
+        public void onScrollStateChanged(AbsListView view, int scrollState) {
+            if (scrollState == AbsListView.OnScrollListener.SCROLL_STATE_IDLE
+                    && mLastItemVisible) {
+                mvpPresenter.getOrderList(false, false);
+            }
+        }
+
+        @Override
+        public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
+            mLastItemVisible = (totalItemCount > 0)
+                    && (firstVisibleItem + visibleItemCount >= totalItemCount - 1);
+        }
+    };
+
+    /**
      * 错误页面刷新按钮
      */
     View.OnClickListener onRefreshClickListener = new View.OnClickListener() {

+ 2 - 2
app/src/main/java/com/webrain/happywork/ui/mvp/contacts/DemandDetailContacts.java

@@ -19,7 +19,7 @@ public class DemandDetailContacts {
 
         void requestRequirementApply(String lightStr);
 
-        void getRequirementDetail();
+        void getRequirementDetail(boolean isShowDialog);
 
     }
 
@@ -28,7 +28,7 @@ public class DemandDetailContacts {
 
         void requestRequirementApply(MvpDataCallBack<Object> callBack, String lightStr);
 
-        void getRequirementDetail(MvpDataCallBack<Boolean> callBack);
+        void getRequirementDetail(MvpDataCallBack<Boolean> callBack,boolean isShowDialog);
 
         RequirementBean getRequirementBean();
 

+ 2 - 2
app/src/main/java/com/webrain/happywork/ui/mvp/model/DemandDetailModel.java

@@ -47,11 +47,11 @@ public class DemandDetailModel extends BaseModel implements DemandDetailContacts
      * @param callBack
      */
     @Override
-    public void getRequirementDetail(final MvpDataCallBack<Boolean> callBack) {
+    public void getRequirementDetail(final MvpDataCallBack<Boolean> callBack,boolean isShowDialog) {
         RetrofitHttpParams params = new RetrofitHttpParams(mContext);
         params.put("hwRequirementId", requirementId);
         RequirementSubscribe requirementSubscribe = new RequirementSubscribe(mContext);
-        requirementSubscribe.requestRequirementsDetail(params.getRequestParams(), new ApiObserver<ApiRequirementDetailBean>(mContext) {
+        requirementSubscribe.requestRequirementsDetail(params.getRequestParams(), new ApiObserver<ApiRequirementDetailBean>(mContext,isShowDialog,false) {
             @Override
             public void onSuccess(ApiRequirementDetailBean data) {
                 if (data != null) {

+ 17 - 15
app/src/main/java/com/webrain/happywork/ui/mvp/presenter/DemandDetailPresenter.java

@@ -26,7 +26,7 @@ public class DemandDetailPresenter extends BasePresenter<DemandDetailActivity> i
     @Override
     public void init() {
         if (isViewAttach() && mDemandDetailModel.isValidity(true)) {
-            getRequirementDetail();
+            getRequirementDetail(false);
         } else {
             mvpReference.get().finish();
         }
@@ -65,22 +65,24 @@ public class DemandDetailPresenter extends BasePresenter<DemandDetailActivity> i
      * 获取需求详情
      */
     @Override
-    public void getRequirementDetail() {
-        mDemandDetailModel.getRequirementDetail(new MvpDataCallBack<Boolean>() {
-            @Override
-            public void onData(Boolean data) {
-                if (isViewAttach()) {
-                    mvpReference.get().onRequirementDetail(mDemandDetailModel.getRequirementBean(), mDemandDetailModel.isNeedEnrollment());
+    public void getRequirementDetail(boolean isShowDialog) {
+        if (isViewAttach()) {
+            mDemandDetailModel.getRequirementDetail(new MvpDataCallBack<Boolean>() {
+                @Override
+                public void onData(Boolean data) {
+                    if (isViewAttach()) {
+                        mvpReference.get().onRequirementDetail(mDemandDetailModel.getRequirementBean(), mDemandDetailModel.isNeedEnrollment());
+                    }
                 }
-            }
 
-            @Override
-            public void onError(ApiException exception) {
-                super.onError(exception);
-                if (isViewAttach())
-                    mvpReference.get().onError();
-            }
-        });
+                @Override
+                public void onError(ApiException exception) {
+                    super.onError(exception);
+                    if (isViewAttach())
+                        mvpReference.get().onError();
+                }
+            },isShowDialog);
+        }
     }
 
 }