Mercurial > repos > blastem
annotate android/src/org/libsdl/app/SDLActivity.java @ 2048:ed9a6de28158 mame_interp
Always use "call" style interp generation from CPU DSL and default to NEW_CORE in mame_interp branch
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Tue, 21 Sep 2021 23:28:54 -0700 |
parents | 13abdc98379e |
children |
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 |