am 98b2c359: Copy over updated NDK APIs and follow other API changes.
Merge commit '98b2c359c2b3361f43e14b0c5d07a02c055dd10e' into gingerbread-plus-aosp
* commit '98b2c359c2b3361f43e14b0c5d07a02c055dd10e':
Copy over updated NDK APIs and follow other API changes.
diff --git a/ndk/platforms/android-9/arch-arm/usr/include/android/native_activity.h b/ndk/platforms/android-9/arch-arm/usr/include/android/native_activity.h
index d0ff052..ea6f05f 100644
--- a/ndk/platforms/android-9/arch-arm/usr/include/android/native_activity.h
+++ b/ndk/platforms/android-9/arch-arm/usr/include/android/native_activity.h
@@ -147,6 +147,21 @@
void (*onNativeWindowCreated)(ANativeActivity* activity, ANativeWindow* window);
/**
+ * The drawing window for this native activity has been resized. You should
+ * retrieve the new size from the window and ensure that your rendering in
+ * it now matches.
+ */
+ void (*onNativeWindowResized)(ANativeActivity* activity, ANativeWindow* window);
+
+ /**
+ * The drawing window for this native activity needs to be redrawn. To avoid
+ * transient artifacts during screen changes (such resizing after rotation),
+ * applications should not return from this function until they have finished
+ * drawing their window in its current state.
+ */
+ void (*onNativeWindowRedrawNeeded)(ANativeActivity* activity, ANativeWindow* window);
+
+ /**
* The drawing window for this native activity is going to be destroyed.
* You MUST ensure that you do not touch the window object after returning
* from this function: in the common case of drawing to the window from
@@ -170,6 +185,11 @@
void (*onInputQueueDestroyed)(ANativeActivity* activity, AInputQueue* queue);
/**
+ * The rectangle in the window in which content should be placed has changed.
+ */
+ void (*onContentRectChanged)(ANativeActivity* activity, const ARect* rect);
+
+ /**
* The system is running low on memory. Use this callback to release
* resources you do not need, to help the system avoid killing more
* important processes.
@@ -197,6 +217,28 @@
void ANativeActivity_setWindowFlags(ANativeActivity* activity,
uint32_t addFlags, uint32_t removeFlags);
+/**
+ * Flags for ANativeActivity_showSoftInput; see the Java InputMethodManager
+ * API for documentation.
+ */
+enum {
+ ANATIVEACTIVITY_SHOW_SOFT_INPUT_IMPLICIT = 0x0001,
+ ANATIVEACTIVITY_SHOW_SOFT_INPUT_FORCED = 0x0002,
+};
+
+void ANativeActivity_showSoftInput(ANativeActivity* activity, uint32_t flags);
+
+/**
+ * Flags for ANativeActivity_hideSoftInput; see the Java InputMethodManager
+ * API for documentation.
+ */
+enum {
+ ANATIVEACTIVITY_HIDE_SOFT_INPUT_IMPLICIT_ONLY = 0x0001,
+ ANATIVEACTIVITY_HIDE_SOFT_INPUT_NOT_ALWAYS = 0x0002,
+};
+
+void ANativeActivity_hideSoftInput(ANativeActivity* activity, uint32_t flags);
+
#ifdef __cplusplus
};
#endif
diff --git a/ndk/platforms/android-9/arch-arm/usr/include/android_glue/threaded_app.h b/ndk/platforms/android-9/arch-arm/usr/include/android_glue/threaded_app.h
index adfdbea..2b58e9c 100644
--- a/ndk/platforms/android-9/arch-arm/usr/include/android_glue/threaded_app.h
+++ b/ndk/platforms/android-9/arch-arm/usr/include/android_glue/threaded_app.h
@@ -48,6 +48,10 @@
// When non-NULL, this is the window surface that the app can draw in.
ANativeWindow* window;
+ // Current content rectangle of the window; this is the area where the
+ // window's content should be placed to be seen by the user.
+ ARect contentRect;
+
// Current state of the app's activity. May be either APP_CMD_START,
// APP_CMD_RESUME, APP_CMD_PAUSE, or APP_CMD_STOP; see below.
int activityState;
@@ -69,8 +73,10 @@
int running;
int destroyed;
+ int redrawNeeded;
AInputQueue* pendingInputQueue;
ANativeWindow* pendingWindow;
+ ARect pendingContentRect;
};
enum {
@@ -105,6 +111,26 @@
APP_CMD_WINDOW_CHANGED,
/**
+ * Command from main thread: the current ANativeWindow has been resized.
+ * Please redraw with its new size.
+ */
+ APP_CMD_WINDOW_RESIZED,
+
+ /**
+ * Command from main thread: the system needs that the current ANativeWindow
+ * be redrawn. You should redraw the window before handing this to
+ * android_app_exec_cmd() in order to avoid transient drawing glitches.
+ */
+ APP_CMD_WINDOW_REDRAW_NEEDED,
+
+ /**
+ * Command from main thread: the content area of the window has changed,
+ * such as from the soft input window being shown or hidden. You can
+ * find the new content rect in android_app::contentRect.
+ */
+ APP_CMD_CONTENT_RECT_CHANGED,
+
+ /**
* Command from main thread: the app's activity window has gained
* input focus.
*/
@@ -117,6 +143,12 @@
APP_CMD_LOST_FOCUS,
/**
+ * Command from main thread: the system is running low on memory.
+ * Try to reduce your memory use.
+ */
+ APP_CMD_LOW_MEMORY,
+
+ /**
* Command from main thread: the app's activity has been started.
*/
APP_CMD_START,
diff --git a/ndk/platforms/android-9/arch-arm/usr/lib/libandroid.so b/ndk/platforms/android-9/arch-arm/usr/lib/libandroid.so
index ba26010..d79ec89 100644
--- a/ndk/platforms/android-9/arch-arm/usr/lib/libandroid.so
+++ b/ndk/platforms/android-9/arch-arm/usr/lib/libandroid.so
Binary files differ
diff --git a/ndk/platforms/android-9/arch-arm/usr/lib/libthreaded_app.a b/ndk/platforms/android-9/arch-arm/usr/lib/libthreaded_app.a
index ad55439..d3073db 100644
--- a/ndk/platforms/android-9/arch-arm/usr/lib/libthreaded_app.a
+++ b/ndk/platforms/android-9/arch-arm/usr/lib/libthreaded_app.a
Binary files differ
diff --git a/ndk/samples/bitmap-plasma/default.properties b/ndk/samples/bitmap-plasma/default.properties
index 9d135cb..9a2c9f6 100644
--- a/ndk/samples/bitmap-plasma/default.properties
+++ b/ndk/samples/bitmap-plasma/default.properties
@@ -8,4 +8,4 @@
# project structure.
# Project target.
-target=android-7
+target=android-9
diff --git a/ndk/samples/native-plasma/jni/plasma.c b/ndk/samples/native-plasma/jni/plasma.c
index 964b892..dcc8f6f 100644
--- a/ndk/samples/native-plasma/jni/plasma.c
+++ b/ndk/samples/native-plasma/jni/plasma.c
@@ -202,9 +202,9 @@
#define YT2_INCR FIXED_FROM_FLOAT(1/163.)
void* pixels = buffer->bits;
- LOGI("width=%d height=%d stride=%d format=%d", buffer->width, buffer->height,
- buffer->stride, buffer->format);
-
+ //LOGI("width=%d height=%d stride=%d format=%d", buffer->width, buffer->height,
+ // buffer->stride, buffer->format);
+
int yy;
for (yy = 0; yy < buffer->height; yy++) {
uint16_t* line = (uint16_t*)pixels;
@@ -417,6 +417,12 @@
if (AInputEvent_getType(event) == INPUT_EVENT_TYPE_MOTION) {
engine->animating = 1;
AInputQueue_finishEvent(engine->app->inputQueue, event, 1);
+ } else if (AInputEvent_getType(event) == INPUT_EVENT_TYPE_KEY) {
+ LOGI("Key event: action=%d keyCode=%d metaState=0x%x",
+ AKeyEvent_getAction(event),
+ AKeyEvent_getKeyCode(event),
+ AKeyEvent_getMetaState(event));
+ AInputQueue_finishEvent(engine->app->inputQueue, event, 0);
} else {
AInputQueue_finishEvent(engine->app->inputQueue, event, 0);
}
diff --git a/samples/ApiDemos/src/com/example/android/apis/graphics/WindowSurface.java b/samples/ApiDemos/src/com/example/android/apis/graphics/WindowSurface.java
index 7829ec9..305147c 100644
--- a/samples/ApiDemos/src/com/example/android/apis/graphics/WindowSurface.java
+++ b/samples/ApiDemos/src/com/example/android/apis/graphics/WindowSurface.java
@@ -13,7 +13,7 @@
* Demonstrates how to take over the Surface from a window to do direct
* drawing to it (without going through the view hierarchy).
*/
-public class WindowSurface extends Activity implements SurfaceHolder.Callback {
+public class WindowSurface extends Activity implements SurfaceHolder.Callback2 {
DrawingThread mDrawingThread;
@Override
@@ -76,6 +76,9 @@
// new sizes from the canvas.
}
+ public void surfaceRedrawNeeded(SurfaceHolder holder) {
+ }
+
public void surfaceDestroyed(SurfaceHolder holder) {
// We need to tell the drawing thread to stop, and block until
// it has done so.