Update dictionary list on download or remove

Julien LepillerSat Oct 05 14:48:35+0200 2019

f80ec62

Update dictionary list on download or remove

app/src/main/java/eu/lepiller/nani/DictionaryActivity.java

1515
import eu.lepiller.nani.dictionary.Dictionary;
1616
1717
public class DictionaryActivity extends AppCompatActivity {
18+
    static final int DICO_REQUEST = 1;
19+
    DictionariesAdapter adapter;
1820
1921
    @Override
2022
    protected void onCreate(Bundle savedInstanceState) {

2426
        toolbar.setTitle(R.string.title_activity_dictionary);
2527
        setSupportActionBar(toolbar);
2628
27-
        ListView list_view = findViewById(R.id.dictionary_view);
29+
        final ListView list_view = findViewById(R.id.dictionary_view);
2830
        final ArrayList<Dictionary> dictionaries = DictionaryFactory.getDictionnaries(getApplicationContext());
29-
        list_view.setAdapter(new DictionariesAdapter(getApplicationContext(), dictionaries));
31+
        adapter = new DictionariesAdapter(getApplicationContext(), dictionaries);
32+
        list_view.setAdapter(adapter);
3033
3134
        list_view.setOnItemClickListener(new AdapterView.OnItemClickListener() {
3235
            @Override
3336
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
3437
                Intent intent = new Intent(DictionaryActivity.this, DictionaryDownloadActivity.class);
3538
                intent.putExtra("dico", position);
36-
                startActivity(intent);
39+
                startActivityForResult(intent, DICO_REQUEST);
3740
            }
3841
        });
3942
    }
4043
44+
    @Override
45+
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
46+
        if(requestCode == DICO_REQUEST) {
47+
            adapter.notifyDataSetChanged();
48+
        }
49+
    }
50+
4151
}

app/src/main/java/eu/lepiller/nani/DictionaryDownloadActivity.java

2323
import java.net.URL;
2424
import java.util.Map;
2525
26+
import eu.lepiller.nani.dictionary.DictionariesAdapter;
2627
import eu.lepiller.nani.dictionary.Dictionary;
2728
import eu.lepiller.nani.dictionary.DictionaryFactory;
2829

3940
        int position = getIntent().getExtras().getInt("dico");
4041
4142
        final Dictionary d = DictionaryFactory.get(position);
43+
        setResult(DictionaryActivity.DICO_REQUEST);
4244
        updateLayout(d);
4345
    }
4446