annotate android/src/org/libsdl/app/SDLActivity.java @ 1843:13abdc98379e mame_interp

Get Android build target working on mame_interp branch
author Michael Pavone <pavone@retrodev.com>
date Thu, 18 Apr 2019 22:06:47 -0700
parents 78abbabfd58d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1 package org.libsdl.app;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
2
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
3 import java.io.IOException;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
4 import java.io.InputStream;
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
5 import java.util.Arrays;
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
6 import java.lang.reflect.Method;
1843
13abdc98379e Get Android build target working on mame_interp branch
Michael Pavone <pavone@retrodev.com>
parents: 1839
diff changeset
7 import java.lang.NullPointerException;
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
8 import java.util.Objects;
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
9
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
10 import android.app.*;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
11 import android.content.*;
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
12 import android.text.InputType;
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
13 import android.view.*;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
14 import android.view.inputmethod.BaseInputConnection;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
15 import android.view.inputmethod.EditorInfo;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
16 import android.view.inputmethod.InputConnection;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
17 import android.view.inputmethod.InputMethodManager;
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
18 import android.widget.RelativeLayout;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
19 import android.widget.Button;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
20 import android.widget.LinearLayout;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
21 import android.widget.TextView;
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
22 import android.os.*;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
23 import android.util.Log;
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
24 import android.util.SparseArray;
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
25 import android.graphics.*;
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
26 import android.graphics.drawable.Drawable;
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
27 import android.hardware.*;
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
28 import android.content.pm.ActivityInfo;
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
29
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
30 /**
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
31 SDL Activity
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
32 */
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
33 public class SDLActivity extends Activity {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
34 private static final String TAG = "SDL";
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
35
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
36 public static boolean mIsResumedCalled, mIsSurfaceReady, mHasFocus;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
37
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
38 // Handle the state of the native layer
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
39 public enum NativeState {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
40 INIT, RESUMED, PAUSED
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
41 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
42
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
43 public static NativeState mNextNativeState;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
44 public static NativeState mCurrentNativeState;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
45
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
46 public static boolean mExitCalledFromJava;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
47
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
48 /** If shared libraries (e.g. SDL or the native application) could not be loaded. */
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
49 public static boolean mBrokenLibraries;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
50
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
51 // If we want to separate mouse and touch events.
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
52 // This is only toggled in native code when a hint is set!
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
53 public static boolean mSeparateMouseAndTouch;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
54
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
55 // Main components
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
56 protected static SDLActivity mSingleton;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
57 protected static SDLSurface mSurface;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
58 protected static View mTextEdit;
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
59 protected static boolean mScreenKeyboardShown;
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
60 protected static ViewGroup mLayout;
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
61 protected static SDLClipboardHandler mClipboardHandler;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
62
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
63
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
64 // This is what SDL runs in. It invokes SDL_main(), eventually
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
65 protected static Thread mSDLThread;
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
66
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
67 /**
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
68 * This method returns the name of the shared object with the application entry point
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
69 * It can be overridden by derived classes.
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
70 */
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
71 protected String getMainSharedObject() {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
72 String library;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
73 String[] libraries = SDLActivity.mSingleton.getLibraries();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
74 if (libraries.length > 0) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
75 library = "lib" + libraries[libraries.length - 1] + ".so";
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
76 } else {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
77 library = "libmain.so";
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
78 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
79 return library;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
80 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
81
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
82 /**
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
83 * This method returns the name of the application entry point
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
84 * It can be overridden by derived classes.
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
85 */
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
86 protected String getMainFunction() {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
87 return "SDL_main";
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
88 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
89
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
90 /**
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
91 * This method is called by SDL before loading the native shared libraries.
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
92 * It can be overridden to provide names of shared libraries to be loaded.
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
93 * The default implementation returns the defaults. It never returns null.
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
94 * An array returned by a new implementation must at least contain "SDL2".
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
95 * Also keep in mind that the order the libraries are loaded may matter.
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
96 * @return names of shared libraries to be loaded (e.g. "SDL2", "main").
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
97 */
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
98 protected String[] getLibraries() {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
99 return new String[] {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
100 "SDL2",
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
101 // "SDL2_image",
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
102 // "SDL2_mixer",
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
103 // "SDL2_net",
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
104 // "SDL2_ttf",
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
105 "main"
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
106 };
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
107 }
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
108
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
109 // Load the .so
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
110 public void loadLibraries() {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
111 for (String lib : getLibraries()) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
112 System.loadLibrary(lib);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
113 }
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
114 }
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
115
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
116 /**
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
117 * This method is called by SDL before starting the native application thread.
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
118 * It can be overridden to provide the arguments after the application name.
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
119 * The default implementation returns an empty array. It never returns null.
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
120 * @return arguments for the native application.
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
121 */
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
122 protected String[] getArguments() {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
123 return new String[0];
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
124 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
125
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
126 public static void initialize() {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
127 // The static nature of the singleton and Android quirkyness force us to initialize everything here
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
128 // Otherwise, when exiting the app and returning to it, these variables *keep* their pre exit values
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
129 mSingleton = null;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
130 mSurface = null;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
131 mTextEdit = null;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
132 mLayout = null;
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
133 mClipboardHandler = null;
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
134 mSDLThread = null;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
135 mExitCalledFromJava = false;
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
136 mBrokenLibraries = false;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
137 mIsResumedCalled = false;
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
138 mIsSurfaceReady = false;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
139 mHasFocus = true;
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
140 mNextNativeState = NativeState.INIT;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
141 mCurrentNativeState = NativeState.INIT;
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
142 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
143
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
144 // Setup
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
145 @Override
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
146 protected void onCreate(Bundle savedInstanceState) {
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
147 Log.v(TAG, "Device: " + android.os.Build.DEVICE);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
148 Log.v(TAG, "Model: " + android.os.Build.MODEL);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
149 Log.v(TAG, "onCreate()");
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
150 super.onCreate(savedInstanceState);
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
151
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
152 // Load shared libraries
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
153 String errorMsgBrokenLib = "";
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
154 try {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
155 loadLibraries();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
156 } catch(UnsatisfiedLinkError e) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
157 System.err.println(e.getMessage());
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
158 mBrokenLibraries = true;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
159 errorMsgBrokenLib = e.getMessage();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
160 } catch(Exception e) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
161 System.err.println(e.getMessage());
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
162 mBrokenLibraries = true;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
163 errorMsgBrokenLib = e.getMessage();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
164 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
165
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
166 if (mBrokenLibraries)
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
167 {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
168 AlertDialog.Builder dlgAlert = new AlertDialog.Builder(this);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
169 dlgAlert.setMessage("An error occurred while trying to start the application. Please try again and/or reinstall."
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
170 + System.getProperty("line.separator")
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
171 + System.getProperty("line.separator")
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
172 + "Error: " + errorMsgBrokenLib);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
173 dlgAlert.setTitle("SDL Error");
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
174 dlgAlert.setPositiveButton("Exit",
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
175 new DialogInterface.OnClickListener() {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
176 @Override
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
177 public void onClick(DialogInterface dialog,int id) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
178 // if this button is clicked, close current activity
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
179 SDLActivity.mSingleton.finish();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
180 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
181 });
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
182 dlgAlert.setCancelable(false);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
183 dlgAlert.create().show();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
184
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
185 return;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
186 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
187
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
188 // Set up JNI
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
189 SDL.setupJNI();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
190
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
191 // Initialize state
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
192 SDL.initialize();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
193
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
194 // So we can call stuff from static callbacks
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
195 mSingleton = this;
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
196 SDL.setContext(this);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
197
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
198 if (Build.VERSION.SDK_INT >= 11) {
1843
13abdc98379e Get Android build target working on mame_interp branch
Michael Pavone <pavone@retrodev.com>
parents: 1839
diff changeset
199 try {
13abdc98379e Get Android build target working on mame_interp branch
Michael Pavone <pavone@retrodev.com>
parents: 1839
diff changeset
200 mClipboardHandler = new SDLClipboardHandler_API11();
13abdc98379e Get Android build target working on mame_interp branch
Michael Pavone <pavone@retrodev.com>
parents: 1839
diff changeset
201 } catch (NullPointerException e) {
13abdc98379e Get Android build target working on mame_interp branch
Michael Pavone <pavone@retrodev.com>
parents: 1839
diff changeset
202 //deal with shitty emulation boxes
13abdc98379e Get Android build target working on mame_interp branch
Michael Pavone <pavone@retrodev.com>
parents: 1839
diff changeset
203 mClipboardHandler = new SDLClipboardHandler_Old();
13abdc98379e Get Android build target working on mame_interp branch
Michael Pavone <pavone@retrodev.com>
parents: 1839
diff changeset
204 }
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
205 } else {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
206 /* Before API 11, no clipboard notification (eg no SDL_CLIPBOARDUPDATE) */
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
207 mClipboardHandler = new SDLClipboardHandler_Old();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
208 }
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
209
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
210 // Set up the surface
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
211 mSurface = new SDLSurface(getApplication());
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
212
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
213 mLayout = new RelativeLayout(this);
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
214 mLayout.addView(mSurface);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
215
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
216 setContentView(mLayout);
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
217
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
218 // Get filename from "Open with" of another application
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
219 Intent intent = getIntent();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
220 if (intent != null && intent.getData() != null) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
221 String filename = intent.getData().getPath();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
222 if (filename != null) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
223 Log.v(TAG, "Got filename: " + filename);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
224 SDLActivity.onNativeDropFile(filename);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
225 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
226 }
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
227 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
228
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
229 // Events
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
230 @Override
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
231 protected void onPause() {
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
232 Log.v(TAG, "onPause()");
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
233 super.onPause();
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
234 mNextNativeState = NativeState.PAUSED;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
235 mIsResumedCalled = false;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
236
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
237 if (SDLActivity.mBrokenLibraries) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
238 return;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
239 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
240
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
241 SDLActivity.handleNativeState();
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
242 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
243
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
244 @Override
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
245 protected void onResume() {
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
246 Log.v(TAG, "onResume()");
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
247 super.onResume();
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
248 mNextNativeState = NativeState.RESUMED;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
249 mIsResumedCalled = true;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
250
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
251 if (SDLActivity.mBrokenLibraries) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
252 return;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
253 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
254
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
255 SDLActivity.handleNativeState();
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
256 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
257
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
258
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
259 @Override
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
260 public void onWindowFocusChanged(boolean hasFocus) {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
261 super.onWindowFocusChanged(hasFocus);
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
262 Log.v(TAG, "onWindowFocusChanged(): " + hasFocus);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
263
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
264 if (SDLActivity.mBrokenLibraries) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
265 return;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
266 }
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
267
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
268 SDLActivity.mHasFocus = hasFocus;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
269 if (hasFocus) {
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
270 mNextNativeState = NativeState.RESUMED;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
271 } else {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
272 mNextNativeState = NativeState.PAUSED;
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
273 }
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
274
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
275 SDLActivity.handleNativeState();
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
276 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
277
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
278 @Override
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
279 public void onLowMemory() {
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
280 Log.v(TAG, "onLowMemory()");
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
281 super.onLowMemory();
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
282
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
283 if (SDLActivity.mBrokenLibraries) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
284 return;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
285 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
286
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
287 SDLActivity.nativeLowMemory();
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
288 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
289
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
290 @Override
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
291 protected void onDestroy() {
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
292 Log.v(TAG, "onDestroy()");
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
293
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
294 if (SDLActivity.mBrokenLibraries) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
295 super.onDestroy();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
296 // Reset everything in case the user re opens the app
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
297 SDLActivity.initialize();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
298 return;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
299 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
300
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
301 mNextNativeState = NativeState.PAUSED;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
302 SDLActivity.handleNativeState();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
303
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
304 // Send a quit message to the application
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
305 SDLActivity.mExitCalledFromJava = true;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
306 SDLActivity.nativeQuit();
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
307
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
308 // Now wait for the SDL thread to quit
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
309 if (SDLActivity.mSDLThread != null) {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
310 try {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
311 SDLActivity.mSDLThread.join();
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
312 } catch(Exception e) {
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
313 Log.v(TAG, "Problem stopping thread: " + e);
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
314 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
315 SDLActivity.mSDLThread = null;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
316
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
317 //Log.v(TAG, "Finished waiting for SDL thread");
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
318 }
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
319
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
320 super.onDestroy();
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
321
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
322 // Reset everything in case the user re opens the app
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
323 SDLActivity.initialize();
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
324 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
325
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
326 @Override
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
327 public boolean dispatchKeyEvent(KeyEvent event) {
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
328
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
329 if (SDLActivity.mBrokenLibraries) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
330 return false;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
331 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
332
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
333 int keyCode = event.getKeyCode();
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
334 // Ignore certain special keys so they're handled by Android
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
335 if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN ||
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
336 keyCode == KeyEvent.KEYCODE_VOLUME_UP ||
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
337 keyCode == KeyEvent.KEYCODE_CAMERA ||
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
338 keyCode == KeyEvent.KEYCODE_ZOOM_IN || /* API 11 */
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
339 keyCode == KeyEvent.KEYCODE_ZOOM_OUT /* API 11 */
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
340 ) {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
341 return false;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
342 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
343 return super.dispatchKeyEvent(event);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
344 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
345
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
346 /* Transition to next state */
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
347 public static void handleNativeState() {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
348
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
349 if (mNextNativeState == mCurrentNativeState) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
350 // Already in same state, discard.
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
351 return;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
352 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
353
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
354 // Try a transition to init state
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
355 if (mNextNativeState == NativeState.INIT) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
356
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
357 mCurrentNativeState = mNextNativeState;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
358 return;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
359 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
360
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
361 // Try a transition to paused state
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
362 if (mNextNativeState == NativeState.PAUSED) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
363 nativePause();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
364 mSurface.handlePause();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
365 mCurrentNativeState = mNextNativeState;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
366 return;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
367 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
368
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
369 // Try a transition to resumed state
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
370 if (mNextNativeState == NativeState.RESUMED) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
371 if (mIsSurfaceReady && mHasFocus && mIsResumedCalled) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
372 if (mSDLThread == null) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
373 // This is the entry point to the C app.
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
374 // Start up the C app thread and enable sensor input for the first time
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
375 // FIXME: Why aren't we enabling sensor input at start?
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
376
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
377 final Thread sdlThread = new Thread(new SDLMain(), "SDLThread");
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
378 mSurface.enableSensor(Sensor.TYPE_ACCELEROMETER, true);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
379 sdlThread.start();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
380
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
381 // Set up a listener thread to catch when the native thread ends
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
382 mSDLThread = new Thread(new Runnable() {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
383 @Override
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
384 public void run() {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
385 try {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
386 sdlThread.join();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
387 } catch (Exception e) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
388 // Ignore any exception
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
389 } finally {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
390 // Native thread has finished
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
391 if (!mExitCalledFromJava) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
392 handleNativeExit();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
393 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
394 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
395 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
396 }, "SDLThreadListener");
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
397
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
398 mSDLThread.start();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
399 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
400
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
401 nativeResume();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
402 mSurface.handleResume();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
403 mCurrentNativeState = mNextNativeState;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
404 }
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
405 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
406 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
407
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
408 /* The native thread has finished */
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
409 public static void handleNativeExit() {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
410 SDLActivity.mSDLThread = null;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
411 mSingleton.finish();
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
412 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
413
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
414
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
415 // Messages from the SDLMain thread
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
416 static final int COMMAND_CHANGE_TITLE = 1;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
417 static final int COMMAND_UNUSED = 2;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
418 static final int COMMAND_TEXTEDIT_HIDE = 3;
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
419 static final int COMMAND_SET_KEEP_SCREEN_ON = 5;
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
420
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
421 protected static final int COMMAND_USER = 0x8000;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
422
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
423 /**
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
424 * This method is called by SDL if SDL did not handle a message itself.
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
425 * This happens if a received message contains an unsupported command.
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
426 * Method can be overwritten to handle Messages in a different class.
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
427 * @param command the command of the message.
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
428 * @param param the parameter of the message. May be null.
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
429 * @return if the message was handled in overridden method.
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
430 */
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
431 protected boolean onUnhandledMessage(int command, Object param) {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
432 return false;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
433 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
434
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
435 /**
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
436 * A Handler class for Messages from native SDL applications.
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
437 * It uses current Activities as target (e.g. for the title).
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
438 * static to prevent implicit references to enclosing object.
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
439 */
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
440 protected static class SDLCommandHandler extends Handler {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
441 @Override
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
442 public void handleMessage(Message msg) {
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
443 Context context = SDL.getContext();
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
444 if (context == null) {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
445 Log.e(TAG, "error handling message, getContext() returned null");
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
446 return;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
447 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
448 switch (msg.arg1) {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
449 case COMMAND_CHANGE_TITLE:
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
450 if (context instanceof Activity) {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
451 ((Activity) context).setTitle((String)msg.obj);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
452 } else {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
453 Log.e(TAG, "error handling message, getContext() returned no Activity");
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
454 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
455 break;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
456 case COMMAND_TEXTEDIT_HIDE:
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
457 if (mTextEdit != null) {
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
458 // Note: On some devices setting view to GONE creates a flicker in landscape.
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
459 // Setting the View's sizes to 0 is similar to GONE but without the flicker.
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
460 // The sizes will be set to useful values when the keyboard is shown again.
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
461 mTextEdit.setLayoutParams(new RelativeLayout.LayoutParams(0, 0));
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
462
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
463 InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
464 imm.hideSoftInputFromWindow(mTextEdit.getWindowToken(), 0);
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
465
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
466 mScreenKeyboardShown = false;
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
467 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
468 break;
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
469 case COMMAND_SET_KEEP_SCREEN_ON:
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
470 {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
471 if (context instanceof Activity) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
472 Window window = ((Activity) context).getWindow();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
473 if (window != null) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
474 if ((msg.obj instanceof Integer) && (((Integer) msg.obj).intValue() != 0)) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
475 window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
476 } else {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
477 window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
478 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
479 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
480 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
481 break;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
482 }
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
483 default:
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
484 if ((context instanceof SDLActivity) && !((SDLActivity) context).onUnhandledMessage(msg.arg1, msg.obj)) {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
485 Log.e(TAG, "error handling message, command is " + msg.arg1);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
486 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
487 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
488 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
489 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
490
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
491 // Handler for the messages
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
492 Handler commandHandler = new SDLCommandHandler();
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
493
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
494 // Send a message from the SDLMain thread
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
495 boolean sendCommand(int command, Object data) {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
496 Message msg = commandHandler.obtainMessage();
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
497 msg.arg1 = command;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
498 msg.obj = data;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
499 return commandHandler.sendMessage(msg);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
500 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
501
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
502 // C functions we call
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
503 public static native int nativeSetupJNI();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
504 public static native int nativeRunMain(String library, String function, Object arguments);
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
505 public static native void nativeLowMemory();
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
506 public static native void nativeQuit();
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
507 public static native void nativePause();
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
508 public static native void nativeResume();
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
509 public static native void onNativeDropFile(String filename);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
510 public static native void onNativeResize(int x, int y, int format, float rate);
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
511 public static native void onNativeKeyDown(int keycode);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
512 public static native void onNativeKeyUp(int keycode);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
513 public static native void onNativeKeyboardFocusLost();
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
514 public static native void onNativeMouse(int button, int action, float x, float y);
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
515 public static native void onNativeTouch(int touchDevId, int pointerFingerId,
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
516 int action, float x,
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
517 float y, float p);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
518 public static native void onNativeAccel(float x, float y, float z);
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
519 public static native void onNativeClipboardChanged();
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
520 public static native void onNativeSurfaceChanged();
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
521 public static native void onNativeSurfaceDestroyed();
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
522 public static native String nativeGetHint(String name);
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
523
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
524 /**
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
525 * This method is called by SDL using JNI.
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
526 */
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
527 public static boolean setActivityTitle(String title) {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
528 // Called from SDLMain() thread and can't directly affect the view
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
529 return mSingleton.sendCommand(COMMAND_CHANGE_TITLE, title);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
530 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
531
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
532 /**
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
533 * This method is called by SDL using JNI.
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
534 * This is a static method for JNI convenience, it calls a non-static method
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
535 * so that is can be overridden
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
536 */
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
537 public static void setOrientation(int w, int h, boolean resizable, String hint)
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
538 {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
539 if (mSingleton != null) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
540 mSingleton.setOrientationBis(w, h, resizable, hint);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
541 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
542 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
543
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
544 /**
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
545 * This can be overridden
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
546 */
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
547 public void setOrientationBis(int w, int h, boolean resizable, String hint)
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
548 {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
549 int orientation = -1;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
550
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
551 if (!Objects.equals(hint, "")) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
552 if (hint.contains("LandscapeRight") && hint.contains("LandscapeLeft")) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
553 orientation = ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
554 } else if (hint.contains("LandscapeRight")) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
555 orientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
556 } else if (hint.contains("LandscapeLeft")) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
557 orientation = ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
558 } else if (hint.contains("Portrait") && hint.contains("PortraitUpsideDown")) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
559 orientation = ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
560 } else if (hint.contains("Portrait")) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
561 orientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
562 } else if (hint.contains("PortraitUpsideDown")) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
563 orientation = ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
564 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
565 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
566
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
567 /* no valid hint */
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
568 if (orientation == -1) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
569 if (resizable) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
570 /* no fixed orientation */
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
571 } else {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
572 if (w > h) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
573 orientation = ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
574 } else {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
575 orientation = ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
576 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
577 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
578 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
579
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
580 Log.v("SDL", "setOrientation() orientation=" + orientation + " width=" + w +" height="+ h +" resizable=" + resizable + " hint=" + hint);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
581 if (orientation != -1) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
582 mSingleton.setRequestedOrientation(orientation);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
583 }
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
584 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
585
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
586
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
587 /**
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
588 * This method is called by SDL using JNI.
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
589 */
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
590 public static boolean isScreenKeyboardShown()
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
591 {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
592 if (mTextEdit == null) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
593 return false;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
594 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
595
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
596 if (!mScreenKeyboardShown) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
597 return false;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
598 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
599
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
600 InputMethodManager imm = (InputMethodManager) SDL.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
601 return imm.isAcceptingText();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
602
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
603 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
604
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
605 /**
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
606 * This method is called by SDL using JNI.
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
607 */
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
608 public static boolean sendMessage(int command, int param) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
609 if (mSingleton == null) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
610 return false;
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
611 }
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
612 return mSingleton.sendCommand(command, Integer.valueOf(param));
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
613 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
614
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
615 /**
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
616 * This method is called by SDL using JNI.
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
617 */
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
618 public static Context getContext() {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
619 return SDL.getContext();
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
620 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
621
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
622 static class ShowTextInputTask implements Runnable {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
623 /*
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
624 * This is used to regulate the pan&scan method to have some offset from
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
625 * the bottom edge of the input region and the top edge of an input
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
626 * method (soft keyboard)
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
627 */
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
628 static final int HEIGHT_PADDING = 15;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
629
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
630 public int x, y, w, h;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
631
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
632 public ShowTextInputTask(int x, int y, int w, int h) {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
633 this.x = x;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
634 this.y = y;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
635 this.w = w;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
636 this.h = h;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
637 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
638
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
639 @Override
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
640 public void run() {
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
641 RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(w, h + HEIGHT_PADDING);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
642 params.leftMargin = x;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
643 params.topMargin = y;
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
644
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
645 if (mTextEdit == null) {
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
646 mTextEdit = new DummyEdit(SDL.getContext());
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
647
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
648 mLayout.addView(mTextEdit, params);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
649 } else {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
650 mTextEdit.setLayoutParams(params);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
651 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
652
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
653 mTextEdit.setVisibility(View.VISIBLE);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
654 mTextEdit.requestFocus();
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
655
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
656 InputMethodManager imm = (InputMethodManager) SDL.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
657 imm.showSoftInput(mTextEdit, 0);
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
658
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
659 mScreenKeyboardShown = true;
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
660 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
661 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
662
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
663 /**
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
664 * This method is called by SDL using JNI.
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
665 */
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
666 public static boolean showTextInput(int x, int y, int w, int h) {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
667 // Transfer the task to the main thread as a Runnable
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
668 return mSingleton.commandHandler.post(new ShowTextInputTask(x, y, w, h));
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
669 }
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
670
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
671 public static boolean isTextInputEvent(KeyEvent event) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
672
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
673 // Key pressed with Ctrl should be sent as SDL_KEYDOWN/SDL_KEYUP and not SDL_TEXTINPUT
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
674 if (android.os.Build.VERSION.SDK_INT >= 11) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
675 if (event.isCtrlPressed()) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
676 return false;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
677 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
678 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
679
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
680 return event.isPrintingKey() || event.getKeyCode() == KeyEvent.KEYCODE_SPACE;
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
681 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
682
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
683 /**
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
684 * This method is called by SDL using JNI.
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
685 */
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
686 public static Surface getNativeSurface() {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
687 if (SDLActivity.mSurface == null) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
688 return null;
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
689 }
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
690 return SDLActivity.mSurface.getNativeSurface();
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
691 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
692
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
693 // Input
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
694
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
695 /**
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
696 * This method is called by SDL using JNI.
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
697 * @return an array which may be empty but is never null.
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
698 */
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
699 public static int[] inputGetInputDeviceIds(int sources) {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
700 int[] ids = InputDevice.getDeviceIds();
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
701 int[] filtered = new int[ids.length];
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
702 int used = 0;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
703 for (int i = 0; i < ids.length; ++i) {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
704 InputDevice device = InputDevice.getDevice(ids[i]);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
705 if ((device != null) && ((device.getSources() & sources) != 0)) {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
706 filtered[used++] = device.getId();
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
707 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
708 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
709 return Arrays.copyOf(filtered, used);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
710 }
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
711
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
712 // APK expansion files support
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
713
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
714 /** com.android.vending.expansion.zipfile.ZipResourceFile object or null. */
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
715 private static Object expansionFile;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
716
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
717 /** com.android.vending.expansion.zipfile.ZipResourceFile's getInputStream() or null. */
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
718 private static Method expansionFileMethod;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
719
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
720 /**
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
721 * This method is called by SDL using JNI.
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
722 * @return an InputStream on success or null if no expansion file was used.
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
723 * @throws IOException on errors. Message is set for the SDL error message.
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
724 */
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
725 public static InputStream openAPKExpansionInputStream(String fileName) throws IOException {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
726 // Get a ZipResourceFile representing a merger of both the main and patch files
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
727 if (expansionFile == null) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
728 String mainHint = nativeGetHint("SDL_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION");
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
729 if (mainHint == null) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
730 return null; // no expansion use if no main version was set
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
731 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
732 String patchHint = nativeGetHint("SDL_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION");
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
733 if (patchHint == null) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
734 return null; // no expansion use if no patch version was set
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
735 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
736
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
737 Integer mainVersion;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
738 Integer patchVersion;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
739 try {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
740 mainVersion = Integer.valueOf(mainHint);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
741 patchVersion = Integer.valueOf(patchHint);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
742 } catch (NumberFormatException ex) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
743 ex.printStackTrace();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
744 throw new IOException("No valid file versions set for APK expansion files", ex);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
745 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
746
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
747 try {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
748 // To avoid direct dependency on Google APK expansion library that is
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
749 // not a part of Android SDK we access it using reflection
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
750 expansionFile = Class.forName("com.android.vending.expansion.zipfile.APKExpansionSupport")
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
751 .getMethod("getAPKExpansionZipFile", Context.class, int.class, int.class)
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
752 .invoke(null, SDL.getContext(), mainVersion, patchVersion);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
753
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
754 expansionFileMethod = expansionFile.getClass()
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
755 .getMethod("getInputStream", String.class);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
756 } catch (Exception ex) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
757 ex.printStackTrace();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
758 expansionFile = null;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
759 expansionFileMethod = null;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
760 throw new IOException("Could not access APK expansion support library", ex);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
761 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
762 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
763
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
764 // Get an input stream for a known file inside the expansion file ZIPs
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
765 InputStream fileStream;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
766 try {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
767 fileStream = (InputStream)expansionFileMethod.invoke(expansionFile, fileName);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
768 } catch (Exception ex) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
769 // calling "getInputStream" failed
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
770 ex.printStackTrace();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
771 throw new IOException("Could not open stream from APK expansion file", ex);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
772 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
773
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
774 if (fileStream == null) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
775 // calling "getInputStream" was successful but null was returned
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
776 throw new IOException("Could not find path in APK expansion file");
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
777 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
778
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
779 return fileStream;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
780 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
781
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
782 // Messagebox
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
783
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
784 /** Result of current messagebox. Also used for blocking the calling thread. */
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
785 protected final int[] messageboxSelection = new int[1];
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
786
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
787 /** Id of current dialog. */
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
788 protected int dialogs = 0;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
789
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
790 /**
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
791 * This method is called by SDL using JNI.
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
792 * Shows the messagebox from UI thread and block calling thread.
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
793 * buttonFlags, buttonIds and buttonTexts must have same length.
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
794 * @param buttonFlags array containing flags for every button.
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
795 * @param buttonIds array containing id for every button.
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
796 * @param buttonTexts array containing text for every button.
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
797 * @param colors null for default or array of length 5 containing colors.
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
798 * @return button id or -1.
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
799 */
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
800 public int messageboxShowMessageBox(
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
801 final int flags,
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
802 final String title,
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
803 final String message,
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
804 final int[] buttonFlags,
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
805 final int[] buttonIds,
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
806 final String[] buttonTexts,
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
807 final int[] colors) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
808
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
809 messageboxSelection[0] = -1;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
810
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
811 // sanity checks
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
812
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
813 if ((buttonFlags.length != buttonIds.length) && (buttonIds.length != buttonTexts.length)) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
814 return -1; // implementation broken
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
815 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
816
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
817 // collect arguments for Dialog
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
818
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
819 final Bundle args = new Bundle();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
820 args.putInt("flags", flags);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
821 args.putString("title", title);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
822 args.putString("message", message);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
823 args.putIntArray("buttonFlags", buttonFlags);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
824 args.putIntArray("buttonIds", buttonIds);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
825 args.putStringArray("buttonTexts", buttonTexts);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
826 args.putIntArray("colors", colors);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
827
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
828 // trigger Dialog creation on UI thread
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
829
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
830 runOnUiThread(new Runnable() {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
831 @Override
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
832 public void run() {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
833 showDialog(dialogs++, args);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
834 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
835 });
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
836
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
837 // block the calling thread
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
838
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
839 synchronized (messageboxSelection) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
840 try {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
841 messageboxSelection.wait();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
842 } catch (InterruptedException ex) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
843 ex.printStackTrace();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
844 return -1;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
845 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
846 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
847
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
848 // return selected value
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
849
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
850 return messageboxSelection[0];
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
851 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
852
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
853 @Override
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
854 protected Dialog onCreateDialog(int ignore, Bundle args) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
855
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
856 // TODO set values from "flags" to messagebox dialog
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
857
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
858 // get colors
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
859
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
860 int[] colors = args.getIntArray("colors");
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
861 int backgroundColor;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
862 int textColor;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
863 int buttonBorderColor;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
864 int buttonBackgroundColor;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
865 int buttonSelectedColor;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
866 if (colors != null) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
867 int i = -1;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
868 backgroundColor = colors[++i];
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
869 textColor = colors[++i];
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
870 buttonBorderColor = colors[++i];
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
871 buttonBackgroundColor = colors[++i];
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
872 buttonSelectedColor = colors[++i];
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
873 } else {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
874 backgroundColor = Color.TRANSPARENT;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
875 textColor = Color.TRANSPARENT;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
876 buttonBorderColor = Color.TRANSPARENT;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
877 buttonBackgroundColor = Color.TRANSPARENT;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
878 buttonSelectedColor = Color.TRANSPARENT;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
879 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
880
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
881 // create dialog with title and a listener to wake up calling thread
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
882
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
883 final Dialog dialog = new Dialog(this);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
884 dialog.setTitle(args.getString("title"));
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
885 dialog.setCancelable(false);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
886 dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
887 @Override
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
888 public void onDismiss(DialogInterface unused) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
889 synchronized (messageboxSelection) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
890 messageboxSelection.notify();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
891 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
892 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
893 });
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
894
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
895 // create text
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
896
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
897 TextView message = new TextView(this);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
898 message.setGravity(Gravity.CENTER);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
899 message.setText(args.getString("message"));
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
900 if (textColor != Color.TRANSPARENT) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
901 message.setTextColor(textColor);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
902 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
903
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
904 // create buttons
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
905
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
906 int[] buttonFlags = args.getIntArray("buttonFlags");
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
907 int[] buttonIds = args.getIntArray("buttonIds");
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
908 String[] buttonTexts = args.getStringArray("buttonTexts");
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
909
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
910 final SparseArray<Button> mapping = new SparseArray<Button>();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
911
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
912 LinearLayout buttons = new LinearLayout(this);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
913 buttons.setOrientation(LinearLayout.HORIZONTAL);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
914 buttons.setGravity(Gravity.CENTER);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
915 for (int i = 0; i < buttonTexts.length; ++i) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
916 Button button = new Button(this);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
917 final int id = buttonIds[i];
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
918 button.setOnClickListener(new View.OnClickListener() {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
919 @Override
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
920 public void onClick(View v) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
921 messageboxSelection[0] = id;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
922 dialog.dismiss();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
923 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
924 });
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
925 if (buttonFlags[i] != 0) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
926 // see SDL_messagebox.h
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
927 if ((buttonFlags[i] & 0x00000001) != 0) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
928 mapping.put(KeyEvent.KEYCODE_ENTER, button);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
929 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
930 if ((buttonFlags[i] & 0x00000002) != 0) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
931 mapping.put(KeyEvent.KEYCODE_ESCAPE, button); /* API 11 */
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
932 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
933 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
934 button.setText(buttonTexts[i]);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
935 if (textColor != Color.TRANSPARENT) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
936 button.setTextColor(textColor);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
937 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
938 if (buttonBorderColor != Color.TRANSPARENT) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
939 // TODO set color for border of messagebox button
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
940 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
941 if (buttonBackgroundColor != Color.TRANSPARENT) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
942 Drawable drawable = button.getBackground();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
943 if (drawable == null) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
944 // setting the color this way removes the style
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
945 button.setBackgroundColor(buttonBackgroundColor);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
946 } else {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
947 // setting the color this way keeps the style (gradient, padding, etc.)
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
948 drawable.setColorFilter(buttonBackgroundColor, PorterDuff.Mode.MULTIPLY);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
949 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
950 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
951 if (buttonSelectedColor != Color.TRANSPARENT) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
952 // TODO set color for selected messagebox button
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
953 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
954 buttons.addView(button);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
955 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
956
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
957 // create content
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
958
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
959 LinearLayout content = new LinearLayout(this);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
960 content.setOrientation(LinearLayout.VERTICAL);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
961 content.addView(message);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
962 content.addView(buttons);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
963 if (backgroundColor != Color.TRANSPARENT) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
964 content.setBackgroundColor(backgroundColor);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
965 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
966
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
967 // add content to dialog and return
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
968
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
969 dialog.setContentView(content);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
970 dialog.setOnKeyListener(new Dialog.OnKeyListener() {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
971 @Override
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
972 public boolean onKey(DialogInterface d, int keyCode, KeyEvent event) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
973 Button button = mapping.get(keyCode);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
974 if (button != null) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
975 if (event.getAction() == KeyEvent.ACTION_UP) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
976 button.performClick();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
977 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
978 return true; // also for ignored actions
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
979 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
980 return false;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
981 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
982 });
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
983
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
984 return dialog;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
985 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
986
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
987 /**
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
988 * This method is called by SDL using JNI.
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
989 */
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
990 public static boolean clipboardHasText() {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
991 return mClipboardHandler.clipboardHasText();
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
992 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
993
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
994 /**
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
995 * This method is called by SDL using JNI.
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
996 */
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
997 public static String clipboardGetText() {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
998 return mClipboardHandler.clipboardGetText();
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
999 }
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1000
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1001 /**
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1002 * This method is called by SDL using JNI.
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1003 */
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1004 public static void clipboardSetText(String string) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1005 mClipboardHandler.clipboardSetText(string);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1006 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1007
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1008 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1009
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1010 /**
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1011 Simple runnable to start the SDL application
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1012 */
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1013 class SDLMain implements Runnable {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1014 @Override
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1015 public void run() {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1016 // Runs SDL_main()
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1017 String library = SDLActivity.mSingleton.getMainSharedObject();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1018 String function = SDLActivity.mSingleton.getMainFunction();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1019 String[] arguments = SDLActivity.mSingleton.getArguments();
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1020
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1021 Log.v("SDL", "Running main function " + function + " from library " + library);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1022 SDLActivity.nativeRunMain(library, function, arguments);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1023
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1024 Log.v("SDL", "Finished main function");
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1025 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1026 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1027
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1028
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1029 /**
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1030 SDLSurface. This is what we draw on, so we need to know when it's created
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1031 in order to do anything useful.
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1032
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1033 Because of this, that's where we set up the SDL thread
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1034 */
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1035 class SDLSurface extends SurfaceView implements SurfaceHolder.Callback,
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1036 View.OnKeyListener, View.OnTouchListener, SensorEventListener {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1037
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1038 // Sensors
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1039 protected static SensorManager mSensorManager;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1040 protected static Display mDisplay;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1041
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1042 // Keep track of the surface size to normalize touch events
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1043 protected static float mWidth, mHeight;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1044
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1045 // Startup
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1046 public SDLSurface(Context context) {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1047 super(context);
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1048 getHolder().addCallback(this);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1049
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1050 setFocusable(true);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1051 setFocusableInTouchMode(true);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1052 requestFocus();
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1053 setOnKeyListener(this);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1054 setOnTouchListener(this);
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1055
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1056 mDisplay = ((WindowManager)context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1057 mSensorManager = (SensorManager)context.getSystemService(Context.SENSOR_SERVICE);
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1058
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1059 if (Build.VERSION.SDK_INT >= 12) {
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1060 setOnGenericMotionListener(new SDLGenericMotionListener_API12());
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1061 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1062
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1063 // Some arbitrary defaults to avoid a potential division by zero
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1064 mWidth = 1.0f;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1065 mHeight = 1.0f;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1066 }
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1067
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1068 public void handlePause() {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1069 enableSensor(Sensor.TYPE_ACCELEROMETER, false);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1070 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1071
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1072 public void handleResume() {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1073 setFocusable(true);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1074 setFocusableInTouchMode(true);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1075 requestFocus();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1076 setOnKeyListener(this);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1077 setOnTouchListener(this);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1078 enableSensor(Sensor.TYPE_ACCELEROMETER, true);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1079 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1080
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1081 public Surface getNativeSurface() {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1082 return getHolder().getSurface();
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1083 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1084
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1085 // Called when we have a valid drawing surface
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1086 @Override
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1087 public void surfaceCreated(SurfaceHolder holder) {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1088 Log.v("SDL", "surfaceCreated()");
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1089 holder.setType(SurfaceHolder.SURFACE_TYPE_GPU);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1090 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1091
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1092 // Called when we lose the surface
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1093 @Override
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1094 public void surfaceDestroyed(SurfaceHolder holder) {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1095 Log.v("SDL", "surfaceDestroyed()");
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1096
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1097 // Transition to pause, if needed
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1098 SDLActivity.mNextNativeState = SDLActivity.NativeState.PAUSED;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1099 SDLActivity.handleNativeState();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1100
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1101 SDLActivity.mIsSurfaceReady = false;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1102 SDLActivity.onNativeSurfaceDestroyed();
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1103 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1104
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1105 // Called when the surface is resized
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1106 @Override
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1107 public void surfaceChanged(SurfaceHolder holder,
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1108 int format, int width, int height) {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1109 Log.v("SDL", "surfaceChanged()");
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1110
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1111 int sdlFormat = 0x15151002; // SDL_PIXELFORMAT_RGB565 by default
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1112 switch (format) {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1113 case PixelFormat.A_8:
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1114 Log.v("SDL", "pixel format A_8");
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1115 break;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1116 case PixelFormat.LA_88:
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1117 Log.v("SDL", "pixel format LA_88");
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1118 break;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1119 case PixelFormat.L_8:
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1120 Log.v("SDL", "pixel format L_8");
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1121 break;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1122 case PixelFormat.RGBA_4444:
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1123 Log.v("SDL", "pixel format RGBA_4444");
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1124 sdlFormat = 0x15421002; // SDL_PIXELFORMAT_RGBA4444
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1125 break;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1126 case PixelFormat.RGBA_5551:
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1127 Log.v("SDL", "pixel format RGBA_5551");
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1128 sdlFormat = 0x15441002; // SDL_PIXELFORMAT_RGBA5551
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1129 break;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1130 case PixelFormat.RGBA_8888:
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1131 Log.v("SDL", "pixel format RGBA_8888");
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1132 sdlFormat = 0x16462004; // SDL_PIXELFORMAT_RGBA8888
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1133 break;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1134 case PixelFormat.RGBX_8888:
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1135 Log.v("SDL", "pixel format RGBX_8888");
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1136 sdlFormat = 0x16261804; // SDL_PIXELFORMAT_RGBX8888
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1137 break;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1138 case PixelFormat.RGB_332:
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1139 Log.v("SDL", "pixel format RGB_332");
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1140 sdlFormat = 0x14110801; // SDL_PIXELFORMAT_RGB332
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1141 break;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1142 case PixelFormat.RGB_565:
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1143 Log.v("SDL", "pixel format RGB_565");
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1144 sdlFormat = 0x15151002; // SDL_PIXELFORMAT_RGB565
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1145 break;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1146 case PixelFormat.RGB_888:
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1147 Log.v("SDL", "pixel format RGB_888");
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1148 // Not sure this is right, maybe SDL_PIXELFORMAT_RGB24 instead?
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1149 sdlFormat = 0x16161804; // SDL_PIXELFORMAT_RGB888
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1150 break;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1151 default:
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1152 Log.v("SDL", "pixel format unknown " + format);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1153 break;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1154 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1155
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1156 mWidth = width;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1157 mHeight = height;
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1158 SDLActivity.onNativeResize(width, height, sdlFormat, mDisplay.getRefreshRate());
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1159 Log.v("SDL", "Window size: " + width + "x" + height);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1160
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1161
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1162 boolean skip = false;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1163 int requestedOrientation = SDLActivity.mSingleton.getRequestedOrientation();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1164
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1165 if (requestedOrientation == ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED)
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1166 {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1167 // Accept any
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1168 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1169 else if (requestedOrientation == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT || requestedOrientation == ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT)
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1170 {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1171 if (mWidth > mHeight) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1172 skip = true;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1173 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1174 } else if (requestedOrientation == ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE || requestedOrientation == ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1175 if (mWidth < mHeight) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1176 skip = true;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1177 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1178 }
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1179
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1180 // Special Patch for Square Resolution: Black Berry Passport
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1181 if (skip) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1182 double min = Math.min(mWidth, mHeight);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1183 double max = Math.max(mWidth, mHeight);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1184
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1185 if (max / min < 1.20) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1186 Log.v("SDL", "Don't skip on such aspect-ratio. Could be a square resolution.");
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1187 skip = false;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1188 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1189 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1190
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1191 if (skip) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1192 Log.v("SDL", "Skip .. Surface is not ready.");
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1193 SDLActivity.mIsSurfaceReady = false;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1194 return;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1195 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1196
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1197 /* Surface is ready */
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1198 SDLActivity.mIsSurfaceReady = true;
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1199
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1200 /* If the surface has been previously destroyed by onNativeSurfaceDestroyed, recreate it here */
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1201 SDLActivity.onNativeSurfaceChanged();
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1202
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1203 SDLActivity.handleNativeState();
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1204 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1205
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1206 // Key events
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1207 @Override
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1208 public boolean onKey(View v, int keyCode, KeyEvent event) {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1209 // Dispatch the different events depending on where they come from
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1210 // Some SOURCE_JOYSTICK, SOURCE_DPAD or SOURCE_GAMEPAD are also SOURCE_KEYBOARD
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1211 // So, we try to process them as JOYSTICK/DPAD/GAMEPAD events first, if that fails we try them as KEYBOARD
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1212 //
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1213 // Furthermore, it's possible a game controller has SOURCE_KEYBOARD and
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1214 // SOURCE_JOYSTICK, while its key events arrive from the keyboard source
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1215 // So, retrieve the device itself and check all of its sources
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1216 if (SDLControllerManager.isDeviceSDLJoystick(event.getDeviceId())) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1217 // Note that we process events with specific key codes here
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1218 if (event.getAction() == KeyEvent.ACTION_DOWN) {
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1219 if (SDLControllerManager.onNativePadDown(event.getDeviceId(), keyCode) == 0) {
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1220 return true;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1221 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1222 } else if (event.getAction() == KeyEvent.ACTION_UP) {
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1223 if (SDLControllerManager.onNativePadUp(event.getDeviceId(), keyCode) == 0) {
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1224 return true;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1225 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1226 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1227 }
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1228
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1229 if ((event.getSource() & InputDevice.SOURCE_KEYBOARD) != 0) {
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1230 if (event.getAction() == KeyEvent.ACTION_DOWN) {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1231 //Log.v("SDL", "key down: " + keyCode);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1232 SDLActivity.onNativeKeyDown(keyCode);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1233 return true;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1234 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1235 else if (event.getAction() == KeyEvent.ACTION_UP) {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1236 //Log.v("SDL", "key up: " + keyCode);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1237 SDLActivity.onNativeKeyUp(keyCode);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1238 return true;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1239 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1240 }
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1241
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1242 if ((event.getSource() & InputDevice.SOURCE_MOUSE) != 0) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1243 // on some devices key events are sent for mouse BUTTON_BACK/FORWARD presses
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1244 // they are ignored here because sending them as mouse input to SDL is messy
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1245 if ((keyCode == KeyEvent.KEYCODE_BACK) || (keyCode == KeyEvent.KEYCODE_FORWARD)) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1246 switch (event.getAction()) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1247 case KeyEvent.ACTION_DOWN:
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1248 case KeyEvent.ACTION_UP:
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1249 // mark the event as handled or it will be handled by system
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1250 // handling KEYCODE_BACK by system will call onBackPressed()
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1251 return true;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1252 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1253 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1254 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1255
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1256 return false;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1257 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1258
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1259 // Touch events
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1260 @Override
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1261 public boolean onTouch(View v, MotionEvent event) {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1262 /* Ref: http://developer.android.com/training/gestures/multi.html */
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1263 final int touchDevId = event.getDeviceId();
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1264 final int pointerCount = event.getPointerCount();
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1265 int action = event.getActionMasked();
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1266 int pointerFingerId;
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1267 int mouseButton;
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1268 int i = -1;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1269 float x,y,p;
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1270
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1271 // !!! FIXME: dump this SDK check after 2.0.4 ships and require API14.
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1272 if (event.getSource() == InputDevice.SOURCE_MOUSE && SDLActivity.mSeparateMouseAndTouch) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1273 if (Build.VERSION.SDK_INT < 14) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1274 mouseButton = 1; // all mouse buttons are the left button
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1275 } else {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1276 try {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1277 mouseButton = (Integer) event.getClass().getMethod("getButtonState").invoke(event);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1278 } catch(Exception e) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1279 mouseButton = 1; // oh well.
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1280 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1281 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1282 SDLActivity.onNativeMouse(mouseButton, action, event.getX(0), event.getY(0));
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1283 } else {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1284 switch(action) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1285 case MotionEvent.ACTION_MOVE:
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1286 for (i = 0; i < pointerCount; i++) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1287 pointerFingerId = event.getPointerId(i);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1288 x = event.getX(i) / mWidth;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1289 y = event.getY(i) / mHeight;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1290 p = event.getPressure(i);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1291 if (p > 1.0f) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1292 // may be larger than 1.0f on some devices
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1293 // see the documentation of getPressure(i)
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1294 p = 1.0f;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1295 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1296 SDLActivity.onNativeTouch(touchDevId, pointerFingerId, action, x, y, p);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1297 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1298 break;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1299
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1300 case MotionEvent.ACTION_UP:
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1301 case MotionEvent.ACTION_DOWN:
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1302 // Primary pointer up/down, the index is always zero
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1303 i = 0;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1304 case MotionEvent.ACTION_POINTER_UP:
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1305 case MotionEvent.ACTION_POINTER_DOWN:
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1306 // Non primary pointer up/down
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1307 if (i == -1) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1308 i = event.getActionIndex();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1309 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1310
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1311 pointerFingerId = event.getPointerId(i);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1312 x = event.getX(i) / mWidth;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1313 y = event.getY(i) / mHeight;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1314 p = event.getPressure(i);
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1315 if (p > 1.0f) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1316 // may be larger than 1.0f on some devices
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1317 // see the documentation of getPressure(i)
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1318 p = 1.0f;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1319 }
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1320 SDLActivity.onNativeTouch(touchDevId, pointerFingerId, action, x, y, p);
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1321 break;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1322
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1323 case MotionEvent.ACTION_CANCEL:
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1324 for (i = 0; i < pointerCount; i++) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1325 pointerFingerId = event.getPointerId(i);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1326 x = event.getX(i) / mWidth;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1327 y = event.getY(i) / mHeight;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1328 p = event.getPressure(i);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1329 if (p > 1.0f) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1330 // may be larger than 1.0f on some devices
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1331 // see the documentation of getPressure(i)
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1332 p = 1.0f;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1333 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1334 SDLActivity.onNativeTouch(touchDevId, pointerFingerId, MotionEvent.ACTION_UP, x, y, p);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1335 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1336 break;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1337
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1338 default:
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1339 break;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1340 }
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1341 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1342
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1343 return true;
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1344 }
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1345
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1346 // Sensor events
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1347 public void enableSensor(int sensortype, boolean enabled) {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1348 // TODO: This uses getDefaultSensor - what if we have >1 accels?
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1349 if (enabled) {
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1350 mSensorManager.registerListener(this,
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1351 mSensorManager.getDefaultSensor(sensortype),
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1352 SensorManager.SENSOR_DELAY_GAME, null);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1353 } else {
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1354 mSensorManager.unregisterListener(this,
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1355 mSensorManager.getDefaultSensor(sensortype));
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1356 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1357 }
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1358
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1359 @Override
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1360 public void onAccuracyChanged(Sensor sensor, int accuracy) {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1361 // TODO
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1362 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1363
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1364 @Override
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1365 public void onSensorChanged(SensorEvent event) {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1366 if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1367 float x, y;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1368 switch (mDisplay.getRotation()) {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1369 case Surface.ROTATION_90:
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1370 x = -event.values[1];
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1371 y = event.values[0];
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1372 break;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1373 case Surface.ROTATION_270:
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1374 x = event.values[1];
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1375 y = -event.values[0];
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1376 break;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1377 case Surface.ROTATION_180:
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1378 x = -event.values[1];
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1379 y = -event.values[0];
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1380 break;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1381 default:
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1382 x = event.values[0];
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1383 y = event.values[1];
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1384 break;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1385 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1386 SDLActivity.onNativeAccel(-x / SensorManager.GRAVITY_EARTH,
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1387 y / SensorManager.GRAVITY_EARTH,
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1388 event.values[2] / SensorManager.GRAVITY_EARTH);
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1389 }
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1390 }
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1391 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1392
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1393 /* This is a fake invisible editor view that receives the input and defines the
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1394 * pan&scan region
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1395 */
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1396 class DummyEdit extends View implements View.OnKeyListener {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1397 InputConnection ic;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1398
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1399 public DummyEdit(Context context) {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1400 super(context);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1401 setFocusableInTouchMode(true);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1402 setFocusable(true);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1403 setOnKeyListener(this);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1404 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1405
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1406 @Override
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1407 public boolean onCheckIsTextEditor() {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1408 return true;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1409 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1410
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1411 @Override
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1412 public boolean onKey(View v, int keyCode, KeyEvent event) {
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1413 /*
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1414 * This handles the hardware keyboard input
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1415 */
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1416 if (event.getAction() == KeyEvent.ACTION_DOWN) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1417 if (SDLActivity.isTextInputEvent(event)) {
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1418 ic.commitText(String.valueOf((char) event.getUnicodeChar()), 1);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1419 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1420 SDLActivity.onNativeKeyDown(keyCode);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1421 return true;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1422 } else if (event.getAction() == KeyEvent.ACTION_UP) {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1423 SDLActivity.onNativeKeyUp(keyCode);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1424 return true;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1425 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1426 return false;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1427 }
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1428
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1429 //
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1430 @Override
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1431 public boolean onKeyPreIme (int keyCode, KeyEvent event) {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1432 // As seen on StackOverflow: http://stackoverflow.com/questions/7634346/keyboard-hide-event
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1433 // FIXME: Discussion at http://bugzilla.libsdl.org/show_bug.cgi?id=1639
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1434 // FIXME: This is not a 100% effective solution to the problem of detecting if the keyboard is showing or not
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1435 // FIXME: A more effective solution would be to assume our Layout to be RelativeLayout or LinearLayout
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1436 // FIXME: And determine the keyboard presence doing this: http://stackoverflow.com/questions/2150078/how-to-check-visibility-of-software-keyboard-in-android
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1437 // FIXME: An even more effective way would be if Android provided this out of the box, but where would the fun be in that :)
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1438 if (event.getAction()==KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK) {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1439 if (SDLActivity.mTextEdit != null && SDLActivity.mTextEdit.getVisibility() == View.VISIBLE) {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1440 SDLActivity.onNativeKeyboardFocusLost();
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1441 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1442 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1443 return super.onKeyPreIme(keyCode, event);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1444 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1445
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1446 @Override
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1447 public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1448 ic = new SDLInputConnection(this, true);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1449
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1450 outAttrs.inputType = InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD;
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1451 outAttrs.imeOptions = EditorInfo.IME_FLAG_NO_EXTRACT_UI
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1452 | EditorInfo.IME_FLAG_NO_FULLSCREEN /* API 11 */;
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1453
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1454 return ic;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1455 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1456 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1457
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1458 class SDLInputConnection extends BaseInputConnection {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1459
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1460 public SDLInputConnection(View targetView, boolean fullEditor) {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1461 super(targetView, fullEditor);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1462
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1463 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1464
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1465 @Override
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1466 public boolean sendKeyEvent(KeyEvent event) {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1467 /*
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1468 * This handles the keycodes from soft keyboard (and IME-translated input from hardkeyboard)
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1469 */
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1470 int keyCode = event.getKeyCode();
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1471 if (event.getAction() == KeyEvent.ACTION_DOWN) {
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1472 if (SDLActivity.isTextInputEvent(event)) {
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1473 commitText(String.valueOf((char) event.getUnicodeChar()), 1);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1474 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1475 SDLActivity.onNativeKeyDown(keyCode);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1476 return true;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1477 } else if (event.getAction() == KeyEvent.ACTION_UP) {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1478 SDLActivity.onNativeKeyUp(keyCode);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1479 return true;
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1480 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1481 return super.sendKeyEvent(event);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1482 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1483
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1484 @Override
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1485 public boolean commitText(CharSequence text, int newCursorPosition) {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1486
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1487 nativeCommitText(text.toString(), newCursorPosition);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1488
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1489 return super.commitText(text, newCursorPosition);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1490 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1491
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1492 @Override
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1493 public boolean setComposingText(CharSequence text, int newCursorPosition) {
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1494
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1495 nativeSetComposingText(text.toString(), newCursorPosition);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1496
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1497 return super.setComposingText(text, newCursorPosition);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1498 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1499
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1500 public native void nativeCommitText(String text, int newCursorPosition);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1501
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1502 public native void nativeSetComposingText(String text, int newCursorPosition);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1503
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1504 @Override
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1505 public boolean deleteSurroundingText(int beforeLength, int afterLength) {
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1506 // Workaround to capture backspace key. Ref: http://stackoverflow.com/questions/14560344/android-backspace-in-webview-baseinputconnection
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1507 // and https://bugzilla.libsdl.org/show_bug.cgi?id=2265
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1508 if (beforeLength > 0 && afterLength == 0) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1509 boolean ret = true;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1510 // backspace(s)
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1511 while (beforeLength-- > 0) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1512 boolean ret_key = sendKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DEL))
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1513 && sendKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_DEL));
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1514 ret = ret && ret_key;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1515 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1516 return ret;
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1517 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1518
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1519 return super.deleteSurroundingText(beforeLength, afterLength);
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1520 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1521 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1522
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1523 interface SDLClipboardHandler {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1524
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1525 public boolean clipboardHasText();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1526 public String clipboardGetText();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1527 public void clipboardSetText(String string);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1528
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1529 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1530
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1531
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1532 class SDLClipboardHandler_API11 implements
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1533 SDLClipboardHandler,
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1534 android.content.ClipboardManager.OnPrimaryClipChangedListener {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1535
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1536 protected android.content.ClipboardManager mClipMgr;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1537
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1538 SDLClipboardHandler_API11() {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1539 mClipMgr = (android.content.ClipboardManager) SDL.getContext().getSystemService(Context.CLIPBOARD_SERVICE);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1540 mClipMgr.addPrimaryClipChangedListener(this);
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1541 }
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1542
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1543 @Override
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1544 public boolean clipboardHasText() {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1545 return mClipMgr.hasText();
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1546 }
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1547
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1548 @Override
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1549 public String clipboardGetText() {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1550 CharSequence text;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1551 text = mClipMgr.getText();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1552 if (text != null) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1553 return text.toString();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1554 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1555 return null;
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1556 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1557
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1558 @Override
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1559 public void clipboardSetText(String string) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1560 mClipMgr.removePrimaryClipChangedListener(this);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1561 mClipMgr.setText(string);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1562 mClipMgr.addPrimaryClipChangedListener(this);
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1563 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1564
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1565 @Override
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1566 public void onPrimaryClipChanged() {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1567 SDLActivity.onNativeClipboardChanged();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1568 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1569
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1570 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1571
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1572 class SDLClipboardHandler_Old implements
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1573 SDLClipboardHandler {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1574
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1575 protected android.text.ClipboardManager mClipMgrOld;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1576
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1577 SDLClipboardHandler_Old() {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1578 mClipMgrOld = (android.text.ClipboardManager) SDL.getContext().getSystemService(Context.CLIPBOARD_SERVICE);
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1579 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1580
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1581 @Override
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1582 public boolean clipboardHasText() {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1583 return mClipMgrOld.hasText();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1584 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1585
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1586 @Override
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1587 public String clipboardGetText() {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1588 CharSequence text;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1589 text = mClipMgrOld.getText();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1590 if (text != null) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1591 return text.toString();
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1592 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1593 return null;
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1594 }
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1595
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1596 @Override
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1597 public void clipboardSetText(String string) {
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1598 mClipMgrOld.setText(string);
856
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1599 }
09f5a349e881 Added android project layout
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1600 }
1839
78abbabfd58d Get Android build working again and update for SDL 2.0.7 (last version to support older versions of Android)
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
1601