Buggy code:
private DownloadIndexActivity . DownloadEntry createDownloadEntry ( IndexItem item ) { } protected void downloadFilesCheckFreeVersion ( ) { } protected void downloadFilesPreCheckSpace ( ) { } @ Override protected void onDestroy ( ) { } private String convertServerFileNameToLocal ( String name ) { } private class DownloadIndexesAsyncTask extends AsyncTask < String , Object , String > implements DownloadFileShowWarning { private IProgress progress ; private OsmandPreference < Integer > downloads ; public DownloadIndexesAsyncTask ( ProgressDialogImplementation progressDialogImplementation ) { } @ Override protected void onProgressUpdate ( Object ... values ) { } @ Override protected void onPreExecute ( ) { } @ Override protected void onPostExecute ( String result ) { } @ Override protected String doInBackground ( String ... filesToDownload ) { } @ Override public void showWarning ( String warning ) { } } private static class DownloadEntry { public File fileToSave ; public File fileToUnzip ; public boolean unzip ; public Long dateModified ; public double sizeMB ; public String baseName ; public int parts ; } private static class IndexItemCategory implements Comparable < DownloadIndexActivity . IndexItemCategory > { public final String name ; public final List < IndexItem > items = new ArrayList < IndexItem > ( ) ; private final int order ; public IndexItemCategory ( String name , int order ) { } @ Override public int compareTo ( DownloadIndexActivity . IndexItemCategory another ) { } } public List < DownloadIndexActivity . IndexItemCategory > categorizeIndexItems ( Collection < IndexItem > indexItems ) { final Map < String , DownloadIndexActivity . IndexItemCategory > cats = new TreeMap < String , DownloadIndexActivity . IndexItemCategory > ( ) ; for ( IndexItem i : indexItems ) { int nameId = string . index_name_other ; int order = 12 ; String lc = i . getFileName ( ) . toLowerCase ( ) ; if ( lc . endsWith ( ".voice.zip" ) ) { nameId = string . index_name_voice ; order = 1 ; } else if ( lc . contains ( ".ttsvoice.zip" ) ) { nameId = string . index_name_tts_voice ; order = 2 ; } else if ( lc . startsWith ( "us" ) ) { nameId = string . index_name_us ; order = 31 ; } else if ( lc . contains ( "_northamerica_" ) ) { nameId = string . index_name_north_america ; order = 30 ; } else if ( ( lc . contains ( "_centralamerica_" ) ) || ( lc . contains ( "central-america" ) ) ) { nameId = string . index_name_central_america ; order = 40 ; } else if ( ( lc . contains ( "_southamerica_" ) ) || ( lc . contains ( "south-america" ) ) ) { nameId = string . index_name_south_america ; order = 45 ; } else if ( lc . startsWith ( "france_" ) ) { nameId = string . index_name_france ; order = 17 ; } else if ( lc . startsWith ( "germany_" ) ) { nameId = string . index_name_germany ; order = 16 ; } else if ( lc . contains ( "_europe_" ) ) { nameId = string . index_name_europe ; order = 15 ; } else if ( lc . startsWith ( "russia_" ) ) { nameId = string . index_name_russia ; order = 18 ; } else if ( lc . contains ( "africa" ) ) { nameId = string . index_name_africa ; order = 80 ; } else if ( lc . contains ( "_asia_" ) ) { nameId = string . index_name_asia ; order = 50 ; } else <START_BUG> if ( lc . contains ( "_oceania_" ) ) { <END_BUG> nameId = string . index_name_oceania ; order = 70 ; } else if ( lc . contains ( "_wiki_" ) ) { nameId = string . index_name_wiki ; order = 10 ; } String name = getString ( nameId ) ; if ( ! ( cats . containsKey ( name ) ) ) { cats . put ( name , new DownloadIndexActivity . IndexItemCategory ( name , order ) ) ; } cats . get ( name ) . items . add ( i ) ; } ArrayList < DownloadIndexActivity . IndexItemCategory > r = new ArrayList < DownloadIndexActivity . IndexItemCategory > ( cats . values ( ) ) ; Collections . sort ( r ) ; return r ; } protected class DownloadIndexAdapter extends BaseExpandableListAdapter implements Filterable { private DownloadIndexActivity . DownloadIndexAdapter . DownloadIndexFilter myFilter ; private final Map < String , IndexItem > indexFiles ; private final List < DownloadIndexActivity . IndexItemCategory > list = new ArrayList < DownloadIndexActivity . IndexItemCategory > ( ) ; public DownloadIndexAdapter ( Map < String , IndexItem > indexFiles ) { } public Map < String , IndexItem > getIndexFiles ( ) { } public void setIndexFiles ( List < IndexItem > indexFiles ) { } @ Override public Filter getFilter ( ) { } private final class DownloadIndexFilter extends Filter { @ Override protected FilterResults performFiltering ( CharSequence constraint ) { } @ SuppressWarnings ( "unchecked" ) @ Override protected void publishResults ( CharSequence constraint , FilterResults results ) { } } @ Override public int getGroupCount ( ) { } @ Override public int getChildrenCount ( int groupPosition ) { } @ Override public DownloadIndexActivity . IndexItemCategory getGroup ( int groupPosition ) { } @ Override public IndexItem getChild ( int groupPosition , int childPosition ) { } @ Override public long getGroupId ( int groupPosition ) { } @ Override public long getChildId ( int groupPosition , int childPosition ) { } @ Override public boolean hasStableIds ( ) { } @ Override public View getGroupView ( int groupPosition , boolean isExpanded , View convertView , ViewGroup parent ) { } @ Override public View getChildView ( final int groupPosition , final int childPosition , boolean isLastChild , View convertView , ViewGroup parent ) { }

Fix:
if ( ( lc . contains ( "_oceania_" ) ) || ( lc . contains ( "_australia" ) ) ) {