Skip to content

Commit dfd252b

Browse files
committed
Move header updating to separate method
1 parent dd029eb commit dfd252b

1 file changed

Lines changed: 45 additions & 43 deletions

File tree

app/src/main/java/com/github/mobile/ui/repo/RepositoryListFragment.java

Lines changed: 45 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,50 @@ public void onStop() {
122122
recentRepos.saveAsync();
123123
}
124124

125+
private void updateHeaders(final List<Repository> repos) {
126+
HeaderFooterListAdapter<?> rootAdapter = getListAdapter();
127+
if (rootAdapter == null)
128+
return;
129+
130+
DefaultRepositoryListAdapter adapter = (DefaultRepositoryListAdapter) rootAdapter
131+
.getWrappedAdapter();
132+
adapter.clearHeaders();
133+
134+
char start = 'a';
135+
Repository previous = null;
136+
for (int i = 0; i < repos.size(); i++) {
137+
Repository repository = repos.get(i);
138+
139+
if (recentRepos.contains(repository.getId())) {
140+
previous = repository;
141+
continue;
142+
}
143+
144+
char repoStart = Character.toLowerCase(repository.getName().charAt(
145+
0));
146+
if (repoStart < start) {
147+
previous = repository;
148+
continue;
149+
}
150+
151+
adapter.registerHeader(repository, Character.toString(repoStart)
152+
.toUpperCase(US));
153+
if (previous != null)
154+
adapter.registerNoSeparator(previous);
155+
start = repoStart;
156+
if (start == 'z')
157+
break;
158+
start++;
159+
previous = repository;
160+
}
161+
162+
if (!repos.isEmpty()) {
163+
Repository first = repos.get(0);
164+
if (recentRepos.contains(first))
165+
adapter.registerHeader(first, getString(string.recently_viewed));
166+
}
167+
}
168+
125169
@Override
126170
public Loader<List<Repository>> onCreateLoader(int id, final Bundle args) {
127171
return new ThrowableLoader<List<Repository>>(getActivity(), items) {
@@ -135,49 +179,7 @@ public List<Repository> loadData() throws Exception {
135179
List<Repository> repos = cache.getRepos(org,
136180
isForceRefresh(args));
137181
Collections.sort(repos, recentRepos);
138-
139-
HeaderFooterListAdapter<?> rootAdapter = getListAdapter();
140-
if (rootAdapter != null) {
141-
DefaultRepositoryListAdapter adapter = (DefaultRepositoryListAdapter) rootAdapter
142-
.getWrappedAdapter();
143-
adapter.clearHeaders();
144-
145-
char start = 'a';
146-
Repository previous = null;
147-
for (int i = 0; i < repos.size(); i++) {
148-
Repository repository = repos.get(i);
149-
150-
if (recentRepos.contains(repository.getId())) {
151-
previous = repository;
152-
continue;
153-
}
154-
155-
char repoStart = Character.toLowerCase(repository
156-
.getName().charAt(0));
157-
if (repoStart < start) {
158-
previous = repository;
159-
continue;
160-
}
161-
162-
adapter.registerHeader(repository,
163-
Character.toString(repoStart).toUpperCase(US));
164-
if (previous != null)
165-
adapter.registerNoSeparator(previous);
166-
start = repoStart;
167-
if (start == 'z')
168-
break;
169-
start++;
170-
previous = repository;
171-
}
172-
173-
if (!repos.isEmpty()) {
174-
Repository first = repos.get(0);
175-
if (recentRepos.contains(first))
176-
adapter.registerHeader(first,
177-
getString(string.recently_viewed));
178-
}
179-
}
180-
182+
updateHeaders(repos);
181183
return repos;
182184
}
183185
};

0 commit comments

Comments
 (0)