Android Open Source - Cervantes Cervantes Fragment Controller






From Project

Back to project page Cervantes.

License

The source code is released under:

Apache License

If you think the Android project Cervantes listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * Copyright (C) 2014 Alejandro Rodriguez Salamanca.
 */*from ww w .  j a  v  a  2  s.c om*/
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package me.alexrs.cervantes.ui.controller.fragment;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.path.android.jobqueue.JobManager;
import de.greenrobot.event.EventBus;
import javax.inject.Inject;
import me.alexrs.cervantes.R;
import me.alexrs.cervantes.core.data.Nebrija;
import me.alexrs.cervantes.core.events.SearchEvent;
import me.alexrs.cervantes.core.events.SearchFailed;
import me.alexrs.cervantes.core.events.SearchPerformed;
import me.alexrs.cervantes.core.jobs.GetWordJob;
import me.alexrs.cervantes.core.utils.NebrijaStatus;
import me.alexrs.cervantes.core.utils.NebrijaType;
import me.alexrs.cervantes.ui.presenter.CervantesFragmentPresenter;
import me.alexrs.cervantes.ui.presenter.EmptyViewPresenter;

/**
 * @author Alejandro Rodriguez <https://github.com/Alexrs95/Cervantes>
 */
public class CervantesFragmentController extends FragmentController {

  @Inject JobManager jobManager;
  @Inject CervantesFragmentPresenter mainPresenter;
  @Inject EmptyViewPresenter emptyViewPresenter;

  public CervantesFragmentController(CervantesFragmentPresenter mainPresenter,
      EmptyViewPresenter emptyViewPresenter, JobManager jobManager) {
    this.mainPresenter = mainPresenter;
    this.emptyViewPresenter = emptyViewPresenter;
    this.jobManager = jobManager;
  }

  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle id) {
    View rootView = inflater.inflate(R.layout.f_main, container, false);
    mainPresenter.onCreateView(rootView);
    emptyViewPresenter.onCreateView(rootView);
    emptyViewPresenter.setErrorText(rootView.getContext().getString(R.string.error_message));
    emptyViewPresenter.showView(EmptyViewPresenter.HIDE);
    return rootView;
  }

  @Override public void onStart() {
    super.onStart();
    EventBus.getDefault().register(this);
  }

  @Override public void onPause() {
    super.onPause();
    EventBus.getDefault().unregister(this);
  }

  /**
   * This method is called when the response is received
   */
  public void onEventMainThread(Nebrija nebrija) {
    if (nebrija.getStatus().equals(NebrijaStatus.SUCCESS)) {
      emptyViewPresenter.showView(EmptyViewPresenter.HIDE);
      if (nebrija.getType().equals(NebrijaType.SINGLE)) {
        mainPresenter.setWords(nebrija.getWords());
      } else {
        mainPresenter.setWordsMultiple(nebrija.getWords());
      }
    } else {
      emptyViewPresenter.showView(EmptyViewPresenter.SHOW_ERROR);
    }
  }

  /**
   * This method is called when a search is done
   */
  public void onEvent(SearchEvent searchEvent) {
    mainPresenter.removeItems();
    jobManager.addJobInBackground(new GetWordJob(searchEvent.getSearch()));
  }

  public void onEventMainThread(SearchPerformed searchPerformed) {
    emptyViewPresenter.showView(EmptyViewPresenter.SHOW_PROGRESS);
  }

  public void onEventMainThread(SearchFailed searchFailed) {
    emptyViewPresenter.showView(EmptyViewPresenter.SHOW_ERROR);
  }
}




Java Source Code List

me.alexrs.cervantes.ApplicationTest.java
me.alexrs.cervantes.core.application.CervantesApplication.java
me.alexrs.cervantes.core.data.Header.java
me.alexrs.cervantes.core.data.Meaning.java
me.alexrs.cervantes.core.data.MultipleResponseWord.java
me.alexrs.cervantes.core.data.Nebrija.java
me.alexrs.cervantes.core.data.Word.java
me.alexrs.cervantes.core.events.SearchEvent.java
me.alexrs.cervantes.core.events.SearchFailed.java
me.alexrs.cervantes.core.events.SearchPerformed.java
me.alexrs.cervantes.core.jobs.GetDailyWordJob.java
me.alexrs.cervantes.core.jobs.GetRandomWordJob.java
me.alexrs.cervantes.core.jobs.GetWordJob.java
me.alexrs.cervantes.core.module.CervantesModule.java
me.alexrs.cervantes.core.network.api.NebrijaApi.java
me.alexrs.cervantes.core.network.client.RestClient.java
me.alexrs.cervantes.core.utils.NebrijaStatus.java
me.alexrs.cervantes.core.utils.NebrijaType.java
me.alexrs.cervantes.core.utils.Truss.java
me.alexrs.cervantes.ui.activity.BaseActivity.java
me.alexrs.cervantes.ui.activity.CervantesActivity.java
me.alexrs.cervantes.ui.components.CapitalizedTextView.java
me.alexrs.cervantes.ui.controller.activity.AbsActivityController.java
me.alexrs.cervantes.ui.controller.activity.ActivityController.java
me.alexrs.cervantes.ui.controller.activity.CervantesActivityController.java
me.alexrs.cervantes.ui.controller.fragment.AbsFragmentController.java
me.alexrs.cervantes.ui.controller.fragment.CervantesFragmentController.java
me.alexrs.cervantes.ui.controller.fragment.FragmentController.java
me.alexrs.cervantes.ui.fragment.BaseFragment.java
me.alexrs.cervantes.ui.fragment.CervantesFragment.java
me.alexrs.cervantes.ui.presenter.AbsPresenter.java
me.alexrs.cervantes.ui.presenter.BasePresenter.java
me.alexrs.cervantes.ui.presenter.CervantesFragmentPresenter.java
me.alexrs.cervantes.ui.presenter.EmptyViewPresenter.java
me.alexrs.cervantes.ui.recyclerview.factory.Factory.java
me.alexrs.cervantes.ui.recyclerview.renderers.ItemMeaning.java
me.alexrs.cervantes.ui.recyclerview.renderers.ItemMultipleWords.java
me.alexrs.cervantes.ui.recyclerview.renderers.ItemSearchHeader.java
me.alexrs.cervantes.ui.recyclerview.renderers.ItemWordHeader.java
me.alexrs.cervantes.ui.recyclerview.viewholder.MeaningViewHolder.java
me.alexrs.cervantes.ui.recyclerview.viewholder.MultipleWordsViewHolder.java
me.alexrs.cervantes.ui.recyclerview.viewholder.SearchHeaderViewHolder.java
me.alexrs.cervantes.ui.recyclerview.viewholder.WordHeadersViewHolder.java
me.alexrs.recyclerviewrenderers.adapter.RendererAdapter.java
me.alexrs.recyclerviewrenderers.builder.RendererBuilder.java
me.alexrs.recyclerviewrenderers.interfaces.Builder.java
me.alexrs.recyclerviewrenderers.interfaces.Renderable.java
me.alexrs.recyclerviewrenderers.interfaces.RendererFactory.java
me.alexrs.recyclerviewrenderers.renderer.Renderer.java
me.alexrs.recyclerviewrenderers.viewholder.RenderViewHolder.java