示例#1
0
  @Override
  public void loadData(int page) {
    if (mView != null && mView instanceof RepoListFragment) {
      int type = ((RepoListFragment) mView).getType();
      final boolean isLoadMore = page > 1;
      final boolean hasData = ((RepoListFragment) mView).hasData();

      startLoadData(!hasData);

      if (type == 0) {
        // Owned Repo
        GetMyRepoUseCase useCase =
            new GetMyRepoUseCaseImpl(
                GitHubDataRepository.getInstance(),
                JobExecutor.getInstance(),
                UIThread.getInstance());

        useCase.execute(
            new GetMyRepoUseCase.Callback() {
              @Override
              public void onSuccess(List<Repository> repositories) {
                ((RepoListFragment) mView).refreshComplete();
                onLoadOk(!hasData && repositories.isEmpty());
                ((RepoListFragment) mView).render(repositories, isLoadMore);
              }

              @Override
              public void onError(Exception e) {
                ((RepoListFragment) mView).refreshComplete();
                onLoadError(!hasData);
                ((RepoListFragment) mView).showToast("" + e);
              }
            });
      } else if (type == 1) {
        // Starred Repo
        GetStarredRepoUseCase useCase =
            new GetStarredRepoUseCaseImpl(
                GitHubDataRepository.getInstance(),
                JobExecutor.getInstance(),
                UIThread.getInstance());

        useCase.execute(
            new GetStarredRepoUseCase.Callback() {
              @Override
              public void onSuccess(List<Repository> repositories) {
                ((RepoListFragment) mView).refreshComplete();
                onLoadOk(!hasData && repositories.isEmpty());
                ((RepoListFragment) mView).render(repositories, isLoadMore);
              }

              @Override
              public void onError(Exception e) {
                ((RepoListFragment) mView).refreshComplete();
                onLoadError(!hasData);
                ((RepoListFragment) mView).showToast("" + e);
              }
            });
      } else {
        // Other
        ((RepoListFragment) mView).refreshComplete();
        onLoadOk(true);
      }
    }
  }