diff options
author | Keith Mok <kmok@cyngn.com> | 2016-05-26 12:39:48 -0700 |
---|---|---|
committer | Keith Mok <kmok@cyngn.com> | 2016-07-07 10:01:24 -0700 |
commit | 77399f4212bfbb6e3d902f378acc6a8aaa9e17f5 (patch) | |
tree | 65d3f2863168f718caa8967387720d82948989bb | |
parent | d0c02a32d87bca7928db40ac472ed5b502dc2157 (diff) | |
download | android_packages_apps_SoundRecorder-77399f4212bfbb6e3d902f378acc6a8aaa9e17f5.tar.gz android_packages_apps_SoundRecorder-77399f4212bfbb6e3d902f378acc6a8aaa9e17f5.tar.bz2 android_packages_apps_SoundRecorder-77399f4212bfbb6e3d902f378acc6a8aaa9e17f5.zip |
SoundRecorder: onConfigurationChanged dismiss popupmenu
There is no way to adjust the position of the
current showing popup menu.
In onConfigurationChanged, we reload the content
view, making the popupmenu position inconsistent from
the new anchor view. Workaround to dismiss the old
popupmenu directly.
FEIJ-823, FEIJ-834
Change-Id: Ib6bb127a14e0f32c016510956f973a783c573c0b
-rw-r--r-- | src/com/android/soundrecorder/SoundRecorder.java | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/com/android/soundrecorder/SoundRecorder.java b/src/com/android/soundrecorder/SoundRecorder.java index d792a47..a3be032 100644 --- a/src/com/android/soundrecorder/SoundRecorder.java +++ b/src/com/android/soundrecorder/SoundRecorder.java @@ -329,6 +329,7 @@ public class SoundRecorder extends Activity WakeLock mWakeLock; String mRequestedType = AUDIO_ANY; Recorder mRecorder; + private PopupMenu mPopupMenu; boolean mSampleInterrupted = false; static boolean bSSRSupported; private String mLastFileName; @@ -2239,26 +2240,29 @@ public class SoundRecorder extends Activity } public void setupFakeOverflowMenuButton(View menuButton) { - final PopupMenu fakeOverflow = new PopupMenu(menuButton.getContext(), menuButton) { + if (mPopupMenu != null) { + mPopupMenu.dismiss(); + mPopupMenu = null; + } + mPopupMenu = new PopupMenu(menuButton.getContext(), menuButton) { @Override public void show() { onPrepareOptionsMenu(getMenu()); super.show(); } }; - fakeOverflow.inflate(R.menu.main_menu); - fakeOverflow.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener () { + mPopupMenu.inflate(R.menu.main_menu); + mPopupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener () { @Override public boolean onMenuItemClick(MenuItem item) { return onOptionsItemSelected(item); } }); - - menuButton.setOnTouchListener(fakeOverflow.getDragToOpenListener()); + menuButton.setOnTouchListener(mPopupMenu.getDragToOpenListener()); menuButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - fakeOverflow.show(); + mPopupMenu.show(); } }); } |