Use native side asset extraction.

This commit is contained in:
Themaister 2013-10-14 21:08:41 +02:00
parent 299ef54a54
commit 7df4500024
13 changed files with 438 additions and 346 deletions

View File

@ -5,23 +5,23 @@ HAVE_LOGGER := 1
include $(CLEAR_VARS) include $(CLEAR_VARS)
ifeq ($(TARGET_ARCH),arm) ifeq ($(TARGET_ARCH),arm)
LOCAL_CFLAGS += -DANDROID_ARM -marm LOCAL_CFLAGS += -DANDROID_ARM -marm
LOCAL_ARM_MODE := arm LOCAL_ARM_MODE := arm
endif endif
ifeq ($(TARGET_ARCH),x86) ifeq ($(TARGET_ARCH),x86)
LOCAL_CFLAGS += -DANDROID_X86 -DHAVE_SSSE3 LOCAL_CFLAGS += -DANDROID_X86 -DHAVE_SSSE3
endif endif
ifeq ($(TARGET_ARCH_ABI),armeabi-v7a) ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
ifeq ($(HAVE_NEON),1) ifeq ($(HAVE_NEON),1)
LOCAL_CFLAGS += -DHAVE_NEON LOCAL_CFLAGS += -DHAVE_NEON
LOCAL_SRC_FILES += ../../../audio/utils_neon.S.neon LOCAL_SRC_FILES += ../../../audio/utils_neon.S.neon
endif endif
ifeq ($(HAVE_NEON),1) ifeq ($(HAVE_NEON),1)
LOCAL_SRC_FILES += ../../../audio/sinc_neon.S.neon LOCAL_SRC_FILES += ../../../audio/sinc_neon.S.neon
endif endif
LOCAL_CFLAGS += -DSINC_LOWER_QUALITY LOCAL_CFLAGS += -DSINC_LOWER_QUALITY
@ -30,7 +30,7 @@ endif
ifeq ($(TARGET_ARCH),mips) ifeq ($(TARGET_ARCH),mips)
LOCAL_CFLAGS += -DANDROID_MIPS -D__mips__ -D__MIPSEL__ LOCAL_CFLAGS += -DANDROID_MIPS -D__mips__ -D__MIPSEL__
endif endif
LOCAL_MODULE := retroarch-activity LOCAL_MODULE := retroarch-activity
@ -39,12 +39,12 @@ RARCH_PATH := ../../..
LOCAL_SRC_FILES += $(RARCH_PATH)/griffin/griffin.c LOCAL_SRC_FILES += $(RARCH_PATH)/griffin/griffin.c
ifeq ($(HAVE_LOGGER), 1) ifeq ($(HAVE_LOGGER), 1)
LOCAL_CFLAGS += -DHAVE_LOGGER LOCAL_CFLAGS += -DHAVE_LOGGER
LOGGER_LDLIBS := -llog LOGGER_LDLIBS := -llog
endif endif
ifeq ($(PERF_TEST), 1) ifeq ($(PERF_TEST), 1)
LOCAL_CFLAGS += -DPERF_TEST LOCAL_CFLAGS += -DPERF_TEST
endif endif
LOCAL_CFLAGS += -Wall -pthread -Wno-unused-function -O3 -fno-stack-protector -funroll-loops -DNDEBUG -DRARCH_MOBILE -DHAVE_GRIFFIN -DANDROID -DHAVE_DYNAMIC -DHAVE_OPENGL -DHAVE_FBO -DHAVE_OVERLAY -DHAVE_OPENGLES -DHAVE_VID_CONTEXT -DHAVE_OPENGLES2 -DGLSL_DEBUG -DHAVE_GLSL -DHAVE_RGUI -DHAVE_SCREENSHOTS -DWANT_MINIZ -DHAVE_ZLIB -DINLINE=inline -DLSB_FIRST -DHAVE_THREADS -D__LIBRETRO__ -std=gnu99 -I../../../deps/miniz LOCAL_CFLAGS += -Wall -pthread -Wno-unused-function -O3 -fno-stack-protector -funroll-loops -DNDEBUG -DRARCH_MOBILE -DHAVE_GRIFFIN -DANDROID -DHAVE_DYNAMIC -DHAVE_OPENGL -DHAVE_FBO -DHAVE_OVERLAY -DHAVE_OPENGLES -DHAVE_VID_CONTEXT -DHAVE_OPENGLES2 -DGLSL_DEBUG -DHAVE_GLSL -DHAVE_RGUI -DHAVE_SCREENSHOTS -DWANT_MINIZ -DHAVE_ZLIB -DINLINE=inline -DLSB_FIRST -DHAVE_THREADS -D__LIBRETRO__ -std=gnu99 -I../../../deps/miniz
@ -55,3 +55,4 @@ LOCAL_CFLAGS += -DHAVE_SL
LOCAL_LDLIBS += -lOpenSLES LOCAL_LDLIBS += -lOpenSLES
include $(BUILD_SHARED_LIBRARY) include $(BUILD_SHARED_LIBRARY)

View File

@ -1,12 +1,14 @@
LOCAL_PATH := $(call my-dir) LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_ARM_MODE := arm
LOCAL_MODULE := apk-extract
RARCH_DIR := $(LOCAL_PATH)/../../..
LOCAL_CFLAGS += -std=gnu99 -Wall -DHAVE_LOGGER -DRARCH_DUMMY_LOG -DHAVE_ZLIB -DHAVE_MMAP -I$(RARCH_DIR)
LOCAL_LDLIBS := -llog -lz
LOCAL_SRC_FILES := apk-extract/apk-extract.c $(RARCH_DIR)/file_extract.c $(RARCH_DIR)/file_path.c $(RARCH_DIR)/compat/compat.c
include $(BUILD_SHARED_LIBRARY)
include $(LOCAL_PATH)/../../native/jni/Android.mk include $(LOCAL_PATH)/../../native/jni/Android.mk
# Include all present sub-modules
FOCAL_PATH := $(LOCAL_PATH)
define function
$(eval RETRO_MODULE_OBJECT := $(1))
$(eval include $(FOCAL_PATH)/modules/Android.mk)
endef
$(foreach m,$(wildcard $(FOCAL_PATH)/modules/*.so),$(eval $(call function,$(m))))

View File

@ -0,0 +1,88 @@
#include "file_extract.h"
#include "file.h"
#include <stdio.h>
#include "org_retroarch_browser_AssetExtractor.h"
struct userdata
{
const char *subdir;
const char *dest;
};
static bool zlib_cb(const char *name, const uint8_t *cdata, unsigned cmode, uint32_t csize, uint32_t size,
uint32_t crc32, void *userdata)
{
struct userdata *user = userdata;
const char *subdir = user->subdir;
const char *dest = user->dest;
if (strstr(name, subdir) != name)
return true;
name += strlen(subdir) + 1;
char path[PATH_MAX];
char path_dir[PATH_MAX];
fill_pathname_join(path, dest, name, sizeof(path));
fill_pathname_basedir(path_dir, path, sizeof(path_dir));
if (!path_mkdir(path_dir))
{
RARCH_ERR("Failed to create dir: %s.\n", path_dir);
return false;
}
RARCH_LOG("Extracting %s -> %s ...\n", name, path);
switch (cmode)
{
case 0: // Uncompressed
if (!write_file(path, cdata, size))
{
RARCH_ERR("Failed to write file: %s.\n", path);
return false;
}
break;
case 8: // Deflate
if (!zlib_inflate_data_to_file(path, cdata, csize, size, crc32))
{
RARCH_ERR("Failed to deflate to: %s.\n", path);
return false;
}
break;
default:
return false;
}
return true;
}
JNIEXPORT jboolean JNICALL Java_org_retroarch_browser_AssetExtractor_extractArchiveTo(
JNIEnv *env, jclass cls, jstring archive, jstring subdir, jstring dest)
{
const char *archive_c = (*env)->GetStringUTFChars(env, archive, NULL);
const char *subdir_c = (*env)->GetStringUTFChars(env, subdir, NULL);
const char *dest_c = (*env)->GetStringUTFChars(env, dest, NULL);
jboolean ret = JNI_TRUE;
struct userdata data = {
.subdir = subdir_c,
.dest = dest_c,
};
if (!zlib_parse_file(archive_c, zlib_cb, &data))
{
RARCH_ERR("Failed to parse APK: %s.\n", archive_c);
ret = JNI_FALSE;
}
(*env)->ReleaseStringUTFChars(env, archive, archive_c);
(*env)->ReleaseStringUTFChars(env, subdir, subdir_c);
(*env)->ReleaseStringUTFChars(env, dest, dest_c);
return ret;
}

View File

@ -0,0 +1,21 @@
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class org_retroarch_browser_AssetExtractor */
#ifndef _Included_org_retroarch_browser_AssetExtractor
#define _Included_org_retroarch_browser_AssetExtractor
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: org_retroarch_browser_AssetExtractor
* Method: extractArchiveTo
* Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
*/
JNIEXPORT jboolean JNICALL Java_org_retroarch_browser_AssetExtractor_extractArchiveTo
(JNIEnv *, jclass, jstring, jstring, jstring);
#ifdef __cplusplus
}
#endif
#endif

View File

@ -1,6 +0,0 @@
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := $(notdir $(RETRO_MODULE_OBJECT))
LOCAL_SRC_FILES := $(notdir $(RETRO_MODULE_OBJECT))
include $(PREBUILT_SHARED_LIBRARY)

View File

@ -1387,7 +1387,7 @@ containing a value of this type.
<p>Must be a reference to another resource, in the form "<code>@[+][<i>package</i>:]<i>type</i>:<i>name</i></code>" <p>Must be a reference to another resource, in the form "<code>@[+][<i>package</i>:]<i>type</i>:<i>name</i></code>"
or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>". or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>".
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:background @attr name android:background
*/ */
public static final int ActionBar_background = 10; public static final int ActionBar_background = 10;
/** /**
@ -1401,7 +1401,7 @@ or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>na
<p>May be a color value, in the form of "<code>#<i>rgb</i></code>", "<code>#<i>argb</i></code>", <p>May be a color value, in the form of "<code>#<i>rgb</i></code>", "<code>#<i>argb</i></code>",
"<code>#<i>rrggbb</i></code>", or "<code>#<i>aarrggbb</i></code>". "<code>#<i>rrggbb</i></code>", or "<code>#<i>aarrggbb</i></code>".
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:backgroundSplit @attr name android:backgroundSplit
*/ */
public static final int ActionBar_backgroundSplit = 12; public static final int ActionBar_backgroundSplit = 12;
/** /**
@ -1415,7 +1415,7 @@ or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>na
<p>May be a color value, in the form of "<code>#<i>rgb</i></code>", "<code>#<i>argb</i></code>", <p>May be a color value, in the form of "<code>#<i>rgb</i></code>", "<code>#<i>argb</i></code>",
"<code>#<i>rrggbb</i></code>", or "<code>#<i>aarrggbb</i></code>". "<code>#<i>rrggbb</i></code>", or "<code>#<i>aarrggbb</i></code>".
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:backgroundStacked @attr name android:backgroundStacked
*/ */
public static final int ActionBar_backgroundStacked = 11; public static final int ActionBar_backgroundStacked = 11;
/** /**
@ -1427,7 +1427,7 @@ or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>na
<p>Must be a reference to another resource, in the form "<code>@[+][<i>package</i>:]<i>type</i>:<i>name</i></code>" <p>Must be a reference to another resource, in the form "<code>@[+][<i>package</i>:]<i>type</i>:<i>name</i></code>"
or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>". or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>".
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:customNavigationLayout @attr name android:customNavigationLayout
*/ */
public static final int ActionBar_customNavigationLayout = 13; public static final int ActionBar_customNavigationLayout = 13;
/** /**
@ -1450,7 +1450,7 @@ or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>na
<tr><td><code>disableHome</code></td><td>0x20</td><td></td></tr> <tr><td><code>disableHome</code></td><td>0x20</td><td></td></tr>
</table> </table>
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:displayOptions @attr name android:displayOptions
*/ */
public static final int ActionBar_displayOptions = 3; public static final int ActionBar_displayOptions = 3;
/** /**
@ -1462,7 +1462,7 @@ or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>na
<p>Must be a reference to another resource, in the form "<code>@[+][<i>package</i>:]<i>type</i>:<i>name</i></code>" <p>Must be a reference to another resource, in the form "<code>@[+][<i>package</i>:]<i>type</i>:<i>name</i></code>"
or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>". or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>".
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:divider @attr name android:divider
*/ */
public static final int ActionBar_divider = 9; public static final int ActionBar_divider = 9;
/** /**
@ -1480,7 +1480,7 @@ theme attribute (in the form
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>") "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
containing a value of this type. containing a value of this type.
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:height @attr name android:height
*/ */
public static final int ActionBar_height = 1; public static final int ActionBar_height = 1;
/** /**
@ -1492,7 +1492,7 @@ containing a value of this type.
<p>Must be a reference to another resource, in the form "<code>@[+][<i>package</i>:]<i>type</i>:<i>name</i></code>" <p>Must be a reference to another resource, in the form "<code>@[+][<i>package</i>:]<i>type</i>:<i>name</i></code>"
or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>". or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>".
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:homeLayout @attr name android:homeLayout
*/ */
public static final int ActionBar_homeLayout = 14; public static final int ActionBar_homeLayout = 14;
/** /**
@ -1504,7 +1504,7 @@ or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>na
<p>Must be a reference to another resource, in the form "<code>@[+][<i>package</i>:]<i>type</i>:<i>name</i></code>" <p>Must be a reference to another resource, in the form "<code>@[+][<i>package</i>:]<i>type</i>:<i>name</i></code>"
or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>". or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>".
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:icon @attr name android:icon
*/ */
public static final int ActionBar_icon = 7; public static final int ActionBar_icon = 7;
/** /**
@ -1516,7 +1516,7 @@ or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>na
<p>Must be a reference to another resource, in the form "<code>@[+][<i>package</i>:]<i>type</i>:<i>name</i></code>" <p>Must be a reference to another resource, in the form "<code>@[+][<i>package</i>:]<i>type</i>:<i>name</i></code>"
or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>". or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>".
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:indeterminateProgressStyle @attr name android:indeterminateProgressStyle
*/ */
public static final int ActionBar_indeterminateProgressStyle = 16; public static final int ActionBar_indeterminateProgressStyle = 16;
/** /**
@ -1535,7 +1535,7 @@ theme attribute (in the form
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>") "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
containing a value of this type. containing a value of this type.
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:itemPadding @attr name android:itemPadding
*/ */
public static final int ActionBar_itemPadding = 18; public static final int ActionBar_itemPadding = 18;
/** /**
@ -1547,7 +1547,7 @@ containing a value of this type.
<p>Must be a reference to another resource, in the form "<code>@[+][<i>package</i>:]<i>type</i>:<i>name</i></code>" <p>Must be a reference to another resource, in the form "<code>@[+][<i>package</i>:]<i>type</i>:<i>name</i></code>"
or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>". or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>".
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:logo @attr name android:logo
*/ */
public static final int ActionBar_logo = 8; public static final int ActionBar_logo = 8;
/** /**
@ -1567,7 +1567,7 @@ or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>na
<tr><td><code>tabMode</code></td><td>2</td><td> The action bar will use a series of horizontal tabs for navigation. </td></tr> <tr><td><code>tabMode</code></td><td>2</td><td> The action bar will use a series of horizontal tabs for navigation. </td></tr>
</table> </table>
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:navigationMode @attr name android:navigationMode
*/ */
public static final int ActionBar_navigationMode = 2; public static final int ActionBar_navigationMode = 2;
/** /**
@ -1585,7 +1585,7 @@ theme attribute (in the form
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>") "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
containing a value of this type. containing a value of this type.
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:progressBarPadding @attr name android:progressBarPadding
*/ */
public static final int ActionBar_progressBarPadding = 17; public static final int ActionBar_progressBarPadding = 17;
/** /**
@ -1597,7 +1597,7 @@ containing a value of this type.
<p>Must be a reference to another resource, in the form "<code>@[+][<i>package</i>:]<i>type</i>:<i>name</i></code>" <p>Must be a reference to another resource, in the form "<code>@[+][<i>package</i>:]<i>type</i>:<i>name</i></code>"
or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>". or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>".
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:progressBarStyle @attr name android:progressBarStyle
*/ */
public static final int ActionBar_progressBarStyle = 15; public static final int ActionBar_progressBarStyle = 15;
/** /**
@ -1613,7 +1613,7 @@ theme attribute (in the form
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>") "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
containing a value of this type. containing a value of this type.
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:subtitle @attr name android:subtitle
*/ */
public static final int ActionBar_subtitle = 4; public static final int ActionBar_subtitle = 4;
/** /**
@ -1625,7 +1625,7 @@ containing a value of this type.
<p>Must be a reference to another resource, in the form "<code>@[+][<i>package</i>:]<i>type</i>:<i>name</i></code>" <p>Must be a reference to another resource, in the form "<code>@[+][<i>package</i>:]<i>type</i>:<i>name</i></code>"
or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>". or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>".
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:subtitleTextStyle @attr name android:subtitleTextStyle
*/ */
public static final int ActionBar_subtitleTextStyle = 6; public static final int ActionBar_subtitleTextStyle = 6;
/** /**
@ -1641,7 +1641,7 @@ theme attribute (in the form
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>") "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
containing a value of this type. containing a value of this type.
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:title @attr name android:title
*/ */
public static final int ActionBar_title = 0; public static final int ActionBar_title = 0;
/** /**
@ -1653,7 +1653,7 @@ containing a value of this type.
<p>Must be a reference to another resource, in the form "<code>@[+][<i>package</i>:]<i>type</i>:<i>name</i></code>" <p>Must be a reference to another resource, in the form "<code>@[+][<i>package</i>:]<i>type</i>:<i>name</i></code>"
or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>". or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>".
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:titleTextStyle @attr name android:titleTextStyle
*/ */
public static final int ActionBar_titleTextStyle = 5; public static final int ActionBar_titleTextStyle = 5;
/** Valid LayoutParams for views placed in the action bar as custom views. /** Valid LayoutParams for views placed in the action bar as custom views.
@ -1662,7 +1662,7 @@ or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>na
<colgroup align="left" /> <colgroup align="left" />
<colgroup align="left" /> <colgroup align="left" />
<tr><th>Attribute</th><th>Description</th></tr> <tr><th>Attribute</th><th>Description</th></tr>
<tr><td><code>{@link #ActionBarLayout_android_layout_gravity android:layout_gravity}</code></td><td></td></tr> <tr><td><code>{@link #ActionBarLayout_android_layout_gravity android.support.v7.appcompat:android_layout_gravity}</code></td><td></td></tr>
</table> </table>
@see #ActionBarLayout_android_layout_gravity @see #ActionBarLayout_android_layout_gravity
*/ */
@ -1670,9 +1670,9 @@ or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>na
0x010100b3 0x010100b3
}; };
/** /**
<p>This symbol is the offset where the {@link android.R.attr#layout_gravity} <p>This symbol is the offset where the {@link android.support.v7.appcompat.R.attr#android_layout_gravity}
attribute's value can be found in the {@link #ActionBarLayout} array. attribute's value can be found in the {@link #ActionBarLayout} array.
@attr name android:layout_gravity @attr name android:android_layout_gravity
*/ */
public static final int ActionBarLayout_android_layout_gravity = 0; public static final int ActionBarLayout_android_layout_gravity = 0;
/** These attributes are meant to be specified and customized by the app. /** These attributes are meant to be specified and customized by the app.
@ -1706,7 +1706,7 @@ or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>na
theme attribute (in the form theme attribute (in the form
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>") "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
containing a value of this type. containing a value of this type.
@attr name android.support.v7.appcompat:windowActionBar @attr name android:windowActionBar
*/ */
public static final int ActionBarWindow_windowActionBar = 0; public static final int ActionBarWindow_windowActionBar = 0;
/** /**
@ -1720,7 +1720,7 @@ containing a value of this type.
theme attribute (in the form theme attribute (in the form
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>") "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
containing a value of this type. containing a value of this type.
@attr name android.support.v7.appcompat:windowActionBarOverlay @attr name android:windowActionBarOverlay
*/ */
public static final int ActionBarWindow_windowActionBarOverlay = 1; public static final int ActionBarWindow_windowActionBarOverlay = 1;
/** /**
@ -1734,7 +1734,7 @@ containing a value of this type.
theme attribute (in the form theme attribute (in the form
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>") "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
containing a value of this type. containing a value of this type.
@attr name android.support.v7.appcompat:windowSplitActionBar @attr name android:windowSplitActionBar
*/ */
public static final int ActionBarWindow_windowSplitActionBar = 2; public static final int ActionBarWindow_windowSplitActionBar = 2;
/** Attributes that can be used with a ActionMenuItemView. /** Attributes that can be used with a ActionMenuItemView.
@ -1743,7 +1743,7 @@ containing a value of this type.
<colgroup align="left" /> <colgroup align="left" />
<colgroup align="left" /> <colgroup align="left" />
<tr><th>Attribute</th><th>Description</th></tr> <tr><th>Attribute</th><th>Description</th></tr>
<tr><td><code>{@link #ActionMenuItemView_android_minWidth android:minWidth}</code></td><td></td></tr> <tr><td><code>{@link #ActionMenuItemView_android_minWidth android.support.v7.appcompat:android_minWidth}</code></td><td></td></tr>
</table> </table>
@see #ActionMenuItemView_android_minWidth @see #ActionMenuItemView_android_minWidth
*/ */
@ -1751,9 +1751,9 @@ containing a value of this type.
0x0101013f 0x0101013f
}; };
/** /**
<p>This symbol is the offset where the {@link android.R.attr#minWidth} <p>This symbol is the offset where the {@link android.support.v7.appcompat.R.attr#android_minWidth}
attribute's value can be found in the {@link #ActionMenuItemView} array. attribute's value can be found in the {@link #ActionMenuItemView} array.
@attr name android:minWidth @attr name android:android_minWidth
*/ */
public static final int ActionMenuItemView_android_minWidth = 0; public static final int ActionMenuItemView_android_minWidth = 0;
/** Size of padding on either end of a divider. /** Size of padding on either end of a divider.
@ -1792,7 +1792,7 @@ containing a value of this type.
<p>Must be a reference to another resource, in the form "<code>@[+][<i>package</i>:]<i>type</i>:<i>name</i></code>" <p>Must be a reference to another resource, in the form "<code>@[+][<i>package</i>:]<i>type</i>:<i>name</i></code>"
or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>". or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>".
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:background @attr name android:background
*/ */
public static final int ActionMode_background = 3; public static final int ActionMode_background = 3;
/** /**
@ -1806,7 +1806,7 @@ or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>na
<p>May be a color value, in the form of "<code>#<i>rgb</i></code>", "<code>#<i>argb</i></code>", <p>May be a color value, in the form of "<code>#<i>rgb</i></code>", "<code>#<i>argb</i></code>",
"<code>#<i>rrggbb</i></code>", or "<code>#<i>aarrggbb</i></code>". "<code>#<i>rrggbb</i></code>", or "<code>#<i>aarrggbb</i></code>".
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:backgroundSplit @attr name android:backgroundSplit
*/ */
public static final int ActionMode_backgroundSplit = 4; public static final int ActionMode_backgroundSplit = 4;
/** /**
@ -1824,7 +1824,7 @@ theme attribute (in the form
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>") "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
containing a value of this type. containing a value of this type.
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:height @attr name android:height
*/ */
public static final int ActionMode_height = 0; public static final int ActionMode_height = 0;
/** /**
@ -1836,7 +1836,7 @@ containing a value of this type.
<p>Must be a reference to another resource, in the form "<code>@[+][<i>package</i>:]<i>type</i>:<i>name</i></code>" <p>Must be a reference to another resource, in the form "<code>@[+][<i>package</i>:]<i>type</i>:<i>name</i></code>"
or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>". or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>".
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:subtitleTextStyle @attr name android:subtitleTextStyle
*/ */
public static final int ActionMode_subtitleTextStyle = 2; public static final int ActionMode_subtitleTextStyle = 2;
/** /**
@ -1848,7 +1848,7 @@ or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>na
<p>Must be a reference to another resource, in the form "<code>@[+][<i>package</i>:]<i>type</i>:<i>name</i></code>" <p>Must be a reference to another resource, in the form "<code>@[+][<i>package</i>:]<i>type</i>:<i>name</i></code>"
or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>". or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>".
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:titleTextStyle @attr name android:titleTextStyle
*/ */
public static final int ActionMode_titleTextStyle = 1; public static final int ActionMode_titleTextStyle = 1;
/** Attrbitutes for a ActivityChooserView. /** Attrbitutes for a ActivityChooserView.
@ -1880,7 +1880,7 @@ or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>na
<p>Must be a reference to another resource, in the form "<code>@[+][<i>package</i>:]<i>type</i>:<i>name</i></code>" <p>Must be a reference to another resource, in the form "<code>@[+][<i>package</i>:]<i>type</i>:<i>name</i></code>"
or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>". or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>".
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:expandActivityOverflowButtonDrawable @attr name android:expandActivityOverflowButtonDrawable
*/ */
public static final int ActivityChooserView_expandActivityOverflowButtonDrawable = 1; public static final int ActivityChooserView_expandActivityOverflowButtonDrawable = 1;
/** /**
@ -1896,7 +1896,7 @@ theme attribute (in the form
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>") "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
containing a value of this type. containing a value of this type.
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:initialActivityCount @attr name android:initialActivityCount
*/ */
public static final int ActivityChooserView_initialActivityCount = 0; public static final int ActivityChooserView_initialActivityCount = 0;
/** Attributes that can be used with a CompatTextView. /** Attributes that can be used with a CompatTextView.
@ -1922,7 +1922,7 @@ containing a value of this type.
or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>". or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>".
<p>May be a boolean value, either "<code>true</code>" or "<code>false</code>". <p>May be a boolean value, either "<code>true</code>" or "<code>false</code>".
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:textAllCaps @attr name android:textAllCaps
*/ */
public static final int CompatTextView_textAllCaps = 0; public static final int CompatTextView_textAllCaps = 0;
/** Attributes that can be used with a LinearLayoutICS. /** Attributes that can be used with a LinearLayoutICS.
@ -1951,7 +1951,7 @@ or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>na
<p>Must be a reference to another resource, in the form "<code>@[+][<i>package</i>:]<i>type</i>:<i>name</i></code>" <p>Must be a reference to another resource, in the form "<code>@[+][<i>package</i>:]<i>type</i>:<i>name</i></code>"
or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>". or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>".
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:divider @attr name android:divider
*/ */
public static final int LinearLayoutICS_divider = 0; public static final int LinearLayoutICS_divider = 0;
/** /**
@ -1969,7 +1969,7 @@ theme attribute (in the form
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>") "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
containing a value of this type. containing a value of this type.
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:dividerPadding @attr name android:dividerPadding
*/ */
public static final int LinearLayoutICS_dividerPadding = 2; public static final int LinearLayoutICS_dividerPadding = 2;
/** /**
@ -1990,7 +1990,7 @@ containing a value of this type.
<tr><td><code>end</code></td><td>4</td><td></td></tr> <tr><td><code>end</code></td><td>4</td><td></td></tr>
</table> </table>
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:showDividers @attr name android:showDividers
*/ */
public static final int LinearLayoutICS_showDividers = 1; public static final int LinearLayoutICS_showDividers = 1;
/** Base attributes that are available to all groups. /** Base attributes that are available to all groups.
@ -1999,12 +1999,12 @@ containing a value of this type.
<colgroup align="left" /> <colgroup align="left" />
<colgroup align="left" /> <colgroup align="left" />
<tr><th>Attribute</th><th>Description</th></tr> <tr><th>Attribute</th><th>Description</th></tr>
<tr><td><code>{@link #MenuGroup_android_checkableBehavior android:checkableBehavior}</code></td><td> Whether the items are capable of displaying a check mark.</td></tr> <tr><td><code>{@link #MenuGroup_android_checkableBehavior android.support.v7.appcompat:android_checkableBehavior}</code></td><td> Whether the items are capable of displaying a check mark.</td></tr>
<tr><td><code>{@link #MenuGroup_android_enabled android:enabled}</code></td><td> Whether the items are enabled.</td></tr> <tr><td><code>{@link #MenuGroup_android_enabled android.support.v7.appcompat:android_enabled}</code></td><td> Whether the items are enabled.</td></tr>
<tr><td><code>{@link #MenuGroup_android_id android:id}</code></td><td> The ID of the group.</td></tr> <tr><td><code>{@link #MenuGroup_android_id android.support.v7.appcompat:android_id}</code></td><td> The ID of the group.</td></tr>
<tr><td><code>{@link #MenuGroup_android_menuCategory android:menuCategory}</code></td><td> The category applied to all items within this group.</td></tr> <tr><td><code>{@link #MenuGroup_android_menuCategory android.support.v7.appcompat:android_menuCategory}</code></td><td> The category applied to all items within this group.</td></tr>
<tr><td><code>{@link #MenuGroup_android_orderInCategory android:orderInCategory}</code></td><td> The order within the category applied to all items within this group.</td></tr> <tr><td><code>{@link #MenuGroup_android_orderInCategory android.support.v7.appcompat:android_orderInCategory}</code></td><td> The order within the category applied to all items within this group.</td></tr>
<tr><td><code>{@link #MenuGroup_android_visible android:visible}</code></td><td> Whether the items are shown/visible.</td></tr> <tr><td><code>{@link #MenuGroup_android_visible android.support.v7.appcompat:android_visible}</code></td><td> Whether the items are shown/visible.</td></tr>
</table> </table>
@see #MenuGroup_android_checkableBehavior @see #MenuGroup_android_checkableBehavior
@see #MenuGroup_android_enabled @see #MenuGroup_android_enabled
@ -2021,27 +2021,24 @@ containing a value of this type.
<p> <p>
@attr description @attr description
Whether the items are capable of displaying a check mark. Whether the items are capable of displaying a check mark.
<p>This corresponds to the global attribute <p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_checkableBehavior}.
resource symbol {@link android.R.attr#checkableBehavior}. @attr name android:android_checkableBehavior
@attr name android:checkableBehavior
*/ */
public static final int MenuGroup_android_checkableBehavior = 5; public static final int MenuGroup_android_checkableBehavior = 5;
/** /**
<p> <p>
@attr description @attr description
Whether the items are enabled. Whether the items are enabled.
<p>This corresponds to the global attribute <p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_enabled}.
resource symbol {@link android.R.attr#enabled}. @attr name android:android_enabled
@attr name android:enabled
*/ */
public static final int MenuGroup_android_enabled = 0; public static final int MenuGroup_android_enabled = 0;
/** /**
<p> <p>
@attr description @attr description
The ID of the group. The ID of the group.
<p>This corresponds to the global attribute <p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_id}.
resource symbol {@link android.R.attr#id}. @attr name android:android_id
@attr name android:id
*/ */
public static final int MenuGroup_android_id = 1; public static final int MenuGroup_android_id = 1;
/** /**
@ -2049,9 +2046,8 @@ containing a value of this type.
@attr description @attr description
The category applied to all items within this group. The category applied to all items within this group.
(This will be or'ed with the orderInCategory attribute.) (This will be or'ed with the orderInCategory attribute.)
<p>This corresponds to the global attribute <p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_menuCategory}.
resource symbol {@link android.R.attr#menuCategory}. @attr name android:android_menuCategory
@attr name android:menuCategory
*/ */
public static final int MenuGroup_android_menuCategory = 3; public static final int MenuGroup_android_menuCategory = 3;
/** /**
@ -2059,18 +2055,16 @@ containing a value of this type.
@attr description @attr description
The order within the category applied to all items within this group. The order within the category applied to all items within this group.
(This will be or'ed with the category attribute.) (This will be or'ed with the category attribute.)
<p>This corresponds to the global attribute <p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_orderInCategory}.
resource symbol {@link android.R.attr#orderInCategory}. @attr name android:android_orderInCategory
@attr name android:orderInCategory
*/ */
public static final int MenuGroup_android_orderInCategory = 4; public static final int MenuGroup_android_orderInCategory = 4;
/** /**
<p> <p>
@attr description @attr description
Whether the items are shown/visible. Whether the items are shown/visible.
<p>This corresponds to the global attribute <p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_visible}.
resource symbol {@link android.R.attr#visible}. @attr name android:android_visible
@attr name android:visible
*/ */
public static final int MenuGroup_android_visible = 2; public static final int MenuGroup_android_visible = 2;
/** Base attributes that are available to all Item objects. /** Base attributes that are available to all Item objects.
@ -2084,20 +2078,20 @@ containing a value of this type.
and perform operations such as default action for that menu item.</td></tr> and perform operations such as default action for that menu item.</td></tr>
<tr><td><code>{@link #MenuItem_actionViewClass android.support.v7.appcompat:actionViewClass}</code></td><td> The name of an optional View class to instantiate and use as an <tr><td><code>{@link #MenuItem_actionViewClass android.support.v7.appcompat:actionViewClass}</code></td><td> The name of an optional View class to instantiate and use as an
action view.</td></tr> action view.</td></tr>
<tr><td><code>{@link #MenuItem_android_alphabeticShortcut android:alphabeticShortcut}</code></td><td> The alphabetic shortcut key.</td></tr> <tr><td><code>{@link #MenuItem_android_alphabeticShortcut android.support.v7.appcompat:android_alphabeticShortcut}</code></td><td> The alphabetic shortcut key.</td></tr>
<tr><td><code>{@link #MenuItem_android_checkable android:checkable}</code></td><td> Whether the item is capable of displaying a check mark.</td></tr> <tr><td><code>{@link #MenuItem_android_checkable android.support.v7.appcompat:android_checkable}</code></td><td> Whether the item is capable of displaying a check mark.</td></tr>
<tr><td><code>{@link #MenuItem_android_checked android:checked}</code></td><td> Whether the item is checked.</td></tr> <tr><td><code>{@link #MenuItem_android_checked android.support.v7.appcompat:android_checked}</code></td><td> Whether the item is checked.</td></tr>
<tr><td><code>{@link #MenuItem_android_enabled android:enabled}</code></td><td> Whether the item is enabled.</td></tr> <tr><td><code>{@link #MenuItem_android_enabled android.support.v7.appcompat:android_enabled}</code></td><td> Whether the item is enabled.</td></tr>
<tr><td><code>{@link #MenuItem_android_icon android:icon}</code></td><td> The icon associated with this item.</td></tr> <tr><td><code>{@link #MenuItem_android_icon android.support.v7.appcompat:android_icon}</code></td><td> The icon associated with this item.</td></tr>
<tr><td><code>{@link #MenuItem_android_id android:id}</code></td><td> The ID of the item.</td></tr> <tr><td><code>{@link #MenuItem_android_id android.support.v7.appcompat:android_id}</code></td><td> The ID of the item.</td></tr>
<tr><td><code>{@link #MenuItem_android_menuCategory android:menuCategory}</code></td><td> The category applied to the item.</td></tr> <tr><td><code>{@link #MenuItem_android_menuCategory android.support.v7.appcompat:android_menuCategory}</code></td><td> The category applied to the item.</td></tr>
<tr><td><code>{@link #MenuItem_android_numericShortcut android:numericShortcut}</code></td><td> The numeric shortcut key.</td></tr> <tr><td><code>{@link #MenuItem_android_numericShortcut android.support.v7.appcompat:android_numericShortcut}</code></td><td> The numeric shortcut key.</td></tr>
<tr><td><code>{@link #MenuItem_android_onClick android:onClick}</code></td><td> Name of a method on the Context used to inflate the menu that will be <tr><td><code>{@link #MenuItem_android_onClick android.support.v7.appcompat:android_onClick}</code></td><td> Name of a method on the Context used to inflate the menu that will be
called when the item is clicked.</td></tr> called when the item is clicked.</td></tr>
<tr><td><code>{@link #MenuItem_android_orderInCategory android:orderInCategory}</code></td><td> The order within the category applied to the item.</td></tr> <tr><td><code>{@link #MenuItem_android_orderInCategory android.support.v7.appcompat:android_orderInCategory}</code></td><td> The order within the category applied to the item.</td></tr>
<tr><td><code>{@link #MenuItem_android_title android:title}</code></td><td> The title associated with the item.</td></tr> <tr><td><code>{@link #MenuItem_android_title android.support.v7.appcompat:android_title}</code></td><td> The title associated with the item.</td></tr>
<tr><td><code>{@link #MenuItem_android_titleCondensed android:titleCondensed}</code></td><td> The condensed title associated with the item.</td></tr> <tr><td><code>{@link #MenuItem_android_titleCondensed android.support.v7.appcompat:android_titleCondensed}</code></td><td> The condensed title associated with the item.</td></tr>
<tr><td><code>{@link #MenuItem_android_visible android:visible}</code></td><td> Whether the item is shown/visible.</td></tr> <tr><td><code>{@link #MenuItem_android_visible android.support.v7.appcompat:android_visible}</code></td><td> Whether the item is shown/visible.</td></tr>
<tr><td><code>{@link #MenuItem_showAsAction android.support.v7.appcompat:showAsAction}</code></td><td> How this item should display in the Action Bar, if present.</td></tr> <tr><td><code>{@link #MenuItem_showAsAction android.support.v7.appcompat:showAsAction}</code></td><td> How this item should display in the Action Bar, if present.</td></tr>
</table> </table>
@see #MenuItem_actionLayout @see #MenuItem_actionLayout
@ -2136,7 +2130,7 @@ containing a value of this type.
<p>Must be a reference to another resource, in the form "<code>@[+][<i>package</i>:]<i>type</i>:<i>name</i></code>" <p>Must be a reference to another resource, in the form "<code>@[+][<i>package</i>:]<i>type</i>:<i>name</i></code>"
or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>". or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>".
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:actionLayout @attr name android:actionLayout
*/ */
public static final int MenuItem_actionLayout = 14; public static final int MenuItem_actionLayout = 14;
/** /**
@ -2155,7 +2149,7 @@ theme attribute (in the form
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>") "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
containing a value of this type. containing a value of this type.
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:actionProviderClass @attr name android:actionProviderClass
*/ */
public static final int MenuItem_actionProviderClass = 16; public static final int MenuItem_actionProviderClass = 16;
/** /**
@ -2173,7 +2167,7 @@ theme attribute (in the form
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>") "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
containing a value of this type. containing a value of this type.
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:actionViewClass @attr name android:actionViewClass
*/ */
public static final int MenuItem_actionViewClass = 15; public static final int MenuItem_actionViewClass = 15;
/** /**
@ -2181,18 +2175,16 @@ containing a value of this type.
@attr description @attr description
The alphabetic shortcut key. This is the shortcut when using a keyboard The alphabetic shortcut key. This is the shortcut when using a keyboard
with alphabetic keys. with alphabetic keys.
<p>This corresponds to the global attribute <p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_alphabeticShortcut}.
resource symbol {@link android.R.attr#alphabeticShortcut}. @attr name android:android_alphabeticShortcut
@attr name android:alphabeticShortcut
*/ */
public static final int MenuItem_android_alphabeticShortcut = 9; public static final int MenuItem_android_alphabeticShortcut = 9;
/** /**
<p> <p>
@attr description @attr description
Whether the item is capable of displaying a check mark. Whether the item is capable of displaying a check mark.
<p>This corresponds to the global attribute <p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_checkable}.
resource symbol {@link android.R.attr#checkable}. @attr name android:android_checkable
@attr name android:checkable
*/ */
public static final int MenuItem_android_checkable = 11; public static final int MenuItem_android_checkable = 11;
/** /**
@ -2200,18 +2192,16 @@ containing a value of this type.
@attr description @attr description
Whether the item is checked. Note that you must first have enabled checking with Whether the item is checked. Note that you must first have enabled checking with
the checkable attribute or else the check mark will not appear. the checkable attribute or else the check mark will not appear.
<p>This corresponds to the global attribute <p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_checked}.
resource symbol {@link android.R.attr#checked}. @attr name android:android_checked
@attr name android:checked
*/ */
public static final int MenuItem_android_checked = 3; public static final int MenuItem_android_checked = 3;
/** /**
<p> <p>
@attr description @attr description
Whether the item is enabled. Whether the item is enabled.
<p>This corresponds to the global attribute <p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_enabled}.
resource symbol {@link android.R.attr#enabled}. @attr name android:android_enabled
@attr name android:enabled
*/ */
public static final int MenuItem_android_enabled = 1; public static final int MenuItem_android_enabled = 1;
/** /**
@ -2219,18 +2209,16 @@ containing a value of this type.
@attr description @attr description
The icon associated with this item. This icon will not always be shown, so The icon associated with this item. This icon will not always be shown, so
the title should be sufficient in describing this item. the title should be sufficient in describing this item.
<p>This corresponds to the global attribute <p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_icon}.
resource symbol {@link android.R.attr#icon}. @attr name android:android_icon
@attr name android:icon
*/ */
public static final int MenuItem_android_icon = 0; public static final int MenuItem_android_icon = 0;
/** /**
<p> <p>
@attr description @attr description
The ID of the item. The ID of the item.
<p>This corresponds to the global attribute <p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_id}.
resource symbol {@link android.R.attr#id}. @attr name android:android_id
@attr name android:id
*/ */
public static final int MenuItem_android_id = 2; public static final int MenuItem_android_id = 2;
/** /**
@ -2238,9 +2226,8 @@ containing a value of this type.
@attr description @attr description
The category applied to the item. The category applied to the item.
(This will be or'ed with the orderInCategory attribute.) (This will be or'ed with the orderInCategory attribute.)
<p>This corresponds to the global attribute <p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_menuCategory}.
resource symbol {@link android.R.attr#menuCategory}. @attr name android:android_menuCategory
@attr name android:menuCategory
*/ */
public static final int MenuItem_android_menuCategory = 5; public static final int MenuItem_android_menuCategory = 5;
/** /**
@ -2248,9 +2235,8 @@ containing a value of this type.
@attr description @attr description
The numeric shortcut key. This is the shortcut when using a numeric (e.g., 12-key) The numeric shortcut key. This is the shortcut when using a numeric (e.g., 12-key)
keyboard. keyboard.
<p>This corresponds to the global attribute <p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_numericShortcut}.
resource symbol {@link android.R.attr#numericShortcut}. @attr name android:android_numericShortcut
@attr name android:numericShortcut
*/ */
public static final int MenuItem_android_numericShortcut = 10; public static final int MenuItem_android_numericShortcut = 10;
/** /**
@ -2258,9 +2244,8 @@ containing a value of this type.
@attr description @attr description
Name of a method on the Context used to inflate the menu that will be Name of a method on the Context used to inflate the menu that will be
called when the item is clicked. called when the item is clicked.
<p>This corresponds to the global attribute <p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_onClick}.
resource symbol {@link android.R.attr#onClick}. @attr name android:android_onClick
@attr name android:onClick
*/ */
public static final int MenuItem_android_onClick = 12; public static final int MenuItem_android_onClick = 12;
/** /**
@ -2268,18 +2253,16 @@ containing a value of this type.
@attr description @attr description
The order within the category applied to the item. The order within the category applied to the item.
(This will be or'ed with the category attribute.) (This will be or'ed with the category attribute.)
<p>This corresponds to the global attribute <p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_orderInCategory}.
resource symbol {@link android.R.attr#orderInCategory}. @attr name android:android_orderInCategory
@attr name android:orderInCategory
*/ */
public static final int MenuItem_android_orderInCategory = 6; public static final int MenuItem_android_orderInCategory = 6;
/** /**
<p> <p>
@attr description @attr description
The title associated with the item. The title associated with the item.
<p>This corresponds to the global attribute <p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_title}.
resource symbol {@link android.R.attr#title}. @attr name android:android_title
@attr name android:title
*/ */
public static final int MenuItem_android_title = 7; public static final int MenuItem_android_title = 7;
/** /**
@ -2287,18 +2270,16 @@ containing a value of this type.
@attr description @attr description
The condensed title associated with the item. This is used in situations where the The condensed title associated with the item. This is used in situations where the
normal title may be too long to be displayed. normal title may be too long to be displayed.
<p>This corresponds to the global attribute <p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_titleCondensed}.
resource symbol {@link android.R.attr#titleCondensed}. @attr name android:android_titleCondensed
@attr name android:titleCondensed
*/ */
public static final int MenuItem_android_titleCondensed = 8; public static final int MenuItem_android_titleCondensed = 8;
/** /**
<p> <p>
@attr description @attr description
Whether the item is shown/visible. Whether the item is shown/visible.
<p>This corresponds to the global attribute <p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_visible}.
resource symbol {@link android.R.attr#visible}. @attr name android:android_visible
@attr name android:visible
*/ */
public static final int MenuItem_android_visible = 4; public static final int MenuItem_android_visible = 4;
/** /**
@ -2329,7 +2310,7 @@ containing a value of this type.
larger segment of its container. </td></tr> larger segment of its container. </td></tr>
</table> </table>
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:showAsAction @attr name android:showAsAction
*/ */
public static final int MenuItem_showAsAction = 13; public static final int MenuItem_showAsAction = 13;
/** Attributes that can be used with a MenuView. /** Attributes that can be used with a MenuView.
@ -2338,14 +2319,14 @@ containing a value of this type.
<colgroup align="left" /> <colgroup align="left" />
<colgroup align="left" /> <colgroup align="left" />
<tr><th>Attribute</th><th>Description</th></tr> <tr><th>Attribute</th><th>Description</th></tr>
<tr><td><code>{@link #MenuView_android_headerBackground android:headerBackground}</code></td><td> Default background for the menu header.</td></tr> <tr><td><code>{@link #MenuView_android_headerBackground android.support.v7.appcompat:android_headerBackground}</code></td><td> Default background for the menu header.</td></tr>
<tr><td><code>{@link #MenuView_android_horizontalDivider android:horizontalDivider}</code></td><td> Default horizontal divider between rows of menu items.</td></tr> <tr><td><code>{@link #MenuView_android_horizontalDivider android.support.v7.appcompat:android_horizontalDivider}</code></td><td> Default horizontal divider between rows of menu items.</td></tr>
<tr><td><code>{@link #MenuView_android_itemBackground android:itemBackground}</code></td><td> Default background for each menu item.</td></tr> <tr><td><code>{@link #MenuView_android_itemBackground android.support.v7.appcompat:android_itemBackground}</code></td><td> Default background for each menu item.</td></tr>
<tr><td><code>{@link #MenuView_android_itemIconDisabledAlpha android:itemIconDisabledAlpha}</code></td><td> Default disabled icon alpha for each menu item that shows an icon.</td></tr> <tr><td><code>{@link #MenuView_android_itemIconDisabledAlpha android.support.v7.appcompat:android_itemIconDisabledAlpha}</code></td><td> Default disabled icon alpha for each menu item that shows an icon.</td></tr>
<tr><td><code>{@link #MenuView_android_itemTextAppearance android:itemTextAppearance}</code></td><td> Default appearance of menu item text.</td></tr> <tr><td><code>{@link #MenuView_android_itemTextAppearance android.support.v7.appcompat:android_itemTextAppearance}</code></td><td> Default appearance of menu item text.</td></tr>
<tr><td><code>{@link #MenuView_android_preserveIconSpacing android:preserveIconSpacing}</code></td><td> Whether space should be reserved in layout when an icon is missing.</td></tr> <tr><td><code>{@link #MenuView_android_preserveIconSpacing android.support.v7.appcompat:android_preserveIconSpacing}</code></td><td> Whether space should be reserved in layout when an icon is missing.</td></tr>
<tr><td><code>{@link #MenuView_android_verticalDivider android:verticalDivider}</code></td><td> Default vertical divider between menu items.</td></tr> <tr><td><code>{@link #MenuView_android_verticalDivider android.support.v7.appcompat:android_verticalDivider}</code></td><td> Default vertical divider between menu items.</td></tr>
<tr><td><code>{@link #MenuView_android_windowAnimationStyle android:windowAnimationStyle}</code></td><td> Default animations for the menu.</td></tr> <tr><td><code>{@link #MenuView_android_windowAnimationStyle android.support.v7.appcompat:android_windowAnimationStyle}</code></td><td> Default animations for the menu.</td></tr>
</table> </table>
@see #MenuView_android_headerBackground @see #MenuView_android_headerBackground
@see #MenuView_android_horizontalDivider @see #MenuView_android_horizontalDivider
@ -2364,45 +2345,40 @@ containing a value of this type.
<p> <p>
@attr description @attr description
Default background for the menu header. Default background for the menu header.
<p>This corresponds to the global attribute <p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_headerBackground}.
resource symbol {@link android.R.attr#headerBackground}. @attr name android:android_headerBackground
@attr name android:headerBackground
*/ */
public static final int MenuView_android_headerBackground = 4; public static final int MenuView_android_headerBackground = 4;
/** /**
<p> <p>
@attr description @attr description
Default horizontal divider between rows of menu items. Default horizontal divider between rows of menu items.
<p>This corresponds to the global attribute <p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_horizontalDivider}.
resource symbol {@link android.R.attr#horizontalDivider}. @attr name android:android_horizontalDivider
@attr name android:horizontalDivider
*/ */
public static final int MenuView_android_horizontalDivider = 2; public static final int MenuView_android_horizontalDivider = 2;
/** /**
<p> <p>
@attr description @attr description
Default background for each menu item. Default background for each menu item.
<p>This corresponds to the global attribute <p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_itemBackground}.
resource symbol {@link android.R.attr#itemBackground}. @attr name android:android_itemBackground
@attr name android:itemBackground
*/ */
public static final int MenuView_android_itemBackground = 5; public static final int MenuView_android_itemBackground = 5;
/** /**
<p> <p>
@attr description @attr description
Default disabled icon alpha for each menu item that shows an icon. Default disabled icon alpha for each menu item that shows an icon.
<p>This corresponds to the global attribute <p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_itemIconDisabledAlpha}.
resource symbol {@link android.R.attr#itemIconDisabledAlpha}. @attr name android:android_itemIconDisabledAlpha
@attr name android:itemIconDisabledAlpha
*/ */
public static final int MenuView_android_itemIconDisabledAlpha = 6; public static final int MenuView_android_itemIconDisabledAlpha = 6;
/** /**
<p> <p>
@attr description @attr description
Default appearance of menu item text. Default appearance of menu item text.
<p>This corresponds to the global attribute <p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_itemTextAppearance}.
resource symbol {@link android.R.attr#itemTextAppearance}. @attr name android:android_itemTextAppearance
@attr name android:itemTextAppearance
*/ */
public static final int MenuView_android_itemTextAppearance = 1; public static final int MenuView_android_itemTextAppearance = 1;
/** /**
@ -2410,25 +2386,23 @@ containing a value of this type.
@attr description @attr description
Whether space should be reserved in layout when an icon is missing. Whether space should be reserved in layout when an icon is missing.
<p>This is a private symbol. <p>This is a private symbol.
@attr name android:preserveIconSpacing @attr name android:android_preserveIconSpacing
*/ */
public static final int MenuView_android_preserveIconSpacing = 7; public static final int MenuView_android_preserveIconSpacing = 7;
/** /**
<p> <p>
@attr description @attr description
Default vertical divider between menu items. Default vertical divider between menu items.
<p>This corresponds to the global attribute <p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_verticalDivider}.
resource symbol {@link android.R.attr#verticalDivider}. @attr name android:android_verticalDivider
@attr name android:verticalDivider
*/ */
public static final int MenuView_android_verticalDivider = 3; public static final int MenuView_android_verticalDivider = 3;
/** /**
<p> <p>
@attr description @attr description
Default animations for the menu. Default animations for the menu.
<p>This corresponds to the global attribute <p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_windowAnimationStyle}.
resource symbol {@link android.R.attr#windowAnimationStyle}. @attr name android:android_windowAnimationStyle
@attr name android:windowAnimationStyle
*/ */
public static final int MenuView_android_windowAnimationStyle = 0; public static final int MenuView_android_windowAnimationStyle = 0;
/** Attributes that can be used with a SearchView. /** Attributes that can be used with a SearchView.
@ -2437,9 +2411,9 @@ containing a value of this type.
<colgroup align="left" /> <colgroup align="left" />
<colgroup align="left" /> <colgroup align="left" />
<tr><th>Attribute</th><th>Description</th></tr> <tr><th>Attribute</th><th>Description</th></tr>
<tr><td><code>{@link #SearchView_android_imeOptions android:imeOptions}</code></td><td> The IME options to set on the query text field.</td></tr> <tr><td><code>{@link #SearchView_android_imeOptions android.support.v7.appcompat:android_imeOptions}</code></td><td> The IME options to set on the query text field.</td></tr>
<tr><td><code>{@link #SearchView_android_inputType android:inputType}</code></td><td> The input type to set on the query text field.</td></tr> <tr><td><code>{@link #SearchView_android_inputType android.support.v7.appcompat:android_inputType}</code></td><td> The input type to set on the query text field.</td></tr>
<tr><td><code>{@link #SearchView_android_maxWidth android:maxWidth}</code></td><td> An optional maximum width of the SearchView.</td></tr> <tr><td><code>{@link #SearchView_android_maxWidth android.support.v7.appcompat:android_maxWidth}</code></td><td> An optional maximum width of the SearchView.</td></tr>
<tr><td><code>{@link #SearchView_iconifiedByDefault android.support.v7.appcompat:iconifiedByDefault}</code></td><td> The default state of the SearchView.</td></tr> <tr><td><code>{@link #SearchView_iconifiedByDefault android.support.v7.appcompat:iconifiedByDefault}</code></td><td> The default state of the SearchView.</td></tr>
<tr><td><code>{@link #SearchView_queryHint android.support.v7.appcompat:queryHint}</code></td><td> An optional query hint string to be displayed in the empty query field.</td></tr> <tr><td><code>{@link #SearchView_queryHint android.support.v7.appcompat:queryHint}</code></td><td> An optional query hint string to be displayed in the empty query field.</td></tr>
</table> </table>
@ -2457,27 +2431,24 @@ containing a value of this type.
<p> <p>
@attr description @attr description
The IME options to set on the query text field. The IME options to set on the query text field.
<p>This corresponds to the global attribute <p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_imeOptions}.
resource symbol {@link android.R.attr#imeOptions}. @attr name android:android_imeOptions
@attr name android:imeOptions
*/ */
public static final int SearchView_android_imeOptions = 2; public static final int SearchView_android_imeOptions = 2;
/** /**
<p> <p>
@attr description @attr description
The input type to set on the query text field. The input type to set on the query text field.
<p>This corresponds to the global attribute <p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_inputType}.
resource symbol {@link android.R.attr#inputType}. @attr name android:android_inputType
@attr name android:inputType
*/ */
public static final int SearchView_android_inputType = 1; public static final int SearchView_android_inputType = 1;
/** /**
<p> <p>
@attr description @attr description
An optional maximum width of the SearchView. An optional maximum width of the SearchView.
<p>This corresponds to the global attribute <p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_maxWidth}.
resource symbol {@link android.R.attr#maxWidth}. @attr name android:android_maxWidth
@attr name android:maxWidth
*/ */
public static final int SearchView_android_maxWidth = 0; public static final int SearchView_android_maxWidth = 0;
/** /**
@ -2494,7 +2465,7 @@ theme attribute (in the form
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>") "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
containing a value of this type. containing a value of this type.
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:iconifiedByDefault @attr name android:iconifiedByDefault
*/ */
public static final int SearchView_iconifiedByDefault = 3; public static final int SearchView_iconifiedByDefault = 3;
/** /**
@ -2510,7 +2481,7 @@ theme attribute (in the form
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>") "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
containing a value of this type. containing a value of this type.
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:queryHint @attr name android:queryHint
*/ */
public static final int SearchView_queryHint = 4; public static final int SearchView_queryHint = 4;
/** Attributes that can be used with a Spinner. /** Attributes that can be used with a Spinner.
@ -2519,14 +2490,14 @@ containing a value of this type.
<colgroup align="left" /> <colgroup align="left" />
<colgroup align="left" /> <colgroup align="left" />
<tr><th>Attribute</th><th>Description</th></tr> <tr><th>Attribute</th><th>Description</th></tr>
<tr><td><code>{@link #Spinner_android_dropDownHorizontalOffset android:dropDownHorizontalOffset}</code></td><td> Horizontal offset from the spinner widget for positioning the dropdown <tr><td><code>{@link #Spinner_android_dropDownHorizontalOffset android.support.v7.appcompat:android_dropDownHorizontalOffset}</code></td><td> Horizontal offset from the spinner widget for positioning the dropdown
in spinnerMode="dropdown".</td></tr> in spinnerMode="dropdown".</td></tr>
<tr><td><code>{@link #Spinner_android_dropDownSelector android:dropDownSelector}</code></td><td> List selector to use for spinnerMode="dropdown" display.</td></tr> <tr><td><code>{@link #Spinner_android_dropDownSelector android.support.v7.appcompat:android_dropDownSelector}</code></td><td> List selector to use for spinnerMode="dropdown" display.</td></tr>
<tr><td><code>{@link #Spinner_android_dropDownVerticalOffset android:dropDownVerticalOffset}</code></td><td> Vertical offset from the spinner widget for positioning the dropdown in <tr><td><code>{@link #Spinner_android_dropDownVerticalOffset android.support.v7.appcompat:android_dropDownVerticalOffset}</code></td><td> Vertical offset from the spinner widget for positioning the dropdown in
spinnerMode="dropdown".</td></tr> spinnerMode="dropdown".</td></tr>
<tr><td><code>{@link #Spinner_android_dropDownWidth android:dropDownWidth}</code></td><td> Width of the dropdown in spinnerMode="dropdown".</td></tr> <tr><td><code>{@link #Spinner_android_dropDownWidth android.support.v7.appcompat:android_dropDownWidth}</code></td><td> Width of the dropdown in spinnerMode="dropdown".</td></tr>
<tr><td><code>{@link #Spinner_android_gravity android:gravity}</code></td><td> Gravity setting for positioning the currently selected item.</td></tr> <tr><td><code>{@link #Spinner_android_gravity android.support.v7.appcompat:android_gravity}</code></td><td> Gravity setting for positioning the currently selected item.</td></tr>
<tr><td><code>{@link #Spinner_android_popupBackground android:popupBackground}</code></td><td> Background drawable to use for the dropdown in spinnerMode="dropdown".</td></tr> <tr><td><code>{@link #Spinner_android_popupBackground android.support.v7.appcompat:android_popupBackground}</code></td><td> Background drawable to use for the dropdown in spinnerMode="dropdown".</td></tr>
<tr><td><code>{@link #Spinner_disableChildrenWhenDisabled android.support.v7.appcompat:disableChildrenWhenDisabled}</code></td><td> Whether this spinner should mark child views as enabled/disabled when <tr><td><code>{@link #Spinner_disableChildrenWhenDisabled android.support.v7.appcompat:disableChildrenWhenDisabled}</code></td><td> Whether this spinner should mark child views as enabled/disabled when
the spinner itself is enabled/disabled.</td></tr> the spinner itself is enabled/disabled.</td></tr>
<tr><td><code>{@link #Spinner_popupPromptView android.support.v7.appcompat:popupPromptView}</code></td><td> Reference to a layout to use for displaying a prompt in the dropdown for <tr><td><code>{@link #Spinner_popupPromptView android.support.v7.appcompat:popupPromptView}</code></td><td> Reference to a layout to use for displaying a prompt in the dropdown for
@ -2555,18 +2526,16 @@ containing a value of this type.
@attr description @attr description
Horizontal offset from the spinner widget for positioning the dropdown Horizontal offset from the spinner widget for positioning the dropdown
in spinnerMode="dropdown". in spinnerMode="dropdown".
<p>This corresponds to the global attribute <p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_dropDownHorizontalOffset}.
resource symbol {@link android.R.attr#dropDownHorizontalOffset}. @attr name android:android_dropDownHorizontalOffset
@attr name android:dropDownHorizontalOffset
*/ */
public static final int Spinner_android_dropDownHorizontalOffset = 4; public static final int Spinner_android_dropDownHorizontalOffset = 4;
/** /**
<p> <p>
@attr description @attr description
List selector to use for spinnerMode="dropdown" display. List selector to use for spinnerMode="dropdown" display.
<p>This corresponds to the global attribute <p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_dropDownSelector}.
resource symbol {@link android.R.attr#dropDownSelector}. @attr name android:android_dropDownSelector
@attr name android:dropDownSelector
*/ */
public static final int Spinner_android_dropDownSelector = 1; public static final int Spinner_android_dropDownSelector = 1;
/** /**
@ -2574,36 +2543,32 @@ containing a value of this type.
@attr description @attr description
Vertical offset from the spinner widget for positioning the dropdown in Vertical offset from the spinner widget for positioning the dropdown in
spinnerMode="dropdown". spinnerMode="dropdown".
<p>This corresponds to the global attribute <p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_dropDownVerticalOffset}.
resource symbol {@link android.R.attr#dropDownVerticalOffset}. @attr name android:android_dropDownVerticalOffset
@attr name android:dropDownVerticalOffset
*/ */
public static final int Spinner_android_dropDownVerticalOffset = 5; public static final int Spinner_android_dropDownVerticalOffset = 5;
/** /**
<p> <p>
@attr description @attr description
Width of the dropdown in spinnerMode="dropdown". Width of the dropdown in spinnerMode="dropdown".
<p>This corresponds to the global attribute <p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_dropDownWidth}.
resource symbol {@link android.R.attr#dropDownWidth}. @attr name android:android_dropDownWidth
@attr name android:dropDownWidth
*/ */
public static final int Spinner_android_dropDownWidth = 3; public static final int Spinner_android_dropDownWidth = 3;
/** /**
<p> <p>
@attr description @attr description
Gravity setting for positioning the currently selected item. Gravity setting for positioning the currently selected item.
<p>This corresponds to the global attribute <p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_gravity}.
resource symbol {@link android.R.attr#gravity}. @attr name android:android_gravity
@attr name android:gravity
*/ */
public static final int Spinner_android_gravity = 0; public static final int Spinner_android_gravity = 0;
/** /**
<p> <p>
@attr description @attr description
Background drawable to use for the dropdown in spinnerMode="dropdown". Background drawable to use for the dropdown in spinnerMode="dropdown".
<p>This corresponds to the global attribute <p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_popupBackground}.
resource symbol {@link android.R.attr#popupBackground}. @attr name android:android_popupBackground
@attr name android:popupBackground
*/ */
public static final int Spinner_android_popupBackground = 2; public static final int Spinner_android_popupBackground = 2;
/** /**
@ -2620,7 +2585,7 @@ theme attribute (in the form
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>") "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
containing a value of this type. containing a value of this type.
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:disableChildrenWhenDisabled @attr name android:disableChildrenWhenDisabled
*/ */
public static final int Spinner_disableChildrenWhenDisabled = 9; public static final int Spinner_disableChildrenWhenDisabled = 9;
/** /**
@ -2634,7 +2599,7 @@ containing a value of this type.
<p>Must be a reference to another resource, in the form "<code>@[+][<i>package</i>:]<i>type</i>:<i>name</i></code>" <p>Must be a reference to another resource, in the form "<code>@[+][<i>package</i>:]<i>type</i>:<i>name</i></code>"
or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>". or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>".
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:popupPromptView @attr name android:popupPromptView
*/ */
public static final int Spinner_popupPromptView = 8; public static final int Spinner_popupPromptView = 8;
/** /**
@ -2646,7 +2611,7 @@ or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>na
<p>Must be a reference to another resource, in the form "<code>@[+][<i>package</i>:]<i>type</i>:<i>name</i></code>" <p>Must be a reference to another resource, in the form "<code>@[+][<i>package</i>:]<i>type</i>:<i>name</i></code>"
or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>". or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>".
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:prompt @attr name android:prompt
*/ */
public static final int Spinner_prompt = 6; public static final int Spinner_prompt = 6;
/** /**
@ -2666,7 +2631,7 @@ or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>na
anchored to the spinner widget itself. </td></tr> anchored to the spinner widget itself. </td></tr>
</table> </table>
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:spinnerMode @attr name android:spinnerMode
*/ */
public static final int Spinner_spinnerMode = 7; public static final int Spinner_spinnerMode = 7;
/** These are the standard attributes that make up a complete theme. /** These are the standard attributes that make up a complete theme.
@ -2702,7 +2667,7 @@ or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>na
<p>Must be a reference to another resource, in the form "<code>@[+][<i>package</i>:]<i>type</i>:<i>name</i></code>" <p>Must be a reference to another resource, in the form "<code>@[+][<i>package</i>:]<i>type</i>:<i>name</i></code>"
or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>". or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>".
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:actionDropDownStyle @attr name android:actionDropDownStyle
*/ */
public static final int Theme_actionDropDownStyle = 0; public static final int Theme_actionDropDownStyle = 0;
/** /**
@ -2720,7 +2685,7 @@ theme attribute (in the form
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>") "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
containing a value of this type. containing a value of this type.
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:dropdownListPreferredItemHeight @attr name android:dropdownListPreferredItemHeight
*/ */
public static final int Theme_dropdownListPreferredItemHeight = 1; public static final int Theme_dropdownListPreferredItemHeight = 1;
/** /**
@ -2732,7 +2697,7 @@ containing a value of this type.
<p>Must be a reference to another resource, in the form "<code>@[+][<i>package</i>:]<i>type</i>:<i>name</i></code>" <p>Must be a reference to another resource, in the form "<code>@[+][<i>package</i>:]<i>type</i>:<i>name</i></code>"
or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>". or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>".
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:listChoiceBackgroundIndicator @attr name android:listChoiceBackgroundIndicator
*/ */
public static final int Theme_listChoiceBackgroundIndicator = 5; public static final int Theme_listChoiceBackgroundIndicator = 5;
/** /**
@ -2744,7 +2709,7 @@ or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>na
<p>Must be a reference to another resource, in the form "<code>@[+][<i>package</i>:]<i>type</i>:<i>name</i></code>" <p>Must be a reference to another resource, in the form "<code>@[+][<i>package</i>:]<i>type</i>:<i>name</i></code>"
or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>". or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>".
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:panelMenuListTheme @attr name android:panelMenuListTheme
*/ */
public static final int Theme_panelMenuListTheme = 4; public static final int Theme_panelMenuListTheme = 4;
/** /**
@ -2762,7 +2727,7 @@ theme attribute (in the form
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>") "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
containing a value of this type. containing a value of this type.
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:panelMenuListWidth @attr name android:panelMenuListWidth
*/ */
public static final int Theme_panelMenuListWidth = 3; public static final int Theme_panelMenuListWidth = 3;
/** /**
@ -2774,7 +2739,7 @@ containing a value of this type.
<p>Must be a reference to another resource, in the form "<code>@[+][<i>package</i>:]<i>type</i>:<i>name</i></code>" <p>Must be a reference to another resource, in the form "<code>@[+][<i>package</i>:]<i>type</i>:<i>name</i></code>"
or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>". or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>".
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:popupMenuStyle @attr name android:popupMenuStyle
*/ */
public static final int Theme_popupMenuStyle = 2; public static final int Theme_popupMenuStyle = 2;
/** Attributes that can be used with a View. /** Attributes that can be used with a View.
@ -2783,7 +2748,7 @@ or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>na
<colgroup align="left" /> <colgroup align="left" />
<colgroup align="left" /> <colgroup align="left" />
<tr><th>Attribute</th><th>Description</th></tr> <tr><th>Attribute</th><th>Description</th></tr>
<tr><td><code>{@link #View_android_focusable android:focusable}</code></td><td> Boolean that controls whether a view can take focus.</td></tr> <tr><td><code>{@link #View_android_focusable android.support.v7.appcompat:android_focusable}</code></td><td> Boolean that controls whether a view can take focus.</td></tr>
<tr><td><code>{@link #View_paddingEnd android.support.v7.appcompat:paddingEnd}</code></td><td> Sets the padding, in pixels, of the end edge; see {@link android.R.attr#padding}.</td></tr> <tr><td><code>{@link #View_paddingEnd android.support.v7.appcompat:paddingEnd}</code></td><td> Sets the padding, in pixels, of the end edge; see {@link android.R.attr#padding}.</td></tr>
<tr><td><code>{@link #View_paddingStart android.support.v7.appcompat:paddingStart}</code></td><td> Sets the padding, in pixels, of the start edge; see {@link android.R.attr#padding}.</td></tr> <tr><td><code>{@link #View_paddingStart android.support.v7.appcompat:paddingStart}</code></td><td> Sets the padding, in pixels, of the start edge; see {@link android.R.attr#padding}.</td></tr>
</table> </table>
@ -2803,9 +2768,8 @@ or to a theme attribute in the form "<code>?[<i>package</i>:][<i>type</i>:]<i>na
directly calling {@link android.view.View#requestFocus}, which will directly calling {@link android.view.View#requestFocus}, which will
always request focus regardless of this view. It only impacts where always request focus regardless of this view. It only impacts where
focus navigation will try to move focus. focus navigation will try to move focus.
<p>This corresponds to the global attribute <p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_focusable}.
resource symbol {@link android.R.attr#focusable}. @attr name android:android_focusable
@attr name android:focusable
*/ */
public static final int View_android_focusable = 0; public static final int View_android_focusable = 0;
/** /**
@ -2823,7 +2787,7 @@ theme attribute (in the form
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>") "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
containing a value of this type. containing a value of this type.
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:paddingEnd @attr name android:paddingEnd
*/ */
public static final int View_paddingEnd = 2; public static final int View_paddingEnd = 2;
/** /**
@ -2841,7 +2805,7 @@ theme attribute (in the form
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>") "<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
containing a value of this type. containing a value of this type.
<p>This is a private symbol. <p>This is a private symbol.
@attr name android.support.v7.appcompat:paddingStart @attr name android:paddingStart
*/ */
public static final int View_paddingStart = 1; public static final int View_paddingStart = 1;
}; };

View File

@ -0,0 +1,18 @@
package org.retroarch.browser;
public final class AssetExtractor {
final private String archive;
public AssetExtractor(String archive) {
this.archive = archive;
}
static {
System.loadLibrary("apk-extract");
}
public boolean extractTo(String subDirectory, String destinationFolder) {
return extractArchiveTo(archive, subDirectory, destinationFolder);
}
private static native boolean extractArchiveTo(String archive, String subDirectory, String destinationFolder);
}

View File

@ -10,6 +10,8 @@ import android.app.Dialog;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.PackageManager.NameNotFoundException;
import android.content.res.AssetManager; import android.content.res.AssetManager;
import android.media.AudioManager; import android.media.AudioManager;
@ -149,27 +151,21 @@ public final class MainMenuActivity extends PreferenceActivity {
return false; return false;
} }
// Extract assets from native code. Doing it from Java side is apparently unbearably slow ...
private void extractAssetsThread() { private void extractAssetsThread() {
try { try {
AssetManager assets = getAssets();
String dataDir = getApplicationInfo().dataDir; String dataDir = getApplicationInfo().dataDir;
String apk = getApplicationInfo().sourceDir;
Log.i(TAG, "Extracting RetroArch assets from: " + apk + " ...");
AssetExtractor asset = new AssetExtractor(apk);
boolean success = asset.extractTo("assets", dataDir);
if (!success) {
throw new IOException("Failed to extract assets ...");
}
Log.i(TAG, "Extracted assets ...");
File cacheVersion = new File(dataDir, ".cacheversion"); File cacheVersion = new File(dataDir, ".cacheversion");
// extractAssets(assets, cacheDir, "", 0);
Log.i("ASSETS", "Extracting shader assets now ...");
try {
extractAssets(assets, dataDir, "shaders_glsl", 1);
} catch (IOException e) {
Log.i("ASSETS", "Failed to extract shaders ...");
}
Log.i("ASSETS", "Extracting overlay assets now ...");
try {
extractAssets(assets, dataDir, "overlays", 1);
} catch (IOException e) {
Log.i("ASSETS", "Failed to extract overlays ...");
}
DataOutputStream outputCacheVersion = new DataOutputStream( DataOutputStream outputCacheVersion = new DataOutputStream(
new FileOutputStream(cacheVersion, false)); new FileOutputStream(cacheVersion, false));
outputCacheVersion.writeInt(getVersionCode()); outputCacheVersion.writeInt(getVersionCode());

96
file.c
View File

@ -39,102 +39,6 @@
#endif #endif
#endif #endif
// Dump stuff to file.
bool write_file(const char *path, const void *data, size_t size)
{
FILE *file = fopen(path, "wb");
if (!file)
return false;
else
{
bool ret = fwrite(data, 1, size, file) == size;
fclose(file);
return ret;
}
}
// Generic file loader.
ssize_t read_file(const char *path, void **buf)
{
void *rom_buf = NULL;
FILE *file = fopen(path, "rb");
ssize_t rc = 0;
size_t len = 0;
if (!file)
goto error;
fseek(file, 0, SEEK_END);
len = ftell(file);
rewind(file);
rom_buf = malloc(len + 1);
if (!rom_buf)
{
RARCH_ERR("Couldn't allocate memory.\n");
goto error;
}
if ((rc = fread(rom_buf, 1, len, file)) < (ssize_t)len)
RARCH_WARN("Didn't read whole file.\n");
*buf = rom_buf;
// Allow for easy reading of strings to be safe.
// Will only work with sane character formatting (Unix).
((char*)rom_buf)[len] = '\0';
fclose(file);
return rc;
error:
if (file)
fclose(file);
free(rom_buf);
*buf = NULL;
return -1;
}
// Reads file content as one string.
bool read_file_string(const char *path, char **buf)
{
*buf = NULL;
FILE *file = fopen(path, "r");
size_t len = 0;
char *ptr = NULL;
if (!file)
goto error;
fseek(file, 0, SEEK_END);
len = ftell(file) + 2; // Takes account of being able to read in EOF and '\0' at end.
rewind(file);
*buf = (char*)calloc(len, sizeof(char));
if (!*buf)
goto error;
ptr = *buf;
while (ptr && !feof(file))
{
size_t bufsize = (size_t)(((ptrdiff_t)*buf + (ptrdiff_t)len) - (ptrdiff_t)ptr);
fgets(ptr, bufsize, file);
ptr += strlen(ptr);
}
ptr = strchr(ptr, EOF);
if (ptr)
*ptr = '\0';
fclose(file);
return true;
error:
if (file)
fclose(file);
if (*buf)
free(*buf);
return false;
}
static void patch_rom(uint8_t **buf, ssize_t *size) static void patch_rom(uint8_t **buf, ssize_t *size)
{ {
uint8_t *ret_buf = *buf; uint8_t *ret_buf = *buf;

1
file.h
View File

@ -31,6 +31,7 @@ extern "C" {
// Generic file, path and directory handling. // Generic file, path and directory handling.
ssize_t read_file(const char *path, void **buf); ssize_t read_file(const char *path, void **buf);
bool read_file_string(const char *path, char **buf);
bool write_file(const char *path, const void *buf, size_t size); bool write_file(const char *path, const void *buf, size_t size);
bool load_state(const char *path); bool load_state(const char *path);

View File

@ -294,7 +294,7 @@ bool zlib_parse_file(const char *file, zlib_file_cb file_cb, void *userdata)
const uint8_t *cdata = data + offset + 30 + offsetNL + offsetEL; const uint8_t *cdata = data + offset + 30 + offsetNL + offsetEL;
RARCH_LOG("OFFSET: %u, CSIZE: %u, SIZE: %u.\n", offset + 30 + offsetNL + offsetEL, csize, size); //RARCH_LOG("OFFSET: %u, CSIZE: %u, SIZE: %u.\n", offset + 30 + offsetNL + offsetEL, csize, size);
if (!file_cb(filename, cdata, cmode, csize, size, crc32, userdata)) if (!file_cb(filename, cdata, cmode, csize, size, crc32, userdata))
break; break;

View File

@ -55,6 +55,102 @@
#include <unistd.h> #include <unistd.h>
#endif #endif
// Dump stuff to file.
bool write_file(const char *path, const void *data, size_t size)
{
FILE *file = fopen(path, "wb");
if (!file)
return false;
else
{
bool ret = fwrite(data, 1, size, file) == size;
fclose(file);
return ret;
}
}
// Generic file loader.
ssize_t read_file(const char *path, void **buf)
{
void *rom_buf = NULL;
FILE *file = fopen(path, "rb");
ssize_t rc = 0;
size_t len = 0;
if (!file)
goto error;
fseek(file, 0, SEEK_END);
len = ftell(file);
rewind(file);
rom_buf = malloc(len + 1);
if (!rom_buf)
{
RARCH_ERR("Couldn't allocate memory.\n");
goto error;
}
if ((rc = fread(rom_buf, 1, len, file)) < (ssize_t)len)
RARCH_WARN("Didn't read whole file.\n");
*buf = rom_buf;
// Allow for easy reading of strings to be safe.
// Will only work with sane character formatting (Unix).
((char*)rom_buf)[len] = '\0';
fclose(file);
return rc;
error:
if (file)
fclose(file);
free(rom_buf);
*buf = NULL;
return -1;
}
// Reads file content as one string.
bool read_file_string(const char *path, char **buf)
{
*buf = NULL;
FILE *file = fopen(path, "r");
size_t len = 0;
char *ptr = NULL;
if (!file)
goto error;
fseek(file, 0, SEEK_END);
len = ftell(file) + 2; // Takes account of being able to read in EOF and '\0' at end.
rewind(file);
*buf = (char*)calloc(len, sizeof(char));
if (!*buf)
goto error;
ptr = *buf;
while (ptr && !feof(file))
{
size_t bufsize = (size_t)(((ptrdiff_t)*buf + (ptrdiff_t)len) - (ptrdiff_t)ptr);
fgets(ptr, bufsize, file);
ptr += strlen(ptr);
}
ptr = strchr(ptr, EOF);
if (ptr)
*ptr = '\0';
fclose(file);
return true;
error:
if (file)
fclose(file);
if (*buf)
free(*buf);
return false;
}
void string_list_free(struct string_list *list) void string_list_free(struct string_list *list)
{ {
if (!list) if (!list)

View File

@ -21,7 +21,7 @@
#include <android/log.h> #include <android/log.h>
#endif #endif
#ifdef IS_SALAMANDER #if defined(IS_SALAMANDER) || defined(RARCH_DUMMY_LOG)
#define LOG_FILE (stderr) #define LOG_FILE (stderr)
#else #else
#define LOG_FILE (g_extern.log_file ? g_extern.log_file : stderr) #define LOG_FILE (g_extern.log_file ? g_extern.log_file : stderr)
@ -31,6 +31,12 @@
#include <logger_override.h> #include <logger_override.h>
#else #else
#ifdef RARCH_DUMMY_LOG
#define RARCH_LOG_VERBOSE (true)
#else
#define RARCH_LOG_VERBOSE g_extern.verbose
#endif
#ifndef RARCH_LOG #ifndef RARCH_LOG
#if defined(ANDROID) && defined(HAVE_LOGGER) #if defined(ANDROID) && defined(HAVE_LOGGER)
#define RARCH_LOG(...) __android_log_print(ANDROID_LOG_INFO, "RetroArch: ", __VA_ARGS__) #define RARCH_LOG(...) __android_log_print(ANDROID_LOG_INFO, "RetroArch: ", __VA_ARGS__)
@ -41,7 +47,7 @@
} while (0) } while (0)
#else #else
#define RARCH_LOG(...) do { \ #define RARCH_LOG(...) do { \
if (g_extern.verbose) \ if (RARCH_LOG_VERBOSE) \
{ \ { \
fprintf(LOG_FILE, "RetroArch: " __VA_ARGS__); \ fprintf(LOG_FILE, "RetroArch: " __VA_ARGS__); \
fflush(LOG_FILE); \ fflush(LOG_FILE); \
@ -60,7 +66,7 @@
} while (0) } while (0)
#else #else
#define RARCH_LOG_OUTPUT(...) do { \ #define RARCH_LOG_OUTPUT(...) do { \
if (g_extern.verbose) \ if (RARCH_LOG_VERBOSE) \
{ \ { \
fprintf(LOG_FILE, __VA_ARGS__); \ fprintf(LOG_FILE, __VA_ARGS__); \
fflush(LOG_FILE); \ fflush(LOG_FILE); \
@ -135,3 +141,4 @@
#endif #endif
#endif #endif