Skip to content

Commit f5caff6

Browse files
committed
Fix system menu display for chromecast and other systems
1 parent 69d8b47 commit f5caff6

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

src/platform/android/app/src/main/java/net/sourceforge/smallbasic/MainActivity.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import android.content.DialogInterface.OnCancelListener;
1313
import android.content.Intent;
1414
import android.content.pm.PackageManager;
15+
import android.content.res.Configuration;
1516
import android.content.res.Resources;
1617
import android.graphics.Rect;
1718
import android.location.Criteria;
@@ -378,7 +379,17 @@ public void optionsBox(final String[] items) {
378379
this._options = items;
379380
runOnUiThread(new Runnable() {
380381
public void run() {
381-
openOptionsMenu();
382+
invalidateOptionsMenu();
383+
Configuration config = getResources().getConfiguration();
384+
// https://stackoverflow.com/questions/9996333/openoptionsmenu-function-not-working-in-ics/17903128#17903128
385+
if ((config.screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) > Configuration.SCREENLAYOUT_SIZE_LARGE) {
386+
int originalScreenLayout = config.screenLayout;
387+
config.screenLayout = Configuration.SCREENLAYOUT_SIZE_LARGE;
388+
openOptionsMenu();
389+
config.screenLayout = originalScreenLayout;
390+
} else {
391+
openOptionsMenu();
392+
}
382393
}
383394
});
384395
}

0 commit comments

Comments
 (0)