Merge "Don't waste memory creating new Boolean objects"
diff --git a/api/current.xml b/api/current.xml
index c649e15..afe86fb 100644
--- a/api/current.xml
+++ b/api/current.xml
@@ -4838,6 +4838,17 @@
visibility="public"
>
</field>
+<field name="homeLayout"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="16843566"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
<field name="horizontalDivider"
type="int"
transient="false"
@@ -6686,6 +6697,17 @@
visibility="public"
>
</field>
+<field name="opacity"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="16843567"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
<field name="order"
type="int"
transient="false"
@@ -13393,6 +13415,17 @@
visibility="public"
>
</field>
+<field name="up"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="16908334"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
<field name="widget_frame"
type="int"
transient="false"
@@ -14722,6 +14755,28 @@
visibility="public"
>
</field>
+<field name="Theme_Holo_Wallpaper"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="16973956"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="Theme_Holo_Wallpaper_NoTitleBar"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="16973957"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
<field name="Theme_InputMethod"
type="int"
transient="false"
@@ -20373,6 +20428,19 @@
<parameter name="view" type="android.view.View">
</parameter>
</method>
+<method name="setCustomView"
+ return="android.app.ActionBar.Tab"
+ abstract="true"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="layoutResId" type="int">
+</parameter>
+</method>
<method name="setIcon"
return="android.app.ActionBar.Tab"
abstract="true"
@@ -20386,6 +20454,19 @@
<parameter name="icon" type="android.graphics.drawable.Drawable">
</parameter>
</method>
+<method name="setIcon"
+ return="android.app.ActionBar.Tab"
+ abstract="true"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="resId" type="int">
+</parameter>
+</method>
<method name="setTabListener"
return="android.app.ActionBar.Tab"
abstract="true"
@@ -20425,6 +20506,19 @@
<parameter name="text" type="java.lang.CharSequence">
</parameter>
</method>
+<method name="setText"
+ return="android.app.ActionBar.Tab"
+ abstract="true"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="resId" type="int">
+</parameter>
+</method>
<field name="INVALID_POSITION"
type="int"
transient="false"
@@ -68672,6 +68766,29 @@
</parameter>
<parameter name="selection" type="java.lang.String">
</parameter>
+<parameter name="groupBy" type="java.lang.String">
+</parameter>
+<parameter name="having" type="java.lang.String">
+</parameter>
+<parameter name="sortOrder" type="java.lang.String">
+</parameter>
+<parameter name="limit" type="java.lang.String">
+</parameter>
+</method>
+<method name="buildQuery"
+ return="java.lang.String"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="deprecated"
+ visibility="public"
+>
+<parameter name="projectionIn" type="java.lang.String[]">
+</parameter>
+<parameter name="selection" type="java.lang.String">
+</parameter>
<parameter name="selectionArgs" type="java.lang.String[]">
</parameter>
<parameter name="groupBy" type="java.lang.String">
@@ -68749,6 +68866,33 @@
</parameter>
<parameter name="selection" type="java.lang.String">
</parameter>
+<parameter name="groupBy" type="java.lang.String">
+</parameter>
+<parameter name="having" type="java.lang.String">
+</parameter>
+</method>
+<method name="buildUnionSubQuery"
+ return="java.lang.String"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="deprecated"
+ visibility="public"
+>
+<parameter name="typeDiscriminatorColumn" type="java.lang.String">
+</parameter>
+<parameter name="unionColumns" type="java.lang.String[]">
+</parameter>
+<parameter name="columnsPresentInTable" type="java.util.Set<java.lang.String>">
+</parameter>
+<parameter name="computedColumnsOffset" type="int">
+</parameter>
+<parameter name="typeDiscriminatorValue" type="java.lang.String">
+</parameter>
+<parameter name="selection" type="java.lang.String">
+</parameter>
<parameter name="selectionArgs" type="java.lang.String[]">
</parameter>
<parameter name="groupBy" type="java.lang.String">
@@ -85929,6 +86073,19 @@
<parameter name="b" type="int">
</parameter>
</method>
+<method name="setOpacity"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="opacity" type="int">
+</parameter>
+</method>
<method name="unscheduleDrawable"
return="void"
abstract="false"
@@ -101721,6 +101878,17 @@
visibility="public"
>
</field>
+<field name="VOICE_COMMUNICATION"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="7"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
<field name="VOICE_DOWNLINK"
type="int"
transient="false"
@@ -144681,6 +144849,17 @@
visibility="public"
>
</method>
+<method name="getIcon"
+ return="android.graphics.drawable.Drawable"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
<method name="getIntent"
return="android.content.Intent"
abstract="false"
@@ -145267,6 +145446,32 @@
<parameter name="fragment" type="java.lang.String">
</parameter>
</method>
+<method name="setIcon"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="icon" type="android.graphics.drawable.Drawable">
+</parameter>
+</method>
+<method name="setIcon"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="iconResId" type="int">
+</parameter>
+</method>
<method name="setIntent"
return="void"
abstract="false"
@@ -239944,6 +240149,20 @@
<parameter name="interpolator" type="android.view.animation.Interpolator">
</parameter>
</constructor>
+<constructor name="Scroller"
+ type="android.widget.Scroller"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="context" type="android.content.Context">
+</parameter>
+<parameter name="interpolator" type="android.view.animation.Interpolator">
+</parameter>
+<parameter name="flywheel" type="boolean">
+</parameter>
+</constructor>
<method name="abortAnimation"
return="void"
abstract="false"
diff --git a/core/java/android/app/ActionBar.java b/core/java/android/app/ActionBar.java
index 246d661..7a6ad0f 100644
--- a/core/java/android/app/ActionBar.java
+++ b/core/java/android/app/ActionBar.java
@@ -590,6 +590,14 @@
public abstract Tab setIcon(Drawable icon);
/**
+ * Set the icon displayed on this tab.
+ *
+ * @param resId Resource ID referring to the drawable to use as an icon
+ * @return The current instance for call chaining
+ */
+ public abstract Tab setIcon(int resId);
+
+ /**
* Set the text displayed on this tab. Text may be truncated if there is not
* room to display the entire string.
*
@@ -599,6 +607,15 @@
public abstract Tab setText(CharSequence text);
/**
+ * Set the text displayed on this tab. Text may be truncated if there is not
+ * room to display the entire string.
+ *
+ * @param resId A resource ID referring to the text that should be displayed
+ * @return The current instance for call chaining
+ */
+ public abstract Tab setText(int resId);
+
+ /**
* Set a custom view to be used for this tab. This overrides values set by
* {@link #setText(CharSequence)} and {@link #setIcon(Drawable)}.
*
@@ -608,6 +625,15 @@
public abstract Tab setCustomView(View view);
/**
+ * Set a custom view to be used for this tab. This overrides values set by
+ * {@link #setText(CharSequence)} and {@link #setIcon(Drawable)}.
+ *
+ * @param layoutResId A layout resource to inflate and use as a custom tab view
+ * @return The current instance for call chaining
+ */
+ public abstract Tab setCustomView(int layoutResId);
+
+ /**
* Retrieve a previously set custom view for this tab.
*
* @return The custom view set by {@link #setCustomView(View)}.
diff --git a/core/java/android/database/sqlite/SQLiteCursor.java b/core/java/android/database/sqlite/SQLiteCursor.java
index fc30da2..5a6c667 100644
--- a/core/java/android/database/sqlite/SQLiteCursor.java
+++ b/core/java/android/database/sqlite/SQLiteCursor.java
@@ -125,11 +125,11 @@
// the cursor's state doesn't change
while (true) {
mLock.lock();
- if (mCursorState != mThreadState) {
- mLock.unlock();
- break;
- }
try {
+ if (mCursorState != mThreadState) {
+ break;
+ }
+
int count = getQuery().fillWindow(cw, mMaxRead, mCount);
// return -1 means there is still more data to be retrieved from the resultset
if (count != 0) {
@@ -241,9 +241,8 @@
mColumnNameMap = null;
mQuery = query;
+ query.mDatabase.lock();
try {
- query.mDatabase.lock();
-
// Setup the list of columns
int columnCount = mQuery.columnCountLocked();
mColumns = new String[columnCount];
diff --git a/core/java/android/database/sqlite/SQLiteQueryBuilder.java b/core/java/android/database/sqlite/SQLiteQueryBuilder.java
index 610bf70..b6aca2b 100644
--- a/core/java/android/database/sqlite/SQLiteQueryBuilder.java
+++ b/core/java/android/database/sqlite/SQLiteQueryBuilder.java
@@ -321,7 +321,7 @@
}
String sql = buildQuery(
- projectionIn, selection, selectionArgs, groupBy, having,
+ projectionIn, selection, groupBy, having,
sortOrder, limit);
if (Log.isLoggable(TAG, Log.DEBUG)) {
@@ -345,10 +345,6 @@
* formatted as an SQL WHERE clause (excluding the WHERE
* itself). Passing null will return all rows for the given
* URL.
- * @param selectionArgs You may include ?s in selection, which
- * will be replaced by the values from selectionArgs, in order
- * that they appear in the selection. The values will be bound
- * as Strings.
* @param groupBy A filter declaring how to group rows, formatted
* as an SQL GROUP BY clause (excluding the GROUP BY itself).
* Passing null will cause the rows to not be grouped.
@@ -365,8 +361,8 @@
* @return the resulting SQL SELECT statement
*/
public String buildQuery(
- String[] projectionIn, String selection, String[] selectionArgs,
- String groupBy, String having, String sortOrder, String limit) {
+ String[] projectionIn, String selection, String groupBy,
+ String having, String sortOrder, String limit) {
String[] projection = computeProjection(projectionIn);
StringBuilder where = new StringBuilder();
@@ -394,6 +390,19 @@
}
/**
+ * @deprecated This method's signature is misleading since no SQL parameter
+ * substitution is carried out. The selection arguments parameter does not get
+ * used at all. To avoid confusion, call
+ * {@link #buildQuery(String[], String, String, String, String, String)} instead.
+ */
+ @Deprecated
+ public String buildQuery(
+ String[] projectionIn, String selection, String[] selectionArgs,
+ String groupBy, String having, String sortOrder, String limit) {
+ return buildQuery(projectionIn, selection, groupBy, having, sortOrder, limit);
+ }
+
+ /**
* Construct a SELECT statement suitable for use in a group of
* SELECT statements that will be joined through UNION operators
* in buildUnionQuery.
@@ -422,10 +431,6 @@
* formatted as an SQL WHERE clause (excluding the WHERE
* itself). Passing null will return all rows for the given
* URL.
- * @param selectionArgs You may include ?s in selection, which
- * will be replaced by the values from selectionArgs, in order
- * that they appear in the selection. The values will be bound
- * as Strings.
* @param groupBy A filter declaring how to group rows, formatted
* as an SQL GROUP BY clause (excluding the GROUP BY itself).
* Passing null will cause the rows to not be grouped.
@@ -443,7 +448,6 @@
int computedColumnsOffset,
String typeDiscriminatorValue,
String selection,
- String[] selectionArgs,
String groupBy,
String having) {
int unionColumnsCount = unionColumns.length;
@@ -463,12 +467,36 @@
}
}
return buildQuery(
- projectionIn, selection, selectionArgs, groupBy, having,
+ projectionIn, selection, groupBy, having,
null /* sortOrder */,
null /* limit */);
}
/**
+ * @deprecated This method's signature is misleading since no SQL parameter
+ * substitution is carried out. The selection arguments parameter does not get
+ * used at all. To avoid confusion, call
+ * {@link #buildUnionSubQuery}
+ * instead.
+ */
+ @Deprecated
+ public String buildUnionSubQuery(
+ String typeDiscriminatorColumn,
+ String[] unionColumns,
+ Set<String> columnsPresentInTable,
+ int computedColumnsOffset,
+ String typeDiscriminatorValue,
+ String selection,
+ String[] selectionArgs,
+ String groupBy,
+ String having) {
+ return buildUnionSubQuery(
+ typeDiscriminatorColumn, unionColumns, columnsPresentInTable,
+ computedColumnsOffset, typeDiscriminatorValue, selection,
+ groupBy, having);
+ }
+
+ /**
* Given a set of subqueries, all of which are SELECT statements,
* construct a query that returns the union of what those
* subqueries return.
diff --git a/core/java/android/os/Binder.java b/core/java/android/os/Binder.java
index f8260ca..a402c91 100644
--- a/core/java/android/os/Binder.java
+++ b/core/java/android/os/Binder.java
@@ -324,6 +324,10 @@
} catch (RuntimeException e) {
reply.writeException(e);
res = true;
+ } catch (OutOfMemoryError e) {
+ RuntimeException re = new RuntimeException("Out of memory", e);
+ reply.writeException(re);
+ res = true;
}
reply.recycle();
data.recycle();
diff --git a/core/java/android/os/StrictMode.java b/core/java/android/os/StrictMode.java
index 1fa5af2..93542c6e 100644
--- a/core/java/android/os/StrictMode.java
+++ b/core/java/android/os/StrictMode.java
@@ -706,8 +706,7 @@
StrictMode.PENALTY_DROPBOX);
sVmPolicyMask = StrictMode.DETECT_VM_CURSOR_LEAKS |
StrictMode.DETECT_VM_CLOSABLE_LEAKS |
- StrictMode.PENALTY_DROPBOX |
- StrictMode.PENALTY_LOG;
+ StrictMode.PENALTY_DROPBOX;
setCloseGuardEnabled(vmClosableObjectLeaksEnabled());
return true;
}
diff --git a/core/java/android/preference/Preference.java b/core/java/android/preference/Preference.java
index 12b9f0c..e869f3f 100644
--- a/core/java/android/preference/Preference.java
+++ b/core/java/android/preference/Preference.java
@@ -22,6 +22,7 @@
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.TypedArray;
+import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Parcel;
import android.os.Parcelable;
@@ -31,6 +32,7 @@
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
@@ -52,6 +54,7 @@
* {@link SharedPreferences}. It is up to the subclass to decide how to store
* the value.
*
+ * @attr ref android.R.styleable#Preference_icon
* @attr ref android.R.styleable#Preference_key
* @attr ref android.R.styleable#Preference_title
* @attr ref android.R.styleable#Preference_summary
@@ -87,6 +90,11 @@
private int mOrder = DEFAULT_ORDER;
private CharSequence mTitle;
private CharSequence mSummary;
+ /**
+ * mIconResId is overridden by mIcon, if mIcon is specified.
+ */
+ private int mIconResId;
+ private Drawable mIcon;
private String mKey;
private Intent mIntent;
private String mFragment;
@@ -197,6 +205,10 @@
for (int i = a.getIndexCount(); i >= 0; i--) {
int attr = a.getIndex(i);
switch (attr) {
+ case com.android.internal.R.styleable.Preference_icon:
+ mIconResId = a.getResourceId(attr, 0);
+ break;
+
case com.android.internal.R.styleable.Preference_key:
mKey = a.getString(attr);
break;
@@ -499,11 +511,20 @@
}
}
+ ImageView imageView = (ImageView) view.findViewById(com.android.internal.R.id.icon);
+ if (imageView != null && (mIconResId != 0 || mIcon != null)) {
+ if (mIcon == null) {
+ mIcon = getContext().getResources().getDrawable(mIconResId);
+ }
+ if (mIcon != null) {
+ imageView.setImageDrawable(mIcon);
+ }
+ }
if (mShouldDisableView) {
setEnabledStateOnViews(view, isEnabled());
}
}
-
+
/**
* Makes sure the view (and any children) get the enabled state changed.
*/
@@ -587,6 +608,42 @@
}
/**
+ * Sets the icon for this Preference with a Drawable.
+ * This icon will be placed into the ID
+ * {@link android.R.id#icon} within the View created by
+ * {@link #onCreateView(ViewGroup)}.
+ *
+ * @param icon The optional icon for this Preference.
+ */
+ public void setIcon(Drawable icon) {
+ if ((icon == null && mIcon != null) || (icon != null && mIcon != icon)) {
+ mIcon = icon;
+ notifyChanged();
+ }
+ }
+
+ /**
+ * Sets the icon for this Preference with a resource ID.
+ *
+ * @see #setIcon(Drawable)
+ * @param iconResId The icon as a resource ID.
+ */
+ public void setIcon(int iconResId) {
+ mIconResId = iconResId;
+ setIcon(mContext.getResources().getDrawable(iconResId));
+ }
+
+ /**
+ * Returns the icon of this Preference.
+ *
+ * @return The icon.
+ * @see #setIcon(Drawable)
+ */
+ public Drawable getIcon() {
+ return mIcon;
+ }
+
+ /**
* Returns the summary of this Preference.
*
* @return The summary.
diff --git a/core/java/android/provider/ContactsContract.java b/core/java/android/provider/ContactsContract.java
index f0aa878..2d2f205 100644
--- a/core/java/android/provider/ContactsContract.java
+++ b/core/java/android/provider/ContactsContract.java
@@ -6127,6 +6127,14 @@
public static final int STATUS_CHANGING_LOCALE = 3;
/**
+ * The status that indicates that there are no accounts and no contacts
+ * on the device.
+ *
+ * @hide
+ */
+ public static final int STATUS_NO_ACCOUNTS_NO_CONTACTS = 4;
+
+ /**
* Additional data associated with the status.
*
* @hide
diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java
index 092934b..f2988bc 100644
--- a/core/java/android/webkit/WebView.java
+++ b/core/java/android/webkit/WebView.java
@@ -3558,6 +3558,7 @@
if (inEditingMode()) {
return mWebTextView.performLongClick();
}
+ if (mSelectingText) return false; // long click does nothing on selection
/* if long click brings up a context menu, the super function
* returns true and we're done. Otherwise, nothing happened when
* the user clicked. */
@@ -3568,7 +3569,6 @@
* click action, look for a word under the click. If one is found,
* animate the text selection into view.
* FIXME: no animation code yet */
- if (mSelectingText) return false; // long click does nothing on selection
int x = viewToContentX((int) mLastTouchX + mScrollX);
int y = viewToContentY((int) mLastTouchY + mScrollY);
setUpSelect();
diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java
index 466e5413..d388985 100644
--- a/core/java/android/widget/AbsListView.java
+++ b/core/java/android/widget/AbsListView.java
@@ -2543,6 +2543,7 @@
mMotionCorrection = 0;
motionPosition = findMotionRow(y);
reportScrollStateChange(OnScrollListener.SCROLL_STATE_TOUCH_SCROLL);
+ mFlingRunnable.flywheelTouch();
}
}
}
@@ -2715,6 +2716,9 @@
} else {
mTouchMode = TOUCH_MODE_REST;
reportScrollStateChange(OnScrollListener.SCROLL_STATE_IDLE);
+ if (mFlingRunnable != null) {
+ mFlingRunnable.endFling();
+ }
}
}
} else {
@@ -2758,7 +2762,7 @@
case MotionEvent.ACTION_CANCEL: {
mTouchMode = TOUCH_MODE_REST;
setPressed(false);
- View motionView = this.getChildAt(mMotionPosition - mFirstPosition);
+ View motionView = getChildAt(mMotionPosition - mFirstPosition);
if (motionView != null) {
motionView.setPressed(false);
}
@@ -2946,6 +2950,30 @@
*/
private int mLastFlingY;
+ private final Runnable mCheckFlywheel = new Runnable() {
+ public void run() {
+ final int activeId = mActivePointerId;
+ final VelocityTracker vt = mVelocityTracker;
+ final Scroller scroller = mScroller;
+ if (vt == null || activeId == INVALID_POINTER) {
+ return;
+ }
+
+ vt.computeCurrentVelocity(1000, mMaximumVelocity);
+ final float yvel = -vt.getYVelocity(activeId);
+
+ if (scroller.isScrollingInDirection(0, yvel)) {
+ // Keep the fling alive a little longer
+ postDelayed(this, FLYWHEEL_TIMEOUT);
+ } else {
+ endFling();
+ mTouchMode = TOUCH_MODE_SCROLL;
+ }
+ }
+ };
+
+ private static final int FLYWHEEL_TIMEOUT = 40; // milliseconds
+
FlingRunnable() {
mScroller = new Scroller(getContext());
}
@@ -2978,73 +3006,85 @@
post(this);
}
- private void endFling() {
+ void endFling() {
mTouchMode = TOUCH_MODE_REST;
removeCallbacks(this);
+ removeCallbacks(mCheckFlywheel);
if (mPositionScroller != null) {
removeCallbacks(mPositionScroller);
}
reportScrollStateChange(OnScrollListener.SCROLL_STATE_IDLE);
clearScrollingCache();
+ mScroller.abortAnimation();
+ }
+
+ void flywheelTouch() {
+ postDelayed(mCheckFlywheel, FLYWHEEL_TIMEOUT);
}
public void run() {
switch (mTouchMode) {
default:
+ endFling();
return;
- case TOUCH_MODE_FLING: {
+ case TOUCH_MODE_SCROLL:
+ if (mScroller.isFinished()) {
+ return;
+ }
+ // Fall through
+ case TOUCH_MODE_FLING:
if (mItemCount == 0 || getChildCount() == 0) {
endFling();
return;
}
+ break;
+ }
+ final Scroller scroller = mScroller;
+ boolean more = scroller.computeScrollOffset();
+ final int y = scroller.getCurrY();
- final Scroller scroller = mScroller;
- boolean more = scroller.computeScrollOffset();
- final int y = scroller.getCurrY();
+ // Flip sign to convert finger direction to list items direction
+ // (e.g. finger moving down means list is moving towards the top)
+ int delta = mLastFlingY - y;
- // Flip sign to convert finger direction to list items direction
- // (e.g. finger moving down means list is moving towards the top)
- int delta = mLastFlingY - y;
+ // Pretend that each frame of a fling scroll is a touch scroll
+ if (delta > 0) {
+ // List is moving towards the top. Use first view as mMotionPosition
+ mMotionPosition = mFirstPosition;
+ final View firstView = getChildAt(0);
+ mMotionViewOriginalTop = firstView.getTop();
- // Pretend that each frame of a fling scroll is a touch scroll
- if (delta > 0) {
- // List is moving towards the top. Use first view as mMotionPosition
- mMotionPosition = mFirstPosition;
- final View firstView = getChildAt(0);
- mMotionViewOriginalTop = firstView.getTop();
+ // Don't fling more than 1 screen
+ delta = Math.min(getHeight() - mPaddingBottom - mPaddingTop - 1, delta);
+ } else {
+ // List is moving towards the bottom. Use last view as mMotionPosition
+ int offsetToLast = getChildCount() - 1;
+ mMotionPosition = mFirstPosition + offsetToLast;
- // Don't fling more than 1 screen
- delta = Math.min(getHeight() - mPaddingBottom - mPaddingTop - 1, delta);
- } else {
- // List is moving towards the bottom. Use last view as mMotionPosition
- int offsetToLast = getChildCount() - 1;
- mMotionPosition = mFirstPosition + offsetToLast;
+ final View lastView = getChildAt(offsetToLast);
+ mMotionViewOriginalTop = lastView.getTop();
- final View lastView = getChildAt(offsetToLast);
- mMotionViewOriginalTop = lastView.getTop();
+ // Don't fling more than 1 screen
+ delta = Math.max(-(getHeight() - mPaddingBottom - mPaddingTop - 1), delta);
+ }
- // Don't fling more than 1 screen
- delta = Math.max(-(getHeight() - mPaddingBottom - mPaddingTop - 1), delta);
- }
+ // Don't stop just because delta is zero (it could have been rounded)
+ final boolean atEnd = trackMotionScroll(delta, delta) && (delta != 0);
- // Don't stop just because delta is zero (it could have been rounded)
- final boolean atEnd = trackMotionScroll(delta, delta) && (delta != 0);
+ if (more && !atEnd) {
+ invalidate();
+ mLastFlingY = y;
+ post(this);
+ } else {
+ endFling();
- if (more && !atEnd) {
- invalidate();
- mLastFlingY = y;
- post(this);
- } else {
- endFling();
-
- if (PROFILE_FLINGING) {
- if (mFlingProfilingStarted) {
- Debug.stopMethodTracing();
- mFlingProfilingStarted = false;
- }
+ if (PROFILE_FLINGING) {
+ if (mFlingProfilingStarted) {
+ Debug.stopMethodTracing();
+ mFlingProfilingStarted = false;
}
if (mFlingStrictSpan != null) {
@@ -3052,10 +3092,7 @@
mFlingStrictSpan = null;
}
}
- break;
}
- }
-
}
}
@@ -3609,7 +3646,10 @@
int count = 0;
if (down) {
- final int top = listPadding.top - incrementalDeltaY;
+ int top = -incrementalDeltaY;
+ if ((mGroupFlags & CLIP_TO_PADDING_MASK) == CLIP_TO_PADDING_MASK) {
+ top += listPadding.top;
+ }
for (int i = 0; i < childCount; i++) {
final View child = getChildAt(i);
if (child.getBottom() >= top) {
@@ -3629,7 +3669,10 @@
}
}
} else {
- final int bottom = getHeight() - listPadding.bottom - incrementalDeltaY;
+ int bottom = getHeight() - incrementalDeltaY;
+ if ((mGroupFlags & CLIP_TO_PADDING_MASK) == CLIP_TO_PADDING_MASK) {
+ bottom -= listPadding.bottom;
+ }
for (int i = childCount - 1; i >= 0; i--) {
final View child = getChildAt(i);
if (child.getTop() <= bottom) {
diff --git a/core/java/android/widget/GridView.java b/core/java/android/widget/GridView.java
index b963536..114ae81 100644
--- a/core/java/android/widget/GridView.java
+++ b/core/java/android/widget/GridView.java
@@ -196,8 +196,12 @@
final int count = getChildCount();
if (down) {
+ int paddingTop = 0;
+ if ((mGroupFlags & CLIP_TO_PADDING_MASK) == CLIP_TO_PADDING_MASK) {
+ paddingTop = getListPaddingTop();
+ }
final int startOffset = count > 0 ?
- getChildAt(count - 1).getBottom() + verticalSpacing : getListPaddingTop();
+ getChildAt(count - 1).getBottom() + verticalSpacing : paddingTop;
int position = mFirstPosition + count;
if (mStackFromBottom) {
position += numColumns - 1;
@@ -205,8 +209,12 @@
fillDown(position, startOffset);
correctTooHigh(numColumns, verticalSpacing, getChildCount());
} else {
+ int paddingBottom = 0;
+ if ((mGroupFlags & CLIP_TO_PADDING_MASK) == CLIP_TO_PADDING_MASK) {
+ paddingBottom = getListPaddingBottom();
+ }
final int startOffset = count > 0 ?
- getChildAt(0).getTop() - verticalSpacing : getHeight() - getListPaddingBottom();
+ getChildAt(0).getTop() - verticalSpacing : getHeight() - paddingBottom;
int position = mFirstPosition;
if (!mStackFromBottom) {
position -= numColumns;
@@ -232,7 +240,10 @@
private View fillDown(int pos, int nextTop) {
View selectedView = null;
- final int end = (mBottom - mTop) - mListPadding.bottom;
+ int end = (mBottom - mTop);
+ if ((mGroupFlags & CLIP_TO_PADDING_MASK) == CLIP_TO_PADDING_MASK) {
+ end -= mListPadding.bottom;
+ }
while (nextTop < end && pos < mItemCount) {
View temp = makeRow(pos, nextTop, true);
@@ -316,7 +327,10 @@
private View fillUp(int pos, int nextBottom) {
View selectedView = null;
- final int end = mListPadding.top;
+ int end = 0;
+ if ((mGroupFlags & CLIP_TO_PADDING_MASK) == CLIP_TO_PADDING_MASK) {
+ end = mListPadding.top;
+ }
while (nextBottom > end && pos >= 0) {
diff --git a/core/java/android/widget/ListView.java b/core/java/android/widget/ListView.java
index e0119e9..502cc38 100644
--- a/core/java/android/widget/ListView.java
+++ b/core/java/android/widget/ListView.java
@@ -595,13 +595,21 @@
void fillGap(boolean down) {
final int count = getChildCount();
if (down) {
+ int paddingTop = 0;
+ if ((mGroupFlags & CLIP_TO_PADDING_MASK) == CLIP_TO_PADDING_MASK) {
+ paddingTop = getListPaddingTop();
+ }
final int startOffset = count > 0 ? getChildAt(count - 1).getBottom() + mDividerHeight :
- getListPaddingTop();
+ paddingTop;
fillDown(mFirstPosition + count, startOffset);
correctTooHigh(getChildCount());
} else {
+ int paddingBottom = 0;
+ if ((mGroupFlags & CLIP_TO_PADDING_MASK) == CLIP_TO_PADDING_MASK) {
+ paddingBottom = getListPaddingBottom();
+ }
final int startOffset = count > 0 ? getChildAt(0).getTop() - mDividerHeight :
- getHeight() - getListPaddingBottom();
+ getHeight() - paddingBottom;
fillUp(mFirstPosition - 1, startOffset);
correctTooLow(getChildCount());
}
@@ -621,7 +629,10 @@
private View fillDown(int pos, int nextTop) {
View selectedView = null;
- int end = (mBottom - mTop) - mListPadding.bottom;
+ int end = (mBottom - mTop);
+ if ((mGroupFlags & CLIP_TO_PADDING_MASK) == CLIP_TO_PADDING_MASK) {
+ end -= mListPadding.bottom;
+ }
while (nextTop < end && pos < mItemCount) {
// is this the selected item?
@@ -651,7 +662,10 @@
private View fillUp(int pos, int nextBottom) {
View selectedView = null;
- int end = mListPadding.top;
+ int end = 0;
+ if ((mGroupFlags & CLIP_TO_PADDING_MASK) == CLIP_TO_PADDING_MASK) {
+ end = mListPadding.top;
+ }
while (nextBottom > end && pos >= 0) {
// is this the selected item?
diff --git a/core/java/android/widget/Scroller.java b/core/java/android/widget/Scroller.java
index 79ab448..b1f50ba 100644
--- a/core/java/android/widget/Scroller.java
+++ b/core/java/android/widget/Scroller.java
@@ -18,6 +18,8 @@
import android.content.Context;
import android.hardware.SensorManager;
+import android.os.Build;
+import android.util.FloatMath;
import android.view.ViewConfiguration;
import android.view.animation.AnimationUtils;
import android.view.animation.Interpolator;
@@ -54,6 +56,7 @@
private float mViscousFluidNormalize;
private boolean mFinished;
private Interpolator mInterpolator;
+ private boolean mFlywheel;
private float mCoeffX = 0.0f;
private float mCoeffY = 1.0f;
@@ -63,9 +66,36 @@
private static final int SCROLL_MODE = 0;
private static final int FLING_MODE = 1;
+ private static float DECELERATION_RATE = (float) (Math.log(0.75) / Math.log(0.9));
+ private static float ALPHA = 800; // pixels / seconds
+ private static float START_TENSION = 0.4f; // Tension at start: (0.4 * total T, 1.0 * Distance)
+ private static float END_TENSION = 1.0f - START_TENSION;
+ private static final int NB_SAMPLES = 100;
+ private static final float[] SPLINE = new float[NB_SAMPLES + 1];
+
private float mDeceleration;
private final float mPpi;
+ static {
+ float x_min = 0.0f;
+ for (int i = 0; i <= NB_SAMPLES; i++) {
+ final float t = (float) i / NB_SAMPLES;
+ float x_max = 1.0f;
+ float x, tx, coef;
+ while (true) {
+ x = x_min + (x_max - x_min) / 2.0f;
+ coef = 3.0f * x * (1.0f - x);
+ tx = coef * ((1.0f - x) * START_TENSION + x * END_TENSION) + x * x * x;
+ if (Math.abs(tx - t) < 1E-5) break;
+ if (tx > t) x_max = x;
+ else x_min = x;
+ }
+ final float d = coef + x * x * x;
+ SPLINE[i] = d;
+ }
+ SPLINE[NB_SAMPLES] = 1.0f;
+ }
+
/**
* Create a Scroller with the default duration and interpolator.
*/
@@ -73,22 +103,28 @@
this(context, null);
}
+ public Scroller(Context context, Interpolator interpolator) {
+ this(context, interpolator,
+ context.getApplicationInfo().targetSdkVersion >= Build.VERSION_CODES.HONEYCOMB);
+ }
+
/**
* Create a Scroller with the specified interpolator. If the interpolator is
* null, the default (viscous) interpolator will be used.
*/
- public Scroller(Context context, Interpolator interpolator) {
+ public Scroller(Context context, Interpolator interpolator, boolean flywheel) {
mFinished = true;
mInterpolator = interpolator;
mPpi = context.getResources().getDisplayMetrics().density * 160.0f;
mDeceleration = computeDeceleration(ViewConfiguration.getScrollFriction());
+ mFlywheel = flywheel;
}
/**
* The amount of friction applied to flings. The default value
* is {@link ViewConfiguration#getScrollFriction}.
*
- * @return A scalar dimensionless value representing the coefficient of
+ * @param friction A scalar dimension-less value representing the coefficient of
* friction.
*/
public final void setFriction(float friction) {
@@ -210,7 +246,7 @@
if (timePassed < mDuration) {
switch (mMode) {
case SCROLL_MODE:
- float x = (float)timePassed * mDurationReciprocal;
+ float x = timePassed * mDurationReciprocal;
if (mInterpolator == null)
x = viscousFluid(x);
@@ -221,16 +257,20 @@
mCurrY = mStartY + Math.round(x * mDeltaY);
break;
case FLING_MODE:
- float timePassedSeconds = timePassed / 1000.0f;
- float distance = (mVelocity * timePassedSeconds)
- - (mDeceleration * timePassedSeconds * timePassedSeconds / 2.0f);
+ final float t = (float) timePassed / mDuration;
+ final int index = (int) (NB_SAMPLES * t);
+ final float t_inf = (float) index / NB_SAMPLES;
+ final float t_sup = (float) (index + 1) / NB_SAMPLES;
+ final float d_inf = SPLINE[index];
+ final float d_sup = SPLINE[index + 1];
+ final float distanceCoef = d_inf + (t - t_inf) / (t_sup - t_inf) * (d_sup - d_inf);
- mCurrX = mStartX + Math.round(distance * mCoeffX);
+ mCurrX = mStartX + Math.round(distanceCoef * (mFinalX - mStartX));
// Pin to mMinX <= mCurrX <= mMaxX
mCurrX = Math.min(mCurrX, mMaxX);
mCurrX = Math.max(mCurrX, mMinX);
- mCurrY = mStartY + Math.round(distance * mCoeffY);
+ mCurrY = mStartY + Math.round(distanceCoef * (mFinalY - mStartY));
// Pin to mMinY <= mCurrY <= mMaxY
mCurrY = Math.min(mCurrY, mMaxY);
mCurrY = Math.max(mCurrY, mMinY);
@@ -292,7 +332,7 @@
mFinalY = startY + dy;
mDeltaX = dx;
mDeltaY = dy;
- mDurationReciprocal = 1.0f / (float) mDuration;
+ mDurationReciprocal = 1.0f / mDuration;
// This controls the viscous fluid effect (how much of it)
mViscousFluidScale = 8.0f;
// must be set to 1.0 (used in viscousFluid())
@@ -321,14 +361,34 @@
*/
public void fling(int startX, int startY, int velocityX, int velocityY,
int minX, int maxX, int minY, int maxY) {
+ // Continue a scroll or fling in progress
+ if (mFlywheel && !mFinished) {
+ float oldVel = getCurrVelocity();
+
+ float dx = (float) (mFinalX - mStartX);
+ float dy = (float) (mFinalY - mStartY);
+ float hyp = FloatMath.sqrt(dx * dx + dy * dy);
+
+ float ndx = dx / hyp;
+ float ndy = dy / hyp;
+
+ float oldVelocityX = ndx * oldVel;
+ float oldVelocityY = ndy * oldVel;
+ if (Math.signum(velocityX) == Math.signum(oldVelocityX) &&
+ Math.signum(velocityY) == Math.signum(oldVelocityY)) {
+ velocityX += oldVelocityX;
+ velocityY += oldVelocityY;
+ }
+ }
+
mMode = FLING_MODE;
mFinished = false;
- float velocity = (float)Math.hypot(velocityX, velocityY);
+ float velocity = FloatMath.sqrt(velocityX * velocityX + velocityY * velocityY);
mVelocity = velocity;
- mDuration = (int) (1000 * velocity / mDeceleration); // Duration is in
- // milliseconds
+ final double l = Math.log(START_TENSION * velocity / ALPHA);
+ mDuration = (int) (1000.0 * Math.exp(l / (DECELERATION_RATE - 1.0)));
mStartTime = AnimationUtils.currentAnimationTimeMillis();
mStartX = startX;
mStartY = startY;
@@ -336,14 +396,14 @@
mCoeffX = velocity == 0 ? 1.0f : velocityX / velocity;
mCoeffY = velocity == 0 ? 1.0f : velocityY / velocity;
- int totalDistance = (int) ((velocity * velocity) / (2 * mDeceleration));
+ int totalDistance =
+ (int) (ALPHA * Math.exp(DECELERATION_RATE / (DECELERATION_RATE - 1.0) * l));
mMinX = minX;
mMaxX = maxX;
mMinY = minY;
mMaxY = maxY;
-
-
+
mFinalX = startX + Math.round(totalDistance * mCoeffX);
// Pin to mMinX <= mFinalX <= mMaxX
mFinalX = Math.min(mFinalX, mMaxX);
@@ -395,7 +455,7 @@
public void extendDuration(int extend) {
int passed = timePassed();
mDuration = passed + extend;
- mDurationReciprocal = 1.0f / (float)mDuration;
+ mDurationReciprocal = 1.0f / mDuration;
mFinished = false;
}
@@ -433,4 +493,12 @@
mDeltaY = mFinalY - mStartY;
mFinished = false;
}
+
+ /**
+ * @hide
+ */
+ public boolean isScrollingInDirection(float xvel, float yvel) {
+ return !mFinished && Math.signum(xvel) == Math.signum(mFinalX - mStartX) &&
+ Math.signum(yvel) == Math.signum(mFinalY - mStartY);
+ }
}
diff --git a/core/java/com/android/internal/app/ActionBarImpl.java b/core/java/com/android/internal/app/ActionBarImpl.java
index 86523ac..20402a3 100644
--- a/core/java/com/android/internal/app/ActionBarImpl.java
+++ b/core/java/com/android/internal/app/ActionBarImpl.java
@@ -31,6 +31,7 @@
import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.view.ActionMode;
+import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
@@ -563,6 +564,11 @@
}
@Override
+ public Tab setCustomView(int layoutResId) {
+ return setCustomView(LayoutInflater.from(mContext).inflate(layoutResId, null));
+ }
+
+ @Override
public Drawable getIcon() {
return mIcon;
}
@@ -588,12 +594,22 @@
}
@Override
+ public Tab setIcon(int resId) {
+ return setIcon(mContext.getResources().getDrawable(resId));
+ }
+
+ @Override
public Tab setText(CharSequence text) {
mText = text;
return this;
}
@Override
+ public Tab setText(int resId) {
+ return setText(mContext.getResources().getText(resId));
+ }
+
+ @Override
public void select() {
selectTab(this);
}
diff --git a/core/java/com/android/internal/widget/ActionBarView.java b/core/java/com/android/internal/widget/ActionBarView.java
index e18f58f..b382cee 100644
--- a/core/java/com/android/internal/widget/ActionBarView.java
+++ b/core/java/com/android/internal/widget/ActionBarView.java
@@ -82,12 +82,10 @@
private Drawable mIcon;
private Drawable mLogo;
private Drawable mDivider;
- private Drawable mHomeAsUpIndicator;
- private LinearLayout mHomeLayout;
- private ImageView mHomeAsUpView;
+ private View mHomeLayout;
+ private View mHomeAsUpView;
private ImageView mIconView;
- private ImageView mLogoView;
private LinearLayout mTitleLayout;
private TextView mTitleView;
private TextView mSubtitleView;
@@ -172,18 +170,15 @@
}
}
- mHomeLayout = new LinearLayout(context, null,
- com.android.internal.R.attr.actionButtonStyle);
- mHomeLayout.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
- LayoutParams.MATCH_PARENT));
+ final LayoutInflater inflater = LayoutInflater.from(context);
- mHomeAsUpIndicator = a.getDrawable(R.styleable.ActionBar_homeAsUpIndicator);
+ final int homeResId = a.getResourceId(
+ com.android.internal.R.styleable.ActionBar_homeLayout, 0);
- mHomeAsUpView = new ImageView(context);
- mHomeAsUpView.setImageDrawable(mHomeAsUpIndicator);
- mHomeAsUpView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
- LayoutParams.MATCH_PARENT));
- mHomeLayout.addView(mHomeAsUpView);
+ mHomeLayout = inflater.inflate(homeResId, this, false);
+
+ mHomeAsUpView = mHomeLayout.findViewById(com.android.internal.R.id.up);
+ mIconView = (ImageView) mHomeLayout.findViewById(com.android.internal.R.id.home);
Drawable background = a.getDrawable(R.styleable.ActionBar_background);
if (background != null) {
@@ -202,8 +197,7 @@
final int customNavId = a.getResourceId(R.styleable.ActionBar_customNavigationLayout, 0);
if (customNavId != 0) {
- LayoutInflater inflater = LayoutInflater.from(context);
- mCustomNavView = (View) inflater.inflate(customNavId, null);
+ mCustomNavView = (View) inflater.inflate(customNavId, this, false);
mNavigationMode = ActionBar.NAVIGATION_MODE_STANDARD;
setDisplayOptions(mDisplayOptions | ActionBar.DISPLAY_SHOW_CUSTOM);
}
@@ -375,13 +369,12 @@
if ((flagsChanged & ActionBar.DISPLAY_HOME_AS_UP) != 0) {
mHomeAsUpView.setVisibility((options & ActionBar.DISPLAY_HOME_AS_UP) != 0
- ? VISIBLE : GONE);
+ ? VISIBLE : INVISIBLE);
}
- if (mLogoView != null && (flagsChanged & ActionBar.DISPLAY_USE_LOGO) != 0) {
- final boolean logoVis = (options & ActionBar.DISPLAY_USE_LOGO) != 0;
- mLogoView.setVisibility(logoVis ? VISIBLE : GONE);
- mIconView.setVisibility(logoVis ? GONE : VISIBLE);
+ if ((flagsChanged & ActionBar.DISPLAY_USE_LOGO) != 0) {
+ final boolean logoVis = mLogo != null && (options & ActionBar.DISPLAY_USE_LOGO) != 0;
+ mIconView.setImageDrawable(logoVis ? mLogo : mIcon);
}
if ((flagsChanged & ActionBar.DISPLAY_SHOW_TITLE) != 0) {
@@ -531,50 +524,8 @@
protected void onFinishInflate() {
super.onFinishInflate();
- final Context context = getContext();
-
- if (mLogo != null) {
- mLogoView = new ImageView(context);
- mLogoView.setScaleType(ImageView.ScaleType.CENTER);
- mLogoView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
- LayoutParams.MATCH_PARENT));
- mLogoView.setImageDrawable(mLogo);
- mLogoView.setVisibility((mDisplayOptions & ActionBar.DISPLAY_USE_LOGO) != 0
- ? VISIBLE : GONE);
- mHomeLayout.addView(mLogoView);
- }
-
- if (mIcon != null) {
- mIconView = new ImageView(context, null,
- com.android.internal.R.attr.actionButtonStyle);
- mIconView.setScaleType(ImageView.ScaleType.CENTER);
- mIconView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
- LayoutParams.MATCH_PARENT));
- mIconView.setImageDrawable(mIcon);
- mIconView.setVisibility(
- (mDisplayOptions & ActionBar.DISPLAY_USE_LOGO) == 0 || mLogo == null
- ? VISIBLE : GONE);
- mHomeLayout.addView(mIconView);
- }
-
addView(mHomeLayout);
- switch (mNavigationMode) {
- case ActionBar.NAVIGATION_MODE_STANDARD:
- if (mLogoView == null) {
- initTitle();
- }
- break;
-
- case ActionBar.NAVIGATION_MODE_LIST:
- throw new UnsupportedOperationException(
- "Inflating list navigation isn't supported yet!");
-
- case ActionBar.NAVIGATION_MODE_TABS:
- throw new UnsupportedOperationException(
- "Inflating tab navigation isn't supported yet!");
- }
-
if (mCustomNavView != null && (mDisplayOptions & ActionBar.DISPLAY_SHOW_CUSTOM) != 0) {
final ViewParent parent = mCustomNavView.getParent();
if (parent != this) {
@@ -653,8 +604,11 @@
int rightOfCenter = leftOfCenter;
if (mHomeLayout.getVisibility() != GONE) {
- availableWidth = measureChildView(mHomeLayout, availableWidth, childSpecHeight, 0);
- leftOfCenter -= mHomeLayout.getMeasuredWidth();
+ mHomeLayout.measure(MeasureSpec.makeMeasureSpec(availableWidth, MeasureSpec.AT_MOST),
+ MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY));
+ final int homeWidth = mHomeLayout.getMeasuredWidth();
+ availableWidth -= homeWidth;
+ leftOfCenter -= homeWidth;
}
if (mMenuView != null) {
diff --git a/core/res/res/drawable-hdpi/ic_ab_back_holo_dark.png b/core/res/res/drawable-hdpi/ic_ab_back_holo_dark.png
index a8da981..b4079db 100644
--- a/core/res/res/drawable-hdpi/ic_ab_back_holo_dark.png
+++ b/core/res/res/drawable-hdpi/ic_ab_back_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_ab_back_holo_light.png b/core/res/res/drawable-hdpi/ic_ab_back_holo_light.png
index af0f308..09e83e4 100644
--- a/core/res/res/drawable-hdpi/ic_ab_back_holo_light.png
+++ b/core/res/res/drawable-hdpi/ic_ab_back_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_menu_moreoverflow_focused_holo_dark.png b/core/res/res/drawable-hdpi/ic_menu_moreoverflow_focused_holo_dark.png
index 061f80a..3ecaa9d 100644
--- a/core/res/res/drawable-hdpi/ic_menu_moreoverflow_focused_holo_dark.png
+++ b/core/res/res/drawable-hdpi/ic_menu_moreoverflow_focused_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_menu_moreoverflow_focused_holo_light.png b/core/res/res/drawable-hdpi/ic_menu_moreoverflow_focused_holo_light.png
index d818806..40009af 100644
--- a/core/res/res/drawable-hdpi/ic_menu_moreoverflow_focused_holo_light.png
+++ b/core/res/res/drawable-hdpi/ic_menu_moreoverflow_focused_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_menu_moreoverflow_normal_holo_dark.png b/core/res/res/drawable-hdpi/ic_menu_moreoverflow_normal_holo_dark.png
index 8563c1a8d..e21f534 100644
--- a/core/res/res/drawable-hdpi/ic_menu_moreoverflow_normal_holo_dark.png
+++ b/core/res/res/drawable-hdpi/ic_menu_moreoverflow_normal_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_menu_moreoverflow_normal_holo_light.png b/core/res/res/drawable-hdpi/ic_menu_moreoverflow_normal_holo_light.png
index 1cd2384..9108fa1 100644
--- a/core/res/res/drawable-hdpi/ic_menu_moreoverflow_normal_holo_light.png
+++ b/core/res/res/drawable-hdpi/ic_menu_moreoverflow_normal_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_ab_back_holo_dark.png b/core/res/res/drawable-mdpi/ic_ab_back_holo_dark.png
index 7aae741..08a8eca 100644
--- a/core/res/res/drawable-mdpi/ic_ab_back_holo_dark.png
+++ b/core/res/res/drawable-mdpi/ic_ab_back_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_ab_back_holo_light.png b/core/res/res/drawable-mdpi/ic_ab_back_holo_light.png
index 66ef51c..0ffafd8 100644
--- a/core/res/res/drawable-mdpi/ic_ab_back_holo_light.png
+++ b/core/res/res/drawable-mdpi/ic_ab_back_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_moreoverflow_focused_holo_dark.png b/core/res/res/drawable-mdpi/ic_menu_moreoverflow_focused_holo_dark.png
index 6f87b11..c369e6f 100644
--- a/core/res/res/drawable-mdpi/ic_menu_moreoverflow_focused_holo_dark.png
+++ b/core/res/res/drawable-mdpi/ic_menu_moreoverflow_focused_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_moreoverflow_focused_holo_light.png b/core/res/res/drawable-mdpi/ic_menu_moreoverflow_focused_holo_light.png
index 04dac38..a4df2bf 100644
--- a/core/res/res/drawable-mdpi/ic_menu_moreoverflow_focused_holo_light.png
+++ b/core/res/res/drawable-mdpi/ic_menu_moreoverflow_focused_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_moreoverflow_normal_holo_dark.png b/core/res/res/drawable-mdpi/ic_menu_moreoverflow_normal_holo_dark.png
index 5580af6..a7389c9 100644
--- a/core/res/res/drawable-mdpi/ic_menu_moreoverflow_normal_holo_dark.png
+++ b/core/res/res/drawable-mdpi/ic_menu_moreoverflow_normal_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_moreoverflow_normal_holo_light.png b/core/res/res/drawable-mdpi/ic_menu_moreoverflow_normal_holo_light.png
index fc2081a..87e41ac 100644
--- a/core/res/res/drawable-mdpi/ic_menu_moreoverflow_normal_holo_light.png
+++ b/core/res/res/drawable-mdpi/ic_menu_moreoverflow_normal_holo_light.png
Binary files differ
diff --git a/core/res/res/layout-xlarge/keyguard_screen_tab_unlock.xml b/core/res/res/layout-xlarge/keyguard_screen_tab_unlock.xml
index b3645aa..c76e833 100644
--- a/core/res/res/layout-xlarge/keyguard_screen_tab_unlock.xml
+++ b/core/res/res/layout-xlarge/keyguard_screen_tab_unlock.xml
@@ -21,23 +21,22 @@
state of the device, as well as instructions on how to get past it
depending on the state of the device. It is the same for landscape
and portrait.-->
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tabunlock="http://schemas.android.com/apk/res/com.android.tabunlock"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:background="#70000000"
- android:gravity="center_horizontal"
- android:id="@+id/root">
+ android:orientation="vertical"
+ android:id="@+id/root"
+ android:background="#70000000">
<!-- left side: status and emergency call button -->
<LinearLayout
- android:layout_width="match_parent"
- android:layout_height="0dip"
- android:layout_weight="1"
- android:orientation="vertical"
- android:gravity="center_vertical"
- >
- <include layout="@layout/keyguard_screen_status_land" />
+ android:layout_width="match_parent"
+ android:layout_height="0dip"
+ android:layout_weight="1"
+ android:orientation="vertical"
+ android:gravity="center_vertical">
+ <include layout="@layout/keyguard_screen_status_port" />
</LinearLayout>
<LinearLayout
@@ -61,6 +60,7 @@
android:id="@+id/wave_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:layout_gravity="center"
/>
<!-- "emergency calls only" shown when sim is missing or PUKd -->
@@ -93,5 +93,5 @@
/>
</LinearLayout>
-</RelativeLayout>
+</LinearLayout>
diff --git a/core/res/res/layout-xlarge/status_bar_latest_event_content.xml b/core/res/res/layout-xlarge/status_bar_latest_event_content.xml
index c64b90e..d599154 100644
--- a/core/res/res/layout-xlarge/status_bar_latest_event_content.xml
+++ b/core/res/res/layout-xlarge/status_bar_latest_event_content.xml
@@ -1,56 +1,41 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:orientation="vertical"
- android:paddingTop="7dp"
- android:paddingLeft="5dp"
>
+ <ImageView android:id="@+id/icon"
+ android:layout_width="48dp"
+ android:layout_height="64dp"
+ android:layout_alignParentLeft="true"
+ android:layout_alignParentTop="true"
+ android:scaleType="center"
+ />
+
<LinearLayout
- android:layout_width="match_parent"
+ android:layout_width="0dp"
android:layout_height="wrap_content"
- android:orientation="horizontal"
- android:paddingTop="3dp"
+ android:layout_gravity="center_vertical"
+ android:layout_weight="1"
+ android:orientation="vertical"
+ android:paddingLeft="16dp"
>
- <!--com.android.server.status.AnimatedImageView android:id="@+id/icon" -->
- <ImageView android:id="@+id/icon"
- android:layout_width="25dp"
- android:layout_height="25dp"
- android:scaleType="fitCenter"
- android:src="@drawable/arrow_down_float"/>
<TextView android:id="@+id/title"
android:textAppearance="@style/TextAppearance.StatusBar.EventContent.Title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:singleLine="true"
+ android:ellipsize="marquee"
+ android:fadingEdge="horizontal"
+ />
+ <TextView android:id="@+id/text"
+ android:textAppearance="@style/TextAppearance.StatusBar.EventContent"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
android:layout_weight="1"
android:singleLine="true"
android:ellipsize="marquee"
android:fadingEdge="horizontal"
- android:paddingLeft="4dp"
- />
- </LinearLayout>
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
- >
- <TextView android:id="@+id/text"
- android:textAppearance="@style/TextAppearance.StatusBar.EventContent"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:singleLine="true"
- android:ellipsize="marquee"
- android:fadingEdge="horizontal"
- android:paddingLeft="4dp"
- />
- <android.widget.DateTimeView android:id="@+id/time"
- android:textAppearance="@style/TextAppearance.StatusBar.EventContent"
- android:layout_marginLeft="4dp"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:singleLine="true"
- android:paddingRight="5dp"
/>
</LinearLayout>
</LinearLayout>
+
diff --git a/core/res/res/layout/action_bar_home.xml b/core/res/res/layout/action_bar_home.xml
new file mode 100644
index 0000000..e8b5637
--- /dev/null
+++ b/core/res/res/layout/action_bar_home.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2010 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.
+-->
+
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:background="?android:attr/selectableItemBackground">
+ <ImageView android:id="@android:id/up"
+ android:src="?android:attr/homeAsUpIndicator"
+ android:layout_gravity="top|left"
+ android:visibility="invisible"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content" />
+ <ImageView android:id="@android:id/home"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:paddingLeft="16dip"
+ android:paddingRight="16dip"
+ android:layout_gravity="center"
+ android:scaleType="center" />
+</FrameLayout>
diff --git a/core/res/res/layout/preference.xml b/core/res/res/layout/preference.xml
index 46c3e9c..6bd5efa 100644
--- a/core/res/res/layout/preference.xml
+++ b/core/res/res/layout/preference.xml
@@ -24,13 +24,19 @@
android:gravity="center_vertical"
android:paddingRight="?android:attr/scrollbarSize">
- <!-- Preference should place its actual preference widget here. -->
- <LinearLayout android:id="@+android:id/widget_frame"
+ <LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:minWidth="@dimen/preference_widget_width"
android:gravity="center"
- android:orientation="vertical" />
+ android:orientation="horizontal">
+ <ImageView
+ android:id="@+android:id/icon"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ />
+ </LinearLayout>
<RelativeLayout
android:layout_width="wrap_content"
@@ -59,4 +65,12 @@
</RelativeLayout>
+ <!-- Preference should place its actual preference widget here. -->
+ <LinearLayout android:id="@+android:id/widget_frame"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:minWidth="@dimen/preference_widget_width"
+ android:gravity="center"
+ android:orientation="vertical" />
+
</LinearLayout>
diff --git a/core/res/res/layout/preference_child.xml b/core/res/res/layout/preference_child.xml
index 713aa17..e9b50e0 100644
--- a/core/res/res/layout/preference_child.xml
+++ b/core/res/res/layout/preference_child.xml
@@ -20,20 +20,26 @@
android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
android:gravity="center_vertical"
+ android:paddingLeft="16dip"
android:paddingRight="?android:attr/scrollbarSize">
- <!-- Preference should place its actual preference widget here. -->
- <LinearLayout android:id="@+android:id/widget_frame"
+ <LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:minWidth="@dimen/preference_widget_width"
android:gravity="center"
- android:orientation="vertical" />
+ android:orientation="horizontal">
+ <ImageView
+ android:id="@+android:id/icon"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ />
+ </LinearLayout>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginLeft="16dip"
android:layout_marginRight="6dip"
android:layout_marginTop="6dip"
android:layout_marginBottom="6dip"
@@ -58,4 +64,12 @@
</RelativeLayout>
+ <!-- Preference should place its actual preference widget here. -->
+ <LinearLayout android:id="@+android:id/widget_frame"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:minWidth="@dimen/preference_widget_width"
+ android:gravity="center"
+ android:orientation="vertical" />
+
</LinearLayout>
diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml
index 0aa4247..666032c 100644
--- a/core/res/res/values-cs/strings.xml
+++ b/core/res/res/values-cs/strings.xml
@@ -482,6 +482,10 @@
<string name="policydesc_wipeData" product="default" msgid="7669895333814222586">"Bez upozornění smazat všechna data telefonu obnovením továrních dat"</string>
<string name="policylab_setGlobalProxy" msgid="2784828293747791446">"Nastavit globální proxy server zařízení"</string>
<string name="policydesc_setGlobalProxy" msgid="6387497466660154931">"Vyberte globální proxy server, který se bude používat, když jsou zásady aktivní. Aktuální globální proxy server nastavuje pouze první správce zařízení."</string>
+ <!-- no translation found for policylab_expirePassword (2314569545488269564) -->
+ <skip />
+ <!-- no translation found for policydesc_expirePassword (7276906351852798814) -->
+ <skip />
<string-array name="phoneTypes">
<item msgid="8901098336658710359">"Domů"</item>
<item msgid="869923650527136615">"Mobil"</item>
@@ -546,11 +550,10 @@
<string name="phoneTypeWorkPager" msgid="649938731231157056">"Pracovní pager"</string>
<string name="phoneTypeAssistant" msgid="5596772636128562884">"Asistent"</string>
<string name="phoneTypeMms" msgid="7254492275502768992">"MMS"</string>
- <!-- no translation found for eventTypeCustom (7837586198458073404) -->
- <skip />
+ <string name="eventTypeCustom" msgid="7837586198458073404">"Vlastní"</string>
<string name="eventTypeBirthday" msgid="2813379844211390740">"Narozeniny"</string>
<string name="eventTypeAnniversary" msgid="3876779744518284000">"Výročí"</string>
- <!-- outdated translation 5834288791948564594 --> <string name="eventTypeOther" msgid="7388178939010143077">"Událost"</string>
+ <string name="eventTypeOther" msgid="7388178939010143077">"Ostatní"</string>
<string name="emailTypeCustom" msgid="8525960257804213846">"Vlastní"</string>
<string name="emailTypeHome" msgid="449227236140433919">"Domů"</string>
<string name="emailTypeWork" msgid="3548058059601149973">"Práce"</string>
@@ -577,36 +580,21 @@
<string name="orgTypeWork" msgid="29268870505363872">"Práce"</string>
<string name="orgTypeOther" msgid="3951781131570124082">"Jiné"</string>
<string name="orgTypeCustom" msgid="225523415372088322">"Vlastní"</string>
- <!-- no translation found for relationTypeCustom (3542403679827297300) -->
- <skip />
- <!-- no translation found for relationTypeAssistant (6274334825195379076) -->
- <skip />
- <!-- no translation found for relationTypeBrother (8757913506784067713) -->
- <skip />
- <!-- no translation found for relationTypeChild (1890746277276881626) -->
- <skip />
- <!-- no translation found for relationTypeDomesticPartner (6904807112121122133) -->
- <skip />
- <!-- no translation found for relationTypeFather (5228034687082050725) -->
- <skip />
- <!-- no translation found for relationTypeFriend (7313106762483391262) -->
- <skip />
- <!-- no translation found for relationTypeManager (6365677861610137895) -->
- <skip />
- <!-- no translation found for relationTypeMother (4578571352962758304) -->
- <skip />
- <!-- no translation found for relationTypeParent (4755635567562925226) -->
- <skip />
- <!-- no translation found for relationTypePartner (7266490285120262781) -->
- <skip />
- <!-- no translation found for relationTypeReferredBy (101573059844135524) -->
- <skip />
- <!-- no translation found for relationTypeRelative (1799819930085610271) -->
- <skip />
- <!-- no translation found for relationTypeSister (1735983554479076481) -->
- <skip />
- <!-- no translation found for relationTypeSpouse (394136939428698117) -->
- <skip />
+ <string name="relationTypeCustom" msgid="3542403679827297300">"Vlastní"</string>
+ <string name="relationTypeAssistant" msgid="6274334825195379076">"Asistent"</string>
+ <string name="relationTypeBrother" msgid="8757913506784067713">"Bratr"</string>
+ <string name="relationTypeChild" msgid="1890746277276881626">"Dítě"</string>
+ <string name="relationTypeDomesticPartner" msgid="6904807112121122133">"Druh/družka"</string>
+ <string name="relationTypeFather" msgid="5228034687082050725">"Otec"</string>
+ <string name="relationTypeFriend" msgid="7313106762483391262">"Známý"</string>
+ <string name="relationTypeManager" msgid="6365677861610137895">"Vedoucí"</string>
+ <string name="relationTypeMother" msgid="4578571352962758304">"Matka"</string>
+ <string name="relationTypeParent" msgid="4755635567562925226">"Rodič"</string>
+ <string name="relationTypePartner" msgid="7266490285120262781">"Partner"</string>
+ <string name="relationTypeReferredBy" msgid="101573059844135524">"Doporučující osoba"</string>
+ <string name="relationTypeRelative" msgid="1799819930085610271">"Příbuzný"</string>
+ <string name="relationTypeSister" msgid="1735983554479076481">"Sestra"</string>
+ <string name="relationTypeSpouse" msgid="394136939428698117">"Manžel(ka)"</string>
<string name="sipAddressTypeCustom" msgid="2473580593111590945">"Vlastní"</string>
<string name="sipAddressTypeHome" msgid="6093598181069359295">"Plocha"</string>
<string name="sipAddressTypeWork" msgid="6920725730797099047">"Práce"</string>
@@ -674,8 +662,7 @@
<string name="save_password_label" msgid="6860261758665825069">"Potvrdit"</string>
<string name="double_tap_toast" msgid="1068216937244567247">"Tip: Dvojitým klepnutím můžete zobrazení přiblížit nebo oddálit."</string>
<!-- outdated translation 8940110866775097494 --> <string name="autofill_this_form" msgid="1272247532604569872">"Automaticky vyplnit tento formulář"</string>
- <!-- no translation found for autofill_address_name_separator (2504700673286691795) -->
- <skip />
+ <string name="autofill_address_name_separator" msgid="2504700673286691795">" "</string>
<!-- no translation found for autofill_address_summary_name_format (3268041054899214945) -->
<skip />
<!-- no translation found for autofill_address_summary_separator (7483307893170324129) -->
@@ -804,8 +791,7 @@
<string name="cut" msgid="3092569408438626261">"Vyjmout"</string>
<string name="copy" msgid="2681946229533511987">"Kopírovat"</string>
<string name="paste" msgid="5629880836805036433">"Vložit"</string>
- <!-- no translation found for pasteDisabled (7259254654641456570) -->
- <skip />
+ <string name="pasteDisabled" msgid="7259254654641456570">"Není co vložit"</string>
<string name="copyUrl" msgid="2538211579596067402">"Kopírovat adresu URL"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Vybrat text..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Výběr textu"</string>
@@ -951,8 +937,7 @@
<string name="ime_action_send" msgid="2316166556349314424">"Odeslat"</string>
<string name="ime_action_next" msgid="3138843904009813834">"Další"</string>
<string name="ime_action_done" msgid="8971516117910934605">"Hotovo"</string>
- <!-- no translation found for ime_action_previous (1443550039250105948) -->
- <skip />
+ <string name="ime_action_previous" msgid="1443550039250105948">"Předch."</string>
<string name="ime_action_default" msgid="2840921885558045721">"Spustit"</string>
<string name="dial_number_using" msgid="5789176425167573586">"Vytočit číslo"\n" <xliff:g id="NUMBER">%s</xliff:g>."</string>
<string name="create_contact_using" msgid="4947405226788104538">"Vytvořit kontakt"\n"pro <xliff:g id="NUMBER">%s</xliff:g>."</string>
diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml
index e0be775..36eb27a 100644
--- a/core/res/res/values-da/strings.xml
+++ b/core/res/res/values-da/strings.xml
@@ -482,6 +482,10 @@
<string name="policydesc_wipeData" product="default" msgid="7669895333814222586">"Slet telefonens data uden varsel ved at gendanne fabriksindstillinger"</string>
<string name="policylab_setGlobalProxy" msgid="2784828293747791446">"Angiv enhedens globale proxy"</string>
<string name="policydesc_setGlobalProxy" msgid="6387497466660154931">"Angiv enhedens globale proxy, der skal bruges, mens politikken er aktiveret. Kun den første enhedsadministrator angiver den effektive globale proxy."</string>
+ <!-- no translation found for policylab_expirePassword (2314569545488269564) -->
+ <skip />
+ <!-- no translation found for policydesc_expirePassword (7276906351852798814) -->
+ <skip />
<string-array name="phoneTypes">
<item msgid="8901098336658710359">"Hjem"</item>
<item msgid="869923650527136615">"Mobil"</item>
@@ -546,11 +550,10 @@
<string name="phoneTypeWorkPager" msgid="649938731231157056">"Personsøger"</string>
<string name="phoneTypeAssistant" msgid="5596772636128562884">"Assistent"</string>
<string name="phoneTypeMms" msgid="7254492275502768992">"mms"</string>
- <!-- no translation found for eventTypeCustom (7837586198458073404) -->
- <skip />
+ <string name="eventTypeCustom" msgid="7837586198458073404">"Tilpasset"</string>
<string name="eventTypeBirthday" msgid="2813379844211390740">"Fødselsdato"</string>
<string name="eventTypeAnniversary" msgid="3876779744518284000">"Årsdag"</string>
- <!-- outdated translation 5834288791948564594 --> <string name="eventTypeOther" msgid="7388178939010143077">"Begivenhed"</string>
+ <string name="eventTypeOther" msgid="7388178939010143077">"Andre"</string>
<string name="emailTypeCustom" msgid="8525960257804213846">"Tilpasset"</string>
<string name="emailTypeHome" msgid="449227236140433919">"Hjem"</string>
<string name="emailTypeWork" msgid="3548058059601149973">"Arbejde"</string>
@@ -577,36 +580,21 @@
<string name="orgTypeWork" msgid="29268870505363872">"Arbejde"</string>
<string name="orgTypeOther" msgid="3951781131570124082">"Andre"</string>
<string name="orgTypeCustom" msgid="225523415372088322">"Tilpasset"</string>
- <!-- no translation found for relationTypeCustom (3542403679827297300) -->
- <skip />
- <!-- no translation found for relationTypeAssistant (6274334825195379076) -->
- <skip />
- <!-- no translation found for relationTypeBrother (8757913506784067713) -->
- <skip />
- <!-- no translation found for relationTypeChild (1890746277276881626) -->
- <skip />
- <!-- no translation found for relationTypeDomesticPartner (6904807112121122133) -->
- <skip />
- <!-- no translation found for relationTypeFather (5228034687082050725) -->
- <skip />
- <!-- no translation found for relationTypeFriend (7313106762483391262) -->
- <skip />
- <!-- no translation found for relationTypeManager (6365677861610137895) -->
- <skip />
- <!-- no translation found for relationTypeMother (4578571352962758304) -->
- <skip />
- <!-- no translation found for relationTypeParent (4755635567562925226) -->
- <skip />
- <!-- no translation found for relationTypePartner (7266490285120262781) -->
- <skip />
- <!-- no translation found for relationTypeReferredBy (101573059844135524) -->
- <skip />
- <!-- no translation found for relationTypeRelative (1799819930085610271) -->
- <skip />
- <!-- no translation found for relationTypeSister (1735983554479076481) -->
- <skip />
- <!-- no translation found for relationTypeSpouse (394136939428698117) -->
- <skip />
+ <string name="relationTypeCustom" msgid="3542403679827297300">"Tilpasset"</string>
+ <string name="relationTypeAssistant" msgid="6274334825195379076">"Assistent"</string>
+ <string name="relationTypeBrother" msgid="8757913506784067713">"Bror"</string>
+ <string name="relationTypeChild" msgid="1890746277276881626">"Barn"</string>
+ <string name="relationTypeDomesticPartner" msgid="6904807112121122133">"Samlever"</string>
+ <string name="relationTypeFather" msgid="5228034687082050725">"Far"</string>
+ <string name="relationTypeFriend" msgid="7313106762483391262">"Ven"</string>
+ <string name="relationTypeManager" msgid="6365677861610137895">"Chef"</string>
+ <string name="relationTypeMother" msgid="4578571352962758304">"Mor"</string>
+ <string name="relationTypeParent" msgid="4755635567562925226">"Forælder"</string>
+ <string name="relationTypePartner" msgid="7266490285120262781">"Partner"</string>
+ <string name="relationTypeReferredBy" msgid="101573059844135524">"Henvist af"</string>
+ <string name="relationTypeRelative" msgid="1799819930085610271">"Familie"</string>
+ <string name="relationTypeSister" msgid="1735983554479076481">"Søster"</string>
+ <string name="relationTypeSpouse" msgid="394136939428698117">"Ægtefælle"</string>
<string name="sipAddressTypeCustom" msgid="2473580593111590945">"Tilpasset"</string>
<string name="sipAddressTypeHome" msgid="6093598181069359295">"Hjem"</string>
<string name="sipAddressTypeWork" msgid="6920725730797099047">"Arbejde"</string>
@@ -674,8 +662,7 @@
<string name="save_password_label" msgid="6860261758665825069">"Bekræft"</string>
<string name="double_tap_toast" msgid="1068216937244567247">"Tip: Dobbeltklik for at zoome ind eller ud."</string>
<!-- outdated translation 8940110866775097494 --> <string name="autofill_this_form" msgid="1272247532604569872">"Autofuldfør denne formular"</string>
- <!-- no translation found for autofill_address_name_separator (2504700673286691795) -->
- <skip />
+ <string name="autofill_address_name_separator" msgid="2504700673286691795">" "</string>
<!-- no translation found for autofill_address_summary_name_format (3268041054899214945) -->
<skip />
<!-- no translation found for autofill_address_summary_separator (7483307893170324129) -->
@@ -804,8 +791,7 @@
<string name="cut" msgid="3092569408438626261">"Klip"</string>
<string name="copy" msgid="2681946229533511987">"Kopier"</string>
<string name="paste" msgid="5629880836805036433">"Indsæt"</string>
- <!-- no translation found for pasteDisabled (7259254654641456570) -->
- <skip />
+ <string name="pasteDisabled" msgid="7259254654641456570">"Intet at indsætte"</string>
<string name="copyUrl" msgid="2538211579596067402">"Kopier webadresse"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Marker tekst..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Tekstmarkering"</string>
@@ -951,8 +937,7 @@
<string name="ime_action_send" msgid="2316166556349314424">"Send"</string>
<string name="ime_action_next" msgid="3138843904009813834">"Næste"</string>
<string name="ime_action_done" msgid="8971516117910934605">"Udfør"</string>
- <!-- no translation found for ime_action_previous (1443550039250105948) -->
- <skip />
+ <string name="ime_action_previous" msgid="1443550039250105948">"Forrige"</string>
<string name="ime_action_default" msgid="2840921885558045721">"Udfør"</string>
<string name="dial_number_using" msgid="5789176425167573586">"Ring til nummer"\n"ved hjælp af <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="create_contact_using" msgid="4947405226788104538">"Opret kontakt"\n"ved hjælp af <xliff:g id="NUMBER">%s</xliff:g>"</string>
diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings.xml
index 1566b1b..fe7ddc7 100644
--- a/core/res/res/values-de/strings.xml
+++ b/core/res/res/values-de/strings.xml
@@ -482,6 +482,10 @@
<string name="policydesc_wipeData" product="default" msgid="7669895333814222586">"Auf Werkseinstellungen zurücksetzen und Daten auf dem Telefon ohne Warnung löschen"</string>
<string name="policylab_setGlobalProxy" msgid="2784828293747791446">"Den globalen Proxy des Geräts festlegen"</string>
<string name="policydesc_setGlobalProxy" msgid="6387497466660154931">"Den globalen Proxy des Geräts zur Verwendung während der Aktivierung der Richtlinie festlegen. Nur der erste Geräteadministrator kann den gültigen globalen Proxy festlegen."</string>
+ <!-- no translation found for policylab_expirePassword (2314569545488269564) -->
+ <skip />
+ <!-- no translation found for policydesc_expirePassword (7276906351852798814) -->
+ <skip />
<string-array name="phoneTypes">
<item msgid="8901098336658710359">"Privat"</item>
<item msgid="869923650527136615">"Mobil"</item>
@@ -546,11 +550,10 @@
<string name="phoneTypeWorkPager" msgid="649938731231157056">"Pager (geschäftl.)"</string>
<string name="phoneTypeAssistant" msgid="5596772636128562884">"Zweite Nummer"</string>
<string name="phoneTypeMms" msgid="7254492275502768992">"MMS"</string>
- <!-- no translation found for eventTypeCustom (7837586198458073404) -->
- <skip />
+ <string name="eventTypeCustom" msgid="7837586198458073404">"Benutzerdefiniert"</string>
<string name="eventTypeBirthday" msgid="2813379844211390740">"Geburtstag"</string>
<string name="eventTypeAnniversary" msgid="3876779744518284000">"Jahrestag"</string>
- <!-- outdated translation 5834288791948564594 --> <string name="eventTypeOther" msgid="7388178939010143077">"Termin"</string>
+ <string name="eventTypeOther" msgid="7388178939010143077">"Sonstige"</string>
<string name="emailTypeCustom" msgid="8525960257804213846">"Benutzerdefiniert"</string>
<string name="emailTypeHome" msgid="449227236140433919">"Privat"</string>
<string name="emailTypeWork" msgid="3548058059601149973">"Geschäftlich"</string>
@@ -577,36 +580,21 @@
<string name="orgTypeWork" msgid="29268870505363872">"Geschäftlich"</string>
<string name="orgTypeOther" msgid="3951781131570124082">"Sonstige"</string>
<string name="orgTypeCustom" msgid="225523415372088322">"Benutzerdefiniert"</string>
- <!-- no translation found for relationTypeCustom (3542403679827297300) -->
- <skip />
- <!-- no translation found for relationTypeAssistant (6274334825195379076) -->
- <skip />
- <!-- no translation found for relationTypeBrother (8757913506784067713) -->
- <skip />
- <!-- no translation found for relationTypeChild (1890746277276881626) -->
- <skip />
- <!-- no translation found for relationTypeDomesticPartner (6904807112121122133) -->
- <skip />
- <!-- no translation found for relationTypeFather (5228034687082050725) -->
- <skip />
- <!-- no translation found for relationTypeFriend (7313106762483391262) -->
- <skip />
- <!-- no translation found for relationTypeManager (6365677861610137895) -->
- <skip />
- <!-- no translation found for relationTypeMother (4578571352962758304) -->
- <skip />
- <!-- no translation found for relationTypeParent (4755635567562925226) -->
- <skip />
- <!-- no translation found for relationTypePartner (7266490285120262781) -->
- <skip />
- <!-- no translation found for relationTypeReferredBy (101573059844135524) -->
- <skip />
- <!-- no translation found for relationTypeRelative (1799819930085610271) -->
- <skip />
- <!-- no translation found for relationTypeSister (1735983554479076481) -->
- <skip />
- <!-- no translation found for relationTypeSpouse (394136939428698117) -->
- <skip />
+ <string name="relationTypeCustom" msgid="3542403679827297300">"Benutzerdefiniert"</string>
+ <string name="relationTypeAssistant" msgid="6274334825195379076">"Assistent"</string>
+ <string name="relationTypeBrother" msgid="8757913506784067713">"Bruder"</string>
+ <string name="relationTypeChild" msgid="1890746277276881626">"Kind"</string>
+ <string name="relationTypeDomesticPartner" msgid="6904807112121122133">"Lebenspartner"</string>
+ <string name="relationTypeFather" msgid="5228034687082050725">"Vater"</string>
+ <string name="relationTypeFriend" msgid="7313106762483391262">"Freund"</string>
+ <string name="relationTypeManager" msgid="6365677861610137895">"Vorgesetzter"</string>
+ <string name="relationTypeMother" msgid="4578571352962758304">"Mutter"</string>
+ <string name="relationTypeParent" msgid="4755635567562925226">"Elternteil"</string>
+ <string name="relationTypePartner" msgid="7266490285120262781">"Partner"</string>
+ <string name="relationTypeReferredBy" msgid="101573059844135524">"Weitergeleitet von"</string>
+ <string name="relationTypeRelative" msgid="1799819930085610271">"Verwandter"</string>
+ <string name="relationTypeSister" msgid="1735983554479076481">"Schwester"</string>
+ <string name="relationTypeSpouse" msgid="394136939428698117">"Gatte/Gattin"</string>
<string name="sipAddressTypeCustom" msgid="2473580593111590945">"Benutzerdefiniert"</string>
<string name="sipAddressTypeHome" msgid="6093598181069359295">"Privat"</string>
<string name="sipAddressTypeWork" msgid="6920725730797099047">"Geschäftlich"</string>
@@ -674,8 +662,7 @@
<string name="save_password_label" msgid="6860261758665825069">"Bestätigen"</string>
<string name="double_tap_toast" msgid="1068216937244567247">"Tipp: Zum Heranzoomen und Vergrößern zweimal tippen"</string>
<!-- outdated translation 8940110866775097494 --> <string name="autofill_this_form" msgid="1272247532604569872">"Dieses Formular automatisch ausfüllen"</string>
- <!-- no translation found for autofill_address_name_separator (2504700673286691795) -->
- <skip />
+ <string name="autofill_address_name_separator" msgid="2504700673286691795">" "</string>
<!-- no translation found for autofill_address_summary_name_format (3268041054899214945) -->
<skip />
<!-- no translation found for autofill_address_summary_separator (7483307893170324129) -->
@@ -804,8 +791,7 @@
<string name="cut" msgid="3092569408438626261">"Ausschneiden"</string>
<string name="copy" msgid="2681946229533511987">"Kopieren"</string>
<string name="paste" msgid="5629880836805036433">"Einfügen"</string>
- <!-- no translation found for pasteDisabled (7259254654641456570) -->
- <skip />
+ <string name="pasteDisabled" msgid="7259254654641456570">"Nichts zum Einfügen"</string>
<string name="copyUrl" msgid="2538211579596067402">"URL kopieren"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Text auswählen..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Textauswahl"</string>
@@ -951,8 +937,7 @@
<string name="ime_action_send" msgid="2316166556349314424">"Senden"</string>
<string name="ime_action_next" msgid="3138843904009813834">"Weiter"</string>
<string name="ime_action_done" msgid="8971516117910934605">"Fertig"</string>
- <!-- no translation found for ime_action_previous (1443550039250105948) -->
- <skip />
+ <string name="ime_action_previous" msgid="1443550039250105948">"Zurück"</string>
<string name="ime_action_default" msgid="2840921885558045721">"Ausführen"</string>
<string name="dial_number_using" msgid="5789176425167573586">"Nummer"\n"mit <xliff:g id="NUMBER">%s</xliff:g> wählen"</string>
<string name="create_contact_using" msgid="4947405226788104538">"Neuer Kontakt"\n"mit <xliff:g id="NUMBER">%s</xliff:g> erstellen"</string>
diff --git a/core/res/res/values-el/strings.xml b/core/res/res/values-el/strings.xml
index bd86221..2103aef 100644
--- a/core/res/res/values-el/strings.xml
+++ b/core/res/res/values-el/strings.xml
@@ -482,6 +482,10 @@
<string name="policydesc_wipeData" product="default" msgid="7669895333814222586">"Διαγραφή των δεδομένων του τηλεφώνου χωρίς προειδοποίηση με επαναφορά των εργοστασιακών δεδομένων"</string>
<string name="policylab_setGlobalProxy" msgid="2784828293747791446">"Ρύθμιση του γενικού διακομιστή μεσολάβησης της συσκευής"</string>
<string name="policydesc_setGlobalProxy" msgid="6387497466660154931">"Ορίστε τη χρήση του γενικού διακομιστή μεσολάβησης της συσκευής όταν είναι ενεργοποιημένη η πολιτική. Μόνο ο διαχειριστής της πρώτης συσκευής ορίζει τον ισχύοντα γενικό διακομιστή μεσολάβησης."</string>
+ <!-- no translation found for policylab_expirePassword (2314569545488269564) -->
+ <skip />
+ <!-- no translation found for policydesc_expirePassword (7276906351852798814) -->
+ <skip />
<string-array name="phoneTypes">
<item msgid="8901098336658710359">"Οικία"</item>
<item msgid="869923650527136615">"Κινητό"</item>
@@ -546,11 +550,10 @@
<string name="phoneTypeWorkPager" msgid="649938731231157056">"Βομβητής εργασίας"</string>
<string name="phoneTypeAssistant" msgid="5596772636128562884">"Βοηθός"</string>
<string name="phoneTypeMms" msgid="7254492275502768992">"MMS"</string>
- <!-- no translation found for eventTypeCustom (7837586198458073404) -->
- <skip />
+ <string name="eventTypeCustom" msgid="7837586198458073404">"Προσαρμοσμένο"</string>
<string name="eventTypeBirthday" msgid="2813379844211390740">"Γενέθλια"</string>
<string name="eventTypeAnniversary" msgid="3876779744518284000">"Επέτειος"</string>
- <!-- outdated translation 5834288791948564594 --> <string name="eventTypeOther" msgid="7388178939010143077">"Συμβάν"</string>
+ <string name="eventTypeOther" msgid="7388178939010143077">"Άλλο"</string>
<string name="emailTypeCustom" msgid="8525960257804213846">"Προσαρμοσμένο"</string>
<string name="emailTypeHome" msgid="449227236140433919">"Οικία"</string>
<string name="emailTypeWork" msgid="3548058059601149973">"Εργασία"</string>
@@ -577,36 +580,21 @@
<string name="orgTypeWork" msgid="29268870505363872">"Εργασία"</string>
<string name="orgTypeOther" msgid="3951781131570124082">"Άλλο"</string>
<string name="orgTypeCustom" msgid="225523415372088322">"Προσαρμοσμένο"</string>
- <!-- no translation found for relationTypeCustom (3542403679827297300) -->
- <skip />
- <!-- no translation found for relationTypeAssistant (6274334825195379076) -->
- <skip />
- <!-- no translation found for relationTypeBrother (8757913506784067713) -->
- <skip />
- <!-- no translation found for relationTypeChild (1890746277276881626) -->
- <skip />
- <!-- no translation found for relationTypeDomesticPartner (6904807112121122133) -->
- <skip />
- <!-- no translation found for relationTypeFather (5228034687082050725) -->
- <skip />
- <!-- no translation found for relationTypeFriend (7313106762483391262) -->
- <skip />
- <!-- no translation found for relationTypeManager (6365677861610137895) -->
- <skip />
- <!-- no translation found for relationTypeMother (4578571352962758304) -->
- <skip />
- <!-- no translation found for relationTypeParent (4755635567562925226) -->
- <skip />
- <!-- no translation found for relationTypePartner (7266490285120262781) -->
- <skip />
- <!-- no translation found for relationTypeReferredBy (101573059844135524) -->
- <skip />
- <!-- no translation found for relationTypeRelative (1799819930085610271) -->
- <skip />
- <!-- no translation found for relationTypeSister (1735983554479076481) -->
- <skip />
- <!-- no translation found for relationTypeSpouse (394136939428698117) -->
- <skip />
+ <string name="relationTypeCustom" msgid="3542403679827297300">"Προσαρμοσμένο"</string>
+ <string name="relationTypeAssistant" msgid="6274334825195379076">"Βοηθός"</string>
+ <string name="relationTypeBrother" msgid="8757913506784067713">"Αδερφός"</string>
+ <string name="relationTypeChild" msgid="1890746277276881626">"Παιδί"</string>
+ <string name="relationTypeDomesticPartner" msgid="6904807112121122133">"Σύντρ. ελεύθ. συμβ."</string>
+ <string name="relationTypeFather" msgid="5228034687082050725">"Πατέρας"</string>
+ <string name="relationTypeFriend" msgid="7313106762483391262">"Φίλος"</string>
+ <string name="relationTypeManager" msgid="6365677861610137895">"Διευθυντής"</string>
+ <string name="relationTypeMother" msgid="4578571352962758304">"Μητέρα"</string>
+ <string name="relationTypeParent" msgid="4755635567562925226">"Γονέας"</string>
+ <string name="relationTypePartner" msgid="7266490285120262781">"Συνεργάτης"</string>
+ <string name="relationTypeReferredBy" msgid="101573059844135524">"Συστήθηκε από"</string>
+ <string name="relationTypeRelative" msgid="1799819930085610271">"Συγγενής"</string>
+ <string name="relationTypeSister" msgid="1735983554479076481">"Αδερφή"</string>
+ <string name="relationTypeSpouse" msgid="394136939428698117">"Σύζυγος"</string>
<string name="sipAddressTypeCustom" msgid="2473580593111590945">"Προσαρμοσμένο"</string>
<string name="sipAddressTypeHome" msgid="6093598181069359295">"Αρχική σελίδα"</string>
<string name="sipAddressTypeWork" msgid="6920725730797099047">"Εργασία"</string>
@@ -674,8 +662,7 @@
<string name="save_password_label" msgid="6860261758665825069">"Επιβεβαίωση"</string>
<string name="double_tap_toast" msgid="1068216937244567247">"Συμβουλή: διπλό άγγιγμα για μεγέθυνση και σμίκρυνση."</string>
<!-- outdated translation 8940110866775097494 --> <string name="autofill_this_form" msgid="1272247532604569872">"Να γίνει αυτόματη συμπλήρωση αυτής της φόρμας"</string>
- <!-- no translation found for autofill_address_name_separator (2504700673286691795) -->
- <skip />
+ <string name="autofill_address_name_separator" msgid="2504700673286691795">" "</string>
<!-- no translation found for autofill_address_summary_name_format (3268041054899214945) -->
<skip />
<!-- no translation found for autofill_address_summary_separator (7483307893170324129) -->
@@ -804,8 +791,7 @@
<string name="cut" msgid="3092569408438626261">"Αποκοπή"</string>
<string name="copy" msgid="2681946229533511987">"Αντιγραφή"</string>
<string name="paste" msgid="5629880836805036433">"Επικόλληση"</string>
- <!-- no translation found for pasteDisabled (7259254654641456570) -->
- <skip />
+ <string name="pasteDisabled" msgid="7259254654641456570">"Καν. στοιχ. για επικ."</string>
<string name="copyUrl" msgid="2538211579596067402">"Αντιγραφή διεύθυνσης URL"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Επιλογή κειμένου..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Επιλογή κειμένου"</string>
@@ -951,8 +937,7 @@
<string name="ime_action_send" msgid="2316166556349314424">"Αποστολή"</string>
<string name="ime_action_next" msgid="3138843904009813834">"Επόμενο"</string>
<string name="ime_action_done" msgid="8971516117910934605">"Τέλος"</string>
- <!-- no translation found for ime_action_previous (1443550039250105948) -->
- <skip />
+ <string name="ime_action_previous" msgid="1443550039250105948">"Προηγ."</string>
<string name="ime_action_default" msgid="2840921885558045721">"Εκτέλεση"</string>
<string name="dial_number_using" msgid="5789176425167573586">"Κλήση αριθμού"\n"με τη χρήση <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="create_contact_using" msgid="4947405226788104538">"Δημιουργία επαφής"\n"με τη χρήση του <xliff:g id="NUMBER">%s</xliff:g>"</string>
diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml
index e303707..bd5371f 100644
--- a/core/res/res/values-es-rUS/strings.xml
+++ b/core/res/res/values-es-rUS/strings.xml
@@ -481,6 +481,10 @@
<string name="policydesc_wipeData" product="default" msgid="7669895333814222586">"Borrar los datos del teléfono sin advertencias al restablecer la configuración original"</string>
<string name="policylab_setGlobalProxy" msgid="2784828293747791446">"Configura el proxy global de dispositivo"</string>
<string name="policydesc_setGlobalProxy" msgid="6387497466660154931">"Configuración del proxy global de dispositivo que se utilizará mientras se habilita la política. Sólo la primera administración de dispositivo configura el proxy global efectivo."</string>
+ <!-- no translation found for policylab_expirePassword (2314569545488269564) -->
+ <skip />
+ <!-- no translation found for policydesc_expirePassword (7276906351852798814) -->
+ <skip />
<string-array name="phoneTypes">
<item msgid="8901098336658710359">"Casa"</item>
<item msgid="869923650527136615">"Celular"</item>
@@ -545,11 +549,10 @@
<string name="phoneTypeWorkPager" msgid="649938731231157056">"Localizador del trabajo"</string>
<string name="phoneTypeAssistant" msgid="5596772636128562884">"Asistente"</string>
<string name="phoneTypeMms" msgid="7254492275502768992">"MMS"</string>
- <!-- no translation found for eventTypeCustom (7837586198458073404) -->
- <skip />
+ <string name="eventTypeCustom" msgid="7837586198458073404">"Personalizado"</string>
<string name="eventTypeBirthday" msgid="2813379844211390740">"Cumpleaños"</string>
<string name="eventTypeAnniversary" msgid="3876779744518284000">"Aniversario"</string>
- <!-- outdated translation 5834288791948564594 --> <string name="eventTypeOther" msgid="7388178939010143077">"Evento"</string>
+ <string name="eventTypeOther" msgid="7388178939010143077">"Otro"</string>
<string name="emailTypeCustom" msgid="8525960257804213846">"Personalizado"</string>
<string name="emailTypeHome" msgid="449227236140433919">"Casa"</string>
<string name="emailTypeWork" msgid="3548058059601149973">"Trabajo"</string>
@@ -576,36 +579,21 @@
<string name="orgTypeWork" msgid="29268870505363872">"Trabajo"</string>
<string name="orgTypeOther" msgid="3951781131570124082">"Otro"</string>
<string name="orgTypeCustom" msgid="225523415372088322">"Personalizado"</string>
- <!-- no translation found for relationTypeCustom (3542403679827297300) -->
- <skip />
- <!-- no translation found for relationTypeAssistant (6274334825195379076) -->
- <skip />
- <!-- no translation found for relationTypeBrother (8757913506784067713) -->
- <skip />
- <!-- no translation found for relationTypeChild (1890746277276881626) -->
- <skip />
- <!-- no translation found for relationTypeDomesticPartner (6904807112121122133) -->
- <skip />
- <!-- no translation found for relationTypeFather (5228034687082050725) -->
- <skip />
- <!-- no translation found for relationTypeFriend (7313106762483391262) -->
- <skip />
- <!-- no translation found for relationTypeManager (6365677861610137895) -->
- <skip />
- <!-- no translation found for relationTypeMother (4578571352962758304) -->
- <skip />
- <!-- no translation found for relationTypeParent (4755635567562925226) -->
- <skip />
- <!-- no translation found for relationTypePartner (7266490285120262781) -->
- <skip />
- <!-- no translation found for relationTypeReferredBy (101573059844135524) -->
- <skip />
- <!-- no translation found for relationTypeRelative (1799819930085610271) -->
- <skip />
- <!-- no translation found for relationTypeSister (1735983554479076481) -->
- <skip />
- <!-- no translation found for relationTypeSpouse (394136939428698117) -->
- <skip />
+ <string name="relationTypeCustom" msgid="3542403679827297300">"Personalizado"</string>
+ <string name="relationTypeAssistant" msgid="6274334825195379076">"Asistente"</string>
+ <string name="relationTypeBrother" msgid="8757913506784067713">"Hermano"</string>
+ <string name="relationTypeChild" msgid="1890746277276881626">"Hijo"</string>
+ <string name="relationTypeDomesticPartner" msgid="6904807112121122133">"Conviviente"</string>
+ <string name="relationTypeFather" msgid="5228034687082050725">"Padre"</string>
+ <string name="relationTypeFriend" msgid="7313106762483391262">"Amigo"</string>
+ <string name="relationTypeManager" msgid="6365677861610137895">"Gerente"</string>
+ <string name="relationTypeMother" msgid="4578571352962758304">"Madre"</string>
+ <string name="relationTypeParent" msgid="4755635567562925226">"Padre"</string>
+ <string name="relationTypePartner" msgid="7266490285120262781">"Socio"</string>
+ <string name="relationTypeReferredBy" msgid="101573059844135524">"Recomendado por"</string>
+ <string name="relationTypeRelative" msgid="1799819930085610271">"Pariente"</string>
+ <string name="relationTypeSister" msgid="1735983554479076481">"Hermana"</string>
+ <string name="relationTypeSpouse" msgid="394136939428698117">"Cónyuge"</string>
<string name="sipAddressTypeCustom" msgid="2473580593111590945">"Personalizado"</string>
<string name="sipAddressTypeHome" msgid="6093598181069359295">"Página principal"</string>
<string name="sipAddressTypeWork" msgid="6920725730797099047">"Trabajo"</string>
@@ -673,12 +661,10 @@
<string name="save_password_label" msgid="6860261758665825069">"Confirmar"</string>
<string name="double_tap_toast" msgid="1068216937244567247">"Sugerencia: presiona dos veces para acercar y alejar"</string>
<!-- outdated translation 8940110866775097494 --> <string name="autofill_this_form" msgid="1272247532604569872">"Autocompletar este formulario"</string>
- <!-- no translation found for autofill_address_name_separator (2504700673286691795) -->
- <skip />
+ <string name="autofill_address_name_separator" msgid="2504700673286691795">" "</string>
<!-- no translation found for autofill_address_summary_name_format (3268041054899214945) -->
<skip />
- <!-- no translation found for autofill_address_summary_separator (7483307893170324129) -->
- <skip />
+ <string name="autofill_address_summary_separator" msgid="7483307893170324129">", "</string>
<!-- no translation found for autofill_address_summary_format (4874459455786827344) -->
<skip />
<string name="permlab_readHistoryBookmarks" msgid="1284843728203412135">"leer historial y marcadores del navegador"</string>
@@ -803,8 +789,7 @@
<string name="cut" msgid="3092569408438626261">"Cortar"</string>
<string name="copy" msgid="2681946229533511987">"Copiar"</string>
<string name="paste" msgid="5629880836805036433">"Pegar"</string>
- <!-- no translation found for pasteDisabled (7259254654641456570) -->
- <skip />
+ <string name="pasteDisabled" msgid="7259254654641456570">"Nada que pegar"</string>
<string name="copyUrl" msgid="2538211579596067402">"Copiar URL"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Seleccionar texto..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Selección de texto"</string>
@@ -950,8 +935,7 @@
<string name="ime_action_send" msgid="2316166556349314424">"Enviar"</string>
<string name="ime_action_next" msgid="3138843904009813834">"Siguiente"</string>
<string name="ime_action_done" msgid="8971516117910934605">"Hecho"</string>
- <!-- no translation found for ime_action_previous (1443550039250105948) -->
- <skip />
+ <string name="ime_action_previous" msgid="1443550039250105948">"Ant."</string>
<string name="ime_action_default" msgid="2840921885558045721">"Ejecutar"</string>
<string name="dial_number_using" msgid="5789176425167573586">"Marcar el número"\n"con <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="create_contact_using" msgid="4947405226788104538">"Crear contacto "\n"con <xliff:g id="NUMBER">%s</xliff:g>"</string>
@@ -1008,8 +992,6 @@
<string name="media_shared" product="nosdcard" msgid="5830814349250834225">"Una computadora está utilizando el almacenamiento USB en este momento."</string>
<string name="media_shared" product="default" msgid="5706130568133540435">"Una computadora está utilizando la tarjeta SD en este momento."</string>
<string name="media_unknown_state" msgid="729192782197290385">"Medios externos en estado desconocido."</string>
- <!-- no translation found for share (1778686618230011964) -->
- <skip />
- <!-- no translation found for find (4808270900322985960) -->
- <skip />
+ <string name="share" msgid="1778686618230011964">"Compartir"</string>
+ <string name="find" msgid="4808270900322985960">"Buscar"</string>
</resources>
diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml
index 452eefd..5de5c9f 100644
--- a/core/res/res/values-es/strings.xml
+++ b/core/res/res/values-es/strings.xml
@@ -482,6 +482,10 @@
<string name="policydesc_wipeData" product="default" msgid="7669895333814222586">"Borrado de los datos del teléfono sin avisar restableciendo datos de fábrica"</string>
<string name="policylab_setGlobalProxy" msgid="2784828293747791446">"Definir el servidor proxy global"</string>
<string name="policydesc_setGlobalProxy" msgid="6387497466660154931">"Define el servidor proxy global que se debe utilizar mientras la política esté habilitada. Solo el primer administrador de dispositivos define el servidor proxy global efectivo."</string>
+ <!-- no translation found for policylab_expirePassword (2314569545488269564) -->
+ <skip />
+ <!-- no translation found for policydesc_expirePassword (7276906351852798814) -->
+ <skip />
<string-array name="phoneTypes">
<item msgid="8901098336658710359">"Casa"</item>
<item msgid="869923650527136615">"Móvil"</item>
@@ -546,11 +550,10 @@
<string name="phoneTypeWorkPager" msgid="649938731231157056">"Buscapersonas del trabajo"</string>
<string name="phoneTypeAssistant" msgid="5596772636128562884">"Asistente"</string>
<string name="phoneTypeMms" msgid="7254492275502768992">"MMS"</string>
- <!-- no translation found for eventTypeCustom (7837586198458073404) -->
- <skip />
+ <string name="eventTypeCustom" msgid="7837586198458073404">"Personalizados"</string>
<string name="eventTypeBirthday" msgid="2813379844211390740">"Cumpleaños"</string>
<string name="eventTypeAnniversary" msgid="3876779744518284000">"Aniversario"</string>
- <!-- outdated translation 5834288791948564594 --> <string name="eventTypeOther" msgid="7388178939010143077">"Evento"</string>
+ <string name="eventTypeOther" msgid="7388178939010143077">"Otros"</string>
<string name="emailTypeCustom" msgid="8525960257804213846">"Personalizado"</string>
<string name="emailTypeHome" msgid="449227236140433919">"Casa"</string>
<string name="emailTypeWork" msgid="3548058059601149973">"Trabajo"</string>
@@ -577,36 +580,21 @@
<string name="orgTypeWork" msgid="29268870505363872">"Trabajo"</string>
<string name="orgTypeOther" msgid="3951781131570124082">"Otra"</string>
<string name="orgTypeCustom" msgid="225523415372088322">"Personalizada"</string>
- <!-- no translation found for relationTypeCustom (3542403679827297300) -->
- <skip />
- <!-- no translation found for relationTypeAssistant (6274334825195379076) -->
- <skip />
- <!-- no translation found for relationTypeBrother (8757913506784067713) -->
- <skip />
- <!-- no translation found for relationTypeChild (1890746277276881626) -->
- <skip />
- <!-- no translation found for relationTypeDomesticPartner (6904807112121122133) -->
- <skip />
- <!-- no translation found for relationTypeFather (5228034687082050725) -->
- <skip />
- <!-- no translation found for relationTypeFriend (7313106762483391262) -->
- <skip />
- <!-- no translation found for relationTypeManager (6365677861610137895) -->
- <skip />
- <!-- no translation found for relationTypeMother (4578571352962758304) -->
- <skip />
- <!-- no translation found for relationTypeParent (4755635567562925226) -->
- <skip />
- <!-- no translation found for relationTypePartner (7266490285120262781) -->
- <skip />
- <!-- no translation found for relationTypeReferredBy (101573059844135524) -->
- <skip />
- <!-- no translation found for relationTypeRelative (1799819930085610271) -->
- <skip />
- <!-- no translation found for relationTypeSister (1735983554479076481) -->
- <skip />
- <!-- no translation found for relationTypeSpouse (394136939428698117) -->
- <skip />
+ <string name="relationTypeCustom" msgid="3542403679827297300">"Personalizada"</string>
+ <string name="relationTypeAssistant" msgid="6274334825195379076">"Asistente"</string>
+ <string name="relationTypeBrother" msgid="8757913506784067713">"Hermano"</string>
+ <string name="relationTypeChild" msgid="1890746277276881626">"Hijo/a"</string>
+ <string name="relationTypeDomesticPartner" msgid="6904807112121122133">"Pareja de hecho"</string>
+ <string name="relationTypeFather" msgid="5228034687082050725">"Padre"</string>
+ <string name="relationTypeFriend" msgid="7313106762483391262">"Amigo/a"</string>
+ <string name="relationTypeManager" msgid="6365677861610137895">"Manager"</string>
+ <string name="relationTypeMother" msgid="4578571352962758304">"Madre"</string>
+ <string name="relationTypeParent" msgid="4755635567562925226">"Padre/madre"</string>
+ <string name="relationTypePartner" msgid="7266490285120262781">"Pareja"</string>
+ <string name="relationTypeReferredBy" msgid="101573059844135524">"Recomendado por"</string>
+ <string name="relationTypeRelative" msgid="1799819930085610271">"Pariente"</string>
+ <string name="relationTypeSister" msgid="1735983554479076481">"Hermana"</string>
+ <string name="relationTypeSpouse" msgid="394136939428698117">"Cónyuge"</string>
<string name="sipAddressTypeCustom" msgid="2473580593111590945">"Personalizada"</string>
<string name="sipAddressTypeHome" msgid="6093598181069359295">"Casa"</string>
<string name="sipAddressTypeWork" msgid="6920725730797099047">"Trabajo"</string>
@@ -674,8 +662,7 @@
<string name="save_password_label" msgid="6860261758665825069">"Confirmar"</string>
<string name="double_tap_toast" msgid="1068216937244567247">"Sugerencia: toca dos veces para ampliar o reducir."</string>
<!-- outdated translation 8940110866775097494 --> <string name="autofill_this_form" msgid="1272247532604569872">"Autocompletar este formulario"</string>
- <!-- no translation found for autofill_address_name_separator (2504700673286691795) -->
- <skip />
+ <string name="autofill_address_name_separator" msgid="2504700673286691795">" "</string>
<!-- no translation found for autofill_address_summary_name_format (3268041054899214945) -->
<skip />
<!-- no translation found for autofill_address_summary_separator (7483307893170324129) -->
@@ -804,8 +791,7 @@
<string name="cut" msgid="3092569408438626261">"Cortar"</string>
<string name="copy" msgid="2681946229533511987">"Copiar"</string>
<string name="paste" msgid="5629880836805036433">"Pegar"</string>
- <!-- no translation found for pasteDisabled (7259254654641456570) -->
- <skip />
+ <string name="pasteDisabled" msgid="7259254654641456570">"Portapapeles vacío"</string>
<string name="copyUrl" msgid="2538211579596067402">"Copiar URL"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Seleccionar texto..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Selección de texto"</string>
@@ -951,8 +937,7 @@
<string name="ime_action_send" msgid="2316166556349314424">"Enviar"</string>
<string name="ime_action_next" msgid="3138843904009813834">"Siguiente"</string>
<string name="ime_action_done" msgid="8971516117910934605">"Listo"</string>
- <!-- no translation found for ime_action_previous (1443550039250105948) -->
- <skip />
+ <string name="ime_action_previous" msgid="1443550039250105948">"Anterior"</string>
<string name="ime_action_default" msgid="2840921885558045721">"Ejecutar"</string>
<string name="dial_number_using" msgid="5789176425167573586">"Marcar número"\n"con <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="create_contact_using" msgid="4947405226788104538">"Crear un contacto"\n"a partir de <xliff:g id="NUMBER">%s</xliff:g>"</string>
diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml
index a802350..fa97fc0 100644
--- a/core/res/res/values-fr/strings.xml
+++ b/core/res/res/values-fr/strings.xml
@@ -482,6 +482,10 @@
<string name="policydesc_wipeData" product="default" msgid="7669895333814222586">"Effacer les données du téléphone sans avertissement, en restaurant les valeurs d\'usine"</string>
<string name="policylab_setGlobalProxy" msgid="2784828293747791446">"Définir le proxy global du mobile"</string>
<string name="policydesc_setGlobalProxy" msgid="6387497466660154931">"Indiquez le proxy global à utiliser pour ce mobile lorsque les règles sont activées. Seul l\'administrateur principal du mobile peut définir le proxy global utilisé."</string>
+ <!-- no translation found for policylab_expirePassword (2314569545488269564) -->
+ <skip />
+ <!-- no translation found for policydesc_expirePassword (7276906351852798814) -->
+ <skip />
<string-array name="phoneTypes">
<item msgid="8901098336658710359">"Domicile"</item>
<item msgid="869923650527136615">"Mobile"</item>
@@ -546,11 +550,10 @@
<string name="phoneTypeWorkPager" msgid="649938731231157056">"Téléavertisseur (professionnel)"</string>
<string name="phoneTypeAssistant" msgid="5596772636128562884">"Assistant"</string>
<string name="phoneTypeMms" msgid="7254492275502768992">"MMS"</string>
- <!-- no translation found for eventTypeCustom (7837586198458073404) -->
- <skip />
+ <string name="eventTypeCustom" msgid="7837586198458073404">"Personnalisé"</string>
<string name="eventTypeBirthday" msgid="2813379844211390740">"Anniversaire"</string>
<string name="eventTypeAnniversary" msgid="3876779744518284000">"Fête"</string>
- <!-- outdated translation 5834288791948564594 --> <string name="eventTypeOther" msgid="7388178939010143077">"Événement"</string>
+ <string name="eventTypeOther" msgid="7388178939010143077">"Autre"</string>
<string name="emailTypeCustom" msgid="8525960257804213846">"Personnalisé"</string>
<string name="emailTypeHome" msgid="449227236140433919">"Domicile"</string>
<string name="emailTypeWork" msgid="3548058059601149973">"Bureau"</string>
@@ -577,36 +580,21 @@
<string name="orgTypeWork" msgid="29268870505363872">"Bureau"</string>
<string name="orgTypeOther" msgid="3951781131570124082">"Autre"</string>
<string name="orgTypeCustom" msgid="225523415372088322">"Personnalisé"</string>
- <!-- no translation found for relationTypeCustom (3542403679827297300) -->
- <skip />
- <!-- no translation found for relationTypeAssistant (6274334825195379076) -->
- <skip />
- <!-- no translation found for relationTypeBrother (8757913506784067713) -->
- <skip />
- <!-- no translation found for relationTypeChild (1890746277276881626) -->
- <skip />
- <!-- no translation found for relationTypeDomesticPartner (6904807112121122133) -->
- <skip />
- <!-- no translation found for relationTypeFather (5228034687082050725) -->
- <skip />
- <!-- no translation found for relationTypeFriend (7313106762483391262) -->
- <skip />
- <!-- no translation found for relationTypeManager (6365677861610137895) -->
- <skip />
- <!-- no translation found for relationTypeMother (4578571352962758304) -->
- <skip />
- <!-- no translation found for relationTypeParent (4755635567562925226) -->
- <skip />
- <!-- no translation found for relationTypePartner (7266490285120262781) -->
- <skip />
- <!-- no translation found for relationTypeReferredBy (101573059844135524) -->
- <skip />
- <!-- no translation found for relationTypeRelative (1799819930085610271) -->
- <skip />
- <!-- no translation found for relationTypeSister (1735983554479076481) -->
- <skip />
- <!-- no translation found for relationTypeSpouse (394136939428698117) -->
- <skip />
+ <string name="relationTypeCustom" msgid="3542403679827297300">"Personnalisée"</string>
+ <string name="relationTypeAssistant" msgid="6274334825195379076">"Assistant"</string>
+ <string name="relationTypeBrother" msgid="8757913506784067713">"Frère"</string>
+ <string name="relationTypeChild" msgid="1890746277276881626">"Enfant"</string>
+ <string name="relationTypeDomesticPartner" msgid="6904807112121122133">"Concubin"</string>
+ <string name="relationTypeFather" msgid="5228034687082050725">"Père"</string>
+ <string name="relationTypeFriend" msgid="7313106762483391262">"Ami"</string>
+ <string name="relationTypeManager" msgid="6365677861610137895">"Responsable"</string>
+ <string name="relationTypeMother" msgid="4578571352962758304">"Mère"</string>
+ <string name="relationTypeParent" msgid="4755635567562925226">"Parent"</string>
+ <string name="relationTypePartner" msgid="7266490285120262781">"Partenaire"</string>
+ <string name="relationTypeReferredBy" msgid="101573059844135524">"Recommandé par"</string>
+ <string name="relationTypeRelative" msgid="1799819930085610271">"Proche"</string>
+ <string name="relationTypeSister" msgid="1735983554479076481">"Sœur"</string>
+ <string name="relationTypeSpouse" msgid="394136939428698117">"Conjoint"</string>
<string name="sipAddressTypeCustom" msgid="2473580593111590945">"Personnalisée"</string>
<string name="sipAddressTypeHome" msgid="6093598181069359295">"Accueil"</string>
<string name="sipAddressTypeWork" msgid="6920725730797099047">"Professionnelle"</string>
@@ -674,8 +662,7 @@
<string name="save_password_label" msgid="6860261758665825069">"Confirmer"</string>
<string name="double_tap_toast" msgid="1068216937244567247">"Conseil : Appuyez deux fois pour effectuer un zoom avant ou arrière."</string>
<!-- outdated translation 8940110866775097494 --> <string name="autofill_this_form" msgid="1272247532604569872">"Permettre le remplissage automatique du formulaire"</string>
- <!-- no translation found for autofill_address_name_separator (2504700673286691795) -->
- <skip />
+ <string name="autofill_address_name_separator" msgid="2504700673286691795">" "</string>
<!-- no translation found for autofill_address_summary_name_format (3268041054899214945) -->
<skip />
<!-- no translation found for autofill_address_summary_separator (7483307893170324129) -->
@@ -804,8 +791,7 @@
<string name="cut" msgid="3092569408438626261">"Couper"</string>
<string name="copy" msgid="2681946229533511987">"Copier"</string>
<string name="paste" msgid="5629880836805036433">"Coller"</string>
- <!-- no translation found for pasteDisabled (7259254654641456570) -->
- <skip />
+ <string name="pasteDisabled" msgid="7259254654641456570">"Presse-papiers vide"</string>
<string name="copyUrl" msgid="2538211579596067402">"Copier l\'URL"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Sélect. le texte..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Sélection de texte"</string>
@@ -951,8 +937,7 @@
<string name="ime_action_send" msgid="2316166556349314424">"Envoyer"</string>
<string name="ime_action_next" msgid="3138843904009813834">"Suivant"</string>
<string name="ime_action_done" msgid="8971516117910934605">"OK"</string>
- <!-- no translation found for ime_action_previous (1443550039250105948) -->
- <skip />
+ <string name="ime_action_previous" msgid="1443550039250105948">"Préc."</string>
<string name="ime_action_default" msgid="2840921885558045721">"Exécuter"</string>
<string name="dial_number_using" msgid="5789176425167573586">"Composer le numéro"\n"en utilisant <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="create_contact_using" msgid="4947405226788104538">"Ajouter un contact"\n"en utilisant <xliff:g id="NUMBER">%s</xliff:g>"</string>
diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml
index 6e5987e..89d0a32 100644
--- a/core/res/res/values-it/strings.xml
+++ b/core/res/res/values-it/strings.xml
@@ -482,6 +482,10 @@
<string name="policydesc_wipeData" product="default" msgid="7669895333814222586">"Cancella i dati del telefono senza preavviso eseguendo un ripristino dati di fabbrica"</string>
<string name="policylab_setGlobalProxy" msgid="2784828293747791446">"Imposta il proxy globale del dispositivo"</string>
<string name="policydesc_setGlobalProxy" msgid="6387497466660154931">"Imposta il proxy globale del dispositivo in modo da utilizzarlo mentre la norma è attiva. Il proxy globale effettivo è impostabile solo dal primo amministratore del dispositivo."</string>
+ <!-- no translation found for policylab_expirePassword (2314569545488269564) -->
+ <skip />
+ <!-- no translation found for policydesc_expirePassword (7276906351852798814) -->
+ <skip />
<string-array name="phoneTypes">
<item msgid="8901098336658710359">"Casa"</item>
<item msgid="869923650527136615">"Cellulare"</item>
@@ -546,11 +550,10 @@
<string name="phoneTypeWorkPager" msgid="649938731231157056">"Cercapersone lavoro"</string>
<string name="phoneTypeAssistant" msgid="5596772636128562884">"Assistente"</string>
<string name="phoneTypeMms" msgid="7254492275502768992">"MMS"</string>
- <!-- no translation found for eventTypeCustom (7837586198458073404) -->
- <skip />
+ <string name="eventTypeCustom" msgid="7837586198458073404">"Personalizzato"</string>
<string name="eventTypeBirthday" msgid="2813379844211390740">"Compleanno"</string>
<string name="eventTypeAnniversary" msgid="3876779744518284000">"Anniversario"</string>
- <!-- outdated translation 5834288791948564594 --> <string name="eventTypeOther" msgid="7388178939010143077">"Evento"</string>
+ <string name="eventTypeOther" msgid="7388178939010143077">"Altri"</string>
<string name="emailTypeCustom" msgid="8525960257804213846">"Personalizzato"</string>
<string name="emailTypeHome" msgid="449227236140433919">"Casa"</string>
<string name="emailTypeWork" msgid="3548058059601149973">"Lavoro"</string>
@@ -577,36 +580,21 @@
<string name="orgTypeWork" msgid="29268870505363872">"Lavoro"</string>
<string name="orgTypeOther" msgid="3951781131570124082">"Altro"</string>
<string name="orgTypeCustom" msgid="225523415372088322">"Personalizzato"</string>
- <!-- no translation found for relationTypeCustom (3542403679827297300) -->
- <skip />
- <!-- no translation found for relationTypeAssistant (6274334825195379076) -->
- <skip />
- <!-- no translation found for relationTypeBrother (8757913506784067713) -->
- <skip />
- <!-- no translation found for relationTypeChild (1890746277276881626) -->
- <skip />
- <!-- no translation found for relationTypeDomesticPartner (6904807112121122133) -->
- <skip />
- <!-- no translation found for relationTypeFather (5228034687082050725) -->
- <skip />
- <!-- no translation found for relationTypeFriend (7313106762483391262) -->
- <skip />
- <!-- no translation found for relationTypeManager (6365677861610137895) -->
- <skip />
- <!-- no translation found for relationTypeMother (4578571352962758304) -->
- <skip />
- <!-- no translation found for relationTypeParent (4755635567562925226) -->
- <skip />
- <!-- no translation found for relationTypePartner (7266490285120262781) -->
- <skip />
- <!-- no translation found for relationTypeReferredBy (101573059844135524) -->
- <skip />
- <!-- no translation found for relationTypeRelative (1799819930085610271) -->
- <skip />
- <!-- no translation found for relationTypeSister (1735983554479076481) -->
- <skip />
- <!-- no translation found for relationTypeSpouse (394136939428698117) -->
- <skip />
+ <string name="relationTypeCustom" msgid="3542403679827297300">"Personalizzato"</string>
+ <string name="relationTypeAssistant" msgid="6274334825195379076">"Assistente"</string>
+ <string name="relationTypeBrother" msgid="8757913506784067713">"Fratello"</string>
+ <string name="relationTypeChild" msgid="1890746277276881626">"Figlio"</string>
+ <string name="relationTypeDomesticPartner" msgid="6904807112121122133">"Convivente"</string>
+ <string name="relationTypeFather" msgid="5228034687082050725">"Padre"</string>
+ <string name="relationTypeFriend" msgid="7313106762483391262">"Amico"</string>
+ <string name="relationTypeManager" msgid="6365677861610137895">"Dirigente"</string>
+ <string name="relationTypeMother" msgid="4578571352962758304">"Madre"</string>
+ <string name="relationTypeParent" msgid="4755635567562925226">"Genitore"</string>
+ <string name="relationTypePartner" msgid="7266490285120262781">"Partner"</string>
+ <string name="relationTypeReferredBy" msgid="101573059844135524">"Riferito da"</string>
+ <string name="relationTypeRelative" msgid="1799819930085610271">"Parente"</string>
+ <string name="relationTypeSister" msgid="1735983554479076481">"Sorella"</string>
+ <string name="relationTypeSpouse" msgid="394136939428698117">"Coniuge"</string>
<string name="sipAddressTypeCustom" msgid="2473580593111590945">"Personalizzato"</string>
<string name="sipAddressTypeHome" msgid="6093598181069359295">"Casa"</string>
<string name="sipAddressTypeWork" msgid="6920725730797099047">"Lavoro"</string>
@@ -674,8 +662,7 @@
<string name="save_password_label" msgid="6860261758665825069">"Conferma"</string>
<string name="double_tap_toast" msgid="1068216937244567247">"Suggerimento. Tocca due volte per aumentare/ridurre lo zoom."</string>
<!-- outdated translation 8940110866775097494 --> <string name="autofill_this_form" msgid="1272247532604569872">"Compila automaticamente il modulo"</string>
- <!-- no translation found for autofill_address_name_separator (2504700673286691795) -->
- <skip />
+ <string name="autofill_address_name_separator" msgid="2504700673286691795">" "</string>
<!-- no translation found for autofill_address_summary_name_format (3268041054899214945) -->
<skip />
<!-- no translation found for autofill_address_summary_separator (7483307893170324129) -->
@@ -804,8 +791,7 @@
<string name="cut" msgid="3092569408438626261">"Taglia"</string>
<string name="copy" msgid="2681946229533511987">"Copia"</string>
<string name="paste" msgid="5629880836805036433">"Incolla"</string>
- <!-- no translation found for pasteDisabled (7259254654641456570) -->
- <skip />
+ <string name="pasteDisabled" msgid="7259254654641456570">"Niente da incollare"</string>
<string name="copyUrl" msgid="2538211579596067402">"Copia URL"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Seleziona testo..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Selezione testo"</string>
@@ -951,8 +937,7 @@
<string name="ime_action_send" msgid="2316166556349314424">"Invia"</string>
<string name="ime_action_next" msgid="3138843904009813834">"Avanti"</string>
<string name="ime_action_done" msgid="8971516117910934605">"Fine"</string>
- <!-- no translation found for ime_action_previous (1443550039250105948) -->
- <skip />
+ <string name="ime_action_previous" msgid="1443550039250105948">"Prec."</string>
<string name="ime_action_default" msgid="2840921885558045721">"Esegui"</string>
<string name="dial_number_using" msgid="5789176425167573586">"Componi numero"\n"utilizzando <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="create_contact_using" msgid="4947405226788104538">"Crea contatto"\n"utilizzando <xliff:g id="NUMBER">%s</xliff:g>"</string>
diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml
index 12cb290..dcbcdc2 100644
--- a/core/res/res/values-ja/strings.xml
+++ b/core/res/res/values-ja/strings.xml
@@ -482,6 +482,10 @@
<string name="policydesc_wipeData" product="default" msgid="7669895333814222586">"警告せずにデータの初期化を実行して端末内のデータを消去します。"</string>
<string name="policylab_setGlobalProxy" msgid="2784828293747791446">"端末のグローバルプロキシを設定"</string>
<string name="policydesc_setGlobalProxy" msgid="6387497466660154931">"ポリシーが有効になっている場合は端末のグローバルプロキシが使用されるように設定します。有効なグローバルプロキシを設定できるのは最初のデバイス管理者だけです。"</string>
+ <!-- no translation found for policylab_expirePassword (2314569545488269564) -->
+ <skip />
+ <!-- no translation found for policydesc_expirePassword (7276906351852798814) -->
+ <skip />
<string-array name="phoneTypes">
<item msgid="8901098336658710359">"自宅"</item>
<item msgid="869923650527136615">"携帯"</item>
@@ -546,11 +550,10 @@
<string name="phoneTypeWorkPager" msgid="649938731231157056">"ポケベル(勤務先)"</string>
<string name="phoneTypeAssistant" msgid="5596772636128562884">"アシスタント"</string>
<string name="phoneTypeMms" msgid="7254492275502768992">"MMS"</string>
- <!-- no translation found for eventTypeCustom (7837586198458073404) -->
- <skip />
+ <string name="eventTypeCustom" msgid="7837586198458073404">"カスタム"</string>
<string name="eventTypeBirthday" msgid="2813379844211390740">"誕生日"</string>
<string name="eventTypeAnniversary" msgid="3876779744518284000">"記念日"</string>
- <!-- outdated translation 5834288791948564594 --> <string name="eventTypeOther" msgid="7388178939010143077">"予定"</string>
+ <string name="eventTypeOther" msgid="7388178939010143077">"その他"</string>
<string name="emailTypeCustom" msgid="8525960257804213846">"カスタム"</string>
<string name="emailTypeHome" msgid="449227236140433919">"自宅"</string>
<string name="emailTypeWork" msgid="3548058059601149973">"勤務先"</string>
@@ -577,36 +580,21 @@
<string name="orgTypeWork" msgid="29268870505363872">"勤務先"</string>
<string name="orgTypeOther" msgid="3951781131570124082">"その他"</string>
<string name="orgTypeCustom" msgid="225523415372088322">"カスタム"</string>
- <!-- no translation found for relationTypeCustom (3542403679827297300) -->
- <skip />
- <!-- no translation found for relationTypeAssistant (6274334825195379076) -->
- <skip />
- <!-- no translation found for relationTypeBrother (8757913506784067713) -->
- <skip />
- <!-- no translation found for relationTypeChild (1890746277276881626) -->
- <skip />
- <!-- no translation found for relationTypeDomesticPartner (6904807112121122133) -->
- <skip />
- <!-- no translation found for relationTypeFather (5228034687082050725) -->
- <skip />
- <!-- no translation found for relationTypeFriend (7313106762483391262) -->
- <skip />
- <!-- no translation found for relationTypeManager (6365677861610137895) -->
- <skip />
- <!-- no translation found for relationTypeMother (4578571352962758304) -->
- <skip />
- <!-- no translation found for relationTypeParent (4755635567562925226) -->
- <skip />
- <!-- no translation found for relationTypePartner (7266490285120262781) -->
- <skip />
- <!-- no translation found for relationTypeReferredBy (101573059844135524) -->
- <skip />
- <!-- no translation found for relationTypeRelative (1799819930085610271) -->
- <skip />
- <!-- no translation found for relationTypeSister (1735983554479076481) -->
- <skip />
- <!-- no translation found for relationTypeSpouse (394136939428698117) -->
- <skip />
+ <string name="relationTypeCustom" msgid="3542403679827297300">"カスタム"</string>
+ <string name="relationTypeAssistant" msgid="6274334825195379076">"アシスタント"</string>
+ <string name="relationTypeBrother" msgid="8757913506784067713">"兄弟"</string>
+ <string name="relationTypeChild" msgid="1890746277276881626">"子ども"</string>
+ <string name="relationTypeDomesticPartner" msgid="6904807112121122133">"パートナー(国内)"</string>
+ <string name="relationTypeFather" msgid="5228034687082050725">"父"</string>
+ <string name="relationTypeFriend" msgid="7313106762483391262">"友だち"</string>
+ <string name="relationTypeManager" msgid="6365677861610137895">"上司"</string>
+ <string name="relationTypeMother" msgid="4578571352962758304">"母"</string>
+ <string name="relationTypeParent" msgid="4755635567562925226">"親"</string>
+ <string name="relationTypePartner" msgid="7266490285120262781">"パートナー"</string>
+ <string name="relationTypeReferredBy" msgid="101573059844135524">"紹介者"</string>
+ <string name="relationTypeRelative" msgid="1799819930085610271">"親戚"</string>
+ <string name="relationTypeSister" msgid="1735983554479076481">"姉妹"</string>
+ <string name="relationTypeSpouse" msgid="394136939428698117">"配偶者"</string>
<string name="sipAddressTypeCustom" msgid="2473580593111590945">"カスタム"</string>
<string name="sipAddressTypeHome" msgid="6093598181069359295">"自宅"</string>
<string name="sipAddressTypeWork" msgid="6920725730797099047">"勤務先"</string>
@@ -674,8 +662,7 @@
<string name="save_password_label" msgid="6860261758665825069">"確認"</string>
<string name="double_tap_toast" msgid="1068216937244567247">"ヒント: ダブルタップで拡大/縮小できます。"</string>
<!-- outdated translation 8940110866775097494 --> <string name="autofill_this_form" msgid="1272247532604569872">"このフォームを自動入力"</string>
- <!-- no translation found for autofill_address_name_separator (2504700673286691795) -->
- <skip />
+ <string name="autofill_address_name_separator" msgid="2504700673286691795">" "</string>
<!-- no translation found for autofill_address_summary_name_format (3268041054899214945) -->
<skip />
<!-- no translation found for autofill_address_summary_separator (7483307893170324129) -->
@@ -804,8 +791,7 @@
<string name="cut" msgid="3092569408438626261">"切り取り"</string>
<string name="copy" msgid="2681946229533511987">"コピー"</string>
<string name="paste" msgid="5629880836805036433">"貼り付け"</string>
- <!-- no translation found for pasteDisabled (7259254654641456570) -->
- <skip />
+ <string name="pasteDisabled" msgid="7259254654641456570">"クリップボードが空です"</string>
<string name="copyUrl" msgid="2538211579596067402">"URLをコピー"</string>
<string name="selectTextMode" msgid="6738556348861347240">"テキストを選択..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"テキスト選択"</string>
@@ -951,8 +937,7 @@
<string name="ime_action_send" msgid="2316166556349314424">"送信"</string>
<string name="ime_action_next" msgid="3138843904009813834">"次へ"</string>
<string name="ime_action_done" msgid="8971516117910934605">"完了"</string>
- <!-- no translation found for ime_action_previous (1443550039250105948) -->
- <skip />
+ <string name="ime_action_previous" msgid="1443550039250105948">"前へ"</string>
<string name="ime_action_default" msgid="2840921885558045721">"実行"</string>
<string name="dial_number_using" msgid="5789176425167573586">"<xliff:g id="NUMBER">%s</xliff:g>を使って"\n"発信"</string>
<string name="create_contact_using" msgid="4947405226788104538">"<xliff:g id="NUMBER">%s</xliff:g>を使って"\n"連絡先を新規登録"</string>
diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml
index 36e5134..8fe117f 100644
--- a/core/res/res/values-ko/strings.xml
+++ b/core/res/res/values-ko/strings.xml
@@ -482,6 +482,10 @@
<string name="policydesc_wipeData" product="default" msgid="7669895333814222586">"초기화를 수행하여 경고 없이 휴대전화 데이터를 지웁니다."</string>
<string name="policylab_setGlobalProxy" msgid="2784828293747791446">"기기 전체 프록시 설정"</string>
<string name="policydesc_setGlobalProxy" msgid="6387497466660154931">"정책이 사용 설정되어 있는 동안 사용될 기기 전체 프록시를 설정합니다. 첫 번째 기기 관리자가 설정한 전체 프록시만 유효합니다."</string>
+ <!-- no translation found for policylab_expirePassword (2314569545488269564) -->
+ <skip />
+ <!-- no translation found for policydesc_expirePassword (7276906351852798814) -->
+ <skip />
<string-array name="phoneTypes">
<item msgid="8901098336658710359">"집"</item>
<item msgid="869923650527136615">"모바일"</item>
@@ -546,11 +550,10 @@
<string name="phoneTypeWorkPager" msgid="649938731231157056">"직장 호출기"</string>
<string name="phoneTypeAssistant" msgid="5596772636128562884">"비서"</string>
<string name="phoneTypeMms" msgid="7254492275502768992">"MMS"</string>
- <!-- no translation found for eventTypeCustom (7837586198458073404) -->
- <skip />
+ <string name="eventTypeCustom" msgid="7837586198458073404">"맞춤설정"</string>
<string name="eventTypeBirthday" msgid="2813379844211390740">"생일"</string>
<string name="eventTypeAnniversary" msgid="3876779744518284000">"기념일"</string>
- <!-- outdated translation 5834288791948564594 --> <string name="eventTypeOther" msgid="7388178939010143077">"일정"</string>
+ <string name="eventTypeOther" msgid="7388178939010143077">"기타"</string>
<string name="emailTypeCustom" msgid="8525960257804213846">"맞춤설정"</string>
<string name="emailTypeHome" msgid="449227236140433919">"집"</string>
<string name="emailTypeWork" msgid="3548058059601149973">"직장"</string>
@@ -577,36 +580,21 @@
<string name="orgTypeWork" msgid="29268870505363872">"직장"</string>
<string name="orgTypeOther" msgid="3951781131570124082">"기타"</string>
<string name="orgTypeCustom" msgid="225523415372088322">"맞춤설정"</string>
- <!-- no translation found for relationTypeCustom (3542403679827297300) -->
- <skip />
- <!-- no translation found for relationTypeAssistant (6274334825195379076) -->
- <skip />
- <!-- no translation found for relationTypeBrother (8757913506784067713) -->
- <skip />
- <!-- no translation found for relationTypeChild (1890746277276881626) -->
- <skip />
- <!-- no translation found for relationTypeDomesticPartner (6904807112121122133) -->
- <skip />
- <!-- no translation found for relationTypeFather (5228034687082050725) -->
- <skip />
- <!-- no translation found for relationTypeFriend (7313106762483391262) -->
- <skip />
- <!-- no translation found for relationTypeManager (6365677861610137895) -->
- <skip />
- <!-- no translation found for relationTypeMother (4578571352962758304) -->
- <skip />
- <!-- no translation found for relationTypeParent (4755635567562925226) -->
- <skip />
- <!-- no translation found for relationTypePartner (7266490285120262781) -->
- <skip />
- <!-- no translation found for relationTypeReferredBy (101573059844135524) -->
- <skip />
- <!-- no translation found for relationTypeRelative (1799819930085610271) -->
- <skip />
- <!-- no translation found for relationTypeSister (1735983554479076481) -->
- <skip />
- <!-- no translation found for relationTypeSpouse (394136939428698117) -->
- <skip />
+ <string name="relationTypeCustom" msgid="3542403679827297300">"맞춤설정"</string>
+ <string name="relationTypeAssistant" msgid="6274334825195379076">"비서"</string>
+ <string name="relationTypeBrother" msgid="8757913506784067713">"남자 형제"</string>
+ <string name="relationTypeChild" msgid="1890746277276881626">"자녀"</string>
+ <string name="relationTypeDomesticPartner" msgid="6904807112121122133">"동거인"</string>
+ <string name="relationTypeFather" msgid="5228034687082050725">"아버지"</string>
+ <string name="relationTypeFriend" msgid="7313106762483391262">"친구"</string>
+ <string name="relationTypeManager" msgid="6365677861610137895">"상사"</string>
+ <string name="relationTypeMother" msgid="4578571352962758304">"어머니"</string>
+ <string name="relationTypeParent" msgid="4755635567562925226">"부모"</string>
+ <string name="relationTypePartner" msgid="7266490285120262781">"파트너"</string>
+ <string name="relationTypeReferredBy" msgid="101573059844135524">"추천인"</string>
+ <string name="relationTypeRelative" msgid="1799819930085610271">"친척"</string>
+ <string name="relationTypeSister" msgid="1735983554479076481">"여자 형제"</string>
+ <string name="relationTypeSpouse" msgid="394136939428698117">"배우자"</string>
<string name="sipAddressTypeCustom" msgid="2473580593111590945">"맞춤설정"</string>
<string name="sipAddressTypeHome" msgid="6093598181069359295">"홈"</string>
<string name="sipAddressTypeWork" msgid="6920725730797099047">"직장"</string>
@@ -674,8 +662,7 @@
<string name="save_password_label" msgid="6860261758665825069">"확인"</string>
<string name="double_tap_toast" msgid="1068216937244567247">"도움말: 축소/확대하려면 두 번 누릅니다."</string>
<!-- outdated translation 8940110866775097494 --> <string name="autofill_this_form" msgid="1272247532604569872">"양식 자동완성"</string>
- <!-- no translation found for autofill_address_name_separator (2504700673286691795) -->
- <skip />
+ <string name="autofill_address_name_separator" msgid="2504700673286691795">" "</string>
<!-- no translation found for autofill_address_summary_name_format (3268041054899214945) -->
<skip />
<!-- no translation found for autofill_address_summary_separator (7483307893170324129) -->
@@ -804,8 +791,7 @@
<string name="cut" msgid="3092569408438626261">"잘라내기"</string>
<string name="copy" msgid="2681946229533511987">"복사"</string>
<string name="paste" msgid="5629880836805036433">"붙여넣기"</string>
- <!-- no translation found for pasteDisabled (7259254654641456570) -->
- <skip />
+ <string name="pasteDisabled" msgid="7259254654641456570">"붙여넣을 내용이 없습니다."</string>
<string name="copyUrl" msgid="2538211579596067402">"URL 복사"</string>
<string name="selectTextMode" msgid="6738556348861347240">"텍스트 선택..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"텍스트 선택"</string>
@@ -951,8 +937,7 @@
<string name="ime_action_send" msgid="2316166556349314424">"전송"</string>
<string name="ime_action_next" msgid="3138843904009813834">"다음"</string>
<string name="ime_action_done" msgid="8971516117910934605">"완료"</string>
- <!-- no translation found for ime_action_previous (1443550039250105948) -->
- <skip />
+ <string name="ime_action_previous" msgid="1443550039250105948">"이전"</string>
<string name="ime_action_default" msgid="2840921885558045721">"실행"</string>
<string name="dial_number_using" msgid="5789176425167573586">"전화하기 "\n"<xliff:g id="NUMBER">%s</xliff:g>에 연결"</string>
<string name="create_contact_using" msgid="4947405226788104538">"전화번호부에"\n"<xliff:g id="NUMBER">%s</xliff:g> 추가"</string>
diff --git a/core/res/res/values-land/dimens.xml b/core/res/res/values-land/dimens.xml
index d562d96..b1f12b5 100644
--- a/core/res/res/values-land/dimens.xml
+++ b/core/res/res/values-land/dimens.xml
@@ -21,6 +21,6 @@
<resources>
<dimen name="password_keyboard_key_height">47dip</dimen>
<dimen name="password_keyboard_spacebar_vertical_correction">2dip</dimen>
- <dimen name="preference_screen_side_margin">32dp</dimen>
- <dimen name="preference_widget_width">64dp</dimen>
+ <dimen name="preference_screen_side_margin">96dp</dimen>
+ <dimen name="preference_widget_width">72dp</dimen>
</resources>
\ No newline at end of file
diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml
index e43aabd..cdc3f0a 100644
--- a/core/res/res/values-nb/strings.xml
+++ b/core/res/res/values-nb/strings.xml
@@ -482,6 +482,10 @@
<string name="policydesc_wipeData" product="default" msgid="7669895333814222586">"Tilbakestill telefonens data uten advarsel ved å utføre tilbakestilling til fabrikkstandard"</string>
<string name="policylab_setGlobalProxy" msgid="2784828293747791446">"Angi enhetens globale mellomtjener"</string>
<string name="policydesc_setGlobalProxy" msgid="6387497466660154931">"Angir den globale mellomtjeneren på enheten som skal brukes når regelen er aktivert. Kun den opprinnelige administratoren av enheten kan angi den globale mellomtjeneren."</string>
+ <!-- no translation found for policylab_expirePassword (2314569545488269564) -->
+ <skip />
+ <!-- no translation found for policydesc_expirePassword (7276906351852798814) -->
+ <skip />
<string-array name="phoneTypes">
<item msgid="8901098336658710359">"Hjemmenummer"</item>
<item msgid="869923650527136615">"Mobil"</item>
@@ -546,11 +550,10 @@
<string name="phoneTypeWorkPager" msgid="649938731231157056">"Personsøker arbeid"</string>
<string name="phoneTypeAssistant" msgid="5596772636128562884">"Assistent"</string>
<string name="phoneTypeMms" msgid="7254492275502768992">"MMS"</string>
- <!-- no translation found for eventTypeCustom (7837586198458073404) -->
- <skip />
+ <string name="eventTypeCustom" msgid="7837586198458073404">"Egendefinert"</string>
<string name="eventTypeBirthday" msgid="2813379844211390740">"Bursdag"</string>
<string name="eventTypeAnniversary" msgid="3876779744518284000">"Jubileum"</string>
- <!-- outdated translation 5834288791948564594 --> <string name="eventTypeOther" msgid="7388178939010143077">"Akivitet"</string>
+ <string name="eventTypeOther" msgid="7388178939010143077">"Andre"</string>
<string name="emailTypeCustom" msgid="8525960257804213846">"Egendefinert"</string>
<string name="emailTypeHome" msgid="449227236140433919">"Hjemme"</string>
<string name="emailTypeWork" msgid="3548058059601149973">"Arbeid"</string>
@@ -577,36 +580,21 @@
<string name="orgTypeWork" msgid="29268870505363872">"Arbeid"</string>
<string name="orgTypeOther" msgid="3951781131570124082">"Annen"</string>
<string name="orgTypeCustom" msgid="225523415372088322">"Egendefinert"</string>
- <!-- no translation found for relationTypeCustom (3542403679827297300) -->
- <skip />
- <!-- no translation found for relationTypeAssistant (6274334825195379076) -->
- <skip />
- <!-- no translation found for relationTypeBrother (8757913506784067713) -->
- <skip />
- <!-- no translation found for relationTypeChild (1890746277276881626) -->
- <skip />
- <!-- no translation found for relationTypeDomesticPartner (6904807112121122133) -->
- <skip />
- <!-- no translation found for relationTypeFather (5228034687082050725) -->
- <skip />
- <!-- no translation found for relationTypeFriend (7313106762483391262) -->
- <skip />
- <!-- no translation found for relationTypeManager (6365677861610137895) -->
- <skip />
- <!-- no translation found for relationTypeMother (4578571352962758304) -->
- <skip />
- <!-- no translation found for relationTypeParent (4755635567562925226) -->
- <skip />
- <!-- no translation found for relationTypePartner (7266490285120262781) -->
- <skip />
- <!-- no translation found for relationTypeReferredBy (101573059844135524) -->
- <skip />
- <!-- no translation found for relationTypeRelative (1799819930085610271) -->
- <skip />
- <!-- no translation found for relationTypeSister (1735983554479076481) -->
- <skip />
- <!-- no translation found for relationTypeSpouse (394136939428698117) -->
- <skip />
+ <string name="relationTypeCustom" msgid="3542403679827297300">"Egendefinert"</string>
+ <string name="relationTypeAssistant" msgid="6274334825195379076">"Assistent"</string>
+ <string name="relationTypeBrother" msgid="8757913506784067713">"Bror"</string>
+ <string name="relationTypeChild" msgid="1890746277276881626">"Barn"</string>
+ <string name="relationTypeDomesticPartner" msgid="6904807112121122133">"Samboer"</string>
+ <string name="relationTypeFather" msgid="5228034687082050725">"Far"</string>
+ <string name="relationTypeFriend" msgid="7313106762483391262">"Venn"</string>
+ <string name="relationTypeManager" msgid="6365677861610137895">"Sjef"</string>
+ <string name="relationTypeMother" msgid="4578571352962758304">"Mor"</string>
+ <string name="relationTypeParent" msgid="4755635567562925226">"Foresatt"</string>
+ <string name="relationTypePartner" msgid="7266490285120262781">"Partner"</string>
+ <string name="relationTypeReferredBy" msgid="101573059844135524">"Anbefalt av"</string>
+ <string name="relationTypeRelative" msgid="1799819930085610271">"Slektning"</string>
+ <string name="relationTypeSister" msgid="1735983554479076481">"Søster"</string>
+ <string name="relationTypeSpouse" msgid="394136939428698117">"Ektefelle"</string>
<string name="sipAddressTypeCustom" msgid="2473580593111590945">"Egendefinert"</string>
<string name="sipAddressTypeHome" msgid="6093598181069359295">"Startside"</string>
<string name="sipAddressTypeWork" msgid="6920725730797099047">"Arbeid"</string>
@@ -674,8 +662,7 @@
<string name="save_password_label" msgid="6860261758665825069">"Bekreft"</string>
<string name="double_tap_toast" msgid="1068216937244567247">"Dobbelttrykk for å zoome inn og ut."</string>
<!-- outdated translation 8940110866775097494 --> <string name="autofill_this_form" msgid="1272247532604569872">"Fyll ut dette skjemaet automatisk"</string>
- <!-- no translation found for autofill_address_name_separator (2504700673286691795) -->
- <skip />
+ <string name="autofill_address_name_separator" msgid="2504700673286691795">" "</string>
<!-- no translation found for autofill_address_summary_name_format (3268041054899214945) -->
<skip />
<!-- no translation found for autofill_address_summary_separator (7483307893170324129) -->
@@ -804,8 +791,7 @@
<string name="cut" msgid="3092569408438626261">"Klipp ut"</string>
<string name="copy" msgid="2681946229533511987">"Kopier"</string>
<string name="paste" msgid="5629880836805036433">"Lim inn"</string>
- <!-- no translation found for pasteDisabled (7259254654641456570) -->
- <skip />
+ <string name="pasteDisabled" msgid="7259254654641456570">"Ingenting å lime inn"</string>
<string name="copyUrl" msgid="2538211579596067402">"Kopier URL"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Marker tekst"</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Merket tekst"</string>
@@ -951,8 +937,7 @@
<string name="ime_action_send" msgid="2316166556349314424">"Send"</string>
<string name="ime_action_next" msgid="3138843904009813834">"Neste"</string>
<string name="ime_action_done" msgid="8971516117910934605">"Utført"</string>
- <!-- no translation found for ime_action_previous (1443550039250105948) -->
- <skip />
+ <string name="ime_action_previous" msgid="1443550039250105948">"Forrige"</string>
<string name="ime_action_default" msgid="2840921885558045721">"Utfør"</string>
<string name="dial_number_using" msgid="5789176425167573586">"Ring nummeret"\n"<xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="create_contact_using" msgid="4947405226788104538">"Lag kontakt"\n"med nummeret <xliff:g id="NUMBER">%s</xliff:g>"</string>
diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml
index d66b694..12034f2 100644
--- a/core/res/res/values-nl/strings.xml
+++ b/core/res/res/values-nl/strings.xml
@@ -482,6 +482,10 @@
<string name="policydesc_wipeData" product="default" msgid="7669895333814222586">"De gegevens van de telefoon zonder waarschuwing wissen door de fabrieksinstellingen te herstellen"</string>
<string name="policylab_setGlobalProxy" msgid="2784828293747791446">"Algemene proxy voor het apparaat instellen"</string>
<string name="policydesc_setGlobalProxy" msgid="6387497466660154931">"Stel de algemene proxy voor het apparaat in die moet worden gebruikt terwijl het beleid is geactiveerd. Alleen de eerste apparaatbeheerder stelt de algemene proxy in."</string>
+ <!-- no translation found for policylab_expirePassword (2314569545488269564) -->
+ <skip />
+ <!-- no translation found for policydesc_expirePassword (7276906351852798814) -->
+ <skip />
<string-array name="phoneTypes">
<item msgid="8901098336658710359">"Thuis"</item>
<item msgid="869923650527136615">"Mobiel"</item>
@@ -546,11 +550,10 @@
<string name="phoneTypeWorkPager" msgid="649938731231157056">"Pager werk"</string>
<string name="phoneTypeAssistant" msgid="5596772636128562884">"Assistent"</string>
<string name="phoneTypeMms" msgid="7254492275502768992">"MMS"</string>
- <!-- no translation found for eventTypeCustom (7837586198458073404) -->
- <skip />
+ <string name="eventTypeCustom" msgid="7837586198458073404">"Aangepast"</string>
<string name="eventTypeBirthday" msgid="2813379844211390740">"Verjaardag"</string>
<string name="eventTypeAnniversary" msgid="3876779744518284000">"Jubileum"</string>
- <!-- outdated translation 5834288791948564594 --> <string name="eventTypeOther" msgid="7388178939010143077">"Afspraak"</string>
+ <string name="eventTypeOther" msgid="7388178939010143077">"Overig"</string>
<string name="emailTypeCustom" msgid="8525960257804213846">"Aangepast"</string>
<string name="emailTypeHome" msgid="449227236140433919">"Thuis"</string>
<string name="emailTypeWork" msgid="3548058059601149973">"Werk"</string>
@@ -577,36 +580,21 @@
<string name="orgTypeWork" msgid="29268870505363872">"Werk"</string>
<string name="orgTypeOther" msgid="3951781131570124082">"Overig"</string>
<string name="orgTypeCustom" msgid="225523415372088322">"Aangepast"</string>
- <!-- no translation found for relationTypeCustom (3542403679827297300) -->
- <skip />
- <!-- no translation found for relationTypeAssistant (6274334825195379076) -->
- <skip />
- <!-- no translation found for relationTypeBrother (8757913506784067713) -->
- <skip />
- <!-- no translation found for relationTypeChild (1890746277276881626) -->
- <skip />
- <!-- no translation found for relationTypeDomesticPartner (6904807112121122133) -->
- <skip />
- <!-- no translation found for relationTypeFather (5228034687082050725) -->
- <skip />
- <!-- no translation found for relationTypeFriend (7313106762483391262) -->
- <skip />
- <!-- no translation found for relationTypeManager (6365677861610137895) -->
- <skip />
- <!-- no translation found for relationTypeMother (4578571352962758304) -->
- <skip />
- <!-- no translation found for relationTypeParent (4755635567562925226) -->
- <skip />
- <!-- no translation found for relationTypePartner (7266490285120262781) -->
- <skip />
- <!-- no translation found for relationTypeReferredBy (101573059844135524) -->
- <skip />
- <!-- no translation found for relationTypeRelative (1799819930085610271) -->
- <skip />
- <!-- no translation found for relationTypeSister (1735983554479076481) -->
- <skip />
- <!-- no translation found for relationTypeSpouse (394136939428698117) -->
- <skip />
+ <string name="relationTypeCustom" msgid="3542403679827297300">"Aangepast"</string>
+ <string name="relationTypeAssistant" msgid="6274334825195379076">"Assistent"</string>
+ <string name="relationTypeBrother" msgid="8757913506784067713">"Broer"</string>
+ <string name="relationTypeChild" msgid="1890746277276881626">"Kind"</string>
+ <string name="relationTypeDomesticPartner" msgid="6904807112121122133">"Levenspartner"</string>
+ <string name="relationTypeFather" msgid="5228034687082050725">"Vader"</string>
+ <string name="relationTypeFriend" msgid="7313106762483391262">"Vriend"</string>
+ <string name="relationTypeManager" msgid="6365677861610137895">"Manager"</string>
+ <string name="relationTypeMother" msgid="4578571352962758304">"Moeder"</string>
+ <string name="relationTypeParent" msgid="4755635567562925226">"Ouder"</string>
+ <string name="relationTypePartner" msgid="7266490285120262781">"Partner"</string>
+ <string name="relationTypeReferredBy" msgid="101573059844135524">"Genoemd door"</string>
+ <string name="relationTypeRelative" msgid="1799819930085610271">"Familielid"</string>
+ <string name="relationTypeSister" msgid="1735983554479076481">"Zus"</string>
+ <string name="relationTypeSpouse" msgid="394136939428698117">"Echtgenoot/-genote"</string>
<string name="sipAddressTypeCustom" msgid="2473580593111590945">"Aangepast"</string>
<string name="sipAddressTypeHome" msgid="6093598181069359295">"Startpagina"</string>
<string name="sipAddressTypeWork" msgid="6920725730797099047">"Werk"</string>
@@ -674,8 +662,7 @@
<string name="save_password_label" msgid="6860261758665825069">"Bevestigen"</string>
<string name="double_tap_toast" msgid="1068216937244567247">"Tip: tik tweemaal om in of uit te zoomen."</string>
<!-- outdated translation 8940110866775097494 --> <string name="autofill_this_form" msgid="1272247532604569872">"Dit formulier automatisch aanvullen"</string>
- <!-- no translation found for autofill_address_name_separator (2504700673286691795) -->
- <skip />
+ <string name="autofill_address_name_separator" msgid="2504700673286691795">" "</string>
<!-- no translation found for autofill_address_summary_name_format (3268041054899214945) -->
<skip />
<!-- no translation found for autofill_address_summary_separator (7483307893170324129) -->
@@ -804,8 +791,7 @@
<string name="cut" msgid="3092569408438626261">"Knippen"</string>
<string name="copy" msgid="2681946229533511987">"Kopiëren"</string>
<string name="paste" msgid="5629880836805036433">"Plakken"</string>
- <!-- no translation found for pasteDisabled (7259254654641456570) -->
- <skip />
+ <string name="pasteDisabled" msgid="7259254654641456570">"Niets te plakken"</string>
<string name="copyUrl" msgid="2538211579596067402">"URL kopiëren"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Tekst selecteren..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Tekstselectie"</string>
@@ -951,8 +937,7 @@
<string name="ime_action_send" msgid="2316166556349314424">"Verzenden"</string>
<string name="ime_action_next" msgid="3138843904009813834">"Volgende"</string>
<string name="ime_action_done" msgid="8971516117910934605">"Gereed"</string>
- <!-- no translation found for ime_action_previous (1443550039250105948) -->
- <skip />
+ <string name="ime_action_previous" msgid="1443550039250105948">"Vorige"</string>
<string name="ime_action_default" msgid="2840921885558045721">"Uitvoeren"</string>
<string name="dial_number_using" msgid="5789176425167573586">"Nummer bellen"\n"met <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="create_contact_using" msgid="4947405226788104538">"Contact maken"\n"met <xliff:g id="NUMBER">%s</xliff:g>"</string>
diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml
index 66a7160..089026f 100644
--- a/core/res/res/values-pl/strings.xml
+++ b/core/res/res/values-pl/strings.xml
@@ -482,6 +482,10 @@
<string name="policydesc_wipeData" product="default" msgid="7669895333814222586">"Wymazywanie danych z telefonu bez ostrzeżenia, przez przywrócenie danych fabrycznych"</string>
<string name="policylab_setGlobalProxy" msgid="2784828293747791446">"Ustaw globalny serwer proxy urządzenia"</string>
<string name="policydesc_setGlobalProxy" msgid="6387497466660154931">"Ustaw globalny serwer proxy urządzenia do wykorzystywania przy włączonych zasadach. Tylko pierwszy administrator urządzenia ustawia obowiązujący globalny serwer proxy."</string>
+ <!-- no translation found for policylab_expirePassword (2314569545488269564) -->
+ <skip />
+ <!-- no translation found for policydesc_expirePassword (7276906351852798814) -->
+ <skip />
<string-array name="phoneTypes">
<item msgid="8901098336658710359">"Dom"</item>
<item msgid="869923650527136615">"Komórka"</item>
@@ -546,11 +550,10 @@
<string name="phoneTypeWorkPager" msgid="649938731231157056">"Pager służbowy"</string>
<string name="phoneTypeAssistant" msgid="5596772636128562884">"Asystent"</string>
<string name="phoneTypeMms" msgid="7254492275502768992">"Wiadomość MMS"</string>
- <!-- no translation found for eventTypeCustom (7837586198458073404) -->
- <skip />
+ <string name="eventTypeCustom" msgid="7837586198458073404">"Niestandardowe"</string>
<string name="eventTypeBirthday" msgid="2813379844211390740">"Urodziny"</string>
<string name="eventTypeAnniversary" msgid="3876779744518284000">"Rocznica"</string>
- <!-- outdated translation 5834288791948564594 --> <string name="eventTypeOther" msgid="7388178939010143077">"Wydarzenie"</string>
+ <string name="eventTypeOther" msgid="7388178939010143077">"Inne"</string>
<string name="emailTypeCustom" msgid="8525960257804213846">"Niestandardowy"</string>
<string name="emailTypeHome" msgid="449227236140433919">"Domowy"</string>
<string name="emailTypeWork" msgid="3548058059601149973">"Służbowy"</string>
@@ -577,36 +580,21 @@
<string name="orgTypeWork" msgid="29268870505363872">"Służbowy"</string>
<string name="orgTypeOther" msgid="3951781131570124082">"Inny"</string>
<string name="orgTypeCustom" msgid="225523415372088322">"Niestandardowy"</string>
- <!-- no translation found for relationTypeCustom (3542403679827297300) -->
- <skip />
- <!-- no translation found for relationTypeAssistant (6274334825195379076) -->
- <skip />
- <!-- no translation found for relationTypeBrother (8757913506784067713) -->
- <skip />
- <!-- no translation found for relationTypeChild (1890746277276881626) -->
- <skip />
- <!-- no translation found for relationTypeDomesticPartner (6904807112121122133) -->
- <skip />
- <!-- no translation found for relationTypeFather (5228034687082050725) -->
- <skip />
- <!-- no translation found for relationTypeFriend (7313106762483391262) -->
- <skip />
- <!-- no translation found for relationTypeManager (6365677861610137895) -->
- <skip />
- <!-- no translation found for relationTypeMother (4578571352962758304) -->
- <skip />
- <!-- no translation found for relationTypeParent (4755635567562925226) -->
- <skip />
- <!-- no translation found for relationTypePartner (7266490285120262781) -->
- <skip />
- <!-- no translation found for relationTypeReferredBy (101573059844135524) -->
- <skip />
- <!-- no translation found for relationTypeRelative (1799819930085610271) -->
- <skip />
- <!-- no translation found for relationTypeSister (1735983554479076481) -->
- <skip />
- <!-- no translation found for relationTypeSpouse (394136939428698117) -->
- <skip />
+ <string name="relationTypeCustom" msgid="3542403679827297300">"Niestandardowa"</string>
+ <string name="relationTypeAssistant" msgid="6274334825195379076">"Asystent"</string>
+ <string name="relationTypeBrother" msgid="8757913506784067713">"Brat"</string>
+ <string name="relationTypeChild" msgid="1890746277276881626">"Dziecko"</string>
+ <string name="relationTypeDomesticPartner" msgid="6904807112121122133">"Partner życiowy"</string>
+ <string name="relationTypeFather" msgid="5228034687082050725">"Ojciec"</string>
+ <string name="relationTypeFriend" msgid="7313106762483391262">"Znajomy"</string>
+ <string name="relationTypeManager" msgid="6365677861610137895">"Kierownik"</string>
+ <string name="relationTypeMother" msgid="4578571352962758304">"Matka"</string>
+ <string name="relationTypeParent" msgid="4755635567562925226">"Rodzic"</string>
+ <string name="relationTypePartner" msgid="7266490285120262781">"Partner"</string>
+ <string name="relationTypeReferredBy" msgid="101573059844135524">"Z polecenia"</string>
+ <string name="relationTypeRelative" msgid="1799819930085610271">"Krewny"</string>
+ <string name="relationTypeSister" msgid="1735983554479076481">"Siostra"</string>
+ <string name="relationTypeSpouse" msgid="394136939428698117">"Współmałżonek"</string>
<string name="sipAddressTypeCustom" msgid="2473580593111590945">"Niestandardowy"</string>
<string name="sipAddressTypeHome" msgid="6093598181069359295">"Domowy"</string>
<string name="sipAddressTypeWork" msgid="6920725730797099047">"Służbowy"</string>
@@ -674,8 +662,7 @@
<string name="save_password_label" msgid="6860261758665825069">"Potwierdź"</string>
<string name="double_tap_toast" msgid="1068216937244567247">"Wskazówka: dotknij dwukrotnie, aby powiększyć lub pomniejszyć."</string>
<!-- outdated translation 8940110866775097494 --> <string name="autofill_this_form" msgid="1272247532604569872">"Wypełnij ten formularz automatycznie"</string>
- <!-- no translation found for autofill_address_name_separator (2504700673286691795) -->
- <skip />
+ <string name="autofill_address_name_separator" msgid="2504700673286691795">" "</string>
<!-- no translation found for autofill_address_summary_name_format (3268041054899214945) -->
<skip />
<!-- no translation found for autofill_address_summary_separator (7483307893170324129) -->
@@ -804,8 +791,7 @@
<string name="cut" msgid="3092569408438626261">"Wytnij"</string>
<string name="copy" msgid="2681946229533511987">"Kopiuj"</string>
<string name="paste" msgid="5629880836805036433">"Wklej"</string>
- <!-- no translation found for pasteDisabled (7259254654641456570) -->
- <skip />
+ <string name="pasteDisabled" msgid="7259254654641456570">"Schowek jest pusty"</string>
<string name="copyUrl" msgid="2538211579596067402">"Kopiuj adres URL"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Zaznacz tekst"</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Zaznaczanie tekstu"</string>
@@ -951,8 +937,7 @@
<string name="ime_action_send" msgid="2316166556349314424">"Wyślij"</string>
<string name="ime_action_next" msgid="3138843904009813834">"Dalej"</string>
<string name="ime_action_done" msgid="8971516117910934605">"Gotowe"</string>
- <!-- no translation found for ime_action_previous (1443550039250105948) -->
- <skip />
+ <string name="ime_action_previous" msgid="1443550039250105948">"Wstecz"</string>
<string name="ime_action_default" msgid="2840921885558045721">"Wykonaj"</string>
<string name="dial_number_using" msgid="5789176425167573586">"Połącz"\n"z numerem <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="create_contact_using" msgid="4947405226788104538">"Utwórz kontakt"\n"dla numeru <xliff:g id="NUMBER">%s</xliff:g>"</string>
diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml
index 990d630..3f270a0 100644
--- a/core/res/res/values-pt-rPT/strings.xml
+++ b/core/res/res/values-pt-rPT/strings.xml
@@ -482,6 +482,10 @@
<string name="policydesc_wipeData" product="default" msgid="7669895333814222586">"Apagar os dados do telefone sem avisar, ao efectuar uma reposição de dados de fábrica"</string>
<string name="policylab_setGlobalProxy" msgid="2784828293747791446">"Definir o proxy global do aparelho"</string>
<string name="policydesc_setGlobalProxy" msgid="6387497466660154931">"Definir o proxy global do aparelho a ser utilizado quando a política estiver activada. Só o primeiro administrador do aparelho define o proxy global efectivo."</string>
+ <!-- no translation found for policylab_expirePassword (2314569545488269564) -->
+ <skip />
+ <!-- no translation found for policydesc_expirePassword (7276906351852798814) -->
+ <skip />
<string-array name="phoneTypes">
<item msgid="8901098336658710359">"Residência"</item>
<item msgid="869923650527136615">"Móvel"</item>
@@ -546,11 +550,10 @@
<string name="phoneTypeWorkPager" msgid="649938731231157056">"Pager do trabalho"</string>
<string name="phoneTypeAssistant" msgid="5596772636128562884">"Assistente"</string>
<string name="phoneTypeMms" msgid="7254492275502768992">"MMS"</string>
- <!-- no translation found for eventTypeCustom (7837586198458073404) -->
- <skip />
+ <string name="eventTypeCustom" msgid="7837586198458073404">"Personalizado"</string>
<string name="eventTypeBirthday" msgid="2813379844211390740">"Data de nascimento"</string>
<string name="eventTypeAnniversary" msgid="3876779744518284000">"Aniversário"</string>
- <!-- outdated translation 5834288791948564594 --> <string name="eventTypeOther" msgid="7388178939010143077">"Evento"</string>
+ <string name="eventTypeOther" msgid="7388178939010143077">"Outro"</string>
<string name="emailTypeCustom" msgid="8525960257804213846">"Personalizado"</string>
<string name="emailTypeHome" msgid="449227236140433919">"Residência"</string>
<string name="emailTypeWork" msgid="3548058059601149973">"Emprego"</string>
@@ -577,36 +580,21 @@
<string name="orgTypeWork" msgid="29268870505363872">"Emprego"</string>
<string name="orgTypeOther" msgid="3951781131570124082">"Outro"</string>
<string name="orgTypeCustom" msgid="225523415372088322">"Personalizado"</string>
- <!-- no translation found for relationTypeCustom (3542403679827297300) -->
- <skip />
- <!-- no translation found for relationTypeAssistant (6274334825195379076) -->
- <skip />
- <!-- no translation found for relationTypeBrother (8757913506784067713) -->
- <skip />
- <!-- no translation found for relationTypeChild (1890746277276881626) -->
- <skip />
- <!-- no translation found for relationTypeDomesticPartner (6904807112121122133) -->
- <skip />
- <!-- no translation found for relationTypeFather (5228034687082050725) -->
- <skip />
- <!-- no translation found for relationTypeFriend (7313106762483391262) -->
- <skip />
- <!-- no translation found for relationTypeManager (6365677861610137895) -->
- <skip />
- <!-- no translation found for relationTypeMother (4578571352962758304) -->
- <skip />
- <!-- no translation found for relationTypeParent (4755635567562925226) -->
- <skip />
- <!-- no translation found for relationTypePartner (7266490285120262781) -->
- <skip />
- <!-- no translation found for relationTypeReferredBy (101573059844135524) -->
- <skip />
- <!-- no translation found for relationTypeRelative (1799819930085610271) -->
- <skip />
- <!-- no translation found for relationTypeSister (1735983554479076481) -->
- <skip />
- <!-- no translation found for relationTypeSpouse (394136939428698117) -->
- <skip />
+ <string name="relationTypeCustom" msgid="3542403679827297300">"Personalizado"</string>
+ <string name="relationTypeAssistant" msgid="6274334825195379076">"Assistente"</string>
+ <string name="relationTypeBrother" msgid="8757913506784067713">"Irmão"</string>
+ <string name="relationTypeChild" msgid="1890746277276881626">"Filho"</string>
+ <string name="relationTypeDomesticPartner" msgid="6904807112121122133">"Companheiro(a)"</string>
+ <string name="relationTypeFather" msgid="5228034687082050725">"Pai"</string>
+ <string name="relationTypeFriend" msgid="7313106762483391262">"Amigo"</string>
+ <string name="relationTypeManager" msgid="6365677861610137895">"Director"</string>
+ <string name="relationTypeMother" msgid="4578571352962758304">"Mãe"</string>
+ <string name="relationTypeParent" msgid="4755635567562925226">"Pais"</string>
+ <string name="relationTypePartner" msgid="7266490285120262781">"Sócio"</string>
+ <string name="relationTypeReferredBy" msgid="101573059844135524">"Recomendado por"</string>
+ <string name="relationTypeRelative" msgid="1799819930085610271">"Família"</string>
+ <string name="relationTypeSister" msgid="1735983554479076481">"Irmã"</string>
+ <string name="relationTypeSpouse" msgid="394136939428698117">"Cônjuge"</string>
<string name="sipAddressTypeCustom" msgid="2473580593111590945">"Personalizado"</string>
<string name="sipAddressTypeHome" msgid="6093598181069359295">"Página inicial"</string>
<string name="sipAddressTypeWork" msgid="6920725730797099047">"Emprego"</string>
@@ -674,8 +662,7 @@
<string name="save_password_label" msgid="6860261758665825069">"Confirmar"</string>
<string name="double_tap_toast" msgid="1068216937244567247">"Sugestão: toque duas vezes para aumentar ou diminuir o zoom."</string>
<!-- outdated translation 8940110866775097494 --> <string name="autofill_this_form" msgid="1272247532604569872">"Preenchimento automático deste formulário"</string>
- <!-- no translation found for autofill_address_name_separator (2504700673286691795) -->
- <skip />
+ <string name="autofill_address_name_separator" msgid="2504700673286691795">" "</string>
<!-- no translation found for autofill_address_summary_name_format (3268041054899214945) -->
<skip />
<!-- no translation found for autofill_address_summary_separator (7483307893170324129) -->
@@ -804,8 +791,7 @@
<string name="cut" msgid="3092569408438626261">"Cortar"</string>
<string name="copy" msgid="2681946229533511987">"Copiar"</string>
<string name="paste" msgid="5629880836805036433">"Colar"</string>
- <!-- no translation found for pasteDisabled (7259254654641456570) -->
- <skip />
+ <string name="pasteDisabled" msgid="7259254654641456570">"Nada para colar"</string>
<string name="copyUrl" msgid="2538211579596067402">"Copiar URL"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Seleccionar texto..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Selecção de texto"</string>
@@ -951,8 +937,7 @@
<string name="ime_action_send" msgid="2316166556349314424">"Enviar"</string>
<string name="ime_action_next" msgid="3138843904009813834">"Seguinte"</string>
<string name="ime_action_done" msgid="8971516117910934605">"Concluído"</string>
- <!-- no translation found for ime_action_previous (1443550039250105948) -->
- <skip />
+ <string name="ime_action_previous" msgid="1443550039250105948">"Ant"</string>
<string name="ime_action_default" msgid="2840921885558045721">"Executar"</string>
<string name="dial_number_using" msgid="5789176425167573586">"Marcar número"\n"utilizando <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="create_contact_using" msgid="4947405226788104538">"Criar contacto"\n"utilizando <xliff:g id="NUMBER">%s</xliff:g>"</string>
diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml
index ce106db..368132e 100644
--- a/core/res/res/values-pt/strings.xml
+++ b/core/res/res/values-pt/strings.xml
@@ -482,6 +482,10 @@
<string name="policydesc_wipeData" product="default" msgid="7669895333814222586">"Apaga os dados do telefone sem aviso, executando uma redefinição da configuração original"</string>
<string name="policylab_setGlobalProxy" msgid="2784828293747791446">"Definir o proxy global do dispositivo"</string>
<string name="policydesc_setGlobalProxy" msgid="6387497466660154931">"Configura o proxy global do dispositivo para ser usado enquanto a política estiver ativada. Somente o primeiro administrador do dispositivo pode configurar um verdadeiro proxy global."</string>
+ <!-- no translation found for policylab_expirePassword (2314569545488269564) -->
+ <skip />
+ <!-- no translation found for policydesc_expirePassword (7276906351852798814) -->
+ <skip />
<string-array name="phoneTypes">
<item msgid="8901098336658710359">"Residencial"</item>
<item msgid="869923650527136615">"Celular"</item>
@@ -546,11 +550,10 @@
<string name="phoneTypeWorkPager" msgid="649938731231157056">"Pager comercial"</string>
<string name="phoneTypeAssistant" msgid="5596772636128562884">"Assistente"</string>
<string name="phoneTypeMms" msgid="7254492275502768992">"MMS"</string>
- <!-- no translation found for eventTypeCustom (7837586198458073404) -->
- <skip />
+ <string name="eventTypeCustom" msgid="7837586198458073404">"Personalizado"</string>
<string name="eventTypeBirthday" msgid="2813379844211390740">"Aniversário"</string>
<string name="eventTypeAnniversary" msgid="3876779744518284000">"Data comemorativa"</string>
- <!-- outdated translation 5834288791948564594 --> <string name="eventTypeOther" msgid="7388178939010143077">"Evento"</string>
+ <string name="eventTypeOther" msgid="7388178939010143077">"Outros"</string>
<string name="emailTypeCustom" msgid="8525960257804213846">"Personalizado"</string>
<string name="emailTypeHome" msgid="449227236140433919">"Residencial"</string>
<string name="emailTypeWork" msgid="3548058059601149973">"Comercial"</string>
@@ -577,36 +580,21 @@
<string name="orgTypeWork" msgid="29268870505363872">"Comercial"</string>
<string name="orgTypeOther" msgid="3951781131570124082">"Outros"</string>
<string name="orgTypeCustom" msgid="225523415372088322">"Personalizado"</string>
- <!-- no translation found for relationTypeCustom (3542403679827297300) -->
- <skip />
- <!-- no translation found for relationTypeAssistant (6274334825195379076) -->
- <skip />
- <!-- no translation found for relationTypeBrother (8757913506784067713) -->
- <skip />
- <!-- no translation found for relationTypeChild (1890746277276881626) -->
- <skip />
- <!-- no translation found for relationTypeDomesticPartner (6904807112121122133) -->
- <skip />
- <!-- no translation found for relationTypeFather (5228034687082050725) -->
- <skip />
- <!-- no translation found for relationTypeFriend (7313106762483391262) -->
- <skip />
- <!-- no translation found for relationTypeManager (6365677861610137895) -->
- <skip />
- <!-- no translation found for relationTypeMother (4578571352962758304) -->
- <skip />
- <!-- no translation found for relationTypeParent (4755635567562925226) -->
- <skip />
- <!-- no translation found for relationTypePartner (7266490285120262781) -->
- <skip />
- <!-- no translation found for relationTypeReferredBy (101573059844135524) -->
- <skip />
- <!-- no translation found for relationTypeRelative (1799819930085610271) -->
- <skip />
- <!-- no translation found for relationTypeSister (1735983554479076481) -->
- <skip />
- <!-- no translation found for relationTypeSpouse (394136939428698117) -->
- <skip />
+ <string name="relationTypeCustom" msgid="3542403679827297300">"Personalizado"</string>
+ <string name="relationTypeAssistant" msgid="6274334825195379076">"Assistente"</string>
+ <string name="relationTypeBrother" msgid="8757913506784067713">"Irmão"</string>
+ <string name="relationTypeChild" msgid="1890746277276881626">"Filho(a)"</string>
+ <string name="relationTypeDomesticPartner" msgid="6904807112121122133">"Parceiro doméstico"</string>
+ <string name="relationTypeFather" msgid="5228034687082050725">"Pai"</string>
+ <string name="relationTypeFriend" msgid="7313106762483391262">"Amigo(a)"</string>
+ <string name="relationTypeManager" msgid="6365677861610137895">"Gerente"</string>
+ <string name="relationTypeMother" msgid="4578571352962758304">"Mãe"</string>
+ <string name="relationTypeParent" msgid="4755635567562925226">"Pai/Mãe"</string>
+ <string name="relationTypePartner" msgid="7266490285120262781">"Parceiro"</string>
+ <string name="relationTypeReferredBy" msgid="101573059844135524">"Indicado por"</string>
+ <string name="relationTypeRelative" msgid="1799819930085610271">"Parente"</string>
+ <string name="relationTypeSister" msgid="1735983554479076481">"Irmã"</string>
+ <string name="relationTypeSpouse" msgid="394136939428698117">"Cônjuge"</string>
<string name="sipAddressTypeCustom" msgid="2473580593111590945">"Personalizado"</string>
<string name="sipAddressTypeHome" msgid="6093598181069359295">"Página inicial"</string>
<string name="sipAddressTypeWork" msgid="6920725730797099047">"Comercial"</string>
@@ -674,8 +662,7 @@
<string name="save_password_label" msgid="6860261758665825069">"Confirmar"</string>
<string name="double_tap_toast" msgid="1068216937244567247">"Dica: toque duas vezes para aumentar e diminuir o zoom."</string>
<!-- outdated translation 8940110866775097494 --> <string name="autofill_this_form" msgid="1272247532604569872">"Preencher automaticamente este formulário"</string>
- <!-- no translation found for autofill_address_name_separator (2504700673286691795) -->
- <skip />
+ <string name="autofill_address_name_separator" msgid="2504700673286691795">" "</string>
<!-- no translation found for autofill_address_summary_name_format (3268041054899214945) -->
<skip />
<!-- no translation found for autofill_address_summary_separator (7483307893170324129) -->
@@ -804,8 +791,7 @@
<string name="cut" msgid="3092569408438626261">"Recortar"</string>
<string name="copy" msgid="2681946229533511987">"Copiar"</string>
<string name="paste" msgid="5629880836805036433">"Colar"</string>
- <!-- no translation found for pasteDisabled (7259254654641456570) -->
- <skip />
+ <string name="pasteDisabled" msgid="7259254654641456570">"Nada para colar"</string>
<string name="copyUrl" msgid="2538211579596067402">"Copiar URL"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Selecionar texto..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Seleção de texto"</string>
@@ -951,8 +937,7 @@
<string name="ime_action_send" msgid="2316166556349314424">"Enviar"</string>
<string name="ime_action_next" msgid="3138843904009813834">"Avançar"</string>
<string name="ime_action_done" msgid="8971516117910934605">"Concluído"</string>
- <!-- no translation found for ime_action_previous (1443550039250105948) -->
- <skip />
+ <string name="ime_action_previous" msgid="1443550039250105948">"Anter."</string>
<string name="ime_action_default" msgid="2840921885558045721">"Executar"</string>
<string name="dial_number_using" msgid="5789176425167573586">"Discar número"\n"usando <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="create_contact_using" msgid="4947405226788104538">"Criar contato "\n"usando <xliff:g id="NUMBER">%s</xliff:g>"</string>
diff --git a/core/res/res/values-rm/strings.xml b/core/res/res/values-rm/strings.xml
index bbd61bd..e8f7298 100644
--- a/core/res/res/values-rm/strings.xml
+++ b/core/res/res/values-rm/strings.xml
@@ -488,6 +488,10 @@
<!-- outdated translation 2314060933796396205 --> <string name="policydesc_wipeData" product="default" msgid="7669895333814222586">"Restaurar ils parameters originals dal telefonin. Qua tras vegnan tut Vossas datas stizzadas senza dumonda da conferma."</string>
<string name="policylab_setGlobalProxy" msgid="2784828293747791446">"Definir il proxy global da l\'apparat"</string>
<string name="policydesc_setGlobalProxy" msgid="6387497466660154931">"Definir il proxy global da l\'apparat che duai vegnir utilisà sche la directiva è activada. Mo l\'emprim administratur dad apparats definescha il vair proxy global."</string>
+ <!-- no translation found for policylab_expirePassword (2314569545488269564) -->
+ <skip />
+ <!-- no translation found for policydesc_expirePassword (7276906351852798814) -->
+ <skip />
<string-array name="phoneTypes">
<item msgid="8901098336658710359">"Privat"</item>
<item msgid="869923650527136615">"Telefonin"</item>
diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml
index 4babb3bd..0ef23ee 100644
--- a/core/res/res/values-ru/strings.xml
+++ b/core/res/res/values-ru/strings.xml
@@ -482,6 +482,10 @@
<string name="policydesc_wipeData" product="default" msgid="7669895333814222586">"Уничтожить все данные на телефоне без предупреждения путем сброса настроек"</string>
<string name="policylab_setGlobalProxy" msgid="2784828293747791446">"Глобальный прокси-сервер"</string>
<string name="policydesc_setGlobalProxy" msgid="6387497466660154931">"Настройте глобальный прокси-сервер устройства, который будет использоваться при активной политике. Глобальный прокси-сервер должен настроить первый администратор устройства."</string>
+ <!-- no translation found for policylab_expirePassword (2314569545488269564) -->
+ <skip />
+ <!-- no translation found for policydesc_expirePassword (7276906351852798814) -->
+ <skip />
<string-array name="phoneTypes">
<item msgid="8901098336658710359">"Домашний"</item>
<item msgid="869923650527136615">"Мобильный"</item>
@@ -546,11 +550,10 @@
<string name="phoneTypeWorkPager" msgid="649938731231157056">"Раб. пейджер"</string>
<string name="phoneTypeAssistant" msgid="5596772636128562884">"Секретарь"</string>
<string name="phoneTypeMms" msgid="7254492275502768992">"MMS"</string>
- <!-- no translation found for eventTypeCustom (7837586198458073404) -->
- <skip />
+ <string name="eventTypeCustom" msgid="7837586198458073404">"Особый"</string>
<string name="eventTypeBirthday" msgid="2813379844211390740">"День рождения"</string>
<string name="eventTypeAnniversary" msgid="3876779744518284000">"Юбилей"</string>
- <!-- outdated translation 5834288791948564594 --> <string name="eventTypeOther" msgid="7388178939010143077">"Мероприятие"</string>
+ <string name="eventTypeOther" msgid="7388178939010143077">"Другой"</string>
<string name="emailTypeCustom" msgid="8525960257804213846">"Создать свой ярлык"</string>
<string name="emailTypeHome" msgid="449227236140433919">"Личный"</string>
<string name="emailTypeWork" msgid="3548058059601149973">"Рабочий"</string>
@@ -577,36 +580,21 @@
<string name="orgTypeWork" msgid="29268870505363872">"Работа"</string>
<string name="orgTypeOther" msgid="3951781131570124082">"Другое"</string>
<string name="orgTypeCustom" msgid="225523415372088322">"Создать свой ярлык"</string>
- <!-- no translation found for relationTypeCustom (3542403679827297300) -->
- <skip />
- <!-- no translation found for relationTypeAssistant (6274334825195379076) -->
- <skip />
- <!-- no translation found for relationTypeBrother (8757913506784067713) -->
- <skip />
- <!-- no translation found for relationTypeChild (1890746277276881626) -->
- <skip />
- <!-- no translation found for relationTypeDomesticPartner (6904807112121122133) -->
- <skip />
- <!-- no translation found for relationTypeFather (5228034687082050725) -->
- <skip />
- <!-- no translation found for relationTypeFriend (7313106762483391262) -->
- <skip />
- <!-- no translation found for relationTypeManager (6365677861610137895) -->
- <skip />
- <!-- no translation found for relationTypeMother (4578571352962758304) -->
- <skip />
- <!-- no translation found for relationTypeParent (4755635567562925226) -->
- <skip />
- <!-- no translation found for relationTypePartner (7266490285120262781) -->
- <skip />
- <!-- no translation found for relationTypeReferredBy (101573059844135524) -->
- <skip />
- <!-- no translation found for relationTypeRelative (1799819930085610271) -->
- <skip />
- <!-- no translation found for relationTypeSister (1735983554479076481) -->
- <skip />
- <!-- no translation found for relationTypeSpouse (394136939428698117) -->
- <skip />
+ <string name="relationTypeCustom" msgid="3542403679827297300">"Особый"</string>
+ <string name="relationTypeAssistant" msgid="6274334825195379076">"Секретарь"</string>
+ <string name="relationTypeBrother" msgid="8757913506784067713">"Брат"</string>
+ <string name="relationTypeChild" msgid="1890746277276881626">"Ребенок"</string>
+ <string name="relationTypeDomesticPartner" msgid="6904807112121122133">"В гражданском браке"</string>
+ <string name="relationTypeFather" msgid="5228034687082050725">"Отец"</string>
+ <string name="relationTypeFriend" msgid="7313106762483391262">"Друг"</string>
+ <string name="relationTypeManager" msgid="6365677861610137895">"Руководитель"</string>
+ <string name="relationTypeMother" msgid="4578571352962758304">"Мать"</string>
+ <string name="relationTypeParent" msgid="4755635567562925226">"Родитель"</string>
+ <string name="relationTypePartner" msgid="7266490285120262781">"Партнер"</string>
+ <string name="relationTypeReferredBy" msgid="101573059844135524">"Рекомендуют:"</string>
+ <string name="relationTypeRelative" msgid="1799819930085610271">"Родственник"</string>
+ <string name="relationTypeSister" msgid="1735983554479076481">"Сестра"</string>
+ <string name="relationTypeSpouse" msgid="394136939428698117">"Супруг(а)"</string>
<string name="sipAddressTypeCustom" msgid="2473580593111590945">"Особый"</string>
<string name="sipAddressTypeHome" msgid="6093598181069359295">"Домашний"</string>
<string name="sipAddressTypeWork" msgid="6920725730797099047">"Рабочий"</string>
@@ -674,8 +662,7 @@
<string name="save_password_label" msgid="6860261758665825069">"Подтвердите"</string>
<string name="double_tap_toast" msgid="1068216937244567247">"Совет: нажмите дважды, чтобы увеличить и уменьшить масштаб."</string>
<!-- outdated translation 8940110866775097494 --> <string name="autofill_this_form" msgid="1272247532604569872">"Заполнить форму автоматически"</string>
- <!-- no translation found for autofill_address_name_separator (2504700673286691795) -->
- <skip />
+ <string name="autofill_address_name_separator" msgid="2504700673286691795">" "</string>
<!-- no translation found for autofill_address_summary_name_format (3268041054899214945) -->
<skip />
<!-- no translation found for autofill_address_summary_separator (7483307893170324129) -->
@@ -804,8 +791,7 @@
<string name="cut" msgid="3092569408438626261">"Вырезать"</string>
<string name="copy" msgid="2681946229533511987">"Копировать"</string>
<string name="paste" msgid="5629880836805036433">"Вставить"</string>
- <!-- no translation found for pasteDisabled (7259254654641456570) -->
- <skip />
+ <string name="pasteDisabled" msgid="7259254654641456570">"Текст для вставки отсутствует"</string>
<string name="copyUrl" msgid="2538211579596067402">"Копировать URL"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Выбрать текст..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Выбор текста"</string>
@@ -951,8 +937,7 @@
<string name="ime_action_send" msgid="2316166556349314424">"Отправить"</string>
<string name="ime_action_next" msgid="3138843904009813834">"Далее"</string>
<string name="ime_action_done" msgid="8971516117910934605">"Готово"</string>
- <!-- no translation found for ime_action_previous (1443550039250105948) -->
- <skip />
+ <string name="ime_action_previous" msgid="1443550039250105948">"Пред."</string>
<string name="ime_action_default" msgid="2840921885558045721">"Выполнить"</string>
<string name="dial_number_using" msgid="5789176425167573586">"Набрать номер"\n"<xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="create_contact_using" msgid="4947405226788104538">"Создать контакт"\n"с номером <xliff:g id="NUMBER">%s</xliff:g>"</string>
diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml
index 102a08d16..8ac9273 100644
--- a/core/res/res/values-sv/strings.xml
+++ b/core/res/res/values-sv/strings.xml
@@ -482,6 +482,10 @@
<string name="policydesc_wipeData" product="default" msgid="7669895333814222586">"Ta bort data från telefonen utan förvarning genom att återställa standardinställningarna"</string>
<string name="policylab_setGlobalProxy" msgid="2784828293747791446">"Ange global proxyserver"</string>
<string name="policydesc_setGlobalProxy" msgid="6387497466660154931">"Ange vilken global proxyserver som ska användas när policyn är aktiverad. Endast den första enhetsadministratören anger den faktiska globala proxyservern."</string>
+ <!-- no translation found for policylab_expirePassword (2314569545488269564) -->
+ <skip />
+ <!-- no translation found for policydesc_expirePassword (7276906351852798814) -->
+ <skip />
<string-array name="phoneTypes">
<item msgid="8901098336658710359">"Hem"</item>
<item msgid="869923650527136615">"Mobil"</item>
@@ -546,11 +550,10 @@
<string name="phoneTypeWorkPager" msgid="649938731231157056">"Personsökare, arbetet"</string>
<string name="phoneTypeAssistant" msgid="5596772636128562884">"Assistent"</string>
<string name="phoneTypeMms" msgid="7254492275502768992">"MMS"</string>
- <!-- no translation found for eventTypeCustom (7837586198458073404) -->
- <skip />
+ <string name="eventTypeCustom" msgid="7837586198458073404">"Anpassad"</string>
<string name="eventTypeBirthday" msgid="2813379844211390740">"Födelsedag"</string>
<string name="eventTypeAnniversary" msgid="3876779744518284000">"Högtidsdag"</string>
- <!-- outdated translation 5834288791948564594 --> <string name="eventTypeOther" msgid="7388178939010143077">"Händelse"</string>
+ <string name="eventTypeOther" msgid="7388178939010143077">"Övrigt"</string>
<string name="emailTypeCustom" msgid="8525960257804213846">"Anpassad"</string>
<string name="emailTypeHome" msgid="449227236140433919">"Hem"</string>
<string name="emailTypeWork" msgid="3548058059601149973">"Arbete"</string>
@@ -577,36 +580,21 @@
<string name="orgTypeWork" msgid="29268870505363872">"Arbete"</string>
<string name="orgTypeOther" msgid="3951781131570124082">"Övrigt"</string>
<string name="orgTypeCustom" msgid="225523415372088322">"Anpassad"</string>
- <!-- no translation found for relationTypeCustom (3542403679827297300) -->
- <skip />
- <!-- no translation found for relationTypeAssistant (6274334825195379076) -->
- <skip />
- <!-- no translation found for relationTypeBrother (8757913506784067713) -->
- <skip />
- <!-- no translation found for relationTypeChild (1890746277276881626) -->
- <skip />
- <!-- no translation found for relationTypeDomesticPartner (6904807112121122133) -->
- <skip />
- <!-- no translation found for relationTypeFather (5228034687082050725) -->
- <skip />
- <!-- no translation found for relationTypeFriend (7313106762483391262) -->
- <skip />
- <!-- no translation found for relationTypeManager (6365677861610137895) -->
- <skip />
- <!-- no translation found for relationTypeMother (4578571352962758304) -->
- <skip />
- <!-- no translation found for relationTypeParent (4755635567562925226) -->
- <skip />
- <!-- no translation found for relationTypePartner (7266490285120262781) -->
- <skip />
- <!-- no translation found for relationTypeReferredBy (101573059844135524) -->
- <skip />
- <!-- no translation found for relationTypeRelative (1799819930085610271) -->
- <skip />
- <!-- no translation found for relationTypeSister (1735983554479076481) -->
- <skip />
- <!-- no translation found for relationTypeSpouse (394136939428698117) -->
- <skip />
+ <string name="relationTypeCustom" msgid="3542403679827297300">"Anpassad"</string>
+ <string name="relationTypeAssistant" msgid="6274334825195379076">"Assistent"</string>
+ <string name="relationTypeBrother" msgid="8757913506784067713">"Bror"</string>
+ <string name="relationTypeChild" msgid="1890746277276881626">"Barn"</string>
+ <string name="relationTypeDomesticPartner" msgid="6904807112121122133">"Sambo"</string>
+ <string name="relationTypeFather" msgid="5228034687082050725">"Pappa"</string>
+ <string name="relationTypeFriend" msgid="7313106762483391262">"Vän"</string>
+ <string name="relationTypeManager" msgid="6365677861610137895">"Chef"</string>
+ <string name="relationTypeMother" msgid="4578571352962758304">"Mamma"</string>
+ <string name="relationTypeParent" msgid="4755635567562925226">"Förälder"</string>
+ <string name="relationTypePartner" msgid="7266490285120262781">"Partner"</string>
+ <string name="relationTypeReferredBy" msgid="101573059844135524">"Rekommenderad av"</string>
+ <string name="relationTypeRelative" msgid="1799819930085610271">"Släkting"</string>
+ <string name="relationTypeSister" msgid="1735983554479076481">"Syster"</string>
+ <string name="relationTypeSpouse" msgid="394136939428698117">"Make/maka"</string>
<string name="sipAddressTypeCustom" msgid="2473580593111590945">"Anpassad"</string>
<string name="sipAddressTypeHome" msgid="6093598181069359295">"Startsida"</string>
<string name="sipAddressTypeWork" msgid="6920725730797099047">"Arbete"</string>
@@ -674,8 +662,7 @@
<string name="save_password_label" msgid="6860261758665825069">"Bekräfta"</string>
<string name="double_tap_toast" msgid="1068216937244567247">"Tips! Dubbelklicka om du vill zooma in eller ut."</string>
<!-- outdated translation 8940110866775097494 --> <string name="autofill_this_form" msgid="1272247532604569872">"Autofyll formuläret"</string>
- <!-- no translation found for autofill_address_name_separator (2504700673286691795) -->
- <skip />
+ <string name="autofill_address_name_separator" msgid="2504700673286691795">" "</string>
<!-- no translation found for autofill_address_summary_name_format (3268041054899214945) -->
<skip />
<!-- no translation found for autofill_address_summary_separator (7483307893170324129) -->
@@ -804,8 +791,7 @@
<string name="cut" msgid="3092569408438626261">"Klipp ut"</string>
<string name="copy" msgid="2681946229533511987">"Kopiera"</string>
<string name="paste" msgid="5629880836805036433">"Klistra in"</string>
- <!-- no translation found for pasteDisabled (7259254654641456570) -->
- <skip />
+ <string name="pasteDisabled" msgid="7259254654641456570">"Inget att klistra in"</string>
<string name="copyUrl" msgid="2538211579596067402">"Kopiera webbadress"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Markera text..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Textmarkering"</string>
@@ -951,8 +937,7 @@
<string name="ime_action_send" msgid="2316166556349314424">"Skicka"</string>
<string name="ime_action_next" msgid="3138843904009813834">"Nästa"</string>
<string name="ime_action_done" msgid="8971516117910934605">"Färdig"</string>
- <!-- no translation found for ime_action_previous (1443550039250105948) -->
- <skip />
+ <string name="ime_action_previous" msgid="1443550039250105948">"Föreg."</string>
<string name="ime_action_default" msgid="2840921885558045721">"Utför"</string>
<string name="dial_number_using" msgid="5789176425167573586">"Slå nummer "\n"med <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="create_contact_using" msgid="4947405226788104538">"Skapa kontakt"\n"med <xliff:g id="NUMBER">%s</xliff:g>"</string>
diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml
index a6bfbf6..90dd16d 100644
--- a/core/res/res/values-tr/strings.xml
+++ b/core/res/res/values-tr/strings.xml
@@ -482,6 +482,10 @@
<string name="policydesc_wipeData" product="default" msgid="7669895333814222586">"Fabrika verilerine sıfırlama işlemi gerçekleştirerek telefondaki verileri uyarıda bulunmadan silin"</string>
<string name="policylab_setGlobalProxy" msgid="2784828293747791446">"Cihaz genelinde geçerli proxy\'i ayarla"</string>
<string name="policydesc_setGlobalProxy" msgid="6387497466660154931">"Politika etkin olduğunda kullanılacak cihaz genelinde geçerli proxy\'yi ayarlayın. Etkin genel proxy\'yi yalnızca ilk cihaz yöneticisi ayarlar."</string>
+ <!-- no translation found for policylab_expirePassword (2314569545488269564) -->
+ <skip />
+ <!-- no translation found for policydesc_expirePassword (7276906351852798814) -->
+ <skip />
<string-array name="phoneTypes">
<item msgid="8901098336658710359">"Ev"</item>
<item msgid="869923650527136615">"Mobil"</item>
@@ -546,11 +550,10 @@
<string name="phoneTypeWorkPager" msgid="649938731231157056">"İş Yeri Çağrı Cihazı"</string>
<string name="phoneTypeAssistant" msgid="5596772636128562884">"Yardımcı"</string>
<string name="phoneTypeMms" msgid="7254492275502768992">"MMS"</string>
- <!-- no translation found for eventTypeCustom (7837586198458073404) -->
- <skip />
+ <string name="eventTypeCustom" msgid="7837586198458073404">"Özel"</string>
<string name="eventTypeBirthday" msgid="2813379844211390740">"Doğum günü"</string>
<string name="eventTypeAnniversary" msgid="3876779744518284000">"Yıldönümü"</string>
- <!-- outdated translation 5834288791948564594 --> <string name="eventTypeOther" msgid="7388178939010143077">"Etkinlik"</string>
+ <string name="eventTypeOther" msgid="7388178939010143077">"Diğer"</string>
<string name="emailTypeCustom" msgid="8525960257804213846">"Özel"</string>
<string name="emailTypeHome" msgid="449227236140433919">"Ev"</string>
<string name="emailTypeWork" msgid="3548058059601149973">"İş"</string>
@@ -577,36 +580,21 @@
<string name="orgTypeWork" msgid="29268870505363872">"İş"</string>
<string name="orgTypeOther" msgid="3951781131570124082">"Diğer"</string>
<string name="orgTypeCustom" msgid="225523415372088322">"Özel"</string>
- <!-- no translation found for relationTypeCustom (3542403679827297300) -->
- <skip />
- <!-- no translation found for relationTypeAssistant (6274334825195379076) -->
- <skip />
- <!-- no translation found for relationTypeBrother (8757913506784067713) -->
- <skip />
- <!-- no translation found for relationTypeChild (1890746277276881626) -->
- <skip />
- <!-- no translation found for relationTypeDomesticPartner (6904807112121122133) -->
- <skip />
- <!-- no translation found for relationTypeFather (5228034687082050725) -->
- <skip />
- <!-- no translation found for relationTypeFriend (7313106762483391262) -->
- <skip />
- <!-- no translation found for relationTypeManager (6365677861610137895) -->
- <skip />
- <!-- no translation found for relationTypeMother (4578571352962758304) -->
- <skip />
- <!-- no translation found for relationTypeParent (4755635567562925226) -->
- <skip />
- <!-- no translation found for relationTypePartner (7266490285120262781) -->
- <skip />
- <!-- no translation found for relationTypeReferredBy (101573059844135524) -->
- <skip />
- <!-- no translation found for relationTypeRelative (1799819930085610271) -->
- <skip />
- <!-- no translation found for relationTypeSister (1735983554479076481) -->
- <skip />
- <!-- no translation found for relationTypeSpouse (394136939428698117) -->
- <skip />
+ <string name="relationTypeCustom" msgid="3542403679827297300">"Özel"</string>
+ <string name="relationTypeAssistant" msgid="6274334825195379076">"Yardımcı"</string>
+ <string name="relationTypeBrother" msgid="8757913506784067713">"Erkek Kardeş"</string>
+ <string name="relationTypeChild" msgid="1890746277276881626">"Çocuk"</string>
+ <string name="relationTypeDomesticPartner" msgid="6904807112121122133">"Hayat Arkadaşı"</string>
+ <string name="relationTypeFather" msgid="5228034687082050725">"Baba"</string>
+ <string name="relationTypeFriend" msgid="7313106762483391262">"Arkadaş"</string>
+ <string name="relationTypeManager" msgid="6365677861610137895">"Yönetici"</string>
+ <string name="relationTypeMother" msgid="4578571352962758304">"Anne"</string>
+ <string name="relationTypeParent" msgid="4755635567562925226">"Ebeveyn"</string>
+ <string name="relationTypePartner" msgid="7266490285120262781">"Hayat Arkadaşı"</string>
+ <string name="relationTypeReferredBy" msgid="101573059844135524">"Öneren"</string>
+ <string name="relationTypeRelative" msgid="1799819930085610271">"Akraba"</string>
+ <string name="relationTypeSister" msgid="1735983554479076481">"Kız Kardeş"</string>
+ <string name="relationTypeSpouse" msgid="394136939428698117">"Eş"</string>
<string name="sipAddressTypeCustom" msgid="2473580593111590945">"Özel"</string>
<string name="sipAddressTypeHome" msgid="6093598181069359295">"Ev"</string>
<string name="sipAddressTypeWork" msgid="6920725730797099047">"İş"</string>
@@ -674,8 +662,7 @@
<string name="save_password_label" msgid="6860261758665825069">"Onayla"</string>
<string name="double_tap_toast" msgid="1068216937244567247">"İpucu: Yakınlaştırmak ve uzaklaştırmak için iki kez hafifçe vurun."</string>
<!-- outdated translation 8940110866775097494 --> <string name="autofill_this_form" msgid="1272247532604569872">"Bu formu otomatik doldur"</string>
- <!-- no translation found for autofill_address_name_separator (2504700673286691795) -->
- <skip />
+ <string name="autofill_address_name_separator" msgid="2504700673286691795">" "</string>
<!-- no translation found for autofill_address_summary_name_format (3268041054899214945) -->
<skip />
<!-- no translation found for autofill_address_summary_separator (7483307893170324129) -->
@@ -804,8 +791,7 @@
<string name="cut" msgid="3092569408438626261">"Kes"</string>
<string name="copy" msgid="2681946229533511987">"Kopyala"</string>
<string name="paste" msgid="5629880836805036433">"Yapıştır"</string>
- <!-- no translation found for pasteDisabled (7259254654641456570) -->
- <skip />
+ <string name="pasteDisabled" msgid="7259254654641456570">"Yapştrlck bir şy yok"</string>
<string name="copyUrl" msgid="2538211579596067402">"URL\'yi kopyala"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Metin seç..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Metin seçimi"</string>
@@ -951,8 +937,7 @@
<string name="ime_action_send" msgid="2316166556349314424">"Gönder"</string>
<string name="ime_action_next" msgid="3138843904009813834">"İleri"</string>
<string name="ime_action_done" msgid="8971516117910934605">"Bitti"</string>
- <!-- no translation found for ime_action_previous (1443550039250105948) -->
- <skip />
+ <string name="ime_action_previous" msgid="1443550039250105948">"Önceki"</string>
<string name="ime_action_default" msgid="2840921885558045721">"Çalıştır"</string>
<string name="dial_number_using" msgid="5789176425167573586">"Numarayı çevir:"\n"<xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="create_contact_using" msgid="4947405226788104538">"<xliff:g id="NUMBER">%s</xliff:g>"\n" ile kişi oluştur"</string>
diff --git a/core/res/res/values-xlarge/styles.xml b/core/res/res/values-xlarge/styles.xml
index 4692656..316861e 100644
--- a/core/res/res/values-xlarge/styles.xml
+++ b/core/res/res/values-xlarge/styles.xml
@@ -30,9 +30,9 @@
</style>
<style name="TextAppearance.StatusBar.EventContent">
<item name="android:textColor">?android:attr/textColorPrimary</item>
+ <item name="android:textSize">16sp</item>
</style>
<style name="TextAppearance.StatusBar.EventContent.Title">
- <item name="android:textSize">18sp</item>
<item name="android:textStyle">bold</item>
</style>
</resources>
diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml
index 4fd5161..9dc64a4 100644
--- a/core/res/res/values-zh-rCN/strings.xml
+++ b/core/res/res/values-zh-rCN/strings.xml
@@ -482,6 +482,10 @@
<string name="policydesc_wipeData" product="default" msgid="7669895333814222586">"恢复出厂设置时,将擦除手机上的数据而不发送警告"</string>
<string name="policylab_setGlobalProxy" msgid="2784828293747791446">"设置设备全局代理"</string>
<string name="policydesc_setGlobalProxy" msgid="6387497466660154931">"请设置在启用政策的情况下要使用的设备全局代理。只有第一设备管理员才可设置有效的全局代理。"</string>
+ <!-- no translation found for policylab_expirePassword (2314569545488269564) -->
+ <skip />
+ <!-- no translation found for policydesc_expirePassword (7276906351852798814) -->
+ <skip />
<string-array name="phoneTypes">
<item msgid="8901098336658710359">"住宅"</item>
<item msgid="869923650527136615">"手机"</item>
@@ -546,11 +550,10 @@
<string name="phoneTypeWorkPager" msgid="649938731231157056">"单位寻呼机"</string>
<string name="phoneTypeAssistant" msgid="5596772636128562884">"助理"</string>
<string name="phoneTypeMms" msgid="7254492275502768992">"彩信"</string>
- <!-- no translation found for eventTypeCustom (7837586198458073404) -->
- <skip />
+ <string name="eventTypeCustom" msgid="7837586198458073404">"自定义"</string>
<string name="eventTypeBirthday" msgid="2813379844211390740">"生日"</string>
<string name="eventTypeAnniversary" msgid="3876779744518284000">"周年纪念"</string>
- <!-- outdated translation 5834288791948564594 --> <string name="eventTypeOther" msgid="7388178939010143077">"活动"</string>
+ <string name="eventTypeOther" msgid="7388178939010143077">"其他"</string>
<string name="emailTypeCustom" msgid="8525960257804213846">"自定义"</string>
<string name="emailTypeHome" msgid="449227236140433919">"家用"</string>
<string name="emailTypeWork" msgid="3548058059601149973">"单位"</string>
@@ -577,36 +580,21 @@
<string name="orgTypeWork" msgid="29268870505363872">"公司"</string>
<string name="orgTypeOther" msgid="3951781131570124082">"其他"</string>
<string name="orgTypeCustom" msgid="225523415372088322">"自定义"</string>
- <!-- no translation found for relationTypeCustom (3542403679827297300) -->
- <skip />
- <!-- no translation found for relationTypeAssistant (6274334825195379076) -->
- <skip />
- <!-- no translation found for relationTypeBrother (8757913506784067713) -->
- <skip />
- <!-- no translation found for relationTypeChild (1890746277276881626) -->
- <skip />
- <!-- no translation found for relationTypeDomesticPartner (6904807112121122133) -->
- <skip />
- <!-- no translation found for relationTypeFather (5228034687082050725) -->
- <skip />
- <!-- no translation found for relationTypeFriend (7313106762483391262) -->
- <skip />
- <!-- no translation found for relationTypeManager (6365677861610137895) -->
- <skip />
- <!-- no translation found for relationTypeMother (4578571352962758304) -->
- <skip />
- <!-- no translation found for relationTypeParent (4755635567562925226) -->
- <skip />
- <!-- no translation found for relationTypePartner (7266490285120262781) -->
- <skip />
- <!-- no translation found for relationTypeReferredBy (101573059844135524) -->
- <skip />
- <!-- no translation found for relationTypeRelative (1799819930085610271) -->
- <skip />
- <!-- no translation found for relationTypeSister (1735983554479076481) -->
- <skip />
- <!-- no translation found for relationTypeSpouse (394136939428698117) -->
- <skip />
+ <string name="relationTypeCustom" msgid="3542403679827297300">"自定义"</string>
+ <string name="relationTypeAssistant" msgid="6274334825195379076">"助理"</string>
+ <string name="relationTypeBrother" msgid="8757913506784067713">"兄弟"</string>
+ <string name="relationTypeChild" msgid="1890746277276881626">"子女"</string>
+ <string name="relationTypeDomesticPartner" msgid="6904807112121122133">"同居伴侣"</string>
+ <string name="relationTypeFather" msgid="5228034687082050725">"父亲"</string>
+ <string name="relationTypeFriend" msgid="7313106762483391262">"朋友"</string>
+ <string name="relationTypeManager" msgid="6365677861610137895">"经理"</string>
+ <string name="relationTypeMother" msgid="4578571352962758304">"母亲"</string>
+ <string name="relationTypeParent" msgid="4755635567562925226">"父母"</string>
+ <string name="relationTypePartner" msgid="7266490285120262781">"合作伙伴"</string>
+ <string name="relationTypeReferredBy" msgid="101573059844135524">"介绍人"</string>
+ <string name="relationTypeRelative" msgid="1799819930085610271">"亲属"</string>
+ <string name="relationTypeSister" msgid="1735983554479076481">"姐妹"</string>
+ <string name="relationTypeSpouse" msgid="394136939428698117">"配偶"</string>
<string name="sipAddressTypeCustom" msgid="2473580593111590945">"自定义"</string>
<string name="sipAddressTypeHome" msgid="6093598181069359295">"住宅"</string>
<string name="sipAddressTypeWork" msgid="6920725730797099047">"单位"</string>
@@ -674,8 +662,7 @@
<string name="save_password_label" msgid="6860261758665825069">"确认"</string>
<string name="double_tap_toast" msgid="1068216937244567247">"提示:点按两次可放大和缩小。"</string>
<!-- outdated translation 8940110866775097494 --> <string name="autofill_this_form" msgid="1272247532604569872">"自动填充此表单"</string>
- <!-- no translation found for autofill_address_name_separator (2504700673286691795) -->
- <skip />
+ <string name="autofill_address_name_separator" msgid="2504700673286691795">" "</string>
<!-- no translation found for autofill_address_summary_name_format (3268041054899214945) -->
<skip />
<!-- no translation found for autofill_address_summary_separator (7483307893170324129) -->
@@ -804,8 +791,7 @@
<string name="cut" msgid="3092569408438626261">"剪切"</string>
<string name="copy" msgid="2681946229533511987">"复制"</string>
<string name="paste" msgid="5629880836805036433">"粘贴"</string>
- <!-- no translation found for pasteDisabled (7259254654641456570) -->
- <skip />
+ <string name="pasteDisabled" msgid="7259254654641456570">"剪贴板无内容"</string>
<string name="copyUrl" msgid="2538211579596067402">"复制网址"</string>
<string name="selectTextMode" msgid="6738556348861347240">"选择文字..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"文字选择"</string>
@@ -951,8 +937,7 @@
<string name="ime_action_send" msgid="2316166556349314424">"发送"</string>
<string name="ime_action_next" msgid="3138843904009813834">"下一步"</string>
<string name="ime_action_done" msgid="8971516117910934605">"完成"</string>
- <!-- no translation found for ime_action_previous (1443550039250105948) -->
- <skip />
+ <string name="ime_action_previous" msgid="1443550039250105948">"上一页"</string>
<string name="ime_action_default" msgid="2840921885558045721">"执行"</string>
<string name="dial_number_using" msgid="5789176425167573586">"拨打电话"\n"<xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="create_contact_using" msgid="4947405226788104538">"创建电话号码为"\n"<xliff:g id="NUMBER">%s</xliff:g> 的联系人"</string>
diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml
index 6d5c4d4..37f9d58 100644
--- a/core/res/res/values-zh-rTW/strings.xml
+++ b/core/res/res/values-zh-rTW/strings.xml
@@ -482,6 +482,10 @@
<string name="policydesc_wipeData" product="default" msgid="7669895333814222586">"執行重設為原廠設定時,系統會直接清除手機資料而不提出警告"</string>
<string name="policylab_setGlobalProxy" msgid="2784828293747791446">"設定裝置全域 Proxy"</string>
<string name="policydesc_setGlobalProxy" msgid="6387497466660154931">"設定政策啟用時所要使用的裝置全域 Proxy,只有第一個裝置管理員所設定的全域 Proxy 具有效力。"</string>
+ <!-- no translation found for policylab_expirePassword (2314569545488269564) -->
+ <skip />
+ <!-- no translation found for policydesc_expirePassword (7276906351852798814) -->
+ <skip />
<string-array name="phoneTypes">
<item msgid="8901098336658710359">"住家電話"</item>
<item msgid="869923650527136615">"行動電話"</item>
@@ -546,11 +550,10 @@
<string name="phoneTypeWorkPager" msgid="649938731231157056">"公司呼叫器"</string>
<string name="phoneTypeAssistant" msgid="5596772636128562884">"助理"</string>
<string name="phoneTypeMms" msgid="7254492275502768992">"MMS"</string>
- <!-- no translation found for eventTypeCustom (7837586198458073404) -->
- <skip />
+ <string name="eventTypeCustom" msgid="7837586198458073404">"自訂"</string>
<string name="eventTypeBirthday" msgid="2813379844211390740">"生日"</string>
<string name="eventTypeAnniversary" msgid="3876779744518284000">"週年紀念日"</string>
- <!-- outdated translation 5834288791948564594 --> <string name="eventTypeOther" msgid="7388178939010143077">"活動"</string>
+ <string name="eventTypeOther" msgid="7388178939010143077">"其他"</string>
<string name="emailTypeCustom" msgid="8525960257804213846">"自訂"</string>
<string name="emailTypeHome" msgid="449227236140433919">"住家"</string>
<string name="emailTypeWork" msgid="3548058059601149973">"公司"</string>
@@ -577,36 +580,21 @@
<string name="orgTypeWork" msgid="29268870505363872">"公司"</string>
<string name="orgTypeOther" msgid="3951781131570124082">"其他"</string>
<string name="orgTypeCustom" msgid="225523415372088322">"自訂"</string>
- <!-- no translation found for relationTypeCustom (3542403679827297300) -->
- <skip />
- <!-- no translation found for relationTypeAssistant (6274334825195379076) -->
- <skip />
- <!-- no translation found for relationTypeBrother (8757913506784067713) -->
- <skip />
- <!-- no translation found for relationTypeChild (1890746277276881626) -->
- <skip />
- <!-- no translation found for relationTypeDomesticPartner (6904807112121122133) -->
- <skip />
- <!-- no translation found for relationTypeFather (5228034687082050725) -->
- <skip />
- <!-- no translation found for relationTypeFriend (7313106762483391262) -->
- <skip />
- <!-- no translation found for relationTypeManager (6365677861610137895) -->
- <skip />
- <!-- no translation found for relationTypeMother (4578571352962758304) -->
- <skip />
- <!-- no translation found for relationTypeParent (4755635567562925226) -->
- <skip />
- <!-- no translation found for relationTypePartner (7266490285120262781) -->
- <skip />
- <!-- no translation found for relationTypeReferredBy (101573059844135524) -->
- <skip />
- <!-- no translation found for relationTypeRelative (1799819930085610271) -->
- <skip />
- <!-- no translation found for relationTypeSister (1735983554479076481) -->
- <skip />
- <!-- no translation found for relationTypeSpouse (394136939428698117) -->
- <skip />
+ <string name="relationTypeCustom" msgid="3542403679827297300">"自訂"</string>
+ <string name="relationTypeAssistant" msgid="6274334825195379076">"助理"</string>
+ <string name="relationTypeBrother" msgid="8757913506784067713">"兄弟"</string>
+ <string name="relationTypeChild" msgid="1890746277276881626">"子女"</string>
+ <string name="relationTypeDomesticPartner" msgid="6904807112121122133">"同居人"</string>
+ <string name="relationTypeFather" msgid="5228034687082050725">"父親"</string>
+ <string name="relationTypeFriend" msgid="7313106762483391262">"好友"</string>
+ <string name="relationTypeManager" msgid="6365677861610137895">"經理"</string>
+ <string name="relationTypeMother" msgid="4578571352962758304">"母親"</string>
+ <string name="relationTypeParent" msgid="4755635567562925226">"父母"</string>
+ <string name="relationTypePartner" msgid="7266490285120262781">"夥伴"</string>
+ <string name="relationTypeReferredBy" msgid="101573059844135524">"介紹人"</string>
+ <string name="relationTypeRelative" msgid="1799819930085610271">"親戚"</string>
+ <string name="relationTypeSister" msgid="1735983554479076481">"姊妹"</string>
+ <string name="relationTypeSpouse" msgid="394136939428698117">"配偶"</string>
<string name="sipAddressTypeCustom" msgid="2473580593111590945">"自訂"</string>
<string name="sipAddressTypeHome" msgid="6093598181069359295">"住家"</string>
<string name="sipAddressTypeWork" msgid="6920725730797099047">"公司"</string>
@@ -674,8 +662,7 @@
<string name="save_password_label" msgid="6860261758665825069">"確認"</string>
<string name="double_tap_toast" msgid="1068216937244567247">"提示:輕按兩下可放大縮小。"</string>
<!-- outdated translation 8940110866775097494 --> <string name="autofill_this_form" msgid="1272247532604569872">"自動填寫此表單"</string>
- <!-- no translation found for autofill_address_name_separator (2504700673286691795) -->
- <skip />
+ <string name="autofill_address_name_separator" msgid="2504700673286691795">" "</string>
<!-- no translation found for autofill_address_summary_name_format (3268041054899214945) -->
<skip />
<!-- no translation found for autofill_address_summary_separator (7483307893170324129) -->
@@ -804,8 +791,7 @@
<string name="cut" msgid="3092569408438626261">"剪下"</string>
<string name="copy" msgid="2681946229533511987">"複製"</string>
<string name="paste" msgid="5629880836805036433">"貼上"</string>
- <!-- no translation found for pasteDisabled (7259254654641456570) -->
- <skip />
+ <string name="pasteDisabled" msgid="7259254654641456570">"沒有可貼上的內容"</string>
<string name="copyUrl" msgid="2538211579596067402">"複製網址"</string>
<string name="selectTextMode" msgid="6738556348861347240">"選取文字..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"選取文字"</string>
@@ -951,8 +937,7 @@
<string name="ime_action_send" msgid="2316166556349314424">"傳送"</string>
<string name="ime_action_next" msgid="3138843904009813834">"下一頁"</string>
<string name="ime_action_done" msgid="8971516117910934605">"完成"</string>
- <!-- no translation found for ime_action_previous (1443550039250105948) -->
- <skip />
+ <string name="ime_action_previous" msgid="1443550039250105948">"上一步"</string>
<string name="ime_action_default" msgid="2840921885558045721">"執行"</string>
<string name="dial_number_using" msgid="5789176425167573586">"使用 <xliff:g id="NUMBER">%s</xliff:g>"\n"撥號"</string>
<string name="create_contact_using" msgid="4947405226788104538">"建立手機號碼為 <xliff:g id="NUMBER">%s</xliff:g>"\n"的聯絡人"</string>
diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml
index 55b3258..651bfea 100755
--- a/core/res/res/values/attrs.xml
+++ b/core/res/res/values/attrs.xml
@@ -49,7 +49,6 @@
window is floating. -->
<attr name="backgroundDimEnabled" format="boolean" />
-
<!-- =========== -->
<!-- Text styles -->
<!-- =========== -->
@@ -608,6 +607,9 @@
<!-- SearchView dropdown background -->
<attr name="searchDropdownBackground" format="reference" />
+
+ <!-- Specifies a drawable to use for the 'home as up' indicator. -->
+ <attr name="homeAsUpIndicator" format="reference" />
</declare-styleable>
<!-- **************************************************************** -->
@@ -2940,6 +2942,14 @@
<attr name="bottom" format="dimension" />
</declare-styleable>
+ <declare-styleable name="LayerDrawable">
+ <attr name="opacity">
+ <enum name="opaque" value="-1" />
+ <enum name="transparent" value="-2" />
+ <enum name="translucent" value="-3" />
+ </attr>
+ </declare-styleable>
+
<declare-styleable name="LayerDrawableItem">
<attr name="left" />
<attr name="top" />
@@ -3854,6 +3864,8 @@
<!-- Base attributes available to Preference. -->
<declare-styleable name="Preference">
+ <!-- The optional icon for the preference -->
+ <attr name="icon" />
<!-- The key to store the Preference value. -->
<attr name="key" format="string" />
<!-- The title for the Preference in a PreferenceActivity screen. -->
@@ -4401,8 +4413,8 @@
<attr name="customNavigationLayout" format="reference" />
<!-- Specifies a fixed height. -->
<attr name="height" />
- <!-- Specifies a drawable to use for the 'home as up' indicator. -->
- <attr name="homeAsUpIndicator" format="reference" />
+ <!-- Specifies a layout to use for the "home" section of the action bar. -->
+ <attr name="homeLayout" format="reference" />
<!-- Specifies a style resource to use for an embedded progress bar. -->
<attr name="progressBarStyle" />
<!-- Specifies a style resource to use for an indeterminate progress spinner. -->
diff --git a/core/res/res/values/ids.xml b/core/res/res/values/ids.xml
index b7f177f..7a0fede 100644
--- a/core/res/res/values/ids.xml
+++ b/core/res/res/values/ids.xml
@@ -72,4 +72,5 @@
<item type="id" name="home" />
<item type="id" name="fillInIntent" />
<item type="id" name="rowTypeId" />
+ <item type="id" name="up" />
</resources>
diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml
index ad4e7a2..e319fa0 100644
--- a/core/res/res/values/public.xml
+++ b/core/res/res/values/public.xml
@@ -1377,6 +1377,8 @@
<public type="attr" name="animationResolution" />
<public type="attr" name="state_accelerated" />
<public type="attr" name="baseline" />
+ <public type="attr" name="homeLayout" />
+ <public type="attr" name="opacity" />
<public type="anim" name="animator_fade_in" />
<public type="anim" name="animator_fade_out" />
@@ -1394,6 +1396,7 @@
<!-- Context menu ID for the "Select text..." menu item to switch to text
selection context mode in text views. -->
<public type="id" name="selectTextMode" />
+ <public type="id" name="up" />
<!-- Standard content view for a {@link android.app.ListFragment}.
If you are implementing a subclass of ListFragment with your
@@ -1447,4 +1450,7 @@
<public type="style" name="Theme.Holo.Light.DialogWhenLarge" />
<public type="string" name="selectTextMode" />
+
+ <public type="style" name="Theme.Holo.Wallpaper" />
+ <public type="style" name="Theme.Holo.Wallpaper.NoTitleBar" />
</resources>
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index 64cd00a..c8a5de8 100755
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -1806,7 +1806,7 @@
<!-- Do not translate. WebView User Agent string -->
<string name="web_user_agent" translatable="false">Mozilla/5.0 (Linux; U; <xliff:g id="x">Android %s</xliff:g>)
- AppleWebKit/534.11 (KHTML, like Gecko) Version/4.0 <xliff:g id="mobile">%s</xliff:g>Safari/534.11</string>
+ AppleWebKit/534.12 (KHTML, like Gecko) Version/4.0 <xliff:g id="mobile">%s</xliff:g>Safari/534.12</string>
<!-- Do not translate. WebView User Agent targeted content -->
<string name="web_user_agent_target_content" translatable="false">"Mobile "</string>
diff --git a/core/res/res/values/styles.xml b/core/res/res/values/styles.xml
index dc67f45..457ba0c 100644
--- a/core/res/res/values/styles.xml
+++ b/core/res/res/values/styles.xml
@@ -917,6 +917,7 @@
<item name="android:subtitleTextStyle">@android:style/TextAppearance.Widget.ActionBar.Subtitle</item>
<item name="android:progressBarStyle">@android:style/Widget.ProgressBar.Horizontal</item>
<item name="android:indeterminateProgressStyle">@android:style/Widget.ProgressBar.Small</item>
+ <item name="android:homeLayout">@layout/action_bar_home</item>
</style>
<style name="Widget.ActionMode">
@@ -1508,6 +1509,8 @@
<style name="Widget.Holo.ActionButton.Overflow">
<item name="android:src">@android:drawable/ic_menu_moreoverflow_holo_dark</item>
<item name="android:background">?android:attr/selectableItemBackground</item>
+ <item name="android:paddingLeft">16dip</item>
+ <item name="android:paddingRight">16dip</item>
</style>
<style name="Widget.Holo.ActionButton.TextButton" parent="Widget.Holo.ButtonBar.Button">
@@ -1540,7 +1543,6 @@
<item name="android:subtitleTextStyle">@android:style/TextAppearance.Holo.Widget.ActionBar.Subtitle</item>
<item name="android:background">@null</item>
<item name="android:divider">?android:attr/dividerVertical</item>
- <item name="android:homeAsUpIndicator">@android:drawable/ic_ab_back_holo_dark</item>
<item name="android:progressBarStyle">@android:style/Widget.Holo.ProgressBar.Horizontal</item>
<item name="android:indeterminateProgressStyle">@android:style/Widget.Holo.ProgressBar</item>
<item name="android:progressBarPadding">32dip</item>
@@ -1773,6 +1775,8 @@
<style name="Widget.Holo.Light.ActionButton.Overflow">
<item name="android:src">@android:drawable/ic_menu_moreoverflow_holo_light</item>
<item name="android:background">?android:attr/selectableItemBackground</item>
+ <item name="android:paddingLeft">16dip</item>
+ <item name="android:paddingRight">16dip</item>
</style>
<style name="Widget.Holo.Light.ActionBarView_TabView" parent="Widget.ActionBarView_TabView">
diff --git a/core/res/res/values/themes.xml b/core/res/res/values/themes.xml
index dd7c8e48..b5dcf05 100644
--- a/core/res/res/values/themes.xml
+++ b/core/res/res/values/themes.xml
@@ -367,7 +367,7 @@
</style>
<!-- Default theme for windows that want to have the user's selected
- wallpaper appear behind them. -->
+ wallpaper appear behind them. -->
<style name="Theme.Wallpaper">
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:colorBackgroundCacheHint">@null</item>
@@ -706,6 +706,7 @@
<item name="groupButtonBackground">@android:drawable/group_button_background_holo_dark</item>
<item name="selectableItemBackground">@android:drawable/item_background_holo_dark</item>
+ <item name="homeAsUpIndicator">@android:drawable/ic_ab_back_holo_dark</item>
<!-- List attributes -->
<item name="listPreferredItemHeight">64dip</item>
@@ -942,6 +943,7 @@
<item name="groupButtonBackground">@android:drawable/group_button_background_holo_light</item>
<item name="selectableItemBackground">@android:drawable/item_background_holo_light</item>
+ <item name="homeAsUpIndicator">@android:drawable/ic_ab_back_holo_light</item>
<!-- List attributes -->
<item name="listPreferredItemHeight">64dip</item>
@@ -1238,4 +1240,17 @@
<item name="windowContentOverlay">@null</item>
</style>
+ <!-- Default holographic (dark) for windows that want to have the user's selected
+ wallpaper appear behind them. -->
+ <style name="Theme.Holo.Wallpaper">
+ <item name="android:windowBackground">@android:color/transparent</item>
+ <item name="android:colorBackgroundCacheHint">@null</item>
+ <item name="android:windowShowWallpaper">true</item>
+ </style>
+
+ <!-- Variant of the holographic (dark) theme with no title bar -->
+ <style name="Theme.Holo.Wallpaper.NoTitleBar">
+ <item name="android:windowNoTitle">true</item>
+ </style>
+
</resources>
diff --git a/docs/html/guide/topics/manifest/manifest-element.jd b/docs/html/guide/topics/manifest/manifest-element.jd
index a35c5a1..7f21e6b 100644
--- a/docs/html/guide/topics/manifest/manifest-element.jd
+++ b/docs/html/guide/topics/manifest/manifest-element.jd
@@ -159,6 +159,9 @@
storage. However, the system will not allow the user to move the application to external storage if
this attribute is set to {@code internalOnly}, which is the default setting.</p>
+<p>Read <a href="{@docRoot}guide/appendix/install-location.html">App Install Location</a> for
+more information about using this attribute (including how to maintain backward compatibility).</p>
+
<p>Introduced in: API Level 8.</p>
@@ -173,7 +176,7 @@
<p>
<dt>see also:</dt>
-<dd><a href="{@docRoot}guide/appendix/install-location.html">App Install Location</a><br/>
+<dd>
<code><a href="{@docRoot}guide/topics/manifest/application-element.html"><application></a></code></dd>
</dl>
diff --git a/docs/html/guide/topics/manifest/uses-feature-element.jd b/docs/html/guide/topics/manifest/uses-feature-element.jd
index 45f4a66..b5b30f6 100644
--- a/docs/html/guide/topics/manifest/uses-feature-element.jd
+++ b/docs/html/guide/topics/manifest/uses-feature-element.jd
@@ -472,11 +472,11 @@
Package</strong>. Select a destination filename and path and click
<strong>OK</strong>. </li>
<li>Next, locate the <code>aapt</code> tool, if it is not already in your PATH.
-If you are using SDK Tools r7 or earlier, you can find <code>aapt</code> in the
-<code><<em>SDK</em>>/platforms/android-<<em>platform</em>>/tools/</code> directory.
+If you are using SDK Tools r8 or higher, you can find <code>aapt</code> in the
+<code><<em>SDK</em>>/platform-tools/</code> directory.
<p class="note"><strong>Note:</strong> You must use the version of
-<code>aapt</code> that is provided for the latest platform release available. If
-you do not have the latest platform release, download it using the <a
+<code>aapt</code> that is provided for the latest Platform-Tools component available. If
+you do not have the latest Platform-Tools component, download it using the <a
href="{@docRoot}sdk/adding-components.html">Android SDK and AVD Manager</a>.
</p></li>
<li>Run <code>aapt</code> using this syntax: </li>
@@ -522,6 +522,14 @@
<th>Comments</th>
</tr>
<tr>
+ <td>Audio</td>
+ <td><code>android.hardware.audio.low_latency</td>
+ <td>The application uses a low-latency audio pipeline on the device and
+is sensitive to delays or lag in sound input or output.</td>
+<td>
+</td>
+ </tr>
+ <tr>
<td>Bluetooth</td>
<td><code>android.hardware.bluetooth</td>
<td>The application uses Bluetooth radio features in the device.</td>
@@ -529,7 +537,7 @@
</td>
</tr>
<tr>
- <td rowspan="3">Camera</td>
+ <td rowspan="4">Camera</td>
<td><code>android.hardware.camera</code></td>
<td>The application uses the device's camera. If the device supports
multiple cameras, the application uses the camera that facing
@@ -539,7 +547,7 @@
<tr>
<td><code>android.hardware.camera.autofocus</code></td>
<td>Subfeature. The application uses the device camera's autofocus capability.</td>
- <td rowspan="2">If declared with the <code>"android:required="true"</code>
+ <td rowspan="3">If declared with the <code>"android:required="true"</code>
attribute, these subfeatures implicitly declare the
<code>android.hardware.camera</code> parent feature. </td>
</tr>
@@ -547,6 +555,10 @@
<td><code>android.hardware.camera.flash</code></td>
<td>Subfeature. The application uses the device camera's flash.</td>
</tr>
+<tr>
+ <td><code>android.hardware.camera.front</code></td>
+ <td>Subfeature. The application uses a front-facing camera on the device.</td>
+</tr>
<tr>
<td rowspan="3">Location</td>
@@ -568,21 +580,43 @@
<td>Subfeature. The application uses precise location coordinates obtained
from a Global Positioning System receiver on the device. </td>
</tr>
-
<tr>
- <td rowspan="4">Sensors</td>
+ <td>Microphone</td>
+ <td><code>android.hardware.microphone</code></td>
+ <td>The application uses a microphone on the device.
+ </td>
+ <td></td>
+</tr>
+<tr>
+ <td>Near Field Communications</td>
+ <td><code>android.hardware.nfc</td>
+ <td>The application uses NFC radio features in the device.</td>
+ <td></td>
+</tr>
+<tr>
+ <td rowspan="6">Sensors</td>
<td><code>android.hardware.sensor.accelerometer</code></td>
<td>The application uses motion readings from an accelerometer on the
device.</td>
<td></td>
</tr>
<tr>
+ <td><code>android.hardware.sensor.barometer</code></td>
+ <td>The application uses the device's barometer.</td>
+ <td></td>
+</tr>
+<tr>
<td><code>android.hardware.sensor.compass</code></td>
<td>The application uses directional readings from a magnetometer (compass) on
the device.</td>
<td></td>
</tr>
<tr>
+ <td><code>android.hardware.sensor.gyroscope</code></td>
+ <td>The application uses the device's gyroscope sensor.</td>
+ <td></td>
+</tr>
+<tr>
<td><code>android.hardware.sensor.light</code></td>
<td>The application uses the device's light sensor.</td>
<td></td>
@@ -593,12 +627,20 @@
<td></td>
</tr>
<tr>
- <td>Microphone</td>
- <td><code>android.hardware.microphone</code></td>
- <td>The application uses a microphone on the device.
+ <td rowspan="2">SIP/VOIP</td>
+ <td><code>android.hardware.sip</code></td>
+ <td>The application uses SIP service on the device.
</td>
<td></td>
</tr>
+<tr>
+ <td><code>android.hardware.sip.voip</code></td>
+ <td>Subfeature. The application uses SIP-based VOIP service on the device.
+ </td>
+ <td>If declared with the <code>"android:required="true"</code> attribute, this
+subfeature implicitly declares the <code>android.hardware.sip</code>
+parent feature.</td>
+</tr>
<tr>
<td rowspan="3">Telephony</td>
@@ -622,14 +664,14 @@
</tr>
<tr>
- <td rowspan="3">Touchscreen</td>
+ <td rowspan="4">Touchscreen</td>
<td><code>android.hardware.touchscreen</code></td>
<td>The application uses touchscreen capabilities on the device.</td>
<td></td>
</tr>
<tr>
<td><code>android.hardware.touchscreen.multitouch</code></td>
- <td>The application uses basic two-point multitouch capabilities on the device
+ <td>Subfeature. The application uses basic two-point multitouch capabilities on the device
screen.</td>
<td>If declared with the <code>"android:required="true"</code> attribute, this
subfeature implicitly declares the <code>android.hardware.touchscreen</code>
@@ -640,10 +682,16 @@
<td>Subfeature. The application uses advanced multipoint multitouch
capabilities on the device screen, such as for tracking two or more points fully
independently.</td>
- <td>If declared with the <code>"android:required="true"</code> attribute, this
+ <td rowspan="2">If declared with the <code>"android:required="true"</code> attribute, this
subfeature implicitly declares the
<code>android.hardware.touchscreen.multitouch</code> parent feature. </td>
</tr>
+<tr>
+ <td><code>android.hardware.touchscreen.multitouch.jazzhand</code></td>
+ <td>Subfeature. The application uses advanced multipoint multitouch
+capabilities on the device screen, for tracking up to five points fully
+independently.</td>
+</tr>
<tr>
<td>Wifi</td>
diff --git a/graphics/java/android/graphics/drawable/LayerDrawable.java b/graphics/java/android/graphics/drawable/LayerDrawable.java
index b6cce7e..09c041f 100644
--- a/graphics/java/android/graphics/drawable/LayerDrawable.java
+++ b/graphics/java/android/graphics/drawable/LayerDrawable.java
@@ -26,6 +26,7 @@
import android.graphics.PixelFormat;
import android.graphics.Rect;
import android.util.AttributeSet;
+import android.util.Slog;
import android.view.View;
import java.io.IOException;
@@ -49,6 +50,7 @@
public class LayerDrawable extends Drawable implements Drawable.Callback {
LayerState mLayerState;
+ private int mOpacityOverride = PixelFormat.UNKNOWN;
private int[] mPaddingL;
private int[] mPaddingT;
private int[] mPaddingR;
@@ -113,6 +115,13 @@
int type;
+ TypedArray a = r.obtainAttributes(attrs, com.android.internal.R.styleable.LayerDrawable);
+
+ mOpacityOverride = a.getInt(com.android.internal.R.styleable.LayerDrawable_opacity,
+ PixelFormat.UNKNOWN);
+
+ a.recycle();
+
final int innerDepth = parser.getDepth() + 1;
int depth;
while ((type = parser.next()) != XmlPullParser.END_DOCUMENT
@@ -125,7 +134,7 @@
continue;
}
- TypedArray a = r.obtainAttributes(attrs,
+ a = r.obtainAttributes(attrs,
com.android.internal.R.styleable.LayerDrawableItem);
int left = a.getDimensionPixelOffset(
@@ -391,9 +400,28 @@
array[i].mDrawable.setColorFilter(cf);
}
}
+
+ /**
+ * Sets the opacity of this drawable directly, instead of collecting the states from
+ * the layers
+ *
+ * @param opacity The opacity to use, or {@link PixelFormat#UNKNOWN PixelFormat.UNKNOWN}
+ * for the default behavior
+ *
+ * @see PixelFormat#UNKNOWN
+ * @see PixelFormat#TRANSLUCENT
+ * @see PixelFormat#TRANSPARENT
+ * @see PixelFormat#OPAQUE
+ */
+ public void setOpacity(int opacity) {
+ mOpacityOverride = opacity;
+ }
@Override
public int getOpacity() {
+ if (mOpacityOverride != PixelFormat.UNKNOWN) {
+ return mOpacityOverride;
+ }
return mLayerState.getOpacity();
}
diff --git a/graphics/java/android/renderscript/RenderScript.java b/graphics/java/android/renderscript/RenderScript.java
index 20949a4..dcf86e3 100644
--- a/graphics/java/android/renderscript/RenderScript.java
+++ b/graphics/java/android/renderscript/RenderScript.java
@@ -402,9 +402,9 @@
synchronized void nScriptCSetScript(byte[] script, int offset, int length) {
rsnScriptCSetScript(mContext, script, offset, length);
}
- native int rsnScriptCCreate(int con);
- synchronized int nScriptCCreate() {
- return rsnScriptCCreate(mContext);
+ native int rsnScriptCCreate(int con, String val);
+ synchronized int nScriptCCreate(String val) {
+ return rsnScriptCCreate(mContext, val);
}
native void rsnSamplerBegin(int con);
@@ -814,6 +814,3 @@
return 0;
}
}
-
-
-
diff --git a/graphics/java/android/renderscript/ScriptC.java b/graphics/java/android/renderscript/ScriptC.java
index 44fc5fd..64ed75b 100644
--- a/graphics/java/android/renderscript/ScriptC.java
+++ b/graphics/java/android/renderscript/ScriptC.java
@@ -75,7 +75,7 @@
rs.nScriptCBegin();
rs.nScriptCSetScript(pgm, 0, pgmLength);
- return rs.nScriptCCreate();
+ Log.v(TAG, "Create script for resource = " + resources.getResourceName(resourceID));
+ return rs.nScriptCCreate(resources.getResourceName(resourceID));
}
}
-
diff --git a/graphics/jni/android_renderscript_RenderScript.cpp b/graphics/jni/android_renderscript_RenderScript.cpp
index 8888459..1cc4386 100644
--- a/graphics/jni/android_renderscript_RenderScript.cpp
+++ b/graphics/jni/android_renderscript_RenderScript.cpp
@@ -954,10 +954,11 @@
}
static jint
-nScriptCCreate(JNIEnv *_env, jobject _this, RsContext con)
+nScriptCCreate(JNIEnv *_env, jobject _this, RsContext con, jstring resName)
{
LOG_API("nScriptCCreate, con(%p)", con);
- return (jint)rsScriptCCreate(con);
+ const char* resNameUTF = _env->GetStringUTFChars(resName, NULL);
+ return (jint)rsScriptCCreate(con, resNameUTF);
}
// ---------------------------------------------------------------------------
@@ -1346,7 +1347,7 @@
{"rsnScriptCBegin", "(I)V", (void*)nScriptCBegin },
{"rsnScriptCSetScript", "(I[BII)V", (void*)nScriptCSetScript },
-{"rsnScriptCCreate", "(I)I", (void*)nScriptCCreate },
+{"rsnScriptCCreate", "(ILjava/lang/String;)I", (void*)nScriptCCreate },
{"rsnProgramStoreBegin", "(III)V", (void*)nProgramStoreBegin },
{"rsnProgramStoreDepthFunc", "(II)V", (void*)nProgramStoreDepthFunc },
diff --git a/include/media/AudioSystem.h b/include/media/AudioSystem.h
index cce2400..1e29d82 100644
--- a/include/media/AudioSystem.h
+++ b/include/media/AudioSystem.h
@@ -156,6 +156,7 @@
MODE_NORMAL = 0,
MODE_RINGTONE,
MODE_IN_CALL,
+ MODE_IN_COMMUNICATION,
NUM_MODES // not a valid entry, denotes end-of-list
};
diff --git a/include/media/EffectApi.h b/include/media/EffectApi.h
index 16fb43c..b97c22e 100644
--- a/include/media/EffectApi.h
+++ b/include/media/EffectApi.h
@@ -602,9 +602,9 @@
// Audio mode
enum audio_mode_e {
- AUDIO_MODE_NORMAL, // phone idle
- AUDIO_MODE_RINGTONE, // phone ringing
- AUDIO_MODE_IN_CALL // phone call connected
+ AUDIO_MODE_NORMAL, // device idle
+ AUDIO_MODE_RINGTONE, // device ringing
+ AUDIO_MODE_IN_CALL // audio call connected (VoIP or telephony)
};
// Values for "accessMode" field of buffer_config_t:
diff --git a/include/ui/FramebufferNativeWindow.h b/include/ui/FramebufferNativeWindow.h
index c913355..2cd0911 100644
--- a/include/ui/FramebufferNativeWindow.h
+++ b/include/ui/FramebufferNativeWindow.h
@@ -29,6 +29,7 @@
#include <ui/egl/android_natives.h>
+#define NUM_FRAME_BUFFERS 2
extern "C" EGLNativeWindowType android_createDisplaySurface(void);
@@ -72,7 +73,7 @@
framebuffer_device_t* fbDev;
alloc_device_t* grDev;
- sp<NativeBuffer> buffers[2];
+ sp<NativeBuffer> buffers[NUM_FRAME_BUFFERS];
sp<NativeBuffer> front;
mutable Mutex mutex;
diff --git a/libs/rs/java/Balls/src/com/android/balls/BallsRS.java b/libs/rs/java/Balls/src/com/android/balls/BallsRS.java
index 359f334..76c23b7 100644
--- a/libs/rs/java/Balls/src/com/android/balls/BallsRS.java
+++ b/libs/rs/java/Balls/src/com/android/balls/BallsRS.java
@@ -33,8 +33,6 @@
private ProgramFragment mPFLines;
private ProgramFragment mPFPoints;
private ProgramVertex mPV;
- private ProgramRaster mPR;
- private ProgramStore mPS;
private ScriptField_Point mPoints;
private ScriptField_Point mArcs;
private ScriptField_VpConsts mVpConsts;
@@ -48,12 +46,6 @@
mVpConsts.set(i, 0, true);
}
- private void createProgramRaster() {
- ProgramRaster.Builder b = new ProgramRaster.Builder(mRS);
- mPR = b.create();
- mScript.set_gPR(mPR);
- }
-
private void createProgramVertex() {
updateProjectionMatrices();
@@ -71,7 +63,7 @@
sb.addInput(mPoints.getElement());
ProgramVertex pvs = sb.create();
pvs.bindConstants(mVpConsts.getAllocation(), 0);
- mScript.set_gPV(pvs);
+ mRS.contextBindProgramVertex(pvs);
}
private Allocation loadTexture(int id) {
@@ -125,10 +117,8 @@
mScript.set_gPFLines(mPFLines);
mScript.set_gPFPoints(mPFPoints);
createProgramVertex();
- createProgramRaster();
- mPS = ProgramStore.BLEND_ADD_DEPTH_NO_DEPTH(mRS);
- mScript.set_gPS(mPS);
+ mRS.contextBindProgramStore(ProgramStore.BLEND_ADD_DEPTH_NO_DEPTH(mRS));
mPhysicsScript.set_gMinPos(new Float2(5, 5));
mPhysicsScript.set_gMaxPos(new Float2(width - 5, height - 5));
diff --git a/libs/rs/java/Balls/src/com/android/balls/balls.rs b/libs/rs/java/Balls/src/com/android/balls/balls.rs
index bbd03cf..3edbe2d 100644
--- a/libs/rs/java/Balls/src/com/android/balls/balls.rs
+++ b/libs/rs/java/Balls/src/com/android/balls/balls.rs
@@ -4,13 +4,11 @@
#include "balls.rsh"
-#pragma stateFragment(parent)
+#pragma stateVertex(parent)
+#pragma stateStore(parent)
rs_program_fragment gPFPoints;
rs_program_fragment gPFLines;
-rs_program_vertex gPV;
-rs_program_raster gPR;
-rs_program_store gPS;
rs_mesh partMesh;
rs_mesh arcMesh;
@@ -95,9 +93,6 @@
frame++;
rsgBindProgramFragment(gPFLines);
- rsgBindProgramVertex(gPV);
- rsgBindProgramRaster(gPR);
- rsgBindProgramStore(gPS);
rsgDrawMesh(arcMesh, 0, 0, arcIdx);
rsgBindProgramFragment(gPFPoints);
rsgDrawMesh(partMesh);
diff --git a/libs/rs/rs.spec b/libs/rs/rs.spec
index 76db14f..1b584c8 100644
--- a/libs/rs/rs.spec
+++ b/libs/rs/rs.spec
@@ -320,6 +320,7 @@
}
ScriptCCreate {
+ param const char * resName
ret RsScript
}
diff --git a/libs/rs/rsContext.cpp b/libs/rs/rsContext.cpp
index 18bf9fa..143c4dc 100644
--- a/libs/rs/rsContext.cpp
+++ b/libs/rs/rsContext.cpp
@@ -262,21 +262,27 @@
}
}
+Context::PushState::PushState(Context *con) {
+ mRsc = con;
+ mFragment.set(con->getProgramFragment());
+ mVertex.set(con->getProgramVertex());
+ mStore.set(con->getProgramStore());
+ mRaster.set(con->getProgramRaster());
+}
+
+Context::PushState::~PushState() {
+ mRsc->setProgramFragment(mFragment.get());
+ mRsc->setProgramVertex(mVertex.get());
+ mRsc->setProgramStore(mStore.get());
+ mRsc->setProgramRaster(mRaster.get());
+ mRsc->setFont(mFont.get());
+}
+
uint32_t Context::runScript(Script *s) {
- ObjectBaseRef<ProgramFragment> frag(mFragment);
- ObjectBaseRef<ProgramVertex> vtx(mVertex);
- ObjectBaseRef<ProgramStore> store(mFragmentStore);
- ObjectBaseRef<ProgramRaster> raster(mRaster);
- ObjectBaseRef<Font> font(mFont);
+ PushState(this);
uint32_t ret = s->run(this);
-
- mFragment.set(frag);
- mVertex.set(vtx);
- mFragmentStore.set(store);
- mRaster.set(raster);
- mFont.set(font);
return ret;
}
@@ -441,13 +447,13 @@
rsc->mScriptC.init(rsc);
if (rsc->mIsGraphicsContext) {
rsc->mStateRaster.init(rsc);
- rsc->setRaster(NULL);
+ rsc->setProgramRaster(NULL);
rsc->mStateVertex.init(rsc);
- rsc->setVertex(NULL);
+ rsc->setProgramVertex(NULL);
rsc->mStateFragment.init(rsc);
- rsc->setFragment(NULL);
+ rsc->setProgramFragment(NULL);
rsc->mStateFragmentStore.init(rsc);
- rsc->setFragmentStore(NULL);
+ rsc->setProgramStore(NULL);
rsc->mStateFont.init(rsc);
rsc->setFont(NULL);
rsc->mStateVertexArray.init(rsc);
@@ -753,7 +759,7 @@
mRootScript.set(s);
}
-void Context::setFragmentStore(ProgramStore *pfs) {
+void Context::setProgramStore(ProgramStore *pfs) {
rsAssert(mIsGraphicsContext);
if (pfs == NULL) {
mFragmentStore.set(mStateFragmentStore.mDefault);
@@ -762,7 +768,7 @@
}
}
-void Context::setFragment(ProgramFragment *pf) {
+void Context::setProgramFragment(ProgramFragment *pf) {
rsAssert(mIsGraphicsContext);
if (pf == NULL) {
mFragment.set(mStateFragment.mDefault);
@@ -771,7 +777,7 @@
}
}
-void Context::setRaster(ProgramRaster *pr) {
+void Context::setProgramRaster(ProgramRaster *pr) {
rsAssert(mIsGraphicsContext);
if (pr == NULL) {
mRaster.set(mStateRaster.mDefault);
@@ -780,7 +786,7 @@
}
}
-void Context::setVertex(ProgramVertex *pv) {
+void Context::setProgramVertex(ProgramVertex *pv) {
rsAssert(mIsGraphicsContext);
if (pv == NULL) {
mVertex.set(mStateVertex.mDefault);
@@ -951,22 +957,22 @@
void rsi_ContextBindProgramStore(Context *rsc, RsProgramStore vpfs) {
ProgramStore *pfs = static_cast<ProgramStore *>(vpfs);
- rsc->setFragmentStore(pfs);
+ rsc->setProgramStore(pfs);
}
void rsi_ContextBindProgramFragment(Context *rsc, RsProgramFragment vpf) {
ProgramFragment *pf = static_cast<ProgramFragment *>(vpf);
- rsc->setFragment(pf);
+ rsc->setProgramFragment(pf);
}
void rsi_ContextBindProgramRaster(Context *rsc, RsProgramRaster vpr) {
ProgramRaster *pr = static_cast<ProgramRaster *>(vpr);
- rsc->setRaster(pr);
+ rsc->setProgramRaster(pr);
}
void rsi_ContextBindProgramVertex(Context *rsc, RsProgramVertex vpv) {
ProgramVertex *pv = static_cast<ProgramVertex *>(vpv);
- rsc->setVertex(pv);
+ rsc->setProgramVertex(pv);
}
void rsi_ContextBindFont(Context *rsc, RsFont vfont) {
diff --git a/libs/rs/rsContext.h b/libs/rs/rsContext.h
index 6945342d..c377c73 100644
--- a/libs/rs/rsContext.h
+++ b/libs/rs/rsContext.h
@@ -80,6 +80,21 @@
Context * mContext;
Script * mScript;
};
+
+ class PushState {
+ public:
+ PushState(Context *);
+ ~PushState();
+
+ private:
+ ObjectBaseRef<ProgramFragment> mFragment;
+ ObjectBaseRef<ProgramVertex> mVertex;
+ ObjectBaseRef<ProgramStore> mStore;
+ ObjectBaseRef<ProgramRaster> mRaster;
+ ObjectBaseRef<Font> mFont;
+ Context *mRsc;
+ };
+
ScriptTLSStruct *mTlsStruct;
RsSurfaceConfig mUserSurfaceConfig;
@@ -101,18 +116,18 @@
void swapBuffers();
void setRootScript(Script *);
- void setRaster(ProgramRaster *);
- void setVertex(ProgramVertex *);
- void setFragment(ProgramFragment *);
- void setFragmentStore(ProgramStore *);
+ void setProgramRaster(ProgramRaster *);
+ void setProgramVertex(ProgramVertex *);
+ void setProgramFragment(ProgramFragment *);
+ void setProgramStore(ProgramStore *);
void setFont(Font *);
void updateSurface(void *sur);
- const ProgramFragment * getFragment() {return mFragment.get();}
- const ProgramStore * getFragmentStore() {return mFragmentStore.get();}
- const ProgramRaster * getRaster() {return mRaster.get();}
- const ProgramVertex * getVertex() {return mVertex.get();}
+ ProgramFragment * getProgramFragment() {return mFragment.get();}
+ ProgramStore * getProgramStore() {return mFragmentStore.get();}
+ ProgramRaster * getProgramRaster() {return mRaster.get();}
+ ProgramVertex * getProgramVertex() {return mVertex.get();}
Font * getFont() {return mFont.get();}
bool setupCheck();
diff --git a/libs/rs/rsFont.cpp b/libs/rs/rsFont.cpp
index 96e350d..e4d77b2 100644
--- a/libs/rs/rsFont.cpp
+++ b/libs/rs/rsFont.cpp
@@ -613,18 +613,12 @@
}
void FontState::issueDrawCommand() {
+ Context::PushState ps(mRSC);
- ObjectBaseRef<const ProgramVertex> tmpV(mRSC->getVertex());
- mRSC->setVertex(mRSC->getDefaultProgramVertex());
-
- ObjectBaseRef<const ProgramRaster> tmpR(mRSC->getRaster());
- mRSC->setRaster(mRSC->getDefaultProgramRaster());
-
- ObjectBaseRef<const ProgramFragment> tmpF(mRSC->getFragment());
- mRSC->setFragment(mFontShaderF.get());
-
- ObjectBaseRef<const ProgramStore> tmpPS(mRSC->getFragmentStore());
- mRSC->setFragmentStore(mFontProgramStore.get());
+ mRSC->setProgramVertex(mRSC->getDefaultProgramVertex());
+ mRSC->setProgramRaster(mRSC->getDefaultProgramRaster());
+ mRSC->setProgramFragment(mFontShaderF.get());
+ mRSC->setProgramStore(mFontProgramStore.get());
if (mConstantsDirty) {
mFontShaderFConstant->data(mRSC, &mConstants, sizeof(mConstants));
@@ -632,10 +626,6 @@
}
if (!mRSC->setupCheck()) {
- mRSC->setVertex((ProgramVertex *)tmpV.get());
- mRSC->setRaster((ProgramRaster *)tmpR.get());
- mRSC->setFragment((ProgramFragment *)tmpF.get());
- mRSC->setFragmentStore((ProgramStore *)tmpPS.get());
return;
}
@@ -651,12 +641,6 @@
mIndexBuffer->uploadCheck(mRSC);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, mIndexBuffer->getBufferObjectID());
glDrawElements(GL_TRIANGLES, mCurrentQuadIndex * 6, GL_UNSIGNED_SHORT, (uint16_t *)(0));
-
- // Reset the state
- mRSC->setVertex((ProgramVertex *)tmpV.get());
- mRSC->setRaster((ProgramRaster *)tmpR.get());
- mRSC->setFragment((ProgramFragment *)tmpF.get());
- mRSC->setFragmentStore((ProgramStore *)tmpPS.get());
}
void FontState::appendMeshQuad(float x1, float y1, float z1,
diff --git a/libs/rs/rsScriptC.cpp b/libs/rs/rsScriptC.cpp
index 072cc168..6587b51 100644
--- a/libs/rs/rsScriptC.cpp
+++ b/libs/rs/rsScriptC.cpp
@@ -104,16 +104,16 @@
void ScriptC::setupGLState(Context *rsc) {
if (mEnviroment.mFragmentStore.get()) {
- rsc->setFragmentStore(mEnviroment.mFragmentStore.get());
+ rsc->setProgramStore(mEnviroment.mFragmentStore.get());
}
if (mEnviroment.mFragment.get()) {
- rsc->setFragment(mEnviroment.mFragment.get());
+ rsc->setProgramFragment(mEnviroment.mFragment.get());
}
if (mEnviroment.mVertex.get()) {
- rsc->setVertex(mEnviroment.mVertex.get());
+ rsc->setProgramVertex(mEnviroment.mVertex.get());
}
if (mEnviroment.mRaster.get()) {
- rsc->setRaster(mEnviroment.mRaster.get());
+ rsc->setProgramRaster(mEnviroment.mRaster.get());
}
}
@@ -232,6 +232,7 @@
const RsScriptCall *sc) {
MTLaunchStruct mtls;
memset(&mtls, 0, sizeof(mtls));
+ Context::PushState ps(rsc);
if (ain) {
mtls.dimX = ain->getType()->getDimX();
@@ -395,15 +396,25 @@
extern const char rs_runtime_lib_bc[];
extern unsigned rs_runtime_lib_bc_size;
-void ScriptCState::runCompiler(Context *rsc, ScriptC *s) {
+void ScriptCState::runCompiler(Context *rsc, ScriptC *s, const char *resName) {
{
- StopWatch compileTimer("RenderScript compile time");
s->mBccScript = bccCreateScript();
s->mEnviroment.mIsThreadable = true;
- bccScriptBitcode(s->mBccScript, s->mEnviroment.mScriptText, s->mEnviroment.mScriptTextLength);
- //bccLinkBitcode(s->mBccScript, rs_runtime_lib_bc, rs_runtime_lib_bc_size);
bccRegisterSymbolCallback(s->mBccScript, symbolLookup, s);
- bccCompileScript(s->mBccScript);
+ // bccReadBC() reads in the BitCode, if no cache file corresponding to
+ // the resName is found. Otherwise, bccReadBC() returns a negative value
+ // and the "else" branch will be taken.
+ if (bccReadBC(s->mBccScript,
+ s->mEnviroment.mScriptText,
+ s->mEnviroment.mScriptTextLength,
+ resName) >= 0) {
+ //bccLinkBC(s->mBccScript, rs_runtime_lib_bc, rs_runtime_lib_bc_size);
+ bccCompileBC(s->mBccScript);
+ } else {
+ // bccReadBC returns a neagative value: Didn't read any script,
+ // So, use cached binary instead
+ bccLoadBinary(s->mBccScript);
+ }
bccGetScriptLabel(s->mBccScript, "root", (BCCvoid**) &s->mProgram.mRoot);
bccGetScriptLabel(s->mBccScript, "init", (BCCvoid**) &s->mProgram.mInit);
}
@@ -517,14 +528,15 @@
ss->mScript->mEnviroment.mScriptTextLength = len;
}
-RsScript rsi_ScriptCCreate(Context * rsc) {
+RsScript rsi_ScriptCCreate(Context * rsc, const char *resName)
+{
ScriptCState *ss = &rsc->mScriptC;
ObjectBaseRef<ScriptC> s(ss->mScript);
ss->mScript.clear();
s->incUserRef();
- ss->runCompiler(rsc, s.get());
+ ss->runCompiler(rsc, s.get(), resName);
ss->clear(rsc);
return s.get();
}
diff --git a/libs/rs/rsScriptC.h b/libs/rs/rsScriptC.h
index 7ca33ac..4f0dff3 100644
--- a/libs/rs/rsScriptC.h
+++ b/libs/rs/rsScriptC.h
@@ -81,7 +81,7 @@
void init(Context *rsc);
void clear(Context *rsc);
- void runCompiler(Context *rsc, ScriptC *s);
+ void runCompiler(Context *rsc, ScriptC *s, const char *resName);
struct SymbolTable_t {
const char * mName;
@@ -98,6 +98,3 @@
}
}
#endif
-
-
-
diff --git a/libs/rs/rsScriptC_LibGL.cpp b/libs/rs/rsScriptC_LibGL.cpp
index ef1475c..0f84e4b 100644
--- a/libs/rs/rsScriptC_LibGL.cpp
+++ b/libs/rs/rsScriptC_LibGL.cpp
@@ -92,17 +92,17 @@
static void SC_vpLoadProjectionMatrix(const rsc_Matrix *m) {
GET_TLS();
- rsc->getVertex()->setProjectionMatrix(rsc, m);
+ rsc->getProgramVertex()->setProjectionMatrix(rsc, m);
}
static void SC_vpLoadModelMatrix(const rsc_Matrix *m) {
GET_TLS();
- rsc->getVertex()->setModelviewMatrix(rsc, m);
+ rsc->getProgramVertex()->setModelviewMatrix(rsc, m);
}
static void SC_vpLoadTextureMatrix(const rsc_Matrix *m) {
GET_TLS();
- rsc->getVertex()->setTextureMatrix(rsc, m);
+ rsc->getProgramVertex()->setTextureMatrix(rsc, m);
}
static void SC_pfConstantColor(RsProgramFragment vpf, float r, float g, float b, float a) {
@@ -114,7 +114,7 @@
static void SC_vpGetProjectionMatrix(rsc_Matrix *m) {
GET_TLS();
- rsc->getVertex()->getProjectionMatrix(rsc, m);
+ rsc->getProgramVertex()->getProjectionMatrix(rsc, m);
}
//////////////////////////////////////////////////////////////////////////////
@@ -165,8 +165,8 @@
static void SC_drawSpriteScreenspace(float x, float y, float z, float w, float h) {
GET_TLS();
- ObjectBaseRef<const ProgramVertex> tmp(rsc->getVertex());
- rsc->setVertex(rsc->getDefaultProgramVertex());
+ ObjectBaseRef<const ProgramVertex> tmp(rsc->getProgramVertex());
+ rsc->setProgramVertex(rsc->getDefaultProgramVertex());
//rsc->setupCheck();
//GLint crop[4] = {0, h, w, -h};
@@ -177,7 +177,7 @@
x+w, sh - y, z,
x+w, sh - (y+h), z,
x, sh - (y+h), z);
- rsc->setVertex((ProgramVertex *)tmp.get());
+ rsc->setProgramVertex((ProgramVertex *)tmp.get());
}
/*
static void SC_drawSprite(float x, float y, float z, float w, float h)
@@ -271,7 +271,7 @@
static void SC_color(float r, float g, float b, float a) {
GET_TLS();
- ProgramFragment *pf = (ProgramFragment *)rsc->getFragment();
+ ProgramFragment *pf = (ProgramFragment *)rsc->getProgramFragment();
pf->setConstantColor(rsc, r, g, b, a);
}
diff --git a/libs/ui/FramebufferNativeWindow.cpp b/libs/ui/FramebufferNativeWindow.cpp
index a36d555..04a0195 100644
--- a/libs/ui/FramebufferNativeWindow.cpp
+++ b/libs/ui/FramebufferNativeWindow.cpp
@@ -83,6 +83,7 @@
if (hw_get_module(GRALLOC_HARDWARE_MODULE_ID, &module) == 0) {
int stride;
int err;
+ int i;
err = framebuffer_open(module, &fbDev);
LOGE_IF(err, "couldn't open framebuffer HAL (%s)", strerror(-err));
@@ -96,27 +97,33 @@
mUpdateOnDemand = (fbDev->setUpdateRect != 0);
// initialize the buffer FIFO
- mNumBuffers = 2;
- mNumFreeBuffers = 2;
+ mNumBuffers = NUM_FRAME_BUFFERS;
+ mNumFreeBuffers = NUM_FRAME_BUFFERS;
mBufferHead = mNumBuffers-1;
- buffers[0] = new NativeBuffer(
- fbDev->width, fbDev->height, fbDev->format, GRALLOC_USAGE_HW_FB);
- buffers[1] = new NativeBuffer(
- fbDev->width, fbDev->height, fbDev->format, GRALLOC_USAGE_HW_FB);
-
- err = grDev->alloc(grDev,
- fbDev->width, fbDev->height, fbDev->format,
- GRALLOC_USAGE_HW_FB, &buffers[0]->handle, &buffers[0]->stride);
- LOGE_IF(err, "fb buffer 0 allocation failed w=%d, h=%d, err=%s",
- fbDev->width, fbDev->height, strerror(-err));
+ for (i = 0; i < mNumBuffers; i++)
+ {
+ buffers[i] = new NativeBuffer(
+ fbDev->width, fbDev->height, fbDev->format, GRALLOC_USAGE_HW_FB);
+ }
- err = grDev->alloc(grDev,
- fbDev->width, fbDev->height, fbDev->format,
- GRALLOC_USAGE_HW_FB, &buffers[1]->handle, &buffers[1]->stride);
+ for (i = 0; i < mNumBuffers; i++)
+ {
+ err = grDev->alloc(grDev,
+ fbDev->width, fbDev->height, fbDev->format,
+ GRALLOC_USAGE_HW_FB, &buffers[i]->handle, &buffers[i]->stride);
- LOGE_IF(err, "fb buffer 1 allocation failed w=%d, h=%d, err=%s",
- fbDev->width, fbDev->height, strerror(-err));
+ LOGE_IF(err, "fb buffer %d allocation failed w=%d, h=%d, err=%s",
+ i, fbDev->width, fbDev->height, strerror(-err));
+
+ if (err)
+ {
+ mNumBuffers = i;
+ mNumFreeBuffers = i;
+ mBufferHead = mNumBuffers-1;
+ break;
+ }
+ }
const_cast<uint32_t&>(ANativeWindow::flags) = fbDev->flags;
const_cast<float&>(ANativeWindow::xdpi) = fbDev->xdpi;
diff --git a/media/java/android/media/AudioManager.java b/media/java/android/media/AudioManager.java
index b84a2c2..def88ae 100644
--- a/media/java/android/media/AudioManager.java
+++ b/media/java/android/media/AudioManager.java
@@ -984,7 +984,7 @@
* application when it places a phone call, as it will cause signals from the radio layer
* to feed the platform mixer.
*
- * @param mode the requested audio mode (NORMAL, RINGTONE, or IN_CALL).
+ * @param mode the requested audio mode (NORMAL, RINGTONE, IN_CALL or IN_COMMUNICATION).
* Informs the HAL about the current audio state so that
* it can route the audio appropriately.
*/
@@ -1000,7 +1000,7 @@
/**
* Returns the current audio mode.
*
- * @return the current audio mode (NORMAL, RINGTONE, or IN_CALL).
+ * @return the current audio mode (NORMAL, RINGTONE, IN_CALL or IN_COMMUNICATION).
* Returns the current current audio state from the HAL.
*/
public int getMode() {
@@ -1034,9 +1034,14 @@
*/
public static final int MODE_RINGTONE = AudioSystem.MODE_RINGTONE;
/**
- * In call audio mode. A call is established.
+ * In call audio mode. A telephony call is established.
*/
public static final int MODE_IN_CALL = AudioSystem.MODE_IN_CALL;
+ /**
+ * @hide
+ * In communication audio mode. An audio/video chat or VoIP call is established.
+ */
+ public static final int MODE_IN_COMMUNICATION = AudioSystem.MODE_IN_COMMUNICATION;
/* Routing bits for setRouting/getRouting API */
/**
diff --git a/media/java/android/media/AudioService.java b/media/java/android/media/AudioService.java
index 3bee906..cfcc2ba 100644
--- a/media/java/android/media/AudioService.java
+++ b/media/java/android/media/AudioService.java
@@ -718,7 +718,7 @@
return;
}
- if (mode < AudioSystem.MODE_CURRENT || mode > AudioSystem.MODE_IN_CALL) {
+ if (mode < AudioSystem.MODE_CURRENT || mode >= AudioSystem.NUM_MODES) {
return;
}
@@ -2305,6 +2305,7 @@
// add modify the phone app to take advantage of the new API
synchronized(mRingingLock) {
if (mIsRinging || (getMode() == AudioSystem.MODE_IN_CALL) ||
+ (getMode() == AudioSystem.MODE_IN_COMMUNICATION) ||
(getMode() == AudioSystem.MODE_RINGTONE) ) {
return;
}
diff --git a/media/java/android/media/AudioSystem.java b/media/java/android/media/AudioSystem.java
index 5442791..1fd03dc 100644
--- a/media/java/android/media/AudioSystem.java
+++ b/media/java/android/media/AudioSystem.java
@@ -106,7 +106,8 @@
public static final int MODE_NORMAL = 0;
public static final int MODE_RINGTONE = 1;
public static final int MODE_IN_CALL = 2;
- public static final int NUM_MODES = 3;
+ public static final int MODE_IN_COMMUNICATION = 3;
+ public static final int NUM_MODES = 4;
/* Routing bits for setRouting/getRouting API */
diff --git a/media/java/android/media/MediaRecorder.java b/media/java/android/media/MediaRecorder.java
index 2bea84f..39c4a28 100644
--- a/media/java/android/media/MediaRecorder.java
+++ b/media/java/android/media/MediaRecorder.java
@@ -149,12 +149,10 @@
* {@link #DEFAULT} otherwise. */
public static final int VOICE_RECOGNITION = 6;
- /**
- * @hide
- * Microphone audio source tuned for voice communications such as VoIP. It
- * will for instance take advantage of echo cancellation or automatic gain control
- * if available. It otherwise behaves like {@link #DEFAULT} if no voice processing
- * is available.
+ /** Microphone audio source tuned for voice communications such as VoIP. It
+ * will for instance take advantage of echo cancellation or automatic gain control
+ * if available. It otherwise behaves like {@link #DEFAULT} if no voice processing
+ * is applied.
*/
public static final int VOICE_COMMUNICATION = 7;
}
diff --git a/media/java/android/media/MtpDatabase.java b/media/java/android/media/MtpDatabase.java
index 42d068f..e48e9e8 100644
--- a/media/java/android/media/MtpDatabase.java
+++ b/media/java/android/media/MtpDatabase.java
@@ -164,7 +164,7 @@
}
}
- private void endSendObject(String path, int handle, int format, boolean succeeded) {
+ private void endSendObject(String path, int handle, int format, long actualSize, boolean succeeded) {
if (succeeded) {
// handle abstract playlists separately
// they do not exist in the file system so don't use the media scanner here
@@ -184,6 +184,7 @@
ContentValues values = new ContentValues(1);
values.put(Audio.Playlists.DATA, path);
values.put(Audio.Playlists.NAME, name);
+ values.put(Files.FileColumns.FORMAT, format);
values.put(MediaColumns.MEDIA_SCANNER_NEW_OBJECT_ID, handle);
try {
Uri uri = mMediaProvider.insert(Audio.Playlists.EXTERNAL_CONTENT_URI, values);
@@ -191,6 +192,18 @@
Log.e(TAG, "RemoteException in endSendObject", e);
}
} else {
+ if (actualSize >= 0) {
+ // update size if necessary
+ ContentValues values = new ContentValues();
+ values.put(Files.FileColumns.SIZE, actualSize);
+ try {
+ String[] whereArgs = new String[] { Integer.toString(handle) };
+ mMediaProvider.update(mObjectsUri, values, ID_WHERE, whereArgs);
+ } catch (RemoteException e) {
+ Log.e(TAG, "RemoteException in mMediaProvider.update", e);
+ }
+ }
+
mMediaScanner.scanMtpFile(path, mVolumeName, handle, format);
}
} else {
diff --git a/media/java/android/media/videoeditor/AudioTrack.java b/media/java/android/media/videoeditor/AudioTrack.java
index d02709e..32ff553 100755
--- a/media/java/android/media/videoeditor/AudioTrack.java
+++ b/media/java/android/media/videoeditor/AudioTrack.java
@@ -102,7 +102,7 @@
// Ducking is enabled by default
mDuckingThreshold = 0;
mDuckedTrackVolume = 0;
- mIsDuckingEnabled = true;
+ mIsDuckingEnabled = false;
// The audio waveform file is generated later
mAudioWaveformFilename = null;
@@ -369,14 +369,15 @@
/**
* Enable ducking by specifying the required parameters
*
- * @param threshold Ducking will be activated when the relative energy in
+ * @param threshold Ducking will be activated when the energy in
* the media items audio signal goes above this value. The valid
- * range of values is 0 to 100.
+ * range of values is 0db to 90dB. 0dB is equivalent to disabling
+ * ducking.
* @param duckedTrackVolume The relative volume of the audio track when ducking
* is active. The valid range of values is 0 to 100.
*/
public void enableDucking(int threshold, int duckedTrackVolume) {
- if (threshold < 0 || threshold > 100) {
+ if (threshold < 0 || threshold > 90) {
throw new IllegalArgumentException("Invalid threshold value: " + threshold);
}
diff --git a/media/jni/android_media_MtpDatabase.cpp b/media/jni/android_media_MtpDatabase.cpp
index 5377af6..4525d1f 100644
--- a/media/jni/android_media_MtpDatabase.cpp
+++ b/media/jni/android_media_MtpDatabase.cpp
@@ -99,6 +99,7 @@
virtual void endSendObject(const char* path,
MtpObjectHandle handle,
MtpObjectFormat format,
+ int64_t actualSize,
bool succeeded);
virtual MtpObjectHandleList* getObjectList(MtpStorageID storageID,
@@ -235,11 +236,11 @@
}
void MyMtpDatabase::endSendObject(const char* path, MtpObjectHandle handle,
- MtpObjectFormat format, bool succeeded) {
+ MtpObjectFormat format, int64_t actualSize, bool succeeded) {
JNIEnv* env = AndroidRuntime::getJNIEnv();
jstring pathStr = env->NewStringUTF(path);
env->CallVoidMethod(mDatabase, method_endSendObject, pathStr,
- (jint)handle, (jint)format, (jboolean)succeeded);
+ (jint)handle, (jint)format, (jlong)actualSize, (jboolean)succeeded);
if (pathStr)
env->DeleteLocalRef(pathStr);
@@ -1076,7 +1077,7 @@
LOGE("Can't find beginSendObject");
return -1;
}
- method_endSendObject = env->GetMethodID(clazz, "endSendObject", "(Ljava/lang/String;IIZ)V");
+ method_endSendObject = env->GetMethodID(clazz, "endSendObject", "(Ljava/lang/String;IIJZ)V");
if (method_endSendObject == NULL) {
LOGE("Can't find endSendObject");
return -1;
diff --git a/media/mtp/MtpDatabase.h b/media/mtp/MtpDatabase.h
index fafd221..900b517 100644
--- a/media/mtp/MtpDatabase.h
+++ b/media/mtp/MtpDatabase.h
@@ -42,6 +42,7 @@
virtual void endSendObject(const char* path,
MtpObjectHandle handle,
MtpObjectFormat format,
+ int64_t size,
bool succeeded) = 0;
virtual MtpObjectHandleList* getObjectList(MtpStorageID storageID,
diff --git a/media/mtp/MtpServer.cpp b/media/mtp/MtpServer.cpp
index 6cf70ec..ca13636 100644
--- a/media/mtp/MtpServer.cpp
+++ b/media/mtp/MtpServer.cpp
@@ -624,6 +624,7 @@
mData.getString(modified); // date modified
// keywords follow
+ LOGD("name: %s format: %04X\n", (const char *)name, format);
time_t modifiedTime;
if (!parseDateTime(modified, modifiedTime))
modifiedTime = 0;
@@ -663,6 +664,7 @@
MtpResponseCode result = MTP_RESPONSE_OK;
mode_t mask;
int ret;
+ uint64_t actualSize = -1;
if (mSendObjectHandle == kInvalidObjectHandle) {
LOGE("Expected SendObjectInfo before SendObject");
@@ -692,6 +694,7 @@
mfr.offset = 0;
mfr.length = mSendObjectFileSize;
+ LOGD("receiving %s\n", (const char *)mSendObjectFilePath);
// transfer the file
ret = ioctl(mFD, MTP_RECEIVE_FILE, (unsigned long)&mfr);
close(mfr.fd);
@@ -704,11 +707,18 @@
result = MTP_RESPONSE_TRANSACTION_CANCELLED;
else
result = MTP_RESPONSE_GENERAL_ERROR;
+ } else if (mSendObjectFileSize == 0xFFFFFFFF) {
+ // actual size is likely > 4 gig so stat the file to compute actual length
+ struct stat s;
+ if (lstat(mSendObjectFilePath, &s) == 0) {
+ actualSize = s.st_size;
+ LOGD("actualSize: %lld\n", actualSize);
+ }
}
done:
mDatabase->endSendObject(mSendObjectFilePath, mSendObjectHandle, mSendObjectFormat,
- result == MTP_RESPONSE_OK);
+ actualSize, result == MTP_RESPONSE_OK);
mSendObjectHandle = kInvalidObjectHandle;
mSendObjectFormat = 0;
return result;
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java
index b98071e..fa63edb 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java
@@ -16,6 +16,7 @@
package com.android.providers.settings;
+import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataInputStream;
@@ -27,6 +28,7 @@
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
+import java.io.OutputStream;
import java.util.Arrays;
import java.util.zip.CRC32;
@@ -352,10 +354,11 @@
}
private byte[] getWifiSupplicant(String filename) {
+ BufferedReader br = null;
try {
File file = new File(filename);
if (file.exists()) {
- BufferedReader br = new BufferedReader(new FileReader(file));
+ br = new BufferedReader(new FileReader(file));
StringBuffer relevantLines = new StringBuffer();
boolean started = false;
String line;
@@ -378,6 +381,13 @@
} catch (IOException ioe) {
Log.w(TAG, "Couldn't backup " + filename);
return EMPTY_DATA;
+ } finally {
+ if (br != null) {
+ try {
+ br.close();
+ } catch (IOException e) {
+ }
+ }
}
}
@@ -390,9 +400,10 @@
if (supplicantFile.exists()) supplicantFile.delete();
copyWifiSupplicantTemplate();
- FileOutputStream fos = new FileOutputStream(filename, true);
- fos.write("\n".getBytes());
- fos.write(bytes);
+ OutputStream os = new BufferedOutputStream(new FileOutputStream(filename, true));
+ os.write("\n".getBytes());
+ os.write(bytes);
+ os.close();
} catch (IOException ioe) {
Log.w(TAG, "Couldn't restore " + filename);
}
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_notification_open.png b/packages/SystemUI/res/drawable-mdpi/ic_notification_open.png
new file mode 100644
index 0000000..17fd52e
--- /dev/null
+++ b/packages/SystemUI/res/drawable-mdpi/ic_notification_open.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_shadow.9.png b/packages/SystemUI/res/drawable-mdpi/ic_sysbar_shadow.9.png
new file mode 100644
index 0000000..c888c21
--- /dev/null
+++ b/packages/SystemUI/res/drawable-mdpi/ic_sysbar_shadow.9.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable/status_bar_item_background.xml b/packages/SystemUI/res/drawable/status_bar_item_background.xml
new file mode 100644
index 0000000..9da92a7
--- /dev/null
+++ b/packages/SystemUI/res/drawable/status_bar_item_background.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2006 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.
+-->
+
+<layer-list
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:opacity="translucent"
+ >
+ <item
+ android:drawable="@drawable/notification_item_background_color"
+ android:left="16dp"
+ />
+</layer-list>
+
diff --git a/packages/SystemUI/res/layout-xlarge/status_bar.xml b/packages/SystemUI/res/layout-xlarge/status_bar.xml
index 8f2bea4..b8b8bdd 100644
--- a/packages/SystemUI/res/layout-xlarge/status_bar.xml
+++ b/packages/SystemUI/res/layout-xlarge/status_bar.xml
@@ -25,20 +25,10 @@
android:id="@+id/bar_contents"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:animateLayoutChanges="true"
+ android:animateLayoutChanges="false"
>
- <FrameLayout
- android:id="@+id/ticker"
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:layout_alignParentRight="true"
- android:layout_toRightOf="@+id/systemInfo"
- android:paddingLeft="6dip"
- android:gravity="center_vertical"
- android:animateLayoutChanges="true"
- />
-
+ <!-- notification icons & panel access -->
<LinearLayout
android:id="@+id/notificationArea"
android:layout_width="wrap_content"
@@ -65,7 +55,7 @@
<LinearLayout
android:id="@+id/notificationTrigger"
android:layout_width="wrap_content"
- android:layout_height="wrap_content"
+ android:layout_height="match_parent"
>
<!-- paddingLeft: 24 dips = 32dp (total space to icon) - 8dp in the icon.
TODO: Make sure the font has a small enough leading that we don't need this
@@ -81,62 +71,70 @@
android:paddingLeft="24dip"
android:textColor="#2e2e2e"
/>
- <ImageView
- android:id="@+id/battery"
- android:layout_height="wrap_content"
- android:layout_width="wrap_content"
- android:layout_gravity="center_vertical"
- />
- <ImageView
- android:id="@+id/network"
- android:layout_height="wrap_content"
- android:layout_width="wrap_content"
- android:layout_gravity="center_vertical"
- android:src="@drawable/ic_sysbar_wifi_mini"
- />
+ <LinearLayout
+ android:layout_width="48dip"
+ android:layout_height="match_parent"
+ android:orientation="horizontal"
+ >
+ <ImageView
+ android:id="@+id/battery"
+ android:layout_height="wrap_content"
+ android:layout_width="wrap_content"
+ android:layout_gravity="center_vertical"
+ />
+ <ImageView
+ android:id="@+id/network"
+ android:layout_height="wrap_content"
+ android:layout_width="wrap_content"
+ android:layout_gravity="center_vertical"
+ android:src="@drawable/ic_sysbar_wifi_mini"
+ />
+ </LinearLayout>
</LinearLayout>
</LinearLayout>
+ <!-- navigation controls -->
<LinearLayout
android:id="@+id/navigationArea"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:orientation="horizontal"
- android:animateLayoutChanges="true"
+ android:animateLayoutChanges="false"
>
<com.android.systemui.statusbar.policy.KeyButtonView android:id="@+id/back"
- android:layout_width="wrap_content"
+ android:layout_width="96dip"
android:layout_height="match_parent"
- android:paddingLeft="15dip"
- android:paddingRight="15dip"
+ android:paddingLeft="18dip"
+ android:paddingRight="18dip"
android:src="@drawable/ic_sysbar_back"
android:background="@drawable/ic_sysbar_icon_bg"
systemui:keyCode="4"
/>
<com.android.systemui.statusbar.policy.KeyButtonView android:id="@+id/home"
- android:layout_width="wrap_content"
+ android:layout_width="96dip"
android:layout_height="match_parent"
- android:paddingLeft="15dip"
- android:paddingRight="15dip"
+ android:paddingLeft="18dip"
+ android:paddingRight="18dip"
android:src="@drawable/ic_sysbar_home"
android:background="@drawable/ic_sysbar_icon_bg"
systemui:keyCode="3"
/>
<ImageButton android:id="@+id/recent_apps"
- android:layout_width="wrap_content"
+ android:layout_width="96dip"
android:layout_height="match_parent"
android:src="@drawable/ic_sysbar_recent"
android:background="@drawable/ic_sysbar_icon_bg"
- android:paddingLeft="15dip"
- android:paddingRight="15dip"
+ android:paddingLeft="18dip"
+ android:clickable="true"
+ android:paddingRight="18dip"
/>
<com.android.systemui.statusbar.policy.KeyButtonView android:id="@+id/menu"
- android:layout_width="wrap_content"
+ android:layout_width="96dip"
android:layout_height="match_parent"
- android:paddingLeft="15dip"
- android:paddingRight="15dip"
+ android:paddingLeft="18dip"
+ android:paddingRight="18dip"
android:src="@drawable/ic_sysbar_menu"
android:background="@drawable/ic_sysbar_icon_bg"
systemui:keyCode="82"
@@ -144,11 +142,11 @@
/>
<com.android.systemui.statusbar.tablet.ShirtPocket
android:id="@+id/pocket"
- android:layout_width="71dip"
+ android:layout_width="96dip"
android:layout_height="match_parent"
android:background="@drawable/ic_sysbar_icon_bg"
- android:paddingLeft="15dip"
- android:paddingRight="15dip"
+ android:paddingLeft="18dip"
+ android:paddingRight="18dip"
android:animateLayoutChanges="true"
android:clickable="true"
android:descendantFocusability="blocksDescendants"
@@ -173,18 +171,76 @@
android:visibility="invisible"
/>
</LinearLayout>
+
+ <!-- lights out mode: "shadow" views -->
+ <ImageView
+ android:id="@+id/notification_shadow"
+ android:layout_width="176dip"
+ android:layout_height="match_parent"
+ android:paddingRight="48dip"
+ android:layout_alignParentRight="true"
+ android:layout_alignParentBottom="true"
+ android:src="@drawable/ic_sysbar_shadow"
+ android:visibility="gone"
+ android:scaleType="fitXY"
+ />
+
+ <ImageView
+ android:id="@+id/back_shadow"
+ android:layout_width="96dip"
+ android:layout_height="match_parent"
+ android:paddingLeft="18dip"
+ android:paddingRight="18dip"
+ android:layout_alignParentLeft="true"
+ android:layout_alignParentBottom="true"
+ android:src="@drawable/ic_sysbar_shadow"
+ android:visibility="gone"
+ />
+ <ImageView
+ android:id="@+id/home_shadow"
+ android:layout_width="96dip"
+ android:layout_height="match_parent"
+ android:paddingLeft="18dip"
+ android:paddingRight="18dip"
+ android:layout_toRightOf="@id/back_shadow"
+ android:layout_alignParentBottom="true"
+ android:src="@drawable/ic_sysbar_shadow"
+ android:visibility="gone"
+ />
+ <ImageView
+ android:id="@+id/recent_shadow"
+ android:layout_width="96dip"
+ android:layout_height="match_parent"
+ android:paddingLeft="18dip"
+ android:paddingRight="18dip"
+ android:layout_toRightOf="@id/home_shadow"
+ android:layout_alignParentBottom="true"
+ android:src="@drawable/ic_sysbar_shadow"
+ android:visibility="gone"
+ />
+ <ImageView
+ android:id="@+id/menu_shadow"
+ android:layout_width="96dip"
+ android:layout_height="match_parent"
+ android:paddingLeft="18dip"
+ android:paddingRight="18dip"
+ android:layout_toRightOf="@id/recent_shadow"
+ android:layout_alignParentBottom="true"
+ android:src="@drawable/ic_sysbar_shadow"
+ android:visibility="gone"
+ />
+
+ <!-- ticker: transient incoming notification information -->
+ <FrameLayout
+ android:id="@+id/ticker"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:layout_alignParentRight="true"
+ android:layout_toRightOf="@+id/systemInfo"
+ android:paddingLeft="6dip"
+ android:gravity="center_vertical"
+ android:animateLayoutChanges="true"
+ />
+
</RelativeLayout>
-
- <!-- It's curtains for you. -->
- <ImageView
- android:id="@+id/lights_out"
- android:src="@drawable/ic_sysbar_lightsout"
- android:gravity="center"
- android:background="#FF000000"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:visibility="invisible"
- android:clickable="true"
- />
</com.android.systemui.statusbar.tablet.TabletStatusBarView>
-
diff --git a/packages/SystemUI/res/layout-xlarge/status_bar_latest_event.xml b/packages/SystemUI/res/layout-xlarge/status_bar_latest_event.xml
index 049a1cc..b6679a5 100644
--- a/packages/SystemUI/res/layout-xlarge/status_bar_latest_event.xml
+++ b/packages/SystemUI/res/layout-xlarge/status_bar_latest_event.xml
@@ -1,36 +1,35 @@
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
- android:layout_height="65sp"
- android:orientation="vertical"
- android:background="@android:drawable/status_bar_item_background"
+ android:layout_height="65dp"
+ android:background="@drawable/status_bar_item_background"
>
<ImageButton
android:id="@+id/veto"
- android:layout_width="wrap_content"
+ android:layout_width="48dp"
android:layout_height="match_parent"
android:layout_centerVertical="true"
android:layout_alignParentRight="true"
android:src="@drawable/status_bar_veto"
android:scaleType="center"
- android:background="@null"
- android:paddingLeft="16dip"
- android:paddingRight="16dip"
+ android:background="#ff000000"
/>
<com.android.systemui.statusbar.LatestItemView android:id="@+id/content"
- android:layout_alignParentTop="true"
- android:layout_toLeftOf="@id/veto"
- android:layout_width="match_parent"
+ android:layout_width="wrap_content"
android:layout_height="64sp"
+ android:layout_alignParentTop="true"
+ android:layout_alignParentLeft="true"
+ android:layout_toLeftOf="@id/veto"
+ android:layout_marginLeft="16dp"
android:focusable="true"
android:clickable="true"
- android:paddingRight="6sp"
/>
<View
android:layout_width="match_parent"
- android:layout_height="1sp"
+ android:layout_height="1dp"
+ android:layout_marginLeft="16dp"
android:layout_alignParentBottom="true"
android:background="@android:drawable/divider_horizontal_dark"
/>
diff --git a/packages/SystemUI/res/layout-xlarge/sysbar_panel_notifications.xml b/packages/SystemUI/res/layout-xlarge/sysbar_panel_notifications.xml
index 3e085f3..186aa64 100644
--- a/packages/SystemUI/res/layout-xlarge/sysbar_panel_notifications.xml
+++ b/packages/SystemUI/res/layout-xlarge/sysbar_panel_notifications.xml
@@ -22,10 +22,9 @@
<com.android.systemui.statusbar.tablet.NotificationPanel
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
- android:layout_width="wrap_content"
+ android:layout_width="540dp"
android:animateLayoutChanges="true"
android:background="@drawable/bg_scrim_notification"
- android:paddingLeft="140dp"
android:paddingBottom="32dp"
>
@@ -34,10 +33,11 @@
android:layout_height="wrap_content"
android:layout_width="384dp"
android:layout_above="@+id/content_frame"
- android:layout_marginLeft="16dp"
+ android:layout_marginLeft="24dp"
android:paddingBottom="16dp"
android:orientation="vertical"
android:animateLayoutChanges="true"
+ android:layout_alignParentRight="true"
>
<com.android.systemui.statusbar.policy.Clock
@@ -108,7 +108,7 @@
android:layout_alignParentRight="true"
android:layout_alignBaseline="@id/battery"
android:paddingRight="16dp"
- android:src="@drawable/ic_sysbar_quicksettings"
+ android:src="@drawable/ic_notification_open"
android:baseline="17dp"
/>
@@ -128,8 +128,9 @@
<FrameLayout
android:id="@+id/content_frame"
android:layout_height="wrap_content"
- android:layout_width="400dp"
+ android:layout_width="408dp"
android:layout_alignParentBottom="true"
+ android:layout_alignParentRight="true"
>
<ScrollView
android:id="@+id/notificationScroller"
@@ -144,7 +145,6 @@
android:animateLayoutChanges="true"
android:animationCache="false"
android:orientation="vertical"
- android:background="@drawable/status_bar_background"
android:clickable="true"
android:focusable="true"
android:descendantFocusability="afterDescendants"
diff --git a/packages/SystemUI/res/values-cs-xlarge/strings.xml b/packages/SystemUI/res/values-cs-xlarge/strings.xml
index 33a3a08..a0301bb 100644
--- a/packages/SystemUI/res/values-cs-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-cs-xlarge/strings.xml
@@ -21,9 +21,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
<skip />
- <string name="system_panel_battery_meter_format" msgid="5960820602924445469">"Baterie: <xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="system_panel_signal_meter_disconnected" msgid="2123001074951934237">"žádné připojení k internetu"</string>
- <string name="system_panel_signal_meter_wifi_ssid_format" msgid="5953412790748091921">"Wi-Fi: <xliff:g id="SSID">%s</xliff:g>"</string>
+ <!-- no translation found for system_panel_signal_meter_wifi_ssid_format (6261810256542749384) -->
+ <skip />
<string name="system_panel_signal_meter_wifi_nossid" msgid="160846667119240422">"Wi-Fi: připojeno"</string>
<string name="system_panel_signal_meter_wifi_connecting" msgid="4087640898624652649">"Wi-Fi: připojování"</string>
<string name="system_panel_signal_meter_data_connected" msgid="2171100321540926054">"Mob. data: připojeno"</string>
diff --git a/packages/SystemUI/res/values-cs/strings.xml b/packages/SystemUI/res/values-cs/strings.xml
index 828fae8..4e7f5cf 100644
--- a/packages/SystemUI/res/values-cs/strings.xml
+++ b/packages/SystemUI/res/values-cs/strings.xml
@@ -19,7 +19,7 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <!-- no translation found for app_label (4489004083283879149) -->
+ <!-- no translation found for app_label (7164937344850004466) -->
<skip />
<string name="status_bar_clear_all_button" msgid="7774721344716731603">"Vymazat"</string>
<!-- no translation found for status_bar_do_not_disturb_button (5812628897510997853) -->
diff --git a/packages/SystemUI/res/values-da-xlarge/strings.xml b/packages/SystemUI/res/values-da-xlarge/strings.xml
index 3d99be3..d75b5a51 100644
--- a/packages/SystemUI/res/values-da-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-da-xlarge/strings.xml
@@ -21,9 +21,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
<skip />
- <string name="system_panel_battery_meter_format" msgid="5960820602924445469">"Batteri: <xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="system_panel_signal_meter_disconnected" msgid="2123001074951934237">"ingen forbindelse"</string>
- <string name="system_panel_signal_meter_wifi_ssid_format" msgid="5953412790748091921">"Wi-Fi: <xliff:g id="SSID">%s</xliff:g>"</string>
+ <!-- no translation found for system_panel_signal_meter_wifi_ssid_format (6261810256542749384) -->
+ <skip />
<string name="system_panel_signal_meter_wifi_nossid" msgid="160846667119240422">"Wi-Fi forbundet"</string>
<string name="system_panel_signal_meter_wifi_connecting" msgid="4087640898624652649">"Wi-Fi: forbinder..."</string>
<string name="system_panel_signal_meter_data_connected" msgid="2171100321540926054">"Mobildata tilsluttet"</string>
diff --git a/packages/SystemUI/res/values-da/strings.xml b/packages/SystemUI/res/values-da/strings.xml
index 74def1c..aad6d71 100644
--- a/packages/SystemUI/res/values-da/strings.xml
+++ b/packages/SystemUI/res/values-da/strings.xml
@@ -19,7 +19,7 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <!-- no translation found for app_label (4489004083283879149) -->
+ <!-- no translation found for app_label (7164937344850004466) -->
<skip />
<string name="status_bar_clear_all_button" msgid="7774721344716731603">"Ryd"</string>
<!-- no translation found for status_bar_do_not_disturb_button (5812628897510997853) -->
diff --git a/packages/SystemUI/res/values-de-xlarge/strings.xml b/packages/SystemUI/res/values-de-xlarge/strings.xml
index 0717429..eb402da 100644
--- a/packages/SystemUI/res/values-de-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-de-xlarge/strings.xml
@@ -21,9 +21,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
<skip />
- <string name="system_panel_battery_meter_format" msgid="5960820602924445469">"Akku: <xliff:g id="NUMBER">%d</xliff:g> <xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="system_panel_signal_meter_disconnected" msgid="2123001074951934237">"Keine Verbindung"</string>
- <string name="system_panel_signal_meter_wifi_ssid_format" msgid="5953412790748091921">"WLAN: <xliff:g id="SSID">%s</xliff:g>"</string>
+ <!-- no translation found for system_panel_signal_meter_wifi_ssid_format (6261810256542749384) -->
+ <skip />
<string name="system_panel_signal_meter_wifi_nossid" msgid="160846667119240422">"WLAN: verbunden"</string>
<string name="system_panel_signal_meter_wifi_connecting" msgid="4087640898624652649">"WLAN: verbindet..."</string>
<string name="system_panel_signal_meter_data_connected" msgid="2171100321540926054">"Mobile Daten: aktiv"</string>
diff --git a/packages/SystemUI/res/values-de/strings.xml b/packages/SystemUI/res/values-de/strings.xml
index e033982..1674c22 100644
--- a/packages/SystemUI/res/values-de/strings.xml
+++ b/packages/SystemUI/res/values-de/strings.xml
@@ -19,7 +19,7 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <!-- no translation found for app_label (4489004083283879149) -->
+ <!-- no translation found for app_label (7164937344850004466) -->
<skip />
<string name="status_bar_clear_all_button" msgid="7774721344716731603">"Löschen"</string>
<!-- no translation found for status_bar_do_not_disturb_button (5812628897510997853) -->
diff --git a/packages/SystemUI/res/values-el-xlarge/strings.xml b/packages/SystemUI/res/values-el-xlarge/strings.xml
index 9c29e8b..63e59aa 100644
--- a/packages/SystemUI/res/values-el-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-el-xlarge/strings.xml
@@ -21,9 +21,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
<skip />
- <string name="system_panel_battery_meter_format" msgid="5960820602924445469">"Μπαταρία: <xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="system_panel_signal_meter_disconnected" msgid="2123001074951934237">"χωρίς σύνδ. σε Διαδ."</string>
- <string name="system_panel_signal_meter_wifi_ssid_format" msgid="5953412790748091921">"Wi-Fi: <xliff:g id="SSID">%s</xliff:g>"</string>
+ <!-- no translation found for system_panel_signal_meter_wifi_ssid_format (6261810256542749384) -->
+ <skip />
<string name="system_panel_signal_meter_wifi_nossid" msgid="160846667119240422">"Wi-Fi: συνδέθηκε"</string>
<string name="system_panel_signal_meter_wifi_connecting" msgid="4087640898624652649">"Wi-Fi: σύνδεση..."</string>
<string name="system_panel_signal_meter_data_connected" msgid="2171100321540926054">"Δεδ. κιν.: συνδέθηκε"</string>
diff --git a/packages/SystemUI/res/values-el/strings.xml b/packages/SystemUI/res/values-el/strings.xml
index ddcfc2c..bb7fab1 100644
--- a/packages/SystemUI/res/values-el/strings.xml
+++ b/packages/SystemUI/res/values-el/strings.xml
@@ -19,7 +19,7 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <!-- no translation found for app_label (4489004083283879149) -->
+ <!-- no translation found for app_label (7164937344850004466) -->
<skip />
<string name="status_bar_clear_all_button" msgid="7774721344716731603">"Εκκαθάριση"</string>
<!-- no translation found for status_bar_do_not_disturb_button (5812628897510997853) -->
diff --git a/packages/SystemUI/res/values-es-rUS-xlarge/strings.xml b/packages/SystemUI/res/values-es-rUS-xlarge/strings.xml
new file mode 100644
index 0000000..b4f8f27
--- /dev/null
+++ b/packages/SystemUI/res/values-es-rUS-xlarge/strings.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/**
+ * Copyright (c) 2010, 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.
+ */
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
+ <skip />
+ <string name="system_panel_signal_meter_disconnected" msgid="2123001074951934237">"no hay conexión a Internet"</string>
+ <!-- no translation found for system_panel_signal_meter_wifi_ssid_format (6261810256542749384) -->
+ <skip />
+ <string name="system_panel_signal_meter_wifi_nossid" msgid="160846667119240422">"Wi-Fi: conectado"</string>
+ <string name="system_panel_signal_meter_wifi_connecting" msgid="4087640898624652649">"Wi-Fi: conectando…"</string>
+ <string name="system_panel_signal_meter_data_connected" msgid="2171100321540926054">"Datos para cel: conectado"</string>
+ <string name="system_panel_signal_meter_data_connecting" msgid="7183001278053801143">"Datos para cel: conectando"</string>
+</resources>
diff --git a/packages/SystemUI/res/values-es-rUS/strings.xml b/packages/SystemUI/res/values-es-rUS/strings.xml
index aff9f4ca..c18de7d 100644
--- a/packages/SystemUI/res/values-es-rUS/strings.xml
+++ b/packages/SystemUI/res/values-es-rUS/strings.xml
@@ -19,7 +19,7 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <!-- no translation found for app_label (4489004083283879149) -->
+ <!-- no translation found for app_label (7164937344850004466) -->
<skip />
<string name="status_bar_clear_all_button" msgid="7774721344716731603">"Borrar"</string>
<!-- no translation found for status_bar_do_not_disturb_button (5812628897510997853) -->
@@ -35,8 +35,7 @@
<!-- no translation found for invalid_charger (4549105996740522523) -->
<skip />
<string name="battery_low_why" msgid="7279169609518386372">"Uso de la batería"</string>
- <!-- no translation found for system_panel_settings_button (7832600575390861653) -->
- <skip />
+ <string name="system_panel_settings_button" msgid="7832600575390861653">"Configuración"</string>
<string name="recent_tasks_title" msgid="3691764623638127888">"Reciente"</string>
<!-- no translation found for recent_tasks_empty (1905484479067697884) -->
<skip />
diff --git a/packages/SystemUI/res/values-es-xlarge/strings.xml b/packages/SystemUI/res/values-es-xlarge/strings.xml
index e7214b6..2045aa8 100644
--- a/packages/SystemUI/res/values-es-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-es-xlarge/strings.xml
@@ -21,9 +21,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
<skip />
- <string name="system_panel_battery_meter_format" msgid="5960820602924445469">"Batería: <xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="system_panel_signal_meter_disconnected" msgid="2123001074951934237">"sin conexión"</string>
- <string name="system_panel_signal_meter_wifi_ssid_format" msgid="5953412790748091921">"WiFi: <xliff:g id="SSID">%s</xliff:g>"</string>
+ <!-- no translation found for system_panel_signal_meter_wifi_ssid_format (6261810256542749384) -->
+ <skip />
<string name="system_panel_signal_meter_wifi_nossid" msgid="160846667119240422">"WiFi: conectado"</string>
<string name="system_panel_signal_meter_wifi_connecting" msgid="4087640898624652649">"WiFi: conectando..."</string>
<string name="system_panel_signal_meter_data_connected" msgid="2171100321540926054">"Datos móviles: conectados"</string>
diff --git a/packages/SystemUI/res/values-es/strings.xml b/packages/SystemUI/res/values-es/strings.xml
index 0b6af34..84b7e32 100644
--- a/packages/SystemUI/res/values-es/strings.xml
+++ b/packages/SystemUI/res/values-es/strings.xml
@@ -19,7 +19,7 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <!-- no translation found for app_label (4489004083283879149) -->
+ <!-- no translation found for app_label (7164937344850004466) -->
<skip />
<string name="status_bar_clear_all_button" msgid="7774721344716731603">"Borrar"</string>
<!-- no translation found for status_bar_do_not_disturb_button (5812628897510997853) -->
diff --git a/packages/SystemUI/res/values-fr-xlarge/strings.xml b/packages/SystemUI/res/values-fr-xlarge/strings.xml
index 8566a96..36c6f77 100644
--- a/packages/SystemUI/res/values-fr-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-fr-xlarge/strings.xml
@@ -21,9 +21,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
<skip />
- <string name="system_panel_battery_meter_format" msgid="5960820602924445469">"Batterie : <xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="system_panel_signal_meter_disconnected" msgid="2123001074951934237">"Internet indisponible"</string>
- <string name="system_panel_signal_meter_wifi_ssid_format" msgid="5953412790748091921">"Wi-Fi : <xliff:g id="SSID">%s</xliff:g>"</string>
+ <!-- no translation found for system_panel_signal_meter_wifi_ssid_format (6261810256542749384) -->
+ <skip />
<string name="system_panel_signal_meter_wifi_nossid" msgid="160846667119240422">"Wi-Fi : connecté"</string>
<string name="system_panel_signal_meter_wifi_connecting" msgid="4087640898624652649">"Wi-Fi : connexion..."</string>
<string name="system_panel_signal_meter_data_connected" msgid="2171100321540926054">"Données mobiles connectées"</string>
diff --git a/packages/SystemUI/res/values-fr/strings.xml b/packages/SystemUI/res/values-fr/strings.xml
index 0e2a765..914e98e 100644
--- a/packages/SystemUI/res/values-fr/strings.xml
+++ b/packages/SystemUI/res/values-fr/strings.xml
@@ -19,7 +19,7 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <!-- no translation found for app_label (4489004083283879149) -->
+ <!-- no translation found for app_label (7164937344850004466) -->
<skip />
<string name="status_bar_clear_all_button" msgid="7774721344716731603">"Effacer"</string>
<!-- no translation found for status_bar_do_not_disturb_button (5812628897510997853) -->
diff --git a/packages/SystemUI/res/values-it-xlarge/strings.xml b/packages/SystemUI/res/values-it-xlarge/strings.xml
index 62ce9f2..512dfa4 100644
--- a/packages/SystemUI/res/values-it-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-it-xlarge/strings.xml
@@ -21,9 +21,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
<skip />
- <string name="system_panel_battery_meter_format" msgid="5960820602924445469">"Batteria: <xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="system_panel_signal_meter_disconnected" msgid="2123001074951934237">"no conness. Internet"</string>
- <string name="system_panel_signal_meter_wifi_ssid_format" msgid="5953412790748091921">"Wi-Fi: <xliff:g id="SSID">%s</xliff:g>"</string>
+ <!-- no translation found for system_panel_signal_meter_wifi_ssid_format (6261810256542749384) -->
+ <skip />
<string name="system_panel_signal_meter_wifi_nossid" msgid="160846667119240422">"Wi-Fi: connesso"</string>
<string name="system_panel_signal_meter_wifi_connecting" msgid="4087640898624652649">"Wi-Fi: connessione…"</string>
<string name="system_panel_signal_meter_data_connected" msgid="2171100321540926054">"Dati cell.: connesso"</string>
diff --git a/packages/SystemUI/res/values-it/strings.xml b/packages/SystemUI/res/values-it/strings.xml
index c45bb4c..849be2e 100644
--- a/packages/SystemUI/res/values-it/strings.xml
+++ b/packages/SystemUI/res/values-it/strings.xml
@@ -19,7 +19,7 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <!-- no translation found for app_label (4489004083283879149) -->
+ <!-- no translation found for app_label (7164937344850004466) -->
<skip />
<string name="status_bar_clear_all_button" msgid="7774721344716731603">"Cancella"</string>
<!-- no translation found for status_bar_do_not_disturb_button (5812628897510997853) -->
diff --git a/packages/SystemUI/res/values-ja-xlarge/strings.xml b/packages/SystemUI/res/values-ja-xlarge/strings.xml
index 72e6025..01dacb3 100644
--- a/packages/SystemUI/res/values-ja-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-ja-xlarge/strings.xml
@@ -21,9 +21,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
<skip />
- <string name="system_panel_battery_meter_format" msgid="5960820602924445469">"電池: <xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="system_panel_signal_meter_disconnected" msgid="2123001074951934237">"インターネット接続なし"</string>
- <string name="system_panel_signal_meter_wifi_ssid_format" msgid="5953412790748091921">"Wi-Fi: <xliff:g id="SSID">%s</xliff:g>"</string>
+ <!-- no translation found for system_panel_signal_meter_wifi_ssid_format (6261810256542749384) -->
+ <skip />
<string name="system_panel_signal_meter_wifi_nossid" msgid="160846667119240422">"Wi-Fi: 接続されました"</string>
<string name="system_panel_signal_meter_wifi_connecting" msgid="4087640898624652649">"Wi-Fi: 接続中..."</string>
<string name="system_panel_signal_meter_data_connected" msgid="2171100321540926054">"データ通信: 接続されました"</string>
diff --git a/packages/SystemUI/res/values-ja/strings.xml b/packages/SystemUI/res/values-ja/strings.xml
index f6a8e5f..f787541 100644
--- a/packages/SystemUI/res/values-ja/strings.xml
+++ b/packages/SystemUI/res/values-ja/strings.xml
@@ -19,7 +19,7 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <!-- no translation found for app_label (4489004083283879149) -->
+ <!-- no translation found for app_label (7164937344850004466) -->
<skip />
<string name="status_bar_clear_all_button" msgid="7774721344716731603">"通知を消去"</string>
<!-- no translation found for status_bar_do_not_disturb_button (5812628897510997853) -->
diff --git a/packages/SystemUI/res/values-ko-xlarge/strings.xml b/packages/SystemUI/res/values-ko-xlarge/strings.xml
index 8aa38e1..a26940a 100644
--- a/packages/SystemUI/res/values-ko-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-ko-xlarge/strings.xml
@@ -21,9 +21,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
<skip />
- <string name="system_panel_battery_meter_format" msgid="5960820602924445469">"배터리: <xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="system_panel_signal_meter_disconnected" msgid="2123001074951934237">"인터넷에 연결되지 않음"</string>
- <string name="system_panel_signal_meter_wifi_ssid_format" msgid="5953412790748091921">"Wi-Fi: <xliff:g id="SSID">%s</xliff:g>"</string>
+ <!-- no translation found for system_panel_signal_meter_wifi_ssid_format (6261810256542749384) -->
+ <skip />
<string name="system_panel_signal_meter_wifi_nossid" msgid="160846667119240422">"Wi-Fi: 연결됨"</string>
<string name="system_panel_signal_meter_wifi_connecting" msgid="4087640898624652649">"Wi-Fi: 연결 중…"</string>
<string name="system_panel_signal_meter_data_connected" msgid="2171100321540926054">"모바일 데이터: 연결됨"</string>
diff --git a/packages/SystemUI/res/values-ko/strings.xml b/packages/SystemUI/res/values-ko/strings.xml
index 1189194..ff82d99 100644
--- a/packages/SystemUI/res/values-ko/strings.xml
+++ b/packages/SystemUI/res/values-ko/strings.xml
@@ -19,7 +19,7 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <!-- no translation found for app_label (4489004083283879149) -->
+ <!-- no translation found for app_label (7164937344850004466) -->
<skip />
<string name="status_bar_clear_all_button" msgid="7774721344716731603">"지우기"</string>
<!-- no translation found for status_bar_do_not_disturb_button (5812628897510997853) -->
diff --git a/packages/SystemUI/res/values-nb-xlarge/strings.xml b/packages/SystemUI/res/values-nb-xlarge/strings.xml
index 8d59b438..9a95faf 100644
--- a/packages/SystemUI/res/values-nb-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-nb-xlarge/strings.xml
@@ -21,9 +21,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
<skip />
- <string name="system_panel_battery_meter_format" msgid="5960820602924445469">"Batteri: <xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="system_panel_signal_meter_disconnected" msgid="2123001074951934237">"ingen Int.-tilkobl."</string>
- <string name="system_panel_signal_meter_wifi_ssid_format" msgid="5953412790748091921">"Wi-Fi: <xliff:g id="SSID">%s</xliff:g>"</string>
+ <!-- no translation found for system_panel_signal_meter_wifi_ssid_format (6261810256542749384) -->
+ <skip />
<string name="system_panel_signal_meter_wifi_nossid" msgid="160846667119240422">"Wi-Fi: tilkoblet"</string>
<string name="system_panel_signal_meter_wifi_connecting" msgid="4087640898624652649">"Wi-Fi: kobler til"</string>
<string name="system_panel_signal_meter_data_connected" msgid="2171100321540926054">"Mob.data: tilkoblet"</string>
diff --git a/packages/SystemUI/res/values-nb/strings.xml b/packages/SystemUI/res/values-nb/strings.xml
index b5f4676..aefd2ec 100644
--- a/packages/SystemUI/res/values-nb/strings.xml
+++ b/packages/SystemUI/res/values-nb/strings.xml
@@ -19,7 +19,7 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <!-- no translation found for app_label (4489004083283879149) -->
+ <!-- no translation found for app_label (7164937344850004466) -->
<skip />
<string name="status_bar_clear_all_button" msgid="7774721344716731603">"Fjern"</string>
<!-- no translation found for status_bar_do_not_disturb_button (5812628897510997853) -->
diff --git a/packages/SystemUI/res/values-nl-xlarge/strings.xml b/packages/SystemUI/res/values-nl-xlarge/strings.xml
index 750f20f..8ab6234 100644
--- a/packages/SystemUI/res/values-nl-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-nl-xlarge/strings.xml
@@ -21,9 +21,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
<skip />
- <string name="system_panel_battery_meter_format" msgid="5960820602924445469">"Accu: <xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="system_panel_signal_meter_disconnected" msgid="2123001074951934237">"geen internet"</string>
- <string name="system_panel_signal_meter_wifi_ssid_format" msgid="5953412790748091921">"Wi-Fi: <xliff:g id="SSID">%s</xliff:g>"</string>
+ <!-- no translation found for system_panel_signal_meter_wifi_ssid_format (6261810256542749384) -->
+ <skip />
<string name="system_panel_signal_meter_wifi_nossid" msgid="160846667119240422">"Wi-Fi: verbonden"</string>
<string name="system_panel_signal_meter_wifi_connecting" msgid="4087640898624652649">"Wi-Fi: verbinden…"</string>
<string name="system_panel_signal_meter_data_connected" msgid="2171100321540926054">"Mobiel: verbonden"</string>
diff --git a/packages/SystemUI/res/values-nl/strings.xml b/packages/SystemUI/res/values-nl/strings.xml
index ec8fcfb..e7fd55b 100644
--- a/packages/SystemUI/res/values-nl/strings.xml
+++ b/packages/SystemUI/res/values-nl/strings.xml
@@ -19,7 +19,7 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <!-- no translation found for app_label (4489004083283879149) -->
+ <!-- no translation found for app_label (7164937344850004466) -->
<skip />
<string name="status_bar_clear_all_button" msgid="7774721344716731603">"Wissen"</string>
<!-- no translation found for status_bar_do_not_disturb_button (5812628897510997853) -->
diff --git a/packages/SystemUI/res/values-pl-xlarge/strings.xml b/packages/SystemUI/res/values-pl-xlarge/strings.xml
index d816068..a11754b 100644
--- a/packages/SystemUI/res/values-pl-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-pl-xlarge/strings.xml
@@ -21,9 +21,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
<skip />
- <string name="system_panel_battery_meter_format" msgid="5960820602924445469">"Bateria: <xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="system_panel_signal_meter_disconnected" msgid="2123001074951934237">"brak połączenia internetowego"</string>
- <string name="system_panel_signal_meter_wifi_ssid_format" msgid="5953412790748091921">"Wi-Fi: <xliff:g id="SSID">%s</xliff:g>"</string>
+ <!-- no translation found for system_panel_signal_meter_wifi_ssid_format (6261810256542749384) -->
+ <skip />
<string name="system_panel_signal_meter_wifi_nossid" msgid="160846667119240422">"Wi-Fi: połączono"</string>
<string name="system_panel_signal_meter_wifi_connecting" msgid="4087640898624652649">"Wi-Fi: łączenie…"</string>
<string name="system_panel_signal_meter_data_connected" msgid="2171100321540926054">"Sieć komórkowa: połączono"</string>
diff --git a/packages/SystemUI/res/values-pl/strings.xml b/packages/SystemUI/res/values-pl/strings.xml
index 7034a6d..108ef13 100644
--- a/packages/SystemUI/res/values-pl/strings.xml
+++ b/packages/SystemUI/res/values-pl/strings.xml
@@ -19,7 +19,7 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <!-- no translation found for app_label (4489004083283879149) -->
+ <!-- no translation found for app_label (7164937344850004466) -->
<skip />
<string name="status_bar_clear_all_button" msgid="7774721344716731603">"Wyczyść"</string>
<!-- no translation found for status_bar_do_not_disturb_button (5812628897510997853) -->
diff --git a/packages/SystemUI/res/values-pt-rPT-xlarge/strings.xml b/packages/SystemUI/res/values-pt-rPT-xlarge/strings.xml
index 4aa75b8..9f20932 100644
--- a/packages/SystemUI/res/values-pt-rPT-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-pt-rPT-xlarge/strings.xml
@@ -21,9 +21,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
<skip />
- <string name="system_panel_battery_meter_format" msgid="5960820602924445469">"Bateria: <xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="system_panel_signal_meter_disconnected" msgid="2123001074951934237">"Sem ligação à internet"</string>
- <string name="system_panel_signal_meter_wifi_ssid_format" msgid="5953412790748091921">"Wi-Fi: <xliff:g id="SSID">%s</xliff:g>"</string>
+ <!-- no translation found for system_panel_signal_meter_wifi_ssid_format (6261810256542749384) -->
+ <skip />
<string name="system_panel_signal_meter_wifi_nossid" msgid="160846667119240422">"Wi-Fi: ligado"</string>
<string name="system_panel_signal_meter_wifi_connecting" msgid="4087640898624652649">"Wi-Fi: a ligar…"</string>
<string name="system_panel_signal_meter_data_connected" msgid="2171100321540926054">"Dados móveis: ligado"</string>
diff --git a/packages/SystemUI/res/values-pt-rPT/strings.xml b/packages/SystemUI/res/values-pt-rPT/strings.xml
index 80028a2..1f38ed7 100644
--- a/packages/SystemUI/res/values-pt-rPT/strings.xml
+++ b/packages/SystemUI/res/values-pt-rPT/strings.xml
@@ -19,7 +19,7 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <!-- no translation found for app_label (4489004083283879149) -->
+ <!-- no translation found for app_label (7164937344850004466) -->
<skip />
<string name="status_bar_clear_all_button" msgid="7774721344716731603">"Limpar"</string>
<!-- no translation found for status_bar_do_not_disturb_button (5812628897510997853) -->
diff --git a/packages/SystemUI/res/values-pt-xlarge/strings.xml b/packages/SystemUI/res/values-pt-xlarge/strings.xml
index 811dae8..481263f 100644
--- a/packages/SystemUI/res/values-pt-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-pt-xlarge/strings.xml
@@ -21,9 +21,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
<skip />
- <string name="system_panel_battery_meter_format" msgid="5960820602924445469">"Bateria: <xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="system_panel_signal_meter_disconnected" msgid="2123001074951934237">"Sem conex. à intern."</string>
- <string name="system_panel_signal_meter_wifi_ssid_format" msgid="5953412790748091921">"Wi-Fi: <xliff:g id="SSID">%s</xliff:g>"</string>
+ <!-- no translation found for system_panel_signal_meter_wifi_ssid_format (6261810256542749384) -->
+ <skip />
<string name="system_panel_signal_meter_wifi_nossid" msgid="160846667119240422">"Wi-Fi: conectado"</string>
<string name="system_panel_signal_meter_wifi_connecting" msgid="4087640898624652649">"Wi-Fi: conectando…"</string>
<string name="system_panel_signal_meter_data_connected" msgid="2171100321540926054">"Dados móv: conectado"</string>
diff --git a/packages/SystemUI/res/values-pt/strings.xml b/packages/SystemUI/res/values-pt/strings.xml
index 006379c..83bde68 100644
--- a/packages/SystemUI/res/values-pt/strings.xml
+++ b/packages/SystemUI/res/values-pt/strings.xml
@@ -19,7 +19,7 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <!-- no translation found for app_label (4489004083283879149) -->
+ <!-- no translation found for app_label (7164937344850004466) -->
<skip />
<string name="status_bar_clear_all_button" msgid="7774721344716731603">"Limpar"</string>
<!-- no translation found for status_bar_do_not_disturb_button (5812628897510997853) -->
diff --git a/packages/SystemUI/res/values-rm/strings.xml b/packages/SystemUI/res/values-rm/strings.xml
index 646d7f5..8a5014e 100644
--- a/packages/SystemUI/res/values-rm/strings.xml
+++ b/packages/SystemUI/res/values-rm/strings.xml
@@ -19,7 +19,7 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <!-- no translation found for app_label (4489004083283879149) -->
+ <!-- no translation found for app_label (7164937344850004466) -->
<skip />
<string name="status_bar_clear_all_button" msgid="7774721344716731603">"Stizzar"</string>
<!-- no translation found for status_bar_do_not_disturb_button (5812628897510997853) -->
diff --git a/packages/SystemUI/res/values-ru-xlarge/strings.xml b/packages/SystemUI/res/values-ru-xlarge/strings.xml
index f602b34..7514d4b 100644
--- a/packages/SystemUI/res/values-ru-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-ru-xlarge/strings.xml
@@ -21,9 +21,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
<skip />
- <string name="system_panel_battery_meter_format" msgid="5960820602924445469">"Батарея: <xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="system_panel_signal_meter_disconnected" msgid="2123001074951934237">"связь отсутствует"</string>
- <string name="system_panel_signal_meter_wifi_ssid_format" msgid="5953412790748091921">"Wi-Fi: <xliff:g id="SSID">%s</xliff:g>"</string>
+ <!-- no translation found for system_panel_signal_meter_wifi_ssid_format (6261810256542749384) -->
+ <skip />
<string name="system_panel_signal_meter_wifi_nossid" msgid="160846667119240422">"Wi-Fi: подключено"</string>
<string name="system_panel_signal_meter_wifi_connecting" msgid="4087640898624652649">"Wi-Fi: подключение..."</string>
<string name="system_panel_signal_meter_data_connected" msgid="2171100321540926054">"Моб. данные: подключено"</string>
diff --git a/packages/SystemUI/res/values-ru/strings.xml b/packages/SystemUI/res/values-ru/strings.xml
index d598ff3..f701fe3 100644
--- a/packages/SystemUI/res/values-ru/strings.xml
+++ b/packages/SystemUI/res/values-ru/strings.xml
@@ -19,7 +19,7 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <!-- no translation found for app_label (4489004083283879149) -->
+ <!-- no translation found for app_label (7164937344850004466) -->
<skip />
<string name="status_bar_clear_all_button" msgid="7774721344716731603">"Очистить"</string>
<!-- no translation found for status_bar_do_not_disturb_button (5812628897510997853) -->
diff --git a/packages/SystemUI/res/values-sv-xlarge/strings.xml b/packages/SystemUI/res/values-sv-xlarge/strings.xml
index 20d7081..ccc30ec 100644
--- a/packages/SystemUI/res/values-sv-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-sv-xlarge/strings.xml
@@ -21,9 +21,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
<skip />
- <string name="system_panel_battery_meter_format" msgid="5960820602924445469">"Batteri: <xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="system_panel_signal_meter_disconnected" msgid="2123001074951934237">"ingen Internetanslutn."</string>
- <string name="system_panel_signal_meter_wifi_ssid_format" msgid="5953412790748091921">"Wi-Fi: <xliff:g id="SSID">%s</xliff:g>"</string>
+ <!-- no translation found for system_panel_signal_meter_wifi_ssid_format (6261810256542749384) -->
+ <skip />
<string name="system_panel_signal_meter_wifi_nossid" msgid="160846667119240422">"Wi-Fi: ansluten"</string>
<string name="system_panel_signal_meter_wifi_connecting" msgid="4087640898624652649">"Wi-Fi: ansluter..."</string>
<string name="system_panel_signal_meter_data_connected" msgid="2171100321540926054">"Mobildata: ansluten"</string>
diff --git a/packages/SystemUI/res/values-sv/strings.xml b/packages/SystemUI/res/values-sv/strings.xml
index 6ecdfa8..4f9cfd0 100644
--- a/packages/SystemUI/res/values-sv/strings.xml
+++ b/packages/SystemUI/res/values-sv/strings.xml
@@ -19,7 +19,7 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <!-- no translation found for app_label (4489004083283879149) -->
+ <!-- no translation found for app_label (7164937344850004466) -->
<skip />
<string name="status_bar_clear_all_button" msgid="7774721344716731603">"Ta bort"</string>
<!-- no translation found for status_bar_do_not_disturb_button (5812628897510997853) -->
diff --git a/packages/SystemUI/res/values-tr-xlarge/strings.xml b/packages/SystemUI/res/values-tr-xlarge/strings.xml
index 7782627..008006d 100644
--- a/packages/SystemUI/res/values-tr-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-tr-xlarge/strings.xml
@@ -21,9 +21,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
<skip />
- <string name="system_panel_battery_meter_format" msgid="5960820602924445469">"Pil: <xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="system_panel_signal_meter_disconnected" msgid="2123001074951934237">"internet bağlantısı yok"</string>
- <string name="system_panel_signal_meter_wifi_ssid_format" msgid="5953412790748091921">"Kablosuz: <xliff:g id="SSID">%s</xliff:g>"</string>
+ <!-- no translation found for system_panel_signal_meter_wifi_ssid_format (6261810256542749384) -->
+ <skip />
<string name="system_panel_signal_meter_wifi_nossid" msgid="160846667119240422">"Kablosuz: bağlı"</string>
<string name="system_panel_signal_meter_wifi_connecting" msgid="4087640898624652649">"Kablosuz: bağlanıyor..."</string>
<string name="system_panel_signal_meter_data_connected" msgid="2171100321540926054">"Mobil veri: bağlı"</string>
diff --git a/packages/SystemUI/res/values-tr/strings.xml b/packages/SystemUI/res/values-tr/strings.xml
index 059a4f1..cef5539 100644
--- a/packages/SystemUI/res/values-tr/strings.xml
+++ b/packages/SystemUI/res/values-tr/strings.xml
@@ -19,7 +19,7 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <!-- no translation found for app_label (4489004083283879149) -->
+ <!-- no translation found for app_label (7164937344850004466) -->
<skip />
<string name="status_bar_clear_all_button" msgid="7774721344716731603">"Temizle"</string>
<!-- no translation found for status_bar_do_not_disturb_button (5812628897510997853) -->
diff --git a/packages/SystemUI/res/values-zh-rCN-xlarge/strings.xml b/packages/SystemUI/res/values-zh-rCN-xlarge/strings.xml
index 1c3624b..68b0fac 100644
--- a/packages/SystemUI/res/values-zh-rCN-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-zh-rCN-xlarge/strings.xml
@@ -21,9 +21,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
<skip />
- <string name="system_panel_battery_meter_format" msgid="5960820602924445469">"电池:<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="system_panel_signal_meter_disconnected" msgid="2123001074951934237">"无互联网连接"</string>
- <string name="system_panel_signal_meter_wifi_ssid_format" msgid="5953412790748091921">"Wi-Fi:<xliff:g id="SSID">%s</xliff:g>"</string>
+ <!-- no translation found for system_panel_signal_meter_wifi_ssid_format (6261810256542749384) -->
+ <skip />
<string name="system_panel_signal_meter_wifi_nossid" msgid="160846667119240422">"Wi-Fi:已连接"</string>
<string name="system_panel_signal_meter_wifi_connecting" msgid="4087640898624652649">"Wi-Fi:正在连接..."</string>
<string name="system_panel_signal_meter_data_connected" msgid="2171100321540926054">"移动数据:已连接"</string>
diff --git a/packages/SystemUI/res/values-zh-rCN/strings.xml b/packages/SystemUI/res/values-zh-rCN/strings.xml
index 9c1f71f..9ed98c9 100644
--- a/packages/SystemUI/res/values-zh-rCN/strings.xml
+++ b/packages/SystemUI/res/values-zh-rCN/strings.xml
@@ -19,7 +19,7 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <!-- no translation found for app_label (4489004083283879149) -->
+ <!-- no translation found for app_label (7164937344850004466) -->
<skip />
<string name="status_bar_clear_all_button" msgid="7774721344716731603">"清除"</string>
<!-- no translation found for status_bar_do_not_disturb_button (5812628897510997853) -->
diff --git a/packages/SystemUI/res/values-zh-rTW-xlarge/strings.xml b/packages/SystemUI/res/values-zh-rTW-xlarge/strings.xml
index 720c043..bc41d11 100644
--- a/packages/SystemUI/res/values-zh-rTW-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-zh-rTW-xlarge/strings.xml
@@ -21,9 +21,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
<skip />
- <string name="system_panel_battery_meter_format" msgid="5960820602924445469">"電池:<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="system_panel_signal_meter_disconnected" msgid="2123001074951934237">"沒有網際網路連線"</string>
- <string name="system_panel_signal_meter_wifi_ssid_format" msgid="5953412790748091921">"Wi-Fi:<xliff:g id="SSID">%s</xliff:g>"</string>
+ <!-- no translation found for system_panel_signal_meter_wifi_ssid_format (6261810256542749384) -->
+ <skip />
<string name="system_panel_signal_meter_wifi_nossid" msgid="160846667119240422">"Wi-F:已連線"</string>
<string name="system_panel_signal_meter_wifi_connecting" msgid="4087640898624652649">"Wi-Fi:連線中..."</string>
<string name="system_panel_signal_meter_data_connected" msgid="2171100321540926054">"行動數據:已連線"</string>
diff --git a/packages/SystemUI/res/values-zh-rTW/strings.xml b/packages/SystemUI/res/values-zh-rTW/strings.xml
index 11051be..4dc323b 100644
--- a/packages/SystemUI/res/values-zh-rTW/strings.xml
+++ b/packages/SystemUI/res/values-zh-rTW/strings.xml
@@ -19,7 +19,7 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <!-- no translation found for app_label (4489004083283879149) -->
+ <!-- no translation found for app_label (7164937344850004466) -->
<skip />
<string name="status_bar_clear_all_button" msgid="7774721344716731603">"清除"</string>
<!-- no translation found for status_bar_do_not_disturb_button (5812628897510997853) -->
diff --git a/packages/SystemUI/res/values/colors.xml b/packages/SystemUI/res/values/colors.xml
index a0def6b..fd2cf99 100644
--- a/packages/SystemUI/res/values/colors.xml
+++ b/packages/SystemUI/res/values/colors.xml
@@ -18,4 +18,5 @@
-->
<resources>
<drawable name="notification_number_text_color">#ffffffff</drawable>
+ <drawable name="notification_item_background_color">#ff000000</drawable>
</resources>
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java
index 0531f9d..7c97ac7 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java
@@ -31,6 +31,8 @@
import android.content.res.Resources;
import android.graphics.PixelFormat;
import android.graphics.Rect;
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.LayerDrawable;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
@@ -75,12 +77,15 @@
public static final int MSG_CLOSE_NOTIFICATION_PEEK = 1003;
public static final int MSG_OPEN_RECENTS_PANEL = 1020;
public static final int MSG_CLOSE_RECENTS_PANEL = 1021;
- public static final int MSG_LIGHTS_ON = 1030;
- public static final int MSG_LIGHTS_OUT = 1031;
+ public static final int MSG_HIDE_SHADOWS = 1030;
+ public static final int MSG_SHOW_SHADOWS = 1031;
+ public static final int MSG_RESTORE_SHADOWS = 1032;
private static final int MAX_IMAGE_LEVEL = 10000;
private static final boolean USE_2D_RECENTS = true;
+ public static final int LIGHTS_ON_DELAY = 5000;
+
int mIconSize;
H mHandler = new H();
@@ -93,6 +98,9 @@
View mNotificationTrigger;
NotificationIconArea mNotificationIconArea;
View mNavigationArea;
+
+ View mBackButton;
+ View mHomeButton;
View mMenuButton;
View mRecentButton;
@@ -113,7 +121,10 @@
NetworkController mNetworkController;
View mBarContents;
- View mCurtains;
+
+ // lights out support
+ View mBackShadow, mHomeShadow, mRecentShadow, mMenuShadow, mNotificationShadow;
+ ShadowController mShadowController;
NotificationIconArea.IconLayout mIconLayout;
@@ -245,14 +256,21 @@
sb.setHandler(mHandler);
mBarContents = sb.findViewById(R.id.bar_contents);
- mCurtains = sb.findViewById(R.id.lights_out);
- mRecentButton = sb.findViewById(R.id.recent_apps);
- mRecentButton.setOnClickListener(mOnClickListener);
+ // "shadows" of the status bar features, for lights-out mode
+ mBackShadow = sb.findViewById(R.id.back_shadow);
+ mHomeShadow = sb.findViewById(R.id.home_shadow);
+ mRecentShadow = sb.findViewById(R.id.recent_shadow);
+ mMenuShadow = sb.findViewById(R.id.menu_shadow);
+ mNotificationShadow = sb.findViewById(R.id.notification_shadow);
- SetLightsOnListener on = new SetLightsOnListener(true);
- mCurtains.setOnClickListener(on);
- mCurtains.setOnLongClickListener(on);
+ mShadowController = new ShadowController(false);
+
+ mBackShadow.setOnTouchListener(mShadowController.makeTouchListener());
+ mHomeShadow.setOnTouchListener(mShadowController.makeTouchListener());
+ mRecentShadow.setOnTouchListener(mShadowController.makeTouchListener());
+ mMenuShadow.setOnTouchListener(mShadowController.makeTouchListener());
+ mNotificationShadow.setOnTouchListener(mShadowController.makeTouchListener());
// the whole right-hand side of the bar
mNotificationArea = sb.findViewById(R.id.notificationArea);
@@ -282,10 +300,15 @@
// The navigation buttons
mNavigationArea = sb.findViewById(R.id.navigationArea);
+ mBackButton = mNavigationArea.findViewById(R.id.back);
+ mHomeButton = mNavigationArea.findViewById(R.id.home);
mMenuButton = mNavigationArea.findViewById(R.id.menu);
+ mRecentButton = mNavigationArea.findViewById(R.id.recent_apps);
+ Slog.d(TAG, "rec=" + mRecentButton + ", listener=" + mOnClickListener);
+ mRecentButton.setOnClickListener(mOnClickListener);
// The bar contents buttons
- mInputMethodButton = (InputMethodButton) mBarContents.findViewById(R.id.imeButton);
+ mInputMethodButton = (InputMethodButton) sb.findViewById(R.id.imeButton);
// set the initial view visibility
setAreThereNotifications();
@@ -362,6 +385,8 @@
mNotificationPeekWindow.setVisibility(View.GONE);
mNotificationPanel.setVisibility(View.VISIBLE);
+
+ // XXX: need to synchronize with shadows here
mNotificationArea.setVisibility(View.GONE);
}
break;
@@ -369,6 +394,8 @@
if (DEBUG) Slog.d(TAG, "closing notifications panel");
if (mNotificationPanel.getVisibility() == View.VISIBLE) {
mNotificationPanel.setVisibility(View.GONE);
+
+ // XXX: need to synchronize with shadows here
mNotificationArea.setVisibility(View.VISIBLE);
}
break;
@@ -380,14 +407,18 @@
if (DEBUG) Slog.d(TAG, "closing recents panel");
if (mRecentsPanel != null) mRecentsPanel.setVisibility(View.GONE);
break;
- case MSG_LIGHTS_ON:
- setViewVisibility(mCurtains, View.GONE, R.anim.lights_out_out);
- setViewVisibility(mBarContents, View.VISIBLE, R.anim.status_bar_in);
+ case MSG_HIDE_SHADOWS:
+ if (DEBUG) Slog.d(TAG, "hiding shadows (lights on)");
+ mShadowController.hideAllShadows();
break;
- case MSG_LIGHTS_OUT:
+ case MSG_SHOW_SHADOWS:
+ if (DEBUG) Slog.d(TAG, "showing shadows (lights out)");
animateCollapse();
- setViewVisibility(mCurtains, View.VISIBLE, R.anim.lights_out_in);
- setViewVisibility(mBarContents, View.GONE, R.anim.status_bar_out);
+ mShadowController.showAllShadows();
+ break;
+ case MSG_RESTORE_SHADOWS:
+ if (DEBUG) Slog.d(TAG, "quickly re-showing shadows if appropriate");
+ mShadowController.refresh();
break;
}
}
@@ -605,16 +636,16 @@
// called by StatusBar
@Override
public void setLightsOn(boolean on) {
- mHandler.removeMessages(MSG_LIGHTS_OUT);
- mHandler.removeMessages(MSG_LIGHTS_ON);
- mHandler.sendEmptyMessage(on ? MSG_LIGHTS_ON : MSG_LIGHTS_OUT);
+ mHandler.removeMessages(MSG_SHOW_SHADOWS);
+ mHandler.removeMessages(MSG_HIDE_SHADOWS);
+ mHandler.sendEmptyMessage(on ? MSG_HIDE_SHADOWS : MSG_SHOW_SHADOWS);
}
public void setMenuKeyVisible(boolean visible) {
if (DEBUG) {
Slog.d(TAG, (visible?"showing":"hiding") + " the MENU button");
}
- mMenuButton.setVisibility(visible ? View.VISIBLE : View.INVISIBLE);
+ mMenuButton.setVisibility(visible ? View.VISIBLE : View.GONE);
}
public void setIMEButtonVisible(boolean visible) {
@@ -664,7 +695,7 @@
};
public void onClickNotificationTrigger() {
- if (DEBUG) Slog.d(TAG, "clicked notification icons");
+ if (DEBUG) Slog.d(TAG, "clicked notification icons; disabled=" + mDisabled);
if ((mDisabled & StatusBarManager.DISABLE_EXPAND) == 0) {
if (!mNotificationsOn) {
mNotificationsOn = true;
@@ -681,7 +712,7 @@
}
public void onClickRecentButton() {
- if (DEBUG) Slog.d(TAG, "clicked recent apps");
+ if (DEBUG) Slog.d(TAG, "clicked recent apps; disabled=" + mDisabled);
if (mRecentsPanel == null) {
Intent intent = new Intent();
intent.setClass(mContext, RecentApplicationsActivity.class);
@@ -939,6 +970,13 @@
}
}
+ void workAroundBadLayerDrawableOpacity(View v) {
+ LayerDrawable d = (LayerDrawable)v.getBackground();
+ v.setBackgroundDrawable(null);
+ d.setOpacity(PixelFormat.TRANSLUCENT);
+ v.setBackgroundDrawable(d);
+ }
+
private boolean inflateViews(NotificationData.Entry entry, ViewGroup parent) {
StatusBarNotification sbn = entry.notification;
RemoteViews remoteViews = sbn.notification.contentView;
@@ -950,6 +988,7 @@
LayoutInflater inflater = (LayoutInflater)mContext.getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
View row = inflater.inflate(R.layout.status_bar_latest_event, parent, false);
+ workAroundBadLayerDrawableOpacity(row);
View vetoButton = row.findViewById(R.id.veto);
if (entry.notification.isClearable()) {
final String _pkg = sbn.pkg;
@@ -1006,23 +1045,108 @@
return true;
}
- public class SetLightsOnListener implements View.OnLongClickListener,
- View.OnClickListener {
- private boolean mOn;
+ public class ShadowController {
+ boolean mShowShadows;
+ View mTouchTarget;
- SetLightsOnListener(boolean on) {
- mOn = on;
+ ShadowController(boolean showShadows) {
+ mShowShadows = showShadows;
+ mTouchTarget = null;
}
- public void onClick(View v) {
- setLightsOn(mOn);
+ public boolean getShadowState() {
+ return mShowShadows;
}
- public boolean onLongClick(View v) {
- setLightsOn(mOn);
- return true;
+ public View.OnTouchListener makeTouchListener() {
+ return new View.OnTouchListener() {
+ public boolean onTouch(View v, MotionEvent ev) {
+ final int action = ev.getAction();
+
+ if (DEBUG) Slog.d(TAG, "ShadowController: v=" + v + ", ev=" + ev);
+
+ // currently redirecting events?
+ if (mTouchTarget == null) {
+ if (v == mBackShadow) {
+ mTouchTarget = mBackButton;
+ } else if (v == mHomeShadow) {
+ mTouchTarget = mHomeButton;
+ } else if (v == mMenuShadow) {
+ mTouchTarget = mMenuButton;
+ } else if (v == mRecentShadow) {
+ mTouchTarget = mRecentButton;
+ } else if (v == mNotificationShadow) {
+ mTouchTarget = mNotificationArea;
+ }
+ }
+
+ if (mTouchTarget != null && mTouchTarget.getVisibility() != View.GONE) {
+ boolean last = false;
+ switch (action) {
+ case MotionEvent.ACTION_CANCEL:
+ case MotionEvent.ACTION_UP:
+ mHandler.removeMessages(MSG_RESTORE_SHADOWS);
+ if (mShowShadows) {
+ mHandler.sendEmptyMessageDelayed(MSG_RESTORE_SHADOWS,
+ v == mNotificationShadow ? 5000 : 500);
+ }
+ last = true;
+ break;
+ case MotionEvent.ACTION_DOWN:
+ mHandler.removeMessages(MSG_RESTORE_SHADOWS);
+ setShadowForButton(mTouchTarget, false);
+ break;
+ }
+ mTouchTarget.dispatchTouchEvent(ev);
+ if (last) mTouchTarget = null;
+ return true;
+ }
+
+ return false;
+ }
+ };
}
+ public void refresh() {
+ setShadowForButton(mBackButton, mShowShadows);
+ setShadowForButton(mHomeButton, mShowShadows);
+ setShadowForButton(mRecentButton, mShowShadows);
+ setShadowForButton(mMenuButton, mShowShadows);
+ setShadowForButton(mNotificationArea, mShowShadows);
+ }
+
+ public void showAllShadows() {
+ mShowShadows = true;
+ refresh();
+ }
+
+ public void hideAllShadows() {
+ mShowShadows = false;
+ refresh();
+ }
+
+ // Use View.INVISIBLE for things hidden due to shadowing, and View.GONE for things that are
+ // disabled (and should not be shadowed or re-shown)
+ public void setShadowForButton(View button, boolean shade) {
+ View shadow = null;
+ if (button == mBackButton) {
+ shadow = mBackShadow;
+ } else if (button == mHomeButton) {
+ shadow = mHomeShadow;
+ } else if (button == mMenuButton) {
+ shadow = mMenuShadow;
+ } else if (button == mRecentButton) {
+ shadow = mRecentShadow;
+ } else if (button == mNotificationArea) {
+ shadow = mNotificationShadow;
+ }
+ if (shadow != null) {
+ if (button.getVisibility() != View.GONE) {
+ shadow.setVisibility(shade ? View.VISIBLE : View.INVISIBLE);
+ button.setVisibility(shade ? View.INVISIBLE : View.VISIBLE);
+ }
+ }
+ }
}
public class TouchOutsideListener implements View.OnTouchListener {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBarView.java
index bd8266a..823b793 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBarView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBarView.java
@@ -19,6 +19,7 @@
import android.content.Context;
import android.os.Handler;
import android.util.AttributeSet;
+import android.util.Slog;
import android.view.View;
import android.view.MotionEvent;
import android.widget.FrameLayout;
@@ -40,6 +41,9 @@
public boolean onInterceptTouchEvent(MotionEvent ev) {
if (ev.getAction() == MotionEvent.ACTION_DOWN) {
+ if (TabletStatusBar.DEBUG) {
+ Slog.d(TabletStatusBar.TAG, "TabletStatusBarView intercepting touch event: " + ev);
+ }
mHandler.removeMessages(TabletStatusBar.MSG_CLOSE_NOTIFICATION_PANEL);
mHandler.sendEmptyMessage(TabletStatusBar.MSG_CLOSE_NOTIFICATION_PANEL);
mHandler.removeMessages(TabletStatusBar.MSG_CLOSE_RECENTS_PANEL);
@@ -48,6 +52,9 @@
for (int i=0; i < mPanels.length; i++) {
if (mPanels[i] != null && mPanels[i].getVisibility() == View.VISIBLE) {
if (eventInside(mIgnoreChildren[i], ev)) {
+ if (TabletStatusBar.DEBUG) {
+ Slog.d(TabletStatusBar.TAG, "TabletStatusBarView eating event for view: " + mIgnoreChildren[i]);
+ }
return true;
}
}
diff --git a/policy/src/com/android/internal/policy/impl/SimUnlockScreen.java b/policy/src/com/android/internal/policy/impl/SimUnlockScreen.java
index 5518e11..486e7aa 100644
--- a/policy/src/com/android/internal/policy/impl/SimUnlockScreen.java
+++ b/policy/src/com/android/internal/policy/impl/SimUnlockScreen.java
@@ -130,9 +130,10 @@
/** {@inheritDoc} */
public void cleanUp() {
- // hide the dialog.
+ // dismiss the dialog.
if (mSimUnlockProgressDialog != null) {
- mSimUnlockProgressDialog.hide();
+ mSimUnlockProgressDialog.dismiss();
+ mSimUnlockProgressDialog = null;
}
mUpdateMonitor.removeCallback(this);
}
diff --git a/services/audioflinger/AudioFlinger.cpp b/services/audioflinger/AudioFlinger.cpp
index cd9b07e..84dd022 100644
--- a/services/audioflinger/AudioFlinger.cpp
+++ b/services/audioflinger/AudioFlinger.cpp
@@ -5808,7 +5808,8 @@
const uint32_t AudioFlinger::EffectModule::sModeConvTable[] = {
AUDIO_MODE_NORMAL, // AudioSystem::MODE_NORMAL
AUDIO_MODE_RINGTONE, // AudioSystem::MODE_RINGTONE
- AUDIO_MODE_IN_CALL // AudioSystem::MODE_IN_CALL
+ AUDIO_MODE_IN_CALL, // AudioSystem::MODE_IN_CALL
+ AUDIO_MODE_IN_CALL // AudioSystem::MODE_IN_COMMUNICATION, same conversion as for MODE_IN_CALL
};
int AudioFlinger::EffectModule::modeAudioSystemToEffectApi(uint32_t mode)
diff --git a/services/audioflinger/AudioPolicyManagerBase.cpp b/services/audioflinger/AudioPolicyManagerBase.cpp
index b17584a..e3b5db1 100644
--- a/services/audioflinger/AudioPolicyManagerBase.cpp
+++ b/services/audioflinger/AudioPolicyManagerBase.cpp
@@ -246,7 +246,7 @@
// if leaving call state, handle special case of active streams
// pertaining to sonification strategy see handleIncallSonification()
- if (mPhoneState == AudioSystem::MODE_IN_CALL) {
+ if (isInCall()) {
LOGV("setPhoneState() in call state management: new state is %d", state);
for (int stream = 0; stream < AudioSystem::NUM_STREAM_TYPES; stream++) {
handleIncallSonification(stream, false, true);
@@ -259,16 +259,21 @@
bool force = false;
// are we entering or starting a call
- if ((oldState != AudioSystem::MODE_IN_CALL) && (state == AudioSystem::MODE_IN_CALL)) {
+ if (!isStateInCall(oldState) && isStateInCall(state)) {
LOGV(" Entering call in setPhoneState()");
// force routing command to audio hardware when starting a call
// even if no device change is needed
force = true;
- } else if ((oldState == AudioSystem::MODE_IN_CALL) && (state != AudioSystem::MODE_IN_CALL)) {
+ } else if (isStateInCall(oldState) && !isStateInCall(state)) {
LOGV(" Exiting call in setPhoneState()");
// force routing command to audio hardware when exiting a call
// even if no device change is needed
force = true;
+ } else if (isStateInCall(state) && (state != oldState)) {
+ LOGV(" Switching between telephony and VoIP in setPhoneState()");
+ // force routing command to audio hardware when switching between telephony and VoIP
+ // even if no device change is needed
+ force = true;
}
// check for device and output changes triggered by new phone state
@@ -290,7 +295,7 @@
// force routing command to audio hardware when ending call
// even if no device change is needed
- if (oldState == AudioSystem::MODE_IN_CALL && newDevice == 0) {
+ if (isStateInCall(oldState) && newDevice == 0) {
newDevice = hwOutputDesc->device();
}
@@ -298,7 +303,7 @@
// immediately and delay the route change to avoid sending the ring tone
// tail into the earpiece or headset.
int delayMs = 0;
- if (state == AudioSystem::MODE_IN_CALL && oldState == AudioSystem::MODE_RINGTONE) {
+ if (isStateInCall(state) && oldState == AudioSystem::MODE_RINGTONE) {
// delay the device change command by twice the output latency to have some margin
// and be sure that audio buffers not yet affected by the mute are out when
// we actually apply the route change
@@ -311,7 +316,7 @@
// if entering in call state, handle special case of active streams
// pertaining to sonification strategy see handleIncallSonification()
- if (state == AudioSystem::MODE_IN_CALL) {
+ if (isStateInCall(state)) {
LOGV("setPhoneState() in call state management: new state is %d", state);
// unmute the ringing tone after a sufficient delay if it was muted before
// setting output device above
@@ -586,7 +591,7 @@
setOutputDevice(output, getNewDevice(output));
// handle special case for sonification while in call
- if (mPhoneState == AudioSystem::MODE_IN_CALL) {
+ if (isInCall()) {
handleIncallSonification(stream, true, false);
}
@@ -611,7 +616,7 @@
routing_strategy strategy = getStrategy((AudioSystem::stream_type)stream);
// handle special case for sonification while in call
- if (mPhoneState == AudioSystem::MODE_IN_CALL) {
+ if (isInCall()) {
handleIncallSonification(stream, false, false);
}
@@ -1478,7 +1483,7 @@
// use device for strategy media
// 4: the strategy DTMF is active on the hardware output:
// use device for strategy DTMF
- if (mPhoneState == AudioSystem::MODE_IN_CALL ||
+ if (isInCall() ||
outputDesc->isUsedByStrategy(STRATEGY_PHONE)) {
device = getDeviceForStrategy(STRATEGY_PHONE, fromCache);
} else if (outputDesc->isUsedByStrategy(STRATEGY_SONIFICATION)) {
@@ -1533,7 +1538,7 @@
switch (strategy) {
case STRATEGY_DTMF:
- if (mPhoneState != AudioSystem::MODE_IN_CALL) {
+ if (!isInCall()) {
// when off call, DTMF strategy follows the same rules as MEDIA strategy
device = getDeviceForStrategy(STRATEGY_MEDIA, false);
break;
@@ -1546,7 +1551,7 @@
// of priority
switch (mForceUse[AudioSystem::FOR_COMMUNICATION]) {
case AudioSystem::FORCE_BT_SCO:
- if (mPhoneState != AudioSystem::MODE_IN_CALL || strategy != STRATEGY_DTMF) {
+ if (!isInCall() || strategy != STRATEGY_DTMF) {
device = mAvailableOutputDevices & AudioSystem::DEVICE_OUT_BLUETOOTH_SCO_CARKIT;
if (device) break;
}
@@ -1566,7 +1571,7 @@
if (device) break;
#ifdef WITH_A2DP
// when not in a phone call, phone strategy should route STREAM_VOICE_CALL to A2DP
- if (mPhoneState != AudioSystem::MODE_IN_CALL) {
+ if (!isInCall()) {
device = mAvailableOutputDevices & AudioSystem::DEVICE_OUT_BLUETOOTH_A2DP;
if (device) break;
device = mAvailableOutputDevices & AudioSystem::DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES;
@@ -1580,14 +1585,14 @@
break;
case AudioSystem::FORCE_SPEAKER:
- if (mPhoneState != AudioSystem::MODE_IN_CALL || strategy != STRATEGY_DTMF) {
+ if (!isInCall() || strategy != STRATEGY_DTMF) {
device = mAvailableOutputDevices & AudioSystem::DEVICE_OUT_BLUETOOTH_SCO_CARKIT;
if (device) break;
}
#ifdef WITH_A2DP
// when not in a phone call, phone strategy should route STREAM_VOICE_CALL to
// A2DP speaker when forcing to speaker output
- if (mPhoneState != AudioSystem::MODE_IN_CALL) {
+ if (!isInCall()) {
device = mAvailableOutputDevices & AudioSystem::DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER;
if (device) break;
}
@@ -1604,7 +1609,7 @@
// If incall, just select the STRATEGY_PHONE device: The rest of the behavior is handled by
// handleIncallSonification().
- if (mPhoneState == AudioSystem::MODE_IN_CALL) {
+ if (isInCall()) {
device = getDeviceForStrategy(STRATEGY_PHONE, false);
break;
}
@@ -1971,6 +1976,16 @@
}
}
+bool AudioPolicyManagerBase::isInCall()
+{
+ return isStateInCall(mPhoneState);
+}
+
+bool AudioPolicyManagerBase::isStateInCall(int state) {
+ return ((state == AudioSystem::MODE_IN_CALL) ||
+ (state == AudioSystem::MODE_IN_COMMUNICATION));
+}
+
bool AudioPolicyManagerBase::needsDirectOuput(AudioSystem::stream_type stream,
uint32_t samplingRate,
uint32_t format,
diff --git a/services/java/com/android/server/InputMethodManagerService.java b/services/java/com/android/server/InputMethodManagerService.java
index 8d25d50..84bc100 100644
--- a/services/java/com/android/server/InputMethodManagerService.java
+++ b/services/java/com/android/server/InputMethodManagerService.java
@@ -557,6 +557,9 @@
public List<InputMethodSubtype> getEnabledInputMethodSubtypeList(InputMethodInfo imi) {
synchronized (mMethodMap) {
+ if (imi == null && mCurMethodId != null) {
+ imi = mMethodMap.get(mCurMethodId);
+ }
return mSettings.getEnabledInputMethodSubtypeListLocked(imi);
}
}
@@ -2043,18 +2046,20 @@
getEnabledInputMethodsAndSubtypeListLocked();
ArrayList<InputMethodSubtype> enabledSubtypes =
new ArrayList<InputMethodSubtype>();
- for (Pair<String, ArrayList<String>> imsPair : imsList) {
- InputMethodInfo info = mMethodMap.get(imsPair.first);
- if (info != null && info.getId().equals(imi.getId())) {
- ArrayList<InputMethodSubtype> subtypes = info.getSubtypes();
- for (InputMethodSubtype ims: subtypes) {
- for (String s: imsPair.second) {
- if (String.valueOf(ims.hashCode()).equals(s)) {
- enabledSubtypes.add(ims);
+ if (imi != null) {
+ for (Pair<String, ArrayList<String>> imsPair : imsList) {
+ InputMethodInfo info = mMethodMap.get(imsPair.first);
+ if (info != null && info.getId().equals(imi.getId())) {
+ ArrayList<InputMethodSubtype> subtypes = info.getSubtypes();
+ for (InputMethodSubtype ims: subtypes) {
+ for (String s: imsPair.second) {
+ if (String.valueOf(ims.hashCode()).equals(s)) {
+ enabledSubtypes.add(ims);
+ }
}
}
+ break;
}
- break;
}
}
return enabledSubtypes;
diff --git a/services/java/com/android/server/WiredAccessoryObserver.java b/services/java/com/android/server/WiredAccessoryObserver.java
index 4a85aff..0529080 100644
--- a/services/java/com/android/server/WiredAccessoryObserver.java
+++ b/services/java/com/android/server/WiredAccessoryObserver.java
@@ -86,33 +86,40 @@
if (LOG) Slog.v(TAG, "Headset UEVENT: " + event.toString());
try {
- if ((event.get("SWITCH_NAME")).equals("usb_audio")) {
- if (Integer.parseInt(event.get("SWITCH_STATE")) == 1) {
- switchState = ((mHeadsetState & (BIT_HEADSET|BIT_HEADSET_NO_MIC|
- BIT_USB_HEADSET_DGTL)) |
- (Integer.parseInt(event.get("SWITCH_STATE")) << 2));
- } else if (Integer.parseInt(event.get("SWITCH_STATE")) == 2) {
- switchState = ((mHeadsetState & (BIT_HEADSET|BIT_HEADSET_NO_MIC|
- BIT_USB_HEADSET_ANLG)) |
- (Integer.parseInt(event.get("SWITCH_STATE")) << 3));
- }
- else switchState = (mHeadsetState & (BIT_HEADSET|BIT_HEADSET_NO_MIC));
- }
- else if ((event.get("SWITCH_NAME")).equals("hdmi")) {
- switchState = ((mHeadsetState & (BIT_HEADSET|BIT_HEADSET_NO_MIC|
- BIT_USB_HEADSET_DGTL|BIT_USB_HEADSET_ANLG)) |
- (Integer.parseInt(event.get("SWITCH_STATE")) << 4));
- }
- else {
- switchState = ((mHeadsetState & (BIT_USB_HEADSET_ANLG|BIT_USB_HEADSET_DGTL)) |
- (Integer.parseInt(event.get("SWITCH_STATE"))));
- }
- update(event.get("SWITCH_NAME"), switchState);
+ String name = event.get("SWITCH_NAME");
+ int state = Integer.parseInt(event.get("SWITCH_STATE"));
+ updateState(name, state);
} catch (NumberFormatException e) {
Slog.e(TAG, "Could not parse switch state from event " + event);
}
}
+ private synchronized final void updateState(String name, int state)
+ {
+ if (name.equals("usb_audio")) {
+ if (state == 1) {
+ switchState = ((mHeadsetState & (BIT_HEADSET|BIT_HEADSET_NO_MIC|
+ BIT_USB_HEADSET_DGTL|BIT_HDMI_AUDIO)) |
+ (state << 2));
+ } else if (state == 2) {
+ switchState = ((mHeadsetState & (BIT_HEADSET|BIT_HEADSET_NO_MIC|
+ BIT_USB_HEADSET_ANLG|BIT_HDMI_AUDIO)) |
+ (state << 3));
+ } else switchState = (mHeadsetState & (BIT_HEADSET|BIT_HEADSET_NO_MIC|BIT_HDMI_AUDIO));
+ }
+ else if (name.equals("hdmi")) {
+ switchState = ((mHeadsetState & (BIT_HEADSET|BIT_HEADSET_NO_MIC|
+ BIT_USB_HEADSET_DGTL|BIT_USB_HEADSET_ANLG)) |
+ (state << 4));
+ }
+ else {
+ switchState = ((mHeadsetState & (BIT_HDMI_AUDIO|BIT_USB_HEADSET_ANLG|
+ BIT_USB_HEADSET_DGTL)) |
+ state);
+ }
+ update(name, switchState);
+ }
+
private synchronized final void init() {
char[] buffer = new char[1024];
@@ -132,13 +139,15 @@
file.close();
newName = new String(buffer, 0, len).trim();
+ if (newState > 0) {
+ updateState(newName, newState);
+ }
+
} catch (FileNotFoundException e) {
Slog.w(TAG, "This kernel does not have wired headset support");
} catch (Exception e) {
Slog.e(TAG, "" , e);
}
-
- update(newName, newState);
}
}
diff --git a/telephony/java/com/android/internal/telephony/CallManager.java b/telephony/java/com/android/internal/telephony/CallManager.java
index d74a547..5b49305 100644
--- a/telephony/java/com/android/internal/telephony/CallManager.java
+++ b/telephony/java/com/android/internal/telephony/CallManager.java
@@ -380,12 +380,17 @@
break;
case OFFHOOK:
Phone fgPhone = getFgPhone();
- // Enable IN_CALL mode while foreground call is in DIALING,
- // ALERTING, ACTIVE and DISCONNECTING state and not from sipPhone
+ // While foreground call is in DIALING,
+ // ALERTING, ACTIVE and DISCONNECTING state
if (getActiveFgCallState() != Call.State.IDLE
- && getActiveFgCallState() != Call.State.DISCONNECTED
- && !(fgPhone instanceof SipPhone)) {
- mode = AudioManager.MODE_IN_CALL;
+ && getActiveFgCallState() != Call.State.DISCONNECTED) {
+ if (fgPhone instanceof SipPhone) {
+ // enable IN_COMMUNICATION audio mode for sipPhone
+ mode = AudioManager.MODE_IN_COMMUNICATION;
+ } else {
+ // enable IN_CALL audio mode for telephony
+ mode = AudioManager.MODE_IN_CALL;
+ }
}
break;
}
diff --git a/telephony/java/com/android/internal/telephony/RIL.java b/telephony/java/com/android/internal/telephony/RIL.java
index 35d5564..a77e73e 100644
--- a/telephony/java/com/android/internal/telephony/RIL.java
+++ b/telephony/java/com/android/internal/telephony/RIL.java
@@ -141,6 +141,7 @@
this.mNext = sPool;
sPool = this;
sPoolSize++;
+ mResult = null;
}
}
}
diff --git a/telephony/java/com/android/internal/telephony/cdma/CDMAPhone.java b/telephony/java/com/android/internal/telephony/cdma/CDMAPhone.java
index b9d5673..099bc30 100755
--- a/telephony/java/com/android/internal/telephony/cdma/CDMAPhone.java
+++ b/telephony/java/com/android/internal/telephony/cdma/CDMAPhone.java
@@ -934,13 +934,13 @@
switch(action) {
case CANCEL_ECM_TIMER:
removeCallbacks(mExitEcmRunnable);
- mEcmTimerResetRegistrants.notifyResult(new Boolean(true));
+ mEcmTimerResetRegistrants.notifyResult(Boolean.TRUE);
break;
case RESTART_ECM_TIMER:
long delayInMillis = SystemProperties.getLong(
TelephonyProperties.PROPERTY_ECM_EXIT_TIMER, DEFAULT_ECM_EXIT_TIMER_VALUE);
postDelayed(mExitEcmRunnable, delayInMillis);
- mEcmTimerResetRegistrants.notifyResult(new Boolean(false));
+ mEcmTimerResetRegistrants.notifyResult(Boolean.FALSE);
break;
default:
Log.e(LOG_TAG, "handleTimerInEmergencyCallbackMode, unsupported action " + action);
diff --git a/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java b/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java
index effb743..70328f7 100644
--- a/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java
+++ b/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java
@@ -106,7 +106,7 @@
* It is a subset of allApns and has the same format
*/
private ArrayList<ApnSetting> mWaitingApns = null;
-
+ private int mWaitingApnsPermanentFailureCountDown = 0;
private ApnSetting mPreferredApn = null;
/* Currently active APN */
@@ -361,6 +361,7 @@
if (mState == State.IDLE) {
mWaitingApns = buildWaitingApns(mRequestedApnType);
+ mWaitingApnsPermanentFailureCountDown = mWaitingApns.size();
if (mWaitingApns.isEmpty()) {
if (DBG) log("No APN found");
notifyNoData(GsmDataConnection.FailCause.MISSING_UNKNOWN_APN);
@@ -996,6 +997,9 @@
}
if (ar.exception == null) {
+ if(DBG) {
+ log(String.format("onDataSetupComplete: success apn=%s", mWaitingApns.get(0).apn));
+ }
// TODO: We should clear LinkProperties/Capabilities when torn down or disconnected
mLinkProperties = getLinkProperties(mPendingDataConnection);
mLinkCapabilities = getLinkCapabilities(mPendingDataConnection);
@@ -1047,27 +1051,32 @@
log(String.format("onDataSetupComplete: error apn=%s cause=%s", apnString, cause));
}
if (cause.isEventLoggable()) {
+ // Log this failure to the Event Logs.
GsmCellLocation loc = ((GsmCellLocation)mPhone.getCellLocation());
EventLog.writeEvent(EventLogTags.PDP_SETUP_FAIL,
cause.ordinal(), loc != null ? loc.getCid() : -1,
TelephonyManager.getDefault().getNetworkType());
}
- // Do not retry on permanent failure
- // TODO: We should not fail permanently if more Apns to try!
- if (cause.isPermanentFail()) {
- notifyNoData(cause);
- notifyDataConnection(Phone.REASON_APN_FAILED);
- onEnableApn(apnTypeToId(mRequestedApnType), DISABLED);
- return;
- }
-
+ // Count permanent failures and remove the APN we just tried
+ mWaitingApnsPermanentFailureCountDown -= cause.isPermanentFail() ? 1 : 0;
mWaitingApns.remove(0);
+ if (DBG) log(String.format("onDataSetupComplete: mWaitingApns.size=%d" +
+ " mWaitingApnsPermanenatFailureCountDown=%d",
+ mWaitingApns.size(), mWaitingApnsPermanentFailureCountDown));
+
+ // See if there are more APN's to try
if (mWaitingApns.isEmpty()) {
- // No more to try, start delayed retry
- startDelayedRetry(cause, reason);
+ if (mWaitingApnsPermanentFailureCountDown == 0) {
+ if (DBG) log("onDataSetupComplete: Permanent failures stop retrying");
+ notifyNoData(cause);
+ notifyDataConnection(Phone.REASON_APN_FAILED);
+ } else {
+ if (DBG) log("onDataSetupComplete: Not all permanent failures, retry");
+ startDelayedRetry(cause, reason);
+ }
} else {
- // we still have more apns to try
+ if (DBG) log("onDataSetupComplete: Try next APN");
setState(State.SCANNING);
// Wait a bit before trying the next APN, so that
// we're not tying up the RIL command channel
diff --git a/telephony/java/com/android/internal/telephony/sip/SipPhoneBase.java b/telephony/java/com/android/internal/telephony/sip/SipPhoneBase.java
index afd4d0c..db9e35a 100755
--- a/telephony/java/com/android/internal/telephony/sip/SipPhoneBase.java
+++ b/telephony/java/com/android/internal/telephony/sip/SipPhoneBase.java
@@ -101,12 +101,12 @@
}
protected void startRingbackTone() {
- AsyncResult result = new AsyncResult(null, new Boolean(true), null);
+ AsyncResult result = new AsyncResult(null, Boolean.TRUE, null);
mRingbackRegistrants.notifyRegistrants(result);
}
protected void stopRingbackTone() {
- AsyncResult result = new AsyncResult(null, new Boolean(false), null);
+ AsyncResult result = new AsyncResult(null, Boolean.FALSE, null);
mRingbackRegistrants.notifyRegistrants(result);
}
diff --git a/test-runner/src/android/test/InstrumentationTestRunner.java b/test-runner/src/android/test/InstrumentationTestRunner.java
index 3ac74f7..5ce3efc 100644
--- a/test-runner/src/android/test/InstrumentationTestRunner.java
+++ b/test-runner/src/android/test/InstrumentationTestRunner.java
@@ -785,7 +785,7 @@
mIncludeDetailedStats = false;
try {
// Look for TimedTest annotation on both test class and test method
- if (testMethod.isAnnotationPresent(TimedTest.class)) {
+ if (testMethod != null && testMethod.isAnnotationPresent(TimedTest.class)) {
mIsTimedTest = true;
mIncludeDetailedStats = testMethod.getAnnotation(
TimedTest.class).includeDetailedStats();
diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/FileFilter.java b/tests/DumpRenderTree/src/com/android/dumprendertree/FileFilter.java
index c62f4de..d545018 100644
--- a/tests/DumpRenderTree/src/com/android/dumprendertree/FileFilter.java
+++ b/tests/DumpRenderTree/src/com/android/dumprendertree/FileFilter.java
@@ -80,9 +80,6 @@
"fast/regex/test1.html", // Causes DumpRenderTree to hang with V8
"fast/regex/slow.html", // Causes DumpRenderTree to hang with V8
"http/tests/xmlhttprequest/simple-cross-origin-progress-events.html", // runs webcore into bad state, http://b/2929261
- "ietestcenter/Javascript/15.4.4.15-3-14.html", // hangs the layout tests, http://b/2889595
- "ietestcenter/Javascript/15.4.4.15-3-29.html", // hangs the layout tests, http://b/2889596
- "ietestcenter/Javascript/15.4.4.15-3-8.html", // hangs the layout tests, http://b/2889598
};
static void fillIgnoreResultList() {