in NearbyConnectionsCpp/app/src/main/java/com/sample/helper/JUIHelper.java [287:339]
public PopupWindow createPopupWindow(final NativeActivity act) {
// Check manifest settings if the activity wouldn't be destroyed when
// the device orientation changes
try {
ActivityInfo info = act.getPackageManager().getActivityInfo(
act.getComponentName(), 0);
if ((info.configChanges & ActivityInfo.CONFIG_ORIENTATION) == 0
|| (info.configChanges & ActivityInfo.CONFIG_SCREEN_SIZE) == 0) {
Log.i("NDKHelper",
"Activity does not have android:configChanges='orientation|screenSize' attributes in AndroidManifest.xml.");
}
} catch (NameNotFoundException e) {
Log.e("NDKHelper", "Failed to find ActivityName");
}
activity_ = act;
// activity.setTheme(android.R.style.Theme_DeviceDefault);
final PopupWindow popupWindow = new PopupWindow(
LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
activity_.runOnUiThread(new Runnable() {
@Override
public void run() {
Window window = activity_.getWindow();
if( window != null )
{
View decorView = window.getDecorView();
if( decorView == null )
{
// Put dummy layout to NativeActivity
LinearLayout mainLayout = new LinearLayout(activity_);
MarginLayoutParams params = new MarginLayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
params.setMargins(0, 0, 0, 0);
activity_.setContentView(mainLayout, params);
decorView = mainLayout;
}
// Setup relative layout
JUIRelativeLayout_ = new RelativeLayout(activity_);
popupWindow.setContentView(JUIRelativeLayout_);
// Show our UI over NativeActivity window
popupWindow.showAtLocation(decorView, Gravity.TOP
| Gravity.START, 0, 0);
popupWindow.setTouchable(false);
popupWindow.update();
}
}
});
return popupWindow;
}