Exemplo n.º 1
0
  private void updateHeaders(final List<Repository> repos) {
    HeaderFooterListAdapter<?> rootAdapter = getListAdapter();
    if (rootAdapter == null) return;

    DefaultRepositoryListAdapter adapter =
        (DefaultRepositoryListAdapter) rootAdapter.getWrappedAdapter();
    adapter.clearHeaders();

    char start = 'a';
    Repository previous = null;
    for (int i = 0; i < repos.size(); i++) {
      Repository repository = repos.get(i);

      if (recentRepos.contains(repository.getId())) {
        previous = repository;
        continue;
      }

      char repoStart = Character.toLowerCase(repository.getName().charAt(0));
      if (repoStart < start) {
        previous = repository;
        continue;
      }

      adapter.registerHeader(repository, Character.toString(repoStart).toUpperCase(US));
      if (previous != null) adapter.registerNoSeparator(previous);
      start = repoStart;
      if (start == 'z') break;
      start++;
      previous = repository;
    }

    if (!repos.isEmpty()) {
      Repository first = repos.get(0);
      if (recentRepos.contains(first))
        adapter.registerHeader(first, getString(string.recently_viewed));
    }
  }
Exemplo n.º 2
0
  @Override
  public void onOrganizationSelected(final User organization) {
    User previousOrg = org.get();
    int previousOrgId = previousOrg != null ? previousOrg.getId() : -1;
    org.set(organization);

    if (recentRepos != null) recentRepos.saveAsync();

    // Only hard refresh if view already created and org is changing
    if (previousOrgId != organization.getId()) {
      Activity activity = getActivity();
      if (activity != null) recentRepos = new RecentRepositories(activity, organization);

      refreshWithProgress();
    }
  }
Exemplo n.º 3
0
  @Override
  public void onStop() {
    super.onStop();

    if (recentRepos != null) recentRepos.saveAsync();
  }
Exemplo n.º 4
0
 @Override
 public void onListItemClick(ListView list, View v, int position, long id) {
   Repository repo = (Repository) list.getItemAtPosition(position);
   if (recentRepos != null) recentRepos.add(repo);
   startActivityForResult(RepositoryViewActivity.createIntent(repo), REPOSITORY_VIEW);
 }