summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKeith Mok <kmok@cyngn.com>2016-05-26 12:39:48 -0700
committerKeith Mok <kmok@cyngn.com>2016-07-07 10:01:24 -0700
commit77399f4212bfbb6e3d902f378acc6a8aaa9e17f5 (patch)
tree65d3f2863168f718caa8967387720d82948989bb
parentd0c02a32d87bca7928db40ac472ed5b502dc2157 (diff)
downloadandroid_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.java16
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();
}
});
}