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)
ifeq ($(TARGET_ARCH),arm)
LOCAL_CFLAGS += -DANDROID_ARM -marm
LOCAL_ARM_MODE := arm
LOCAL_CFLAGS += -DANDROID_ARM -marm
LOCAL_ARM_MODE := arm
endif
ifeq ($(TARGET_ARCH),x86)
LOCAL_CFLAGS += -DANDROID_X86 -DHAVE_SSSE3
LOCAL_CFLAGS += -DANDROID_X86 -DHAVE_SSSE3
endif
ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
ifeq ($(HAVE_NEON),1)
LOCAL_CFLAGS += -DHAVE_NEON
LOCAL_SRC_FILES += ../../../audio/utils_neon.S.neon
LOCAL_CFLAGS += -DHAVE_NEON
LOCAL_SRC_FILES += ../../../audio/utils_neon.S.neon
endif
ifeq ($(HAVE_NEON),1)
LOCAL_SRC_FILES += ../../../audio/sinc_neon.S.neon
LOCAL_SRC_FILES += ../../../audio/sinc_neon.S.neon
endif
LOCAL_CFLAGS += -DSINC_LOWER_QUALITY
@ -30,21 +30,21 @@ endif
ifeq ($(TARGET_ARCH),mips)
LOCAL_CFLAGS += -DANDROID_MIPS -D__mips__ -D__MIPSEL__
LOCAL_CFLAGS += -DANDROID_MIPS -D__mips__ -D__MIPSEL__
endif
LOCAL_MODULE := retroarch-activity
LOCAL_MODULE := retroarch-activity
RARCH_PATH := ../../..
LOCAL_SRC_FILES += $(RARCH_PATH)/griffin/griffin.c
ifeq ($(HAVE_LOGGER), 1)
LOCAL_CFLAGS += -DHAVE_LOGGER
LOGGER_LDLIBS := -llog
LOCAL_CFLAGS += -DHAVE_LOGGER
LOGGER_LDLIBS := -llog
endif
ifeq ($(PERF_TEST), 1)
LOCAL_CFLAGS += -DPERF_TEST
LOCAL_CFLAGS += -DPERF_TEST
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
@ -55,3 +55,4 @@ LOCAL_CFLAGS += -DHAVE_SL
LOCAL_LDLIBS += -lOpenSLES
include $(BUILD_SHARED_LIBRARY)

View File

@ -1,12 +1,14 @@
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 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>"
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.
@attr name android.support.v7.appcompat:background
@attr name android:background
*/
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>",
"<code>#<i>rrggbb</i></code>", or "<code>#<i>aarrggbb</i></code>".
<p>This is a private symbol.
@attr name android.support.v7.appcompat:backgroundSplit
@attr name android:backgroundSplit
*/
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>",
"<code>#<i>rrggbb</i></code>", or "<code>#<i>aarrggbb</i></code>".
<p>This is a private symbol.
@attr name android.support.v7.appcompat:backgroundStacked
@attr name android:backgroundStacked
*/
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>"
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.
@attr name android.support.v7.appcompat:customNavigationLayout
@attr name android:customNavigationLayout
*/
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>
</table>
<p>This is a private symbol.
@attr name android.support.v7.appcompat:displayOptions
@attr name android:displayOptions
*/
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>"
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.
@attr name android.support.v7.appcompat:divider
@attr name android:divider
*/
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>")
containing a value of this type.
<p>This is a private symbol.
@attr name android.support.v7.appcompat:height
@attr name android:height
*/
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>"
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.
@attr name android.support.v7.appcompat:homeLayout
@attr name android:homeLayout
*/
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>"
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.
@attr name android.support.v7.appcompat:icon
@attr name android:icon
*/
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>"
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.
@attr name android.support.v7.appcompat:indeterminateProgressStyle
@attr name android:indeterminateProgressStyle
*/
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>")
containing a value of this type.
<p>This is a private symbol.
@attr name android.support.v7.appcompat:itemPadding
@attr name android:itemPadding
*/
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>"
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.
@attr name android.support.v7.appcompat:logo
@attr name android:logo
*/
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>
</table>
<p>This is a private symbol.
@attr name android.support.v7.appcompat:navigationMode
@attr name android:navigationMode
*/
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>")
containing a value of this type.
<p>This is a private symbol.
@attr name android.support.v7.appcompat:progressBarPadding
@attr name android:progressBarPadding
*/
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>"
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.
@attr name android.support.v7.appcompat:progressBarStyle
@attr name android:progressBarStyle
*/
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>")
containing a value of this type.
<p>This is a private symbol.
@attr name android.support.v7.appcompat:subtitle
@attr name android:subtitle
*/
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>"
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.
@attr name android.support.v7.appcompat:subtitleTextStyle
@attr name android:subtitleTextStyle
*/
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>")
containing a value of this type.
<p>This is a private symbol.
@attr name android.support.v7.appcompat:title
@attr name android:title
*/
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>"
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.
@attr name android.support.v7.appcompat:titleTextStyle
@attr name android:titleTextStyle
*/
public static final int ActionBar_titleTextStyle = 5;
/** 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" />
<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>
@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
};
/**
<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.
@attr name android:layout_gravity
@attr name android:android_layout_gravity
*/
public static final int ActionBarLayout_android_layout_gravity = 0;
/** 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
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
containing a value of this type.
@attr name android.support.v7.appcompat:windowActionBar
@attr name android:windowActionBar
*/
public static final int ActionBarWindow_windowActionBar = 0;
/**
@ -1720,7 +1720,7 @@ containing a value of this type.
theme attribute (in the form
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
containing a value of this type.
@attr name android.support.v7.appcompat:windowActionBarOverlay
@attr name android:windowActionBarOverlay
*/
public static final int ActionBarWindow_windowActionBarOverlay = 1;
/**
@ -1734,7 +1734,7 @@ containing a value of this type.
theme attribute (in the form
"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
containing a value of this type.
@attr name android.support.v7.appcompat:windowSplitActionBar
@attr name android:windowSplitActionBar
*/
public static final int ActionBarWindow_windowSplitActionBar = 2;
/** Attributes that can be used with a ActionMenuItemView.
@ -1743,7 +1743,7 @@ containing a value of this type.
<colgroup align="left" />
<colgroup align="left" />
<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>
@see #ActionMenuItemView_android_minWidth
*/
@ -1751,9 +1751,9 @@ containing a value of this type.
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.
@attr name android:minWidth
@attr name android:android_minWidth
*/
public static final int ActionMenuItemView_android_minWidth = 0;
/** 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>"
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.
@attr name android.support.v7.appcompat:background
@attr name android:background
*/
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>",
"<code>#<i>rrggbb</i></code>", or "<code>#<i>aarrggbb</i></code>".
<p>This is a private symbol.
@attr name android.support.v7.appcompat:backgroundSplit
@attr name android:backgroundSplit
*/
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>")
containing a value of this type.
<p>This is a private symbol.
@attr name android.support.v7.appcompat:height
@attr name android:height
*/
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>"
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.
@attr name android.support.v7.appcompat:subtitleTextStyle
@attr name android:subtitleTextStyle
*/
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>"
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.
@attr name android.support.v7.appcompat:titleTextStyle
@attr name android:titleTextStyle
*/
public static final int ActionMode_titleTextStyle = 1;
/** 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>"
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.
@attr name android.support.v7.appcompat:expandActivityOverflowButtonDrawable
@attr name android:expandActivityOverflowButtonDrawable
*/
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>")
containing a value of this type.
<p>This is a private symbol.
@attr name android.support.v7.appcompat:initialActivityCount
@attr name android:initialActivityCount
*/
public static final int ActivityChooserView_initialActivityCount = 0;
/** 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>".
<p>May be a boolean value, either "<code>true</code>" or "<code>false</code>".
<p>This is a private symbol.
@attr name android.support.v7.appcompat:textAllCaps
@attr name android:textAllCaps
*/
public static final int CompatTextView_textAllCaps = 0;
/** 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>"
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.
@attr name android.support.v7.appcompat:divider
@attr name android:divider
*/
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>")
containing a value of this type.
<p>This is a private symbol.
@attr name android.support.v7.appcompat:dividerPadding
@attr name android:dividerPadding
*/
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>
</table>
<p>This is a private symbol.
@attr name android.support.v7.appcompat:showDividers
@attr name android:showDividers
*/
public static final int LinearLayoutICS_showDividers = 1;
/** Base attributes that are available to all groups.
@ -1999,12 +1999,12 @@ containing a value of this type.
<colgroup align="left" />
<colgroup align="left" />
<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_enabled 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_menuCategory 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_visible android:visible}</code></td><td> Whether the items are shown/visible.</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.support.v7.appcompat:android_enabled}</code></td><td> Whether the items are enabled.</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.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.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.support.v7.appcompat:android_visible}</code></td><td> Whether the items are shown/visible.</td></tr>
</table>
@see #MenuGroup_android_checkableBehavior
@see #MenuGroup_android_enabled
@ -2021,27 +2021,24 @@ containing a value of this type.
<p>
@attr description
Whether the items are capable of displaying a check mark.
<p>This corresponds to the global attribute
resource symbol {@link android.R.attr#checkableBehavior}.
@attr name android:checkableBehavior
<p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_checkableBehavior}.
@attr name android:android_checkableBehavior
*/
public static final int MenuGroup_android_checkableBehavior = 5;
/**
<p>
@attr description
Whether the items are enabled.
<p>This corresponds to the global attribute
resource symbol {@link android.R.attr#enabled}.
@attr name android:enabled
<p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_enabled}.
@attr name android:android_enabled
*/
public static final int MenuGroup_android_enabled = 0;
/**
<p>
@attr description
The ID of the group.
<p>This corresponds to the global attribute
resource symbol {@link android.R.attr#id}.
@attr name android:id
<p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_id}.
@attr name android:android_id
*/
public static final int MenuGroup_android_id = 1;
/**
@ -2049,9 +2046,8 @@ containing a value of this type.
@attr description
The category applied to all items within this group.
(This will be or'ed with the orderInCategory attribute.)
<p>This corresponds to the global attribute
resource symbol {@link android.R.attr#menuCategory}.
@attr name android:menuCategory
<p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_menuCategory}.
@attr name android:android_menuCategory
*/
public static final int MenuGroup_android_menuCategory = 3;
/**
@ -2059,18 +2055,16 @@ containing a value of this type.
@attr description
The order within the category applied to all items within this group.
(This will be or'ed with the category attribute.)
<p>This corresponds to the global attribute
resource symbol {@link android.R.attr#orderInCategory}.
@attr name android:orderInCategory
<p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_orderInCategory}.
@attr name android:android_orderInCategory
*/
public static final int MenuGroup_android_orderInCategory = 4;
/**
<p>
@attr description
Whether the items are shown/visible.
<p>This corresponds to the global attribute
resource symbol {@link android.R.attr#visible}.
@attr name android:visible
<p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_visible}.
@attr name android:android_visible
*/
public static final int MenuGroup_android_visible = 2;
/** 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>
<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>
<tr><td><code>{@link #MenuItem_android_alphabeticShortcut 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_checked 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_icon 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_menuCategory 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_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_alphabeticShortcut android.support.v7.appcompat:android_alphabeticShortcut}</code></td><td> The alphabetic shortcut key.</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.support.v7.appcompat:android_checked}</code></td><td> Whether the item is checked.</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.support.v7.appcompat:android_icon}</code></td><td> The icon associated with this 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.support.v7.appcompat:android_menuCategory}</code></td><td> The category applied to the item.</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.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>
<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_title 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_visible android:visible}</code></td><td> Whether the item is shown/visible.</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.support.v7.appcompat:android_title}</code></td><td> The 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.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>
</table>
@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>"
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.
@attr name android.support.v7.appcompat:actionLayout
@attr name android:actionLayout
*/
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>")
containing a value of this type.
<p>This is a private symbol.
@attr name android.support.v7.appcompat:actionProviderClass
@attr name android:actionProviderClass
*/
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>")
containing a value of this type.
<p>This is a private symbol.
@attr name android.support.v7.appcompat:actionViewClass
@attr name android:actionViewClass
*/
public static final int MenuItem_actionViewClass = 15;
/**
@ -2181,18 +2175,16 @@ containing a value of this type.
@attr description
The alphabetic shortcut key. This is the shortcut when using a keyboard
with alphabetic keys.
<p>This corresponds to the global attribute
resource symbol {@link android.R.attr#alphabeticShortcut}.
@attr name android:alphabeticShortcut
<p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_alphabeticShortcut}.
@attr name android:android_alphabeticShortcut
*/
public static final int MenuItem_android_alphabeticShortcut = 9;
/**
<p>
@attr description
Whether the item is capable of displaying a check mark.
<p>This corresponds to the global attribute
resource symbol {@link android.R.attr#checkable}.
@attr name android:checkable
<p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_checkable}.
@attr name android:android_checkable
*/
public static final int MenuItem_android_checkable = 11;
/**
@ -2200,18 +2192,16 @@ containing a value of this type.
@attr description
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.
<p>This corresponds to the global attribute
resource symbol {@link android.R.attr#checked}.
@attr name android:checked
<p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_checked}.
@attr name android:android_checked
*/
public static final int MenuItem_android_checked = 3;
/**
<p>
@attr description
Whether the item is enabled.
<p>This corresponds to the global attribute
resource symbol {@link android.R.attr#enabled}.
@attr name android:enabled
<p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_enabled}.
@attr name android:android_enabled
*/
public static final int MenuItem_android_enabled = 1;
/**
@ -2219,18 +2209,16 @@ containing a value of this type.
@attr description
The icon associated with this item. This icon will not always be shown, so
the title should be sufficient in describing this item.
<p>This corresponds to the global attribute
resource symbol {@link android.R.attr#icon}.
@attr name android:icon
<p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_icon}.
@attr name android:android_icon
*/
public static final int MenuItem_android_icon = 0;
/**
<p>
@attr description
The ID of the item.
<p>This corresponds to the global attribute
resource symbol {@link android.R.attr#id}.
@attr name android:id
<p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_id}.
@attr name android:android_id
*/
public static final int MenuItem_android_id = 2;
/**
@ -2238,9 +2226,8 @@ containing a value of this type.
@attr description
The category applied to the item.
(This will be or'ed with the orderInCategory attribute.)
<p>This corresponds to the global attribute
resource symbol {@link android.R.attr#menuCategory}.
@attr name android:menuCategory
<p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_menuCategory}.
@attr name android:android_menuCategory
*/
public static final int MenuItem_android_menuCategory = 5;
/**
@ -2248,9 +2235,8 @@ containing a value of this type.
@attr description
The numeric shortcut key. This is the shortcut when using a numeric (e.g., 12-key)
keyboard.
<p>This corresponds to the global attribute
resource symbol {@link android.R.attr#numericShortcut}.
@attr name android:numericShortcut
<p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_numericShortcut}.
@attr name android:android_numericShortcut
*/
public static final int MenuItem_android_numericShortcut = 10;
/**
@ -2258,9 +2244,8 @@ containing a value of this type.
@attr description
Name of a method on the Context used to inflate the menu that will be
called when the item is clicked.
<p>This corresponds to the global attribute
resource symbol {@link android.R.attr#onClick}.
@attr name android:onClick
<p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_onClick}.
@attr name android:android_onClick
*/
public static final int MenuItem_android_onClick = 12;
/**
@ -2268,18 +2253,16 @@ containing a value of this type.
@attr description
The order within the category applied to the item.
(This will be or'ed with the category attribute.)
<p>This corresponds to the global attribute
resource symbol {@link android.R.attr#orderInCategory}.
@attr name android:orderInCategory
<p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_orderInCategory}.
@attr name android:android_orderInCategory
*/
public static final int MenuItem_android_orderInCategory = 6;
/**
<p>
@attr description
The title associated with the item.
<p>This corresponds to the global attribute
resource symbol {@link android.R.attr#title}.
@attr name android:title
<p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_title}.
@attr name android:android_title
*/
public static final int MenuItem_android_title = 7;
/**
@ -2287,18 +2270,16 @@ containing a value of this type.
@attr description
The condensed title associated with the item. This is used in situations where the
normal title may be too long to be displayed.
<p>This corresponds to the global attribute
resource symbol {@link android.R.attr#titleCondensed}.
@attr name android:titleCondensed
<p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_titleCondensed}.
@attr name android:android_titleCondensed
*/
public static final int MenuItem_android_titleCondensed = 8;
/**
<p>
@attr description
Whether the item is shown/visible.
<p>This corresponds to the global attribute
resource symbol {@link android.R.attr#visible}.
@attr name android:visible
<p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_visible}.
@attr name android:android_visible
*/
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>
</table>
<p>This is a private symbol.
@attr name android.support.v7.appcompat:showAsAction
@attr name android:showAsAction
*/
public static final int MenuItem_showAsAction = 13;
/** Attributes that can be used with a MenuView.
@ -2338,14 +2319,14 @@ containing a value of this type.
<colgroup align="left" />
<colgroup align="left" />
<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_horizontalDivider 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_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_itemTextAppearance 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_verticalDivider 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_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.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.support.v7.appcompat:android_itemBackground}</code></td><td> Default background for each menu item.</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.support.v7.appcompat:android_itemTextAppearance}</code></td><td> Default appearance of menu item text.</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.support.v7.appcompat:android_verticalDivider}</code></td><td> Default vertical divider between menu items.</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>
@see #MenuView_android_headerBackground
@see #MenuView_android_horizontalDivider
@ -2364,45 +2345,40 @@ containing a value of this type.
<p>
@attr description
Default background for the menu header.
<p>This corresponds to the global attribute
resource symbol {@link android.R.attr#headerBackground}.
@attr name android:headerBackground
<p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_headerBackground}.
@attr name android:android_headerBackground
*/
public static final int MenuView_android_headerBackground = 4;
/**
<p>
@attr description
Default horizontal divider between rows of menu items.
<p>This corresponds to the global attribute
resource symbol {@link android.R.attr#horizontalDivider}.
@attr name android:horizontalDivider
<p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_horizontalDivider}.
@attr name android:android_horizontalDivider
*/
public static final int MenuView_android_horizontalDivider = 2;
/**
<p>
@attr description
Default background for each menu item.
<p>This corresponds to the global attribute
resource symbol {@link android.R.attr#itemBackground}.
@attr name android:itemBackground
<p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_itemBackground}.
@attr name android:android_itemBackground
*/
public static final int MenuView_android_itemBackground = 5;
/**
<p>
@attr description
Default disabled icon alpha for each menu item that shows an icon.
<p>This corresponds to the global attribute
resource symbol {@link android.R.attr#itemIconDisabledAlpha}.
@attr name android:itemIconDisabledAlpha
<p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_itemIconDisabledAlpha}.
@attr name android:android_itemIconDisabledAlpha
*/
public static final int MenuView_android_itemIconDisabledAlpha = 6;
/**
<p>
@attr description
Default appearance of menu item text.
<p>This corresponds to the global attribute
resource symbol {@link android.R.attr#itemTextAppearance}.
@attr name android:itemTextAppearance
<p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_itemTextAppearance}.
@attr name android:android_itemTextAppearance
*/
public static final int MenuView_android_itemTextAppearance = 1;
/**
@ -2410,25 +2386,23 @@ containing a value of this type.
@attr description
Whether space should be reserved in layout when an icon is missing.
<p>This is a private symbol.
@attr name android:preserveIconSpacing
@attr name android:android_preserveIconSpacing
*/
public static final int MenuView_android_preserveIconSpacing = 7;
/**
<p>
@attr description
Default vertical divider between menu items.
<p>This corresponds to the global attribute
resource symbol {@link android.R.attr#verticalDivider}.
@attr name android:verticalDivider
<p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_verticalDivider}.
@attr name android:android_verticalDivider
*/
public static final int MenuView_android_verticalDivider = 3;
/**
<p>
@attr description
Default animations for the menu.
<p>This corresponds to the global attribute
resource symbol {@link android.R.attr#windowAnimationStyle}.
@attr name android:windowAnimationStyle
<p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_windowAnimationStyle}.
@attr name android:android_windowAnimationStyle
*/
public static final int MenuView_android_windowAnimationStyle = 0;
/** Attributes that can be used with a SearchView.
@ -2437,9 +2411,9 @@ containing a value of this type.
<colgroup align="left" />
<colgroup align="left" />
<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_inputType 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_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.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.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_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>
@ -2457,27 +2431,24 @@ containing a value of this type.
<p>
@attr description
The IME options to set on the query text field.
<p>This corresponds to the global attribute
resource symbol {@link android.R.attr#imeOptions}.
@attr name android:imeOptions
<p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_imeOptions}.
@attr name android:android_imeOptions
*/
public static final int SearchView_android_imeOptions = 2;
/**
<p>
@attr description
The input type to set on the query text field.
<p>This corresponds to the global attribute
resource symbol {@link android.R.attr#inputType}.
@attr name android:inputType
<p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_inputType}.
@attr name android:android_inputType
*/
public static final int SearchView_android_inputType = 1;
/**
<p>
@attr description
An optional maximum width of the SearchView.
<p>This corresponds to the global attribute
resource symbol {@link android.R.attr#maxWidth}.
@attr name android:maxWidth
<p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_maxWidth}.
@attr name android:android_maxWidth
*/
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>")
containing a value of this type.
<p>This is a private symbol.
@attr name android.support.v7.appcompat:iconifiedByDefault
@attr name android:iconifiedByDefault
*/
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>")
containing a value of this type.
<p>This is a private symbol.
@attr name android.support.v7.appcompat:queryHint
@attr name android:queryHint
*/
public static final int SearchView_queryHint = 4;
/** Attributes that can be used with a Spinner.
@ -2519,14 +2490,14 @@ containing a value of this type.
<colgroup align="left" />
<colgroup align="left" />
<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>
<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_dropDownVerticalOffset android:dropDownVerticalOffset}</code></td><td> Vertical offset from the spinner widget for positioning the dropdown in
<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.support.v7.appcompat:android_dropDownVerticalOffset}</code></td><td> Vertical offset from the spinner widget for positioning the dropdown in
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_gravity 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_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.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.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
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
@ -2555,18 +2526,16 @@ containing a value of this type.
@attr description
Horizontal offset from the spinner widget for positioning the dropdown
in spinnerMode="dropdown".
<p>This corresponds to the global attribute
resource symbol {@link android.R.attr#dropDownHorizontalOffset}.
@attr name android:dropDownHorizontalOffset
<p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_dropDownHorizontalOffset}.
@attr name android:android_dropDownHorizontalOffset
*/
public static final int Spinner_android_dropDownHorizontalOffset = 4;
/**
<p>
@attr description
List selector to use for spinnerMode="dropdown" display.
<p>This corresponds to the global attribute
resource symbol {@link android.R.attr#dropDownSelector}.
@attr name android:dropDownSelector
<p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_dropDownSelector}.
@attr name android:android_dropDownSelector
*/
public static final int Spinner_android_dropDownSelector = 1;
/**
@ -2574,36 +2543,32 @@ containing a value of this type.
@attr description
Vertical offset from the spinner widget for positioning the dropdown in
spinnerMode="dropdown".
<p>This corresponds to the global attribute
resource symbol {@link android.R.attr#dropDownVerticalOffset}.
@attr name android:dropDownVerticalOffset
<p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_dropDownVerticalOffset}.
@attr name android:android_dropDownVerticalOffset
*/
public static final int Spinner_android_dropDownVerticalOffset = 5;
/**
<p>
@attr description
Width of the dropdown in spinnerMode="dropdown".
<p>This corresponds to the global attribute
resource symbol {@link android.R.attr#dropDownWidth}.
@attr name android:dropDownWidth
<p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_dropDownWidth}.
@attr name android:android_dropDownWidth
*/
public static final int Spinner_android_dropDownWidth = 3;
/**
<p>
@attr description
Gravity setting for positioning the currently selected item.
<p>This corresponds to the global attribute
resource symbol {@link android.R.attr#gravity}.
@attr name android:gravity
<p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_gravity}.
@attr name android:android_gravity
*/
public static final int Spinner_android_gravity = 0;
/**
<p>
@attr description
Background drawable to use for the dropdown in spinnerMode="dropdown".
<p>This corresponds to the global attribute
resource symbol {@link android.R.attr#popupBackground}.
@attr name android:popupBackground
<p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_popupBackground}.
@attr name android:android_popupBackground
*/
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>")
containing a value of this type.
<p>This is a private symbol.
@attr name android.support.v7.appcompat:disableChildrenWhenDisabled
@attr name android:disableChildrenWhenDisabled
*/
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>"
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.
@attr name android.support.v7.appcompat:popupPromptView
@attr name android:popupPromptView
*/
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>"
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.
@attr name android.support.v7.appcompat:prompt
@attr name android:prompt
*/
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>
</table>
<p>This is a private symbol.
@attr name android.support.v7.appcompat:spinnerMode
@attr name android:spinnerMode
*/
public static final int Spinner_spinnerMode = 7;
/** 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>"
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.
@attr name android.support.v7.appcompat:actionDropDownStyle
@attr name android:actionDropDownStyle
*/
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>")
containing a value of this type.
<p>This is a private symbol.
@attr name android.support.v7.appcompat:dropdownListPreferredItemHeight
@attr name android:dropdownListPreferredItemHeight
*/
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>"
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.
@attr name android.support.v7.appcompat:listChoiceBackgroundIndicator
@attr name android:listChoiceBackgroundIndicator
*/
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>"
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.
@attr name android.support.v7.appcompat:panelMenuListTheme
@attr name android:panelMenuListTheme
*/
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>")
containing a value of this type.
<p>This is a private symbol.
@attr name android.support.v7.appcompat:panelMenuListWidth
@attr name android:panelMenuListWidth
*/
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>"
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.
@attr name android.support.v7.appcompat:popupMenuStyle
@attr name android:popupMenuStyle
*/
public static final int Theme_popupMenuStyle = 2;
/** 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" />
<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_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>
@ -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
always request focus regardless of this view. It only impacts where
focus navigation will try to move focus.
<p>This corresponds to the global attribute
resource symbol {@link android.R.attr#focusable}.
@attr name android:focusable
<p>This corresponds to the global attribute resource symbol {@link android.support.v7.appcompat.R.attr#android_focusable}.
@attr name android:android_focusable
*/
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>")
containing a value of this type.
<p>This is a private symbol.
@attr name android.support.v7.appcompat:paddingEnd
@attr name android:paddingEnd
*/
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>")
containing a value of this type.
<p>This is a private symbol.
@attr name android.support.v7.appcompat:paddingStart
@attr name android:paddingStart
*/
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.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.res.AssetManager;
import android.media.AudioManager;
@ -149,27 +151,21 @@ public final class MainMenuActivity extends PreferenceActivity {
return false;
}
// Extract assets from native code. Doing it from Java side is apparently unbearably slow ...
private void extractAssetsThread() {
try {
AssetManager assets = getAssets();
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");
// 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(
new FileOutputStream(cacheVersion, false));
outputCacheVersion.writeInt(getVersionCode());

96
file.c
View File

@ -39,102 +39,6 @@
#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)
{
uint8_t *ret_buf = *buf;

1
file.h
View File

@ -31,6 +31,7 @@ extern "C" {
// Generic file, path and directory handling.
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 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;
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))
break;

View File

@ -55,6 +55,102 @@
#include <unistd.h>
#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)
{
if (!list)

View File

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