Repository: incubator-taverna-mobile
Updated Branches:
  refs/heads/master 9e5fb5ac4 -> 665531ea6


Annoucement Load More NPE fixed


Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/commit/725a5e2c
Tree: 
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/tree/725a5e2c
Diff: 
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/diff/725a5e2c

Branch: refs/heads/master
Commit: 725a5e2c4576f5ffafc21b62c3dd600ec7cd939c
Parents: c8e4b19
Author: Rajan Maurya <[email protected]>
Authored: Wed Oct 5 20:48:12 2016 +0530
Committer: Rajan Maurya <[email protected]>
Committed: Wed Oct 5 20:48:12 2016 +0530

----------------------------------------------------------------------
 .../ui/anouncements/AnnouncementFragment.java   | 32 ++++++++++++--------
 .../ui/anouncements/AnnouncementMvpView.java    |  6 ++--
 .../ui/anouncements/AnnouncementPresenter.java  | 18 ++++++-----
 app/src/main/res/values/strings.xml             |  4 +++
 4 files changed, 39 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/725a5e2c/app/src/main/java/org/apache/taverna/mobile/ui/anouncements/AnnouncementFragment.java
----------------------------------------------------------------------
diff --git 
a/app/src/main/java/org/apache/taverna/mobile/ui/anouncements/AnnouncementFragment.java
 
b/app/src/main/java/org/apache/taverna/mobile/ui/anouncements/AnnouncementFragment.java
index 1588fed..4b33f52 100644
--- 
a/app/src/main/java/org/apache/taverna/mobile/ui/anouncements/AnnouncementFragment.java
+++ 
b/app/src/main/java/org/apache/taverna/mobile/ui/anouncements/AnnouncementFragment.java
@@ -83,9 +83,11 @@ public class AnnouncementFragment extends Fragment 
implements RecyclerItemClickL
 
     @Override
     public void onItemClick(View childView, int position) {
-        showWaitProgress(true);
-        
mAnnouncementPresenter.loadAnnouncementDetails(mAnnouncements.getAnnouncement().get
-                (position).getId());
+        if (mAnnouncements.getAnnouncement().get(position) != null && position 
!= -1) {
+            showWaitProgress(true);
+            
mAnnouncementPresenter.loadAnnouncementDetails(mAnnouncements.getAnnouncement()
+                    .get(position).getId());
+        }
     }
 
     @Override
@@ -132,7 +134,7 @@ public class AnnouncementFragment extends Fragment 
implements RecyclerItemClickL
                     }
                 } else {
                     Log.i(LOG_TAG, "NO Internet Connection");
-                    showErrorSnackBar();
+                    showSnackBar(R.string.no_internet_connection);
                     if (mSwipeRefresh.isRefreshing()) {
                         mSwipeRefresh.setRefreshing(false);
                     }
@@ -144,7 +146,7 @@ public class AnnouncementFragment extends Fragment 
implements RecyclerItemClickL
         showProgressbar(true);
         mAnnouncementPresenter.loadAllAnnouncement(mPageNumber);
 
-        mRecyclerView.setOnScrollListener(new 
EndlessRecyclerOnScrollListener(layoutManager) {
+        mRecyclerView.addOnScrollListener(new 
EndlessRecyclerOnScrollListener(layoutManager) {
             @Override
             public void onLoadMore(int current_page) {
 
@@ -157,7 +159,7 @@ public class AnnouncementFragment extends Fragment 
implements RecyclerItemClickL
                     Log.i(LOG_TAG, "Loading more");
                 } else {
                     Log.i(LOG_TAG, "Internet not available. Not loading more 
posts.");
-                    showErrorSnackBar();
+                    showSnackBar(R.string.no_internet_connection);
                 }
             }
         });
@@ -172,13 +174,13 @@ public class AnnouncementFragment extends Fragment 
implements RecyclerItemClickL
 
 
     @Override
-    public void showAllAnouncement(Announcements announcements) {
+    public void showAllAnnouncement(Announcements announcements) {
         if (mPageNumber == 1) {
             mAnnouncements = announcements;
             mAnnouncementAdapter = new 
AnnouncementAdapter(mAnnouncements.getAnnouncement());
             mRecyclerView.setAdapter(mAnnouncementAdapter);
         } else {
-            
mAnnouncements.getAnnouncement().remove(mAnnouncements.getAnnouncement().size() 
- 1);
+            removeLoadMoreProgressBar();
             
mAnnouncements.getAnnouncement().addAll(announcements.getAnnouncement());
         }
 
@@ -190,6 +192,12 @@ public class AnnouncementFragment extends Fragment 
implements RecyclerItemClickL
     }
 
     @Override
+    public void removeLoadMoreProgressBar() {
+        
mAnnouncements.getAnnouncement().remove(mAnnouncements.getAnnouncement().size() 
- 1);
+        mAnnouncementAdapter.notifyDataSetChanged();
+    }
+
+    @Override
     public void showProgressbar(boolean status) {
         if (status) {
             mProgressBar.setVisibility(View.VISIBLE);
@@ -229,10 +237,10 @@ public class AnnouncementFragment extends Fragment 
implements RecyclerItemClickL
         super.onResume();
     }
 
-    public void showErrorSnackBar() {
-        final Snackbar snackbar = Snackbar.make(mRecyclerView, "No Internet 
Connection", Snackbar
-                .LENGTH_LONG);
-        snackbar.setAction("OK", new View.OnClickListener() {
+    @Override
+    public void showSnackBar(int message) {
+        final Snackbar snackbar = Snackbar.make(mRecyclerView, message, 
Snackbar.LENGTH_LONG);
+        snackbar.setAction(getResources().getString(R.string.ok), new 
View.OnClickListener() {
             @Override
             public void onClick(View view) {
                 snackbar.dismiss();

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/725a5e2c/app/src/main/java/org/apache/taverna/mobile/ui/anouncements/AnnouncementMvpView.java
----------------------------------------------------------------------
diff --git 
a/app/src/main/java/org/apache/taverna/mobile/ui/anouncements/AnnouncementMvpView.java
 
b/app/src/main/java/org/apache/taverna/mobile/ui/anouncements/AnnouncementMvpView.java
index e741d35..4a534bd 100644
--- 
a/app/src/main/java/org/apache/taverna/mobile/ui/anouncements/AnnouncementMvpView.java
+++ 
b/app/src/main/java/org/apache/taverna/mobile/ui/anouncements/AnnouncementMvpView.java
@@ -25,11 +25,13 @@ import org.apache.taverna.mobile.ui.base.MvpView;
 
 public interface AnnouncementMvpView extends MvpView {
 
-    void showAllAnouncement(Announcements announcements);
+    void showAllAnnouncement(Announcements announcements);
+
+    void removeLoadMoreProgressBar();
 
     void showProgressbar(boolean b);
 
-    void showErrorSnackBar();
+    void showSnackBar(int message);
 
     void showWaitProgress(boolean b);
 

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/725a5e2c/app/src/main/java/org/apache/taverna/mobile/ui/anouncements/AnnouncementPresenter.java
----------------------------------------------------------------------
diff --git 
a/app/src/main/java/org/apache/taverna/mobile/ui/anouncements/AnnouncementPresenter.java
 
b/app/src/main/java/org/apache/taverna/mobile/ui/anouncements/AnnouncementPresenter.java
index 97b9a5d..029a758 100644
--- 
a/app/src/main/java/org/apache/taverna/mobile/ui/anouncements/AnnouncementPresenter.java
+++ 
b/app/src/main/java/org/apache/taverna/mobile/ui/anouncements/AnnouncementPresenter.java
@@ -18,13 +18,14 @@
  */
 package org.apache.taverna.mobile.ui.anouncements;
 
+import android.util.Log;
+
+import org.apache.taverna.mobile.R;
 import org.apache.taverna.mobile.data.DataManager;
 import org.apache.taverna.mobile.data.model.Announcements;
 import org.apache.taverna.mobile.data.model.DetailAnnouncement;
 import org.apache.taverna.mobile.ui.base.BasePresenter;
 
-import android.util.Log;
-
 import rx.Observer;
 import rx.android.schedulers.AndroidSchedulers;
 import rx.schedulers.Schedulers;
@@ -68,15 +69,18 @@ public class AnnouncementPresenter extends 
BasePresenter<AnnouncementMvpView> {
 
                     @Override
                     public void onError(Throwable e) {
-//                        Log.d(LOG_TAG,e.getMessage());
                         getMvpView().showProgressbar(false);
-                        getMvpView().showErrorSnackBar();
+                        
getMvpView().showSnackBar(R.string.failed_to_fetch_announcement);
                     }
 
                     @Override
                     public void onNext(Announcements announcement) {
-                        getMvpView().showAllAnouncement(announcement);
-                        Log.d(LOG_TAG, 
announcement.getAnnouncement().get(1).getResource());
+                        if (announcement.getAnnouncement() != null) {
+                            getMvpView().showAllAnnouncement(announcement);
+                        } else {
+                            
getMvpView().showSnackBar(R.string.no_more_announcement_available);
+                            getMvpView().removeLoadMoreProgressBar();
+                        }
                     }
                 }));
     }
@@ -96,7 +100,7 @@ public class AnnouncementPresenter extends 
BasePresenter<AnnouncementMvpView> {
                     public void onError(Throwable e) {
                         Log.d(LOG_TAG, e.getMessage());
                         getMvpView().showWaitProgress(false);
-                        getMvpView().showErrorSnackBar();
+                        
getMvpView().showSnackBar(R.string.failed_to_fetch_announcement);
                     }
 
                     @Override

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/725a5e2c/app/src/main/res/values/strings.xml
----------------------------------------------------------------------
diff --git a/app/src/main/res/values/strings.xml 
b/app/src/main/res/values/strings.xml
index 14f4948..95fe89c 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -33,6 +33,10 @@ limitations under the License.
     <string name="loginpassword">Password</string>
     <string name="bLogin">Login</string>
     <string name="title_activity_dashboard_main">Dashboard</string>
+    <string name="no_internet_connection">No Internet Connection</string>
+    <string name="no_more_announcement_available">No More Announcement 
Available</string>
+    <string name="failed_to_fetch_announcement">Failed to fetch 
announcement</string>
+    <string name="ok">OK</string>
 
     <string name="title_favorite">Favorites</string>
     <string name="title_explore">Workflows</string>

Reply via email to