diff --git a/engine/android/AndroidManifest.xml b/engine/android/AndroidManifest.xml index 652f0aec4..e0c2d8330 100644 --- a/engine/android/AndroidManifest.xml +++ b/engine/android/AndroidManifest.xml @@ -5,7 +5,7 @@ android:versionName="1.4.4" android:installLocation="preferExternal"> - + diff --git a/engine/android/jni/openbor/include/sdl/SDL_revision.h b/engine/android/jni/openbor/include/sdl/SDL_revision.h index 1eb1f73fb..54a1d8a79 100644 --- a/engine/android/jni/openbor/include/sdl/SDL_revision.h +++ b/engine/android/jni/openbor/include/sdl/SDL_revision.h @@ -1,2 +1,2 @@ -#define SDL_REVISION "hg-12019:25d299fc8443" -#define SDL_REVISION_NUMBER 12019 +#define SDL_REVISION "hg-12001:84c2582329b0" +#define SDL_REVISION_NUMBER 12001 diff --git a/engine/android/jni/openbor/include/sdl/SDL_system.h b/engine/android/jni/openbor/include/sdl/SDL_system.h index 6d6832d0f..77186b597 100644 --- a/engine/android/jni/openbor/include/sdl/SDL_system.h +++ b/engine/android/jni/openbor/include/sdl/SDL_system.h @@ -125,11 +125,6 @@ extern DECLSPEC void * SDLCALL SDL_AndroidGetActivity(void); */ extern DECLSPEC SDL_bool SDLCALL SDL_IsAndroidTV(void); -/** - \brief Return true if the application is running on a Chromebook - */ -extern DECLSPEC SDL_bool SDLCALL SDL_IsChromebook(void); - /** See the official Android developer guide for more information: http://developer.android.com/guide/topics/data/data-storage.html diff --git a/engine/android/jni/openbor/lib/armeabi-v7a/libSDL2.so b/engine/android/jni/openbor/lib/armeabi-v7a/libSDL2.so index f14f12614..7249442d1 100644 Binary files a/engine/android/jni/openbor/lib/armeabi-v7a/libSDL2.so and b/engine/android/jni/openbor/lib/armeabi-v7a/libSDL2.so differ diff --git a/engine/android/src/org/libsdl/app/SDLActivity.java b/engine/android/src/org/libsdl/app/SDLActivity.java index d466272bc..dd59238b1 100644 --- a/engine/android/src/org/libsdl/app/SDLActivity.java +++ b/engine/android/src/org/libsdl/app/SDLActivity.java @@ -102,7 +102,6 @@ public enum NativeState { protected static SDLClipboardHandler mClipboardHandler; protected static Hashtable mCursors; protected static int mLastCursorID; - protected static SDLGenericMotionListener_API12 mMotionListener; //White Dragon: added statics protected static WakeLock wakeLock; @@ -111,14 +110,6 @@ public enum NativeState { // This is what SDL runs in. It invokes SDL_main(), eventually protected static Thread mSDLThread; - protected static SDLGenericMotionListener_API12 getMotionListener() { - if (mMotionListener == null) { - mMotionListener = new SDLGenericMotionListener_API12(); - } - - return mMotionListener; - } - /** * This method returns the name of the shared object with the application entry point * It can be overridden by derived classes. @@ -465,7 +456,6 @@ public void onWindowFocusChanged(boolean hasFocus) { SDLActivity.mHasFocus = hasFocus; if (hasFocus) { mNextNativeState = NativeState.RESUMED; - SDLActivity.getMotionListener().reclaimRelativeMouseModeIfNeeded(); hideSystemUI(); //White Dragon: disable navigation bar } else { mNextNativeState = NativeState.PAUSED; @@ -609,10 +599,7 @@ public static void handleNativeState() { /* The native thread has finished */ public static void handleNativeExit() { SDLActivity.mSDLThread = null; - - // Make sure we currently have a singleton before we try to call it. - if (mSingleton != null) - mSingleton.finish(); + mSingleton.finish(); } @@ -662,16 +649,18 @@ public void handleMessage(Message msg) { // This version of Android doesn't support the immersive fullscreen mode break; } +/* This needs more testing, per bug 4096 - Enabling fullscreen on Android causes the app to toggle fullscreen mode continuously in a loop + *** if (context instanceof Activity) { Window window = ((Activity) context).getWindow(); if (window != null) { if ((msg.obj instanceof Integer) && (((Integer) msg.obj).intValue() != 0)) { - int flags = View.SYSTEM_UI_FLAG_FULLSCREEN | - View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | - View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | - View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | + int flags = View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | - View.SYSTEM_UI_FLAG_LAYOUT_STABLE; + View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | + View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | + View.SYSTEM_UI_FLAG_FULLSCREEN | + View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY; window.getDecorView().setSystemUiVisibility(flags); window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); } else { @@ -683,6 +672,7 @@ public void handleMessage(Message msg) { } else { Log.e(TAG, "error handling message, getContext() returned no Activity"); } +***/ break; case COMMAND_TEXTEDIT_HIDE: if (mTextEdit != null) { @@ -738,11 +728,11 @@ boolean sendCommand(int command, Object data) { public static native void nativePause(); public static native void nativeResume(); public static native void onNativeDropFile(String filename); - public static native void onNativeResize(int surfaceWidth, int surfaceHeight, int deviceWidth, int deviceHeight, int format, float rate); + public static native void onNativeResize(int x, int y, int format, float rate); public static native void onNativeKeyDown(int keycode); public static native void onNativeKeyUp(int keycode); public static native void onNativeKeyboardFocusLost(); - public static native void onNativeMouse(int button, int action, float x, float y, boolean relative); + public static native void onNativeMouse(int button, int action, float x, float y); public static native void onNativeTouch(int touchDevId, int pointerFingerId, int action, float x, float y, float p); @@ -821,6 +811,7 @@ public void setOrientationBis(int w, int h, boolean resizable, String hint) } } + /** * This method is called by SDL using JNI. */ @@ -839,22 +830,6 @@ public static boolean isScreenKeyboardShown() } - /** - * This method is called by SDL using JNI. - */ - public static boolean supportsRelativeMouse() - { - return SDLActivity.getMotionListener().supportsRelativeMouse(); - } - - /** - * This method is called by SDL using JNI. - */ - public static boolean setRelativeMouseEnabled(boolean enabled) - { - return SDLActivity.getMotionListener().setRelativeMouseEnabled(enabled); - } - /** * This method is called by SDL using JNI. */ @@ -880,13 +855,6 @@ public static boolean isAndroidTV() { return (uiModeManager.getCurrentModeType() == Configuration.UI_MODE_TYPE_TELEVISION); } - /** - * This method is called by SDL using JNI. - */ - public static boolean isChromebook() { - return getContext().getPackageManager().hasSystemFeature("org.chromium.arc.device_management"); - } - /** * This method is called by SDL using JNI. */ @@ -921,12 +889,6 @@ public static boolean getManifestEnvironmentVariables() { return false; } - // This method is called by SDLControllerManager's API 26 Generic Motion Handler. - public static View getContentView() - { - return mSingleton.mLayout; - } - static class ShowTextInputTask implements Runnable { /* * This is used to regulate the pan&scan method to have some offset from @@ -1458,9 +1420,9 @@ public SDLSurface(Context context) { mSensorManager = (SensorManager)context.getSystemService(Context.SENSOR_SERVICE); if (Build.VERSION.SDK_INT >= 12) { - setOnGenericMotionListener(SDLActivity.getMotionListener()); + setOnGenericMotionListener(new SDLGenericMotionListener_API12()); } - + // Some arbitrary defaults to avoid a potential division by zero mWidth = 1.0f; mHeight = 1.0f; @@ -1556,23 +1518,8 @@ public void surfaceChanged(SurfaceHolder holder, mWidth = width; mHeight = height; - int nDeviceWidth = width; - int nDeviceHeight = height; - try - { - if ( android.os.Build.VERSION.SDK_INT >= 17 ) - { - android.util.DisplayMetrics realMetrics = new android.util.DisplayMetrics(); - mDisplay.getRealMetrics( realMetrics ); - nDeviceWidth = realMetrics.widthPixels; - nDeviceHeight = realMetrics.heightPixels; - } - } - catch ( java.lang.Throwable throwable ) {} - - Log.v("SDL", "Window size: " + width + "x" + height); - Log.v("SDL", "Device size: " + nDeviceWidth + "x" + nDeviceHeight); - SDLActivity.onNativeResize(width, height, nDeviceWidth, nDeviceHeight, sdlFormat, mDisplay.getRefreshRate()); + SDLActivity.onNativeResize(width, height, sdlFormat, mDisplay.getRefreshRate()); + Log.v("SDL", "Window size: " + width + "x" + height); boolean skip = false; @@ -1775,14 +1722,7 @@ public boolean onTouch(View v, MotionEvent event) { mouseButton = 1; // oh well. } } - - // We need to check if we're in relative mouse mode and get the axis offset rather than the x/y values - // if we are. We'll leverage our existing mouse motion listener - SDLGenericMotionListener_API12 motionListener = SDLActivity.getMotionListener(); - x = motionListener.getEventX(event); - y = motionListener.getEventY(event); - - SDLActivity.onNativeMouse(mouseButton, action, x, y, motionListener.inRelativeMode()); + SDLActivity.onNativeMouse(mouseButton, action, event.getX(0), event.getY(0)); } else { switch(action) { case MotionEvent.ACTION_MOVE: diff --git a/engine/android/src/org/libsdl/app/SDLControllerManager.java b/engine/android/src/org/libsdl/app/SDLControllerManager.java index 7763cb726..d0e9c8d5e 100644 --- a/engine/android/src/org/libsdl/app/SDLControllerManager.java +++ b/engine/android/src/org/libsdl/app/SDLControllerManager.java @@ -534,14 +534,14 @@ public boolean onGenericMotion(View v, MotionEvent event) { case MotionEvent.ACTION_SCROLL: x = event.getAxisValue(MotionEvent.AXIS_HSCROLL, 0); y = event.getAxisValue(MotionEvent.AXIS_VSCROLL, 0); - SDLActivity.onNativeMouse(0, action, x, y, false); + SDLActivity.onNativeMouse(0, action, x, y); return true; case MotionEvent.ACTION_HOVER_MOVE: x = event.getX(0); y = event.getY(0); - SDLActivity.onNativeMouse(0, action, x, y, false); + SDLActivity.onNativeMouse(0, action, x, y); return true; default: @@ -556,30 +556,5 @@ public boolean onGenericMotion(View v, MotionEvent event) { // Event was not managed return false; } - - public boolean supportsRelativeMouse() { - return false; - } - - public boolean inRelativeMode() { - return false; - } - - public boolean setRelativeMouseEnabled(boolean enabled) { - return false; - } - - public void reclaimRelativeMouseModeIfNeeded() - { - - } - - public float getEventX(MotionEvent event) { - return event.getX(0); - } - - public float getEventY(MotionEvent event) { - return event.getY(0); - } - } + diff --git a/tools/win-sdk/win-sdk.7z.001 b/tools/win-sdk/win-sdk.7z.001 index 3537337eb..5ac99a922 100644 Binary files a/tools/win-sdk/win-sdk.7z.001 and b/tools/win-sdk/win-sdk.7z.001 differ diff --git a/tools/win-sdk/win-sdk.7z.002 b/tools/win-sdk/win-sdk.7z.002 index e729eae2c..18ebee873 100644 Binary files a/tools/win-sdk/win-sdk.7z.002 and b/tools/win-sdk/win-sdk.7z.002 differ