Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.dss.invitup.vc.occasionPage.guestbook;
- import android.content.Intent;
- import android.graphics.Point;
- import android.os.Bundle;
- import android.support.v4.app.Fragment;
- import android.support.v7.widget.LinearLayoutManager;
- import android.support.v7.widget.RecyclerView;
- import android.util.TypedValue;
- import android.view.Display;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.ImageView;
- import com.dss.invitup.MainActivity;
- import com.dss.invitup.R;
- import com.dss.invitup.adapters.GuestBookAdapter;
- import com.dss.invitup.events.GetGuestBookEntriesFinishedEvent;
- import com.dss.invitup.events.MainActivityHideLoadingEvent;
- import com.dss.invitup.events.MainActivityShowLoadingEvent;
- import com.dss.invitup.models.OccasionGuestBook;
- import com.dss.invitup.models.serverResponses.OccasionGuestBookEntriesResponse;
- 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 GuestBookFragment extends Fragment{
- RecyclerView recyclerView;
- GuestBookAdapter guestBookAdapter;
- OccasionGuestBookEntriesResponse occasionGuestBookEntriesResponse;
- ImageView guestBookAddNewButton;
- LinearLayoutManager linearLayoutManager;
- String currentOccasionId;
- Realm realm;
- RobotoRegularTextView emptyTextView;
- Boolean isHasLocalData;
- PtrClassicFrameLayout ptrClassicFrameLayout;
- int placeHolderHeight;
- MainActivity mainActivity;
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
- View view = inflater.inflate(R.layout.fragment_guest_book, container, false);
- if(!EventBus.getDefault().isRegistered(this)) {
- EventBus.getDefault().register(this);
- }
- ptrClassicFrameLayout = (PtrClassicFrameLayout) view.findViewById(R.id.fragment_guest_book_ptrClassicFrameLayout);
- recyclerView = (RecyclerView) view.findViewById(R.id.fragment_guest_book_recyclerView);
- guestBookAddNewButton = (ImageView) view.findViewById(R.id.fragment_guest_book_addNewGuestBookImageView);
- emptyTextView = (RobotoRegularTextView) view.findViewById(R.id.fragment_guest_book_emptyTextView);
- realm = AppController.getInstance().getRealm();
- guestBookAdapter = new GuestBookAdapter(getActivity(), listenerInterface);
- linearLayoutManager = new LinearLayoutManager(getActivity());
- mainActivity = (MainActivity) getActivity();
- return view;
- }
- @Override
- public void onViewCreated(View view, Bundle savedInstanceState) {
- super.onViewCreated(view, savedInstanceState);
- mainActivity.position = 4;
- Display display = getActivity().getWindowManager().getDefaultDisplay();
- Point size = new Point();
- display.getSize(size);
- placeHolderHeight = size.x - (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 8, getActivity().getResources().getDisplayMetrics());;
- recyclerView.setAdapter(guestBookAdapter);
- recyclerView.setHasFixedSize(true);
- linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
- recyclerView.setLayoutManager(linearLayoutManager);
- if(SettingsManager.getInstance().getCurrentUserRole() == SettingsManager.UserRole.GUEST){
- guestBookAddNewButton.setVisibility(View.VISIBLE);
- }else{
- guestBookAddNewButton.setVisibility(View.GONE);
- }
- 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) {
- guestBookAdapter.clearAdapter();
- EventBus.getDefault().post(new MainActivityShowLoadingEvent());
- ServerManager.getInstance().getAllOccasionGuestBook(currentOccasionId);
- }
- @Override
- public void onUIRefreshComplete(PtrFrameLayout frame) {
- }
- @Override
- public void onUIPositionChange(PtrFrameLayout frame, boolean isUnderTouch, byte status, PtrIndicator ptrIndicator) {
- }
- });
- guestBookAddNewButton.setOnClickListener(addNewGuestBookListener);
- }
- @Override
- public void onResume() {
- super.onResume();
- isHasLocalData = false;
- 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);
- }
- }
- private GuestBookAdapter.GuestBookAdapterListenerInterface listenerInterface = new GuestBookAdapter.GuestBookAdapterListenerInterface() {
- @Override
- public void onItemClicked(OccasionGuestBook occasionGuestBook) {
- SettingsManager.getInstance().setCurrentOccasionGuestBook(occasionGuestBook);
- Intent intent = new Intent(getActivity(), GuestBookDetailActivity.class);
- startActivity(intent);
- }
- };
- ImageView.OnClickListener addNewGuestBookListener = new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Intent i = new Intent(getActivity(),AddNewGuestBookActivity.class);
- getActivity().startActivity(i);
- }
- };
- public void reloadLocalData(){
- occasionGuestBookEntriesResponse = realm.where(OccasionGuestBookEntriesResponse.class)
- .equalTo("id",currentOccasionId).findFirst();
- if(occasionGuestBookEntriesResponse!=null){
- if(occasionGuestBookEntriesResponse.getOccasionGuestBookEntry().size()!=0){
- isHasLocalData = true;
- emptyTextView.setVisibility(View.GONE);
- guestBookAdapter.clearAdapter();
- guestBookAdapter.updateAdapter(occasionGuestBookEntriesResponse.getOccasionGuestBookEntry(), placeHolderHeight);
- }else{
- isHasLocalData = false;
- emptyTextView.setVisibility(View.VISIBLE);
- }
- }else{
- isHasLocalData = false;
- emptyTextView.setVisibility(View.VISIBLE);
- }
- EventBus.getDefault().post(new MainActivityShowLoadingEvent());
- ServerManager.getInstance().getAllOccasionGuestBook(currentOccasionId);
- }
- public void onEvent(GetGuestBookEntriesFinishedEvent event) {
- EventBus.getDefault().post(new MainActivityHideLoadingEvent());
- ptrClassicFrameLayout.refreshComplete();
- if(event.occasionGuestBookEntriesResponse!=null){
- guestBookAdapter.clearAdapter();
- if(event.occasionGuestBookEntriesResponse.getOccasionGuestBookEntry().size()!=0){
- recyclerView.setVisibility(View.VISIBLE);
- emptyTextView.setVisibility(View.GONE);
- occasionGuestBookEntriesResponse = event.occasionGuestBookEntriesResponse;
- guestBookAdapter.updateAdapter(occasionGuestBookEntriesResponse.getOccasionGuestBookEntry(), placeHolderHeight);
- }else{
- recyclerView.setVisibility(View.GONE);
- 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