diff options
671 files changed, 1330 insertions, 921 deletions
diff --git a/api/current.txt b/api/current.txt index 345b862..f409526 100644 --- a/api/current.txt +++ b/api/current.txt @@ -11199,7 +11199,9 @@ package android.media { method public final int dequeueInputBuffer(long); method public final int dequeueOutputBuffer(android.media.MediaCodec.BufferInfo, long); method public final void flush(); + method public android.media.MediaCodecInfo getCodecInfo(); method public java.nio.ByteBuffer[] getInputBuffers(); + method public final java.lang.String getName(); method public java.nio.ByteBuffer[] getOutputBuffers(); method public final android.media.MediaFormat getOutputFormat(); method public final void queueInputBuffer(int, int, int, long, int) throws android.media.MediaCodec.CryptoException; @@ -23429,17 +23431,6 @@ package android.util { method public void set(T, V); } - public class PropertyValueModel extends android.util.ValueModel { - method public T get(); - method public H getHost(); - method public android.util.Property<H, T> getProperty(); - method public java.lang.Class<T> getType(); - method public static android.util.PropertyValueModel<H, T> of(H, android.util.Property<H, T>); - method public static android.util.PropertyValueModel<H, T> of(H, java.lang.Class<T>, java.lang.String); - method public static android.util.PropertyValueModel of(java.lang.Object, java.lang.String); - method public void set(T); - } - public class SparseArray implements java.lang.Cloneable { ctor public SparseArray(); ctor public SparseArray(int); @@ -23588,14 +23579,6 @@ package android.util { field public int type; } - public abstract class ValueModel { - ctor protected ValueModel(); - method public abstract T get(); - method public abstract java.lang.Class<T> getType(); - method public abstract void set(T); - field public static final android.util.ValueModel EMPTY; - } - public class Xml { method public static android.util.AttributeSet asAttributeSet(org.xmlpull.v1.XmlPullParser); method public static android.util.Xml.Encoding findEncodingByName(java.lang.String) throws java.io.UnsupportedEncodingException; @@ -27986,12 +27969,10 @@ package android.widget { method public abstract void onSelectedDayChange(android.widget.CalendarView, int, int, int); } - public class CheckBox extends android.widget.CompoundButton implements android.widget.ValueEditor { + public class CheckBox extends android.widget.CompoundButton { ctor public CheckBox(android.content.Context); ctor public CheckBox(android.content.Context, android.util.AttributeSet); ctor public CheckBox(android.content.Context, android.util.AttributeSet, int); - method public android.util.ValueModel<java.lang.Boolean> getValueModel(); - method public void setValueModel(android.util.ValueModel<java.lang.Boolean>); } public abstract interface Checkable { @@ -28164,16 +28145,14 @@ package android.widget { method public void setSize(int, int); } - public class EditText extends android.widget.TextView implements android.widget.ValueEditor { + public class EditText extends android.widget.TextView { ctor public EditText(android.content.Context); ctor public EditText(android.content.Context, android.util.AttributeSet); ctor public EditText(android.content.Context, android.util.AttributeSet, int); method public void extendSelection(int); - method public android.util.ValueModel<java.lang.CharSequence> getValueModel(); method public void selectAll(); method public void setSelection(int, int); method public void setSelection(int); - method public void setValueModel(android.util.ValueModel<java.lang.CharSequence>); } public abstract interface ExpandableListAdapter { @@ -29198,13 +29177,11 @@ package android.widget { method public abstract java.lang.Object[] getSections(); } - public class SeekBar extends android.widget.AbsSeekBar implements android.widget.ValueEditor { + public class SeekBar extends android.widget.AbsSeekBar { ctor public SeekBar(android.content.Context); ctor public SeekBar(android.content.Context, android.util.AttributeSet); ctor public SeekBar(android.content.Context, android.util.AttributeSet, int); - method public android.util.ValueModel<java.lang.Integer> getValueModel(); method public void setOnSeekBarChangeListener(android.widget.SeekBar.OnSeekBarChangeListener); - method public void setValueModel(android.util.ValueModel<java.lang.Integer>); } public static abstract interface SeekBar.OnSeekBarChangeListener { @@ -29792,11 +29769,6 @@ package android.widget { method public android.widget.TextView getText2(); } - public abstract interface ValueEditor { - method public abstract android.util.ValueModel<T> getValueModel(); - method public abstract void setValueModel(android.util.ValueModel<T>); - } - public class VideoView extends android.view.SurfaceView implements android.widget.MediaController.MediaPlayerControl { ctor public VideoView(android.content.Context); ctor public VideoView(android.content.Context, android.util.AttributeSet); diff --git a/cmds/content/src/com/android/commands/content/Content.java b/cmds/content/src/com/android/commands/content/Content.java index 070e105..787fbdb 100644 --- a/cmds/content/src/com/android/commands/content/Content.java +++ b/cmds/content/src/com/android/commands/content/Content.java @@ -83,14 +83,14 @@ public class Content { + " Example:\n" + " # Change \"new_setting\" secure setting to \"newer_value\".\n" + " adb shell content update --uri content://settings/secure --bind" - + " value:s:newer_value --where \"name=\\'new_setting\\'\"\n" + + " value:s:newer_value --where \"name=\'new_setting\'\"\n" + "\n" + "usage: adb shell content delete --uri <URI> [--user <USER_ID>] --bind <BINDING>" + " [--bind <BINDING>...] [--where <WHERE>]\n" + " Example:\n" + " # Remove \"new_setting\" secure setting.\n" + " adb shell content delete --uri content://settings/secure " - + "--where \"name=\\'new_setting\\'\"\n" + + "--where \"name=\'new_setting\'\"\n" + "\n" + "usage: adb shell content query --uri <URI> [--user <USER_ID>]" + " [--projection <PROJECTION>] [--where <WHERE>] [--sort <SORT_ORDER>]\n" @@ -101,7 +101,7 @@ public class Content { + " # Select \"name\" and \"value\" columns from secure settings where \"name\" is " + "equal to \"new_setting\" and sort the result by name in ascending order.\n" + " adb shell content query --uri content://settings/secure --projection name:value" - + " --where \"name=\\'new_setting\\'\" --sort \"name ASC\"\n" + + " --where \"name=\'new_setting\'\" --sort \"name ASC\"\n" + "\n"; private static class Parser { diff --git a/cmds/input/src/com/android/commands/input/Input.java b/cmds/input/src/com/android/commands/input/Input.java index a21df0d..a21df0d 100755..100644 --- a/cmds/input/src/com/android/commands/input/Input.java +++ b/cmds/input/src/com/android/commands/input/Input.java diff --git a/cmds/installd/Android.mk b/cmds/installd/Android.mk index 3e722ea..1dd4ee5 100644 --- a/cmds/installd/Android.mk +++ b/cmds/installd/Android.mk @@ -29,17 +29,12 @@ LOCAL_SRC_FILES := \ $(common_src_files) LOCAL_SHARED_LIBRARIES := \ - libcutils + libcutils \ + libselinux LOCAL_STATIC_LIBRARIES := \ libdiskusage -ifeq ($(HAVE_SELINUX),true) -LOCAL_C_INCLUDES += external/libselinux/include -LOCAL_SHARED_LIBRARIES += libselinux -LOCAL_CFLAGS := -DHAVE_SELINUX -endif # HAVE_SELINUX - LOCAL_MODULE := installd LOCAL_MODULE_TAGS := optional diff --git a/cmds/installd/commands.c b/cmds/installd/commands.c index 387f33d..2a54710 100644 --- a/cmds/installd/commands.c +++ b/cmds/installd/commands.c @@ -17,10 +17,7 @@ #include <linux/capability.h> #include "installd.h" #include <diskusage/dirsize.h> - -#ifdef HAVE_SELINUX #include <selinux/android.h> -#endif /* Directory records that are used in execution of commands. */ dir_rec_t android_data_dir; @@ -94,14 +91,12 @@ int install(const char *pkgname, uid_t uid, gid_t gid) return -1; } -#ifdef HAVE_SELINUX if (selinux_android_setfilecon(pkgdir, pkgname, uid) < 0) { ALOGE("cannot setfilecon dir '%s': %s\n", pkgdir, strerror(errno)); unlink(libsymlink); unlink(pkgdir); - return -1; + return -errno; } -#endif if (chown(pkgdir, uid, gid) < 0) { ALOGE("cannot chown dir '%s': %s\n", pkgdir, strerror(errno)); @@ -250,21 +245,19 @@ int make_user_data(const char *pkgname, uid_t uid, uid_t persona) return -1; } - if (chown(pkgdir, uid, uid) < 0) { - ALOGE("cannot chown dir '%s': %s\n", pkgdir, strerror(errno)); + if (selinux_android_setfilecon(pkgdir, pkgname, uid) < 0) { + ALOGE("cannot setfilecon dir '%s': %s\n", pkgdir, strerror(errno)); unlink(libsymlink); unlink(pkgdir); return -errno; } -#ifdef HAVE_SELINUX - if (selinux_android_setfilecon(pkgdir, pkgname, uid) < 0) { - ALOGE("cannot setfilecon dir '%s': %s\n", pkgdir, strerror(errno)); + if (chown(pkgdir, uid, uid) < 0) { + ALOGE("cannot chown dir '%s': %s\n", pkgdir, strerror(errno)); unlink(libsymlink); unlink(pkgdir); return -errno; } -#endif return 0; } diff --git a/cmds/installd/tests/Android.mk b/cmds/installd/tests/Android.mk index 315acdb..c0192f4 100644 --- a/cmds/installd/tests/Android.mk +++ b/cmds/installd/tests/Android.mk @@ -18,13 +18,7 @@ static_libraries := \ libgtest_main c_includes := \ - frameworks/base/cmds/installd \ - bionic \ - bionic/libstdc++/include \ - external/gtest/include \ - external/stlport/stlport - -module_tags := eng tests + frameworks/base/cmds/installd $(foreach file,$(test_src_files), \ $(eval include $(CLEAR_VARS)) \ @@ -33,6 +27,5 @@ $(foreach file,$(test_src_files), \ $(eval LOCAL_SRC_FILES := $(file)) \ $(eval LOCAL_C_INCLUDES := $(c_includes)) \ $(eval LOCAL_MODULE := $(notdir $(file:%.cpp=%))) \ - $(eval LOCAL_MODULE_TAGS := $(module_tags)) \ - $(eval include $(BUILD_EXECUTABLE)) \ + $(eval include $(BUILD_NATIVE_TEST)) \ ) diff --git a/cmds/servicemanager/service_manager.c b/cmds/servicemanager/service_manager.c index 71e840e..c563a82 100644 --- a/cmds/servicemanager/service_manager.c +++ b/cmds/servicemanager/service_manager.c @@ -47,6 +47,7 @@ static struct { { AID_RADIO, "simphonebook" }, { AID_MEDIA, "common_time.clock" }, { AID_MEDIA, "common_time.config" }, + { AID_KEYSTORE, "android.security.keystore" }, }; void *svcmgr_handle; diff --git a/core/java/android/animation/ValueAnimator.java b/core/java/android/animation/ValueAnimator.java index f7460c4..f7460c4 100755..100644 --- a/core/java/android/animation/ValueAnimator.java +++ b/core/java/android/animation/ValueAnimator.java diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java index d62372c..d880817 100644 --- a/core/java/android/app/ActivityThread.java +++ b/core/java/android/app/ActivityThread.java @@ -113,6 +113,7 @@ import java.util.TimeZone; import java.util.regex.Pattern; import libcore.io.DropBox; +import libcore.io.EventLogger; import libcore.io.IoUtils; import dalvik.system.CloseGuard; @@ -4980,6 +4981,13 @@ public final class ActivityThread { } } + private static class EventLoggingReporter implements EventLogger.Reporter { + @Override + public void report (int code, Object... list) { + EventLog.writeEvent(code, list); + } + } + private class DropBoxReporter implements DropBox.Reporter { private DropBoxManager dropBox; @@ -5009,6 +5017,9 @@ public final class ActivityThread { Environment.initForCurrentUser(); + // Set the reporter for event logging in libcore + EventLogger.setReporter(new EventLoggingReporter()); + Process.setArgV0("<pre-initialized>"); Looper.prepareMainLooper(); diff --git a/core/java/android/app/IAlarmManager.aidl b/core/java/android/app/IAlarmManager.aidl index edb40ed..edb40ed 100755..100644 --- a/core/java/android/app/IAlarmManager.aidl +++ b/core/java/android/app/IAlarmManager.aidl diff --git a/core/java/android/app/IThumbnailReceiver.aidl b/core/java/android/app/IThumbnailReceiver.aidl index 7943f2c..7943f2c 100755..100644 --- a/core/java/android/app/IThumbnailReceiver.aidl +++ b/core/java/android/app/IThumbnailReceiver.aidl diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java index 4c0eba0..4c0eba0 100755..100644 --- a/core/java/android/app/admin/DevicePolicyManager.java +++ b/core/java/android/app/admin/DevicePolicyManager.java diff --git a/core/java/android/appwidget/AppWidgetProvider.java b/core/java/android/appwidget/AppWidgetProvider.java index edf142b..edf142b 100755..100644 --- a/core/java/android/appwidget/AppWidgetProvider.java +++ b/core/java/android/appwidget/AppWidgetProvider.java diff --git a/core/java/android/content/IIntentReceiver.aidl b/core/java/android/content/IIntentReceiver.aidl index 3d92723..3d92723 100755..100644 --- a/core/java/android/content/IIntentReceiver.aidl +++ b/core/java/android/content/IIntentReceiver.aidl diff --git a/core/java/android/content/res/Configuration.aidl b/core/java/android/content/res/Configuration.aidl index bb7f2dd..bb7f2dd 100755..100644 --- a/core/java/android/content/res/Configuration.aidl +++ b/core/java/android/content/res/Configuration.aidl diff --git a/core/java/android/content/res/ObbInfo.aidl b/core/java/android/content/res/ObbInfo.aidl index 636ad6a..636ad6a 100755..100644 --- a/core/java/android/content/res/ObbInfo.aidl +++ b/core/java/android/content/res/ObbInfo.aidl diff --git a/core/java/android/content/res/Resources.java b/core/java/android/content/res/Resources.java index b316f23..b316f23 100755..100644 --- a/core/java/android/content/res/Resources.java +++ b/core/java/android/content/res/Resources.java diff --git a/core/java/android/database/IContentObserver.aidl b/core/java/android/database/IContentObserver.aidl index 13aff05..13aff05 100755..100644 --- a/core/java/android/database/IContentObserver.aidl +++ b/core/java/android/database/IContentObserver.aidl diff --git a/core/java/android/ddm/package.html b/core/java/android/ddm/package.html index 1c9bf9d..1c9bf9d 100755..100644 --- a/core/java/android/ddm/package.html +++ b/core/java/android/ddm/package.html diff --git a/core/java/android/debug/package.html b/core/java/android/debug/package.html index c9f96a6..c9f96a6 100755..100644 --- a/core/java/android/debug/package.html +++ b/core/java/android/debug/package.html diff --git a/core/java/android/gesture/Gesture.java b/core/java/android/gesture/Gesture.java index c6a2a87..c6a2a87 100755..100644 --- a/core/java/android/gesture/Gesture.java +++ b/core/java/android/gesture/Gesture.java diff --git a/core/java/android/gesture/GestureOverlayView.java b/core/java/android/gesture/GestureOverlayView.java index b6c260f..b6c260f 100755..100644 --- a/core/java/android/gesture/GestureOverlayView.java +++ b/core/java/android/gesture/GestureOverlayView.java diff --git a/core/java/android/gesture/GestureUtils.java b/core/java/android/gesture/GestureUtils.java index dd221fc..dd221fc 100755..100644 --- a/core/java/android/gesture/GestureUtils.java +++ b/core/java/android/gesture/GestureUtils.java diff --git a/core/java/android/gesture/Instance.java b/core/java/android/gesture/Instance.java index 02a6519..02a6519 100755..100644 --- a/core/java/android/gesture/Instance.java +++ b/core/java/android/gesture/Instance.java diff --git a/core/java/android/gesture/Learner.java b/core/java/android/gesture/Learner.java index a105652..a105652 100755..100644 --- a/core/java/android/gesture/Learner.java +++ b/core/java/android/gesture/Learner.java diff --git a/core/java/android/gesture/Prediction.java b/core/java/android/gesture/Prediction.java index ce6ad57..ce6ad57 100755..100644 --- a/core/java/android/gesture/Prediction.java +++ b/core/java/android/gesture/Prediction.java diff --git a/core/java/android/hardware/SystemSensorManager.java b/core/java/android/hardware/SystemSensorManager.java index 0204e94..7375e7d 100644 --- a/core/java/android/hardware/SystemSensorManager.java +++ b/core/java/android/hardware/SystemSensorManager.java @@ -373,7 +373,8 @@ public class SystemSensorManager extends SensorManager { for (Sensor s : l.getSensors()) { disableSensorLocked(s); } - } else if (l.removeSensor(sensor) == 0) { + // Check if the ListenerDelegate has the sensor it is trying to unregister. + } else if (l.hasSensor(sensor) && l.removeSensor(sensor) == 0) { // if we have no more sensors enabled on this listener, // take it off the list. sListeners.remove(i); diff --git a/core/java/android/hardware/input/InputManager.java b/core/java/android/hardware/input/InputManager.java index 262d87d..262d87d 100755..100644 --- a/core/java/android/hardware/input/InputManager.java +++ b/core/java/android/hardware/input/InputManager.java diff --git a/core/java/android/net/Uri.aidl b/core/java/android/net/Uri.aidl index 6bd3be5..6bd3be5 100755..100644 --- a/core/java/android/net/Uri.aidl +++ b/core/java/android/net/Uri.aidl diff --git a/core/java/android/net/http/AndroidHttpClient.java b/core/java/android/net/http/AndroidHttpClient.java index c534e58..fabe018 100644 --- a/core/java/android/net/http/AndroidHttpClient.java +++ b/core/java/android/net/http/AndroidHttpClient.java @@ -66,8 +66,7 @@ import android.util.Log; /** * Implementation of the Apache {@link DefaultHttpClient} that is configured with - * reasonable default settings and registered schemes for Android, and - * also lets the user add {@link HttpRequestInterceptor} classes. + * reasonable default settings and registered schemes for Android. * Don't create this directly, use the {@link #newInstance} factory method. * * <p>This client processes cookies but does not retain them by default. diff --git a/core/java/android/net/http/package.html b/core/java/android/net/http/package.html index a81cbce..a81cbce 100755..100644 --- a/core/java/android/net/http/package.html +++ b/core/java/android/net/http/package.html diff --git a/core/java/android/net/package.html b/core/java/android/net/package.html index 47c57e6..47c57e6 100755..100644 --- a/core/java/android/net/package.html +++ b/core/java/android/net/package.html diff --git a/core/java/android/os/CommonTimeUtils.java b/core/java/android/os/CommonTimeUtils.java index 9081ee4..20755d9 100644 --- a/core/java/android/os/CommonTimeUtils.java +++ b/core/java/android/os/CommonTimeUtils.java @@ -19,6 +19,7 @@ import java.net.InetAddress; import java.net.Inet4Address; import java.net.Inet6Address; import java.net.InetSocketAddress; +import java.util.Locale; import static libcore.io.OsConstants.*; class CommonTimeUtils { @@ -192,10 +193,11 @@ class CommonTimeUtils { if (AF_INET == type) { int addr = reply.readInt(); port = reply.readInt(); - addrStr = String.format("%d.%d.%d.%d", (addr >> 24) & 0xFF, - (addr >> 16) & 0xFF, - (addr >> 8) & 0xFF, - addr & 0xFF); + addrStr = String.format(Locale.US, "%d.%d.%d.%d", + (addr >> 24) & 0xFF, + (addr >> 16) & 0xFF, + (addr >> 8) & 0xFF, + addr & 0xFF); } else if (AF_INET6 == type) { int addr1 = reply.readInt(); int addr2 = reply.readInt(); @@ -207,11 +209,11 @@ class CommonTimeUtils { int flowinfo = reply.readInt(); int scope_id = reply.readInt(); - addrStr = String.format("[%04X:%04X:%04X:%04X:%04X:%04X:%04X:%04X]", - (addr1 >> 16) & 0xFFFF, addr1 & 0xFFFF, - (addr2 >> 16) & 0xFFFF, addr2 & 0xFFFF, - (addr3 >> 16) & 0xFFFF, addr3 & 0xFFFF, - (addr4 >> 16) & 0xFFFF, addr4 & 0xFFFF); + addrStr = String.format(Locale.US, "[%04X:%04X:%04X:%04X:%04X:%04X:%04X:%04X]", + (addr1 >> 16) & 0xFFFF, addr1 & 0xFFFF, + (addr2 >> 16) & 0xFFFF, addr2 & 0xFFFF, + (addr3 >> 16) & 0xFFFF, addr3 & 0xFFFF, + (addr4 >> 16) & 0xFFFF, addr4 & 0xFFFF); } if (null != addrStr) { diff --git a/core/java/android/os/IHardwareService.aidl b/core/java/android/os/IHardwareService.aidl index 38abfc0..38abfc0 100755..100644 --- a/core/java/android/os/IHardwareService.aidl +++ b/core/java/android/os/IHardwareService.aidl diff --git a/core/java/android/os/IVibratorService.aidl b/core/java/android/os/IVibratorService.aidl index 2c2fe8a..2c2fe8a 100755..100644 --- a/core/java/android/os/IVibratorService.aidl +++ b/core/java/android/os/IVibratorService.aidl diff --git a/core/java/android/os/TokenWatcher.java b/core/java/android/os/TokenWatcher.java index 9b3a2d6..9b3a2d6 100755..100644 --- a/core/java/android/os/TokenWatcher.java +++ b/core/java/android/os/TokenWatcher.java diff --git a/core/java/android/provider/ContactsContract.java b/core/java/android/provider/ContactsContract.java index 5b49ba3..5b49ba3 100755..100644 --- a/core/java/android/provider/ContactsContract.java +++ b/core/java/android/provider/ContactsContract.java diff --git a/core/java/android/security/IKeystoreService.java b/core/java/android/security/IKeystoreService.java new file mode 100644 index 0000000..f8a49e6 --- /dev/null +++ b/core/java/android/security/IKeystoreService.java @@ -0,0 +1,505 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.security; + +import android.os.Binder; +import android.os.IBinder; +import android.os.IInterface; +import android.os.Parcel; +import android.os.RemoteException; + +/** + * This must be kept manually in sync with system/security/keystore until AIDL + * can generate both Java and C++ bindings. + * + * @hide + */ +public interface IKeystoreService extends IInterface { + public static abstract class Stub extends Binder implements IKeystoreService { + private static class Proxy implements IKeystoreService { + private final IBinder mRemote; + + Proxy(IBinder remote) { + mRemote = remote; + } + + public IBinder asBinder() { + return mRemote; + } + + public String getInterfaceDescriptor() { + return DESCRIPTOR; + } + + public int test() throws RemoteException { + Parcel _data = Parcel.obtain(); + Parcel _reply = Parcel.obtain(); + int _result; + try { + _data.writeInterfaceToken(DESCRIPTOR); + mRemote.transact(Stub.TRANSACTION_test, _data, _reply, 0); + _reply.readException(); + _result = _reply.readInt(); + } finally { + _reply.recycle(); + _data.recycle(); + } + return _result; + } + + public byte[] get(String name) throws RemoteException { + Parcel _data = Parcel.obtain(); + Parcel _reply = Parcel.obtain(); + byte[] _result; + try { + _data.writeInterfaceToken(DESCRIPTOR); + _data.writeString(name); + mRemote.transact(Stub.TRANSACTION_get, _data, _reply, 0); + _reply.readException(); + _result = _reply.createByteArray(); + } finally { + _reply.recycle(); + _data.recycle(); + } + return _result; + } + + public int insert(String name, byte[] item) throws RemoteException { + Parcel _data = Parcel.obtain(); + Parcel _reply = Parcel.obtain(); + int _result; + try { + _data.writeInterfaceToken(DESCRIPTOR); + _data.writeString(name); + _data.writeByteArray(item); + mRemote.transact(Stub.TRANSACTION_insert, _data, _reply, 0); + _reply.readException(); + _result = _reply.readInt(); + } finally { + _reply.recycle(); + _data.recycle(); + } + return _result; + } + + public int del(String name) throws RemoteException { + Parcel _data = Parcel.obtain(); + Parcel _reply = Parcel.obtain(); + int _result; + try { + _data.writeInterfaceToken(DESCRIPTOR); + _data.writeString(name); + mRemote.transact(Stub.TRANSACTION_del, _data, _reply, 0); + _reply.readException(); + _result = _reply.readInt(); + } finally { + _reply.recycle(); + _data.recycle(); + } + return _result; + } + + public int exist(String name) throws RemoteException { + Parcel _data = Parcel.obtain(); + Parcel _reply = Parcel.obtain(); + int _result; + try { + _data.writeInterfaceToken(DESCRIPTOR); + _data.writeString(name); + mRemote.transact(Stub.TRANSACTION_exist, _data, _reply, 0); + _reply.readException(); + _result = _reply.readInt(); + } finally { + _reply.recycle(); + _data.recycle(); + } + return _result; + } + + public String[] saw(String name) throws RemoteException { + Parcel _data = Parcel.obtain(); + Parcel _reply = Parcel.obtain(); + String[] _result; + try { + _data.writeInterfaceToken(DESCRIPTOR); + _data.writeString(name); + mRemote.transact(Stub.TRANSACTION_saw, _data, _reply, 0); + _reply.readException(); + int size = _reply.readInt(); + _result = new String[size]; + for (int i = 0; i < size; i++) { + _result[i] = _reply.readString(); + } + } finally { + _reply.recycle(); + _data.recycle(); + } + return _result; + } + + @Override + public int reset() throws RemoteException { + Parcel _data = Parcel.obtain(); + Parcel _reply = Parcel.obtain(); + int _result; + try { + _data.writeInterfaceToken(DESCRIPTOR); + mRemote.transact(Stub.TRANSACTION_reset, _data, _reply, 0); + _reply.readException(); + _result = _reply.readInt(); + } finally { + _reply.recycle(); + _data.recycle(); + } + return _result; + } + + public int password(String password) throws RemoteException { + Parcel _data = Parcel.obtain(); + Parcel _reply = Parcel.obtain(); + int _result; + try { + _data.writeInterfaceToken(DESCRIPTOR); + _data.writeString(password); + mRemote.transact(Stub.TRANSACTION_password, _data, _reply, 0); + _reply.readException(); + _result = _reply.readInt(); + } finally { + _reply.recycle(); + _data.recycle(); + } + return _result; + } + + public int lock() throws RemoteException { + Parcel _data = Parcel.obtain(); + Parcel _reply = Parcel.obtain(); + int _result; + try { + _data.writeInterfaceToken(DESCRIPTOR); + mRemote.transact(Stub.TRANSACTION_lock, _data, _reply, 0); + _reply.readException(); + _result = _reply.readInt(); + } finally { + _reply.recycle(); + _data.recycle(); + } + return _result; + } + + public int unlock(String password) throws RemoteException { + Parcel _data = Parcel.obtain(); + Parcel _reply = Parcel.obtain(); + int _result; + try { + _data.writeInterfaceToken(DESCRIPTOR); + _data.writeString(password); + mRemote.transact(Stub.TRANSACTION_unlock, _data, _reply, 0); + _reply.readException(); + _result = _reply.readInt(); + } finally { + _reply.recycle(); + _data.recycle(); + } + return _result; + } + + @Override + public int zero() throws RemoteException { + Parcel _data = Parcel.obtain(); + Parcel _reply = Parcel.obtain(); + int _result; + try { + _data.writeInterfaceToken(DESCRIPTOR); + mRemote.transact(Stub.TRANSACTION_zero, _data, _reply, 0); + _reply.readException(); + _result = _reply.readInt(); + } finally { + _reply.recycle(); + _data.recycle(); + } + return _result; + } + + public int generate(String name) throws RemoteException { + Parcel _data = Parcel.obtain(); + Parcel _reply = Parcel.obtain(); + int _result; + try { + _data.writeInterfaceToken(DESCRIPTOR); + _data.writeString(name); + mRemote.transact(Stub.TRANSACTION_generate, _data, _reply, 0); + _reply.readException(); + _result = _reply.readInt(); + } finally { + _reply.recycle(); + _data.recycle(); + } + return _result; + } + + public int import_key(String name, byte[] data) throws RemoteException { + Parcel _data = Parcel.obtain(); + Parcel _reply = Parcel.obtain(); + int _result; + try { + _data.writeInterfaceToken(DESCRIPTOR); + _data.writeString(name); + _data.writeByteArray(data); + mRemote.transact(Stub.TRANSACTION_import, _data, _reply, 0); + _reply.readException(); + _result = _reply.readInt(); + } finally { + _reply.recycle(); + _data.recycle(); + } + return _result; + } + + public byte[] sign(String name, byte[] data) throws RemoteException { + Parcel _data = Parcel.obtain(); + Parcel _reply = Parcel.obtain(); + byte[] _result; + try { + _data.writeInterfaceToken(DESCRIPTOR); + _data.writeString(name); + _data.writeByteArray(data); + mRemote.transact(Stub.TRANSACTION_sign, _data, _reply, 0); + _reply.readException(); + _result = _reply.createByteArray(); + } finally { + _reply.recycle(); + _data.recycle(); + } + return _result; + } + + public int verify(String name, byte[] data, byte[] signature) throws RemoteException { + Parcel _data = Parcel.obtain(); + Parcel _reply = Parcel.obtain(); + int _result; + try { + _data.writeInterfaceToken(DESCRIPTOR); + _data.writeString(name); + _data.writeByteArray(data); + _data.writeByteArray(signature); + mRemote.transact(Stub.TRANSACTION_verify, _data, _reply, 0); + _reply.readException(); + _result = _reply.readInt(); + } finally { + _reply.recycle(); + _data.recycle(); + } + return _result; + } + + public byte[] get_pubkey(String name) throws RemoteException { + Parcel _data = Parcel.obtain(); + Parcel _reply = Parcel.obtain(); + byte[] _result; + try { + _data.writeInterfaceToken(DESCRIPTOR); + _data.writeString(name); + mRemote.transact(Stub.TRANSACTION_get_pubkey, _data, _reply, 0); + _reply.readException(); + _result = _reply.createByteArray(); + } finally { + _reply.recycle(); + _data.recycle(); + } + return _result; + } + + public int del_key(String name) throws RemoteException { + Parcel _data = Parcel.obtain(); + Parcel _reply = Parcel.obtain(); + int _result; + try { + _data.writeInterfaceToken(DESCRIPTOR); + _data.writeString(name); + mRemote.transact(Stub.TRANSACTION_del_key, _data, _reply, 0); + _reply.readException(); + _result = _reply.readInt(); + } finally { + _reply.recycle(); + _data.recycle(); + } + return _result; + } + + public int grant(String name, int granteeUid) throws RemoteException { + Parcel _data = Parcel.obtain(); + Parcel _reply = Parcel.obtain(); + int _result; + try { + _data.writeInterfaceToken(DESCRIPTOR); + _data.writeString(name); + _data.writeInt(granteeUid); + mRemote.transact(Stub.TRANSACTION_grant, _data, _reply, 0); + _reply.readException(); + _result = _reply.readInt(); + } finally { + _reply.recycle(); + _data.recycle(); + } + return _result; + } + + public int ungrant(String name, int granteeUid) throws RemoteException { + Parcel _data = Parcel.obtain(); + Parcel _reply = Parcel.obtain(); + int _result; + try { + _data.writeInterfaceToken(DESCRIPTOR); + _data.writeString(name); + _data.writeInt(granteeUid); + mRemote.transact(Stub.TRANSACTION_ungrant, _data, _reply, 0); + _reply.readException(); + _result = _reply.readInt(); + } finally { + _reply.recycle(); + _data.recycle(); + } + return _result; + } + + @Override + public long getmtime(String name) throws RemoteException { + Parcel _data = Parcel.obtain(); + Parcel _reply = Parcel.obtain(); + long _result; + try { + _data.writeInterfaceToken(DESCRIPTOR); + _data.writeString(name); + mRemote.transact(Stub.TRANSACTION_getmtime, _data, _reply, 0); + _reply.readException(); + _result = _reply.readLong(); + } finally { + _reply.recycle(); + _data.recycle(); + } + return _result; + } + } + + private static final String DESCRIPTOR = "android.security.keystore"; + + static final int TRANSACTION_test = IBinder.FIRST_CALL_TRANSACTION + 0; + static final int TRANSACTION_get = IBinder.FIRST_CALL_TRANSACTION + 1; + static final int TRANSACTION_insert = IBinder.FIRST_CALL_TRANSACTION + 2; + static final int TRANSACTION_del = IBinder.FIRST_CALL_TRANSACTION + 3; + static final int TRANSACTION_exist = IBinder.FIRST_CALL_TRANSACTION + 4; + static final int TRANSACTION_saw = IBinder.FIRST_CALL_TRANSACTION + 5; + static final int TRANSACTION_reset = IBinder.FIRST_CALL_TRANSACTION + 6; + static final int TRANSACTION_password = IBinder.FIRST_CALL_TRANSACTION + 7; + static final int TRANSACTION_lock = IBinder.FIRST_CALL_TRANSACTION + 8; + static final int TRANSACTION_unlock = IBinder.FIRST_CALL_TRANSACTION + 9; + static final int TRANSACTION_zero = IBinder.FIRST_CALL_TRANSACTION + 10; + static final int TRANSACTION_generate = IBinder.FIRST_CALL_TRANSACTION + 11; + static final int TRANSACTION_import = IBinder.FIRST_CALL_TRANSACTION + 12; + static final int TRANSACTION_sign = IBinder.FIRST_CALL_TRANSACTION + 13; + static final int TRANSACTION_verify = IBinder.FIRST_CALL_TRANSACTION + 14; + static final int TRANSACTION_get_pubkey = IBinder.FIRST_CALL_TRANSACTION + 15; + static final int TRANSACTION_del_key = IBinder.FIRST_CALL_TRANSACTION + 16; + static final int TRANSACTION_grant = IBinder.FIRST_CALL_TRANSACTION + 17; + static final int TRANSACTION_ungrant = IBinder.FIRST_CALL_TRANSACTION + 18; + static final int TRANSACTION_getmtime = IBinder.FIRST_CALL_TRANSACTION + 19; + + /** + * Cast an IBinder object into an IKeystoreService interface, generating + * a proxy if needed. + */ + public static IKeystoreService asInterface(IBinder obj) { + if (obj == null) { + return null; + } + IInterface iin = obj.queryLocalInterface(DESCRIPTOR); + if (iin != null && iin instanceof IKeystoreService) { + return (IKeystoreService) iin; + } + return new IKeystoreService.Stub.Proxy(obj); + } + + /** Construct the stub at attach it to the interface. */ + public Stub() { + attachInterface(this, DESCRIPTOR); + } + + public IBinder asBinder() { + return this; + } + + @Override + public boolean onTransact(int code, Parcel data, Parcel reply, int flags) + throws RemoteException { + switch (code) { + case INTERFACE_TRANSACTION: { + reply.writeString(DESCRIPTOR); + return true; + } + case TRANSACTION_test: { + data.enforceInterface(DESCRIPTOR); + int resultCode = test(); + reply.writeNoException(); + reply.writeInt(resultCode); + return true; + } + } + return super.onTransact(code, data, reply, flags); + } + } + + public int test() throws RemoteException; + + public byte[] get(String name) throws RemoteException; + + public int insert(String name, byte[] item) throws RemoteException; + + public int del(String name) throws RemoteException; + + public int exist(String name) throws RemoteException; + + public String[] saw(String name) throws RemoteException; + + public int reset() throws RemoteException; + + public int password(String password) throws RemoteException; + + public int lock() throws RemoteException; + + public int unlock(String password) throws RemoteException; + + public int zero() throws RemoteException; + + public int generate(String name) throws RemoteException; + + public int import_key(String name, byte[] data) throws RemoteException; + + public byte[] sign(String name, byte[] data) throws RemoteException; + + public int verify(String name, byte[] data, byte[] signature) throws RemoteException; + + public byte[] get_pubkey(String name) throws RemoteException; + + public int del_key(String name) throws RemoteException; + + public int grant(String name, int granteeUid) throws RemoteException; + + public int ungrant(String name, int granteeUid) throws RemoteException; + + public long getmtime(String name) throws RemoteException; +} diff --git a/core/java/android/server/package.html b/core/java/android/server/package.html index c9f96a6..c9f96a6 100755..100644 --- a/core/java/android/server/package.html +++ b/core/java/android/server/package.html diff --git a/core/java/android/speech/tts/ITextToSpeechCallback.aidl b/core/java/android/speech/tts/ITextToSpeechCallback.aidl index f0287d4..f0287d4 100755..100644 --- a/core/java/android/speech/tts/ITextToSpeechCallback.aidl +++ b/core/java/android/speech/tts/ITextToSpeechCallback.aidl diff --git a/core/java/android/speech/tts/TextToSpeech.java b/core/java/android/speech/tts/TextToSpeech.java index 5e367cb..5e367cb 100755..100644 --- a/core/java/android/speech/tts/TextToSpeech.java +++ b/core/java/android/speech/tts/TextToSpeech.java diff --git a/core/java/android/text/format/Time.java b/core/java/android/text/format/Time.java index 200b57b..5ef86b1 100644 --- a/core/java/android/text/format/Time.java +++ b/core/java/android/text/format/Time.java @@ -411,6 +411,9 @@ public class Time { * @throws android.util.TimeFormatException if s cannot be parsed. */ public boolean parse(String s) { + if (s == null) { + throw new NullPointerException("time string is null"); + } if (nativeParse(s)) { timezone = TIMEZONE_UTC; return true; diff --git a/core/java/android/util/PropertyValueModel.java b/core/java/android/util/PropertyValueModel.java deleted file mode 100755 index eb9c47d..0000000 --- a/core/java/android/util/PropertyValueModel.java +++ /dev/null @@ -1,143 +0,0 @@ -/* - * Copyright (C) 2012 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package android.util; - -/** - * A value model for a {@link Property property} of a host object. This class can be used for - * both reflective and non-reflective property implementations. - * - * @param <H> the host type, where the host is the object that holds this property - * @param <T> the value type - * - * @see Property - * @see ValueModel - */ -public class PropertyValueModel<H, T> extends ValueModel<T> { - private final H mHost; - private final Property<H, T> mProperty; - - private PropertyValueModel(H host, Property<H, T> property) { - mProperty = property; - mHost = host; - } - - /** - * Returns the host. - * - * @return the host - */ - public H getHost() { - return mHost; - } - - /** - * Returns the property. - * - * @return the property - */ - public Property<H, T> getProperty() { - return mProperty; - } - - @Override - public Class<T> getType() { - return mProperty.getType(); - } - - @Override - public T get() { - return mProperty.get(mHost); - } - - @Override - public void set(T value) { - mProperty.set(mHost, value); - } - - /** - * Return an appropriate PropertyValueModel for this host and property. - * - * @param host the host - * @param property the property - * @return the value model - */ - public static <H, T> PropertyValueModel<H, T> of(H host, Property<H, T> property) { - return new PropertyValueModel<H, T>(host, property); - } - - /** - * Return a PropertyValueModel for this {@code host} and a - * reflective property, constructed from this {@code propertyType} and {@code propertyName}. - * - * @param host - * @param propertyType the property type - * @param propertyName the property name - * @return a value model with this host and a reflective property with this type and name - * - * @see Property#of - */ - public static <H, T> PropertyValueModel<H, T> of(H host, Class<T> propertyType, - String propertyName) { - return of(host, Property.of((Class<H>) host.getClass(), propertyType, propertyName)); - } - - private static Class getNullaryMethodReturnType(Class c, String name) { - try { - return c.getMethod(name).getReturnType(); - } catch (NoSuchMethodException e) { - return null; - } - } - - private static Class getFieldType(Class c, String name) { - try { - return c.getField(name).getType(); - } catch (NoSuchFieldException e) { - return null; - } - } - - private static String capitalize(String name) { - if (name.isEmpty()) { - return name; - } - return Character.toUpperCase(name.charAt(0)) + name.substring(1); - } - - /** - * Return a PropertyValueModel for this {@code host} and and {@code propertyName}. - * - * @param host the host - * @param propertyName the property name - * @return a value model with this host and a reflective property with this name - */ - public static PropertyValueModel of(Object host, String propertyName) { - Class clazz = host.getClass(); - String suffix = capitalize(propertyName); - Class propertyType = getNullaryMethodReturnType(clazz, "get" + suffix); - if (propertyType == null) { - propertyType = getNullaryMethodReturnType(clazz, "is" + suffix); - } - if (propertyType == null) { - propertyType = getFieldType(clazz, propertyName); - } - if (propertyType == null) { - throw new NoSuchPropertyException(propertyName); - } - return of(host, propertyType, propertyName); - } -} diff --git a/core/java/android/util/ValueModel.java b/core/java/android/util/ValueModel.java deleted file mode 100755 index 4789682..0000000 --- a/core/java/android/util/ValueModel.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright (C) 2012 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package android.util; - -/** - * A ValueModel is an abstraction for a 'slot' or place in memory in which a value - * may be stored and retrieved. A common implementation of ValueModel is a regular property of - * an object, whose value may be retrieved by calling the appropriate <em>getter</em> - * method and set by calling the corresponding <em>setter</em> method. - * - * @param <T> the value type - * - * @see PropertyValueModel - */ -public abstract class ValueModel<T> { - /** - * The empty model should be used in place of {@code null} to indicate that a - * model has not been set. The empty model has no value and does nothing when it is set. - */ - public static final ValueModel EMPTY = new ValueModel() { - @Override - public Class getType() { - return Object.class; - } - - @Override - public Object get() { - return null; - } - - @Override - public void set(Object value) { - - } - }; - - protected ValueModel() { - } - - /** - * Returns the type of this property. - * - * @return the property type - */ - public abstract Class<T> getType(); - - /** - * Returns the value of this property. - * - * @return the property value - */ - public abstract T get(); - - /** - * Sets the value of this property. - * - * @param value the new value for this property - */ - public abstract void set(T value); -}
\ No newline at end of file diff --git a/core/java/android/view/InputDevice.java b/core/java/android/view/InputDevice.java index 3bb9c01..3bb9c01 100755..100644 --- a/core/java/android/view/InputDevice.java +++ b/core/java/android/view/InputDevice.java diff --git a/core/java/android/view/InputEvent.java b/core/java/android/view/InputEvent.java index ef810a3..ef810a3 100755..100644 --- a/core/java/android/view/InputEvent.java +++ b/core/java/android/view/InputEvent.java diff --git a/core/java/android/view/KeyEvent.java b/core/java/android/view/KeyEvent.java index c2a3e58..c2a3e58 100755..100644 --- a/core/java/android/view/KeyEvent.java +++ b/core/java/android/view/KeyEvent.java diff --git a/core/java/android/view/OrientationEventListener.java b/core/java/android/view/OrientationEventListener.java index cd48a4f..cd48a4f 100755..100644 --- a/core/java/android/view/OrientationEventListener.java +++ b/core/java/android/view/OrientationEventListener.java diff --git a/core/java/android/view/ViewStub.java b/core/java/android/view/ViewStub.java index 69a26c2..a5dc3ae 100644 --- a/core/java/android/view/ViewStub.java +++ b/core/java/android/view/ViewStub.java @@ -212,7 +212,8 @@ public final class ViewStub extends View { /** * When visibility is set to {@link #VISIBLE} or {@link #INVISIBLE}, * {@link #inflate()} is invoked and this StubbedView is replaced in its parent - * by the inflated layout resource. + * by the inflated layout resource. After that calls to this function are passed + * through to the inflated view. * * @param visibility One of {@link #VISIBLE}, {@link #INVISIBLE}, or {@link #GONE}. * diff --git a/core/java/android/view/WindowManager.aidl b/core/java/android/view/WindowManager.aidl index 556dc72..556dc72 100755..100644 --- a/core/java/android/view/WindowManager.aidl +++ b/core/java/android/view/WindowManager.aidl diff --git a/core/java/android/view/WindowOrientationListener.java b/core/java/android/view/WindowOrientationListener.java index 4c34dd4..4c34dd4 100755..100644 --- a/core/java/android/view/WindowOrientationListener.java +++ b/core/java/android/view/WindowOrientationListener.java diff --git a/core/java/android/view/animation/package.html b/core/java/android/view/animation/package.html index 87c99bb..87c99bb 100755..100644 --- a/core/java/android/view/animation/package.html +++ b/core/java/android/view/animation/package.html diff --git a/core/java/android/webkit/DeviceMotionService.java b/core/java/android/webkit/DeviceMotionService.java index 9121429..9121429 100755..100644 --- a/core/java/android/webkit/DeviceMotionService.java +++ b/core/java/android/webkit/DeviceMotionService.java diff --git a/core/java/android/webkit/DeviceOrientationService.java b/core/java/android/webkit/DeviceOrientationService.java index a4d240d..a4d240d 100755..100644 --- a/core/java/android/webkit/DeviceOrientationService.java +++ b/core/java/android/webkit/DeviceOrientationService.java diff --git a/core/java/android/webkit/GeolocationPermissions.java b/core/java/android/webkit/GeolocationPermissions.java index 9c0f754..9c0f754 100755..100644 --- a/core/java/android/webkit/GeolocationPermissions.java +++ b/core/java/android/webkit/GeolocationPermissions.java diff --git a/core/java/android/webkit/GeolocationPermissionsClassic.java b/core/java/android/webkit/GeolocationPermissionsClassic.java index 8a9df39..8a9df39 100755..100644 --- a/core/java/android/webkit/GeolocationPermissionsClassic.java +++ b/core/java/android/webkit/GeolocationPermissionsClassic.java diff --git a/core/java/android/webkit/GeolocationService.java b/core/java/android/webkit/GeolocationService.java index 225053b..225053b 100755..100644 --- a/core/java/android/webkit/GeolocationService.java +++ b/core/java/android/webkit/GeolocationService.java diff --git a/core/java/android/widget/AppSecurityPermissions.java b/core/java/android/widget/AppSecurityPermissions.java index 06dadb0..06dadb0 100755..100644 --- a/core/java/android/widget/AppSecurityPermissions.java +++ b/core/java/android/widget/AppSecurityPermissions.java diff --git a/core/java/android/widget/CheckBox.java b/core/java/android/widget/CheckBox.java index 41ab5f2..f1804f8 100644 --- a/core/java/android/widget/CheckBox.java +++ b/core/java/android/widget/CheckBox.java @@ -20,7 +20,6 @@ import android.content.Context; import android.util.AttributeSet; import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityNodeInfo; -import android.util.ValueModel; /** @@ -56,9 +55,7 @@ import android.util.ValueModel; * {@link android.R.styleable#View View Attributes} * </p> */ -public class CheckBox extends CompoundButton implements ValueEditor<Boolean> { - private ValueModel<Boolean> mValueModel = ValueModel.EMPTY; - +public class CheckBox extends CompoundButton { public CheckBox(Context context) { this(context, null); } @@ -82,22 +79,4 @@ public class CheckBox extends CompoundButton implements ValueEditor<Boolean> { super.onInitializeAccessibilityNodeInfo(info); info.setClassName(CheckBox.class.getName()); } - - @Override - public ValueModel<Boolean> getValueModel() { - return mValueModel; - } - - @Override - public void setValueModel(ValueModel<Boolean> valueModel) { - mValueModel = valueModel; - setChecked(mValueModel.get()); - } - - @Override - public boolean performClick() { - boolean handled = super.performClick(); - mValueModel.set(isChecked()); - return handled; - } } diff --git a/core/java/android/widget/EditText.java b/core/java/android/widget/EditText.java index ec81214..57e51c2 100644 --- a/core/java/android/widget/EditText.java +++ b/core/java/android/widget/EditText.java @@ -17,7 +17,6 @@ package android.widget; import android.content.Context; -import android.graphics.Rect; import android.text.Editable; import android.text.Selection; import android.text.Spannable; @@ -25,7 +24,6 @@ import android.text.TextUtils; import android.text.method.ArrowKeyMovementMethod; import android.text.method.MovementMethod; import android.util.AttributeSet; -import android.util.ValueModel; import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityNodeInfo; @@ -49,9 +47,7 @@ import android.view.accessibility.AccessibilityNodeInfo; * {@link android.R.styleable#TextView TextView Attributes}, * {@link android.R.styleable#View View Attributes} */ -public class EditText extends TextView implements ValueEditor<CharSequence> { - private ValueModel<CharSequence> mValueModel = ValueModel.EMPTY; - +public class EditText extends TextView { public EditText(Context context) { this(context, null); } @@ -132,21 +128,4 @@ public class EditText extends TextView implements ValueEditor<CharSequence> { super.onInitializeAccessibilityNodeInfo(info); info.setClassName(EditText.class.getName()); } - - @Override - public ValueModel<CharSequence> getValueModel() { - return mValueModel; - } - - @Override - public void setValueModel(ValueModel<CharSequence> valueModel) { - mValueModel = valueModel; - setText(mValueModel.get()); - } - - @Override - void sendAfterTextChanged(Editable text) { - super.sendAfterTextChanged(text); - mValueModel.set(text); - } } diff --git a/core/java/android/widget/ListView.java b/core/java/android/widget/ListView.java index 03507b5..69e3177 100644 --- a/core/java/android/widget/ListView.java +++ b/core/java/android/widget/ListView.java @@ -2981,11 +2981,9 @@ public class ListView extends AbsListView { while (first.getBottom() < listTop) { AbsListView.LayoutParams layoutParams = (LayoutParams) first.getLayoutParams(); if (recycleBin.shouldRecycleViewType(layoutParams.viewType)) { - detachViewFromParent(first); recycleBin.addScrapView(first, mFirstPosition); - } else { - removeViewInLayout(first); } + detachViewFromParent(first); first = getChildAt(0); mFirstPosition++; } @@ -3012,11 +3010,9 @@ public class ListView extends AbsListView { while (last.getTop() > listBottom) { AbsListView.LayoutParams layoutParams = (LayoutParams) last.getLayoutParams(); if (recycleBin.shouldRecycleViewType(layoutParams.viewType)) { - detachViewFromParent(last); recycleBin.addScrapView(last, mFirstPosition+lastIndex); - } else { - removeViewInLayout(last); } + detachViewFromParent(last); last = getChildAt(--lastIndex); } } diff --git a/core/java/android/widget/SeekBar.java b/core/java/android/widget/SeekBar.java index a6486a8..2737f94 100644 --- a/core/java/android/widget/SeekBar.java +++ b/core/java/android/widget/SeekBar.java @@ -18,7 +18,6 @@ package android.widget; import android.content.Context; import android.util.AttributeSet; -import android.util.ValueModel; import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityNodeInfo; @@ -34,7 +33,7 @@ import android.view.accessibility.AccessibilityNodeInfo; * * @attr ref android.R.styleable#SeekBar_thumb */ -public class SeekBar extends AbsSeekBar implements ValueEditor<Integer> { +public class SeekBar extends AbsSeekBar { /** * A callback that notifies clients when the progress level has been @@ -70,9 +69,8 @@ public class SeekBar extends AbsSeekBar implements ValueEditor<Integer> { void onStopTrackingTouch(SeekBar seekBar); } - private ValueModel<Integer> mValueModel = ValueModel.EMPTY; private OnSeekBarChangeListener mOnSeekBarChangeListener; - + public SeekBar(Context context) { this(context, null); } @@ -91,23 +89,9 @@ public class SeekBar extends AbsSeekBar implements ValueEditor<Integer> { if (mOnSeekBarChangeListener != null) { mOnSeekBarChangeListener.onProgressChanged(this, getProgress(), fromUser); - if (fromUser) { - mValueModel.set(getProgress()); - } } } - @Override - public ValueModel<Integer> getValueModel() { - return mValueModel; - } - - @Override - public void setValueModel(ValueModel<Integer> valueModel) { - mValueModel = valueModel; - setProgress(mValueModel.get()); - } - /** * Sets a listener to receive notifications of changes to the SeekBar's progress level. Also * provides notifications of when the user starts and stops a touch gesture within the SeekBar. diff --git a/core/java/android/widget/ValueEditor.java b/core/java/android/widget/ValueEditor.java deleted file mode 100755 index 2b91abf..0000000 --- a/core/java/android/widget/ValueEditor.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (C) 2012 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package android.widget; - -import android.util.ValueModel; - -/** - * An interface for editors of simple values. Classes implementing this interface are normally - * UI controls (subclasses of {@link android.view.View View}) that can provide a suitable - * user interface to display and edit values of the specified type. This interface is - * intended to describe editors for simple types, like {@code boolean}, {@code int} or - * {@code String}, where the values themselves are immutable. - * <p> - * For example, {@link android.widget.CheckBox CheckBox} implements - * this interface for the Boolean type as it is capable of providing an appropriate - * mechanism for displaying and changing the value of a Boolean property. - * - * @param <T> the value type that this editor supports - */ -public interface ValueEditor<T> { - /** - * Return the last value model that was set. If no value model has been set, the editor - * should return the value {@link android.util.ValueModel#EMPTY}. - * - * @return the value model - */ - public ValueModel<T> getValueModel(); - - /** - * Sets the value model for this editor. When the value model is set, the editor should - * retrieve the value from the value model, using {@link android.util.ValueModel#get()}, - * and set its internal state accordingly. Likewise, when the editor's internal state changes - * it should update the value model by calling {@link android.util.ValueModel#set(T)} - * with the appropriate value. - * - * @param valueModel the new value model for this editor. - */ - public void setValueModel(ValueModel<T> valueModel); -} diff --git a/core/java/com/android/internal/app/IMediaContainerService.aidl b/core/java/com/android/internal/app/IMediaContainerService.aidl index 03d3b22..03d3b22 100755..100644 --- a/core/java/com/android/internal/app/IMediaContainerService.aidl +++ b/core/java/com/android/internal/app/IMediaContainerService.aidl diff --git a/core/java/com/android/internal/app/IUsageStats.aidl b/core/java/com/android/internal/app/IUsageStats.aidl index 1ea7409..1ea7409 100755..100644 --- a/core/java/com/android/internal/app/IUsageStats.aidl +++ b/core/java/com/android/internal/app/IUsageStats.aidl diff --git a/core/java/com/android/internal/app/NetInitiatedActivity.java b/core/java/com/android/internal/app/NetInitiatedActivity.java index e1166f1..e1166f1 100755..100644 --- a/core/java/com/android/internal/app/NetInitiatedActivity.java +++ b/core/java/com/android/internal/app/NetInitiatedActivity.java diff --git a/core/java/com/android/internal/os/PkgUsageStats.aidl b/core/java/com/android/internal/os/PkgUsageStats.aidl index 8305271..8305271 100755..100644 --- a/core/java/com/android/internal/os/PkgUsageStats.aidl +++ b/core/java/com/android/internal/os/PkgUsageStats.aidl diff --git a/core/java/com/android/internal/os/PkgUsageStats.java b/core/java/com/android/internal/os/PkgUsageStats.java index 8c2c405..8c2c405 100755..100644 --- a/core/java/com/android/internal/os/PkgUsageStats.java +++ b/core/java/com/android/internal/os/PkgUsageStats.java diff --git a/core/java/com/android/internal/view/menu/MenuItemImpl.java b/core/java/com/android/internal/view/menu/MenuItemImpl.java index 9f7441d..7189610 100644 --- a/core/java/com/android/internal/view/menu/MenuItemImpl.java +++ b/core/java/com/android/internal/view/menu/MenuItemImpl.java @@ -93,6 +93,7 @@ public final class MenuItemImpl implements MenuItem { */ private ContextMenuInfo mMenuInfo; + private static String sLanguage; private static String sPrependShortcutLabel; private static String sEnterShortcutLabel; private static String sDeleteShortcutLabel; @@ -114,7 +115,9 @@ public final class MenuItemImpl implements MenuItem { MenuItemImpl(MenuBuilder menu, int group, int id, int categoryOrder, int ordering, CharSequence title, int showAsAction) { - if (sPrependShortcutLabel == null) { + String lang = menu.getContext().getResources().getConfiguration().locale.toString(); + if (sPrependShortcutLabel == null || !lang.equals(sLanguage)) { + sLanguage = lang; // This is instantiated from the UI thread, so no chance of sync issues sPrependShortcutLabel = menu.getContext().getResources().getString( com.android.internal.R.string.prepend_shortcut_label); diff --git a/core/jni/Android.mk b/core/jni/Android.mk index 3ca085b..9b95be1 100644 --- a/core/jni/Android.mk +++ b/core/jni/Android.mk @@ -11,10 +11,6 @@ else LOCAL_CFLAGS += -DPACKED="" endif -ifeq ($(WITH_JIT),true) - LOCAL_CFLAGS += -DWITH_JIT -endif - ifneq ($(USE_CUSTOM_RUNTIME_HEAP_MAX),) LOCAL_CFLAGS += -DCUSTOM_RUNTIME_HEAP_MAX=$(USE_CUSTOM_RUNTIME_HEAP_MAX) endif @@ -200,6 +196,7 @@ LOCAL_SHARED_LIBRARIES := \ libETC1 \ libhardware \ libhardware_legacy \ + libselinux \ libsonivox \ libcrypto \ libssl \ @@ -213,12 +210,6 @@ LOCAL_SHARED_LIBRARIES := \ libharfbuzz \ libz -ifeq ($(HAVE_SELINUX),true) -LOCAL_C_INCLUDES += external/libselinux/include -LOCAL_SHARED_LIBRARIES += libselinux -LOCAL_CFLAGS += -DHAVE_SELINUX -endif # HAVE_SELINUX - ifeq ($(USE_OPENGL_RENDERER),true) LOCAL_SHARED_LIBRARIES += libhwui endif diff --git a/core/jni/AndroidRuntime.cpp b/core/jni/AndroidRuntime.cpp index 9820e60..94324f8 100644 --- a/core/jni/AndroidRuntime.cpp +++ b/core/jni/AndroidRuntime.cpp @@ -465,9 +465,7 @@ int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv) kEMDefault, kEMIntPortable, kEMIntFast, -#if defined(WITH_JIT) kEMJitCompiler, -#endif } executionMode = kEMDefault; @@ -487,10 +485,8 @@ int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv) executionMode = kEMIntPortable; } else if (strcmp(propBuf, "int:fast") == 0) { executionMode = kEMIntFast; -#if defined(WITH_JIT) } else if (strcmp(propBuf, "int:jit") == 0) { executionMode = kEMJitCompiler; -#endif } property_get("dalvik.vm.stack-trace-file", stackTraceFileBuf, ""); @@ -660,7 +656,6 @@ int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv) mOptions.add(opt); } -#if defined(WITH_JIT) /* Force interpreter-only mode for selected opcodes. Eg "1-0a,3c,f1-ff" */ char jitOpBuf[sizeof("-Xjitop:") + PROPERTY_VALUE_MAX]; property_get("dalvik.vm.jit.op", propBuf, ""); @@ -680,7 +675,6 @@ int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv) opt.optionString = jitMethodBuf; mOptions.add(opt); } -#endif if (executionMode == kEMIntPortable) { opt.optionString = "-Xint:portable"; @@ -688,11 +682,9 @@ int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv) } else if (executionMode == kEMIntFast) { opt.optionString = "-Xint:fast"; mOptions.add(opt); -#if defined(WITH_JIT) } else if (executionMode == kEMJitCompiler) { opt.optionString = "-Xint:jit"; mOptions.add(opt); -#endif } if (checkDexSum) { diff --git a/core/jni/android_os_SELinux.cpp b/core/jni/android_os_SELinux.cpp index e813c38..b12fdfc 100644 --- a/core/jni/android_os_SELinux.cpp +++ b/core/jni/android_os_SELinux.cpp @@ -20,10 +20,8 @@ #include "JNIHelp.h" #include "jni.h" #include "android_runtime/AndroidRuntime.h" -#ifdef HAVE_SELINUX #include "selinux/selinux.h" #include "selinux/android.h" -#endif #include <errno.h> namespace android { @@ -56,11 +54,7 @@ namespace android { * Exceptions: none */ static jboolean isSELinuxEnforced(JNIEnv *env, jobject clazz) { -#ifdef HAVE_SELINUX return (security_getenforce() == 1) ? true : false; -#else - return false; -#endif } /* @@ -71,16 +65,12 @@ namespace android { * Exceptions: none */ static jboolean setSELinuxEnforce(JNIEnv *env, jobject clazz, jboolean value) { -#ifdef HAVE_SELINUX if (isSELinuxDisabled) return false; int enforce = (value) ? 1 : 0; return (security_setenforce(enforce) != -1) ? true : false; -#else - return false; -#endif } /* @@ -92,7 +82,6 @@ namespace android { * Exceptions: NullPointerException if fileDescriptor object is NULL */ static jstring getPeerCon(JNIEnv *env, jobject clazz, jobject fileDescriptor) { -#ifdef HAVE_SELINUX if (isSELinuxDisabled) return NULL; @@ -123,9 +112,6 @@ namespace android { freecon(context); return securityString; -#else - return NULL; -#endif } /* @@ -138,7 +124,6 @@ namespace android { * Exception: none */ static jboolean setFSCreateCon(JNIEnv *env, jobject clazz, jstring context) { -#ifdef HAVE_SELINUX if (isSELinuxDisabled) return false; @@ -163,9 +148,6 @@ namespace android { env->ReleaseStringUTFChars(context, constant_securityContext); return (ret == 0) ? true : false; -#else - return false; -#endif } /* @@ -178,7 +160,6 @@ namespace android { * Exception: NullPointerException is thrown if either path or context strign are NULL */ static jboolean setFileCon(JNIEnv *env, jobject clazz, jstring path, jstring con) { -#ifdef HAVE_SELINUX if (isSELinuxDisabled) return false; @@ -208,9 +189,6 @@ namespace android { env->ReleaseStringUTFChars(path, objectPath); env->ReleaseStringUTFChars(con, constant_con); return (ret == 0) ? true : false; -#else - return false; -#endif } /* @@ -224,7 +202,6 @@ namespace android { * Exceptions: NullPointerException if the path object is null */ static jstring getFileCon(JNIEnv *env, jobject clazz, jstring path) { -#ifdef HAVE_SELINUX if (isSELinuxDisabled) return NULL; @@ -252,9 +229,6 @@ namespace android { env->ReleaseStringUTFChars(path, objectPath); return securityString; -#else - return NULL; -#endif } /* @@ -266,7 +240,6 @@ namespace android { * Exceptions: none */ static jstring getCon(JNIEnv *env, jobject clazz) { -#ifdef HAVE_SELINUX if (isSELinuxDisabled) return NULL; @@ -285,9 +258,6 @@ namespace android { freecon(context); return securityString; -#else - return NULL; -#endif } /* @@ -300,7 +270,6 @@ namespace android { * Exceptions: none */ static jstring getPidCon(JNIEnv *env, jobject clazz, jint pid) { -#ifdef HAVE_SELINUX if (isSELinuxDisabled) return NULL; @@ -321,9 +290,6 @@ namespace android { freecon(context); return securityString; -#else - return NULL; -#endif } /* @@ -335,7 +301,6 @@ namespace android { * Exceptions: None */ static jobjectArray getBooleanNames(JNIEnv *env, JNIEnv clazz) { -#ifdef HAVE_SELINUX if (isSELinuxDisabled) return NULL; @@ -359,9 +324,6 @@ namespace android { free(list); return stringArray; -#else - return NULL; -#endif } /* @@ -373,7 +335,6 @@ namespace android { * Exceptions: None */ static jboolean getBooleanValue(JNIEnv *env, jobject clazz, jstring name) { -#ifdef HAVE_SELINUX if (isSELinuxDisabled) return false; @@ -386,9 +347,6 @@ namespace android { ret = security_get_boolean_active(boolean_name); env->ReleaseStringUTFChars(name, boolean_name); return (ret == 1) ? true : false; -#else - return false; -#endif } /* @@ -401,7 +359,6 @@ namespace android { * Exceptions: None */ static jboolean setBooleanValue(JNIEnv *env, jobject clazz, jstring name, jboolean value) { -#ifdef HAVE_SELINUX if (isSELinuxDisabled) return false; @@ -420,9 +377,6 @@ namespace android { return false; return true; -#else - return false; -#endif } /* @@ -436,7 +390,6 @@ namespace android { * Exceptions: None */ static jboolean checkSELinuxAccess(JNIEnv *env, jobject clazz, jstring scon, jstring tcon, jstring tclass, jstring perm) { -#ifdef HAVE_SELINUX if (isSELinuxDisabled) return true; @@ -468,10 +421,6 @@ namespace android { bail: return (accessGranted == 0) ? true : false; - -#else - return true; -#endif } /* @@ -482,7 +431,6 @@ namespace android { * Exceptions: none */ static jboolean native_restorecon(JNIEnv *env, jobject clazz, jstring pathname) { -#ifdef HAVE_SELINUX if (isSELinuxDisabled) return true; @@ -490,9 +438,6 @@ namespace android { int ret = selinux_android_restorecon(file); env->ReleaseStringUTFChars(pathname, file); return (ret == 0); -#else - return true; -#endif } /* @@ -526,14 +471,12 @@ namespace android { } int register_android_os_SELinux(JNIEnv *env) { -#ifdef HAVE_SELINUX union selinux_callback cb; cb.func_log = log_callback; selinux_set_callback(SELINUX_CB_LOG, cb); isSELinuxDisabled = (is_selinux_enabled() != 1) ? true : false; -#endif return AndroidRuntime::registerNativeMethods( env, "android/os/SELinux", method_table, NELEM(method_table)); diff --git a/core/jni/android_text_format_Time.cpp b/core/jni/android_text_format_Time.cpp index 0a59ae7..aa2c5f39 100644 --- a/core/jni/android_text_format_Time.cpp +++ b/core/jni/android_text_format_Time.cpp @@ -23,6 +23,7 @@ #include "jni.h" #include "utils/misc.h" #include "android_runtime/AndroidRuntime.h" +#include "ScopedStringChars.h" #include "TimeUtils.h" #include <nativehelper/JNIHelp.h> #include <cutils/tztime.h> @@ -71,11 +72,10 @@ static inline bool java2time(JNIEnv* env, Time* t, jobject o) t->t.tm_gmtoff = env->GetLongField(o, g_gmtoffField); bool allDay = env->GetBooleanField(o, g_allDayField); if (allDay && - ((t->t.tm_sec !=0) || (t->t.tm_min != 0) || (t->t.tm_hour != 0))) { - char msg[100]; - sprintf(msg, "allDay is true but sec, min, hour are not 0."); - jniThrowException(env, "java/lang/IllegalArgumentException", msg); - return false; + ((t->t.tm_sec !=0) || (t->t.tm_min != 0) || (t->t.tm_hour != 0))) { + jniThrowException(env, "java/lang/IllegalArgumentException", + "allDay is true but sec, min, hour are not 0."); + return false; } return true; } @@ -313,7 +313,7 @@ static jstring android_text_format_Time_format(JNIEnv* env, jobject This, static jstring android_text_format_Time_toString(JNIEnv* env, jobject This) { Time t; - if (!java2time(env, &t, This)) return env->NewStringUTF("");; + if (!java2time(env, &t, This)) return env->NewStringUTF(""); ACQUIRE_TIMEZONE(This, t) String8 r = t.toString(); @@ -365,32 +365,30 @@ static void android_text_format_Time_set(JNIEnv* env, jobject This, jlong millis // ============================================================================ // Just do this here because it's not worth recreating the strings -static int get_char(JNIEnv* env, const jchar *s, int spos, int mul, - bool *thrown) +static int get_char(JNIEnv* env, const ScopedStringChars& s, int spos, int mul, + bool* thrown) { jchar c = s[spos]; if (c >= '0' && c <= '9') { return (c - '0') * mul; } else { if (!*thrown) { - char msg[100]; - sprintf(msg, "Parse error at pos=%d", spos); - jniThrowException(env, "android/util/TimeFormatException", msg); + jniThrowExceptionFmt(env, "android/util/TimeFormatException", + "Parse error at pos=%d", spos); *thrown = true; } return 0; } } -static bool check_char(JNIEnv* env, const jchar *s, int spos, jchar expected) +static bool check_char(JNIEnv* env, const ScopedStringChars& s, int spos, jchar expected) { jchar c = s[spos]; if (c != expected) { - char msg[100]; - sprintf(msg, "Unexpected character 0x%02x at pos=%d. Expected %c.", c, spos, - expected); - jniThrowException(env, "android/util/TimeFormatException", msg); - return false; + jniThrowExceptionFmt(env, "android/util/TimeFormatException", + "Unexpected character 0x%02x at pos=%d. Expected %c.", + c, spos, expected); + return false; } return true; } @@ -399,20 +397,19 @@ static bool check_char(JNIEnv* env, const jchar *s, int spos, jchar expected) static jboolean android_text_format_Time_parse(JNIEnv* env, jobject This, jstring strObj) { jsize len = env->GetStringLength(strObj); - const jchar *s = env->GetStringChars(strObj, NULL); + if (len < 8) { + jniThrowException(env, "android/util/TimeFormatException", + "String too short -- expected at least 8 characters."); + return false; + } - bool thrown = false; - int n; jboolean inUtc = false; - if (len < 8) { - char msg[100]; - sprintf(msg, "String too short -- expected at least 8 characters."); - jniThrowException(env, "android/util/TimeFormatException", msg); - return false; - } + ScopedStringChars s(env, strObj); // year + int n; + bool thrown = false; n = get_char(env, s, 0, 1000, &thrown); n += get_char(env, s, 1, 100, &thrown); n += get_char(env, s, 2, 10, &thrown); @@ -459,7 +456,7 @@ static jboolean android_text_format_Time_parse(JNIEnv* env, jobject This, jstrin if (len > 15) { // Z if (!check_char(env, s, 15, 'Z')) return false; - inUtc = true; + inUtc = true; } } else { env->SetBooleanField(This, g_allDayField, JNI_TRUE); @@ -472,8 +469,7 @@ static jboolean android_text_format_Time_parse(JNIEnv* env, jobject This, jstrin env->SetIntField(This, g_ydayField, 0); env->SetIntField(This, g_isdstField, -1); env->SetLongField(This, g_gmtoffField, 0); - - env->ReleaseStringChars(strObj, s); + return inUtc; } @@ -482,19 +478,19 @@ static jboolean android_text_format_Time_parse3339(JNIEnv* env, jstring strObj) { jsize len = env->GetStringLength(strObj); - const jchar *s = env->GetStringChars(strObj, NULL); - - bool thrown = false; - int n; - jboolean inUtc = false; - if (len < 10) { jniThrowException(env, "android/util/TimeFormatException", - "Time input is too short; must be at least 10 characters"); + "String too short --- expected at least 10 characters."); return false; } + jboolean inUtc = false; + + ScopedStringChars s(env, strObj); + // year + int n; + bool thrown = false; n = get_char(env, s, 0, 1000, &thrown); n += get_char(env, s, 1, 100, &thrown); n += get_char(env, s, 2, 10, &thrown); @@ -525,28 +521,28 @@ static jboolean android_text_format_Time_parse3339(JNIEnv* env, // T if (!check_char(env, s, 10, 'T')) return false; - env->SetBooleanField(This, g_allDayField, JNI_FALSE); + env->SetBooleanField(This, g_allDayField, JNI_FALSE); // hour n = get_char(env, s, 11, 10, &thrown); n += get_char(env, s, 12, 1, &thrown); if (thrown) return false; - int hour = n; + int hour = n; // env->SetIntField(This, g_hourField, n); - - // : - if (!check_char(env, s, 13, ':')) return false; - // minute + // : + if (!check_char(env, s, 13, ':')) return false; + + // minute n = get_char(env, s, 14, 10, &thrown); n += get_char(env, s, 15, 1, &thrown); if (thrown) return false; - int minute = n; + int minute = n; // env->SetIntField(This, g_minField, n); - // : - if (!check_char(env, s, 16, ':')) return false; + // : + if (!check_char(env, s, 16, ':')) return false; - // second + // second n = get_char(env, s, 17, 10, &thrown); n += get_char(env, s, 18, 1, &thrown); if (thrown) return false; @@ -566,64 +562,63 @@ static jboolean android_text_format_Time_parse3339(JNIEnv* env, if (len > tz_index) { char c = s[tz_index]; - // NOTE: the offset is meant to be subtracted to get from local time - // to UTC. we therefore use 1 for '-' and -1 for '+'. - switch (c) { - case 'Z': - // Zulu time -- UTC - offset = 0; - break; - case '-': + // NOTE: the offset is meant to be subtracted to get from local time + // to UTC. we therefore use 1 for '-' and -1 for '+'. + switch (c) { + case 'Z': + // Zulu time -- UTC + offset = 0; + break; + case '-': offset = 1; - break; - case '+': + break; + case '+': offset = -1; - break; - default: - char msg[100]; - sprintf(msg, "Unexpected character 0x%02x at position %d. Expected + or -", - c, tz_index); - jniThrowException(env, "android/util/TimeFormatException", msg); - return false; - } + break; + default: + jniThrowExceptionFmt(env, "android/util/TimeFormatException", + "Unexpected character 0x%02x at position %d. Expected + or -", + c, tz_index); + return false; + } inUtc = true; - if (offset != 0) { - if (len < tz_index + 6) { - char msg[100]; - sprintf(msg, "Unexpected length; should be %d characters", tz_index + 6); - jniThrowException(env, "android/util/TimeFormatException", msg); - return false; - } - - // hour - n = get_char(env, s, tz_index + 1, 10, &thrown); - n += get_char(env, s, tz_index + 2, 1, &thrown); - if (thrown) return false; - n *= offset; - hour += n; - - // : - if (!check_char(env, s, tz_index + 3, ':')) return false; - - // minute - n = get_char(env, s, tz_index + 4, 10, &thrown); - n += get_char(env, s, tz_index + 5, 1, &thrown); - if (thrown) return false; - n *= offset; - minute += n; - } - } - env->SetIntField(This, g_hourField, hour); + if (offset != 0) { + if (len < tz_index + 6) { + jniThrowExceptionFmt(env, "android/util/TimeFormatException", + "Unexpected length; should be %d characters", + tz_index + 6); + return false; + } + + // hour + n = get_char(env, s, tz_index + 1, 10, &thrown); + n += get_char(env, s, tz_index + 2, 1, &thrown); + if (thrown) return false; + n *= offset; + hour += n; + + // : + if (!check_char(env, s, tz_index + 3, ':')) return false; + + // minute + n = get_char(env, s, tz_index + 4, 10, &thrown); + n += get_char(env, s, tz_index + 5, 1, &thrown); + if (thrown) return false; + n *= offset; + minute += n; + } + } + env->SetIntField(This, g_hourField, hour); env->SetIntField(This, g_minField, minute); - if (offset != 0) { - // we need to normalize after applying the hour and minute offsets - android_text_format_Time_normalize(env, This, false /* use isdst */); - // The timezone is set to UTC in the calling Java code. - } + if (offset != 0) { + // we need to normalize after applying the hour and minute offsets + android_text_format_Time_normalize(env, This, false /* use isdst */); + // The timezone is set to UTC in the calling Java code. + } } else { - env->SetBooleanField(This, g_allDayField, JNI_TRUE); + env->SetBooleanField(This, g_allDayField, JNI_TRUE); env->SetIntField(This, g_hourField, 0); env->SetIntField(This, g_minField, 0); env->SetIntField(This, g_secField, 0); @@ -633,8 +628,7 @@ static jboolean android_text_format_Time_parse3339(JNIEnv* env, env->SetIntField(This, g_ydayField, 0); env->SetIntField(This, g_isdstField, -1); env->SetLongField(This, g_gmtoffField, 0); - - env->ReleaseStringChars(strObj, s); + return inUtc; } diff --git a/core/res/res/drawable-en-hdpi/sym_keyboard_delete.png b/core/res/res/drawable-en-hdpi/sym_keyboard_delete.png Binary files differindex 569369e..569369e 100755..100644 --- a/core/res/res/drawable-en-hdpi/sym_keyboard_delete.png +++ b/core/res/res/drawable-en-hdpi/sym_keyboard_delete.png diff --git a/core/res/res/drawable-hdpi/btn_circle_disable.png b/core/res/res/drawable-hdpi/btn_circle_disable.png Binary files differindex 39652a8..39652a8 100755..100644 --- a/core/res/res/drawable-hdpi/btn_circle_disable.png +++ b/core/res/res/drawable-hdpi/btn_circle_disable.png diff --git a/core/res/res/drawable-hdpi/btn_circle_disable_focused.png b/core/res/res/drawable-hdpi/btn_circle_disable_focused.png Binary files differindex 1aa7ffe..1aa7ffe 100755..100644 --- a/core/res/res/drawable-hdpi/btn_circle_disable_focused.png +++ b/core/res/res/drawable-hdpi/btn_circle_disable_focused.png diff --git a/core/res/res/drawable-hdpi/btn_circle_normal.png b/core/res/res/drawable-hdpi/btn_circle_normal.png Binary files differindex 6011219..6011219 100755..100644 --- a/core/res/res/drawable-hdpi/btn_circle_normal.png +++ b/core/res/res/drawable-hdpi/btn_circle_normal.png diff --git a/core/res/res/drawable-hdpi/btn_circle_pressed.png b/core/res/res/drawable-hdpi/btn_circle_pressed.png Binary files differindex 4942e50..4942e50 100755..100644 --- a/core/res/res/drawable-hdpi/btn_circle_pressed.png +++ b/core/res/res/drawable-hdpi/btn_circle_pressed.png diff --git a/core/res/res/drawable-hdpi/btn_circle_selected.png b/core/res/res/drawable-hdpi/btn_circle_selected.png Binary files differindex fe49a40..fe49a40 100755..100644 --- a/core/res/res/drawable-hdpi/btn_circle_selected.png +++ b/core/res/res/drawable-hdpi/btn_circle_selected.png diff --git a/core/res/res/drawable-hdpi/btn_close_normal.png b/core/res/res/drawable-hdpi/btn_close_normal.png Binary files differindex 47f11e5..47f11e5 100755..100644 --- a/core/res/res/drawable-hdpi/btn_close_normal.png +++ b/core/res/res/drawable-hdpi/btn_close_normal.png diff --git a/core/res/res/drawable-hdpi/btn_close_pressed.png b/core/res/res/drawable-hdpi/btn_close_pressed.png Binary files differindex 5b96b4e..5b96b4e 100755..100644 --- a/core/res/res/drawable-hdpi/btn_close_pressed.png +++ b/core/res/res/drawable-hdpi/btn_close_pressed.png diff --git a/core/res/res/drawable-hdpi/btn_close_selected.png b/core/res/res/drawable-hdpi/btn_close_selected.png Binary files differindex e27d684..e27d684 100755..100644 --- a/core/res/res/drawable-hdpi/btn_close_selected.png +++ b/core/res/res/drawable-hdpi/btn_close_selected.png diff --git a/core/res/res/drawable-hdpi/btn_default_normal.9.png b/core/res/res/drawable-hdpi/btn_default_normal.9.png Binary files differindex 803651b..803651b 100755..100644 --- a/core/res/res/drawable-hdpi/btn_default_normal.9.png +++ b/core/res/res/drawable-hdpi/btn_default_normal.9.png diff --git a/core/res/res/drawable-hdpi/btn_default_normal_disable.9.png b/core/res/res/drawable-hdpi/btn_default_normal_disable.9.png Binary files differindex f4f01c7..f4f01c7 100755..100644 --- a/core/res/res/drawable-hdpi/btn_default_normal_disable.9.png +++ b/core/res/res/drawable-hdpi/btn_default_normal_disable.9.png diff --git a/core/res/res/drawable-hdpi/btn_default_normal_disable_focused.9.png b/core/res/res/drawable-hdpi/btn_default_normal_disable_focused.9.png Binary files differindex 5376db2..5376db2 100755..100644 --- a/core/res/res/drawable-hdpi/btn_default_normal_disable_focused.9.png +++ b/core/res/res/drawable-hdpi/btn_default_normal_disable_focused.9.png diff --git a/core/res/res/drawable-hdpi/btn_default_pressed.9.png b/core/res/res/drawable-hdpi/btn_default_pressed.9.png Binary files differindex 4312c27..4312c27 100755..100644 --- a/core/res/res/drawable-hdpi/btn_default_pressed.9.png +++ b/core/res/res/drawable-hdpi/btn_default_pressed.9.png diff --git a/core/res/res/drawable-hdpi/btn_default_selected.9.png b/core/res/res/drawable-hdpi/btn_default_selected.9.png Binary files differindex 06b7790..06b7790 100755..100644 --- a/core/res/res/drawable-hdpi/btn_default_selected.9.png +++ b/core/res/res/drawable-hdpi/btn_default_selected.9.png diff --git a/core/res/res/drawable-hdpi/btn_default_small_normal.9.png b/core/res/res/drawable-hdpi/btn_default_small_normal.9.png Binary files differindex 6d3ea9a..6d3ea9a 100755..100644 --- a/core/res/res/drawable-hdpi/btn_default_small_normal.9.png +++ b/core/res/res/drawable-hdpi/btn_default_small_normal.9.png diff --git a/core/res/res/drawable-hdpi/btn_default_small_normal_disable.9.png b/core/res/res/drawable-hdpi/btn_default_small_normal_disable.9.png Binary files differindex 2646ba0..2646ba0 100755..100644 --- a/core/res/res/drawable-hdpi/btn_default_small_normal_disable.9.png +++ b/core/res/res/drawable-hdpi/btn_default_small_normal_disable.9.png diff --git a/core/res/res/drawable-hdpi/btn_default_small_normal_disable_focused.9.png b/core/res/res/drawable-hdpi/btn_default_small_normal_disable_focused.9.png Binary files differindex 013210c..013210c 100755..100644 --- a/core/res/res/drawable-hdpi/btn_default_small_normal_disable_focused.9.png +++ b/core/res/res/drawable-hdpi/btn_default_small_normal_disable_focused.9.png diff --git a/core/res/res/drawable-hdpi/btn_default_small_pressed.9.png b/core/res/res/drawable-hdpi/btn_default_small_pressed.9.png Binary files differindex 24cefd4..24cefd4 100755..100644 --- a/core/res/res/drawable-hdpi/btn_default_small_pressed.9.png +++ b/core/res/res/drawable-hdpi/btn_default_small_pressed.9.png diff --git a/core/res/res/drawable-hdpi/btn_default_small_selected.9.png b/core/res/res/drawable-hdpi/btn_default_small_selected.9.png Binary files differindex bedbceb..bedbceb 100755..100644 --- a/core/res/res/drawable-hdpi/btn_default_small_selected.9.png +++ b/core/res/res/drawable-hdpi/btn_default_small_selected.9.png diff --git a/core/res/res/drawable-hdpi/btn_dialog_disable.png b/core/res/res/drawable-hdpi/btn_dialog_disable.png Binary files differindex 4ff634b..4ff634b 100755..100644 --- a/core/res/res/drawable-hdpi/btn_dialog_disable.png +++ b/core/res/res/drawable-hdpi/btn_dialog_disable.png diff --git a/core/res/res/drawable-hdpi/btn_dialog_normal.png b/core/res/res/drawable-hdpi/btn_dialog_normal.png Binary files differindex e0cc339..e0cc339 100755..100644 --- a/core/res/res/drawable-hdpi/btn_dialog_normal.png +++ b/core/res/res/drawable-hdpi/btn_dialog_normal.png diff --git a/core/res/res/drawable-hdpi/btn_dialog_pressed.png b/core/res/res/drawable-hdpi/btn_dialog_pressed.png Binary files differindex ed8e008..ed8e008 100755..100644 --- a/core/res/res/drawable-hdpi/btn_dialog_pressed.png +++ b/core/res/res/drawable-hdpi/btn_dialog_pressed.png diff --git a/core/res/res/drawable-hdpi/btn_dialog_selected.png b/core/res/res/drawable-hdpi/btn_dialog_selected.png Binary files differindex 9b1a100..9b1a100 100755..100644 --- a/core/res/res/drawable-hdpi/btn_dialog_selected.png +++ b/core/res/res/drawable-hdpi/btn_dialog_selected.png diff --git a/core/res/res/drawable-hdpi/btn_dropdown_normal.9.png b/core/res/res/drawable-hdpi/btn_dropdown_normal.9.png Binary files differindex f10402f..f10402f 100755..100644 --- a/core/res/res/drawable-hdpi/btn_dropdown_normal.9.png +++ b/core/res/res/drawable-hdpi/btn_dropdown_normal.9.png diff --git a/core/res/res/drawable-hdpi/btn_dropdown_pressed.9.png b/core/res/res/drawable-hdpi/btn_dropdown_pressed.9.png Binary files differindex 366c6e0..366c6e0 100755..100644 --- a/core/res/res/drawable-hdpi/btn_dropdown_pressed.9.png +++ b/core/res/res/drawable-hdpi/btn_dropdown_pressed.9.png diff --git a/core/res/res/drawable-hdpi/btn_dropdown_selected.9.png b/core/res/res/drawable-hdpi/btn_dropdown_selected.9.png Binary files differindex f063c8d..f063c8d 100755..100644 --- a/core/res/res/drawable-hdpi/btn_dropdown_selected.9.png +++ b/core/res/res/drawable-hdpi/btn_dropdown_selected.9.png diff --git a/core/res/res/drawable-hdpi/btn_radio_off.png b/core/res/res/drawable-hdpi/btn_radio_off.png Binary files differindex 48ee2ba..48ee2ba 100755..100644 --- a/core/res/res/drawable-hdpi/btn_radio_off.png +++ b/core/res/res/drawable-hdpi/btn_radio_off.png diff --git a/core/res/res/drawable-hdpi/btn_radio_off_pressed.png b/core/res/res/drawable-hdpi/btn_radio_off_pressed.png Binary files differindex 5a4ad89..5a4ad89 100755..100644 --- a/core/res/res/drawable-hdpi/btn_radio_off_pressed.png +++ b/core/res/res/drawable-hdpi/btn_radio_off_pressed.png diff --git a/core/res/res/drawable-hdpi/btn_radio_off_selected.png b/core/res/res/drawable-hdpi/btn_radio_off_selected.png Binary files differindex 7d5c676..7d5c676 100755..100644 --- a/core/res/res/drawable-hdpi/btn_radio_off_selected.png +++ b/core/res/res/drawable-hdpi/btn_radio_off_selected.png diff --git a/core/res/res/drawable-hdpi/btn_radio_on.png b/core/res/res/drawable-hdpi/btn_radio_on.png Binary files differindex 2472c20..2472c20 100755..100644 --- a/core/res/res/drawable-hdpi/btn_radio_on.png +++ b/core/res/res/drawable-hdpi/btn_radio_on.png diff --git a/core/res/res/drawable-hdpi/btn_radio_on_pressed.png b/core/res/res/drawable-hdpi/btn_radio_on_pressed.png Binary files differindex 98d74ce..98d74ce 100755..100644 --- a/core/res/res/drawable-hdpi/btn_radio_on_pressed.png +++ b/core/res/res/drawable-hdpi/btn_radio_on_pressed.png diff --git a/core/res/res/drawable-hdpi/btn_radio_on_selected.png b/core/res/res/drawable-hdpi/btn_radio_on_selected.png Binary files differindex b6ab46c..b6ab46c 100755..100644 --- a/core/res/res/drawable-hdpi/btn_radio_on_selected.png +++ b/core/res/res/drawable-hdpi/btn_radio_on_selected.png diff --git a/core/res/res/drawable-hdpi/contact_header_bg.9.png b/core/res/res/drawable-hdpi/contact_header_bg.9.png Binary files differindex 981b2e9..981b2e9 100755..100644 --- a/core/res/res/drawable-hdpi/contact_header_bg.9.png +++ b/core/res/res/drawable-hdpi/contact_header_bg.9.png diff --git a/core/res/res/drawable-hdpi/ic_btn_round_more_disabled.png b/core/res/res/drawable-hdpi/ic_btn_round_more_disabled.png Binary files differindex 3f1176f..3f1176f 100755..100644 --- a/core/res/res/drawable-hdpi/ic_btn_round_more_disabled.png +++ b/core/res/res/drawable-hdpi/ic_btn_round_more_disabled.png diff --git a/core/res/res/drawable-hdpi/ic_btn_round_more_normal.png b/core/res/res/drawable-hdpi/ic_btn_round_more_normal.png Binary files differindex 8abda4d..8abda4d 100755..100644 --- a/core/res/res/drawable-hdpi/ic_btn_round_more_normal.png +++ b/core/res/res/drawable-hdpi/ic_btn_round_more_normal.png diff --git a/core/res/res/drawable-hdpi/ic_contact_picture_2.png b/core/res/res/drawable-hdpi/ic_contact_picture_2.png Binary files differindex 5e65276..5e65276 100755..100644 --- a/core/res/res/drawable-hdpi/ic_contact_picture_2.png +++ b/core/res/res/drawable-hdpi/ic_contact_picture_2.png diff --git a/core/res/res/drawable-hdpi/ic_contact_picture_3.png b/core/res/res/drawable-hdpi/ic_contact_picture_3.png Binary files differindex a8ec1e1..a8ec1e1 100755..100644 --- a/core/res/res/drawable-hdpi/ic_contact_picture_3.png +++ b/core/res/res/drawable-hdpi/ic_contact_picture_3.png diff --git a/core/res/res/drawable-hdpi/ic_jog_dial_sound_off.png b/core/res/res/drawable-hdpi/ic_jog_dial_sound_off.png Binary files differindex d73db48..d73db48 100755..100644 --- a/core/res/res/drawable-hdpi/ic_jog_dial_sound_off.png +++ b/core/res/res/drawable-hdpi/ic_jog_dial_sound_off.png diff --git a/core/res/res/drawable-hdpi/ic_jog_dial_sound_on.png b/core/res/res/drawable-hdpi/ic_jog_dial_sound_on.png Binary files differindex 90da6e3..90da6e3 100755..100644 --- a/core/res/res/drawable-hdpi/ic_jog_dial_sound_on.png +++ b/core/res/res/drawable-hdpi/ic_jog_dial_sound_on.png diff --git a/core/res/res/drawable-hdpi/ic_jog_dial_unlock.png b/core/res/res/drawable-hdpi/ic_jog_dial_unlock.png Binary files differindex a9af1af..a9af1af 100755..100644 --- a/core/res/res/drawable-hdpi/ic_jog_dial_unlock.png +++ b/core/res/res/drawable-hdpi/ic_jog_dial_unlock.png diff --git a/core/res/res/drawable-hdpi/ic_settings_language.png b/core/res/res/drawable-hdpi/ic_settings_language.png Binary files differindex f635b2e..f635b2e 100755..100644 --- a/core/res/res/drawable-hdpi/ic_settings_language.png +++ b/core/res/res/drawable-hdpi/ic_settings_language.png diff --git a/core/res/res/drawable-hdpi/jog_dial_arrow_long_left_green.png b/core/res/res/drawable-hdpi/jog_dial_arrow_long_left_green.png Binary files differindex f19811e..f19811e 100755..100644 --- a/core/res/res/drawable-hdpi/jog_dial_arrow_long_left_green.png +++ b/core/res/res/drawable-hdpi/jog_dial_arrow_long_left_green.png diff --git a/core/res/res/drawable-hdpi/jog_dial_arrow_long_left_yellow.png b/core/res/res/drawable-hdpi/jog_dial_arrow_long_left_yellow.png Binary files differindex 0596035..0596035 100755..100644 --- a/core/res/res/drawable-hdpi/jog_dial_arrow_long_left_yellow.png +++ b/core/res/res/drawable-hdpi/jog_dial_arrow_long_left_yellow.png diff --git a/core/res/res/drawable-hdpi/jog_dial_arrow_long_middle_yellow.png b/core/res/res/drawable-hdpi/jog_dial_arrow_long_middle_yellow.png Binary files differindex 3ab2723..3ab2723 100755..100644 --- a/core/res/res/drawable-hdpi/jog_dial_arrow_long_middle_yellow.png +++ b/core/res/res/drawable-hdpi/jog_dial_arrow_long_middle_yellow.png diff --git a/core/res/res/drawable-hdpi/jog_dial_arrow_long_right_red.png b/core/res/res/drawable-hdpi/jog_dial_arrow_long_right_red.png Binary files differindex dd6899f..dd6899f 100755..100644 --- a/core/res/res/drawable-hdpi/jog_dial_arrow_long_right_red.png +++ b/core/res/res/drawable-hdpi/jog_dial_arrow_long_right_red.png diff --git a/core/res/res/drawable-hdpi/jog_dial_arrow_long_right_yellow.png b/core/res/res/drawable-hdpi/jog_dial_arrow_long_right_yellow.png Binary files differindex 27151e0..27151e0 100755..100644 --- a/core/res/res/drawable-hdpi/jog_dial_arrow_long_right_yellow.png +++ b/core/res/res/drawable-hdpi/jog_dial_arrow_long_right_yellow.png diff --git a/core/res/res/drawable-hdpi/jog_dial_arrow_short_left.png b/core/res/res/drawable-hdpi/jog_dial_arrow_short_left.png Binary files differindex 66d49bb..66d49bb 100755..100644 --- a/core/res/res/drawable-hdpi/jog_dial_arrow_short_left.png +++ b/core/res/res/drawable-hdpi/jog_dial_arrow_short_left.png diff --git a/core/res/res/drawable-hdpi/jog_dial_arrow_short_left_and_right.png b/core/res/res/drawable-hdpi/jog_dial_arrow_short_left_and_right.png Binary files differindex c47e176..c47e176 100755..100644 --- a/core/res/res/drawable-hdpi/jog_dial_arrow_short_left_and_right.png +++ b/core/res/res/drawable-hdpi/jog_dial_arrow_short_left_and_right.png diff --git a/core/res/res/drawable-hdpi/jog_dial_arrow_short_right.png b/core/res/res/drawable-hdpi/jog_dial_arrow_short_right.png Binary files differindex f5ea157..f5ea157 100755..100644 --- a/core/res/res/drawable-hdpi/jog_dial_arrow_short_right.png +++ b/core/res/res/drawable-hdpi/jog_dial_arrow_short_right.png diff --git a/core/res/res/drawable-hdpi/jog_dial_bg.png b/core/res/res/drawable-hdpi/jog_dial_bg.png Binary files differindex 8adbfd8..8adbfd8 100755..100644 --- a/core/res/res/drawable-hdpi/jog_dial_bg.png +++ b/core/res/res/drawable-hdpi/jog_dial_bg.png diff --git a/core/res/res/drawable-hdpi/jog_dial_dimple.png b/core/res/res/drawable-hdpi/jog_dial_dimple.png Binary files differindex 0eaea91..0eaea91 100755..100644 --- a/core/res/res/drawable-hdpi/jog_dial_dimple.png +++ b/core/res/res/drawable-hdpi/jog_dial_dimple.png diff --git a/core/res/res/drawable-hdpi/jog_tab_left_confirm_gray.png b/core/res/res/drawable-hdpi/jog_tab_left_confirm_gray.png Binary files differindex 9599fb5..9599fb5 100755..100644 --- a/core/res/res/drawable-hdpi/jog_tab_left_confirm_gray.png +++ b/core/res/res/drawable-hdpi/jog_tab_left_confirm_gray.png diff --git a/core/res/res/drawable-hdpi/jog_tab_left_confirm_green.png b/core/res/res/drawable-hdpi/jog_tab_left_confirm_green.png Binary files differindex 46d9ab3..46d9ab3 100755..100644 --- a/core/res/res/drawable-hdpi/jog_tab_left_confirm_green.png +++ b/core/res/res/drawable-hdpi/jog_tab_left_confirm_green.png diff --git a/core/res/res/drawable-hdpi/jog_tab_left_confirm_red.png b/core/res/res/drawable-hdpi/jog_tab_left_confirm_red.png Binary files differindex 6c0dc0a..6c0dc0a 100755..100644 --- a/core/res/res/drawable-hdpi/jog_tab_left_confirm_red.png +++ b/core/res/res/drawable-hdpi/jog_tab_left_confirm_red.png diff --git a/core/res/res/drawable-hdpi/jog_tab_left_confirm_yellow.png b/core/res/res/drawable-hdpi/jog_tab_left_confirm_yellow.png Binary files differindex 3f9fb8f..3f9fb8f 100755..100644 --- a/core/res/res/drawable-hdpi/jog_tab_left_confirm_yellow.png +++ b/core/res/res/drawable-hdpi/jog_tab_left_confirm_yellow.png diff --git a/core/res/res/drawable-hdpi/jog_tab_left_pressed.png b/core/res/res/drawable-hdpi/jog_tab_left_pressed.png Binary files differindex ec98790..ec98790 100755..100644 --- a/core/res/res/drawable-hdpi/jog_tab_left_pressed.png +++ b/core/res/res/drawable-hdpi/jog_tab_left_pressed.png diff --git a/core/res/res/drawable-hdpi/jog_tab_right_confirm_gray.png b/core/res/res/drawable-hdpi/jog_tab_right_confirm_gray.png Binary files differindex 2861e8d..2861e8d 100755..100644 --- a/core/res/res/drawable-hdpi/jog_tab_right_confirm_gray.png +++ b/core/res/res/drawable-hdpi/jog_tab_right_confirm_gray.png diff --git a/core/res/res/drawable-hdpi/jog_tab_right_confirm_green.png b/core/res/res/drawable-hdpi/jog_tab_right_confirm_green.png Binary files differindex e974bbc..e974bbc 100755..100644 --- a/core/res/res/drawable-hdpi/jog_tab_right_confirm_green.png +++ b/core/res/res/drawable-hdpi/jog_tab_right_confirm_green.png diff --git a/core/res/res/drawable-hdpi/jog_tab_right_confirm_red.png b/core/res/res/drawable-hdpi/jog_tab_right_confirm_red.png Binary files differindex 9647fa6..9647fa6 100755..100644 --- a/core/res/res/drawable-hdpi/jog_tab_right_confirm_red.png +++ b/core/res/res/drawable-hdpi/jog_tab_right_confirm_red.png diff --git a/core/res/res/drawable-hdpi/jog_tab_right_confirm_yellow.png b/core/res/res/drawable-hdpi/jog_tab_right_confirm_yellow.png Binary files differindex ad878e1..ad878e1 100755..100644 --- a/core/res/res/drawable-hdpi/jog_tab_right_confirm_yellow.png +++ b/core/res/res/drawable-hdpi/jog_tab_right_confirm_yellow.png diff --git a/core/res/res/drawable-hdpi/jog_tab_right_pressed.png b/core/res/res/drawable-hdpi/jog_tab_right_pressed.png Binary files differindex 647e802..647e802 100755..100644 --- a/core/res/res/drawable-hdpi/jog_tab_right_pressed.png +++ b/core/res/res/drawable-hdpi/jog_tab_right_pressed.png diff --git a/core/res/res/drawable-hdpi/progressbar_indeterminate1.png b/core/res/res/drawable-hdpi/progressbar_indeterminate1.png Binary files differindex 197b34d..197b34d 100755..100644 --- a/core/res/res/drawable-hdpi/progressbar_indeterminate1.png +++ b/core/res/res/drawable-hdpi/progressbar_indeterminate1.png diff --git a/core/res/res/drawable-hdpi/progressbar_indeterminate2.png b/core/res/res/drawable-hdpi/progressbar_indeterminate2.png Binary files differindex c6cf008..c6cf008 100755..100644 --- a/core/res/res/drawable-hdpi/progressbar_indeterminate2.png +++ b/core/res/res/drawable-hdpi/progressbar_indeterminate2.png diff --git a/core/res/res/drawable-hdpi/progressbar_indeterminate3.png b/core/res/res/drawable-hdpi/progressbar_indeterminate3.png Binary files differindex bf129e0..bf129e0 100755..100644 --- a/core/res/res/drawable-hdpi/progressbar_indeterminate3.png +++ b/core/res/res/drawable-hdpi/progressbar_indeterminate3.png diff --git a/core/res/res/drawable-hdpi/stat_notify_more.png b/core/res/res/drawable-hdpi/stat_notify_more.png Binary files differindex f54b3d4..f54b3d4 100755..100644 --- a/core/res/res/drawable-hdpi/stat_notify_more.png +++ b/core/res/res/drawable-hdpi/stat_notify_more.png diff --git a/core/res/res/drawable-hdpi/stat_sys_battery_10.png b/core/res/res/drawable-hdpi/stat_sys_battery_10.png Binary files differindex 4486553..4486553 100755..100644 --- a/core/res/res/drawable-hdpi/stat_sys_battery_10.png +++ b/core/res/res/drawable-hdpi/stat_sys_battery_10.png diff --git a/core/res/res/drawable-hdpi/stat_sys_battery_20.png b/core/res/res/drawable-hdpi/stat_sys_battery_20.png Binary files differindex c8f9c92..c8f9c92 100755..100644 --- a/core/res/res/drawable-hdpi/stat_sys_battery_20.png +++ b/core/res/res/drawable-hdpi/stat_sys_battery_20.png diff --git a/core/res/res/drawable-hdpi/stat_sys_battery_40.png b/core/res/res/drawable-hdpi/stat_sys_battery_40.png Binary files differindex 441bbfb..441bbfb 100755..100644 --- a/core/res/res/drawable-hdpi/stat_sys_battery_40.png +++ b/core/res/res/drawable-hdpi/stat_sys_battery_40.png diff --git a/core/res/res/drawable-hdpi/stat_sys_battery_60.png b/core/res/res/drawable-hdpi/stat_sys_battery_60.png Binary files differindex d9467ed..d9467ed 100755..100644 --- a/core/res/res/drawable-hdpi/stat_sys_battery_60.png +++ b/core/res/res/drawable-hdpi/stat_sys_battery_60.png diff --git a/core/res/res/drawable-hdpi/stat_sys_battery_80.png b/core/res/res/drawable-hdpi/stat_sys_battery_80.png Binary files differindex e3f4805..e3f4805 100755..100644 --- a/core/res/res/drawable-hdpi/stat_sys_battery_80.png +++ b/core/res/res/drawable-hdpi/stat_sys_battery_80.png diff --git a/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim1.png b/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim1.png Binary files differindex 997feb3..997feb3 100755..100644 --- a/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim1.png +++ b/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim1.png diff --git a/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim2.png b/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim2.png Binary files differindex 426a66b..426a66b 100755..100644 --- a/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim2.png +++ b/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim2.png diff --git a/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim3.png b/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim3.png Binary files differindex 21582ca..21582ca 100755..100644 --- a/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim3.png +++ b/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim3.png diff --git a/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim4.png b/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim4.png Binary files differindex 8a94763..8a94763 100755..100644 --- a/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim4.png +++ b/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim4.png diff --git a/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim5.png b/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim5.png Binary files differindex fad0d65..fad0d65 100755..100644 --- a/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim5.png +++ b/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim5.png diff --git a/core/res/res/drawable-hdpi/stat_sys_phone_call.png b/core/res/res/drawable-hdpi/stat_sys_phone_call.png Binary files differindex 9b5f075..9b5f075 100755..100644 --- a/core/res/res/drawable-hdpi/stat_sys_phone_call.png +++ b/core/res/res/drawable-hdpi/stat_sys_phone_call.png diff --git a/core/res/res/drawable-hdpi/stat_sys_phone_call_forward.png b/core/res/res/drawable-hdpi/stat_sys_phone_call_forward.png Binary files differindex 032f8f1..032f8f1 100755..100644 --- a/core/res/res/drawable-hdpi/stat_sys_phone_call_forward.png +++ b/core/res/res/drawable-hdpi/stat_sys_phone_call_forward.png diff --git a/core/res/res/drawable-hdpi/stat_sys_phone_call_on_hold.png b/core/res/res/drawable-hdpi/stat_sys_phone_call_on_hold.png Binary files differindex 5b0a68d..5b0a68d 100755..100644 --- a/core/res/res/drawable-hdpi/stat_sys_phone_call_on_hold.png +++ b/core/res/res/drawable-hdpi/stat_sys_phone_call_on_hold.png diff --git a/core/res/res/drawable-hdpi/stat_sys_r_signal_3_cdma.png b/core/res/res/drawable-hdpi/stat_sys_r_signal_3_cdma.png Binary files differindex a3a6b6c..a3a6b6c 100755..100644 --- a/core/res/res/drawable-hdpi/stat_sys_r_signal_3_cdma.png +++ b/core/res/res/drawable-hdpi/stat_sys_r_signal_3_cdma.png diff --git a/core/res/res/drawable-hdpi/stat_sys_ra_signal_0_cdma.png b/core/res/res/drawable-hdpi/stat_sys_ra_signal_0_cdma.png Binary files differindex a2fa547..a2fa547 100755..100644 --- a/core/res/res/drawable-hdpi/stat_sys_ra_signal_0_cdma.png +++ b/core/res/res/drawable-hdpi/stat_sys_ra_signal_0_cdma.png diff --git a/core/res/res/drawable-hdpi/stat_sys_ra_signal_1_cdma.png b/core/res/res/drawable-hdpi/stat_sys_ra_signal_1_cdma.png Binary files differindex 17c8681..17c8681 100755..100644 --- a/core/res/res/drawable-hdpi/stat_sys_ra_signal_1_cdma.png +++ b/core/res/res/drawable-hdpi/stat_sys_ra_signal_1_cdma.png diff --git a/core/res/res/drawable-hdpi/stat_sys_ra_signal_2_cdma.png b/core/res/res/drawable-hdpi/stat_sys_ra_signal_2_cdma.png Binary files differindex 4a21fb6..4a21fb6 100755..100644 --- a/core/res/res/drawable-hdpi/stat_sys_ra_signal_2_cdma.png +++ b/core/res/res/drawable-hdpi/stat_sys_ra_signal_2_cdma.png diff --git a/core/res/res/drawable-hdpi/stat_sys_ra_signal_4_cdma.png b/core/res/res/drawable-hdpi/stat_sys_ra_signal_4_cdma.png Binary files differindex 5729f7d..5729f7d 100755..100644 --- a/core/res/res/drawable-hdpi/stat_sys_ra_signal_4_cdma.png +++ b/core/res/res/drawable-hdpi/stat_sys_ra_signal_4_cdma.png diff --git a/core/res/res/drawable-hdpi/stat_sys_signal_0_cdma.png b/core/res/res/drawable-hdpi/stat_sys_signal_0_cdma.png Binary files differindex af43e00..af43e00 100755..100644 --- a/core/res/res/drawable-hdpi/stat_sys_signal_0_cdma.png +++ b/core/res/res/drawable-hdpi/stat_sys_signal_0_cdma.png diff --git a/core/res/res/drawable-hdpi/stat_sys_signal_1_cdma.png b/core/res/res/drawable-hdpi/stat_sys_signal_1_cdma.png Binary files differindex 4ffe421..4ffe421 100755..100644 --- a/core/res/res/drawable-hdpi/stat_sys_signal_1_cdma.png +++ b/core/res/res/drawable-hdpi/stat_sys_signal_1_cdma.png diff --git a/core/res/res/drawable-hdpi/stat_sys_signal_2_cdma.png b/core/res/res/drawable-hdpi/stat_sys_signal_2_cdma.png Binary files differindex 6f27b96..6f27b96 100755..100644 --- a/core/res/res/drawable-hdpi/stat_sys_signal_2_cdma.png +++ b/core/res/res/drawable-hdpi/stat_sys_signal_2_cdma.png diff --git a/core/res/res/drawable-hdpi/stat_sys_signal_3_cdma.png b/core/res/res/drawable-hdpi/stat_sys_signal_3_cdma.png Binary files differindex ddc46b0..ddc46b0 100755..100644 --- a/core/res/res/drawable-hdpi/stat_sys_signal_3_cdma.png +++ b/core/res/res/drawable-hdpi/stat_sys_signal_3_cdma.png diff --git a/core/res/res/drawable-hdpi/stat_sys_signal_4_cdma.png b/core/res/res/drawable-hdpi/stat_sys_signal_4_cdma.png Binary files differindex fb3cfe9..fb3cfe9 100755..100644 --- a/core/res/res/drawable-hdpi/stat_sys_signal_4_cdma.png +++ b/core/res/res/drawable-hdpi/stat_sys_signal_4_cdma.png diff --git a/core/res/res/drawable-hdpi/stat_sys_signal_evdo_0.png b/core/res/res/drawable-hdpi/stat_sys_signal_evdo_0.png Binary files differindex b697ca4..b697ca4 100755..100644 --- a/core/res/res/drawable-hdpi/stat_sys_signal_evdo_0.png +++ b/core/res/res/drawable-hdpi/stat_sys_signal_evdo_0.png diff --git a/core/res/res/drawable-hdpi/stat_sys_signal_evdo_1.png b/core/res/res/drawable-hdpi/stat_sys_signal_evdo_1.png Binary files differindex a61de4d..a61de4d 100755..100644 --- a/core/res/res/drawable-hdpi/stat_sys_signal_evdo_1.png +++ b/core/res/res/drawable-hdpi/stat_sys_signal_evdo_1.png diff --git a/core/res/res/drawable-hdpi/stat_sys_signal_evdo_2.png b/core/res/res/drawable-hdpi/stat_sys_signal_evdo_2.png Binary files differindex 62e0393..62e0393 100755..100644 --- a/core/res/res/drawable-hdpi/stat_sys_signal_evdo_2.png +++ b/core/res/res/drawable-hdpi/stat_sys_signal_evdo_2.png diff --git a/core/res/res/drawable-hdpi/stat_sys_signal_evdo_3.png b/core/res/res/drawable-hdpi/stat_sys_signal_evdo_3.png Binary files differindex 09eae9d..09eae9d 100755..100644 --- a/core/res/res/drawable-hdpi/stat_sys_signal_evdo_3.png +++ b/core/res/res/drawable-hdpi/stat_sys_signal_evdo_3.png diff --git a/core/res/res/drawable-hdpi/stat_sys_signal_evdo_4.png b/core/res/res/drawable-hdpi/stat_sys_signal_evdo_4.png Binary files differindex 4012ac5..4012ac5 100755..100644 --- a/core/res/res/drawable-hdpi/stat_sys_signal_evdo_4.png +++ b/core/res/res/drawable-hdpi/stat_sys_signal_evdo_4.png diff --git a/core/res/res/drawable-hdpi/stat_sys_vp_phone_call.png b/core/res/res/drawable-hdpi/stat_sys_vp_phone_call.png Binary files differindex 83e8ead..83e8ead 100755..100644 --- a/core/res/res/drawable-hdpi/stat_sys_vp_phone_call.png +++ b/core/res/res/drawable-hdpi/stat_sys_vp_phone_call.png diff --git a/core/res/res/drawable-hdpi/stat_sys_vp_phone_call_on_hold.png b/core/res/res/drawable-hdpi/stat_sys_vp_phone_call_on_hold.png Binary files differindex 9731c46..9731c46 100755..100644 --- a/core/res/res/drawable-hdpi/stat_sys_vp_phone_call_on_hold.png +++ b/core/res/res/drawable-hdpi/stat_sys_vp_phone_call_on_hold.png diff --git a/core/res/res/drawable-hdpi/sym_keyboard_feedback_delete.png b/core/res/res/drawable-hdpi/sym_keyboard_feedback_delete.png Binary files differindex ca76375..ca76375 100755..100644 --- a/core/res/res/drawable-hdpi/sym_keyboard_feedback_delete.png +++ b/core/res/res/drawable-hdpi/sym_keyboard_feedback_delete.png diff --git a/core/res/res/drawable-hdpi/sym_keyboard_feedback_return.png b/core/res/res/drawable-hdpi/sym_keyboard_feedback_return.png Binary files differindex ae57299..ae57299 100755..100644 --- a/core/res/res/drawable-hdpi/sym_keyboard_feedback_return.png +++ b/core/res/res/drawable-hdpi/sym_keyboard_feedback_return.png diff --git a/core/res/res/drawable-hdpi/sym_keyboard_feedback_shift.png b/core/res/res/drawable-hdpi/sym_keyboard_feedback_shift.png Binary files differindex 4db31c8..4db31c8 100755..100644 --- a/core/res/res/drawable-hdpi/sym_keyboard_feedback_shift.png +++ b/core/res/res/drawable-hdpi/sym_keyboard_feedback_shift.png diff --git a/core/res/res/drawable-hdpi/sym_keyboard_feedback_shift_locked.png b/core/res/res/drawable-hdpi/sym_keyboard_feedback_shift_locked.png Binary files differindex 3fd5659..3fd5659 100755..100644 --- a/core/res/res/drawable-hdpi/sym_keyboard_feedback_shift_locked.png +++ b/core/res/res/drawable-hdpi/sym_keyboard_feedback_shift_locked.png diff --git a/core/res/res/drawable-hdpi/sym_keyboard_feedback_space.png b/core/res/res/drawable-hdpi/sym_keyboard_feedback_space.png Binary files differindex 98266ee..98266ee 100755..100644 --- a/core/res/res/drawable-hdpi/sym_keyboard_feedback_space.png +++ b/core/res/res/drawable-hdpi/sym_keyboard_feedback_space.png diff --git a/core/res/res/drawable-hdpi/sym_keyboard_return.png b/core/res/res/drawable-hdpi/sym_keyboard_return.png Binary files differindex 58505c5..58505c5 100755..100644 --- a/core/res/res/drawable-hdpi/sym_keyboard_return.png +++ b/core/res/res/drawable-hdpi/sym_keyboard_return.png diff --git a/core/res/res/drawable-hdpi/sym_keyboard_shift.png b/core/res/res/drawable-hdpi/sym_keyboard_shift.png Binary files differindex 8149081..8149081 100755..100644 --- a/core/res/res/drawable-hdpi/sym_keyboard_shift.png +++ b/core/res/res/drawable-hdpi/sym_keyboard_shift.png diff --git a/core/res/res/drawable-hdpi/sym_keyboard_shift_locked.png b/core/res/res/drawable-hdpi/sym_keyboard_shift_locked.png Binary files differindex 31ca277..31ca277 100755..100644 --- a/core/res/res/drawable-hdpi/sym_keyboard_shift_locked.png +++ b/core/res/res/drawable-hdpi/sym_keyboard_shift_locked.png diff --git a/core/res/res/drawable-hdpi/sym_keyboard_space.png b/core/res/res/drawable-hdpi/sym_keyboard_space.png Binary files differindex 3e98b30..3e98b30 100755..100644 --- a/core/res/res/drawable-hdpi/sym_keyboard_space.png +++ b/core/res/res/drawable-hdpi/sym_keyboard_space.png diff --git a/core/res/res/drawable-hdpi/textfield_default.9.png b/core/res/res/drawable-hdpi/textfield_default.9.png Binary files differindex f7b6e99..f7b6e99 100755..100644 --- a/core/res/res/drawable-hdpi/textfield_default.9.png +++ b/core/res/res/drawable-hdpi/textfield_default.9.png diff --git a/core/res/res/drawable-hdpi/textfield_disabled.9.png b/core/res/res/drawable-hdpi/textfield_disabled.9.png Binary files differindex 3011502..3011502 100755..100644 --- a/core/res/res/drawable-hdpi/textfield_disabled.9.png +++ b/core/res/res/drawable-hdpi/textfield_disabled.9.png diff --git a/core/res/res/drawable-hdpi/textfield_disabled_selected.9.png b/core/res/res/drawable-hdpi/textfield_disabled_selected.9.png Binary files differindex e0f82eb..e0f82eb 100755..100644 --- a/core/res/res/drawable-hdpi/textfield_disabled_selected.9.png +++ b/core/res/res/drawable-hdpi/textfield_disabled_selected.9.png diff --git a/core/res/res/drawable-hdpi/textfield_selected.9.png b/core/res/res/drawable-hdpi/textfield_selected.9.png Binary files differindex cf2cae3..cf2cae3 100755..100644 --- a/core/res/res/drawable-hdpi/textfield_selected.9.png +++ b/core/res/res/drawable-hdpi/textfield_selected.9.png diff --git a/core/res/res/drawable-ldpi/tab_focus_bar_left.9.png b/core/res/res/drawable-ldpi/tab_focus_bar_left.9.png Binary files differindex 0ee8347..0ee8347 100755..100644 --- a/core/res/res/drawable-ldpi/tab_focus_bar_left.9.png +++ b/core/res/res/drawable-ldpi/tab_focus_bar_left.9.png diff --git a/core/res/res/drawable-ldpi/tab_focus_bar_right.9.png b/core/res/res/drawable-ldpi/tab_focus_bar_right.9.png Binary files differindex 0ee8347..0ee8347 100755..100644 --- a/core/res/res/drawable-ldpi/tab_focus_bar_right.9.png +++ b/core/res/res/drawable-ldpi/tab_focus_bar_right.9.png diff --git a/core/res/res/drawable-ldpi/tab_press_bar_left.9.png b/core/res/res/drawable-ldpi/tab_press_bar_left.9.png Binary files differindex ee129ba..ee129ba 100755..100644 --- a/core/res/res/drawable-ldpi/tab_press_bar_left.9.png +++ b/core/res/res/drawable-ldpi/tab_press_bar_left.9.png diff --git a/core/res/res/drawable-ldpi/tab_press_bar_right.9.png b/core/res/res/drawable-ldpi/tab_press_bar_right.9.png Binary files differindex ee129ba..ee129ba 100755..100644 --- a/core/res/res/drawable-ldpi/tab_press_bar_right.9.png +++ b/core/res/res/drawable-ldpi/tab_press_bar_right.9.png diff --git a/core/res/res/drawable-ldpi/tab_selected_bar_left.9.png b/core/res/res/drawable-ldpi/tab_selected_bar_left.9.png Binary files differindex 03bcc13..03bcc13 100755..100644 --- a/core/res/res/drawable-ldpi/tab_selected_bar_left.9.png +++ b/core/res/res/drawable-ldpi/tab_selected_bar_left.9.png diff --git a/core/res/res/drawable-ldpi/tab_selected_bar_right.9.png b/core/res/res/drawable-ldpi/tab_selected_bar_right.9.png Binary files differindex f228445..f228445 100755..100644 --- a/core/res/res/drawable-ldpi/tab_selected_bar_right.9.png +++ b/core/res/res/drawable-ldpi/tab_selected_bar_right.9.png diff --git a/core/res/res/drawable-mdpi/btn_check_buttonless_off.png b/core/res/res/drawable-mdpi/btn_check_buttonless_off.png Binary files differindex f8972fc..f8972fc 100755..100644 --- a/core/res/res/drawable-mdpi/btn_check_buttonless_off.png +++ b/core/res/res/drawable-mdpi/btn_check_buttonless_off.png diff --git a/core/res/res/drawable-mdpi/btn_check_buttonless_on.png b/core/res/res/drawable-mdpi/btn_check_buttonless_on.png Binary files differindex a10a37a..a10a37a 100755..100644 --- a/core/res/res/drawable-mdpi/btn_check_buttonless_on.png +++ b/core/res/res/drawable-mdpi/btn_check_buttonless_on.png diff --git a/core/res/res/drawable-mdpi/btn_dialog_disable.png b/core/res/res/drawable-mdpi/btn_dialog_disable.png Binary files differindex 3de9895..3de9895 100755..100644 --- a/core/res/res/drawable-mdpi/btn_dialog_disable.png +++ b/core/res/res/drawable-mdpi/btn_dialog_disable.png diff --git a/core/res/res/drawable-mdpi/btn_dialog_normal.png b/core/res/res/drawable-mdpi/btn_dialog_normal.png Binary files differindex eca5828..eca5828 100755..100644 --- a/core/res/res/drawable-mdpi/btn_dialog_normal.png +++ b/core/res/res/drawable-mdpi/btn_dialog_normal.png diff --git a/core/res/res/drawable-mdpi/btn_dialog_pressed.png b/core/res/res/drawable-mdpi/btn_dialog_pressed.png Binary files differindex f9c4551..f9c4551 100755..100644 --- a/core/res/res/drawable-mdpi/btn_dialog_pressed.png +++ b/core/res/res/drawable-mdpi/btn_dialog_pressed.png diff --git a/core/res/res/drawable-mdpi/btn_dialog_selected.png b/core/res/res/drawable-mdpi/btn_dialog_selected.png Binary files differindex b0afd7f..b0afd7f 100755..100644 --- a/core/res/res/drawable-mdpi/btn_dialog_selected.png +++ b/core/res/res/drawable-mdpi/btn_dialog_selected.png diff --git a/core/res/res/drawable-mdpi/btn_erase_default.9.png b/core/res/res/drawable-mdpi/btn_erase_default.9.png Binary files differindex c3bf60c..c3bf60c 100755..100644 --- a/core/res/res/drawable-mdpi/btn_erase_default.9.png +++ b/core/res/res/drawable-mdpi/btn_erase_default.9.png diff --git a/core/res/res/drawable-mdpi/btn_erase_pressed.9.png b/core/res/res/drawable-mdpi/btn_erase_pressed.9.png Binary files differindex 727aafe..727aafe 100755..100644 --- a/core/res/res/drawable-mdpi/btn_erase_pressed.9.png +++ b/core/res/res/drawable-mdpi/btn_erase_pressed.9.png diff --git a/core/res/res/drawable-mdpi/btn_erase_selected.9.png b/core/res/res/drawable-mdpi/btn_erase_selected.9.png Binary files differindex c6bd020..c6bd020 100755..100644 --- a/core/res/res/drawable-mdpi/btn_erase_selected.9.png +++ b/core/res/res/drawable-mdpi/btn_erase_selected.9.png diff --git a/core/res/res/drawable-mdpi/btn_keyboard_key_pressed.9.png b/core/res/res/drawable-mdpi/btn_keyboard_key_pressed.9.png Binary files differindex 39b9314..39b9314 100755..100644 --- a/core/res/res/drawable-mdpi/btn_keyboard_key_pressed.9.png +++ b/core/res/res/drawable-mdpi/btn_keyboard_key_pressed.9.png diff --git a/core/res/res/drawable-mdpi/btn_media_player.9.png b/core/res/res/drawable-mdpi/btn_media_player.9.png Binary files differindex 3ec3f68..3ec3f68 100755..100644 --- a/core/res/res/drawable-mdpi/btn_media_player.9.png +++ b/core/res/res/drawable-mdpi/btn_media_player.9.png diff --git a/core/res/res/drawable-mdpi/btn_media_player_disabled.9.png b/core/res/res/drawable-mdpi/btn_media_player_disabled.9.png Binary files differindex e74335b..e74335b 100755..100644 --- a/core/res/res/drawable-mdpi/btn_media_player_disabled.9.png +++ b/core/res/res/drawable-mdpi/btn_media_player_disabled.9.png diff --git a/core/res/res/drawable-mdpi/btn_media_player_disabled_selected.9.png b/core/res/res/drawable-mdpi/btn_media_player_disabled_selected.9.png Binary files differindex 2c6517f..2c6517f 100755..100644 --- a/core/res/res/drawable-mdpi/btn_media_player_disabled_selected.9.png +++ b/core/res/res/drawable-mdpi/btn_media_player_disabled_selected.9.png diff --git a/core/res/res/drawable-mdpi/btn_media_player_pressed.9.png b/core/res/res/drawable-mdpi/btn_media_player_pressed.9.png Binary files differindex 40bee47..40bee47 100755..100644 --- a/core/res/res/drawable-mdpi/btn_media_player_pressed.9.png +++ b/core/res/res/drawable-mdpi/btn_media_player_pressed.9.png diff --git a/core/res/res/drawable-mdpi/btn_media_player_selected.9.png b/core/res/res/drawable-mdpi/btn_media_player_selected.9.png Binary files differindex 28d809f..28d809f 100755..100644 --- a/core/res/res/drawable-mdpi/btn_media_player_selected.9.png +++ b/core/res/res/drawable-mdpi/btn_media_player_selected.9.png diff --git a/core/res/res/drawable-mdpi/btn_star_big_off.png b/core/res/res/drawable-mdpi/btn_star_big_off.png Binary files differindex 7e9342b..7e9342b 100755..100644 --- a/core/res/res/drawable-mdpi/btn_star_big_off.png +++ b/core/res/res/drawable-mdpi/btn_star_big_off.png diff --git a/core/res/res/drawable-mdpi/btn_star_big_off_disable.png b/core/res/res/drawable-mdpi/btn_star_big_off_disable.png Binary files differindex 066d920..066d920 100755..100644 --- a/core/res/res/drawable-mdpi/btn_star_big_off_disable.png +++ b/core/res/res/drawable-mdpi/btn_star_big_off_disable.png diff --git a/core/res/res/drawable-mdpi/btn_star_big_off_disable_focused.png b/core/res/res/drawable-mdpi/btn_star_big_off_disable_focused.png Binary files differindex 1855d2c..1855d2c 100755..100644 --- a/core/res/res/drawable-mdpi/btn_star_big_off_disable_focused.png +++ b/core/res/res/drawable-mdpi/btn_star_big_off_disable_focused.png diff --git a/core/res/res/drawable-mdpi/btn_star_big_off_pressed.png b/core/res/res/drawable-mdpi/btn_star_big_off_pressed.png Binary files differindex f1b8912..f1b8912 100755..100644 --- a/core/res/res/drawable-mdpi/btn_star_big_off_pressed.png +++ b/core/res/res/drawable-mdpi/btn_star_big_off_pressed.png diff --git a/core/res/res/drawable-mdpi/btn_star_big_off_selected.png b/core/res/res/drawable-mdpi/btn_star_big_off_selected.png Binary files differindex 0be64c4..0be64c4 100755..100644 --- a/core/res/res/drawable-mdpi/btn_star_big_off_selected.png +++ b/core/res/res/drawable-mdpi/btn_star_big_off_selected.png diff --git a/core/res/res/drawable-mdpi/btn_star_big_on.png b/core/res/res/drawable-mdpi/btn_star_big_on.png Binary files differindex a9bdb05..a9bdb05 100755..100644 --- a/core/res/res/drawable-mdpi/btn_star_big_on.png +++ b/core/res/res/drawable-mdpi/btn_star_big_on.png diff --git a/core/res/res/drawable-mdpi/btn_star_big_on_disable.png b/core/res/res/drawable-mdpi/btn_star_big_on_disable.png Binary files differindex 5e65a2f..5e65a2f 100755..100644 --- a/core/res/res/drawable-mdpi/btn_star_big_on_disable.png +++ b/core/res/res/drawable-mdpi/btn_star_big_on_disable.png diff --git a/core/res/res/drawable-mdpi/btn_star_big_on_disable_focused.png b/core/res/res/drawable-mdpi/btn_star_big_on_disable_focused.png Binary files differindex de57571..de57571 100755..100644 --- a/core/res/res/drawable-mdpi/btn_star_big_on_disable_focused.png +++ b/core/res/res/drawable-mdpi/btn_star_big_on_disable_focused.png diff --git a/core/res/res/drawable-mdpi/btn_star_big_on_pressed.png b/core/res/res/drawable-mdpi/btn_star_big_on_pressed.png Binary files differindex 159a84b..159a84b 100755..100644 --- a/core/res/res/drawable-mdpi/btn_star_big_on_pressed.png +++ b/core/res/res/drawable-mdpi/btn_star_big_on_pressed.png diff --git a/core/res/res/drawable-mdpi/btn_star_big_on_selected.png b/core/res/res/drawable-mdpi/btn_star_big_on_selected.png Binary files differindex 0592d51..0592d51 100755..100644 --- a/core/res/res/drawable-mdpi/btn_star_big_on_selected.png +++ b/core/res/res/drawable-mdpi/btn_star_big_on_selected.png diff --git a/core/res/res/drawable-mdpi/dialog_divider_horizontal_light.9.png b/core/res/res/drawable-mdpi/dialog_divider_horizontal_light.9.png Binary files differindex b69619b..b69619b 100755..100644 --- a/core/res/res/drawable-mdpi/dialog_divider_horizontal_light.9.png +++ b/core/res/res/drawable-mdpi/dialog_divider_horizontal_light.9.png diff --git a/core/res/res/drawable-mdpi/frame_gallery_thumb.9.png b/core/res/res/drawable-mdpi/frame_gallery_thumb.9.png Binary files differindex 804f6f3..804f6f3 100755..100644 --- a/core/res/res/drawable-mdpi/frame_gallery_thumb.9.png +++ b/core/res/res/drawable-mdpi/frame_gallery_thumb.9.png diff --git a/core/res/res/drawable-mdpi/frame_gallery_thumb_pressed.9.png b/core/res/res/drawable-mdpi/frame_gallery_thumb_pressed.9.png Binary files differindex e1ffa06..e1ffa06 100755..100644 --- a/core/res/res/drawable-mdpi/frame_gallery_thumb_pressed.9.png +++ b/core/res/res/drawable-mdpi/frame_gallery_thumb_pressed.9.png diff --git a/core/res/res/drawable-mdpi/frame_gallery_thumb_selected.9.png b/core/res/res/drawable-mdpi/frame_gallery_thumb_selected.9.png Binary files differindex 8bae932..8bae932 100755..100644 --- a/core/res/res/drawable-mdpi/frame_gallery_thumb_selected.9.png +++ b/core/res/res/drawable-mdpi/frame_gallery_thumb_selected.9.png diff --git a/core/res/res/drawable-mdpi/gallery_selected_default.9.png b/core/res/res/drawable-mdpi/gallery_selected_default.9.png Binary files differindex 22122b2..22122b2 100755..100644 --- a/core/res/res/drawable-mdpi/gallery_selected_default.9.png +++ b/core/res/res/drawable-mdpi/gallery_selected_default.9.png diff --git a/core/res/res/drawable-mdpi/gallery_selected_focused.9.png b/core/res/res/drawable-mdpi/gallery_selected_focused.9.png Binary files differindex 1332745..1332745 100755..100644 --- a/core/res/res/drawable-mdpi/gallery_selected_focused.9.png +++ b/core/res/res/drawable-mdpi/gallery_selected_focused.9.png diff --git a/core/res/res/drawable-mdpi/gallery_selected_pressed.9.png b/core/res/res/drawable-mdpi/gallery_selected_pressed.9.png Binary files differindex 306e543..306e543 100755..100644 --- a/core/res/res/drawable-mdpi/gallery_selected_pressed.9.png +++ b/core/res/res/drawable-mdpi/gallery_selected_pressed.9.png diff --git a/core/res/res/drawable-mdpi/gallery_unselected_default.9.png b/core/res/res/drawable-mdpi/gallery_unselected_default.9.png Binary files differindex 0df06fa..0df06fa 100755..100644 --- a/core/res/res/drawable-mdpi/gallery_unselected_default.9.png +++ b/core/res/res/drawable-mdpi/gallery_unselected_default.9.png diff --git a/core/res/res/drawable-mdpi/ic_dialog_info.png b/core/res/res/drawable-mdpi/ic_dialog_info.png Binary files differindex e8b0229..e8b0229 100755..100644 --- a/core/res/res/drawable-mdpi/ic_dialog_info.png +++ b/core/res/res/drawable-mdpi/ic_dialog_info.png diff --git a/core/res/res/drawable-mdpi/ic_dialog_time.png b/core/res/res/drawable-mdpi/ic_dialog_time.png Binary files differindex dffec29..dffec29 100755..100644 --- a/core/res/res/drawable-mdpi/ic_dialog_time.png +++ b/core/res/res/drawable-mdpi/ic_dialog_time.png diff --git a/core/res/res/drawable-mdpi/ic_jog_dial_unlock.png b/core/res/res/drawable-mdpi/ic_jog_dial_unlock.png Binary files differindex e697d91..e697d91 100755..100644 --- a/core/res/res/drawable-mdpi/ic_jog_dial_unlock.png +++ b/core/res/res/drawable-mdpi/ic_jog_dial_unlock.png diff --git a/core/res/res/drawable-mdpi/ic_lock_idle_charging.png b/core/res/res/drawable-mdpi/ic_lock_idle_charging.png Binary files differindex 20d6320..20d6320 100755..100644 --- a/core/res/res/drawable-mdpi/ic_lock_idle_charging.png +++ b/core/res/res/drawable-mdpi/ic_lock_idle_charging.png diff --git a/core/res/res/drawable-mdpi/ic_lock_idle_lock.png b/core/res/res/drawable-mdpi/ic_lock_idle_lock.png Binary files differindex 0206aee..0206aee 100755..100644 --- a/core/res/res/drawable-mdpi/ic_lock_idle_lock.png +++ b/core/res/res/drawable-mdpi/ic_lock_idle_lock.png diff --git a/core/res/res/drawable-mdpi/ic_lock_idle_low_battery.png b/core/res/res/drawable-mdpi/ic_lock_idle_low_battery.png Binary files differindex bb96782..bb96782 100755..100644 --- a/core/res/res/drawable-mdpi/ic_lock_idle_low_battery.png +++ b/core/res/res/drawable-mdpi/ic_lock_idle_low_battery.png diff --git a/core/res/res/drawable-mdpi/ic_media_video_poster.png b/core/res/res/drawable-mdpi/ic_media_video_poster.png Binary files differindex f457f23..f457f23 100755..100644 --- a/core/res/res/drawable-mdpi/ic_media_video_poster.png +++ b/core/res/res/drawable-mdpi/ic_media_video_poster.png diff --git a/core/res/res/drawable-mdpi/ic_menu_add.png b/core/res/res/drawable-mdpi/ic_menu_add.png Binary files differindex 361c7c4..361c7c4 100755..100644 --- a/core/res/res/drawable-mdpi/ic_menu_add.png +++ b/core/res/res/drawable-mdpi/ic_menu_add.png diff --git a/core/res/res/drawable-mdpi/ic_menu_agenda.png b/core/res/res/drawable-mdpi/ic_menu_agenda.png Binary files differindex c63a12bf..c63a12bf 100755..100644 --- a/core/res/res/drawable-mdpi/ic_menu_agenda.png +++ b/core/res/res/drawable-mdpi/ic_menu_agenda.png diff --git a/core/res/res/drawable-mdpi/ic_menu_allfriends.png b/core/res/res/drawable-mdpi/ic_menu_allfriends.png Binary files differindex 45256d1..45256d1 100755..100644 --- a/core/res/res/drawable-mdpi/ic_menu_allfriends.png +++ b/core/res/res/drawable-mdpi/ic_menu_allfriends.png diff --git a/core/res/res/drawable-mdpi/ic_menu_camera.png b/core/res/res/drawable-mdpi/ic_menu_camera.png Binary files differindex f8cf93c..f8cf93c 100755..100644 --- a/core/res/res/drawable-mdpi/ic_menu_camera.png +++ b/core/res/res/drawable-mdpi/ic_menu_camera.png diff --git a/core/res/res/drawable-mdpi/ic_menu_crop.png b/core/res/res/drawable-mdpi/ic_menu_crop.png Binary files differindex 30e40cf..30e40cf 100755..100644 --- a/core/res/res/drawable-mdpi/ic_menu_crop.png +++ b/core/res/res/drawable-mdpi/ic_menu_crop.png diff --git a/core/res/res/drawable-mdpi/ic_menu_day.png b/core/res/res/drawable-mdpi/ic_menu_day.png Binary files differindex 88bc348..88bc348 100755..100644 --- a/core/res/res/drawable-mdpi/ic_menu_day.png +++ b/core/res/res/drawable-mdpi/ic_menu_day.png diff --git a/core/res/res/drawable-mdpi/ic_menu_delete.png b/core/res/res/drawable-mdpi/ic_menu_delete.png Binary files differindex e2c8700..e2c8700 100755..100644 --- a/core/res/res/drawable-mdpi/ic_menu_delete.png +++ b/core/res/res/drawable-mdpi/ic_menu_delete.png diff --git a/core/res/res/drawable-mdpi/ic_menu_directions.png b/core/res/res/drawable-mdpi/ic_menu_directions.png Binary files differindex d10e0b1..d10e0b1 100755..100644 --- a/core/res/res/drawable-mdpi/ic_menu_directions.png +++ b/core/res/res/drawable-mdpi/ic_menu_directions.png diff --git a/core/res/res/drawable-mdpi/ic_menu_edit.png b/core/res/res/drawable-mdpi/ic_menu_edit.png Binary files differindex d0314e9..d0314e9 100755..100644 --- a/core/res/res/drawable-mdpi/ic_menu_edit.png +++ b/core/res/res/drawable-mdpi/ic_menu_edit.png diff --git a/core/res/res/drawable-mdpi/ic_menu_gallery.png b/core/res/res/drawable-mdpi/ic_menu_gallery.png Binary files differindex d3a0200..d3a0200 100755..100644 --- a/core/res/res/drawable-mdpi/ic_menu_gallery.png +++ b/core/res/res/drawable-mdpi/ic_menu_gallery.png diff --git a/core/res/res/drawable-mdpi/ic_menu_info_details.png b/core/res/res/drawable-mdpi/ic_menu_info_details.png Binary files differindex 18b15b5..18b15b5 100755..100644 --- a/core/res/res/drawable-mdpi/ic_menu_info_details.png +++ b/core/res/res/drawable-mdpi/ic_menu_info_details.png diff --git a/core/res/res/drawable-mdpi/ic_menu_manage.png b/core/res/res/drawable-mdpi/ic_menu_manage.png Binary files differindex 8d3a9fa..8d3a9fa 100755..100644 --- a/core/res/res/drawable-mdpi/ic_menu_manage.png +++ b/core/res/res/drawable-mdpi/ic_menu_manage.png diff --git a/core/res/res/drawable-mdpi/ic_menu_month.png b/core/res/res/drawable-mdpi/ic_menu_month.png Binary files differindex ff201df..ff201df 100755..100644 --- a/core/res/res/drawable-mdpi/ic_menu_month.png +++ b/core/res/res/drawable-mdpi/ic_menu_month.png diff --git a/core/res/res/drawable-mdpi/ic_menu_my_calendar.png b/core/res/res/drawable-mdpi/ic_menu_my_calendar.png Binary files differindex 991dfb0..991dfb0 100755..100644 --- a/core/res/res/drawable-mdpi/ic_menu_my_calendar.png +++ b/core/res/res/drawable-mdpi/ic_menu_my_calendar.png diff --git a/core/res/res/drawable-mdpi/ic_menu_mylocation.png b/core/res/res/drawable-mdpi/ic_menu_mylocation.png Binary files differindex 2a61a97..2a61a97 100755..100644 --- a/core/res/res/drawable-mdpi/ic_menu_mylocation.png +++ b/core/res/res/drawable-mdpi/ic_menu_mylocation.png diff --git a/core/res/res/drawable-mdpi/ic_menu_rotate.png b/core/res/res/drawable-mdpi/ic_menu_rotate.png Binary files differindex 35fa56d..35fa56d 100755..100644 --- a/core/res/res/drawable-mdpi/ic_menu_rotate.png +++ b/core/res/res/drawable-mdpi/ic_menu_rotate.png diff --git a/core/res/res/drawable-mdpi/ic_menu_search.png b/core/res/res/drawable-mdpi/ic_menu_search.png Binary files differindex 5d3155e..5d3155e 100755..100644 --- a/core/res/res/drawable-mdpi/ic_menu_search.png +++ b/core/res/res/drawable-mdpi/ic_menu_search.png diff --git a/core/res/res/drawable-mdpi/ic_menu_search_holo_dark.png b/core/res/res/drawable-mdpi/ic_menu_search_holo_dark.png Binary files differindex 5d3155e..5d3155e 100755..100644 --- a/core/res/res/drawable-mdpi/ic_menu_search_holo_dark.png +++ b/core/res/res/drawable-mdpi/ic_menu_search_holo_dark.png diff --git a/core/res/res/drawable-mdpi/ic_menu_send.png b/core/res/res/drawable-mdpi/ic_menu_send.png Binary files differindex 06b4717..06b4717 100755..100644 --- a/core/res/res/drawable-mdpi/ic_menu_send.png +++ b/core/res/res/drawable-mdpi/ic_menu_send.png diff --git a/core/res/res/drawable-mdpi/ic_menu_set_as.png b/core/res/res/drawable-mdpi/ic_menu_set_as.png Binary files differindex 98cc305..98cc305 100755..100644 --- a/core/res/res/drawable-mdpi/ic_menu_set_as.png +++ b/core/res/res/drawable-mdpi/ic_menu_set_as.png diff --git a/core/res/res/drawable-mdpi/ic_menu_share.png b/core/res/res/drawable-mdpi/ic_menu_share.png Binary files differindex d89ca5f..d89ca5f 100755..100644 --- a/core/res/res/drawable-mdpi/ic_menu_share.png +++ b/core/res/res/drawable-mdpi/ic_menu_share.png diff --git a/core/res/res/drawable-mdpi/ic_menu_sort_by_size.png b/core/res/res/drawable-mdpi/ic_menu_sort_by_size.png Binary files differindex 19e8d1b..19e8d1b 100755..100644 --- a/core/res/res/drawable-mdpi/ic_menu_sort_by_size.png +++ b/core/res/res/drawable-mdpi/ic_menu_sort_by_size.png diff --git a/core/res/res/drawable-mdpi/ic_menu_star.png b/core/res/res/drawable-mdpi/ic_menu_star.png Binary files differindex 0c22fe8..0c22fe8 100755..100644 --- a/core/res/res/drawable-mdpi/ic_menu_star.png +++ b/core/res/res/drawable-mdpi/ic_menu_star.png diff --git a/core/res/res/drawable-mdpi/ic_menu_today.png b/core/res/res/drawable-mdpi/ic_menu_today.png Binary files differindex 8c248ae..8c248ae 100755..100644 --- a/core/res/res/drawable-mdpi/ic_menu_today.png +++ b/core/res/res/drawable-mdpi/ic_menu_today.png diff --git a/core/res/res/drawable-mdpi/ic_menu_upload.png b/core/res/res/drawable-mdpi/ic_menu_upload.png Binary files differindex 9e8459a..9e8459a 100755..100644 --- a/core/res/res/drawable-mdpi/ic_menu_upload.png +++ b/core/res/res/drawable-mdpi/ic_menu_upload.png diff --git a/core/res/res/drawable-mdpi/ic_menu_upload_you_tube.png b/core/res/res/drawable-mdpi/ic_menu_upload_you_tube.png Binary files differindex a67c409..a67c409 100755..100644 --- a/core/res/res/drawable-mdpi/ic_menu_upload_you_tube.png +++ b/core/res/res/drawable-mdpi/ic_menu_upload_you_tube.png diff --git a/core/res/res/drawable-mdpi/ic_menu_view.png b/core/res/res/drawable-mdpi/ic_menu_view.png Binary files differindex 082810d..082810d 100755..100644 --- a/core/res/res/drawable-mdpi/ic_menu_view.png +++ b/core/res/res/drawable-mdpi/ic_menu_view.png diff --git a/core/res/res/drawable-mdpi/ic_menu_week.png b/core/res/res/drawable-mdpi/ic_menu_week.png Binary files differindex e11e5f1..e11e5f1 100755..100644 --- a/core/res/res/drawable-mdpi/ic_menu_week.png +++ b/core/res/res/drawable-mdpi/ic_menu_week.png diff --git a/core/res/res/drawable-mdpi/ic_popup_reminder.png b/core/res/res/drawable-mdpi/ic_popup_reminder.png Binary files differindex af15279..af15279 100755..100644 --- a/core/res/res/drawable-mdpi/ic_popup_reminder.png +++ b/core/res/res/drawable-mdpi/ic_popup_reminder.png diff --git a/core/res/res/drawable-mdpi/ic_search_category_default.png b/core/res/res/drawable-mdpi/ic_search_category_default.png Binary files differindex 94446db..94446db 100755..100644 --- a/core/res/res/drawable-mdpi/ic_search_category_default.png +++ b/core/res/res/drawable-mdpi/ic_search_category_default.png diff --git a/core/res/res/drawable-mdpi/indicator_input_error.png b/core/res/res/drawable-mdpi/indicator_input_error.png Binary files differindex 775e417..775e417 100755..100644 --- a/core/res/res/drawable-mdpi/indicator_input_error.png +++ b/core/res/res/drawable-mdpi/indicator_input_error.png diff --git a/core/res/res/drawable-mdpi/jog_dial_arrow_long_left_green.png b/core/res/res/drawable-mdpi/jog_dial_arrow_long_left_green.png Binary files differindex 334a8e0..334a8e0 100755..100644 --- a/core/res/res/drawable-mdpi/jog_dial_arrow_long_left_green.png +++ b/core/res/res/drawable-mdpi/jog_dial_arrow_long_left_green.png diff --git a/core/res/res/drawable-mdpi/jog_dial_arrow_long_left_yellow.png b/core/res/res/drawable-mdpi/jog_dial_arrow_long_left_yellow.png Binary files differindex 2e011ca..2e011ca 100755..100644 --- a/core/res/res/drawable-mdpi/jog_dial_arrow_long_left_yellow.png +++ b/core/res/res/drawable-mdpi/jog_dial_arrow_long_left_yellow.png diff --git a/core/res/res/drawable-mdpi/jog_dial_arrow_long_middle_yellow.png b/core/res/res/drawable-mdpi/jog_dial_arrow_long_middle_yellow.png Binary files differindex 323745e..323745e 100755..100644 --- a/core/res/res/drawable-mdpi/jog_dial_arrow_long_middle_yellow.png +++ b/core/res/res/drawable-mdpi/jog_dial_arrow_long_middle_yellow.png diff --git a/core/res/res/drawable-mdpi/jog_dial_arrow_long_right_red.png b/core/res/res/drawable-mdpi/jog_dial_arrow_long_right_red.png Binary files differindex 1e97c9a..1e97c9a 100755..100644 --- a/core/res/res/drawable-mdpi/jog_dial_arrow_long_right_red.png +++ b/core/res/res/drawable-mdpi/jog_dial_arrow_long_right_red.png diff --git a/core/res/res/drawable-mdpi/jog_dial_arrow_long_right_yellow.png b/core/res/res/drawable-mdpi/jog_dial_arrow_long_right_yellow.png Binary files differindex 3536e58..3536e58 100755..100644 --- a/core/res/res/drawable-mdpi/jog_dial_arrow_long_right_yellow.png +++ b/core/res/res/drawable-mdpi/jog_dial_arrow_long_right_yellow.png diff --git a/core/res/res/drawable-mdpi/jog_dial_arrow_short_left.png b/core/res/res/drawable-mdpi/jog_dial_arrow_short_left.png Binary files differindex 4a4ab3ae..4a4ab3ae 100755..100644 --- a/core/res/res/drawable-mdpi/jog_dial_arrow_short_left.png +++ b/core/res/res/drawable-mdpi/jog_dial_arrow_short_left.png diff --git a/core/res/res/drawable-mdpi/jog_dial_arrow_short_left_and_right.png b/core/res/res/drawable-mdpi/jog_dial_arrow_short_left_and_right.png Binary files differindex 987cfa7..987cfa7 100755..100644 --- a/core/res/res/drawable-mdpi/jog_dial_arrow_short_left_and_right.png +++ b/core/res/res/drawable-mdpi/jog_dial_arrow_short_left_and_right.png diff --git a/core/res/res/drawable-mdpi/jog_dial_arrow_short_right.png b/core/res/res/drawable-mdpi/jog_dial_arrow_short_right.png Binary files differindex ee79875..ee79875 100755..100644 --- a/core/res/res/drawable-mdpi/jog_dial_arrow_short_right.png +++ b/core/res/res/drawable-mdpi/jog_dial_arrow_short_right.png diff --git a/core/res/res/drawable-mdpi/jog_dial_bg.png b/core/res/res/drawable-mdpi/jog_dial_bg.png Binary files differindex 2f8f24d..2f8f24d 100755..100644 --- a/core/res/res/drawable-mdpi/jog_dial_bg.png +++ b/core/res/res/drawable-mdpi/jog_dial_bg.png diff --git a/core/res/res/drawable-mdpi/jog_dial_dimple.png b/core/res/res/drawable-mdpi/jog_dial_dimple.png Binary files differindex 85d3a43..85d3a43 100755..100644 --- a/core/res/res/drawable-mdpi/jog_dial_dimple.png +++ b/core/res/res/drawable-mdpi/jog_dial_dimple.png diff --git a/core/res/res/drawable-mdpi/jog_tab_left_confirm_gray.png b/core/res/res/drawable-mdpi/jog_tab_left_confirm_gray.png Binary files differindex 3dce451..3dce451 100755..100644 --- a/core/res/res/drawable-mdpi/jog_tab_left_confirm_gray.png +++ b/core/res/res/drawable-mdpi/jog_tab_left_confirm_gray.png diff --git a/core/res/res/drawable-mdpi/jog_tab_left_confirm_green.png b/core/res/res/drawable-mdpi/jog_tab_left_confirm_green.png Binary files differindex 829b146..829b146 100755..100644 --- a/core/res/res/drawable-mdpi/jog_tab_left_confirm_green.png +++ b/core/res/res/drawable-mdpi/jog_tab_left_confirm_green.png diff --git a/core/res/res/drawable-mdpi/jog_tab_left_confirm_yellow.png b/core/res/res/drawable-mdpi/jog_tab_left_confirm_yellow.png Binary files differindex 5a29262..5a29262 100755..100644 --- a/core/res/res/drawable-mdpi/jog_tab_left_confirm_yellow.png +++ b/core/res/res/drawable-mdpi/jog_tab_left_confirm_yellow.png diff --git a/core/res/res/drawable-mdpi/jog_tab_left_normal.png b/core/res/res/drawable-mdpi/jog_tab_left_normal.png Binary files differindex eb91e97..eb91e97 100755..100644 --- a/core/res/res/drawable-mdpi/jog_tab_left_normal.png +++ b/core/res/res/drawable-mdpi/jog_tab_left_normal.png diff --git a/core/res/res/drawable-mdpi/jog_tab_left_pressed.png b/core/res/res/drawable-mdpi/jog_tab_left_pressed.png Binary files differindex 9951992..9951992 100755..100644 --- a/core/res/res/drawable-mdpi/jog_tab_left_pressed.png +++ b/core/res/res/drawable-mdpi/jog_tab_left_pressed.png diff --git a/core/res/res/drawable-mdpi/jog_tab_right_confirm_gray.png b/core/res/res/drawable-mdpi/jog_tab_right_confirm_gray.png Binary files differindex d446480..d446480 100755..100644 --- a/core/res/res/drawable-mdpi/jog_tab_right_confirm_gray.png +++ b/core/res/res/drawable-mdpi/jog_tab_right_confirm_gray.png diff --git a/core/res/res/drawable-mdpi/jog_tab_right_confirm_green.png b/core/res/res/drawable-mdpi/jog_tab_right_confirm_green.png Binary files differindex 96d7acb..96d7acb 100755..100644 --- a/core/res/res/drawable-mdpi/jog_tab_right_confirm_green.png +++ b/core/res/res/drawable-mdpi/jog_tab_right_confirm_green.png diff --git a/core/res/res/drawable-mdpi/jog_tab_right_confirm_yellow.png b/core/res/res/drawable-mdpi/jog_tab_right_confirm_yellow.png Binary files differindex 8224c38..8224c38 100755..100644 --- a/core/res/res/drawable-mdpi/jog_tab_right_confirm_yellow.png +++ b/core/res/res/drawable-mdpi/jog_tab_right_confirm_yellow.png diff --git a/core/res/res/drawable-mdpi/jog_tab_right_normal.png b/core/res/res/drawable-mdpi/jog_tab_right_normal.png Binary files differindex f2113f2..f2113f2 100755..100644 --- a/core/res/res/drawable-mdpi/jog_tab_right_normal.png +++ b/core/res/res/drawable-mdpi/jog_tab_right_normal.png diff --git a/core/res/res/drawable-mdpi/jog_tab_right_pressed.png b/core/res/res/drawable-mdpi/jog_tab_right_pressed.png Binary files differindex 65cd51e..65cd51e 100755..100644 --- a/core/res/res/drawable-mdpi/jog_tab_right_pressed.png +++ b/core/res/res/drawable-mdpi/jog_tab_right_pressed.png diff --git a/core/res/res/drawable-mdpi/keyboard_key_feedback_more_background.9.png b/core/res/res/drawable-mdpi/keyboard_key_feedback_more_background.9.png Binary files differindex 29aa285..29aa285 100755..100644 --- a/core/res/res/drawable-mdpi/keyboard_key_feedback_more_background.9.png +++ b/core/res/res/drawable-mdpi/keyboard_key_feedback_more_background.9.png diff --git a/core/res/res/drawable-mdpi/numberpicker_down_disabled.9.png b/core/res/res/drawable-mdpi/numberpicker_down_disabled.9.png Binary files differindex 596294b..596294b 100755..100644 --- a/core/res/res/drawable-mdpi/numberpicker_down_disabled.9.png +++ b/core/res/res/drawable-mdpi/numberpicker_down_disabled.9.png diff --git a/core/res/res/drawable-mdpi/numberpicker_down_disabled_focused.9.png b/core/res/res/drawable-mdpi/numberpicker_down_disabled_focused.9.png Binary files differindex 662cffd..662cffd 100755..100644 --- a/core/res/res/drawable-mdpi/numberpicker_down_disabled_focused.9.png +++ b/core/res/res/drawable-mdpi/numberpicker_down_disabled_focused.9.png diff --git a/core/res/res/drawable-mdpi/numberpicker_down_normal.9.png b/core/res/res/drawable-mdpi/numberpicker_down_normal.9.png Binary files differindex f17e8f9..f17e8f9 100755..100644 --- a/core/res/res/drawable-mdpi/numberpicker_down_normal.9.png +++ b/core/res/res/drawable-mdpi/numberpicker_down_normal.9.png diff --git a/core/res/res/drawable-mdpi/numberpicker_down_pressed.9.png b/core/res/res/drawable-mdpi/numberpicker_down_pressed.9.png Binary files differindex 777bcf5..777bcf5 100755..100644 --- a/core/res/res/drawable-mdpi/numberpicker_down_pressed.9.png +++ b/core/res/res/drawable-mdpi/numberpicker_down_pressed.9.png diff --git a/core/res/res/drawable-mdpi/numberpicker_down_selected.9.png b/core/res/res/drawable-mdpi/numberpicker_down_selected.9.png Binary files differindex b45db62..b45db62 100755..100644 --- a/core/res/res/drawable-mdpi/numberpicker_down_selected.9.png +++ b/core/res/res/drawable-mdpi/numberpicker_down_selected.9.png diff --git a/core/res/res/drawable-mdpi/numberpicker_input_disabled.9.png b/core/res/res/drawable-mdpi/numberpicker_input_disabled.9.png Binary files differindex f73658e..f73658e 100755..100644 --- a/core/res/res/drawable-mdpi/numberpicker_input_disabled.9.png +++ b/core/res/res/drawable-mdpi/numberpicker_input_disabled.9.png diff --git a/core/res/res/drawable-mdpi/numberpicker_input_normal.9.png b/core/res/res/drawable-mdpi/numberpicker_input_normal.9.png Binary files differindex 8032ada..8032ada 100755..100644 --- a/core/res/res/drawable-mdpi/numberpicker_input_normal.9.png +++ b/core/res/res/drawable-mdpi/numberpicker_input_normal.9.png diff --git a/core/res/res/drawable-mdpi/numberpicker_input_pressed.9.png b/core/res/res/drawable-mdpi/numberpicker_input_pressed.9.png Binary files differindex 30d8d5f..30d8d5f 100755..100644 --- a/core/res/res/drawable-mdpi/numberpicker_input_pressed.9.png +++ b/core/res/res/drawable-mdpi/numberpicker_input_pressed.9.png diff --git a/core/res/res/drawable-mdpi/numberpicker_input_selected.9.png b/core/res/res/drawable-mdpi/numberpicker_input_selected.9.png Binary files differindex 874f18f..874f18f 100755..100644 --- a/core/res/res/drawable-mdpi/numberpicker_input_selected.9.png +++ b/core/res/res/drawable-mdpi/numberpicker_input_selected.9.png diff --git a/core/res/res/drawable-mdpi/numberpicker_up_disabled.9.png b/core/res/res/drawable-mdpi/numberpicker_up_disabled.9.png Binary files differindex 327b0b5..327b0b5 100755..100644 --- a/core/res/res/drawable-mdpi/numberpicker_up_disabled.9.png +++ b/core/res/res/drawable-mdpi/numberpicker_up_disabled.9.png diff --git a/core/res/res/drawable-mdpi/numberpicker_up_disabled_focused.9.png b/core/res/res/drawable-mdpi/numberpicker_up_disabled_focused.9.png Binary files differindex 4c96680..4c96680 100755..100644 --- a/core/res/res/drawable-mdpi/numberpicker_up_disabled_focused.9.png +++ b/core/res/res/drawable-mdpi/numberpicker_up_disabled_focused.9.png diff --git a/core/res/res/drawable-mdpi/numberpicker_up_normal.9.png b/core/res/res/drawable-mdpi/numberpicker_up_normal.9.png Binary files differindex dcd26e0..dcd26e0 100755..100644 --- a/core/res/res/drawable-mdpi/numberpicker_up_normal.9.png +++ b/core/res/res/drawable-mdpi/numberpicker_up_normal.9.png diff --git a/core/res/res/drawable-mdpi/numberpicker_up_pressed.9.png b/core/res/res/drawable-mdpi/numberpicker_up_pressed.9.png Binary files differindex 7dac778..7dac778 100755..100644 --- a/core/res/res/drawable-mdpi/numberpicker_up_pressed.9.png +++ b/core/res/res/drawable-mdpi/numberpicker_up_pressed.9.png diff --git a/core/res/res/drawable-mdpi/numberpicker_up_selected.9.png b/core/res/res/drawable-mdpi/numberpicker_up_selected.9.png Binary files differindex 35dae8e..35dae8e 100755..100644 --- a/core/res/res/drawable-mdpi/numberpicker_up_selected.9.png +++ b/core/res/res/drawable-mdpi/numberpicker_up_selected.9.png diff --git a/core/res/res/drawable-mdpi/scrollbar_handle_horizontal.9.png b/core/res/res/drawable-mdpi/scrollbar_handle_horizontal.9.png Binary files differindex 8584d1f..8584d1f 100755..100644 --- a/core/res/res/drawable-mdpi/scrollbar_handle_horizontal.9.png +++ b/core/res/res/drawable-mdpi/scrollbar_handle_horizontal.9.png diff --git a/core/res/res/drawable-mdpi/scrollbar_handle_vertical.9.png b/core/res/res/drawable-mdpi/scrollbar_handle_vertical.9.png Binary files differindex 331a05d..331a05d 100755..100644 --- a/core/res/res/drawable-mdpi/scrollbar_handle_vertical.9.png +++ b/core/res/res/drawable-mdpi/scrollbar_handle_vertical.9.png diff --git a/core/res/res/drawable-mdpi/search_plate.9.png b/core/res/res/drawable-mdpi/search_plate.9.png Binary files differindex 8c42f10..8c42f10 100755..100644 --- a/core/res/res/drawable-mdpi/search_plate.9.png +++ b/core/res/res/drawable-mdpi/search_plate.9.png diff --git a/core/res/res/drawable-mdpi/spinner_black_20.png b/core/res/res/drawable-mdpi/spinner_black_20.png Binary files differindex 86d7a20..86d7a20 100755..100644 --- a/core/res/res/drawable-mdpi/spinner_black_20.png +++ b/core/res/res/drawable-mdpi/spinner_black_20.png diff --git a/core/res/res/drawable-mdpi/sym_keyboard_feedback_shift_locked.png b/core/res/res/drawable-mdpi/sym_keyboard_feedback_shift_locked.png Binary files differindex 7194b30..7194b30 100755..100644 --- a/core/res/res/drawable-mdpi/sym_keyboard_feedback_shift_locked.png +++ b/core/res/res/drawable-mdpi/sym_keyboard_feedback_shift_locked.png diff --git a/core/res/res/drawable-mdpi/tab_focus.9.png b/core/res/res/drawable-mdpi/tab_focus.9.png Binary files differindex d9bcc57..d9bcc57 100755..100644 --- a/core/res/res/drawable-mdpi/tab_focus.9.png +++ b/core/res/res/drawable-mdpi/tab_focus.9.png diff --git a/core/res/res/drawable-mdpi/tab_focus_bar_left.9.png b/core/res/res/drawable-mdpi/tab_focus_bar_left.9.png Binary files differindex 2536d94..2536d94 100755..100644 --- a/core/res/res/drawable-mdpi/tab_focus_bar_left.9.png +++ b/core/res/res/drawable-mdpi/tab_focus_bar_left.9.png diff --git a/core/res/res/drawable-mdpi/tab_focus_bar_right.9.png b/core/res/res/drawable-mdpi/tab_focus_bar_right.9.png Binary files differindex 2536d94..2536d94 100755..100644 --- a/core/res/res/drawable-mdpi/tab_focus_bar_right.9.png +++ b/core/res/res/drawable-mdpi/tab_focus_bar_right.9.png diff --git a/core/res/res/drawable-mdpi/tab_press.9.png b/core/res/res/drawable-mdpi/tab_press.9.png Binary files differindex 3332660..3332660 100755..100644 --- a/core/res/res/drawable-mdpi/tab_press.9.png +++ b/core/res/res/drawable-mdpi/tab_press.9.png diff --git a/core/res/res/drawable-mdpi/tab_press_bar_left.9.png b/core/res/res/drawable-mdpi/tab_press_bar_left.9.png Binary files differindex d2c75e3..d2c75e3 100755..100644 --- a/core/res/res/drawable-mdpi/tab_press_bar_left.9.png +++ b/core/res/res/drawable-mdpi/tab_press_bar_left.9.png diff --git a/core/res/res/drawable-mdpi/tab_press_bar_right.9.png b/core/res/res/drawable-mdpi/tab_press_bar_right.9.png Binary files differindex d2c75e3..d2c75e3 100755..100644 --- a/core/res/res/drawable-mdpi/tab_press_bar_right.9.png +++ b/core/res/res/drawable-mdpi/tab_press_bar_right.9.png diff --git a/core/res/res/drawable-mdpi/tab_selected_bar_left.9.png b/core/res/res/drawable-mdpi/tab_selected_bar_left.9.png Binary files differindex d20f3a2..d20f3a2 100755..100644 --- a/core/res/res/drawable-mdpi/tab_selected_bar_left.9.png +++ b/core/res/res/drawable-mdpi/tab_selected_bar_left.9.png diff --git a/core/res/res/drawable-mdpi/tab_selected_bar_right.9.png b/core/res/res/drawable-mdpi/tab_selected_bar_right.9.png Binary files differindex d20f3a2..d20f3a2 100755..100644 --- a/core/res/res/drawable-mdpi/tab_selected_bar_right.9.png +++ b/core/res/res/drawable-mdpi/tab_selected_bar_right.9.png diff --git a/core/res/res/drawable-mdpi/textfield_search_default.9.png b/core/res/res/drawable-mdpi/textfield_search_default.9.png Binary files differindex 7dc5b27..7dc5b27 100755..100644 --- a/core/res/res/drawable-mdpi/textfield_search_default.9.png +++ b/core/res/res/drawable-mdpi/textfield_search_default.9.png diff --git a/core/res/res/drawable-mdpi/textfield_search_selected.9.png b/core/res/res/drawable-mdpi/textfield_search_selected.9.png Binary files differindex a9fd3b2..a9fd3b2 100755..100644 --- a/core/res/res/drawable-mdpi/textfield_search_selected.9.png +++ b/core/res/res/drawable-mdpi/textfield_search_selected.9.png diff --git a/core/res/res/drawable-mdpi/toast_frame.9.png b/core/res/res/drawable-mdpi/toast_frame.9.png Binary files differindex b9105de..b9105de 100755..100644 --- a/core/res/res/drawable-mdpi/toast_frame.9.png +++ b/core/res/res/drawable-mdpi/toast_frame.9.png diff --git a/core/res/res/layout/app_perms_summary.xml b/core/res/res/layout/app_perms_summary.xml index b8d93ac..b8d93ac 100755..100644 --- a/core/res/res/layout/app_perms_summary.xml +++ b/core/res/res/layout/app_perms_summary.xml diff --git a/core/res/res/layout/media_controller.xml b/core/res/res/layout/media_controller.xml index ad74a3a..7575836 100644 --- a/core/res/res/layout/media_controller.xml +++ b/core/res/res/layout/media_controller.xml @@ -48,7 +48,8 @@ android:layout_gravity="center_horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:paddingEnd="4dip" /> + android:paddingEnd="4dip" + android:textColor="@color/dim_foreground_dark" /> <SeekBar android:id="@+id/mediacontroller_progress" @@ -67,7 +68,8 @@ android:layout_gravity="center_horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:paddingStart="4dip" /> + android:paddingStart="4dip" + android:textColor="@color/dim_foreground_dark" /> </LinearLayout> </LinearLayout> diff --git a/core/res/res/raw/fallbackring.ogg b/core/res/res/raw/fallbackring.ogg Binary files differindex a9adeb8..a9adeb8 100755..100644 --- a/core/res/res/raw/fallbackring.ogg +++ b/core/res/res/raw/fallbackring.ogg diff --git a/core/res/res/values-mcc208-mnc01/config.xml b/core/res/res/values-mcc208-mnc01/config.xml index c1489b1..c1489b1 100755..100644 --- a/core/res/res/values-mcc208-mnc01/config.xml +++ b/core/res/res/values-mcc208-mnc01/config.xml diff --git a/core/res/res/values-mcc208-mnc10/config.xml b/core/res/res/values-mcc208-mnc10/config.xml index 99cc599..99cc599 100755..100644 --- a/core/res/res/values-mcc208-mnc10/config.xml +++ b/core/res/res/values-mcc208-mnc10/config.xml diff --git a/core/res/res/values-mcc214-mnc03/config.xml b/core/res/res/values-mcc214-mnc03/config.xml index 02f1475..02f1475 100755..100644 --- a/core/res/res/values-mcc214-mnc03/config.xml +++ b/core/res/res/values-mcc214-mnc03/config.xml diff --git a/core/res/res/values-mcc214-mnc07/config.xml b/core/res/res/values-mcc214-mnc07/config.xml index 4e3fa16..4e3fa16 100755..100644 --- a/core/res/res/values-mcc214-mnc07/config.xml +++ b/core/res/res/values-mcc214-mnc07/config.xml diff --git a/core/res/res/values-mcc222-mnc01/config.xml b/core/res/res/values-mcc222-mnc01/config.xml index 6bb1196..6bb1196 100755..100644 --- a/core/res/res/values-mcc222-mnc01/config.xml +++ b/core/res/res/values-mcc222-mnc01/config.xml diff --git a/core/res/res/values-mcc222-mnc10/config.xml b/core/res/res/values-mcc222-mnc10/config.xml index 24dd71c..24dd71c 100755..100644 --- a/core/res/res/values-mcc222-mnc10/config.xml +++ b/core/res/res/values-mcc222-mnc10/config.xml diff --git a/core/res/res/values-mcc234-mnc33/config.xml b/core/res/res/values-mcc234-mnc33/config.xml index d79d212..d79d212 100755..100644 --- a/core/res/res/values-mcc234-mnc33/config.xml +++ b/core/res/res/values-mcc234-mnc33/config.xml diff --git a/core/res/res/values-mcc302-mnc370/config.xml b/core/res/res/values-mcc302-mnc370/config.xml index b1d363f..b1d363f 100755..100644 --- a/core/res/res/values-mcc302-mnc370/config.xml +++ b/core/res/res/values-mcc302-mnc370/config.xml diff --git a/core/res/res/values-mcc302-mnc660/config.xml b/core/res/res/values-mcc302-mnc660/config.xml index 37853cf..37853cf 100755..100644 --- a/core/res/res/values-mcc302-mnc660/config.xml +++ b/core/res/res/values-mcc302-mnc660/config.xml diff --git a/core/res/res/values-mcc302-mnc720/config.xml b/core/res/res/values-mcc302-mnc720/config.xml index 40ef939..40ef939 100755..100644 --- a/core/res/res/values-mcc302-mnc720/config.xml +++ b/core/res/res/values-mcc302-mnc720/config.xml diff --git a/core/res/res/values-mcc340-mnc01/config.xml b/core/res/res/values-mcc340-mnc01/config.xml index fb71f3bc..fb71f3bc 100755..100644 --- a/core/res/res/values-mcc340-mnc01/config.xml +++ b/core/res/res/values-mcc340-mnc01/config.xml diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml index 48ee429..48ee429 100755..100644 --- a/core/res/res/values/attrs.xml +++ b/core/res/res/values/attrs.xml diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index 66c23a0..66c23a0 100755..100644 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml index 80c2a13..d1a7703 100755..100644 --- a/core/res/res/values/strings.xml +++ b/core/res/res/values/strings.xml @@ -2272,6 +2272,8 @@ <!-- Accessibility description sent when user completes drawing a pattern. [CHAR LIMIT=NONE] --> <string name="lockscreen_access_pattern_detected">Pattern completed</string> + <!-- Accessibility description sent when user changes the current lock screen widget. [CHAR_LIMIT=none] --> + <string name="keyguard_accessibility_widget_changed">%1$s. Widget %2$d of %3$d.</string> <!-- Accessibility description of the add widget button. [CHAR_LIMIT=none] --> <string name="keyguard_accessibility_add_widget">Add widget.</string> <!-- Accessibility description of the empty sidget slot (place holder for a new widget). [CHAR_LIMIT=none] --> diff --git a/core/res/res/xml-land/password_kbd_qwerty.xml b/core/res/res/xml-land/password_kbd_qwerty.xml index 988f9ff..988f9ff 100755..100644 --- a/core/res/res/xml-land/password_kbd_qwerty.xml +++ b/core/res/res/xml-land/password_kbd_qwerty.xml diff --git a/core/res/res/xml-land/password_kbd_qwerty_shifted.xml b/core/res/res/xml-land/password_kbd_qwerty_shifted.xml index 4941946..4941946 100755..100644 --- a/core/res/res/xml-land/password_kbd_qwerty_shifted.xml +++ b/core/res/res/xml-land/password_kbd_qwerty_shifted.xml diff --git a/core/res/res/xml-mdpi/password_kbd_qwerty.xml b/core/res/res/xml-mdpi/password_kbd_qwerty.xml index 265d7dc..265d7dc 100755..100644 --- a/core/res/res/xml-mdpi/password_kbd_qwerty.xml +++ b/core/res/res/xml-mdpi/password_kbd_qwerty.xml diff --git a/core/res/res/xml-mdpi/password_kbd_qwerty_shifted.xml b/core/res/res/xml-mdpi/password_kbd_qwerty_shifted.xml index 7379f69..7379f69 100755..100644 --- a/core/res/res/xml-mdpi/password_kbd_qwerty_shifted.xml +++ b/core/res/res/xml-mdpi/password_kbd_qwerty_shifted.xml diff --git a/core/res/res/xml-xlarge/password_kbd_numeric.xml b/core/res/res/xml-xlarge/password_kbd_numeric.xml index b2704f6..b2704f6 100755..100644 --- a/core/res/res/xml-xlarge/password_kbd_numeric.xml +++ b/core/res/res/xml-xlarge/password_kbd_numeric.xml diff --git a/core/res/res/xml-xlarge/password_kbd_qwerty.xml b/core/res/res/xml-xlarge/password_kbd_qwerty.xml index 76b6019..76b6019 100755..100644 --- a/core/res/res/xml-xlarge/password_kbd_qwerty.xml +++ b/core/res/res/xml-xlarge/password_kbd_qwerty.xml diff --git a/core/res/res/xml-xlarge/password_kbd_qwerty_shifted.xml b/core/res/res/xml-xlarge/password_kbd_qwerty_shifted.xml index 35c3142..35c3142 100755..100644 --- a/core/res/res/xml-xlarge/password_kbd_qwerty_shifted.xml +++ b/core/res/res/xml-xlarge/password_kbd_qwerty_shifted.xml diff --git a/core/res/res/xml-xlarge/password_kbd_symbols.xml b/core/res/res/xml-xlarge/password_kbd_symbols.xml index 106dd6e..106dd6e 100755..100644 --- a/core/res/res/xml-xlarge/password_kbd_symbols.xml +++ b/core/res/res/xml-xlarge/password_kbd_symbols.xml diff --git a/core/res/res/xml-xlarge/password_kbd_symbols_shift.xml b/core/res/res/xml-xlarge/password_kbd_symbols_shift.xml index 1233f78..1233f78 100755..100644 --- a/core/res/res/xml-xlarge/password_kbd_symbols_shift.xml +++ b/core/res/res/xml-xlarge/password_kbd_symbols_shift.xml diff --git a/core/res/res/xml/password_kbd_extension.xml b/core/res/res/xml/password_kbd_extension.xml index e8d61fe..e8d61fe 100755..100644 --- a/core/res/res/xml/password_kbd_extension.xml +++ b/core/res/res/xml/password_kbd_extension.xml diff --git a/core/res/res/xml/password_kbd_numeric.xml b/core/res/res/xml/password_kbd_numeric.xml index 7593ad8..7593ad8 100755..100644 --- a/core/res/res/xml/password_kbd_numeric.xml +++ b/core/res/res/xml/password_kbd_numeric.xml diff --git a/core/res/res/xml/password_kbd_qwerty.xml b/core/res/res/xml/password_kbd_qwerty.xml index dfe581e..dfe581e 100755..100644 --- a/core/res/res/xml/password_kbd_qwerty.xml +++ b/core/res/res/xml/password_kbd_qwerty.xml diff --git a/core/res/res/xml/password_kbd_qwerty_shifted.xml b/core/res/res/xml/password_kbd_qwerty_shifted.xml index 1366c58..1366c58 100755..100644 --- a/core/res/res/xml/password_kbd_qwerty_shifted.xml +++ b/core/res/res/xml/password_kbd_qwerty_shifted.xml diff --git a/core/res/res/xml/password_kbd_symbols.xml b/core/res/res/xml/password_kbd_symbols.xml index 5876b0d..5876b0d 100755..100644 --- a/core/res/res/xml/password_kbd_symbols.xml +++ b/core/res/res/xml/password_kbd_symbols.xml diff --git a/core/res/res/xml/password_kbd_symbols_shift.xml b/core/res/res/xml/password_kbd_symbols_shift.xml index ee83544..ee83544 100755..100644 --- a/core/res/res/xml/password_kbd_symbols_shift.xml +++ b/core/res/res/xml/password_kbd_symbols_shift.xml diff --git a/core/tests/ConnectivityManagerTest/assets/accesspoints.xml b/core/tests/ConnectivityManagerTest/assets/accesspoints.xml index 5e3252c..5e3252c 100755..100644 --- a/core/tests/ConnectivityManagerTest/assets/accesspoints.xml +++ b/core/tests/ConnectivityManagerTest/assets/accesspoints.xml diff --git a/core/tests/coretests/src/android/content/pm/AppCacheTest.java b/core/tests/coretests/src/android/content/pm/AppCacheTest.java index aae55e8..aae55e8 100755..100644 --- a/core/tests/coretests/src/android/content/pm/AppCacheTest.java +++ b/core/tests/coretests/src/android/content/pm/AppCacheTest.java diff --git a/core/tests/coretests/src/android/content/pm/PackageManagerTests.java b/core/tests/coretests/src/android/content/pm/PackageManagerTests.java index 04f8009..04f8009 100755..100644 --- a/core/tests/coretests/src/android/content/pm/PackageManagerTests.java +++ b/core/tests/coretests/src/android/content/pm/PackageManagerTests.java diff --git a/core/tests/coretests/src/android/os/storage/AsecTests.java b/core/tests/coretests/src/android/os/storage/AsecTests.java index abb8eae..abb8eae 100755..100644 --- a/core/tests/coretests/src/android/os/storage/AsecTests.java +++ b/core/tests/coretests/src/android/os/storage/AsecTests.java diff --git a/core/tests/coretests/src/android/widget/listview/focus/ListWithEditTextHeaderTest.java b/core/tests/coretests/src/android/widget/listview/focus/ListWithEditTextHeaderTest.java index b9051e9..532b9d1 100644 --- a/core/tests/coretests/src/android/widget/listview/focus/ListWithEditTextHeaderTest.java +++ b/core/tests/coretests/src/android/widget/listview/focus/ListWithEditTextHeaderTest.java @@ -22,6 +22,7 @@ import android.test.TouchUtils; import android.test.suitebuilder.annotation.LargeTest; import android.test.suitebuilder.annotation.MediumTest; import android.view.KeyEvent; +import android.view.View; import android.widget.AbsListView; import android.widget.ListView; import android.widget.listview.ListWithEditTextHeader; @@ -63,4 +64,22 @@ public class ListWithEditTextHeaderTest extends ActivityInstrumentationTestCase2 assertTrue("header does not have focus", mListView.getChildAt(0).isFocused()); assertEquals("something is selected", AbsListView.INVALID_POSITION, mListView.getSelectedItemPosition()); } + + @LargeTest + public void testScrollingDoesNotDetachHeaderViewFromWindow() { + View header = mListView.getChildAt(0); + assertNotNull("header is not attached to a window (?!)", header.getWindowToken()); + + // Scroll header off the screen and back onto the screen + int numItemsOnScreen = mListView.getChildCount(); + for (int i = 0; i < numItemsOnScreen; i++) { + sendKeys(KeyEvent.KEYCODE_DPAD_DOWN); + } + for (int i = 0; i < numItemsOnScreen; i++) { + sendKeys(KeyEvent.KEYCODE_DPAD_UP); + } + + // Make sure the header was not accidentally left detached from its window + assertNotNull("header has lost its window", header.getWindowToken()); + } } diff --git a/data/fonts/DroidSansJapanese.ttf b/data/fonts/DroidSansJapanese.ttf Binary files differindex 412fa3d..412fa3d 100755..100644 --- a/data/fonts/DroidSansJapanese.ttf +++ b/data/fonts/DroidSansJapanese.ttf diff --git a/data/sounds/AudioPackage5.mk b/data/sounds/AudioPackage5.mk index 5961f06..5961f06 100755..100644 --- a/data/sounds/AudioPackage5.mk +++ b/data/sounds/AudioPackage5.mk diff --git a/data/sounds/AudioPackage6.mk b/data/sounds/AudioPackage6.mk index d113a29..d113a29 100755..100644 --- a/data/sounds/AudioPackage6.mk +++ b/data/sounds/AudioPackage6.mk diff --git a/data/sounds/AudioPackage7.mk b/data/sounds/AudioPackage7.mk index 6ae624e..6ae624e 100755..100644 --- a/data/sounds/AudioPackage7.mk +++ b/data/sounds/AudioPackage7.mk diff --git a/data/sounds/AudioPackage7alt.mk b/data/sounds/AudioPackage7alt.mk index 11409f2..11409f2 100755..100644 --- a/data/sounds/AudioPackage7alt.mk +++ b/data/sounds/AudioPackage7alt.mk diff --git a/data/sounds/alarms/ogg-jp/Argon.ogg b/data/sounds/alarms/ogg-jp/Argon.ogg Binary files differindex 2ff6600..2ff6600 100755..100644 --- a/data/sounds/alarms/ogg-jp/Argon.ogg +++ b/data/sounds/alarms/ogg-jp/Argon.ogg diff --git a/data/sounds/alarms/ogg-jp/Carbon.ogg b/data/sounds/alarms/ogg-jp/Carbon.ogg Binary files differindex c994f28..c994f28 100755..100644 --- a/data/sounds/alarms/ogg-jp/Carbon.ogg +++ b/data/sounds/alarms/ogg-jp/Carbon.ogg diff --git a/data/sounds/alarms/ogg-jp/Helium.ogg b/data/sounds/alarms/ogg-jp/Helium.ogg Binary files differindex 94f13ce..94f13ce 100755..100644 --- a/data/sounds/alarms/ogg-jp/Helium.ogg +++ b/data/sounds/alarms/ogg-jp/Helium.ogg diff --git a/data/sounds/alarms/ogg-jp/Krypton.ogg b/data/sounds/alarms/ogg-jp/Krypton.ogg Binary files differindex 48f956b..48f956b 100755..100644 --- a/data/sounds/alarms/ogg-jp/Krypton.ogg +++ b/data/sounds/alarms/ogg-jp/Krypton.ogg diff --git a/data/sounds/alarms/ogg-jp/Neon.ogg b/data/sounds/alarms/ogg-jp/Neon.ogg Binary files differindex 3089a27..3089a27 100755..100644 --- a/data/sounds/alarms/ogg-jp/Neon.ogg +++ b/data/sounds/alarms/ogg-jp/Neon.ogg diff --git a/data/sounds/alarms/ogg-jp/Oxygen.ogg b/data/sounds/alarms/ogg-jp/Oxygen.ogg Binary files differindex 4dc8ade..4dc8ade 100755..100644 --- a/data/sounds/alarms/ogg-jp/Oxygen.ogg +++ b/data/sounds/alarms/ogg-jp/Oxygen.ogg diff --git a/data/sounds/effects/ogg/KeypressDelete.ogg b/data/sounds/effects/ogg/KeypressDelete.ogg Binary files differindex 38c3244..38c3244 100755..100644 --- a/data/sounds/effects/ogg/KeypressDelete.ogg +++ b/data/sounds/effects/ogg/KeypressDelete.ogg diff --git a/data/sounds/effects/ogg/KeypressReturn.ogg b/data/sounds/effects/ogg/KeypressReturn.ogg Binary files differindex 1bd5b73..1bd5b73 100755..100644 --- a/data/sounds/effects/ogg/KeypressReturn.ogg +++ b/data/sounds/effects/ogg/KeypressReturn.ogg diff --git a/data/sounds/effects/ogg/KeypressSpacebar.ogg b/data/sounds/effects/ogg/KeypressSpacebar.ogg Binary files differindex 3a83594..3a83594 100755..100644 --- a/data/sounds/effects/ogg/KeypressSpacebar.ogg +++ b/data/sounds/effects/ogg/KeypressSpacebar.ogg diff --git a/data/sounds/effects/ogg/KeypressStandard.ogg b/data/sounds/effects/ogg/KeypressStandard.ogg Binary files differindex 4b8d128..4b8d128 100755..100644 --- a/data/sounds/effects/ogg/KeypressStandard.ogg +++ b/data/sounds/effects/ogg/KeypressStandard.ogg diff --git a/data/sounds/notifications/aidos.ogg b/data/sounds/notifications/aidos.ogg Binary files differindex d2aec75..d2aec75 100755..100644 --- a/data/sounds/notifications/aidos.ogg +++ b/data/sounds/notifications/aidos.ogg diff --git a/data/sounds/notifications/circios.ogg b/data/sounds/notifications/circios.ogg Binary files differindex 68a1871..68a1871 100755..100644 --- a/data/sounds/notifications/circios.ogg +++ b/data/sounds/notifications/circios.ogg diff --git a/data/sounds/notifications/horkos.ogg b/data/sounds/notifications/horkos.ogg Binary files differindex 171b3cb..171b3cb 100755..100644 --- a/data/sounds/notifications/horkos.ogg +++ b/data/sounds/notifications/horkos.ogg diff --git a/data/sounds/notifications/hypnos1.ogg b/data/sounds/notifications/hypnos1.ogg Binary files differindex 4a7fc26..4a7fc26 100755..100644 --- a/data/sounds/notifications/hypnos1.ogg +++ b/data/sounds/notifications/hypnos1.ogg diff --git a/data/sounds/notifications/kratos1.ogg b/data/sounds/notifications/kratos1.ogg Binary files differindex 3e1fe64..3e1fe64 100755..100644 --- a/data/sounds/notifications/kratos1.ogg +++ b/data/sounds/notifications/kratos1.ogg diff --git a/data/sounds/notifications/kratos2.ogg b/data/sounds/notifications/kratos2.ogg Binary files differindex 93d3149e..93d3149e 100755..100644 --- a/data/sounds/notifications/kratos2.ogg +++ b/data/sounds/notifications/kratos2.ogg diff --git a/data/sounds/notifications/nomos1.ogg b/data/sounds/notifications/nomos1.ogg Binary files differindex 5eb719a..5eb719a 100755..100644 --- a/data/sounds/notifications/nomos1.ogg +++ b/data/sounds/notifications/nomos1.ogg diff --git a/data/sounds/notifications/nomos2.ogg b/data/sounds/notifications/nomos2.ogg Binary files differindex 544cb4c..544cb4c 100755..100644 --- a/data/sounds/notifications/nomos2.ogg +++ b/data/sounds/notifications/nomos2.ogg diff --git a/data/sounds/notifications/ogg/Adara.ogg b/data/sounds/notifications/ogg/Adara.ogg Binary files differindex e87f379..e87f379 100755..100644 --- a/data/sounds/notifications/ogg/Adara.ogg +++ b/data/sounds/notifications/ogg/Adara.ogg diff --git a/data/sounds/notifications/ogg/Argon.ogg b/data/sounds/notifications/ogg/Argon.ogg Binary files differindex e58b3b6..e58b3b6 100755..100644 --- a/data/sounds/notifications/ogg/Argon.ogg +++ b/data/sounds/notifications/ogg/Argon.ogg diff --git a/data/sounds/notifications/ogg/Beryllium.ogg b/data/sounds/notifications/ogg/Beryllium.ogg Binary files differindex 2c5b4fe..2c5b4fe 100755..100644 --- a/data/sounds/notifications/ogg/Beryllium.ogg +++ b/data/sounds/notifications/ogg/Beryllium.ogg diff --git a/data/sounds/notifications/ogg/Capella.ogg b/data/sounds/notifications/ogg/Capella.ogg Binary files differindex 88a955d..88a955d 100755..100644 --- a/data/sounds/notifications/ogg/Capella.ogg +++ b/data/sounds/notifications/ogg/Capella.ogg diff --git a/data/sounds/notifications/ogg/Cobalt.ogg b/data/sounds/notifications/ogg/Cobalt.ogg Binary files differindex b6e253a..b6e253a 100755..100644 --- a/data/sounds/notifications/ogg/Cobalt.ogg +++ b/data/sounds/notifications/ogg/Cobalt.ogg diff --git a/data/sounds/notifications/ogg/Fluorine.ogg b/data/sounds/notifications/ogg/Fluorine.ogg Binary files differindex fd884f5..fd884f5 100755..100644 --- a/data/sounds/notifications/ogg/Fluorine.ogg +++ b/data/sounds/notifications/ogg/Fluorine.ogg diff --git a/data/sounds/notifications/ogg/Gallium.ogg b/data/sounds/notifications/ogg/Gallium.ogg Binary files differindex 3c7e115..3c7e115 100755..100644 --- a/data/sounds/notifications/ogg/Gallium.ogg +++ b/data/sounds/notifications/ogg/Gallium.ogg diff --git a/data/sounds/notifications/ogg/Polaris.ogg b/data/sounds/notifications/ogg/Polaris.ogg Binary files differindex 0f63a65..0f63a65 100755..100644 --- a/data/sounds/notifications/ogg/Polaris.ogg +++ b/data/sounds/notifications/ogg/Polaris.ogg diff --git a/data/sounds/notifications/ogg/Procyon.ogg b/data/sounds/notifications/ogg/Procyon.ogg Binary files differindex e5ffcdb..e5ffcdb 100755..100644 --- a/data/sounds/notifications/ogg/Procyon.ogg +++ b/data/sounds/notifications/ogg/Procyon.ogg diff --git a/data/sounds/notifications/ogg/Radon.ogg b/data/sounds/notifications/ogg/Radon.ogg Binary files differindex 550cddd..550cddd 100755..100644 --- a/data/sounds/notifications/ogg/Radon.ogg +++ b/data/sounds/notifications/ogg/Radon.ogg diff --git a/data/sounds/notifications/ogg/Selenium.ogg b/data/sounds/notifications/ogg/Selenium.ogg Binary files differindex 9d60917..9d60917 100755..100644 --- a/data/sounds/notifications/ogg/Selenium.ogg +++ b/data/sounds/notifications/ogg/Selenium.ogg diff --git a/data/sounds/notifications/ogg/Shaula.ogg b/data/sounds/notifications/ogg/Shaula.ogg Binary files differindex 1c0aa89..1c0aa89 100755..100644 --- a/data/sounds/notifications/ogg/Shaula.ogg +++ b/data/sounds/notifications/ogg/Shaula.ogg diff --git a/data/sounds/notifications/ogg/Spica.ogg b/data/sounds/notifications/ogg/Spica.ogg Binary files differindex a9e91cb..a9e91cb 100755..100644 --- a/data/sounds/notifications/ogg/Spica.ogg +++ b/data/sounds/notifications/ogg/Spica.ogg diff --git a/data/sounds/notifications/ogg/Zirconium.ogg b/data/sounds/notifications/ogg/Zirconium.ogg Binary files differindex d84b59e..d84b59e 100755..100644 --- a/data/sounds/notifications/ogg/Zirconium.ogg +++ b/data/sounds/notifications/ogg/Zirconium.ogg diff --git a/data/sounds/notifications/ouranos.ogg b/data/sounds/notifications/ouranos.ogg Binary files differindex d0efc3a..d0efc3a 100755..100644 --- a/data/sounds/notifications/ouranos.ogg +++ b/data/sounds/notifications/ouranos.ogg diff --git a/data/sounds/notifications/phantasos.ogg b/data/sounds/notifications/phantasos.ogg Binary files differindex ea19882..ea19882 100755..100644 --- a/data/sounds/notifications/phantasos.ogg +++ b/data/sounds/notifications/phantasos.ogg diff --git a/data/sounds/notifications/poros.ogg b/data/sounds/notifications/poros.ogg Binary files differindex 0a50a12..0a50a12 100755..100644 --- a/data/sounds/notifications/poros.ogg +++ b/data/sounds/notifications/poros.ogg diff --git a/data/sounds/notifications/thrasos1.ogg b/data/sounds/notifications/thrasos1.ogg Binary files differindex 9b7e621..9b7e621 100755..100644 --- a/data/sounds/notifications/thrasos1.ogg +++ b/data/sounds/notifications/thrasos1.ogg diff --git a/data/sounds/ringtones/Carina.wav b/data/sounds/ringtones/Carina.wav Binary files differindex ecaeb58..ecaeb58 100755..100644 --- a/data/sounds/ringtones/Carina.wav +++ b/data/sounds/ringtones/Carina.wav diff --git a/data/sounds/testfiles/test.mid b/data/sounds/testfiles/test.mid Binary files differindex d4ead53..d4ead53 100755..100644 --- a/data/sounds/testfiles/test.mid +++ b/data/sounds/testfiles/test.mid diff --git a/data/videos/AndroidInSpace.480p.lq.mp4 b/data/videos/AndroidInSpace.480p.lq.mp4 Binary files differindex f1db694..f1db694 100755..100644 --- a/data/videos/AndroidInSpace.480p.lq.mp4 +++ b/data/videos/AndroidInSpace.480p.lq.mp4 diff --git a/data/videos/AndroidInSpace.480p.mq.mp4 b/data/videos/AndroidInSpace.480p.mq.mp4 Binary files differindex 5f4cfb3..5f4cfb3 100755..100644 --- a/data/videos/AndroidInSpace.480p.mq.mp4 +++ b/data/videos/AndroidInSpace.480p.mq.mp4 diff --git a/docs/downloads/design/Android_Design_Downloads_20120814.zip b/docs/downloads/design/Android_Design_Downloads_20120814.zip Binary files differindex 102b011..102b011 100755..100644 --- a/docs/downloads/design/Android_Design_Downloads_20120814.zip +++ b/docs/downloads/design/Android_Design_Downloads_20120814.zip diff --git a/docs/downloads/design/Android_Design_Fireworks_Stencil_20120814.png b/docs/downloads/design/Android_Design_Fireworks_Stencil_20120814.png Binary files differindex 9a55143..9a55143 100755..100644 --- a/docs/downloads/design/Android_Design_Fireworks_Stencil_20120814.png +++ b/docs/downloads/design/Android_Design_Fireworks_Stencil_20120814.png diff --git a/docs/downloads/design/Android_Design_Holo_Widgets_20120814.zip b/docs/downloads/design/Android_Design_Holo_Widgets_20120814.zip Binary files differindex 295affd..295affd 100755..100644 --- a/docs/downloads/design/Android_Design_Holo_Widgets_20120814.zip +++ b/docs/downloads/design/Android_Design_Holo_Widgets_20120814.zip diff --git a/docs/downloads/design/Android_Design_Icons_20120814.zip b/docs/downloads/design/Android_Design_Icons_20120814.zip Binary files differindex 3471438..3471438 100755..100644 --- a/docs/downloads/design/Android_Design_Icons_20120814.zip +++ b/docs/downloads/design/Android_Design_Icons_20120814.zip diff --git a/docs/downloads/design/Android_Design_OmniGraffle_Stencil_20120814.graffle b/docs/downloads/design/Android_Design_OmniGraffle_Stencil_20120814.graffle Binary files differindex d575008..d575008 100755..100644 --- a/docs/downloads/design/Android_Design_OmniGraffle_Stencil_20120814.graffle +++ b/docs/downloads/design/Android_Design_OmniGraffle_Stencil_20120814.graffle diff --git a/docs/html/design/media/navigation_between_apps_back.png b/docs/html/design/media/navigation_between_apps_back.png Binary files differindex d5cd979..d5cd979 100755..100644 --- a/docs/html/design/media/navigation_between_apps_back.png +++ b/docs/html/design/media/navigation_between_apps_back.png diff --git a/docs/html/design/media/navigation_between_apps_inward.png b/docs/html/design/media/navigation_between_apps_inward.png Binary files differindex 7394b1c..7394b1c 100755..100644 --- a/docs/html/design/media/navigation_between_apps_inward.png +++ b/docs/html/design/media/navigation_between_apps_inward.png diff --git a/docs/html/design/media/navigation_between_apps_up.png b/docs/html/design/media/navigation_between_apps_up.png Binary files differindex 99c3112..99c3112 100755..100644 --- a/docs/html/design/media/navigation_between_apps_up.png +++ b/docs/html/design/media/navigation_between_apps_up.png diff --git a/docs/html/design/media/navigation_between_siblings_market1.png b/docs/html/design/media/navigation_between_siblings_market1.png Binary files differindex b12a432..b12a432 100755..100644 --- a/docs/html/design/media/navigation_between_siblings_market1.png +++ b/docs/html/design/media/navigation_between_siblings_market1.png diff --git a/docs/html/design/media/navigation_between_siblings_market2.png b/docs/html/design/media/navigation_between_siblings_market2.png Binary files differindex a09d9d7..a09d9d7 100755..100644 --- a/docs/html/design/media/navigation_between_siblings_market2.png +++ b/docs/html/design/media/navigation_between_siblings_market2.png diff --git a/docs/html/google/play/billing/billing_admin.jd b/docs/html/google/play/billing/billing_admin.jd index 2413ae5..2413ae5 100755..100644 --- a/docs/html/google/play/billing/billing_admin.jd +++ b/docs/html/google/play/billing/billing_admin.jd diff --git a/docs/html/google/play/billing/billing_best_practices.jd b/docs/html/google/play/billing/billing_best_practices.jd index dbf1057..dbf1057 100755..100644 --- a/docs/html/google/play/billing/billing_best_practices.jd +++ b/docs/html/google/play/billing/billing_best_practices.jd diff --git a/docs/html/google/play/billing/billing_integrate.jd b/docs/html/google/play/billing/billing_integrate.jd index 2ca7c83..2ca7c83 100755..100644 --- a/docs/html/google/play/billing/billing_integrate.jd +++ b/docs/html/google/play/billing/billing_integrate.jd diff --git a/docs/html/google/play/billing/billing_overview.jd b/docs/html/google/play/billing/billing_overview.jd index 4b2a643..4b2a643 100755..100644 --- a/docs/html/google/play/billing/billing_overview.jd +++ b/docs/html/google/play/billing/billing_overview.jd diff --git a/docs/html/google/play/billing/billing_reference.jd b/docs/html/google/play/billing/billing_reference.jd index e78c99f..e78c99f 100755..100644 --- a/docs/html/google/play/billing/billing_reference.jd +++ b/docs/html/google/play/billing/billing_reference.jd diff --git a/docs/html/google/play/billing/billing_subscriptions.jd b/docs/html/google/play/billing/billing_subscriptions.jd index 5980d83..5980d83 100755..100644 --- a/docs/html/google/play/billing/billing_subscriptions.jd +++ b/docs/html/google/play/billing/billing_subscriptions.jd diff --git a/docs/html/google/play/billing/billing_testing.jd b/docs/html/google/play/billing/billing_testing.jd index edf7e70..edf7e70 100755..100644 --- a/docs/html/google/play/billing/billing_testing.jd +++ b/docs/html/google/play/billing/billing_testing.jd diff --git a/docs/html/google/play/billing/index.jd b/docs/html/google/play/billing/index.jd index f229696..f229696 100755..100644 --- a/docs/html/google/play/billing/index.jd +++ b/docs/html/google/play/billing/index.jd diff --git a/docs/html/guide/appendix/faq/troubleshooting.jd b/docs/html/guide/appendix/faq/troubleshooting.jd index e3a9e4182..e3a9e4182 100755..100644 --- a/docs/html/guide/appendix/faq/troubleshooting.jd +++ b/docs/html/guide/appendix/faq/troubleshooting.jd diff --git a/docs/html/guide/topics/manifest/uses-configuration-element.jd b/docs/html/guide/topics/manifest/uses-configuration-element.jd index 810975e..810975e 100755..100644 --- a/docs/html/guide/topics/manifest/uses-configuration-element.jd +++ b/docs/html/guide/topics/manifest/uses-configuration-element.jd diff --git a/docs/html/guide/topics/resources/localization.jd b/docs/html/guide/topics/resources/localization.jd index 983aef8..983aef8 100755..100644 --- a/docs/html/guide/topics/resources/localization.jd +++ b/docs/html/guide/topics/resources/localization.jd diff --git a/docs/html/guide/topics/resources/resources-i18n.jd b/docs/html/guide/topics/resources/resources-i18n.jd index e1c96fb..e1c96fb 100755..100644 --- a/docs/html/guide/topics/resources/resources-i18n.jd +++ b/docs/html/guide/topics/resources/resources-i18n.jd diff --git a/docs/html/guide/topics/ui/images/hello-gallery.png b/docs/html/guide/topics/ui/images/hello-gallery.png Binary files differindex 22d1eaf..22d1eaf 100755..100644 --- a/docs/html/guide/topics/ui/images/hello-gallery.png +++ b/docs/html/guide/topics/ui/images/hello-gallery.png diff --git a/docs/html/guide/topics/ui/images/hello-gridview.png b/docs/html/guide/topics/ui/images/hello-gridview.png Binary files differindex 2def0df..2def0df 100755..100644 --- a/docs/html/guide/topics/ui/images/hello-gridview.png +++ b/docs/html/guide/topics/ui/images/hello-gridview.png diff --git a/docs/html/guide/topics/ui/images/hello-linearlayout.png b/docs/html/guide/topics/ui/images/hello-linearlayout.png Binary files differindex dfef819..dfef819 100755..100644 --- a/docs/html/guide/topics/ui/images/hello-linearlayout.png +++ b/docs/html/guide/topics/ui/images/hello-linearlayout.png diff --git a/docs/html/guide/topics/ui/images/hello-relativelayout.png b/docs/html/guide/topics/ui/images/hello-relativelayout.png Binary files differindex ec4d9d4..ec4d9d4 100755..100644 --- a/docs/html/guide/topics/ui/images/hello-relativelayout.png +++ b/docs/html/guide/topics/ui/images/hello-relativelayout.png diff --git a/docs/html/guide/topics/ui/images/hello-tablelayout.png b/docs/html/guide/topics/ui/images/hello-tablelayout.png Binary files differindex 3d80e7f..3d80e7f 100755..100644 --- a/docs/html/guide/topics/ui/images/hello-tablelayout.png +++ b/docs/html/guide/topics/ui/images/hello-tablelayout.png diff --git a/docs/html/images/billing_arch.png b/docs/html/images/billing_arch.png Binary files differindex afbc3f0..afbc3f0 100755..100644 --- a/docs/html/images/billing_arch.png +++ b/docs/html/images/billing_arch.png diff --git a/docs/html/images/billing_check_supported.png b/docs/html/images/billing_check_supported.png Binary files differindex d661f7f..d661f7f 100755..100644 --- a/docs/html/images/billing_check_supported.png +++ b/docs/html/images/billing_check_supported.png diff --git a/docs/html/images/billing_checkout_flow.png b/docs/html/images/billing_checkout_flow.png Binary files differindex 5b446be..5b446be 100755..100644 --- a/docs/html/images/billing_checkout_flow.png +++ b/docs/html/images/billing_checkout_flow.png diff --git a/docs/html/images/billing_list_form.png b/docs/html/images/billing_list_form.png Binary files differindex de7ea22..de7ea22 100755..100644 --- a/docs/html/images/billing_list_form.png +++ b/docs/html/images/billing_list_form.png diff --git a/docs/html/images/billing_list_form_2.png b/docs/html/images/billing_list_form_2.png Binary files differindex d321a20..d321a20 100755..100644 --- a/docs/html/images/billing_list_form_2.png +++ b/docs/html/images/billing_list_form_2.png diff --git a/docs/html/images/billing_product_list.png b/docs/html/images/billing_product_list.png Binary files differindex a89f21b..a89f21b 100755..100644 --- a/docs/html/images/billing_product_list.png +++ b/docs/html/images/billing_product_list.png diff --git a/docs/html/images/billing_product_list_entry.png b/docs/html/images/billing_product_list_entry.png Binary files differindex df3f9a8..df3f9a8 100755..100644 --- a/docs/html/images/billing_product_list_entry.png +++ b/docs/html/images/billing_product_list_entry.png diff --git a/docs/html/images/billing_public_key.png b/docs/html/images/billing_public_key.png Binary files differindex a0620f8..a0620f8 100755..100644 --- a/docs/html/images/billing_public_key.png +++ b/docs/html/images/billing_public_key.png diff --git a/docs/html/images/billing_refund.png b/docs/html/images/billing_refund.png Binary files differindex 09fc33c..09fc33c 100755..100644 --- a/docs/html/images/billing_refund.png +++ b/docs/html/images/billing_refund.png diff --git a/docs/html/images/billing_request_purchase.png b/docs/html/images/billing_request_purchase.png Binary files differindex c84016e..c84016e 100755..100644 --- a/docs/html/images/billing_request_purchase.png +++ b/docs/html/images/billing_request_purchase.png diff --git a/docs/html/images/billing_restore_transactions.png b/docs/html/images/billing_restore_transactions.png Binary files differindex 7911304..7911304 100755..100644 --- a/docs/html/images/billing_restore_transactions.png +++ b/docs/html/images/billing_restore_transactions.png diff --git a/docs/html/images/billing_test_flow.png b/docs/html/images/billing_test_flow.png Binary files differindex 9db8cd9..9db8cd9 100755..100644 --- a/docs/html/images/billing_test_flow.png +++ b/docs/html/images/billing_test_flow.png diff --git a/docs/html/images/custom_message.png b/docs/html/images/custom_message.png Binary files differindex 00b7632..00b7632 100755..100644 --- a/docs/html/images/custom_message.png +++ b/docs/html/images/custom_message.png diff --git a/docs/html/images/custom_toast.png b/docs/html/images/custom_toast.png Binary files differindex 230625a..230625a 100755..100644 --- a/docs/html/images/custom_toast.png +++ b/docs/html/images/custom_toast.png diff --git a/docs/html/images/developing/developing_overview.png b/docs/html/images/developing/developing_overview.png Binary files differindex ab09407..ab09407 100755..100644 --- a/docs/html/images/developing/developing_overview.png +++ b/docs/html/images/developing/developing_overview.png diff --git a/docs/html/images/drm_arch.png b/docs/html/images/drm_arch.png Binary files differindex 1696a97..1696a97 100755..100644 --- a/docs/html/images/drm_arch.png +++ b/docs/html/images/drm_arch.png diff --git a/docs/html/images/hello_l10n/copy_res_files.png b/docs/html/images/hello_l10n/copy_res_files.png Binary files differindex 9e704b2..9e704b2 100755..100644 --- a/docs/html/images/hello_l10n/copy_res_files.png +++ b/docs/html/images/hello_l10n/copy_res_files.png diff --git a/docs/html/images/hello_l10n/custom_locale_app.png b/docs/html/images/hello_l10n/custom_locale_app.png Binary files differindex f89648e..f89648e 100755..100644 --- a/docs/html/images/hello_l10n/custom_locale_app.png +++ b/docs/html/images/hello_l10n/custom_locale_app.png diff --git a/docs/html/images/hello_l10n/drawable-de-rDE/flag.png b/docs/html/images/hello_l10n/drawable-de-rDE/flag.png Binary files differindex 2cc58c7..2cc58c7 100755..100644 --- a/docs/html/images/hello_l10n/drawable-de-rDE/flag.png +++ b/docs/html/images/hello_l10n/drawable-de-rDE/flag.png diff --git a/docs/html/images/hello_l10n/drawable-en-rCA/flag.png b/docs/html/images/hello_l10n/drawable-en-rCA/flag.png Binary files differindex b441d2e..b441d2e 100755..100644 --- a/docs/html/images/hello_l10n/drawable-en-rCA/flag.png +++ b/docs/html/images/hello_l10n/drawable-en-rCA/flag.png diff --git a/docs/html/images/hello_l10n/drawable-en-rUS/flag.png b/docs/html/images/hello_l10n/drawable-en-rUS/flag.png Binary files differindex 47a1179..47a1179 100755..100644 --- a/docs/html/images/hello_l10n/drawable-en-rUS/flag.png +++ b/docs/html/images/hello_l10n/drawable-en-rUS/flag.png diff --git a/docs/html/images/hello_l10n/drawable-fr-rCA/flag.png b/docs/html/images/hello_l10n/drawable-fr-rCA/flag.png Binary files differindex b441d2e..b441d2e 100755..100644 --- a/docs/html/images/hello_l10n/drawable-fr-rCA/flag.png +++ b/docs/html/images/hello_l10n/drawable-fr-rCA/flag.png diff --git a/docs/html/images/hello_l10n/drawable-fr-rFR/flag.png b/docs/html/images/hello_l10n/drawable-fr-rFR/flag.png Binary files differindex cdbe85f..cdbe85f 100755..100644 --- a/docs/html/images/hello_l10n/drawable-fr-rFR/flag.png +++ b/docs/html/images/hello_l10n/drawable-fr-rFR/flag.png diff --git a/docs/html/images/hello_l10n/drawable-ja-rJP/flag.png b/docs/html/images/hello_l10n/drawable-ja-rJP/flag.png Binary files differindex 7b93ee9..7b93ee9 100755..100644 --- a/docs/html/images/hello_l10n/drawable-ja-rJP/flag.png +++ b/docs/html/images/hello_l10n/drawable-ja-rJP/flag.png diff --git a/docs/html/images/hello_l10n/flag.png b/docs/html/images/hello_l10n/flag.png Binary files differindex c232132..c232132 100755..100644 --- a/docs/html/images/hello_l10n/flag.png +++ b/docs/html/images/hello_l10n/flag.png diff --git a/docs/html/images/hello_l10n/frenchCA_screenshot.png b/docs/html/images/hello_l10n/frenchCA_screenshot.png Binary files differindex f8e6517..f8e6517 100755..100644 --- a/docs/html/images/hello_l10n/frenchCA_screenshot.png +++ b/docs/html/images/hello_l10n/frenchCA_screenshot.png diff --git a/docs/html/images/hello_l10n/germanCH_screenshot.png b/docs/html/images/hello_l10n/germanCH_screenshot.png Binary files differindex 240104a..240104a 100755..100644 --- a/docs/html/images/hello_l10n/germanCH_screenshot.png +++ b/docs/html/images/hello_l10n/germanCH_screenshot.png diff --git a/docs/html/images/hello_l10n/german_screenshot.png b/docs/html/images/hello_l10n/german_screenshot.png Binary files differindex 3d1b197..3d1b197 100755..100644 --- a/docs/html/images/hello_l10n/german_screenshot.png +++ b/docs/html/images/hello_l10n/german_screenshot.png diff --git a/docs/html/images/hello_l10n/japanese_screenshot.png b/docs/html/images/hello_l10n/japanese_screenshot.png Binary files differindex e1ffbf9..e1ffbf9 100755..100644 --- a/docs/html/images/hello_l10n/japanese_screenshot.png +++ b/docs/html/images/hello_l10n/japanese_screenshot.png diff --git a/docs/html/images/hello_l10n/nonlocalized_project.png b/docs/html/images/hello_l10n/nonlocalized_project.png Binary files differindex 8df9a06..8df9a06 100755..100644 --- a/docs/html/images/hello_l10n/nonlocalized_project.png +++ b/docs/html/images/hello_l10n/nonlocalized_project.png diff --git a/docs/html/images/hello_l10n/nonlocalized_screenshot1.png b/docs/html/images/hello_l10n/nonlocalized_screenshot1.png Binary files differindex 02ace4b..02ace4b 100755..100644 --- a/docs/html/images/hello_l10n/nonlocalized_screenshot1.png +++ b/docs/html/images/hello_l10n/nonlocalized_screenshot1.png diff --git a/docs/html/images/hello_l10n/nonlocalized_screenshot2.png b/docs/html/images/hello_l10n/nonlocalized_screenshot2.png Binary files differindex e5a771b..e5a771b 100755..100644 --- a/docs/html/images/hello_l10n/nonlocalized_screenshot2.png +++ b/docs/html/images/hello_l10n/nonlocalized_screenshot2.png diff --git a/docs/html/images/hello_l10n/plain_project.png b/docs/html/images/hello_l10n/plain_project.png Binary files differindex f3c2b57..f3c2b57 100755..100644 --- a/docs/html/images/hello_l10n/plain_project.png +++ b/docs/html/images/hello_l10n/plain_project.png diff --git a/docs/html/images/hello_l10n/romanshCH_screenshot.png b/docs/html/images/hello_l10n/romanshCH_screenshot.png Binary files differindex a3fd194..a3fd194 100755..100644 --- a/docs/html/images/hello_l10n/romanshCH_screenshot.png +++ b/docs/html/images/hello_l10n/romanshCH_screenshot.png diff --git a/docs/html/images/hello_l10n/using_custom_locale.png b/docs/html/images/hello_l10n/using_custom_locale.png Binary files differindex 61b4c05..61b4c05 100755..100644 --- a/docs/html/images/hello_l10n/using_custom_locale.png +++ b/docs/html/images/hello_l10n/using_custom_locale.png diff --git a/docs/html/images/hello_l10n/xml_file_wizard_shortcut.png b/docs/html/images/hello_l10n/xml_file_wizard_shortcut.png Binary files differindex f72554d..f72554d 100755..100644 --- a/docs/html/images/hello_l10n/xml_file_wizard_shortcut.png +++ b/docs/html/images/hello_l10n/xml_file_wizard_shortcut.png diff --git a/docs/html/images/hello_l10n/xml_wizard1.png b/docs/html/images/hello_l10n/xml_wizard1.png Binary files differindex 35dc09f..35dc09f 100755..100644 --- a/docs/html/images/hello_l10n/xml_wizard1.png +++ b/docs/html/images/hello_l10n/xml_wizard1.png diff --git a/docs/html/images/hello_l10n/xml_wizard2.png b/docs/html/images/hello_l10n/xml_wizard2.png Binary files differindex 6bcd28b..6bcd28b 100755..100644 --- a/docs/html/images/hello_l10n/xml_wizard2.png +++ b/docs/html/images/hello_l10n/xml_wizard2.png diff --git a/docs/html/images/jet/jc_audition_wnd.png b/docs/html/images/jet/jc_audition_wnd.png Binary files differindex 43f0fb1..43f0fb1 100755..100644 --- a/docs/html/images/jet/jc_audition_wnd.png +++ b/docs/html/images/jet/jc_audition_wnd.png diff --git a/docs/html/images/jet/jc_event_wnd.png b/docs/html/images/jet/jc_event_wnd.png Binary files differindex 807797e..807797e 100755..100644 --- a/docs/html/images/jet/jc_event_wnd.png +++ b/docs/html/images/jet/jc_event_wnd.png diff --git a/docs/html/images/jet/jc_main_wnd.png b/docs/html/images/jet/jc_main_wnd.png Binary files differindex 29c47ec..29c47ec 100755..100644 --- a/docs/html/images/jet/jc_main_wnd.png +++ b/docs/html/images/jet/jc_main_wnd.png diff --git a/docs/html/images/jet/jc_moveseg_wnd.png b/docs/html/images/jet/jc_moveseg_wnd.png Binary files differindex 690dcad..690dcad 100755..100644 --- a/docs/html/images/jet/jc_moveseg_wnd.png +++ b/docs/html/images/jet/jc_moveseg_wnd.png diff --git a/docs/html/images/jet/jc_open_dlg.png b/docs/html/images/jet/jc_open_dlg.png Binary files differindex 0d5a14d..0d5a14d 100755..100644 --- a/docs/html/images/jet/jc_open_dlg.png +++ b/docs/html/images/jet/jc_open_dlg.png diff --git a/docs/html/images/jet/jc_rep_wnd.png b/docs/html/images/jet/jc_rep_wnd.png Binary files differindex ca200d1..ca200d1 100755..100644 --- a/docs/html/images/jet/jc_rep_wnd.png +++ b/docs/html/images/jet/jc_rep_wnd.png diff --git a/docs/html/images/jet/jc_repseg_wnd.png b/docs/html/images/jet/jc_repseg_wnd.png Binary files differindex 7867902..7867902 100755..100644 --- a/docs/html/images/jet/jc_repseg_wnd.png +++ b/docs/html/images/jet/jc_repseg_wnd.png diff --git a/docs/html/images/jet/jc_seg_wnd.png b/docs/html/images/jet/jc_seg_wnd.png Binary files differindex b0434d7..b0434d7 100755..100644 --- a/docs/html/images/jet/jc_seg_wnd.png +++ b/docs/html/images/jet/jc_seg_wnd.png diff --git a/docs/html/images/notifications_window.png b/docs/html/images/notifications_window.png Binary files differindex 78e0c8a..78e0c8a 100755..100644 --- a/docs/html/images/notifications_window.png +++ b/docs/html/images/notifications_window.png diff --git a/docs/html/images/options_menu.png b/docs/html/images/options_menu.png Binary files differindex 6c49906..6c49906 100755..100644 --- a/docs/html/images/options_menu.png +++ b/docs/html/images/options_menu.png diff --git a/docs/html/images/publishing/publishing_android_market.png b/docs/html/images/publishing/publishing_android_market.png Binary files differindex aa591ef..aa591ef 100755..100644 --- a/docs/html/images/publishing/publishing_android_market.png +++ b/docs/html/images/publishing/publishing_android_market.png diff --git a/docs/html/images/publishing/publishing_overview.png b/docs/html/images/publishing/publishing_overview.png Binary files differindex 0d88b4f..0d88b4f 100755..100644 --- a/docs/html/images/publishing/publishing_overview.png +++ b/docs/html/images/publishing/publishing_overview.png diff --git a/docs/html/images/publishing/publishing_overview_prep.png b/docs/html/images/publishing/publishing_overview_prep.png Binary files differindex 7a300f4..7a300f4 100755..100644 --- a/docs/html/images/publishing/publishing_overview_prep.png +++ b/docs/html/images/publishing/publishing_overview_prep.png diff --git a/docs/html/images/publishing/publishing_preparing.png b/docs/html/images/publishing/publishing_preparing.png Binary files differindex 40c0ac6..40c0ac6 100755..100644 --- a/docs/html/images/publishing/publishing_preparing.png +++ b/docs/html/images/publishing/publishing_preparing.png diff --git a/docs/html/images/publishing/publishing_via_email.png b/docs/html/images/publishing/publishing_via_email.png Binary files differindex d367747..d367747 100755..100644 --- a/docs/html/images/publishing/publishing_via_email.png +++ b/docs/html/images/publishing/publishing_via_email.png diff --git a/docs/html/images/radio_buttons.png b/docs/html/images/radio_buttons.png Binary files differindex 415ccca..415ccca 100755..100644 --- a/docs/html/images/radio_buttons.png +++ b/docs/html/images/radio_buttons.png diff --git a/docs/html/images/resources/arrow.png b/docs/html/images/resources/arrow.png Binary files differindex 78ad542..78ad542 100755..100644 --- a/docs/html/images/resources/arrow.png +++ b/docs/html/images/resources/arrow.png diff --git a/docs/html/images/resources/right-arrow.png b/docs/html/images/resources/right-arrow.png Binary files differindex 092f029..092f029 100755..100644 --- a/docs/html/images/resources/right-arrow.png +++ b/docs/html/images/resources/right-arrow.png diff --git a/docs/html/images/status_bar.png b/docs/html/images/status_bar.png Binary files differindex 420bb03..420bb03 100755..100644 --- a/docs/html/images/status_bar.png +++ b/docs/html/images/status_bar.png diff --git a/docs/html/images/testing/android_test_framework.png b/docs/html/images/testing/android_test_framework.png Binary files differindex 459975c..459975c 100755..100644 --- a/docs/html/images/testing/android_test_framework.png +++ b/docs/html/images/testing/android_test_framework.png diff --git a/docs/html/images/training/ads-close-to-button.png b/docs/html/images/training/ads-close-to-button.png Binary files differindex fcb65aa..fcb65aa 100755..100644 --- a/docs/html/images/training/ads-close-to-button.png +++ b/docs/html/images/training/ads-close-to-button.png diff --git a/docs/html/images/training/ads-cover-content.png b/docs/html/images/training/ads-cover-content.png Binary files differindex f284d65..f284d65 100755..100644 --- a/docs/html/images/training/ads-cover-content.png +++ b/docs/html/images/training/ads-cover-content.png diff --git a/docs/html/images/training/ads-eclipse-build-path.png b/docs/html/images/training/ads-eclipse-build-path.png Binary files differindex fe720fd..fe720fd 100755..100644 --- a/docs/html/images/training/ads-eclipse-build-path.png +++ b/docs/html/images/training/ads-eclipse-build-path.png diff --git a/docs/html/images/training/ads-top-banner.png b/docs/html/images/training/ads-top-banner.png Binary files differindex 8dffe8d..8dffe8d 100755..100644 --- a/docs/html/images/training/ads-top-banner.png +++ b/docs/html/images/training/ads-top-banner.png diff --git a/docs/html/images/training/button.png b/docs/html/images/training/button.png Binary files differindex 1a7944f..1a7944f 100755..100644 --- a/docs/html/images/training/button.png +++ b/docs/html/images/training/button.png diff --git a/docs/html/images/training/button_with_marks.png b/docs/html/images/training/button_with_marks.png Binary files differindex 06e0720..06e0720 100755..100644 --- a/docs/html/images/training/button_with_marks.png +++ b/docs/html/images/training/button_with_marks.png diff --git a/docs/html/images/training/buttons_stretched.png b/docs/html/images/training/buttons_stretched.png Binary files differindex bb67419..bb67419 100755..100644 --- a/docs/html/images/training/buttons_stretched.png +++ b/docs/html/images/training/buttons_stretched.png diff --git a/docs/html/images/training/cool-places.png b/docs/html/images/training/cool-places.png Binary files differindex 769b5b7..769b5b7 100755..100644 --- a/docs/html/images/training/cool-places.png +++ b/docs/html/images/training/cool-places.png diff --git a/docs/html/images/training/device-mgmt-activate-device-admin.png b/docs/html/images/training/device-mgmt-activate-device-admin.png Binary files differindex 1be1831..1be1831 100755..100644 --- a/docs/html/images/training/device-mgmt-activate-device-admin.png +++ b/docs/html/images/training/device-mgmt-activate-device-admin.png diff --git a/docs/html/images/training/panoramio-grid.png b/docs/html/images/training/panoramio-grid.png Binary files differindex 45c0eb5..45c0eb5 100755..100644 --- a/docs/html/images/training/panoramio-grid.png +++ b/docs/html/images/training/panoramio-grid.png diff --git a/docs/html/images/ui/clipboard/copy_paste_framework.png b/docs/html/images/ui/clipboard/copy_paste_framework.png Binary files differindex 57facaa..57facaa 100755..100644 --- a/docs/html/images/ui/clipboard/copy_paste_framework.png +++ b/docs/html/images/ui/clipboard/copy_paste_framework.png diff --git a/docs/html/resources/images/KeyChainDemo2.png b/docs/html/resources/images/KeyChainDemo2.png Binary files differindex e181e58..e181e58 100755..100644 --- a/docs/html/resources/images/KeyChainDemo2.png +++ b/docs/html/resources/images/KeyChainDemo2.png diff --git a/docs/html/resources/images/KeyChainDemo3.png b/docs/html/resources/images/KeyChainDemo3.png Binary files differindex acfdd89..acfdd89 100755..100644 --- a/docs/html/resources/images/KeyChainDemo3.png +++ b/docs/html/resources/images/KeyChainDemo3.png diff --git a/docs/html/resources/images/KeyChainDemo4.png b/docs/html/resources/images/KeyChainDemo4.png Binary files differindex a9101ab..a9101ab 100755..100644 --- a/docs/html/resources/images/KeyChainDemo4.png +++ b/docs/html/resources/images/KeyChainDemo4.png diff --git a/docs/html/resources/images/SipDemo.png b/docs/html/resources/images/SipDemo.png Binary files differindex 999bea9..999bea9 100755..100644 --- a/docs/html/resources/images/SipDemo.png +++ b/docs/html/resources/images/SipDemo.png diff --git a/docs/html/resources/images/vpn-confirmation.png b/docs/html/resources/images/vpn-confirmation.png Binary files differindex ae2e583..ae2e583 100755..100644 --- a/docs/html/resources/images/vpn-confirmation.png +++ b/docs/html/resources/images/vpn-confirmation.png diff --git a/docs/html/tools/publishing/publishing_overview.jd b/docs/html/tools/publishing/publishing_overview.jd index ea01e20..ea01e20 100755..100644 --- a/docs/html/tools/publishing/publishing_overview.jd +++ b/docs/html/tools/publishing/publishing_overview.jd diff --git a/docs/html/tools/testing/testing_android.jd b/docs/html/tools/testing/testing_android.jd index acf5ec2..acf5ec2 100755..100644 --- a/docs/html/tools/testing/testing_android.jd +++ b/docs/html/tools/testing/testing_android.jd diff --git a/docs/html/tools/workflow/publishing/publishing_overview.jd b/docs/html/tools/workflow/publishing/publishing_overview.jd index a1973c9..a1973c9 100755..100644 --- a/docs/html/tools/workflow/publishing/publishing_overview.jd +++ b/docs/html/tools/workflow/publishing/publishing_overview.jd diff --git a/docs/html/tools/workflow/publishing_overview.jd b/docs/html/tools/workflow/publishing_overview.jd index a1973c9..a1973c9 100755..100644 --- a/docs/html/tools/workflow/publishing_overview.jd +++ b/docs/html/tools/workflow/publishing_overview.jd diff --git a/docs/image_sources/fundamentals/fragments.graffle b/docs/image_sources/fundamentals/fragments.graffle index c14282b..c14282b 100755..100644 --- a/docs/image_sources/fundamentals/fragments.graffle +++ b/docs/image_sources/fundamentals/fragments.graffle diff --git a/drm/java/android/drm/DrmConvertedStatus.java b/drm/java/android/drm/DrmConvertedStatus.java index f6e570a..f6e570a 100755..100644 --- a/drm/java/android/drm/DrmConvertedStatus.java +++ b/drm/java/android/drm/DrmConvertedStatus.java diff --git a/drm/java/android/drm/DrmErrorEvent.java b/drm/java/android/drm/DrmErrorEvent.java index c61819d..c61819d 100755..100644 --- a/drm/java/android/drm/DrmErrorEvent.java +++ b/drm/java/android/drm/DrmErrorEvent.java diff --git a/drm/java/android/drm/DrmEvent.java b/drm/java/android/drm/DrmEvent.java index 1a19f5c..1a19f5c 100755..100644 --- a/drm/java/android/drm/DrmEvent.java +++ b/drm/java/android/drm/DrmEvent.java diff --git a/drm/java/android/drm/DrmInfo.java b/drm/java/android/drm/DrmInfo.java index 22d06c7..22d06c7 100755..100644 --- a/drm/java/android/drm/DrmInfo.java +++ b/drm/java/android/drm/DrmInfo.java diff --git a/drm/java/android/drm/DrmInfoEvent.java b/drm/java/android/drm/DrmInfoEvent.java index 2826dce..2826dce 100755..100644 --- a/drm/java/android/drm/DrmInfoEvent.java +++ b/drm/java/android/drm/DrmInfoEvent.java diff --git a/drm/java/android/drm/DrmInfoRequest.java b/drm/java/android/drm/DrmInfoRequest.java index 621da41..621da41 100755..100644 --- a/drm/java/android/drm/DrmInfoRequest.java +++ b/drm/java/android/drm/DrmInfoRequest.java diff --git a/drm/java/android/drm/DrmInfoStatus.java b/drm/java/android/drm/DrmInfoStatus.java index 9a3a7df..9a3a7df 100755..100644 --- a/drm/java/android/drm/DrmInfoStatus.java +++ b/drm/java/android/drm/DrmInfoStatus.java diff --git a/drm/java/android/drm/DrmManagerClient.java b/drm/java/android/drm/DrmManagerClient.java index 2907f10..2907f10 100755..100644 --- a/drm/java/android/drm/DrmManagerClient.java +++ b/drm/java/android/drm/DrmManagerClient.java diff --git a/drm/java/android/drm/DrmRights.java b/drm/java/android/drm/DrmRights.java index a9b4f05..a9b4f05 100755..100644 --- a/drm/java/android/drm/DrmRights.java +++ b/drm/java/android/drm/DrmRights.java diff --git a/drm/java/android/drm/DrmStore.java b/drm/java/android/drm/DrmStore.java index 3a77ea1..3a77ea1 100755..100644 --- a/drm/java/android/drm/DrmStore.java +++ b/drm/java/android/drm/DrmStore.java diff --git a/drm/java/android/drm/DrmSupportInfo.java b/drm/java/android/drm/DrmSupportInfo.java index 3694ff4..3694ff4 100755..100644 --- a/drm/java/android/drm/DrmSupportInfo.java +++ b/drm/java/android/drm/DrmSupportInfo.java diff --git a/drm/java/android/drm/DrmUtils.java b/drm/java/android/drm/DrmUtils.java index 4f7cb22..4f7cb22 100755..100644 --- a/drm/java/android/drm/DrmUtils.java +++ b/drm/java/android/drm/DrmUtils.java diff --git a/drm/java/android/drm/ProcessedData.java b/drm/java/android/drm/ProcessedData.java index 06e03e7..06e03e7 100755..100644 --- a/drm/java/android/drm/ProcessedData.java +++ b/drm/java/android/drm/ProcessedData.java diff --git a/drm/java/android/drm/package.html b/drm/java/android/drm/package.html index 161d6e0..161d6e0 100755..100644 --- a/drm/java/android/drm/package.html +++ b/drm/java/android/drm/package.html diff --git a/graphics/java/android/graphics/Bitmap.aidl b/graphics/java/android/graphics/Bitmap.aidl index ce97b95..ce97b95 100755..100644 --- a/graphics/java/android/graphics/Bitmap.aidl +++ b/graphics/java/android/graphics/Bitmap.aidl diff --git a/include/androidfw/KeycodeLabels.h b/include/androidfw/KeycodeLabels.h index 538949d..538949d 100755..100644 --- a/include/androidfw/KeycodeLabels.h +++ b/include/androidfw/KeycodeLabels.h diff --git a/keystore/java/android/security/KeyStore.java b/keystore/java/android/security/KeyStore.java index 4637991..44be804 100644 --- a/keystore/java/android/security/KeyStore.java +++ b/keystore/java/android/security/KeyStore.java @@ -16,17 +16,9 @@ package android.security; -import android.net.LocalSocketAddress; -import android.net.LocalSocket; - -import java.io.InputStream; -import java.io.IOException; -import java.io.OutputStream; -import java.io.UTFDataFormatException; -import java.nio.charset.Charsets; -import java.nio.charset.ModifiedUtf8; -import java.util.ArrayList; -import java.util.Date; +import android.os.RemoteException; +import android.os.ServiceManager; +import android.util.Log; /** * @hide This should not be made public in its present form because it @@ -34,6 +26,7 @@ import java.util.Date; * preclude the use of hardware crypto. */ public class KeyStore { + private static final String TAG = "KeyStore"; // ResponseCodes public static final int NO_ERROR = 1; @@ -50,20 +43,30 @@ public class KeyStore { // States public enum State { UNLOCKED, LOCKED, UNINITIALIZED }; - private static final LocalSocketAddress sAddress = new LocalSocketAddress( - "keystore", LocalSocketAddress.Namespace.RESERVED); - private int mError = NO_ERROR; - private KeyStore() {} + private final IKeystoreService mBinder; + + private KeyStore(IKeystoreService binder) { + mBinder = binder; + } public static KeyStore getInstance() { - return new KeyStore(); + IKeystoreService keystore = IKeystoreService.Stub.asInterface(ServiceManager + .getService("android.security.keystore")); + return new KeyStore(keystore); } public State state() { - execute('t'); - switch (mError) { + final int ret; + try { + ret = mBinder.test(); + } catch (RemoteException e) { + Log.w(TAG, "Cannot connect to keystore", e); + throw new AssertionError(e); + } + + switch (ret) { case NO_ERROR: return State.UNLOCKED; case LOCKED: return State.LOCKED; case UNINITIALIZED: return State.UNINITIALIZED; @@ -71,171 +74,167 @@ public class KeyStore { } } - private byte[] get(byte[] key) { - ArrayList<byte[]> values = execute('g', key); - return (values == null || values.isEmpty()) ? null : values.get(0); - } - public byte[] get(String key) { - return get(getKeyBytes(key)); - } - - private boolean put(byte[] key, byte[] value) { - execute('i', key, value); - return mError == NO_ERROR; + try { + return mBinder.get(key); + } catch (RemoteException e) { + Log.w(TAG, "Cannot connect to keystore", e); + return null; + } } public boolean put(String key, byte[] value) { - return put(getKeyBytes(key), value); - } - - private boolean delete(byte[] key) { - execute('d', key); - return mError == NO_ERROR; + try { + return mBinder.insert(key, value) == NO_ERROR; + } catch (RemoteException e) { + Log.w(TAG, "Cannot connect to keystore", e); + return false; + } } public boolean delete(String key) { - return delete(getKeyBytes(key)); - } - - private boolean contains(byte[] key) { - execute('e', key); - return mError == NO_ERROR; + try { + return mBinder.del(key) == NO_ERROR; + } catch (RemoteException e) { + Log.w(TAG, "Cannot connect to keystore", e); + return false; + } } public boolean contains(String key) { - return contains(getKeyBytes(key)); - } - - public byte[][] saw(byte[] prefix) { - ArrayList<byte[]> values = execute('s', prefix); - return (values == null) ? null : values.toArray(new byte[values.size()][]); + try { + return mBinder.exist(key) == NO_ERROR; + } catch (RemoteException e) { + Log.w(TAG, "Cannot connect to keystore", e); + return false; + } } public String[] saw(String prefix) { - byte[][] values = saw(getKeyBytes(prefix)); - if (values == null) { + try { + return mBinder.saw(prefix); + } catch (RemoteException e) { + Log.w(TAG, "Cannot connect to keystore", e); return null; } - String[] strings = new String[values.length]; - for (int i = 0; i < values.length; ++i) { - strings[i] = toKeyString(values[i]); - } - return strings; } public boolean reset() { - execute('r'); - return mError == NO_ERROR; - } - - private boolean password(byte[] password) { - execute('p', password); - return mError == NO_ERROR; + try { + return mBinder.reset() == NO_ERROR; + } catch (RemoteException e) { + Log.w(TAG, "Cannot connect to keystore", e); + return false; + } } public boolean password(String password) { - return password(getPasswordBytes(password)); + try { + return mBinder.password(password) == NO_ERROR; + } catch (RemoteException e) { + Log.w(TAG, "Cannot connect to keystore", e); + return false; + } } public boolean lock() { - execute('l'); - return mError == NO_ERROR; - } - - private boolean unlock(byte[] password) { - execute('u', password); - return mError == NO_ERROR; + try { + return mBinder.lock() == NO_ERROR; + } catch (RemoteException e) { + Log.w(TAG, "Cannot connect to keystore", e); + return false; + } } public boolean unlock(String password) { - return unlock(getPasswordBytes(password)); + try { + mError = mBinder.unlock(password); + return mError == NO_ERROR; + } catch (RemoteException e) { + Log.w(TAG, "Cannot connect to keystore", e); + return false; + } } public boolean isEmpty() { - execute('z'); - return mError == KEY_NOT_FOUND; - } - - private boolean generate(byte[] key) { - execute('a', key); - return mError == NO_ERROR; + try { + return mBinder.zero() == KEY_NOT_FOUND; + } catch (RemoteException e) { + Log.w(TAG, "Cannot connect to keystore", e); + return false; + } } public boolean generate(String key) { - return generate(getKeyBytes(key)); - } - - private boolean importKey(byte[] keyName, byte[] key) { - execute('m', keyName, key); - return mError == NO_ERROR; + try { + return mBinder.generate(key) == NO_ERROR; + } catch (RemoteException e) { + Log.w(TAG, "Cannot connect to keystore", e); + return false; + } } public boolean importKey(String keyName, byte[] key) { - return importKey(getKeyBytes(keyName), key); - } - - private byte[] getPubkey(byte[] key) { - ArrayList<byte[]> values = execute('b', key); - return (values == null || values.isEmpty()) ? null : values.get(0); + try { + return mBinder.import_key(keyName, key) == NO_ERROR; + } catch (RemoteException e) { + Log.w(TAG, "Cannot connect to keystore", e); + return false; + } } public byte[] getPubkey(String key) { - return getPubkey(getKeyBytes(key)); - } - - private boolean delKey(byte[] key) { - execute('k', key); - return mError == NO_ERROR; + try { + return mBinder.get_pubkey(key); + } catch (RemoteException e) { + Log.w(TAG, "Cannot connect to keystore", e); + return null; + } } public boolean delKey(String key) { - return delKey(getKeyBytes(key)); - } - - private byte[] sign(byte[] keyName, byte[] data) { - final ArrayList<byte[]> values = execute('n', keyName, data); - return (values == null || values.isEmpty()) ? null : values.get(0); + try { + return mBinder.del_key(key) == NO_ERROR; + } catch (RemoteException e) { + Log.w(TAG, "Cannot connect to keystore", e); + return false; + } } public byte[] sign(String key, byte[] data) { - return sign(getKeyBytes(key), data); - } - - private boolean verify(byte[] keyName, byte[] data, byte[] signature) { - execute('v', keyName, data, signature); - return mError == NO_ERROR; + try { + return mBinder.sign(key, data); + } catch (RemoteException e) { + Log.w(TAG, "Cannot connect to keystore", e); + return null; + } } public boolean verify(String key, byte[] data, byte[] signature) { - return verify(getKeyBytes(key), data, signature); - } - - private boolean grant(byte[] key, byte[] uid) { - execute('x', key, uid); - return mError == NO_ERROR; + try { + return mBinder.verify(key, data, signature) == NO_ERROR; + } catch (RemoteException e) { + Log.w(TAG, "Cannot connect to keystore", e); + return false; + } } public boolean grant(String key, int uid) { - return grant(getKeyBytes(key), getUidBytes(uid)); - } - - private boolean ungrant(byte[] key, byte[] uid) { - execute('y', key, uid); - return mError == NO_ERROR; + try { + return mBinder.grant(key, uid) == NO_ERROR; + } catch (RemoteException e) { + Log.w(TAG, "Cannot connect to keystore", e); + return false; + } } public boolean ungrant(String key, int uid) { - return ungrant(getKeyBytes(key), getUidBytes(uid)); - } - - private long getmtime(byte[] key) { - final ArrayList<byte[]> values = execute('c', key); - if (values == null || values.isEmpty()) { - return -1L; + try { + return mBinder.ungrant(key, uid) == NO_ERROR; + } catch (RemoteException e) { + Log.w(TAG, "Cannot connect to keystore", e); + return false; } - - return Long.parseLong(new String(values.get(0))) * 1000L; } /** @@ -243,101 +242,15 @@ public class KeyStore { * epoch. Will return -1L if the key could not be found or other error. */ public long getmtime(String key) { - return getmtime(getKeyBytes(key)); - } - - public int getLastError() { - return mError; - } - - private ArrayList<byte[]> execute(int code, byte[]... parameters) { - mError = PROTOCOL_ERROR; - - for (byte[] parameter : parameters) { - if (parameter == null || parameter.length > 65535) { - return null; - } - } - - LocalSocket socket = new LocalSocket(); - try { - socket.connect(sAddress); - - OutputStream out = socket.getOutputStream(); - out.write(code); - for (byte[] parameter : parameters) { - out.write(parameter.length >> 8); - out.write(parameter.length); - out.write(parameter); - } - out.flush(); - socket.shutdownOutput(); - - InputStream in = socket.getInputStream(); - if ((code = in.read()) != NO_ERROR) { - if (code != -1) { - mError = code; - } - return null; - } - - ArrayList<byte[]> values = new ArrayList<byte[]>(); - while (true) { - int i, j; - if ((i = in.read()) == -1) { - break; - } - if ((j = in.read()) == -1) { - return null; - } - byte[] value = new byte[i << 8 | j]; - for (i = 0; i < value.length; i += j) { - if ((j = in.read(value, i, value.length - i)) == -1) { - return null; - } - } - values.add(value); - } - mError = NO_ERROR; - return values; - } catch (IOException e) { - // ignore - } finally { - try { - socket.close(); - } catch (IOException e) {} - } - return null; - } - - /** - * ModifiedUtf8 is used for key encoding to match the - * implementation of NativeCrypto.ENGINE_load_private_key. - */ - private static byte[] getKeyBytes(String string) { try { - int utfCount = (int) ModifiedUtf8.countBytes(string, false); - byte[] result = new byte[utfCount]; - ModifiedUtf8.encode(result, 0, string); - return result; - } catch (UTFDataFormatException e) { - throw new RuntimeException(e); - } - } - - private static String toKeyString(byte[] bytes) { - try { - return ModifiedUtf8.decode(bytes, new char[bytes.length], 0, bytes.length); - } catch (UTFDataFormatException e) { - throw new RuntimeException(e); + return mBinder.getmtime(key); + } catch (RemoteException e) { + Log.w(TAG, "Cannot connect to keystore", e); + return -1L; } } - private static byte[] getPasswordBytes(String password) { - return password.getBytes(Charsets.UTF_8); - } - - private static byte[] getUidBytes(int uid) { - return Integer.toString(uid).getBytes(Charsets.UTF_8); + public int getLastError() { + return mError; } } diff --git a/keystore/tests/src/android/security/KeyStoreTest.java b/keystore/tests/src/android/security/KeyStoreTest.java index 07a2d7b..07a2d7b 100755..100644 --- a/keystore/tests/src/android/security/KeyStoreTest.java +++ b/keystore/tests/src/android/security/KeyStoreTest.java diff --git a/libs/androidfw/ResourceTypes.cpp b/libs/androidfw/ResourceTypes.cpp index 0107da4..fc2cd9e 100644 --- a/libs/androidfw/ResourceTypes.cpp +++ b/libs/androidfw/ResourceTypes.cpp @@ -506,10 +506,6 @@ status_t ResStringPool::getError() const void ResStringPool::uninit() { mError = NO_INIT; - if (mOwnedData) { - free(mOwnedData); - mOwnedData = NULL; - } if (mHeader != NULL && mCache != NULL) { for (size_t x = 0; x < mHeader->stringCount; x++) { if (mCache[x] != NULL) { @@ -520,6 +516,10 @@ void ResStringPool::uninit() free(mCache); mCache = NULL; } + if (mOwnedData) { + free(mOwnedData); + mOwnedData = NULL; + } } /** @@ -1209,6 +1209,10 @@ status_t ResXMLTree::setTo(const void* data, size_t size, bool copyData) uninit(); mEventCode = START_DOCUMENT; + if (!data || !size) { + return (mError=BAD_TYPE); + } + if (copyData) { mOwnedData = malloc(size); if (mOwnedData == NULL) { diff --git a/libs/androidfw/tests/Android.mk b/libs/androidfw/tests/Android.mk index 39009b8..4ae23ec 100644 --- a/libs/androidfw/tests/Android.mk +++ b/libs/androidfw/tests/Android.mk @@ -10,36 +10,25 @@ test_src_files := \ ObbFile_test.cpp shared_libraries := \ - libandroidfw \ - libcutils \ - libutils \ - libbinder \ - libui \ - libstlport \ - libskia + libandroidfw \ + libcutils \ + libutils \ + libbinder \ + libui \ + libstlport \ + libskia static_libraries := \ - libgtest \ - libgtest_main - -c_includes := \ - bionic \ - bionic/libstdc++/include \ - external/gtest/include \ - external/stlport/stlport \ - external/skia/include/core - -module_tags := eng tests + libgtest \ + libgtest_main $(foreach file,$(test_src_files), \ $(eval include $(CLEAR_VARS)) \ $(eval LOCAL_SHARED_LIBRARIES := $(shared_libraries)) \ $(eval LOCAL_STATIC_LIBRARIES := $(static_libraries)) \ - $(eval LOCAL_C_INCLUDES := $(c_includes)) \ $(eval LOCAL_SRC_FILES := $(file)) \ $(eval LOCAL_MODULE := $(notdir $(file:%.cpp=%))) \ - $(eval LOCAL_MODULE_TAGS := $(module_tags)) \ - $(eval include $(BUILD_EXECUTABLE)) \ + $(eval include $(BUILD_NATIVE_TEST)) \ ) # Build the manual test programs. diff --git a/libs/androidfw/tests/InputEvent_test.cpp b/libs/androidfw/tests/InputEvent_test.cpp index ac5549c..e9164d1 100644 --- a/libs/androidfw/tests/InputEvent_test.cpp +++ b/libs/androidfw/tests/InputEvent_test.cpp @@ -19,7 +19,7 @@ #include <binder/Parcel.h> #include <math.h> -#include <SkMatrix.h> +#include <core/SkMatrix.h> namespace android { diff --git a/libs/hwui/FontRenderer.cpp b/libs/hwui/FontRenderer.cpp index 4e97c88..47784a4 100644 --- a/libs/hwui/FontRenderer.cpp +++ b/libs/hwui/FontRenderer.cpp @@ -45,10 +45,10 @@ FontRenderer::FontRenderer() { mInitialized = false; mMaxNumberOfQuads = 1024; mCurrentQuadIndex = 0; + mLastQuadIndex = 0; mTextMesh = NULL; mCurrentCacheTexture = NULL; - mLastCacheTexture = NULL; mLinearFiltering = false; @@ -116,7 +116,6 @@ FontRenderer::~FontRenderer() { void FontRenderer::flushAllAndInvalidate() { if (mCurrentQuadIndex != 0) { issueDrawCommand(); - mCurrentQuadIndex = 0; } for (uint32_t i = 0; i < mActiveFonts.size(); i++) { @@ -320,8 +319,17 @@ void FontRenderer::checkInit() { mInitialized = true; } +void FontRenderer::updateDrawParams() { + if (mCurrentQuadIndex != mLastQuadIndex) { + mDrawOffsets.add((uint16_t*)(mLastQuadIndex * sizeof(uint16_t) * 6)); + mDrawCounts.add(mCurrentQuadIndex - mLastQuadIndex); + mDrawCacheTextures.add(mCurrentCacheTexture); + mLastQuadIndex = mCurrentQuadIndex; + } +} + void FontRenderer::checkTextureUpdate() { - if (!mUploadTexture && mLastCacheTexture == mCurrentCacheTexture) { + if (!mUploadTexture) { return; } @@ -355,16 +363,11 @@ void FontRenderer::checkTextureUpdate() { } } - caches.activeTexture(0); - glBindTexture(GL_TEXTURE_2D, mCurrentCacheTexture->getTextureId()); - - mCurrentCacheTexture->setLinearFiltering(mLinearFiltering, false); - mLastCacheTexture = mCurrentCacheTexture; - mUploadTexture = false; } void FontRenderer::issueDrawCommand() { + updateDrawParams(); checkTextureUpdate(); Caches& caches = Caches::getInstance(); @@ -378,20 +381,33 @@ void FontRenderer::issueDrawCommand() { caches.bindTexCoordsVertexPointer(force, buffer + offset); } - glDrawElements(GL_TRIANGLES, mCurrentQuadIndex * 6, GL_UNSIGNED_SHORT, NULL); + for (uint32_t i = 0; i < mDrawOffsets.size(); i++) { + uint16_t* offset = mDrawOffsets[i]; + uint32_t count = mDrawCounts[i]; + CacheTexture* texture = mDrawCacheTextures[i]; + + caches.activeTexture(0); + glBindTexture(GL_TEXTURE_2D, texture->getTextureId()); + + texture->setLinearFiltering(mLinearFiltering, false); + + glDrawElements(GL_TRIANGLES, count * 6, GL_UNSIGNED_SHORT, offset); + } mDrawn = true; + + mCurrentQuadIndex = 0; + mLastQuadIndex = 0; + mDrawOffsets.clear(); + mDrawCounts.clear(); + mDrawCacheTextures.clear(); } void FontRenderer::appendMeshQuadNoClip(float x1, float y1, float u1, float v1, float x2, float y2, float u2, float v2, float x3, float y3, float u3, float v3, float x4, float y4, float u4, float v4, CacheTexture* texture) { if (texture != mCurrentCacheTexture) { - if (mCurrentQuadIndex != 0) { - // First, draw everything stored already which uses the previous texture - issueDrawCommand(); - mCurrentQuadIndex = 0; - } + updateDrawParams(); // Now use the new texture id mCurrentCacheTexture = texture; } @@ -443,7 +459,6 @@ void FontRenderer::appendMeshQuad(float x1, float y1, float u1, float v1, if (mCurrentQuadIndex == mMaxNumberOfQuads) { issueDrawCommand(); - mCurrentQuadIndex = 0; } } @@ -462,7 +477,6 @@ void FontRenderer::appendRotatedMeshQuad(float x1, float y1, float u1, float v1, if (mCurrentQuadIndex == mMaxNumberOfQuads) { issueDrawCommand(); - mCurrentQuadIndex = 0; } } @@ -544,7 +558,6 @@ void FontRenderer::finishRender() { if (mCurrentQuadIndex != 0) { issueDrawCommand(); - mCurrentQuadIndex = 0; } } diff --git a/libs/hwui/FontRenderer.h b/libs/hwui/FontRenderer.h index 405db09..09a3c25 100644 --- a/libs/hwui/FontRenderer.h +++ b/libs/hwui/FontRenderer.h @@ -138,6 +138,7 @@ private: void removeFont(const Font* font); + void updateDrawParams(); void checkTextureUpdate(); void setTextureDirty() { @@ -155,13 +156,13 @@ private: Vector<Font*> mActiveFonts; CacheTexture* mCurrentCacheTexture; - CacheTexture* mLastCacheTexture; bool mUploadTexture; // Pointer to vertex data to speed up frame to frame work float* mTextMesh; uint32_t mCurrentQuadIndex; + uint32_t mLastQuadIndex; uint32_t mMaxNumberOfQuads; uint32_t mIndexBufferID; @@ -174,6 +175,10 @@ private: bool mLinearFiltering; + Vector<uint16_t*> mDrawOffsets; + Vector<uint32_t> mDrawCounts; + Vector<CacheTexture*> mDrawCacheTextures; + /** We should consider multi-threading this code or using Renderscript **/ static void computeGaussianWeights(float* weights, int32_t radius); static void horizontalBlur(float* weights, int32_t radius, const uint8_t *source, uint8_t *dest, diff --git a/location/java/android/location/Country.java b/location/java/android/location/Country.java index 7c1485d..7c1485d 100755..100644 --- a/location/java/android/location/Country.java +++ b/location/java/android/location/Country.java diff --git a/location/java/android/location/INetInitiatedListener.aidl b/location/java/android/location/INetInitiatedListener.aidl index f2f5a32..f2f5a32 100755..100644 --- a/location/java/android/location/INetInitiatedListener.aidl +++ b/location/java/android/location/INetInitiatedListener.aidl diff --git a/location/java/com/android/internal/location/GpsNetInitiatedHandler.java b/location/java/com/android/internal/location/GpsNetInitiatedHandler.java index 57e2786..57e2786 100755..100644 --- a/location/java/com/android/internal/location/GpsNetInitiatedHandler.java +++ b/location/java/com/android/internal/location/GpsNetInitiatedHandler.java diff --git a/media/java/android/media/IAudioFocusDispatcher.aidl b/media/java/android/media/IAudioFocusDispatcher.aidl index 09575f7..09575f7 100755..100644 --- a/media/java/android/media/IAudioFocusDispatcher.aidl +++ b/media/java/android/media/IAudioFocusDispatcher.aidl diff --git a/media/java/android/media/MediaCodec.java b/media/java/android/media/MediaCodec.java index 99db066..d5515eb 100644 --- a/media/java/android/media/MediaCodec.java +++ b/media/java/android/media/MediaCodec.java @@ -16,6 +16,8 @@ package android.media; +import android.media.MediaCodecInfo; +import android.media.MediaCodecList; import android.media.MediaCrypto; import android.media.MediaFormat; import android.view.Surface; @@ -498,6 +500,22 @@ final public class MediaCodec { */ public native final void setVideoScalingMode(int mode); + /** + * Get the component name. If the codec was created by createDecoderByType + * or createEncoderByType, what component is chosen is not known beforehand. + */ + public native final String getName(); + + /** + * Get the codec info. If the codec was created by createDecoderByType + * or createEncoderByType, what component is chosen is not known beforehand, + * and thus the caller does not have the MediaCodecInfo. + */ + public MediaCodecInfo getCodecInfo() { + return MediaCodecList.getCodecInfoAt( + MediaCodecList.findCodecByName(getName())); + } + private native final ByteBuffer[] getBuffers(boolean input); private static native final void native_init(); diff --git a/media/java/android/media/MediaCodecList.java b/media/java/android/media/MediaCodecList.java index 1749934..2a60113 100644 --- a/media/java/android/media/MediaCodecList.java +++ b/media/java/android/media/MediaCodecList.java @@ -46,6 +46,8 @@ final public class MediaCodecList { /* package private */ static native final MediaCodecInfo.CodecCapabilities getCodecCapabilities(int index, String type); + /* package private */ static native final int findCodecByName(String codec); + private static native final void native_init(); private MediaCodecList() {} diff --git a/media/java/android/media/MediaScanner.java b/media/java/android/media/MediaScanner.java index 88cf4ac..0117d73 100644 --- a/media/java/android/media/MediaScanner.java +++ b/media/java/android/media/MediaScanner.java @@ -283,7 +283,7 @@ public class MediaScanner "Terror", "Indie", "Britpop", - "Negerpunk", + null, "Polsk Punk", "Beat", "Christian Gangsta", @@ -700,7 +700,7 @@ public class MediaScanner try { short genreIndex = Short.parseShort(number.toString()); if (genreIndex >= 0) { - if (genreIndex < ID3_GENRES.length) { + if (genreIndex < ID3_GENRES.length && ID3_GENRES[genreIndex] != null) { return ID3_GENRES[genreIndex]; } else if (genreIndex == 0xFF) { return null; diff --git a/media/java/android/media/Ringtone.java b/media/java/android/media/Ringtone.java index f190eb9..ebbfad9 100644 --- a/media/java/android/media/Ringtone.java +++ b/media/java/android/media/Ringtone.java @@ -18,6 +18,8 @@ package android.media; import android.content.ContentResolver; import android.content.Context; +import android.content.res.AssetFileDescriptor; +import android.content.res.Resources.NotFoundException; import android.database.Cursor; import android.net.Uri; import android.os.Binder; @@ -229,10 +231,14 @@ public class Ringtone { try { mRemotePlayer.play(mRemoteToken, canonicalUri, mStreamType); } catch (RemoteException e) { - Log.w(TAG, "Problem playing ringtone: " + e); + if (!playFallbackRingtone()) { + Log.w(TAG, "Problem playing ringtone: " + e); + } } } else { - Log.w(TAG, "Neither local nor remote playback available"); + if (!playFallbackRingtone()) { + Log.w(TAG, "Neither local nor remote playback available"); + } } } @@ -280,6 +286,43 @@ public class Ringtone { } } + private boolean playFallbackRingtone() { + if (mAudioManager.getStreamVolume(mStreamType) != 0) { + int ringtoneType = RingtoneManager.getDefaultType(mUri); + if (ringtoneType != -1 && + RingtoneManager.getActualDefaultRingtoneUri(mContext, ringtoneType) != null) { + // Default ringtone, try fallback ringtone. + try { + AssetFileDescriptor afd = mContext.getResources().openRawResourceFd( + com.android.internal.R.raw.fallbackring); + if (afd != null) { + mLocalPlayer = new MediaPlayer(); + if (afd.getDeclaredLength() < 0) { + mLocalPlayer.setDataSource(afd.getFileDescriptor()); + } else { + mLocalPlayer.setDataSource(afd.getFileDescriptor(), + afd.getStartOffset(), + afd.getDeclaredLength()); + } + mLocalPlayer.setAudioStreamType(mStreamType); + mLocalPlayer.prepare(); + mLocalPlayer.start(); + afd.close(); + return true; + } else { + Log.e(TAG, "Could not load fallback ringtone"); + } + } catch (IOException ioe) { + destroyLocalPlayer(); + Log.e(TAG, "Failed to open fallback ringtone"); + } catch (NotFoundException nfe) { + Log.e(TAG, "Fallback ringtone does not exist"); + } + } + } + return false; + } + void setTitle(String title) { mTitle = title; } diff --git a/media/java/android/media/audiofx/Visualizer.java b/media/java/android/media/audiofx/Visualizer.java index 9197ed8..9197ed8 100755..100644 --- a/media/java/android/media/audiofx/Visualizer.java +++ b/media/java/android/media/audiofx/Visualizer.java diff --git a/media/java/android/media/videoeditor/AudioTrack.java b/media/java/android/media/videoeditor/AudioTrack.java index c5cc2ca..c5cc2ca 100755..100644 --- a/media/java/android/media/videoeditor/AudioTrack.java +++ b/media/java/android/media/videoeditor/AudioTrack.java diff --git a/media/java/android/media/videoeditor/Effect.java b/media/java/android/media/videoeditor/Effect.java index 2f7ae03..2f7ae03 100755..100644 --- a/media/java/android/media/videoeditor/Effect.java +++ b/media/java/android/media/videoeditor/Effect.java diff --git a/media/java/android/media/videoeditor/EffectColor.java b/media/java/android/media/videoeditor/EffectColor.java index 6c5ac2d..6c5ac2d 100755..100644 --- a/media/java/android/media/videoeditor/EffectColor.java +++ b/media/java/android/media/videoeditor/EffectColor.java diff --git a/media/java/android/media/videoeditor/EffectKenBurns.java b/media/java/android/media/videoeditor/EffectKenBurns.java index 64be6b8..64be6b8 100755..100644 --- a/media/java/android/media/videoeditor/EffectKenBurns.java +++ b/media/java/android/media/videoeditor/EffectKenBurns.java diff --git a/media/java/android/media/videoeditor/ExtractAudioWaveformProgressListener.java b/media/java/android/media/videoeditor/ExtractAudioWaveformProgressListener.java index 7ba7de3..7ba7de3 100755..100644 --- a/media/java/android/media/videoeditor/ExtractAudioWaveformProgressListener.java +++ b/media/java/android/media/videoeditor/ExtractAudioWaveformProgressListener.java diff --git a/media/java/android/media/videoeditor/MediaImageItem.java b/media/java/android/media/videoeditor/MediaImageItem.java index 590b4ae..590b4ae 100755..100644 --- a/media/java/android/media/videoeditor/MediaImageItem.java +++ b/media/java/android/media/videoeditor/MediaImageItem.java diff --git a/media/java/android/media/videoeditor/MediaItem.java b/media/java/android/media/videoeditor/MediaItem.java index 4e9ea75..4e9ea75 100755..100644 --- a/media/java/android/media/videoeditor/MediaItem.java +++ b/media/java/android/media/videoeditor/MediaItem.java diff --git a/media/java/android/media/videoeditor/MediaProperties.java b/media/java/android/media/videoeditor/MediaProperties.java index cf518a5..cf518a5 100755..100644 --- a/media/java/android/media/videoeditor/MediaProperties.java +++ b/media/java/android/media/videoeditor/MediaProperties.java diff --git a/media/java/android/media/videoeditor/MediaVideoItem.java b/media/java/android/media/videoeditor/MediaVideoItem.java index bbcdf57..bbcdf57 100755..100644 --- a/media/java/android/media/videoeditor/MediaVideoItem.java +++ b/media/java/android/media/videoeditor/MediaVideoItem.java diff --git a/media/java/android/media/videoeditor/Overlay.java b/media/java/android/media/videoeditor/Overlay.java index a070eb4..a070eb4 100755..100644 --- a/media/java/android/media/videoeditor/Overlay.java +++ b/media/java/android/media/videoeditor/Overlay.java diff --git a/media/java/android/media/videoeditor/OverlayFrame.java b/media/java/android/media/videoeditor/OverlayFrame.java index d159df2..d159df2 100755..100644 --- a/media/java/android/media/videoeditor/OverlayFrame.java +++ b/media/java/android/media/videoeditor/OverlayFrame.java diff --git a/media/java/android/media/videoeditor/Transition.java b/media/java/android/media/videoeditor/Transition.java index fa9d26d..fa9d26d 100755..100644 --- a/media/java/android/media/videoeditor/Transition.java +++ b/media/java/android/media/videoeditor/Transition.java diff --git a/media/java/android/media/videoeditor/TransitionAlpha.java b/media/java/android/media/videoeditor/TransitionAlpha.java index 22788d4..22788d4 100755..100644 --- a/media/java/android/media/videoeditor/TransitionAlpha.java +++ b/media/java/android/media/videoeditor/TransitionAlpha.java diff --git a/media/java/android/media/videoeditor/TransitionCrossfade.java b/media/java/android/media/videoeditor/TransitionCrossfade.java index 417c64e..417c64e 100755..100644 --- a/media/java/android/media/videoeditor/TransitionCrossfade.java +++ b/media/java/android/media/videoeditor/TransitionCrossfade.java diff --git a/media/java/android/media/videoeditor/TransitionFadeBlack.java b/media/java/android/media/videoeditor/TransitionFadeBlack.java index da07cf0..da07cf0 100755..100644 --- a/media/java/android/media/videoeditor/TransitionFadeBlack.java +++ b/media/java/android/media/videoeditor/TransitionFadeBlack.java diff --git a/media/java/android/media/videoeditor/TransitionSliding.java b/media/java/android/media/videoeditor/TransitionSliding.java index 57610ab..57610ab 100755..100644 --- a/media/java/android/media/videoeditor/TransitionSliding.java +++ b/media/java/android/media/videoeditor/TransitionSliding.java diff --git a/media/java/android/media/videoeditor/VideoEditor.java b/media/java/android/media/videoeditor/VideoEditor.java index 08d27d4..08d27d4 100755..100644 --- a/media/java/android/media/videoeditor/VideoEditor.java +++ b/media/java/android/media/videoeditor/VideoEditor.java diff --git a/media/java/android/media/videoeditor/VideoEditorFactory.java b/media/java/android/media/videoeditor/VideoEditorFactory.java index 85c329f..85c329f 100755..100644 --- a/media/java/android/media/videoeditor/VideoEditorFactory.java +++ b/media/java/android/media/videoeditor/VideoEditorFactory.java diff --git a/media/java/android/media/videoeditor/VideoEditorImpl.java b/media/java/android/media/videoeditor/VideoEditorImpl.java index 2446c2f..2446c2f 100755..100644 --- a/media/java/android/media/videoeditor/VideoEditorImpl.java +++ b/media/java/android/media/videoeditor/VideoEditorImpl.java diff --git a/media/java/android/media/videoeditor/VideoEditorProfile.java b/media/java/android/media/videoeditor/VideoEditorProfile.java index 202a2df..202a2df 100755..100644 --- a/media/java/android/media/videoeditor/VideoEditorProfile.java +++ b/media/java/android/media/videoeditor/VideoEditorProfile.java diff --git a/media/java/android/media/videoeditor/WaveformData.java b/media/java/android/media/videoeditor/WaveformData.java index 6c10e3c..6c10e3c 100755..100644 --- a/media/java/android/media/videoeditor/WaveformData.java +++ b/media/java/android/media/videoeditor/WaveformData.java diff --git a/media/java/android/mtp/MtpDatabase.java b/media/java/android/mtp/MtpDatabase.java index 487585e..487585e 100755..100644 --- a/media/java/android/mtp/MtpDatabase.java +++ b/media/java/android/mtp/MtpDatabase.java diff --git a/media/jni/android_media_MediaCodec.cpp b/media/jni/android_media_MediaCodec.cpp index f91c9a0..dab2de1 100644 --- a/media/jni/android_media_MediaCodec.cpp +++ b/media/jni/android_media_MediaCodec.cpp @@ -264,6 +264,20 @@ status_t JMediaCodec::getBuffers( return OK; } +status_t JMediaCodec::getName(JNIEnv *env, jstring *nameStr) const { + AString name; + + status_t err = mCodec->getName(&name); + + if (err != OK) { + return err; + } + + *nameStr = env->NewStringUTF(name.c_str()); + + return OK; +} + void JMediaCodec::setVideoScalingMode(int mode) { if (mSurfaceTextureClient != NULL) { native_window_set_scaling_mode(mSurfaceTextureClient.get(), mode); @@ -706,6 +720,29 @@ static jobjectArray android_media_MediaCodec_getBuffers( return NULL; } +static jobject android_media_MediaCodec_getName( + JNIEnv *env, jobject thiz) { + ALOGV("android_media_MediaCodec_getName"); + + sp<JMediaCodec> codec = getMediaCodec(env, thiz); + + if (codec == NULL) { + jniThrowException(env, "java/lang/IllegalStateException", NULL); + return NULL; + } + + jstring name; + status_t err = codec->getName(env, &name); + + if (err == OK) { + return name; + } + + throwExceptionAsNecessary(env, err); + + return NULL; +} + static void android_media_MediaCodec_setVideoScalingMode( JNIEnv *env, jobject thiz, jint mode) { sp<JMediaCodec> codec = getMediaCodec(env, thiz); @@ -826,6 +863,9 @@ static JNINativeMethod gMethods[] = { { "getBuffers", "(Z)[Ljava/nio/ByteBuffer;", (void *)android_media_MediaCodec_getBuffers }, + { "getName", "()Ljava/lang/String;", + (void *)android_media_MediaCodec_getName }, + { "setVideoScalingMode", "(I)V", (void *)android_media_MediaCodec_setVideoScalingMode }, diff --git a/media/jni/android_media_MediaCodec.h b/media/jni/android_media_MediaCodec.h index 4936b53..bc9ad50 100644 --- a/media/jni/android_media_MediaCodec.h +++ b/media/jni/android_media_MediaCodec.h @@ -81,6 +81,8 @@ struct JMediaCodec : public RefBase { status_t getBuffers( JNIEnv *env, bool input, jobjectArray *bufArray) const; + status_t getName(JNIEnv *env, jstring *name) const; + void setVideoScalingMode(int mode); protected: diff --git a/media/jni/android_media_MediaCodecList.cpp b/media/jni/android_media_MediaCodecList.cpp index 0638b4a..04430ec 100644 --- a/media/jni/android_media_MediaCodecList.cpp +++ b/media/jni/android_media_MediaCodecList.cpp @@ -44,6 +44,25 @@ static jstring android_media_MediaCodecList_getCodecName( return env->NewStringUTF(name); } +static jint android_media_MediaCodecList_findCodecByName( + JNIEnv *env, jobject thiz, jstring name) { + if (name == NULL) { + jniThrowException(env, "java/lang/IllegalArgumentException", NULL); + return -ENOENT; + } + + const char *nameStr = env->GetStringUTFChars(name, NULL); + + if (nameStr == NULL) { + // Out of memory exception already pending. + return -ENOENT; + } + + jint ret = MediaCodecList::getInstance()->findCodecByName(nameStr); + env->ReleaseStringUTFChars(name, nameStr); + return ret; +} + static jboolean android_media_MediaCodecList_isEncoder( JNIEnv *env, jobject thiz, jint index) { return MediaCodecList::getInstance()->isEncoder(index); @@ -180,6 +199,9 @@ static JNINativeMethod gMethods[] = { "(ILjava/lang/String;)Landroid/media/MediaCodecInfo$CodecCapabilities;", (void *)android_media_MediaCodecList_getCodecCapabilities }, + { "findCodecByName", "(Ljava/lang/String;)I", + (void *)android_media_MediaCodecList_findCodecByName }, + { "native_init", "()V", (void *)android_media_MediaCodecList_native_init }, }; diff --git a/media/jni/mediaeditor/Android.mk b/media/jni/mediaeditor/Android.mk index 040d2ab..040d2ab 100755..100644 --- a/media/jni/mediaeditor/Android.mk +++ b/media/jni/mediaeditor/Android.mk diff --git a/media/jni/mediaeditor/VideoBrowserInternal.h b/media/jni/mediaeditor/VideoBrowserInternal.h index f4eaab8..f4eaab8 100755..100644 --- a/media/jni/mediaeditor/VideoBrowserInternal.h +++ b/media/jni/mediaeditor/VideoBrowserInternal.h diff --git a/media/jni/mediaeditor/VideoBrowserMain.h b/media/jni/mediaeditor/VideoBrowserMain.h index 00b5e05..00b5e05 100755..100644 --- a/media/jni/mediaeditor/VideoBrowserMain.h +++ b/media/jni/mediaeditor/VideoBrowserMain.h diff --git a/media/jni/mediaeditor/VideoEditorClasses.cpp b/media/jni/mediaeditor/VideoEditorClasses.cpp index 4982a47..4982a47 100755..100644 --- a/media/jni/mediaeditor/VideoEditorClasses.cpp +++ b/media/jni/mediaeditor/VideoEditorClasses.cpp diff --git a/media/jni/mediaeditor/VideoEditorClasses.h b/media/jni/mediaeditor/VideoEditorClasses.h index a4c82a8..a4c82a8 100755..100644 --- a/media/jni/mediaeditor/VideoEditorClasses.h +++ b/media/jni/mediaeditor/VideoEditorClasses.h diff --git a/media/jni/mediaeditor/VideoEditorJava.cpp b/media/jni/mediaeditor/VideoEditorJava.cpp index bcf9099..bcf9099 100755..100644 --- a/media/jni/mediaeditor/VideoEditorJava.cpp +++ b/media/jni/mediaeditor/VideoEditorJava.cpp diff --git a/media/jni/mediaeditor/VideoEditorJava.h b/media/jni/mediaeditor/VideoEditorJava.h index 0a2db08..0a2db08 100755..100644 --- a/media/jni/mediaeditor/VideoEditorJava.h +++ b/media/jni/mediaeditor/VideoEditorJava.h diff --git a/media/jni/mediaeditor/VideoEditorLogging.h b/media/jni/mediaeditor/VideoEditorLogging.h index 479d8b6..479d8b6 100755..100644 --- a/media/jni/mediaeditor/VideoEditorLogging.h +++ b/media/jni/mediaeditor/VideoEditorLogging.h diff --git a/media/jni/mediaeditor/VideoEditorMain.cpp b/media/jni/mediaeditor/VideoEditorMain.cpp index 41c28c0..41c28c0 100755..100644 --- a/media/jni/mediaeditor/VideoEditorMain.cpp +++ b/media/jni/mediaeditor/VideoEditorMain.cpp diff --git a/media/jni/mediaeditor/VideoEditorOsal.cpp b/media/jni/mediaeditor/VideoEditorOsal.cpp index a8c08ac..a8c08ac 100755..100644 --- a/media/jni/mediaeditor/VideoEditorOsal.cpp +++ b/media/jni/mediaeditor/VideoEditorOsal.cpp diff --git a/media/jni/mediaeditor/VideoEditorOsal.h b/media/jni/mediaeditor/VideoEditorOsal.h index 7a6f5ea..7a6f5ea 100755..100644 --- a/media/jni/mediaeditor/VideoEditorOsal.h +++ b/media/jni/mediaeditor/VideoEditorOsal.h diff --git a/media/jni/mediaeditor/VideoEditorPropertiesMain.cpp b/media/jni/mediaeditor/VideoEditorPropertiesMain.cpp index c8fb263..c8fb263 100755..100644 --- a/media/jni/mediaeditor/VideoEditorPropertiesMain.cpp +++ b/media/jni/mediaeditor/VideoEditorPropertiesMain.cpp diff --git a/media/jni/mediaeditor/VideoEditorThumbnailMain.cpp b/media/jni/mediaeditor/VideoEditorThumbnailMain.cpp index 1508246..1508246 100755..100644 --- a/media/jni/mediaeditor/VideoEditorThumbnailMain.cpp +++ b/media/jni/mediaeditor/VideoEditorThumbnailMain.cpp diff --git a/media/jni/mediaeditor/VideoEditorThumbnailMain.h b/media/jni/mediaeditor/VideoEditorThumbnailMain.h index 0b3b0c8..0b3b0c8 100755..100644 --- a/media/jni/mediaeditor/VideoEditorThumbnailMain.h +++ b/media/jni/mediaeditor/VideoEditorThumbnailMain.h diff --git a/media/mca/structgen.py b/media/mca/structgen.py index 437326c..437326c 100644..100755 --- a/media/mca/structgen.py +++ b/media/mca/structgen.py diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaFrameworkPerfTestRunner.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaFrameworkPerfTestRunner.java index 3d5905d..3d5905d 100755..100644 --- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaFrameworkPerfTestRunner.java +++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaFrameworkPerfTestRunner.java diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaFrameworkPowerTestRunner.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaFrameworkPowerTestRunner.java index 34db4db..34db4db 100755..100644 --- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaFrameworkPowerTestRunner.java +++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaFrameworkPowerTestRunner.java diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaFrameworkTestRunner.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaFrameworkTestRunner.java index 92ac9eb..92ac9eb 100755..100644 --- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaFrameworkTestRunner.java +++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaFrameworkTestRunner.java diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaFrameworkUnitTestRunner.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaFrameworkUnitTestRunner.java index 62af3f3..62af3f3 100755..100644 --- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaFrameworkUnitTestRunner.java +++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaFrameworkUnitTestRunner.java diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaNames.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaNames.java index f3a91c5..f3a91c5 100755..100644 --- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaNames.java +++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaNames.java diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaPlayerStressTestRunner.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaPlayerStressTestRunner.java index 0cd784c..0cd784c 100755..100644 --- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaPlayerStressTestRunner.java +++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaPlayerStressTestRunner.java diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaRecorderStressTestRunner.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaRecorderStressTestRunner.java index 95e7b5e..95e7b5e 100755..100644 --- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaRecorderStressTestRunner.java +++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaRecorderStressTestRunner.java diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaTestUtil.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaTestUtil.java index a80fc13..a80fc13 100755..100644 --- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaTestUtil.java +++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaTestUtil.java diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/videoeditor/MediaItemThumbnailTest.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/videoeditor/MediaItemThumbnailTest.java index 7dfab7d..7dfab7d 100755..100644 --- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/videoeditor/MediaItemThumbnailTest.java +++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/videoeditor/MediaItemThumbnailTest.java diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/videoeditor/MediaPropertiesTest.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/videoeditor/MediaPropertiesTest.java index 34cf9f0..34cf9f0 100755..100644 --- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/videoeditor/MediaPropertiesTest.java +++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/videoeditor/MediaPropertiesTest.java diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/videoeditor/VideoEditorExportTest.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/videoeditor/VideoEditorExportTest.java index 69ecf0d..69ecf0d 100755..100644 --- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/videoeditor/VideoEditorExportTest.java +++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/videoeditor/VideoEditorExportTest.java diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/stress/VideoEditorStressTest.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/stress/VideoEditorStressTest.java index 7784c7b..7784c7b 100755..100644 --- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/stress/VideoEditorStressTest.java +++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/stress/VideoEditorStressTest.java diff --git a/media/tests/ScoAudioTest/Android.mk b/media/tests/ScoAudioTest/Android.mk index ab12865..ab12865 100755..100644 --- a/media/tests/ScoAudioTest/Android.mk +++ b/media/tests/ScoAudioTest/Android.mk diff --git a/media/tests/ScoAudioTest/AndroidManifest.xml b/media/tests/ScoAudioTest/AndroidManifest.xml index 8ff973e..8ff973e 100755..100644 --- a/media/tests/ScoAudioTest/AndroidManifest.xml +++ b/media/tests/ScoAudioTest/AndroidManifest.xml diff --git a/media/tests/ScoAudioTest/res/drawable/icon.png b/media/tests/ScoAudioTest/res/drawable/icon.png Binary files differindex 64e3601..64e3601 100755..100644 --- a/media/tests/ScoAudioTest/res/drawable/icon.png +++ b/media/tests/ScoAudioTest/res/drawable/icon.png diff --git a/media/tests/ScoAudioTest/res/drawable/record.png b/media/tests/ScoAudioTest/res/drawable/record.png Binary files differindex ae518d5..ae518d5 100755..100644 --- a/media/tests/ScoAudioTest/res/drawable/record.png +++ b/media/tests/ScoAudioTest/res/drawable/record.png diff --git a/media/tests/ScoAudioTest/res/drawable/stop.png b/media/tests/ScoAudioTest/res/drawable/stop.png Binary files differindex 83f012c..83f012c 100755..100644 --- a/media/tests/ScoAudioTest/res/drawable/stop.png +++ b/media/tests/ScoAudioTest/res/drawable/stop.png diff --git a/media/tests/ScoAudioTest/res/layout/scoaudiotest.xml b/media/tests/ScoAudioTest/res/layout/scoaudiotest.xml index b769a0c..b769a0c 100755..100644 --- a/media/tests/ScoAudioTest/res/layout/scoaudiotest.xml +++ b/media/tests/ScoAudioTest/res/layout/scoaudiotest.xml diff --git a/media/tests/ScoAudioTest/res/values/strings.xml b/media/tests/ScoAudioTest/res/values/strings.xml index c3ff6d5..c3ff6d5 100755..100644 --- a/media/tests/ScoAudioTest/res/values/strings.xml +++ b/media/tests/ScoAudioTest/res/values/strings.xml diff --git a/media/tests/contents/media_api/goldenThumbnail.png b/media/tests/contents/media_api/goldenThumbnail.png Binary files differindex 3bb6ed2..3bb6ed2 100755..100644 --- a/media/tests/contents/media_api/goldenThumbnail.png +++ b/media/tests/contents/media_api/goldenThumbnail.png diff --git a/media/tests/contents/media_api/music/MP3_48KHz_128kbps_s_1_17.mp3 b/media/tests/contents/media_api/music/MP3_48KHz_128kbps_s_1_17.mp3 Binary files differindex e0d6a17..e0d6a17 100755..100644 --- a/media/tests/contents/media_api/music/MP3_48KHz_128kbps_s_1_17.mp3 +++ b/media/tests/contents/media_api/music/MP3_48KHz_128kbps_s_1_17.mp3 diff --git a/media/tests/contents/media_api/music/SHORTMP3.mp3 b/media/tests/contents/media_api/music/SHORTMP3.mp3 Binary files differindex 8b51b5d..8b51b5d 100755..100644 --- a/media/tests/contents/media_api/music/SHORTMP3.mp3 +++ b/media/tests/contents/media_api/music/SHORTMP3.mp3 diff --git a/media/tests/contents/media_api/music/ants.mid b/media/tests/contents/media_api/music/ants.mid Binary files differindex d4ead53..d4ead53 100755..100644 --- a/media/tests/contents/media_api/music/ants.mid +++ b/media/tests/contents/media_api/music/ants.mid diff --git a/media/tests/contents/media_api/music/bzk_chic.wav b/media/tests/contents/media_api/music/bzk_chic.wav Binary files differindex bab1a6b..bab1a6b 100755..100644 --- a/media/tests/contents/media_api/music/bzk_chic.wav +++ b/media/tests/contents/media_api/music/bzk_chic.wav diff --git a/media/tests/contents/media_api/music/test_amr_ietf.amr b/media/tests/contents/media_api/music/test_amr_ietf.amr Binary files differindex 540794c..540794c 100755..100644 --- a/media/tests/contents/media_api/music/test_amr_ietf.amr +++ b/media/tests/contents/media_api/music/test_amr_ietf.amr diff --git a/media/tests/contents/media_api/video/H263_500_AMRNB_12.3gp b/media/tests/contents/media_api/video/H263_500_AMRNB_12.3gp Binary files differindex 46bb2b1..46bb2b1 100755..100644 --- a/media/tests/contents/media_api/video/H263_500_AMRNB_12.3gp +++ b/media/tests/contents/media_api/video/H263_500_AMRNB_12.3gp diff --git a/media/tests/contents/media_api/video/H263_56_AAC_24.3gp b/media/tests/contents/media_api/video/H263_56_AAC_24.3gp Binary files differindex 1fb1192..1fb1192 100755..100644 --- a/media/tests/contents/media_api/video/H263_56_AAC_24.3gp +++ b/media/tests/contents/media_api/video/H263_56_AAC_24.3gp diff --git a/media/tests/contents/media_api/video/H263_56_AMRNB_6.3gp b/media/tests/contents/media_api/video/H263_56_AMRNB_6.3gp Binary files differindex b6eb6a1..b6eb6a1 100755..100644 --- a/media/tests/contents/media_api/video/H263_56_AMRNB_6.3gp +++ b/media/tests/contents/media_api/video/H263_56_AMRNB_6.3gp diff --git a/media/tests/contents/media_api/video/H264_320_AAC_64.3gp b/media/tests/contents/media_api/video/H264_320_AAC_64.3gp Binary files differindex 04680ce..04680ce 100755..100644 --- a/media/tests/contents/media_api/video/H264_320_AAC_64.3gp +++ b/media/tests/contents/media_api/video/H264_320_AAC_64.3gp diff --git a/media/tests/contents/media_api/video/H264_320_AMRNB_6.3gp b/media/tests/contents/media_api/video/H264_320_AMRNB_6.3gp Binary files differindex bc533a2..bc533a2 100755..100644 --- a/media/tests/contents/media_api/video/H264_320_AMRNB_6.3gp +++ b/media/tests/contents/media_api/video/H264_320_AMRNB_6.3gp diff --git a/media/tests/contents/media_api/video/H264_500_AAC_128.3gp b/media/tests/contents/media_api/video/H264_500_AAC_128.3gp Binary files differindex 05d67ea..05d67ea 100755..100644 --- a/media/tests/contents/media_api/video/H264_500_AAC_128.3gp +++ b/media/tests/contents/media_api/video/H264_500_AAC_128.3gp diff --git a/media/tests/contents/media_api/video/H264_HVGA_500_NO_AUDIO.3gp b/media/tests/contents/media_api/video/H264_HVGA_500_NO_AUDIO.3gp Binary files differindex 13642b2..13642b2 100755..100644 --- a/media/tests/contents/media_api/video/H264_HVGA_500_NO_AUDIO.3gp +++ b/media/tests/contents/media_api/video/H264_HVGA_500_NO_AUDIO.3gp diff --git a/media/tests/contents/media_api/video/H264_QVGA_500_NO_AUDIO.3gp b/media/tests/contents/media_api/video/H264_QVGA_500_NO_AUDIO.3gp Binary files differindex 13642b2..13642b2 100755..100644 --- a/media/tests/contents/media_api/video/H264_QVGA_500_NO_AUDIO.3gp +++ b/media/tests/contents/media_api/video/H264_QVGA_500_NO_AUDIO.3gp diff --git a/media/tests/contents/media_api/video/MPEG4_320_AAC_64.mp4 b/media/tests/contents/media_api/video/MPEG4_320_AAC_64.mp4 Binary files differindex 90f1856..90f1856 100755..100644 --- a/media/tests/contents/media_api/video/MPEG4_320_AAC_64.mp4 +++ b/media/tests/contents/media_api/video/MPEG4_320_AAC_64.mp4 diff --git a/media/tests/contents/media_api/video/big-buck-bunny_trailer.webm b/media/tests/contents/media_api/video/big-buck-bunny_trailer.webm Binary files differindex 6a17395..6a17395 100755..100644 --- a/media/tests/contents/media_api/video/big-buck-bunny_trailer.webm +++ b/media/tests/contents/media_api/video/big-buck-bunny_trailer.webm diff --git a/media/tests/contents/media_api/video/border_large.3gp b/media/tests/contents/media_api/video/border_large.3gp Binary files differindex e622160..e622160 100755..100644 --- a/media/tests/contents/media_api/video/border_large.3gp +++ b/media/tests/contents/media_api/video/border_large.3gp diff --git a/media/tests/contents/media_api/videoeditor/H264_BP_960x720_25fps_800kbps_AACLC_48Khz_192Kbps_s_1_17.mp4 b/media/tests/contents/media_api/videoeditor/H264_BP_960x720_25fps_800kbps_AACLC_48Khz_192Kbps_s_1_17.mp4 Binary files differindex be050dc..be050dc 100755..100644 --- a/media/tests/contents/media_api/videoeditor/H264_BP_960x720_25fps_800kbps_AACLC_48Khz_192Kbps_s_1_17.mp4 +++ b/media/tests/contents/media_api/videoeditor/H264_BP_960x720_25fps_800kbps_AACLC_48Khz_192Kbps_s_1_17.mp4 diff --git a/media/tests/contents/media_api/videoeditor/IMG_640x480_Overlay2.png b/media/tests/contents/media_api/videoeditor/IMG_640x480_Overlay2.png Binary files differindex 0f32131a..0f32131a 100755..100644 --- a/media/tests/contents/media_api/videoeditor/IMG_640x480_Overlay2.png +++ b/media/tests/contents/media_api/videoeditor/IMG_640x480_Overlay2.png diff --git a/native/copy-to-ndk.sh b/native/copy-to-ndk.sh index 90ff556..90ff556 100644..100755 --- a/native/copy-to-ndk.sh +++ b/native/copy-to-ndk.sh diff --git a/packages/DefaultContainerService/Android.mk b/packages/DefaultContainerService/Android.mk index 56b8005..56b8005 100755..100644 --- a/packages/DefaultContainerService/Android.mk +++ b/packages/DefaultContainerService/Android.mk diff --git a/packages/DefaultContainerService/AndroidManifest.xml b/packages/DefaultContainerService/AndroidManifest.xml index 3dcd232..3dcd232 100755..100644 --- a/packages/DefaultContainerService/AndroidManifest.xml +++ b/packages/DefaultContainerService/AndroidManifest.xml diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java index 242fb97..242fb97 100755..100644 --- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java +++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java diff --git a/services/java/com/android/server/NotificationManagerService.java b/services/java/com/android/server/NotificationManagerService.java index e2be577..e2be577 100755..100644 --- a/services/java/com/android/server/NotificationManagerService.java +++ b/services/java/com/android/server/NotificationManagerService.java diff --git a/services/java/com/android/server/VibratorService.java b/services/java/com/android/server/VibratorService.java index df91dec..df91dec 100755..100644 --- a/services/java/com/android/server/VibratorService.java +++ b/services/java/com/android/server/VibratorService.java diff --git a/services/java/com/android/server/am/ActivityStack.java b/services/java/com/android/server/am/ActivityStack.java index 4546dc3..4546dc3 100755..100644 --- a/services/java/com/android/server/am/ActivityStack.java +++ b/services/java/com/android/server/am/ActivityStack.java diff --git a/services/java/com/android/server/am/package.html b/services/java/com/android/server/am/package.html index c9f96a6..c9f96a6 100755..100644 --- a/services/java/com/android/server/am/package.html +++ b/services/java/com/android/server/am/package.html diff --git a/services/java/com/android/server/location/ComprehensiveCountryDetector.java b/services/java/com/android/server/location/ComprehensiveCountryDetector.java index 354858b..354858b 100755..100644 --- a/services/java/com/android/server/location/ComprehensiveCountryDetector.java +++ b/services/java/com/android/server/location/ComprehensiveCountryDetector.java diff --git a/services/java/com/android/server/location/GpsLocationProvider.java b/services/java/com/android/server/location/GpsLocationProvider.java index c272da4..c272da4 100755..100644 --- a/services/java/com/android/server/location/GpsLocationProvider.java +++ b/services/java/com/android/server/location/GpsLocationProvider.java diff --git a/services/java/com/android/server/location/LocationBasedCountryDetector.java b/services/java/com/android/server/location/LocationBasedCountryDetector.java index 03db621..03db621 100755..100644 --- a/services/java/com/android/server/location/LocationBasedCountryDetector.java +++ b/services/java/com/android/server/location/LocationBasedCountryDetector.java diff --git a/services/java/com/android/server/net/NetworkStatsService.java b/services/java/com/android/server/net/NetworkStatsService.java index 7101520..67eaad3 100644 --- a/services/java/com/android/server/net/NetworkStatsService.java +++ b/services/java/com/android/server/net/NetworkStatsService.java @@ -940,14 +940,14 @@ public class NetworkStatsService extends INetworkStatsService.Stub { } private void performPoll(int flags) { + // try refreshing time source when stale + if (mTime.getCacheAge() > mSettings.getTimeCacheMaxAge()) { + mTime.forceRefresh(); + } + synchronized (mStatsLock) { mWakeLock.acquire(); - // try refreshing time source when stale - if (mTime.getCacheAge() > mSettings.getTimeCacheMaxAge()) { - mTime.forceRefresh(); - } - try { performPollLocked(flags); } finally { diff --git a/services/java/com/android/server/updates/CertPinInstallReceiver.java b/services/java/com/android/server/updates/CertPinInstallReceiver.java new file mode 100644 index 0000000..c03fbc3 --- /dev/null +++ b/services/java/com/android/server/updates/CertPinInstallReceiver.java @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.server.updates; + +public class CertPinInstallReceiver extends ConfigUpdateInstallReceiver { + + public CertPinInstallReceiver() { + super("/data/misc/keychain/", "pins", "metadata/", "version"); + } +} diff --git a/services/java/com/android/server/updatable/ConfigUpdateInstallReceiver.java b/services/java/com/android/server/updates/ConfigUpdateInstallReceiver.java index 4480151..4480151 100644 --- a/services/java/com/android/server/updatable/ConfigUpdateInstallReceiver.java +++ b/services/java/com/android/server/updates/ConfigUpdateInstallReceiver.java diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java index 9ba83d0..9ba83d0 100755..100644 --- a/services/java/com/android/server/wm/WindowManagerService.java +++ b/services/java/com/android/server/wm/WindowManagerService.java diff --git a/services/jni/com_android_server_location_GpsLocationProvider.cpp b/services/jni/com_android_server_location_GpsLocationProvider.cpp index 50bd46e..50bd46e 100755..100644 --- a/services/jni/com_android_server_location_GpsLocationProvider.cpp +++ b/services/jni/com_android_server_location_GpsLocationProvider.cpp diff --git a/services/tests/servicestests/src/com/android/server/location/LocationBasedCountryDetectorTest.java b/services/tests/servicestests/src/com/android/server/location/LocationBasedCountryDetectorTest.java index 5f5d668..5f5d668 100755..100644 --- a/services/tests/servicestests/src/com/android/server/location/LocationBasedCountryDetectorTest.java +++ b/services/tests/servicestests/src/com/android/server/location/LocationBasedCountryDetectorTest.java diff --git a/services/tests/servicestests/src/com/android/server/updates/CertPinInstallReceiverTest.java b/services/tests/servicestests/src/com/android/server/updates/CertPinInstallReceiverTest.java new file mode 100644 index 0000000..b6742a1 --- /dev/null +++ b/services/tests/servicestests/src/com/android/server/updates/CertPinInstallReceiverTest.java @@ -0,0 +1,243 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.server.updates; + +import android.content.Context; +import android.content.Intent; +import android.test.AndroidTestCase; +import android.provider.Settings; +import android.util.Base64; +import android.util.Log; + +import java.io.ByteArrayInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.FileWriter; +import java.io.IOException; +import java.io.InputStream; +import java.security.cert.CertificateFactory; +import java.security.cert.Certificate; +import java.security.cert.X509Certificate; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.security.PrivateKey; +import java.security.Signature; +import java.security.spec.PKCS8EncodedKeySpec; +import java.security.KeyFactory; +import java.util.HashSet; +import java.io.*; +import libcore.io.IoUtils; + +/** + * Tests for {@link com.android.server.CertPinInstallReceiver} + */ +public class CertPinInstallReceiverTest extends AndroidTestCase { + + private static final String TAG = "CertPinInstallReceiverTest"; + + private static final String PINLIST_ROOT = System.getenv("ANDROID_DATA") + "/misc/keychain/"; + + public static final String PINLIST_CONTENT_PATH = PINLIST_ROOT + "pins"; + public static final String PINLIST_METADATA_PATH = PINLIST_CONTENT_PATH + "metadata"; + + public static final String PINLIST_CONTENT_URL_KEY = "pinlist_content_url"; + public static final String PINLIST_METADATA_URL_KEY = "pinlist_metadata_url"; + public static final String PINLIST_CERTIFICATE_KEY = "config_update_certificate"; + public static final String PINLIST_VERSION_KEY = "pinlist_version"; + + private static final String EXTRA_CONTENT_PATH = "CONTENT_PATH"; + private static final String EXTRA_REQUIRED_HASH = "REQUIRED_HASH"; + private static final String EXTRA_SIGNATURE = "SIGNATURE"; + private static final String EXTRA_VERSION_NUMBER = "VERSION"; + + public static final String TEST_CERT = "" + + "MIIDsjCCAxugAwIBAgIJAPLf2gS0zYGUMA0GCSqGSIb3DQEBBQUAMIGYMQswCQYDVQQGEwJVUzET" + + "MBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEPMA0GA1UEChMGR29v" + + "Z2xlMRAwDgYDVQQLEwd0ZXN0aW5nMRYwFAYDVQQDEw1HZXJlbXkgQ29uZHJhMSEwHwYJKoZIhvcN" + + "AQkBFhJnY29uZHJhQGdvb2dsZS5jb20wHhcNMTIwNzE0MTc1MjIxWhcNMTIwODEzMTc1MjIxWjCB" + + "mDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDU1vdW50YWluIFZp" + + "ZXcxDzANBgNVBAoTBkdvb2dsZTEQMA4GA1UECxMHdGVzdGluZzEWMBQGA1UEAxMNR2VyZW15IENv" + + "bmRyYTEhMB8GCSqGSIb3DQEJARYSZ2NvbmRyYUBnb29nbGUuY29tMIGfMA0GCSqGSIb3DQEBAQUA" + + "A4GNADCBiQKBgQCjGGHATBYlmas+0sEECkno8LZ1KPglb/mfe6VpCT3GhSr+7br7NG/ZwGZnEhLq" + + "E7YIH4fxltHmQC3Tz+jM1YN+kMaQgRRjo/LBCJdOKaMwUbkVynAH6OYsKevjrOPk8lfM5SFQzJMG" + + "sA9+Tfopr5xg0BwZ1vA/+E3mE7Tr3M2UvwIDAQABo4IBADCB/TAdBgNVHQ4EFgQUhzkS9E6G+x8W" + + "L4EsmRjDxu28tHUwgc0GA1UdIwSBxTCBwoAUhzkS9E6G+x8WL4EsmRjDxu28tHWhgZ6kgZswgZgx" + + "CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3" + + "MQ8wDQYDVQQKEwZHb29nbGUxEDAOBgNVBAsTB3Rlc3RpbmcxFjAUBgNVBAMTDUdlcmVteSBDb25k" + + "cmExITAfBgkqhkiG9w0BCQEWEmdjb25kcmFAZ29vZ2xlLmNvbYIJAPLf2gS0zYGUMAwGA1UdEwQF" + + "MAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAYiugFDmbDOQ2U/+mqNt7o8ftlEo9SJrns6O8uTtK6AvR" + + "orDrR1AXTXkuxwLSbmVfedMGOZy7Awh7iZa8hw5x9XmUudfNxvmrKVEwGQY2DZ9PXbrnta/dwbhK" + + "mWfoepESVbo7CKIhJp8gRW0h1Z55ETXD57aGJRvQS4pxkP8ANhM="; + + + public static final String TEST_KEY = "" + + "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKMYYcBMFiWZqz7SwQQKSejwtnUo" + + "+CVv+Z97pWkJPcaFKv7tuvs0b9nAZmcSEuoTtggfh/GW0eZALdPP6MzVg36QxpCBFGOj8sEIl04p" + + "ozBRuRXKcAfo5iwp6+Os4+TyV8zlIVDMkwawD35N+imvnGDQHBnW8D/4TeYTtOvczZS/AgMBAAEC" + + "gYBxwFalNSwZK3WJipq+g6KLCiBn1JxGGDQlLKrweFaSuFyFky9fd3IvkIabirqQchD612sMb+GT" + + "0t1jptW6z4w2w6++IW0A3apDOCwoD+uvDBXrbFqI0VbyAWUNqHVdaFFIRk2IHGEE6463mGRdmILX" + + "IlCd/85RTHReg4rl/GFqWQJBANgLAIR4pWbl5Gm+DtY18wp6Q3pJAAMkmP/lISCBIidu1zcqYIKt" + + "PoDW4Knq9xnhxPbXrXKv4YzZWHBK8GkKhQ0CQQDBQnXufQcMew+PwiS0oJvS+eQ6YJwynuqG2ejg" + + "WE+T7489jKtscRATpUXpZUYmDLGg9bLt7L62hFvFSj2LO2X7AkBcdrD9AWnBFWlh/G77LVHczSEu" + + "KCoyLiqxcs5vy/TjLaQ8vw1ZQG580/qJnr+tOxyCjSJ18GK3VppsTRaBznfNAkB3nuCKNp9HTWCL" + + "dfrsRsFMrFpk++mSt6SoxXaMbn0LL2u1CD4PCEiQMGt+lK3/3TmRTKNs+23sYS7Ahjxj0udDAkEA" + + "p57Nj65WNaWeYiOfTwKXkLj8l29H5NbaGWxPT0XkWr4PvBOFZVH/wj0/qc3CMVGnv11+DyO+QUCN" + + "SqBB5aRe8g=="; + + private void overrideSettings(String key, String value) throws Exception { + assertTrue(Settings.Secure.putString(mContext.getContentResolver(), key, value)); + Thread.sleep(1000); + } + + private void overrideCert(String value) throws Exception { + overrideSettings(PINLIST_CERTIFICATE_KEY, value); + } + + private String readPins() throws Exception { + return IoUtils.readFileAsString(PINLIST_CONTENT_PATH); + } + + private String readCurrentVersion() throws Exception { + return IoUtils.readFileAsString("/data/misc/keychain/metadata/version"); + } + + private String getNextVersion() throws Exception { + int currentVersion = Integer.parseInt(readCurrentVersion()); + return Integer.toString(currentVersion + 1); + } + + private static String getCurrentHash(String content) throws Exception { + if (content == null) { + return "0"; + } + MessageDigest dgst = MessageDigest.getInstance("SHA512"); + byte[] encoded = content.getBytes(); + byte[] fingerprint = dgst.digest(encoded); + return IntegralToString.bytesToHexString(fingerprint, false); + } + + private static String getHashOfCurrentContent() throws Exception { + String content = IoUtils.readFileAsString("/data/misc/keychain/pins"); + return getCurrentHash(content); + } + + private PrivateKey createKey() throws Exception { + byte[] derKey = Base64.decode(TEST_KEY.getBytes(), Base64.DEFAULT); + PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(derKey); + KeyFactory keyFactory = KeyFactory.getInstance("RSA"); + return (PrivateKey) keyFactory.generatePrivate(keySpec); + } + + private X509Certificate createCertificate() throws Exception { + byte[] derCert = Base64.decode(TEST_CERT.getBytes(), Base64.DEFAULT); + InputStream istream = new ByteArrayInputStream(derCert); + CertificateFactory cf = CertificateFactory.getInstance("X.509"); + return (X509Certificate) cf.generateCertificate(istream); + } + + private String makeTemporaryContentFile(String content) throws Exception { + FileOutputStream fw = mContext.openFileOutput("content.txt", mContext.MODE_WORLD_READABLE); + fw.write(content.getBytes(), 0, content.length()); + fw.close(); + return mContext.getFilesDir() + "/content.txt"; + } + + private String createSignature(String content, String version, String requiredHash) + throws Exception { + Signature signer = Signature.getInstance("SHA512withRSA"); + signer.initSign(createKey()); + signer.update(content.trim().getBytes()); + signer.update(version.trim().getBytes()); + signer.update(requiredHash.getBytes()); + String sig = new String(Base64.encode(signer.sign(), Base64.DEFAULT)); + assertEquals(true, + verifySignature(content, version, requiredHash, sig, createCertificate())); + return sig; + } + + public boolean verifySignature(String content, String version, String requiredPrevious, + String signature, X509Certificate cert) throws Exception { + Signature signer = Signature.getInstance("SHA512withRSA"); + signer.initVerify(cert); + signer.update(content.trim().getBytes()); + signer.update(version.trim().getBytes()); + signer.update(requiredPrevious.trim().getBytes()); + return signer.verify(Base64.decode(signature.getBytes(), Base64.DEFAULT)); + } + + private void sendIntent(String contentPath, String version, String required, String sig) { + Intent i = new Intent(); + i.setAction("android.intent.action.UPDATE_PINS"); + i.putExtra(EXTRA_CONTENT_PATH, contentPath); + i.putExtra(EXTRA_VERSION_NUMBER, version); + i.putExtra(EXTRA_REQUIRED_HASH, required); + i.putExtra(EXTRA_SIGNATURE, sig); + mContext.sendBroadcast(i); + } + + private String runTest(String cert, String content, String version, String required, String sig) + throws Exception { + Log.e(TAG, "started test"); + overrideCert(cert); + String contentPath = makeTemporaryContentFile(content); + sendIntent(contentPath, version, required, sig); + Thread.sleep(1000); + return readPins(); + } + + private String runTestWithoutSig(String cert, String content, String version, String required) + throws Exception { + String sig = createSignature(content, version, required); + return runTest(cert, content, version, required, sig); + } + + public void testOverwritePinlist() throws Exception { + Log.e(TAG, "started testOverwritePinList"); + assertEquals("abcde", runTestWithoutSig(TEST_CERT, "abcde", getNextVersion(), getHashOfCurrentContent())); + Log.e(TAG, "started testOverwritePinList"); + } + + public void testBadSignatureFails() throws Exception { + Log.e(TAG, "started testOverwritePinList"); + String text = "blahblah"; + runTestWithoutSig(TEST_CERT, text, getNextVersion(), getHashOfCurrentContent()); + assertEquals(text, runTest(TEST_CERT, "bcdef", getNextVersion(), getCurrentHash(text), "")); + Log.e(TAG, "started testOverwritePinList"); + } + + public void testBadRequiredHashFails() throws Exception { + runTestWithoutSig(TEST_CERT, "blahblahblah", getNextVersion(), getHashOfCurrentContent()); + assertEquals("blahblahblah", runTestWithoutSig(TEST_CERT, "cdefg", getNextVersion(), "0")); + Log.e(TAG, "started testOverwritePinList"); + } + + public void testBadVersionFails() throws Exception { + String text = "blahblahblahblah"; + String version = getNextVersion(); + runTestWithoutSig(TEST_CERT, text, version, getHashOfCurrentContent()); + assertEquals(text, runTestWithoutSig(TEST_CERT, "defgh", version, getCurrentHash(text))); + Log.e(TAG, "started testOverwritePinList"); + } + + public void testOverrideRequiredHash() throws Exception { + runTestWithoutSig(TEST_CERT, "blahblahblah", getNextVersion(), getHashOfCurrentContent()); + assertEquals("blahblahblah", runTestWithoutSig(TEST_CERT, "cdefg", "NONE", "0")); + Log.e(TAG, "started testOverwritePinList"); + } + +} diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index 2fa41e7..2fa41e7 100755..100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java diff --git a/test-runner/src/android/test/NoExecTestResult.java b/test-runner/src/android/test/NoExecTestResult.java index 1ee62c1..1ee62c1 100755..100644 --- a/test-runner/src/android/test/NoExecTestResult.java +++ b/test-runner/src/android/test/NoExecTestResult.java diff --git a/tests/BrowserTestPlugin/res/drawable/browser_test_plugin.png b/tests/BrowserTestPlugin/res/drawable/browser_test_plugin.png Binary files differindex 47c79d1..47c79d1 100755..100644 --- a/tests/BrowserTestPlugin/res/drawable/browser_test_plugin.png +++ b/tests/BrowserTestPlugin/res/drawable/browser_test_plugin.png diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestsAutoRunner.java b/tests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestsAutoRunner.java index fb2a1f4..fb2a1f4 100755..100644 --- a/tests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestsAutoRunner.java +++ b/tests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestsAutoRunner.java diff --git a/tests/FrameworkPerf/res/drawable-161dpi/stat_sample_scale.png b/tests/FrameworkPerf/res/drawable-161dpi/stat_sample_scale.png Binary files differindex 6c9ba0a..6c9ba0a 100755..100644 --- a/tests/FrameworkPerf/res/drawable-161dpi/stat_sample_scale.png +++ b/tests/FrameworkPerf/res/drawable-161dpi/stat_sample_scale.png diff --git a/tests/FrameworkPerf/res/drawable-hdpi/stat_happy.png b/tests/FrameworkPerf/res/drawable-hdpi/stat_happy.png Binary files differindex 27f5bb7..27f5bb7 100755..100644 --- a/tests/FrameworkPerf/res/drawable-hdpi/stat_happy.png +++ b/tests/FrameworkPerf/res/drawable-hdpi/stat_happy.png diff --git a/tests/FrameworkPerf/res/drawable-nodpi/stat_sample.png b/tests/FrameworkPerf/res/drawable-nodpi/stat_sample.png Binary files differindex 6c9ba0a..6c9ba0a 100755..100644 --- a/tests/FrameworkPerf/res/drawable-nodpi/stat_sample.png +++ b/tests/FrameworkPerf/res/drawable-nodpi/stat_sample.png diff --git a/tests/GridLayoutTest/src/com/android/test/layout/AlignmentTest.java b/tests/GridLayoutTest/src/com/android/test/layout/AlignmentTest.java index b1c4486..b1c4486 100755..100644 --- a/tests/GridLayoutTest/src/com/android/test/layout/AlignmentTest.java +++ b/tests/GridLayoutTest/src/com/android/test/layout/AlignmentTest.java diff --git a/tests/ImfTest/Android.mk b/tests/ImfTest/Android.mk index eb5327b..eb5327b 100755..100644 --- a/tests/ImfTest/Android.mk +++ b/tests/ImfTest/Android.mk diff --git a/tests/ImfTest/AndroidManifest.xml b/tests/ImfTest/AndroidManifest.xml index 82dbe75..82dbe75 100755..100644 --- a/tests/ImfTest/AndroidManifest.xml +++ b/tests/ImfTest/AndroidManifest.xml diff --git a/tests/ImfTest/res/layout/full_screen_edit_text.xml b/tests/ImfTest/res/layout/full_screen_edit_text.xml index e760ac1..e760ac1 100755..100644 --- a/tests/ImfTest/res/layout/full_screen_edit_text.xml +++ b/tests/ImfTest/res/layout/full_screen_edit_text.xml diff --git a/tests/ImfTest/res/layout/one_edit_text_activity.xml b/tests/ImfTest/res/layout/one_edit_text_activity.xml index 0558228..0558228 100755..100644 --- a/tests/ImfTest/res/layout/one_edit_text_activity.xml +++ b/tests/ImfTest/res/layout/one_edit_text_activity.xml diff --git a/tests/ImfTest/res/layout/sample_edit_text.xml b/tests/ImfTest/res/layout/sample_edit_text.xml index 3ff6767..3ff6767 100755..100644 --- a/tests/ImfTest/res/layout/sample_edit_text.xml +++ b/tests/ImfTest/res/layout/sample_edit_text.xml diff --git a/tests/ImfTest/res/values/strings.xml b/tests/ImfTest/res/values/strings.xml index fc87480..fc87480 100755..100644 --- a/tests/ImfTest/res/values/strings.xml +++ b/tests/ImfTest/res/values/strings.xml diff --git a/tests/ImfTest/src/com/android/imftest/samples/InputTypeActivity.java b/tests/ImfTest/src/com/android/imftest/samples/InputTypeActivity.java index 25ac2f0..25ac2f0 100755..100644 --- a/tests/ImfTest/src/com/android/imftest/samples/InputTypeActivity.java +++ b/tests/ImfTest/src/com/android/imftest/samples/InputTypeActivity.java diff --git a/tests/ImfTest/tests/Android.mk b/tests/ImfTest/tests/Android.mk index 0f1924c..0f1924c 100755..100644 --- a/tests/ImfTest/tests/Android.mk +++ b/tests/ImfTest/tests/Android.mk diff --git a/tests/ImfTest/tests/AndroidManifest.xml b/tests/ImfTest/tests/AndroidManifest.xml index c02fa0b..c02fa0b 100755..100644 --- a/tests/ImfTest/tests/AndroidManifest.xml +++ b/tests/ImfTest/tests/AndroidManifest.xml diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityNonScrollablePanScanTests.java b/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityNonScrollablePanScanTests.java index a1c5fd2..a1c5fd2 100755..100644 --- a/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityNonScrollablePanScanTests.java +++ b/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityNonScrollablePanScanTests.java diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityNonScrollableResizeTests.java b/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityNonScrollableResizeTests.java index 2e0b0eb..2e0b0eb 100755..100644 --- a/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityNonScrollableResizeTests.java +++ b/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityNonScrollableResizeTests.java diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityScrollablePanScanTests.java b/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityScrollablePanScanTests.java index d3eefb5..d3eefb5 100755..100644 --- a/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityScrollablePanScanTests.java +++ b/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityScrollablePanScanTests.java diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityScrollableResizeTests.java b/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityScrollableResizeTests.java index 5c40e6d..5c40e6d 100755..100644 --- a/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityScrollableResizeTests.java +++ b/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityScrollableResizeTests.java diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/BottomEditTextActivityPanScanTests.java b/tests/ImfTest/tests/src/com/android/imftest/samples/BottomEditTextActivityPanScanTests.java index 9a93133..9a93133 100755..100644 --- a/tests/ImfTest/tests/src/com/android/imftest/samples/BottomEditTextActivityPanScanTests.java +++ b/tests/ImfTest/tests/src/com/android/imftest/samples/BottomEditTextActivityPanScanTests.java diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/BottomEditTextActivityResizeTests.java b/tests/ImfTest/tests/src/com/android/imftest/samples/BottomEditTextActivityResizeTests.java index 9a69fd5..9a69fd5 100755..100644 --- a/tests/ImfTest/tests/src/com/android/imftest/samples/BottomEditTextActivityResizeTests.java +++ b/tests/ImfTest/tests/src/com/android/imftest/samples/BottomEditTextActivityResizeTests.java diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/ButtonActivityTest.java b/tests/ImfTest/tests/src/com/android/imftest/samples/ButtonActivityTest.java index ae900c3..ae900c3 100755..100644 --- a/tests/ImfTest/tests/src/com/android/imftest/samples/ButtonActivityTest.java +++ b/tests/ImfTest/tests/src/com/android/imftest/samples/ButtonActivityTest.java diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/ImfBaseTestCase.java b/tests/ImfTest/tests/src/com/android/imftest/samples/ImfBaseTestCase.java index bc77e04..bc77e04 100755..100644 --- a/tests/ImfTest/tests/src/com/android/imftest/samples/ImfBaseTestCase.java +++ b/tests/ImfTest/tests/src/com/android/imftest/samples/ImfBaseTestCase.java diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityBaseTestCase.java b/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityBaseTestCase.java index 278efb1..278efb1 100755..100644 --- a/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityBaseTestCase.java +++ b/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityBaseTestCase.java diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityNoScrollPanScanTests.java b/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityNoScrollPanScanTests.java index 4f8d14e..4f8d14e 100755..100644 --- a/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityNoScrollPanScanTests.java +++ b/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityNoScrollPanScanTests.java diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityScrollPanScanTests.java b/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityScrollPanScanTests.java index 7f98f7f..7f98f7f 100755..100644 --- a/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityScrollPanScanTests.java +++ b/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityScrollPanScanTests.java diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityScrollResizeTests.java b/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityScrollResizeTests.java index 68dae87..68dae87 100755..100644 --- a/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityScrollResizeTests.java +++ b/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityScrollResizeTests.java diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/OneEditTextActivityNotSelectedTests.java b/tests/ImfTest/tests/src/com/android/imftest/samples/OneEditTextActivityNotSelectedTests.java index ed5b0c9..ed5b0c9 100755..100644 --- a/tests/ImfTest/tests/src/com/android/imftest/samples/OneEditTextActivityNotSelectedTests.java +++ b/tests/ImfTest/tests/src/com/android/imftest/samples/OneEditTextActivityNotSelectedTests.java diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/OneEditTextActivitySelectedTests.java b/tests/ImfTest/tests/src/com/android/imftest/samples/OneEditTextActivitySelectedTests.java index 42fcd66..42fcd66 100755..100644 --- a/tests/ImfTest/tests/src/com/android/imftest/samples/OneEditTextActivitySelectedTests.java +++ b/tests/ImfTest/tests/src/com/android/imftest/samples/OneEditTextActivitySelectedTests.java diff --git a/tests/LocationTracker/res/xml/preferences.xml b/tests/LocationTracker/res/xml/preferences.xml index 61d4817..61d4817 100755..100644 --- a/tests/LocationTracker/res/xml/preferences.xml +++ b/tests/LocationTracker/res/xml/preferences.xml diff --git a/tests/LocationTracker/src/com/android/locationtracker/SettingsActivity.java b/tests/LocationTracker/src/com/android/locationtracker/SettingsActivity.java index cb77118..cb77118 100755..100644 --- a/tests/LocationTracker/src/com/android/locationtracker/SettingsActivity.java +++ b/tests/LocationTracker/src/com/android/locationtracker/SettingsActivity.java diff --git a/tests/RenderScriptTests/PerfTest/res/drawable-nodpi/globe.png b/tests/RenderScriptTests/PerfTest/res/drawable-nodpi/globe.png Binary files differindex f9d6172..f9d6172 100755..100644 --- a/tests/RenderScriptTests/PerfTest/res/drawable-nodpi/globe.png +++ b/tests/RenderScriptTests/PerfTest/res/drawable-nodpi/globe.png diff --git a/tools/aapt/Resource.cpp b/tools/aapt/Resource.cpp index 9c2e1b9..77168f9 100644 --- a/tools/aapt/Resource.cpp +++ b/tools/aapt/Resource.cpp @@ -1946,7 +1946,7 @@ static status_t writeTextLayoutClasses( const bool pub = (typeSpecFlags&ResTable_typeSpec::SPEC_PUBLIC) != 0; fprintf(fp, - "int styleable.%s_%s %d\n", + "int styleable %s_%s %d\n", nclassName.string(), String8(name).string(), (int)pos); } diff --git a/tools/aidl/AST.cpp b/tools/aidl/AST.cpp index bfa6765..bfa6765 100755..100644 --- a/tools/aidl/AST.cpp +++ b/tools/aidl/AST.cpp diff --git a/tools/aidl/AST.h b/tools/aidl/AST.h index ead5e7a..ead5e7a 100755..100644 --- a/tools/aidl/AST.h +++ b/tools/aidl/AST.h diff --git a/tools/aidl/Type.cpp b/tools/aidl/Type.cpp index d572af6..d572af6 100755..100644 --- a/tools/aidl/Type.cpp +++ b/tools/aidl/Type.cpp diff --git a/tools/aidl/Type.h b/tools/aidl/Type.h index ae12720..ae12720 100755..100644 --- a/tools/aidl/Type.h +++ b/tools/aidl/Type.h diff --git a/tools/layoutlib/bridge/src/android/util/Log_Delegate.java b/tools/layoutlib/bridge/src/android/util/Log_Delegate.java index 7f432ab..7f432ab 100755..100644 --- a/tools/layoutlib/bridge/src/android/util/Log_Delegate.java +++ b/tools/layoutlib/bridge/src/android/util/Log_Delegate.java diff --git a/tools/layoutlib/create/src/com/android/tools/layoutlib/annotations/Nullable.java b/tools/layoutlib/create/src/com/android/tools/layoutlib/annotations/Nullable.java index 0689c92..0689c92 100755..100644 --- a/tools/layoutlib/create/src/com/android/tools/layoutlib/annotations/Nullable.java +++ b/tools/layoutlib/create/src/com/android/tools/layoutlib/annotations/Nullable.java diff --git a/tools/layoutlib/create/src/com/android/tools/layoutlib/annotations/VisibleForTesting.java b/tools/layoutlib/create/src/com/android/tools/layoutlib/annotations/VisibleForTesting.java index e4e016b..e4e016b 100755..100644 --- a/tools/layoutlib/create/src/com/android/tools/layoutlib/annotations/VisibleForTesting.java +++ b/tools/layoutlib/create/src/com/android/tools/layoutlib/annotations/VisibleForTesting.java diff --git a/tools/layoutlib/create/src/com/android/tools/layoutlib/create/DependencyFinder.java b/tools/layoutlib/create/src/com/android/tools/layoutlib/create/DependencyFinder.java index c988c70..c988c70 100755..100644 --- a/tools/layoutlib/create/src/com/android/tools/layoutlib/create/DependencyFinder.java +++ b/tools/layoutlib/create/src/com/android/tools/layoutlib/create/DependencyFinder.java diff --git a/voip/java/android/net/rtp/AudioGroup.java b/voip/java/android/net/rtp/AudioGroup.java index 8c19062..8faeb88 100644 --- a/voip/java/android/net/rtp/AudioGroup.java +++ b/voip/java/android/net/rtp/AudioGroup.java @@ -19,6 +19,7 @@ package android.net.rtp; import android.media.AudioManager; import java.util.HashMap; +import java.util.Locale; import java.util.Map; /** @@ -146,7 +147,7 @@ public class AudioGroup { if (!mStreams.containsKey(stream)) { try { AudioCodec codec = stream.getCodec(); - String codecSpec = String.format("%d %s %s", codec.type, + String codecSpec = String.format(Locale.US, "%d %s %s", codec.type, codec.rtpmap, codec.fmtp); int id = nativeAdd(stream.getMode(), stream.getSocket(), stream.getRemoteAddress().getHostAddress(), diff --git a/wifi/java/android/net/wifi/WifiStateMachine.java b/wifi/java/android/net/wifi/WifiStateMachine.java index dafa8e8..9898b53 100644 --- a/wifi/java/android/net/wifi/WifiStateMachine.java +++ b/wifi/java/android/net/wifi/WifiStateMachine.java @@ -127,7 +127,7 @@ public class WifiStateMachine extends StateMachine { private final boolean mBackgroundScanSupported; private String mInterfaceName; - /* Tethering interface could be seperate from wlan interface */ + /* Tethering interface could be separate from wlan interface */ private String mTetherInterfaceName; private int mLastSignalLevel = -1; @@ -248,7 +248,7 @@ public class WifiStateMachine extends StateMachine { static final int CMD_START_DRIVER = BASE + 13; /* Stop the driver */ static final int CMD_STOP_DRIVER = BASE + 14; - /* Indicates Static IP succeded */ + /* Indicates Static IP succeeded */ static final int CMD_STATIC_IP_SUCCESS = BASE + 15; /* Indicates Static IP failed */ static final int CMD_STATIC_IP_FAILURE = BASE + 16; @@ -263,7 +263,7 @@ public class WifiStateMachine extends StateMachine { /* Start the soft access point */ static final int CMD_START_AP = BASE + 21; - /* Indicates soft ap start succeded */ + /* Indicates soft ap start succeeded */ static final int CMD_START_AP_SUCCESS = BASE + 22; /* Indicates soft ap start failed */ static final int CMD_START_AP_FAILURE = BASE + 23; @@ -883,22 +883,22 @@ public class WifiStateMachine extends StateMachine { * TODO: doc */ public void setScanOnlyMode(boolean enable) { - if (enable) { - sendMessage(obtainMessage(CMD_SET_SCAN_MODE, SCAN_ONLY_MODE, 0)); - } else { - sendMessage(obtainMessage(CMD_SET_SCAN_MODE, CONNECT_MODE, 0)); - } + if (enable) { + sendMessage(obtainMessage(CMD_SET_SCAN_MODE, SCAN_ONLY_MODE, 0)); + } else { + sendMessage(obtainMessage(CMD_SET_SCAN_MODE, CONNECT_MODE, 0)); + } } /** * TODO: doc */ public void setScanType(boolean active) { - if (active) { - sendMessage(obtainMessage(CMD_SET_SCAN_TYPE, SCAN_ACTIVE, 0)); - } else { - sendMessage(obtainMessage(CMD_SET_SCAN_TYPE, SCAN_PASSIVE, 0)); - } + if (active) { + sendMessage(obtainMessage(CMD_SET_SCAN_TYPE, SCAN_ACTIVE, 0)); + } else { + sendMessage(obtainMessage(CMD_SET_SCAN_TYPE, SCAN_PASSIVE, 0)); + } } /** diff --git a/wifi/java/android/net/wifi/p2p/WifiP2pService.java b/wifi/java/android/net/wifi/p2p/WifiP2pService.java index 4a4320c..d95d624 100644 --- a/wifi/java/android/net/wifi/p2p/WifiP2pService.java +++ b/wifi/java/android/net/wifi/p2p/WifiP2pService.java @@ -165,11 +165,11 @@ public class WifiP2pService extends IWifiP2pManager.Stub { /* Commands to the WifiStateMachine */ public static final int P2P_CONNECTION_CHANGED = BASE + 11; - /* These commands are used to tempoarily disconnect wifi when we detect + /* These commands are used to temporarily disconnect wifi when we detect * a frequency conflict which would make it impossible to have with p2p * and wifi active at the same time. * - * If the user chooses to disable wifi tempoarily, we keep wifi disconnected + * If the user chooses to disable wifi temporarily, we keep wifi disconnected * until the p2p connection is done and terminated at which point we will * bring back wifi up * @@ -389,7 +389,7 @@ public class WifiP2pService extends IWifiP2pManager.Stub { * not get latest updates about the device without being in discovery state. * * From the framework perspective, the device is still there since we are connecting or - * connected to it. so we keep these devices in a seperate list, so that they are removed + * connected to it. so we keep these devices in a separate list, so that they are removed * when connection is cancelled or lost */ private final WifiP2pDeviceList mPeersLostDuringConnection = new WifiP2pDeviceList(); @@ -1055,48 +1055,48 @@ public class WifiP2pService extends IWifiP2pManager.Stub { //and wait instead for the GO_NEGOTIATION_REQUEST_EVENT. //Handling provision discovery and issuing a p2p_connect before //group negotiation comes through causes issues - break; + break; case WifiP2pManager.CREATE_GROUP: - mAutonomousGroup = true; - int netId = message.arg1; - boolean ret = false; - if (netId == WifiP2pGroup.PERSISTENT_NET_ID) { - // check if the go persistent group is present. - netId = mGroups.getNetworkId(mThisDevice.deviceAddress); - if (netId != -1) { - ret = mWifiNative.p2pGroupAdd(netId); - } else { - ret = mWifiNative.p2pGroupAdd(true); - } - } else { - ret = mWifiNative.p2pGroupAdd(false); - } - - if (ret) { - replyToMessage(message, WifiP2pManager.CREATE_GROUP_SUCCEEDED); - transitionTo(mGroupNegotiationState); - } else { - replyToMessage(message, WifiP2pManager.CREATE_GROUP_FAILED, - WifiP2pManager.ERROR); - // remain at this state. - } - break; + mAutonomousGroup = true; + int netId = message.arg1; + boolean ret = false; + if (netId == WifiP2pGroup.PERSISTENT_NET_ID) { + // check if the go persistent group is present. + netId = mGroups.getNetworkId(mThisDevice.deviceAddress); + if (netId != -1) { + ret = mWifiNative.p2pGroupAdd(netId); + } else { + ret = mWifiNative.p2pGroupAdd(true); + } + } else { + ret = mWifiNative.p2pGroupAdd(false); + } + + if (ret) { + replyToMessage(message, WifiP2pManager.CREATE_GROUP_SUCCEEDED); + transitionTo(mGroupNegotiationState); + } else { + replyToMessage(message, WifiP2pManager.CREATE_GROUP_FAILED, + WifiP2pManager.ERROR); + // remain at this state. + } + break; case WifiMonitor.P2P_GROUP_STARTED_EVENT: - mGroup = (WifiP2pGroup) message.obj; - if (DBG) logd(getName() + " group started"); + mGroup = (WifiP2pGroup) message.obj; + if (DBG) logd(getName() + " group started"); // We hit this scenario when a persistent group is reinvoked - if (mGroup.getNetworkId() == WifiP2pGroup.PERSISTENT_NET_ID) { - mAutonomousGroup = false; - deferMessage(message); - transitionTo(mGroupNegotiationState); - } else { - loge("Unexpected group creation, remove " + mGroup); - mWifiNative.p2pGroupRemove(mGroup.getInterface()); - } - break; + if (mGroup.getNetworkId() == WifiP2pGroup.PERSISTENT_NET_ID) { + mAutonomousGroup = false; + deferMessage(message); + transitionTo(mGroupNegotiationState); + } else { + loge("Unexpected group creation, remove " + mGroup); + mWifiNative.p2pGroupRemove(mGroup.getInterface()); + } + break; default: - return NOT_HANDLED; + return NOT_HANDLED; } return HANDLED; } |