1
0
Fork 0
mirror of https://github.com/geometer/FBReaderJ.git synced 2025-10-05 02:39:23 +02:00

more flexible MenuActivity: actions could be added in init() method

This commit is contained in:
Nikolay Pultsin 2011-12-21 23:47:36 +00:00
parent 64b3684ec3
commit 63593bc0d8

View file

@ -45,11 +45,9 @@ abstract class MenuActivity extends ListActivity implements AdapterView.OnItemCl
try { try {
startActivityForResult(new Intent(getAction(), getIntent().getData()), 0); startActivityForResult(new Intent(getAction(), getIntent().getData()), 0);
} catch (ActivityNotFoundException e) { } catch (ActivityNotFoundException e) {
if (myInfos.size() == 1) { if (finishInitialization()) {
runItem(myInfos.get(0)); return;
} }
finish();
return;
} }
setListAdapter(new ActionListAdapter()); setListAdapter(new ActionListAdapter());
@ -61,6 +59,20 @@ abstract class MenuActivity extends ListActivity implements AdapterView.OnItemCl
finish(); finish();
} }
private boolean finishInitialization() {
switch (myInfos.size()) {
default:
return false;
case 0:
finish();
return true;
case 1:
runItem(myInfos.get(0));
finish();
return true;
}
}
@Override @Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) { protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (intent != null) { if (intent != null) {
@ -71,12 +83,7 @@ abstract class MenuActivity extends ListActivity implements AdapterView.OnItemCl
if (actions != null) { if (actions != null) {
myInfos.addAll(actions); myInfos.addAll(actions);
} }
if (myInfos.size() == 0) { if (finishInitialization()) {
finish();
return;
} else if (myInfos.size() == 1) {
runItem(myInfos.get(0));
finish();
return; return;
} }
Collections.sort(myInfos); Collections.sort(myInfos);