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>
