diff options
author | Scott Mertz <scott@cyngn.com> | 2016-02-17 08:56:03 -0800 |
---|---|---|
committer | Gerrit Code Review <gerrit@cyanogenmod.org> | 2016-02-19 14:08:13 -0800 |
commit | 493a90779c840cf9e72029b71f1cb26957fa02fa (patch) | |
tree | 3dc46b06d44ca90fce06e50c09c4356604f3da9b | |
parent | ebf074825de5a2bfcef3bcbf626c92b9f0020d1c (diff) | |
download | android_packages_apps_SoundRecorder-493a90779c840cf9e72029b71f1cb26957fa02fa.tar.gz android_packages_apps_SoundRecorder-493a90779c840cf9e72029b71f1cb26957fa02fa.tar.bz2 android_packages_apps_SoundRecorder-493a90779c840cf9e72029b71f1cb26957fa02fa.zip |
SoundRecorder: fix menu behavior on devices with hardware menu button
If the device has hardware a hardware menu button, onCreateOptionsMenu
is not called. Move the logic from onCreateOptionsMenu to
onPrepareOptionsMenu so it is always run.
Fixes the crash when a user selects "Storage location" on devices with
a hardware menu button and no sdcard. The option was not removed because
of the reason above.
CYNGNOS-2071
Change-Id: I80e1339220388ec9d5fb206790fa65cbc8d7e216
-rw-r--r-- | src/com/android/soundrecorder/SoundRecorder.java | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/com/android/soundrecorder/SoundRecorder.java b/src/com/android/soundrecorder/SoundRecorder.java index d3c4c80..126a1a5 100644 --- a/src/com/android/soundrecorder/SoundRecorder.java +++ b/src/com/android/soundrecorder/SoundRecorder.java @@ -1164,9 +1164,13 @@ public class SoundRecorder extends Activity public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.main_menu, menu); - if (!mRemainingTimeCalculator.hasExternalStorage()) { - menu.removeItem(R.id.menu_item_storage); - } + return true; + } + + @Override + public boolean onPrepareOptionsMenu(Menu menu) { + super.onPrepareOptionsMenu(menu); + Log.i(TAG, "onPrepareOptionsMenu"); // Remove view recordings if there isn't an activity that can handle it Uri startDir = Uri.fromFile(Environment.getExternalStorageDirectory()); @@ -1177,16 +1181,13 @@ public class SoundRecorder extends Activity if (info.size() == 0) { menu.removeItem(R.id.menu_item_view_recordings); } - return super.onCreateOptionsMenu(menu); - } - @Override - public boolean onPrepareOptionsMenu(Menu menu) { - super.onPrepareOptionsMenu(menu); menu.findItem(R.id.menu_item_keyboard).setEnabled(mRecorder.state() == Recorder.IDLE_STATE); menu.findItem(R.id.menu_item_filetype).setEnabled(mRecorder.state() == Recorder.IDLE_STATE); if (mRemainingTimeCalculator.hasExternalStorage()) { menu.findItem(R.id.menu_item_storage).setEnabled(mRecorder.state() == Recorder.IDLE_STATE); + } else { + menu.removeItem(R.id.menu_item_storage); } if (SystemProperties.getBoolean("debug.soundrecorder.enable", false)) { menu.findItem(R.id.menu_item_keyboard).setVisible(true); |