diff options
224 files changed, 2531 insertions, 1245 deletions
diff --git a/api/current.txt b/api/current.txt index 91e5ddd22768..e8f911b4704d 100644 --- a/api/current.txt +++ b/api/current.txt @@ -4476,6 +4476,7 @@ package android.appwidget { public class AppWidgetProviderInfo implements android.os.Parcelable { ctor public AppWidgetProviderInfo(); ctor public AppWidgetProviderInfo(android.os.Parcel); + method public android.appwidget.AppWidgetProviderInfo clone(); method public int describeContents(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator CREATOR; @@ -18815,6 +18816,7 @@ package android.provider { field public static final java.lang.String DATA_ROAMING = "data_roaming"; field public static final java.lang.String DEVELOPMENT_SETTINGS_ENABLED = "development_settings_enabled"; field public static final java.lang.String DEVICE_PROVISIONED = "device_provisioned"; + field public static final java.lang.String HTTP_PROXY = "http_proxy"; field public static final java.lang.String INSTALL_NON_MARKET_APPS = "install_non_market_apps"; field public static final java.lang.String MODE_RINGER = "mode_ringer"; field public static final java.lang.String NETWORK_PREFERENCE = "network_preference"; @@ -18878,7 +18880,7 @@ package android.provider { field public static final deprecated java.lang.String DEVICE_PROVISIONED = "device_provisioned"; field public static final java.lang.String ENABLED_ACCESSIBILITY_SERVICES = "enabled_accessibility_services"; field public static final java.lang.String ENABLED_INPUT_METHODS = "enabled_input_methods"; - field public static final java.lang.String HTTP_PROXY = "http_proxy"; + field public static final deprecated java.lang.String HTTP_PROXY = "http_proxy"; field public static final java.lang.String INPUT_METHOD_SELECTOR_VISIBILITY = "input_method_selector_visibility"; field public static final deprecated java.lang.String INSTALL_NON_MARKET_APPS = "install_non_market_apps"; field public static final java.lang.String LOCATION_PROVIDERS_ALLOWED = "location_providers_allowed"; @@ -19037,12 +19039,12 @@ package android.provider { field public static final deprecated int WIFI_SLEEP_POLICY_DEFAULT = 0; // 0x0 field public static final deprecated int WIFI_SLEEP_POLICY_NEVER = 2; // 0x2 field public static final deprecated int WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED = 1; // 0x1 - field public static final java.lang.String WIFI_STATIC_DNS1 = "wifi_static_dns1"; - field public static final java.lang.String WIFI_STATIC_DNS2 = "wifi_static_dns2"; - field public static final java.lang.String WIFI_STATIC_GATEWAY = "wifi_static_gateway"; - field public static final java.lang.String WIFI_STATIC_IP = "wifi_static_ip"; - field public static final java.lang.String WIFI_STATIC_NETMASK = "wifi_static_netmask"; - field public static final java.lang.String WIFI_USE_STATIC_IP = "wifi_use_static_ip"; + field public static final deprecated java.lang.String WIFI_STATIC_DNS1 = "wifi_static_dns1"; + field public static final deprecated java.lang.String WIFI_STATIC_DNS2 = "wifi_static_dns2"; + field public static final deprecated java.lang.String WIFI_STATIC_GATEWAY = "wifi_static_gateway"; + field public static final deprecated java.lang.String WIFI_STATIC_IP = "wifi_static_ip"; + field public static final deprecated java.lang.String WIFI_STATIC_NETMASK = "wifi_static_netmask"; + field public static final deprecated java.lang.String WIFI_USE_STATIC_IP = "wifi_use_static_ip"; field public static final deprecated java.lang.String WIFI_WATCHDOG_ACCEPTABLE_PACKET_LOSS_PERCENTAGE = "wifi_watchdog_acceptable_packet_loss_percentage"; field public static final deprecated java.lang.String WIFI_WATCHDOG_AP_COUNT = "wifi_watchdog_ap_count"; field public static final deprecated java.lang.String WIFI_WATCHDOG_BACKGROUND_CHECK_DELAY_MS = "wifi_watchdog_background_check_delay_ms"; diff --git a/core/java/android/app/ApplicationErrorReport.java b/core/java/android/app/ApplicationErrorReport.java index ebf426190d09..954476dbeb48 100644 --- a/core/java/android/app/ApplicationErrorReport.java +++ b/core/java/android/app/ApplicationErrorReport.java @@ -158,8 +158,8 @@ public class ApplicationErrorReport implements Parcelable { public static ComponentName getErrorReportReceiver(Context context, String packageName, int appFlags) { // check if error reporting is enabled in secure settings - int enabled = Settings.Secure.getInt(context.getContentResolver(), - Settings.Secure.SEND_ACTION_APP_ERROR, 0); + int enabled = Settings.Global.getInt(context.getContentResolver(), + Settings.Global.SEND_ACTION_APP_ERROR, 0); if (enabled == 0) { return null; } diff --git a/core/java/android/app/BackStackRecord.java b/core/java/android/app/BackStackRecord.java index 96814b725463..1b1d3418a5b1 100644 --- a/core/java/android/app/BackStackRecord.java +++ b/core/java/android/app/BackStackRecord.java @@ -20,6 +20,7 @@ import android.os.Parcel; import android.os.Parcelable; import android.text.TextUtils; import android.util.Log; +import android.util.LogWriter; import java.io.FileDescriptor; import java.io.PrintWriter; @@ -94,11 +95,12 @@ final class BackStackState implements Parcelable { public BackStackRecord instantiate(FragmentManagerImpl fm) { BackStackRecord bse = new BackStackRecord(fm); int pos = 0; + int num = 0; while (pos < mOps.length) { BackStackRecord.Op op = new BackStackRecord.Op(); op.cmd = mOps[pos++]; if (FragmentManagerImpl.DEBUG) Log.v(FragmentManagerImpl.TAG, - "BSE " + bse + " set base fragment #" + mOps[pos]); + "Instantiate " + bse + " op #" + num + " base fragment #" + mOps[pos]); int findex = mOps[pos++]; if (findex >= 0) { Fragment f = fm.mActive.get(findex); @@ -115,12 +117,13 @@ final class BackStackState implements Parcelable { op.removed = new ArrayList<Fragment>(N); for (int i=0; i<N; i++) { if (FragmentManagerImpl.DEBUG) Log.v(FragmentManagerImpl.TAG, - "BSE " + bse + " set remove fragment #" + mOps[pos]); + "Instantiate " + bse + " set remove fragment #" + mOps[pos]); Fragment r = fm.mActive.get(mOps[pos++]); op.removed.add(r); } } bse.addOp(op); + num++; } bse.mTransition = mTransition; bse.mTransitionStyle = mTransitionStyle; @@ -168,7 +171,7 @@ final class BackStackState implements Parcelable { */ final class BackStackRecord extends FragmentTransaction implements FragmentManager.BackStackEntry, Runnable { - static final String TAG = "BackStackEntry"; + static final String TAG = FragmentManagerImpl.TAG; final FragmentManagerImpl mManager; @@ -206,46 +209,69 @@ final class BackStackRecord extends FragmentTransaction implements boolean mAllowAddToBackStack = true; String mName; boolean mCommitted; - int mIndex; + int mIndex = -1; int mBreadCrumbTitleRes; CharSequence mBreadCrumbTitleText; int mBreadCrumbShortTitleRes; CharSequence mBreadCrumbShortTitleText; - public void dump(String prefix, FileDescriptor fd, PrintWriter writer, String[] args) { - writer.print(prefix); writer.print("mName="); writer.print(mName); - writer.print(" mIndex="); writer.print(mIndex); - writer.print(" mCommitted="); writer.println(mCommitted); - if (mTransition != FragmentTransaction.TRANSIT_NONE) { - writer.print(prefix); writer.print("mTransition=#"); - writer.print(Integer.toHexString(mTransition)); - writer.print(" mTransitionStyle=#"); - writer.println(Integer.toHexString(mTransitionStyle)); - } - if (mEnterAnim != 0 || mExitAnim !=0) { - writer.print(prefix); writer.print("mEnterAnim=#"); - writer.print(Integer.toHexString(mEnterAnim)); - writer.print(" mExitAnim=#"); - writer.println(Integer.toHexString(mExitAnim)); - } - if (mPopEnterAnim != 0 || mPopExitAnim !=0) { - writer.print(prefix); writer.print("mPopEnterAnim=#"); - writer.print(Integer.toHexString(mPopEnterAnim)); - writer.print(" mPopExitAnim=#"); - writer.println(Integer.toHexString(mPopExitAnim)); + @Override + public String toString() { + StringBuilder sb = new StringBuilder(128); + sb.append("BackStackEntry{"); + sb.append(Integer.toHexString(System.identityHashCode(this))); + if (mIndex >= 0) { + sb.append(" #"); + sb.append(mIndex); } - if (mBreadCrumbTitleRes != 0 || mBreadCrumbTitleText != null) { - writer.print(prefix); writer.print("mBreadCrumbTitleRes=#"); - writer.print(Integer.toHexString(mBreadCrumbTitleRes)); - writer.print(" mBreadCrumbTitleText="); - writer.println(mBreadCrumbTitleText); + if (mName != null) { + sb.append(" "); + sb.append(mName); } - if (mBreadCrumbShortTitleRes != 0 || mBreadCrumbShortTitleText != null) { - writer.print(prefix); writer.print("mBreadCrumbShortTitleRes=#"); - writer.print(Integer.toHexString(mBreadCrumbShortTitleRes)); - writer.print(" mBreadCrumbShortTitleText="); - writer.println(mBreadCrumbShortTitleText); + sb.append("}"); + return sb.toString(); + } + + public void dump(String prefix, FileDescriptor fd, PrintWriter writer, String[] args) { + dump(prefix, writer, true); + } + + void dump(String prefix, PrintWriter writer, boolean full) { + if (full) { + writer.print(prefix); writer.print("mName="); writer.print(mName); + writer.print(" mIndex="); writer.print(mIndex); + writer.print(" mCommitted="); writer.println(mCommitted); + if (mTransition != FragmentTransaction.TRANSIT_NONE) { + writer.print(prefix); writer.print("mTransition=#"); + writer.print(Integer.toHexString(mTransition)); + writer.print(" mTransitionStyle=#"); + writer.println(Integer.toHexString(mTransitionStyle)); + } + if (mEnterAnim != 0 || mExitAnim !=0) { + writer.print(prefix); writer.print("mEnterAnim=#"); + writer.print(Integer.toHexString(mEnterAnim)); + writer.print(" mExitAnim=#"); + writer.println(Integer.toHexString(mExitAnim)); + } + if (mPopEnterAnim != 0 || mPopExitAnim !=0) { + writer.print(prefix); writer.print("mPopEnterAnim=#"); + writer.print(Integer.toHexString(mPopEnterAnim)); + writer.print(" mPopExitAnim=#"); + writer.println(Integer.toHexString(mPopExitAnim)); + } + if (mBreadCrumbTitleRes != 0 || mBreadCrumbTitleText != null) { + writer.print(prefix); writer.print("mBreadCrumbTitleRes=#"); + writer.print(Integer.toHexString(mBreadCrumbTitleRes)); + writer.print(" mBreadCrumbTitleText="); + writer.println(mBreadCrumbTitleText); + } + if (mBreadCrumbShortTitleRes != 0 || mBreadCrumbShortTitleText != null) { + writer.print(prefix); writer.print("mBreadCrumbShortTitleRes=#"); + writer.print(Integer.toHexString(mBreadCrumbShortTitleRes)); + writer.print(" mBreadCrumbShortTitleText="); + writer.println(mBreadCrumbShortTitleText); + } } if (mHead != null) { @@ -254,21 +280,34 @@ final class BackStackRecord extends FragmentTransaction implements Op op = mHead; int num = 0; while (op != null) { - writer.print(prefix); writer.print(" Op #"); writer.print(num); - writer.println(":"); - writer.print(innerPrefix); writer.print("cmd="); writer.print(op.cmd); - writer.print(" fragment="); writer.println(op.fragment); - if (op.enterAnim != 0 || op.exitAnim != 0) { - writer.print(prefix); writer.print("enterAnim=#"); - writer.print(Integer.toHexString(op.enterAnim)); - writer.print(" exitAnim=#"); - writer.println(Integer.toHexString(op.exitAnim)); + String cmdStr; + switch (op.cmd) { + case OP_NULL: cmdStr="NULL"; break; + case OP_ADD: cmdStr="ADD"; break; + case OP_REPLACE: cmdStr="REPLACE"; break; + case OP_REMOVE: cmdStr="REMOVE"; break; + case OP_HIDE: cmdStr="HIDE"; break; + case OP_SHOW: cmdStr="SHOW"; break; + case OP_DETACH: cmdStr="DETACH"; break; + case OP_ATTACH: cmdStr="ATTACH"; break; + default: cmdStr="cmd=" + op.cmd; break; } - if (op.popEnterAnim != 0 || op.popExitAnim != 0) { - writer.print(prefix); writer.print("popEnterAnim=#"); - writer.print(Integer.toHexString(op.popEnterAnim)); - writer.print(" popExitAnim=#"); - writer.println(Integer.toHexString(op.popExitAnim)); + writer.print(prefix); writer.print(" Op #"); writer.print(num); + writer.print(": "); writer.print(cmdStr); + writer.print(" "); writer.println(op.fragment); + if (full) { + if (op.enterAnim != 0 || op.exitAnim != 0) { + writer.print(innerPrefix); writer.print("enterAnim=#"); + writer.print(Integer.toHexString(op.enterAnim)); + writer.print(" exitAnim=#"); + writer.println(Integer.toHexString(op.exitAnim)); + } + if (op.popEnterAnim != 0 || op.popExitAnim != 0) { + writer.print(innerPrefix); writer.print("popEnterAnim=#"); + writer.print(Integer.toHexString(op.popEnterAnim)); + writer.print(" popExitAnim=#"); + writer.println(Integer.toHexString(op.popExitAnim)); + } } if (op.removed != null && op.removed.size() > 0) { for (int i=0; i<op.removed.size(); i++) { @@ -276,14 +315,17 @@ final class BackStackRecord extends FragmentTransaction implements if (op.removed.size() == 1) { writer.print("Removed: "); } else { - writer.println("Removed:"); - writer.print(innerPrefix); writer.print(" #"); writer.print(num); + if (i == 0) { + writer.println("Removed:"); + } + writer.print(innerPrefix); writer.print(" #"); writer.print(i); writer.print(": "); } writer.println(op.removed.get(i)); } } op = op.next; + num++; } } } @@ -538,7 +580,12 @@ final class BackStackRecord extends FragmentTransaction implements int commitInternal(boolean allowStateLoss) { if (mCommitted) throw new IllegalStateException("commit already called"); - if (FragmentManagerImpl.DEBUG) Log.v(TAG, "Commit: " + this); + if (FragmentManagerImpl.DEBUG) { + Log.v(TAG, "Commit: " + this); + LogWriter logw = new LogWriter(Log.VERBOSE, TAG); + PrintWriter pw = new PrintWriter(logw); + dump(" ", null, pw, null); + } mCommitted = true; if (mAddToBackStack) { mIndex = mManager.allocBackStackIndex(this); @@ -641,7 +688,12 @@ final class BackStackRecord extends FragmentTransaction implements } public void popFromBackStack(boolean doStateMove) { - if (FragmentManagerImpl.DEBUG) Log.v(TAG, "popFromBackStack: " + this); + if (FragmentManagerImpl.DEBUG) { + Log.v(TAG, "popFromBackStack: " + this); + LogWriter logw = new LogWriter(Log.VERBOSE, TAG); + PrintWriter pw = new PrintWriter(logw); + dump(" ", null, pw, null); + } bumpBackStackNesting(-1); diff --git a/core/java/android/app/FragmentManager.java b/core/java/android/app/FragmentManager.java index aad5487927fb..e98329912470 100644 --- a/core/java/android/app/FragmentManager.java +++ b/core/java/android/app/FragmentManager.java @@ -22,6 +22,7 @@ import android.animation.AnimatorListenerAdapter; import android.content.res.Configuration; import android.content.res.TypedArray; import android.os.Bundle; +import android.os.Debug; import android.os.Handler; import android.os.Looper; import android.os.Parcel; @@ -771,9 +772,9 @@ final class FragmentManagerImpl extends FragmentManager { void moveToState(Fragment f, int newState, int transit, int transitionStyle, boolean keepActive) { - //if (DEBUG) Log.v(TAG, "moveToState: " + f - // + " oldState=" + f.mState + " newState=" + newState - // + " mRemoving=" + f.mRemoving + " Callers=" + Debug.getCallers(5)); + if (DEBUG && false) Log.v(TAG, "moveToState: " + f + + " oldState=" + f.mState + " newState=" + newState + + " mRemoving=" + f.mRemoving + " Callers=" + Debug.getCallers(5)); // Fragments that are not currently added will sit in the onCreate() state. if ((!f.mAdded || f.mDetached) && newState > Fragment.CREATED) { @@ -1112,6 +1113,9 @@ final class FragmentManagerImpl extends FragmentManager { if (DEBUG) Log.v(TAG, "add: " + fragment); makeActive(fragment); if (!fragment.mDetached) { + if (mAdded.contains(fragment)) { + throw new IllegalStateException("Fragment already added: " + fragment); + } mAdded.add(fragment); fragment.mAdded = true; fragment.mRemoving = false; @@ -1128,6 +1132,14 @@ final class FragmentManagerImpl extends FragmentManager { if (DEBUG) Log.v(TAG, "remove: " + fragment + " nesting=" + fragment.mBackStackNesting); final boolean inactive = !fragment.isInBackStack(); if (!fragment.mDetached || inactive) { + if (false) { + // Would be nice to catch a bad remove here, but we need + // time to test this to make sure we aren't crashes cases + // where it is not a problem. + if (!mAdded.contains(fragment)) { + throw new IllegalStateException("Fragment not added: " + fragment); + } + } if (mAdded != null) { mAdded.remove(fragment); } @@ -1200,6 +1212,7 @@ final class FragmentManagerImpl extends FragmentManager { if (fragment.mAdded) { // We are not already in back stack, so need to remove the fragment. if (mAdded != null) { + if (DEBUG) Log.v(TAG, "remove from detach: " + fragment); mAdded.remove(fragment); } if (fragment.mHasMenu && fragment.mMenuVisible) { @@ -1219,6 +1232,10 @@ final class FragmentManagerImpl extends FragmentManager { if (mAdded == null) { mAdded = new ArrayList<Fragment>(); } + if (mAdded.contains(fragment)) { + throw new IllegalStateException("Fragment already added: " + fragment); + } + if (DEBUG) Log.v(TAG, "add from attach: " + fragment); mAdded.add(fragment); fragment.mAdded = true; if (fragment.mHasMenu && fragment.mMenuVisible) { @@ -1717,19 +1734,18 @@ final class FragmentManagerImpl extends FragmentManager { FragmentState fs = fms.mActive[i]; if (fs != null) { Fragment f = fs.instantiate(mActivity, mParent); - if (DEBUG) Log.v(TAG, "restoreAllState: adding #" + i + ": " + f); + if (DEBUG) Log.v(TAG, "restoreAllState: active #" + i + ": " + f); mActive.add(f); // Now that the fragment is instantiated (or came from being // retained above), clear mInstance in case we end up re-restoring // from this FragmentState again. fs.mInstance = null; } else { - if (DEBUG) Log.v(TAG, "restoreAllState: adding #" + i + ": (null)"); mActive.add(null); if (mAvailIndices == null) { mAvailIndices = new ArrayList<Integer>(); } - if (DEBUG) Log.v(TAG, "restoreAllState: adding avail #" + i); + if (DEBUG) Log.v(TAG, "restoreAllState: avail #" + i); mAvailIndices.add(i); } } @@ -1760,7 +1776,10 @@ final class FragmentManagerImpl extends FragmentManager { "No instantiated fragment for index #" + fms.mAdded[i])); } f.mAdded = true; - if (DEBUG) Log.v(TAG, "restoreAllState: making added #" + i + ": " + f); + if (DEBUG) Log.v(TAG, "restoreAllState: added #" + i + ": " + f); + if (mAdded.contains(f)) { + throw new IllegalStateException("Already added!"); + } mAdded.add(f); } } else { @@ -1772,8 +1791,13 @@ final class FragmentManagerImpl extends FragmentManager { mBackStack = new ArrayList<BackStackRecord>(fms.mBackStack.length); for (int i=0; i<fms.mBackStack.length; i++) { BackStackRecord bse = fms.mBackStack[i].instantiate(this); - if (DEBUG) Log.v(TAG, "restoreAllState: adding bse #" + i + if (DEBUG) { + Log.v(TAG, "restoreAllState: back stack #" + i + " (index " + bse.mIndex + "): " + bse); + LogWriter logw = new LogWriter(Log.VERBOSE, TAG); + PrintWriter pw = new PrintWriter(logw); + bse.dump(" ", pw, false); + } mBackStack.add(bse); if (bse.mIndex >= 0) { setBackStackIndex(bse.mIndex, bse); diff --git a/core/java/android/app/backup/FullBackup.java b/core/java/android/app/backup/FullBackup.java index d7f1c9f0fab4..f859599e18ce 100644 --- a/core/java/android/app/backup/FullBackup.java +++ b/core/java/android/app/backup/FullBackup.java @@ -64,7 +64,9 @@ public class FullBackup { /** * Copy data from a socket to the given File location on permanent storage. The - * modification time and access mode of the resulting file will be set if desired. + * modification time and access mode of the resulting file will be set if desired, + * although group/all rwx modes will be stripped: the restored file will not be + * accessible from outside the target application even if the original file was. * If the {@code type} parameter indicates that the result should be a directory, * the socket parameter may be {@code null}; even if it is valid, no data will be * read from it in this case. @@ -79,8 +81,9 @@ public class FullBackup { * @param type Must be either {@link BackupAgent#TYPE_FILE} for ordinary file data * or {@link BackupAgent#TYPE_DIRECTORY} for a directory. * @param mode Unix-style file mode (as used by the chmod(2) syscall) to be set on - * the output file or directory. If this parameter is negative then neither - * the mode nor the mtime parameters will be used. + * the output file or directory. group/all rwx modes are stripped even if set + * in this parameter. If this parameter is negative then neither + * the mode nor the mtime values will be applied to the restored file. * @param mtime A timestamp in the standard Unix epoch that will be imposed as the * last modification time of the output file. if the {@code mode} parameter is * negative then this parameter will be ignored. @@ -105,8 +108,6 @@ public class FullBackup { if (!parent.exists()) { // in practice this will only be for the default semantic directories, // and using the default mode for those is appropriate. - // TODO: support the edge case of apps that have adjusted the - // permissions on these core directories parent.mkdirs(); } out = new FileOutputStream(outFile); @@ -146,6 +147,8 @@ public class FullBackup { // Now twiddle the state to match the backup, assuming all went well if (mode >= 0 && outFile != null) { try { + // explicitly prevent emplacement of files accessible by outside apps + mode &= 0700; Libcore.os.chmod(outFile.getPath(), (int)mode); } catch (ErrnoException e) { e.rethrowAsIOException(); diff --git a/core/java/android/appwidget/AppWidgetHost.java b/core/java/android/appwidget/AppWidgetHost.java index 185fb5a8de59..cb61a71b147a 100644 --- a/core/java/android/appwidget/AppWidgetHost.java +++ b/core/java/android/appwidget/AppWidgetHost.java @@ -21,6 +21,7 @@ import java.util.HashMap; import android.app.ActivityThread; import android.content.Context; +import android.os.Binder; import android.os.Handler; import android.os.IBinder; import android.os.Looper; @@ -57,6 +58,9 @@ public class AppWidgetHost { class Callbacks extends IAppWidgetHost.Stub { public void updateAppWidget(int appWidgetId, RemoteViews views) { + if (isLocalBinder() && views != null) { + views = views.clone(); + } Message msg = mHandler.obtainMessage(HANDLE_UPDATE); msg.arg1 = appWidgetId; msg.obj = views; @@ -64,6 +68,9 @@ public class AppWidgetHost { } public void providerChanged(int appWidgetId, AppWidgetProviderInfo info) { + if (isLocalBinder() && info != null) { + info = info.clone(); + } Message msg = mHandler.obtainMessage(HANDLE_PROVIDER_CHANGED); msg.arg1 = appWidgetId; msg.obj = info; @@ -225,6 +232,10 @@ public class AppWidgetHost { throw new SecurityException("Disallowed call for uid " + uid); } + private boolean isLocalBinder() { + return Process.myPid() == Binder.getCallingPid(); + } + /** * Stop listening to changes for this AppWidget. */ diff --git a/core/java/android/appwidget/AppWidgetProviderInfo.java b/core/java/android/appwidget/AppWidgetProviderInfo.java index 5ef3d3979253..50744808c882 100644 --- a/core/java/android/appwidget/AppWidgetProviderInfo.java +++ b/core/java/android/appwidget/AppWidgetProviderInfo.java @@ -281,6 +281,28 @@ public class AppWidgetProviderInfo implements Parcelable { out.writeInt(this.widgetFeatures); } + @Override + public AppWidgetProviderInfo clone() { + AppWidgetProviderInfo that = new AppWidgetProviderInfo(); + that.provider = this.provider == null ? null : this.provider.clone(); + that.minWidth = this.minWidth; + that.minHeight = this.minHeight; + that.minResizeWidth = this.minResizeHeight; + that.minResizeHeight = this.minResizeHeight; + that.updatePeriodMillis = this.updatePeriodMillis; + that.initialLayout = that.initialLayout; + that.initialKeyguardLayout = this.initialKeyguardLayout; + that.configure = this.configure == null ? null : this.configure.clone(); + that.label = this.label == null ? null : this.label.substring(0); + that.icon = this.icon; + that.previewImage = this.previewImage; + that.autoAdvanceViewId = this.autoAdvanceViewId; + that.resizeMode = this.resizeMode; + that.widgetCategory = this.widgetCategory; + that.widgetFeatures = this.widgetFeatures; + return that; + } + public int describeContents() { return 0; } diff --git a/core/java/android/content/SyncManager.java b/core/java/android/content/SyncManager.java index 4999a2d0e255..564a8042a97f 100644 --- a/core/java/android/content/SyncManager.java +++ b/core/java/android/content/SyncManager.java @@ -777,8 +777,8 @@ public class SyncManager implements OnAccountsUpdateListener { } // Cap the delay - long maxSyncRetryTimeInSeconds = Settings.Secure.getLong(mContext.getContentResolver(), - Settings.Secure.SYNC_MAX_RETRY_DELAY_IN_SECONDS, + long maxSyncRetryTimeInSeconds = Settings.Global.getLong(mContext.getContentResolver(), + Settings.Global.SYNC_MAX_RETRY_DELAY_IN_SECONDS, DEFAULT_MAX_SYNC_RETRY_TIME_IN_SECONDS); if (newDelayInMs > maxSyncRetryTimeInSeconds * 1000) { newDelayInMs = maxSyncRetryTimeInSeconds * 1000; diff --git a/core/java/android/net/CaptivePortalTracker.java b/core/java/android/net/CaptivePortalTracker.java index 24dc89844b38..9b1109461391 100644 --- a/core/java/android/net/CaptivePortalTracker.java +++ b/core/java/android/net/CaptivePortalTracker.java @@ -89,12 +89,12 @@ public class CaptivePortalTracker extends StateMachine { filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION); mContext.registerReceiver(mReceiver, filter); - mServer = Settings.Secure.getString(mContext.getContentResolver(), - Settings.Secure.CAPTIVE_PORTAL_SERVER); + mServer = Settings.Global.getString(mContext.getContentResolver(), + Settings.Global.CAPTIVE_PORTAL_SERVER); if (mServer == null) mServer = DEFAULT_SERVER; - mIsCaptivePortalCheckEnabled = Settings.Secure.getInt(mContext.getContentResolver(), - Settings.Secure.CAPTIVE_PORTAL_DETECTION_ENABLED, 1) == 1; + mIsCaptivePortalCheckEnabled = Settings.Global.getInt(mContext.getContentResolver(), + Settings.Global.CAPTIVE_PORTAL_DETECTION_ENABLED, 1) == 1; addState(mDefaultState); addState(mNoActiveNetworkState, mDefaultState); diff --git a/core/java/android/net/ConnectivityManager.java b/core/java/android/net/ConnectivityManager.java index a57047363e69..6ff1a339fb6c 100644 --- a/core/java/android/net/ConnectivityManager.java +++ b/core/java/android/net/ConnectivityManager.java @@ -330,6 +330,14 @@ public class ConnectivityManager { public static final int DEFAULT_NETWORK_PREFERENCE = TYPE_WIFI; + /** + * Default value for {@link Settings.Global#CONNECTIVITY_CHANGE_DELAY} in + * milliseconds. + * + * @hide + */ + public static final int CONNECTIVITY_CHANGE_DELAY_DEFAULT = 3000; + private final IConnectivityManager mService; public static boolean isNetworkTypeValid(int networkType) { diff --git a/core/java/android/net/DnsPinger.java b/core/java/android/net/DnsPinger.java index 11acabebf434..66f0fd0f42bb 100644 --- a/core/java/android/net/DnsPinger.java +++ b/core/java/android/net/DnsPinger.java @@ -295,8 +295,8 @@ public final class DnsPinger extends Handler { } private InetAddress getDefaultDns() { - String dns = Settings.Secure.getString(mContext.getContentResolver(), - Settings.Secure.DEFAULT_DNS_SERVER); + String dns = Settings.Global.getString(mContext.getContentResolver(), + Settings.Global.DEFAULT_DNS_SERVER); if (dns == null || dns.length() == 0) { dns = mContext.getResources().getString( com.android.internal.R.string.config_default_dns_server); diff --git a/core/java/android/provider/ContactsContract.java b/core/java/android/provider/ContactsContract.java index 54a2273bf076..b3ab3857374e 100755 --- a/core/java/android/provider/ContactsContract.java +++ b/core/java/android/provider/ContactsContract.java @@ -37,6 +37,7 @@ import android.graphics.Rect; import android.net.Uri; import android.os.Bundle; import android.os.RemoteException; +import android.os.UserHandle; import android.text.TextUtils; import android.util.DisplayMetrics; import android.util.Pair; @@ -7744,7 +7745,7 @@ public final class ContactsContract { intent.setSourceBounds(target); intent.putExtra(EXTRA_MODE, mode); intent.putExtra(EXTRA_EXCLUDE_MIMES, excludeMimes); - context.startActivity(intent); + context.startActivityAsUser(intent, new UserHandle(UserHandle.USER_CURRENT)); } } diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index 0d980c02c18b..ffc48d862c49 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -32,16 +32,19 @@ import android.content.res.Configuration; import android.content.res.Resources; import android.database.Cursor; import android.database.SQLException; +import android.net.ConnectivityManager; import android.net.Uri; import android.net.wifi.WifiManager; import android.os.BatteryManager; import android.os.Bundle; +import android.os.DropBoxManager; import android.os.IBinder; import android.os.Process; import android.os.RemoteException; import android.os.ServiceManager; import android.os.SystemProperties; import android.os.UserHandle; +import android.os.Build.VERSION_CODES; import android.speech.tts.TextToSpeech; import android.text.TextUtils; import android.util.AndroidException; @@ -799,7 +802,7 @@ public final class Settings { if (mCallGetCommand != null) { try { Bundle args = null; - if (userHandle != UserHandle.myUserId()) { + if (!isSelf) { args = new Bundle(); args.putInt(CALL_METHOD_USER_KEY, userHandle); } @@ -917,6 +920,7 @@ public final class Settings { MOVED_TO_GLOBAL.add(Global.DEVICE_PROVISIONED); MOVED_TO_GLOBAL.add(Global.INSTALL_NON_MARKET_APPS); MOVED_TO_GLOBAL.add(Global.USB_MASS_STORAGE_ENABLED); + MOVED_TO_GLOBAL.add(Global.HTTP_PROXY); // these are moving directly from system to global MOVED_TO_GLOBAL.add(Settings.Global.AIRPLANE_MODE_ON); @@ -1487,47 +1491,64 @@ public final class Settings { @Deprecated public static final String MODE_RINGER = Global.MODE_RINGER; - //TODO: deprecate static IP constants /** * Whether to use static IP and other static network attributes. * <p> * Set to 1 for true and 0 for false. + * + * @deprecated Use {@link WifiManager} instead */ + @Deprecated public static final String WIFI_USE_STATIC_IP = "wifi_use_static_ip"; /** * The static IP address. * <p> * Example: "192.168.1.51" + * + * @deprecated Use {@link WifiManager} instead */ + @Deprecated public static final String WIFI_STATIC_IP = "wifi_static_ip"; /** * If using static IP, the gateway's IP address. * <p> * Example: "192.168.1.1" + * + * @deprecated Use {@link WifiManager} instead */ + @Deprecated public static final String WIFI_STATIC_GATEWAY = "wifi_static_gateway"; /** * If using static IP, the net mask. * <p> * Example: "255.255.255.0" + * + * @deprecated Use {@link WifiManager} instead */ + @Deprecated public static final String WIFI_STATIC_NETMASK = "wifi_static_netmask"; /** * If using static IP, the primary DNS's IP address. * <p> * Example: "192.168.1.1" + * + * @deprecated Use {@link WifiManager} instead */ + @Deprecated public static final String WIFI_STATIC_DNS1 = "wifi_static_dns1"; /** * If using static IP, the secondary DNS's IP address. * <p> * Example: "192.168.1.2" + * + * @deprecated Use {@link WifiManager} instead */ + @Deprecated public static final String WIFI_STATIC_DNS2 = "wifi_static_dns2"; @@ -2326,10 +2347,10 @@ public final class Settings { public static final String DEVICE_PROVISIONED = Global.DEVICE_PROVISIONED; /** - * @deprecated Use {@link android.provider.Settings.Secure#HTTP_PROXY} instead + * @deprecated Use {@link android.provider.Settings.Global#HTTP_PROXY} instead */ @Deprecated - public static final String HTTP_PROXY = Secure.HTTP_PROXY; + public static final String HTTP_PROXY = Global.HTTP_PROXY; /** * @deprecated Use {@link android.provider.Settings.Global#INSTALL_NON_MARKET_APPS} instead @@ -2633,10 +2654,8 @@ public final class Settings { MOVED_TO_GLOBAL.add(Settings.Global.WIFI_SAVED_STATE); MOVED_TO_GLOBAL.add(Settings.Global.WIFI_SUPPLICANT_SCAN_INTERVAL_MS); MOVED_TO_GLOBAL.add(Settings.Global.WIFI_SUSPEND_OPTIMIZATIONS_ENABLED); - MOVED_TO_GLOBAL.add(Settings.Global.WIFI_WATCHDOG_NUM_ARP_PINGS); MOVED_TO_GLOBAL.add(Settings.Global.WIFI_WATCHDOG_ON); MOVED_TO_GLOBAL.add(Settings.Global.WIFI_WATCHDOG_POOR_NETWORK_TEST_ENABLED); - MOVED_TO_GLOBAL.add(Settings.Global.WIFI_WATCHDOG_RSSI_FETCH_INTERVAL_MS); MOVED_TO_GLOBAL.add(Settings.Global.WIMAX_NETWORKS_AVAILABLE_NOTIFICATION_ON); MOVED_TO_GLOBAL.add(Settings.Global.PACKAGE_VERIFIER_ENABLE); MOVED_TO_GLOBAL.add(Settings.Global.PACKAGE_VERIFIER_TIMEOUT); @@ -2645,6 +2664,37 @@ public final class Settings { MOVED_TO_GLOBAL.add(Settings.Global.DATA_STALL_ALARM_AGGRESSIVE_DELAY_IN_MS); MOVED_TO_GLOBAL.add(Settings.Global.GPRS_REGISTER_CHECK_PERIOD_MS); MOVED_TO_GLOBAL.add(Settings.Global.WTF_IS_FATAL); + MOVED_TO_GLOBAL.add(Settings.Global.BATTERY_DISCHARGE_DURATION_THRESHOLD); + MOVED_TO_GLOBAL.add(Settings.Global.BATTERY_DISCHARGE_THRESHOLD); + MOVED_TO_GLOBAL.add(Settings.Global.SEND_ACTION_APP_ERROR); + MOVED_TO_GLOBAL.add(Settings.Global.DROPBOX_AGE_SECONDS); + MOVED_TO_GLOBAL.add(Settings.Global.DROPBOX_MAX_FILES); + MOVED_TO_GLOBAL.add(Settings.Global.DROPBOX_QUOTA_KB); + MOVED_TO_GLOBAL.add(Settings.Global.DROPBOX_QUOTA_PERCENT); + MOVED_TO_GLOBAL.add(Settings.Global.DROPBOX_RESERVE_PERCENT); + MOVED_TO_GLOBAL.add(Settings.Global.DROPBOX_TAG_PREFIX); + MOVED_TO_GLOBAL.add(Settings.Global.ERROR_LOGCAT_PREFIX); + MOVED_TO_GLOBAL.add(Settings.Global.SYS_FREE_STORAGE_LOG_INTERVAL); + MOVED_TO_GLOBAL.add(Settings.Global.DISK_FREE_CHANGE_REPORTING_THRESHOLD); + MOVED_TO_GLOBAL.add(Settings.Global.SYS_STORAGE_THRESHOLD_PERCENTAGE); + MOVED_TO_GLOBAL.add(Settings.Global.SYS_STORAGE_THRESHOLD_MAX_BYTES); + MOVED_TO_GLOBAL.add(Settings.Global.SYS_STORAGE_FULL_THRESHOLD_BYTES); + MOVED_TO_GLOBAL.add(Settings.Global.SYNC_MAX_RETRY_DELAY_IN_SECONDS); + MOVED_TO_GLOBAL.add(Settings.Global.CONNECTIVITY_CHANGE_DELAY); + MOVED_TO_GLOBAL.add(Settings.Global.CAPTIVE_PORTAL_DETECTION_ENABLED); + MOVED_TO_GLOBAL.add(Settings.Global.CAPTIVE_PORTAL_SERVER); + MOVED_TO_GLOBAL.add(Settings.Global.NSD_ON); + MOVED_TO_GLOBAL.add(Settings.Global.SET_INSTALL_LOCATION); + MOVED_TO_GLOBAL.add(Settings.Global.DEFAULT_INSTALL_LOCATION); + MOVED_TO_GLOBAL.add(Settings.Global.INET_CONDITION_DEBOUNCE_UP_DELAY); + MOVED_TO_GLOBAL.add(Settings.Global.INET_CONDITION_DEBOUNCE_DOWN_DELAY); + MOVED_TO_GLOBAL.add(Settings.Global.READ_EXTERNAL_STORAGE_ENFORCED_DEFAULT); + MOVED_TO_GLOBAL.add(Settings.Global.HTTP_PROXY); + MOVED_TO_GLOBAL.add(Settings.Global.GLOBAL_HTTP_PROXY_HOST); + MOVED_TO_GLOBAL.add(Settings.Global.GLOBAL_HTTP_PROXY_PORT); + MOVED_TO_GLOBAL.add(Settings.Global.GLOBAL_HTTP_PROXY_EXCLUSION_LIST); + MOVED_TO_GLOBAL.add(Settings.Global.SET_GLOBAL_HTTP_PROXY); + MOVED_TO_GLOBAL.add(Settings.Global.DEFAULT_DNS_SERVER); } /** @@ -3106,45 +3156,13 @@ public final class Settings { public static final String DISABLED_SYSTEM_INPUT_METHODS = "disabled_system_input_methods"; /** - * Host name and port for global http proxy. Uses ':' seperator for between host and port - * TODO - deprecate in favor of global_http_proxy_host, etc - */ - public static final String HTTP_PROXY = "http_proxy"; - - /** - * Host name for global http proxy. Set via ConnectivityManager. - * @hide - */ - public static final String GLOBAL_HTTP_PROXY_HOST = "global_http_proxy_host"; - - /** - * Integer host port for global http proxy. Set via ConnectivityManager. - * @hide - */ - public static final String GLOBAL_HTTP_PROXY_PORT = "global_http_proxy_port"; - - /** - * Exclusion list for global proxy. This string contains a list of comma-separated - * domains where the global proxy does not apply. Domains should be listed in a comma- - * separated list. Example of acceptable formats: ".domain1.com,my.domain2.com" - * Use ConnectivityManager to set/get. - * @hide - */ - public static final String GLOBAL_HTTP_PROXY_EXCLUSION_LIST = - "global_http_proxy_exclusion_list"; - - /** - * Enables the UI setting to allow the user to specify the global HTTP proxy - * and associated exclusion list. - * @hide - */ - public static final String SET_GLOBAL_HTTP_PROXY = "set_global_http_proxy"; - - /** - * Setting for default DNS in case nobody suggests one - * @hide + * Host name and port for global http proxy. Uses ':' seperator for + * between host and port. + * + * @deprecated Use {@link Global#HTTP_PROXY} */ - public static final String DEFAULT_DNS_SERVER = "default_dns_server"; + @Deprecated + public static final String HTTP_PROXY = Global.HTTP_PROXY; /** * @deprecated Use {@link android.provider.Settings.Global#INSTALL_NON_MARKET_APPS} instead @@ -3626,21 +3644,6 @@ public final class Settings { public static final String WIFI_MAX_DHCP_RETRY_COUNT = Global.WIFI_MAX_DHCP_RETRY_COUNT; /** - * Setting to turn off captive portal detection. Feature is enabled by default and - * the setting needs to be set to 0 to disable it. - * @hide - */ - public static final String CAPTIVE_PORTAL_DETECTION_ENABLED = - "captive_portal_detection_enabled"; - - /** - * The server used for captive portal detection upon a new conection. A 204 response - * code from the server is used for validation. - * @hide - */ - public static final String CAPTIVE_PORTAL_SERVER = "captive_portal_server"; - - /** * @deprecated Use * {@link android.provider.Settings.Global#WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS} instead */ @@ -3649,14 +3652,13 @@ public final class Settings { Global.WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS; /** - * Whether network service discovery is enabled. - * @hide - */ - public static final String NSD_ON = "nsd_on"; - - /** - * Whether background data usage is allowed by the user. See - * ConnectivityManager for more info. + * Whether background data usage is allowed. + * + * @deprecated As of {@link VERSION_CODES#ICE_CREAM_SANDWICH}, + * availability of background data depends on several + * combined factors. When background data is unavailable, + * {@link ConnectivityManager#getActiveNetworkInfo()} will + * now appear disconnected. */ @Deprecated public static final String BACKGROUND_DATA = "background_data"; @@ -3717,18 +3719,6 @@ public final class Settings { public static final String TTY_MODE_ENABLED = "tty_mode_enabled"; /** - * The number of milliseconds to delay before sending out Connectivyt Change broadcasts - * @hide - */ - public static final String CONNECTIVITY_CHANGE_DELAY = "connectivity_change_delay"; - - /** - * Default value for CONNECTIVITY_CHANGE_DELAY in milliseconds. - * @hide - */ - public static final int CONNECTIVITY_CHANGE_DELAY_DEFAULT = 3000; - - /** * Controls whether settings backup is enabled. * Type: int ( 0 = disabled, 1 = enabled ) * @hide @@ -3764,118 +3754,6 @@ public final class Settings { public static final String LAST_SETUP_SHOWN = "last_setup_shown"; /** - * Threshold values for the duration and level of a discharge cycle, under - * which we log discharge cycle info. - * @hide - */ - public static final String BATTERY_DISCHARGE_DURATION_THRESHOLD = - "battery_discharge_duration_threshold"; - /** @hide */ - public static final String BATTERY_DISCHARGE_THRESHOLD = "battery_discharge_threshold"; - - /** - * Flag for allowing ActivityManagerService to send ACTION_APP_ERROR intents - * on application crashes and ANRs. If this is disabled, the crash/ANR dialog - * will never display the "Report" button. - * Type: int ( 0 = disallow, 1 = allow ) - * @hide - */ - public static final String SEND_ACTION_APP_ERROR = "send_action_app_error"; - - /** - * Maximum age of entries kept by {@link com.android.internal.os.IDropBoxManagerService}. - * @hide - */ - public static final String DROPBOX_AGE_SECONDS = - "dropbox_age_seconds"; - /** - * Maximum number of entry files which {@link com.android.internal.os.IDropBoxManagerService} will keep around. - * @hide - */ - public static final String DROPBOX_MAX_FILES = - "dropbox_max_files"; - /** - * Maximum amount of disk space used by {@link com.android.internal.os.IDropBoxManagerService} no matter what. - * @hide - */ - public static final String DROPBOX_QUOTA_KB = - "dropbox_quota_kb"; - /** - * Percent of free disk (excluding reserve) which {@link com.android.internal.os.IDropBoxManagerService} will use. - * @hide - */ - public static final String DROPBOX_QUOTA_PERCENT = - "dropbox_quota_percent"; - /** - * Percent of total disk which {@link com.android.internal.os.IDropBoxManagerService} will never dip into. - * @hide - */ - public static final String DROPBOX_RESERVE_PERCENT = - "dropbox_reserve_percent"; - /** - * Prefix for per-tag dropbox disable/enable settings. - * @hide - */ - public static final String DROPBOX_TAG_PREFIX = - "dropbox:"; - /** - * Lines of logcat to include with system crash/ANR/etc. reports, - * as a prefix of the dropbox tag of the report type. - * For example, "logcat_for_system_server_anr" controls the lines - * of logcat captured with system server ANR reports. 0 to disable. - * @hide - */ - public static final String ERROR_LOGCAT_PREFIX = - "logcat_for_"; - - /** - * The interval in minutes after which the amount of free storage left on the - * device is logged to the event log - * @hide - */ - public static final String SYS_FREE_STORAGE_LOG_INTERVAL = - "sys_free_storage_log_interval"; - - /** - * Threshold for the amount of change in disk free space required to report the amount of - * free space. Used to prevent spamming the logs when the disk free space isn't changing - * frequently. - * @hide - */ - public static final String DISK_FREE_CHANGE_REPORTING_THRESHOLD = - "disk_free_change_reporting_threshold"; - - - /** - * Minimum percentage of free storage on the device that is used to determine if - * the device is running low on storage. The default is 10. - * <p>Say this value is set to 10, the device is considered running low on storage - * if 90% or more of the device storage is filled up. - * @hide - */ - public static final String SYS_STORAGE_THRESHOLD_PERCENTAGE = - "sys_storage_threshold_percentage"; - - /** - * Maximum byte size of the low storage threshold. This is to ensure - * that {@link #SYS_STORAGE_THRESHOLD_PERCENTAGE} does not result in - * an overly large threshold for large storage devices. Currently this - * must be less than 2GB. This default is 500MB. - * @hide - */ - public static final String SYS_STORAGE_THRESHOLD_MAX_BYTES = - "sys_storage_threshold_max_bytes"; - - /** - * Minimum bytes of free storage on the device before the data - * partition is considered full. By default, 1 MB is reserved - * to avoid system-wide SQLite disk full exceptions. - * @hide - */ - public static final String SYS_STORAGE_FULL_THRESHOLD_BYTES = - "sys_storage_full_threshold_bytes"; - - /** * The interval in milliseconds after which Wi-Fi is considered idle. * When idle, it is possible for the device to be switched from Wi-Fi to * the mobile data network. @@ -3887,14 +3765,6 @@ public final class Settings { public static final String WIFI_IDLE_MS = Global.WIFI_IDLE_MS; /** - * The maximum reconnect delay for short network outages or when the network is suspended - * due to phone use. - * @hide - */ - public static final String SYNC_MAX_RETRY_DELAY_IN_SECONDS = - "sync_max_retry_delay_in_seconds"; - - /** * The global search provider chosen by the user (if multiple global * search providers are installed). This will be the provider returned * by {@link SearchManager#getGlobalSearchActivity()} if it's still @@ -4114,37 +3984,6 @@ public final class Settings { public static final String UI_NIGHT_MODE = "ui_night_mode"; /** - * Let user pick default install location. - * @hide - */ - public static final String SET_INSTALL_LOCATION = "set_install_location"; - - /** - * Default install location value. - * 0 = auto, let system decide - * 1 = internal - * 2 = sdcard - * @hide - */ - public static final String DEFAULT_INSTALL_LOCATION = "default_install_location"; - - /** - * ms during which to consume extra events related to Inet connection condition - * after a transtion to fully-connected - * @hide - */ - public static final String INET_CONDITION_DEBOUNCE_UP_DELAY = - "inet_condition_debounce_up_delay"; - - /** - * ms during which to consume extra events related to Inet connection condtion - * after a transtion to partly-connected - * @hide - */ - public static final String INET_CONDITION_DEBOUNCE_DOWN_DELAY = - "inet_condition_debounce_down_delay"; - - /** * Whether screensavers are enabled. * @hide */ @@ -4179,10 +4018,6 @@ public final class Settings { */ public static final String SCREENSAVER_DEFAULT_COMPONENT = "screensaver_default_component"; - /** {@hide} */ - public static final String - READ_EXTERNAL_STORAGE_ENFORCED_DEFAULT = "read_external_storage_enforced_default"; - /** * This are the settings to be backed up. * @@ -4959,19 +4794,6 @@ public final class Settings { public static final String WIFI_WATCHDOG_ON = "wifi_watchdog_on"; /** - * ms delay interval between rssi polling when the signal is known to be weak - * @hide - */ - public static final String WIFI_WATCHDOG_RSSI_FETCH_INTERVAL_MS = - "wifi_watchdog_rssi_fetch_interval_ms"; - - /** - * Number of ARP pings per check. - * @hide - */ - public static final String WIFI_WATCHDOG_NUM_ARP_PINGS = "wifi_watchdog_num_arp_pings"; - - /** * Setting to turn off poor network avoidance on Wi-Fi. Feature is enabled by default and * the setting needs to be set to 0 to disable it. * @hide @@ -5074,6 +4896,262 @@ public final class Settings { */ public static final String OVERLAY_DISPLAY_DEVICES = "overlay_display_devices"; + /** + * Threshold values for the duration and level of a discharge cycle, + * under which we log discharge cycle info. + * + * @hide + */ + public static final String + BATTERY_DISCHARGE_DURATION_THRESHOLD = "battery_discharge_duration_threshold"; + + /** @hide */ + public static final String BATTERY_DISCHARGE_THRESHOLD = "battery_discharge_threshold"; + + /** + * Flag for allowing ActivityManagerService to send ACTION_APP_ERROR + * intents on application crashes and ANRs. If this is disabled, the + * crash/ANR dialog will never display the "Report" button. + * <p> + * Type: int (0 = disallow, 1 = allow) + * + * @hide + */ + public static final String SEND_ACTION_APP_ERROR = "send_action_app_error"; + + /** + * Maximum age of entries kept by {@link DropBoxManager}. + * + * @hide + */ + public static final String DROPBOX_AGE_SECONDS = "dropbox_age_seconds"; + + /** + * Maximum number of entry files which {@link DropBoxManager} will keep + * around. + * + * @hide + */ + public static final String DROPBOX_MAX_FILES = "dropbox_max_files"; + + /** + * Maximum amount of disk space used by {@link DropBoxManager} no matter + * what. + * + * @hide + */ + public static final String DROPBOX_QUOTA_KB = "dropbox_quota_kb"; + + /** + * Percent of free disk (excluding reserve) which {@link DropBoxManager} + * will use. + * + * @hide + */ + public static final String DROPBOX_QUOTA_PERCENT = "dropbox_quota_percent"; + + /** + * Percent of total disk which {@link DropBoxManager} will never dip + * into. + * + * @hide + */ + public static final String DROPBOX_RESERVE_PERCENT = "dropbox_reserve_percent"; + + /** + * Prefix for per-tag dropbox disable/enable settings. + * + * @hide + */ + public static final String DROPBOX_TAG_PREFIX = "dropbox:"; + + /** + * Lines of logcat to include with system crash/ANR/etc. reports, as a + * prefix of the dropbox tag of the report type. For example, + * "logcat_for_system_server_anr" controls the lines of logcat captured + * with system server ANR reports. 0 to disable. + * + * @hide + */ + public static final String ERROR_LOGCAT_PREFIX = "logcat_for_"; + + /** + * The interval in minutes after which the amount of free storage left + * on the device is logged to the event log + * + * @hide + */ + public static final String SYS_FREE_STORAGE_LOG_INTERVAL = "sys_free_storage_log_interval"; + + /** + * Threshold for the amount of change in disk free space required to + * report the amount of free space. Used to prevent spamming the logs + * when the disk free space isn't changing frequently. + * + * @hide + */ + public static final String + DISK_FREE_CHANGE_REPORTING_THRESHOLD = "disk_free_change_reporting_threshold"; + + /** + * Minimum percentage of free storage on the device that is used to + * determine if the device is running low on storage. The default is 10. + * <p> + * Say this value is set to 10, the device is considered running low on + * storage if 90% or more of the device storage is filled up. + * + * @hide + */ + public static final String + SYS_STORAGE_THRESHOLD_PERCENTAGE = "sys_storage_threshold_percentage"; + + /** + * Maximum byte size of the low storage threshold. This is to ensure + * that {@link #SYS_STORAGE_THRESHOLD_PERCENTAGE} does not result in an + * overly large threshold for large storage devices. Currently this must + * be less than 2GB. This default is 500MB. + * + * @hide + */ + public static final String + SYS_STORAGE_THRESHOLD_MAX_BYTES = "sys_storage_threshold_max_bytes"; + + /** + * Minimum bytes of free storage on the device before the data partition + * is considered full. By default, 1 MB is reserved to avoid system-wide + * SQLite disk full exceptions. + * + * @hide + */ + public static final String + SYS_STORAGE_FULL_THRESHOLD_BYTES = "sys_storage_full_threshold_bytes"; + + /** + * The maximum reconnect delay for short network outages or when the + * network is suspended due to phone use. + * + * @hide + */ + public static final String + SYNC_MAX_RETRY_DELAY_IN_SECONDS = "sync_max_retry_delay_in_seconds"; + + /** + * The number of milliseconds to delay before sending out + * {@link ConnectivityManager#CONNECTIVITY_ACTION} broadcasts. + * + * @hide + */ + public static final String CONNECTIVITY_CHANGE_DELAY = "connectivity_change_delay"; + + /** + * Setting to turn off captive portal detection. Feature is enabled by + * default and the setting needs to be set to 0 to disable it. + * + * @hide + */ + public static final String + CAPTIVE_PORTAL_DETECTION_ENABLED = "captive_portal_detection_enabled"; + + /** + * The server used for captive portal detection upon a new conection. A + * 204 response code from the server is used for validation. + * + * @hide + */ + public static final String CAPTIVE_PORTAL_SERVER = "captive_portal_server"; + + /** + * Whether network service discovery is enabled. + * + * @hide + */ + public static final String NSD_ON = "nsd_on"; + + /** + * Let user pick default install location. + * + * @hide + */ + public static final String SET_INSTALL_LOCATION = "set_install_location"; + + /** + * Default install location value. + * 0 = auto, let system decide + * 1 = internal + * 2 = sdcard + * @hide + */ + public static final String DEFAULT_INSTALL_LOCATION = "default_install_location"; + + /** + * ms during which to consume extra events related to Inet connection + * condition after a transtion to fully-connected + * + * @hide + */ + public static final String + INET_CONDITION_DEBOUNCE_UP_DELAY = "inet_condition_debounce_up_delay"; + + /** + * ms during which to consume extra events related to Inet connection + * condtion after a transtion to partly-connected + * + * @hide + */ + public static final String + INET_CONDITION_DEBOUNCE_DOWN_DELAY = "inet_condition_debounce_down_delay"; + + /** {@hide} */ + public static final String + READ_EXTERNAL_STORAGE_ENFORCED_DEFAULT = "read_external_storage_enforced_default"; + + /** + * Host name and port for global http proxy. Uses ':' seperator for + * between host and port. + */ + public static final String HTTP_PROXY = "http_proxy"; + + /** + * Host name for global http proxy. Set via ConnectivityManager. + * + * @hide + */ + public static final String GLOBAL_HTTP_PROXY_HOST = "global_http_proxy_host"; + + /** + * Integer host port for global http proxy. Set via ConnectivityManager. + * + * @hide + */ + public static final String GLOBAL_HTTP_PROXY_PORT = "global_http_proxy_port"; + + /** + * Exclusion list for global proxy. This string contains a list of + * comma-separated domains where the global proxy does not apply. + * Domains should be listed in a comma- separated list. Example of + * acceptable formats: ".domain1.com,my.domain2.com" Use + * ConnectivityManager to set/get. + * + * @hide + */ + public static final String + GLOBAL_HTTP_PROXY_EXCLUSION_LIST = "global_http_proxy_exclusion_list"; + + /** + * Enables the UI setting to allow the user to specify the global HTTP + * proxy and associated exclusion list. + * + * @hide + */ + public static final String SET_GLOBAL_HTTP_PROXY = "set_global_http_proxy"; + + /** + * Setting for default DNS in case nobody suggests one + * + * @hide + */ + public static final String DEFAULT_DNS_SERVER = "default_dns_server"; + // Populated lazily, guarded by class object: private static NameValueCache sNameValueCache = new NameValueCache( SYS_PROP_SETTING_VERSION, diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index 12eb800fc3a3..750badd52ff6 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -2150,7 +2150,10 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * Group of bits indicating that RTL properties resolution is done. */ static final int ALL_RTL_PROPERTIES_RESOLVED = PFLAG2_LAYOUT_DIRECTION_RESOLVED | - PFLAG2_TEXT_DIRECTION_RESOLVED | PFLAG2_TEXT_ALIGNMENT_RESOLVED; + PFLAG2_TEXT_DIRECTION_RESOLVED | + PFLAG2_TEXT_ALIGNMENT_RESOLVED | + PFLAG2_PADDING_RESOLVED | + PFLAG2_DRAWABLE_RESOLVED; // There are a couple of flags left in mPrivateFlags2 @@ -3299,6 +3302,11 @@ public class View implements Drawable.Callback, KeyEvent.Callback, int overScrollMode = mOverScrollMode; boolean initializeScrollbars = false; + boolean leftPaddingDefined = false; + boolean rightPaddingDefined = false; + boolean startPaddingDefined = false; + boolean endPaddingDefined = false; + final int targetSdkVersion = context.getApplicationInfo().targetSdkVersion; final int N = a.getIndexCount(); @@ -3312,10 +3320,13 @@ public class View implements Drawable.Callback, KeyEvent.Callback, padding = a.getDimensionPixelSize(attr, -1); mUserPaddingLeftInitial = padding; mUserPaddingRightInitial = padding; + leftPaddingDefined = true; + rightPaddingDefined = true; break; case com.android.internal.R.styleable.View_paddingLeft: leftPadding = a.getDimensionPixelSize(attr, -1); mUserPaddingLeftInitial = leftPadding; + leftPaddingDefined = true; break; case com.android.internal.R.styleable.View_paddingTop: topPadding = a.getDimensionPixelSize(attr, -1); @@ -3323,15 +3334,18 @@ public class View implements Drawable.Callback, KeyEvent.Callback, case com.android.internal.R.styleable.View_paddingRight: rightPadding = a.getDimensionPixelSize(attr, -1); mUserPaddingRightInitial = rightPadding; + rightPaddingDefined = true; break; case com.android.internal.R.styleable.View_paddingBottom: bottomPadding = a.getDimensionPixelSize(attr, -1); break; case com.android.internal.R.styleable.View_paddingStart: startPadding = a.getDimensionPixelSize(attr, UNDEFINED_PADDING); + startPaddingDefined = true; break; case com.android.internal.R.styleable.View_paddingEnd: endPadding = a.getDimensionPixelSize(attr, UNDEFINED_PADDING); + endPaddingDefined = true; break; case com.android.internal.R.styleable.View_scrollX: x = a.getDimensionPixelOffset(attr, 0); @@ -3629,10 +3643,24 @@ public class View implements Drawable.Callback, KeyEvent.Callback, mUserPaddingRightInitial = padding; } + // RTL compatibility mode: pre Jelly Bean MR1 case OR no RTL support case. + // left / right padding are used if defined (meaning here nothing to do). If they are not + // defined and start / end padding are defined (e.g. in Frameworks resources), then we use + // start / end and resolve them as left / right (layout direction is not taken into account). + if (isRtlCompatibilityMode()) { + if (!leftPaddingDefined && startPaddingDefined) { + leftPadding = startPadding; + } + if (!rightPaddingDefined && endPaddingDefined) { + rightPadding = endPadding; + } + } + // If the user specified the padding (either with android:padding or // android:paddingLeft/Top/Right/Bottom), use this padding, otherwise // use the default padding or the padding from the background drawable - // (stored at this point in mPadding*) + // (stored at this point in mPadding*). Padding resolution will happen later if + // RTL is supported. mUserPaddingLeftInitial = leftPadding >= 0 ? leftPadding : mPaddingLeft; mUserPaddingRightInitial = rightPadding >= 0 ? rightPadding : mPaddingRight; internalSetPadding( @@ -11569,6 +11597,15 @@ public class View implements Drawable.Callback, KeyEvent.Callback, } /** + * Return true if we are in RTL compatibility mode (either before Jelly Bean MR1 or + * RTL not supported) + */ + private boolean isRtlCompatibilityMode() { + final int targetSdkVersion = getContext().getApplicationInfo().targetSdkVersion; + return targetSdkVersion < JELLY_BEAN_MR1 || !hasRtlSupport(); + } + + /** * @return true if RTL properties need resolution. */ private boolean needRtlPropertiesResolution() { @@ -11693,26 +11730,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * @hide */ public void resolvePadding() { - final int targetSdkVersion = getContext().getApplicationInfo().targetSdkVersion; - if (targetSdkVersion < JELLY_BEAN_MR1 || !hasRtlSupport()) { - // Pre Jelly Bean MR1 case (compatibility mode) OR no RTL support case: - // left / right padding are used if defined. If they are not defined and start / end - // padding are defined (e.g. in Frameworks resources), then we use start / end and - // resolve them as left / right (layout direction is not taken into account). - if (mUserPaddingLeftInitial == UNDEFINED_PADDING && - mUserPaddingStart != UNDEFINED_PADDING) { - mUserPaddingLeft = mUserPaddingStart; - } - if (mUserPaddingRightInitial == UNDEFINED_PADDING && - mUserPaddingEnd != UNDEFINED_PADDING) { - mUserPaddingRight = mUserPaddingEnd; - } - - mUserPaddingBottom = (mUserPaddingBottom >= 0) ? mUserPaddingBottom : mPaddingBottom; - - internalSetPadding(mUserPaddingLeft, mPaddingTop, mUserPaddingRight, - mUserPaddingBottom); - } else { + if (!isRtlCompatibilityMode()) { // Post Jelly Bean MR1 case: we need to take the resolved layout direction into account. // If start / end padding are defined, they will be resolved (hence overriding) to // left / right or right / left depending on the resolved layout direction. diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index 6db40ba04bef..438f792f2c62 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -1616,6 +1616,7 @@ public final class ViewRootImpl implements ViewParent, mAttachInfo.mHardwareRenderer.setup(mWidth, mHeight); if (!hwInitialized) { mAttachInfo.mHardwareRenderer.invalidate(mHolder.getSurface()); + mFullRedrawNeeded = true; } } } diff --git a/core/java/android/webkit/BrowserFrame.java b/core/java/android/webkit/BrowserFrame.java index fea427d17f68..4dbca23c9277 100644 --- a/core/java/android/webkit/BrowserFrame.java +++ b/core/java/android/webkit/BrowserFrame.java @@ -1025,7 +1025,7 @@ class BrowserFrame extends Handler { } private float density() { - return mContext.getResources().getDisplayMetrics().density; + return WebViewCore.getFixedDisplayDensity(mContext); } /** diff --git a/core/java/android/webkit/WebViewClassic.java b/core/java/android/webkit/WebViewClassic.java index 1c47615376be..d68511c45335 100644 --- a/core/java/android/webkit/WebViewClassic.java +++ b/core/java/android/webkit/WebViewClassic.java @@ -1664,7 +1664,7 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc mTouchSlopSquare = slop * slop; slop = configuration.getScaledDoubleTapSlop(); mDoubleTapSlopSquare = slop * slop; - final float density = mContext.getResources().getDisplayMetrics().density; + final float density = WebViewCore.getFixedDisplayDensity(mContext); // use one line height, 16 based on our current default font, for how // far we allow a touch be away from the edge of a link mNavSlop = (int) (16 * density); @@ -1809,7 +1809,7 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc } /* package */ void adjustDefaultZoomDensity(int zoomDensity) { - final float density = mContext.getResources().getDisplayMetrics().density + final float density = WebViewCore.getFixedDisplayDensity(mContext) * 100 / zoomDensity; updateDefaultZoomDensity(density); } diff --git a/core/java/android/webkit/WebViewCore.java b/core/java/android/webkit/WebViewCore.java index 33fe834dda21..3fb3ec62c435 100644 --- a/core/java/android/webkit/WebViewCore.java +++ b/core/java/android/webkit/WebViewCore.java @@ -2479,6 +2479,13 @@ public final class WebViewCore { setupViewport(true); } + static float getFixedDisplayDensity(Context context) { + // We make bad assumptions about multiplying and dividing density by 100, + // force them to be true with this hack + float density = context.getResources().getDisplayMetrics().density; + return ((int) (density * 100)) / 100.0f; + } + private void setupViewport(boolean updateViewState) { if (mWebViewClassic == null || mSettings == null) { // We've been destroyed or are being destroyed, return early @@ -2523,14 +2530,13 @@ public final class WebViewCore { // adjust the default scale to match the densityDpi float adjust = 1.0f; if (mViewportDensityDpi == -1) { - adjust = mContext.getResources().getDisplayMetrics().density; + adjust = getFixedDisplayDensity(mContext); } else if (mViewportDensityDpi > 0) { adjust = (float) mContext.getResources().getDisplayMetrics().densityDpi / mViewportDensityDpi; + adjust = ((int) (adjust * 100)) / 100.0f; } - // We make bad assumptions about multiplying and dividing by 100, force - // them to be true with this hack - adjust = ((int) (adjust * 100)) / 100.0f; + // Remove any update density messages in flight. // If the density is indeed different from WebView's default scale, // a new message will be queued. diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java index 62643154cbfd..7f0af09fca01 100644 --- a/core/java/android/widget/AbsListView.java +++ b/core/java/android/widget/AbsListView.java @@ -65,6 +65,7 @@ import android.view.inputmethod.EditorInfo; import android.view.inputmethod.InputConnection; import android.view.inputmethod.InputConnectionWrapper; import android.view.inputmethod.InputMethodManager; +import android.widget.RemoteViews.OnClickHandler; import com.android.internal.R; @@ -5875,6 +5876,21 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te } /** + * Sets up the onClickHandler to be used by the RemoteViewsAdapter when inflating RemoteViews + * + * @param handler The OnClickHandler to use when inflating RemoteViews. + * + * @hide + */ + public void setRemoteViewsOnClickHandler(OnClickHandler handler) { + // Ensure that we don't already have a RemoteViewsAdapter that is bound to an existing + // service handling the specified intent. + if (mRemoteAdapter != null) { + mRemoteAdapter.setRemoteViewsOnClickHandler(handler); + } + } + + /** * This defers a notifyDataSetChanged on the pending RemoteViewsAdapter if it has not * connected yet. */ diff --git a/core/java/android/widget/AdapterViewAnimator.java b/core/java/android/widget/AdapterViewAnimator.java index 2266cea8a92c..90e949aef934 100644 --- a/core/java/android/widget/AdapterViewAnimator.java +++ b/core/java/android/widget/AdapterViewAnimator.java @@ -31,6 +31,7 @@ import android.view.ViewConfiguration; import android.view.ViewGroup; import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityNodeInfo; +import android.widget.RemoteViews.OnClickHandler; import java.util.ArrayList; import java.util.HashMap; @@ -992,6 +993,21 @@ public abstract class AdapterViewAnimator extends AdapterView<Adapter> } } + /** + * Sets up the onClickHandler to be used by the RemoteViewsAdapter when inflating RemoteViews + * + * @param handler The OnClickHandler to use when inflating RemoteViews. + * + * @hide + */ + public void setRemoteViewsOnClickHandler(OnClickHandler handler) { + // Ensure that we don't already have a RemoteViewsAdapter that is bound to an existing + // service handling the specified intent. + if (mRemoteViewsAdapter != null) { + mRemoteViewsAdapter.setRemoteViewsOnClickHandler(handler); + } + } + @Override public void setSelection(int position) { setDisplayedChild(position); diff --git a/core/java/android/widget/RemoteViews.java b/core/java/android/widget/RemoteViews.java index 4b5dfb84d742..8d837743fb29 100644 --- a/core/java/android/widget/RemoteViews.java +++ b/core/java/android/widget/RemoteViews.java @@ -237,12 +237,11 @@ public class RemoteViews implements Parcelable, Filter { * @hide */ public void mergeRemoteViews(RemoteViews newRv) { + if (newRv == null) return; // We first copy the new RemoteViews, as the process of merging modifies the way the actions // reference the bitmap cache. We don't want to modify the object as it may need to // be merged and applied multiple times. - Parcel p = Parcel.obtain(); - newRv.writeToParcel(p, 0); - RemoteViews copy = new RemoteViews(p); + RemoteViews copy = newRv.clone(); HashMap<String, Action> map = new HashMap<String, Action>(); if (mActions == null) { @@ -261,7 +260,7 @@ public class RemoteViews implements Parcelable, Filter { for (int i = 0; i < count; i++) { Action a = newActions.get(i); String key = newActions.get(i).getUniqueKey(); - int mergeBehavior = map.get(key).mergeBehavior(); + int mergeBehavior = newActions.get(i).mergeBehavior(); if (map.containsKey(key) && mergeBehavior == Action.MERGE_REPLACE) { mActions.remove(map.get(key)); map.remove(key); @@ -530,9 +529,11 @@ public class RemoteViews implements Parcelable, Filter { if (target instanceof AbsListView) { AbsListView v = (AbsListView) target; v.setRemoteViewsAdapter(intent); + v.setRemoteViewsOnClickHandler(handler); } else if (target instanceof AdapterViewAnimator) { AdapterViewAnimator v = (AdapterViewAnimator) target; v.setRemoteViewsAdapter(intent); + v.setRemoteViewsOnClickHandler(handler); } } @@ -1579,23 +1580,12 @@ public class RemoteViews implements Parcelable, Filter { recalculateMemoryUsage(); } - @Override - public RemoteViews clone() { - RemoteViews that; - if (!hasLandscapeAndPortraitLayouts()) { - that = new RemoteViews(mPackage, mLayoutId); - if (mActions != null) { - that.mActions = (ArrayList<Action>)mActions.clone(); - } - } else { - RemoteViews land = mLandscape.clone(); - RemoteViews port = mPortrait.clone(); - that = new RemoteViews(land, port); - } - // update the memory usage stats of the cloned RemoteViews - that.recalculateMemoryUsage(); - return that; + public RemoteViews clone() { + Parcel p = Parcel.obtain(); + writeToParcel(p, 0); + p.setDataPosition(0); + return new RemoteViews(p); } public String getPackage() { diff --git a/core/java/android/widget/RemoteViewsAdapter.java b/core/java/android/widget/RemoteViewsAdapter.java index f0109ce947ce..e4817025c347 100644 --- a/core/java/android/widget/RemoteViewsAdapter.java +++ b/core/java/android/widget/RemoteViewsAdapter.java @@ -36,6 +36,7 @@ import android.view.LayoutInflater; import android.view.View; import android.view.View.MeasureSpec; import android.view.ViewGroup; +import android.widget.RemoteViews.OnClickHandler; import com.android.internal.widget.IRemoteViewsAdapterConnection; import com.android.internal.widget.IRemoteViewsFactory; @@ -68,6 +69,7 @@ public class RemoteViewsAdapter extends BaseAdapter implements Handler.Callback private LayoutInflater mLayoutInflater; private RemoteViewsAdapterServiceConnection mServiceConnection; private WeakReference<RemoteAdapterConnectionCallback> mCallback; + private OnClickHandler mRemoteViewsOnClickHandler; private FixedSizeRemoteViewsCache mCache; private int mVisibleWindowLowerBound; private int mVisibleWindowUpperBound; @@ -277,11 +279,11 @@ public class RemoteViewsAdapter extends BaseAdapter implements Handler.Callback * @param view the RemoteViews that was loaded. If null, the RemoteViews was not loaded * successfully. */ - public void onRemoteViewsLoaded(RemoteViews view) { + public void onRemoteViewsLoaded(RemoteViews view, OnClickHandler handler) { try { // Remove all the children of this layout first removeAllViews(); - addView(view.apply(getContext(), this)); + addView(view.apply(getContext(), this, handler)); } catch (Exception e) { Log.e(TAG, "Failed to apply RemoteViews."); } @@ -330,7 +332,7 @@ public class RemoteViewsAdapter extends BaseAdapter implements Handler.Callback // Notify all the references for that position of the newly loaded RemoteViews final LinkedList<RemoteViewsFrameLayout> refs = mReferences.get(pos); for (final RemoteViewsFrameLayout ref : refs) { - ref.onRemoteViewsLoaded(view); + ref.onRemoteViewsLoaded(view, mRemoteViewsOnClickHandler); } refs.clear(); @@ -421,7 +423,8 @@ public class RemoteViewsAdapter extends BaseAdapter implements Handler.Callback } private RemoteViewsFrameLayout createLoadingView(int position, View convertView, - ViewGroup parent, Object lock, LayoutInflater layoutInflater) { + ViewGroup parent, Object lock, LayoutInflater layoutInflater, OnClickHandler + handler) { // Create and return a new FrameLayout, and setup the references for this position final Context context = parent.getContext(); RemoteViewsFrameLayout layout = new RemoteViewsFrameLayout(context); @@ -433,7 +436,8 @@ public class RemoteViewsAdapter extends BaseAdapter implements Handler.Callback if (mUserLoadingView != null) { // Try to inflate user-specified loading view try { - View loadingView = mUserLoadingView.apply(parent.getContext(), parent); + View loadingView = mUserLoadingView.apply(parent.getContext(), parent, + handler); loadingView.setTagInternal(com.android.internal.R.id.rowTypeId, new Integer(0)); layout.addView(loadingView); @@ -448,7 +452,7 @@ public class RemoteViewsAdapter extends BaseAdapter implements Handler.Callback // Use the size of the first row as a guide for the size of the loading view if (mFirstViewHeight < 0) { try { - View firstView = mFirstView.apply(parent.getContext(), parent); + View firstView = mFirstView.apply(parent.getContext(), parent, handler); firstView.measure( MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); @@ -815,6 +819,10 @@ public class RemoteViewsAdapter extends BaseAdapter implements Handler.Callback return mDataReady; } + public void setRemoteViewsOnClickHandler(OnClickHandler handler) { + mRemoteViewsOnClickHandler = handler; + } + public void saveRemoteViewsCache() { final Pair<Intent.FilterComparison, Integer> key = new Pair<Intent.FilterComparison, Integer> (new Intent.FilterComparison(mIntent), mAppWidgetId); @@ -1102,7 +1110,7 @@ public class RemoteViewsAdapter extends BaseAdapter implements Handler.Callback // Reuse the convert view where possible if (layout != null) { if (convertViewTypeId == typeId) { - rv.reapply(context, convertViewChild); + rv.reapply(context, convertViewChild, mRemoteViewsOnClickHandler); return layout; } layout.removeAllViews(); @@ -1111,7 +1119,7 @@ public class RemoteViewsAdapter extends BaseAdapter implements Handler.Callback } // Otherwise, create a new view to be returned - View newView = rv.apply(context, parent); + View newView = rv.apply(context, parent, mRemoteViewsOnClickHandler); newView.setTagInternal(com.android.internal.R.id.rowTypeId, new Integer(typeId)); layout.addView(newView); @@ -1127,7 +1135,7 @@ public class RemoteViewsAdapter extends BaseAdapter implements Handler.Callback final RemoteViewsMetaData metaData = mCache.getMetaData(); synchronized (metaData) { loadingView = metaData.createLoadingView(position, convertView, parent, - mCache, mLayoutInflater); + mCache, mLayoutInflater, mRemoteViewsOnClickHandler); } return loadingView; } finally { @@ -1140,7 +1148,7 @@ public class RemoteViewsAdapter extends BaseAdapter implements Handler.Callback final RemoteViewsMetaData metaData = mCache.getMetaData(); synchronized (metaData) { loadingView = metaData.createLoadingView(position, convertView, parent, - mCache, mLayoutInflater); + mCache, mLayoutInflater, mRemoteViewsOnClickHandler); } mRequestedViews.add(position, loadingView); diff --git a/core/java/com/android/internal/view/RotationPolicy.java b/core/java/com/android/internal/view/RotationPolicy.java index 98beadb5aaae..95130c8c9587 100644 --- a/core/java/com/android/internal/view/RotationPolicy.java +++ b/core/java/com/android/internal/view/RotationPolicy.java @@ -23,6 +23,7 @@ import android.os.AsyncTask; import android.os.Handler; import android.os.RemoteException; import android.os.ServiceManager; +import android.os.UserHandle; import android.provider.Settings; import android.util.Log; import android.view.IWindowManager; @@ -55,16 +56,17 @@ public final class RotationPolicy { */ public static boolean isRotationLockToggleVisible(Context context) { return isRotationLockToggleSupported(context) && - Settings.System.getInt(context.getContentResolver(), - Settings.System.HIDE_ROTATION_LOCK_TOGGLE_FOR_ACCESSIBILITY, 0) == 0; + Settings.System.getIntForUser(context.getContentResolver(), + Settings.System.HIDE_ROTATION_LOCK_TOGGLE_FOR_ACCESSIBILITY, 0, + UserHandle.USER_CURRENT) == 0; } /** * Returns true if rotation lock is enabled. */ public static boolean isRotationLocked(Context context) { - return Settings.System.getInt(context.getContentResolver(), - Settings.System.ACCELEROMETER_ROTATION, 0) == 0; + return Settings.System.getIntForUser(context.getContentResolver(), + Settings.System.ACCELEROMETER_ROTATION, 0, UserHandle.USER_CURRENT) == 0; } /** @@ -73,8 +75,9 @@ public final class RotationPolicy { * Should be used by the rotation lock toggle. */ public static void setRotationLock(Context context, final boolean enabled) { - Settings.System.putInt(context.getContentResolver(), - Settings.System.HIDE_ROTATION_LOCK_TOGGLE_FOR_ACCESSIBILITY, 0); + Settings.System.putIntForUser(context.getContentResolver(), + Settings.System.HIDE_ROTATION_LOCK_TOGGLE_FOR_ACCESSIBILITY, 0, + UserHandle.USER_CURRENT); AsyncTask.execute(new Runnable() { @Override @@ -100,8 +103,9 @@ public final class RotationPolicy { * Should be used by Display settings and Accessibility settings. */ public static void setRotationLockForAccessibility(Context context, final boolean enabled) { - Settings.System.putInt(context.getContentResolver(), - Settings.System.HIDE_ROTATION_LOCK_TOGGLE_FOR_ACCESSIBILITY, enabled ? 1 : 0); + Settings.System.putIntForUser(context.getContentResolver(), + Settings.System.HIDE_ROTATION_LOCK_TOGGLE_FOR_ACCESSIBILITY, enabled ? 1 : 0, + UserHandle.USER_CURRENT); AsyncTask.execute(new Runnable() { @Override @@ -121,16 +125,25 @@ public final class RotationPolicy { } /** - * Registers a listener for rotation policy changes. + * Registers a listener for rotation policy changes affecting the caller's user */ public static void registerRotationPolicyListener(Context context, RotationPolicyListener listener) { + registerRotationPolicyListener(context, listener, UserHandle.getCallingUserId()); + } + + /** + * Registers a listener for rotation policy changes affecting a specific user, + * or USER_ALL for all users. + */ + public static void registerRotationPolicyListener(Context context, + RotationPolicyListener listener, int userHandle) { context.getContentResolver().registerContentObserver(Settings.System.getUriFor( Settings.System.ACCELEROMETER_ROTATION), - false, listener.mObserver); + false, listener.mObserver, userHandle); context.getContentResolver().registerContentObserver(Settings.System.getUriFor( Settings.System.HIDE_ROTATION_LOCK_TOGGLE_FOR_ACCESSIBILITY), - false, listener.mObserver); + false, listener.mObserver, userHandle); } /** diff --git a/core/java/com/android/internal/widget/PasswordEntryKeyboardHelper.java b/core/java/com/android/internal/widget/PasswordEntryKeyboardHelper.java index 26518ebdd2a7..f8332c48783a 100644 --- a/core/java/com/android/internal/widget/PasswordEntryKeyboardHelper.java +++ b/core/java/com/android/internal/widget/PasswordEntryKeyboardHelper.java @@ -31,6 +31,7 @@ import android.view.KeyCharacterMap; import android.view.KeyEvent; import android.view.View; import android.view.ViewGroup; +import android.view.ViewGroup.LayoutParams; import android.view.ViewRootImpl; import com.android.internal.R; @@ -55,23 +56,56 @@ public class PasswordEntryKeyboardHelper implements OnKeyboardActionListener { private long[] mVibratePattern; private boolean mEnableHaptics = false; + private static final int NUMERIC = 0; + private static final int QWERTY = 1; + private static final int QWERTY_SHIFTED = 2; + private static final int SYMBOLS = 3; + private static final int SYMBOLS_SHIFTED = 4; + + int mLayouts[] = new int[] { + R.xml.password_kbd_numeric, + R.xml.password_kbd_qwerty, + R.xml.password_kbd_qwerty_shifted, + R.xml.password_kbd_symbols, + R.xml.password_kbd_symbols_shift + }; + + private boolean mUsingScreenWidth; + public PasswordEntryKeyboardHelper(Context context, KeyboardView keyboardView, View targetView) { - this(context, keyboardView, targetView, true); + this(context, keyboardView, targetView, true, null); } public PasswordEntryKeyboardHelper(Context context, KeyboardView keyboardView, View targetView, boolean useFullScreenWidth) { + this(context, keyboardView, targetView, useFullScreenWidth, null); + } + + public PasswordEntryKeyboardHelper(Context context, KeyboardView keyboardView, View targetView, + boolean useFullScreenWidth, int layouts[]) { mContext = context; mTargetView = targetView; mKeyboardView = keyboardView; - if (useFullScreenWidth - || mKeyboardView.getLayoutParams().width == ViewGroup.LayoutParams.MATCH_PARENT) { - createKeyboards(); + mKeyboardView.setOnKeyboardActionListener(this); + mUsingScreenWidth = useFullScreenWidth; + if (layouts != null) { + if (layouts.length != mLayouts.length) { + throw new RuntimeException("Wrong number of layouts"); + } + for (int i = 0; i < mLayouts.length; i++) { + mLayouts[i] = layouts[i]; + } + } + createKeyboards(); + } + + public void createKeyboards() { + LayoutParams lp = mKeyboardView.getLayoutParams(); + if (mUsingScreenWidth || lp.width == ViewGroup.LayoutParams.MATCH_PARENT) { + createKeyboardsWithDefaultWidth(); } else { - createKeyboardsWithSpecificSize(mKeyboardView.getLayoutParams().width, - mKeyboardView.getLayoutParams().height); + createKeyboardsWithSpecificSize(lp.width, lp.height); } - mKeyboardView.setOnKeyboardActionListener(this); } public void setEnableHaptics(boolean enabled) { @@ -82,46 +116,40 @@ public class PasswordEntryKeyboardHelper implements OnKeyboardActionListener { return mKeyboardMode == KEYBOARD_MODE_ALPHA; } - private void createKeyboardsWithSpecificSize(int viewWidth, int viewHeight) { - mNumericKeyboard = new PasswordEntryKeyboard(mContext, R.xml.password_kbd_numeric, - viewWidth, viewHeight); - mQwertyKeyboard = new PasswordEntryKeyboard(mContext, - R.xml.password_kbd_qwerty, R.id.mode_normal, viewWidth, viewHeight); + private void createKeyboardsWithSpecificSize(int width, int height) { + mNumericKeyboard = new PasswordEntryKeyboard(mContext, mLayouts[NUMERIC], width, height); + mQwertyKeyboard = new PasswordEntryKeyboard(mContext, mLayouts[QWERTY], R.id.mode_normal, + width, height); mQwertyKeyboard.enableShiftLock(); - mQwertyKeyboardShifted = new PasswordEntryKeyboard(mContext, - R.xml.password_kbd_qwerty_shifted, - R.id.mode_normal, viewWidth, viewHeight); + mQwertyKeyboardShifted = new PasswordEntryKeyboard(mContext, mLayouts[QWERTY_SHIFTED], + R.id.mode_normal, width, height); mQwertyKeyboardShifted.enableShiftLock(); mQwertyKeyboardShifted.setShifted(true); // always shifted. - mSymbolsKeyboard = new PasswordEntryKeyboard(mContext, R.xml.password_kbd_symbols, - viewWidth, viewHeight); + mSymbolsKeyboard = new PasswordEntryKeyboard(mContext, mLayouts[SYMBOLS], width, height); mSymbolsKeyboard.enableShiftLock(); - mSymbolsKeyboardShifted = new PasswordEntryKeyboard(mContext, - R.xml.password_kbd_symbols_shift, viewWidth, viewHeight); + mSymbolsKeyboardShifted = new PasswordEntryKeyboard(mContext, mLayouts[SYMBOLS_SHIFTED], + width, height); mSymbolsKeyboardShifted.enableShiftLock(); mSymbolsKeyboardShifted.setShifted(true); // always shifted } - private void createKeyboards() { - mNumericKeyboard = new PasswordEntryKeyboard(mContext, R.xml.password_kbd_numeric); - mQwertyKeyboard = new PasswordEntryKeyboard(mContext, - R.xml.password_kbd_qwerty, R.id.mode_normal); + private void createKeyboardsWithDefaultWidth() { + mNumericKeyboard = new PasswordEntryKeyboard(mContext, mLayouts[NUMERIC]); + mQwertyKeyboard = new PasswordEntryKeyboard(mContext, mLayouts[QWERTY], R.id.mode_normal); mQwertyKeyboard.enableShiftLock(); - mQwertyKeyboardShifted = new PasswordEntryKeyboard(mContext, - R.xml.password_kbd_qwerty_shifted, + mQwertyKeyboardShifted = new PasswordEntryKeyboard(mContext, mLayouts[QWERTY_SHIFTED], R.id.mode_normal); mQwertyKeyboardShifted.enableShiftLock(); mQwertyKeyboardShifted.setShifted(true); // always shifted. - mSymbolsKeyboard = new PasswordEntryKeyboard(mContext, R.xml.password_kbd_symbols); + mSymbolsKeyboard = new PasswordEntryKeyboard(mContext, mLayouts[SYMBOLS]); mSymbolsKeyboard.enableShiftLock(); - mSymbolsKeyboardShifted = new PasswordEntryKeyboard(mContext, - R.xml.password_kbd_symbols_shift); + mSymbolsKeyboardShifted = new PasswordEntryKeyboard(mContext, mLayouts[SYMBOLS_SHIFTED]); mSymbolsKeyboardShifted.enableShiftLock(); mSymbolsKeyboardShifted.setShifted(true); // always shifted } diff --git a/core/res/res/drawable-hdpi/ic_coins_s.png b/core/res/res/drawable-hdpi/ic_coins_s.png Binary files differnew file mode 100644 index 000000000000..0ada1d008103 --- /dev/null +++ b/core/res/res/drawable-hdpi/ic_coins_s.png diff --git a/core/res/res/drawable-hdpi/ic_lockscreen_alarm.png b/core/res/res/drawable-hdpi/ic_lockscreen_alarm.png Binary files differnew file mode 100644 index 000000000000..d7a8cfcba3c3 --- /dev/null +++ b/core/res/res/drawable-hdpi/ic_lockscreen_alarm.png diff --git a/core/res/res/drawable-hdpi/ic_lockscreen_sim.png b/core/res/res/drawable-hdpi/ic_lockscreen_sim.png Binary files differnew file mode 100644 index 000000000000..7cf9e3699ceb --- /dev/null +++ b/core/res/res/drawable-hdpi/ic_lockscreen_sim.png diff --git a/core/res/res/drawable-hdpi/lockscreen_protection_pattern.png b/core/res/res/drawable-hdpi/lockscreen_protection_pattern.png Binary files differnew file mode 100644 index 000000000000..681d8be1f8c6 --- /dev/null +++ b/core/res/res/drawable-hdpi/lockscreen_protection_pattern.png diff --git a/core/res/res/drawable-hdpi/sym_keyboard_delete.png b/core/res/res/drawable-hdpi/sym_keyboard_delete.png Binary files differindex 59d78bec0633..476d90238aa6 100755..100644 --- a/core/res/res/drawable-hdpi/sym_keyboard_delete.png +++ b/core/res/res/drawable-hdpi/sym_keyboard_delete.png diff --git a/core/res/res/drawable-hdpi/sym_keyboard_enter.png b/core/res/res/drawable-hdpi/sym_keyboard_enter.png Binary files differnew file mode 100644 index 000000000000..d118af289663 --- /dev/null +++ b/core/res/res/drawable-hdpi/sym_keyboard_enter.png diff --git a/core/res/res/drawable-hdpi/sym_keyboard_num0_no_plus.png b/core/res/res/drawable-hdpi/sym_keyboard_num0_no_plus.png Binary files differindex 0e5f1e2979d6..ad81bb3ed795 100644 --- a/core/res/res/drawable-hdpi/sym_keyboard_num0_no_plus.png +++ b/core/res/res/drawable-hdpi/sym_keyboard_num0_no_plus.png diff --git a/core/res/res/drawable-hdpi/sym_keyboard_num1.png b/core/res/res/drawable-hdpi/sym_keyboard_num1.png Binary files differindex 0fc03efa51f5..8d2468c5e456 100755..100644 --- a/core/res/res/drawable-hdpi/sym_keyboard_num1.png +++ b/core/res/res/drawable-hdpi/sym_keyboard_num1.png diff --git a/core/res/res/drawable-hdpi/sym_keyboard_num2.png b/core/res/res/drawable-hdpi/sym_keyboard_num2.png Binary files differindex 283560b35343..cfa972b31d53 100755..100644 --- a/core/res/res/drawable-hdpi/sym_keyboard_num2.png +++ b/core/res/res/drawable-hdpi/sym_keyboard_num2.png diff --git a/core/res/res/drawable-hdpi/sym_keyboard_num3.png b/core/res/res/drawable-hdpi/sym_keyboard_num3.png Binary files differindex 9a3b3294b90d..141833ac1526 100755..100644 --- a/core/res/res/drawable-hdpi/sym_keyboard_num3.png +++ b/core/res/res/drawable-hdpi/sym_keyboard_num3.png diff --git a/core/res/res/drawable-hdpi/sym_keyboard_num4.png b/core/res/res/drawable-hdpi/sym_keyboard_num4.png Binary files differindex f13ff1ae91db..07df14d3c98a 100755..100644 --- a/core/res/res/drawable-hdpi/sym_keyboard_num4.png +++ b/core/res/res/drawable-hdpi/sym_keyboard_num4.png diff --git a/core/res/res/drawable-hdpi/sym_keyboard_num5.png b/core/res/res/drawable-hdpi/sym_keyboard_num5.png Binary files differindex c251329fa4ed..fbcc9bffbf92 100755..100644 --- a/core/res/res/drawable-hdpi/sym_keyboard_num5.png +++ b/core/res/res/drawable-hdpi/sym_keyboard_num5.png diff --git a/core/res/res/drawable-hdpi/sym_keyboard_num6.png b/core/res/res/drawable-hdpi/sym_keyboard_num6.png Binary files differindex 4acba4c9103d..9513b331dea8 100755..100644 --- a/core/res/res/drawable-hdpi/sym_keyboard_num6.png +++ b/core/res/res/drawable-hdpi/sym_keyboard_num6.png diff --git a/core/res/res/drawable-hdpi/sym_keyboard_num7.png b/core/res/res/drawable-hdpi/sym_keyboard_num7.png Binary files differindex 14931c18c53f..5ad25d8e10e5 100755..100644 --- a/core/res/res/drawable-hdpi/sym_keyboard_num7.png +++ b/core/res/res/drawable-hdpi/sym_keyboard_num7.png diff --git a/core/res/res/drawable-hdpi/sym_keyboard_num8.png b/core/res/res/drawable-hdpi/sym_keyboard_num8.png Binary files differindex d4973fdc900f..97d5c0e1d79f 100755..100644 --- a/core/res/res/drawable-hdpi/sym_keyboard_num8.png +++ b/core/res/res/drawable-hdpi/sym_keyboard_num8.png diff --git a/core/res/res/drawable-hdpi/sym_keyboard_num9.png b/core/res/res/drawable-hdpi/sym_keyboard_num9.png Binary files differindex 49cec66f4d27..a7d6a836c7a7 100755..100644 --- a/core/res/res/drawable-hdpi/sym_keyboard_num9.png +++ b/core/res/res/drawable-hdpi/sym_keyboard_num9.png diff --git a/core/res/res/drawable-mdpi/ic_coins_s.png b/core/res/res/drawable-mdpi/ic_coins_s.png Binary files differnew file mode 100644 index 000000000000..3b8fd8abd527 --- /dev/null +++ b/core/res/res/drawable-mdpi/ic_coins_s.png diff --git a/core/res/res/drawable-mdpi/ic_lockscreen_alarm.png b/core/res/res/drawable-mdpi/ic_lockscreen_alarm.png Binary files differnew file mode 100644 index 000000000000..330ade15fb78 --- /dev/null +++ b/core/res/res/drawable-mdpi/ic_lockscreen_alarm.png diff --git a/core/res/res/drawable-mdpi/ic_lockscreen_sim.png b/core/res/res/drawable-mdpi/ic_lockscreen_sim.png Binary files differnew file mode 100644 index 000000000000..2e259c3e17c1 --- /dev/null +++ b/core/res/res/drawable-mdpi/ic_lockscreen_sim.png diff --git a/core/res/res/drawable-mdpi/lockscreen_protection_pattern.png b/core/res/res/drawable-mdpi/lockscreen_protection_pattern.png Binary files differnew file mode 100644 index 000000000000..30bcea537afd --- /dev/null +++ b/core/res/res/drawable-mdpi/lockscreen_protection_pattern.png diff --git a/core/res/res/drawable-mdpi/sym_keyboard_delete.png b/core/res/res/drawable-mdpi/sym_keyboard_delete.png Binary files differindex 43a033ead97d..74b836a12da0 100644 --- a/core/res/res/drawable-mdpi/sym_keyboard_delete.png +++ b/core/res/res/drawable-mdpi/sym_keyboard_delete.png diff --git a/core/res/res/drawable-mdpi/sym_keyboard_enter.png b/core/res/res/drawable-mdpi/sym_keyboard_enter.png Binary files differnew file mode 100644 index 000000000000..0fa53acfe868 --- /dev/null +++ b/core/res/res/drawable-mdpi/sym_keyboard_enter.png diff --git a/core/res/res/drawable-mdpi/sym_keyboard_num0_no_plus.png b/core/res/res/drawable-mdpi/sym_keyboard_num0_no_plus.png Binary files differindex d23114daebd7..9fefaeafaab3 100644 --- a/core/res/res/drawable-mdpi/sym_keyboard_num0_no_plus.png +++ b/core/res/res/drawable-mdpi/sym_keyboard_num0_no_plus.png diff --git a/core/res/res/drawable-mdpi/sym_keyboard_num1.png b/core/res/res/drawable-mdpi/sym_keyboard_num1.png Binary files differindex aaac11b0c7f4..1f37e32ff67a 100644 --- a/core/res/res/drawable-mdpi/sym_keyboard_num1.png +++ b/core/res/res/drawable-mdpi/sym_keyboard_num1.png diff --git a/core/res/res/drawable-mdpi/sym_keyboard_num2.png b/core/res/res/drawable-mdpi/sym_keyboard_num2.png Binary files differindex 4372eb8f08c4..f899f78083f3 100644 --- a/core/res/res/drawable-mdpi/sym_keyboard_num2.png +++ b/core/res/res/drawable-mdpi/sym_keyboard_num2.png diff --git a/core/res/res/drawable-mdpi/sym_keyboard_num3.png b/core/res/res/drawable-mdpi/sym_keyboard_num3.png Binary files differindex 6f54c850f5ae..6a0f5ef98ad0 100644 --- a/core/res/res/drawable-mdpi/sym_keyboard_num3.png +++ b/core/res/res/drawable-mdpi/sym_keyboard_num3.png diff --git a/core/res/res/drawable-mdpi/sym_keyboard_num4.png b/core/res/res/drawable-mdpi/sym_keyboard_num4.png Binary files differindex 3e50bb957cec..3a25bcd33545 100644 --- a/core/res/res/drawable-mdpi/sym_keyboard_num4.png +++ b/core/res/res/drawable-mdpi/sym_keyboard_num4.png diff --git a/core/res/res/drawable-mdpi/sym_keyboard_num5.png b/core/res/res/drawable-mdpi/sym_keyboard_num5.png Binary files differindex c39ef4404fc1..064d4bf38b72 100644 --- a/core/res/res/drawable-mdpi/sym_keyboard_num5.png +++ b/core/res/res/drawable-mdpi/sym_keyboard_num5.png diff --git a/core/res/res/drawable-mdpi/sym_keyboard_num6.png b/core/res/res/drawable-mdpi/sym_keyboard_num6.png Binary files differindex ea88ceb94ea9..61ee0a650b47 100644 --- a/core/res/res/drawable-mdpi/sym_keyboard_num6.png +++ b/core/res/res/drawable-mdpi/sym_keyboard_num6.png diff --git a/core/res/res/drawable-mdpi/sym_keyboard_num7.png b/core/res/res/drawable-mdpi/sym_keyboard_num7.png Binary files differindex ce800ba42980..b931d7bfffee 100644 --- a/core/res/res/drawable-mdpi/sym_keyboard_num7.png +++ b/core/res/res/drawable-mdpi/sym_keyboard_num7.png diff --git a/core/res/res/drawable-mdpi/sym_keyboard_num8.png b/core/res/res/drawable-mdpi/sym_keyboard_num8.png Binary files differindex 1a8ff94bf73a..f8d2891589e0 100644 --- a/core/res/res/drawable-mdpi/sym_keyboard_num8.png +++ b/core/res/res/drawable-mdpi/sym_keyboard_num8.png diff --git a/core/res/res/drawable-mdpi/sym_keyboard_num9.png b/core/res/res/drawable-mdpi/sym_keyboard_num9.png Binary files differindex 8b344c0a6861..056d06761660 100644 --- a/core/res/res/drawable-mdpi/sym_keyboard_num9.png +++ b/core/res/res/drawable-mdpi/sym_keyboard_num9.png diff --git a/core/res/res/drawable-xhdpi/ic_coins_s.png b/core/res/res/drawable-xhdpi/ic_coins_s.png Binary files differnew file mode 100644 index 000000000000..13d134e6b64e --- /dev/null +++ b/core/res/res/drawable-xhdpi/ic_coins_s.png diff --git a/core/res/res/drawable-xhdpi/ic_lockscreen_alarm.png b/core/res/res/drawable-xhdpi/ic_lockscreen_alarm.png Binary files differnew file mode 100644 index 000000000000..e6cceefe6a5b --- /dev/null +++ b/core/res/res/drawable-xhdpi/ic_lockscreen_alarm.png diff --git a/core/res/res/drawable-xhdpi/ic_lockscreen_sim.png b/core/res/res/drawable-xhdpi/ic_lockscreen_sim.png Binary files differnew file mode 100644 index 000000000000..f4de96adae30 --- /dev/null +++ b/core/res/res/drawable-xhdpi/ic_lockscreen_sim.png diff --git a/core/res/res/drawable-xhdpi/lockscreen_protection_pattern.png b/core/res/res/drawable-xhdpi/lockscreen_protection_pattern.png Binary files differnew file mode 100644 index 000000000000..c13afe2b795c --- /dev/null +++ b/core/res/res/drawable-xhdpi/lockscreen_protection_pattern.png diff --git a/core/res/res/drawable-xhdpi/sym_keyboard_delete.png b/core/res/res/drawable-xhdpi/sym_keyboard_delete.png Binary files differindex ca936d1985c6..45c14aa78c1e 100644 --- a/core/res/res/drawable-xhdpi/sym_keyboard_delete.png +++ b/core/res/res/drawable-xhdpi/sym_keyboard_delete.png diff --git a/core/res/res/drawable-xhdpi/sym_keyboard_enter.png b/core/res/res/drawable-xhdpi/sym_keyboard_enter.png Binary files differnew file mode 100644 index 000000000000..3b034fd89e31 --- /dev/null +++ b/core/res/res/drawable-xhdpi/sym_keyboard_enter.png diff --git a/core/res/res/drawable-xhdpi/sym_keyboard_num0_no_plus.png b/core/res/res/drawable-xhdpi/sym_keyboard_num0_no_plus.png Binary files differindex 95b542d11d07..cdd256d7179d 100644 --- a/core/res/res/drawable-xhdpi/sym_keyboard_num0_no_plus.png +++ b/core/res/res/drawable-xhdpi/sym_keyboard_num0_no_plus.png diff --git a/core/res/res/drawable-xhdpi/sym_keyboard_num1.png b/core/res/res/drawable-xhdpi/sym_keyboard_num1.png Binary files differindex decd5843838c..d81d4b58f74a 100644 --- a/core/res/res/drawable-xhdpi/sym_keyboard_num1.png +++ b/core/res/res/drawable-xhdpi/sym_keyboard_num1.png diff --git a/core/res/res/drawable-xhdpi/sym_keyboard_num2.png b/core/res/res/drawable-xhdpi/sym_keyboard_num2.png Binary files differindex 37948fbfcd3b..8ae9fafae3f6 100644 --- a/core/res/res/drawable-xhdpi/sym_keyboard_num2.png +++ b/core/res/res/drawable-xhdpi/sym_keyboard_num2.png diff --git a/core/res/res/drawable-xhdpi/sym_keyboard_num3.png b/core/res/res/drawable-xhdpi/sym_keyboard_num3.png Binary files differindex 0e36ff2bf6cb..ed6e90ab727c 100644 --- a/core/res/res/drawable-xhdpi/sym_keyboard_num3.png +++ b/core/res/res/drawable-xhdpi/sym_keyboard_num3.png diff --git a/core/res/res/drawable-xhdpi/sym_keyboard_num4.png b/core/res/res/drawable-xhdpi/sym_keyboard_num4.png Binary files differindex f469a4a8d44b..5cff39f925d6 100644 --- a/core/res/res/drawable-xhdpi/sym_keyboard_num4.png +++ b/core/res/res/drawable-xhdpi/sym_keyboard_num4.png diff --git a/core/res/res/drawable-xhdpi/sym_keyboard_num5.png b/core/res/res/drawable-xhdpi/sym_keyboard_num5.png Binary files differindex 941f87736034..1c9358efd393 100644 --- a/core/res/res/drawable-xhdpi/sym_keyboard_num5.png +++ b/core/res/res/drawable-xhdpi/sym_keyboard_num5.png diff --git a/core/res/res/drawable-xhdpi/sym_keyboard_num6.png b/core/res/res/drawable-xhdpi/sym_keyboard_num6.png Binary files differindex eceec55334e7..9a5cb6fac58f 100644 --- a/core/res/res/drawable-xhdpi/sym_keyboard_num6.png +++ b/core/res/res/drawable-xhdpi/sym_keyboard_num6.png diff --git a/core/res/res/drawable-xhdpi/sym_keyboard_num7.png b/core/res/res/drawable-xhdpi/sym_keyboard_num7.png Binary files differindex 5b5d2055f22c..1bd5c6b6dc4a 100644 --- a/core/res/res/drawable-xhdpi/sym_keyboard_num7.png +++ b/core/res/res/drawable-xhdpi/sym_keyboard_num7.png diff --git a/core/res/res/drawable-xhdpi/sym_keyboard_num8.png b/core/res/res/drawable-xhdpi/sym_keyboard_num8.png Binary files differindex ea776ebf8d3f..9a3315258a40 100644 --- a/core/res/res/drawable-xhdpi/sym_keyboard_num8.png +++ b/core/res/res/drawable-xhdpi/sym_keyboard_num8.png diff --git a/core/res/res/drawable-xhdpi/sym_keyboard_num9.png b/core/res/res/drawable-xhdpi/sym_keyboard_num9.png Binary files differindex 29047fb01021..caa3113d170c 100644 --- a/core/res/res/drawable-xhdpi/sym_keyboard_num9.png +++ b/core/res/res/drawable-xhdpi/sym_keyboard_num9.png diff --git a/core/res/res/layout-land/keyguard_host_view.xml b/core/res/res/layout-land/keyguard_host_view.xml index 01e1866e4f4d..595762e6c453 100644 --- a/core/res/res/layout-land/keyguard_host_view.xml +++ b/core/res/res/layout-land/keyguard_host_view.xml @@ -24,13 +24,15 @@ android:id="@+id/keyguard_host_view" android:layout_width="match_parent" android:layout_height="match_parent" + android:gravity="center_vertical" android:orientation="horizontal"> <com.android.internal.policy.impl.keyguard.KeyguardWidgetPager android:id="@+id/app_widget_container" android:layout_width="0dip" - android:layout_height="match_parent" - android:layout_weight="1" + android:layout_height="230dip" + android:gravity="center" + android:layout_weight=".45" android:visibility="gone"> <!-- TODO: Remove this once supported as a widget --> @@ -44,7 +46,9 @@ android:id="@+id/view_flipper" android:layout_width="0dip" android:layout_height="match_parent" - android:layout_weight="1" + android:layout_weight="0.55" + android:layout_marginLeft="8dip" + android:layout_marginRight="8dip" android:gravity="center"> <!-- SelectorView is always used, so add it here. The rest are loaded dynamically --> diff --git a/core/res/res/layout/app_permission_item_money.xml b/core/res/res/layout/app_permission_item_money.xml index ab0d5328696e..3fa465393837 100644 --- a/core/res/res/layout/app_permission_item_money.xml +++ b/core/res/res/layout/app_permission_item_money.xml @@ -55,9 +55,11 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentStart="true" - android:layout_below="@id/perm_name" - android:scaleType="fitCenter" /> + android:layout_alignBottom="@+id/perm_money_label" + android:scaleType="fitCenter" + android:src="@android:drawable/ic_coins_s" /> <TextView + android:id="@+id/perm_money_label" android:textAppearance="?android:attr/textAppearanceSmall" android:textSize="16sp" android:textColor="@color/perms_costs_money" @@ -65,6 +67,7 @@ android:layout_height="wrap_content" android:layout_toEndOf="@id/perm_money_icon" android:layout_below="@id/perm_name" + android:layout_marginStart="8dp" android:text="@string/perm_costs_money" /> </RelativeLayout> diff --git a/core/res/res/layout/keyguard_emergency_carrier_area.xml b/core/res/res/layout/keyguard_emergency_carrier_area.xml new file mode 100644 index 000000000000..62cbac40a33e --- /dev/null +++ b/core/res/res/layout/keyguard_emergency_carrier_area.xml @@ -0,0 +1,52 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +** +** Copyright 2012, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License") +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<!-- This contains emergency call button and carrier as shared by pin/pattern/password screens --> +<LinearLayout + xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical" + android:gravity="center_horizontal" + android:layout_alignParentBottom="true"> + + <com.android.internal.policy.impl.keyguard.CarrierText + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:singleLine="true" + android:ellipsize="marquee" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textSize="@dimen/kg_status_line_font_size" + android:layout_marginLeft="@dimen/kg_emergency_button_shift" + android:textColor="?android:attr/textColorSecondary"/> + + <com.android.internal.policy.impl.keyguard.EmergencyButton + android:id="@+id/emergency_call_button" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:drawableLeft="@*android:drawable/lockscreen_emergency_button" + android:text="@string/kg_emergency_call_label" + style="?android:attr/buttonBarButtonStyle" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textSize="@dimen/kg_status_line_font_size" + android:textColor="?android:attr/textColorSecondary" + android:layout_marginLeft="@dimen/kg_emergency_button_shift" + android:drawablePadding="8dip" /> + +</LinearLayout> diff --git a/core/res/res/layout/keyguard_navigation.xml b/core/res/res/layout/keyguard_navigation.xml index a03310152119..d52bcb449b4d 100644 --- a/core/res/res/layout/keyguard_navigation.xml +++ b/core/res/res/layout/keyguard_navigation.xml @@ -17,39 +17,19 @@ */ --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - android:orientation="vertical" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:gravity="left"> + android:id="@+id/keyguard_click_area" + android:gravity="center"> - <LinearLayout - android:id="@+id/keyguard_click_area" - android:layout_width="match_parent" + <!-- message area for security screen --> + <TextView + android:id="@+id/keyguard_message_area" + android:layout_width="wrap_content" android:layout_height="wrap_content" - android:orientation="horizontal" - style="?android:attr/buttonBarButtonStyle" - android:padding="10dip" - android:clickable="true"> - - <ImageView - android:src="?android:attr/homeAsUpIndicator" - android:layout_gravity="center_vertical|start" - android:layout_width="wrap_content" - android:layout_height="wrap_content"/> - - <!-- message area for security screen --> - <TextView - android:id="@+id/keyguard_message_area" - android:layout_width="0dip" - android:layout_height="wrap_content" - android:layout_weight="1" - android:layout_gravity="end" - android:singleLine="true" - android:ellipsize="marquee" - android:layout_marginEnd="6dip" - android:layout_marginStart="6dip" - android:textAppearance="?android:attr/textAppearanceMedium"/> - - </LinearLayout> + android:layout_gravity="start" + android:ellipsize="marquee" + android:layout_marginEnd="4dip" + android:layout_marginStart="4dip" + android:textSize="22dip" + android:textAppearance="?android:attr/textAppearanceMedium"/> </LinearLayout> diff --git a/core/res/res/layout/keyguard_password_view.xml b/core/res/res/layout/keyguard_password_view.xml index 4ea471eae298..e8ca98bb3a33 100644 --- a/core/res/res/layout/keyguard_password_view.xml +++ b/core/res/res/layout/keyguard_password_view.xml @@ -24,7 +24,16 @@ android:layout_height="match_parent" android:gravity="center_horizontal"> - <include layout="@layout/keyguard_navigation"/> + <LinearLayout + android:layout_height="0dip" + android:layout_width="match_parent" + android:layout_weight="1" + android:orientation="vertical" + android:gravity="center"> + + <include layout="@layout/keyguard_navigation"/> + + </LinearLayout> <!-- Password entry field --> <!-- Note: the entire container is styled to look like the edit field, @@ -33,9 +42,9 @@ android:layout_gravity="center_vertical|fill_horizontal" android:layout_width="match_parent" android:orientation="horizontal" - android:background="@*android:drawable/lockscreen_password_field_dark" - android:layout_marginStart="16dip" - android:layout_marginEnd="16dip"> + android:background="#70000000" + android:layout_marginStart="4dip" + android:layout_marginEnd="4dip"> <EditText android:id="@+id/passwordEntry" android:layout_width="0dip" @@ -79,11 +88,6 @@ </LinearLayout> - <Space - android:layout_width="match_parent" - android:layout_height="0dip" - android:layout_weight="1"/> - <!-- Numeric keyboard --> <com.android.internal.widget.PasswordEntryKeyboardView android:id="@+id/keyboard" android:layout_width="match_parent" @@ -97,4 +101,9 @@ android:clickable="true" /> + <Space + android:layout_width="match_parent" + android:layout_height="@dimen/kg_secure_padding_height" + android:background="@drawable/lockscreen_protection_pattern" /> + </com.android.internal.policy.impl.keyguard.KeyguardPasswordView> diff --git a/core/res/res/layout/keyguard_pattern_view.xml b/core/res/res/layout/keyguard_pattern_view.xml index 356bce3f41ba..311f77f11ea2 100644 --- a/core/res/res/layout/keyguard_pattern_view.xml +++ b/core/res/res/layout/keyguard_pattern_view.xml @@ -28,18 +28,22 @@ android:layout_height="match_parent" android:gravity="center_horizontal"> - <include layout="@layout/keyguard_navigation"/> + <LinearLayout + android:layout_height="0dip" + android:layout_width="match_parent" + android:layout_weight="1" + android:orientation="vertical" + android:gravity="center"> + + <include layout="@layout/keyguard_navigation"/> - <Space android:layout_gravity="fill" /> + <Button android:id="@+id/forgot_password_button" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:textSize="@dimen/kg_status_line_font_size" + android:visibility="gone"/> - <Button android:id="@+id/forgot_password_button" - android:layout_gravity="right" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:textSize="@*android:dimen/keyguard_lockscreen_status_line_font_size" - android:drawableLeft="@*android:drawable/lockscreen_forgot_password_button" - android:drawablePadding="0dip" - android:visibility="gone"/> + </LinearLayout> <!-- We need MATCH_PARENT here only to force the size of the parent to be passed to the pattern view for it to compute its size. This is an unusual case, caused by @@ -52,7 +56,11 @@ android:layout_marginEnd="8dip" android:layout_marginBottom="4dip" android:layout_marginStart="8dip" - android:layout_gravity="center_horizontal" - /> + android:layout_gravity="center_horizontal" /> + + <Space + android:layout_width="match_parent" + android:layout_height="@dimen/kg_secure_padding_height" + android:background="@drawable/lockscreen_protection_pattern" /> </com.android.internal.policy.impl.keyguard.KeyguardPatternView> diff --git a/core/res/res/layout/keyguard_selector_view.xml b/core/res/res/layout/keyguard_selector_view.xml index bf2fc227b36c..8b2865e938b7 100644 --- a/core/res/res/layout/keyguard_selector_view.xml +++ b/core/res/res/layout/keyguard_selector_view.xml @@ -31,6 +31,9 @@ android:layout_width="match_parent" android:layout_height="0dip" android:layout_weight="0.45" + android:layout_marginTop="35dip" + android:layout_marginLeft="33dip" + android:layout_marginRight="33dip" android:visibility="gone"> <!-- TODO: Remove this when supported as a widget --> <include layout="@layout/keyguard_status_view"/> @@ -50,6 +53,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:focusable="true" + android:gravity="@integer/kg_selector_gravity" prvandroid:targetDrawables="@*android:array/lockscreen_targets_with_camera" prvandroid:targetDescriptions="@*android:array/lockscreen_target_descriptions_with_camera" @@ -64,34 +68,13 @@ prvandroid:glowRadius="@*android:dimen/glowpadview_glow_radius" prvandroid:pointDrawable="@*android:drawable/ic_lockscreen_glowdot"/> - <LinearLayout + <include layout="@layout/keyguard_emergency_carrier_area" android:id="@+id/keyguard_selector_fade_container" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:gravity="center_horizontal" - android:layout_alignParentBottom="true"> - - <com.android.internal.policy.impl.keyguard.CarrierText - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:singleLine="true" - android:ellipsize="marquee" - android:textAppearance="?android:attr/textAppearanceMedium" - android:textSize="@*android:dimen/keyguard_lockscreen_status_line_font_size" - android:textColor="?android:attr/textColorSecondary" - /> - - <com.android.internal.policy.impl.keyguard.EmergencyButton - android:id="@+id/emergency_call_button" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:drawableLeft="@*android:drawable/lockscreen_emergency_button" - android:text="@string/kg_emergency_call_label" - style="?android:attr/buttonBarButtonStyle" - android:drawablePadding="8dip" /> - - </LinearLayout> + android:layout_alignParentBottom="true" /> </RelativeLayout> diff --git a/core/res/res/layout/keyguard_sim_pin_view.xml b/core/res/res/layout/keyguard_sim_pin_view.xml index 122484a9c542..57c7ac61d6ca 100644 --- a/core/res/res/layout/keyguard_sim_pin_view.xml +++ b/core/res/res/layout/keyguard_sim_pin_view.xml @@ -25,12 +25,21 @@ android:layout_height="match_parent" android:gravity="center_horizontal"> - <include layout="@layout/keyguard_navigation"/> - - <Space - android:layout_width="match_parent" + <LinearLayout android:layout_height="0dip" - android:layout_weight="1"/> + android:layout_width="match_parent" + android:layout_weight="1" + android:orientation="vertical" + android:gravity="center"> + + <ImageView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:src="@drawable/ic_lockscreen_sim"/> + + <include layout="@layout/keyguard_navigation"/> + + </LinearLayout> <!-- Password entry field --> <!-- Note: the entire container is styled to look like the edit field, @@ -39,8 +48,8 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" - android:layout_marginEnd="6dip" - android:layout_marginStart="6dip" + android:layout_marginEnd="4dip" + android:layout_marginStart="4dip" android:gravity="center_vertical" android:background="@android:drawable/edit_text"> @@ -74,9 +83,14 @@ android:layout_marginEnd="4dip" android:paddingTop="4dip" android:paddingBottom="4dip" - android:background="#80ffffff" + android:background="#40000000" android:keyBackground="@*android:drawable/btn_keyboard_key_ics" android:clickable="true" /> + <Space + android:layout_width="match_parent" + android:layout_height="@dimen/kg_secure_padding_height" + android:background="@drawable/lockscreen_protection_pattern" /> + </com.android.internal.policy.impl.keyguard.KeyguardSimPinView> diff --git a/core/res/res/layout/keyguard_status_view.xml b/core/res/res/layout/keyguard_status_view.xml index 170dd99f733c..d8adc93706be 100644 --- a/core/res/res/layout/keyguard_status_view.xml +++ b/core/res/res/layout/keyguard_status_view.xml @@ -35,6 +35,7 @@ android:id="@+id/clock_view" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:layout_marginTop="-15.5dip" android:layout_marginEnd="@dimen/kg_status_line_font_right_margin" android:layout_gravity="end"> @@ -46,6 +47,7 @@ android:textSize="@dimen/kg_status_clock_font_size" android:textAppearance="?android:attr/textAppearanceMedium" android:textColor="#ffffffff" + android:drawablePadding="2dip" /> </com.android.internal.policy.impl.keyguard.ClockView> @@ -64,19 +66,21 @@ /> <TextView - android:id="@+id/owner_info" + android:id="@+id/alarm_status" android:layout_gravity="end" - android:layout_marginTop="16dp" + android:layout_marginTop="28dp" android:layout_marginEnd="@dimen/kg_status_line_font_right_margin" android:singleLine="true" android:ellipsize="marquee" android:textAppearance="?android:attr/textAppearanceMedium" android:textSize="@dimen/kg_status_line_font_size" + android:drawablePadding="4dip" /> <TextView - android:id="@+id/alarm_status" + android:id="@+id/owner_info" android:layout_gravity="end" + android:layout_marginTop="4dp" android:layout_marginEnd="@dimen/kg_status_line_font_right_margin" android:singleLine="true" android:ellipsize="marquee" @@ -87,6 +91,7 @@ <TextView android:id="@+id/status1" android:layout_gravity="end" + android:layout_marginTop="4dp" android:layout_marginEnd="@dimen/kg_status_line_font_right_margin" android:singleLine="true" android:ellipsize="marquee" diff --git a/core/res/res/values-af/strings.xml b/core/res/res/values-af/strings.xml index 0bedb0338169..db96ff683d6f 100644 --- a/core/res/res/values-af/strings.xml +++ b/core/res/res/values-af/strings.xml @@ -1072,8 +1072,7 @@ <item quantity="other" msgid="7915895323644292768">"Oop Wi-Fi-netwerke beskikbaar"</item> </plurals> <string name="wifi_available_sign_in" msgid="4029489716605255386">"Meld aan by Wi-Fi-netwerk"</string> - <!-- no translation found for network_available_sign_in (8495155593358054676) --> - <skip /> + <string name="network_available_sign_in" msgid="8495155593358054676">"Meld aan by netwerk"</string> <!-- no translation found for network_available_sign_in_detailed (8000081941447976118) --> <skip /> <string name="wifi_watchdog_network_disabled" msgid="7904214231651546347">"Kon nie aan Wi-Fikoppel nie"</string> @@ -1091,8 +1090,7 @@ <string name="wifi_p2p_to_message" msgid="248968974522044099">"Aan:"</string> <string name="wifi_p2p_enter_pin_message" msgid="5920929550367828970">"Voer die vereiste PIN in:"</string> <string name="wifi_p2p_show_pin_message" msgid="8530563323880921094">"PIN:"</string> - <!-- no translation found for wifi_p2p_frequency_conflict_message (7363907213787469151) --> - <skip /> + <string name="wifi_p2p_frequency_conflict_message" msgid="7363907213787469151">"Die telefoon sal tydelik van Wi-Fi ontkoppel terwyl dit aan <xliff:g id="DEVICE_NAME">%1$s</xliff:g> gekoppel is"</string> <string name="select_character" msgid="3365550120617701745">"Voeg karakter in"</string> <string name="sms_control_title" msgid="7296612781128917719">"Stuur SMS-boodskappe"</string> <string name="sms_control_message" msgid="3867899169651496433">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> stuur \'n groot aantal SMS-boodskappe. Wil jy hierdie program toelaat om voort te gaan om boodskappe te stuur?"</string> diff --git a/core/res/res/values-ar/strings.xml b/core/res/res/values-ar/strings.xml index 7cf878765010..a6ac577c24fb 100644 --- a/core/res/res/values-ar/strings.xml +++ b/core/res/res/values-ar/strings.xml @@ -320,7 +320,7 @@ <string name="permlab_internalSystemWindow" msgid="2148563628140193231">"عرض النوافذ غير المصرح بها"</string> <string name="permdesc_internalSystemWindow" msgid="7458387759461466397">"للسماح للتطبيق بإنشاء نوافذ بقصد استخدامها بواسطة واجهة مستخدم النظام الداخلي. ليس للاستخدام بواسطة التطبيقات العادية."</string> <string name="permlab_systemAlertWindow" msgid="3543347980839518613">"التغطية على تطبيقات أخرى"</string> - <string name="permdesc_systemAlertWindow" msgid="8584678381972820118">"للسماح للتطبيق بالرسم على التطبيقات الأخرى أو أجزاء من واجهة المستخدم. وقد تتداخل مع استخدامك للواجهة في أي تطبيق أو قد تغير ما تعتقد أنك تراه في التطبيقات الأخرى."</string> + <string name="permdesc_systemAlertWindow" msgid="8584678381972820118">"للسماح بوضع التطبيق بالقرب أعلى التطبيقات الأخرى أو في أجزاء من واجهة المستخدم. وقد يتداخل مع استخدامك للواجهة في أي تطبيق أو قد يغير ما تعتقد أنك تراه في التطبيقات الأخرى."</string> <string name="permlab_setAnimationScale" msgid="2805103241153907174">"تعديل سرعة الرسوم المتحركة العمومية"</string> <string name="permdesc_setAnimationScale" msgid="7690063428924343571">"للسماح للتطبيق بتغيير سرعة الرسوم المتحركة العمومية (رسوم متحركة أسرع أو أبطأ) في أي وقت."</string> <string name="permlab_manageAppTokens" msgid="1286505717050121370">"إدارة الرموز المميزة للتطبيقات"</string> @@ -431,9 +431,9 @@ <string name="permlab_installLocationProvider" msgid="6578101199825193873">"إذن لتثبيت موفر خدمة موقع"</string> <string name="permdesc_installLocationProvider" msgid="9066146120470591509">"لإنشاء مصادر مواقع زائفة للاختبار أو تثبيت موفر مواقع جديد. يتيح هذا للتطبيق إلغاء الموقع و/أو الحالة التي تعرضها مصادر المواقع الأخرى مثل GPS أو موفري المواقع."</string> <string name="permlab_accessFineLocation" msgid="1191898061965273372">"الموقع الدقيق (مستند إلى نظام تحديد المواقع العالمي والشبكة)"</string> - <string name="permdesc_accessFineLocation" msgid="5295047563564981250">"للسماح للتطبيق بتحديد موقعك بدقة وهذا باستخدام نظام تحديد المواقع العالمي (GPS) أو مصادر المواقع التي تستخدم الشبكات مثل الأبراج الخلوية أو تقنية Wi-Fi. يتعين توفر خدمات المواقع هذه وتشغيلها على جهازك للتطبيق كي يستخدمها. وقد تستخدم التطبيقات هذا لتحديد موقعك وقد تستهلك مزيدًا من طاقة البطارية."</string> + <string name="permdesc_accessFineLocation" msgid="5295047563564981250">"للسماح للتطبيق بتحديد موقعك بدقة وهذا باستخدام نظام تحديد المواقع العالمي (GPS) أو مصادر المواقع التي تستخدم الشبكات مثل أبراج الجوال أو تقنية Wi-Fi. يتعين توفر خدمات المواقع هذه وتشغيلها على جهازك للتطبيق كي يستخدمها. وقد تستخدم التطبيقات هذا لتحديد موقعك وقد تستهلك مزيدًا من طاقة البطارية."</string> <string name="permlab_accessCoarseLocation" msgid="4887895362354239628">"الموقع التقريبي (مستند إلى الشبكة)"</string> - <string name="permdesc_accessCoarseLocation" msgid="2538200184373302295">"للسماح للتطبيق بتحديد موقعك التقريبي الذي يستمد من خدمات الموقع باستخدام مصادر المواقع التي تستخدم الشبكات مثل الأبراج الخلوية وتقنية Wi-Fi. يتعين توفر خدمات المواقع هذه وتشغيلها على جهازك للتطبيق كي يستخدمها. وقد تستخدم التطبيقات هذا لتحديد موقعك التقريبي."</string> + <string name="permdesc_accessCoarseLocation" msgid="2538200184373302295">"للسماح للتطبيق بتحديد موقعك التقريبي الذي يستمد من خدمات الموقع باستخدام مصادر المواقع التي تستخدم الشبكات مثل أبراج الجوال وتقنية Wi-Fi. يتعين توفر خدمات المواقع هذه وتشغيلها على جهازك للتطبيق كي يستخدمها. وقد تستخدم التطبيقات هذا لتحديد موقعك التقريبي."</string> <string name="permlab_accessSurfaceFlinger" msgid="2363969641792388947">"الدخول إلى SurfaceFlinger"</string> <string name="permdesc_accessSurfaceFlinger" msgid="1041619516733293551">"للسماح للتطبيق باستخدام ميزات SurfaceFlinger ذات المستوى المنخفض."</string> <string name="permlab_readFrameBuffer" msgid="6690504248178498136">"قراءة المخزن المؤقت للإطارات"</string> diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml index 06de90b23905..b620b50d563f 100644 --- a/core/res/res/values-bg/strings.xml +++ b/core/res/res/values-bg/strings.xml @@ -1072,8 +1072,7 @@ <item quantity="other" msgid="7915895323644292768">"Има достъпни отворени Wi-Fi мрежи"</item> </plurals> <string name="wifi_available_sign_in" msgid="4029489716605255386">"Влизане в Wi-Fi мрежа"</string> - <!-- no translation found for network_available_sign_in (8495155593358054676) --> - <skip /> + <string name="network_available_sign_in" msgid="8495155593358054676">"Влезте в мрежата"</string> <!-- no translation found for network_available_sign_in_detailed (8000081941447976118) --> <skip /> <string name="wifi_watchdog_network_disabled" msgid="7904214231651546347">"Не можа да се свърже с Wi-Fi"</string> @@ -1091,8 +1090,7 @@ <string name="wifi_p2p_to_message" msgid="248968974522044099">"До:"</string> <string name="wifi_p2p_enter_pin_message" msgid="5920929550367828970">"Въведете задължителния ПИН:"</string> <string name="wifi_p2p_show_pin_message" msgid="8530563323880921094">"ПИН:"</string> - <!-- no translation found for wifi_p2p_frequency_conflict_message (7363907213787469151) --> - <skip /> + <string name="wifi_p2p_frequency_conflict_message" msgid="7363907213787469151">"Телефонът временно ще прекрати връзката с Wi-Fi, докато е свързан с/ъс <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string> <string name="select_character" msgid="3365550120617701745">"Вмъкване на знак"</string> <string name="sms_control_title" msgid="7296612781128917719">"Изпращане на SMS съобщения"</string> <string name="sms_control_message" msgid="3867899169651496433">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> изпраща голям брой SMS съобщения. Искате ли да разрешите на това приложение да продължи да го прави?"</string> diff --git a/core/res/res/values-ca/strings.xml b/core/res/res/values-ca/strings.xml index 0bfca009bea7..a63e4181ee04 100644 --- a/core/res/res/values-ca/strings.xml +++ b/core/res/res/values-ca/strings.xml @@ -1150,7 +1150,7 @@ <string name="extmedia_format_button_format" msgid="4131064560127478695">"Formata"</string> <string name="adb_active_notification_title" msgid="6729044778949189918">"Depuració d\'USB connectada"</string> <string name="adb_active_notification_message" msgid="1016654627626476142">"Toca-ho per desactivar la depuració USB."</string> - <string name="select_input_method" msgid="4653387336791222978">"Selecció de mètodes d\'introducció"</string> + <string name="select_input_method" msgid="4653387336791222978">"Selecciona un mètodes d\'entrada"</string> <string name="configure_input_methods" msgid="9091652157722495116">"Configura els mètodes d\'entrada"</string> <string name="use_physical_keyboard" msgid="6203112478095117625">"Teclat físic"</string> <string name="hardware" msgid="7517821086888990278">"Maquinari"</string> @@ -1405,6 +1405,6 @@ <string name="kg_failed_attempts_now_wiping" product="default" msgid="4817627474419471518">"Has provat de desbloquejar el telèfon <xliff:g id="NUMBER">%d</xliff:g> vegades de manera incorrecta. Ara el telèfon es restablirà a la configuració predeterminada de fàbrica."</string> <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Has dibuixat el patró de desbloqueig <xliff:g id="NUMBER_0">%d</xliff:g> vegades de manera incorrecta. Després de <xliff:g id="NUMBER_1">%d</xliff:g> intents incorrectes més, se\'t demanarà que desbloquegis la tauleta amb un compte de correu electrònic."\n\n" Torna-ho a provar d\'aquí a <xliff:g id="NUMBER_2">%d</xliff:g> segons."</string> <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Has dibuixat el patró de desbloqueig <xliff:g id="NUMBER_0">%d</xliff:g> vegades de manera incorrecta. Després de <xliff:g id="NUMBER_1">%d</xliff:g> intents incorrectes més, se\'t demanarà que desbloquegis el telèfon amb un compte de correu electrònic."\n\n" Torna-ho a provar d\'aquí a <xliff:g id="NUMBER_2">%d</xliff:g> segons."</string> - <string name="safe_media_volume_warning" product="default" msgid="7382971871993371648">"Vols augmentar el volum per sobre del nivell de seguretat?"\n"Escoltar música a un volum alt durant períodes llargs pot danyar l\'oïda."</string> + <string name="safe_media_volume_warning" product="default" msgid="7382971871993371648">"Vols augmentar el volum per sobre del nivell de seguretat?"\n"Escoltar música a un volum alt durant períodes llargs pot perjudicar l\'oïda."</string> <string name="kg_temp_back_string" msgid="5812983904056640466">"<"</string> </resources> diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml index 2ad8153b9b6a..2d5318257847 100644 --- a/core/res/res/values-cs/strings.xml +++ b/core/res/res/values-cs/strings.xml @@ -1072,8 +1072,7 @@ <item quantity="other" msgid="7915895323644292768">"Jsou k dispozici veřejné sítě WiFi"</item> </plurals> <string name="wifi_available_sign_in" msgid="4029489716605255386">"Přihlásit se k síti Wi-Fi"</string> - <!-- no translation found for network_available_sign_in (8495155593358054676) --> - <skip /> + <string name="network_available_sign_in" msgid="8495155593358054676">"Přihlášení k síti"</string> <!-- no translation found for network_available_sign_in_detailed (8000081941447976118) --> <skip /> <string name="wifi_watchdog_network_disabled" msgid="7904214231651546347">"Připojení k síti Wi-Fi se nezdařilo"</string> @@ -1091,8 +1090,7 @@ <string name="wifi_p2p_to_message" msgid="248968974522044099">"Komu:"</string> <string name="wifi_p2p_enter_pin_message" msgid="5920929550367828970">"Zadejte požadovaný kód PIN:"</string> <string name="wifi_p2p_show_pin_message" msgid="8530563323880921094">"PIN:"</string> - <!-- no translation found for wifi_p2p_frequency_conflict_message (7363907213787469151) --> - <skip /> + <string name="wifi_p2p_frequency_conflict_message" msgid="7363907213787469151">"Telefon se při připojení k zařízení <xliff:g id="DEVICE_NAME">%1$s</xliff:g> dočasně odpojí od sítě Wi-Fi"</string> <string name="select_character" msgid="3365550120617701745">"Vkládání znaků"</string> <string name="sms_control_title" msgid="7296612781128917719">"Odesílání zpráv SMS"</string> <string name="sms_control_message" msgid="3867899169651496433">"Aplikace <b><xliff:g id="APP_NAME">%1$s</xliff:g></b>odesílá velký počet SMS zpráv. Chcete aplikaci povolit, aby zprávy odesílala i nadále?"</string> diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml index cff81eae2a32..5cc025ab5323 100644 --- a/core/res/res/values-es-rUS/strings.xml +++ b/core/res/res/values-es-rUS/strings.xml @@ -276,7 +276,7 @@ <string name="permlab_changeConfiguration" msgid="4162092185124234480">"cambiar la configuración de visualización del sistema"</string> <string name="permdesc_changeConfiguration" msgid="4372223873154296076">"Permite que la aplicación cambie la configuración actual como, por ejemplo, la configuración regional o el tamaño de fuente general."</string> <string name="permlab_enableCarMode" msgid="5684504058192921098">"activar el modo de auto"</string> - <string name="permdesc_enableCarMode" msgid="4853187425751419467">"Permite que la aplicación habilite el modo coche."</string> + <string name="permdesc_enableCarMode" msgid="4853187425751419467">"Permite que la aplicación habilite el modo automóvil."</string> <string name="permlab_killBackgroundProcesses" msgid="3914026687420177202">"cerrar otras aplicaciones"</string> <string name="permdesc_killBackgroundProcesses" msgid="4593353235959733119">"Este permiso autoriza a la aplicación a interrumpir procesos en segundo plano de otras aplicaciones y puede hacer, por lo tanto, que esas aplicaciones dejen de ejecutarse."</string> <string name="permlab_forceStopPackages" msgid="2329627428832067700">"forzar la detención de otras aplicaciones"</string> @@ -1195,7 +1195,7 @@ <string name="ime_action_search" msgid="658110271822807811">"Buscar"</string> <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> + <string name="ime_action_done" msgid="8971516117910934605">"Listo"</string> <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> diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml index adb40a82f82d..c72802b172f1 100644 --- a/core/res/res/values-es/strings.xml +++ b/core/res/res/values-es/strings.xml @@ -155,7 +155,7 @@ <string name="global_action_lock" msgid="2844945191792119712">"Bloqueo de pantalla"</string> <string name="global_action_power_off" msgid="4471879440839879722">"Apagar"</string> <string name="global_action_bug_report" msgid="7934010578922304799">"Informe de error"</string> - <string name="bugreport_title" msgid="2667494803742548533">"Hacer informe de errores"</string> + <string name="bugreport_title" msgid="2667494803742548533">"Crear informe de errores"</string> <string name="bugreport_message" msgid="398447048750350456">"Se recopilará información sobre el estado actual de tu dispositivo, que se enviará por correo electrónico. Pasarán unos minutos desde que se inicie el informe de errores hasta que se envíe, por lo que te recomendamos que tengas paciencia."</string> <string name="global_action_toggle_silent_mode" msgid="8219525344246810925">"Modo silencio"</string> <string name="global_action_silent_mode_on_status" msgid="3289841937003758806">"El sonido está desactivado. Activar"</string> @@ -1227,7 +1227,7 @@ <string name="car_mode_disable_notification_title" msgid="3164768212003864316">"Se ha habilitado el modo coche."</string> <string name="car_mode_disable_notification_message" msgid="8035230537563503262">"Toca para salir del modo coche."</string> <string name="tethered_notification_title" msgid="3146694234398202601">"Anclaje a red/Zona Wi-Fi activo"</string> - <string name="tethered_notification_message" msgid="6857031760103062982">"Toca para configurar."</string> + <string name="tethered_notification_message" msgid="6857031760103062982">"Toca para configurar"</string> <string name="back_button_label" msgid="2300470004503343439">"Atrás"</string> <string name="next_button_label" msgid="1080555104677992408">"Siguiente"</string> <string name="skip_button_label" msgid="1275362299471631819">"Saltar"</string> @@ -1270,7 +1270,7 @@ <string name="sync_really_delete" msgid="2572600103122596243">"Eliminar elementos"</string> <string name="sync_undo_deletes" msgid="2941317360600338602">"Deshacer las eliminaciones"</string> <string name="sync_do_nothing" msgid="3743764740430821845">"No hacer nada por ahora"</string> - <string name="choose_account_label" msgid="5655203089746423927">"Seleccionar una cuenta"</string> + <string name="choose_account_label" msgid="5655203089746423927">"Selecciona una cuenta"</string> <string name="add_account_label" msgid="2935267344849993553">"Añadir una cuenta"</string> <string name="add_account_button_label" msgid="3611982894853435874">"Añadir cuenta"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"Aumentar"</string> @@ -1372,11 +1372,11 @@ <string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string> <string name="kg_emergency_call_label" msgid="684946192523830531">"Llamada de emergencia"</string> <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"¿Has olvidado el patrón?"</string> - <string name="kg_wrong_pattern" msgid="1850806070801358830">"Patrón incorrecto"</string> + <string name="kg_wrong_pattern" msgid="1850806070801358830">"El patrón es incorrecto."</string> <string name="kg_wrong_password" msgid="2333281762128113157">"Contraseña incorrecta"</string> <string name="kg_wrong_pin" msgid="1131306510833563801">"PIN incorrecto"</string> <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Inténtalo de nuevo en <xliff:g id="NUMBER">%d</xliff:g> segundos."</string> - <string name="kg_pattern_instructions" msgid="398978611683075868">"Dibuja tu patrón."</string> + <string name="kg_pattern_instructions" msgid="398978611683075868">"Dibuja tu patrón de desbloqueo."</string> <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Introduce el PIN de la tarjeta SIM."</string> <string name="kg_pin_instructions" msgid="2377242233495111557">"Introduce el PIN."</string> <string name="kg_password_instructions" msgid="5753646556186936819">"Escribe tu contraseña."</string> diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml index a824281441d4..d0766750e1a2 100644 --- a/core/res/res/values-fr/strings.xml +++ b/core/res/res/values-fr/strings.xml @@ -320,7 +320,7 @@ <string name="permlab_internalSystemWindow" msgid="2148563628140193231">"Affichage de fenêtres non autorisées"</string> <string name="permdesc_internalSystemWindow" msgid="7458387759461466397">"Permet à l\'application de créer des fenêtres destinées à être utilisées par l\'interface utilisateur du système interne. Les applications standards ne doivent pas utiliser cette fonctionnalité."</string> <string name="permlab_systemAlertWindow" msgid="3543347980839518613">"ignorer les autres applications"</string> - <string name="permdesc_systemAlertWindow" msgid="8584678381972820118">"Permet à l\'application d\'afficher des graphismes dans d\'autres applications ou sur certaines parties de l\'interface utilisateur. Ceux-ci peuvent interférer lorsque vous utilisez l\'interface de n\'importe quelle application, ou modifier ce que vous pensez voir dans d\'autres applications."</string> + <string name="permdesc_systemAlertWindow" msgid="8584678381972820118">"Permet à l\'application d\'ignorer d\'autres applications ou certaines parties de l\'interface utilisateur. Cela peut altérer votre utilisation de l\'interface de n\'importe quelle application, ou modifier ce que vous pensez voir dans d\'autres applications."</string> <string name="permlab_setAnimationScale" msgid="2805103241153907174">"Réglage de la vitesse des animations"</string> <string name="permdesc_setAnimationScale" msgid="7690063428924343571">"Permet à l\'application de modifier à tout moment la vitesse générale des animations pour les ralentir ou les accélérer."</string> <string name="permlab_manageAppTokens" msgid="1286505717050121370">"gérer les jetons d\'application"</string> @@ -431,7 +431,7 @@ <string name="permlab_installLocationProvider" msgid="6578101199825193873">"autoriser l\'installation d\'un fournisseur de services de localisation"</string> <string name="permdesc_installLocationProvider" msgid="9066146120470591509">"Permet de créer des sources de localisation fictives à des fins de tests ou pour installer un nouveau fournisseur de position. L\'application peut ainsi modifier la position et/ou l\'état renvoyé par d\'autres sources de localisation telles que le GPS ou les fournisseurs de position."</string> <string name="permlab_accessFineLocation" msgid="1191898061965273372">"position précise (GPS et réseau)"</string> - <string name="permdesc_accessFineLocation" msgid="5295047563564981250">"Permet à l\'application d\'obtenir votre position exacte à l\'aide du récepteur satellite GPS (Global Positioning System) ou des sources de localisation de réseau tels que les points d\'accès Wi-Fi et les antennes-relais. Ces services de localisation doivent être activés et disponibles sur votre appareil pour que l\'application puissent déterminer où vous vous trouvez, le cas échéant. Cette autorisation peut entraîner une utilisation accrue de la batterie."</string> + <string name="permdesc_accessFineLocation" msgid="5295047563564981250">"Permet à l\'application d\'obtenir votre position exacte à l\'aide du récepteur satellite GPS ou des sources de localisation de réseau tels que les points d\'accès Wi-Fi et les antennes-relais. Ces services de localisation doivent être activés et disponibles sur votre appareil pour que l\'application puissent déterminer où vous vous trouvez, le cas échéant. Cette autorisation peut entraîner une utilisation accrue de la batterie."</string> <string name="permlab_accessCoarseLocation" msgid="4887895362354239628">"position approximative (réseau)"</string> <string name="permdesc_accessCoarseLocation" msgid="2538200184373302295">"Permet à l\'application d\'obtenir votre position approximative. Celle-ci est fournie par des services de localisation sur la base des sources de localisation de réseau tels que les points d\'accès Wi-Fi et les antennes-relais. Ces services de localisation doivent être activés et disponibles sur votre appareil pour que l\'application puisse déterminer où vous vous trouvez de façon approximative, le cas échéant."</string> <string name="permlab_accessSurfaceFlinger" msgid="2363969641792388947">"Accès à SurfaceFlinger"</string> diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml index 7204b0416d3f..5c847e804b75 100644 --- a/core/res/res/values-in/strings.xml +++ b/core/res/res/values-in/strings.xml @@ -623,7 +623,7 @@ <string name="policydesc_encryptedStorage" msgid="2637732115325316992">"Mengharuskan data apl yang disimpan untuk dienkripsi."</string> <string name="policylab_disableCamera" msgid="6395301023152297826">"Nonaktifkan kamera"</string> <string name="policydesc_disableCamera" msgid="2306349042834754597">"Mencegah penggunaan semua kamera perangkat."</string> - <string name="policylab_disableKeyguardFeatures" msgid="266329104542638802">"Menonaktifkan ftur di pengaman"</string> + <string name="policylab_disableKeyguardFeatures" msgid="266329104542638802">"Nonaktifkan fitur di pengaman"</string> <string name="policydesc_disableKeyguardFeatures" msgid="3467082272186534614">"Mencegah penggunaan beberapa fitur dalam pengaman."</string> <string-array name="phoneTypes"> <item msgid="8901098336658710359">"Rumah"</item> diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml index 190eb977cce5..6e85e9a82323 100644 --- a/core/res/res/values-ja/strings.xml +++ b/core/res/res/values-ja/strings.xml @@ -748,7 +748,7 @@ <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"PINコードが正しくありません。"</string> <string name="keyguard_label_text" msgid="861796461028298424">"MENU、0キーでロック解除"</string> <string name="emergency_call_dialog_number_for_display" msgid="696192103195090970">"緊急通報番号"</string> - <string name="lockscreen_carrier_default" msgid="8963839242565653192">"通信サービスはありません。"</string> + <string name="lockscreen_carrier_default" msgid="8963839242565653192">"通信サービスはありません"</string> <string name="lockscreen_screen_locked" msgid="7288443074806832904">"画面ロック中"</string> <string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"MENUキーでロック解除(または緊急通報)"</string> <string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"MENUキーでロック解除"</string> @@ -1072,8 +1072,7 @@ <item quantity="other" msgid="7915895323644292768">"Wi-Fiオープンネットワークが利用できます"</item> </plurals> <string name="wifi_available_sign_in" msgid="4029489716605255386">"Wi-Fiネットワークにログイン"</string> - <!-- no translation found for network_available_sign_in (8495155593358054676) --> - <skip /> + <string name="network_available_sign_in" msgid="8495155593358054676">"ネットワークにログイン"</string> <!-- no translation found for network_available_sign_in_detailed (8000081941447976118) --> <skip /> <string name="wifi_watchdog_network_disabled" msgid="7904214231651546347">"Wi-Fiに接続できませんでした"</string> @@ -1091,8 +1090,7 @@ <string name="wifi_p2p_to_message" msgid="248968974522044099">"To:"</string> <string name="wifi_p2p_enter_pin_message" msgid="5920929550367828970">"必要なPINを入力してください:"</string> <string name="wifi_p2p_show_pin_message" msgid="8530563323880921094">"PIN:"</string> - <!-- no translation found for wifi_p2p_frequency_conflict_message (7363907213787469151) --> - <skip /> + <string name="wifi_p2p_frequency_conflict_message" msgid="7363907213787469151">"携帯端末が<xliff:g id="DEVICE_NAME">%1$s</xliff:g>に接続されている間は一時的にWi-Fi接続が解除されます。"</string> <string name="select_character" msgid="3365550120617701745">"文字を挿入"</string> <string name="sms_control_title" msgid="7296612781128917719">"SMSメッセージの送信中"</string> <string name="sms_control_message" msgid="3867899169651496433">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b>が大量のSMSメッセージを送信しています。このアプリにこのままメッセージの送信を許可しますか?"</string> diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml index e91bda5bf778..1e520bc40b30 100644 --- a/core/res/res/values-ko/strings.xml +++ b/core/res/res/values-ko/strings.xml @@ -608,7 +608,7 @@ <string name="policylab_watchLogin" msgid="914130646942199503">"화면 잠금해제 시도 모니터링"</string> <string name="policydesc_watchLogin" product="tablet" msgid="3215729294215070072">"화면 잠금해제 시 비밀번호를 잘못 입력한 횟수를 모니터링하고, 잘못된 비밀번호 입력 횟수가 너무 많은 경우 태블릿을 잠그거나 태블릿에 있는 데이터를 모두 지웁니다."</string> <string name="policydesc_watchLogin" product="default" msgid="5712323091846761073">"화면 잠금해제 시 비밀번호를 잘못 입력한 횟수를 모니터링하고, 잘못된 비밀번호 입력 횟수가 너무 많은 경우 휴대전화를 잠그거나 휴대전화에 있는 데이터를 모두 지웁니다."</string> - <string name="policylab_resetPassword" msgid="2620077191242688955">"화면 잠금해제 비밀번호를 변경합니다."</string> + <string name="policylab_resetPassword" msgid="2620077191242688955">"화면 잠금해제 비밀번호 변경"</string> <string name="policydesc_resetPassword" msgid="605963962301904458">"화면 잠금해제 비밀번호를 변경합니다."</string> <string name="policylab_forceLock" msgid="2274085384704248431">"화면 잠금"</string> <string name="policydesc_forceLock" msgid="1141797588403827138">"화면을 잠그는 방법과 시기를 제어합니다."</string> diff --git a/core/res/res/values-land/arrays.xml b/core/res/res/values-land/arrays.xml index 1cd9e74f369d..240b9e47696a 100644 --- a/core/res/res/values-land/arrays.xml +++ b/core/res/res/values-land/arrays.xml @@ -22,16 +22,16 @@ <!-- Resources for GlowPadView in LockScreen --> <array name="lockscreen_targets_when_silent"> <item>@null</item>" - <item>@drawable/ic_lockscreen_unlock</item> <item>@drawable/ic_action_assist_generic</item> <item>@drawable/ic_lockscreen_soundon</item> + <item>@drawable/ic_lockscreen_unlock</item> </array> <array name="lockscreen_target_descriptions_when_silent"> <item>@null</item> - <item>@string/description_target_unlock</item> <item>@string/description_target_search</item> <item>@string/description_target_soundon</item> + <item>@string/description_target_unlock</item> </array> <array name="lockscreen_direction_descriptions"> @@ -43,30 +43,30 @@ <array name="lockscreen_targets_when_soundon"> <item>@null</item> - <item>@drawable/ic_lockscreen_unlock</item> <item>@drawable/ic_action_assist_generic</item> <item>@drawable/ic_lockscreen_silent</item> + <item>@drawable/ic_lockscreen_unlock</item> </array> <array name="lockscreen_target_descriptions_when_soundon"> <item>@null</item> - <item>@string/description_target_unlock</item> <item>@string/description_target_search</item> <item>@string/description_target_silent</item> + <item>@string/description_target_unlock</item> </array> <array name="lockscreen_targets_with_camera"> <item>@null</item> - <item>@drawable/ic_lockscreen_unlock</item> <item>@drawable/ic_action_assist_generic</item> <item>@drawable/ic_lockscreen_camera</item> + <item>@drawable/ic_lockscreen_unlock</item> </array> <array name="lockscreen_target_descriptions_with_camera"> <item>@null</item> - <item>@string/description_target_unlock</item> <item>@string/description_target_search</item> <item>@string/description_target_camera</item> + <item>@string/description_target_unlock</item> </array> </resources> diff --git a/core/res/res/values-land/dimens.xml b/core/res/res/values-land/dimens.xml index 6f96852450f2..07f62edf5521 100644 --- a/core/res/res/values-land/dimens.xml +++ b/core/res/res/values-land/dimens.xml @@ -43,4 +43,11 @@ <!-- Size of clock font in LockScreen on Unsecure unlock screen. --> <dimen name="keyguard_lockscreen_clock_font_size">70sp</dimen> + <!-- Shift emergency button from the left edge by this amount. Used by landscape layout on + phones --> + <dimen name="kg_emergency_button_shift">30dp</dimen> + + <!-- Space reserved at the bottom of secure views (pin/pattern/password/SIM pin/SIM puk) --> + <dimen name="kg_secure_padding_height">0dp</dimen> + </resources> diff --git a/core/res/res/values-land/integers.xml b/core/res/res/values-land/integers.xml new file mode 100644 index 000000000000..1b8f5750e88e --- /dev/null +++ b/core/res/res/values-land/integers.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** Copyright 2012, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> +<resources> + <integer name="kg_security_flip_duration">150</integer> + <integer name="kg_security_fade_duration">150</integer> + + <!-- Gravity to make KeyguardSelectorView work in multiple orientations + 0x13 == "left|center_vertical" --> + <integer name="kg_selector_gravity">0x13</integer> +</resources>
\ No newline at end of file diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml index cade007e98c5..7931ab9eb14f 100644 --- a/core/res/res/values-pt/strings.xml +++ b/core/res/res/values-pt/strings.xml @@ -1072,8 +1072,7 @@ <item quantity="other" msgid="7915895323644292768">"Redes Wi-Fi abertas disponíveis"</item> </plurals> <string name="wifi_available_sign_in" msgid="4029489716605255386">"Fazer login na rede Wi-Fi"</string> - <!-- no translation found for network_available_sign_in (8495155593358054676) --> - <skip /> + <string name="network_available_sign_in" msgid="8495155593358054676">"Acessar a rede"</string> <!-- no translation found for network_available_sign_in_detailed (8000081941447976118) --> <skip /> <string name="wifi_watchdog_network_disabled" msgid="7904214231651546347">"Não foi possível se conectar a redes Wi-Fi"</string> @@ -1091,8 +1090,7 @@ <string name="wifi_p2p_to_message" msgid="248968974522044099">"Para:"</string> <string name="wifi_p2p_enter_pin_message" msgid="5920929550367828970">"Digite o PIN obrigatório:"</string> <string name="wifi_p2p_show_pin_message" msgid="8530563323880921094">"PIN:"</string> - <!-- no translation found for wifi_p2p_frequency_conflict_message (7363907213787469151) --> - <skip /> + <string name="wifi_p2p_frequency_conflict_message" msgid="7363907213787469151">"O telefone desconectará temporariamente da rede Wi-Fi enquanto estiver conectado a <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string> <string name="select_character" msgid="3365550120617701745">"Inserir caractere"</string> <string name="sms_control_title" msgid="7296612781128917719">"Enviando mensagens SMS"</string> <string name="sms_control_message" msgid="3867899169651496433">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> envia uma grande quantidade de mensagens SMS. Deseja permitir que este aplicativo continue enviando mensagens?"</string> diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml index 81c304ebe390..c355b0cde646 100644 --- a/core/res/res/values-ro/strings.xml +++ b/core/res/res/values-ro/strings.xml @@ -1072,8 +1072,7 @@ <item quantity="other" msgid="7915895323644292768">"Reţele Wi-Fi deschise disponibile"</item> </plurals> <string name="wifi_available_sign_in" msgid="4029489716605255386">"Conectaţi-vă în reţeaua Wi-Fi"</string> - <!-- no translation found for network_available_sign_in (8495155593358054676) --> - <skip /> + <string name="network_available_sign_in" msgid="8495155593358054676">"Conectaţi-vă la reţea"</string> <!-- no translation found for network_available_sign_in_detailed (8000081941447976118) --> <skip /> <string name="wifi_watchdog_network_disabled" msgid="7904214231651546347">"Nu se poate conecta la Wi-Fi"</string> @@ -1091,8 +1090,7 @@ <string name="wifi_p2p_to_message" msgid="248968974522044099">"Către:"</string> <string name="wifi_p2p_enter_pin_message" msgid="5920929550367828970">"Introduceţi codul PIN necesar:"</string> <string name="wifi_p2p_show_pin_message" msgid="8530563323880921094">"Cod PIN:"</string> - <!-- no translation found for wifi_p2p_frequency_conflict_message (7363907213787469151) --> - <skip /> + <string name="wifi_p2p_frequency_conflict_message" msgid="7363907213787469151">"Telefonul se va deconecta temporar de la reţeaua Wi-Fi cât timp este conectat la <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string> <string name="select_character" msgid="3365550120617701745">"Introduceţi caracterul"</string> <string name="sms_control_title" msgid="7296612781128917719">"Se trimit mesaje SMS"</string> <string name="sms_control_message" msgid="3867899169651496433">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> trimite un număr mare de mesaje SMS. Permiteţi acestei aplicaţii să trimită în continuare mesaje?"</string> diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml index b26880be3f79..b031de3b2669 100644 --- a/core/res/res/values-ru/strings.xml +++ b/core/res/res/values-ru/strings.xml @@ -1258,8 +1258,8 @@ <string name="share" msgid="1778686618230011964">"Отправить"</string> <string name="find" msgid="4808270900322985960">"Найти"</string> <string name="websearch" msgid="4337157977400211589">"Веб-поиск"</string> - <string name="find_next" msgid="5742124618942193978">"Найти след."</string> - <string name="find_previous" msgid="2196723669388360506">"Найти пред."</string> + <string name="find_next" msgid="5742124618942193978">"Cлед."</string> + <string name="find_previous" msgid="2196723669388360506">"Пред."</string> <string name="gpsNotifTicker" msgid="5622683912616496172">"Пользователь <xliff:g id="NAME">%s</xliff:g> запрашивает ваше местоположение"</string> <string name="gpsNotifTitle" msgid="5446858717157416839">"Запрос местоположения"</string> <string name="gpsNotifMessage" msgid="1374718023224000702">"Запрашивает <xliff:g id="NAME">%1$s</xliff:g> (<xliff:g id="SERVICE">%2$s</xliff:g>)"</string> diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml index 4d8cc6db782a..118867bff2f7 100644 --- a/core/res/res/values-sk/strings.xml +++ b/core/res/res/values-sk/strings.xml @@ -623,7 +623,7 @@ <string name="policydesc_encryptedStorage" msgid="2637732115325316992">"Vyžadovať šifrovanie uložených údajov aplikácií."</string> <string name="policylab_disableCamera" msgid="6395301023152297826">"Zakázať fotoaparáty"</string> <string name="policydesc_disableCamera" msgid="2306349042834754597">"Zakázať používanie všetkých fotoaparátov zariadenia."</string> - <string name="policylab_disableKeyguardFeatures" msgid="266329104542638802">"Zakáz. funkcie v zámke kláves."</string> + <string name="policylab_disableKeyguardFeatures" msgid="266329104542638802">"Zákaz funkcie v zámke kláves."</string> <string name="policydesc_disableKeyguardFeatures" msgid="3467082272186534614">"Zabrániť používaniu niektorých funkcií v zámke klávesov."</string> <string-array name="phoneTypes"> <item msgid="8901098336658710359">"Domovská stránka"</item> @@ -1072,8 +1072,7 @@ <item quantity="other" msgid="7915895323644292768">"K dispozícii sú verejné siete Wi-Fi"</item> </plurals> <string name="wifi_available_sign_in" msgid="4029489716605255386">"Prihlásenie sa do siete Wi-Fi"</string> - <!-- no translation found for network_available_sign_in (8495155593358054676) --> - <skip /> + <string name="network_available_sign_in" msgid="8495155593358054676">"Prihláste sa do siete"</string> <!-- no translation found for network_available_sign_in_detailed (8000081941447976118) --> <skip /> <string name="wifi_watchdog_network_disabled" msgid="7904214231651546347">"Nepodarilo sa pripojiť k sieti Wi-Fi"</string> @@ -1091,8 +1090,7 @@ <string name="wifi_p2p_to_message" msgid="248968974522044099">"Komu:"</string> <string name="wifi_p2p_enter_pin_message" msgid="5920929550367828970">"Zadajte požadovaný kód PIN:"</string> <string name="wifi_p2p_show_pin_message" msgid="8530563323880921094">"PIN:"</string> - <!-- no translation found for wifi_p2p_frequency_conflict_message (7363907213787469151) --> - <skip /> + <string name="wifi_p2p_frequency_conflict_message" msgid="7363907213787469151">"Telefón bude počas pripojenia k zariadeniu <xliff:g id="DEVICE_NAME">%1$s</xliff:g> od siete Wi-Fi dočasne odpojený."</string> <string name="select_character" msgid="3365550120617701745">"Vkladanie znakov"</string> <string name="sms_control_title" msgid="7296612781128917719">"Odosielanie správ SMS"</string> <string name="sms_control_message" msgid="3867899169651496433">"Aplikácia <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> posiela veľký počet správ SMS. Chcete tejto aplikácií povoliť, aby aj naďalej posielala správy?"</string> diff --git a/core/res/res/values-sw600dp/bools.xml b/core/res/res/values-sw600dp/bools.xml index b8db31ffabfe..751b99766698 100644 --- a/core/res/res/values-sw600dp/bools.xml +++ b/core/res/res/values-sw600dp/bools.xml @@ -16,4 +16,5 @@ <resources> <bool name="target_honeycomb_needs_options_menu">false</bool> + <bool name="show_ongoing_ime_switcher">false</bool> </resources> diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml index 09a1805c5ef6..b34dbbdcc884 100644 --- a/core/res/res/values-tr/strings.xml +++ b/core/res/res/values-tr/strings.xml @@ -1072,8 +1072,7 @@ <item quantity="other" msgid="7915895323644292768">"Kullanılabilir kablosuz ağları aç"</item> </plurals> <string name="wifi_available_sign_in" msgid="4029489716605255386">"Kablosuz ağda oturum açın"</string> - <!-- no translation found for network_available_sign_in (8495155593358054676) --> - <skip /> + <string name="network_available_sign_in" msgid="8495155593358054676">"Ağda oturum açın"</string> <!-- no translation found for network_available_sign_in_detailed (8000081941447976118) --> <skip /> <string name="wifi_watchdog_network_disabled" msgid="7904214231651546347">"Kablosuz bağlantısı kurulamadı"</string> @@ -1091,8 +1090,7 @@ <string name="wifi_p2p_to_message" msgid="248968974522044099">"Alıcı:"</string> <string name="wifi_p2p_enter_pin_message" msgid="5920929550367828970">"Gerekli PIN\'i yazın:"</string> <string name="wifi_p2p_show_pin_message" msgid="8530563323880921094">"PIN:"</string> - <!-- no translation found for wifi_p2p_frequency_conflict_message (7363907213787469151) --> - <skip /> + <string name="wifi_p2p_frequency_conflict_message" msgid="7363907213787469151">"Telefon <xliff:g id="DEVICE_NAME">%1$s</xliff:g> adlı cihaza bağlıyken Kablosuz ağ bağlantısı geçici olarak kesilecektir"</string> <string name="select_character" msgid="3365550120617701745">"Karakter ekle"</string> <string name="sms_control_title" msgid="7296612781128917719">"SMS mesajları gönderiliyor"</string> <string name="sms_control_message" msgid="3867899169651496433">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> çok sayıda SMS mesajı gönderiyor. Bu uygulamanın mesaj göndermeye devam etmesine izin veriyor musunuz?"</string> diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml index 8ab267471a93..dfb484d7353e 100644 --- a/core/res/res/values-vi/strings.xml +++ b/core/res/res/values-vi/strings.xml @@ -1259,7 +1259,7 @@ <string name="find" msgid="4808270900322985960">"Tìm"</string> <string name="websearch" msgid="4337157977400211589">"Tìm kiếm trên web"</string> <string name="find_next" msgid="5742124618942193978">"Tìm kết quả phù hợp tiếp theo"</string> - <string name="find_previous" msgid="2196723669388360506">"Tìm kết quả phù hợp trước đó"</string> + <string name="find_previous" msgid="2196723669388360506">"Tìm kết quả phù hợp trước"</string> <string name="gpsNotifTicker" msgid="5622683912616496172">"Yêu cầu vị trí từ <xliff:g id="NAME">%s</xliff:g>"</string> <string name="gpsNotifTitle" msgid="5446858717157416839">"Yêu cầu vị trí"</string> <string name="gpsNotifMessage" msgid="1374718023224000702">"Được yêu cầu bởi <xliff:g id="NAME">%1$s</xliff:g> (<xliff:g id="SERVICE">%2$s</xliff:g>)"</string> diff --git a/core/res/res/values-w720dp/bools.xml b/core/res/res/values-w720dp/bools.xml index cd595ad66d14..352c3198c303 100644 --- a/core/res/res/values-w720dp/bools.xml +++ b/core/res/res/values-w720dp/bools.xml @@ -16,5 +16,4 @@ <resources> <bool name="action_bar_expanded_action_views_exclusive">false</bool> - <bool name="show_ongoing_ime_switcher">true</bool> </resources> diff --git a/core/res/res/values-zu/strings.xml b/core/res/res/values-zu/strings.xml index 249df57b6a38..bea960aa6de6 100644 --- a/core/res/res/values-zu/strings.xml +++ b/core/res/res/values-zu/strings.xml @@ -1072,8 +1072,7 @@ <item quantity="other" msgid="7915895323644292768">"Vula amanethiwekhi we-Wi-Fi atholakalayo"</item> </plurals> <string name="wifi_available_sign_in" msgid="4029489716605255386">"Ngena enethiwekhini ye-Wi-Fi network"</string> - <!-- no translation found for network_available_sign_in (8495155593358054676) --> - <skip /> + <string name="network_available_sign_in" msgid="8495155593358054676">"Ngena ngemvume kunethiwekhi"</string> <!-- no translation found for network_available_sign_in_detailed (8000081941447976118) --> <skip /> <string name="wifi_watchdog_network_disabled" msgid="7904214231651546347">"Ayikwazanga ukuxhuma kwi-Wi-Fi"</string> @@ -1091,8 +1090,7 @@ <string name="wifi_p2p_to_message" msgid="248968974522044099">"Ku:"</string> <string name="wifi_p2p_enter_pin_message" msgid="5920929550367828970">"Faka i-PIN edingekayo:"</string> <string name="wifi_p2p_show_pin_message" msgid="8530563323880921094">"PIN:"</string> - <!-- no translation found for wifi_p2p_frequency_conflict_message (7363907213787469151) --> - <skip /> + <string name="wifi_p2p_frequency_conflict_message" msgid="7363907213787469151">"Ifoni izonqamuka okwesikhashana ku-Wi-Fi ngenkathi ixhumeke ku-<xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string> <string name="select_character" msgid="3365550120617701745">"Faka uhlamvu"</string> <string name="sms_control_title" msgid="7296612781128917719">"Ithumela imiyalezo ye-SMS"</string> <string name="sms_control_message" msgid="3867899169651496433">"I-<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> ithumela inombolo enkulu yemilayezo ye-SMS. Ufuna ukuvumela lolu hlelo lokusebenza ukuqhubeka ukuthumela imilayezo?"</string> diff --git a/core/res/res/values/colors.xml b/core/res/res/values/colors.xml index eba354b3e07a..07d0d7416239 100644 --- a/core/res/res/values/colors.xml +++ b/core/res/res/values/colors.xml @@ -90,7 +90,7 @@ <color name="perms_dangerous_grp_color">#33b5e5</color> <color name="perms_dangerous_perm_color">#33b5e5</color> <color name="shadow">#cc222222</color> - <color name="perms_costs_money">#ffffb060</color> + <color name="perms_costs_money">#ffffbb33</color> <!-- For search-related UIs --> <color name="search_url_text_normal">#7fa87f</color> diff --git a/core/res/res/values/dimens.xml b/core/res/res/values/dimens.xml index 114b9c7d9145..e860dfe912a2 100644 --- a/core/res/res/values/dimens.xml +++ b/core/res/res/values/dimens.xml @@ -261,12 +261,28 @@ <dimen name="kg_status_clock_font_size">94dp</dimen> <!-- Size of the date font in keyguard's status view --> - <dimen name="kg_status_date_font_size">24dp</dimen> + <dimen name="kg_status_date_font_size">17dp</dimen> <!-- Size of the generic status lines keyguard's status view --> - <dimen name="kg_status_line_font_size">12sp</dimen> + <dimen name="kg_status_line_font_size">14sp</dimen> <!-- Size of margin on the right of keyguard's status view --> - <dimen name="kg_status_line_font_right_margin">32dp</dimen> + <dimen name="kg_status_line_font_right_margin">0dp</dimen> + + <!-- Horizontal gap between keys in PIN and SIM PIN numeric keyboards in keyguard --> + <dimen name="kg_key_horizontal_gap">0dp</dimen> + + <!-- Horizontal gap between keys in PIN and SIM PIN numeric keyboards in keyguard --> + <dimen name="kg_key_vertical_gap">0dp</dimen> + + <!-- Horizontal gap between keys in PIN and SIM PIN numeric keyboards in keyguard --> + <dimen name="kg_pin_key_height">60dp</dimen> + + <!-- Shift emergency button from the left edge by this amount. Used by landscape layout on + phones --> + <dimen name="kg_emergency_button_shift">0dp</dimen> + + <!-- Space reserved at the bottom of secure views (pin/pattern/password/SIM pin/SIM puk) --> + <dimen name="kg_secure_padding_height">46dp</dimen> </resources> diff --git a/core/res/res/values/donottranslate-cldr.xml b/core/res/res/values/donottranslate-cldr.xml index 92ea1bf71134..0587c165027e 100644 --- a/core/res/res/values/donottranslate-cldr.xml +++ b/core/res/res/values/donottranslate-cldr.xml @@ -57,5 +57,4 @@ <string name="full_wday_month_day_no_year">EEEE, MMMM d</string> <string name="abbrev_wday_month_day_no_year">EEE, MMMM d</string> <string name="abbrev_wday_month_day_year">EEE, MMM d, yyyy</string> - <string name="keyguard_wday_day_month">EEE <b>d</b> MMM</string> </resources> diff --git a/core/res/res/values/integers.xml b/core/res/res/values/integers.xml index 6d49a91e4d26..4b79d1f768ce 100644 --- a/core/res/res/values/integers.xml +++ b/core/res/res/values/integers.xml @@ -19,4 +19,8 @@ <resources> <integer name="kg_security_flip_duration">75</integer> <integer name="kg_security_fade_duration">75</integer> + + <!-- Gravity to make KeyguardSelectorView work in multiple orientations + 0x31 == "top|center_horizontal" --> + <integer name="kg_selector_gravity">0x31</integer> </resources> diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml index 6f37d8e88849..c90f4f27028d 100755 --- a/core/res/res/values/strings.xml +++ b/core/res/res/values/strings.xml @@ -3902,6 +3902,5 @@ "Raise volume above safe level?\nListening at high volume for long periods may damage your hearing." </string> - <string name="kg_temp_back_string"> < </string> <!-- TODO: remove this --> </resources> diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index 3936ed43c787..d85e58120ea8 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -957,6 +957,7 @@ <java-symbol type="drawable" name="ic_lockscreen_silent" /> <java-symbol type="drawable" name="ic_lockscreen_unlock" /> <java-symbol type="drawable" name="ic_action_assist_generic" /> + <java-symbol type="drawable" name="ic_lockscreen_alarm" /> <java-symbol type="drawable" name="notification_bg" /> <java-symbol type="drawable" name="notification_bg_low" /> <java-symbol type="drawable" name="notification_template_icon_bg" /> @@ -1079,6 +1080,7 @@ <java-symbol type="xml" name="password_kbd_qwerty_shifted" /> <java-symbol type="xml" name="password_kbd_symbols" /> <java-symbol type="xml" name="password_kbd_symbols_shift" /> + <java-symbol type="xml" name="kg_password_kbd_numeric" /> <java-symbol type="xml" name="power_profile" /> <java-symbol type="xml" name="time_zones_by_country" /> <java-symbol type="xml" name="sms_short_codes" /> @@ -1362,7 +1364,6 @@ <java-symbol type="string" name="lockscreen_too_many_failed_pin_attempts_dialog_message" /> <java-symbol type="string" name="lockscreen_unlock_label" /> <java-symbol type="string" name="status_bar_device_locked" /> - <java-symbol type="string" name="keyguard_wday_day_month" /> <java-symbol type="style" name="Animation.LockScreen" /> <java-symbol type="style" name="Theme.Dialog.RecentApplications" /> <java-symbol type="style" name="Theme.ExpandedMenu" /> diff --git a/core/res/res/xml/kg_password_kbd_numeric.xml b/core/res/res/xml/kg_password_kbd_numeric.xml new file mode 100755 index 000000000000..93b32af2de92 --- /dev/null +++ b/core/res/res/xml/kg_password_kbd_numeric.xml @@ -0,0 +1,59 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2008, 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. +*/ +--> +<Keyboard xmlns:android="http://schemas.android.com/apk/res/android" + android:keyWidth="33.33%p" + android:horizontalGap="@dimen/kg_key_horizontal_gap" + android:verticalGap="@dimen/kg_key_vertical_gap" + android:keyHeight="@dimen/kg_pin_key_height"> + + <Row android:rowEdgeFlags="top"> + <Key android:codes="49" android:keyIcon="@*android:drawable/sym_keyboard_num1" + android:keyEdgeFlags="left"/> + <Key android:codes="50" android:keyIcon="@*android:drawable/sym_keyboard_num2"/> + <Key android:codes="51" android:keyIcon="@*android:drawable/sym_keyboard_num3" + android:keyEdgeFlags="right"/> + </Row> + + <Row> + <Key android:codes="52" android:keyIcon="@*android:drawable/sym_keyboard_num4" + android:keyEdgeFlags="left"/> + <Key android:codes="53" android:keyIcon="@*android:drawable/sym_keyboard_num5"/> + <Key android:codes="54" android:keyIcon="@*android:drawable/sym_keyboard_num6" + android:keyEdgeFlags="right"/> + </Row> + + <Row> + <Key android:codes="55" android:keyIcon="@*android:drawable/sym_keyboard_num7" + android:keyEdgeFlags="left"/> + <Key android:codes="56" android:keyIcon="@*android:drawable/sym_keyboard_num8"/> + <Key android:codes="57" android:keyIcon="@*android:drawable/sym_keyboard_num9" + android:keyEdgeFlags="right"/> + </Row> + + <Row android:rowEdgeFlags="bottom"> + <Key android:codes="48" android:keyIcon="@*android:drawable/sym_keyboard_num0_no_plus" + android:keyWidth="33.33%p" + android:keyEdgeFlags="left"/> + <Key android:codes="10" android:keyIcon="@*android:drawable/sym_keyboard_enter" + android:keyWidth="66.67%p" + android:keyEdgeFlags="right"/> + </Row> + +</Keyboard> diff --git a/core/res/res/xml/password_kbd_numeric.xml b/core/res/res/xml/password_kbd_numeric.xml index 560f8678bbaa..7593ad85ef31 100755 --- a/core/res/res/xml/password_kbd_numeric.xml +++ b/core/res/res/xml/password_kbd_numeric.xml @@ -51,7 +51,7 @@ <Row android:rowEdgeFlags="bottom"> <Key android:codes="48" android:keyIcon="@drawable/sym_keyboard_num0_no_plus" android:keyWidth="66.66%p" android:keyEdgeFlags="left"/> - <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_ok" + <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_enter" android:keyEdgeFlags="right"/> </Row> diff --git a/core/tests/coretests/src/android/content/pm/PackageManagerTests.java b/core/tests/coretests/src/android/content/pm/PackageManagerTests.java index 5881aa1f1bc8..56070ee31816 100755 --- a/core/tests/coretests/src/android/content/pm/PackageManagerTests.java +++ b/core/tests/coretests/src/android/content/pm/PackageManagerTests.java @@ -1668,16 +1668,16 @@ public class PackageManagerTests extends AndroidTestCase { private int getDefaultInstallLoc() { int origDefaultLoc = PackageInfo.INSTALL_LOCATION_AUTO; try { - origDefaultLoc = Settings.System.getInt(mContext.getContentResolver(), - Settings.Secure.DEFAULT_INSTALL_LOCATION); + origDefaultLoc = Settings.Global.getInt(mContext.getContentResolver(), + Settings.Global.DEFAULT_INSTALL_LOCATION); } catch (SettingNotFoundException e1) { } return origDefaultLoc; } private void setInstallLoc(int loc) { - Settings.System.putInt(mContext.getContentResolver(), - Settings.Secure.DEFAULT_INSTALL_LOCATION, loc); + Settings.Global.putInt(mContext.getContentResolver(), + Settings.Global.DEFAULT_INSTALL_LOCATION, loc); } /* @@ -2555,16 +2555,16 @@ public class PackageManagerTests extends AndroidTestCase { */ private boolean getUserSettingSetInstallLocation() { try { - return Settings.System.getInt(mContext.getContentResolver(), Settings.Secure.SET_INSTALL_LOCATION) != 0; - + return Settings.Global.getInt( + mContext.getContentResolver(), Settings.Global.SET_INSTALL_LOCATION) != 0; } catch (SettingNotFoundException e1) { } return false; } private void setUserSettingSetInstallLocation(boolean value) { - Settings.System.putInt(mContext.getContentResolver(), - Settings.Secure.SET_INSTALL_LOCATION, value ? 1 : 0); + Settings.Global.putInt(mContext.getContentResolver(), + Settings.Global.SET_INSTALL_LOCATION, value ? 1 : 0); } private void setUserX(boolean enable, int userSetting, int iloc) throws Exception { diff --git a/data/fonts/AndroidClock.ttf b/data/fonts/AndroidClock.ttf Binary files differindex 3fa6d8867770..4781ccd84dad 100644 --- a/data/fonts/AndroidClock.ttf +++ b/data/fonts/AndroidClock.ttf diff --git a/libs/hwui/Caches.cpp b/libs/hwui/Caches.cpp index f0f72f9ef822..e44329404190 100644 --- a/libs/hwui/Caches.cpp +++ b/libs/hwui/Caches.cpp @@ -68,6 +68,7 @@ void Caches::init() { mCurrentBuffer = meshBuffer; mCurrentIndicesBuffer = 0; mCurrentPositionPointer = this; + mCurrentPositionStride = 0; mCurrentTexCoordsPointer = this; mTexCoordsArrayEnabled = false; @@ -86,6 +87,8 @@ void Caches::init() { lastDstMode = GL_ZERO; currentProgram = NULL; + mFunctorsCount = 0; + mInitialized = true; } @@ -340,15 +343,18 @@ bool Caches::unbindIndicesBuffer() { // Meshes and textures /////////////////////////////////////////////////////////////////////////////// -void Caches::bindPositionVertexPointer(bool force, GLuint slot, GLvoid* vertices, GLsizei stride) { - if (force || vertices != mCurrentPositionPointer) { +void Caches::bindPositionVertexPointer(bool force, GLvoid* vertices, GLsizei stride) { + if (force || vertices != mCurrentPositionPointer || stride != mCurrentPositionStride) { + GLuint slot = currentProgram->position; glVertexAttribPointer(slot, 2, GL_FLOAT, GL_FALSE, stride, vertices); mCurrentPositionPointer = vertices; + mCurrentPositionStride = stride; } } -void Caches::bindTexCoordsVertexPointer(bool force, GLuint slot, GLvoid* vertices) { +void Caches::bindTexCoordsVertexPointer(bool force, GLvoid* vertices) { if (force || vertices != mCurrentTexCoordsPointer) { + GLuint slot = currentProgram->texCoords; glVertexAttribPointer(slot, 2, GL_FLOAT, GL_FALSE, gMeshStride, vertices); mCurrentTexCoordsPointer = vertices; } @@ -454,6 +460,22 @@ void Caches::endTiling() { } } +bool Caches::hasRegisteredFunctors() { + return mFunctorsCount > 0; +} + +void Caches::registerFunctors(uint32_t functorCount) { + mFunctorsCount += functorCount; +} + +void Caches::unregisterFunctors(uint32_t functorCount) { + if (functorCount > mFunctorsCount) { + mFunctorsCount = 0; + } else { + mFunctorsCount -= functorCount; + } +} + /////////////////////////////////////////////////////////////////////////////// // Regions /////////////////////////////////////////////////////////////////////////////// diff --git a/libs/hwui/Caches.h b/libs/hwui/Caches.h index 48efd1096aa4..ad1ff6fa56be 100644 --- a/libs/hwui/Caches.h +++ b/libs/hwui/Caches.h @@ -173,14 +173,13 @@ public: * Binds an attrib to the specified float vertex pointer. * Assumes a stride of gMeshStride and a size of 2. */ - void bindPositionVertexPointer(bool force, GLuint slot, GLvoid* vertices, - GLsizei stride = gMeshStride); + void bindPositionVertexPointer(bool force, GLvoid* vertices, GLsizei stride = gMeshStride); /** * Binds an attrib to the specified float vertex pointer. * Assumes a stride of gMeshStride and a size of 2. */ - void bindTexCoordsVertexPointer(bool force, GLuint slot, GLvoid* vertices); + void bindTexCoordsVertexPointer(bool force, GLvoid* vertices); /** * Resets the vertex pointers. @@ -227,6 +226,10 @@ public: void dumpMemoryUsage(); void dumpMemoryUsage(String8& log); + bool hasRegisteredFunctors(); + void registerFunctors(uint32_t functorCount); + void unregisterFunctors(uint32_t functorCount); + bool blend; GLenum lastSrcMode; GLenum lastDstMode; @@ -295,6 +298,7 @@ private: GLuint mCurrentBuffer; GLuint mCurrentIndicesBuffer; void* mCurrentPositionPointer; + GLsizei mCurrentPositionStride; void* mCurrentTexCoordsPointer; bool mTexCoordsArrayEnabled; @@ -316,6 +320,8 @@ private: DebugLevel mDebugLevel; bool mInitialized; + + uint32_t mFunctorsCount; }; // class Caches }; // namespace uirenderer diff --git a/libs/hwui/DisplayListRenderer.cpp b/libs/hwui/DisplayListRenderer.cpp index cc72df64c3c2..6aff8d4aa776 100644 --- a/libs/hwui/DisplayListRenderer.cpp +++ b/libs/hwui/DisplayListRenderer.cpp @@ -157,6 +157,7 @@ void DisplayList::clearResources() { mAnimationMatrix = NULL; Caches& caches = Caches::getInstance(); + caches.unregisterFunctors(mFunctorCount); caches.resourceCache.lock(); for (size_t i = 0; i < mBitmapResources.size(); i++) { @@ -218,6 +219,7 @@ void DisplayList::initFromDisplayListRenderer(const DisplayListRenderer& recorde init(); if (writer.size() == 0) { + mFunctorCount = 0; return; } @@ -232,7 +234,10 @@ void DisplayList::initFromDisplayListRenderer(const DisplayListRenderer& recorde writer.flatten(buffer); mReader.setMemory(buffer, mSize); + mFunctorCount = recorder.getFunctorCount(); + Caches& caches = Caches::getInstance(); + caches.registerFunctors(mFunctorCount); caches.resourceCache.lock(); const Vector<SkBitmap*>& bitmapResources = recorder.getBitmapResources(); @@ -1340,7 +1345,8 @@ status_t DisplayList::replay(OpenGLRenderer& renderer, Rect& dirty, int32_t flag DisplayListRenderer::DisplayListRenderer(): mCaches(Caches::getInstance()), mWriter(MIN_WRITER_SIZE), - mTranslateX(0.0f), mTranslateY(0.0f), mHasTranslate(false), mHasDrawOps(false) { + mTranslateX(0.0f), mTranslateY(0.0f), mHasTranslate(false), + mHasDrawOps(false), mFunctorCount(0) { } DisplayListRenderer::~DisplayListRenderer() { @@ -1397,6 +1403,7 @@ void DisplayListRenderer::reset() { mLayers.clear(); mHasDrawOps = false; + mFunctorCount = 0; } /////////////////////////////////////////////////////////////////////////////// @@ -1453,6 +1460,7 @@ status_t DisplayListRenderer::callDrawGLFunction(Functor *functor, Rect& dirty) // Ignore dirty during recording, it matters only when we replay addOp(DisplayList::DrawGLFunction); addInt((int) functor); + mFunctorCount++; return DrawGlInfo::kStatusDone; // No invalidate needed at record-time } diff --git a/libs/hwui/DisplayListRenderer.h b/libs/hwui/DisplayListRenderer.h index a0b16309c640..39061f4c6c71 100644 --- a/libs/hwui/DisplayListRenderer.h +++ b/libs/hwui/DisplayListRenderer.h @@ -503,6 +503,7 @@ private: size_t mSize; bool mIsRenderable; + uint32_t mFunctorCount; String8 mName; @@ -661,6 +662,10 @@ public: return mMatrices; } + uint32_t getFunctorCount() const { + return mFunctorCount; + } + private: void insertRestoreToCount() { if (mRestoreSaveCount >= 0) { @@ -887,6 +892,8 @@ private: bool mHasTranslate; bool mHasDrawOps; + uint32_t mFunctorCount; + friend class DisplayList; }; // class DisplayListRenderer diff --git a/libs/hwui/FontRenderer.cpp b/libs/hwui/FontRenderer.cpp index cab68f013edf..4e97c8862d7f 100644 --- a/libs/hwui/FontRenderer.cpp +++ b/libs/hwui/FontRenderer.cpp @@ -374,9 +374,8 @@ void FontRenderer::issueDrawCommand() { int offset = 2; bool force = caches.unbindMeshBuffer(); - caches.bindPositionVertexPointer(force, caches.currentProgram->position, buffer); - caches.bindTexCoordsVertexPointer(force, caches.currentProgram->texCoords, - buffer + offset); + caches.bindPositionVertexPointer(force, buffer); + caches.bindTexCoordsVertexPointer(force, buffer + offset); } glDrawElements(GL_TRIANGLES, mCurrentQuadIndex * 6, GL_UNSIGNED_SHORT, NULL); diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp index 87c3a4723b79..684d5e1c4138 100644 --- a/libs/hwui/OpenGLRenderer.cpp +++ b/libs/hwui/OpenGLRenderer.cpp @@ -193,6 +193,11 @@ int OpenGLRenderer::prepareDirty(float left, float top, float right, float botto syncState(); + // Functors break the tiling extension in pretty spectacular ways + // This ensures we don't use tiling when a functor is going to be + // invoked during the frame + mSuppressTiling = mCaches.hasRegisteredFunctors(); + mTilingSnapshot = mSnapshot; startTiling(mTilingSnapshot, true); @@ -221,17 +226,19 @@ void OpenGLRenderer::syncState() { } void OpenGLRenderer::startTiling(const sp<Snapshot>& s, bool opaque) { - Rect* clip = mTilingSnapshot->clipRect; - if (s->flags & Snapshot::kFlagIsFboLayer) { - clip = s->clipRect; - } + if (!mSuppressTiling) { + Rect* clip = mTilingSnapshot->clipRect; + if (s->flags & Snapshot::kFlagIsFboLayer) { + clip = s->clipRect; + } - mCaches.startTiling(clip->left, s->height - clip->bottom, - clip->right - clip->left, clip->bottom - clip->top, opaque); + mCaches.startTiling(clip->left, s->height - clip->bottom, + clip->right - clip->left, clip->bottom - clip->top, opaque); + } } void OpenGLRenderer::endTiling() { - mCaches.endTiling(); + if (!mSuppressTiling) mCaches.endTiling(); } void OpenGLRenderer::finish() { @@ -1248,6 +1255,15 @@ bool OpenGLRenderer::quickRejectNoScissor(float left, float top, float right, fl return !clip.intersects(transformed); } +bool OpenGLRenderer::quickRejectPreStroke(float left, float top, float right, float bottom, SkPaint* paint) { + if (paint->getStyle() != SkPaint::kFill_Style) { + float outset = paint->getStrokeWidth() * 0.5f; + return quickReject(left - outset, top - outset, right + outset, bottom + outset); + } else { + return quickReject(left, top, right, bottom); + } +} + bool OpenGLRenderer::quickReject(float left, float top, float right, float bottom) { if (mSnapshot->isIgnored()) { return true; @@ -1490,7 +1506,7 @@ void OpenGLRenderer::setupDrawTextGammaUniforms() { void OpenGLRenderer::setupDrawSimpleMesh() { bool force = mCaches.bindMeshBuffer(); - mCaches.bindPositionVertexPointer(force, mCaches.currentProgram->position, 0); + mCaches.bindPositionVertexPointer(force, 0); mCaches.unbindIndicesBuffer(); } @@ -1523,9 +1539,9 @@ void OpenGLRenderer::setupDrawMesh(GLvoid* vertices, GLvoid* texCoords, GLuint v force = mCaches.unbindMeshBuffer(); } - mCaches.bindPositionVertexPointer(force, mCaches.currentProgram->position, vertices); + mCaches.bindPositionVertexPointer(force, vertices); if (mCaches.currentProgram->texCoords >= 0) { - mCaches.bindTexCoordsVertexPointer(force, mCaches.currentProgram->texCoords, texCoords); + mCaches.bindTexCoordsVertexPointer(force, texCoords); } mCaches.unbindIndicesBuffer(); @@ -1533,16 +1549,15 @@ void OpenGLRenderer::setupDrawMesh(GLvoid* vertices, GLvoid* texCoords, GLuint v void OpenGLRenderer::setupDrawMeshIndices(GLvoid* vertices, GLvoid* texCoords) { bool force = mCaches.unbindMeshBuffer(); - mCaches.bindPositionVertexPointer(force, mCaches.currentProgram->position, vertices); + mCaches.bindPositionVertexPointer(force, vertices); if (mCaches.currentProgram->texCoords >= 0) { - mCaches.bindTexCoordsVertexPointer(force, mCaches.currentProgram->texCoords, texCoords); + mCaches.bindTexCoordsVertexPointer(force, texCoords); } } void OpenGLRenderer::setupDrawVertices(GLvoid* vertices) { bool force = mCaches.unbindMeshBuffer(); - mCaches.bindPositionVertexPointer(force, mCaches.currentProgram->position, - vertices, gVertexStride); + mCaches.bindPositionVertexPointer(force, vertices, gVertexStride); mCaches.unbindIndicesBuffer(); } @@ -1560,8 +1575,7 @@ void OpenGLRenderer::setupDrawVertices(GLvoid* vertices) { void OpenGLRenderer::setupDrawAALine(GLvoid* vertices, GLvoid* widthCoords, GLvoid* lengthCoords, float boundaryWidthProportion, int& widthSlot, int& lengthSlot) { bool force = mCaches.unbindMeshBuffer(); - mCaches.bindPositionVertexPointer(force, mCaches.currentProgram->position, - vertices, gAAVertexStride); + mCaches.bindPositionVertexPointer(force, vertices, gAAVertexStride); mCaches.resetTexCoordsVertexPointer(); mCaches.unbindIndicesBuffer(); @@ -1919,15 +1933,23 @@ status_t OpenGLRenderer::drawPatch(SkBitmap* bitmap, const int32_t* xDivs, const } /** - * This function uses a similar approach to that of AA lines in the drawLines() function. - * We expand the rectangle by a half pixel in screen space on all sides. However, instead of using - * a fragment shader to compute the translucency of the color from its position, we simply use a - * varying parameter to define how far a given pixel is into the region. + * Renders a convex path via tessellation. For AA paths, this function uses a similar approach to + * that of AA lines in the drawLines() function. We expand the convex path by a half pixel in + * screen space in all directions. However, instead of using a fragment shader to compute the + * translucency of the color from its position, we simply use a varying parameter to define how far + * a given pixel is from the edge. For non-AA paths, the expansion and alpha varying are not used. + * + * Doesn't yet support joins, caps, or path effects. */ -void OpenGLRenderer::drawConvexPath(const SkPath& path, int color, SkXfermode::Mode mode, bool isAA) { +void OpenGLRenderer::drawConvexPath(const SkPath& path, SkPaint* paint) { + int color = paint->getColor(); + SkPaint::Style style = paint->getStyle(); + SkXfermode::Mode mode = getXfermode(paint->getXfermode()); + bool isAA = paint->isAntiAlias(); + VertexBuffer vertexBuffer; // TODO: try clipping large paths to viewport - PathRenderer::convexPathFillVertices(path, mSnapshot->transform, vertexBuffer, isAA); + PathRenderer::convexPathVertices(path, paint, mSnapshot->transform, vertexBuffer); setupDraw(); setupDrawNoTexture(); @@ -1938,15 +1960,14 @@ void OpenGLRenderer::drawConvexPath(const SkPath& path, int color, SkXfermode::M setupDrawShader(); setupDrawBlending(isAA, mode); setupDrawProgram(); - setupDrawModelViewIdentity(true); + setupDrawModelViewIdentity(); setupDrawColorUniforms(); setupDrawColorFilterUniforms(); setupDrawShaderIdentityUniforms(); void* vertices = vertexBuffer.getBuffer(); bool force = mCaches.unbindMeshBuffer(); - mCaches.bindPositionVertexPointer(force, mCaches.currentProgram->position, - vertices, isAA ? gAlphaVertexStride : gVertexStride); + mCaches.bindPositionVertexPointer(true, vertices, isAA ? gAlphaVertexStride : gVertexStride); mCaches.resetTexCoordsVertexPointer(); mCaches.unbindIndicesBuffer(); @@ -1960,7 +1981,7 @@ void OpenGLRenderer::drawConvexPath(const SkPath& path, int color, SkXfermode::M glVertexAttribPointer(alphaSlot, 1, GL_FLOAT, GL_FALSE, gAlphaVertexStride, alphaCoords); } - SkRect bounds = path.getBounds(); + SkRect bounds = PathRenderer::computePathBounds(path, paint); dirtyLayer(bounds.fLeft, bounds.fTop, bounds.fRight, bounds.fBottom, *mSnapshot->transform); glDrawArrays(GL_TRIANGLE_STRIP, 0, vertexBuffer.getSize()); @@ -2050,7 +2071,7 @@ status_t OpenGLRenderer::drawLines(float* points, int count, SkPaint* paint) { setupDrawShader(); setupDrawBlending(isAA, mode); setupDrawProgram(); - setupDrawModelViewIdentity(true); + setupDrawModelViewIdentity(); setupDrawColorUniforms(); setupDrawColorFilterUniforms(); setupDrawShaderIdentityUniforms(); @@ -2330,11 +2351,11 @@ status_t OpenGLRenderer::drawShape(float left, float top, const PathTexture* tex status_t OpenGLRenderer::drawRoundRect(float left, float top, float right, float bottom, float rx, float ry, SkPaint* p) { - if (mSnapshot->isIgnored() || quickReject(left, top, right, bottom)) { + if (mSnapshot->isIgnored() || quickRejectPreStroke(left, top, right, bottom, p)) { return DrawGlInfo::kStatusDone; } - if (p->getStyle() != SkPaint::kFill_Style) { + if (p->getPathEffect() != 0) { mCaches.activeTexture(0); const PathTexture* texture = mCaches.roundRectShapeCache.getRoundRect( right - left, bottom - top, rx, ry, p); @@ -2343,37 +2364,47 @@ status_t OpenGLRenderer::drawRoundRect(float left, float top, float right, float SkPath path; SkRect rect = SkRect::MakeLTRB(left, top, right, bottom); + if (p->getStyle() == SkPaint::kStrokeAndFill_Style) { + float outset = p->getStrokeWidth() / 2; + rect.outset(outset, outset); + rx += outset; + ry += outset; + } path.addRoundRect(rect, rx, ry); - drawConvexPath(path, p->getColor(), getXfermode(p->getXfermode()), p->isAntiAlias()); + drawConvexPath(path, p); return DrawGlInfo::kStatusDrew; } status_t OpenGLRenderer::drawCircle(float x, float y, float radius, SkPaint* p) { - if (mSnapshot->isIgnored() || quickReject(x - radius, y - radius, x + radius, y + radius)) { + if (mSnapshot->isIgnored() || quickRejectPreStroke(x - radius, y - radius, + x + radius, y + radius, p)) { return DrawGlInfo::kStatusDone; } - - if (p->getStyle() != SkPaint::kFill_Style) { + if (p->getPathEffect() != 0) { mCaches.activeTexture(0); const PathTexture* texture = mCaches.circleShapeCache.getCircle(radius, p); return drawShape(x - radius, y - radius, texture, p); } SkPath path; - path.addCircle(x, y, radius); - drawConvexPath(path, p->getColor(), getXfermode(p->getXfermode()), p->isAntiAlias()); + if (p->getStyle() == SkPaint::kStrokeAndFill_Style) { + path.addCircle(x, y, radius + p->getStrokeWidth() / 2); + } else { + path.addCircle(x, y, radius); + } + drawConvexPath(path, p); return DrawGlInfo::kStatusDrew; } status_t OpenGLRenderer::drawOval(float left, float top, float right, float bottom, SkPaint* p) { - if (mSnapshot->isIgnored() || quickReject(left, top, right, bottom)) { + if (mSnapshot->isIgnored() || quickRejectPreStroke(left, top, right, bottom, p)) { return DrawGlInfo::kStatusDone; } - if (p->getStyle() != SkPaint::kFill_Style) { + if (p->getPathEffect() != 0) { mCaches.activeTexture(0); const PathTexture* texture = mCaches.ovalShapeCache.getOval(right - left, bottom - top, p); return drawShape(left, top, texture, p); @@ -2381,8 +2412,11 @@ status_t OpenGLRenderer::drawOval(float left, float top, float right, float bott SkPath path; SkRect rect = SkRect::MakeLTRB(left, top, right, bottom); + if (p->getStyle() == SkPaint::kStrokeAndFill_Style) { + rect.outset(p->getStrokeWidth() / 2, p->getStrokeWidth() / 2); + } path.addOval(rect); - drawConvexPath(path, p->getColor(), getXfermode(p->getXfermode()), p->isAntiAlias()); + drawConvexPath(path, p); return DrawGlInfo::kStatusDrew; } @@ -2402,10 +2436,11 @@ status_t OpenGLRenderer::drawArc(float left, float top, float right, float botto } status_t OpenGLRenderer::drawRect(float left, float top, float right, float bottom, SkPaint* p) { - if (mSnapshot->isIgnored() || quickReject(left, top, right, bottom)) { + if (mSnapshot->isIgnored() || quickRejectPreStroke(left, top, right, bottom, p)) { return DrawGlInfo::kStatusDone; } + // only fill style is supported by drawConvexPath, since others have to handle joins if (p->getStyle() != SkPaint::kFill_Style) { mCaches.activeTexture(0); const PathTexture* texture = mCaches.rectShapeCache.getRect(right - left, bottom - top, p); @@ -2415,7 +2450,7 @@ status_t OpenGLRenderer::drawRect(float left, float top, float right, float bott if (p->isAntiAlias() && !mSnapshot->transform->isSimple()) { SkPath path; path.addRect(left, top, right, bottom); - drawConvexPath(path, p->getColor(), getXfermode(p->getXfermode()), true); + drawConvexPath(path, p); } else { drawColorRect(left, top, right, bottom, p->getColor(), getXfermode(p->getXfermode())); } diff --git a/libs/hwui/OpenGLRenderer.h b/libs/hwui/OpenGLRenderer.h index c29e3fb3f097..a40d69ad2c91 100644 --- a/libs/hwui/OpenGLRenderer.h +++ b/libs/hwui/OpenGLRenderer.h @@ -407,6 +407,11 @@ private: Rect& transformed, Rect& clip); /** + * Performs a quick reject but adjust the bounds to account for stroke width if necessary + */ + bool quickRejectPreStroke(float left, float top, float right, float bottom, SkPaint* paint); + + /** * Creates a new layer stored in the specified snapshot. * * @param snapshot The snapshot associated with the new layer @@ -513,11 +518,9 @@ private: * Renders the convex hull defined by the specified path as a strip of polygons. * * @param path The hull of the path to draw - * @param color The color of the rect - * @param mode The blending mode to draw the path - * @param isAA True if the drawing should be anti-aliased + * @param paint The paint to render with */ - void drawConvexPath(const SkPath& path, int color, SkXfermode::Mode mode, bool isAA); + void drawConvexPath(const SkPath& path, SkPaint* paint); /** * Draws a textured rectangle with the specified texture. The specified coordinates @@ -814,6 +817,9 @@ private: // Properties.h bool mScissorOptimizationDisabled; + // No-ops start/endTiling when set + bool mSuppressTiling; + friend class DisplayListRenderer; }; // class OpenGLRenderer diff --git a/libs/hwui/PathRenderer.cpp b/libs/hwui/PathRenderer.cpp index d222009b6742..4a66c62d92d8 100644 --- a/libs/hwui/PathRenderer.cpp +++ b/libs/hwui/PathRenderer.cpp @@ -21,6 +21,7 @@ #define VERTEX_DEBUG 0 #include <SkPath.h> +#include <SkPaint.h> #include <stdlib.h> #include <stdint.h> @@ -39,10 +40,16 @@ namespace uirenderer { #define THRESHOLD 0.5f -void PathRenderer::computeInverseScales(const mat4 *transform, - float &inverseScaleX, float& inverseScaleY) { - inverseScaleX = 1.0f; - inverseScaleY = 1.0f; +SkRect PathRenderer::computePathBounds(const SkPath& path, const SkPaint* paint) { + SkRect bounds = path.getBounds(); + if (paint->getStyle() != SkPaint::kFill_Style) { + float outset = paint->getStrokeWidth() * 0.5f; + bounds.outset(outset, outset); + } + return bounds; +} + +void computeInverseScales(const mat4 *transform, float &inverseScaleX, float& inverseScaleY) { if (CC_UNLIKELY(!transform->isPureTranslate())) { float m00 = transform->data[Matrix4::kScaleX]; float m01 = transform->data[Matrix4::kSkewY]; @@ -50,127 +57,300 @@ void PathRenderer::computeInverseScales(const mat4 *transform, float m11 = transform->data[Matrix4::kScaleY]; float scaleX = sqrt(m00 * m00 + m01 * m01); float scaleY = sqrt(m10 * m10 + m11 * m11); - inverseScaleX = (scaleX != 0) ? (inverseScaleX / scaleX) : 0; - inverseScaleY = (scaleY != 0) ? (inverseScaleY / scaleY) : 0; + inverseScaleX = (scaleX != 0) ? (1.0f / scaleX) : 1.0f; + inverseScaleY = (scaleY != 0) ? (1.0f / scaleY) : 1.0f; + } else { + inverseScaleX = 1.0f; + inverseScaleY = 1.0f; } } -void PathRenderer::convexPathFillVertices(const SkPath &path, const mat4 *transform, - VertexBuffer &vertexBuffer, bool isAA) { - ATRACE_CALL(); - float inverseScaleX; - float inverseScaleY; - computeInverseScales(transform, inverseScaleX, inverseScaleY); +inline void copyVertex(Vertex* destPtr, const Vertex* srcPtr) { + Vertex::set(destPtr, srcPtr->position[0], srcPtr->position[1]); +} - Vector<Vertex> tempVertices; - float thresholdx = THRESHOLD * inverseScaleX; - float thresholdy = THRESHOLD * inverseScaleY; - convexPathVertices(path, - thresholdx * thresholdx, - thresholdy * thresholdy, - tempVertices); +inline void copyAlphaVertex(AlphaVertex* destPtr, const AlphaVertex* srcPtr) { + AlphaVertex::set(destPtr, srcPtr->position[0], srcPtr->position[1], srcPtr->alpha); +} -#if VERTEX_DEBUG - for (unsigned int i = 0; i < tempVertices.size(); i++) { - ALOGD("orig path: point at %f %f", - tempVertices[i].position[0], - tempVertices[i].position[1]); +/** + * Produces a pseudo-normal for a vertex, given the normals of the two incoming lines. If the offset + * from each vertex in a perimeter is calculated, the resultant lines connecting the offset vertices + * will be offset by 1.0 + * + * Note that we can't add and normalize the two vectors, that would result in a rectangle having an + * offset of (sqrt(2)/2, sqrt(2)/2) at each corner, instead of (1, 1) + */ +inline vec2 totalOffsetFromNormals(const vec2& normalA, const vec2& normalB) { + return (normalA + normalB) / (1 + fabs(normalA.dot(normalB))); +} + +void getFillVerticesFromPerimeter(const Vector<Vertex>& perimeter, VertexBuffer& vertexBuffer) { + Vertex* buffer = vertexBuffer.alloc<Vertex>(perimeter.size()); + + int currentIndex = 0; + // zig zag between all previous points on the inside of the hull to create a + // triangle strip that fills the hull + int srcAindex = 0; + int srcBindex = perimeter.size() - 1; + while (srcAindex <= srcBindex) { + copyVertex(&buffer[currentIndex++], &perimeter[srcAindex]); + if (srcAindex == srcBindex) break; + copyVertex(&buffer[currentIndex++], &perimeter[srcBindex]); + srcAindex++; + srcBindex--; } -#endif +} + +void getStrokeVerticesFromPerimeter(const Vector<Vertex>& perimeter, float halfStrokeWidth, + VertexBuffer& vertexBuffer, float inverseScaleX, float inverseScaleY) { + Vertex* buffer = vertexBuffer.alloc<Vertex>(perimeter.size() * 2 + 2); + int currentIndex = 0; - if (!isAA) { - Vertex* buffer = vertexBuffer.alloc<Vertex>(tempVertices.size()); - - // zig zag between all previous points on the inside of the hull to create a - // triangle strip that fills the hull - int srcAindex = 0; - int srcBindex = tempVertices.size() - 1; - while (srcAindex <= srcBindex) { - Vertex::set(&buffer[currentIndex++], - tempVertices.editArray()[srcAindex].position[0], - tempVertices.editArray()[srcAindex].position[1]); - if (srcAindex == srcBindex) break; - Vertex::set(&buffer[currentIndex++], - tempVertices.editArray()[srcBindex].position[0], - tempVertices.editArray()[srcBindex].position[1]); - srcAindex++; - srcBindex--; + const Vertex* last = &(perimeter[perimeter.size() - 1]); + const Vertex* current = &(perimeter[0]); + vec2 lastNormal(current->position[1] - last->position[1], + last->position[0] - current->position[0]); + lastNormal.normalize(); + for (unsigned int i = 0; i < perimeter.size(); i++) { + const Vertex* next = &(perimeter[i + 1 >= perimeter.size() ? 0 : i + 1]); + vec2 nextNormal(next->position[1] - current->position[1], + current->position[0] - next->position[0]); + nextNormal.normalize(); + + vec2 totalOffset = totalOffsetFromNormals(lastNormal, nextNormal); + if (halfStrokeWidth == 0.0f) { + // hairline - compensate for scale + totalOffset.x *= 0.5f * inverseScaleX; + totalOffset.y *= 0.5f * inverseScaleY; + } else { + totalOffset *= halfStrokeWidth; } - return; + + Vertex::set(&buffer[currentIndex++], + current->position[0] + totalOffset.x, + current->position[1] + totalOffset.y); + + Vertex::set(&buffer[currentIndex++], + current->position[0] - totalOffset.x, + current->position[1] - totalOffset.y); + + last = current; + current = next; + lastNormal = nextNormal; } - AlphaVertex* buffer = vertexBuffer.alloc<AlphaVertex>(tempVertices.size() * 3 + 2); - // generate alpha points - fill Alpha vertex gaps in between each point with - // alpha 0 vertex, offset by a scaled normal. - Vertex* last = &(tempVertices.editArray()[tempVertices.size()-1]); + // wrap around to beginning + copyVertex(&buffer[currentIndex++], &buffer[0]); + copyVertex(&buffer[currentIndex++], &buffer[1]); +} - for (unsigned int i = 0; i<tempVertices.size(); i++) { - Vertex* current = &(tempVertices.editArray()[i]); - Vertex* next = &(tempVertices.editArray()[i + 1 >= tempVertices.size() ? 0 : i + 1]); +void getFillVerticesFromPerimeterAA(const Vector<Vertex>& perimeter, VertexBuffer& vertexBuffer, + float inverseScaleX, float inverseScaleY) { + AlphaVertex* buffer = vertexBuffer.alloc<AlphaVertex>(perimeter.size() * 3 + 2); - vec2 lastNormal(current->position[1] - last->position[1], - last->position[0] - current->position[0]); - lastNormal.normalize(); + // generate alpha points - fill Alpha vertex gaps in between each point with + // alpha 0 vertex, offset by a scaled normal. + int currentIndex = 0; + const Vertex* last = &(perimeter[perimeter.size() - 1]); + const Vertex* current = &(perimeter[0]); + vec2 lastNormal(current->position[1] - last->position[1], + last->position[0] - current->position[0]); + lastNormal.normalize(); + for (unsigned int i = 0; i < perimeter.size(); i++) { + const Vertex* next = &(perimeter[i + 1 >= perimeter.size() ? 0 : i + 1]); vec2 nextNormal(next->position[1] - current->position[1], - current->position[0] - next->position[0]); + current->position[0] - next->position[0]); nextNormal.normalize(); - // AA point offset from original point is that point's normal, such that - // each side is offset by .5 pixels - vec2 totalOffset = (lastNormal + nextNormal) / (2 * (1 + lastNormal.dot(nextNormal))); - totalOffset.x *= inverseScaleX; - totalOffset.y *= inverseScaleY; + // AA point offset from original point is that point's normal, such that each side is offset + // by .5 pixels + vec2 totalOffset = totalOffsetFromNormals(lastNormal, nextNormal); + totalOffset.x *= 0.5f * inverseScaleX; + totalOffset.y *= 0.5f * inverseScaleY; AlphaVertex::set(&buffer[currentIndex++], - current->position[0] + totalOffset.x, - current->position[1] + totalOffset.y, - 0.0f); + current->position[0] + totalOffset.x, + current->position[1] + totalOffset.y, + 0.0f); AlphaVertex::set(&buffer[currentIndex++], - current->position[0] - totalOffset.x, - current->position[1] - totalOffset.y, - 1.0f); + current->position[0] - totalOffset.x, + current->position[1] - totalOffset.y, + 1.0f); + last = current; + current = next; + lastNormal = nextNormal; } // wrap around to beginning - AlphaVertex::set(&buffer[currentIndex++], - buffer[0].position[0], - buffer[0].position[1], 0.0f); - AlphaVertex::set(&buffer[currentIndex++], - buffer[1].position[0], - buffer[1].position[1], 1.0f); + copyAlphaVertex(&buffer[currentIndex++], &buffer[0]); + copyAlphaVertex(&buffer[currentIndex++], &buffer[1]); // zig zag between all previous points on the inside of the hull to create a // triangle strip that fills the hull, repeating the first inner point to // create degenerate tris to start inside path int srcAindex = 0; - int srcBindex = tempVertices.size() - 1; + int srcBindex = perimeter.size() - 1; while (srcAindex <= srcBindex) { - AlphaVertex::set(&buffer[currentIndex++], - buffer[srcAindex * 2 + 1].position[0], - buffer[srcAindex * 2 + 1].position[1], - 1.0f); + copyAlphaVertex(&buffer[currentIndex++], &buffer[srcAindex * 2 + 1]); if (srcAindex == srcBindex) break; - AlphaVertex::set(&buffer[currentIndex++], - buffer[srcBindex * 2 + 1].position[0], - buffer[srcBindex * 2 + 1].position[1], - 1.0f); + copyAlphaVertex(&buffer[currentIndex++], &buffer[srcBindex * 2 + 1]); srcAindex++; srcBindex--; } #if VERTEX_DEBUG - for (unsigned int i = 0; i < vertexBuffer.mSize; i++) { - ALOGD("point at %f %f", - buffer[i].position[0], - buffer[i].position[1]); + for (unsigned int i = 0; i < vertexBuffer.getSize(); i++) { + ALOGD("point at %f %f", buffer[i].position[0], buffer[i].position[1]); } #endif } +void getStrokeVerticesFromPerimeterAA(const Vector<Vertex>& perimeter, float halfStrokeWidth, + VertexBuffer& vertexBuffer, float inverseScaleX, float inverseScaleY) { + AlphaVertex* buffer = vertexBuffer.alloc<AlphaVertex>(6 * perimeter.size() + 8); + + // avoid lines smaller than hairline since they break triangle based sampling. instead reducing + // alpha value (TODO: support different X/Y scale) + float maxAlpha = 1.0f; + if (halfStrokeWidth != 0 && inverseScaleX == inverseScaleY && + halfStrokeWidth * inverseScaleX < 1.0f) { + maxAlpha *= (2 * halfStrokeWidth) / inverseScaleX; + halfStrokeWidth = 0.0f; + } + + int offset = 2 * perimeter.size() + 3; + int currentAAOuterIndex = 0; + int currentStrokeIndex = offset; + int currentAAInnerIndex = offset * 2; + + const Vertex* last = &(perimeter[perimeter.size() - 1]); + const Vertex* current = &(perimeter[0]); + vec2 lastNormal(current->position[1] - last->position[1], + last->position[0] - current->position[0]); + lastNormal.normalize(); + for (unsigned int i = 0; i < perimeter.size(); i++) { + const Vertex* next = &(perimeter[i + 1 >= perimeter.size() ? 0 : i + 1]); + vec2 nextNormal(next->position[1] - current->position[1], + current->position[0] - next->position[0]); + nextNormal.normalize(); + + vec2 totalOffset = totalOffsetFromNormals(lastNormal, nextNormal); + vec2 AAOffset = totalOffset; + AAOffset.x *= 0.5f * inverseScaleX; + AAOffset.y *= 0.5f * inverseScaleY; + + vec2 innerOffset = totalOffset; + if (halfStrokeWidth == 0.0f) { + // hairline! - compensate for scale + innerOffset.x *= 0.5f * inverseScaleX; + innerOffset.y *= 0.5f * inverseScaleY; + } else { + innerOffset *= halfStrokeWidth; + } + vec2 outerOffset = innerOffset + AAOffset; + innerOffset -= AAOffset; + + AlphaVertex::set(&buffer[currentAAOuterIndex++], + current->position[0] + outerOffset.x, + current->position[1] + outerOffset.y, + 0.0f); + AlphaVertex::set(&buffer[currentAAOuterIndex++], + current->position[0] + innerOffset.x, + current->position[1] + innerOffset.y, + maxAlpha); + + AlphaVertex::set(&buffer[currentStrokeIndex++], + current->position[0] + innerOffset.x, + current->position[1] + innerOffset.y, + maxAlpha); + AlphaVertex::set(&buffer[currentStrokeIndex++], + current->position[0] - innerOffset.x, + current->position[1] - innerOffset.y, + maxAlpha); + + AlphaVertex::set(&buffer[currentAAInnerIndex++], + current->position[0] - innerOffset.x, + current->position[1] - innerOffset.y, + maxAlpha); + AlphaVertex::set(&buffer[currentAAInnerIndex++], + current->position[0] - outerOffset.x, + current->position[1] - outerOffset.y, + 0.0f); + + last = current; + current = next; + lastNormal = nextNormal; + } + + // wrap each strip around to beginning, creating degenerate tris to bridge strips + copyAlphaVertex(&buffer[currentAAOuterIndex++], &buffer[0]); + copyAlphaVertex(&buffer[currentAAOuterIndex++], &buffer[1]); + copyAlphaVertex(&buffer[currentAAOuterIndex++], &buffer[1]); + + copyAlphaVertex(&buffer[currentStrokeIndex++], &buffer[offset]); + copyAlphaVertex(&buffer[currentStrokeIndex++], &buffer[offset + 1]); + copyAlphaVertex(&buffer[currentStrokeIndex++], &buffer[offset + 1]); -void PathRenderer::convexPathVertices(const SkPath &path, float thresholdx, float thresholdy, - Vector<Vertex> &outputVertices) { + copyAlphaVertex(&buffer[currentAAInnerIndex++], &buffer[2 * offset]); + copyAlphaVertex(&buffer[currentAAInnerIndex++], &buffer[2 * offset + 1]); + // don't need to create last degenerate tri +} + +void PathRenderer::convexPathVertices(const SkPath &path, const SkPaint* paint, + const mat4 *transform, VertexBuffer& vertexBuffer) { + ATRACE_CALL(); + + SkPaint::Style style = paint->getStyle(); + bool isAA = paint->isAntiAlias(); + + float inverseScaleX, inverseScaleY; + computeInverseScales(transform, inverseScaleX, inverseScaleY); + + Vector<Vertex> tempVertices; + float threshInvScaleX = inverseScaleX; + float threshInvScaleY = inverseScaleY; + if (style == SkPaint::kStroke_Style) { + // alter the bezier recursion threshold values we calculate in order to compensate for + // expansion done after the path vertices are found + SkRect bounds = path.getBounds(); + if (!bounds.isEmpty()) { + threshInvScaleX *= bounds.width() / (bounds.width() + paint->getStrokeWidth()); + threshInvScaleY *= bounds.height() / (bounds.height() + paint->getStrokeWidth()); + } + } + convexPathPerimeterVertices(path, threshInvScaleX * threshInvScaleX, + threshInvScaleY * threshInvScaleY, tempVertices); + +#if VERTEX_DEBUG + for (unsigned int i = 0; i < tempVertices.size(); i++) { + ALOGD("orig path: point at %f %f", tempVertices[i].position[0], tempVertices[i].position[1]); + } +#endif + + if (style == SkPaint::kStroke_Style) { + float halfStrokeWidth = paint->getStrokeWidth() * 0.5f; + if (!isAA) { + getStrokeVerticesFromPerimeter(tempVertices, halfStrokeWidth, vertexBuffer, + inverseScaleX, inverseScaleY); + } else { + getStrokeVerticesFromPerimeterAA(tempVertices, halfStrokeWidth, vertexBuffer, + inverseScaleX, inverseScaleY); + } + } else { + // For kStrokeAndFill style, the path should be adjusted externally, as it will be treated as a fill here. + if (!isAA) { + getFillVerticesFromPerimeter(tempVertices, vertexBuffer); + } else { + getFillVerticesFromPerimeterAA(tempVertices, vertexBuffer, inverseScaleX, inverseScaleY); + } + } +} + + +void PathRenderer::convexPathPerimeterVertices(const SkPath& path, + float sqrInvScaleX, float sqrInvScaleY, Vector<Vertex>& outputVertices) { ATRACE_CALL(); SkPath::Iter iter(path, true); @@ -189,31 +369,30 @@ void PathRenderer::convexPathVertices(const SkPath &path, float thresholdx, floa break; case SkPath::kLine_Verb: ALOGV("kLine_Verb %f %f -> %f %f", - pts[0].x(), pts[0].y(), - pts[1].x(), pts[1].y()); + pts[0].x(), pts[0].y(), + pts[1].x(), pts[1].y()); // TODO: make this not yuck outputVertices.push(); - newVertex = &(outputVertices.editArray()[outputVertices.size()-1]); + newVertex = &(outputVertices.editArray()[outputVertices.size() - 1]); Vertex::set(newVertex, pts[1].x(), pts[1].y()); break; case SkPath::kQuad_Verb: ALOGV("kQuad_Verb"); recursiveQuadraticBezierVertices( - pts[0].x(), pts[0].y(), - pts[2].x(), pts[2].y(), - pts[1].x(), pts[1].y(), - thresholdx, thresholdy, - outputVertices); + pts[0].x(), pts[0].y(), + pts[2].x(), pts[2].y(), + pts[1].x(), pts[1].y(), + sqrInvScaleX, sqrInvScaleY, outputVertices); break; case SkPath::kCubic_Verb: ALOGV("kCubic_Verb"); recursiveCubicBezierVertices( - pts[0].x(), pts[0].y(), - pts[1].x(), pts[1].y(), - pts[3].x(), pts[3].y(), - pts[2].x(), pts[2].y(), - thresholdx, thresholdy, outputVertices); + pts[0].x(), pts[0].y(), + pts[1].x(), pts[1].y(), + pts[3].x(), pts[3].y(), + pts[2].x(), pts[2].y(), + sqrInvScaleX, sqrInvScaleY, outputVertices); break; default: break; @@ -224,18 +403,20 @@ void PathRenderer::convexPathVertices(const SkPath &path, float thresholdx, floa void PathRenderer::recursiveCubicBezierVertices( float p1x, float p1y, float c1x, float c1y, float p2x, float p2y, float c2x, float c2y, - float thresholdx, float thresholdy, Vector<Vertex> &outputVertices) { + float sqrInvScaleX, float sqrInvScaleY, Vector<Vertex>& outputVertices) { float dx = p2x - p1x; float dy = p2y - p1y; float d1 = fabs((c1x - p2x) * dy - (c1y - p2y) * dx); float d2 = fabs((c2x - p2x) * dy - (c2y - p2y) * dx); float d = d1 + d2; - if (d * d < (thresholdx * (dx * dx) + thresholdy * (dy * dy))) { + // multiplying by sqrInvScaleY/X equivalent to multiplying in dimensional scale factors + + if (d * d < THRESHOLD * THRESHOLD * (dx * dx * sqrInvScaleY + dy * dy * sqrInvScaleX)) { // below thresh, draw line by adding endpoint // TODO: make this not yuck outputVertices.push(); - Vertex* newVertex = &(outputVertices.editArray()[outputVertices.size()-1]); + Vertex* newVertex = &(outputVertices.editArray()[outputVertices.size() - 1]); Vertex::set(newVertex, p2x, p2y); } else { float p1c1x = (p1x + c1x) * 0.5f; @@ -258,13 +439,11 @@ void PathRenderer::recursiveCubicBezierVertices( recursiveCubicBezierVertices( p1x, p1y, p1c1x, p1c1y, mx, my, p1c1c2x, p1c1c2y, - thresholdx, thresholdy, - outputVertices); + sqrInvScaleX, sqrInvScaleY, outputVertices); recursiveCubicBezierVertices( mx, my, p2c1c2x, p2c1c2y, p2x, p2y, p2c2x, p2c2y, - thresholdx, thresholdy, - outputVertices); + sqrInvScaleX, sqrInvScaleY, outputVertices); } } @@ -272,16 +451,16 @@ void PathRenderer::recursiveQuadraticBezierVertices( float ax, float ay, float bx, float by, float cx, float cy, - float thresholdx, float thresholdy, Vector<Vertex> &outputVertices) { + float sqrInvScaleX, float sqrInvScaleY, Vector<Vertex>& outputVertices) { float dx = bx - ax; float dy = by - ay; float d = (cx - bx) * dy - (cy - by) * dx; - if (d * d < (thresholdx * (dx * dx) + thresholdy * (dy * dy))) { + if (d * d < THRESHOLD * THRESHOLD * (dx * dx * sqrInvScaleY + dy * dy * sqrInvScaleX)) { // below thresh, draw line by adding endpoint // TODO: make this not yuck outputVertices.push(); - Vertex* newVertex = &(outputVertices.editArray()[outputVertices.size()-1]); + Vertex* newVertex = &(outputVertices.editArray()[outputVertices.size() - 1]); Vertex::set(newVertex, bx, by); } else { float acx = (ax + cx) * 0.5f; @@ -294,9 +473,9 @@ void PathRenderer::recursiveQuadraticBezierVertices( float my = (acy + bcy) * 0.5f; recursiveQuadraticBezierVertices(ax, ay, mx, my, acx, acy, - thresholdx, thresholdy, outputVertices); + sqrInvScaleX, sqrInvScaleY, outputVertices); recursiveQuadraticBezierVertices(mx, my, bx, by, bcx, bcy, - thresholdx, thresholdy, outputVertices); + sqrInvScaleX, sqrInvScaleY, outputVertices); } } diff --git a/libs/hwui/PathRenderer.h b/libs/hwui/PathRenderer.h index 1354f161c74c..28a5b9031edb 100644 --- a/libs/hwui/PathRenderer.h +++ b/libs/hwui/PathRenderer.h @@ -35,15 +35,13 @@ public: mCleanupMethod(0) {} - ~VertexBuffer() - { + ~VertexBuffer() { if (mCleanupMethod) mCleanupMethod(mBuffer); } template <class TYPE> - TYPE* alloc(int size) - { + TYPE* alloc(int size) { mSize = size; mBuffer = (void*)new TYPE[size]; mCleanupMethod = &(cleanup<TYPE>); @@ -56,8 +54,7 @@ public: private: template <class TYPE> - static void cleanup(void* buffer) - { + static void cleanup(void* buffer) { delete[] (TYPE*)buffer; } @@ -68,17 +65,15 @@ private: class PathRenderer { public: - static void computeInverseScales( - const mat4 *transform, float &inverseScaleX, float& inverseScaleY); + static SkRect computePathBounds(const SkPath& path, const SkPaint* paint); - static void convexPathFillVertices( - const SkPath &path, const mat4 *transform, - VertexBuffer &vertexBuffer, bool isAA); + static void convexPathVertices(const SkPath& path, const SkPaint* paint, + const mat4 *transform, VertexBuffer& vertexBuffer); private: - static void convexPathVertices( + static void convexPathPerimeterVertices( const SkPath &path, - float thresholdx, float thresholdy, + float sqrInvScaleX, float sqrInvScaleY, Vector<Vertex> &outputVertices); /* @@ -86,23 +81,23 @@ private: control c */ static void recursiveQuadraticBezierVertices( - float ax, float ay, - float bx, float by, - float cx, float cy, - float thresholdx, float thresholdy, - Vector<Vertex> &outputVertices); + float ax, float ay, + float bx, float by, + float cx, float cy, + float sqrInvScaleX, float sqrInvScaleY, + Vector<Vertex> &outputVertices); /* endpoints p1, p2 control c1, c2 */ static void recursiveCubicBezierVertices( - float p1x, float p1y, - float c1x, float c1y, - float p2x, float p2y, - float c2x, float c2y, - float thresholdx, float thresholdy, - Vector<Vertex> &outputVertices); + float p1x, float p1y, + float c1x, float c1y, + float p2x, float p2y, + float c2x, float c2y, + float sqrInvScaleX, float sqrInvScaleY, + Vector<Vertex> &outputVertices); }; }; // namespace uirenderer diff --git a/libs/hwui/SkiaColorFilter.cpp b/libs/hwui/SkiaColorFilter.cpp index f754388f0093..df918beb53ef 100644 --- a/libs/hwui/SkiaColorFilter.cpp +++ b/libs/hwui/SkiaColorFilter.cpp @@ -36,6 +36,12 @@ SkiaColorFilter::~SkiaColorFilter() { SkiaColorMatrixFilter::SkiaColorMatrixFilter(SkColorFilter* skFilter, float* matrix, float* vector): SkiaColorFilter(skFilter, kColorMatrix, true), mMatrix(matrix), mVector(vector) { + // Skia uses the range [0..255] for the addition vector, but we need + // the [0..1] range to apply the vector in GLSL + for (int i = 0; i < 4; i++) { + mVector[i] /= 255.0f; + } + // TODO: We should be smarter about this mBlend = true; } diff --git a/packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java b/packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java index 24a9d71df9c5..76b1ec6195de 100644 --- a/packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java +++ b/packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java @@ -672,9 +672,9 @@ public class DefaultContainerService extends IntentService { } // Pick user preference - int installPreference = Settings.System.getInt(getApplicationContext() + int installPreference = Settings.Global.getInt(getApplicationContext() .getContentResolver(), - Settings.Secure.DEFAULT_INSTALL_LOCATION, + Settings.Global.DEFAULT_INSTALL_LOCATION, PackageHelper.APP_INSTALL_AUTO); if (installPreference == PackageHelper.APP_INSTALL_INTERNAL) { prefer = PREFER_INTERNAL; diff --git a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java index dc4213e65a31..c8ce3cd13a34 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java @@ -34,6 +34,7 @@ import android.os.Environment; import android.os.SystemProperties; import android.os.UserHandle; import android.provider.Settings; +import android.provider.Settings.Global; import android.provider.Settings.Secure; import android.telephony.TelephonyManager; import android.text.TextUtils; @@ -67,7 +68,7 @@ public class DatabaseHelper extends SQLiteOpenHelper { // database gets upgraded properly. At a minimum, please confirm that 'upgradeVersion' // is properly propagated through your change. Not doing so will result in a loss of user // settings. - private static final int DATABASE_VERSION = 88; + private static final int DATABASE_VERSION = 89; private Context mContext; private int mUserHandle; @@ -721,8 +722,8 @@ public class DatabaseHelper extends SQLiteOpenHelper { if (upgradeVersion == 55) { /* Move the install location settings. */ String[] settingsToMove = { - Secure.SET_INSTALL_LOCATION, - Secure.DEFAULT_INSTALL_LOCATION + Global.SET_INSTALL_LOCATION, + Global.DEFAULT_INSTALL_LOCATION }; moveSettingsToNewTable(db, TABLE_SYSTEM, TABLE_SECURE, settingsToMove, false); db.beginTransaction(); @@ -730,8 +731,8 @@ public class DatabaseHelper extends SQLiteOpenHelper { try { stmt = db.compileStatement("INSERT INTO system(name,value)" + " VALUES(?,?);"); - loadSetting(stmt, Secure.SET_INSTALL_LOCATION, 0); - loadSetting(stmt, Secure.DEFAULT_INSTALL_LOCATION, + loadSetting(stmt, Global.SET_INSTALL_LOCATION, 0); + loadSetting(stmt, Global.DEFAULT_INSTALL_LOCATION, PackageHelper.APP_INSTALL_AUTO); db.setTransactionSuccessful(); } finally { @@ -1333,6 +1334,52 @@ public class DatabaseHelper extends SQLiteOpenHelper { upgradeVersion = 88; } + if (upgradeVersion == 88) { + if (mUserHandle == UserHandle.USER_OWNER) { + db.beginTransaction(); + try { + String[] settingsToMove = { + Settings.Global.BATTERY_DISCHARGE_DURATION_THRESHOLD, + Settings.Global.BATTERY_DISCHARGE_THRESHOLD, + Settings.Global.SEND_ACTION_APP_ERROR, + Settings.Global.DROPBOX_AGE_SECONDS, + Settings.Global.DROPBOX_MAX_FILES, + Settings.Global.DROPBOX_QUOTA_KB, + Settings.Global.DROPBOX_QUOTA_PERCENT, + Settings.Global.DROPBOX_RESERVE_PERCENT, + Settings.Global.DROPBOX_TAG_PREFIX, + Settings.Global.ERROR_LOGCAT_PREFIX, + Settings.Global.SYS_FREE_STORAGE_LOG_INTERVAL, + Settings.Global.DISK_FREE_CHANGE_REPORTING_THRESHOLD, + Settings.Global.SYS_STORAGE_THRESHOLD_PERCENTAGE, + Settings.Global.SYS_STORAGE_THRESHOLD_MAX_BYTES, + Settings.Global.SYS_STORAGE_FULL_THRESHOLD_BYTES, + Settings.Global.SYNC_MAX_RETRY_DELAY_IN_SECONDS, + Settings.Global.CONNECTIVITY_CHANGE_DELAY, + Settings.Global.CAPTIVE_PORTAL_DETECTION_ENABLED, + Settings.Global.CAPTIVE_PORTAL_SERVER, + Settings.Global.NSD_ON, + Settings.Global.SET_INSTALL_LOCATION, + Settings.Global.DEFAULT_INSTALL_LOCATION, + Settings.Global.INET_CONDITION_DEBOUNCE_UP_DELAY, + Settings.Global.INET_CONDITION_DEBOUNCE_DOWN_DELAY, + Settings.Global.READ_EXTERNAL_STORAGE_ENFORCED_DEFAULT, + Settings.Global.HTTP_PROXY, + Settings.Global.GLOBAL_HTTP_PROXY_HOST, + Settings.Global.GLOBAL_HTTP_PROXY_PORT, + Settings.Global.GLOBAL_HTTP_PROXY_EXCLUSION_LIST, + Settings.Global.SET_GLOBAL_HTTP_PROXY, + Settings.Global.DEFAULT_DNS_SERVER, + }; + moveSettingsToNewTable(db, TABLE_SECURE, TABLE_GLOBAL, settingsToMove, true); + db.setTransactionSuccessful(); + } finally { + db.endTransaction(); + } + } + upgradeVersion = 89; + } + // *** Remember to update DATABASE_VERSION above! if (upgradeVersion != currentVersion) { @@ -1741,8 +1788,8 @@ public class DatabaseHelper extends SQLiteOpenHelper { loadBooleanSetting(stmt, Settings.System.NOTIFICATION_LIGHT_PULSE, R.bool.def_notification_pulse); - loadSetting(stmt, Settings.Secure.SET_INSTALL_LOCATION, 0); - loadSetting(stmt, Settings.Secure.DEFAULT_INSTALL_LOCATION, + loadSetting(stmt, Settings.Global.SET_INSTALL_LOCATION, 0); + loadSetting(stmt, Settings.Global.DEFAULT_INSTALL_LOCATION, PackageHelper.APP_INSTALL_AUTO); loadUISoundEffectsSettings(stmt); diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java index 2c0bf75d5f77..10f96ccbfda0 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java @@ -186,10 +186,8 @@ public class SettingsProvider extends ContentProvider { sSecureGlobalKeys.add(Settings.Global.WIFI_SAVED_STATE); sSecureGlobalKeys.add(Settings.Global.WIFI_SUPPLICANT_SCAN_INTERVAL_MS); sSecureGlobalKeys.add(Settings.Global.WIFI_SUSPEND_OPTIMIZATIONS_ENABLED); - sSecureGlobalKeys.add(Settings.Global.WIFI_WATCHDOG_NUM_ARP_PINGS); sSecureGlobalKeys.add(Settings.Global.WIFI_WATCHDOG_ON); sSecureGlobalKeys.add(Settings.Global.WIFI_WATCHDOG_POOR_NETWORK_TEST_ENABLED); - sSecureGlobalKeys.add(Settings.Global.WIFI_WATCHDOG_RSSI_FETCH_INTERVAL_MS); sSecureGlobalKeys.add(Settings.Global.WIMAX_NETWORKS_AVAILABLE_NOTIFICATION_ON); sSecureGlobalKeys.add(Settings.Global.PACKAGE_VERIFIER_ENABLE); sSecureGlobalKeys.add(Settings.Global.PACKAGE_VERIFIER_TIMEOUT); @@ -198,27 +196,59 @@ public class SettingsProvider extends ContentProvider { sSecureGlobalKeys.add(Settings.Global.DATA_STALL_ALARM_AGGRESSIVE_DELAY_IN_MS); sSecureGlobalKeys.add(Settings.Global.GPRS_REGISTER_CHECK_PERIOD_MS); sSecureGlobalKeys.add(Settings.Global.WTF_IS_FATAL); + sSecureGlobalKeys.add(Settings.Global.BATTERY_DISCHARGE_DURATION_THRESHOLD); + sSecureGlobalKeys.add(Settings.Global.BATTERY_DISCHARGE_THRESHOLD); + sSecureGlobalKeys.add(Settings.Global.SEND_ACTION_APP_ERROR); + sSecureGlobalKeys.add(Settings.Global.DROPBOX_AGE_SECONDS); + sSecureGlobalKeys.add(Settings.Global.DROPBOX_MAX_FILES); + sSecureGlobalKeys.add(Settings.Global.DROPBOX_QUOTA_KB); + sSecureGlobalKeys.add(Settings.Global.DROPBOX_QUOTA_PERCENT); + sSecureGlobalKeys.add(Settings.Global.DROPBOX_RESERVE_PERCENT); + sSecureGlobalKeys.add(Settings.Global.DROPBOX_TAG_PREFIX); + sSecureGlobalKeys.add(Settings.Global.ERROR_LOGCAT_PREFIX); + sSecureGlobalKeys.add(Settings.Global.SYS_FREE_STORAGE_LOG_INTERVAL); + sSecureGlobalKeys.add(Settings.Global.DISK_FREE_CHANGE_REPORTING_THRESHOLD); + sSecureGlobalKeys.add(Settings.Global.SYS_STORAGE_THRESHOLD_PERCENTAGE); + sSecureGlobalKeys.add(Settings.Global.SYS_STORAGE_THRESHOLD_MAX_BYTES); + sSecureGlobalKeys.add(Settings.Global.SYS_STORAGE_FULL_THRESHOLD_BYTES); + sSecureGlobalKeys.add(Settings.Global.SYNC_MAX_RETRY_DELAY_IN_SECONDS); + sSecureGlobalKeys.add(Settings.Global.CONNECTIVITY_CHANGE_DELAY); + sSecureGlobalKeys.add(Settings.Global.CAPTIVE_PORTAL_DETECTION_ENABLED); + sSecureGlobalKeys.add(Settings.Global.CAPTIVE_PORTAL_SERVER); + sSecureGlobalKeys.add(Settings.Global.NSD_ON); + sSecureGlobalKeys.add(Settings.Global.SET_INSTALL_LOCATION); + sSecureGlobalKeys.add(Settings.Global.DEFAULT_INSTALL_LOCATION); + sSecureGlobalKeys.add(Settings.Global.INET_CONDITION_DEBOUNCE_UP_DELAY); + sSecureGlobalKeys.add(Settings.Global.INET_CONDITION_DEBOUNCE_DOWN_DELAY); + sSecureGlobalKeys.add(Settings.Global.READ_EXTERNAL_STORAGE_ENFORCED_DEFAULT); + sSecureGlobalKeys.add(Settings.Global.HTTP_PROXY); + sSecureGlobalKeys.add(Settings.Global.GLOBAL_HTTP_PROXY_HOST); + sSecureGlobalKeys.add(Settings.Global.GLOBAL_HTTP_PROXY_PORT); + sSecureGlobalKeys.add(Settings.Global.GLOBAL_HTTP_PROXY_EXCLUSION_LIST); + sSecureGlobalKeys.add(Settings.Global.SET_GLOBAL_HTTP_PROXY); + sSecureGlobalKeys.add(Settings.Global.DEFAULT_DNS_SERVER); // Keys from the 'system' table now moved to 'global' // These must match Settings.System.MOVED_TO_GLOBAL sSystemGlobalKeys = new HashSet<String>(); - sSystemGlobalKeys.add(Settings.System.AIRPLANE_MODE_ON); - sSystemGlobalKeys.add(Settings.System.AIRPLANE_MODE_RADIOS); - sSystemGlobalKeys.add(Settings.System.AIRPLANE_MODE_TOGGLEABLE_RADIOS); - sSystemGlobalKeys.add(Settings.System.AUTO_TIME); - sSystemGlobalKeys.add(Settings.System.AUTO_TIME_ZONE); - sSystemGlobalKeys.add(Settings.System.CAR_DOCK_SOUND); - sSystemGlobalKeys.add(Settings.System.CAR_UNDOCK_SOUND); - sSystemGlobalKeys.add(Settings.System.DESK_DOCK_SOUND); - sSystemGlobalKeys.add(Settings.System.DESK_UNDOCK_SOUND); - sSystemGlobalKeys.add(Settings.System.DOCK_SOUNDS_ENABLED); - sSystemGlobalKeys.add(Settings.System.LOCK_SOUND); - sSystemGlobalKeys.add(Settings.System.UNLOCK_SOUND); - sSystemGlobalKeys.add(Settings.System.LOW_BATTERY_SOUND); - sSystemGlobalKeys.add(Settings.System.POWER_SOUNDS_ENABLED); - sSystemGlobalKeys.add(Settings.System.STAY_ON_WHILE_PLUGGED_IN); - sSystemGlobalKeys.add(Settings.System.WIFI_SLEEP_POLICY); + sSystemGlobalKeys.add(Settings.Global.AIRPLANE_MODE_ON); + sSystemGlobalKeys.add(Settings.Global.AIRPLANE_MODE_RADIOS); + sSystemGlobalKeys.add(Settings.Global.AIRPLANE_MODE_TOGGLEABLE_RADIOS); + sSystemGlobalKeys.add(Settings.Global.AUTO_TIME); + sSystemGlobalKeys.add(Settings.Global.AUTO_TIME_ZONE); + sSystemGlobalKeys.add(Settings.Global.CAR_DOCK_SOUND); + sSystemGlobalKeys.add(Settings.Global.CAR_UNDOCK_SOUND); + sSystemGlobalKeys.add(Settings.Global.DESK_DOCK_SOUND); + sSystemGlobalKeys.add(Settings.Global.DESK_UNDOCK_SOUND); + sSystemGlobalKeys.add(Settings.Global.DOCK_SOUNDS_ENABLED); + sSystemGlobalKeys.add(Settings.Global.LOCK_SOUND); + sSystemGlobalKeys.add(Settings.Global.UNLOCK_SOUND); + sSystemGlobalKeys.add(Settings.Global.LOW_BATTERY_SOUND); + sSystemGlobalKeys.add(Settings.Global.POWER_SOUNDS_ENABLED); + sSystemGlobalKeys.add(Settings.Global.STAY_ON_WHILE_PLUGGED_IN); + sSystemGlobalKeys.add(Settings.Global.WIFI_SLEEP_POLICY); + sSystemGlobalKeys.add(Settings.Global.MODE_RINGER); } private boolean settingMovedToGlobal(final String name) { diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_bluetooth_off.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_bluetooth_off.png Binary files differindex d5650a76bfe9..7c6ca7534d81 100644 --- a/packages/SystemUI/res/drawable-hdpi/ic_qs_bluetooth_off.png +++ b/packages/SystemUI/res/drawable-hdpi/ic_qs_bluetooth_off.png diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_bluetooth_on.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_bluetooth_on.png Binary files differindex 7d6fed5bbd14..ff0ba07cde09 100644 --- a/packages/SystemUI/res/drawable-hdpi/ic_qs_bluetooth_on.png +++ b/packages/SystemUI/res/drawable-hdpi/ic_qs_bluetooth_on.png diff --git a/packages/SystemUI/res/drawable-hdpi/status_bar_close_off.9.png b/packages/SystemUI/res/drawable-hdpi/status_bar_close_off.9.png Binary files differindex bc6462bd1c1b..0c301ab1336e 100644 --- a/packages/SystemUI/res/drawable-hdpi/status_bar_close_off.9.png +++ b/packages/SystemUI/res/drawable-hdpi/status_bar_close_off.9.png diff --git a/packages/SystemUI/res/drawable-hdpi/status_bar_close_on.9.png b/packages/SystemUI/res/drawable-hdpi/status_bar_close_on.9.png Binary files differindex f4e28aeb1efa..ec0424a693cf 100644 --- a/packages/SystemUI/res/drawable-hdpi/status_bar_close_on.9.png +++ b/packages/SystemUI/res/drawable-hdpi/status_bar_close_on.9.png diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_bluetooth_off.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_bluetooth_off.png Binary files differindex 19e4e409e1be..61eff946df08 100644 --- a/packages/SystemUI/res/drawable-mdpi/ic_qs_bluetooth_off.png +++ b/packages/SystemUI/res/drawable-mdpi/ic_qs_bluetooth_off.png diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_bluetooth_on.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_bluetooth_on.png Binary files differindex ec30791f39c9..b480a80bc638 100644 --- a/packages/SystemUI/res/drawable-mdpi/ic_qs_bluetooth_on.png +++ b/packages/SystemUI/res/drawable-mdpi/ic_qs_bluetooth_on.png diff --git a/packages/SystemUI/res/drawable-mdpi/status_bar_close_off.9.png b/packages/SystemUI/res/drawable-mdpi/status_bar_close_off.9.png Binary files differindex 4f5bba53dda9..5c577cb5b156 100644 --- a/packages/SystemUI/res/drawable-mdpi/status_bar_close_off.9.png +++ b/packages/SystemUI/res/drawable-mdpi/status_bar_close_off.9.png diff --git a/packages/SystemUI/res/drawable-mdpi/status_bar_close_on.9.png b/packages/SystemUI/res/drawable-mdpi/status_bar_close_on.9.png Binary files differindex ef7afb831642..7efb5023afaf 100644 --- a/packages/SystemUI/res/drawable-mdpi/status_bar_close_on.9.png +++ b/packages/SystemUI/res/drawable-mdpi/status_bar_close_on.9.png diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_bluetooth_off.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_bluetooth_off.png Binary files differindex 65a873dd5b3d..b4d9175a7a76 100644 --- a/packages/SystemUI/res/drawable-xhdpi/ic_qs_bluetooth_off.png +++ b/packages/SystemUI/res/drawable-xhdpi/ic_qs_bluetooth_off.png diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_bluetooth_on.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_bluetooth_on.png Binary files differindex 7ac301548e2b..598d9676cb6b 100644 --- a/packages/SystemUI/res/drawable-xhdpi/ic_qs_bluetooth_on.png +++ b/packages/SystemUI/res/drawable-xhdpi/ic_qs_bluetooth_on.png diff --git a/packages/SystemUI/res/drawable-xhdpi/status_bar_close_off.9.png b/packages/SystemUI/res/drawable-xhdpi/status_bar_close_off.9.png Binary files differindex e243e50b180a..98d0cfb52099 100644 --- a/packages/SystemUI/res/drawable-xhdpi/status_bar_close_off.9.png +++ b/packages/SystemUI/res/drawable-xhdpi/status_bar_close_off.9.png diff --git a/packages/SystemUI/res/drawable-xhdpi/status_bar_close_on.9.png b/packages/SystemUI/res/drawable-xhdpi/status_bar_close_on.9.png Binary files differindex cdad949ac708..17f41690e2d4 100644 --- a/packages/SystemUI/res/drawable-xhdpi/status_bar_close_on.9.png +++ b/packages/SystemUI/res/drawable-xhdpi/status_bar_close_on.9.png diff --git a/packages/SystemUI/res/layout/quick_settings_tile_airplane.xml b/packages/SystemUI/res/layout/quick_settings_tile_airplane.xml index 6ae10d5db892..ac87496c12f0 100644 --- a/packages/SystemUI/res/layout/quick_settings_tile_airplane.xml +++ b/packages/SystemUI/res/layout/quick_settings_tile_airplane.xml @@ -21,5 +21,4 @@ android:layout_height="wrap_content" android:layout_gravity="center" android:gravity="center" - android:text="@string/quick_settings_airplane_mode_label" />
\ No newline at end of file diff --git a/packages/SystemUI/res/layout/quick_settings_tile_bluetooth.xml b/packages/SystemUI/res/layout/quick_settings_tile_bluetooth.xml index 565055c594e1..2f3a9c6fe722 100644 --- a/packages/SystemUI/res/layout/quick_settings_tile_bluetooth.xml +++ b/packages/SystemUI/res/layout/quick_settings_tile_bluetooth.xml @@ -21,5 +21,4 @@ android:layout_height="wrap_content" android:layout_gravity="center" android:gravity="center" - android:text="@string/quick_settings_bluetooth_label" />
\ No newline at end of file diff --git a/packages/SystemUI/res/layout/quick_settings_tile_brightness.xml b/packages/SystemUI/res/layout/quick_settings_tile_brightness.xml index ac872e63e2f4..5b3ce1f6f862 100644 --- a/packages/SystemUI/res/layout/quick_settings_tile_brightness.xml +++ b/packages/SystemUI/res/layout/quick_settings_tile_brightness.xml @@ -22,5 +22,4 @@ android:layout_gravity="center" android:gravity="center" android:drawableTop="@drawable/ic_qs_brightness_auto_off" - android:text="@string/quick_settings_brightness_label" />
\ No newline at end of file diff --git a/packages/SystemUI/res/layout/quick_settings_tile_rotation_lock.xml b/packages/SystemUI/res/layout/quick_settings_tile_rotation_lock.xml index 4dbf6a016356..6aecaea1380d 100644 --- a/packages/SystemUI/res/layout/quick_settings_tile_rotation_lock.xml +++ b/packages/SystemUI/res/layout/quick_settings_tile_rotation_lock.xml @@ -21,5 +21,4 @@ android:layout_height="wrap_content" android:layout_gravity="center" android:gravity="center" - android:text="@string/quick_settings_rotation_unlocked_label" />
\ No newline at end of file diff --git a/packages/SystemUI/res/layout/quick_settings_tile_settings.xml b/packages/SystemUI/res/layout/quick_settings_tile_settings.xml index 7026ebc6e90a..d155935b09cb 100644 --- a/packages/SystemUI/res/layout/quick_settings_tile_settings.xml +++ b/packages/SystemUI/res/layout/quick_settings_tile_settings.xml @@ -16,10 +16,10 @@ <TextView xmlns:android="http://schemas.android.com/apk/res/android" style="@style/TextAppearance.QuickSettings.TileView" + android:id="@+id/settings_tileview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:gravity="center" android:drawableTop="@drawable/ic_qs_settings" - android:text="@string/quick_settings_settings_label" />
\ No newline at end of file diff --git a/packages/SystemUI/res/layout/quick_settings_tile_user.xml b/packages/SystemUI/res/layout/quick_settings_tile_user.xml index 08e8e20fdc76..1732f6d289dc 100644 --- a/packages/SystemUI/res/layout/quick_settings_tile_user.xml +++ b/packages/SystemUI/res/layout/quick_settings_tile_user.xml @@ -18,6 +18,7 @@ android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView + android:id="@+id/user_imageview" android:layout_width="match_parent" android:layout_height="match_parent" android:src="@drawable/ic_qs_default_user" diff --git a/packages/SystemUI/res/values-af/strings.xml b/packages/SystemUI/res/values-af/strings.xml index 122fd601b2ae..1c317cab5ef8 100644 --- a/packages/SystemUI/res/values-af/strings.xml +++ b/packages/SystemUI/res/values-af/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi een strepie."</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi twee strepies."</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi drie strepies."</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Wi-Fi-sein vol."</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Wi-Fi sein vol."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Geen WiMAX nie."</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX een strepie."</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX twee strepies."</string> @@ -168,11 +168,17 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"Instellings"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"Tyd"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"Ek"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string> + <!-- no translation found for quick_settings_wifi_label (9135344704899546041) --> + <skip /> + <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) --> + <skip /> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Geen netwerk nie"</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wi-Fi af"</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Wi-Fi-skerm"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Geen Wi-Fi-skerm-verbinding nie"</string> + <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) --> + <skip /> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Helderheid"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"OUTO"</string> </resources> diff --git a/packages/SystemUI/res/values-am/strings.xml b/packages/SystemUI/res/values-am/strings.xml index 2e220ecb7b55..d85e2b8f9140 100644 --- a/packages/SystemUI/res/values-am/strings.xml +++ b/packages/SystemUI/res/values-am/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi አንድ አሞሌ::"</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi ሁለት አሞሌዎች::"</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi ሶስት አሞሌዎች::"</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"የWiFi አመልካች ሙሉ ነው።"</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Wi-Fi ሲግናል ሙሉ ነው::"</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"ምንም WiMAX."</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX አንድ አሞሌ።"</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX ሁለት አሞሌዎች።"</string> @@ -168,11 +168,17 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"ቅንብሮች"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"ሰዓት"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"እኔ"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wifi"</string> + <!-- no translation found for quick_settings_wifi_label (9135344704899546041) --> + <skip /> + <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) --> + <skip /> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"ምንም አውታረ መረብ የለም"</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wifi ጠፍቷል"</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"የWifi ማሳያ"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"ምንም የWifi ማሳያ ግንኙነት የለም"</string> + <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) --> + <skip /> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"ብሩህነት"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"ራስ-ሰር"</string> </resources> diff --git a/packages/SystemUI/res/values-ar/strings.xml b/packages/SystemUI/res/values-ar/strings.xml index 659eb5855a8e..b236a8b11249 100644 --- a/packages/SystemUI/res/values-ar/strings.xml +++ b/packages/SystemUI/res/values-ar/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"شريط واحد لـ Wi-Fi."</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"شريطان لـ Wi-Fi."</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"ثلاثة أشرطة لـ Wi-Fi."</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"إشارة WiFi كاملة."</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"إشارة كاملة لـ Wi-Fi."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"ليس هناك WiMAX."</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"شريط WiMAX واحد."</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"شريطا WiMAX."</string> @@ -168,11 +168,17 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"الإعدادات"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"الوقت"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"أنا"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wifi"</string> + <!-- no translation found for quick_settings_wifi_label (9135344704899546041) --> + <skip /> + <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) --> + <skip /> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"لا تتوفر شبكة"</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"إيقاف Wifi"</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"شاشة Wifi"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"لا يتوفر اتصال بشاشة Wifi"</string> + <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) --> + <skip /> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"السطوع"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"تلقائي"</string> </resources> diff --git a/packages/SystemUI/res/values-be/strings.xml b/packages/SystemUI/res/values-be/strings.xml index 0d6f4c66721d..ddc23ca3b2d8 100644 --- a/packages/SystemUI/res/values-be/strings.xml +++ b/packages/SystemUI/res/values-be/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi, адзiн слупок."</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi, два слупкi."</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi, тры слупкi."</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Поўны сігнал Wi-Fi."</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Моцны сiгнал Wi-Fi."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Няма сiгналу WiMAX."</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"Адзiн слупок сiгналу WiMAX."</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Два слупкi сiгналу WiMAX."</string> @@ -170,11 +170,17 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"Налады"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"Час"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"Я"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string> + <!-- no translation found for quick_settings_wifi_label (9135344704899546041) --> + <skip /> + <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) --> + <skip /> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Няма сеткi"</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wi-Fi выключаны"</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Дысплей Wi-Fi"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Няма падключэння да дысплея Wi-Fi"</string> + <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) --> + <skip /> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Яркасць"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"АЎТА"</string> </resources> diff --git a/packages/SystemUI/res/values-bg/strings.xml b/packages/SystemUI/res/values-bg/strings.xml index 02c38b71cbc3..470b31b89160 100644 --- a/packages/SystemUI/res/values-bg/strings.xml +++ b/packages/SystemUI/res/values-bg/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi е с една чертичка."</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi е с две чертички."</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi е с три чертички."</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Сигналът за WiFi е пълен."</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Сигналът за Wi-Fi е пълен."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Няма WiMAX."</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX е с една чертичка."</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX е с две чертички."</string> @@ -168,11 +168,17 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"Настройки"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"Време"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"Аз"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"WiFi"</string> + <!-- no translation found for quick_settings_wifi_label (9135344704899546041) --> + <skip /> + <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) --> + <skip /> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Няма мрежа"</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"WiFi е изключен"</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Дисплей през WiFi"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Няма връзка с дисплея през WiFi"</string> + <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) --> + <skip /> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Яркост"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"АВТ."</string> </resources> diff --git a/packages/SystemUI/res/values-ca/strings.xml b/packages/SystemUI/res/values-ca/strings.xml index 7aa1e889fe95..16a412d3e5e7 100644 --- a/packages/SystemUI/res/values-ca/strings.xml +++ b/packages/SystemUI/res/values-ca/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Una barra de Wi-Fi."</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Dues barres de Wi-Fi."</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Tres barres de Wi-Fi."</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Senyal Wi-Fi: complet."</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Senyal Wi-Fi complet."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Sense WiMAX."</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"Una barra de WiMAX."</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Dues barres de WiMAX."</string> @@ -170,11 +170,12 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"Configuració"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"Hora"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"Jo"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string> + <string name="quick_settings_wifi_label" msgid="9135344704899546041">"Wi-Fi"</string> + <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Desconnectat"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"No hi ha cap xarxa"</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wi-Fi desactivada"</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Pantalla Wi-Fi"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Sense connexió a pantalla Wi-Fi"</string> + <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi desconnectat"</string> + <string name="quick_settings_wifi_display_label" msgid="6893592964463624333">"Pantalla Wi-Fi"</string> + <string name="quick_settings_wifi_display_no_connection_label" msgid="7834964244709912066">"No hi ha cap connexió amb una pantalla Wi-Fi"</string> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Brillantor"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMÀTICA"</string> </resources> diff --git a/packages/SystemUI/res/values-cs/strings.xml b/packages/SystemUI/res/values-cs/strings.xml index 5a391a91a19d..c8e5317e0bb5 100644 --- a/packages/SystemUI/res/values-cs/strings.xml +++ b/packages/SystemUI/res/values-cs/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi – jedna čárka."</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi – dvě čárky."</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi – tři čárky."</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Plný signál sítě Wi-Fi."</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Wi-Fi – plný signál."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Žádný signál sítě WiMAX."</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"Jedna čárka signálu sítě WiMAX."</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Dvě čárky signálu sítě WiMAX."</string> @@ -170,11 +170,17 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"Nastavení"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"Doba"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"Já"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string> + <!-- no translation found for quick_settings_wifi_label (9135344704899546041) --> + <skip /> + <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) --> + <skip /> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Žádná síť"</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Síť Wi-Fi je vypnuta"</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Displej přes Wi-Fi"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Žádné připojení k displeji přes Wi-Fi"</string> + <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) --> + <skip /> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Jas"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMATICKY"</string> </resources> diff --git a/packages/SystemUI/res/values-da/strings.xml b/packages/SystemUI/res/values-da/strings.xml index 47a5c5bb8317..fde9916be4cd 100644 --- a/packages/SystemUI/res/values-da/strings.xml +++ b/packages/SystemUI/res/values-da/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi har en bjælke."</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi har to bjælker."</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi har tre bjælker."</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Wi-Fi-signal fuldt."</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Wi-Fi-signalet er godt."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Ingen WiMAX."</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX en bjælke."</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX to bjælker."</string> @@ -168,11 +168,17 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"Indstillinger"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"Tid"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"Mig"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string> + <!-- no translation found for quick_settings_wifi_label (9135344704899546041) --> + <skip /> + <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) --> + <skip /> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Intet netværk"</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wi-Fi slået fra"</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Wi-Fi-skærm"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Ingen forbindelse til Wi-Fi-skærm"</string> + <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) --> + <skip /> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Lysstyrke"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTO"</string> </resources> diff --git a/packages/SystemUI/res/values-de/strings.xml b/packages/SystemUI/res/values-de/strings.xml index 791bfab4f084..4a5b4cb07a84 100644 --- a/packages/SystemUI/res/values-de/strings.xml +++ b/packages/SystemUI/res/values-de/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"WLAN, ein Balken"</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"WLAN, zwei Balken"</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"WLAN, drei Balken"</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Volle WLAN-Signalstärke"</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"WLAN, volle Signalstärke"</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Kein WiMAX"</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX - ein Balken"</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX - zwei Balken"</string> @@ -151,7 +151,7 @@ <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Bildschirm bleibt im Querformat."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Bildschirm bleibt im Hochformat."</string> <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> - <string name="start_dreams" msgid="870400522982252717">"Träume starten"</string> + <string name="start_dreams" msgid="870400522982252717">"Dream-Funktion starten"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Flugmodus"</string> <string name="quick_settings_battery_charging_label" msgid="490074774465309209">"Akku wird aufgeladen (<xliff:g id="NUMBER">%d</xliff:g> <xliff:g id="PERCENT">%%</xliff:g>)"</string> @@ -170,11 +170,17 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"Einstellungen"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"Uhrzeit"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"Ich"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"WLAN"</string> + <!-- no translation found for quick_settings_wifi_label (9135344704899546041) --> + <skip /> + <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) --> + <skip /> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Kein Netz"</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"WLAN aus"</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"WLAN-Anzeige"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Keine WLAN-Anzeige"</string> + <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) --> + <skip /> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Helligkeit"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTO"</string> </resources> diff --git a/packages/SystemUI/res/values-el/strings.xml b/packages/SystemUI/res/values-el/strings.xml index afce21206a17..a72ae498e30a 100644 --- a/packages/SystemUI/res/values-el/strings.xml +++ b/packages/SystemUI/res/values-el/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Μία γραμμή Wi-Fi."</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Δύο γραμμές Wi-Fi."</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Τρεις γραμμές Wi-Fi."</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Πλήρες σήμα WiFi."</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Πλήρες σήμα Wi-Fi."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Δεν υπάρχει σήμα WiMAX."</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"Σήμα WiMAX μία γραμμή."</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Σήμα WiMAX δύο γραμμές."</string> @@ -170,11 +170,12 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"Ρυθμίσεις"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"Ώρα"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"Εγώ"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wifi"</string> + <string name="quick_settings_wifi_label" msgid="9135344704899546041">"Wi-Fi"</string> + <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Μη συνδεδεμένο"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Κανένα δίκτυο"</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Απενεργοποιημένο Wifi"</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Οθόνη Wifi"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Δεν υπάρχει σύνδεση οθόνης Wifi"</string> + <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi ανενεργό"</string> + <string name="quick_settings_wifi_display_label" msgid="6893592964463624333">"Οθόνη Wi-Fi"</string> + <string name="quick_settings_wifi_display_no_connection_label" msgid="7834964244709912066">"Χωρίς σύνδεση οθόνης Wi-Fi"</string> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Φωτεινότητα"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"ΑΥΤΟΜΑΤΗ"</string> </resources> diff --git a/packages/SystemUI/res/values-en-rGB/strings.xml b/packages/SystemUI/res/values-en-rGB/strings.xml index 5bfe7ae00134..9f03bfc01bb6 100644 --- a/packages/SystemUI/res/values-en-rGB/strings.xml +++ b/packages/SystemUI/res/values-en-rGB/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi one bar."</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi two bars."</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi three bars."</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Wi-Fi signal full."</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Wi-Fi signal full."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"No WiMAX."</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX one bar."</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX two bars."</string> @@ -168,11 +168,12 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"Settings"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"Time"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"Me"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string> + <string name="quick_settings_wifi_label" msgid="9135344704899546041">"Wi-Fi"</string> + <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Not Connected"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"No Network"</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wi-Fi Off"</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Wi-Fi Display"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"No Wi-Fi Display Connection"</string> + <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi Off"</string> + <string name="quick_settings_wifi_display_label" msgid="6893592964463624333">"Wi-Fi Display"</string> + <string name="quick_settings_wifi_display_no_connection_label" msgid="7834964244709912066">"No Wi-Fi Display Connection"</string> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Brightness"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTO"</string> </resources> diff --git a/packages/SystemUI/res/values-es-rUS/strings.xml b/packages/SystemUI/res/values-es-rUS/strings.xml index ec8530928927..4ef247964c6d 100644 --- a/packages/SystemUI/res/values-es-rUS/strings.xml +++ b/packages/SystemUI/res/values-es-rUS/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Una barra de señal Wi-Fi"</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Dos barras de señal Wi-Fi"</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Tres barras de señal Wi-Fi"</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Señal de Wi-Fi completa"</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Señal Wi-Fi máxima"</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Sin conexión WiMAX"</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"Una barra de WiMAX"</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Dos barras de WiMAX"</string> @@ -170,11 +170,17 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"Configuración"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"Hora"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"Yo"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string> + <!-- no translation found for quick_settings_wifi_label (9135344704899546041) --> + <skip /> + <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) --> + <skip /> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Sin red"</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wi-Fi desactivado"</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Pantalla Wi-Fi"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Sin conexión con pantalla Wi-Fi"</string> + <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) --> + <skip /> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Brillo"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMÁTICO"</string> </resources> diff --git a/packages/SystemUI/res/values-es/strings.xml b/packages/SystemUI/res/values-es/strings.xml index a82bc03ffb07..90bc39495d14 100644 --- a/packages/SystemUI/res/values-es/strings.xml +++ b/packages/SystemUI/res/values-es/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Una barra de Wi-Fi"</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Dos barras de Wi-Fi"</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Tres barras de Wi-Fi"</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Señal de Wi-Fi al máximo"</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Señal de Wi-Fi al máximo"</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Sin conexión WiMAX"</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"Una barra de WiMAX"</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Dos barras de WiMAX"</string> @@ -168,11 +168,17 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"Ajustes"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"Hora"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"Yo"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string> + <!-- no translation found for quick_settings_wifi_label (9135344704899546041) --> + <skip /> + <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) --> + <skip /> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"No hay red."</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wi-Fi desactivado"</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Pantalla Wi-Fi"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Sin conexión a pantalla Wi-Fi"</string> + <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) --> + <skip /> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Brillo"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTO"</string> </resources> diff --git a/packages/SystemUI/res/values-et/strings.xml b/packages/SystemUI/res/values-et/strings.xml index d17cb02cfd5d..8113e8dc7504 100644 --- a/packages/SystemUI/res/values-et/strings.xml +++ b/packages/SystemUI/res/values-et/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"WiFi signaal: üks post."</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"WiFi signaal: kaks posti."</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"WiFi signaal: kolm posti."</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"WiFi-signaal on tugev."</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"WiFi signaal on täis."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"WiMAX-i pole."</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX-i on üks riba."</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX-i on kaks riba."</string> @@ -168,11 +168,12 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"Seaded"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"Aeg"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"Mina"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"WiFi"</string> + <string name="quick_settings_wifi_label" msgid="9135344704899546041">"WiFi"</string> + <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Ühendus puudub"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Võrku pole"</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"WiFi on väljas"</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"WiFi-ekraan"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"WiFi-ekraani ühendus puudub"</string> + <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"WiFi-ühendus on väljas"</string> + <string name="quick_settings_wifi_display_label" msgid="6893592964463624333">"WiFi kuva"</string> + <string name="quick_settings_wifi_display_no_connection_label" msgid="7834964244709912066">"WiFi-ühenduse puudumise kuva"</string> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Heledus"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMAATNE"</string> </resources> diff --git a/packages/SystemUI/res/values-fa/strings.xml b/packages/SystemUI/res/values-fa/strings.xml index 4379dcb3eaeb..71c85587ae28 100644 --- a/packages/SystemUI/res/values-fa/strings.xml +++ b/packages/SystemUI/res/values-fa/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi یک نوار دارد."</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi دو نوار دارد."</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi سه نوار دارد."</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"قدرت سیگنال WiFi کامل است."</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"سیگنال Wi-Fi کامل است."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"WiMAX وجود ندارد."</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX دارای یک نوار است."</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX دارای دو نوار است."</string> @@ -168,11 +168,17 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"تنظیمات"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"زمان"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"من"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wifi"</string> + <!-- no translation found for quick_settings_wifi_label (9135344704899546041) --> + <skip /> + <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) --> + <skip /> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"شبکهای موجود نیست"</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wifi خاموش"</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"صفحه نمایش Wifi"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"اتصال صفحه نمایش Wifi وجود ندارد"</string> + <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) --> + <skip /> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"روشنایی"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"خودکار"</string> </resources> diff --git a/packages/SystemUI/res/values-fi/strings.xml b/packages/SystemUI/res/values-fi/strings.xml index bc5596e5d606..5e1bb3c4c774 100644 --- a/packages/SystemUI/res/values-fi/strings.xml +++ b/packages/SystemUI/res/values-fi/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wifi-signaali: yksi palkki."</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wifi-signaali: kaksi palkkia."</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wifi-signaali: kolme palkkia."</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Vahva wifi-signaali."</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Wifi-signaali: täysi."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Ei WiMAX-yhteyttä."</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX: yksi palkki."</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX: kaksi palkkia."</string> @@ -168,11 +168,17 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"Asetukset"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"Aika"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"Minä"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wifi"</string> + <!-- no translation found for quick_settings_wifi_label (9135344704899546041) --> + <skip /> + <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) --> + <skip /> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Ei verkkoa"</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wifi pois käytöstä"</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Wifi-näyttö"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Ei yhteyttä wifi-näyttöön"</string> + <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) --> + <skip /> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Kirkkaus"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTO"</string> </resources> diff --git a/packages/SystemUI/res/values-fr/strings.xml b/packages/SystemUI/res/values-fr/strings.xml index c3ac92735ea9..4facd644e2f2 100644 --- a/packages/SystemUI/res/values-fr/strings.xml +++ b/packages/SystemUI/res/values-fr/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Signal Wi-Fi très faible"</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Signal Wi-Fi faible"</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Signal Wi-Fi bon"</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Signal Wi-Fi excellent"</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Signal Wi-Fi excellent"</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Aucun signal WiMAX"</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"Signal WiMAX : faible"</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Signal WiMAX : moyen"</string> @@ -170,11 +170,17 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"Paramètres"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"Heure"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"Moi"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string> + <!-- no translation found for quick_settings_wifi_label (9135344704899546041) --> + <skip /> + <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) --> + <skip /> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Aucun réseau"</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wi-Fi désactivé"</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Écran Wi-Fi"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Aucune connexion à un écran Wi-Fi"</string> + <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) --> + <skip /> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Luminosité"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMATIQUE"</string> </resources> diff --git a/packages/SystemUI/res/values-hi/strings.xml b/packages/SystemUI/res/values-hi/strings.xml index d1590fe0a5e5..a65368f3abcd 100644 --- a/packages/SystemUI/res/values-hi/strings.xml +++ b/packages/SystemUI/res/values-hi/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi का एक बार."</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi के दो बार."</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi के तीन बार."</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"पूर्ण WiFi सिग्नल."</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Wi-Fi सिग्नल पूर्ण."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"WiMAX नहीं."</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX एक बार."</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX दो बार."</string> @@ -168,11 +168,17 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"सेटिंग"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"समय"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"मुझे"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wifi"</string> + <!-- no translation found for quick_settings_wifi_label (9135344704899546041) --> + <skip /> + <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) --> + <skip /> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"कोई नेटवर्क नहीं"</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wifi बंद"</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Wifi डिस्प्ले"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"कोई Wifi डिस्प्ले कनेक्शन नहीं"</string> + <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) --> + <skip /> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"चमक"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"स्वत:"</string> </resources> diff --git a/packages/SystemUI/res/values-hr/strings.xml b/packages/SystemUI/res/values-hr/strings.xml index c56b20f7dd30..2b2c02273a94 100644 --- a/packages/SystemUI/res/values-hr/strings.xml +++ b/packages/SystemUI/res/values-hr/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi jedna crtica."</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi dvije crtice."</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi tri crtice."</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"WiFi signal pun."</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Wi-Fi signal pun."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Nema signala WiMAX."</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX s jednim stupcem."</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX s dva stupca."</string> @@ -168,11 +168,17 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"Postavke"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"Vrijeme"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"Ja"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wifi"</string> + <!-- no translation found for quick_settings_wifi_label (9135344704899546041) --> + <skip /> + <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) --> + <skip /> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Nema mreže"</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wifi isključen"</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"WiFi zaslon"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Nema veze s Wifi zaslonom"</string> + <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) --> + <skip /> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Svjetlina"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMATSKI"</string> </resources> diff --git a/packages/SystemUI/res/values-hu/strings.xml b/packages/SystemUI/res/values-hu/strings.xml index 48932b685ff9..88f293ea4ed2 100644 --- a/packages/SystemUI/res/values-hu/strings.xml +++ b/packages/SystemUI/res/values-hu/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi -- egy sáv"</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi -- két sáv"</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi -- három sáv"</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Wi-Fi jel teljes."</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Wi-Fi -- teljes jel"</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Nincs WiMAX."</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX-jel: egy sáv."</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX-jel: két sáv."</string> @@ -168,11 +168,17 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"Beállítások"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"Idő"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"Én"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string> + <!-- no translation found for quick_settings_wifi_label (9135344704899546041) --> + <skip /> + <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) --> + <skip /> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Nincs hálózat"</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wi-Fi kikapcsolva"</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Wi-Fi kijelző"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Nincs kapcsolat Wi-Fi kijelzővel"</string> + <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) --> + <skip /> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Fényerő"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"automatikus"</string> </resources> diff --git a/packages/SystemUI/res/values-in/strings.xml b/packages/SystemUI/res/values-in/strings.xml index 72bd126b4f80..845a72eabec7 100644 --- a/packages/SystemUI/res/values-in/strings.xml +++ b/packages/SystemUI/res/values-in/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi satu bilah."</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi dua bilah."</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi tiga bilah."</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Sinyal WiFi penuh."</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Sinyal Wi-Fi penuh."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Tidak ada WiMAX."</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX satu batang."</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX dua batang."</string> @@ -168,11 +168,17 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"Setelan"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"Waktu"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"Saya"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wifi"</string> + <!-- no translation found for quick_settings_wifi_label (9135344704899546041) --> + <skip /> + <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) --> + <skip /> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Tidak Ada Jaringan"</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wifi Mati"</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Tampilan Wifi"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Tidak Ada Koneksi Tampilan Wifi"</string> + <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) --> + <skip /> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Kecerahan"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"OTOMATIS"</string> </resources> diff --git a/packages/SystemUI/res/values-it/strings.xml b/packages/SystemUI/res/values-it/strings.xml index d6b96f67e7be..56c8ab8ae9dc 100644 --- a/packages/SystemUI/res/values-it/strings.xml +++ b/packages/SystemUI/res/values-it/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi: una barra."</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi: due barre."</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi: tre barre."</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Massimo segnale Wi-Fi."</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Segnale Wi-Fi completo."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Nessun segnale WiMAX."</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX: una barra."</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX: due barre."</string> @@ -170,11 +170,17 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"Impostazioni"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"Ora"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"Io"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string> + <!-- no translation found for quick_settings_wifi_label (9135344704899546041) --> + <skip /> + <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) --> + <skip /> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Nessuna rete"</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wi-Fi non attivo"</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Schermo Wi-Fi"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Nessun collegamento a schermi Wi-Fi"</string> + <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) --> + <skip /> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Luminosità"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTO"</string> </resources> diff --git a/packages/SystemUI/res/values-iw/strings.xml b/packages/SystemUI/res/values-iw/strings.xml index 150faaf50cda..28cb4c0c4754 100644 --- a/packages/SystemUI/res/values-iw/strings.xml +++ b/packages/SystemUI/res/values-iw/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"פס Wi-Fi אחד."</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"שני פסי Wi-Fi."</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"שלושה פסי Wi-Fi."</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"אות ה-WiFi מלא."</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"אות ה-Wi-Fi מלא."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"ללא WiMAX."</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"פס אחד של WiMAX."</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"שני פסים של WiMAX."</string> @@ -168,11 +168,17 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"הגדרות"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"שעה"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"אני"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wifi"</string> + <!-- no translation found for quick_settings_wifi_label (9135344704899546041) --> + <skip /> + <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) --> + <skip /> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"אין רשת"</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wifi מופסק"</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"תצוגת Wifi"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"אין חיבור תצוגת Wifi"</string> + <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) --> + <skip /> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"בהירות"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"אוטומטי"</string> </resources> diff --git a/packages/SystemUI/res/values-ja/strings.xml b/packages/SystemUI/res/values-ja/strings.xml index 222eda230188..deddb6b2a570 100644 --- a/packages/SystemUI/res/values-ja/strings.xml +++ b/packages/SystemUI/res/values-ja/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi電波: レベル1"</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi電波: レベル2"</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi電波: レベル3"</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Wi-Fi電波:フル"</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Wi-Fi電波: フル"</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"WiMAX電波状態:圏外"</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX電波状態:レベル1"</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX電波状態:レベル2"</string> @@ -170,11 +170,17 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"設定"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"時間"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"このユーザー"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string> + <!-- no translation found for quick_settings_wifi_label (9135344704899546041) --> + <skip /> + <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) --> + <skip /> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"ネットワークなし"</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wi-Fi OFF"</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Wi-Fiディスプレイ"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Wi-Fiディスプレイ接続なし"</string> + <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) --> + <skip /> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"画面の明るさ"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"自動"</string> </resources> diff --git a/packages/SystemUI/res/values-ko/strings.xml b/packages/SystemUI/res/values-ko/strings.xml index dca1e369da3a..972c5d0ca034 100644 --- a/packages/SystemUI/res/values-ko/strings.xml +++ b/packages/SystemUI/res/values-ko/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi 신호 막대가 한 개입니다."</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi 신호 막대가 두 개입니다."</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi 신호 막대가 세 개입니다."</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"WiFi 신호가 강합니다."</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Wi-Fi 신호가 강합니다."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"WiMAX가 없습니다."</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX 신호 막대가 하나입니다."</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX 신호 막대가 두 개입니다."</string> @@ -149,7 +149,7 @@ <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"화면이 가로 방향으로 잠겨 있습니다."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"화면이 세로 방향으로 잠겨 있습니다."</string> <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> - <string name="start_dreams" msgid="870400522982252717">"화면보호기 시작"</string> + <string name="start_dreams" msgid="870400522982252717">"스크린 세이버 시작"</string> <string name="ethernet_label" msgid="7967563676324087464">"이더넷"</string> <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"비행기 모드"</string> <string name="quick_settings_battery_charging_label" msgid="490074774465309209">"충전 중(<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>)"</string> @@ -168,11 +168,17 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"설정"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"시간"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"나"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string> + <!-- no translation found for quick_settings_wifi_label (9135344704899546041) --> + <skip /> + <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) --> + <skip /> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"네트워크가 연결되지 않음"</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wi-Fi 사용 안함"</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Wi-Fi 디스플레이"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Wi-Fi 디스플레이가 연결되지 않음"</string> + <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) --> + <skip /> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"밝기"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"자동"</string> </resources> diff --git a/packages/SystemUI/res/values-lt/strings.xml b/packages/SystemUI/res/values-lt/strings.xml index 65cf268c4135..56961afa4c1b 100644 --- a/packages/SystemUI/res/values-lt/strings.xml +++ b/packages/SystemUI/res/values-lt/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Viena „Wi-Fi“ juosta."</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Dvi „Wi-Fi“ signalo juostos."</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Trys „Wi-Fi“ signalo juostos."</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"„Wi-Fi“ signalas stiprus."</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Stiprus „Wi-Fi“ signalas."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Nėra „WiMAX“ signalo."</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"Viena „WiMAX“ signalo juosta."</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Dvi „WiMAX“ signalo juostos."</string> @@ -168,11 +168,12 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"Nustatymai"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"Laikas"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"Aš"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string> + <string name="quick_settings_wifi_label" msgid="9135344704899546041">"Wi-Fi"</string> + <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Neprisijungta"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Tinklo nėra"</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"„Wi-Fi“ išjungta"</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"„Wi-Fi“ pateiktis"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Nėra „Wi-Fi“ pateikties ryšio"</string> + <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"„Wi-Fi“ išjungta"</string> + <string name="quick_settings_wifi_display_label" msgid="6893592964463624333">"„Wi-Fi“ pateiktis"</string> + <string name="quick_settings_wifi_display_no_connection_label" msgid="7834964244709912066">"Nėra „Wi-Fi“ pateikties ryšio"</string> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Skaistis"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMATINIS"</string> </resources> diff --git a/packages/SystemUI/res/values-lv/strings.xml b/packages/SystemUI/res/values-lv/strings.xml index 69e36f643616..56dc9d4d7744 100644 --- a/packages/SystemUI/res/values-lv/strings.xml +++ b/packages/SystemUI/res/values-lv/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi: viena josla."</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi: divas joslas."</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi: trīs joslas."</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Pilna piekļuve Wi-Fi signālam"</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Maksimāls Wi-Fi signāla stiprums."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Bez WiMAX."</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX viena josla."</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX divas joslas."</string> @@ -168,11 +168,17 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"Iestatījumi"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"Laiks"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"Es"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string> + <!-- no translation found for quick_settings_wifi_label (9135344704899546041) --> + <skip /> + <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) --> + <skip /> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Nav tīkla"</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wi-Fi savienojums ir izslēgts."</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Wi-Fi displejs"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Nav Wi-Fi displeja savienojuma"</string> + <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) --> + <skip /> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Spilgtums"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMĀTISKI"</string> </resources> diff --git a/packages/SystemUI/res/values-ms/strings.xml b/packages/SystemUI/res/values-ms/strings.xml index 791c77db1b21..8379886e0158 100644 --- a/packages/SystemUI/res/values-ms/strings.xml +++ b/packages/SystemUI/res/values-ms/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Satu bar Wi-Fi."</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Dua bar Wi-Fi."</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Tiga bar Wi-Fi."</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Isyarat WiFi penuh."</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Isyarat penuh Wi-Fi."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Tiada WiMAX"</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX satu bar."</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX dua bar."</string> @@ -156,8 +156,7 @@ <string name="quick_settings_battery_charged_label" msgid="8865413079414246081">"Sudah dicas"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> Peranti)"</string> - <!-- no translation found for quick_settings_bluetooth_off_label (8159652146149219937) --> - <skip /> + <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth Dimatikan"</string> <string name="quick_settings_brightness_label" msgid="6968372297018755815">"Kecerahan"</string> <string name="quick_settings_rotation_unlocked_label" msgid="336054930362580584">"Auto Putar"</string> <string name="quick_settings_rotation_locked_label" msgid="8058646447242565486">"Putaran Dikunci"</string> @@ -169,12 +168,17 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"Tetapan"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"Masa"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"Saya"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wifi"</string> + <!-- no translation found for quick_settings_wifi_label (9135344704899546041) --> + <skip /> + <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) --> + <skip /> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Tiada Rangkaian"</string> - <!-- no translation found for quick_settings_wifi_off_label (3343111275022978538) --> + <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) --> <skip /> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Paparan Wifi"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Tiada Sambungan Paparan Wifi"</string> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Kecerahan"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTO"</string> </resources> diff --git a/packages/SystemUI/res/values-nb/strings.xml b/packages/SystemUI/res/values-nb/strings.xml index cb8e55578d76..bbf3aed319dc 100644 --- a/packages/SystemUI/res/values-nb/strings.xml +++ b/packages/SystemUI/res/values-nb/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Dekningssignal for Wi-Fi med én stolpe."</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Dekningssignal for Wi-Fi med to stolper."</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Dekningssignal for Wi-Fi med tre stolper."</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Wi-Fi-signal er fullt."</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Fullt Wi-Fi-signal"</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Ingen WiMAX."</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX – én stolpe."</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX – to stolper."</string> @@ -168,11 +168,17 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"Innstillinger"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"Tidspunkt"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"Meg"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string> + <!-- no translation found for quick_settings_wifi_label (9135344704899546041) --> + <skip /> + <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) --> + <skip /> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Ingen nettverk"</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wi-Fi er slått av"</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Wi-Fi-skjermer"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Ingen tilkobling for Wi-Fi-skjermer"</string> + <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) --> + <skip /> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Lysstyrke"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTO"</string> </resources> diff --git a/packages/SystemUI/res/values-nl/strings.xml b/packages/SystemUI/res/values-nl/strings.xml index 0ec9c44631ff..079f59c60e8b 100644 --- a/packages/SystemUI/res/values-nl/strings.xml +++ b/packages/SystemUI/res/values-nl/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wifi: één streepje."</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wifi: twee streepjes."</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wifi: drie streepjes."</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Wi-Fi-signaal is op volledige sterkte."</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Wifi-signaal is op volledige sterkte."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Geen WiMAX."</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX: één streepje."</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX: twee streepjes."</string> @@ -168,11 +168,17 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"Instellingen"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"Tijd"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"Ik"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wifi"</string> + <!-- no translation found for quick_settings_wifi_label (9135344704899546041) --> + <skip /> + <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) --> + <skip /> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Geen netwerk"</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wifi uit"</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Wifi-display"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Geen wifi-displayverbinding"</string> + <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) --> + <skip /> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Helderheid"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMATISCH"</string> </resources> diff --git a/packages/SystemUI/res/values-pl/strings.xml b/packages/SystemUI/res/values-pl/strings.xml index 09e32e1a7066..86fe22b603fc 100644 --- a/packages/SystemUI/res/values-pl/strings.xml +++ b/packages/SystemUI/res/values-pl/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi jeden pasek."</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi dwa paski."</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi trzy paski."</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Sieć Wi-Fi: pełna moc sygnału."</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Pełna moc sygnału Wi-Fi."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"WiMAX: brak"</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX: jeden pasek"</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX: dwa paski"</string> @@ -168,11 +168,17 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"Ustawienia"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"Godzina"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"Ja"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string> + <!-- no translation found for quick_settings_wifi_label (9135344704899546041) --> + <skip /> + <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) --> + <skip /> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Brak sieci"</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wi-Fi wyłączone"</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Wyświetlacz Wi-Fi"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Brak połączenia z wyświetlaczem Wi-Fi"</string> + <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) --> + <skip /> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Jasność"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMATYCZNA"</string> </resources> diff --git a/packages/SystemUI/res/values-pt-rPT/strings.xml b/packages/SystemUI/res/values-pt-rPT/strings.xml index 5b362a719828..cffccc4fba1b 100644 --- a/packages/SystemUI/res/values-pt-rPT/strings.xml +++ b/packages/SystemUI/res/values-pt-rPT/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Uma barra de Wi-Fi."</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Duas barras de Wi-Fi."</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Três barras de Wi-Fi."</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Sinal Wi-Fi completo."</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Sinal de Wi-Fi completo."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Sem WiMAX."</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"Uma barra de WiMAX."</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Duas barras de WiMAX."</string> @@ -168,11 +168,12 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"Definições"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"Hora"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"Eu"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string> + <string name="quick_settings_wifi_label" msgid="9135344704899546041">"Wi-Fi"</string> + <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Não Ligado"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Sem Rede"</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wi-Fi Desativado"</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Visor Wi-Fi"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Sem Ligação ao Visor Wi-Fi"</string> + <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi Desligado"</string> + <string name="quick_settings_wifi_display_label" msgid="6893592964463624333">"Visualização Wi-Fi"</string> + <string name="quick_settings_wifi_display_no_connection_label" msgid="7834964244709912066">"Sem Ligação de Visualização Wi-Fi"</string> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Brilho"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMÁTICO"</string> </resources> diff --git a/packages/SystemUI/res/values-pt/strings.xml b/packages/SystemUI/res/values-pt/strings.xml index e2e5cd421bb5..377a6170d12d 100644 --- a/packages/SystemUI/res/values-pt/strings.xml +++ b/packages/SystemUI/res/values-pt/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Uma barra de Wi-Fi."</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Duas barras de Wi-Fi."</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Três barras de Wi-Fi."</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Sinal do Wi-Fi cheio."</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"O sinal de Wi-Fi está cheio."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Sem WiMAX."</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"Uma barra do WiMAX."</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Duas barras do WiMAX."</string> @@ -158,8 +158,7 @@ <string name="quick_settings_battery_charged_label" msgid="8865413079414246081">"Carregado"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> dispositivos)"</string> - <!-- no translation found for quick_settings_bluetooth_off_label (8159652146149219937) --> - <skip /> + <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth desativado"</string> <string name="quick_settings_brightness_label" msgid="6968372297018755815">"Brilho"</string> <string name="quick_settings_rotation_unlocked_label" msgid="336054930362580584">"Girar automaticamente"</string> <string name="quick_settings_rotation_locked_label" msgid="8058646447242565486">"Rotação bloqueada"</string> @@ -171,12 +170,17 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"Configurações"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"Hora"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"Eu"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string> + <!-- no translation found for quick_settings_wifi_label (9135344704899546041) --> + <skip /> + <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) --> + <skip /> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Sem rede"</string> - <!-- no translation found for quick_settings_wifi_off_label (3343111275022978538) --> + <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) --> <skip /> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Wi-Fi Display"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Sem conexão Wi-Fi Display"</string> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Brilho"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTO"</string> </resources> diff --git a/packages/SystemUI/res/values-rm/strings.xml b/packages/SystemUI/res/values-rm/strings.xml index ed3d869fcd16..6dd1f961b5e8 100644 --- a/packages/SystemUI/res/values-rm/strings.xml +++ b/packages/SystemUI/res/values-rm/strings.xml @@ -178,7 +178,7 @@ <skip /> <!-- no translation found for accessibility_wifi_three_bars (928322805193265041) --> <skip /> - <!-- no translation found for accessibility_wifi_signal_full (1275764416228473932) --> + <!-- no translation found for accessibility_wifi_signal_full (4826278754383492058) --> <skip /> <!-- no translation found for accessibility_no_wimax (4329180129727630368) --> <skip /> @@ -306,15 +306,17 @@ <skip /> <!-- no translation found for quick_settings_user_label (5238995632130897840) --> <skip /> - <!-- no translation found for quick_settings_wifi_label (4393429107095001520) --> + <!-- no translation found for quick_settings_wifi_label (9135344704899546041) --> + <skip /> + <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) --> <skip /> <!-- no translation found for quick_settings_wifi_no_network (2221993077220856376) --> <skip /> - <!-- no translation found for quick_settings_wifi_off_label (3343111275022978538) --> + <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) --> <skip /> - <!-- no translation found for quick_settings_wifi_display_label (6653501376641018614) --> + <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) --> <skip /> - <!-- no translation found for quick_settings_wifi_display_no_connection_label (6255615315258869136) --> + <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) --> <skip /> <!-- no translation found for quick_settings_brightness_dialog_title (8599674057673605368) --> <skip /> diff --git a/packages/SystemUI/res/values-ro/strings.xml b/packages/SystemUI/res/values-ro/strings.xml index e480b154eba4..71041199faf5 100644 --- a/packages/SystemUI/res/values-ro/strings.xml +++ b/packages/SystemUI/res/values-ro/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi o bară."</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi două bare."</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi trei bare."</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Semnal Wi-Fi: complet."</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Wi-Fi semnal complet."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Fără WiMAX."</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX o bară."</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX două bare."</string> @@ -168,11 +168,17 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"Setări"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"Ora"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"Eu"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string> + <!-- no translation found for quick_settings_wifi_label (9135344704899546041) --> + <skip /> + <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) --> + <skip /> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Nicio reţea"</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wi-Fi dezactivat"</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Afişaj Wi-Fi"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Nu există conexiune pentru afişajul Wi-Fi"</string> + <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) --> + <skip /> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Luminozitate"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMAT"</string> </resources> diff --git a/packages/SystemUI/res/values-ru/strings.xml b/packages/SystemUI/res/values-ru/strings.xml index 333d22187f3f..9c73ff325cf0 100644 --- a/packages/SystemUI/res/values-ru/strings.xml +++ b/packages/SystemUI/res/values-ru/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi: одно деление."</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi: два деления."</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi: три деления."</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Надежный сигнал Wi-Fi."</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Надежный сигнал Wi-Fi."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Нет сигнала WiMAX."</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"Сигнал WiMAX: одно деление."</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Сигнал WiMAX: два деления."</string> @@ -170,11 +170,17 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"Настройки"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"Время"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"Пользователь"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string> + <!-- no translation found for quick_settings_wifi_label (9135344704899546041) --> + <skip /> + <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) --> + <skip /> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Нет сети"</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Модуль Wi-Fi выключен"</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Экраны, подключенные через Wi-Fi"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Экран не подключен"</string> + <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) --> + <skip /> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Яркость"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"АВТОНАСТРОЙКА"</string> </resources> diff --git a/packages/SystemUI/res/values-sk/strings.xml b/packages/SystemUI/res/values-sk/strings.xml index 32c37c4dcded..ef147772de34 100644 --- a/packages/SystemUI/res/values-sk/strings.xml +++ b/packages/SystemUI/res/values-sk/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Jedna čiarka signálu Wi-Fi."</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Dve čiarky signálu Wi-Fi."</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Tri čiarky signálu Wi-Fi."</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Plný signál siete Wi-Fi."</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Plný signál Wi-Fi."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Žiadna sieť WiMAX."</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"Jeden stĺpec signálu siete WiMAX."</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Dva stĺpce signálu siete WiMAX."</string> @@ -170,11 +170,17 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"Nastavenia"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"Čas"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"Ja"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string> + <!-- no translation found for quick_settings_wifi_label (9135344704899546041) --> + <skip /> + <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) --> + <skip /> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Žiadna sieť"</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Sieť Wi-Fi je vypnutá"</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Displej cez sieť Wi-Fi"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Žiadne pripojenie k displeju cez sieť Wi-Fi"</string> + <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) --> + <skip /> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Jas"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMATICKY"</string> </resources> diff --git a/packages/SystemUI/res/values-sl/strings.xml b/packages/SystemUI/res/values-sl/strings.xml index 216b9d4eff34..f91114fac3b4 100644 --- a/packages/SystemUI/res/values-sl/strings.xml +++ b/packages/SystemUI/res/values-sl/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Ena vrstica signala Wi-Fi."</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Dve črtici signala Wi-Fi."</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Tri črtice signala Wi-Fi."</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Signal Wi-Fi poln."</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Poln signal Wi-Fi."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Ni signala WiMAX."</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"Signal WiMAX: ena črtica."</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Signal WiMAX: dve črtici."</string> @@ -168,11 +168,17 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"Nastavitve"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"Čas"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"Jaz"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string> + <!-- no translation found for quick_settings_wifi_label (9135344704899546041) --> + <skip /> + <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) --> + <skip /> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Ni omrežja"</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wi-Fi izklopljen"</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Zaslon Wi-Fi"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Ni povezav z zaslonom Wi-Fi"</string> + <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) --> + <skip /> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Svetlost"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"SAMODEJNO"</string> </resources> diff --git a/packages/SystemUI/res/values-sr/strings.xml b/packages/SystemUI/res/values-sr/strings.xml index dcaf3bdfdc6c..8903452ca8a2 100644 --- a/packages/SystemUI/res/values-sr/strings.xml +++ b/packages/SystemUI/res/values-sr/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi сигнал има једну црту."</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi сигнал има две црте."</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi сигнал има три црте."</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"WiFi сигнал је најјачи."</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Wi-Fi сигнал је најјачи."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Нема WiMAX сигнала."</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX сигнал има једну црту."</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX сигнал има две црте."</string> @@ -168,11 +168,17 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"Подешавања"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"Време"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"Ја"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string> + <!-- no translation found for quick_settings_wifi_label (9135344704899546041) --> + <skip /> + <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) --> + <skip /> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Нема мреже"</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wi-Fi искључен"</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Wi-Fi екран"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Нема везе са Wi-Fi екраном"</string> + <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) --> + <skip /> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Осветљеност"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"АУТОМАТСКА"</string> </resources> diff --git a/packages/SystemUI/res/values-sv/strings.xml b/packages/SystemUI/res/values-sv/strings.xml index eb76ad346948..8d7e8c4997e8 100644 --- a/packages/SystemUI/res/values-sv/strings.xml +++ b/packages/SystemUI/res/values-sv/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi: en stapel."</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi: två staplar."</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi: tre staplar."</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Wi-Fi-signalen är full."</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Wi-Fi-signalen är full."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Ingen WiMAX."</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX: en stapel."</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX: två staplar."</string> @@ -168,11 +168,17 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"Inställningar"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"Tid"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"Jag"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string> + <!-- no translation found for quick_settings_wifi_label (9135344704899546041) --> + <skip /> + <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) --> + <skip /> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Inget nätverk"</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Inaktivera Wi-Fi"</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Wi-Fi-skärm"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Ingen anslutning till Wi-Fi-skärm"</string> + <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) --> + <skip /> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Ljusstyrka"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTO"</string> </resources> diff --git a/packages/SystemUI/res/values-sw/strings.xml b/packages/SystemUI/res/values-sw/strings.xml index e29a085405d0..cfac6e403356 100644 --- a/packages/SystemUI/res/values-sw/strings.xml +++ b/packages/SystemUI/res/values-sw/strings.xml @@ -102,7 +102,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Mwambaa mmoja wa Wi-Fi."</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Miambaa miwili ya Wi-Fi."</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Miamba tatu ya Wi-Fi."</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Ishara ya Mtandao hewa imejaa"</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Ishara kamili ya Wi-Fi."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Hakuna WiMAX."</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"Pau moja ya WiMAX."</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Pau mbili za WiMAX."</string> @@ -166,11 +166,17 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"Mipangilio"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"Muda"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"Mimi"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wifi"</string> + <!-- no translation found for quick_settings_wifi_label (9135344704899546041) --> + <skip /> + <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) --> + <skip /> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Hakuna Mtandao"</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wifi Imezimwa"</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Onyesho la Wifi"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Hakuna Muunganisho wa Onyesho la Wifi"</string> + <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) --> + <skip /> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Ung\'avu"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"KIOTOMATIKI"</string> </resources> diff --git a/packages/SystemUI/res/values-sw380dp/dimens.xml b/packages/SystemUI/res/values-sw380dp/dimens.xml new file mode 100644 index 000000000000..b39e94cd8ee1 --- /dev/null +++ b/packages/SystemUI/res/values-sw380dp/dimens.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + * Copyright (c) 2012, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. +*/ +--> +<resources> + <!-- The fixed height of each tile --> + <dimen name="quick_settings_cell_height">124dp</dimen> +</resources> diff --git a/packages/SystemUI/res/values-th/strings.xml b/packages/SystemUI/res/values-th/strings.xml index 506c9b2162ea..b43b11168e44 100644 --- a/packages/SystemUI/res/values-th/strings.xml +++ b/packages/SystemUI/res/values-th/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"สัญญาณ WiFi หนึ่งขีด"</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"สัญญาณ WiFi สองขีด"</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"สัญญาณ WiFi สามขีด"</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"สัญญาณ WiFi เต็ม"</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"สัญญาณ WiFi เต็ม"</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"ไม่มีสัญญาณ WiMAX"</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"สัญญาณ WiMAX หนึ่งขีด"</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"สัญญาณ WiMAX สองขีด"</string> @@ -168,11 +168,17 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"การตั้งค่า"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"เวลา"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"ฉัน"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"WiFi"</string> + <!-- no translation found for quick_settings_wifi_label (9135344704899546041) --> + <skip /> + <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) --> + <skip /> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"ไม่มีเครือข่าย"</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"ปิด WiFi"</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"การแสดงผลด้วย WiFi"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"ไม่มีการเชื่อมต่อการแสดงผลด้วย WiFi"</string> + <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) --> + <skip /> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"ความสว่าง"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"อัตโนมัติ"</string> </resources> diff --git a/packages/SystemUI/res/values-tl/strings.xml b/packages/SystemUI/res/values-tl/strings.xml index 7edd45ad78bb..ee710451b042 100644 --- a/packages/SystemUI/res/values-tl/strings.xml +++ b/packages/SystemUI/res/values-tl/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Isang bar ang Wi-Fi."</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Dalawang bar ang Wi-Fi."</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Tatlong bar ang Wi-Fi."</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Puno ang signal ng WiFi."</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Puno ang signal ng Wi-Fi."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Walang WiMAX."</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX na isang bar."</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX na dalawang bar."</string> @@ -168,11 +168,17 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"Mga Setting"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"Oras"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"Ako"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wifi"</string> + <!-- no translation found for quick_settings_wifi_label (9135344704899546041) --> + <skip /> + <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) --> + <skip /> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Walang Network"</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Naka-off ang Wifi"</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Wifi Display"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Walang Koneksyon sa Wifi Display"</string> + <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) --> + <skip /> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Brightness"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTO"</string> </resources> diff --git a/packages/SystemUI/res/values-tr/strings.xml b/packages/SystemUI/res/values-tr/strings.xml index a2c08a110e89..f063c07feeb4 100644 --- a/packages/SystemUI/res/values-tr/strings.xml +++ b/packages/SystemUI/res/values-tr/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Kablosuz gücü tek çubukta."</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Kablosuz sinyal gücü iki çubuk."</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Kablosuz sinyal gücü üç çubuk."</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Kablosuz sinyali tam."</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Kablosuz sinyal gücü tam."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"WiMAX yok."</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX tek çubuk."</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX iki çubuk."</string> @@ -168,11 +168,17 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"Ayarlar"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"Saat"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"Ben"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Kablosuz"</string> + <!-- no translation found for quick_settings_wifi_label (9135344704899546041) --> + <skip /> + <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) --> + <skip /> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Ağ yok"</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Kablosuz Kapalı"</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Kablosuz Ekran"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Kablosuz Ekran Bağlantısı Yok"</string> + <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) --> + <skip /> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Parlaklık"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"OTOMATİK"</string> </resources> diff --git a/packages/SystemUI/res/values-uk/strings.xml b/packages/SystemUI/res/values-uk/strings.xml index a6cef76e24b3..2890dcc3a102 100644 --- a/packages/SystemUI/res/values-uk/strings.xml +++ b/packages/SystemUI/res/values-uk/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Одна смужка сигналу Wi-Fi."</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Дві смужки сигналу Wi-Fi."</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Три смужки сигналу Wi-Fi."</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Максимальний сигнал Wi-Fi."</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Максимальний сигнал Wi-Fi."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Немає сигналу WiMAX."</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"Одна смужка сигналу WiMAX."</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Дві смужки сигналу WiMAX."</string> @@ -168,11 +168,17 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"Налаштування"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"Час"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"Я"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string> + <!-- no translation found for quick_settings_wifi_label (9135344704899546041) --> + <skip /> + <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) --> + <skip /> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Немає мережі"</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wi-Fi вимкнено"</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Екран Wi-Fi"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Немає з’єднання з екраном Wi-Fi"</string> + <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) --> + <skip /> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Яскравість"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"АВТО"</string> </resources> diff --git a/packages/SystemUI/res/values-vi/strings.xml b/packages/SystemUI/res/values-vi/strings.xml index dcc472ab7ec8..1b4fbfc7e1e9 100644 --- a/packages/SystemUI/res/values-vi/strings.xml +++ b/packages/SystemUI/res/values-vi/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi một vạch."</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi hai vạch."</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi ba vạch."</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Tín hiệu WiFi đầy đủ."</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Tín hiệu Wi-Fi đã đầy."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Không có WiMAX."</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX một vạch."</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX hai vạch."</string> @@ -168,11 +168,17 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"Cài đặt"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"Thời gian"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"Tôi"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wifi"</string> + <!-- no translation found for quick_settings_wifi_label (9135344704899546041) --> + <skip /> + <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) --> + <skip /> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Không có mạng nào"</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Đã tắt Wifi"</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Màn hình Wifi"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Không kết nối màn hình Wifi"</string> + <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) --> + <skip /> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Độ sáng"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"TỰ ĐỘNG"</string> </resources> diff --git a/packages/SystemUI/res/values-zh-rCN/strings.xml b/packages/SystemUI/res/values-zh-rCN/strings.xml index ded22f411b51..d69e844a9dc3 100644 --- a/packages/SystemUI/res/values-zh-rCN/strings.xml +++ b/packages/SystemUI/res/values-zh-rCN/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi 信号强度为 1 格。"</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi 信号强度为 2 格。"</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi 信号强度为 3 格。"</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"WiFi 信号满格。"</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Wi-Fi 信号强度为满格。"</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"无 WiMAX 信号。"</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX 信号强度为一格。"</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX 信号强度为两格。"</string> @@ -170,11 +170,17 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"设置"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"时间"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"我"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string> + <!-- no translation found for quick_settings_wifi_label (9135344704899546041) --> + <skip /> + <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) --> + <skip /> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"无网络"</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"关闭 Wi-Fi"</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"W-Fi 显示设备"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"没有 Wi-Fi 显示设备连接"</string> + <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) --> + <skip /> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"亮度"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"自动"</string> </resources> diff --git a/packages/SystemUI/res/values-zh-rTW/strings.xml b/packages/SystemUI/res/values-zh-rTW/strings.xml index e1c032c3d711..6248c16a44f4 100644 --- a/packages/SystemUI/res/values-zh-rTW/strings.xml +++ b/packages/SystemUI/res/values-zh-rTW/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi 訊號一格。"</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi 訊號兩格。"</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi 訊號三格。"</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"WiFi 訊號滿格。"</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Wi-Fi 訊號滿格。"</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"沒有 WiMAX 訊號。"</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX 訊號一格。"</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX 訊號兩格。"</string> @@ -170,11 +170,17 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"設定"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"時間"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"我"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"WiFi"</string> + <!-- no translation found for quick_settings_wifi_label (9135344704899546041) --> + <skip /> + <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) --> + <skip /> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"沒有網路"</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"關閉 WiFi"</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"WiFi 顯示裝置"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"未連接 WiFi 顯示裝置"</string> + <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) --> + <skip /> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"亮度"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"自動"</string> </resources> diff --git a/packages/SystemUI/res/values-zu/strings.xml b/packages/SystemUI/res/values-zu/strings.xml index b1316bfdc467..989a9e9dfea4 100644 --- a/packages/SystemUI/res/values-zu/strings.xml +++ b/packages/SystemUI/res/values-zu/strings.xml @@ -104,7 +104,7 @@ <string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"I-Wi-Fi umugqaa owodwa."</string> <string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"I-Wi-Fi imigqaa emibili."</string> <string name="accessibility_wifi_three_bars" msgid="928322805193265041">"I-Wi-Fi imigqaa emithathu."</string> - <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"i-signal ye-WiFi igcwele"</string> + <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Uphawu lwe-Wi-Fi igcwele."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Ayikho i-WiMAX."</string> <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"Ibha eyodwa ye-WiMAX."</string> <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Amabha amabili we-WiMAX."</string> @@ -168,11 +168,17 @@ <string name="quick_settings_settings_label" msgid="5326556592578065401">"Izilungiselelo"</string> <string name="quick_settings_time_label" msgid="4635969182239736408">"Isikhathi"</string> <string name="quick_settings_user_label" msgid="5238995632130897840">"Mina"</string> - <string name="quick_settings_wifi_label" msgid="4393429107095001520">"I-WiFi"</string> + <!-- no translation found for quick_settings_wifi_label (9135344704899546041) --> + <skip /> + <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) --> + <skip /> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Ayikho inethiwekhi"</string> - <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"I-Wifi ivaliwe"</string> - <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Ukubuka kwe-Wifi"</string> - <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Alukho uxhumo lokubonisa le-Wifi"</string> + <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) --> + <skip /> + <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) --> + <skip /> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Ukugqama"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"OKUZENZAKALELAYO"</string> </resources> diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java index d8bbee9f7b44..de016c002304 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java @@ -32,6 +32,7 @@ import com.android.systemui.recent.TaskDescription; import com.android.systemui.statusbar.policy.NotificationRowLayout; import com.android.systemui.statusbar.tablet.StatusBarPanel; +import android.app.ActivityManager; import android.app.ActivityManagerNative; import android.app.ActivityOptions; import android.app.KeyguardManager; @@ -261,12 +262,7 @@ public abstract class BaseStatusBar extends SystemUI implements )); } - // XXX: this is currently broken and will always return 0, but should start working at some point - try { - mCurrentUserId = ActivityManagerNative.getDefault().getCurrentUser().id; - } catch (RemoteException e) { - Log.v(TAG, "Couldn't get current user ID; guessing it's 0", e); - } + mCurrentUserId = ActivityManager.getCurrentUser(); IntentFilter filter = new IntentFilter(); filter.addAction(Intent.ACTION_USER_SWITCHED); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java index 7077018af837..585793efd364 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java @@ -31,6 +31,7 @@ import android.content.IntentFilter; import android.content.Loader; import android.content.res.Resources; import android.database.Cursor; +import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.graphics.drawable.LevelListDrawable; import android.hardware.display.DisplayManager; @@ -40,6 +41,7 @@ import android.os.Handler; import android.os.RemoteException; import android.os.SystemProperties; import android.os.UserHandle; +import android.os.UserManager; import android.provider.ContactsContract; import android.provider.Settings; import android.view.LayoutInflater; @@ -156,10 +158,13 @@ class QuickSettings { bluetoothController.addStateChangedCallback(mModel); batteryController.addStateChangedCallback(mModel); locationController.addStateChangedCallback(mModel); - RotationPolicy.registerRotationPolicyListener(mContext, mRotationPolicyListener); + RotationPolicy.registerRotationPolicyListener(mContext, mRotationPolicyListener, + UserHandle.USER_ALL); } private void queryForUserInformation() { + System.out.println("queryForUserInformation"); + Uri userContactUri = Uri.withAppendedPath( ContactsContract.Profile.CONTENT_URI, ContactsContract.Contacts.Data.CONTENT_DIRECTORY); @@ -184,9 +189,11 @@ class QuickSettings { @Override public void onLoadComplete(Loader<Cursor> loader, Cursor cursor) { + UserManager userManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE); if (cursor != null && cursor.moveToFirst()) { String name = cursor.getString(0); // DISPLAY_NAME - mModel.setUserTileInfo(name, null); + BitmapDrawable d = new BitmapDrawable(userManager.getUserIcon(userManager.getUserHandle())); + mModel.setUserTileInfo(name, d); /* byte[] photoData = cursor.getBlob(0); Bitmap b = @@ -248,10 +255,11 @@ class QuickSettings { @Override public void refreshView(QuickSettingsTileView view, State state) { UserState us = (UserState) state; + ImageView iv = (ImageView) view.findViewById(R.id.user_imageview); TextView tv = (TextView) view.findViewById(R.id.user_textview); tv.setText(state.label); if (us.avatar != null) { - tv.setCompoundDrawables(null, us.avatar, null, null); + iv.setImageDrawable(us.avatar); } } }); @@ -290,6 +298,13 @@ class QuickSettings { startSettingsActivity(android.provider.Settings.ACTION_SETTINGS); } }); + mModel.addSettingsTile(settingsTile, new QuickSettingsModel.RefreshCallback() { + @Override + public void refreshView(QuickSettingsTileView view, State state) { + TextView tv = (TextView) view.findViewById(R.id.settings_tileview); + tv.setText(state.label); + } + }); parent.addView(settingsTile); mDynamicSpannedTiles.add(settingsTile); } @@ -418,6 +433,7 @@ class QuickSettings { public void refreshView(QuickSettingsTileView view, State state) { TextView tv = (TextView) view.findViewById(R.id.airplane_mode_textview); tv.setCompoundDrawablesWithIntrinsicBounds(0, state.iconId, 0, 0); + tv.setText(state.label); } }); parent.addView(airplaneTile); @@ -476,6 +492,7 @@ class QuickSettings { public void refreshView(QuickSettingsTileView view, State state) { TextView tv = (TextView) view.findViewById(R.id.brightness_textview); tv.setCompoundDrawablesWithIntrinsicBounds(0, state.iconId, 0, 0); + tv.setText(state.label); dismissBrightnessDialog(mBrightnessDialogShortTimeout); } }); @@ -614,6 +631,9 @@ class QuickSettings { void updateResources() { Resources r = mContext.getResources(); + // Update the model + mModel.updateResources(); + // Update the User, Time, and Settings tiles spans, and reset everything else int span = r.getInteger(R.integer.quick_settings_user_time_settings_tile_span); for (QuickSettingsTileView v : mDynamicSpannedTiles) { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java index 04633bfe5e13..5adfeb1b6a77 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java @@ -29,6 +29,7 @@ import android.database.ContentObserver; import android.graphics.drawable.Drawable; import android.hardware.display.WifiDisplayStatus; import android.os.Handler; +import android.os.UserHandle; import android.provider.Settings; import android.provider.Settings.SettingNotFoundException; import android.text.TextUtils; @@ -94,6 +95,16 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, } }; + /** Broadcast receiver to act on user switches to update visuals of per-user state */ + private BroadcastReceiver mUserSwitchedReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + if (Intent.ACTION_USER_SWITCHED.equals(intent.getAction())) { + onUserSwitched(intent); + } + } + }; + /** ContentObserver to determine the next alarm */ private class NextAlarmObserver extends ContentObserver { public NextAlarmObserver(Handler handler) { @@ -188,6 +199,10 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, private RefreshCallback mBugreportCallback; private State mBugreportState = new State(); + private QuickSettingsTileView mSettingsTile; + private RefreshCallback mSettingsCallback; + private State mSettingsState = new State(); + public QuickSettingsModel(Context context) { mContext = context; mHandler = new Handler(); @@ -199,6 +214,29 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, IntentFilter alarmIntentFilter = new IntentFilter(); alarmIntentFilter.addAction(Intent.ACTION_ALARM_CHANGED); context.registerReceiver(mAlarmIntentReceiver, alarmIntentFilter); + + IntentFilter userSwitchedFilter = new IntentFilter(Intent.ACTION_USER_SWITCHED); + context.registerReceiver(mUserSwitchedReceiver, userSwitchedFilter); + } + + void updateResources() { + refreshSettingsTile(); + refreshBatteryTile(); + refreshBluetoothTile(); + refreshBrightnessTile(); + refreshRotationLockTile(); + } + + // Settings + void addSettingsTile(QuickSettingsTileView view, RefreshCallback cb) { + mSettingsTile = view; + mSettingsCallback = cb; + refreshSettingsTile(); + } + void refreshSettingsTile() { + Resources r = mContext.getResources(); + mSettingsState.label = r.getString(R.string.quick_settings_settings_label); + mSettingsCallback.refreshView(mSettingsTile, mSettingsState); } // User @@ -250,7 +288,9 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, } }); mAirplaneModeCallback = cb; - mAirplaneModeCallback.refreshView(mAirplaneModeTile, mAirplaneModeState); + int airplaneMode = Settings.Global.getInt(mContext.getContentResolver(), + Settings.Global.AIRPLANE_MODE_ON, 0); + onAirplaneModeChanged(airplaneMode != 0); } private void setAirplaneModeState(boolean enabled) { // TODO: Sets the view to be "awaiting" if not already awaiting @@ -273,6 +313,7 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, mAirplaneModeState.iconId = (enabled ? R.drawable.ic_qs_airplane_on : R.drawable.ic_qs_airplane_off); + mAirplaneModeState.label = r.getString(R.string.quick_settings_airplane_mode_label); mAirplaneModeCallback.refreshView(mAirplaneModeTile, mAirplaneModeState); } @@ -307,7 +348,7 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, Resources r = mContext.getResources(); mWifiState.enabled = enabled; boolean wifiConnected = enabled && (wifiSignalIconId > 0) && (enabledDesc != null); - boolean wifiNotConnected = enabled && (enabledDesc == null); + boolean wifiNotConnected = (wifiSignalIconId > 0) && (enabledDesc == null); if (wifiConnected) { mWifiState.iconId = wifiSignalIconId; mWifiState.label = removeDoubleQuotes(enabledDesc); @@ -377,6 +418,11 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, } mBluetoothCallback.refreshView(mBluetoothTile, mBluetoothState); } + void refreshBluetoothTile() { + if (mBluetoothTile != null) { + onBluetoothStateChange(mBluetoothState.enabled); + } + } // Battery void addBatteryTile(QuickSettingsTileView view, RefreshCallback cb) { @@ -391,6 +437,9 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, mBatteryState.pluggedIn = pluggedIn; mBatteryCallback.refreshView(mBatteryTile, mBatteryState); } + void refreshBatteryTile() { + mBatteryCallback.refreshView(mBatteryTile, mBatteryState); + } // Location void addLocationTile(QuickSettingsTileView view, RefreshCallback cb) { @@ -544,6 +593,11 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, mRotationLockCallback.refreshView(mRotationLockTile, mRotationLockState); } } + void refreshRotationLockTile() { + if (mRotationLockTile != null) { + onRotationLockChanged(); + } + } // Brightness void addBrightnessTile(QuickSettingsTileView view, RefreshCallback cb) { @@ -553,6 +607,7 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, } @Override public void onBrightnessLevelChanged() { + Resources r = mContext.getResources(); int mode = Settings.System.getInt(mContext.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL); @@ -561,7 +616,19 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, mBrightnessState.iconId = mBrightnessState.autoBrightness ? R.drawable.ic_qs_brightness_auto_on : R.drawable.ic_qs_brightness_auto_off; + mBrightnessState.label = r.getString(R.string.quick_settings_brightness_label); mBrightnessCallback.refreshView(mBrightnessTile, mBrightnessState); } + void refreshBrightnessTile() { + onBrightnessLevelChanged(); + } + + // User switch: need to update visuals of all tiles known to have per-user state + void onUserSwitched(Intent intent) { + onRotationLockChanged(); + onBrightnessLevelChanged(); + onNextAlarmChanged(); + onBugreportChanged(); + } -}
\ No newline at end of file +} diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/AutoRotateController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/AutoRotateController.java index 109395cf3bb0..7d58032c12c8 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/AutoRotateController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/AutoRotateController.java @@ -19,6 +19,7 @@ package com.android.systemui.statusbar.policy; import com.android.internal.view.RotationPolicy; import android.content.Context; +import android.os.UserHandle; import android.widget.CompoundButton; public final class AutoRotateController implements CompoundButton.OnCheckedChangeListener { @@ -44,7 +45,8 @@ public final class AutoRotateController implements CompoundButton.OnCheckedChang mCheckbox.setOnCheckedChangeListener(this); - RotationPolicy.registerRotationPolicyListener(context, mRotationPolicyListener); + RotationPolicy.registerRotationPolicyListener(context, mRotationPolicyListener, + UserHandle.USER_ALL); updateState(); } diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java index 01b53e2be0aa..13ad285e65dc 100755 --- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java +++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java @@ -506,6 +506,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { private boolean mPowerKeyTriggered; private long mPowerKeyTime; + SettingsObserver mSettingsObserver; ShortcutManager mShortcutManager; PowerManager.WakeLock mBroadcastWakeLock; boolean mHavePendingMediaKeyRepeatWithWakeLock; @@ -552,23 +553,32 @@ public class PhoneWindowManager implements WindowManagerPolicy { } void observe() { + // Observe all users' changes ContentResolver resolver = mContext.getContentResolver(); resolver.registerContentObserver(Settings.System.getUriFor( - Settings.System.END_BUTTON_BEHAVIOR), false, this); + Settings.System.END_BUTTON_BEHAVIOR), false, this, + UserHandle.USER_ALL); resolver.registerContentObserver(Settings.Secure.getUriFor( - Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR), false, this); + Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR), false, this, + UserHandle.USER_ALL); resolver.registerContentObserver(Settings.System.getUriFor( - Settings.System.ACCELEROMETER_ROTATION), false, this); + Settings.System.ACCELEROMETER_ROTATION), false, this, + UserHandle.USER_ALL); resolver.registerContentObserver(Settings.System.getUriFor( - Settings.System.USER_ROTATION), false, this); + Settings.System.USER_ROTATION), false, this, + UserHandle.USER_ALL); resolver.registerContentObserver(Settings.System.getUriFor( - Settings.System.SCREEN_OFF_TIMEOUT), false, this); + Settings.System.SCREEN_OFF_TIMEOUT), false, this, + UserHandle.USER_ALL); resolver.registerContentObserver(Settings.System.getUriFor( - Settings.System.POINTER_LOCATION), false, this); + Settings.System.POINTER_LOCATION), false, this, + UserHandle.USER_ALL); resolver.registerContentObserver(Settings.Secure.getUriFor( - Settings.Secure.DEFAULT_INPUT_METHOD), false, this); + Settings.Secure.DEFAULT_INPUT_METHOD), false, this, + UserHandle.USER_ALL); resolver.registerContentObserver(Settings.System.getUriFor( - "fancy_rotation_anim"), false, this); + "fancy_rotation_anim"), false, this, + UserHandle.USER_ALL); updateSettings(); } @@ -875,8 +885,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { try { mOrientationListener.setCurrentRotation(windowManager.getRotation()); } catch (RemoteException ex) { } - SettingsObserver settingsObserver = new SettingsObserver(mHandler); - settingsObserver.observe(); + mSettingsObserver = new SettingsObserver(mHandler); + mSettingsObserver.observe(); mShortcutManager = new ShortcutManager(context, mHandler); mShortcutManager.observe(); mUiMode = context.getResources().getInteger( @@ -928,6 +938,10 @@ public class PhoneWindowManager implements WindowManagerPolicy { Intent.EXTRA_DOCK_STATE_UNDOCKED); } + // register for multiuser-relevant broadcasts + filter = new IntentFilter(Intent.ACTION_USER_SWITCHED); + context.registerReceiver(mMultiuserReceiver, filter); + mVibrator = (Vibrator)context.getSystemService(Context.VIBRATOR_SERVICE); mLongPressVibePattern = getLongIntArray(mContext.getResources(), com.android.internal.R.array.config_longPressVibePattern); @@ -1066,22 +1080,25 @@ public class PhoneWindowManager implements WindowManagerPolicy { ContentResolver resolver = mContext.getContentResolver(); boolean updateRotation = false; synchronized (mLock) { - mEndcallBehavior = Settings.System.getInt(resolver, + mEndcallBehavior = Settings.System.getIntForUser(resolver, Settings.System.END_BUTTON_BEHAVIOR, - Settings.System.END_BUTTON_BEHAVIOR_DEFAULT); - mIncallPowerBehavior = Settings.Secure.getInt(resolver, + Settings.System.END_BUTTON_BEHAVIOR_DEFAULT, + UserHandle.USER_CURRENT); + mIncallPowerBehavior = Settings.Secure.getIntForUser(resolver, Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR, - Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR_DEFAULT); + Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR_DEFAULT, + UserHandle.USER_CURRENT); // Configure rotation lock. - int userRotation = Settings.System.getInt(resolver, - Settings.System.USER_ROTATION, Surface.ROTATION_0); + int userRotation = Settings.System.getIntForUser(resolver, + Settings.System.USER_ROTATION, Surface.ROTATION_0, + UserHandle.USER_CURRENT); if (mUserRotation != userRotation) { mUserRotation = userRotation; updateRotation = true; } - int userRotationMode = Settings.System.getInt(resolver, - Settings.System.ACCELEROMETER_ROTATION, 0) != 0 ? + int userRotationMode = Settings.System.getIntForUser(resolver, + Settings.System.ACCELEROMETER_ROTATION, 0, UserHandle.USER_CURRENT) != 0 ? WindowManagerPolicy.USER_ROTATION_FREE : WindowManagerPolicy.USER_ROTATION_LOCKED; if (mUserRotationMode != userRotationMode) { @@ -1091,8 +1108,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { } if (mSystemReady) { - int pointerLocation = Settings.System.getInt(resolver, - Settings.System.POINTER_LOCATION, 0); + int pointerLocation = Settings.System.getIntForUser(resolver, + Settings.System.POINTER_LOCATION, 0, UserHandle.USER_CURRENT); if (mPointerLocationMode != pointerLocation) { mPointerLocationMode = pointerLocation; mHandler.sendEmptyMessage(pointerLocation != 0 ? @@ -1100,10 +1117,10 @@ public class PhoneWindowManager implements WindowManagerPolicy { } } // use screen off timeout setting as the timeout for the lockscreen - mLockScreenTimeout = Settings.System.getInt(resolver, - Settings.System.SCREEN_OFF_TIMEOUT, 0); - String imId = Settings.Secure.getString(resolver, - Settings.Secure.DEFAULT_INPUT_METHOD); + mLockScreenTimeout = Settings.System.getIntForUser(resolver, + Settings.System.SCREEN_OFF_TIMEOUT, 0, UserHandle.USER_CURRENT); + String imId = Settings.Secure.getStringForUser(resolver, + Settings.Secure.DEFAULT_INPUT_METHOD, UserHandle.USER_CURRENT); boolean hasSoftInput = imId != null && imId.length() > 0; if (mHasSoftInput != hasSoftInput) { mHasSoftInput = hasSoftInput; @@ -3557,6 +3574,19 @@ public class PhoneWindowManager implements WindowManagerPolicy { } }; + BroadcastReceiver mMultiuserReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + if (Intent.ACTION_USER_SWITCHED.equals(intent.getAction())) { + // tickle the settings observer: this first ensures that we're + // observing the relevant settings for the newly-active user, + // and then updates our own bookkeeping based on the now- + // current user. + mSettingsObserver.onChange(false); + } + } + }; + /** {@inheritDoc} */ public void screenTurnedOff(int why) { EventLog.writeEvent(70000, 0); @@ -3889,16 +3919,19 @@ public class PhoneWindowManager implements WindowManagerPolicy { // mUserRotationMode and mUserRotation will be assigned by the content observer if (mode == WindowManagerPolicy.USER_ROTATION_LOCKED) { - Settings.System.putInt(res, + Settings.System.putIntForUser(res, Settings.System.USER_ROTATION, - rot); - Settings.System.putInt(res, + rot, + UserHandle.USER_CURRENT); + Settings.System.putIntForUser(res, Settings.System.ACCELEROMETER_ROTATION, - 0); + 0, + UserHandle.USER_CURRENT); } else { - Settings.System.putInt(res, + Settings.System.putIntForUser(res, Settings.System.ACCELEROMETER_ROTATION, - 1); + 1, + UserHandle.USER_CURRENT); } } @@ -4218,8 +4251,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { } public boolean performHapticFeedbackLw(WindowState win, int effectId, boolean always) { - final boolean hapticsDisabled = Settings.System.getInt(mContext.getContentResolver(), - Settings.System.HAPTIC_FEEDBACK_ENABLED, 0) == 0; + final boolean hapticsDisabled = Settings.System.getIntForUser(mContext.getContentResolver(), + Settings.System.HAPTIC_FEEDBACK_ENABLED, 0, UserHandle.USER_CURRENT) == 0; if (!always && (hapticsDisabled || mKeyguardMediator.isShowingAndNotHidden())) { return false; } diff --git a/policy/src/com/android/internal/policy/impl/keyguard/ClockView.java b/policy/src/com/android/internal/policy/impl/keyguard/ClockView.java index ece09489ad2b..cbbc92cc13a7 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/ClockView.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/ClockView.java @@ -40,6 +40,7 @@ import com.android.internal.R; * Displays the time */ public class ClockView extends RelativeLayout { + private static final String ANDROID_CLOCK_FONT_FILE = "/system/fonts/AndroidClock.ttf"; private final static String M12 = "h:mm"; private final static String M24 = "kk:mm"; @@ -153,7 +154,7 @@ public class ClockView extends RelativeLayout { protected void onFinishInflate() { super.onFinishInflate(); mTimeView = (TextView) findViewById(R.id.clock_text); - mTimeView.setTypeface(Typeface.create("sans-serif-thin", Typeface.NORMAL)); + mTimeView.setTypeface(Typeface.createFromFile(ANDROID_CLOCK_FONT_FILE)); mAmPm = new AmPm(this, null); mCalendar = Calendar.getInstance(); setDateFormat(); diff --git a/policy/src/com/android/internal/policy/impl/keyguard/FaceUnlock.java b/policy/src/com/android/internal/policy/impl/keyguard/FaceUnlock.java index a4159d0e69cf..4f2f6bfdefe7 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/FaceUnlock.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/FaceUnlock.java @@ -29,6 +29,7 @@ import android.os.Handler; import android.os.IBinder; import android.os.Looper; import android.os.Message; +import android.os.PowerManager; import android.os.RemoteException; import android.util.Log; import android.view.View; @@ -128,6 +129,8 @@ public class FaceUnlock implements BiometricSensorUnlock, Handler.Callback { */ public void hide() { if (DEBUG) Log.d(TAG, "hide()"); + // Removes any wakelock messages to make sure they don't cause the screen to turn back on. + mHandler.removeMessages(MSG_POKE_WAKELOCK); // Remove messages to prevent a delayed show message from undo-ing the hide removeDisplayMessages(); mHandler.sendEmptyMessage(MSG_HIDE_FACE_UNLOCK_VIEW); @@ -384,10 +387,14 @@ public class FaceUnlock implements BiometricSensorUnlock, Handler.Callback { } /** - * Pokes the wakelock to keep the screen alive and active for a specific amount of time. + * If the screen is on, pokes the wakelock to keep the screen alive and active for a specific + * amount of time. */ void handlePokeWakelock(int millis) { + PowerManager powerManager = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE); + if (powerManager.isScreenOn()) { mKeyguardScreenCallback.userActivity(millis); + } } /** diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardFaceUnlockView.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardFaceUnlockView.java index 062c1be85e69..592281086e11 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardFaceUnlockView.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardFaceUnlockView.java @@ -69,6 +69,14 @@ public class KeyguardFaceUnlockView extends LinearLayout implements KeyguardSecu } @Override + public void onDetachedFromWindow() { + if (mBiometricUnlock != null) { + mBiometricUnlock.hide(); + mBiometricUnlock.stop(); + } + } + + @Override public void onPause() { if (mBiometricUnlock != null) { mBiometricUnlock.hide(); diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardPasswordView.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardPasswordView.java index 92bc93cca670..4f2545f880b2 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardPasswordView.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardPasswordView.java @@ -122,7 +122,15 @@ public class KeyguardPasswordView extends LinearLayout mPasswordEntry = (EditText) findViewById(R.id.passwordEntry); mPasswordEntry.setOnEditorActionListener(this); - mKeyboardHelper = new PasswordEntryKeyboardHelper(mContext, mKeyboardView, this, false); + mKeyboardHelper = new PasswordEntryKeyboardHelper(mContext, mKeyboardView, this, false, + new int[] { + R.xml.kg_password_kbd_numeric, + com.android.internal.R.xml.password_kbd_qwerty, + com.android.internal.R.xml.password_kbd_qwerty_shifted, + com.android.internal.R.xml.password_kbd_symbols, + com.android.internal.R.xml.password_kbd_symbols_shift + } + ); mKeyboardHelper.setEnableHaptics(mLockPatternUtils.isTactileFeedbackEnabled()); boolean imeOrDeleteButtonVisible = false; diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardPatternView.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardPatternView.java index 780f1179f260..e4b779805afc 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardPatternView.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardPatternView.java @@ -31,7 +31,7 @@ import android.util.Log; import android.view.MotionEvent; import android.view.View; import android.widget.Button; -import android.widget.GridLayout; +import android.widget.LinearLayout; import com.android.internal.widget.LockPatternUtils; import com.android.internal.widget.LockPatternView; @@ -40,7 +40,7 @@ import com.android.internal.R; import java.io.IOException; import java.util.List; -public class KeyguardPatternView extends GridLayout implements KeyguardSecurityView { +public class KeyguardPatternView extends LinearLayout implements KeyguardSecurityView { private static final String TAG = "SecurityPatternView"; private static final boolean DEBUG = false; diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSimPinView.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSimPinView.java index bc5500877f9d..f913519b5e33 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSimPinView.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSimPinView.java @@ -82,7 +82,14 @@ public class KeyguardSimPinView extends LinearLayout mPinEntry.setOnEditorActionListener(this); mKeyboardView = (PasswordEntryKeyboardView) findViewById(R.id.keyboard); - mKeyboardHelper = new PasswordEntryKeyboardHelper(mContext, mKeyboardView, this, false); + mKeyboardHelper = new PasswordEntryKeyboardHelper(mContext, mKeyboardView, this, false, + new int[] { + R.xml.kg_password_kbd_numeric, + com.android.internal.R.xml.password_kbd_qwerty, + com.android.internal.R.xml.password_kbd_qwerty_shifted, + com.android.internal.R.xml.password_kbd_symbols, + com.android.internal.R.xml.password_kbd_symbols_shift + }); mKeyboardHelper.setKeyboardMode(PasswordEntryKeyboardHelper.KEYBOARD_MODE_NUMERIC); mKeyboardHelper.setEnableHaptics(mLockPatternUtils.isTactileFeedbackEnabled()); diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSimPukView.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSimPukView.java index e04bff975901..d4bed2552f22 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSimPukView.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSimPukView.java @@ -96,7 +96,14 @@ public class KeyguardSimPukView extends LinearLayout implements View.OnClickList mDelPinButton.setOnClickListener(this); mKeyboardView = (PasswordEntryKeyboardView) findViewById(R.id.keyboard); - mKeyboardHelper = new PasswordEntryKeyboardHelper(mContext, mKeyboardView, this, false); + mKeyboardHelper = new PasswordEntryKeyboardHelper(mContext, mKeyboardView, this, false, + new int[] { + R.xml.kg_password_kbd_numeric, + com.android.internal.R.xml.password_kbd_qwerty, + com.android.internal.R.xml.password_kbd_qwerty_shifted, + com.android.internal.R.xml.password_kbd_symbols, + com.android.internal.R.xml.password_kbd_symbols_shift + }); mKeyboardHelper.setKeyboardMode(PasswordEntryKeyboardHelper.KEYBOARD_MODE_NUMERIC); mKeyboardHelper.setEnableHaptics(mLockPatternUtils.isTactileFeedbackEnabled()); diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusViewManager.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusViewManager.java index b30913acb28a..701017d9b6ca 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusViewManager.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusViewManager.java @@ -102,7 +102,8 @@ class KeyguardStatusViewManager { public KeyguardStatusViewManager(View view) { if (DEBUG) Log.v(TAG, "KeyguardStatusViewManager()"); mContainer = view; - mDateFormatString = getContext().getResources().getText(R.string.keyguard_wday_day_month); + mDateFormatString = getContext().getResources().getText( + com.android.internal.R.string.abbrev_wday_month_day_no_year); mLockPatternUtils = new LockPatternUtils(view.getContext()); mUpdateMonitor = KeyguardUpdateMonitor.getInstance(view.getContext()); @@ -113,7 +114,7 @@ class KeyguardStatusViewManager { mClockView = (ClockView) view.findViewById(R.id.clock_view); // Use custom font in mDateView - mDateView.setTypeface(Typeface.create("sans-serif-thin", Typeface.NORMAL)); + mDateView.setTypeface(Typeface.SANS_SERIF); // Required to get Marquee to work. final View marqueeViews[] = { mDateView, mStatus1View, mOwnerInfoView, mAlarmStatusView }; @@ -183,6 +184,7 @@ class KeyguardStatusViewManager { Settings.Secure.LOCK_SCREEN_OWNER_INFO_ENABLED, 1, UserHandle.USER_CURRENT) != 0; String text = Settings.Secure.getStringForUser(res, Settings.Secure.LOCK_SCREEN_OWNER_INFO, UserHandle.USER_CURRENT); + text = text != null ? text.trim() : null; // Remove trailing newlines if (ownerInfoEnabled && !TextUtils.isEmpty(text)) { maybeSetUpperCaseText(mOwnerInfoView, text); mOwnerInfoView.setVisibility(View.VISIBLE); @@ -228,8 +230,7 @@ class KeyguardStatusViewManager { } private void maybeSetUpperCaseText(TextView textView, CharSequence text) { - if (KeyguardViewManager.USE_UPPER_CASE - && (textView == mDateView)) { // currently only required for date view + if (KeyguardViewManager.USE_UPPER_CASE) { // currently only required for date view textView.setText(text != null ? text.toString().toUpperCase() : null); } else { textView.setText(text); diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewManager.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewManager.java index 14e4b672a425..ebdb116eaccf 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewManager.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewManager.java @@ -46,7 +46,7 @@ import com.android.internal.R; public class KeyguardViewManager { private final static boolean DEBUG = false; private static String TAG = "KeyguardViewManager"; - public static boolean USE_UPPER_CASE = false; + public static boolean USE_UPPER_CASE = true; private final Context mContext; private final ViewManager mViewManager; diff --git a/services/java/com/android/server/AppWidgetServiceImpl.java b/services/java/com/android/server/AppWidgetServiceImpl.java index 8ec67c401b20..e77f8cf24bcc 100644 --- a/services/java/com/android/server/AppWidgetServiceImpl.java +++ b/services/java/com/android/server/AppWidgetServiceImpl.java @@ -534,6 +534,7 @@ class AppWidgetServiceImpl { final long ident = Binder.clearCallingIdentity(); try { synchronized (mAppWidgetIds) { + options = cloneIfLocalBinder(options); ensureStateLoadedLocked(); AppWidgetId id = lookupAppWidgetIdLocked(appWidgetId); if (id == null) { @@ -817,7 +818,7 @@ class AppWidgetServiceImpl { ensureStateLoadedLocked(); AppWidgetId id = lookupAppWidgetIdLocked(appWidgetId); if (id != null && id.provider != null && !id.provider.zombie) { - return id.provider.info; + return cloneIfLocalBinder(id.provider.info); } return null; } @@ -828,7 +829,7 @@ class AppWidgetServiceImpl { ensureStateLoadedLocked(); AppWidgetId id = lookupAppWidgetIdLocked(appWidgetId); if (id != null) { - return id.views; + return cloneIfLocalBinder(id.views); } return null; } @@ -842,7 +843,7 @@ class AppWidgetServiceImpl { for (int i = 0; i < N; i++) { Provider p = mInstalledProviders.get(i); if (!p.zombie) { - result.add(p.info); + result.add(cloneIfLocalBinder(p.info)); } } return result; @@ -881,6 +882,7 @@ class AppWidgetServiceImpl { public void updateAppWidgetOptions(int appWidgetId, Bundle options) { synchronized (mAppWidgetIds) { + options = cloneIfLocalBinder(options); ensureStateLoadedLocked(); AppWidgetId id = lookupAppWidgetIdLocked(appWidgetId); @@ -907,7 +909,7 @@ class AppWidgetServiceImpl { ensureStateLoadedLocked(); AppWidgetId id = lookupAppWidgetIdLocked(appWidgetId); if (id != null && id.options != null) { - return id.options; + return cloneIfLocalBinder(id.options); } else { return Bundle.EMPTY; } @@ -1062,6 +1064,34 @@ class AppWidgetServiceImpl { } } + private boolean isLocalBinder() { + return Process.myPid() == Binder.getCallingPid(); + } + + private RemoteViews cloneIfLocalBinder(RemoteViews rv) { + if (isLocalBinder() && rv != null) { + return rv.clone(); + } + return rv; + } + + private AppWidgetProviderInfo cloneIfLocalBinder(AppWidgetProviderInfo info) { + if (isLocalBinder() && info != null) { + return info.clone(); + } + return info; + } + + private Bundle cloneIfLocalBinder(Bundle bundle) { + // Note: this is only a shallow copy. For now this will be fine, but it could be problematic + // if we start adding objects to the options. Further, it would only be an issue if keyguard + // used such options. + if (isLocalBinder() && bundle != null) { + return (Bundle) bundle.clone(); + } + return bundle; + } + public int[] startListening(IAppWidgetHost callbacks, String packageName, int hostId, List<RemoteViews> updatedViews) { int callingUid = enforceCallingUid(packageName); @@ -1078,7 +1108,7 @@ class AppWidgetServiceImpl { for (int i = 0; i < N; i++) { AppWidgetId id = instances.get(i); updatedIds[i] = id.appWidgetId; - updatedViews.add(id.views); + updatedViews.add(cloneIfLocalBinder(id.views)); } return updatedIds; } diff --git a/services/java/com/android/server/BackupManagerService.java b/services/java/com/android/server/BackupManagerService.java index 15fc479aa58c..9f01ecae36b6 100644 --- a/services/java/com/android/server/BackupManagerService.java +++ b/services/java/com/android/server/BackupManagerService.java @@ -2451,6 +2451,21 @@ class BackupManagerService extends IBackupManager.Stub { } } + // Cull any packages that run as system-domain uids but do not define their + // own backup agents + for (int i = 0; i < packagesToBackup.size(); ) { + PackageInfo pkg = packagesToBackup.get(i); + if ((pkg.applicationInfo.uid < Process.FIRST_APPLICATION_UID) + && (pkg.applicationInfo.backupAgentName == null)) { + if (MORE_DEBUG) { + Slog.i(TAG, "... ignoring non-agent system package " + pkg.packageName); + } + packagesToBackup.remove(i); + } else { + i++; + } + } + FileOutputStream ofstream = new FileOutputStream(mOutputFile.getFileDescriptor()); OutputStream out = null; @@ -3669,29 +3684,37 @@ class BackupManagerService extends IBackupManager.Stub { // Fall through to IGNORE if the app explicitly disallows backup final int flags = pkgInfo.applicationInfo.flags; if ((flags & ApplicationInfo.FLAG_ALLOW_BACKUP) != 0) { - // Verify signatures against any installed version; if they - // don't match, then we fall though and ignore the data. The - // signatureMatch() method explicitly ignores the signature - // check for packages installed on the system partition, because - // such packages are signed with the platform cert instead of - // the app developer's cert, so they're different on every - // device. - if (signaturesMatch(sigs, pkgInfo)) { - if (pkgInfo.versionCode >= version) { - Slog.i(TAG, "Sig + version match; taking data"); - policy = RestorePolicy.ACCEPT; + // Restore system-uid-space packages only if they have + // defined a custom backup agent + if ((pkgInfo.applicationInfo.uid >= Process.FIRST_APPLICATION_UID) + || (pkgInfo.applicationInfo.backupAgentName != null)) { + // Verify signatures against any installed version; if they + // don't match, then we fall though and ignore the data. The + // signatureMatch() method explicitly ignores the signature + // check for packages installed on the system partition, because + // such packages are signed with the platform cert instead of + // the app developer's cert, so they're different on every + // device. + if (signaturesMatch(sigs, pkgInfo)) { + if (pkgInfo.versionCode >= version) { + Slog.i(TAG, "Sig + version match; taking data"); + policy = RestorePolicy.ACCEPT; + } else { + // The data is from a newer version of the app than + // is presently installed. That means we can only + // use it if the matching apk is also supplied. + Slog.d(TAG, "Data version " + version + + " is newer than installed version " + + pkgInfo.versionCode + " - requiring apk"); + policy = RestorePolicy.ACCEPT_IF_APK; + } } else { - // The data is from a newer version of the app than - // is presently installed. That means we can only - // use it if the matching apk is also supplied. - Slog.d(TAG, "Data version " + version - + " is newer than installed version " - + pkgInfo.versionCode + " - requiring apk"); - policy = RestorePolicy.ACCEPT_IF_APK; + Slog.w(TAG, "Restore manifest signatures do not match " + + "installed application for " + info.packageName); } } else { - Slog.w(TAG, "Restore manifest signatures do not match " - + "installed application for " + info.packageName); + Slog.w(TAG, "Package " + info.packageName + + " is system level with no agent"); } } else { if (DEBUG) Slog.i(TAG, "Restore manifest from " diff --git a/services/java/com/android/server/BatteryService.java b/services/java/com/android/server/BatteryService.java index fe8529b0430f..0b4871df4e49 100644 --- a/services/java/com/android/server/BatteryService.java +++ b/services/java/com/android/server/BatteryService.java @@ -463,10 +463,10 @@ public class BatteryService extends Binder { private final void logOutlier(long duration) { ContentResolver cr = mContext.getContentResolver(); - String dischargeThresholdString = Settings.Secure.getString(cr, - Settings.Secure.BATTERY_DISCHARGE_THRESHOLD); - String durationThresholdString = Settings.Secure.getString(cr, - Settings.Secure.BATTERY_DISCHARGE_DURATION_THRESHOLD); + String dischargeThresholdString = Settings.Global.getString(cr, + Settings.Global.BATTERY_DISCHARGE_THRESHOLD); + String durationThresholdString = Settings.Global.getString(cr, + Settings.Global.BATTERY_DISCHARGE_DURATION_THRESHOLD); if (dischargeThresholdString != null && durationThresholdString != null) { try { diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java index 891cac71cb29..033aa1e42603 100644 --- a/services/java/com/android/server/ConnectivityService.java +++ b/services/java/com/android/server/ConnectivityService.java @@ -378,8 +378,8 @@ public class ConnectivityService extends IConnectivityManager.Stub { } // read our default dns server ip - String dns = Settings.Secure.getString(context.getContentResolver(), - Settings.Secure.DEFAULT_DNS_SERVER); + String dns = Settings.Global.getString(context.getContentResolver(), + Settings.Global.DEFAULT_DNS_SERVER); if (dns == null || dns.length() == 0) { dns = context.getResources().getString( com.android.internal.R.string.config_default_dns_server); @@ -715,9 +715,9 @@ public class ConnectivityService extends IConnectivityManager.Stub { /** Check system properties for the default value then use secure settings value, if any. */ int defaultDelay = SystemProperties.getInt( - "conn." + Settings.Secure.CONNECTIVITY_CHANGE_DELAY, - Settings.Secure.CONNECTIVITY_CHANGE_DELAY_DEFAULT); - return Settings.Secure.getInt(cr, Settings.Secure.CONNECTIVITY_CHANGE_DELAY, + "conn." + Settings.Global.CONNECTIVITY_CHANGE_DELAY, + ConnectivityManager.CONNECTIVITY_CHANGE_DELAY_DEFAULT); + return Settings.Global.getInt(cr, Settings.Global.CONNECTIVITY_CHANGE_DELAY, defaultDelay); } @@ -2997,11 +2997,11 @@ public class ConnectivityService extends IConnectivityManager.Stub { if (VDBG) log("handleInetConditionChange: starting a change hold"); // setup a new hold to debounce this if (mDefaultInetCondition > 50) { - delay = Settings.Secure.getInt(mContext.getContentResolver(), - Settings.Secure.INET_CONDITION_DEBOUNCE_UP_DELAY, 500); + delay = Settings.Global.getInt(mContext.getContentResolver(), + Settings.Global.INET_CONDITION_DEBOUNCE_UP_DELAY, 500); } else { - delay = Settings.Secure.getInt(mContext.getContentResolver(), - Settings.Secure.INET_CONDITION_DEBOUNCE_DOWN_DELAY, 3000); + delay = Settings.Global.getInt(mContext.getContentResolver(), + Settings.Global.INET_CONDITION_DEBOUNCE_DOWN_DELAY, 3000); } mInetConditionChangeInFlight = true; mHandler.sendMessageDelayed(mHandler.obtainMessage(EVENT_INET_CONDITION_HOLD_END, @@ -3070,9 +3070,9 @@ public class ConnectivityService extends IConnectivityManager.Stub { mGlobalProxy = null; } ContentResolver res = mContext.getContentResolver(); - Settings.Secure.putString(res, Settings.Secure.GLOBAL_HTTP_PROXY_HOST, host); - Settings.Secure.putInt(res, Settings.Secure.GLOBAL_HTTP_PROXY_PORT, port); - Settings.Secure.putString(res, Settings.Secure.GLOBAL_HTTP_PROXY_EXCLUSION_LIST, + Settings.Global.putString(res, Settings.Global.GLOBAL_HTTP_PROXY_HOST, host); + Settings.Global.putInt(res, Settings.Global.GLOBAL_HTTP_PROXY_PORT, port); + Settings.Global.putString(res, Settings.Global.GLOBAL_HTTP_PROXY_EXCLUSION_LIST, exclList); } @@ -3084,10 +3084,10 @@ public class ConnectivityService extends IConnectivityManager.Stub { private void loadGlobalProxy() { ContentResolver res = mContext.getContentResolver(); - String host = Settings.Secure.getString(res, Settings.Secure.GLOBAL_HTTP_PROXY_HOST); - int port = Settings.Secure.getInt(res, Settings.Secure.GLOBAL_HTTP_PROXY_PORT, 0); - String exclList = Settings.Secure.getString(res, - Settings.Secure.GLOBAL_HTTP_PROXY_EXCLUSION_LIST); + String host = Settings.Global.getString(res, Settings.Global.GLOBAL_HTTP_PROXY_HOST); + int port = Settings.Global.getInt(res, Settings.Global.GLOBAL_HTTP_PROXY_PORT, 0); + String exclList = Settings.Global.getString(res, + Settings.Global.GLOBAL_HTTP_PROXY_EXCLUSION_LIST); if (!TextUtils.isEmpty(host)) { ProxyProperties proxyProperties = new ProxyProperties(host, port, exclList); synchronized (mGlobalProxyLock) { @@ -3118,8 +3118,8 @@ public class ConnectivityService extends IConnectivityManager.Stub { } private void handleDeprecatedGlobalHttpProxy() { - String proxy = Settings.Secure.getString(mContext.getContentResolver(), - Settings.Secure.HTTP_PROXY); + String proxy = Settings.Global.getString(mContext.getContentResolver(), + Settings.Global.HTTP_PROXY); if (!TextUtils.isEmpty(proxy)) { String data[] = proxy.split(":"); String proxyHost = data[0]; @@ -3162,8 +3162,8 @@ public class ConnectivityService extends IConnectivityManager.Stub { void observe(Context context) { ContentResolver resolver = context.getContentResolver(); - resolver.registerContentObserver(Settings.Secure.getUriFor( - Settings.Secure.HTTP_PROXY), false, this); + resolver.registerContentObserver(Settings.Global.getUriFor( + Settings.Global.HTTP_PROXY), false, this); } @Override diff --git a/services/java/com/android/server/DevicePolicyManagerService.java b/services/java/com/android/server/DevicePolicyManagerService.java index 83fa55ba3e51..9607624316c3 100644 --- a/services/java/com/android/server/DevicePolicyManagerService.java +++ b/services/java/com/android/server/DevicePolicyManagerService.java @@ -2124,9 +2124,9 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { } exclusionList = exclusionList.trim(); ContentResolver res = mContext.getContentResolver(); - Settings.Secure.putString(res, Settings.Secure.GLOBAL_HTTP_PROXY_HOST, data[0]); - Settings.Secure.putInt(res, Settings.Secure.GLOBAL_HTTP_PROXY_PORT, proxyPort); - Settings.Secure.putString(res, Settings.Secure.GLOBAL_HTTP_PROXY_EXCLUSION_LIST, + Settings.Global.putString(res, Settings.Global.GLOBAL_HTTP_PROXY_HOST, data[0]); + Settings.Global.putInt(res, Settings.Global.GLOBAL_HTTP_PROXY_PORT, proxyPort); + Settings.Global.putString(res, Settings.Global.GLOBAL_HTTP_PROXY_EXCLUSION_LIST, exclusionList); } diff --git a/services/java/com/android/server/DeviceStorageMonitorService.java b/services/java/com/android/server/DeviceStorageMonitorService.java index 750a2fb2b255..a4c376d29ed9 100644 --- a/services/java/com/android/server/DeviceStorageMonitorService.java +++ b/services/java/com/android/server/DeviceStorageMonitorService.java @@ -163,8 +163,8 @@ public class DeviceStorageMonitorService extends Binder { mFreeMem = Long.parseLong(debugFreeMem); } // Read the log interval from secure settings - long freeMemLogInterval = Settings.Secure.getLong(mContentResolver, - Settings.Secure.SYS_FREE_STORAGE_LOG_INTERVAL, + long freeMemLogInterval = Settings.Global.getLong(mContentResolver, + Settings.Global.SYS_FREE_STORAGE_LOG_INTERVAL, DEFAULT_FREE_STORAGE_LOG_INTERVAL_IN_MINUTES)*60*1000; //log the amount of free memory in event log long currTime = SystemClock.elapsedRealtime(); @@ -190,8 +190,8 @@ public class DeviceStorageMonitorService extends Binder { mFreeMem, mFreeSystem, mFreeCache); } // Read the reporting threshold from secure settings - long threshold = Settings.Secure.getLong(mContentResolver, - Settings.Secure.DISK_FREE_CHANGE_REPORTING_THRESHOLD, + long threshold = Settings.Global.getLong(mContentResolver, + Settings.Global.DISK_FREE_CHANGE_REPORTING_THRESHOLD, DEFAULT_DISK_FREE_CHANGE_REPORTING_THRESHOLD); // If mFree changed significantly log the new value long delta = mFreeMem - mLastReportedFreeMem; @@ -309,15 +309,15 @@ public class DeviceStorageMonitorService extends Binder { * any way */ private long getMemThreshold() { - long value = Settings.Secure.getInt( + long value = Settings.Global.getInt( mContentResolver, - Settings.Secure.SYS_STORAGE_THRESHOLD_PERCENTAGE, + Settings.Global.SYS_STORAGE_THRESHOLD_PERCENTAGE, DEFAULT_THRESHOLD_PERCENTAGE); if(localLOGV) Slog.v(TAG, "Threshold Percentage="+value); value = (value*mTotalMemory)/100; - long maxValue = Settings.Secure.getInt( + long maxValue = Settings.Global.getInt( mContentResolver, - Settings.Secure.SYS_STORAGE_THRESHOLD_MAX_BYTES, + Settings.Global.SYS_STORAGE_THRESHOLD_MAX_BYTES, DEFAULT_THRESHOLD_MAX_BYTES); //evaluate threshold value return value < maxValue ? value : maxValue; @@ -329,9 +329,9 @@ public class DeviceStorageMonitorService extends Binder { * any way */ private int getMemFullThreshold() { - int value = Settings.Secure.getInt( + int value = Settings.Global.getInt( mContentResolver, - Settings.Secure.SYS_STORAGE_FULL_THRESHOLD_BYTES, + Settings.Global.SYS_STORAGE_FULL_THRESHOLD_BYTES, DEFAULT_FULL_THRESHOLD_BYTES); if(localLOGV) Slog.v(TAG, "Full Threshold Bytes="+value); return value; diff --git a/services/java/com/android/server/DropBoxManagerService.java b/services/java/com/android/server/DropBoxManagerService.java index 0b12410251f4..5008270db770 100644 --- a/services/java/com/android/server/DropBoxManagerService.java +++ b/services/java/com/android/server/DropBoxManagerService.java @@ -146,7 +146,7 @@ public final class DropBoxManagerService extends IDropBoxManagerService.Stub { context.registerReceiver(mReceiver, filter); mContentResolver.registerContentObserver( - Settings.Secure.CONTENT_URI, true, + Settings.Global.CONTENT_URI, true, new ContentObserver(new Handler()) { @Override public void onChange(boolean selfChange) { @@ -265,8 +265,8 @@ public final class DropBoxManagerService extends IDropBoxManagerService.Stub { } public boolean isTagEnabled(String tag) { - return !"disabled".equals(Settings.Secure.getString( - mContentResolver, Settings.Secure.DROPBOX_TAG_PREFIX + tag)); + return !"disabled".equals(Settings.Global.getString( + mContentResolver, Settings.Global.DROPBOX_TAG_PREFIX + tag)); } public synchronized DropBoxManager.Entry getNextEntry(String tag, long millis) { @@ -688,10 +688,10 @@ public final class DropBoxManagerService extends IDropBoxManagerService.Stub { private synchronized long trimToFit() { // Expunge aged items (including tombstones marking deleted data). - int ageSeconds = Settings.Secure.getInt(mContentResolver, - Settings.Secure.DROPBOX_AGE_SECONDS, DEFAULT_AGE_SECONDS); - int maxFiles = Settings.Secure.getInt(mContentResolver, - Settings.Secure.DROPBOX_MAX_FILES, DEFAULT_MAX_FILES); + int ageSeconds = Settings.Global.getInt(mContentResolver, + Settings.Global.DROPBOX_AGE_SECONDS, DEFAULT_AGE_SECONDS); + int maxFiles = Settings.Global.getInt(mContentResolver, + Settings.Global.DROPBOX_MAX_FILES, DEFAULT_MAX_FILES); long cutoffMillis = System.currentTimeMillis() - ageSeconds * 1000; while (!mAllFiles.contents.isEmpty()) { EntryFile entry = mAllFiles.contents.first(); @@ -710,12 +710,12 @@ public final class DropBoxManagerService extends IDropBoxManagerService.Stub { long uptimeMillis = SystemClock.uptimeMillis(); if (uptimeMillis > mCachedQuotaUptimeMillis + QUOTA_RESCAN_MILLIS) { - int quotaPercent = Settings.Secure.getInt(mContentResolver, - Settings.Secure.DROPBOX_QUOTA_PERCENT, DEFAULT_QUOTA_PERCENT); - int reservePercent = Settings.Secure.getInt(mContentResolver, - Settings.Secure.DROPBOX_RESERVE_PERCENT, DEFAULT_RESERVE_PERCENT); - int quotaKb = Settings.Secure.getInt(mContentResolver, - Settings.Secure.DROPBOX_QUOTA_KB, DEFAULT_QUOTA_KB); + int quotaPercent = Settings.Global.getInt(mContentResolver, + Settings.Global.DROPBOX_QUOTA_PERCENT, DEFAULT_QUOTA_PERCENT); + int reservePercent = Settings.Global.getInt(mContentResolver, + Settings.Global.DROPBOX_RESERVE_PERCENT, DEFAULT_RESERVE_PERCENT); + int quotaKb = Settings.Global.getInt(mContentResolver, + Settings.Global.DROPBOX_QUOTA_KB, DEFAULT_QUOTA_KB); mStatFs.restat(mDropBoxDir.getPath()); int available = mStatFs.getAvailableBlocks(); diff --git a/services/java/com/android/server/NsdService.java b/services/java/com/android/server/NsdService.java index 2a7a2eb6873a..1b9742cae6c1 100644 --- a/services/java/com/android/server/NsdService.java +++ b/services/java/com/android/server/NsdService.java @@ -131,7 +131,7 @@ public class NsdService extends INsdManager.Stub { }; mContext.getContentResolver().registerContentObserver( - Settings.Secure.getUriFor(Settings.Secure.NSD_ON), + Settings.Global.getUriFor(Settings.Global.NSD_ON), false, contentObserver); } @@ -433,7 +433,7 @@ public class NsdService extends INsdManager.Stub { public void setEnabled(boolean enable) { mContext.enforceCallingOrSelfPermission(android.Manifest.permission.CONNECTIVITY_INTERNAL, "NsdService"); - Settings.Secure.putInt(mContentResolver, Settings.Secure.NSD_ON, enable ? 1 : 0); + Settings.Global.putInt(mContentResolver, Settings.Global.NSD_ON, enable ? 1 : 0); if (enable) { mNsdStateMachine.sendMessage(NsdManager.ENABLE); } else { @@ -453,7 +453,7 @@ public class NsdService extends INsdManager.Stub { } private boolean isNsdEnabled() { - boolean ret = Settings.Secure.getInt(mContentResolver, Settings.Secure.NSD_ON, 1) == 1; + boolean ret = Settings.Global.getInt(mContentResolver, Settings.Global.NSD_ON, 1) == 1; if (DBG) Slog.d(TAG, "Network service discovery enabled " + ret); return ret; } diff --git a/services/java/com/android/server/ServiceWatcher.java b/services/java/com/android/server/ServiceWatcher.java index 0dfaa0576c1d..e99949b38c02 100644 --- a/services/java/com/android/server/ServiceWatcher.java +++ b/services/java/com/android/server/ServiceWatcher.java @@ -170,7 +170,7 @@ public class ServiceWatcher implements ServiceConnection { } if (D) Log.d(mTag, "binding " + packageName + " (version " + version + ")"); mContext.bindService(intent, this, Context.BIND_AUTO_CREATE | Context.BIND_NOT_FOREGROUND - | Context.BIND_ALLOW_OOM_MANAGEMENT); + | Context.BIND_ALLOW_OOM_MANAGEMENT | Context.BIND_NOT_VISIBLE); } private boolean isSignatureMatch(Signature[] signatures) { diff --git a/services/java/com/android/server/am/ActivityManagerService.java b/services/java/com/android/server/am/ActivityManagerService.java index 370d4270fb15..bfefe6737093 100644 --- a/services/java/com/android/server/am/ActivityManagerService.java +++ b/services/java/com/android/server/am/ActivityManagerService.java @@ -8464,8 +8464,8 @@ public final class ActivityManagerService extends ActivityManagerNative sb.append(crashInfo.stackTrace); } - String setting = Settings.Secure.ERROR_LOGCAT_PREFIX + dropboxTag; - int lines = Settings.Secure.getInt(mContext.getContentResolver(), setting, 0); + String setting = Settings.Global.ERROR_LOGCAT_PREFIX + dropboxTag; + int lines = Settings.Global.getInt(mContext.getContentResolver(), setting, 0); if (lines > 0) { sb.append("\n"); @@ -11514,8 +11514,9 @@ public final class ActivityManagerService extends ActivityManagerNative * Prevent non-system code (defined here to be non-persistent * processes) from sending protected broadcasts. */ - if (callingUid == Process.SYSTEM_UID || callingUid == Process.PHONE_UID - || callingUid == Process.SHELL_UID || callingUid == Process.BLUETOOTH_UID || + int callingAppId = UserHandle.getAppId(callingUid); + if (callingAppId == Process.SYSTEM_UID || callingAppId == Process.PHONE_UID + || callingAppId == Process.SHELL_UID || callingAppId == Process.BLUETOOTH_UID || callingUid == 0) { // Always okay. } else if (callerApp == null || !callerApp.persistent) { diff --git a/services/java/com/android/server/net/NetworkStatsService.java b/services/java/com/android/server/net/NetworkStatsService.java index f2748a305875..0efdead7f9e4 100644 --- a/services/java/com/android/server/net/NetworkStatsService.java +++ b/services/java/com/android/server/net/NetworkStatsService.java @@ -104,7 +104,7 @@ import android.os.RemoteException; import android.os.SystemClock; import android.os.UserHandle; import android.provider.Settings; -import android.provider.Settings.Secure; +import android.provider.Settings.Global; import android.telephony.PhoneStateListener; import android.telephony.TelephonyManager; import android.util.EventLog; @@ -696,7 +696,7 @@ public class NetworkStatsService extends INetworkStatsService.Stub { /** * Update {@link NetworkStatsRecorder} and {@link #mGlobalAlertBytes} to * reflect current {@link #mPersistThreshold} value. Always defers to - * {@link Secure} values when defined. + * {@link Global} values when defined. */ private void updatePersistThresholds() { mDevRecorder.setPersistThreshold(mSettings.getDevPersistBytes(mPersistThreshold)); @@ -1263,7 +1263,7 @@ public class NetworkStatsService extends INetworkStatsService.Stub { /** * Default external settings that read from - * {@link android.provider.Settings.Secure}. + * {@link android.provider.Settings.Global}. */ private static class DefaultNetworkStatsSettings implements NetworkStatsSettings { private final ContentResolver mResolver; diff --git a/services/java/com/android/server/pm/PackageManagerService.java b/services/java/com/android/server/pm/PackageManagerService.java index c4cdd07b8f38..6accb3923ecb 100644 --- a/services/java/com/android/server/pm/PackageManagerService.java +++ b/services/java/com/android/server/pm/PackageManagerService.java @@ -10015,16 +10015,16 @@ public class PackageManagerService extends IPackageManager.Stub { } if (loc == PackageHelper.APP_INSTALL_AUTO || loc == PackageHelper.APP_INSTALL_INTERNAL || loc == PackageHelper.APP_INSTALL_EXTERNAL) { - android.provider.Settings.System.putInt(mContext.getContentResolver(), - android.provider.Settings.Secure.DEFAULT_INSTALL_LOCATION, loc); + android.provider.Settings.Global.putInt(mContext.getContentResolver(), + android.provider.Settings.Global.DEFAULT_INSTALL_LOCATION, loc); return true; } return false; } public int getInstallLocation() { - return android.provider.Settings.System.getInt(mContext.getContentResolver(), - android.provider.Settings.Secure.DEFAULT_INSTALL_LOCATION, + return android.provider.Settings.Global.getInt(mContext.getContentResolver(), + android.provider.Settings.Global.DEFAULT_INSTALL_LOCATION, PackageHelper.APP_INSTALL_AUTO); } @@ -10116,8 +10116,9 @@ public class PackageManagerService extends IPackageManager.Stub { */ private boolean isPermissionEnforcedDefault(String permission) { if (READ_EXTERNAL_STORAGE.equals(permission)) { - return Secure.getInt(mContext.getContentResolver(), - Secure.READ_EXTERNAL_STORAGE_ENFORCED_DEFAULT, 0) != 0; + return android.provider.Settings.Global.getInt(mContext.getContentResolver(), + android.provider.Settings.Global.READ_EXTERNAL_STORAGE_ENFORCED_DEFAULT, 0) + != 0; } else { return true; } diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java index efedbd881c82..23ce52e8d7b9 100755 --- a/services/java/com/android/server/wm/WindowManagerService.java +++ b/services/java/com/android/server/wm/WindowManagerService.java @@ -74,7 +74,6 @@ import android.graphics.Rect; import android.graphics.RectF; import android.graphics.Region; import android.hardware.display.DisplayManager; -import android.hardware.input.InputManager; import android.os.Binder; import android.os.Bundle; import android.os.Debug; @@ -2749,7 +2748,8 @@ public class WindowManagerService extends IWindowManager.Stub } } - if (DEBUG_LAYOUT) Slog.v(TAG, "Relayout " + win + ": " + win.mAttrs); + if (DEBUG_LAYOUT) Slog.v(TAG, "Relayout " + win + ": viewVisibility=" + viewVisibility + + " " + requestedWidth + "x" + requestedHeight + " " + win.mAttrs); win.mEnforceSizeCompat = (win.mAttrs.flags & FLAG_COMPATIBLE_WINDOW) != 0; @@ -4036,7 +4036,8 @@ public class WindowManagerService extends IWindowManager.Stub } changed = mFocusedApp != newFocus; mFocusedApp = newFocus; - if (DEBUG_FOCUS) Slog.v(TAG, "Set focused app to: " + mFocusedApp); + if (DEBUG_FOCUS) Slog.v(TAG, "Set focused app to: " + mFocusedApp + + " moveFocusNow=" + moveFocusNow); if (changed) { mInputMonitor.setFocusedAppLw(newFocus); } @@ -8296,7 +8297,8 @@ public class WindowManagerService extends IWindowManager.Stub if (DEBUG_LAYOUT && !win.mLayoutAttached) { Slog.v(TAG, "1ST PASS " + win + ": gone=" + gone + " mHaveFrame=" + win.mHaveFrame - + " mLayoutAttached=" + win.mLayoutAttached); + + " mLayoutAttached=" + win.mLayoutAttached + + " screen changed=" + win.isConfigDiff(ActivityInfo.CONFIG_SCREEN_SIZE)); final AppWindowToken atoken = win.mAppToken; if (gone) Slog.v(TAG, " GONE: mViewVisibility=" + win.mViewVisibility + " mRelayoutCalled=" @@ -8318,6 +8320,7 @@ public class WindowManagerService extends IWindowManager.Stub // windows, since that means "perform layout as normal, // just don't display"). if (!gone || !win.mHaveFrame || win.mLayoutNeeded + || win.isConfigDiff(ActivityInfo.CONFIG_SCREEN_SIZE) || win.mAttrs.type == TYPE_UNIVERSE_BACKGROUND) { if (!win.mLayoutAttached) { if (initial) { @@ -8753,10 +8756,7 @@ public class WindowManagerService extends IWindowManager.Stub !w.mLastContentInsets.equals(w.mContentInsets); w.mVisibleInsetsChanged |= !w.mLastVisibleInsets.equals(w.mVisibleInsets); - boolean configChanged = - w.mConfiguration != mCurConfiguration - && (w.mConfiguration == null - || mCurConfiguration.diff(w.mConfiguration) != 0); + boolean configChanged = w.isConfigChanged(); if (DEBUG_CONFIGURATION && configChanged) { Slog.v(TAG, "Win " + w + " config changed: " + mCurConfiguration); @@ -9254,10 +9254,7 @@ public class WindowManagerService extends IWindowManager.Stub if (DEBUG_RESIZE || DEBUG_ORIENTATION) Slog.v(TAG, "Reporting new frame to " + win + ": " + win.mCompatFrame); int diff = 0; - boolean configChanged = - win.mConfiguration != mCurConfiguration - && (win.mConfiguration == null - || (diff=mCurConfiguration.diff(win.mConfiguration)) != 0); + boolean configChanged = win.isConfigChanged(); if ((DEBUG_RESIZE || DEBUG_ORIENTATION || DEBUG_CONFIGURATION) && configChanged) { Slog.i(TAG, "Sending new config to window " + win + ": " diff --git a/services/java/com/android/server/wm/WindowState.java b/services/java/com/android/server/wm/WindowState.java index ac958b82e78c..9963d14b18f0 100644 --- a/services/java/com/android/server/wm/WindowState.java +++ b/services/java/com/android/server/wm/WindowState.java @@ -574,6 +574,7 @@ final class WindowState implements WindowManagerPolicy.WindowState { return mAttrs; } + @Override public boolean getNeedsMenuLw(WindowManagerPolicy.WindowState bottom) { int index = -1; WindowState ws = this; @@ -612,6 +613,7 @@ final class WindowState implements WindowManagerPolicy.WindowState { return mLayer; } + @Override public IApplicationToken getAppToken() { return mAppToken != null ? mAppToken.appToken : null; } @@ -801,12 +803,13 @@ final class WindowState implements WindowManagerPolicy.WindowState { return mWinAnimator.mAnimation != null; } + @Override public boolean isGoneForLayoutLw() { final AppWindowToken atoken = mAppToken; return mViewVisibility == View.GONE || !mRelayoutCalled || (atoken == null && mRootToken.hidden) - || (atoken != null && atoken.hiddenRequested) + || (atoken != null && (atoken.hiddenRequested || atoken.hidden)) || mAttachedHidden || mExiting || mDestroying; } @@ -849,6 +852,18 @@ final class WindowState implements WindowManagerPolicy.WindowState { mFrame.right >= screenWidth && mFrame.bottom >= screenHeight; } + boolean isConfigChanged() { + return mConfiguration != mService.mCurConfiguration + && (mConfiguration == null + || (mConfiguration.diff(mService.mCurConfiguration) != 0)); + } + + boolean isConfigDiff(int mask) { + return mConfiguration != mService.mCurConfiguration + && mConfiguration != null + && (mConfiguration.diff(mService.mCurConfiguration) & mask) != 0; + } + void removeLocked() { disposeInputChannel(); diff --git a/services/tests/servicestests/src/com/android/server/DropBoxTest.java b/services/tests/servicestests/src/com/android/server/DropBoxTest.java index f3baff4bd1b4..6ce0a48dfc69 100644 --- a/services/tests/servicestests/src/com/android/server/DropBoxTest.java +++ b/services/tests/servicestests/src/com/android/server/DropBoxTest.java @@ -45,10 +45,10 @@ import java.util.zip.GZIPOutputStream; public class DropBoxTest extends AndroidTestCase { public void tearDown() throws Exception { ContentResolver cr = getContext().getContentResolver(); - Settings.Secure.putString(cr, Settings.Secure.DROPBOX_AGE_SECONDS, ""); - Settings.Secure.putString(cr, Settings.Secure.DROPBOX_MAX_FILES, ""); - Settings.Secure.putString(cr, Settings.Secure.DROPBOX_QUOTA_KB, ""); - Settings.Secure.putString(cr, Settings.Secure.DROPBOX_TAG_PREFIX + "DropBoxTest", ""); + Settings.Global.putString(cr, Settings.Global.DROPBOX_AGE_SECONDS, ""); + Settings.Global.putString(cr, Settings.Global.DROPBOX_MAX_FILES, ""); + Settings.Global.putString(cr, Settings.Global.DROPBOX_QUOTA_KB, ""); + Settings.Global.putString(cr, Settings.Global.DROPBOX_TAG_PREFIX + "DropBoxTest", ""); } public void testAddText() throws Exception { @@ -254,13 +254,13 @@ public class DropBoxTest extends AndroidTestCase { assertTrue(dropbox.isTagEnabled("DropBoxTest")); ContentResolver cr = getContext().getContentResolver(); - Settings.Secure.putString(cr, Settings.Secure.DROPBOX_TAG_PREFIX + "DropBoxTest", + Settings.Global.putString(cr, Settings.Global.DROPBOX_TAG_PREFIX + "DropBoxTest", "disabled"); dropbox.addText("DropBoxTest", "TEST-DISABLED"); assertFalse(dropbox.isTagEnabled("DropBoxTest")); - Settings.Secure.putString(cr, Settings.Secure.DROPBOX_TAG_PREFIX + "DropBoxTest", + Settings.Global.putString(cr, Settings.Global.DROPBOX_TAG_PREFIX + "DropBoxTest", ""); dropbox.addText("DropBoxTest", "TEST-ENABLED-AGAIN"); @@ -330,7 +330,7 @@ public class DropBoxTest extends AndroidTestCase { // Limit storage to 10 blocks int kb = blockSize * 10 / 1024; ContentResolver cr = getContext().getContentResolver(); - Settings.Secure.putString(cr, Settings.Secure.DROPBOX_QUOTA_KB, Integer.toString(kb)); + Settings.Global.putString(cr, Settings.Global.DROPBOX_QUOTA_KB, Integer.toString(kb)); // Three tags using a total of 12 blocks: // DropBoxTest0 [ ][ ] @@ -432,8 +432,8 @@ public class DropBoxTest extends AndroidTestCase { // Limit storage to 10 blocks with an expiration of 1 second int kb = blockSize * 10 / 1024; ContentResolver cr = getContext().getContentResolver(); - Settings.Secure.putString(cr, Settings.Secure.DROPBOX_AGE_SECONDS, "1"); - Settings.Secure.putString(cr, Settings.Secure.DROPBOX_QUOTA_KB, Integer.toString(kb)); + Settings.Global.putString(cr, Settings.Global.DROPBOX_AGE_SECONDS, "1"); + Settings.Global.putString(cr, Settings.Global.DROPBOX_QUOTA_KB, Integer.toString(kb)); // Write one normal entry and another so big that it is instantly tombstoned long before = System.currentTimeMillis(); @@ -497,7 +497,7 @@ public class DropBoxTest extends AndroidTestCase { // Limit to 3 files and add one more entry ContentResolver cr = getContext().getContentResolver(); - Settings.Secure.putString(cr, Settings.Secure.DROPBOX_MAX_FILES, "3"); + Settings.Global.putString(cr, Settings.Global.DROPBOX_MAX_FILES, "3"); dropbox.addText("DropBoxTest", "TEST6"); // Verify only 3 files left |