Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.dss.invitup.vc.occasionPage.forum;
- import android.content.Intent;
- import android.os.Bundle;
- import android.support.v4.app.Fragment;
- import android.support.v7.widget.LinearLayoutManager;
- import android.support.v7.widget.RecyclerView;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.FrameLayout;
- import android.widget.ImageView;
- import com.dss.invitup.MainActivity;
- import com.dss.invitup.R;
- import com.dss.invitup.adapters.ForumAdapter;
- import com.dss.invitup.events.GetDiscussionRoomEntriesFinishedEvent;
- import com.dss.invitup.events.MainActivityHideLoadingEvent;
- import com.dss.invitup.events.MainActivityShowLoadingEvent;
- import com.dss.invitup.models.serverResponses.OccasionDiscussionRoomEntriesResponse;
- import com.dss.invitup.singleton.AppController;
- import com.dss.invitup.singleton.InterfaceManager;
- import com.dss.invitup.singleton.ServerManager;
- import com.dss.invitup.singleton.SettingsManager;
- import com.dss.invitup.view.RobotoRegularTextView;
- import de.greenrobot.event.EventBus;
- import in.srain.cube.views.ptr.PtrClassicFrameLayout;
- import in.srain.cube.views.ptr.PtrFrameLayout;
- import in.srain.cube.views.ptr.PtrUIHandler;
- import in.srain.cube.views.ptr.indicator.PtrIndicator;
- import io.realm.Realm;
- /**
- * Copyright © 2016 Dihardja Software Solutions. All rights reserved.
- */
- public class ForumFragment extends Fragment{
- PtrClassicFrameLayout ptrClassicFrameLayout;
- RecyclerView recyclerView;
- ImageView addNewForumButtonImageView;
- ForumAdapter forumAdapter;
- OccasionDiscussionRoomEntriesResponse occasionDiscussionRoomEntriesResponse;
- LinearLayoutManager linearLayoutManager;
- FrameLayout rootFrameLayout;
- String currentOccasionId = "";
- Realm realm;
- RobotoRegularTextView emptyTextView;
- boolean isHasLocalData = false;
- MainActivity mainActivity;
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
- View view = inflater.inflate(R.layout.fragment_forum, container, false);
- if(!EventBus.getDefault().isRegistered(this)){
- EventBus.getDefault().register(this);
- }
- ptrClassicFrameLayout = (PtrClassicFrameLayout) view.findViewById(R.id.fragment_forum_ptrClassicFrameLayout);
- addNewForumButtonImageView = (ImageView) view.findViewById(R.id.fragment_forum_addNewForumButton);
- recyclerView = (RecyclerView) view.findViewById(R.id.fragment_forum_recyclerView);
- rootFrameLayout = (FrameLayout)view.findViewById(R.id.fragment_forum_rootFrameLayout);
- emptyTextView = (RobotoRegularTextView) view.findViewById(R.id.fragment_forum_emptyTextView);
- realm = AppController.getInstance().getRealm();
- forumAdapter = new ForumAdapter(getActivity());
- linearLayoutManager = new LinearLayoutManager(getActivity());
- mainActivity = (MainActivity) getActivity();
- return view;
- }
- @Override
- public void onViewCreated(View view, Bundle savedInstanceState) {
- super.onViewCreated(view, savedInstanceState);
- mainActivity.position = 3;
- recyclerView.setAdapter(forumAdapter);
- recyclerView.setHasFixedSize(true);
- linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
- recyclerView.setLayoutManager(linearLayoutManager);
- if(SettingsManager.getInstance().getCurrentUserRole()== SettingsManager.UserRole.INVITED){
- addNewForumButtonImageView.setVisibility(View.GONE);
- }else{
- addNewForumButtonImageView.setVisibility(View.VISIBLE);
- }
- recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
- @Override
- public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
- super.onScrollStateChanged(recyclerView, newState);
- }
- @Override
- public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
- super.onScrolled(recyclerView, dx, dy);
- ptrClassicFrameLayout.setEnabled(false);
- if(linearLayoutManager.findFirstVisibleItemPosition()==0) {
- View v = linearLayoutManager.getChildAt(linearLayoutManager.findFirstVisibleItemPosition());
- int offsetTop = v.getTop();
- if (offsetTop == 0) {
- ptrClassicFrameLayout.setEnabled(true);
- }
- }
- }
- });
- ptrClassicFrameLayout.addPtrUIHandler(new PtrUIHandler() {
- @Override
- public void onUIReset(PtrFrameLayout frame) {
- }
- @Override
- public void onUIRefreshPrepare(PtrFrameLayout frame) {
- }
- @Override
- public void onUIRefreshBegin(PtrFrameLayout frame) {
- forumAdapter.clearAdapter();
- EventBus.getDefault().post(new MainActivityShowLoadingEvent());
- ServerManager.getInstance().getAllOccasionDiscussionRoom(currentOccasionId);
- }
- @Override
- public void onUIRefreshComplete(PtrFrameLayout frame) {
- }
- @Override
- public void onUIPositionChange(PtrFrameLayout frame, boolean isUnderTouch, byte status, PtrIndicator ptrIndicator) {
- }
- });
- addNewForumButtonImageView.setOnClickListener(addNewForumListener);
- }
- @Override
- public void onResume() {
- super.onResume();
- if(mainActivity.isFromPushNotif){
- currentOccasionId = mainActivity.currentOccasionId;
- }else{
- if(SettingsManager.getInstance().getCurrentOccasion()!=null){
- currentOccasionId = SettingsManager.getInstance().getCurrentOccasion().getId();
- }
- }
- reloadLocalData();
- }
- @Override
- public void onDestroy(){
- super.onDestroy();
- if(EventBus.getDefault().isRegistered(this)) {
- EventBus.getDefault().unregister(this);
- }
- }
- ImageView.OnClickListener addNewForumListener = new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Intent i = new Intent(getActivity(),AddNewForumActivity.class);
- getActivity().startActivity(i);
- }
- };
- public void reloadLocalData(){
- occasionDiscussionRoomEntriesResponse = realm.where(OccasionDiscussionRoomEntriesResponse.class)
- .equalTo("id",currentOccasionId).findFirst();
- if(occasionDiscussionRoomEntriesResponse!=null){
- if(occasionDiscussionRoomEntriesResponse.getOccasionDiscussionRoomEntry().size()!=0){
- isHasLocalData = true;
- emptyTextView.setVisibility(View.GONE);
- forumAdapter.updateAdapter(occasionDiscussionRoomEntriesResponse.getOccasionDiscussionRoomEntry());
- }else{
- isHasLocalData = false;
- emptyTextView.setVisibility(View.VISIBLE);
- }
- }else{
- isHasLocalData = false;
- emptyTextView.setVisibility(View.VISIBLE);
- }
- EventBus.getDefault().post(new MainActivityShowLoadingEvent());
- ServerManager.getInstance().getAllOccasionDiscussionRoom(currentOccasionId);
- }
- public void onEvent(GetDiscussionRoomEntriesFinishedEvent event) {
- EventBus.getDefault().post(new MainActivityHideLoadingEvent());
- ptrClassicFrameLayout.refreshComplete();
- if(event.occasionDiscussionRoomEntriesResponse!=null){
- occasionDiscussionRoomEntriesResponse = event.occasionDiscussionRoomEntriesResponse;
- if (occasionDiscussionRoomEntriesResponse.getOccasionDiscussionRoomEntry().size()!=0){
- emptyTextView.setVisibility(View.GONE);
- forumAdapter.updateAdapter(occasionDiscussionRoomEntriesResponse.getOccasionDiscussionRoomEntry());
- }else{
- if(!isHasLocalData){
- emptyTextView.setVisibility(View.VISIBLE);
- }
- }
- }else{
- if(!isHasLocalData){
- emptyTextView.setVisibility(View.VISIBLE);
- }
- InterfaceManager.sharedInstance().showErrorMessage(getActivity(), event.errorMessage);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement