66import android .view .Menu ;
77import android .view .View ;
88import android .widget .AdapterView ;
9- import android .widget .ArrayAdapter ;
109import android .widget .ListView ;
1110import android .widget .Toast ;
1211
1312import java .io .BufferedReader ;
1413import java .io .IOException ;
1514import java .io .InputStream ;
1615import java .io .InputStreamReader ;
16+ import java .util .HashMap ;
17+ import java .util .Iterator ;
1718import java .util .LinkedList ;
1819import java .util .List ;
20+ import java .util .Map ;
21+
22+ import io .github .chiver .adapter .LicenseAdapter ;
1923
2024public class OSSActivity extends BaseActivity {
2125
22- private final List <String > items = new LinkedList <>();
23- private final List <String > links = new LinkedList <>();
26+ private final Map <String , List <String >> linksToItems = new HashMap <>();
2427
2528 public OSSActivity () {
2629 super (false );
@@ -32,6 +35,9 @@ protected void _onCreate(Bundle savedInstanceState) {
3235 getSupportActionBar ().setTitle (R .string .oss_licenses );
3336 ListView lvLicenses = findViewById (R .id .lv_licenses );
3437
38+ final List <String > links = new LinkedList <>();
39+ final List <String > items = new LinkedList <>();
40+
3541 try (InputStream is = getResources ().openRawResource (R .raw .third_party_license_metadata );
3642 InputStreamReader isr = new InputStreamReader (is );
3743 BufferedReader reader = new BufferedReader (isr )) {
@@ -52,8 +58,15 @@ protected void _onCreate(Bundle savedInstanceState) {
5258 onLoadingError ();
5359 }
5460
55- ArrayAdapter <String > adapter = new ArrayAdapter <>(this ,
56- android .R .layout .simple_list_item_1 , android .R .id .text1 , items );
61+ for (Iterator <String > itemsIterator = items .iterator (), linksIterator = links .iterator (); itemsIterator .hasNext () && linksIterator .hasNext (); ) {
62+ String item = itemsIterator .next ();
63+ String link = linksIterator .next ();
64+
65+ List <String > itemsList = linksToItems .computeIfAbsent (link , k -> new LinkedList <>());
66+ itemsList .add (item );
67+ }
68+
69+ LicenseAdapter adapter = new LicenseAdapter (this , linksToItems );
5770
5871 lvLicenses .setAdapter (adapter );
5972
@@ -62,13 +75,12 @@ protected void _onCreate(Bundle savedInstanceState) {
6275
6376 private void onLoadingError () {
6477 Toast .makeText (this , R .string .loadingError , Toast .LENGTH_SHORT ).show ();
65- items .clear ();
66- links .clear ();
78+ linksToItems .clear ();
6779 }
6880
6981 @ SuppressWarnings ("unused" )
7082 private void onItemClick (AdapterView <?> adapterView , View view , int position , long id ) {
71- String link = links . get ( position );
83+ String link = adapterView . getAdapter (). getItem ( position ). toString ( );
7284 startActivity (new Intent (Intent .ACTION_VIEW , Uri .parse (link )));
7385 }
7486
0 commit comments