Skip to content

Commit fa197b3

Browse files
committed
Fix crash in FileActivity up-menu & state
Was not updated on initial creation due to timing, leading to enabled state inside media chooser, which crashed when selected. Signed-off-by: Aron Heinecke <aron.heinecke@t-online.de>
1 parent 3aa91d2 commit fa197b3

File tree

1 file changed

+17
-7
lines changed
  • app/src/main/java/vocabletrainer/heinecke/aron/vocabletrainer/activity

1 file changed

+17
-7
lines changed

app/src/main/java/vocabletrainer/heinecke/aron/vocabletrainer/activity/FileActivity.java

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -176,13 +176,8 @@ protected void onCreate(Bundle savedInstanceState) {
176176
setSelectedFile(preselectedElement);
177177
adapter.setInitialSelectedElement(preselectedElement);
178178
}
179-
if(menuItemUp != null) {
180-
menuItemUp.setEnabled(filePickerViewModel.isActionUpAllowed());
181-
if(filePickerViewModel.isActionUpAllowed()) {
182-
menuItemUp.getIcon().setColorFilter(null);
183-
} else {
184-
menuItemUp.getIcon().setColorFilter(Color.GRAY, PorterDuff.Mode.SRC_IN);
185-
}
179+
if(menuItemUp != null) { // finishes before onCreateOptionsMenu
180+
updateMenuItemUp();
186181
}
187182
if(progressDialog != null && progressDialog.isAdded()){
188183
progressDialog.dismiss();
@@ -201,13 +196,28 @@ protected void onCreate(Bundle savedInstanceState) {
201196
loadStartDirectory(getSharedPreferences(PREFS_NAME,0));
202197
}
203198

199+
private void updateMenuItemUp(){
200+
menuItemUp.setEnabled(filePickerViewModel.isActionUpAllowed());
201+
if(filePickerViewModel.isActionUpAllowed()) {
202+
menuItemUp.getIcon().setColorFilter(null);
203+
} else {
204+
menuItemUp.getIcon().setColorFilter(Color.GRAY, PorterDuff.Mode.SRC_IN);
205+
}
206+
}
207+
204208
@Override
205209
public boolean onCreateOptionsMenu(Menu menu) {
206210
getMenuInflater().inflate(R.menu.file, menu);
207211
menuItemUp = menu.findItem(R.id.fMenu_Up);
208212
return true;
209213
}
210214

215+
@Override
216+
public boolean onPrepareOptionsMenu(Menu menu) {
217+
updateMenuItemUp(); // update menu
218+
return super.onPrepareOptionsMenu(menu);
219+
}
220+
211221
@Override
212222
public boolean onOptionsItemSelected(MenuItem item) {
213223
switch (item.getItemId()) {

0 commit comments

Comments
 (0)