From 0bcc0db03fe527de638f9061b6985ba2ee4011a1 Mon Sep 17 00:00:00 2001 From: Emile Belanger Date: Wed, 20 May 2015 14:42:43 +0100 Subject: [PATCH] Fixes --- AndroidManifest.xml | 4 +- assets/bstone_ps_config | Bin 769 -> 0 bytes assets/flash_light_filled.png | Bin 0 -> 4070 bytes assets/light.png | Bin 0 -> 5125 bytes assets/reload.png | Bin 0 -> 56023 bytes jni/src/Xash3D/xash3d | 2 +- jni/src/XashXT/XashXT | 2 +- src/org/libsdl/app/SDLActivity.java | 2743 ++++++++++++++------------- 8 files changed, 1380 insertions(+), 1371 deletions(-) delete mode 100644 assets/bstone_ps_config create mode 100644 assets/flash_light_filled.png create mode 100644 assets/light.png create mode 100644 assets/reload.png diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 4670a4c1..b8ed3016 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -17,10 +17,10 @@ An example Java class can be found in README-android.txt --> - 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 literal 0 HcmV?d00001 diff --git a/assets/reload.png b/assets/reload.png new file mode 100644 index 0000000000000000000000000000000000000000..9611e4cc04e154e6879158a0e4967b6d3dc7f839 GIT binary patch literal 56023 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 12) { - mJoystickHandler = new SDLJoystickHandler_API12(); - } - else { - mJoystickHandler = new SDLJoystickHandler(); - } - - mLayout = new AbsoluteLayout(this); - mLayout.addView(mSurface); - - setContentView(mLayout); - } - - // Events - @Override - protected void onPause() { - Log.v("SDL", "onPause()"); - super.onPause(); - - if (SDLActivity.mBrokenLibraries) { - return; - } - - SDLActivity.handlePause(); - } - - @Override - protected void onResume() { - Log.v("SDL", "onResume()"); - super.onResume(); - - if (SDLActivity.mBrokenLibraries) { - return; - } - - SDLActivity.handleResume(); - } - - - @Override - public void onWindowFocusChanged(boolean hasFocus) { - super.onWindowFocusChanged(hasFocus); - Log.v("SDL", "onWindowFocusChanged(): " + hasFocus); - - if (SDLActivity.mBrokenLibraries) { - return; - } - - SDLActivity.mHasFocus = hasFocus; - if (hasFocus) { - SDLActivity.handleResume(); - } - } - - @Override - public void onLowMemory() { - Log.v("SDL", "onLowMemory()"); - super.onLowMemory(); - - if (SDLActivity.mBrokenLibraries) { - return; - } - - SDLActivity.nativeLowMemory(); - } - - @Override - protected void onDestroy() { - Log.v("SDL", "onDestroy()"); - - if (SDLActivity.mBrokenLibraries) { - super.onDestroy(); - // Reset everything in case the user re opens the app - SDLActivity.initialize(); - return; - } - - // Send a quit message to the application - SDLActivity.mExitCalledFromJava = true; - SDLActivity.nativeQuit(); - - // Now wait for the SDL thread to quit - if (SDLActivity.mSDLThread != null) { - try { - SDLActivity.mSDLThread.join(); - } catch(Exception e) { - Log.v("SDL", "Problem stopping thread: " + e); - } - SDLActivity.mSDLThread = null; - - //Log.v("SDL", "Finished waiting for SDL thread"); - } - - super.onDestroy(); - // Reset everything in case the user re opens the app - SDLActivity.initialize(); - } - - @Override - public boolean dispatchKeyEvent(KeyEvent event) { - - if (SDLActivity.mBrokenLibraries) { - return false; - } - - int keyCode = event.getKeyCode(); - // Ignore certain special keys so they're handled by Android - if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN || - keyCode == KeyEvent.KEYCODE_VOLUME_UP || - keyCode == KeyEvent.KEYCODE_CAMERA || - keyCode == 168 || /* API 11: KeyEvent.KEYCODE_ZOOM_IN */ - keyCode == 169 /* API 11: KeyEvent.KEYCODE_ZOOM_OUT */ - ) { - return false; - } - return super.dispatchKeyEvent(event); - } - - /** Called by onPause or surfaceDestroyed. Even if surfaceDestroyed - * is the first to be called, mIsSurfaceReady should still be set - * to 'true' during the call to onPause (in a usual scenario). - */ - public static void handlePause() { - if (!SDLActivity.mIsPaused && SDLActivity.mIsSurfaceReady) { - SDLActivity.mIsPaused = true; - SDLActivity.nativePause(); - mSurface.enableSensor(Sensor.TYPE_ACCELEROMETER, false); - } - } - - /** Called by onResume or surfaceCreated. An actual resume should be done only when the surface is ready. - * Note: Some Android variants may send multiple surfaceChanged events, so we don't need to resume - * every time we get one of those events, only if it comes after surfaceDestroyed - */ - public static void handleResume() { - if (SDLActivity.mIsPaused && SDLActivity.mIsSurfaceReady && SDLActivity.mHasFocus) { - SDLActivity.mIsPaused = false; - SDLActivity.nativeResume(); - mSurface.handleResume(); - } - } - - /* The native thread has finished */ - public static void handleNativeExit() { - SDLActivity.mSDLThread = null; - mSingleton.finish(); - } - - - // Messages from the SDLMain thread - static final int COMMAND_CHANGE_TITLE = 1; - static final int COMMAND_UNUSED = 2; - static final int COMMAND_TEXTEDIT_HIDE = 3; - static final int COMMAND_SET_KEEP_SCREEN_ON = 5; - - protected static final int COMMAND_USER = 0x8000; - - /** - * This method is called by SDL if SDL did not handle a message itself. - * This happens if a received message contains an unsupported command. - * Method can be overwritten to handle Messages in a different class. - * @param command the command of the message. - * @param param the parameter of the message. May be null. - * @return if the message was handled in overridden method. - */ - protected boolean onUnhandledMessage(int command, Object param) { - return false; - } - - /** - * A Handler class for Messages from native SDL applications. - * It uses current Activities as target (e.g. for the title). - * static to prevent implicit references to enclosing object. - */ - protected static class SDLCommandHandler extends Handler { - @Override - public void handleMessage(Message msg) { - Context context = getContext(); - if (context == null) { - Log.e(TAG, "error handling message, getContext() returned null"); - return; - } - switch (msg.arg1) { - case COMMAND_CHANGE_TITLE: - if (context instanceof Activity) { - ((Activity) context).setTitle((String)msg.obj); - } else { - Log.e(TAG, "error handling message, getContext() returned no Activity"); - } - break; - case COMMAND_TEXTEDIT_HIDE: - if (mTextEdit != null) { - mTextEdit.setVisibility(View.GONE); - - InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); - imm.hideSoftInputFromWindow(mTextEdit.getWindowToken(), 0); - } - break; - case COMMAND_SET_KEEP_SCREEN_ON: - { - Window window = ((Activity) context).getWindow(); - if (window != null) { - if ((msg.obj instanceof Integer) && (((Integer) msg.obj).intValue() != 0)) { - window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); - } else { - window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); - } - } - break; - } - default: - if ((context instanceof SDLActivity) && !((SDLActivity) context).onUnhandledMessage(msg.arg1, msg.obj)) { - Log.e(TAG, "error handling message, command is " + msg.arg1); - } - } - } - } - - // Handler for the messages - Handler commandHandler = new SDLCommandHandler(); - - // Send a message from the SDLMain thread - boolean sendCommand(int command, Object data) { - Message msg = commandHandler.obtainMessage(); - msg.arg1 = command; - msg.obj = data; - return commandHandler.sendMessage(msg); - } - - // C functions we call - public static native int nativeInit(Object arguments); - public static native void nativeLowMemory(); - public static native void nativeQuit(); - public static native void nativePause(); - public static native void nativeResume(); - public static native void onNativeResize(int x, int y, int format, float rate); - public static native int onNativePadDown(int device_id, int keycode); - public static native int onNativePadUp(int device_id, int keycode); - public static native void onNativeJoy(int device_id, int axis, - float value); - public static native void onNativeHat(int device_id, int hat_id, - int x, int y); - 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); - public static native void onNativeTouch(int touchDevId, int pointerFingerId, - int action, float x, - float y, float p); - public static native void onNativeAccel(float x, float y, float z); - public static native void onNativeSurfaceChanged(); - public static native void onNativeSurfaceDestroyed(); - public static native void nativeFlipBuffers(); - public static native int nativeAddJoystick(int device_id, String name, - int is_accelerometer, int nbuttons, - int naxes, int nhats, int nballs); - public static native int nativeRemoveJoystick(int device_id); - public static native String nativeGetHint(String name); - - /** - * This method is called by SDL using JNI. - */ - public static void flipBuffers() { - SDLActivity.nativeFlipBuffers(); - } - - /** - * This method is called by SDL using JNI. - */ - public static boolean setActivityTitle(String title) { - // Called from SDLMain() thread and can't directly affect the view - return mSingleton.sendCommand(COMMAND_CHANGE_TITLE, title); - } - - /** - * This method is called by SDL using JNI. - */ - public static boolean sendMessage(int command, int param) { - return mSingleton.sendCommand(command, Integer.valueOf(param)); - } - - /** - * This method is called by SDL using JNI. - */ - public static Context getContext() { - return mSingleton; - } - - /** - * This method is called by SDL using JNI. - * @return result of getSystemService(name) but executed on UI thread. - */ - public Object getSystemServiceFromUiThread(final String name) { - final Object lock = new Object(); - final Object[] results = new Object[2]; // array for writable variables - synchronized (lock) { - runOnUiThread(new Runnable() { - @Override - public void run() { - synchronized (lock) { - results[0] = getSystemService(name); - results[1] = Boolean.TRUE; - lock.notify(); - } - } - }); - if (results[1] == null) { - try { - lock.wait(); - } catch (InterruptedException ex) { - ex.printStackTrace(); - } - } - } - return results[0]; - } - - static class ShowTextInputTask implements Runnable { - /* - * This is used to regulate the pan&scan method to have some offset from - * the bottom edge of the input region and the top edge of an input - * method (soft keyboard) - */ - static final int HEIGHT_PADDING = 15; - - public int x, y, w, h; - - public ShowTextInputTask(int x, int y, int w, int h) { - this.x = x; - this.y = y; - this.w = w; - this.h = h; - } - - @Override - public void run() { - AbsoluteLayout.LayoutParams params = new AbsoluteLayout.LayoutParams( - w, h + HEIGHT_PADDING, x, y); - - if (mTextEdit == null) { - mTextEdit = new DummyEdit(getContext()); - - mLayout.addView(mTextEdit, params); - } else { - mTextEdit.setLayoutParams(params); - } - - mTextEdit.setVisibility(View.VISIBLE); - mTextEdit.requestFocus(); - - InputMethodManager imm = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE); - imm.showSoftInput(mTextEdit, 0); - } - } - - /** - * This method is called by SDL using JNI. - */ - public static boolean showTextInput(int x, int y, int w, int h) { - // Transfer the task to the main thread as a Runnable - return mSingleton.commandHandler.post(new ShowTextInputTask(x, y, w, h)); - } - - /** - * This method is called by SDL using JNI. - */ - public static Surface getNativeSurface() { - return SDLActivity.mSurface.getNativeSurface(); - } - - // Audio - - /** - * This method is called by SDL using JNI. - */ - public static int audioInit(int sampleRate, boolean is16Bit, boolean isStereo, int desiredFrames) { - int channelConfig = isStereo ? AudioFormat.CHANNEL_CONFIGURATION_STEREO : AudioFormat.CHANNEL_CONFIGURATION_MONO; - int audioFormat = is16Bit ? AudioFormat.ENCODING_PCM_16BIT : AudioFormat.ENCODING_PCM_8BIT; - int frameSize = (isStereo ? 2 : 1) * (is16Bit ? 2 : 1); - - Log.v("SDL", "SDL audio: wanted " + (isStereo ? "stereo" : "mono") + " " + (is16Bit ? "16-bit" : "8-bit") + " " + (sampleRate / 1000f) + "kHz, " + desiredFrames + " frames buffer"); - - // Let the user pick a larger buffer if they really want -- but ye - // gods they probably shouldn't, the minimums are horrifyingly high - // latency already - desiredFrames = Math.max(desiredFrames, (AudioTrack.getMinBufferSize(sampleRate, channelConfig, audioFormat) + frameSize - 1) / frameSize); - - if (mAudioTrack == null) { - mAudioTrack = new AudioTrack(AudioManager.STREAM_MUSIC, sampleRate, - channelConfig, audioFormat, desiredFrames * frameSize, AudioTrack.MODE_STREAM); - - // Instantiating AudioTrack can "succeed" without an exception and the track may still be invalid - // Ref: https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/media/java/android/media/AudioTrack.java - // Ref: http://developer.android.com/reference/android/media/AudioTrack.html#getState() - - if (mAudioTrack.getState() != AudioTrack.STATE_INITIALIZED) { - Log.e("SDL", "Failed during initialization of Audio Track"); - mAudioTrack = null; - return -1; - } - - mAudioTrack.play(); - } - - Log.v("SDL", "SDL audio: got " + ((mAudioTrack.getChannelCount() >= 2) ? "stereo" : "mono") + " " + ((mAudioTrack.getAudioFormat() == AudioFormat.ENCODING_PCM_16BIT) ? "16-bit" : "8-bit") + " " + (mAudioTrack.getSampleRate() / 1000f) + "kHz, " + desiredFrames + " frames buffer"); - - return 0; - } - - /** - * This method is called by SDL using JNI. - */ - public static void audioWriteShortBuffer(short[] buffer) { - for (int i = 0; i < buffer.length; ) { - int result = mAudioTrack.write(buffer, i, buffer.length - i); - if (result > 0) { - i += result; - } else if (result == 0) { - try { - Thread.sleep(1); - } catch(InterruptedException e) { - // Nom nom - } - } else { - Log.w("SDL", "SDL audio: error return from write(short)"); - return; - } - } - } - - /** - * This method is called by SDL using JNI. - */ - public static void audioWriteByteBuffer(byte[] buffer) { - for (int i = 0; i < buffer.length; ) { - int result = mAudioTrack.write(buffer, i, buffer.length - i); - if (result > 0) { - i += result; - } else if (result == 0) { - try { - Thread.sleep(1); - } catch(InterruptedException e) { - // Nom nom - } - } else { - Log.w("SDL", "SDL audio: error return from write(byte)"); - return; - } - } - } - - /** - * This method is called by SDL using JNI. - */ - public static void audioQuit() { - if (mAudioTrack != null) { - mAudioTrack.stop(); - mAudioTrack = null; - } - } - - // Input - - /** - * This method is called by SDL using JNI. - * @return an array which may be empty but is never null. - */ - public static int[] inputGetInputDeviceIds(int sources) { - int[] ids = InputDevice.getDeviceIds(); - int[] filtered = new int[ids.length]; - int used = 0; - for (int i = 0; i < ids.length; ++i) { - InputDevice device = InputDevice.getDevice(ids[i]); - if ((device != null) && ((device.getSources() & sources) != 0)) { - filtered[used++] = device.getId(); - } - } - return Arrays.copyOf(filtered, used); - } - - // Joystick glue code, just a series of stubs that redirect to the SDLJoystickHandler instance - public static boolean handleJoystickMotionEvent(MotionEvent event) { - return mJoystickHandler.handleMotionEvent(event); - } - - /** - * This method is called by SDL using JNI. - */ - public static void pollInputDevices() { - if (SDLActivity.mSDLThread != null) { - mJoystickHandler.pollInputDevices(); - } - } - - // APK extension files support - - /** com.android.vending.expansion.zipfile.ZipResourceFile object or null. */ - private Object expansionFile; - - /** com.android.vending.expansion.zipfile.ZipResourceFile's getInputStream() or null. */ - private Method expansionFileMethod; - - /** - * This method is called by SDL using JNI. - */ - public InputStream openAPKExtensionInputStream(String fileName) throws IOException { - // Get a ZipResourceFile representing a merger of both the main and patch files - if (expansionFile == null) { - Integer mainVersion = Integer.valueOf(nativeGetHint("SDL_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION")); - Integer patchVersion = Integer.valueOf(nativeGetHint("SDL_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION")); - - try { - // To avoid direct dependency on Google APK extension library that is - // not a part of Android SDK we access it using reflection - expansionFile = Class.forName("com.android.vending.expansion.zipfile.APKExpansionSupport") - .getMethod("getAPKExpansionZipFile", Context.class, int.class, int.class) - .invoke(null, this, mainVersion, patchVersion); - - expansionFileMethod = expansionFile.getClass() - .getMethod("getInputStream", String.class); - } catch (Exception ex) { - ex.printStackTrace(); - expansionFile = null; - expansionFileMethod = null; - } - } - - // Get an input stream for a known file inside the expansion file ZIPs - InputStream fileStream; - try { - fileStream = (InputStream)expansionFileMethod.invoke(expansionFile, fileName); - } catch (Exception ex) { - ex.printStackTrace(); - fileStream = null; - } - - if (fileStream == null) { - throw new IOException(); - } - - return fileStream; - } - - // Messagebox - - /** Result of current messagebox. Also used for blocking the calling thread. */ - protected final int[] messageboxSelection = new int[1]; - - /** Id of current dialog. */ - protected int dialogs = 0; - - /** - * This method is called by SDL using JNI. - * Shows the messagebox from UI thread and block calling thread. - * buttonFlags, buttonIds and buttonTexts must have same length. - * @param buttonFlags array containing flags for every button. - * @param buttonIds array containing id for every button. - * @param buttonTexts array containing text for every button. - * @param colors null for default or array of length 5 containing colors. - * @return button id or -1. - */ - public int messageboxShowMessageBox( - final int flags, - final String title, - final String message, - final int[] buttonFlags, - final int[] buttonIds, - final String[] buttonTexts, - final int[] colors) { - - messageboxSelection[0] = -1; - - // sanity checks - - if ((buttonFlags.length != buttonIds.length) && (buttonIds.length != buttonTexts.length)) { - return -1; // implementation broken - } - - // collect arguments for Dialog - - final Bundle args = new Bundle(); - args.putInt("flags", flags); - args.putString("title", title); - args.putString("message", message); - args.putIntArray("buttonFlags", buttonFlags); - args.putIntArray("buttonIds", buttonIds); - args.putStringArray("buttonTexts", buttonTexts); - args.putIntArray("colors", colors); - - // trigger Dialog creation on UI thread - - runOnUiThread(new Runnable() { - @Override - public void run() { - showDialog(dialogs++, args); - } - }); - - // block the calling thread - - synchronized (messageboxSelection) { - try { - messageboxSelection.wait(); - } catch (InterruptedException ex) { - ex.printStackTrace(); - return -1; - } - } - - // return selected value - - return messageboxSelection[0]; - } - - @Override - protected Dialog onCreateDialog(int ignore, Bundle args) { - - // TODO set values from "flags" to messagebox dialog - - // get colors - - int[] colors = args.getIntArray("colors"); - int backgroundColor; - int textColor; - int buttonBorderColor; - int buttonBackgroundColor; - int buttonSelectedColor; - if (colors != null) { - int i = -1; - backgroundColor = colors[++i]; - textColor = colors[++i]; - buttonBorderColor = colors[++i]; - buttonBackgroundColor = colors[++i]; - buttonSelectedColor = colors[++i]; - } else { - backgroundColor = Color.TRANSPARENT; - textColor = Color.TRANSPARENT; - buttonBorderColor = Color.TRANSPARENT; - buttonBackgroundColor = Color.TRANSPARENT; - buttonSelectedColor = Color.TRANSPARENT; - } - - // create dialog with title and a listener to wake up calling thread - - final Dialog dialog = new Dialog(this); - dialog.setTitle(args.getString("title")); - dialog.setCancelable(false); - dialog.setOnDismissListener(new DialogInterface.OnDismissListener() { - @Override - public void onDismiss(DialogInterface unused) { - synchronized (messageboxSelection) { - messageboxSelection.notify(); - } - } - }); - - // create text - - TextView message = new TextView(this); - message.setGravity(Gravity.CENTER); - message.setText(args.getString("message")); - if (textColor != Color.TRANSPARENT) { - message.setTextColor(textColor); - } - - // create buttons - - int[] buttonFlags = args.getIntArray("buttonFlags"); - int[] buttonIds = args.getIntArray("buttonIds"); - String[] buttonTexts = args.getStringArray("buttonTexts"); - - final SparseArray