summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/java/android/app/WallpaperManager.java41
-rw-r--r--core/java/android/app/admin/DevicePolicyManager.java6
-rw-r--r--core/java/android/os/Parcel.java6
-rw-r--r--core/java/android/os/PowerManager.java15
-rw-r--r--core/java/android/provider/Settings.java1
-rw-r--r--core/java/android/text/Layout.java6
-rw-r--r--core/java/android/text/StaticLayout.java2
-rw-r--r--core/java/android/text/TextUtils.java9
-rw-r--r--core/java/android/view/View.java4
-rw-r--r--core/java/android/view/WindowManager.java15
-rw-r--r--core/java/android/widget/ScrollBarDrawable.java33
-rw-r--r--core/res/res/layout/preference_dialog_edittext_material.xml44
-rw-r--r--core/res/res/values/styles_material.xml2
13 files changed, 166 insertions, 18 deletions
diff --git a/core/java/android/app/WallpaperManager.java b/core/java/android/app/WallpaperManager.java
index 8bfe6d3..90d84ee 100644
--- a/core/java/android/app/WallpaperManager.java
+++ b/core/java/android/app/WallpaperManager.java
@@ -994,6 +994,47 @@ public class WallpaperManager {
}
/**
+ * Clear the wallpaper.
+ *
+ * @hide
+ */
+ @SystemApi
+ public void clearWallpaper() {
+ if (sGlobals.mService == null) {
+ Log.w(TAG, "WallpaperService not running");
+ return;
+ }
+ try {
+ sGlobals.mService.clearWallpaper();
+ } catch (RemoteException e) {
+ // Ignore
+ }
+ }
+
+ /**
+ * Set the live wallpaper.
+ *
+ * This can only be called by packages with android.permission.SET_WALLPAPER_COMPONENT
+ * permission.
+ *
+ * @hide
+ */
+ @SystemApi
+ public boolean setWallpaperComponent(ComponentName name) {
+ if (sGlobals.mService == null) {
+ Log.w(TAG, "WallpaperService not running");
+ return false;
+ }
+ try {
+ sGlobals.mService.setWallpaperComponent(name);
+ return true;
+ } catch (RemoteException e) {
+ // Ignore
+ }
+ return false;
+ }
+
+ /**
* Set the position of the current wallpaper within any larger space, when
* that wallpaper is visible behind the given window. The X and Y offsets
* are floating point numbers ranging from 0 to 1, representing where the
diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java
index 1ed709b..cf06cb7 100644
--- a/core/java/android/app/admin/DevicePolicyManager.java
+++ b/core/java/android/app/admin/DevicePolicyManager.java
@@ -2933,9 +2933,9 @@ public class DevicePolicyManager {
*
* @param admin Which {@link DeviceAdminReceiver} this request is associated with.
* @param packageNames List of input method package names.
- * @return true if setting the restriction succeeded. It will fail if there is
- * one or more input method enabled, that are not in the list or user if the foreground
- * user.
+ * @return true if setting the restriction succeeded. It will fail if there are
+ * one or more non-system input methods currently enabled that are not in
+ * the packageNames list.
*/
public boolean setPermittedInputMethods(ComponentName admin, List<String> packageNames) {
if (mService != null) {
diff --git a/core/java/android/os/Parcel.java b/core/java/android/os/Parcel.java
index bedc695..3d5215b 100644
--- a/core/java/android/os/Parcel.java
+++ b/core/java/android/os/Parcel.java
@@ -276,7 +276,7 @@ public final class Parcel {
private static native byte[] nativeMarshall(long nativePtr);
private static native void nativeUnmarshall(
- long nativePtr, byte[] data, int offest, int length);
+ long nativePtr, byte[] data, int offset, int length);
private static native void nativeAppendFrom(
long thisNativePtr, long otherNativePtr, int offset, int length);
private static native boolean nativeHasFileDescriptors(long nativePtr);
@@ -438,8 +438,8 @@ public final class Parcel {
/**
* Set the bytes in data to be the raw bytes of this Parcel.
*/
- public final void unmarshall(byte[] data, int offest, int length) {
- nativeUnmarshall(mNativePtr, data, offest, length);
+ public final void unmarshall(byte[] data, int offset, int length) {
+ nativeUnmarshall(mNativePtr, data, offset, length);
}
public final void appendFrom(Parcel parcel, int offset, int length) {
diff --git a/core/java/android/os/PowerManager.java b/core/java/android/os/PowerManager.java
index 8307d9b..d52dd30 100644
--- a/core/java/android/os/PowerManager.java
+++ b/core/java/android/os/PowerManager.java
@@ -835,6 +835,21 @@ public final class PowerManager {
}
/**
+ * Turn off the device.
+ *
+ * @param confirm If true, shows a shutdown confirmation dialog.
+ * @param wait If true, this call waits for the shutdown to complete and does not return.
+ *
+ * @hide
+ */
+ public void shutdown(boolean confirm, boolean wait) {
+ try {
+ mService.shutdown(confirm, wait);
+ } catch (RemoteException e) {
+ }
+ }
+
+ /**
* Intent that is broadcast when the state of {@link #isPowerSaveMode()} changes.
* This broadcast is only sent to registered receivers.
*/
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index 838686a..92349338 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -5101,6 +5101,7 @@ public final class Settings {
* Whether Theater Mode is on.
* {@hide}
*/
+ @SystemApi
public static final String THEATER_MODE_ON = "theater_mode_on";
/**
diff --git a/core/java/android/text/Layout.java b/core/java/android/text/Layout.java
index 2b53c48..b84c3aa 100644
--- a/core/java/android/text/Layout.java
+++ b/core/java/android/text/Layout.java
@@ -1754,8 +1754,8 @@ public abstract class Layout {
private char getEllipsisChar(TextUtils.TruncateAt method) {
return (method == TextUtils.TruncateAt.END_SMALL) ?
- ELLIPSIS_TWO_DOTS[0] :
- ELLIPSIS_NORMAL[0];
+ TextUtils.ELLIPSIS_TWO_DOTS[0] :
+ TextUtils.ELLIPSIS_NORMAL[0];
}
private void ellipsize(int start, int end, int line,
@@ -1952,6 +1952,4 @@ public abstract class Layout {
/* package */ static final Directions DIRS_ALL_RIGHT_TO_LEFT =
new Directions(new int[] { 0, RUN_LENGTH_MASK | RUN_RTL_FLAG });
- /* package */ static final char[] ELLIPSIS_NORMAL = { '\u2026' }; // this is "..."
- /* package */ static final char[] ELLIPSIS_TWO_DOTS = { '\u2025' }; // this is ".."
}
diff --git a/core/java/android/text/StaticLayout.java b/core/java/android/text/StaticLayout.java
index 74b7b69..07505a9 100644
--- a/core/java/android/text/StaticLayout.java
+++ b/core/java/android/text/StaticLayout.java
@@ -652,7 +652,7 @@ public class StaticLayout extends Layout {
float ellipsisWidth = paint.measureText(
(where == TextUtils.TruncateAt.END_SMALL) ?
- ELLIPSIS_TWO_DOTS : ELLIPSIS_NORMAL, 0, 1);
+ TextUtils.ELLIPSIS_TWO_DOTS : TextUtils.ELLIPSIS_NORMAL, 0, 1);
int ellipsisStart = 0;
int ellipsisCount = 0;
int len = lineEnd - lineStart;
diff --git a/core/java/android/text/TextUtils.java b/core/java/android/text/TextUtils.java
index 8a8c6d8..48bb5dd 100644
--- a/core/java/android/text/TextUtils.java
+++ b/core/java/android/text/TextUtils.java
@@ -63,9 +63,12 @@ import java.util.regex.Pattern;
public class TextUtils {
private static final String TAG = "TextUtils";
- private static final String ELLIPSIS = new String(Layout.ELLIPSIS_NORMAL);
- private static final String ELLIPSIS_TWO_DOTS = new String(Layout.ELLIPSIS_TWO_DOTS);
+ /* package */ static final char[] ELLIPSIS_NORMAL = { '\u2026' }; // this is "..."
+ private static final String ELLIPSIS_STRING = new String(ELLIPSIS_NORMAL);
+
+ /* package */ static final char[] ELLIPSIS_TWO_DOTS = { '\u2025' }; // this is ".."
+ private static final String ELLIPSIS_TWO_DOTS_STRING = new String(ELLIPSIS_TWO_DOTS);
private TextUtils() { /* cannot be instantiated */ }
@@ -1085,7 +1088,7 @@ public class TextUtils {
EllipsizeCallback callback) {
return ellipsize(text, paint, avail, where, preserveLength, callback,
TextDirectionHeuristics.FIRSTSTRONG_LTR,
- (where == TruncateAt.END_SMALL) ? ELLIPSIS_TWO_DOTS : ELLIPSIS);
+ (where == TruncateAt.END_SMALL) ? ELLIPSIS_TWO_DOTS_STRING : ELLIPSIS_STRING);
}
/**
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 6928b2c..e4a8978 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -12872,7 +12872,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
Interpolator.Result.FREEZE_END) {
cache.state = ScrollabilityCache.OFF;
} else {
- cache.scrollBar.setAlpha(Math.round(values[0]));
+ cache.scrollBar.mutate().setAlpha(Math.round(values[0]));
}
// This will make the scroll bars inval themselves after
@@ -12882,7 +12882,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
} else {
// We're just on -- but we may have been fading before so
// reset alpha
- cache.scrollBar.setAlpha(255);
+ cache.scrollBar.mutate().setAlpha(255);
}
diff --git a/core/java/android/view/WindowManager.java b/core/java/android/view/WindowManager.java
index 094a8a1..84434f7 100644
--- a/core/java/android/view/WindowManager.java
+++ b/core/java/android/view/WindowManager.java
@@ -16,6 +16,7 @@
package android.view;
+import android.annotation.SystemApi;
import android.app.Presentation;
import android.content.Context;
import android.content.pm.ActivityInfo;
@@ -1590,7 +1591,19 @@ public interface WindowManager extends ViewManager {
public final CharSequence getTitle() {
return mTitle;
}
-
+
+ /** @hide */
+ @SystemApi
+ public final void setUserActivityTimeout(long timeout) {
+ userActivityTimeout = timeout;
+ }
+
+ /** @hide */
+ @SystemApi
+ public final long getUserActivityTimeout() {
+ return userActivityTimeout;
+ }
+
public int describeContents() {
return 0;
}
diff --git a/core/java/android/widget/ScrollBarDrawable.java b/core/java/android/widget/ScrollBarDrawable.java
index 10e9ff4..8eff1aa 100644
--- a/core/java/android/widget/ScrollBarDrawable.java
+++ b/core/java/android/widget/ScrollBarDrawable.java
@@ -44,6 +44,7 @@ public class ScrollBarDrawable extends Drawable {
private final Rect mTempBounds = new Rect();
private boolean mAlwaysDrawHorizontalTrack;
private boolean mAlwaysDrawVerticalTrack;
+ private boolean mMutated;
public ScrollBarDrawable() {
}
@@ -191,6 +192,9 @@ public class ScrollBarDrawable extends Drawable {
public void setVerticalThumbDrawable(Drawable thumb) {
if (thumb != null) {
+ if (mMutated) {
+ thumb.mutate();
+ }
thumb.setState(STATE_ENABLED);
mVerticalThumb = thumb;
}
@@ -198,6 +202,9 @@ public class ScrollBarDrawable extends Drawable {
public void setVerticalTrackDrawable(Drawable track) {
if (track != null) {
+ if (mMutated) {
+ track.mutate();
+ }
track.setState(STATE_ENABLED);
}
mVerticalTrack = track;
@@ -205,6 +212,9 @@ public class ScrollBarDrawable extends Drawable {
public void setHorizontalThumbDrawable(Drawable thumb) {
if (thumb != null) {
+ if (mMutated) {
+ thumb.mutate();
+ }
thumb.setState(STATE_ENABLED);
mHorizontalThumb = thumb;
}
@@ -212,6 +222,9 @@ public class ScrollBarDrawable extends Drawable {
public void setHorizontalTrackDrawable(Drawable track) {
if (track != null) {
+ if (mMutated) {
+ track.mutate();
+ }
track.setState(STATE_ENABLED);
}
mHorizontalTrack = track;
@@ -228,6 +241,26 @@ public class ScrollBarDrawable extends Drawable {
}
@Override
+ public ScrollBarDrawable mutate() {
+ if (!mMutated && super.mutate() == this) {
+ if (mVerticalTrack != null) {
+ mVerticalTrack.mutate();
+ }
+ if (mVerticalThumb != null) {
+ mVerticalThumb.mutate();
+ }
+ if (mHorizontalTrack != null) {
+ mHorizontalTrack.mutate();
+ }
+ if (mHorizontalThumb != null) {
+ mHorizontalThumb.mutate();
+ }
+ mMutated = true;
+ }
+ return this;
+ }
+
+ @Override
public void setAlpha(int alpha) {
if (mVerticalTrack != null) {
mVerticalTrack.setAlpha(alpha);
diff --git a/core/res/res/layout/preference_dialog_edittext_material.xml b/core/res/res/layout/preference_dialog_edittext_material.xml
new file mode 100644
index 0000000..df76f7f
--- /dev/null
+++ b/core/res/res/layout/preference_dialog_edittext_material.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2015 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.
+-->
+
+<!-- Layout used as the dialog's content View for EditTextPreference. -->
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_marginTop="48dp"
+ android:layout_marginBottom="48dp"
+ android:overScrollMode="ifContentScrolls">
+
+ <LinearLayout
+ android:id="@+id/edittext_container"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:padding="20dp"
+ android:orientation="vertical">
+
+ <TextView
+ android:id="@+id/message"
+ android:layout_marginBottom="48dp"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingStart="4dp"
+ android:paddingEnd="4dp"
+ android:textColor="?attr/textColorSecondary"
+ style="?attr/textAppearanceSmall" />
+
+ </LinearLayout>
+
+</ScrollView>
diff --git a/core/res/res/values/styles_material.xml b/core/res/res/values/styles_material.xml
index 6220a1b..419beba 100644
--- a/core/res/res/values/styles_material.xml
+++ b/core/res/res/values/styles_material.xml
@@ -88,7 +88,7 @@ please see styles_device_defaults.xml.
</style>
<style name="Preference.Material.DialogPreference.EditTextPreference">
- <item name="dialogLayout">@layout/preference_dialog_edittext</item>
+ <item name="dialogLayout">@layout/preference_dialog_edittext_material</item>
</style>
<style name="Preference.Material.RingtonePreference">