Merge "Back button dismisses notifications again." into jb-dev
diff --git a/api/current.txt b/api/current.txt
index ab18196..9f7d8d2 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -141,16 +141,34 @@
public static final class Manifest.permission_group {
ctor public Manifest.permission_group();
field public static final java.lang.String ACCOUNTS = "android.permission-group.ACCOUNTS";
+ field public static final java.lang.String APP_INFO = "android.permission-group.APP_INFO";
+ field public static final java.lang.String AUDIO_SETTINGS = "android.permission-group.AUDIO_SETTINGS";
+ field public static final java.lang.String BOOKMARKS = "android.permission-group.BOOKMARKS";
+ field public static final java.lang.String CALENDAR = "android.permission-group.CALENDAR";
+ field public static final java.lang.String CAMERA = "android.permission-group.CAMERA";
field public static final java.lang.String COST_MONEY = "android.permission-group.COST_MONEY";
field public static final java.lang.String DEVELOPMENT_TOOLS = "android.permission-group.DEVELOPMENT_TOOLS";
+ field public static final java.lang.String DEVICE_ALARMS = "android.permission-group.DEVICE_ALARMS";
+ field public static final java.lang.String DISPLAY = "android.permission-group.DISPLAY";
+ field public static final java.lang.String AFFECTS_BATTERY = "android.permission-group.AFFECTS_BATTERY";
field public static final java.lang.String HARDWARE_CONTROLS = "android.permission-group.HARDWARE_CONTROLS";
field public static final java.lang.String LOCATION = "android.permission-group.LOCATION";
field public static final java.lang.String MESSAGES = "android.permission-group.MESSAGES";
+ field public static final java.lang.String MICROPHONE = "android.permission-group.MICROPHONE";
field public static final java.lang.String NETWORK = "android.permission-group.NETWORK";
field public static final java.lang.String PERSONAL_INFO = "android.permission-group.PERSONAL_INFO";
field public static final java.lang.String PHONE_CALLS = "android.permission-group.PHONE_CALLS";
+ field public static final java.lang.String SCREENLOCK = "android.permission-group.SCREENLOCK";
+ field public static final java.lang.String SHORTRANGE_NETWORK = "android.permission-group.SHORTRANGE_NETWORK";
+ field public static final java.lang.String SOCIAL_INFO = "android.permission-group.SOCIAL_INFO";
+ field public static final java.lang.String STATUS_BAR = "android.permission-group.STATUS_BAR";
field public static final java.lang.String STORAGE = "android.permission-group.STORAGE";
+ field public static final java.lang.String SYNC_SETTINGS = "android.permission-group.SYNC_SETTINGS";
+ field public static final java.lang.String SYSTEM_CLOCK = "android.permission-group.SYSTEM_CLOCK";
field public static final java.lang.String SYSTEM_TOOLS = "android.permission-group.SYSTEM_TOOLS";
+ field public static final java.lang.String USER_DICTIONARY = "android.permission-group.USER_DICTIONARY";
+ field public static final java.lang.String VOICEMAIL = "android.permission-group.VOICEMAIL";
+ field public static final java.lang.String WALLPAPER = "android.permission-group.WALLPAPER";
}
public final class R {
@@ -5765,7 +5783,7 @@
field public static final java.lang.String CATEGORY_UNIT_TEST = "android.intent.category.UNIT_TEST";
field public static final android.os.Parcelable.Creator CREATOR;
field public static final java.lang.String EXTRA_ALARM_COUNT = "android.intent.extra.ALARM_COUNT";
- field public static final java.lang.String EXTRA_ALLOW_REPLACE = "android.intent.extra.ALLOW_REPLACE";
+ field public static final deprecated java.lang.String EXTRA_ALLOW_REPLACE = "android.intent.extra.ALLOW_REPLACE";
field public static final java.lang.String EXTRA_BCC = "android.intent.extra.BCC";
field public static final java.lang.String EXTRA_BUG_REPORT = "android.intent.extra.BUG_REPORT";
field public static final java.lang.String EXTRA_CC = "android.intent.extra.CC";
@@ -11003,7 +11021,7 @@
}
public final class MediaCodec {
- method public void configure(java.util.Map<java.lang.String, java.lang.Object>, android.view.Surface, android.media.MediaCrypto, int);
+ method public void configure(android.media.MediaFormat, android.view.Surface, android.media.MediaCrypto, int);
method public static android.media.MediaCodec createByCodecName(java.lang.String);
method public static android.media.MediaCodec createDecoderByType(java.lang.String);
method public static android.media.MediaCodec createEncoderByType(java.lang.String);
@@ -11012,7 +11030,7 @@
method public final void flush();
method public java.nio.ByteBuffer[] getInputBuffers();
method public java.nio.ByteBuffer[] getOutputBuffers();
- method public final java.util.Map<java.lang.String, java.lang.Object> getOutputFormat();
+ method public final android.media.MediaFormat getOutputFormat();
method public final void queueInputBuffer(int, int, int, long, int) throws android.media.MediaCodec.CryptoException;
method public final void queueSecureInputBuffer(int, int, android.media.MediaCodec.CryptoInfo, long, int) throws android.media.MediaCodec.CryptoException;
method public final void release();
@@ -11020,15 +11038,15 @@
method public final void setVideoScalingMode(int);
method public final void start();
method public final void stop();
- field public static int CONFIGURE_FLAG_ENCODE;
- field public static final int FLAG_CODECCONFIG = 2; // 0x2
- field public static final int FLAG_EOS = 4; // 0x4
- field public static final int FLAG_SYNCFRAME = 1; // 0x1
+ field public static final int BUFFER_FLAG_CODEC_CONFIG = 2; // 0x2
+ field public static final int BUFFER_FLAG_END_OF_STREAM = 4; // 0x4
+ field public static final int BUFFER_FLAG_SYNC_FRAME = 1; // 0x1
+ field public static final int CONFIGURE_FLAG_ENCODE = 1; // 0x1
+ field public static final int CRYPTO_MODE_AES_CTR = 1; // 0x1
+ field public static final int CRYPTO_MODE_UNENCRYPTED = 0; // 0x0
field public static final int INFO_OUTPUT_BUFFERS_CHANGED = -3; // 0xfffffffd
field public static final int INFO_OUTPUT_FORMAT_CHANGED = -2; // 0xfffffffe
field public static final int INFO_TRY_AGAIN_LATER = -1; // 0xffffffff
- field public static final int MODE_AES_CTR = 1; // 0x1
- field public static final int MODE_UNENCRYPTED = 0; // 0x0
field public static final int VIDEO_SCALING_MODE_SCALE_TO_FIT = 1; // 0x1
field public static final int VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING = 2; // 0x2
}
@@ -11058,43 +11076,170 @@
field public int numSubSamples;
}
- public final class MediaCodecList {
- method public static final int countCodecs();
- method public static final android.media.MediaCodecList.CodecCapabilities getCodecCapabilities(int, java.lang.String);
- method public static final java.lang.String getCodecName(int);
- method public static final java.lang.String[] getSupportedTypes(int);
- method public static final boolean isEncoder(int);
+ public final class MediaCodecInfo {
+ method public final android.media.MediaCodecInfo.CodecCapabilities getCapabilitiesForType(java.lang.String);
+ method public final java.lang.String getName();
+ method public final java.lang.String[] getSupportedTypes();
+ method public final boolean isEncoder();
}
- public static final class MediaCodecList.CodecCapabilities {
- ctor public MediaCodecList.CodecCapabilities();
+ public static final class MediaCodecInfo.CodecCapabilities {
+ ctor public MediaCodecInfo.CodecCapabilities();
+ field public static final int COLOR_Format12bitRGB444 = 3; // 0x3
+ field public static final int COLOR_Format16bitARGB1555 = 5; // 0x5
+ field public static final int COLOR_Format16bitARGB4444 = 4; // 0x4
+ field public static final int COLOR_Format16bitBGR565 = 7; // 0x7
+ field public static final int COLOR_Format16bitRGB565 = 6; // 0x6
+ field public static final int COLOR_Format18BitBGR666 = 41; // 0x29
+ field public static final int COLOR_Format18bitARGB1665 = 9; // 0x9
+ field public static final int COLOR_Format18bitRGB666 = 8; // 0x8
+ field public static final int COLOR_Format19bitARGB1666 = 10; // 0xa
+ field public static final int COLOR_Format24BitABGR6666 = 43; // 0x2b
+ field public static final int COLOR_Format24BitARGB6666 = 42; // 0x2a
+ field public static final int COLOR_Format24bitARGB1887 = 13; // 0xd
+ field public static final int COLOR_Format24bitBGR888 = 12; // 0xc
+ field public static final int COLOR_Format24bitRGB888 = 11; // 0xb
+ field public static final int COLOR_Format25bitARGB1888 = 14; // 0xe
+ field public static final int COLOR_Format32bitARGB8888 = 16; // 0x10
+ field public static final int COLOR_Format32bitBGRA8888 = 15; // 0xf
+ field public static final int COLOR_Format8bitRGB332 = 2; // 0x2
+ field public static final int COLOR_FormatCbYCrY = 27; // 0x1b
+ field public static final int COLOR_FormatCrYCbY = 28; // 0x1c
+ field public static final int COLOR_FormatL16 = 36; // 0x24
+ field public static final int COLOR_FormatL2 = 33; // 0x21
+ field public static final int COLOR_FormatL24 = 37; // 0x25
+ field public static final int COLOR_FormatL32 = 38; // 0x26
+ field public static final int COLOR_FormatL4 = 34; // 0x22
+ field public static final int COLOR_FormatL8 = 35; // 0x23
+ field public static final int COLOR_FormatMonochrome = 1; // 0x1
+ field public static final int COLOR_FormatRawBayer10bit = 31; // 0x1f
+ field public static final int COLOR_FormatRawBayer8bit = 30; // 0x1e
+ field public static final int COLOR_FormatRawBayer8bitcompressed = 32; // 0x20
+ field public static final int COLOR_FormatYCbYCr = 25; // 0x19
+ field public static final int COLOR_FormatYCrYCb = 26; // 0x1a
+ field public static final int COLOR_FormatYUV411PackedPlanar = 18; // 0x12
+ field public static final int COLOR_FormatYUV411Planar = 17; // 0x11
+ field public static final int COLOR_FormatYUV420PackedPlanar = 20; // 0x14
+ field public static final int COLOR_FormatYUV420PackedSemiPlanar = 39; // 0x27
+ field public static final int COLOR_FormatYUV420Planar = 19; // 0x13
+ field public static final int COLOR_FormatYUV420SemiPlanar = 21; // 0x15
+ field public static final int COLOR_FormatYUV422PackedPlanar = 23; // 0x17
+ field public static final int COLOR_FormatYUV422PackedSemiPlanar = 40; // 0x28
+ field public static final int COLOR_FormatYUV422Planar = 22; // 0x16
+ field public static final int COLOR_FormatYUV422SemiPlanar = 24; // 0x18
+ field public static final int COLOR_FormatYUV444Interleaved = 29; // 0x1d
+ field public static final int COLOR_QCOM_FormatYUV420SemiPlanar = 2141391872; // 0x7fa30c00
+ field public static final int COLOR_TI_FormatYUV420PackedSemiPlanar = 2130706688; // 0x7f000100
field public int[] colorFormats;
- field public android.media.MediaCodecList.CodecProfileLevel[] profileLevels;
+ field public android.media.MediaCodecInfo.CodecProfileLevel[] profileLevels;
}
- public static final class MediaCodecList.CodecProfileLevel {
- ctor public MediaCodecList.CodecProfileLevel();
+ public static final class MediaCodecInfo.CodecProfileLevel {
+ ctor public MediaCodecInfo.CodecProfileLevel();
+ field public static final int AACObjectELD = 39; // 0x27
+ field public static final int AACObjectERLC = 17; // 0x11
+ field public static final int AACObjectHE = 5; // 0x5
+ field public static final int AACObjectHE_PS = 29; // 0x1d
+ field public static final int AACObjectLC = 2; // 0x2
+ field public static final int AACObjectLD = 23; // 0x17
+ field public static final int AACObjectLTP = 4; // 0x4
+ field public static final int AACObjectMain = 1; // 0x1
+ field public static final int AACObjectSSR = 3; // 0x3
+ field public static final int AACObjectScalable = 6; // 0x6
+ field public static final int AVCLevel1 = 1; // 0x1
+ field public static final int AVCLevel11 = 4; // 0x4
+ field public static final int AVCLevel12 = 8; // 0x8
+ field public static final int AVCLevel13 = 16; // 0x10
+ field public static final int AVCLevel1b = 2; // 0x2
+ field public static final int AVCLevel2 = 32; // 0x20
+ field public static final int AVCLevel21 = 64; // 0x40
+ field public static final int AVCLevel22 = 128; // 0x80
+ field public static final int AVCLevel3 = 256; // 0x100
+ field public static final int AVCLevel31 = 512; // 0x200
+ field public static final int AVCLevel32 = 1024; // 0x400
+ field public static final int AVCLevel4 = 2048; // 0x800
+ field public static final int AVCLevel41 = 4096; // 0x1000
+ field public static final int AVCLevel42 = 8192; // 0x2000
+ field public static final int AVCLevel5 = 16384; // 0x4000
+ field public static final int AVCLevel51 = 32768; // 0x8000
+ field public static final int AVCProfileBaseline = 1; // 0x1
+ field public static final int AVCProfileExtended = 4; // 0x4
+ field public static final int AVCProfileHigh = 8; // 0x8
+ field public static final int AVCProfileHigh10 = 16; // 0x10
+ field public static final int AVCProfileHigh422 = 32; // 0x20
+ field public static final int AVCProfileHigh444 = 64; // 0x40
+ field public static final int AVCProfileMain = 2; // 0x2
+ field public static final int H263Level10 = 1; // 0x1
+ field public static final int H263Level20 = 2; // 0x2
+ field public static final int H263Level30 = 4; // 0x4
+ field public static final int H263Level40 = 8; // 0x8
+ field public static final int H263Level45 = 16; // 0x10
+ field public static final int H263Level50 = 32; // 0x20
+ field public static final int H263Level60 = 64; // 0x40
+ field public static final int H263Level70 = 128; // 0x80
+ field public static final int H263ProfileBackwardCompatible = 4; // 0x4
+ field public static final int H263ProfileBaseline = 1; // 0x1
+ field public static final int H263ProfileH320Coding = 2; // 0x2
+ field public static final int H263ProfileHighCompression = 32; // 0x20
+ field public static final int H263ProfileHighLatency = 256; // 0x100
+ field public static final int H263ProfileISWV2 = 8; // 0x8
+ field public static final int H263ProfileISWV3 = 16; // 0x10
+ field public static final int H263ProfileInterlace = 128; // 0x80
+ field public static final int H263ProfileInternet = 64; // 0x40
+ field public static final int MPEG4Level0 = 1; // 0x1
+ field public static final int MPEG4Level0b = 2; // 0x2
+ field public static final int MPEG4Level1 = 4; // 0x4
+ field public static final int MPEG4Level2 = 8; // 0x8
+ field public static final int MPEG4Level3 = 16; // 0x10
+ field public static final int MPEG4Level4 = 32; // 0x20
+ field public static final int MPEG4Level4a = 64; // 0x40
+ field public static final int MPEG4Level5 = 128; // 0x80
+ field public static final int MPEG4ProfileAdvancedCoding = 4096; // 0x1000
+ field public static final int MPEG4ProfileAdvancedCore = 8192; // 0x2000
+ field public static final int MPEG4ProfileAdvancedRealTime = 1024; // 0x400
+ field public static final int MPEG4ProfileAdvancedScalable = 16384; // 0x4000
+ field public static final int MPEG4ProfileAdvancedSimple = 32768; // 0x8000
+ field public static final int MPEG4ProfileBasicAnimated = 256; // 0x100
+ field public static final int MPEG4ProfileCore = 4; // 0x4
+ field public static final int MPEG4ProfileCoreScalable = 2048; // 0x800
+ field public static final int MPEG4ProfileHybrid = 512; // 0x200
+ field public static final int MPEG4ProfileMain = 8; // 0x8
+ field public static final int MPEG4ProfileNbit = 16; // 0x10
+ field public static final int MPEG4ProfileScalableTexture = 32; // 0x20
+ field public static final int MPEG4ProfileSimple = 1; // 0x1
+ field public static final int MPEG4ProfileSimpleFBA = 128; // 0x80
+ field public static final int MPEG4ProfileSimpleFace = 64; // 0x40
+ field public static final int MPEG4ProfileSimpleScalable = 2; // 0x2
field public int level;
field public int profile;
}
+ public final class MediaCodecList {
+ method public static final int getCodecCount();
+ method public static final android.media.MediaCodecInfo getCodecInfoAt(int);
+ }
+
public final class MediaCrypto {
- ctor public MediaCrypto(byte[], byte[]) throws java.lang.RuntimeException;
- method public static final boolean isCryptoSchemeSupported(byte[]);
+ ctor public MediaCrypto(java.util.UUID, byte[]) throws android.media.MediaCryptoException;
+ method public static final boolean isCryptoSchemeSupported(java.util.UUID);
method public final void release();
method public final boolean requiresSecureDecoderComponent(java.lang.String);
}
+ public final class MediaCryptoException extends java.lang.Exception {
+ ctor public MediaCryptoException(java.lang.String);
+ }
+
public final class MediaExtractor {
ctor public MediaExtractor();
method public boolean advance();
- method public int countTracks();
method public long getCachedDuration();
method public boolean getSampleCryptoInfo(android.media.MediaCodec.CryptoInfo);
method public int getSampleFlags();
method public long getSampleTime();
method public int getSampleTrackIndex();
- method public java.util.Map<java.lang.String, java.lang.Object> getTrackFormat(int);
+ method public final int getTrackCount();
+ method public android.media.MediaFormat getTrackFormat(int);
method public boolean hasCacheReachedEndOfStream();
method public int readSampleData(java.nio.ByteBuffer, int);
method public final void release();
@@ -11114,6 +11259,37 @@
field public static final int SEEK_TO_PREVIOUS_SYNC = 0; // 0x0
}
+ public final class MediaFormat {
+ ctor public MediaFormat();
+ method public final boolean containsKey(java.lang.String);
+ method public static final android.media.MediaFormat createAudioFormat(java.lang.String, int, int);
+ method public static final android.media.MediaFormat createVideoFormat(java.lang.String, int, int);
+ method public final java.nio.ByteBuffer getByteBuffer(java.lang.String);
+ method public final float getFloat(java.lang.String);
+ method public final int getInteger(java.lang.String);
+ method public final long getLong(java.lang.String);
+ method public final java.lang.String getString(java.lang.String);
+ method public final void setByteBuffer(java.lang.String, java.nio.ByteBuffer);
+ method public final void setFloat(java.lang.String, float);
+ method public final void setInteger(java.lang.String, int);
+ method public final void setLong(java.lang.String, long);
+ method public final void setString(java.lang.String, java.lang.String);
+ field public static final java.lang.String KEY_AAC_PROFILE = "aac-profile";
+ field public static final java.lang.String KEY_BIT_RATE = "bitrate";
+ field public static final java.lang.String KEY_CHANNEL_COUNT = "channel-count";
+ field public static final java.lang.String KEY_CHANNEL_MASK = "channel-mask";
+ field public static final java.lang.String KEY_COLOR_FORMAT = "color-format";
+ field public static final java.lang.String KEY_DURATION = "durationUs";
+ field public static final java.lang.String KEY_FRAME_RATE = "frame-rate";
+ field public static final java.lang.String KEY_HEIGHT = "height";
+ field public static final java.lang.String KEY_IS_ADTS = "is-adts";
+ field public static final java.lang.String KEY_I_FRAME_INTERVAL = "i-frame-interval";
+ field public static final java.lang.String KEY_MAX_INPUT_SIZE = "max-input-size";
+ field public static final java.lang.String KEY_MIME = "mime";
+ field public static final java.lang.String KEY_SAMPLE_RATE = "sample-rate";
+ field public static final java.lang.String KEY_WIDTH = "width";
+ }
+
public class MediaMetadataRetriever {
ctor public MediaMetadataRetriever();
method public java.lang.String extractMetadata(int);
@@ -21098,19 +21274,6 @@
method public int getTopPadding();
}
- public abstract interface TextDirectionHeuristic {
- }
-
- public class TextDirectionHeuristics {
- ctor public TextDirectionHeuristics();
- field public static final android.text.TextDirectionHeuristic ANYRTL_LTR;
- field public static final android.text.TextDirectionHeuristic FIRSTSTRONG_LTR;
- field public static final android.text.TextDirectionHeuristic FIRSTSTRONG_RTL;
- field public static final android.text.TextDirectionHeuristic LOCALE;
- field public static final android.text.TextDirectionHeuristic LTR;
- field public static final android.text.TextDirectionHeuristic RTL;
- }
-
public class TextPaint extends android.graphics.Paint {
ctor public TextPaint();
ctor public TextPaint(int);
@@ -22539,6 +22702,7 @@
method public abstract java.lang.CharSequence getSubtitle();
method public java.lang.Object getTag();
method public abstract java.lang.CharSequence getTitle();
+ method public boolean getTitleOptionalHint();
method public abstract void invalidate();
method public boolean isTitleOptional();
method public abstract void setCustomView(android.view.View);
diff --git a/core/java/android/animation/PropertyValuesHolder.java b/core/java/android/animation/PropertyValuesHolder.java
index 58f23f7..5b1a7cf 100644
--- a/core/java/android/animation/PropertyValuesHolder.java
+++ b/core/java/android/animation/PropertyValuesHolder.java
@@ -384,8 +384,7 @@
try {
returnVal = targetClass.getMethod(methodName, args);
} catch (NoSuchMethodException e) {
- Log.e("PropertyValuesHolder",
- "Couldn't find no-arg method for property " + mPropertyName + ": " + e);
+ // Swallow the error, log it later
}
} else {
args = new Class[1];
@@ -412,9 +411,12 @@
}
}
// If we got here, then no appropriate function was found
- Log.e("PropertyValuesHolder",
- "Couldn't find setter/getter for property " + mPropertyName +
- " with value type "+ mValueType);
+ }
+
+ if (returnVal == null) {
+ Log.w("PropertyValuesHolder", "Method " +
+ getMethodName(prefix, mPropertyName) + "() with type " + mValueType +
+ " not found on target class " + targetClass);
}
return returnVal;
@@ -495,7 +497,7 @@
}
return;
} catch (ClassCastException e) {
- Log.e("PropertyValuesHolder","No such property (" + mProperty.getName() +
+ Log.w("PropertyValuesHolder","No such property (" + mProperty.getName() +
") on target object " + target + ". Trying reflection instead");
mProperty = null;
}
@@ -508,6 +510,10 @@
if (!kf.hasValue()) {
if (mGetter == null) {
setupGetter(targetClass);
+ if (mGetter == null) {
+ // Already logged the error - just return to avoid NPE
+ return;
+ }
}
try {
kf.setValue(mGetter.invoke(target));
@@ -535,6 +541,10 @@
if (mGetter == null) {
Class targetClass = target.getClass();
setupGetter(targetClass);
+ if (mGetter == null) {
+ // Already logged the error - just return to avoid NPE
+ return;
+ }
}
kf.setValue(mGetter.invoke(target));
} catch (InvocationTargetException e) {
@@ -854,8 +864,9 @@
}
}
} catch (NoSuchMethodError e) {
- Log.d("PropertyValuesHolder",
- "Can't find native method using JNI, use reflection" + e);
+ // Couldn't find it via JNI - try reflection next. Probably means the method
+ // doesn't exist, or the type is wrong. An error will be logged later if
+ // reflection fails as well.
} finally {
mPropertyMapLock.writeLock().unlock();
}
@@ -990,8 +1001,9 @@
}
}
} catch (NoSuchMethodError e) {
- Log.d("PropertyValuesHolder",
- "Can't find native method using JNI, use reflection" + e);
+ // Couldn't find it via JNI - try reflection next. Probably means the method
+ // doesn't exist, or the type is wrong. An error will be logged later if
+ // reflection fails as well.
} finally {
mPropertyMapLock.writeLock().unlock();
}
diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java
index b4669a7..cb8fea21 100644
--- a/core/java/android/content/Intent.java
+++ b/core/java/android/content/Intent.java
@@ -1240,7 +1240,11 @@
* Used as a boolean extra field with {@link #ACTION_INSTALL_PACKAGE} to install a
* package. Tells the installer UI to skip the confirmation with the user
* if the .apk is replacing an existing one.
+ * @deprecated As of {@link android.os.Build.VERSION_CODES#JELLY_BEAN}, Android
+ * will no longer show an interstitial message about updating existing
+ * applications so this is no longer needed.
*/
+ @Deprecated
public static final String EXTRA_ALLOW_REPLACE
= "android.intent.extra.ALLOW_REPLACE";
diff --git a/core/java/android/hardware/Camera.java b/core/java/android/hardware/Camera.java
index 5ed8dd1..89068e7 100644
--- a/core/java/android/hardware/Camera.java
+++ b/core/java/android/hardware/Camera.java
@@ -155,7 +155,7 @@
private boolean mOneShot;
private boolean mWithBuffer;
private boolean mFaceDetectionRunning = false;
- private ReentrantLock mFocusLock = new ReentrantLock();
+ private Object mAutoFocusCallbackLock = new Object();
/**
* Broadcast Action: A new picture is taken by the camera, and the entry of
@@ -471,6 +471,11 @@
* Called as preview frames are displayed. This callback is invoked
* on the event thread {@link #open(int)} was called from.
*
+ * <p>If using the {@link android.graphics.ImageFormat#YV12} format,
+ * refer to the equations in {@link Camera.Parameters#setPreviewFormat}
+ * for the arrangement of the pixel data in the preview callback
+ * buffers.
+ *
* @param data the contents of the preview frame in the format defined
* by {@link android.graphics.ImageFormat}, which can be queried
* with {@link android.hardware.Camera.Parameters#getPreviewFormat()}.
@@ -508,7 +513,9 @@
mRawImageCallback = null;
mPostviewCallback = null;
mJpegCallback = null;
- mAutoFocusCallback = null;
+ synchronized (mAutoFocusCallbackLock) {
+ mAutoFocusCallback = null;
+ }
mAutoFocusMoveCallback = null;
}
@@ -611,12 +618,17 @@
* the frame is discarded. Applications should add buffers back when they
* finish processing the data in them.
*
- * <p>The size of the buffer is determined by multiplying the preview
- * image width, height, and bytes per pixel. The width and height can be
- * read from {@link Camera.Parameters#getPreviewSize()}. Bytes per pixel
- * can be computed from
- * {@link android.graphics.ImageFormat#getBitsPerPixel(int)} / 8,
- * using the image format from {@link Camera.Parameters#getPreviewFormat()}.
+ * <p>For formats besides YV12, the size of the buffer is determined by
+ * multiplying the preview image width, height, and bytes per pixel. The
+ * width and height can be read from
+ * {@link Camera.Parameters#getPreviewSize()}. Bytes per pixel can be
+ * computed from {@link android.graphics.ImageFormat#getBitsPerPixel(int)} /
+ * 8, using the image format from
+ * {@link Camera.Parameters#getPreviewFormat()}.
+ *
+ * <p>If using the {@link android.graphics.ImageFormat#YV12} format, the
+ * size can be calculated using the equations listed in
+ * {@link Camera.Parameters#setPreviewFormat}.
*
* <p>This method is only necessary when
* {@link #setPreviewCallbackWithBuffer(PreviewCallback)} is used. When
@@ -626,8 +638,8 @@
* hold the preview frame data, preview callback will return null and
* the buffer will be removed from the buffer queue.
*
- * @param callbackBuffer the buffer to add to the queue.
- * The size should be width * height * bits_per_pixel / 8.
+ * @param callbackBuffer the buffer to add to the queue. The size of the
+ * buffer must match the values described above.
* @see #setPreviewCallbackWithBuffer(PreviewCallback)
*/
public final void addCallbackBuffer(byte[] callbackBuffer)
@@ -748,14 +760,13 @@
return;
case CAMERA_MSG_FOCUS:
- mFocusLock.lock();
- try {
- if (mAutoFocusCallback != null) {
- boolean success = msg.arg1 == 0 ? false : true;
- mAutoFocusCallback.onAutoFocus(success, mCamera);
- }
- } finally {
- mFocusLock.unlock();
+ AutoFocusCallback cb = null;
+ synchronized (mAutoFocusCallbackLock) {
+ cb = mAutoFocusCallback;
+ }
+ if (cb != null) {
+ boolean success = msg.arg1 == 0 ? false : true;
+ cb.onAutoFocus(success, mCamera);
}
return;
@@ -880,13 +891,10 @@
*/
public final void autoFocus(AutoFocusCallback cb)
{
- mFocusLock.lock();
- try {
+ synchronized (mAutoFocusCallbackLock) {
mAutoFocusCallback = cb;
- native_autoFocus();
- } finally {
- mFocusLock.unlock();
}
+ native_autoFocus();
}
private native final void native_autoFocus();
@@ -900,14 +908,26 @@
*/
public final void cancelAutoFocus()
{
- mFocusLock.lock();
- try {
+ synchronized (mAutoFocusCallbackLock) {
mAutoFocusCallback = null;
- native_cancelAutoFocus();
- removePendingAFCompletionMessages();
- } finally {
- mFocusLock.unlock();
}
+ native_cancelAutoFocus();
+ // CAMERA_MSG_FOCUS should be removed here because the following
+ // scenario can happen:
+ // - An application uses the same thread for autoFocus, cancelAutoFocus
+ // and looper thread.
+ // - The application calls autoFocus.
+ // - HAL sends CAMERA_MSG_FOCUS, which enters the looper message queue.
+ // Before event handler's handleMessage() is invoked, the application
+ // calls cancelAutoFocus and autoFocus.
+ // - The application gets the old CAMERA_MSG_FOCUS and thinks autofocus
+ // has been completed. But in fact it is not.
+ //
+ // As documented in the beginning of the file, apps should not use
+ // multiple threads to call autoFocus and cancelAutoFocus at the same
+ // time. It is HAL's responsibility not to send a CAMERA_MSG_FOCUS
+ // message after native_cancelAutoFocus is called.
+ mEventHandler.removeMessages(CAMERA_MSG_FOCUS);
}
private native final void native_cancelAutoFocus();
@@ -2289,12 +2309,44 @@
* {@link android.graphics.ImageFormat#NV21}, which
* uses the NV21 encoding format.</p>
*
- * @param pixel_format the desired preview picture format, defined
- * by one of the {@link android.graphics.ImageFormat} constants.
- * (E.g., <var>ImageFormat.NV21</var> (default),
- * <var>ImageFormat.RGB_565</var>, or
- * <var>ImageFormat.JPEG</var>)
+ * <p>Use {@link Parameters#getSupportedPreviewFormats} to get a list of
+ * the available preview formats.
+ *
+ * <p>It is strongly recommended that either
+ * {@link android.graphics.ImageFormat#NV21} or
+ * {@link android.graphics.ImageFormat#YV12} is used, since
+ * they are supported by all camera devices.</p>
+ *
+ * <p>For YV12, the image buffer that is received is not necessarily
+ * tightly packed, as there may be padding at the end of each row of
+ * pixel data, as described in
+ * {@link android.graphics.ImageFormat#YV12}. For camera callback data,
+ * it can be assumed that the stride of the Y and UV data is the
+ * smallest possible that meets the alignment requirements. That is, if
+ * the preview size is <var>width x height</var>, then the following
+ * equations describe the buffer index for the beginning of row
+ * <var>y</var> for the Y plane and row <var>c</var> for the U and V
+ * planes:
+ *
+ * {@code
+ * <pre>
+ * yStride = (int) ceil(width / 16.0) * 16;
+ * uvStride = (int) ceil( (yStride / 2) / 16.0) * 16;
+ * ySize = yStride * height;
+ * uvSize = uvStride * height / 2;
+ * yRowIndex = yStride * y;
+ * uRowIndex = ySize + uvSize + uvStride * c;
+ * vRowIndex = ySize + uvStride * c;
+ * size = ySize + uvSize * 2;</pre>
+ * }
+ *
+ * @param pixel_format the desired preview picture format, defined by
+ * one of the {@link android.graphics.ImageFormat} constants. (E.g.,
+ * <var>ImageFormat.NV21</var> (default), or
+ * <var>ImageFormat.YV12</var>)
+ *
* @see android.graphics.ImageFormat
+ * @see android.hardware.Camera.Parameters#getSupportedPreviewFormats
*/
public void setPreviewFormat(int pixel_format) {
String s = cameraFormatForPixelFormat(pixel_format);
@@ -2312,6 +2364,7 @@
*
* @return the preview format.
* @see android.graphics.ImageFormat
+ * @see #setPreviewFormat
*/
public int getPreviewFormat() {
return pixelFormatForCameraFormat(get(KEY_PREVIEW_FORMAT));
@@ -2325,6 +2378,7 @@
* @return a list of supported preview formats. This method will always
* return a list with at least one element.
* @see android.graphics.ImageFormat
+ * @see #setPreviewFormat
*/
public List<Integer> getSupportedPreviewFormats() {
String str = get(KEY_PREVIEW_FORMAT + SUPPORTED_VALUES_SUFFIX);
@@ -3596,13 +3650,4 @@
return false;
}
};
-
- /*
- * At any time, there should be at most one pending auto focus completion
- * message, but we simply remove all pending AF completion messages in
- * the looper's queue.
- */
- private void removePendingAFCompletionMessages() {
- mEventHandler.removeMessages(CAMERA_MSG_FOCUS);
- }
}
diff --git a/core/java/android/provider/SocialContract.java b/core/java/android/provider/SocialContract.java
deleted file mode 100644
index ee271ba..0000000
--- a/core/java/android/provider/SocialContract.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- * Copyright (C) 2009 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package android.provider;
-
-import android.content.res.Resources;
-import android.graphics.BitmapFactory;
-import android.net.Uri;
-import android.provider.ContactsContract.Contacts;
-import android.provider.ContactsContract.Data;
-
-/**
- * The contract between the social provider and applications. Contains
- * definitions for the supported URIs and columns.
- *
- * @hide
- */
-public class SocialContract {
- /** The authority for the social provider */
- public static final String AUTHORITY = "com.android.social";
-
- /** A content:// style uri to the authority for the contacts provider */
- public static final Uri AUTHORITY_URI = Uri.parse("content://" + AUTHORITY);
-
- private interface ActivitiesColumns {
- /**
- * The package name to use when creating {@link Resources} objects for
- * this data row. This value is only designed for use when building user
- * interfaces, and should not be used to infer the owner.
- * <p>
- * Type: TEXT
- */
- public static final String RES_PACKAGE = "res_package";
-
- /**
- * The mime-type of this social activity.
- * <p>
- * Type: TEXT
- */
- public static final String MIMETYPE = "mimetype";
-
- /**
- * Internal raw identifier for this social activity. This field is
- * analogous to the <code>atom:id</code> element defined in RFC 4287.
- * <p>
- * Type: TEXT
- */
- public static final String RAW_ID = "raw_id";
-
- /**
- * Reference to another {@link Activities#RAW_ID} that this social activity
- * is replying to. This field is analogous to the
- * <code>thr:in-reply-to</code> element defined in RFC 4685.
- * <p>
- * Type: TEXT
- */
- public static final String IN_REPLY_TO = "in_reply_to";
-
- /**
- * Reference to the {@link android.provider.ContactsContract.Contacts#_ID} that authored
- * this social activity. This field is analogous to the <code>atom:author</code>
- * element defined in RFC 4287.
- * <p>
- * Type: INTEGER
- */
- public static final String AUTHOR_CONTACT_ID = "author_contact_id";
-
- /**
- * Optional reference to the {@link android.provider.ContactsContract.Contacts#_ID} this
- * social activity is targeted towards. If more than one direct target, this field may
- * be left undefined. This field is analogous to the
- * <code>activity:target</code> element defined in the Atom Activity
- * Extensions Internet-Draft.
- * <p>
- * Type: INTEGER
- */
- public static final String TARGET_CONTACT_ID = "target_contact_id";
-
- /**
- * Timestamp when this social activity was published, in a
- * {@link System#currentTimeMillis()} time base. This field is analogous
- * to the <code>atom:published</code> element defined in RFC 4287.
- * <p>
- * Type: INTEGER
- */
- public static final String PUBLISHED = "published";
-
- /**
- * Timestamp when the original social activity in a thread was
- * published. For activities that have an in-reply-to field specified, the
- * content provider will automatically populate this field with the
- * timestamp of the original activity.
- * <p>
- * This field is useful for sorting order of activities that keeps together all
- * messages in each thread.
- * <p>
- * Type: INTEGER
- */
- public static final String THREAD_PUBLISHED = "thread_published";
-
- /**
- * Title of this social activity. This field is analogous to the
- * <code>atom:title</code> element defined in RFC 4287.
- * <p>
- * Type: TEXT
- */
- public static final String TITLE = "title";
-
- /**
- * Summary of this social activity. This field is analogous to the
- * <code>atom:summary</code> element defined in RFC 4287.
- * <p>
- * Type: TEXT
- */
- public static final String SUMMARY = "summary";
-
- /**
- * A URI associated this social activity. This field is analogous to the
- * <code>atom:link rel="alternate"</code> element defined in RFC 4287.
- * <p>
- * Type: TEXT
- */
- public static final String LINK = "link";
-
- /**
- * Optional thumbnail specific to this social activity. This is the raw
- * bytes of an image that could be inflated using {@link BitmapFactory}.
- * <p>
- * Type: BLOB
- */
- public static final String THUMBNAIL = "thumbnail";
- }
-
- public static final class Activities implements BaseColumns, ActivitiesColumns {
- /**
- * This utility class cannot be instantiated
- */
- private Activities() {
- }
-
- /**
- * The content:// style URI for this table
- */
- public static final Uri CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "activities");
-
- /**
- * The content:// URI for this table filtered to the set of social activities
- * authored by a specific {@link android.provider.ContactsContract.Contacts#_ID}.
- */
- public static final Uri CONTENT_AUTHORED_BY_URI =
- Uri.withAppendedPath(CONTENT_URI, "authored_by");
-
- /**
- * The {@link Uri} for the latest social activity performed by any
- * raw contact aggregated under the specified {@link Contacts#_ID}. Will
- * also join with most-present {@link Presence} for this aggregate.
- */
- public static final Uri CONTENT_CONTACT_STATUS_URI =
- Uri.withAppendedPath(AUTHORITY_URI, "contact_status");
-
- /**
- * The MIME type of {@link #CONTENT_URI} providing a directory of social
- * activities.
- */
- public static final String CONTENT_TYPE = "vnd.android.cursor.dir/activity";
-
- /**
- * The MIME type of a {@link #CONTENT_URI} subdirectory of a single
- * social activity.
- */
- public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/activity";
- }
-
-}
diff --git a/core/java/android/text/TextDirectionHeuristic.java b/core/java/android/text/TextDirectionHeuristic.java
index 0bf64e4..513e11c 100644
--- a/core/java/android/text/TextDirectionHeuristic.java
+++ b/core/java/android/text/TextDirectionHeuristic.java
@@ -22,5 +22,5 @@
* @hide
*/
public interface TextDirectionHeuristic {
- /** @hide */ boolean isRtl(char[] text, int start, int count);
+ boolean isRtl(char[] text, int start, int count);
}
diff --git a/core/java/android/text/TextDirectionHeuristics.java b/core/java/android/text/TextDirectionHeuristics.java
index 6ca6161..bbaa173 100644
--- a/core/java/android/text/TextDirectionHeuristics.java
+++ b/core/java/android/text/TextDirectionHeuristics.java
@@ -22,6 +22,8 @@
/**
* Some objects that implement TextDirectionHeuristic.
+ *
+ * @hide
*/
public class TextDirectionHeuristics {
diff --git a/core/java/android/view/ActionMode.java b/core/java/android/view/ActionMode.java
index 0ba5fdb..a359952 100644
--- a/core/java/android/view/ActionMode.java
+++ b/core/java/android/view/ActionMode.java
@@ -30,6 +30,7 @@
*/
public abstract class ActionMode {
private Object mTag;
+ private boolean mTitleOptionalHint;
/**
* Set a tag object associated with this ActionMode.
@@ -119,6 +120,18 @@
* @param titleOptional true if the title only presents optional information.
*/
public void setTitleOptionalHint(boolean titleOptional) {
+ mTitleOptionalHint = titleOptional;
+ }
+
+ /**
+ * @return true if this action mode has been given a hint to consider the
+ * title/subtitle display to be optional.
+ *
+ * @see #setTitleOptionalHint(boolean)
+ * @see #isTitleOptional()
+ */
+ public boolean getTitleOptionalHint() {
+ return mTitleOptionalHint;
}
/**
diff --git a/core/java/android/view/Display.java b/core/java/android/view/Display.java
index bda8016..c947312 100644
--- a/core/java/android/view/Display.java
+++ b/core/java/android/view/Display.java
@@ -391,6 +391,15 @@
}
/**
+ * If the display is mirrored to an external HDMI display, returns the
+ * rotation of that display relative to its natural orientation.
+ * @hide
+ */
+ public int getExternalRotation() {
+ return Surface.ROTATION_0;
+ }
+
+ /**
* Gets display metrics based on an explicit assumed display size.
* @hide
*/
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 092bcbd..2f67481 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -5423,6 +5423,11 @@
* app should not need to concern itself with saving and restoring, but that
* the framework should take special note to preserve when possible.
*
+ * <p>A view with transient state cannot be trivially rebound from an external
+ * data source, such as an adapter binding item views in a list. This may be
+ * because the view is performing an animation, tracking user selection
+ * of content, or similar.</p>
+ *
* @return true if the view has transient state
*/
@ViewDebug.ExportedProperty(category = "layout")
@@ -5436,6 +5441,11 @@
* so every call to setHasTransientState(true) should be paired with a later call
* to setHasTransientState(false).
*
+ * <p>A view with transient state cannot be trivially rebound from an external
+ * data source, such as an adapter binding item views in a list. This may be
+ * because the view is performing an animation, tracking user selection
+ * of content, or similar.</p>
+ *
* @param hasTransientState true if this view has transient state
*/
public void setHasTransientState(boolean hasTransientState) {
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index e1d821f1..cc336c1 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -763,6 +763,9 @@
// preserve compatible window flag if exists.
int compatibleWindowFlag =
mWindowAttributes.flags & WindowManager.LayoutParams.FLAG_COMPATIBLE_WINDOW;
+ // transfer over system UI visibility values as they carry current state.
+ attrs.systemUiVisibility = mWindowAttributes.systemUiVisibility;
+ attrs.subtreeSystemUiVisibility = mWindowAttributes.subtreeSystemUiVisibility;
mWindowAttributesChangesFlag = mWindowAttributes.copyFrom(attrs);
mWindowAttributes.flags |= compatibleWindowFlag;
diff --git a/core/java/android/webkit/WebViewClassic.java b/core/java/android/webkit/WebViewClassic.java
index 99a3212..d0d122c 100644
--- a/core/java/android/webkit/WebViewClassic.java
+++ b/core/java/android/webkit/WebViewClassic.java
@@ -102,6 +102,7 @@
import android.webkit.WebViewCore.DrawData;
import android.webkit.WebViewCore.EventHub;
import android.webkit.WebViewCore.TextFieldInitData;
+import android.webkit.WebViewCore.TextSelectionData;
import android.webkit.WebViewCore.TouchHighlightData;
import android.webkit.WebViewCore.WebKitHitTest;
import android.widget.AbsoluteLayout;
@@ -152,7 +153,7 @@
@Override
public void onGlobalLayout() {
if (mWebView.isShown()) {
- setGLRectViewport();
+ setInvScreenRect();
}
}
}
@@ -161,7 +162,7 @@
@Override
public void onScrollChanged() {
if (mWebView.isShown()) {
- setGLRectViewport();
+ setInvScreenRect();
}
}
}
@@ -643,8 +644,8 @@
private ZoomManager mZoomManager;
- private final Rect mGLRectViewport = new Rect();
- private final Rect mViewRectViewport = new Rect();
+ private final Rect mInvScreenRect = new Rect();
+ private final Rect mScreenRect = new Rect();
private final RectF mVisibleContentRect = new RectF();
private boolean mGLViewportEmpty = false;
WebViewInputConnection mInputConnection = null;
@@ -934,7 +935,7 @@
private Paint mTouchCrossHairColor;
private int mTouchHighlightX;
private int mTouchHighlightY;
- private long mTouchHighlightRequested;
+ private boolean mShowTapHighlight;
// Basically this proxy is used to tell the Video to update layer tree at
// SetBaseLayer time and to pause when WebView paused.
@@ -1315,6 +1316,12 @@
case WebViewInputDispatcher.EVENT_TYPE_TOUCH:
onHandleUiTouchEvent(event);
break;
+ case WebViewInputDispatcher.EVENT_TYPE_CLICK:
+ if (mFocusedNode != null && mFocusedNode.mIntentUrl != null) {
+ mWebView.playSoundEffect(SoundEffectConstants.CLICK);
+ overrideLoading(mFocusedNode.mIntentUrl);
+ }
+ break;
}
}
@@ -4211,17 +4218,17 @@
// decide which adornments to draw
int extras = DRAW_EXTRAS_NONE;
- if (!mFindIsUp && mSelectingText) {
+ if (!mFindIsUp && mShowTextSelectionExtra) {
extras = DRAW_EXTRAS_SELECTION;
}
calcOurContentVisibleRectF(mVisibleContentRect);
if (canvas.isHardwareAccelerated()) {
- Rect glRectViewport = mGLViewportEmpty ? null : mGLRectViewport;
- Rect viewRectViewport = mGLViewportEmpty ? null : mViewRectViewport;
+ Rect invScreenRect = mGLViewportEmpty ? null : mInvScreenRect;
+ Rect screenRect = mGLViewportEmpty ? null : mScreenRect;
- int functor = nativeCreateDrawGLFunction(mNativeClass, glRectViewport,
- viewRectViewport, mVisibleContentRect, getScale(), extras);
+ int functor = nativeCreateDrawGLFunction(mNativeClass, invScreenRect,
+ screenRect, mVisibleContentRect, getScale(), extras);
((HardwareCanvas) canvas).callDrawGLFunction(functor);
if (mHardwareAccelSkia != getSettings().getHardwareAccelSkiaEnabled()) {
mHardwareAccelSkia = getSettings().getHardwareAccelSkiaEnabled();
@@ -4535,11 +4542,13 @@
private void startSelectingText() {
mSelectingText = true;
+ mShowTextSelectionExtra = true;
mHandleAlphaAnimator.setIntValues(255);
mHandleAlphaAnimator.start();
}
private void endSelectingText() {
mSelectingText = false;
+ mShowTextSelectionExtra = false;
mHandleAlphaAnimator.setIntValues(0);
mHandleAlphaAnimator.start();
}
@@ -5312,9 +5321,6 @@
mSelectCallback.finish();
mSelectCallback = null;
}
- if (!mIsCaretSelection) {
- updateWebkitSelection();
- }
invalidate(); // redraw without selection
mAutoScrollX = 0;
mAutoScrollY = 0;
@@ -5542,26 +5548,26 @@
}
}
- void setGLRectViewport() {
+ void setInvScreenRect() {
// Use the getGlobalVisibleRect() to get the intersection among the parents
// visible == false means we're clipped - send a null rect down to indicate that
// we should not draw
- boolean visible = mWebView.getGlobalVisibleRect(mGLRectViewport);
+ boolean visible = mWebView.getGlobalVisibleRect(mInvScreenRect);
if (visible) {
// Then need to invert the Y axis, just for GL
View rootView = mWebView.getRootView();
int rootViewHeight = rootView.getHeight();
- mViewRectViewport.set(mGLRectViewport);
- int savedWebViewBottom = mGLRectViewport.bottom;
- mGLRectViewport.bottom = rootViewHeight - mGLRectViewport.top - getVisibleTitleHeightImpl();
- mGLRectViewport.top = rootViewHeight - savedWebViewBottom;
+ mScreenRect.set(mInvScreenRect);
+ int savedWebViewBottom = mInvScreenRect.bottom;
+ mInvScreenRect.bottom = rootViewHeight - mInvScreenRect.top - getVisibleTitleHeightImpl();
+ mInvScreenRect.top = rootViewHeight - savedWebViewBottom;
mGLViewportEmpty = false;
} else {
mGLViewportEmpty = true;
}
calcOurContentVisibleRectF(mVisibleContentRect);
- nativeUpdateDrawGLFunction(mNativeClass, mGLViewportEmpty ? null : mGLRectViewport,
- mGLViewportEmpty ? null : mViewRectViewport,
+ nativeUpdateDrawGLFunction(mNativeClass, mGLViewportEmpty ? null : mInvScreenRect,
+ mGLViewportEmpty ? null : mScreenRect,
mVisibleContentRect, getScale());
}
@@ -5577,7 +5583,7 @@
// notify the WebKit about the new dimensions.
sendViewSizeZoom(false);
}
- setGLRectViewport();
+ setInvScreenRect();
return changed;
}
@@ -5822,7 +5828,6 @@
data.mSlop = viewToContentDimension(mNavSlop);
removeTouchHighlight();
if (!mBlockWebkitViewMessages) {
- mTouchHighlightRequested = SystemClock.uptimeMillis();
mWebViewCore.sendMessageAtFrontOfQueue(
EventHub.HIT_TEST, data);
}
@@ -6442,6 +6447,7 @@
private int mTrackballXMove = 0;
private int mTrackballYMove = 0;
private boolean mSelectingText = false;
+ private boolean mShowTextSelectionExtra = false;
private boolean mSelectionStarted = false;
private static final int TRACKBALL_KEY_TIMEOUT = 1000;
private static final int TRACKBALL_TIMEOUT = 200;
@@ -7592,6 +7598,8 @@
case UPDATE_CONTENT_BOUNDS:
mEditTextContentBounds.set((Rect) msg.obj);
+ nativeMapLayerRect(mNativeClass, mEditTextLayerId,
+ mEditTextContentBounds);
break;
case SCROLL_EDIT_TEXT:
@@ -7618,6 +7626,34 @@
public Context getContext() {
return WebViewClassic.this.getContext();
}
+
+ @Override
+ public boolean shouldInterceptTouchEvent(MotionEvent event) {
+ if (!mSelectingText) {
+ return false;
+ }
+ ensureSelectionHandles();
+ int y = Math.round(event.getY() - getTitleHeight() + getScrollY());
+ int x = Math.round(event.getX() + getScrollX());
+ boolean isPressingHandle;
+ if (mIsCaretSelection) {
+ isPressingHandle = mSelectHandleCenter.getBounds()
+ .contains(x, y);
+ } else {
+ isPressingHandle =
+ mSelectHandleLeft.getBounds().contains(x, y)
+ || mSelectHandleRight.getBounds().contains(x, y);
+ }
+ return isPressingHandle;
+ }
+
+ @Override
+ public void showTapHighlight(boolean show) {
+ if (mShowTapHighlight != show) {
+ mShowTapHighlight = show;
+ invalidate();
+ }
+ }
}
private void setHitTestTypeFromUrl(String url) {
@@ -7680,16 +7716,7 @@
if (mFocusedNode.mHasFocus && mFocusedNode.mEditable) {
return false;
}
- long delay = SystemClock.uptimeMillis() - mTouchHighlightRequested;
- if (delay < ViewConfiguration.getTapTimeout()) {
- Rect r = mTouchHighlightRegion.getBounds();
- mWebView.postInvalidateDelayed(delay, r.left, r.top, r.right, r.bottom);
- return false;
- }
- if (mInputDispatcher == null) {
- return false;
- }
- return mInputDispatcher.shouldShowTapHighlight();
+ return mShowTapHighlight;
}
@@ -7942,6 +7969,13 @@
}
nativeSetTextSelection(mNativeClass, data.mSelectTextPtr);
+ if (data.mSelectionReason == TextSelectionData.REASON_ACCESSIBILITY_INJECTOR) {
+ selectionDone();
+ mShowTextSelectionExtra = true;
+ invalidate();
+ return;
+ }
+
if (data.mSelectTextPtr != 0 &&
(data.mStart != data.mEnd ||
(mFieldPointer == nodePointer && mFieldPointer != 0))) {
@@ -8568,11 +8602,11 @@
int color, int extra);
private native void nativeDumpDisplayTree(String urlOrNull);
private native boolean nativeEvaluateLayersAnimations(int nativeInstance);
- private native int nativeCreateDrawGLFunction(int nativeInstance, Rect rect,
- Rect viewRect, RectF visibleRect, float scale, int extras);
+ private native int nativeCreateDrawGLFunction(int nativeInstance, Rect invScreenRect,
+ Rect screenRect, RectF visibleContentRect, float scale, int extras);
private native int nativeGetDrawGLFunction(int nativeInstance);
- private native void nativeUpdateDrawGLFunction(int nativeInstance, Rect rect, Rect viewRect,
- RectF visibleRect, float scale);
+ private native void nativeUpdateDrawGLFunction(int nativeInstance, Rect invScreenRect,
+ Rect screenRect, RectF visibleContentRect, float scale);
private native String nativeGetSelection();
private native Rect nativeLayerBounds(int layer);
private native void nativeSetHeightCanMeasure(boolean measure);
diff --git a/core/java/android/webkit/WebViewCore.java b/core/java/android/webkit/WebViewCore.java
index 7a757a8..661bbf8 100644
--- a/core/java/android/webkit/WebViewCore.java
+++ b/core/java/android/webkit/WebViewCore.java
@@ -143,6 +143,7 @@
private int mHighUsageDeltaMb;
private int mChromeCanFocusDirection;
+ private int mTextSelectionChangeReason = TextSelectionData.REASON_UNKNOWN;
// The thread name used to identify the WebCore thread and for use in
// debugging other classes that require operation within the WebCore thread.
@@ -861,6 +862,8 @@
}
static class TextSelectionData {
+ static final int REASON_UNKNOWN = 0;
+ static final int REASON_ACCESSIBILITY_INJECTOR = 1;
public TextSelectionData(int start, int end, int selectTextPtr) {
mStart = start;
mEnd = end;
@@ -869,6 +872,7 @@
int mStart;
int mEnd;
int mSelectTextPtr;
+ int mSelectionReason = TextSelectionData.REASON_UNKNOWN;
}
static class TouchUpData {
@@ -1544,12 +1548,16 @@
break;
case MODIFY_SELECTION:
+ mTextSelectionChangeReason
+ = TextSelectionData.REASON_ACCESSIBILITY_INJECTOR;
String modifiedSelectionString =
nativeModifySelection(mNativeClass, msg.arg1,
msg.arg2);
mWebViewClassic.mPrivateHandler.obtainMessage(
WebViewClassic.SELECTION_STRING_CHANGED,
modifiedSelectionString).sendToTarget();
+ mTextSelectionChangeReason
+ = TextSelectionData.REASON_UNKNOWN;
break;
case LISTBOX_CHOICES:
@@ -2763,13 +2771,19 @@
}
}
+ private TextSelectionData createTextSelection(int start, int end, int selPtr) {
+ TextSelectionData data = new TextSelectionData(start, end, selPtr);
+ data.mSelectionReason = mTextSelectionChangeReason;
+ return data;
+ }
+
// called by JNI
private void updateTextSelection(int pointer, int start, int end,
int textGeneration, int selectionPtr) {
if (mWebViewClassic != null) {
Message.obtain(mWebViewClassic.mPrivateHandler,
WebViewClassic.UPDATE_TEXT_SELECTION_MSG_ID, pointer, textGeneration,
- new TextSelectionData(start, end, selectionPtr)).sendToTarget();
+ createTextSelection(start, end, selectionPtr)).sendToTarget();
}
}
@@ -2803,7 +2817,7 @@
Message.obtain(mWebViewClassic.mPrivateHandler,
WebViewClassic.UPDATE_TEXT_SELECTION_MSG_ID,
initData.mFieldPointer, 0,
- new TextSelectionData(start, end, selectionPtr))
+ createTextSelection(start, end, selectionPtr))
.sendToTarget();
}
diff --git a/core/java/android/webkit/WebViewInputDispatcher.java b/core/java/android/webkit/WebViewInputDispatcher.java
index b612a3b..9541435 100644
--- a/core/java/android/webkit/WebViewInputDispatcher.java
+++ b/core/java/android/webkit/WebViewInputDispatcher.java
@@ -22,7 +22,6 @@
import android.os.Message;
import android.os.SystemClock;
import android.util.Log;
-import android.view.InputDevice;
import android.view.MotionEvent;
import android.view.ViewConfiguration;
@@ -100,6 +99,8 @@
private boolean mPostDoNotSendTouchEventsToWebKitUntilNextGesture;
private boolean mPostLongPressScheduled;
private boolean mPostClickScheduled;
+ private boolean mPostShowTapHighlightScheduled;
+ private boolean mPostHideTapHighlightScheduled;
private int mPostLastWebKitXOffset;
private int mPostLastWebKitYOffset;
private float mPostLastWebKitScale;
@@ -134,6 +135,7 @@
private static final int LONG_PRESS_TIMEOUT =
ViewConfiguration.getLongPressTimeout() + TAP_TIMEOUT;
private static final int DOUBLE_TAP_TIMEOUT = ViewConfiguration.getDoubleTapTimeout();
+ private static final int PRESSED_STATE_DURATION = ViewConfiguration.getPressedStateDuration();
/**
* Event type: Indicates a touch event type.
@@ -311,14 +313,17 @@
}
unscheduleLongPressLocked();
unscheduleClickLocked();
+ hideTapCandidateLocked();
return false;
}
- if (mPostSendTouchEventsToWebKit
- && mPostDoNotSendTouchEventsToWebKitUntilNextGesture
- && action == MotionEvent.ACTION_DOWN) {
- // Recover from a previous web kit timeout.
- mPostDoNotSendTouchEventsToWebKitUntilNextGesture = false;
+ if (action == MotionEvent.ACTION_DOWN && mPostSendTouchEventsToWebKit) {
+ if (mUiCallbacks.shouldInterceptTouchEvent(eventToEnqueue)) {
+ mPostDoNotSendTouchEventsToWebKitUntilNextGesture = true;
+ } else if (mPostDoNotSendTouchEventsToWebKitUntilNextGesture) {
+ // Recover from a previous web kit timeout.
+ mPostDoNotSendTouchEventsToWebKitUntilNextGesture = false;
+ }
}
}
@@ -348,12 +353,6 @@
}
}
- public boolean shouldShowTapHighlight() {
- synchronized (mLock) {
- return mPostLongPressScheduled || mPostClickScheduled;
- }
- }
-
private void postLongPress() {
synchronized (mLock) {
if (!mPostLongPressScheduled) {
@@ -384,6 +383,64 @@
}
}
+ private void hideTapCandidateLocked() {
+ unscheduleHideTapHighlightLocked();
+ unscheduleShowTapHighlightLocked();
+ mUiCallbacks.showTapHighlight(false);
+ }
+
+ private void showTapCandidateLocked() {
+ unscheduleHideTapHighlightLocked();
+ unscheduleShowTapHighlightLocked();
+ mUiCallbacks.showTapHighlight(true);
+ scheduleHideTapHighlightLocked();
+ }
+
+ private void scheduleShowTapHighlightLocked() {
+ unscheduleShowTapHighlightLocked();
+ mPostShowTapHighlightScheduled = true;
+ mUiHandler.sendEmptyMessageDelayed(UiHandler.MSG_SHOW_TAP_HIGHLIGHT,
+ TAP_TIMEOUT);
+ }
+
+ private void unscheduleShowTapHighlightLocked() {
+ if (mPostShowTapHighlightScheduled) {
+ mPostShowTapHighlightScheduled = false;
+ mUiHandler.removeMessages(UiHandler.MSG_SHOW_TAP_HIGHLIGHT);
+ }
+ }
+
+ private void scheduleHideTapHighlightLocked() {
+ unscheduleHideTapHighlightLocked();
+ mPostHideTapHighlightScheduled = true;
+ mUiHandler.sendEmptyMessageDelayed(UiHandler.MSG_HIDE_TAP_HIGHLIGHT,
+ PRESSED_STATE_DURATION);
+ }
+
+ private void unscheduleHideTapHighlightLocked() {
+ if (mPostHideTapHighlightScheduled) {
+ mPostHideTapHighlightScheduled = false;
+ mUiHandler.removeMessages(UiHandler.MSG_HIDE_TAP_HIGHLIGHT);
+ }
+ }
+
+ private void postShowTapHighlight(boolean show) {
+ synchronized (mLock) {
+ if (show) {
+ if (!mPostShowTapHighlightScheduled) {
+ return;
+ }
+ mPostShowTapHighlightScheduled = false;
+ } else {
+ if (!mPostHideTapHighlightScheduled) {
+ return;
+ }
+ mPostHideTapHighlightScheduled = false;
+ }
+ mUiCallbacks.showTapHighlight(show);
+ }
+ }
+
private void scheduleClickLocked() {
unscheduleClickLocked();
mPostClickScheduled = true;
@@ -403,6 +460,7 @@
return;
}
mPostClickScheduled = false;
+ showTapCandidateLocked();
MotionEvent event = mPostTouchStream.getLastEvent();
if (event == null || event.getAction() != MotionEvent.ACTION_UP) {
@@ -441,6 +499,7 @@
private void enqueueDoubleTapLocked(MotionEvent event) {
unscheduleClickLocked();
+ hideTapCandidateLocked();
MotionEvent eventToEnqueue = MotionEvent.obtainNoHistory(event);
DispatchEvent d = obtainDispatchEventLocked(eventToEnqueue, EVENT_TYPE_DOUBLE_TAP, 0,
mPostLastWebKitXOffset, mPostLastWebKitYOffset, mPostLastWebKitScale);
@@ -457,6 +516,7 @@
if ((deltaX * deltaX + deltaY * deltaY) > mTouchSlopSquared) {
unscheduleLongPressLocked();
mIsTapCandidate = false;
+ hideTapCandidateLocked();
}
}
@@ -473,14 +533,17 @@
|| event.getPointerCount() > 1) {
unscheduleLongPressLocked();
unscheduleClickLocked();
+ hideTapCandidateLocked();
mIsDoubleTapCandidate = false;
mIsTapCandidate = false;
+ hideTapCandidateLocked();
} else if (action == MotionEvent.ACTION_DOWN) {
checkForDoubleTapOnDownLocked(event);
scheduleLongPressLocked();
mIsTapCandidate = true;
mInitialDownX = event.getX();
mInitialDownY = event.getY();
+ scheduleShowTapHighlightLocked();
} else if (action == MotionEvent.ACTION_UP) {
unscheduleLongPressLocked();
if (isClickCandidateLocked(event)) {
@@ -489,6 +552,8 @@
} else {
scheduleClickLocked();
}
+ } else {
+ hideTapCandidateLocked();
}
} else if (action == MotionEvent.ACTION_MOVE) {
checkForSlopLocked(event);
@@ -949,6 +1014,21 @@
* @param flags The event's dispatch flags.
*/
public void dispatchUiEvent(MotionEvent event, int eventType, int flags);
+
+ /**
+ * Asks the UI thread whether this touch event stream should be
+ * intercepted based on the touch down event.
+ * @param event The touch down event.
+ * @return true if the UI stream wants the touch stream without going
+ * through webkit or false otherwise.
+ */
+ public boolean shouldInterceptTouchEvent(MotionEvent event);
+
+ /**
+ * Inform's the UI that it should show the tap highlight
+ * @param show True if it should show the highlight, false if it should hide it
+ */
+ public void showTapHighlight(boolean show);
}
/* Implemented by {@link WebViewCore} to perform operations on the web kit thread. */
@@ -975,6 +1055,8 @@
public static final int MSG_WEBKIT_TIMEOUT = 2;
public static final int MSG_LONG_PRESS = 3;
public static final int MSG_CLICK = 4;
+ public static final int MSG_SHOW_TAP_HIGHLIGHT = 5;
+ public static final int MSG_HIDE_TAP_HIGHLIGHT = 6;
public UiHandler(Looper looper) {
super(looper);
@@ -995,6 +1077,12 @@
case MSG_CLICK:
postClick();
break;
+ case MSG_SHOW_TAP_HIGHLIGHT:
+ postShowTapHighlight(true);
+ break;
+ case MSG_HIDE_TAP_HIGHLIGHT:
+ postShowTapHighlight(false);
+ break;
default:
throw new IllegalStateException("Unknown message type: " + msg.what);
}
diff --git a/core/java/android/widget/AppSecurityPermissions.java b/core/java/android/widget/AppSecurityPermissions.java
index b409e26..5d8bdbb 100755
--- a/core/java/android/widget/AppSecurityPermissions.java
+++ b/core/java/android/widget/AppSecurityPermissions.java
@@ -18,7 +18,9 @@
import com.android.internal.R;
+import android.app.AlertDialog;
import android.content.Context;
+import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
@@ -27,14 +29,13 @@
import android.content.pm.PermissionInfo;
import android.graphics.drawable.Drawable;
import android.os.Parcel;
-import android.text.Spannable;
-import android.text.SpannableString;
import android.text.SpannableStringBuilder;
import android.text.TextUtils;
-import android.text.style.ForegroundColorSpan;
+import android.util.AttributeSet;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
+import android.view.ViewGroup;
import java.text.Collator;
import java.util.ArrayList;
@@ -42,7 +43,6 @@
import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -58,16 +58,51 @@
*
* {@hide}
*/
-public class AppSecurityPermissions implements View.OnClickListener {
+public class AppSecurityPermissions {
- private enum State {
- NO_PERMS,
- DANGEROUS_ONLY,
- NORMAL_ONLY,
- BOTH
+ public static final int WHICH_PERSONAL = 1<<0;
+ public static final int WHICH_DEVICE = 1<<1;
+ public static final int WHICH_NEW = 1<<2;
+ public static final int WHICH_ALL = 0xffff;
+
+ private final static String TAG = "AppSecurityPermissions";
+ private boolean localLOGV = false;
+ private Context mContext;
+ private LayoutInflater mInflater;
+ private PackageManager mPm;
+ private PackageInfo mInstalledPackageInfo;
+ private final Map<String, MyPermissionGroupInfo> mPermGroups
+ = new HashMap<String, MyPermissionGroupInfo>();
+ private final List<MyPermissionGroupInfo> mPermGroupsList
+ = new ArrayList<MyPermissionGroupInfo>();
+ private final PermissionGroupInfoComparator mPermGroupComparator;
+ private final PermissionInfoComparator mPermComparator;
+ private List<MyPermissionInfo> mPermsList;
+ private CharSequence mNewPermPrefix;
+ private Drawable mNormalIcon;
+ private Drawable mDangerousIcon;
+
+ static class MyPermissionGroupInfo extends PermissionGroupInfo {
+ CharSequence mLabel;
+
+ final ArrayList<MyPermissionInfo> mNewPermissions = new ArrayList<MyPermissionInfo>();
+ final ArrayList<MyPermissionInfo> mPersonalPermissions = new ArrayList<MyPermissionInfo>();
+ final ArrayList<MyPermissionInfo> mDevicePermissions = new ArrayList<MyPermissionInfo>();
+ final ArrayList<MyPermissionInfo> mAllPermissions = new ArrayList<MyPermissionInfo>();
+
+ MyPermissionGroupInfo(PermissionInfo perm) {
+ name = perm.packageName;
+ packageName = perm.packageName;
+ }
+
+ MyPermissionGroupInfo(PermissionGroupInfo info) {
+ super(info);
+ }
}
static class MyPermissionInfo extends PermissionInfo {
+ CharSequence mLabel;
+
/**
* PackageInfo.requestedPermissionsFlags for the new package being installed.
*/
@@ -99,46 +134,99 @@
}
}
- private final static String TAG = "AppSecurityPermissions";
- private boolean localLOGV = false;
- private Context mContext;
- private LayoutInflater mInflater;
- private PackageManager mPm;
- private LinearLayout mPermsView;
- private Map<String, CharSequence> mNewMap;
- private Map<String, CharSequence> mDangerousMap;
- private Map<String, CharSequence> mNormalMap;
- private List<MyPermissionInfo> mPermsList;
- private String mDefaultGrpLabel;
- private String mDefaultGrpName="DefaultGrp";
- private String mPermFormat;
- private CharSequence mNewPermPrefix;
- private Drawable mNormalIcon;
- private Drawable mDangerousIcon;
- private boolean mExpanded;
- private Drawable mShowMaxIcon;
- private Drawable mShowMinIcon;
- private View mShowMore;
- private TextView mShowMoreText;
- private ImageView mShowMoreIcon;
- private State mCurrentState;
- private LinearLayout mNonDangerousList;
- private LinearLayout mDangerousList;
- private LinearLayout mNewList;
- private HashMap<String, CharSequence> mGroupLabelCache;
- private View mNoPermsView;
+ public static class PermissionItemView extends LinearLayout implements View.OnClickListener {
+ MyPermissionGroupInfo mGroup;
+ MyPermissionInfo mPerm;
+ AlertDialog mDialog;
+
+ public PermissionItemView(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ setClickable(true);
+ }
+
+ public void setPermission(MyPermissionGroupInfo grp, MyPermissionInfo perm,
+ boolean first, CharSequence newPermPrefix) {
+ mGroup = grp;
+ mPerm = perm;
+
+ ImageView permGrpIcon = (ImageView) findViewById(R.id.perm_icon);
+ TextView permNameView = (TextView) findViewById(R.id.perm_name);
+
+ PackageManager pm = getContext().getPackageManager();
+ Drawable icon = null;
+ if (first) {
+ if (grp.icon != 0) {
+ icon = grp.loadIcon(pm);
+ } else {
+ ApplicationInfo appInfo;
+ try {
+ appInfo = pm.getApplicationInfo(grp.packageName, 0);
+ icon = appInfo.loadIcon(pm);
+ } catch (NameNotFoundException e) {
+ }
+ }
+ }
+ CharSequence label = perm.mLabel;
+ if (perm.mNew && newPermPrefix != null) {
+ // If this is a new permission, format it appropriately.
+ SpannableStringBuilder builder = new SpannableStringBuilder();
+ Parcel parcel = Parcel.obtain();
+ TextUtils.writeToParcel(newPermPrefix, parcel, 0);
+ parcel.setDataPosition(0);
+ CharSequence newStr = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(parcel);
+ parcel.recycle();
+ builder.append(newStr);
+ builder.append(label);
+ label = builder;
+ }
+
+ permGrpIcon.setImageDrawable(icon);
+ permNameView.setText(label);
+ setOnClickListener(this);
+ }
+
+ @Override
+ public void onClick(View v) {
+ if (mGroup != null && mPerm != null) {
+ if (mDialog != null) {
+ mDialog.dismiss();
+ }
+ AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
+ builder.setTitle(mGroup.mLabel);
+ builder.setMessage(mPerm.loadDescription(getContext().getPackageManager()));
+ builder.setCancelable(true);
+ mDialog = builder.show();
+ mDialog.setCanceledOnTouchOutside(true);
+ }
+ }
+
+ @Override
+ protected void onDetachedFromWindow() {
+ super.onDetachedFromWindow();
+ if (mDialog != null) {
+ mDialog.dismiss();
+ }
+ }
+ }
public AppSecurityPermissions(Context context, List<PermissionInfo> permList) {
mContext = context;
mPm = mContext.getPackageManager();
+ loadResources();
+ mPermComparator = new PermissionInfoComparator();
+ mPermGroupComparator = new PermissionGroupInfoComparator();
for (PermissionInfo pi : permList) {
mPermsList.add(new MyPermissionInfo(pi));
}
+ setPermissions(mPermsList);
}
public AppSecurityPermissions(Context context, String packageName) {
mContext = context;
mPm = mContext.getPackageManager();
+ loadResources();
+ mPermComparator = new PermissionInfoComparator();
+ mPermGroupComparator = new PermissionGroupInfoComparator();
mPermsList = new ArrayList<MyPermissionInfo>();
Set<MyPermissionInfo> permSet = new HashSet<MyPermissionInfo>();
PackageInfo pkgInfo;
@@ -155,11 +243,15 @@
for(MyPermissionInfo tmpInfo : permSet) {
mPermsList.add(tmpInfo);
}
+ setPermissions(mPermsList);
}
-
+
public AppSecurityPermissions(Context context, PackageParser.Package pkg) {
mContext = context;
mPm = mContext.getPackageManager();
+ loadResources();
+ mPermComparator = new PermissionInfoComparator();
+ mPermGroupComparator = new PermissionGroupInfoComparator();
mPermsList = new ArrayList<MyPermissionInfo>();
Set<MyPermissionInfo> permSet = new HashSet<MyPermissionInfo>();
if(pkg == null) {
@@ -193,10 +285,20 @@
for (MyPermissionInfo tmpInfo : permSet) {
mPermsList.add(tmpInfo);
}
+ setPermissions(mPermsList);
}
-
+
+ private void loadResources() {
+ // Pick up from framework resources instead.
+ mNewPermPrefix = mContext.getText(R.string.perms_new_perm_prefix);
+ mNormalIcon = mContext.getResources().getDrawable(R.drawable.ic_text_dot);
+ mDangerousIcon = mContext.getResources().getDrawable(R.drawable.ic_bullet_key_permission);
+ }
+
/**
- * Utility to retrieve a view displaying a single permission.
+ * Utility to retrieve a view displaying a single permission. This provides
+ * the old UI layout for permissions; it is only here for the device admin
+ * settings to continue to use.
*/
public static View getPermissionItemView(Context context,
CharSequence grpName, CharSequence description, boolean dangerous) {
@@ -204,10 +306,14 @@
Context.LAYOUT_INFLATER_SERVICE);
Drawable icon = context.getResources().getDrawable(dangerous
? R.drawable.ic_bullet_key_permission : R.drawable.ic_text_dot);
- return getPermissionItemView(context, inflater, grpName,
+ return getPermissionItemViewOld(context, inflater, grpName,
description, dangerous, icon);
}
+ public PackageInfo getInstalledPackageInfo() {
+ return mInstalledPackageInfo;
+ }
+
private void getAllUsedPermissions(int sharedUid, Set<MyPermissionInfo> permSet) {
String sharedPkgList[] = mPm.getPackagesForUid(sharedUid);
if(sharedPkgList == null || (sharedPkgList.length == 0)) {
@@ -239,6 +345,7 @@
if ((strList == null) || (strList.length == 0)) {
return;
}
+ mInstalledPackageInfo = installedPkgInfo;
for (int i=0; i<strList.length; i++) {
String permName = strList[i];
// If we are only looking at an existing app, then we only
@@ -270,13 +377,42 @@
// to see, so skip it.
continue;
}
+ final String origGroupName = tmpPermInfo.group;
+ String groupName = origGroupName;
+ if (groupName == null) {
+ groupName = tmpPermInfo.packageName;
+ tmpPermInfo.group = groupName;
+ }
+ MyPermissionGroupInfo group = mPermGroups.get(groupName);
+ if (group == null) {
+ PermissionGroupInfo grp = null;
+ if (origGroupName != null) {
+ grp = mPm.getPermissionGroupInfo(origGroupName, 0);
+ }
+ if (grp != null) {
+ group = new MyPermissionGroupInfo(grp);
+ } else {
+ // We could be here either because the permission
+ // didn't originally specify a group or the group it
+ // gave couldn't be found. In either case, we consider
+ // its group to be the permission's package name.
+ tmpPermInfo.group = tmpPermInfo.packageName;
+ group = mPermGroups.get(tmpPermInfo.group);
+ if (group == null) {
+ group = new MyPermissionGroupInfo(tmpPermInfo);
+ }
+ group = new MyPermissionGroupInfo(tmpPermInfo);
+ }
+ mPermGroups.put(tmpPermInfo.group, group);
+ }
+ final boolean newPerm = installedPkgInfo != null
+ && (existingFlags&PackageInfo.REQUESTED_PERMISSION_GRANTED) == 0;
MyPermissionInfo myPerm = new MyPermissionInfo(tmpPermInfo);
myPerm.mNewReqFlags = flagsList[i];
myPerm.mExistingReqFlags = existingFlags;
// This is a new permission if the app is already installed and
// doesn't currently hold this permission.
- myPerm.mNew = installedPkgInfo != null
- && (existingFlags&PackageInfo.REQUESTED_PERMISSION_GRANTED) == 0;
+ myPerm.mNew = newPerm;
permSet.add(myPerm);
} catch (NameNotFoundException e) {
Log.i(TAG, "Ignoring unknown permission:"+permName);
@@ -285,149 +421,99 @@
}
public int getPermissionCount() {
- return mPermsList.size();
+ return getPermissionCount(WHICH_ALL);
+ }
+
+ private List<MyPermissionInfo> getPermissionList(MyPermissionGroupInfo grp, int which) {
+ if (which == WHICH_NEW) {
+ return grp.mNewPermissions;
+ } else if (which == WHICH_PERSONAL) {
+ return grp.mPersonalPermissions;
+ } else if (which == WHICH_DEVICE) {
+ return grp.mDevicePermissions;
+ } else {
+ return grp.mAllPermissions;
+ }
+ }
+
+ public int getPermissionCount(int which) {
+ int N = 0;
+ for (int i=0; i<mPermGroupsList.size(); i++) {
+ N += getPermissionList(mPermGroupsList.get(i), which).size();
+ }
+ return N;
}
public View getPermissionsView() {
-
+ return getPermissionsView(WHICH_ALL);
+ }
+
+ public View getPermissionsView(int which) {
mInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
- mPermsView = (LinearLayout) mInflater.inflate(R.layout.app_perms_summary, null);
- mShowMore = mPermsView.findViewById(R.id.show_more);
- mShowMoreIcon = (ImageView) mShowMore.findViewById(R.id.show_more_icon);
- mShowMoreText = (TextView) mShowMore.findViewById(R.id.show_more_text);
- mNewList = (LinearLayout) mPermsView.findViewById(R.id.new_perms_list);
- mDangerousList = (LinearLayout) mPermsView.findViewById(R.id.dangerous_perms_list);
- mNonDangerousList = (LinearLayout) mPermsView.findViewById(R.id.non_dangerous_perms_list);
- mNoPermsView = mPermsView.findViewById(R.id.no_permissions);
- // Set up the LinearLayout that acts like a list item.
- mShowMore.setClickable(true);
- mShowMore.setOnClickListener(this);
- mShowMore.setFocusable(true);
+ LinearLayout permsView = (LinearLayout) mInflater.inflate(R.layout.app_perms_summary, null);
+ LinearLayout displayList = (LinearLayout) permsView.findViewById(R.id.perms_list);
+ View noPermsView = permsView.findViewById(R.id.no_permissions);
- // Pick up from framework resources instead.
- mDefaultGrpLabel = mContext.getString(R.string.default_permission_group);
- mPermFormat = mContext.getString(R.string.permissions_format);
- mNewPermPrefix = mContext.getText(R.string.perms_new_perm_prefix);
- mNormalIcon = mContext.getResources().getDrawable(R.drawable.ic_text_dot);
- mDangerousIcon = mContext.getResources().getDrawable(R.drawable.ic_bullet_key_permission);
- mShowMaxIcon = mContext.getResources().getDrawable(R.drawable.expander_close_holo_dark);
- mShowMinIcon = mContext.getResources().getDrawable(R.drawable.expander_open_holo_dark);
-
- // Set permissions view
- setPermissions(mPermsList);
- return mPermsView;
- }
+ displayPermissions(mPermGroupsList, displayList, which);
+ if (displayList.getChildCount() <= 0) {
+ noPermsView.setVisibility(View.VISIBLE);
+ }
- /**
- * Utility method that concatenates two strings defined by mPermFormat.
- * a null value is returned if both str1 and str2 are null, if one of the strings
- * is null the other non null value is returned without formatting
- * this is to placate initial error checks
- */
- private CharSequence formatPermissions(CharSequence groupDesc, CharSequence permDesc,
- boolean newPerms) {
- if (permDesc == null) {
- return groupDesc;
- }
- // Sometimes people write permission names with a trailing period;
- // strip that if it appears.
- int len = permDesc.length();
- if (len > 0 && permDesc.charAt(len-1) == '.') {
- permDesc = (permDesc.toString()).substring(0, len-1);
- }
- if (newPerms) {
- if (true) {
- // If this is a new permission, format it appropriately.
- SpannableStringBuilder builder = new SpannableStringBuilder();
- if (groupDesc != null) {
- // The previous permissions go in front, with a newline
- // separating them.
- builder.append(groupDesc);
- builder.append("\n");
- }
- Parcel parcel = Parcel.obtain();
- TextUtils.writeToParcel(mNewPermPrefix, parcel, 0);
- parcel.setDataPosition(0);
- CharSequence newStr = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(parcel);
- parcel.recycle();
- builder.append(newStr);
- builder.append(permDesc);
- return builder;
- } else {
- // If this is a new permission, format it appropriately.
- SpannableStringBuilder builder = new SpannableStringBuilder(permDesc);
- builder.insert(0, mNewPermPrefix);
- if (groupDesc != null) {
- // The previous permissions go in front, with a newline
- // separating them.
- builder.insert(0, "\n");
- builder.insert(0, groupDesc);
- }
- return builder;
- }
- }
- if (groupDesc == null) {
- return permDesc;
- }
- // groupDesc and permDesc are non null
- return String.format(mPermFormat, groupDesc, permDesc.toString());
- }
-
- private CharSequence getGroupLabel(String grpName) {
- if (grpName == null) {
- //return default label
- return mDefaultGrpLabel;
- }
- CharSequence cachedLabel = mGroupLabelCache.get(grpName);
- if (cachedLabel != null) {
- return cachedLabel;
- }
- PermissionGroupInfo pgi;
- try {
- pgi = mPm.getPermissionGroupInfo(grpName, 0);
- } catch (NameNotFoundException e) {
- Log.i(TAG, "Invalid group name:" + grpName);
- return null;
- }
- CharSequence label = pgi.loadLabel(mPm).toString();
- mGroupLabelCache.put(grpName, label);
- return label;
+ return permsView;
}
/**
* Utility method that displays permissions from a map containing group name and
* list of permission descriptions.
*/
- private void displayPermissions(Map<String, CharSequence> permInfoMap,
- LinearLayout permListView, boolean dangerous) {
+ private void displayPermissions(List<MyPermissionGroupInfo> groups,
+ LinearLayout permListView, int which) {
permListView.removeAllViews();
- Set<String> permInfoStrSet = permInfoMap.keySet();
- for (String loopPermGrpInfoStr : permInfoStrSet) {
- CharSequence grpLabel = getGroupLabel(loopPermGrpInfoStr);
- //guaranteed that grpLabel wont be null since permissions without groups
- //will belong to the default group
- if(localLOGV) Log.i(TAG, "Adding view group:" + grpLabel + ", desc:"
- + permInfoMap.get(loopPermGrpInfoStr));
- permListView.addView(getPermissionItemView(grpLabel,
- permInfoMap.get(loopPermGrpInfoStr), dangerous));
+ int spacing = (int)(8*mContext.getResources().getDisplayMetrics().density);
+
+ for (int i=0; i<groups.size(); i++) {
+ MyPermissionGroupInfo grp = groups.get(i);
+ final List<MyPermissionInfo> perms = getPermissionList(grp, which);
+ for (int j=0; j<perms.size(); j++) {
+ MyPermissionInfo perm = perms.get(j);
+ View view = getPermissionItemView(grp, perm, j == 0,
+ which != WHICH_NEW ? mNewPermPrefix : null);
+ LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
+ ViewGroup.LayoutParams.MATCH_PARENT,
+ ViewGroup.LayoutParams.WRAP_CONTENT);
+ if (j == 0) {
+ lp.topMargin = spacing;
+ }
+ if (j == grp.mAllPermissions.size()-1) {
+ lp.bottomMargin = spacing;
+ }
+ if (permListView.getChildCount() == 0) {
+ lp.topMargin *= 2;
+ }
+ permListView.addView(view, lp);
+ }
}
}
- private void displayNoPermissions() {
- mNoPermsView.setVisibility(View.VISIBLE);
+ private PermissionItemView getPermissionItemView(MyPermissionGroupInfo grp,
+ MyPermissionInfo perm, boolean first, CharSequence newPermPrefix) {
+ return getPermissionItemView(mContext, mInflater, grp, perm, first, newPermPrefix);
}
- private View getPermissionItemView(CharSequence grpName, CharSequence permList,
- boolean dangerous) {
- return getPermissionItemView(mContext, mInflater, grpName, permList,
- dangerous, dangerous ? mDangerousIcon : mNormalIcon);
+ private static PermissionItemView getPermissionItemView(Context context, LayoutInflater inflater,
+ MyPermissionGroupInfo grp, MyPermissionInfo perm, boolean first,
+ CharSequence newPermPrefix) {
+ PermissionItemView permView = (PermissionItemView)inflater.inflate(
+ R.layout.app_permission_item, null);
+ permView.setPermission(grp, perm, first, newPermPrefix);
+ return permView;
}
- private static View getPermissionItemView(Context context, LayoutInflater inflater,
+ private static View getPermissionItemViewOld(Context context, LayoutInflater inflater,
CharSequence grpName, CharSequence permList, boolean dangerous, Drawable icon) {
- View permView = inflater.inflate(R.layout.app_permission_item, null);
+ View permView = inflater.inflate(R.layout.app_permission_item_old, null);
TextView permGrpView = (TextView) permView.findViewById(R.id.permission_group);
TextView permDescView = (TextView) permView.findViewById(R.id.permission_list);
@@ -444,41 +530,6 @@
return permView;
}
- private void showPermissions() {
-
- switch(mCurrentState) {
- case NO_PERMS:
- displayNoPermissions();
- break;
-
- case DANGEROUS_ONLY:
- displayPermissions(mNewMap, mNewList, true);
- displayPermissions(mDangerousMap, mDangerousList, true);
- break;
-
- case NORMAL_ONLY:
- displayPermissions(mNewMap, mNewList, true);
- displayPermissions(mNormalMap, mNonDangerousList, false);
- break;
-
- case BOTH:
- displayPermissions(mNewMap, mNewList, true);
- displayPermissions(mDangerousMap, mDangerousList, true);
- if (mExpanded) {
- displayPermissions(mNormalMap, mNonDangerousList, false);
- mShowMoreIcon.setImageDrawable(mShowMaxIcon);
- mShowMoreText.setText(R.string.perms_hide);
- mNonDangerousList.setVisibility(View.VISIBLE);
- } else {
- mShowMoreIcon.setImageDrawable(mShowMinIcon);
- mShowMoreText.setText(R.string.perms_show_all);
- mNonDangerousList.setVisibility(View.GONE);
- }
- mShowMore.setVisibility(View.VISIBLE);
- break;
- }
- }
-
private boolean isDisplayablePermission(PermissionInfo pInfo, int newReqFlags,
int existingReqFlags) {
final int base = pInfo.protectionLevel & PermissionInfo.PROTECTION_MASK_BASE;
@@ -496,79 +547,45 @@
}
return false;
}
-
- /*
- * Utility method that aggregates all permission descriptions categorized by group
- * Say group1 has perm11, perm12, perm13, the group description will be
- * perm11_Desc, perm12_Desc, perm13_Desc
- */
- private void aggregateGroupDescs(Map<String, List<MyPermissionInfo> > map,
- Map<String, CharSequence> retMap, boolean newPerms) {
- if(map == null) {
- return;
- }
- if(retMap == null) {
- return;
- }
- Set<String> grpNames = map.keySet();
- Iterator<String> grpNamesIter = grpNames.iterator();
- while(grpNamesIter.hasNext()) {
- CharSequence grpDesc = null;
- String grpNameKey = grpNamesIter.next();
- List<MyPermissionInfo> grpPermsList = map.get(grpNameKey);
- if(grpPermsList == null) {
- continue;
- }
- for(PermissionInfo permInfo: grpPermsList) {
- CharSequence permDesc = permInfo.loadLabel(mPm);
- grpDesc = formatPermissions(grpDesc, permDesc, newPerms);
- }
- // Insert grpDesc into map
- if(grpDesc != null) {
- if(localLOGV) Log.i(TAG, "Group:"+grpNameKey+" description:"+grpDesc.toString());
- retMap.put(grpNameKey, grpDesc);
- }
- }
- }
- private static class PermissionInfoComparator implements Comparator<PermissionInfo> {
- private PackageManager mPm;
+ private static class PermissionGroupInfoComparator implements Comparator<MyPermissionGroupInfo> {
private final Collator sCollator = Collator.getInstance();
- PermissionInfoComparator(PackageManager pm) {
- mPm = pm;
+ PermissionGroupInfoComparator() {
}
- public final int compare(PermissionInfo a, PermissionInfo b) {
- CharSequence sa = a.loadLabel(mPm);
- CharSequence sb = b.loadLabel(mPm);
- return sCollator.compare(sa, sb);
+ public final int compare(MyPermissionGroupInfo a, MyPermissionGroupInfo b) {
+ if (((a.flags^b.flags)&PermissionGroupInfo.FLAG_PERSONAL_INFO) != 0) {
+ return ((a.flags&PermissionGroupInfo.FLAG_PERSONAL_INFO) != 0) ? -1 : 1;
+ }
+ if (a.priority != b.priority) {
+ return a.priority > b.priority ? -1 : 1;
+ }
+ return sCollator.compare(a.mLabel, b.mLabel);
}
}
+ private static class PermissionInfoComparator implements Comparator<MyPermissionInfo> {
+ private final Collator sCollator = Collator.getInstance();
+ PermissionInfoComparator() {
+ }
+ public final int compare(MyPermissionInfo a, MyPermissionInfo b) {
+ return sCollator.compare(a.mLabel, b.mLabel);
+ }
+ }
+
+ private void addPermToList(List<MyPermissionInfo> permList,
+ MyPermissionInfo pInfo) {
+ if (pInfo.mLabel == null) {
+ pInfo.mLabel = pInfo.loadLabel(mPm);
+ }
+ int idx = Collections.binarySearch(permList, pInfo, mPermComparator);
+ if(localLOGV) Log.i(TAG, "idx="+idx+", list.size="+permList.size());
+ if (idx < 0) {
+ idx = -idx-1;
+ permList.add(idx, pInfo);
+ }
+ }
+
private void setPermissions(List<MyPermissionInfo> permList) {
- mGroupLabelCache = new HashMap<String, CharSequence>();
- //add the default label so that uncategorized permissions can go here
- mGroupLabelCache.put(mDefaultGrpName, mDefaultGrpLabel);
-
- // Map containing group names and a list of permissions under that group
- // that are new from the current install
- mNewMap = new HashMap<String, CharSequence>();
- // Map containing group names and a list of permissions under that group
- // categorized as dangerous
- mDangerousMap = new HashMap<String, CharSequence>();
- // Map containing group names and a list of permissions under that group
- // categorized as normal
- mNormalMap = new HashMap<String, CharSequence>();
-
- // Additional structures needed to ensure that permissions are unique under
- // each group
- Map<String, List<MyPermissionInfo>> newMap =
- new HashMap<String, List<MyPermissionInfo>>();
- Map<String, List<MyPermissionInfo>> dangerousMap =
- new HashMap<String, List<MyPermissionInfo>>();
- Map<String, List<MyPermissionInfo> > normalMap =
- new HashMap<String, List<MyPermissionInfo>>();
- PermissionInfoComparator permComparator = new PermissionInfoComparator(mPm);
-
if (permList != null) {
// First pass to group permissions
for (MyPermissionInfo pInfo : permList) {
@@ -577,51 +594,26 @@
if(localLOGV) Log.i(TAG, "Permission:"+pInfo.name+" is not displayable");
continue;
}
- Map<String, List<MyPermissionInfo> > permInfoMap;
- if (pInfo.mNew) {
- permInfoMap = newMap;
- } else if ((pInfo.protectionLevel&PermissionInfo.PROTECTION_MASK_BASE)
- == PermissionInfo.PROTECTION_DANGEROUS) {
- permInfoMap = dangerousMap;
- } else {
- permInfoMap = normalMap;
- }
- String grpName = (pInfo.group == null) ? mDefaultGrpName : pInfo.group;
- if(localLOGV) Log.i(TAG, "Permission:"+pInfo.name+" belongs to group:"+grpName);
- List<MyPermissionInfo> grpPermsList = permInfoMap.get(grpName);
- if(grpPermsList == null) {
- grpPermsList = new ArrayList<MyPermissionInfo>();
- permInfoMap.put(grpName, grpPermsList);
- grpPermsList.add(pInfo);
- } else {
- int idx = Collections.binarySearch(grpPermsList, pInfo, permComparator);
- if(localLOGV) Log.i(TAG, "idx="+idx+", list.size="+grpPermsList.size());
- if (idx < 0) {
- idx = -idx-1;
- grpPermsList.add(idx, pInfo);
+ MyPermissionGroupInfo group = mPermGroups.get(pInfo.group);
+ if (group != null) {
+ pInfo.mLabel = pInfo.loadLabel(mPm);
+ addPermToList(group.mAllPermissions, pInfo);
+ if (pInfo.mNew) {
+ addPermToList(group.mNewPermissions, pInfo);
+ }
+ if ((group.flags&PermissionGroupInfo.FLAG_PERSONAL_INFO) != 0) {
+ addPermToList(group.mPersonalPermissions, pInfo);
+ } else {
+ addPermToList(group.mDevicePermissions, pInfo);
}
}
}
- // Second pass to actually form the descriptions
- // Look at dangerous permissions first
- aggregateGroupDescs(newMap, mNewMap, true);
- aggregateGroupDescs(dangerousMap, mDangerousMap, false);
- aggregateGroupDescs(normalMap, mNormalMap, false);
}
- mCurrentState = State.NO_PERMS;
- if (mNewMap.size() > 0 || mDangerousMap.size() > 0) {
- mCurrentState = (mNormalMap.size() > 0) ? State.BOTH : State.DANGEROUS_ONLY;
- } else if(mNormalMap.size() > 0) {
- mCurrentState = State.NORMAL_ONLY;
+ for (MyPermissionGroupInfo pgrp : mPermGroups.values()) {
+ pgrp.mLabel = pgrp.loadLabel(mPm);
+ mPermGroupsList.add(pgrp);
}
- if(localLOGV) Log.i(TAG, "mCurrentState=" + mCurrentState);
- showPermissions();
- }
-
- public void onClick(View v) {
- if(localLOGV) Log.i(TAG, "mExpanded="+mExpanded);
- mExpanded = !mExpanded;
- showPermissions();
+ Collections.sort(mPermGroupsList, mPermGroupComparator);
}
}
diff --git a/core/java/android/widget/HorizontalScrollView.java b/core/java/android/widget/HorizontalScrollView.java
index c2559a5..1986450 100644
--- a/core/java/android/widget/HorizontalScrollView.java
+++ b/core/java/android/widget/HorizontalScrollView.java
@@ -536,10 +536,15 @@
switch (action & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN: {
- mIsBeingDragged = getChildCount() != 0;
- if (!mIsBeingDragged) {
+ if (getChildCount() == 0) {
return false;
}
+ if ((mIsBeingDragged = !mScroller.isFinished())) {
+ final ViewParent parent = getParent();
+ if (parent != null) {
+ parent.requestDisallowInterceptTouchEvent(true);
+ }
+ }
/*
* If being flinged and user touches, stop the fling. isFinished
@@ -555,11 +560,23 @@
break;
}
case MotionEvent.ACTION_MOVE:
+ final int activePointerIndex = ev.findPointerIndex(mActivePointerId);
+ final int x = (int) ev.getX(activePointerIndex);
+ int deltaX = mLastMotionX - x;
+ if (!mIsBeingDragged && Math.abs(deltaX) > mTouchSlop) {
+ final ViewParent parent = getParent();
+ if (parent != null) {
+ parent.requestDisallowInterceptTouchEvent(true);
+ }
+ mIsBeingDragged = true;
+ if (deltaX > 0) {
+ deltaX -= mTouchSlop;
+ } else {
+ deltaX += mTouchSlop;
+ }
+ }
if (mIsBeingDragged) {
// Scroll to follow the motion event
- final int activePointerIndex = ev.findPointerIndex(mActivePointerId);
- final int x = (int) ev.getX(activePointerIndex);
- final int deltaX = (int) (mLastMotionX - x);
mLastMotionX = x;
final int oldX = mScrollX;
diff --git a/core/java/android/widget/ScrollView.java b/core/java/android/widget/ScrollView.java
index 0f0dbae..f912c66 100644
--- a/core/java/android/widget/ScrollView.java
+++ b/core/java/android/widget/ScrollView.java
@@ -482,6 +482,10 @@
if (mScrollStrictSpan == null) {
mScrollStrictSpan = StrictMode.enterCriticalSpan("ScrollView-scroll");
}
+ final ViewParent parent = getParent();
+ if (parent != null) {
+ parent.requestDisallowInterceptTouchEvent(true);
+ }
}
break;
}
@@ -546,10 +550,15 @@
switch (action & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN: {
- mIsBeingDragged = getChildCount() != 0;
- if (!mIsBeingDragged) {
+ if (getChildCount() == 0) {
return false;
}
+ if ((mIsBeingDragged = !mScroller.isFinished())) {
+ final ViewParent parent = getParent();
+ if (parent != null) {
+ parent.requestDisallowInterceptTouchEvent(true);
+ }
+ }
/*
* If being flinged and user touches, stop the fling. isFinished
@@ -569,11 +578,23 @@
break;
}
case MotionEvent.ACTION_MOVE:
+ final int activePointerIndex = ev.findPointerIndex(mActivePointerId);
+ final int y = (int) ev.getY(activePointerIndex);
+ int deltaY = mLastMotionY - y;
+ if (!mIsBeingDragged && Math.abs(deltaY) > mTouchSlop) {
+ final ViewParent parent = getParent();
+ if (parent != null) {
+ parent.requestDisallowInterceptTouchEvent(true);
+ }
+ mIsBeingDragged = true;
+ if (deltaY > 0) {
+ deltaY -= mTouchSlop;
+ } else {
+ deltaY += mTouchSlop;
+ }
+ }
if (mIsBeingDragged) {
// Scroll to follow the motion event
- final int activePointerIndex = ev.findPointerIndex(mActivePointerId);
- final int y = (int) ev.getY(activePointerIndex);
- final int deltaY = mLastMotionY - y;
mLastMotionY = y;
final int oldX = mScrollX;
diff --git a/core/java/com/android/internal/app/ActionBarImpl.java b/core/java/com/android/internal/app/ActionBarImpl.java
index ed711f3..805c0a9 100644
--- a/core/java/com/android/internal/app/ActionBarImpl.java
+++ b/core/java/com/android/internal/app/ActionBarImpl.java
@@ -817,6 +817,7 @@
@Override
public void setTitleOptionalHint(boolean titleOptional) {
+ super.setTitleOptionalHint(titleOptional);
mContextView.setTitleOptional(titleOptional);
}
diff --git a/core/java/com/android/internal/view/StandaloneActionMode.java b/core/java/com/android/internal/view/StandaloneActionMode.java
index 4b681ec..fae7ea1 100644
--- a/core/java/com/android/internal/view/StandaloneActionMode.java
+++ b/core/java/com/android/internal/view/StandaloneActionMode.java
@@ -73,6 +73,7 @@
@Override
public void setTitleOptionalHint(boolean titleOptional) {
+ super.setTitleOptionalHint(titleOptional);
mContextView.setTitleOptional(titleOptional);
}
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index e1eaf41..bd1f574 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -139,38 +139,11 @@
<eat-comment />
<!-- Used for permissions that can be used to make the user spend money
- without their direct involvement. For example, this is the group
- for permissions that allow you to directly place phone calls,
- directly send SMS messages, etc. -->
+ without their direct involvement. -->
<permission-group android:name="android.permission-group.COST_MONEY"
android:label="@string/permgrouplab_costMoney"
android:description="@string/permgroupdesc_costMoney" />
- <!-- Allows an application to send SMS messages. -->
- <permission android:name="android.permission.SEND_SMS"
- android:permissionGroup="android.permission-group.COST_MONEY"
- android:protectionLevel="dangerous"
- android:label="@string/permlab_sendSms"
- android:description="@string/permdesc_sendSms" />
-
- <!-- Allows an application to send SMS messages via the Messaging app with no user
- input or confirmation.
- @hide -->
- <permission android:name="android.permission.SEND_SMS_NO_CONFIRMATION"
- android:permissionGroup="android.permission-group.COST_MONEY"
- android:protectionLevel="signature|system"
- android:label="@string/permlab_sendSmsNoConfirmation"
- android:description="@string/permdesc_sendSmsNoConfirmation" />
-
- <!-- Allows an application to initiate a phone call without going through
- the Dialer user interface for the user to confirm the call
- being placed. -->
- <permission android:name="android.permission.CALL_PHONE"
- android:permissionGroup="android.permission-group.COST_MONEY"
- android:protectionLevel="dangerous"
- android:label="@string/permlab_callPhone"
- android:description="@string/permdesc_callPhone" />
-
<!-- ================================== -->
<!-- Permissions for accessing messages -->
<!-- ================================== -->
@@ -182,7 +155,25 @@
receiving or reading an MMS. -->
<permission-group android:name="android.permission-group.MESSAGES"
android:label="@string/permgrouplab_messages"
- android:description="@string/permgroupdesc_messages" />
+ android:description="@string/permgroupdesc_messages"
+ android:permissionGroupFlags="personalInfo"
+ android:priority="2"/>
+
+ <!-- Allows an application to send SMS messages. -->
+ <permission android:name="android.permission.SEND_SMS"
+ android:permissionGroup="android.permission-group.MESSAGES"
+ android:protectionLevel="dangerous"
+ android:label="@string/permlab_sendSms"
+ android:description="@string/permdesc_sendSms" />
+
+ <!-- Allows an application to send SMS messages via the Messaging app with no user
+ input or confirmation.
+ @hide -->
+ <permission android:name="android.permission.SEND_SMS_NO_CONFIRMATION"
+ android:permissionGroup="android.permission-group.MESSAGES"
+ android:protectionLevel="signature|system"
+ android:label="@string/permlab_sendSmsNoConfirmation"
+ android:description="@string/permdesc_sendSmsNoConfirmation" />
<!-- Allows an application to monitor incoming SMS messages, to record
or perform processing on them. -->
@@ -248,22 +239,24 @@
android:description="@string/permdesc_receiveWapPush" />
<!-- =============================================================== -->
- <!-- Permissions for accessing personal info (contacts and calendar) -->
+ <!-- Permissions for accessing social info (contacts and social) -->
<!-- =============================================================== -->
<eat-comment />
- <!-- Used for permissions that provide access to the user's private data,
- such as contacts, calendar events, e-mail messages, etc. This includes
+ <!-- Used for permissions that provide access to the user's social connections,
+ such as contacts, call logs, social stream, etc. This includes
both reading and writing of this data (which should generally be
expressed as two distinct permissions). -->
- <permission-group android:name="android.permission-group.PERSONAL_INFO"
- android:label="@string/permgrouplab_personalInfo"
- android:description="@string/permgroupdesc_personalInfo"
- android:permissionGroupFlags="personalInfo" />
+
+ <permission-group android:name="android.permission-group.SOCIAL_INFO"
+ android:label="@string/permgrouplab_socialInfo"
+ android:description="@string/permgroupdesc_socialInfo"
+ android:permissionGroupFlags="personalInfo"
+ android:priority="6" />
<!-- Allows an application to read the user's contacts data. -->
<permission android:name="android.permission.READ_CONTACTS"
- android:permissionGroup="android.permission-group.PERSONAL_INFO"
+ android:permissionGroup="android.permission-group.SOCIAL_INFO"
android:protectionLevel="dangerous"
android:label="@string/permlab_readContacts"
android:description="@string/permdesc_readContacts" />
@@ -271,14 +264,14 @@
<!-- Allows an application to write (but not read) the user's
contacts data. -->
<permission android:name="android.permission.WRITE_CONTACTS"
- android:permissionGroup="android.permission-group.PERSONAL_INFO"
+ android:permissionGroup="android.permission-group.SOCIAL_INFO"
android:protectionLevel="dangerous"
android:label="@string/permlab_writeContacts"
android:description="@string/permdesc_writeContacts" />
<!-- Allows an application to read the user's call log. -->
<permission android:name="android.permission.READ_CALL_LOG"
- android:permissionGroup="android.permission-group.PERSONAL_INFO"
+ android:permissionGroup="android.permission-group.SOCIAL_INFO"
android:protectionLevel="dangerous"
android:label="@string/permlab_readCallLog"
android:description="@string/permdesc_readCallLog" />
@@ -286,11 +279,40 @@
<!-- Allows an application to write (but not read) the user's
contacts data. -->
<permission android:name="android.permission.WRITE_CALL_LOG"
- android:permissionGroup="android.permission-group.PERSONAL_INFO"
+ android:permissionGroup="android.permission-group.SOCIAL_INFO"
android:protectionLevel="dangerous"
android:label="@string/permlab_writeCallLog"
android:description="@string/permdesc_writeCallLog" />
+ <!-- Allows an application to read from the user's social stream. -->
+ <permission android:name="android.permission.READ_SOCIAL_STREAM"
+ android:permissionGroup="android.permission-group.SOCIAL_INFO"
+ android:protectionLevel="dangerous"
+ android:label="@string/permlab_readSocialStream"
+ android:description="@string/permdesc_readSocialStream" />
+
+ <!-- Allows an application to write (but not read) the user's
+ social stream data. -->
+ <permission android:name="android.permission.WRITE_SOCIAL_STREAM"
+ android:permissionGroup="android.permission-group.SOCIAL_INFO"
+ android:protectionLevel="dangerous"
+ android:label="@string/permlab_writeSocialStream"
+ android:description="@string/permdesc_writeSocialStream" />
+
+ <!-- =============================================================== -->
+ <!-- Permissions for accessing information about the device owner -->
+ <!-- =============================================================== -->
+ <eat-comment />
+
+ <!-- Used for permissions that provide access to information about the device
+ user such as profile information. This includes both reading and
+ writing of this data (which should generally be expressed as two
+ distinct permissions). -->
+ <permission-group android:name="android.permission-group.PERSONAL_INFO"
+ android:label="@string/permgrouplab_personalInfo"
+ android:description="@string/permgroupdesc_personalInfo"
+ android:permissionGroupFlags="personalInfo"
+ android:priority="7" />
<!-- Allows an application to read the user's personal profile data. -->
<permission android:name="android.permission.READ_PROFILE"
@@ -307,20 +329,18 @@
android:label="@string/permlab_writeProfile"
android:description="@string/permdesc_writeProfile" />
- <!-- Allows an application to read from the user's social stream. -->
- <permission android:name="android.permission.READ_SOCIAL_STREAM"
- android:permissionGroup="android.permission-group.PERSONAL_INFO"
- android:protectionLevel="dangerous"
- android:label="@string/permlab_readSocialStream"
- android:description="@string/permdesc_readSocialStream" />
+ <!-- =============================================================== -->
+ <!-- Permissions for accessing the device calendar -->
+ <!-- =============================================================== -->
+ <eat-comment />
- <!-- Allows an application to write (but not read) the user's
- social stream data. -->
- <permission android:name="android.permission.WRITE_SOCIAL_STREAM"
- android:permissionGroup="android.permission-group.PERSONAL_INFO"
- android:protectionLevel="dangerous"
- android:label="@string/permlab_writeSocialStream"
- android:description="@string/permdesc_writeSocialStream" />
+ <!-- Used for permissions that provide access to the device
+ calendar to create / view events.-->
+ <permission-group android:name="android.permission-group.CALENDAR"
+ android:label="@string/permgrouplab_calendar"
+ android:description="@string/permgroupdesc_calendar"
+ android:permissionGroupFlags="personalInfo"
+ android:priority="9" />
<!-- Allows an application to read the user's calendar data. -->
<permission android:name="android.permission.READ_CALENDAR"
@@ -337,26 +357,52 @@
android:label="@string/permlab_writeCalendar"
android:description="@string/permdesc_writeCalendar" />
+ <!-- =============================================================== -->
+ <!-- Permissions for accessing the user dictionary-->
+ <!-- =============================================================== -->
+ <eat-comment />
+
+ <!-- Used for permissions that provide access to the user
+ calendar to create / view events.-->
+ <permission-group android:name="android.permission-group.USER_DICTIONARY"
+ android:label="@string/permgrouplab_dictionary"
+ android:description="@string/permgroupdesc_dictionary"
+ android:permissionGroupFlags="personalInfo"
+ android:priority="20" />
+
<!-- Allows an application to read the user dictionary. This should
really only be required by an IME, or a dictionary editor like
the Settings app. -->
<permission android:name="android.permission.READ_USER_DICTIONARY"
- android:permissionGroup="android.permission-group.PERSONAL_INFO"
+ android:permissionGroup="android.permission-group.USER_DICTIONARY"
android:protectionLevel="dangerous"
android:label="@string/permlab_readDictionary"
android:description="@string/permdesc_readDictionary" />
<!-- Allows an application to write to the user dictionary. -->
<permission android:name="android.permission.WRITE_USER_DICTIONARY"
- android:permissionGroup="android.permission-group.PERSONAL_INFO"
+ android:permissionGroup="android.permission-group.USER_DICTIONARY"
android:protectionLevel="normal"
android:label="@string/permlab_writeDictionary"
android:description="@string/permdesc_writeDictionary" />
+ <!-- =============================================================== -->
+ <!-- Permissions for accessing the user bookmarks -->
+ <!-- =============================================================== -->
+ <eat-comment />
+
+ <!-- Used for permissions that provide access to the user
+ bookmarks and browser history.-->
+ <permission-group android:name="android.permission-group.BOOKMARKS"
+ android:label="@string/permgrouplab_bookmarks"
+ android:description="@string/permgroupdesc_bookmarks"
+ android:permissionGroupFlags="personalInfo"
+ android:priority="8" />
+
<!-- Allows an application to read (but not write) the user's
browsing history and bookmarks. -->
<permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS"
- android:permissionGroup="android.permission-group.PERSONAL_INFO"
+ android:permissionGroup="android.permission-group.BOOKMARKS"
android:label="@string/permlab_readHistoryBookmarks"
android:description="@string/permdesc_readHistoryBookmarks"
android:protectionLevel="dangerous" />
@@ -364,22 +410,46 @@
<!-- Allows an application to write (but not read) the user's
browsing history and bookmarks. -->
<permission android:name="com.android.browser.permission.WRITE_HISTORY_BOOKMARKS"
- android:permissionGroup="android.permission-group.PERSONAL_INFO"
+ android:permissionGroup="android.permission-group.BOOKMARKS"
android:label="@string/permlab_writeHistoryBookmarks"
android:description="@string/permdesc_writeHistoryBookmarks"
android:protectionLevel="dangerous" />
+ <!-- =============================================================== -->
+ <!-- Permissions for setting the device alarm -->
+ <!-- =============================================================== -->
+ <eat-comment />
+
+ <!-- Used for permissions that provide access to the user voicemail box. -->
+ <permission-group android:name="android.permission-group.DEVICE_ALARMS"
+ android:label="@string/permgrouplab_deviceAlarms"
+ android:description="@string/permgroupdesc_deviceAlarms"
+ android:permissionGroupFlags="personalInfo"
+ android:priority="16"/>
+
<!-- Allows an application to broadcast an Intent to set an alarm for the
user. -->
<permission android:name="com.android.alarm.permission.SET_ALARM"
- android:permissionGroup="android.permission-group.PERSONAL_INFO"
+ android:permissionGroup="android.permission-group.DEVICE_ALARMS"
android:label="@string/permlab_setAlarm"
android:description="@string/permdesc_setAlarm"
android:protectionLevel="normal" />
+ <!-- =============================================================== -->
+ <!-- Permissions for accessing the user voicemail -->
+ <!-- =============================================================== -->
+ <eat-comment />
+
+ <!-- Used for permissions that provide access to the user voicemail box. -->
+ <permission-group android:name="android.permission-group.VOICEMAIL"
+ android:label="@string/permgrouplab_voicemail"
+ android:description="@string/permgroupdesc_voicemail"
+ android:permissionGroupFlags="personalInfo"
+ android:priority="10" />
+
<!-- Allows an application to add voicemails into the system. -->
<permission android:name="com.android.voicemail.permission.ADD_VOICEMAIL"
- android:permissionGroup="android.permission-group.PERSONAL_INFO"
+ android:permissionGroup="android.permission-group.VOICEMAIL"
android:protectionLevel="dangerous"
android:label="@string/permlab_addVoicemail"
android:description="@string/permdesc_addVoicemail" />
@@ -393,7 +463,9 @@
location. -->
<permission-group android:name="android.permission-group.LOCATION"
android:label="@string/permgrouplab_location"
- android:description="@string/permgroupdesc_location" />
+ android:description="@string/permgroupdesc_location"
+ android:permissionGroupFlags="personalInfo"
+ android:priority="5" />
<!-- Allows an application to access fine (e.g., GPS) location -->
<permission android:name="android.permission.ACCESS_FINE_LOCATION"
@@ -440,7 +512,8 @@
or other related network operations. -->
<permission-group android:name="android.permission-group.NETWORK"
android:label="@string/permgrouplab_network"
- android:description="@string/permgroupdesc_network" />
+ android:description="@string/permgroupdesc_network"
+ android:priority="11" />
<!-- Allows applications to open network sockets. -->
<permission android:name="android.permission.INTERNET"
@@ -462,6 +535,13 @@
android:protectionLevel="normal"
android:description="@string/permdesc_accessWifiState"
android:label="@string/permlab_accessWifiState" />
+
+ <!-- Allows applications to change Wi-Fi connectivity state -->
+ <permission android:name="android.permission.CHANGE_WIFI_STATE"
+ android:permissionGroup="android.permission-group.NETWORK"
+ android:protectionLevel="normal"
+ android:description="@string/permdesc_changeWifiState"
+ android:label="@string/permlab_changeWifiState" />
<!-- @hide -->
<permission android:name="android.permission.ACCESS_WIMAX_STATE"
@@ -469,36 +549,49 @@
android:protectionLevel="normal"
android:description="@string/permdesc_accessWimaxState"
android:label="@string/permlab_accessWimaxState" />
+
+ <!-- @hide -->
+ <permission android:name="android.permission.CHANGE_WIMAX_STATE"
+ android:permissionGroup="android.permission-group.NETWORK"
+ android:protectionLevel="dangerous"
+ android:description="@string/permdesc_changeWimaxState"
+ android:label="@string/permlab_changeWimaxState" />
+
+ <!-- ======================================= -->
+ <!-- Permissions for short range, peripheral networks -->
+ <!-- ======================================= -->
+ <eat-comment />
+
+ <!-- Used for permissions that provide access to network services that
+ are for peripherals and other nearby devices. These networks
+ generally do not provide IP based networking or internet access.-->
+ <permission-group android:name="android.permission-group.SHORTRANGE_NETWORK"
+ android:label="@string/permgrouplab_shortRangeNetwork"
+ android:description="@string/permgroupdesc_shortRangeNetwork"
+ android:priority="12" />
+
<!-- Allows applications to connect to paired bluetooth devices -->
<permission android:name="android.permission.BLUETOOTH"
- android:permissionGroup="android.permission-group.NETWORK"
+ android:permissionGroup="android.permission-group.SHORTRANGE_NETWORK"
android:protectionLevel="dangerous"
android:description="@string/permdesc_bluetooth"
android:label="@string/permlab_bluetooth" />
-
+
+ <!-- Allows applications to discover and pair bluetooth devices -->
+ <permission android:name="android.permission.BLUETOOTH_ADMIN"
+ android:permissionGroup="android.permission-group.SHORTRANGE_NETWORK"
+ android:protectionLevel="dangerous"
+ android:description="@string/permdesc_bluetoothAdmin"
+ android:label="@string/permlab_bluetoothAdmin" />
+
<!-- Allows applications to perform I/O operations over NFC -->
<permission android:name="android.permission.NFC"
- android:permissionGroup="android.permission-group.NETWORK"
+ android:permissionGroup="android.permission-group.SHORTRANGE_NETWORK"
android:protectionLevel="dangerous"
android:description="@string/permdesc_nfc"
android:label="@string/permlab_nfc" />
- <!-- Allows an application to use SIP service -->
- <permission android:name="android.permission.USE_SIP"
- android:permissionGroup="android.permission-group.NETWORK"
- android:protectionLevel="dangerous"
- android:description="@string/permdesc_use_sip"
- android:label="@string/permlab_use_sip" />
-
- <!-- Allows applications to call into AccountAuthenticators. Only
- the system can get this permission. -->
- <permission android:name="android.permission.ACCOUNT_MANAGER"
- android:permissionGroup="android.permission-group.ACCOUNTS"
- android:protectionLevel="signature"
- android:description="@string/permdesc_accountManagerService"
- android:label="@string/permlab_accountManagerService" />
-
- <!-- Allows an internal user to use privaledged ConnectivityManager
+ <!-- Allows an internal user to use privileged ConnectivityManager
APIs.
@hide -->
<permission android:name="android.permission.CONNECTIVITY_INTERNAL"
@@ -514,7 +607,9 @@
by the Account Manager. -->
<permission-group android:name="android.permission-group.ACCOUNTS"
android:label="@string/permgrouplab_accounts"
- android:description="@string/permgroupdesc_accounts" />
+ android:description="@string/permgroupdesc_accounts"
+ android:permissionGroupFlags="personalInfo"
+ android:priority="17" />
<!-- Allows access to the list of accounts in the Accounts Service -->
<permission android:name="android.permission.GET_ACCOUNTS"
@@ -545,6 +640,75 @@
android:label="@string/permlab_manageAccounts"
android:description="@string/permdesc_manageAccounts" />
+ <!-- Allows applications to call into AccountAuthenticators. Only
+ the system can get this permission. -->
+ <permission android:name="android.permission.ACCOUNT_MANAGER"
+ android:permissionGroup="android.permission-group.ACCOUNTS"
+ android:protectionLevel="signature"
+ android:description="@string/permdesc_accountManagerService"
+ android:label="@string/permlab_accountManagerService" />
+
+ <!-- ================================== -->
+ <!-- Permissions for accessing hardware that may effect battery life-->
+ <!-- ================================== -->
+ <eat-comment />
+
+ <!-- Used for permissions that provide direct access to the hardware on
+ the device that has an effect on battery life. This includes vibrator,
+ flashlight, etc. -->
+
+ <permission-group android:name="android.permission-group.AFFECTS_BATTERY"
+ android:label="@string/permgrouplab_affectsBattery"
+ android:description="@string/permgroupdesc_affectsBattery"
+ android:priority="19" />
+
+ <!-- Allows applications to enter Wi-Fi Multicast mode -->
+ <permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE"
+ android:permissionGroup="android.permission-group.AFFECTS_BATTERY"
+ android:protectionLevel="normal"
+ android:description="@string/permdesc_changeWifiMulticastState"
+ android:label="@string/permlab_changeWifiMulticastState" />
+
+ <!-- Allows access to the vibrator -->
+ <permission android:name="android.permission.VIBRATE"
+ android:permissionGroup="android.permission-group.AFFECTS_BATTERY"
+ android:protectionLevel="normal"
+ android:label="@string/permlab_vibrate"
+ android:description="@string/permdesc_vibrate" />
+
+ <!-- Allows access to the flashlight -->
+ <permission android:name="android.permission.FLASHLIGHT"
+ android:permissionGroup="android.permission-group.AFFECTS_BATTERY"
+ android:protectionLevel="normal"
+ android:label="@string/permlab_flashlight"
+ android:description="@string/permdesc_flashlight" />
+
+ <!-- Allows using PowerManager WakeLocks to keep processor from sleeping or screen
+ from dimming -->
+ <permission android:name="android.permission.WAKE_LOCK"
+ android:permissionGroup="android.permission-group.AFFECTS_BATTERY"
+ android:protectionLevel="normal"
+ android:label="@string/permlab_wakeLock"
+ android:description="@string/permdesc_wakeLock" />
+
+ <!-- ==================================================== -->
+ <!-- Permissions related to changing audio settings -->
+ <!-- ==================================================== -->
+
+ <!-- Used for permissions that provide direct access to speaker settings
+ the device. -->
+ <permission-group android:name="android.permission-group.AUDIO_SETTINGS"
+ android:label="@string/permgrouplab_audioSettings"
+ android:description="@string/permgroupdesc_audioSettings"
+ android:priority="25" />
+
+ <!-- Allows an application to modify global audio settings -->
+ <permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"
+ android:permissionGroup="android.permission-group.AUDIO_SETTINGS"
+ android:protectionLevel="normal"
+ android:label="@string/permlab_modifyAudioSettings"
+ android:description="@string/permdesc_modifyAudioSettings" />
+
<!-- ================================== -->
<!-- Permissions for accessing hardware -->
<!-- ================================== -->
@@ -554,48 +718,8 @@
the device. This includes audio, the camera, vibrator, etc. -->
<permission-group android:name="android.permission-group.HARDWARE_CONTROLS"
android:label="@string/permgrouplab_hardwareControls"
- android:description="@string/permgroupdesc_hardwareControls" />
-
- <!-- Allows an application to modify global audio settings -->
- <permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"
- android:permissionGroup="android.permission-group.HARDWARE_CONTROLS"
- android:protectionLevel="dangerous"
- android:label="@string/permlab_modifyAudioSettings"
- android:description="@string/permdesc_modifyAudioSettings" />
-
- <!-- Allows an application to record audio -->
- <permission android:name="android.permission.RECORD_AUDIO"
- android:permissionGroup="android.permission-group.HARDWARE_CONTROLS"
- android:protectionLevel="dangerous"
- android:label="@string/permlab_recordAudio"
- android:description="@string/permdesc_recordAudio" />
-
- <!-- Required to be able to access the camera device.
- <p>This will automatically enforce the <a
- href="{@docRoot}guide/topics/manifest/uses-feature-element.html">{@code
- <uses-feature>}</a> manifest element for <em>all</em> camera features.
- If you do not require all camera features or can properly operate if a camera
- is not available, then you must modify your manifest as appropriate in order to
- install on devices that don't support all camera features.</p> -->
- <permission android:name="android.permission.CAMERA"
- android:permissionGroup="android.permission-group.HARDWARE_CONTROLS"
- android:protectionLevel="dangerous"
- android:label="@string/permlab_camera"
- android:description="@string/permdesc_camera" />
-
- <!-- Allows access to the vibrator -->
- <permission android:name="android.permission.VIBRATE"
- android:permissionGroup="android.permission-group.HARDWARE_CONTROLS"
- android:protectionLevel="normal"
- android:label="@string/permlab_vibrate"
- android:description="@string/permdesc_vibrate" />
-
- <!-- Allows access to the flashlight -->
- <permission android:name="android.permission.FLASHLIGHT"
- android:permissionGroup="android.permission-group.HARDWARE_CONTROLS"
- android:protectionLevel="normal"
- android:label="@string/permlab_flashlight"
- android:description="@string/permdesc_flashlight" />
+ android:description="@string/permgroupdesc_hardwareControls"
+ android:priority="26"/>
<!-- Allows an application to manage preferences and permissions for USB devices
@hide -->
@@ -633,18 +757,65 @@
android:protectionLevel="signature" />
<!-- =========================================== -->
+ <!-- Permissions associated with audio capture -->
+ <!-- =========================================== -->
+ <eat-comment />
+
+ <!-- Used for permissions that are associated with accessing
+ microphone audio from the device. Note that phone calls also capture audio
+ but are in a separate (more visible) permission group. -->
+ <permission-group android:name="android.permission-group.MICROPHONE"
+ android:label="@string/permgrouplab_microphone"
+ android:description="@string/permgroupdesc_microphone"
+ android:permissionGroupFlags="personalInfo"
+ android:priority="4" />
+
+ <!-- Allows an application to record audio -->
+ <permission android:name="android.permission.RECORD_AUDIO"
+ android:permissionGroup="android.permission-group.MICROPHONE"
+ android:protectionLevel="dangerous"
+ android:label="@string/permlab_recordAudio" />
+
+
+ <!-- =========================================== -->
+ <!-- Permissions associated with camera and image capture -->
+ <!-- =========================================== -->
+ <eat-comment />
+
+ <!-- Used for permissions that are associated with accessing
+ camera or capturing images/video from the device. -->
+ <permission-group android:name="android.permission-group.CAMERA"
+ android:label="@string/permgrouplab_camera"
+ android:description="@string/permgroupdesc_camera"
+ android:permissionGroupFlags="personalInfo"
+ android:priority="3" />
+
+ <!-- Required to be able to access the camera device.
+ <p>This will automatically enforce the <a
+ href="{@docRoot}guide/topics/manifest/uses-feature-element.html">{@code
+ <uses-feature>}</a> manifest element for <em>all</em> camera features.
+ If you do not require all camera features or can properly operate if a camera
+ is not available, then you must modify your manifest as appropriate in order to
+ install on devices that don't support all camera features.</p> -->
+ <permission android:name="android.permission.CAMERA"
+ android:permissionGroup="android.permission-group.CAMERA"
+ android:protectionLevel="dangerous"
+ android:label="@string/permlab_camera"
+ android:description="@string/permdesc_camera" />
+
+ <!-- =========================================== -->
<!-- Permissions associated with telephony state -->
<!-- =========================================== -->
<eat-comment />
<!-- Used for permissions that are associated with accessing and modifyign
- telephony state: intercepting outgoing calls, reading
- and modifying the phone state. Note that
- placing phone calls is not in this group, since that is in the
- more important "takin' yer moneys" group. -->
+ telephony state: placing calls, intercepting outgoing calls, reading
+ and modifying the phone state. -->
<permission-group android:name="android.permission-group.PHONE_CALLS"
android:label="@string/permgrouplab_phoneCalls"
- android:description="@string/permgroupdesc_phoneCalls" />
+ android:description="@string/permgroupdesc_phoneCalls"
+ android:permissionGroupFlags="personalInfo"
+ android:priority="1" />
<!-- Allows an application to monitor, modify, or abort outgoing
calls. -->
@@ -675,6 +846,22 @@
android:permissionGroup="android.permission-group.PHONE_CALLS"
android:protectionLevel="signature|system" />
+ <!-- Allows an application to initiate a phone call without going through
+ the Dialer user interface for the user to confirm the call
+ being placed. -->
+ <permission android:name="android.permission.CALL_PHONE"
+ android:permissionGroup="android.permission-group.PHONE_CALLS"
+ android:protectionLevel="dangerous"
+ android:label="@string/permlab_callPhone"
+ android:description="@string/permdesc_callPhone" />
+
+ <!-- Allows an application to use SIP service -->
+ <permission android:name="android.permission.USE_SIP"
+ android:permissionGroup="android.permission-group.PHONE_CALLS"
+ android:protectionLevel="dangerous"
+ android:description="@string/permdesc_use_sip"
+ android:label="@string/permlab_use_sip" />
+
<!-- ================================== -->
<!-- Permissions for sdcard interaction -->
<!-- ================================== -->
@@ -683,7 +870,9 @@
<!-- Group of permissions that are related to SD card access. -->
<permission-group android:name="android.permission-group.STORAGE"
android:label="@string/permgrouplab_storage"
- android:description="@string/permgroupdesc_storage" />
+ android:description="@string/permgroupdesc_storage"
+ android:permissionGroupFlags="personalInfo"
+ android:priority="13" />
<!-- Allows an application to read from external storage -->
<permission android:name="android.permission.READ_EXTERNAL_STORAGE"
@@ -707,45 +896,40 @@
android:description="@string/permdesc_mediaStorageWrite"
android:protectionLevel="signature|system" />
- <!-- ============================================ -->
- <!-- Permissions for low-level system interaction -->
- <!-- ============================================ -->
+ <!-- ================================== -->
+ <!-- Permissions for screenlock -->
+ <!-- ================================== -->
<eat-comment />
- <!-- Group of permissions that are related to system APIs. Many
- of these are not permissions the user will be expected to understand,
- and such permissions should generally be marked as "normal" protection
- level so they don't get displayed. This can also, however, be used
- for miscellaneous features that provide access to the operating system,
- such as writing the global system settings. -->
- <permission-group android:name="android.permission-group.SYSTEM_TOOLS"
- android:label="@string/permgrouplab_systemTools"
- android:description="@string/permgroupdesc_systemTools" />
+ <!-- Group of permissions that are related to the screenlock. -->
+ <permission-group android:name="android.permission-group.SCREENLOCK"
+ android:label="@string/permgrouplab_storage"
+ android:permissionGroupFlags="personalInfo"
+ android:description="@string/permgroupdesc_storage" />
- <!-- Allows an application to read or write the system settings. -->
- <permission android:name="android.permission.WRITE_SETTINGS"
- android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
+ <!-- Allows applications to disable the keyguard -->
+ <permission android:name="android.permission.DISABLE_KEYGUARD"
+ android:permissionGroup="android.permission-group.SCREENLOCK"
android:protectionLevel="dangerous"
- android:label="@string/permlab_writeSettings"
- android:description="@string/permdesc_writeSettings" />
+ android:description="@string/permdesc_disableKeyguard"
+ android:label="@string/permlab_disableKeyguard" />
- <!-- Allows an application to modify the Google service map. -->
- <permission android:name="android.permission.WRITE_GSERVICES"
- android:protectionLevel="signature|system"
- android:label="@string/permlab_writeGservices"
- android:description="@string/permdesc_writeGservices" />
+ <!-- ================================== -->
+ <!-- Permissions to access other installed applications -->
+ <!-- ================================== -->
+ <eat-comment />
- <!-- Allows an application to expand or collapse the status bar. -->
- <permission android:name="android.permission.EXPAND_STATUS_BAR"
- android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
- android:protectionLevel="normal"
- android:label="@string/permlab_expandStatusBar"
- android:description="@string/permdesc_expandStatusBar" />
+ <!-- Group of permissions that are related to the other applications
+ installed on the system. Examples include such as listing
+ running apps, or killing background processes. -->
+ <permission-group android:name="android.permission-group.APP_INFO"
+ android:label="@string/permgrouplab_appInfo"
+ android:description="@string/permgroupdesc_appInfo" />
<!-- Allows an application to get information about the currently
or recently running tasks. -->
<permission android:name="android.permission.GET_TASKS"
- android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
+ android:permissionGroup="android.permission-group.APP_INFO"
android:protectionLevel="dangerous"
android:label="@string/permlab_getTasks"
android:description="@string/permdesc_getTasks" />
@@ -761,14 +945,14 @@
<!-- Allows an application to change the Z-order of tasks -->
<permission android:name="android.permission.REORDER_TASKS"
- android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
- android:protectionLevel="dangerous"
+ android:permissionGroup="android.permission-group.APP_INFO"
+ android:protectionLevel="normal"
android:label="@string/permlab_reorderTasks"
android:description="@string/permdesc_reorderTasks" />
<!-- @hide Allows an application to change to remove/kill tasks -->
<permission android:name="android.permission.REMOVE_TASKS"
- android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
+ android:permissionGroup="android.permission-group.APP_INFO"
android:protectionLevel="signature"
android:label="@string/permlab_removeTasks"
android:description="@string/permdesc_removeTasks" />
@@ -781,6 +965,160 @@
android:label="@string/permlab_startAnyActivity"
android:description="@string/permdesc_startAnyActivity" />
+ <!-- @deprecated The {@link android.app.ActivityManager#restartPackage}
+ API is no longer supported. -->
+ <permission android:name="android.permission.RESTART_PACKAGES"
+ android:permissionGroup="android.permission-group.APP_INFO"
+ android:protectionLevel="normal"
+ android:label="@string/permlab_killBackgroundProcesses"
+ android:description="@string/permdesc_killBackgroundProcesses" />
+
+ <!-- Allows an application to call
+ {@link android.app.ActivityManager#killBackgroundProcesses}. -->
+ <permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"
+ android:permissionGroup="android.permission-group.APP_INFO"
+ android:protectionLevel="normal"
+ android:label="@string/permlab_killBackgroundProcesses"
+ android:description="@string/permdesc_killBackgroundProcesses" />
+
+ <!-- ================================== -->
+ <!-- Permissions affecting the display of other applications -->
+ <!-- ================================== -->
+ <eat-comment />
+
+ <!-- Group of permissions that allow manipulation of how
+ another application displays UI to the user. -->
+ <permission-group android:name="android.permission-group.DISPLAY"
+ android:label="@string/permgrouplab_display"
+ android:description="@string/permgroupdesc_display"
+ android:priority="18"/>
+
+ <!-- Allows an application to open windows using the type
+ {@link android.view.WindowManager.LayoutParams#TYPE_SYSTEM_ALERT},
+ shown on top of all other applications. Very few applications
+ should use this permission; these windows are intended for
+ system-level interaction with the user. -->
+ <permission android:name="android.permission.SYSTEM_ALERT_WINDOW"
+ android:permissionGroup="android.permission-group.DISPLAY"
+ android:protectionLevel="dangerous"
+ android:label="@string/permlab_systemAlertWindow"
+ android:description="@string/permdesc_systemAlertWindow" />
+
+ <!-- ================================== -->
+ <!-- Permissions affecting the system wallpaper -->
+ <!-- ================================== -->
+ <eat-comment />
+
+ <!-- Group of permissions that allow manipulation of how
+ another application displays UI to the user. -->
+ <permission-group android:name="android.permission-group.WALLPAPER"
+ android:label="@string/permgrouplab_wallpaper"
+ android:description="@string/permgroupdesc_wallpaper"
+ android:priority="22" />
+
+ <!-- Allows applications to set the wallpaper -->
+ <permission android:name="android.permission.SET_WALLPAPER"
+ android:permissionGroup="android.permission-group.WALLPAPER"
+ android:protectionLevel="normal"
+ android:label="@string/permlab_setWallpaper"
+ android:description="@string/permdesc_setWallpaper" />
+
+ <!-- Allows applications to set the wallpaper hints -->
+ <permission android:name="android.permission.SET_WALLPAPER_HINTS"
+ android:permissionGroup="android.permission-group.WALLPAPER"
+ android:protectionLevel="normal"
+ android:label="@string/permlab_setWallpaperHints"
+ android:description="@string/permdesc_setWallpaperHints" />
+
+ <!-- ============================================ -->
+ <!-- Permissions for changing the system clock -->
+ <!-- ============================================ -->
+ <eat-comment />
+
+ <!-- Group of permissions that are related to system clock. -->
+ <permission-group android:name="android.permission-group.SYSTEM_CLOCK"
+ android:label="@string/permgrouplab_systemClock"
+ android:description="@string/permgroupdesc_systemClock"
+ android:priority="23" />
+
+ <!-- Allows applications to set the system time -->
+ <permission android:name="android.permission.SET_TIME"
+ android:protectionLevel="signature|system"
+ android:label="@string/permlab_setTime"
+ android:description="@string/permdesc_setTime" />
+
+ <!-- Allows applications to set the system time zone -->
+ <permission android:name="android.permission.SET_TIME_ZONE"
+ android:permissionGroup="android.permission-group.SYSTEM_CLOCK"
+ android:protectionLevel="normal"
+ android:label="@string/permlab_setTimeZone"
+ android:description="@string/permdesc_setTimeZone" />
+
+ <!-- ==================================================== -->
+ <!-- Permissions related to changing status bar -->
+ <!-- ==================================================== -->
+
+ <!-- Used for permissions that change the status bar -->
+ <permission-group android:name="android.permission-group.STATUS_BAR"
+ android:label="@string/permgrouplab_statusBar"
+ android:description="@string/permgroupdesc_statusBar" />
+
+ <!-- Allows an application to expand or collapse the status bar. -->
+ <permission android:name="android.permission.EXPAND_STATUS_BAR"
+ android:permissionGroup="android.permission-group.STATUS_BAR"
+ android:protectionLevel="normal"
+ android:label="@string/permlab_expandStatusBar"
+ android:description="@string/permdesc_expandStatusBar" />
+
+ <!-- ==================================================== -->
+ <!-- Permissions related to accessing sync settings -->
+ <!-- ==================================================== -->
+
+ <!-- Used for permissions that access the sync settings or sync
+ related information. -->
+ <permission-group android:name="android.permission-group.SYNC_SETTINGS"
+ android:label="@string/permgrouplab_syncSettings"
+ android:description="@string/permgroupdesc_syncSettings"
+ android:priority="29" />
+
+ <!-- Allows applications to read the sync settings -->
+ <permission android:name="android.permission.READ_SYNC_SETTINGS"
+ android:permissionGroup="android.permission-group.SYNC_SETTINGS"
+ android:protectionLevel="normal"
+ android:description="@string/permdesc_readSyncSettings"
+ android:label="@string/permlab_readSyncSettings" />
+
+ <!-- Allows applications to write the sync settings -->
+ <permission android:name="android.permission.WRITE_SYNC_SETTINGS"
+ android:permissionGroup="android.permission-group.SYNC_SETTINGS"
+ android:protectionLevel="normal"
+ android:description="@string/permdesc_writeSyncSettings"
+ android:label="@string/permlab_writeSyncSettings" />
+
+ <!-- Allows applications to read the sync stats -->
+ <permission android:name="android.permission.READ_SYNC_STATS"
+ android:permissionGroup="android.permission-group.SYNC_SETTINGS"
+ android:protectionLevel="normal"
+ android:description="@string/permdesc_readSyncStats"
+ android:label="@string/permlab_readSyncStats" />
+
+
+ <!-- ============================================ -->
+ <!-- Permissions for low-level system interaction -->
+ <!-- ============================================ -->
+ <eat-comment />
+
+ <!-- Group of permissions that are related to system APIs. Many
+ of these are not permissions the user will be expected to understand,
+ and such permissions should generally be marked as "normal" protection
+ level so they don't get displayed. This can also, however, be used
+ for miscellaneous features that provide access to the operating system,
+ such as writing the global system settings. -->
+ <permission-group android:name="android.permission-group.SYSTEM_TOOLS"
+ android:label="@string/permgrouplab_systemTools"
+ android:description="@string/permgroupdesc_systemTools"
+ android:priority="30" />
+
<!-- @hide Change the screen compatibility mode of applications -->
<permission android:name="android.permission.SET_SCREEN_COMPATIBILITY"
android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
@@ -796,21 +1134,33 @@
android:label="@string/permlab_changeConfiguration"
android:description="@string/permdesc_changeConfiguration" />
- <!-- @deprecated The {@link android.app.ActivityManager#restartPackage}
- API is no longer supported. -->
- <permission android:name="android.permission.RESTART_PACKAGES"
+ <!-- Allows an application to read or write the system settings. -->
+ <permission android:name="android.permission.WRITE_SETTINGS"
android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
android:protectionLevel="normal"
- android:label="@string/permlab_killBackgroundProcesses"
- android:description="@string/permdesc_killBackgroundProcesses" />
+ android:label="@string/permlab_writeSettings"
+ android:description="@string/permdesc_writeSettings" />
- <!-- Allows an application to call
- {@link android.app.ActivityManager#killBackgroundProcesses}. -->
- <permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"
+ <!-- Allows an application to modify the Google service map. -->
+ <permission android:name="android.permission.WRITE_GSERVICES"
+ android:protectionLevel="signature|system"
+ android:label="@string/permlab_writeGservices"
+ android:description="@string/permdesc_writeGservices" />
+
+ <!-- @hide Change the screen compatibility mode of applications -->
+ <permission android:name="android.permission.SET_SCREEN_COMPATIBILITY"
android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
- android:protectionLevel="normal"
- android:label="@string/permlab_killBackgroundProcesses"
- android:description="@string/permdesc_killBackgroundProcesses" />
+ android:protectionLevel="signature"
+ android:label="@string/permlab_setScreenCompatibility"
+ android:description="@string/permdesc_setScreenCompatibility" />
+
+ <!-- Allows an application to modify the current configuration, such
+ as locale. -->
+ <permission android:name="android.permission.CHANGE_CONFIGURATION"
+ android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
+ android:protectionLevel="system|signature"
+ android:label="@string/permlab_changeConfiguration"
+ android:description="@string/permdesc_changeConfiguration" />
<!-- Allows an application to call
{@link android.app.ActivityManager#forceStopPackage}.
@@ -829,17 +1179,6 @@
android:label="@string/permlab_retrieve_window_content"
android:description="@string/permdesc_retrieve_window_content" />
- <!-- Allows an application to open windows using the type
- {@link android.view.WindowManager.LayoutParams#TYPE_SYSTEM_ALERT},
- shown on top of all other applications. Very few applications
- should use this permission; these windows are intended for
- system-level interaction with the user. -->
- <permission android:name="android.permission.SYSTEM_ALERT_WINDOW"
- android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
- android:protectionLevel="dangerous"
- android:label="@string/permlab_systemAlertWindow"
- android:description="@string/permdesc_systemAlertWindow" />
-
<!-- Modify the global animation scaling factor. -->
<permission android:name="android.permission.SET_ANIMATION_SCALE"
android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
@@ -848,12 +1187,10 @@
android:description="@string/permdesc_setAnimationScale" />
<!-- @deprecated This functionality will be removed in the future; please do
- not use.
-
- Allow an application to make its activities persistent. -->
+ not use. Allow an application to make its activities persistent. -->
<permission android:name="android.permission.PERSISTENT_ACTIVITY"
android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
- android:protectionLevel="dangerous"
+ android:protectionLevel="normal"
android:label="@string/permlab_persistentActivity"
android:description="@string/permdesc_persistentActivity" />
@@ -900,52 +1237,17 @@
android:label="@string/permlab_broadcastSticky"
android:description="@string/permdesc_broadcastSticky" />
- <!-- Allows using PowerManager WakeLocks to keep processor from sleeping or screen
- from dimming -->
- <permission android:name="android.permission.WAKE_LOCK"
- android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
- android:protectionLevel="dangerous"
- android:label="@string/permlab_wakeLock"
- android:description="@string/permdesc_wakeLock" />
-
- <!-- Allows applications to set the wallpaper -->
- <permission android:name="android.permission.SET_WALLPAPER"
- android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
- android:protectionLevel="normal"
- android:label="@string/permlab_setWallpaper"
- android:description="@string/permdesc_setWallpaper" />
-
- <!-- Allows applications to set the wallpaper hints -->
- <permission android:name="android.permission.SET_WALLPAPER_HINTS"
- android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
- android:protectionLevel="normal"
- android:label="@string/permlab_setWallpaperHints"
- android:description="@string/permdesc_setWallpaperHints" />
-
- <!-- Allows applications to set the system time -->
- <permission android:name="android.permission.SET_TIME"
- android:protectionLevel="signature|system"
- android:label="@string/permlab_setTime"
- android:description="@string/permdesc_setTime" />
-
- <!-- Allows applications to set the system time zone -->
- <permission android:name="android.permission.SET_TIME_ZONE"
- android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
- android:protectionLevel="dangerous"
- android:label="@string/permlab_setTimeZone"
- android:description="@string/permdesc_setTimeZone" />
-
<!-- Allows mounting and unmounting file systems for removable storage. -->
<permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"
android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
- android:protectionLevel="dangerous"
+ android:protectionLevel="system|signature"
android:label="@string/permlab_mount_unmount_filesystems"
android:description="@string/permdesc_mount_unmount_filesystems" />
<!-- Allows formatting file systems for removable storage. -->
<permission android:name="android.permission.MOUNT_FORMAT_FILESYSTEMS"
android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
- android:protectionLevel="dangerous"
+ android:protectionLevel="system|signature"
android:label="@string/permlab_mount_format_filesystems"
android:description="@string/permdesc_mount_format_filesystems" />
@@ -989,34 +1291,6 @@
android:label="@string/permlab_asec_rename"
android:description="@string/permdesc_asec_rename" />
- <!-- Allows applications to disable the keyguard -->
- <permission android:name="android.permission.DISABLE_KEYGUARD"
- android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
- android:protectionLevel="dangerous"
- android:description="@string/permdesc_disableKeyguard"
- android:label="@string/permlab_disableKeyguard" />
-
- <!-- Allows applications to read the sync settings -->
- <permission android:name="android.permission.READ_SYNC_SETTINGS"
- android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
- android:protectionLevel="normal"
- android:description="@string/permdesc_readSyncSettings"
- android:label="@string/permlab_readSyncSettings" />
-
- <!-- Allows applications to write the sync settings -->
- <permission android:name="android.permission.WRITE_SYNC_SETTINGS"
- android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
- android:protectionLevel="dangerous"
- android:description="@string/permdesc_writeSyncSettings"
- android:label="@string/permlab_writeSyncSettings" />
-
- <!-- Allows applications to read the sync stats -->
- <permission android:name="android.permission.READ_SYNC_STATS"
- android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
- android:protectionLevel="normal"
- android:description="@string/permdesc_readSyncStats"
- android:label="@string/permlab_readSyncStats" />
-
<!-- Allows applications to write the apn settings -->
<permission android:name="android.permission.WRITE_APN_SETTINGS"
android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
@@ -1040,37 +1314,10 @@
<!-- Allows applications to change network connectivity state -->
<permission android:name="android.permission.CHANGE_NETWORK_STATE"
android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
- android:protectionLevel="dangerous"
+ android:protectionLevel="normal"
android:description="@string/permdesc_changeNetworkState"
android:label="@string/permlab_changeNetworkState" />
- <!-- Allows applications to change Wi-Fi connectivity state -->
- <permission android:name="android.permission.CHANGE_WIFI_STATE"
- android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
- android:protectionLevel="dangerous"
- android:description="@string/permdesc_changeWifiState"
- android:label="@string/permlab_changeWifiState" />
-
- <!-- @hide -->
- <permission android:name="android.permission.CHANGE_WIMAX_STATE"
- android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
- android:protectionLevel="dangerous"
- android:description="@string/permdesc_changeWimaxState"
- android:label="@string/permlab_changeWimaxState" />
- <!-- Allows applications to enter Wi-Fi Multicast mode -->
- <permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE"
- android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
- android:protectionLevel="dangerous"
- android:description="@string/permdesc_changeWifiMulticastState"
- android:label="@string/permlab_changeWifiMulticastState" />
-
- <!-- Allows applications to discover and pair bluetooth devices -->
- <permission android:name="android.permission.BLUETOOTH_ADMIN"
- android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
- android:protectionLevel="dangerous"
- android:description="@string/permdesc_bluetoothAdmin"
- android:label="@string/permlab_bluetoothAdmin" />
-
<!-- Allows an application to clear the caches of all installed
applications on the device. -->
<permission android:name="android.permission.CLEAR_APP_CACHE"
@@ -1097,7 +1344,8 @@
purposes. -->
<permission-group android:name="android.permission-group.DEVELOPMENT_TOOLS"
android:label="@string/permgrouplab_developmentTools"
- android:description="@string/permgroupdesc_developmentTools" />
+ android:description="@string/permgroupdesc_developmentTools"
+ android:priority="31" />
<!-- Allows an application to read or write the secure system settings. -->
<permission android:name="android.permission.WRITE_SECURE_SETTINGS"
diff --git a/core/res/res/layout-sw600dp/keyguard_screen_password_landscape.xml b/core/res/res/layout-sw600dp/keyguard_screen_password_landscape.xml
index 2495b67..ff65c61 100644
--- a/core/res/res/layout-sw600dp/keyguard_screen_password_landscape.xml
+++ b/core/res/res/layout-sw600dp/keyguard_screen_password_landscape.xml
@@ -156,8 +156,8 @@
<RelativeLayout
android:id="@+id/faceLockAreaView"
android:visibility="invisible"
- android:layout_width="512dip"
- android:layout_height="512dip"
+ android:layout_width="530dip"
+ android:layout_height="530dip"
android:layout_centerInParent="true"
android:background="@drawable/intro_bg">
diff --git a/core/res/res/layout-sw600dp/keyguard_screen_password_portrait.xml b/core/res/res/layout-sw600dp/keyguard_screen_password_portrait.xml
index 36d4a2a..60401c9 100644
--- a/core/res/res/layout-sw600dp/keyguard_screen_password_portrait.xml
+++ b/core/res/res/layout-sw600dp/keyguard_screen_password_portrait.xml
@@ -159,8 +159,8 @@
<RelativeLayout
android:id="@+id/faceLockAreaView"
android:visibility="invisible"
- android:layout_width="512dip"
- android:layout_height="512dip"
+ android:layout_width="440dip"
+ android:layout_height="440dip"
android:layout_centerInParent="true"
android:background="@drawable/intro_bg">
diff --git a/core/res/res/layout-sw600dp/keyguard_screen_unlock_landscape.xml b/core/res/res/layout-sw600dp/keyguard_screen_unlock_landscape.xml
index 53ecbac..68499f4 100644
--- a/core/res/res/layout-sw600dp/keyguard_screen_unlock_landscape.xml
+++ b/core/res/res/layout-sw600dp/keyguard_screen_unlock_landscape.xml
@@ -127,8 +127,8 @@
<RelativeLayout
android:id="@+id/faceLockAreaView"
android:visibility="invisible"
- android:layout_width="512dip"
- android:layout_height="512dip"
+ android:layout_width="530dip"
+ android:layout_height="530dip"
android:layout_centerInParent="true"
android:background="@drawable/intro_bg">
diff --git a/core/res/res/layout-sw600dp/keyguard_screen_unlock_portrait.xml b/core/res/res/layout-sw600dp/keyguard_screen_unlock_portrait.xml
index 577668f..086757d 100644
--- a/core/res/res/layout-sw600dp/keyguard_screen_unlock_portrait.xml
+++ b/core/res/res/layout-sw600dp/keyguard_screen_unlock_portrait.xml
@@ -122,8 +122,8 @@
<RelativeLayout
android:id="@+id/faceLockAreaView"
android:visibility="invisible"
- android:layout_width="512dip"
- android:layout_height="512dip"
+ android:layout_width="440dip"
+ android:layout_height="440dip"
android:layout_centerInParent="true"
android:background="@drawable/intro_bg">
diff --git a/core/res/res/layout/app_permission_item.xml b/core/res/res/layout/app_permission_item.xml
index 1bd267f..9b8c5ae 100644
--- a/core/res/res/layout/app_permission_item.xml
+++ b/core/res/res/layout/app_permission_item.xml
@@ -19,37 +19,32 @@
Contains the group name and a list of permission labels under the group.
-->
-<RelativeLayout
+<view class="android.widget.AppSecurityPermissions$PermissionItemView"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
- android:layout_height="wrap_content">
+ android:layout_height="wrap_content"
+ android:orientation="horizontal"
+ android:background="?android:attr/selectableItemBackground">
<ImageView
android:id="@+id/perm_icon"
- android:layout_width="30dip"
- android:layout_height="30dip"
- android:layout_alignParentLeft="true"
+ android:layout_width="32dp"
+ android:layout_height="32dp"
+ android:layout_marginLeft="16dp"
+ android:layout_marginRight="8dp"
android:scaleType="fitCenter" />
-
- <TextView
- android:id="@+id/permission_group"
- android:textAppearance="?android:attr/textAppearanceMedium"
- android:textStyle="bold"
- android:paddingLeft="6dip"
- android:layout_toRightOf="@id/perm_icon"
+ <ImageView
android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
+ android:layout_height="match_parent"
+ android:background="?android:attr/dividerVertical" />
<TextView
- android:id="@+id/permission_list"
+ android:id="@+id/perm_name"
android:textAppearance="?android:attr/textAppearanceSmall"
- android:layout_marginTop="-4dip"
- android:paddingBottom="8dip"
- android:paddingLeft="6dip"
- android:layout_below="@id/permission_group"
- android:layout_toRightOf="@id/perm_icon"
+ android:layout_marginLeft="8dp"
android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
+ android:layout_height="wrap_content"
+ android:layout_gravity="top|left" />
-</RelativeLayout>
+</view>
diff --git a/core/res/res/layout/app_permission_item_old.xml b/core/res/res/layout/app_permission_item_old.xml
new file mode 100644
index 0000000..1bd267f
--- /dev/null
+++ b/core/res/res/layout/app_permission_item_old.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 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.
+-->
+
+<!--
+ Defines the layout of a single permission item.
+ Contains the group name and a list of permission labels under the group.
+-->
+
+<RelativeLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+
+ <ImageView
+ android:id="@+id/perm_icon"
+ android:layout_width="30dip"
+ android:layout_height="30dip"
+ android:layout_alignParentLeft="true"
+ android:scaleType="fitCenter" />
+
+
+ <TextView
+ android:id="@+id/permission_group"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ android:textStyle="bold"
+ android:paddingLeft="6dip"
+ android:layout_toRightOf="@id/perm_icon"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content" />
+
+ <TextView
+ android:id="@+id/permission_list"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:layout_marginTop="-4dip"
+ android:paddingBottom="8dip"
+ android:paddingLeft="6dip"
+ android:layout_below="@id/permission_group"
+ android:layout_toRightOf="@id/perm_icon"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content" />
+
+</RelativeLayout>
diff --git a/core/res/res/layout/app_perms_summary.xml b/core/res/res/layout/app_perms_summary.xml
index 77dbc2e..509c502 100755
--- a/core/res/res/layout/app_perms_summary.xml
+++ b/core/res/res/layout/app_perms_summary.xml
@@ -26,88 +26,17 @@
android:id="@+id/no_permissions"
android:text="@string/no_permissions"
android:textAppearance="?android:attr/textAppearanceMedium"
- android:paddingLeft="16dip"
- android:paddingRight="12dip"
+ android:paddingLeft="8dp"
+ android:paddingRight="8dp"
android:visibility="gone"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
- <!-- List view containing list of new permissions categorized by groups. -->
+ <!-- Populated with all permissions. -->
<LinearLayout
- android:id="@+id/new_perms_list"
+ android:id="@+id/perms_list"
android:orientation="vertical"
android:layout_width="match_parent"
- android:paddingLeft="16dip"
- android:paddingRight="12dip"
- android:layout_height="wrap_content" />
-
- <!-- List view containing list of dangerous permissions categorized by groups. -->
- <LinearLayout
- android:id="@+id/dangerous_perms_list"
- android:orientation="vertical"
- android:layout_width="match_parent"
- android:paddingLeft="16dip"
- android:paddingRight="12dip"
- android:layout_height="wrap_content" />
-
- <!-- Clickable area letting user display additional permissions. -->
- <LinearLayout
- android:id="@+id/show_more"
- android:orientation="vertical"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:visibility="gone"
- android:layout_marginTop="12dip"
- android:layout_marginBottom="16dip">
-
- <View
- android:layout_width="match_parent"
- android:layout_height="1dip"
- android:background="?android:attr/listDivider" />
-
- <LinearLayout
- android:orientation="horizontal"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:paddingTop="16dip"
- android:paddingBottom="12dip"
- android:paddingLeft="16dip"
- android:duplicateParentState="true"
- android:background="?android:attr/selectableItemBackground">
-
- <TextView
- android:id="@+id/show_more_text"
- android:textAppearance="?android:attr/textAppearanceMedium"
- android:duplicateParentState="true"
- android:layout_alignTop="@+id/show_more_icon"
- android:layout_gravity="center_vertical"
- android:paddingLeft="36dip"
- android:layout_weight="1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
- <ImageView
- android:id="@id/show_more_icon"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginRight="12dip" />
-
- </LinearLayout>
-
- <View
- android:layout_width="match_parent"
- android:layout_height="1dip"
- android:background="?android:attr/listDivider" />
-
- </LinearLayout>
-
- <!-- List view containing list of permissions that aren't dangerous. -->
- <LinearLayout
- android:id="@+id/non_dangerous_perms_list"
- android:orientation="vertical"
- android:paddingLeft="16dip"
- android:paddingRight="12dip"
- android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
diff --git a/core/res/res/values-af/strings.xml b/core/res/res/values-af/strings.xml
index f4ffa06..df13d3d 100644
--- a/core/res/res/values-af/strings.xml
+++ b/core/res/res/values-af/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"Jou boodskappe"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"Lees en skryf jou SMS, e-pos en ander boodskappe."</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"Jou persoonlike inligting"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"Direkte toegang tot jou kontakte en kalender wat op die tablet gestoor is."</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"Direkte toegang tot jou kontakte en kalender wat op die foon gestoor is."</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"Jou ligging"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"Monitor jou fisiese ligging."</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"Netwerkkommunikasie"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"Kry toegang tot verskeie netwerkfunksies."</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"Jou rekeninge"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"Kry toegang tot beskikbare rekeninge."</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"Hardewarekontroles"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Laervlak-toegang en -beheer van die stelsel."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Ontwikkelingshulpmiddels"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"Kenmerke net nodig vir programontwikkelaars."</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"Stoor"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"Gebruik die USB-berging."</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"Lees die SD-kaart."</string>
@@ -335,7 +403,7 @@
<string name="permdesc_writeSecureSettings" msgid="8159535613020137391">"Laat die program toe om die stelsel se beveiligde instellingsdata te verander. Nie vir gebruik deur normale programme nie."</string>
<string name="permlab_writeGservices" msgid="2149426664226152185">"verander die Google-dienstekaart"</string>
<string name="permdesc_writeGservices" msgid="1287309437638380229">"Laat die program toe om die Google-dienste-kaart te verander. Nie vir gebruik deur normale programme nie."</string>
- <string name="permlab_receiveBootCompleted" msgid="5312965565987800025">"laat loop as begin"</string>
+ <string name="permlab_receiveBootCompleted" msgid="5312965565987800025">"laat loop wanneer begin"</string>
<string name="permdesc_receiveBootCompleted" product="tablet" msgid="7390304664116880704">"Laat die program toe om homself te begin so gou as moontlik nadat die stelsel laai. Dit maak dat dit langer neem vir die tablet om te begin, en dit laat die foon toe om die tablet stadiger te maak omdat dit altyd loop."</string>
<string name="permdesc_receiveBootCompleted" product="default" msgid="513950589102617504">"Laat die program toe om homself te begin so gou as moontlik nadat die stelsel laai. Dit maak dat dit langer neem vir die foon om te begin, en dit laat die foon toe om die foon stadiger te maak omdat dit altyd loop."</string>
<string name="permlab_broadcastSticky" msgid="7919126372606881614">"Stuur klewerige uitsending"</string>
@@ -396,10 +464,10 @@
<string name="permlab_reboot" product="default" msgid="2898560872462638242">"forseer foonherlaai"</string>
<string name="permdesc_reboot" product="tablet" msgid="8172056180063700741">"Laat die program toe om die tablet te dwing om te herselflaai."</string>
<string name="permdesc_reboot" product="default" msgid="5326008124289989969">"Laat die program toe om die foon te dwing om te herselflaai."</string>
- <string name="permlab_mount_unmount_filesystems" product="nosdcard" msgid="2927361537942591841">"gaan in by USB-geheue se lêerstelsel"</string>
+ <string name="permlab_mount_unmount_filesystems" product="nosdcard" msgid="2927361537942591841">"gaan in by USB-berging se lêerstelsel"</string>
<string name="permlab_mount_unmount_filesystems" product="default" msgid="4402305049890953810">"gaan in by SD-kaart se lêerstelsel"</string>
<string name="permdesc_mount_unmount_filesystems" msgid="1829290701658992347">"Laat die program toe om lêerstelsels vir verwyderbare berging te heg of te ontheg."</string>
- <string name="permlab_mount_format_filesystems" product="nosdcard" msgid="6227819582624904972">"vee USB-geheue uit"</string>
+ <string name="permlab_mount_format_filesystems" product="nosdcard" msgid="6227819582624904972">"vee USB-berging uit"</string>
<string name="permlab_mount_format_filesystems" product="default" msgid="262582698639274056">"vee SD-kaart uit"</string>
<string name="permdesc_mount_format_filesystems" msgid="8784268246779198627">"Laat die program toe om verwyderbare geheue te formateer."</string>
<string name="permlab_asec_access" msgid="3411338632002193846">"kry inligting oor interne berging"</string>
@@ -519,11 +587,11 @@
<string name="permdesc_readDictionary" msgid="8977815988329283705">"Laat die program toe om enige private woorde, name en frases te lees wat die gebruiker in die gebruikerwoordeboek gestoor het."</string>
<string name="permlab_writeDictionary" msgid="2296383164914812772">"skryf na gebruikergedefinieerde woordeboek"</string>
<string name="permdesc_writeDictionary" msgid="8185385716255065291">"Laat die program toe om nuwe woorde in die gebruikerwoordeboek te skryf."</string>
- <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"lees jou USB-geheue se inhoud"</string>
+ <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"lees jou USB-berging se inhoud"</string>
<string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"lees jou SD-kaart se inhoud"</string>
- <string name="permdesc_sdcardRead" product="nosdcard" msgid="3530894470637667917">"Laat die program toe om die USB-geheue se inhoud te lees, wat foto\'s en media kan insluit."</string>
+ <string name="permdesc_sdcardRead" product="nosdcard" msgid="3530894470637667917">"Laat die program toe om die USB-berging se inhoud te lees, wat foto\'s en media kan insluit."</string>
<string name="permdesc_sdcardRead" product="default" msgid="2555811422562526606">"Laat die program toe om die SD-kaart se inhoud te lees, wat foto\'s en media kan insluit."</string>
- <string name="permlab_sdcardWrite" product="nosdcard" msgid="8485979062254666748">"verander of vee die inhoud van jou USB-geheue uit"</string>
+ <string name="permlab_sdcardWrite" product="nosdcard" msgid="8485979062254666748">"verander of vee die inhoud van jou USB-berging uit"</string>
<string name="permlab_sdcardWrite" product="default" msgid="9084476432661578751">"verander of vee die inhoud van jou SD-kaart uit"</string>
<string name="permdesc_sdcardWrite" product="nosdcard" msgid="6175406299445710888">"Laat die program toe om die USB-geheue te skryf."</string>
<string name="permdesc_sdcardWrite" product="default" msgid="4337417790936632090">"Laat die program toe om na die SD-kaart te skryf."</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"Geen SIM-kaart in foon nie."</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"Steek \'n SIM-kaart in."</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"Die SIM-kaart is weg of nie leesbaar nie. Steek \'n SIM-kaart in."</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Jou SIM-kaart is permanent gedeaktiveer."\n" Kontak jou draadlose diensverskaffer vir \'n ander SIM-kaart."</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Vorigesnit-knoppie"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Volgendesnit-knoppie"</string>
@@ -779,7 +849,7 @@
<string name="autofill_emirate" msgid="2893880978835698818">"Emiraat"</string>
<string name="permlab_readHistoryBookmarks" msgid="3775265775405106983">"lees jou web-boekmerke en geskiedenis"</string>
<string name="permdesc_readHistoryBookmarks" msgid="4577476392604595921">"Laat die program toe om al die URL\'e te lees wat die blaaier besoek het, en al blaaier se boekmerke ook."</string>
- <string name="permlab_writeHistoryBookmarks" msgid="3714785165273314490">"skryf webboekmerke en geskiedenis"</string>
+ <string name="permlab_writeHistoryBookmarks" msgid="3714785165273314490">"skryf webboekmerke en -geskiedenis"</string>
<string name="permdesc_writeHistoryBookmarks" product="tablet" msgid="1757103804824209530">"Laat die program toe om die blaaier se geskiedenis of boekmerke wat op jou tablet gestoor is, te verander. Kwaadwillige programme kan dit gebruik om jou blaaier se data uit te vee of te verander."</string>
<string name="permdesc_writeHistoryBookmarks" product="default" msgid="6693764355720719197">"Laat die program toe om die blaaier se geskiedenis of boekmerke wat op jou foon gestoor is, te verander. Kwaadwillige programme kan dit gebruik om jou blaaier se data uit te vee of te verander."</string>
<string name="permlab_setAlarm" msgid="1379294556362091814">"stel \'n wekker"</string>
diff --git a/core/res/res/values-am/strings.xml b/core/res/res/values-am/strings.xml
index 003d4b3..ce7d243 100644
--- a/core/res/res/values-am/strings.xml
+++ b/core/res/res/values-am/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"መልዕክቶችዎ"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"ኤስ ኤም ኤስህን፣ ኢሜይልህን እና ሌላ መልዕክቶችህን አንብብና ፃፍ።"</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"የግል መረጃዎ"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"በጡባዊዎ ላይ የተከማቹ እውቂያዎች እና ቀን መቁጠሪያጋ ቀጥታ ይድረሱ።"</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"በስልኩ ላይ ወደ ተከማቸው ዕውቂያዎችዎ እና የቀን መቁጠሪያዎበቀጥታ ይድረሱ"</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"ስፍራዎ"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"ያለህበትን አካባቢ ተቆጣጠር።"</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"የአውታረ መረብ ግኑኙነት"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"የተለያዩ የአውታረ መረብ ባህሪያትን ድረስ።"</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"መለያዎችዎ"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">" ለተገኙት መለያዎች ድረስ"</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"የሃርድዌር ቁጥጥሮች"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"የስርዓቱ ዝቅተኛ-ደረጃ ድረስ እና ጠብቅ"</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"የግንባታ መሣሪያዎች"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"ባህሪያት ለመተግበሪያ ገንቢዎች ብቻ ያስፈልጋሉ።"</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"ማከማቻ"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"የUSB ማከማቻ ድረስ።"</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"SD ካርድ ድረስ"</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"በስልክ ውስጥ ምንም SIM ካርድ የለም።"</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"ሲም ካርድ አስገባ፡፡"</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM ካርዱ ጠፍቷል ወይም መነበብ አይችልም።እባክህ SIM ካርድ አስገባ።"</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"SIM ካርድህ በቋሚነት ቦዝኗል።"\n" ለሌላ SIM ካርድ የገመድ አልባ አገልግሎት አቅራቢህ ጋር ተገናኝ።"</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"የቀድሞ ዝርዝር አዝራር"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"ቀጣይ ዝርዝር አዝራር"</string>
diff --git a/core/res/res/values-ar/strings.xml b/core/res/res/values-ar/strings.xml
index eceea90..a7dd571 100644
--- a/core/res/res/values-ar/strings.xml
+++ b/core/res/res/values-ar/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"رسائلك"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"قراءة وكتابة الرسائل القصيرة SMS والرسائل الإلكترونية والرسائل الأخرى."</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"معلوماتك الشخصية"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"الدخول المباشر إلى جهات اتصالك والتقويم المخزنين على الجهاز اللوحي."</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"الدخول المباشر إلى التقويم وجهات الاتصال المخزّنة على الهاتف."</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"موقعك"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"يمكنك مراقبة موقعك الفعلي."</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"اتصال الشبكة"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"يمكنك الدخول إلى ميزات متعددة عبر الشبكة."</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"حساباتك"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"الوصول إلى الحسابات المتاحة."</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"عناصر التحكم بالأجهزة"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"دخول المستوى الأقل والتحكم بالنظام."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"أدوات التطوير"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"الميزات مطلوبة لمطوّري التطبيقات فقط."</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"التخزين"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"الدخول إلى وحدة تخزين USB."</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"الدخول إلى بطاقة SD."</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"ليس هناك بطاقة SIM في الهاتف."</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"أدخل بطاقة SIM."</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"بطاقة SIM مفقودة أو غير قابلة للقراءة. أدخل بطاقة SIM."</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"تم تعطيل بطاقة SIM بشكل دائم."\n" اتصل بمقدم خدمة اللاسلكي للحصول على بطاقة SIM أخرى."</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"زر المقطع الصوتي السابق"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"زر المقطع الصوتي التالي"</string>
diff --git a/core/res/res/values-be/strings.xml b/core/res/res/values-be/strings.xml
index 5672aca..4e94325 100644
--- a/core/res/res/values-be/strings.xml
+++ b/core/res/res/values-be/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"Вашыя паведамленні"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"Счытваць і запісваць вашы SMS-паведамленні, паведамленні электроннай пошты і іншыя паведамленні."</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"Вашая персанальная інфармацыя"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"Прамы доступ да кантактаў і календара, якія захоўваюцца на планшэце."</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"Прамы доступ да кантактаў і календара, захаваных на тэлефоне."</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"Ваша месцазнаходжанне"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"Кантраляваць сваё фізічнае месцазнаходжанне."</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"Сеткавая сувязь"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"Доступ да розных функцый сеткі."</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"Вашыя ўліковыя запісы"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"Доступ да дзеючых уліковых запісаў."</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"Кіраванне апаратным забеспячэннем"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Ніжні ўзровень доступу і кіравання сістэмай."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Сродкі распрацоўкі"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"Функцыi, патрэбныя толькі для распрацоўшчыкаў прыкладанняў."</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"Сховішча"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"Атрымаць доступ да USB-назапашвальнiка."</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"Доступ да SD-карты."</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"У тэлефоне няма SIM-карты."</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"Усталюйце SIM-карту."</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM-карта адсутнічае ці не чытаецца. Устаўце SIM-карту."</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Ваша SIM-карта была адключана назаўсёды."\n" Звяжыцеся з аператарам бесправадной сувязі, каб атрымаць іншую SIM-карту."</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Кнопка папярэдняй кампазiцыi"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Кнопка наступнай кампазiцыi"</string>
diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml
index 71aab1c..8c0d884 100644
--- a/core/res/res/values-bg/strings.xml
+++ b/core/res/res/values-bg/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"Вашите съобщения"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"Четене и запис на вашите SMS, имейли и други съобщения."</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"Вашите лични данни"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"Пряк достъп до контактите и календара ви, съхранени в таблета."</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"Пряк достъп до контактите и календара ви, съхранени в телефона."</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"Местоположение"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"Наблюдавайте физическото си местоположение."</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"Мрежова комуникация"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"Осъществявайте достъп до различни мрежови функции."</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"Вашите профили"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"Достъп до наличните профили."</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"Контрол върху хардуера"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Достъп и контрол на системата на ниско ниво."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Инструменти за програмиране"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"Функции, необходими само за програмисти на приложения."</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"Съхранение"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"Достъп до USB хранилището."</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"Достъп до SD картата."</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"В телефона няма SIM карта."</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"Поставете SIM карта."</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM картата липсва или е нечетлива. Поставете SIM карта."</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"SIM картата ви е деактивирана за постоянно."\n"Свържете се с оператора на безжичната си връзка, за да получите друга."</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Бутон за предишния запис"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Бутон за следващия запис"</string>
diff --git a/core/res/res/values-ca/strings.xml b/core/res/res/values-ca/strings.xml
index ce789df..962dd02 100644
--- a/core/res/res/values-ca/strings.xml
+++ b/core/res/res/values-ca/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"Missatges"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"Llegeix i escriu SMS, correus electrònics i altres missatges."</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"Informació personal"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"Accés directe als contactes i al calendari emmagatzemat a la tauleta."</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"Accés directe als contactes i al calendari emmagatzemats al telèfon."</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"Ubicació"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"Supervisa la teva ubicació física."</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"Comunicació de xarxa"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"Accedeix a diverses funcions de xarxa."</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"Comptes"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"Accedeix als comptes disponibles."</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"Controls de maquinari"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Accés de nivell inferior i control del sistema."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Eines de desenvolupament"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"Funcions que només necessiten els desenvolupadors d\'aplicacions."</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"Emmagatzematge"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"Accedeix a l\'emmag. USB."</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"Accedeix a la targeta SD."</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"No hi ha cap targeta SIM al telèfon."</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"Insereix una targeta SIM."</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"Falta la targeta SIM o no es pot llegir. Insereix-ne una."</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"La targeta SIM està desactivada permanentment."\n" Contacta amb el teu proveïdor de serveis sense fil per obtenir-ne una altra."</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Botó de pista anterior"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Botó de pista següent"</string>
diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml
index 9c54547..55afcde 100644
--- a/core/res/res/values-cs/strings.xml
+++ b/core/res/res/values-cs/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"Vaše zprávy"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"Čtení a zápis zpráv SMS, e-mailů a dalších zpráv."</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"Vaše osobní informace"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"Přímý přístup k vašim kontaktům a kalendáři v tabletu."</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"Přímý přístup k vašim kontaktům a kalendáři v telefonu."</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"Vaše poloha"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"Sledovat vaši fyzickou polohu."</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"Síťová komunikace"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"Přístup k různým funkcím sítě."</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"Vaše účty"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"Přístup k dostupným účtům."</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"Řízení hardwaru"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Nízkoúrovňový přístup a kontrola nad systémem."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Nástroje pro vývojáře"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"Funkce pouze pro vývojáře aplikací."</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"Úložiště"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"Přístup do úložiště USB."</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"Přístup ke kartě SD."</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"V telefonu není žádná SIM karta."</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"Vložte SIM kartu."</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM karta chybí nebo je nečitelná. Vložte SIM kartu."</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Vaše SIM karta byla natrvalo zablokována."\n" Požádejte svého poskytovatele bezdrátových služeb o další SIM kartu."</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Tlačítko Předchozí stopa"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Tlačítko Další stopa"</string>
diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml
index 8dfed2f..a7bfd8a 100644
--- a/core/res/res/values-da/strings.xml
+++ b/core/res/res/values-da/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"Dine beskeder"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"Læs og skriv sms-beskeder, e-mails og andre beskeder."</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"Dine personlige oplysninger"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"Få direkte adgang til dine kontakter og din kalender, der er gemt på tabletcomputeren."</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"Få direkte adgang til dine kontakter og din kalender, der er gemt på telefonen."</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"Din placering"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"Overvåg din fysiske placering."</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"Netværkskommunikation"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"Få adgang til forskellige netværksfunktioner."</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"Dine konti"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"Få adgang til de tilgængelige konti."</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"Hardwarekontroller"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Adgang og kontrol til systemet på lavere niveau."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Udviklingsværktøjer"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"Funktioner, der kun er nødvendige for udviklere af apps."</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"Lagring"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"Få adgang til USB-lager."</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"Få adgang til SD-kortet."</string>
@@ -195,7 +263,7 @@
<string name="permdesc_expandStatusBar" msgid="6917549437129401132">"Tillader, at appen kan udvide og skjule statusbjælken."</string>
<string name="permlab_processOutgoingCalls" msgid="3906007831192990946">"omdirigere udgående opkald"</string>
<string name="permdesc_processOutgoingCalls" msgid="1152111671618301044">"Tillader, at appen kan behandle udgående opkald og ændre det nummer, der ringes op til. Ondsindede apps kan overvåge, omdirigere eller forhindre udgående opkald."</string>
- <string name="permlab_receiveSms" msgid="8673471768947895082">"modtage tekstbeskeder (sms)"</string>
+ <string name="permlab_receiveSms" msgid="8673471768947895082">"modtage tekstbeskeder (SMS)"</string>
<string name="permdesc_receiveSms" msgid="8107887121893611793">"Tillader, at appen kan modtage og behandle sms-beskeder. Ondsindede apps kan overvåge dine beskeder eller slette dem uden at vise dem til dig."</string>
<string name="permlab_receiveMms" msgid="1821317344668257098">"modtage tekstbeskeder (MMS)"</string>
<string name="permdesc_receiveMms" msgid="1424805308566612086">"Tillader, at appen kan modtage og behandle mms-beskeder. Ondsindede apps kan overvåge dine beskeder eller slette dem uden at vise dem til dig."</string>
@@ -207,10 +275,10 @@
<string name="permdesc_sendSms" msgid="906546667507626156">"Tillader, at appen kan sende sms-beskeder. Ondsindede apps kan medføre store omkostninger ved at sende beskeder uden din bekræftelse."</string>
<string name="permlab_sendSmsNoConfirmation" msgid="4781483105951730228">"sende sms-meddelelser uden bekræftelse"</string>
<string name="permdesc_sendSmsNoConfirmation" msgid="3437759207020400204">"Tillader, at appen kan sende sms-beskeder. Ondsindede apps kan koste dig penge, hvis de sender beskeder uden din bekræftelse."</string>
- <string name="permlab_readSms" msgid="8745086572213270480">"læse dine tekstbeskeder (sms eller MMS)"</string>
+ <string name="permlab_readSms" msgid="8745086572213270480">"læse dine tekstbeskeder (SMS eller MMS)"</string>
<string name="permdesc_readSms" product="tablet" msgid="2341692916884515613">"Tillader, at appen kan læse sms-beskeder, der er gemt på din tablet eller dit SIM-kort. Ondsindede apps kan læse dine fortrolige beskeder."</string>
<string name="permdesc_readSms" product="default" msgid="5653850482025875493">"Tillader, at appen kan læse sms-beskeder, der er gemt på din telefon eller dit SIM-kort. Ondsindede apps kan læse dine fortrolige beskeder."</string>
- <string name="permlab_writeSms" msgid="3216950472636214774">"redigere dine tekstbeskeder (sms eller MMS)"</string>
+ <string name="permlab_writeSms" msgid="3216950472636214774">"redigere dine tekstbeskeder (SMS eller MMS)"</string>
<string name="permdesc_writeSms" product="tablet" msgid="5160413947794501538">"Tillader, at appen kan skrive til sms-beskeder, der er gemt på din tablet eller på SIM-kortet. Ondsindede apps kan slette dine beskeder."</string>
<string name="permdesc_writeSms" product="default" msgid="7268668709052328567">"Tillader, at appen kan skrive til sms-beskeder, der er gemt på din telefon eller dit SIM-kort. Ondsindede apps kan slette dine beskeder."</string>
<string name="permlab_receiveWapPush" msgid="5991398711936590410">"modtage tekstbeskeder (WAP)"</string>
@@ -267,7 +335,7 @@
<string name="permdesc_confirm_full_backup" msgid="1748762171637699562">"Tillader, at appen kan åbne brugergrænsefladen til bekræftelse af komplet sikkerhedskopiering. Må ikke anvendes af nogen app."</string>
<string name="permlab_internalSystemWindow" msgid="2148563628140193231">"vis uautoriserede vinduer"</string>
<string name="permdesc_internalSystemWindow" msgid="7458387759461466397">"Tillader, at appen kan oprette vinduer, der er beregnet til brugergrænsefladen i det interne system. Anvendes ikke af normale apps."</string>
- <string name="permlab_systemAlertWindow" msgid="3543347980839518613">"overskrive andre apps"</string>
+ <string name="permlab_systemAlertWindow" msgid="3543347980839518613">"tegne over andre apps"</string>
<string name="permdesc_systemAlertWindow" msgid="8507863469978066409">"Tillader, at appen kan vise vinduer med systemmeddelelser. Ondsindede apps kan overtage hele skærmen."</string>
<string name="permlab_setAnimationScale" msgid="2805103241153907174">"rediger global animationshastighed"</string>
<string name="permdesc_setAnimationScale" msgid="7690063428924343571">"Tillader, at appen til enhver tid kan ændre den globale animationshastighed (hurtigere eller langsommere animationer)."</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"Der er ikke noget SIM-kort i telefonen."</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"Indsæt et SIM-kort."</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM-kortet mangler eller kan ikke læses. Indsæt et SIM-kort."</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Dit SIM-kort er blevet permanent deaktiveret."\n"Kontakt din tjenesteudbyder for at få et nyt SIM-kort."</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Knap til forrige nummer"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Knap til næste nummer"</string>
diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings.xml
index 7f0b49b..6c22195 100644
--- a/core/res/res/values-de/strings.xml
+++ b/core/res/res/values-de/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"Ihre Nachrichten"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"SMS, E-Mails und andere Nachrichten lesen und schreiben"</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"Ihre persönlichen Informationen"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"Direkter Zugriff auf die Kontakte und den Kalender Ihres Tablets"</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"Direkter Zugriff auf die Kontakte und den Kalender Ihres Telefons"</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"Ihren Standort"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"Ihren physischen Standort überwachen"</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"Netzkommunikation"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"Zugriff auf verschiedene Netzwerkfunktionen"</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"Ihre Konten"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"Zugriff auf verfügbare Konten"</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"Hardware-Steuerelemente"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Zugriff und Steuerung des Systems auf niedrigerer Ebene."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Entwickler-Tools"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"Funktionen nur für App-Entwickler vorgesehen"</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"Speicher"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"Zugriff auf USB-Speicher"</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"Zugriff auf SD-Karte"</string>
@@ -464,7 +532,7 @@
<string name="permdesc_setTimeZone" product="default" msgid="4499943488436633398">"Ermöglicht der App, die Zeitzone des Telefons zu ändern"</string>
<string name="permlab_accountManagerService" msgid="4829262349691386986">"Als Konto-Manager fungieren"</string>
<string name="permdesc_accountManagerService" msgid="1948455552333615954">"Ermöglicht der App, Anrufe an Kontoauthentifizierer zu tätigen"</string>
- <string name="permlab_getAccounts" msgid="1086795467760122114">"Konten auf dem Gerät finden"</string>
+ <string name="permlab_getAccounts" msgid="1086795467760122114">"Konten auf dem Gerät suchen"</string>
<string name="permdesc_getAccounts" product="tablet" msgid="3238360555257773358">"Ermöglicht der App, eine Liste der dem Tablet bekannten Konten abzurufen"</string>
<string name="permdesc_getAccounts" product="default" msgid="2735689364629830348">"Ermöglicht der App, eine Liste der dem Telefon bekannten Konten abzurufen"</string>
<string name="permlab_authenticateAccounts" msgid="5265908481172736933">"Konten erstellen und Passwörter festlegen"</string>
@@ -515,14 +583,14 @@
<string name="permdesc_subscribedFeedsRead" msgid="5557058907906144505">"Ermöglicht der App, Details zu den zurzeit synchronisierten Feeds abzurufen"</string>
<string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"abonnierte Feeds schreiben"</string>
<string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Ermöglicht der App, Änderungen an kürzlich synchronisierten Feeds vorzunehmen. Schädliche Apps können so Ihre synchronisierten Feeds ändern."</string>
- <string name="permlab_readDictionary" msgid="4107101525746035718">"Begriffe lesen, die ich zum Wörterbuch hinzugefügt habe"</string>
+ <string name="permlab_readDictionary" msgid="4107101525746035718">"Begriffe lesen, die Sie zum Wörterbuch hinzugefügt haben"</string>
<string name="permdesc_readDictionary" msgid="8977815988329283705">"Ermöglicht der App, alle privaten Wörter, Namen und Ausdrücke zu lesen, die ein Nutzer in seinem Wörterbuch gespeichert hat"</string>
<string name="permlab_writeDictionary" msgid="2296383164914812772">"In benutzerdefiniertes Wörterbuch schreiben"</string>
<string name="permdesc_writeDictionary" msgid="8185385716255065291">"Ermöglicht der App, dem Nutzerwörterbuch neue Einträge hinzuzufügen"</string>
<string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"USB-Speicherinhalte lesen"</string>
<string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"SD-Karteninhalte lesen"</string>
- <string name="permdesc_sdcardRead" product="nosdcard" msgid="3530894470637667917">"Ermöglicht der App, die Inhalte des USB-Speichers, einschließlich Fotos und Medien, zu lesen"</string>
- <string name="permdesc_sdcardRead" product="default" msgid="2555811422562526606">"Ermöglicht der App, die Inhalte der SD-Karte, einschließlich Fotos und Medien, zu lesen"</string>
+ <string name="permdesc_sdcardRead" product="nosdcard" msgid="3530894470637667917">"Ermöglicht der App, die Inhalte des USB-Speichers einschließlich Fotos und Medien, zu lesen"</string>
+ <string name="permdesc_sdcardRead" product="default" msgid="2555811422562526606">"Ermöglicht der App, die Inhalte der SD-Karte einschließlich Fotos und Medien, zu lesen"</string>
<string name="permlab_sdcardWrite" product="nosdcard" msgid="8485979062254666748">"USB-Speicherinhalte ändern oder löschen"</string>
<string name="permlab_sdcardWrite" product="default" msgid="9084476432661578751">"SD-Karteninhalte ändern oder löschen"</string>
<string name="permdesc_sdcardWrite" product="nosdcard" msgid="6175406299445710888">"Ermöglicht der App, in den USB-Speicher zu schreiben"</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"Keine SIM-Karte im Telefon"</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"Legen Sie eine SIM-Karte ein."</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM-Karte fehlt oder ist nicht lesbar. Bitte legen Sie eine SIM-Karte ein."</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Ihre SIM-Karte wurde dauerhaft deaktiviert."\n" Wenden Sie sich an Ihren Mobilfunkanbieter, um eine andere SIM-Karte zu erhalten."</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Schaltfläche für vorherigen Track"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Schaltfläche für nächsten Track"</string>
diff --git a/core/res/res/values-el/strings.xml b/core/res/res/values-el/strings.xml
index eb099c7..1b3f18c 100644
--- a/core/res/res/values-el/strings.xml
+++ b/core/res/res/values-el/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"Τα μηνύματά σας"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"Ανάγνωση και εγγραφή μηνυμάτων SMS, μηνυμάτων ηλεκτρονικού ταχυδρομείου και άλλων μηνυμάτων."</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"Οι προσωπικές σας πληροφορίες"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"Άμεση πρόσβαση στις επαφές και στο ημερολόγιό σας που είναι αποθηκευμένα στο tablet."</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"Άμεση πρόσβαση στις επαφές και στο ημερολόγιό σας που είναι αποθηκευμένα στο τηλέφωνο."</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"Η τοποθεσία σας"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"Παρακολούθηση της φυσικής τοποθεσίας σας."</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"Επικοινωνία δικτύου"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"Πρόσβαση σε διάφορες λειτουργίες δικτύου."</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"Οι λογαριασμοί σας"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"Πρόσβαση στους διαθέσιμους λογαριασμούς."</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"Στοιχεία ελέγχου υλικού"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Χαμηλού επιπέδου πρόσβαση και έλεγχος του συστήματος."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Εργαλεία ανάπτυξης"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"Δυνατότητες που είναι απαραίτητες μόνο σε προγραμματιστές εφαρμογών."</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"Αποθηκευτικός χώρος"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"Πρόσβαση στον χώρο αποθ. USB."</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"Πρόσβαση στην κάρτα SD."</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"Δεν υπάρχει κάρτα SIM στο τηλέφωνο."</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"Τοποθετήστε μια κάρτα SIM."</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"Η κάρτα SIM δεν υπάρχει ή δεν είναι δυνατή η ανάγνωσή της. Τοποθετήστε μια κάρτα SIM."</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Η κάρτα SIM έχει απενεργοποιηθεί οριστικά."\n" Επικοινωνήστε με τον παροχέα υπηρεσιών ασύρματου δικτύου για να λάβετε μια νέα κάρτα SIM."</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Κουμπί προηγούμενου κομματιού"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Κουμπί επόμενου κομματιού"</string>
diff --git a/core/res/res/values-en-rGB/strings.xml b/core/res/res/values-en-rGB/strings.xml
index ad45c77..0a07f5b 100644
--- a/core/res/res/values-en-rGB/strings.xml
+++ b/core/res/res/values-en-rGB/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"Your messages"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"Read and write your SMS, email and other messages."</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"Your personal information"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"Direct access to your contacts and calendar stored on the tablet."</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"Direct access to your contacts and calendar stored on the phone."</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"Your location"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"Monitor your physical location."</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"Network communication"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"Access various network features."</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"Your accounts"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"Access the available accounts."</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"Hardware controls"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Lower-level access and control of the system."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Development tools"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"Features only needed for app developers."</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"Storage"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"Access the USB storage."</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"Access the SD card."</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"No SIM card in phone."</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"Insert a SIM card."</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"The SIM card is missing or not readable. Insert a SIM card."</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Your SIM card has been permanently disabled."\n" Contact your wireless service provider for another SIM card."</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Previous track button"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Next-track button"</string>
diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml
index 5193a86..eeb5c0f 100644
--- a/core/res/res/values-es-rUS/strings.xml
+++ b/core/res/res/values-es-rUS/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"Tus mensajes"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"Lee y escribe tus SMS, mensajes de correo y otros mensajes."</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"Tu información personal"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"Acceso directo a los contactos y calendario guardados en tu dispositivo."</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"Acceso directo a tus contactos y calendario guardado en el dispositivo."</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"Tu ubicación"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"Controlar tu ubicación física"</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"Comunicación de red"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"Acceder a distintas funciones de red"</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"Tus cuentas"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"Acceder a las cuentas disponibles."</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"Controles de hardware"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Acceso y control de nivel más bajo del sistema."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Herramientas de desarrollo"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"Funciones únicamente necesarias para los programadores de aplicaciones."</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"Espacio de almacenamiento"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"Acceder al almacenamiento USB."</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"Acceder a la tarjeta SD."</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"No hay tarjeta SIM en el dispositivo."</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"Inserta una tarjeta SIM."</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"Falta la tarjeta SIM o no se puede leer. Introduce una tarjeta SIM."</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Tu tarjeta SIM se ha inhabilitado de forma permanente."\n" Ponte en contacto con tu proveedor de servicios inalámbricos para obtener otra tarjeta SIM."</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Botón para pista anterior"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Botón para pista siguiente"</string>
diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml
index ae51978..5652069 100644
--- a/core/res/res/values-es/strings.xml
+++ b/core/res/res/values-es/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"Tus mensajes"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"Leer y escribir SMS, correos electrónicos y otros mensajes"</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"Tu información personal"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"Accede directamente al calendario y a los contactos almacenados en el tablet."</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"Acceso directo al calendario y a los contactos almacenados en el teléfono"</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"Tu ubicación"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"Controlar tu ubicación física"</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"Comunicación de red"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"Acceder a distintas funciones de red"</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"Tus cuentas"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"Acceder a las cuentas disponibles"</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"Controles de hardware"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Acceso de nivel inferior y control del sistema"</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Herramientas de desarrollo"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"Funciones necesarias solo para desarrolladores de aplicaciones"</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"Almacenamiento"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"Acceso a almacenamiento USB"</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"Acceder a la tarjeta SD"</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"No se ha insertado ninguna tarjeta SIM en el teléfono."</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"Inserta una tarjeta SIM."</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"Falta la tarjeta SIM o no se puede leer. Introduce una tarjeta SIM."</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Tu tarjeta SIM se ha inhabilitado permanentemente."\n" Para obtener otra tarjeta SIM, ponte en contacto con tu proveedor de servicios de telefonía."</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Botón de canción anterior"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Botón de siguiente canción"</string>
diff --git a/core/res/res/values-et/strings.xml b/core/res/res/values-et/strings.xml
index c80e10e..3ae4d42 100644
--- a/core/res/res/values-et/strings.xml
+++ b/core/res/res/values-et/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"Teie sõnumid"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"Teie SMS-, meili- ja muude sõnumite lugemine ja kirjutamine."</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"Teie isiklikud andmed"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"Otsene juurdepääs tahvelarvutisse salvestatud kontaktidele ja kalendrile."</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"Otsene juurdepääs telefoni salvestatud kontaktidele ja kalendrile."</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"Teie asukoht"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"Jälgige oma füüsilist asukohta."</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"Võrgusuhtlus"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"Juurdepääs erinevatele võrgufunktsioonidele."</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"Teie kontod"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"Juurdepääs saadaolevatele kontodele."</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"Riistvara juhtelemendid"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Süsteemi madalama taseme juurdepääs ja juhtimine."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Arendustööriistad"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"Funktsioonid on vajalikud ainult rakenduste arendajatele."</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"Mäluruum"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"Juurdepääs USB-mäluseadmele."</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"Juurdepääs SD-kaardile."</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"Telefonis pole SIM-kaarti."</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"Sisestage SIM-kaart."</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM-kaart puudub või on loetamatu. Sisestage SIM-kaart."</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"SIM-kaart on jäädavalt keelatud."\n" Teise SIM-kaardi saamiseks võtke ühendust oma traadita side teenusepakkujaga."</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Eelmise loo nupp"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Nupp Järgmine rada"</string>
diff --git a/core/res/res/values-fa/strings.xml b/core/res/res/values-fa/strings.xml
index 8bc23c0..200c6bc 100644
--- a/core/res/res/values-fa/strings.xml
+++ b/core/res/res/values-fa/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"پیام های شما"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"پیام کوتاه، ایمیل و دیگر پیامها را بخوانید."</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"اطلاعات شخصی شما"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"دسترسی مستقیم به مخاطبین و تقویم ذخیره شده در رایانه لوحی."</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"دسترسی مستقیم به مخاطبین و تقویم ذخیره شده در گوشی."</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"موقعیت مکانی شما"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"بر موقعیت مکانی فیزیکی خود نظارت داشته باشید."</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"ارتباط شبکه"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"به ویژگیهای مختلف شبکه دسترسی داشته باشید."</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"حساب های شما"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"به حساب های موجود دسترسی داشته باشید."</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"کنترل های سخت افزار"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"دسترسی سطح پایین و کنترل سیستم."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"ابزارهای توسعه"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"ویژگیهایی که فقط مورد نیاز برنامه نویسان است."</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"ذخیره سازی"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"به حافظه USB دسترسی پیدا کنید."</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"به کارت SD دسترسی داشته باشید."</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"سیم کارت درون تلفن نیست."</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"سیم کارت را وارد کنید."</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"سیم کارت موجود نیست یا قابل خواندن نیست. یک سیم کارت وارد کنید."</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"سیم کارت شما به طور دائم غیر فعال شده است. "\n"برای داشتن سیم کارت دیگر با ارائهدهنده سرویس بیسیم خود تماس بگیرید."</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"دکمه تراک قبلی"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"دکمه تراک بعدی"</string>
diff --git a/core/res/res/values-fi/strings.xml b/core/res/res/values-fi/strings.xml
index 738856a..1ab0c55 100644
--- a/core/res/res/values-fi/strings.xml
+++ b/core/res/res/values-fi/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"Omat viestit"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"Tekstiviestien, sähköpostin ja muiden viestien lukeminen ja kirjoittaminen."</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"Henkilötietosi"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"Käyttöoikeudet tablet-laitteelle tallennettuihin yhteystietoihin ja kalenteriin."</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"Saa suora käyttöyhteys puhelimelle tallennettuihin yhteystietoihin ja kalenteriin."</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"Oma sijainti"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"Tarkkaile fyysistä sijaintiasi."</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"Verkkoviestintä"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"Käyttää useita verkon ominaisuuksia."</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"Omat tilit"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"Käytä saatavilla olevia tilejä."</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"Laitteiston hallinta"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Alemman tason käyttöoikeus ja järjestelmän hallintaoikeus."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Kehittäjätyökalut"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"Vain sovelluskehittäjien tarvitsemat ominaisuudet."</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"Tallennustila"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"Käytä USB-tallennustilaa."</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"Käytä SD-korttia."</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"Puhelimessa ei ole SIM-korttia."</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"Aseta SIM-kortti."</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM-korttia ei löydy tai ei voi lukea. Kytke SIM-kortti."</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"SIM-kortti on poistettu pysyvästi käytöstä."\n" Ota yhteyttä operaattoriisi ja hanki uusi SIM-kortti."</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Edellinen kappale -painike"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Seuraava kappale -painike"</string>
diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml
index 32822b1..d1a1e09 100644
--- a/core/res/res/values-fr/strings.xml
+++ b/core/res/res/values-fr/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"Vos messages"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"Permet de lire et de rédiger vos SMS, e-mails et autres messages."</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"Vos informations personnelles"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"Accéder directement aux contacts et à l\'agenda enregistrés sur la tablette"</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"Accéder directement aux contacts et à l\'agenda enregistrés sur votre téléphone"</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"Votre position"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"Déterminer votre position géographique"</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"Communications réseau"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"Accéder à différentes fonctionnalités du réseau"</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"Vos comptes"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"Accéder aux comptes disponibles"</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"Commandes du matériel"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Accès et contrôle de faible niveau du système."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Outils de développement"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"Ces fonctionnalités sont destinées uniquement aux développeurs d\'applications."</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"Stockage"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"Accéder à la mémoire de stockage USB"</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"Accéder à la carte SD"</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"Aucune carte SIM n\'est insérée dans le téléphone."</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"Insérez une carte SIM."</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"Carte SIM absente ou illisible. Insérez une carte SIM."</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Votre carte SIM a été définitivement désactivée."\n" Veuillez contacter votre opérateur de téléphonie mobile pour en obtenir une autre."</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Bouton du titre précédent"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Bouton du titre suivant"</string>
diff --git a/core/res/res/values-hi/strings.xml b/core/res/res/values-hi/strings.xml
index 6cbcea5..7d253c3 100644
--- a/core/res/res/values-hi/strings.xml
+++ b/core/res/res/values-hi/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"आपके संदेश"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"अपने SMS, ईमेल, और अन्य संदेशों को पढ़ें और लिखें."</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"आपकी निजी जानकारी"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"टेबलेट पर संग्रहीत आपके संपर्कों और कैलेंडर में सीधे पहुंचें."</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"फ़ोन पर संग्रहीत आपके संपर्कों और कैलेंडर में सीधे पहुंचें."</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"आपका स्थान"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"अपने भौतिक स्थान पर नज़र रखें."</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"नेटवर्क संचार"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"विभिन्न नेटवर्क सुविधाओं पर पहुंचें."</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"आपके खाते"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"उपलब्ध खातों में पहुंचें."</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"हार्डवेयर नियंत्रण"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"सिस्टम का निम्न-स्तर पहुंच और नियंत्रण."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"डेवलपमेंट टूल"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"सुविधाएं जो केवल एप्लिकेशन डेवलपर के लिए आवश्यक हैं."</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"संग्रहण"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"USB संग्रहण में पहुंचें."</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"SD कार्ड में पहुंचें."</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"फ़ोन में कोई सिम कार्ड नहीं है."</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"कोई सिमकार्ड डालें."</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"सिम कार्ड गुम है या पढ़ने योग्य नहीं है. कोई सिम कार्ड डालें."</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"आपका सिम कार्ड स्थायी रूप से अक्षम कर दिया गया है."\n" दूसरे SIM कार्ड के लिए अपने वायरलेस सेवा प्रदाता से संपर्क करें."</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"पिछला ट्रैक बटन"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"अगला ट्रैक बटन"</string>
diff --git a/core/res/res/values-hr/strings.xml b/core/res/res/values-hr/strings.xml
index fb0e8d6..24c13a5 100644
--- a/core/res/res/values-hr/strings.xml
+++ b/core/res/res/values-hr/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"Vaše poruke"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"Čitajte i pišite SMS-ove, poruke e-pošte i ostale poruke."</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"Vaši osobni podaci"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"Izravan pristup kontaktima i kalendaru pohranjenima na tabletnom uređaju."</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"Izravan pristup kontaktima i kalendaru pohranjenom na telefonu."</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"Vaša lokacija"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"Pratite svoju fizičku lokaciju."</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"Mrežna komunikacija"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"Pristupajte raznim značajkama mreže."</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"Vaši računi"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"Pristup dostupnim računima."</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"Hardverske kontrole"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Niskorazinski pristup i nadzor nad sustavom."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Razvojni alati"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"Značajke potrebne samo za razvojne programere aplikacija."</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"Prostor za pohranu"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"Pristupi memoriji USB."</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"Pristup SD kartici."</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"U telefonu nema SIM kartice."</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"Umetnite SIM karticu."</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM kartica nedostaje ili nije čitljiva. Umetnite SIM karticu."</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Vaša SIM kartica trajno je onemogućena."\n" Obratite se svom pružatelju bežičnih usluga da biste dobili drugu SIM karticu."</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Gumb Prethodni zapis"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Gumb Sljedeći zapis"</string>
diff --git a/core/res/res/values-hu/strings.xml b/core/res/res/values-hu/strings.xml
index 8667b8d..3768f25 100644
--- a/core/res/res/values-hu/strings.xml
+++ b/core/res/res/values-hu/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"Saját üzenetek"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"SMS-ek, e-mailek és egyéb üzenetek olvasása és írása."</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"Az Ön személyes adatai"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"Közvetlen hozzáférés a táblagépen tárolt névjegyekhez és naptárhoz."</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"Közvetlen hozzáférés a telefonon tárolt névjegyekhez és naptárhoz."</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"Tartózkodási hely"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"Tartózkodási hely figyelése."</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"Hálózati kommunikáció"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"Hozzáférés különböző hálózati funkciókhoz."</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"Az Ön fiókjai"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"Hozzáférés az elérhető fiókokhoz."</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"Hardver vezérlése"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Alacsony szintű hozzáférés és a rendszer vezérlése."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Fejlesztői eszközök"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"Csak az alkalmazásfejlesztők számára fontos funkciók."</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"Tárhely"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"Az USB-tár elérése."</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"Az SD-kártya elérése."</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"Nincs SIM-kártya a telefonban."</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"Helyezzen be egy SIM kártyát."</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"A SIM kártya hiányzik vagy nem olvasható. Helyezzen be egy SIM kártyát."</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"SIM kártyája véglegesen letiltva."\n" Forduljon a vezeték nélküli szolgáltatójához másik SIM kártya beszerzése érdekében."</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Előző szám gomb"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Következő szám gomb"</string>
diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml
index 6962481..0ac2df6 100644
--- a/core/res/res/values-in/strings.xml
+++ b/core/res/res/values-in/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"Pesan Anda"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"Membaca dan menulis SMS, email, dan pesan Anda lainnya."</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"Informasi pribadi Anda"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"Akses langsung ke kontak dan kalender yang disimpan di tablet."</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"akses langsung pada kontak dan kalender yang tersimpan pada ponsel."</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"Lokasi Anda"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"Memonitor lokasi fisik Anda."</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"Komunikasi jaringan"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"Mengakses berbagai fitur jaringan."</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"Akun-akun Anda"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"Akses akun yang tersedia."</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"Kontrol perangkat keras"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Akses tingkat rendah dan kontrol sistem."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Peralatan pengembangan"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"Fitur hanya diperlukan oleh pengembang apl."</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"Penyimpanan"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"Akses penyimpanan USB."</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"Akses kartu SD."</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"Tidak ada Kartu SIM di dalam ponsel."</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"Masukkan kartu SIM."</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"Kartu SIM tidak ada atau tidak dapat dibaca. Masukkan kartu SIM."</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Kartu SIM Anda telah dinonaktifkan secara permanen."\n" Hubungi penyedia layanan nirkabel Anda untuk kartu SIM lain."</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Tombol trek sebelumnya"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Tombol trek berikutnya"</string>
diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml
index 9b62204..908d501 100644
--- a/core/res/res/values-it/strings.xml
+++ b/core/res/res/values-it/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"I tuoi messaggi"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"Consentono di leggere e scrivere SMS, email e altri messaggi."</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"Informazioni personali"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"Accedere direttamente ai contatti e al calendario memorizzati sul tablet."</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"Accedere direttamente ai contatti e al calendario memorizzati sul telefono."</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"La tua posizione"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"Monitoraggio della posizione fisica dell\'utente."</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"Comunicazione di rete"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"Accesso a varie funzioni di rete."</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"I tuoi account"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"Accedere agli account disponibili."</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"Controlli hardware"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Accesso al sistema e controllo di livello inferiore."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Strumenti di sviluppo"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"Funzionalità necessarie soltanto agli sviluppatori di applicazioni."</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"Archiviazione"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"Accesso all\'archivio USB."</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"Accesso alla scheda SD."</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"Nessuna SIM presente nel telefono."</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"Inserisci una scheda SIM."</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"Scheda SIM mancante o non leggibile. Inserisci una scheda SIM."</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"La scheda SIM è stata disattivata definitivamente."\n" Contatta il fornitore del tuo servizio wireless per ricevere un\'altra scheda SIM."</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Pulsante traccia precedente"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Pulsante traccia successiva"</string>
diff --git a/core/res/res/values-iw/strings.xml b/core/res/res/values-iw/strings.xml
index 79e475b..aec504a 100644
--- a/core/res/res/values-iw/strings.xml
+++ b/core/res/res/values-iw/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"ההודעות שלך"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"קריאה וכתיבה בהודעות ה-SMS, הדוא\"ל והודעות אחרות שלך."</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"המידע האישי שלך"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"גישה ישירה לאנשי הקשר וללוח השנה המאוחסנים בטבלט."</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"גישה ישירה לאנשי הקשר וללוח השנה המאוחסנים בטלפון."</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"המיקום שלך"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"עקוב אחר המיקום הפיזי שלך."</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"תקשורת רשת"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"הרשאת גישה לתכונות רשת שונות."</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"החשבונות שלך"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"גישה לכל החשבונות הזמינים."</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"בקרת חומרה"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"גישה ושליטה במערכת ברמה נמוכה."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"כלי פיתוח"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"תכונות הדרושות למפתחי יישומים בלבד."</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"אחסון"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"גישה לאמצעי אחסון מסוג USB."</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"גש לכרטיס SD."</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"אין כרטיס SIM בטלפון."</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"הכנס כרטיס SIM."</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"כרטיס ה-SIM חסר או שלא ניתן לקרוא אותו. הכנס כרטיס SIM."</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"כרטיס ה-SIM שלך הושבת לצמיתות."\n"פנה לספק השירות האלחוטי שלך לקבלת כרטיס SIM אחר."</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"לחצן הרצועה הקודמת"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"לחצן הרצועה הבאה"</string>
diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml
index 7d51fce..972b607 100644
--- a/core/res/res/values-ja/strings.xml
+++ b/core/res/res/values-ja/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"送受信したメッセージ"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"SMS、メールなどのメッセージを読み書きします。"</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"個人情報"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"タブレットの連絡先とカレンダーに直接アクセス"</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"端末の連絡先とカレンダーに直接アクセス"</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"現在地"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"現在地を追跡します。"</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"ネットワーク通信"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"さまざまなネットワーク機能にアクセスします。"</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"アカウント"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"利用可能なアカウントにアクセスします。"</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"ハードウェアの制御"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"システムの低レベルのアクセスと制御"</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"開発ツール"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"アプリのデベロッパーにのみ必要な機能です。"</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"ストレージ"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"USBストレージへのアクセス"</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"SDカードにアクセスします。"</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"SIMカードが挿入されていません"</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"SIMカードを挿入してください。"</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIMカードが見つからないか読み取れません。SIMカードを挿入してください。"</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"お使いのSIMカードは永久に無効となっています。"\n"ワイヤレスサービスプロバイダに問い合わせて新しいSIMカードを入手してください。"</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"前のトラックボタン"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"次のトラックボタン"</string>
diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml
index 0605a51..554a939 100644
--- a/core/res/res/values-ko/strings.xml
+++ b/core/res/res/values-ko/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"메시지"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"SMS, 이메일 및 기타 메시지를 읽고 씁니다."</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"개인정보"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"태블릿에 저장된 주소록 및 캘린더에 직접 액세스합니다."</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"휴대전화에 저장된 주소록 및 캘린더에 직접 액세스합니다."</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"위치"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"실제 위치 모니터링"</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"네트워크 통신"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"다양한 네트워크 기능에 액세스할 수 있도록 합니다."</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"계정"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"사용 가능한 계정에 액세스합니다."</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"하드웨어 제어"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"시스템을 하위 수준에서 액세스하고 제어합니다."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"개발 도구"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"앱 개발자에게만 필요한 기능입니다."</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"저장"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"USB 저장소에 액세스합니다."</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"SD 카드에 액세스합니다."</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"휴대전화에 SIM 카드가 없습니다."</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"SIM 카드를 삽입하세요."</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM 카드가 없거나 읽을 수 없습니다. SIM 카드를 삽입하세요."</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"SIM 카드 사용이 영구적으로 사용중지되었습니다."\n"다른 SIM 카드를 사용하려면 무선 서비스 제공업체에 문의하시기 바랍니다."</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"이전 트랙 버튼"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"다음 트랙 버튼"</string>
diff --git a/core/res/res/values-lt/strings.xml b/core/res/res/values-lt/strings.xml
index 4271ced..4fc8ca7 100644
--- a/core/res/res/values-lt/strings.xml
+++ b/core/res/res/values-lt/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"Jūsų pranešimai"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"Skaitykite ir rašykite SMS, el. laiškus ir kitus pranešimus."</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"Asmeninė informacija"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"Tiesioginė prieiga prie kontaktų ir kalendoriaus, išsaugotų planšetiniame kompiuteryje."</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"Tiesioginė prieiga prie adresatų ir kalendoriaus, saugomų telefone."</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"Jūsų vieta"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"Stebėti fizinę vietą."</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"Tinklo ryšys"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"Pasiekti įvairias tinklo funkcijas."</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"Jūsų paskyros"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"Pasiekite galimas paskyras."</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"Aparatinės įrangos valdikliai"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Žemesnio lygio prieiga prie sistemos ir jos valdymas."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Kūrėjo įrankiai"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"Funkcijos reikalingos tik programos kūrėjams."</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"Saugykla"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"Pasiekti USB atmintinę."</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"Pasiekite SD kortelę."</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"Telefone nėra SIM kortelės."</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"Įdėkite SIM kortelę."</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"Trūksta SIM kortelės arba ji neskaitoma. Įdėkite SIM kortelę."</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"SIM kortelė visam laikui neleidžiama."\n" Jei norite gauti kitą SIM kortelę, susisiekite su belaidžio ryšio paslaugos teikėju."</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Ankstesnio takelio mygtukas"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Kito takelio mygtukas"</string>
diff --git a/core/res/res/values-lv/strings.xml b/core/res/res/values-lv/strings.xml
index 077169c..7ffb4f0 100644
--- a/core/res/res/values-lv/strings.xml
+++ b/core/res/res/values-lv/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"Jūsu ziņojumi"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"Lasiet un rakstiet īsziņas, e-pasta un citus ziņojumus."</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"Personas informācija"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"Tieša piekļuve planšetdatorā saglabātajām kontaktpersonām un kalendāram."</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"Tiešā piekļuve tālrunī saglabātajām kontaktpersonām un kalendāram."</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"Jūsu atrašanās vieta"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"Pārrauga jūsu fizisko atrašanās vietu."</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"Tīkla sakari"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"Piekļūst dažādām tīkla funkcijām."</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"Jūsu konti"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"Piekļūstiet pieejamajiem kontiem."</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"Aparatūras vadīklas"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Sistēmas apakšējā līmeņa piekļuve un vadība."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Izstrādes rīki"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"Tikai lietotņu izstrādātājiem nepieciešamās funkcijas."</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"Krātuve"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"Piekļūst USB krātuvei."</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"Piekļūstiet SD kartei."</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"Tālrunī nav SIM kartes."</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"Ievietojiet SIM karti."</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"Nav SIM kartes, vai arī to nevar nolasīt. Ievietojiet SIM karti."</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Jūsu SIM karte ir neatgriezeniski atspējota."\n"Sazinieties ar savu bezvadu pakalpojumu sniedzēju, lai iegūtu citu SIM karti."</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Iepriekšējā ieraksta poga"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Nākamā ieraksta poga"</string>
diff --git a/core/res/res/values-ms/strings.xml b/core/res/res/values-ms/strings.xml
index defcd06..52cbb1b 100644
--- a/core/res/res/values-ms/strings.xml
+++ b/core/res/res/values-ms/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"Mesej anda"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"Membaca dan menulis SMS, e-mel, dan mesej lain."</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"Maklumat peribadi anda"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"Akses langsung kepada kenalan dan kalendar anda yang disimpan dalam tablet."</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"Akses langsung kepada kenalan dan kalendar yang disimpan pada telefon."</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"Lokasi anda"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"Pantau lokasi fizikal anda."</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"Komunikasi rangkaian"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"Akses pelbagai ciri rangkaian."</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"Akaun anda"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"Akses akaun yang tersedia."</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"Kawalan perkakasan"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Akses dan kawalan peringkat lebih rendah bagi sistem."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Alatan pembangunan"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"Ciri hanya diperlukan untuk pembangun apl."</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"Storan"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"Akses storan USB."</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"Akses kad SD."</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"Kad SIM tiada dalam telefon."</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"Masukkan kad SIM."</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"Kad SIM tiada atau tidak boleh dibaca. Sila masukkan kad SIM."</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Kad SIM anda telah dilumpuhkan secara kekal."\n" Hubungi pembekal perkhidmatan wayarles anda untuk mendapatkan kad SIM lain."</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Butang lagu sebelumnya"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Butang lagu seterusnya"</string>
diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml
index 4d55b1a..4323c6c 100644
--- a/core/res/res/values-nb/strings.xml
+++ b/core/res/res/values-nb/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"Meldinger"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"Tillatelse til å lese og skrive SMS-ene dine, e-post og andre meldinger."</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"Personlig informasjon"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"Direkte tilgang til dine kontakter og kalender lagret på nettbrettet."</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"Direkte tilgang til kontakter og kalendre lagret på telefonen."</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"Din posisjon"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"Overvåking av telefonens fysiske posisjon."</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"Nettverkstilgang"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"Tilgang til ulike nettverksfunksjoner."</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"Google-kontoer"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"Tilgang til tilgjengelige Google-kontoer."</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"Maskinvarekontroll"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Lavnivå tilgang og kontroll over systemet."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Utviklingsverktøy"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"Funksjoner som bare apputviklere trenger."</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"Lagring"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"Tilgang til USB-lagring."</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"Tilgang til minnekortet."</string>
@@ -218,7 +286,7 @@
<string name="permlab_getTasks" msgid="6466095396623933906">"hente apper som kjører"</string>
<string name="permdesc_getTasks" msgid="6608159250520381359">"Lar appen hente ut informasjon om oppgaver som kjører eller nylig har kjørt. Ondsinnede apper kan bruke dette til å oppdage privat informasjon om andre apper."</string>
<string name="permlab_getDetailedTasks" msgid="6229468674753529501">"hente informasjon om apper som kjører"</string>
- <string name="permdesc_getDetailedTasks" msgid="153824741440717599">"Tillat at appen henter ut informasjon om oppgaver som kjører eller nylig har kjørt. Skadelige apper kan bruke dette til å oppdage privat informasjon om andre apper."</string>
+ <string name="permdesc_getDetailedTasks" msgid="153824741440717599">"Tillater at appen henter ut informasjon om oppgaver som kjører eller nylig har kjørt. Skadelige apper kan bruke dette til å oppdage privat informasjon om andre apper."</string>
<string name="permlab_reorderTasks" msgid="2018575526934422779">"Endre rekkefølge på apper som kjører"</string>
<string name="permdesc_reorderTasks" msgid="4175137612205663399">"Lar appen flytte oppgaver til forgrunnen eller bakgrunnen. Ondsinnede apper kan tvinge seg frem til forgrunnen utenfor din kontroll."</string>
<string name="permlab_removeTasks" msgid="6821513401870377403">"avslutte apper som kjører"</string>
@@ -342,11 +410,11 @@
<string name="permdesc_broadcastSticky" product="tablet" msgid="1181582512022829259">"Lar appen sende hengende kringkastinger («sticky broadcasts») som blir værende etter at kringkastingen er over. Ondsinnede apper kan gjøre nettbrettet tregt eller ustabilt ved å bruke for mye minne."</string>
<string name="permdesc_broadcastSticky" product="default" msgid="3287869131621514325">"Lar appen sende hengende kringkastinger («sticky broadcasts») som blir værende etter at kringkastingen er over. Ondsinnede apper kan gjøre telefonen treg eller ustabil ved å bruke for mye minne."</string>
<string name="permlab_readContacts" msgid="8348481131899886131">"leser kontaktene dine"</string>
- <string name="permdesc_readContacts" product="tablet" msgid="6370069055638209432">"Tillat at appen kan lese alle opplysningene om kontaktene lagret på nettbrettet ditt – inkludert hvor ofte du har ringt, sendt e-post til eller på andre måter kommunisert med spesifikke individer. Dette muliggjør autofullføring av e-postadresser og andre praktiske funksjoner. Skadelige apper kan bruke denne tillatelsen til å sende kontaktopplysningene dine til andre."</string>
- <string name="permdesc_readContacts" product="default" msgid="4093353182535351501">"Tillat at appen kan lese alle opplysningene om kontaktene lagret på telefonen din – inkludert hvor ofte du har ringt, sendt e-post til eller på andre måter kommunisert med spesifikke individer. Dette muliggjør autofullføring av e-postadresser og andre praktiske funksjoner. Skadelige apper kan bruke denne tillatelsen til å sende kontaktopplysningene dine til andre."</string>
+ <string name="permdesc_readContacts" product="tablet" msgid="6370069055638209432">"Tillater appen å lese alle opplysningene om kontaktene lagret på nettbrettet ditt – inkludert hvor ofte du har ringt, sendt e-post til eller på andre måter kommunisert med spesifikke individer. Dette muliggjør autofullføring av e-postadresser og andre praktiske funksjoner. Skadelige apper kan bruke denne tillatelsen til å sende kontaktopplysningene dine til andre."</string>
+ <string name="permdesc_readContacts" product="default" msgid="4093353182535351501">"Tillater appen å lese alle opplysningene om kontaktene lagret på telefonen din – inkludert hvor ofte du har ringt, sendt e-post til eller på andre måter kommunisert med spesifikke personer. Dette muliggjør autofullføring av e-postadresser og andre praktiske funksjoner. Skadelige apper kan bruke denne tillatelsen til å sende kontaktdata til andre."</string>
<string name="permlab_writeContacts" msgid="5107492086416793544">"endrer kontaktene dine"</string>
- <string name="permdesc_writeContacts" product="tablet" msgid="5495863352173533286">"Tillat at appen kan endre opplysningene om kontaktene lagret på nettbrettet – inkludert hvor ofte du har ringt, sendt e-post til eller på andre måter kommunisert med spesifikke individer. Dette muliggjør autofullføring av e-postadresser og andre praktiske funksjoner. Skadelige apper kan bruke denne tillatelsen til å slette eller endre kontaktopplysningene dine."</string>
- <string name="permdesc_writeContacts" product="default" msgid="6108469962248865715">"Tillat at appen kan endre opplysningene om kontaktene lagret på telefonen din – inkludert hvor ofte du har ringt, sendt e-post til eller på andre måter kommunisert med spesifikke individer. Dette muliggjør autofullføring av e-postadresser og andre praktiske funksjoner. Skadelige apper kan bruke denne tillatelsen til å slette eller endre kontaktopplysningene dine."</string>
+ <string name="permdesc_writeContacts" product="tablet" msgid="5495863352173533286">"Tillater appen å endre opplysningene om kontaktene lagret på nettbrettet – inkludert hvor ofte du har ringt, sendt e-post til eller på andre måter kommunisert med spesifikke individer. Dette muliggjør autofullføring av e-postadresser og andre praktiske funksjoner. Skadelige apper kan bruke denne tillatelsen til å slette eller endre kontaktopplysningene dine."</string>
+ <string name="permdesc_writeContacts" product="default" msgid="6108469962248865715">"Tillater appen å endre opplysningene om kontaktene lagret på telefonen din – inkludert hvor ofte du har ringt, sendt e-post til eller på andre måter kommunisert med spesifikke individer. Dette muliggjør autofullføring av e-postadresser og andre praktiske funksjoner. Skadelige apper kan bruke denne tillatelsen til å slette eller endre kontaktopplysningene dine."</string>
<string name="permlab_readCallLog" msgid="3478133184624102739">"lar appen lese anropsloggen"</string>
<string name="permdesc_readCallLog" product="tablet" msgid="3995157599976515002">"Lar appen lese nettbrettets samtalelogg, inkludert data om innkommende og utgående anrop. Skadelige apper kan utnytte denne tillatelsen til å sende dataene dine til andre personer."</string>
<string name="permdesc_readCallLog" product="default" msgid="3452017559804750758">"Lar appen lese telefonens samtalelogg, inkludert data om innkommende og utgående anrop. Skadelige apper kan utnytte denne tillatelsen til å sende dataene dine til andre personer."</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"Ikke noe SIM-kort i telefonen."</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"Sett inn et SIM-kort."</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM-kort mangler eller er uleselig. Sett inn et SIM-kort."</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"SIM-kortet er deaktivert permanent."\n"Ta kontakt med leverandøren av trådløstjenesten for å få et nytt SIM-kort."</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Knapp for forrige sang"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Knapp for neste sang"</string>
diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml
index bd8a98b..7f0a5b2 100644
--- a/core/res/res/values-nl/strings.xml
+++ b/core/res/res/values-nl/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"Uw berichten"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"Sms, e-mail en andere berichten lezen en schrijven."</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"Uw persoonlijke informatie"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"Rechtstreekse toegang tot de op uw tablet opgeslagen contacten en agenda."</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"Rechtstreekse toegang tot de op uw telefoon opgeslagen contacten en agenda."</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"Uw locatie"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"Uw fysieke locatie bijhouden."</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"Netwerkcommunicatie"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"Toegang tot verschillende netwerkfuncties."</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"Uw accounts"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"Toegang tot de beschikbare accounts."</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"Bedieningselementen hardware"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Toegang tot en beheer van het systeem op lager niveau."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Ontwikkelingshulpprogramma\'s"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"Functies die alleen nodig zijn voor app-ontwikkelaars."</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"Opslagruimte"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"Toegang krijgen tot USB-opslag."</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"Toegang tot de SD-kaart."</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"Geen SIM-kaart in telefoon."</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"Plaats een simkaart."</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"De simkaart ontbreekt of kan niet worden gelezen. Plaats een simkaart."</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Uw simkaart is permanent uitgeschakeld."\n" Neem contact op met uw mobiele serviceprovider voor een nieuwe simkaart."</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Knop voor vorig nummer"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Knop voor volgend nummer"</string>
diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml
index 5d3d9a3..abb44b9 100644
--- a/core/res/res/values-pl/strings.xml
+++ b/core/res/res/values-pl/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"Twoje wiadomości"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"Czytanie i zapisywanie wiadomości SMS, e-mail i innych"</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"Informacje osobiste"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"Bezpośredni dostęp do kalendarza i kontaktów zapisanych w tablecie."</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"Bezpośredni dostęp do kontaktów i kalendarza zapisanych w telefonie."</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"Twoja lokalizacja"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"Monitorowanie fizycznej lokalizacji"</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"Połączenia sieciowe"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"Uzyskiwanie dostępu do różnych funkcji sieciowych"</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"Twoje konta"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"Dostęp do udostępnionych kont."</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"Sterowanie sprzętowe"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Dostęp i kontrola systemu niższego poziomu."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Narzędzia programistyczne"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"Funkcje potrzebne jedynie programistom."</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"Pamięć"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"Dostęp do nośnika USB."</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"Dostęp do karty SD."</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"Brak karty SIM w telefonie."</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"Włóż kartę SIM."</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"Brak karty SIM lub nie można jej odczytać. Włóż kartę SIM."</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Karta SIM jest trwale wyłączona."\n" Skontaktuj się z dostawcą usług bezprzewodowych, aby uzyskać inną kartę SIM."</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Przycisk poprzedniego utworu"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Przycisk następnego utworu"</string>
diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml
index d13d8ad..294e648 100644
--- a/core/res/res/values-pt-rPT/strings.xml
+++ b/core/res/res/values-pt-rPT/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"As suas mensagens"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"Ler e escrever SMS, e-mail e outras mensagens."</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"Os seus dados pessoais"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"Acesso directo aos seus contactos e calendário armazenados no tablet."</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"Acesso directo aos seus contactos e calendário armazenados no telefone."</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"A sua localização"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"Monitorizar a sua localização física."</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"Comunicação de rede"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"Aceder a várias funcionalidades de rede."</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"As suas contas"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"Aceda às contas disponíveis."</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"Controlos de hardware"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Acesso e controlo de nível inferior do sistema."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Ferramentas de desenvolvimento"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"Funcionalidades apenas necessárias para programadores de aplicações."</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"Armazenamento"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"Aceder ao armazenamento USB."</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"Aceder ao cartão SD."</string>
@@ -342,11 +410,11 @@
<string name="permdesc_broadcastSticky" product="tablet" msgid="1181582512022829259">"Permite que uma aplicação envie difusões fixas, que permanecem após o fim da difusão. As aplicações maliciosas podem tornar o tablet lento ou instável, fazendo com que utilize demasiada memória."</string>
<string name="permdesc_broadcastSticky" product="default" msgid="3287869131621514325">"Permite que a aplicação envie difusões fixas, que permanecem após o fim da difusão. As aplicações maliciosas podem tornar o telemóvel lento ou instável, fazendo com que utilize demasiada memória."</string>
<string name="permlab_readContacts" msgid="8348481131899886131">"ler os contactos"</string>
- <string name="permdesc_readContacts" product="tablet" msgid="6370069055638209432">"Permite que a aplicação leia todos os dados sobre os seus contactos armazenados no seu tablet, incluindo a frequência com que ligou, enviou emails ou comunicou de outras formas com indivíduos específicos. Isto ajuda a preencher automaticamente os endereços de email e outras funcionalidades convenientes. As aplicações maliciosas podem utilizar esta permissão para enviar os seus dados de contacto a outras pessoas."</string>
- <string name="permdesc_readContacts" product="default" msgid="4093353182535351501">"Permite que a aplicação leia todos os dados sobre os seus contactos armazenados no seu telemóvel, incluindo a frequência com que ligou, enviou emails ou comunicou de outras formas com indivíduos específicos. Isto ajuda a preencher automaticamente os endereços de email e outras funcionalidades convenientes. As aplicações maliciosas podem utilizar esta permissão para enviar os seus dados de contacto a outras pessoas."</string>
+ <string name="permdesc_readContacts" product="tablet" msgid="6370069055638209432">"Permite que a aplicação leia todos os dados sobre os contactos armazenados no seu tablet, incluindo a frequência com que ligou, enviou emails ou comunicou de outras formas com indivíduos específicos. Tal ajuda a preencher automaticamente os endereços de email e outras funcionalidades convenientes. As aplicações maliciosas podem utilizar esta permissão para enviar os seus dados de contacto a outras pessoas."</string>
+ <string name="permdesc_readContacts" product="default" msgid="4093353182535351501">"Permite que a aplicação leia todos os dados sobre os contactos armazenados no seu telemóvel, incluindo a frequência com que ligou, enviou emails ou comunicou de outras formas com indivíduos específicos. Tal ajuda a preencher automaticamente os endereços de email e outras funcionalidades convenientes. As aplicações maliciosas podem utilizar esta permissão para enviar os seus dados de contacto a outras pessoas."</string>
<string name="permlab_writeContacts" msgid="5107492086416793544">"modificar os contactos"</string>
- <string name="permdesc_writeContacts" product="tablet" msgid="5495863352173533286">"Permite que a aplicação modifique os dados sobre os seus contactos armazenados no seu tablet, incluindo a frequência com que ligou, enviou emails ou comunicou de outras formas com indivíduos específicos. Isto ajuda a preencher automaticamente os endereços de email e outras funcionalidades convenientes. As aplicações maliciosas podem utilizar esta situação para apagar ou modificar os seus dados de contacto."</string>
- <string name="permdesc_writeContacts" product="default" msgid="6108469962248865715">"Permite que a aplicação modifique os dados sobre os seus contactos armazenados no seu telemóvel, incluindo a frequência com que ligou, enviou emails ou comunicou de outras formas com indivíduos específicos. Isto ajuda a preencher automaticamente os endereços de email e outras funcionalidades convenientes. As aplicações maliciosas podem utilizar esta situação para apagar ou modificar os seus dados de contacto."</string>
+ <string name="permdesc_writeContacts" product="tablet" msgid="5495863352173533286">"Permite que a aplicação modifique os dados sobre os contactos armazenados no seu tablet, incluindo a frequência com que ligou, enviou emails ou comunicou de outras formas com indivíduos específicos. Tal ajuda a preencher automaticamente os endereços de email e outras funcionalidades convenientes. As aplicações maliciosas podem utilizar esta permissão para apagar ou modificar os seus dados de contacto."</string>
+ <string name="permdesc_writeContacts" product="default" msgid="6108469962248865715">"Permite que a aplicação modifique os dados sobre os contactos armazenados no seu telemóvel, incluindo a frequência com que ligou, enviou emails ou comunicou de outras formas com indivíduos específicos. Tal ajuda a preencher automaticamente os endereços de email e outras funcionalidades convenientes. As aplicações maliciosas podem utilizar esta permissão para apagar ou modificar os seus dados de contacto."</string>
<string name="permlab_readCallLog" msgid="3478133184624102739">"ler registo de chamadas"</string>
<string name="permdesc_readCallLog" product="tablet" msgid="3995157599976515002">"Permite à aplicação ler o registo de chamadas do tablet, incluindo os dados sobre as chamadas recebidas e efetuadas. As aplicações maliciosas podem utilizar esta funcionalidade para enviar os seus dados para outras pessoas."</string>
<string name="permdesc_readCallLog" product="default" msgid="3452017559804750758">"Permite que a aplicação leia o registo de chamadas do telemóvel, incluindo os dados sobre as chamadas recebidas e efetuadas. As aplicações maliciosas podem utilizar esta funcionalidade para enviar os seus dados para outras pessoas."</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"Nenhum cartão SIM no telefone."</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"Insira um cartão SIM."</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"O cartão SIM está em falta ou não é legível. Introduza um cartão SIM."</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"O cartão SIM foi desativado definitivamente. "\n" Contacte o seu fornecedor de serviços de rede sem fios para obter outro cartão SIM."</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Botão Faixa anterior"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Botão Faixa seguinte"</string>
diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml
index 2e3d35c..6c72e02 100644
--- a/core/res/res/values-pt/strings.xml
+++ b/core/res/res/values-pt/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"Suas mensagens"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"Ler e gravar mensagens SMS, e-mails e outras mensagens."</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"Suas informações pessoais"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"Acessa diretamente seus contatos e agenda armazenados no tablet."</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"Acessa diretamente os seus contatos e agenda armazenados no telefone."</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"Seu local"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"Monitore seu local físico."</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"Comunicação da rede"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"Acesse diversos recursos de rede."</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"Suas contas"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"Acessar as contas disponíveis."</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"Controles de hardware"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Acesso de nível inferior e controle do sistema."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Ferramentas de desenvolvimento"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"Recursos necessários apenas para desenvolvedores de aplicativos."</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"Armazenamento"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"Acessa o armazenamento USB."</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"Acessar o cartão SD."</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"Não há um cartão SIM no telefone."</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"Insera um cartão SIM."</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"O cartão SIM não foi inserido ou não é possível lê-lo. Insira um cartão SIM."</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"O cartão SIM foi desativado permanentemente."\n"Entre em contato com seu provedor de serviços sem fio para obter outro cartão SIM."</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Botão \"Faixa anterior\""</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Botão \"Próxima faixa\""</string>
diff --git a/core/res/res/values-rm/strings.xml b/core/res/res/values-rm/strings.xml
index 37b3f70..f6177ba 100644
--- a/core/res/res/values-rm/strings.xml
+++ b/core/res/res/values-rm/strings.xml
@@ -209,15 +209,78 @@
<!-- no translation found for permgroupdesc_messages (7821999071003699236) -->
<skip />
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"Vossas infurmaziuns persunalas"</string>
- <!-- no translation found for permgroupdesc_personalInfo (6975389054186265786) -->
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
<skip />
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"Acceder directamain als contacts ed al chalender memorisà sin il telefonin."</string>
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"Vossa posiziun"</string>
<!-- no translation found for permgroupdesc_location (5704679763124170100) -->
<skip />
<string name="permgrouplab_network" msgid="5808983377727109831">"Communicaziun rait"</string>
<!-- no translation found for permgroupdesc_network (4478299413241861987) -->
<skip />
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"Voss contos"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"Access als contos disponibels"</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"Cumonds da la hardware"</string>
@@ -229,6 +292,10 @@
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Utensils per sviluppaders"</string>
<!-- no translation found for permgroupdesc_developmentTools (7058828032358142018) -->
<skip />
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"Memoria"</string>
<!-- no translation found for permgroupdesc_storage (7442318502446874999) -->
<skip />
@@ -1089,6 +1156,8 @@
<skip />
<!-- no translation found for lockscreen_missing_sim_instructions_long (3526573099019319472) -->
<skip />
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<!-- no translation found for lockscreen_permanent_disabled_sim_instructions (910904643433151371) -->
<skip />
<!-- no translation found for lockscreen_transport_prev_description (201594905152746886) -->
diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml
index 07d2e5e..0323745 100644
--- a/core/res/res/values-ro/strings.xml
+++ b/core/res/res/values-ro/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"Mesajele dvs."</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"Citire şi scriere mesaje SMS, e-mailuri şi alte mesaje."</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"Informaţiile dvs. personale"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"Acces direct la agenda şi la calendarul stocate pe computerul dvs. tablet PC."</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"Acces direct la agenda şi la calendarul stocate pe telefonul dvs."</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"Locaţia dvs."</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"Monitorizează locaţia dvs. fizică."</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"Comunicare în reţea"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"Accesează diferite funcţii ale reţelei."</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"Conturile dvs."</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"Accesează conturile disponibile."</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"Controale hardware"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Acces şi control de nivel redus ale sistemului."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Instrumente de dezvoltare"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"Funcţii necesare doar pentru dezvoltatorii de aplicaţii."</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"Stocare"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"Accesează stocarea USB."</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"Accesează cardul SD."</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"Telefonul nu are card SIM."</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"Introduceţi un card SIM."</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"Cardul SIM lipseşte sau nu poate fi citit. Introduceţi un card SIM."</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Cardul dvs. SIM este dezactivat definitiv."\n" Contactaţi furnizorul de servicii wireless pentru a obţine un alt card SIM."</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Butonul Melodia anterioară"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Butonul Melodia următoare"</string>
diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml
index bcb34e3..105b7ae 100644
--- a/core/res/res/values-ru/strings.xml
+++ b/core/res/res/values-ru/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"Сообщения"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"Чтение и запись SMS, электронных писем и других сообщений."</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"Личная информация"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"Прямой доступ к контактам и событиям календаря, сохраненным в памяти планшетного ПК."</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"Прямой доступ к контактам и событиям календаря, сохраненным в памяти телефона."</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"Ваше местоположение"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"Приложение сможет отслеживать ваше местоположение."</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"Сетевой обмен данными"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"Приложение сможет получать доступ к различным сетевым функциям."</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"Ваши аккаунты"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"Доступ к имеющимся аккаунтам."</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"Управление оборудованием"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Доступ нижнего уровня и управление системой."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Инструменты разработки"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"Функции, предназначенные для разработчиков приложений."</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"Память"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"Доступ к USB-накопителю."</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"Доступ к SD-карте."</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"SIM-карта не установлена."</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"Вставьте SIM-карту."</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM-карта отсутствует или недоступна. Вставьте SIM-карту."</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"SIM-карта окончательно заблокирована."\n"Чтобы получить новую, обратитесь к своему оператору."</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Кнопка перехода к предыдущему треку"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Кнопка перехода к следующему треку"</string>
diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml
index 9d9ad1b..1c404bb 100644
--- a/core/res/res/values-sk/strings.xml
+++ b/core/res/res/values-sk/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"Vaše správy"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"Čítanie a písanie správ SMS, e-mailov a ďalších správ."</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"Vaše osobné informácie"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"Priamy prístup k vašim kontaktom a kalendáru uloženým v tablete."</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"Priamy prístup k vašim kontaktom a kalendáru uloženým v telefóne."</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"Vaša poloha"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"Sledovanie vašej fyzickej polohy."</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"Sieťová komunikácia"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"Prístup k rôznym funkciám siete."</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"Vaše účty"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"Prístup k dostupným účtom."</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"Ovládanie hardvéru"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Nízkoúrovňový prístup a ovládanie systému."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Nástroje pre vývoj"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"Funkcie len pre vývojárov aplikácií."</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"Ukladací priestor"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"Prístup do ukl. priestoru USB."</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"Prístup na kartu SD."</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"V telefóne nie je žiadna karta SIM."</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"Vložte kartu SIM."</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"Karta SIM chýba alebo sa z nej nedá čítať. Vložte kartu SIM."</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Vaša karta SIM bola natrvalo zakázaná."\n"Ak chcete získať inú kartu SIM, kontaktujte svojho operátora."</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Tlačidlo Predchádzajúca stopa"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Tlačidlo Ďalšia stopa"</string>
diff --git a/core/res/res/values-sl/strings.xml b/core/res/res/values-sl/strings.xml
index 326ca23..4701c30 100644
--- a/core/res/res/values-sl/strings.xml
+++ b/core/res/res/values-sl/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"Vaša sporočila"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"Pisanje in branje SMS-ov, e-pošte in drugih sporočil."</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"Osebni podatki"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"Neposreden dostop do stikov in koledarskih vnosov, shranjenih v tabličnem računalniku."</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"Neposreden dostop do stikov in koledarja, shranjenega v telefonu."</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"Vaša lokacija"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"Spremljanje fizične lokacije."</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"Omrežna komunikacija"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"Dostop do različnih funkcij omrežja."</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"Vaši računi"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"Dostop do razpoložljivih računov."</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"Kontrolniki strojne opreme"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Dostop nižje ravni in nadzor sistema."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Razvojna orodja"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"Funkcije, ki jih potrebujejo le razvijalci programa."</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"Prostor za shranjevanje"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"Dostop do pomnilnika USB."</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"Dostop do kartice SD."</string>
@@ -353,9 +421,9 @@
<string name="permlab_writeCallLog" msgid="8552045664743499354">"pisanje v dnevnik klicev"</string>
<string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Aplikaciji dovoli spreminjanje dnevnika klicev v tabličnem računalniku, vključno s podatki o dohodnih in odhodnih klicih. Zlonamerne aplikacije lahko tako izbrišejo ali spreminjajo vaš dnevnik klicev."</string>
<string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Aplikaciji dovoli spreminjanje dnevnika klicev v telefonu, vključno s podatki o dohodnih in odhodnih klicih. Zlonamerne aplikacije lahko tako izbrišejo ali spreminjajo vaš dnevnik klicev."</string>
- <string name="permlab_readProfile" msgid="4701889852612716678">"branje vizitke"</string>
+ <string name="permlab_readProfile" msgid="4701889852612716678">"branje vaše osebne vizitke"</string>
<string name="permdesc_readProfile" product="default" msgid="94520753797630679">"Programu omogoča branje osebnih podatkov v profilu, kot so ime in podatki za stik. To pomeni, da vas lahko program prepozna in vaše podatke o profilu pošlje drugim."</string>
- <string name="permlab_writeProfile" msgid="907793628777397643">"spreminjanje vizitke"</string>
+ <string name="permlab_writeProfile" msgid="907793628777397643">"spreminj. vaše osebne vizitke"</string>
<string name="permdesc_writeProfile" product="default" msgid="4637366723793045603">"Programu omogoča spreminjanje ali dodajanje osebnih podatkov v profilu, kot so ime in podatki za stik. To pomeni, da vas lahko drugi programi prepoznajo in vaše podatke o profilu pošljejo drugim."</string>
<string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"preberite svoj družabni tok"</string>
<string name="permdesc_readSocialStream" product="default" msgid="3419050808547335320">"Programu omogoča dostop do družabnih posodobitev vas in vaših prijateljev. Zlonamerni programi lahko to uporabijo za branje zasebne komunikacije med vami in prijatelji v družabnih omrežjih."</string>
@@ -498,7 +566,7 @@
<string name="permdesc_accessWimaxState" msgid="5914958077555177749">"Programu omogoča, da prikaže informacije o stanju omrežja WiMAX."</string>
<string name="permlab_changeWimaxState" msgid="2405042267131496579">"Sprememba stanja omrežja WiMAX"</string>
<string name="permdesc_changeWimaxState" msgid="3328853825006455912">"Programu omogoča, da vzpostavi povezavo z omrežjem WiMAX in jo prekine."</string>
- <string name="permlab_bluetooth" msgid="6127769336339276828">"vzpostavljanje povezave z napravami Bluetooth"</string>
+ <string name="permlab_bluetooth" msgid="6127769336339276828">"seznanitev z napravami Bluetooth"</string>
<string name="permdesc_bluetooth" product="tablet" msgid="7007851048416363446">"Programu omogoča ogled konfiguracije lokalnega tabličnega računalnika Bluetooth ter vzpostavljanje in sprejemanje povezave z združenimi napravami."</string>
<string name="permdesc_bluetooth" product="default" msgid="31846362767164948">"Programom omogoča ogled konfiguracije lokalnega telefona Bluetooth ter ustvarjanje in sprejemanje povezave s povezanimi napravami."</string>
<string name="permlab_nfc" msgid="4423351274757876953">"nadzor nad komunikacijo s tehnologijo bližnjega polja"</string>
@@ -522,7 +590,7 @@
<string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"branje vsebine pomnilnika USB"</string>
<string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"branje vsebine kartice SD"</string>
<string name="permdesc_sdcardRead" product="nosdcard" msgid="3530894470637667917">"Apl. om. br. USB s fot. in pr."</string>
- <string name="permdesc_sdcardRead" product="default" msgid="2555811422562526606">"Omogoča, da aplikacija bere vsebino kartice SD, ki lahko vključujejo fotografije in predstavnost."</string>
+ <string name="permdesc_sdcardRead" product="default" msgid="2555811422562526606">"Omogoča, da aplikacija bere vsebino kartice SD, ki lahko vključuje fotografije in predstavnost."</string>
<string name="permlab_sdcardWrite" product="nosdcard" msgid="8485979062254666748">"spr. ali bris. vseb. pomn. USB"</string>
<string name="permlab_sdcardWrite" product="default" msgid="9084476432661578751">"spreminjanje ali brisanje vsebine kartice SD"</string>
<string name="permdesc_sdcardWrite" product="nosdcard" msgid="6175406299445710888">"Programu omogoča zapisovanje v pomnilnik USB."</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"V telefonu ni kartice SIM."</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"Vstavite kartico SIM."</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"Ni kartice SIM ali je ni mogoče prebrati. Vstavite kartico SIM."</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Kartica SIM je trajno onemogočena."\n" Če želite dobiti drugo kartico SIM, se obrnite na ponudnika brezžičnih storitev."</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Gumb za prejšnjo skladbo"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Gumb za naslednjo skladbo"</string>
diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml
index d947de6..6948464 100644
--- a/core/res/res/values-sr/strings.xml
+++ b/core/res/res/values-sr/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"Поруке"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"Читање и писање SMS порука, порука е-поште и осталих порука."</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"Личне информације"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"Директни приступ контактима и календарима сачуваним на таблету."</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"Директни приступ контактима и календару сачуваним на телефону."</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"Локација"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"Надгледајте своју физичку локацију."</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"Комуникација преко мреже"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"Приступајте разним функцијама мреже."</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"Налози"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"Приступ доступним налозима."</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"Контроле хардвера"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Нижи нивои приступа и контроле система."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Алатке за програмирање"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"Функције потребне само програмерима апликација."</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"Складиште"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"Приступите USB меморији."</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"Приступ SD картици."</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"У телефон није уметнута SIM картица."</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"Уметните SIM картицу."</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM недостаје или не може да се прочита. Уметните SIM картицу."</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"SIM картица је трајно онемогућена."\n" Обратите се добављачу услуге бежичне мреже да бисте добили другу SIM картицу."</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Дугме за претходну песму"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Дугме за следећу песму"</string>
diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml
index a97daec..7fc5de6 100644
--- a/core/res/res/values-sv/strings.xml
+++ b/core/res/res/values-sv/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"Dina meddelanden"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"Läsa och skriva SMS, e-post och andra meddelanden."</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"Dina personliga uppgifter"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"Direktåtkomst till dina kontakter och kalendern som har lagrats på pekdatorn."</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"Direktåtkomst till dina kontakter och kalendern som har lagrats på telefonen."</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"Din plats"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"Övervaka din fysiska plats."</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"Nätverkskommunikation"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"Åtkomst till olika nätverksfunktioner."</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"Dina konton"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"Få åtkomst till tillgängliga konton."</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"Kontroller för maskinvara"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Åtkomst och kontroll av systemet på lägre nivå."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Utvecklingsverktyg"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"Funktioner som endast behövs för apputvecklare."</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"Lagring"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"Få åtkomst till USB-enheten."</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"Få åtkomst till SD-kortet."</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"Inget SIM-kort i telefonen."</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"Sätt i ett SIM-kort."</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM-kort saknas eller kan inte läsas. Sätt i ett SIM-kort."</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"SIM-kortet har inaktiverats permanent."\n" Beställ ett nytt SIM-kort från din operatör."</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Knapp för föregående spår"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Knapp för nästa spår"</string>
diff --git a/core/res/res/values-sw/strings.xml b/core/res/res/values-sw/strings.xml
index 244e9d0..ce3cb00 100644
--- a/core/res/res/values-sw/strings.xml
+++ b/core/res/res/values-sw/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"Ujumbe wako"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"Soma na kuandika SMS, barua pepe, na jumbe zako zingine."</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"Maelezo yako ya kibinafsi"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"Ufikiaji wa moja kwa moja wa anwani zako na kalenda iliyohifadhiwa kwenye kompyuta ndogo."</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"Ufikiaji wa moja kwa moja wa anwani zako na kalenda zilizohifadhiwa kwenye simu."</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"Mahali pako"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"Fuatilia eneo lako halisi."</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"Mawasiliano ya mtandao"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"Fikia vipengele mbalimbali vya mtandao."</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"Akaunti zako"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"Fikia akaunti zinazopatikana."</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"Vidhibiti vya maunzi"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Ufikiaji wa kiwango cha chini na udhibiti wa mfumo."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Zana za utengenezaji"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"Vipengee vinahitajika tu na wasinidi wa programu."</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"Hifadhi"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"Fikia hifadhi ya USB."</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"Fikia kadi ya SD."</string>
@@ -193,14 +261,11 @@
<string name="permdesc_statusBarService" msgid="716113660795976060">"Inaruhusu programu kuwa upau wa hali."</string>
<string name="permlab_expandStatusBar" msgid="1148198785937489264">"panua/kunja mwambaa hali"</string>
<string name="permdesc_expandStatusBar" msgid="6917549437129401132">"Inaruhusu programu kupanua au kukunja upau wa hali."</string>
- <!-- no translation found for permlab_processOutgoingCalls (3906007831192990946) -->
- <skip />
+ <string name="permlab_processOutgoingCalls" msgid="3906007831192990946">"panga upya simu zinazotoka"</string>
<string name="permdesc_processOutgoingCalls" msgid="1152111671618301044">"Inaruhusu programu kuchakata simu zinazotoka na kubadilisha nambari itakayopigwa. Programu hasidi zinaweza kufuatilia, kuelekeza kwingine, au kuzuia simu zinazotoka."</string>
- <!-- no translation found for permlab_receiveSms (8673471768947895082) -->
- <skip />
+ <string name="permlab_receiveSms" msgid="8673471768947895082">"pokea jumbe za matini (SMS)"</string>
<string name="permdesc_receiveSms" msgid="8107887121893611793">"Inaruhusu programu kupokea na kuchakata jumbe za SMS. Programu hasidi zinaweza kufuatilia jumbe zako au kuzifuta bila kukuonyesha."</string>
- <!-- no translation found for permlab_receiveMms (1821317344668257098) -->
- <skip />
+ <string name="permlab_receiveMms" msgid="1821317344668257098">"pokea jumbe za matini (MMS)"</string>
<string name="permdesc_receiveMms" msgid="1424805308566612086">"Inaruhusu programu kupokea na kuchakata jumbe za MMS. Programu hasidi zinaweza kufuatilia jumbe zako au kuzifuta bila kukuonyesha."</string>
<string name="permlab_receiveEmergencyBroadcast" msgid="1803477660846288089">"Pokea matangazo ya dharura"</string>
<string name="permdesc_receiveEmergencyBroadcast" msgid="848524070262431974">"Inaruhusu programu kupokea na kuchakata jumbe za dharura. Ruhusa hii inapatikana tu kwa programu za mfumo."</string>
@@ -210,16 +275,13 @@
<string name="permdesc_sendSms" msgid="906546667507626156">"Inaruhusu programu kutuma jumbe za SMS. Programu hasidi zinaweza kukugharimu fedha kwa kutuma jumbe bila uthibitisho wako."</string>
<string name="permlab_sendSmsNoConfirmation" msgid="4781483105951730228">"Tuma ujumbe wa SMS bila ya thibitisho"</string>
<string name="permdesc_sendSmsNoConfirmation" msgid="3437759207020400204">"Huruhusu programu kutuma jumbe wa SMS. Programu hasidi huenda zikakugharimu pesa kwa kutuma jumbe bila uthibitisho wako."</string>
- <!-- no translation found for permlab_readSms (8745086572213270480) -->
- <skip />
+ <string name="permlab_readSms" msgid="8745086572213270480">"soma jumbe zako za matini (SMS au MMS)"</string>
<string name="permdesc_readSms" product="tablet" msgid="2341692916884515613">"Inaruhusu programu kusoma jumbe za SMS zilizohifadhiwa kwenye kompyuta kibao au SIM kadi yako. Programu hasidi zinaweza kusoma jumbe zako za siri."</string>
<string name="permdesc_readSms" product="default" msgid="5653850482025875493">"Inaruhusu programu kusoma jumbe za SMS zilizohifadiwa kwenye simu ya au SIM kadi. Programu hasidi zinaweza kusoma jumbe zako za siri."</string>
- <!-- no translation found for permlab_writeSms (3216950472636214774) -->
- <skip />
+ <string name="permlab_writeSms" msgid="3216950472636214774">"Hariri jumbe zako za matini (SMS au MMS)"</string>
<string name="permdesc_writeSms" product="tablet" msgid="5160413947794501538">"Inaruhusu programu kuandikia jumbe za SMS zinazohifadhiwa kwenye kompyuta yako kibao au SIM kadi. Programu hasidi zinaweza kufuta jumbe zako."</string>
<string name="permdesc_writeSms" product="default" msgid="7268668709052328567">"Inaruhusu programu kuandika jumbe za SMS zinazohifadhiwa kwenye simu yako au SIM kadi. programu hasidi zinaweza kufuta ujumbe zako."</string>
- <!-- no translation found for permlab_receiveWapPush (5991398711936590410) -->
- <skip />
+ <string name="permlab_receiveWapPush" msgid="5991398711936590410">"pokea jumbe za matini (WAP)"</string>
<string name="permdesc_receiveWapPush" msgid="7983455145335316872">"Inaruhusu programu kupokea na kuchakata jumbe za WAP. Programu hasidi zinaweza kufuatilia jumbe zako au kuzifuta bila kukuonyesha."</string>
<string name="permlab_getTasks" msgid="6466095396623933906">"rudisha programu zinazoendeshwa"</string>
<string name="permdesc_getTasks" msgid="6608159250520381359">"Inaruhusu programu kupata taarifa kuhusu kazi zinazoendelea sasa na hivi karibuni. Programu hasidi zinaweza kugundua taarifa ya kibinafsi kuhusu programu zingine."</string>
@@ -235,13 +297,11 @@
<string name="permdesc_setScreenCompatibility" msgid="692043618693917374">"Huruhusu programu kudhibiti hali ya utangamano wa skrini ya programu zingine. Programu hasidi zinaweza kuvunja mwenendo wa programu zingine."</string>
<string name="permlab_setDebugApp" msgid="3022107198686584052">"wezesha utatuaji wa programu"</string>
<string name="permdesc_setDebugApp" msgid="4474512416299013256">"Huruhusu programu kuwasha kueua cha programu nyingine. Programu hasidi huenda zikatumia hii ili kuua programu nyingine."</string>
- <!-- no translation found for permlab_changeConfiguration (4162092185124234480) -->
- <skip />
+ <string name="permlab_changeConfiguration" msgid="4162092185124234480">"badilisha mipangilio ya kuonyesha mfumo"</string>
<string name="permdesc_changeConfiguration" msgid="4372223873154296076">"Huruhusu programu kubadilisha usanidi wa sasa, kama vile kieneo au ukubwa wa jumla wa fonti."</string>
<string name="permlab_enableCarMode" msgid="5684504058192921098">"Wezesha mtindo wa gari"</string>
<string name="permdesc_enableCarMode" msgid="4853187425751419467">"Inaruhusu programu kuwawezesha mtindo wa gari."</string>
- <!-- no translation found for permlab_killBackgroundProcesses (3914026687420177202) -->
- <skip />
+ <string name="permlab_killBackgroundProcesses" msgid="3914026687420177202">"funga programu zingine"</string>
<string name="permdesc_killBackgroundProcesses" msgid="931129103262126617">"Inaruhusu programu kuua mchakato wa usuli wa programu zingine, hata kama kumbukumbu si ndogo."</string>
<string name="permlab_forceStopPackages" msgid="2329627428832067700">"Lazimisha kukomesha programu zingine"</string>
<string name="permdesc_forceStopPackages" msgid="5253157296183940812">"Inaruhusu programu kulazimisha programu zingine kuacha."</string>
@@ -265,8 +325,7 @@
<string name="permdesc_broadcastWapPush" msgid="4783402525039442729">"Inaruhusu programu kutangaza taarifa kwamba ujumbe wa WAP PUSH umepokewa. Programu hasidi zinaweza kutumia hii kubuni risiti ya ujumbe wa MMS au polepole kubadilisha maudhui yoyote ya ukurasa wa tovuti na vibadala vibovu."</string>
<string name="permlab_setProcessLimit" msgid="2451873664363662666">"zuia idadi ya michakato inayoendeshwa"</string>
<string name="permdesc_setProcessLimit" msgid="7318061314040879542">"Inaruhusu programu kudhibiti upeo wa idadi ya michakato ambayo itaendeshwa. Kamwe hazihitajiki kwa programu za kwaida."</string>
- <!-- no translation found for permlab_setAlwaysFinish (550958507798796965) -->
- <skip />
+ <string name="permlab_setAlwaysFinish" msgid="550958507798796965">"lazimisha programu za usuli kufunga"</string>
<string name="permdesc_setAlwaysFinish" msgid="7471310652868841499">"Inaruhusu programu kudhibiti kama daima shughuli zinamalizwa wakati ziendapo kwa mandhari-nyuma. Kamwe hazihitajiki kwa programu za kawaida."</string>
<string name="permlab_batteryStats" msgid="7863923071360031652">"rekebisha takwimu za betri"</string>
<string name="permdesc_batteryStats" msgid="6835186932305744068">"Inaruhusu programu kurekebisha takwimu za betri zilizokusanywa. Si kwa matumizi ya programu za kawaida."</string>
@@ -276,8 +335,7 @@
<string name="permdesc_confirm_full_backup" msgid="1748762171637699562">"Inaruhusu programu kuzindua UI ya kuthibitisha chelezo kamili. Si ya kutumiwa na programu yoyote."</string>
<string name="permlab_internalSystemWindow" msgid="2148563628140193231">"onyesha madirisha yasiyoidhinishwa"</string>
<string name="permdesc_internalSystemWindow" msgid="7458387759461466397">"Huruhusu programu kuunda madirisha ambayo yananuiwa kutumiwa na kusano ya mtumiaji ya mfumo wa ndani. Sio ya matumizi na programu za kawaida."</string>
- <!-- no translation found for permlab_systemAlertWindow (3543347980839518613) -->
- <skip />
+ <string name="permlab_systemAlertWindow" msgid="3543347980839518613">"chora juu ya programu zingine"</string>
<string name="permdesc_systemAlertWindow" msgid="8507863469978066409">"Inaruhusu programu kuonyesha dirisha za arifa za mfumo. Programu hasidi zaweza kutawala skrini nzima."</string>
<string name="permlab_setAnimationScale" msgid="2805103241153907174">"rekebisha kasi ya jumla ya uhuisho"</string>
<string name="permdesc_setAnimationScale" msgid="7690063428924343571">"Huruhusu programu kubadilisha kasi ya uhuishaji kijumla (uhuisho wa haraka zaidi au wa polepole zaidi) wakati wowote."</string>
@@ -339,26 +397,22 @@
<string name="permdesc_grantRevokePermissions" msgid="4088642654085850662">"Inaruhusu programu kutoa au kukataa idhini maalum ya programu hii au zingine. Programu hasidi zinaweza kutumia hii ili kufikia vipengee ambavyo hujaziruhusu."</string>
<string name="permlab_setPreferredApplications" msgid="8463181628695396391">"kuweka programu zinazopendelewa"</string>
<string name="permdesc_setPreferredApplications" msgid="4973986762241783712">"Inaruhusu programu kurekebisha programu unazopendelea. Programu hasidi zinaweza, polepole, kubadilisha programu zinazoendeshwa, na kuzifanya programu ulizo nazo kukusanya data ya kibinafsi kutoka kwako."</string>
- <!-- no translation found for permlab_writeSettings (2226195290955224730) -->
- <skip />
+ <string name="permlab_writeSettings" msgid="2226195290955224730">"rekebisha mipangilio ya mfumo"</string>
<string name="permdesc_writeSettings" msgid="7775723441558907181">"Inaruhusu programu kurekebisha mipangilio ya mfumo wa data. Programu hasidi zinaweza kuvuruga usanidi wa mfumo wako."</string>
<string name="permlab_writeSecureSettings" msgid="204676251876718288">"rekebisha mipangilio ya mfumo salama"</string>
<string name="permdesc_writeSecureSettings" msgid="8159535613020137391">"Inaruhusu programu kurekebisha mipagilio ya mfumo wa data salama. Si ya kutumiwa na programu za kawaida."</string>
<string name="permlab_writeGservices" msgid="2149426664226152185">"rekebisha ramani ya Google services"</string>
<string name="permdesc_writeGservices" msgid="1287309437638380229">"Inaruhusu programu kurekebisha ramani ya huduma za Google. Si ya kutumiwa na programu za kawaida."</string>
- <!-- no translation found for permlab_receiveBootCompleted (5312965565987800025) -->
- <skip />
+ <string name="permlab_receiveBootCompleted" msgid="5312965565987800025">"endesha wakati wa uwashaji"</string>
<string name="permdesc_receiveBootCompleted" product="tablet" msgid="7390304664116880704">"Inaruhusu programu yenyewe kujianzisha baada ya mfumo kumaliza kuuanza upya. Hii inaweza kufanya ichukue muda mrefu kuanza kompyuta kibao na kuruhusu programu kupunguza kasi ya kompyuta kibao kijumla kwa kuendeshwa siku zote."</string>
<string name="permdesc_receiveBootCompleted" product="default" msgid="513950589102617504">"Inaruhusu programu kujianzisha yenyewe mfumo unapo maliza kuanza upya. Hii inaweza kuchukua muda mrefu simu kuanza na kuruhusu programu kupunguza kasi ya simu kwa jumla kwa kuendeshwa polepole kila wakati."</string>
<string name="permlab_broadcastSticky" msgid="7919126372606881614">"tuma tangazo la kulanata"</string>
<string name="permdesc_broadcastSticky" product="tablet" msgid="1181582512022829259">"Inaruhusu programu kutuma matangazo nata, ambayo hubakia baada ya matangazo kuisha. Programu hasidi zinaweza fanya kompyuta kibao kufanya kazi polepole au kuifanya isiwe thabiti kwa kuifanya itumie kumbukumbu kubwa zaidi."</string>
<string name="permdesc_broadcastSticky" product="default" msgid="3287869131621514325">"Inaruhusu programu kutuma matangazo nata, ambayo hubakia baada ya matangazo kuisha. Programu hasidi zinaweza fanya simu kufanya kazi polepole au kuifanya isiwe thabiti kwa kuifanya itumie kumbukumbu kubwa zaidi."</string>
- <!-- no translation found for permlab_readContacts (8348481131899886131) -->
- <skip />
+ <string name="permlab_readContacts" msgid="8348481131899886131">"soma anwani zako"</string>
<string name="permdesc_readContacts" product="tablet" msgid="6370069055638209432">"Huruhusu programu kusoma data yote kuhusu anwani zako zilizohifadhiwa kwenye kompyuta yako kibao, ikiwa ni pamoja na idadi ya mara ambazo ulipiga simu, kutuma barua pepe, au kuwasiliana kwa njia zingine na watu maalum. Hii husaidia na ukamilishaji otomatiki wa anwani za barua pepe na vipengele vingine vinavyofaa. Programu hasidi zinaweza kutumia idhini hii ili kutuma data yako ya anwani kwa watu wengine."</string>
<string name="permdesc_readContacts" product="default" msgid="4093353182535351501">"Huruhusu programu kusoma data yote kuhusu anwani zako zilizohifadhiwa kwenye simu yako, ikiwa ni pamoja na idadi ya mara ambazo umepiga simu, kutuma barua pepe, au kuwasiliana kwa njia zingine na watu maalum. Hii husaidia na ukamilishaji otomatiki wa anwani za barua pepe na vipengele vingine vinavyofaa. Programu hasidi zinaweza kutumia idhini hii ili kutuma data yako ya anwani kwa watu wengine."</string>
- <!-- no translation found for permlab_writeContacts (5107492086416793544) -->
- <skip />
+ <string name="permlab_writeContacts" msgid="5107492086416793544">"rekebisha anwani zako"</string>
<string name="permdesc_writeContacts" product="tablet" msgid="5495863352173533286">"Huruhusu programu kurekebisha data kuhusu anwani zako zilizohifadhiwa kwenye kompyuta yako kibao, ikiwa ni pamoja na idadi ya mara ulizopiga simu, kutumia barua pepe, au kuwasiliana kwa njia zingine na watu maalum. Hii husaidia na ukamilishaji otomatiki wa anwani za barua pepe na vipengele vingine vinavyofaa. Programu hasidi zinaweza kutumia hii kufuta au kurekebisha data yako ya anwani."</string>
<string name="permdesc_writeContacts" product="default" msgid="6108469962248865715">"Huruhusu programu kurekebisha data kuhusu anwani zako zilizohifadhiwa kwenye simu yako, ikiwa ni pamoja na idadi ya mara ulizopiga simu, kutuma barua pepe, au kuwasiliana kwa njia zingine na watu maalum. Hii husaidia na ukamilishaji otomatiki wa anwani za barua pepe na vipengele vingine vinavyofaa. Programu hasidi zinaweza kutumia hii kufuta au kurekebisha data yako ya anwani."</string>
<string name="permlab_readCallLog" msgid="3478133184624102739">"soma rajisi ya simu"</string>
@@ -367,11 +421,9 @@
<string name="permlab_writeCallLog" msgid="8552045664743499354">"andika rajisi ya simu"</string>
<string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Huruhusu programu kurekebisha rajisi ya kompyuta kibao yako, ikiwa ni pamoja na simu zinazoingia na kutoka. Huenda programu hasidi zikatumia hii ili kufuta au kurekebisha rajisi ya simu yako."</string>
<string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Huruhusu programu kurekebisha rajisi ya simu yako, ikiwa ni pamoja na simu zinazoingia na kutoka. Huenda programu hasidi zikatumia hii ili kufuta au kurekebisha rajisi ya simu yako."</string>
- <!-- no translation found for permlab_readProfile (4701889852612716678) -->
- <skip />
+ <string name="permlab_readProfile" msgid="4701889852612716678">"soma kadi yako mwenyewe ya mawasiliano"</string>
<string name="permdesc_readProfile" product="default" msgid="94520753797630679">"Inaruhusu programu kusoma maelezo mafupi ya kibinafsi yaliyohifadhiwa kwenye kifaa chako, kama vile jina lako na taarifa ya kuwasiliana. Hii ina maanisha programu inaweza kukutambua na kutuma taarifa yako fupi ya kibinafsi kwa wengine."</string>
- <!-- no translation found for permlab_writeProfile (907793628777397643) -->
- <skip />
+ <string name="permlab_writeProfile" msgid="907793628777397643">"rekebisha kadi yako mwenyewe ya mawasiliano"</string>
<string name="permdesc_writeProfile" product="default" msgid="4637366723793045603">"Inaruhusu programu kubadilisha au kuongeza taarifa fupi ya kibinafsi iliyohifadhiwa katika kifaa chako, kama vile jina lako na maelezo ya kuwasiliana. Hii ina maanisha kwamba programu zingine zinaweza kukutambua na kutuma taarifa yako fupi kwa wengine."</string>
<string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"soma mipasho yako wa kijamii"</string>
<string name="permdesc_readSocialStream" product="default" msgid="3419050808547335320">"Inaruhusu programu kufikia na kulandanisha sasisho za kijamii kutoka kwako na marafiki zako. Programu hasidi zinaweza kutumia hii kusoma mawasiliano ya kibinafsi kati yako na marafiki zako kwenye mitandao ya kijamii."</string>
@@ -412,15 +464,11 @@
<string name="permlab_reboot" product="default" msgid="2898560872462638242">"lazimisha kwasha upya simu"</string>
<string name="permdesc_reboot" product="tablet" msgid="8172056180063700741">"Inaruhusu programu kulazimisha kompyuta kibao kuwashwa upya."</string>
<string name="permdesc_reboot" product="default" msgid="5326008124289989969">"Inaruhusu programu kulazimisha simu kujiwasha upya."</string>
- <!-- no translation found for permlab_mount_unmount_filesystems (2927361537942591841) -->
- <skip />
- <!-- no translation found for permlab_mount_unmount_filesystems (4402305049890953810) -->
- <skip />
+ <string name="permlab_mount_unmount_filesystems" product="nosdcard" msgid="2927361537942591841">"fikia mfumo wa faili wa hifadhi ya USB"</string>
+ <string name="permlab_mount_unmount_filesystems" product="default" msgid="4402305049890953810">"fikia mfumo wa faili wa Kadi ya SD"</string>
<string name="permdesc_mount_unmount_filesystems" msgid="1829290701658992347">"Inaruhusu programu kupachika au kupachua mifumo ya faili ya hifadhi inayoweza kutolewa."</string>
- <!-- no translation found for permlab_mount_format_filesystems (6227819582624904972) -->
- <skip />
- <!-- no translation found for permlab_mount_format_filesystems (262582698639274056) -->
- <skip />
+ <string name="permlab_mount_format_filesystems" product="nosdcard" msgid="6227819582624904972">"futa hifadhi ya USB"</string>
+ <string name="permlab_mount_format_filesystems" product="default" msgid="262582698639274056">"futa Kadi ya SD"</string>
<string name="permdesc_mount_format_filesystems" msgid="8784268246779198627">"Inaruhusu programu kufomati hifadhi inayoweza kutolewa."</string>
<string name="permlab_asec_access" msgid="3411338632002193846">"pata maelezo juu ya hifadhi ya ndani"</string>
<string name="permdesc_asec_access" msgid="3094563844593878548">"Inaruhusu programu kupata maelezo juu ya hifadhi ya ndani."</string>
@@ -432,8 +480,7 @@
<string name="permdesc_asec_mount_unmount" msgid="3451360114902490929">"Inaruhusu programu kupachika/kupachua hifadhi ya ndani."</string>
<string name="permlab_asec_rename" msgid="7496633954080472417">"ipe hifadhi ya ndani jina jipya"</string>
<string name="permdesc_asec_rename" msgid="1794757588472127675">"Inaruhusu programu kubadilisha jina la hifadhi ya ndani."</string>
- <!-- no translation found for permlab_vibrate (7696427026057705834) -->
- <skip />
+ <string name="permlab_vibrate" msgid="7696427026057705834">"dhibiti mtetemo"</string>
<string name="permdesc_vibrate" msgid="6284989245902300945">"Inaruhusu programu kudhibiti kitingishi."</string>
<string name="permlab_flashlight" msgid="2155920810121984215">"dhibiti tochi"</string>
<string name="permdesc_flashlight" msgid="6522284794568368310">"Inaruhusu programu kudhibiti tochi."</string>
@@ -458,8 +505,7 @@
<string name="permdesc_bindGadget" msgid="8261326938599049290">"Inaruhusu programu kuwaambia mfumo wijeti ambazo zinaweza kutumika na programu. Programu ambayo ina ruhusa hii inaweza kuruhusu ufikiaji wa data binafsi na kwa programu nyingine. Si ya kutumiwa na programu za kawaida."</string>
<string name="permlab_modifyPhoneState" msgid="8423923777659292228">"badiliisha hali ya simu"</string>
<string name="permdesc_modifyPhoneState" msgid="1029877529007686732">"Inaruhusu programu kudhibiti vipengee vya kifaa. Programu iliyo na ruhusa hii inaweza badilisha mtandao, kuzima na kuwasha redio ya simu bila hata kukujulisha."</string>
- <!-- no translation found for permlab_readPhoneState (9178228524507610486) -->
- <skip />
+ <string name="permlab_readPhoneState" msgid="9178228524507610486">"soma hali ya simu na kitambulisho"</string>
<string name="permdesc_readPhoneState" msgid="5127767618743602782">"Inaruhusu programu kufikia vipengee vya simu vya kifaa. Programu inayo na ruhusa hii inaweza kuamua namba ya simu na namba tambulishi ya simu hii, kama kuna simu inapigwa, namba inayopigiwa simu hiyo na mengine kama hayo."</string>
<string name="permlab_wakeLock" product="tablet" msgid="1531731435011495015">"zuia kompyuta ndogo dhidi ya kulala"</string>
<string name="permlab_wakeLock" product="default" msgid="573480187941496130">"zuia simu dhidi ya kulala"</string>
@@ -474,8 +520,7 @@
<string name="permdesc_factoryTest" product="default" msgid="8136644990319244802">"Endesha kama jaribio la kiwango cha chini cha mtengenezaji, kwa hivyo kuruhusu ufikiaji kamili wa maunzi ya simu. Inapatikana tu wakati simu inaendeshwa katika gumzo ya jaribio ya mtengenezaji."</string>
<string name="permlab_setWallpaper" msgid="6627192333373465143">"weka mandhari"</string>
<string name="permdesc_setWallpaper" msgid="7373447920977624745">"Inaruhusu programu kuweka mfumo wa mandhari."</string>
- <!-- no translation found for permlab_setWallpaperHints (3278608165977736538) -->
- <skip />
+ <string name="permlab_setWallpaperHints" msgid="3278608165977736538">"rekebisha ukubwa wa mandhari yako"</string>
<string name="permdesc_setWallpaperHints" msgid="8235784384223730091">"Inaruhusu programu kuweka vidokezo vya ukubwa wa mandhari ya mfumo."</string>
<string name="permlab_masterClear" msgid="2315750423139697397">"weka upya mfumo kwa chaguo-msingi za kiwanda"</string>
<string name="permdesc_masterClear" msgid="3665380492633910226">"Inaruhusu programu kuweka upya kabisa mfumo kwa mipangilio yake ya kiwanda, huku ikifuta data yote, usanidi, na programu zilizosanikishwa."</string>
@@ -487,21 +532,16 @@
<string name="permdesc_setTimeZone" product="default" msgid="4499943488436633398">"Inaruhusu programu kubadilisha majira ya saa ya simu."</string>
<string name="permlab_accountManagerService" msgid="4829262349691386986">"tenda kama Huduma ya Meneja wa Akaunti"</string>
<string name="permdesc_accountManagerService" msgid="1948455552333615954">"Huruhusu programu kupiga simu kwa Wathibitishaji Akaunti."</string>
- <!-- no translation found for permlab_getAccounts (1086795467760122114) -->
- <skip />
+ <string name="permlab_getAccounts" msgid="1086795467760122114">"pata akaunti kwenye kifaa"</string>
<string name="permdesc_getAccounts" product="tablet" msgid="3238360555257773358">"Inaruhusu programu kupata orodha ya akaunti zinazojulikana na kompyuta kibao."</string>
<string name="permdesc_getAccounts" product="default" msgid="2735689364629830348">"Inaruhusu programu kupata orodha ya akaunti zinazojulikana na simu."</string>
- <!-- no translation found for permlab_authenticateAccounts (5265908481172736933) -->
- <skip />
+ <string name="permlab_authenticateAccounts" msgid="5265908481172736933">"unda akaunti na weka manenosiri"</string>
<string name="permdesc_authenticateAccounts" msgid="5472124296908977260">"Inaruhusu programu kutumia uwezo wa uthibitishaji akaunti wa KidhibitiAkaunti, pamoja na kuunda akaunti na kupata na kuweka nywila zao."</string>
- <!-- no translation found for permlab_manageAccounts (4983126304757177305) -->
- <skip />
+ <string name="permlab_manageAccounts" msgid="4983126304757177305">"ongeza au ondoa akaunti"</string>
<string name="permdesc_manageAccounts" msgid="8698295625488292506">"Inaruhusu programu kutekeleza shughuli kama vile kuongeza na kutoa akaunti, na kufuta manenosiri yazo."</string>
- <!-- no translation found for permlab_useCredentials (235481396163877642) -->
- <skip />
+ <string name="permlab_useCredentials" msgid="235481396163877642">"tumia akaunti kwenye kifaa"</string>
<string name="permdesc_useCredentials" msgid="7984227147403346422">"Inaruhusu programu kuomba shuhuda za uthibitisho."</string>
- <!-- no translation found for permlab_accessNetworkState (4951027964348974773) -->
- <skip />
+ <string name="permlab_accessNetworkState" msgid="4951027964348974773">"ona miunganisho ya mtandao"</string>
<string name="permdesc_accessNetworkState" msgid="479772796952547198">"Inaruhusu programu kuangalia hali ya mitandao yote."</string>
<string name="permlab_createNetworkSockets" msgid="9121633680349549585">"ufikiaji kamili wa mtandao"</string>
<string name="permdesc_createNetworkSockets" msgid="5963922297444265950">"Inaruhusu programu kuunda soketi za mtandao."</string>
@@ -513,36 +553,29 @@
<string name="permdesc_changeTetherState" msgid="1524441344412319780">"Inaruhusu programu kubadilisha hali ya muunganisho wa mtandao uliofungwa."</string>
<string name="permlab_changeBackgroundDataSetting" msgid="1400666012671648741">"badilisha mpangilio wa utumiaji data ya mandharinyuma"</string>
<string name="permdesc_changeBackgroundDataSetting" msgid="5347729578468744379">"Inaruhusu programu kubadilisha mpangilio wa matumizi ya data ya usuli."</string>
- <!-- no translation found for permlab_accessWifiState (5202012949247040011) -->
- <skip />
+ <string name="permlab_accessWifiState" msgid="5202012949247040011">"ona miunganisho ya Wi-Fi"</string>
<string name="permdesc_accessWifiState" msgid="7770452658226256831">"Inaruhusu programu kuona taarifa kuhusu hali ya Wi-Fi."</string>
- <!-- no translation found for permlab_changeWifiState (6550641188749128035) -->
- <skip />
+ <string name="permlab_changeWifiState" msgid="6550641188749128035">"unganisha na utenganishe kutoka kwa Wi-Fi"</string>
<string name="permdesc_changeWifiState" msgid="7399961004537946240">"Inaruhusu programu kuunganisha na kutenganisha kutoka kwa pointi za ufikivu za Wi-Fi, na kufanya mabadiliko kwa mitandao ya Wi-Fi iliyosanidiwa."</string>
<string name="permlab_changeWifiMulticastState" msgid="1368253871483254784">"ruhusu upokeaji wa Wi-Fi Multicast"</string>
<string name="permdesc_changeWifiMulticastState" msgid="7633598524564320817">"Inaruhusu programu kupata furushi amabazo hazijaelekezwa moja kwa moja kwa kifaa chako. Hii inaweza kuwa muhimu wakati wa kutambua huduma zinazotolewa karibu na eneo hilo. Inatumia nguvu zaidi kuliko mtindo wa kutupa mbali mbali.."</string>
- <!-- no translation found for permlab_bluetoothAdmin (6006967373935926659) -->
- <skip />
+ <string name="permlab_bluetoothAdmin" msgid="6006967373935926659">"fikia mipangilio ya Bluetooth"</string>
<string name="permdesc_bluetoothAdmin" product="tablet" msgid="6921177471748882137">"Inaruhusu programu kusanidi kompyuta kibao ya karibu ya Bluetooth na kutambua na kuoanisha na vifaa vya kudhibiti."</string>
<string name="permdesc_bluetoothAdmin" product="default" msgid="8931682159331542137">"Inaruhusu programu kusanidi simu ya karibu ya Bluetooth, na kutambua na kuoanisha na vifaa vya mbali."</string>
- <!-- no translation found for permlab_accessWimaxState (7436749103151096452) -->
- <skip />
+ <string name="permlab_accessWimaxState" msgid="7436749103151096452">"Ona miunganisho ya WiMAX"</string>
<string name="permdesc_accessWimaxState" msgid="5914958077555177749">"Huruhusu programu kuona maelezo kuhusu hali ya WiMAX."</string>
<string name="permlab_changeWimaxState" msgid="2405042267131496579">"Badilisha hali ya WiMAX"</string>
<string name="permdesc_changeWimaxState" msgid="3328853825006455912">"Huruhusu programu kuunganisha na kutenganisha kutoka kwenye mtandao wa WiMAX."</string>
- <!-- no translation found for permlab_bluetooth (6127769336339276828) -->
- <skip />
+ <string name="permlab_bluetooth" msgid="6127769336339276828">"oanisha na vifaa vya Bluetooth"</string>
<string name="permdesc_bluetooth" product="tablet" msgid="7007851048416363446">"Inaruhusu programu kuona usanidi wa kompyuta kibao ya karibu ya Bluetooth, na kuwezesha na kukubali muunganisho na vifaa vilivyo oanishwa."</string>
<string name="permdesc_bluetooth" product="default" msgid="31846362767164948">"Inaruhusu programu kuangalia usanidi wa simu ya karibu ya Bluetooth, na kufanya na kukubali miunganisho na vifaa vilivyolinganishwa."</string>
<string name="permlab_nfc" msgid="4423351274757876953">"dhibiti Mawasiliano Karibu na Uga"</string>
<string name="permdesc_nfc" msgid="7120611819401789907">"Inaruhusu programu kuwasiliana na lebo, kadi na wasomaji wa Near Field Communication (NFC)."</string>
- <!-- no translation found for permlab_disableKeyguard (3598496301486439258) -->
- <skip />
+ <string name="permlab_disableKeyguard" msgid="3598496301486439258">"lemaza kufuli lako la skrini"</string>
<string name="permdesc_disableKeyguard" msgid="6231611286892232626">"Inaruhusu programu kulemaza kifunga kitufe na usalama wowote unaohusishwa na nenosiri. Mfano halisi wa hii ni simu kulemaza kifunga kitufe wakati wa kupokea simu inayoingia, kisha kuwezesha upya kifunga kitufe simu inapomalizika."</string>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"soma mipangilio ya usawazishaji"</string>
<string name="permdesc_readSyncSettings" msgid="5464056785274229278">"Inaruhusu programu kusoma mipangilio ya ulandanishi, kama vile ikiwa ulandanishi imewezeshwa kwa programu ya Watu."</string>
- <!-- no translation found for permlab_writeSyncSettings (5408694875793945314) -->
- <skip />
+ <string name="permlab_writeSyncSettings" msgid="5408694875793945314">"washa na zima ulandanishi"</string>
<string name="permdesc_writeSyncSettings" msgid="1466056564502117130">"Inaruhusu programu kurekebisha mipangilio ya ulandanishi, kama vile ikiwa ulandanishi umewezeshwa kwa programu ya Watu."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"soma takwimu za usawazishaji"</string>
<string name="permdesc_readSyncStats" msgid="3801971839939951678">"Inaruhu programu kusoma takwimu zilizolandanishwa; k.v., historia ya ulandanishi ambao umetokea."</string>
@@ -550,23 +583,16 @@
<string name="permdesc_subscribedFeedsRead" msgid="5557058907906144505">"Inaruhusu programu kupata maelezo kuhusu mlisho iliyolandanishwa kwa sasa."</string>
<string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"andika milisho ya kujiunga"</string>
<string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Inaruhusu programu kurekebisha milisho yako iliyolandanishwa kwa sasa. Programu hasidi zinaweza kubadilisha milisho yako iliyolandanishwa."</string>
- <!-- no translation found for permlab_readDictionary (4107101525746035718) -->
- <skip />
+ <string name="permlab_readDictionary" msgid="4107101525746035718">"soma sheria ulizoongeza kwenye kamusi"</string>
<string name="permdesc_readDictionary" msgid="8977815988329283705">"Inaruhusu programu kusoma maneno, majina na vifungu vyovyote vya kibinafsi, ambavyo huenda mtumiaji amehifadhi katika kamusi ya mtumiaji."</string>
<string name="permlab_writeDictionary" msgid="2296383164914812772">"andika kwa kamusi iliyobainishwa na mtumiaji"</string>
<string name="permdesc_writeDictionary" msgid="8185385716255065291">"Inaruhusu programu kuandika maneno mapya katika kamusi ya mtumiaji."</string>
- <!-- no translation found for permlab_sdcardRead (367275095159405468) -->
- <skip />
- <!-- no translation found for permlab_sdcardRead (2188156462934977940) -->
- <skip />
- <!-- no translation found for permdesc_sdcardRead (3530894470637667917) -->
- <skip />
- <!-- no translation found for permdesc_sdcardRead (2555811422562526606) -->
- <skip />
- <!-- no translation found for permlab_sdcardWrite (8485979062254666748) -->
- <skip />
- <!-- no translation found for permlab_sdcardWrite (9084476432661578751) -->
- <skip />
+ <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"soma maudhui ya hifadhi yako ya USB"</string>
+ <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"soma maudhui ya kadi yako ya SD"</string>
+ <string name="permdesc_sdcardRead" product="nosdcard" msgid="3530894470637667917">"Huruhusu programu kusoma maudhui ya hifadhi ya USB, ambayo huenda ikajumuisha picha na midia."</string>
+ <string name="permdesc_sdcardRead" product="default" msgid="2555811422562526606">"Huruhusu programu kusoma maudhui ya kadi ya SD, ambayo huenda ikajumuisha picha na midia."</string>
+ <string name="permlab_sdcardWrite" product="nosdcard" msgid="8485979062254666748">"rekebisha au futa maudhui ya hifadhi yako ya USB"</string>
+ <string name="permlab_sdcardWrite" product="default" msgid="9084476432661578751">"rekebisha au futa maudhui ya kadi yako ya SD"</string>
<string name="permdesc_sdcardWrite" product="nosdcard" msgid="6175406299445710888">"Inaruhusu programu kuandikia hifadhi ya USB."</string>
<string name="permdesc_sdcardWrite" product="default" msgid="4337417790936632090">"Inaruhusu programu kuandikia kadi ya SD."</string>
<string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"badilisha/futa maudhui ya hifadhi ya media ya ndani."</string>
@@ -744,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"Hakuna SIM kadi kwenye simu."</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"Ingiza SIM kadi."</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"Kadi ya SIM haiko au haisomeki. Tafadhali ingiza SIM kadi."</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"SIM kadi yako imelemezwa kabisa."\n" Wasiliana na mtoa huduma wako wa pasi waya ili upate SIM kadi nyingine."</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Kitufe cha awali cha wimbo"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Kitufe cha wimbo unaofuata"</string>
@@ -819,15 +847,12 @@
<string name="autofill_parish" msgid="8202206105468820057">"Mtaa"</string>
<string name="autofill_area" msgid="3547409050889952423">"Eneo"</string>
<string name="autofill_emirate" msgid="2893880978835698818">"Emirate"</string>
- <!-- no translation found for permlab_readHistoryBookmarks (3775265775405106983) -->
- <skip />
+ <string name="permlab_readHistoryBookmarks" msgid="3775265775405106983">"soma alamisho na historia ya Wavuti yako"</string>
<string name="permdesc_readHistoryBookmarks" msgid="4577476392604595921">"Inaruhusu programu kusoma URL zote ambazo Kivinjari kimetembelea, na alamisho zote za Kivinjari."</string>
- <!-- no translation found for permlab_writeHistoryBookmarks (3714785165273314490) -->
- <skip />
+ <string name="permlab_writeHistoryBookmarks" msgid="3714785165273314490">"andika alamisho na historia ya wavuti"</string>
<string name="permdesc_writeHistoryBookmarks" product="tablet" msgid="1757103804824209530">"Inaruhusu programu kurekebisha historia ya Kivinjari au alamisho zilizohifadhiwa katika kompyuta yako kibao. Programu hasidi zinaweza kutumia hii kufuta au kurekebisha data ya Kivinjari chako."</string>
<string name="permdesc_writeHistoryBookmarks" product="default" msgid="6693764355720719197">"Inaruhusu programu kurekebisha historia au alamisho za Kivinjari zilizohifadhiwa katika simu yako. Programu hasidi zinaweza kutumia hii kufuta au kurekebisha data ya Kivinjari chako."</string>
- <!-- no translation found for permlab_setAlarm (1379294556362091814) -->
- <skip />
+ <string name="permlab_setAlarm" msgid="1379294556362091814">"weka kengele"</string>
<string name="permdesc_setAlarm" msgid="316392039157473848">"Inaruhusu programu kuweka kengele katika programu iliyosakinishwa ya kengele. Programu zingine za kengele zinawezakosa kutekeleza kipengee hiki."</string>
<string name="permlab_addVoicemail" msgid="5525660026090959044">"ongeza barua ya sauti"</string>
<string name="permdesc_addVoicemail" msgid="6604508651428252437">"Inaruhusu programu kuongeza jumbe kwenye kikasha cha ujumbe wa sauti."</string>
diff --git a/core/res/res/values-sw600dp/dimens.xml b/core/res/res/values-sw600dp/dimens.xml
index 4514760..f8f865e 100644
--- a/core/res/res/values-sw600dp/dimens.xml
+++ b/core/res/res/values-sw600dp/dimens.xml
@@ -64,10 +64,10 @@
<!-- The platform's desired fixed width for a dialog along the major axis
(the screen is in landscape). This may be either a fraction or a dimension.-->
- <item type="dimen" name="dialog_fixed_width_major">50%</item>
+ <item type="dimen" name="dialog_fixed_width_major">60%</item>
<!-- The platform's desired fixed width for a dialog along the minor axis
(the screen is in portrait). This may be either a fraction or a dimension.-->
- <item type="dimen" name="dialog_fixed_width_minor">70%</item>
+ <item type="dimen" name="dialog_fixed_width_minor">90%</item>
<!-- The platform's desired fixed height for a dialog along the major axis
(the screen is in portrait). This may be either a fraction or a dimension.-->
<item type="dimen" name="dialog_fixed_height_major">60%</item>
diff --git a/core/res/res/values-sw720dp/dimens.xml b/core/res/res/values-sw720dp/dimens.xml
index cac5aab..bbbfaae 100644
--- a/core/res/res/values-sw720dp/dimens.xml
+++ b/core/res/res/values-sw720dp/dimens.xml
@@ -20,6 +20,20 @@
<!-- Height of the bottom navigation bar in portrait; on sw720dp devices
this is the same as the height in landscape -->
<dimen name="navigation_bar_height_portrait">@dimen/navigation_bar_height</dimen>
+
+ <!-- The platform's desired fixed width for a dialog along the major axis
+ (the screen is in landscape). This may be either a fraction or a dimension.-->
+ <item type="dimen" name="dialog_fixed_width_major">50%</item>
+ <!-- The platform's desired fixed width for a dialog along the minor axis
+ (the screen is in portrait). This may be either a fraction or a dimension.-->
+ <item type="dimen" name="dialog_fixed_width_minor">70%</item>
+ <!-- The platform's desired fixed height for a dialog along the major axis
+ (the screen is in portrait). This may be either a fraction or a dimension.-->
+ <item type="dimen" name="dialog_fixed_height_major">60%</item>
+ <!-- The platform's desired fixed height for a dialog along the minor axis
+ (the screen is in landscape). This may be either a fraction or a dimension.-->
+ <item type="dimen" name="dialog_fixed_height_minor">90%</item>
+
</resources>
diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml
index ec67285..ae5e9ce 100644
--- a/core/res/res/values-th/strings.xml
+++ b/core/res/res/values-th/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"ข้อความของคุณ"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"อ่านและเขียน SMS อีเมล และข้อความอื่นๆ ของคุณ"</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"ข้อมูลส่วนบุคคลของคุณ"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"การเข้าถึงสมุดโทรศัพท์และปฏิทินที่จัดเก็บอยู่บนแท็บเล็ตโดยตรง"</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"เข้าถึงที่อยู่ติดต่อและปฏิทินของที่จัดเก็บบนโทรศัพท์โดยตรง"</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"ตำแหน่งของคุณ"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"ตรวจดูตำแหน่งทางกายภาพของคุณ"</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"การสื่อสารของเครือข่าย"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"เข้าถึงคุณลักษณะเครือข่ายต่างๆ"</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"บัญชีของคุณ"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"เข้าถึงบัญชีที่ใช้งานได้"</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"การควบคุมฮาร์ดแวร์"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"การเข้าถึงและควบคุมของระบบในระดับต่ำ"</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"เครื่องมือในการพัฒนา"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"คุณลักษณะที่จำเป็นสำหรับนักพัฒนาแอปพลิเคชันเท่านั้น"</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"พื้นที่เก็บข้อมูล"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"เข้าถึงที่เก็บข้อมูล USB"</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"เข้าถึงการ์ด SD"</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"ไม่มีซิมการ์ดในโทรศัพท์"</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"ใส่ซิมการ์ด"</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"ไม่มีซิมการ์ดหรือไม่สามารถอ่านได้ โปรดใส่ซิมการ์ด"</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"ซิมการ์ดของคุณถูกปิดใช้งานอย่างถาวร"\n"ติดต่อผู้ให้บริการไร้สายของคุณเพื่อรับซิมการ์ดอีกอันหนึ่ง"</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"ปุ่มแทร็กก่อนหน้า"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"ปุ่มแทร็กถัดไป"</string>
diff --git a/core/res/res/values-tl/strings.xml b/core/res/res/values-tl/strings.xml
index 274b2ae..ed3253a 100644
--- a/core/res/res/values-tl/strings.xml
+++ b/core/res/res/values-tl/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"Iyong mga mensahe"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"Basahin at isulat ang iyong SMS, e-mail, at iba pang mga mensahe."</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"Iyong personal na impormasyon"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"Direktang access sa iyong mga contact at kalendaryong nakaimbak sa tablet."</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"Direktang access sa iyong mga contact at kalendaryong nakaimbak sa telepono."</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"Iyong lokasyon"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"Subaybayan ang iyong pisikal na lokasyon."</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"Pakikipag-ugnay sa network"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"Mag-access ng iba\'t ibang mga tampok ng network."</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"Iyong mga account"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"I-access ang mga available na account."</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"Mga kontrol ng hardware"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Mas mababang antas na access at kontrol ng system."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Mga tool na pang-develop"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"Kinakailangan lamang ang mga tampok para sa mga developer ng app."</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"Imbakan"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"I-access ang imbakan na USB."</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"I-access ang SD card."</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"Walang SIM card sa telepono."</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"Maglagay ng isang SIM card."</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"Nawawala o hindi nababasa ang SIM card. Maglagay ng isang SIM card."</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Ang iyong SIM card ay permanenteng hindi pinagana."\n" Makipag-ugnay sa iyong wireless service provider para sa isa pang SIM card."</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Button na nakaraang track"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Button na Susunod na track"</string>
diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml
index 6890db0..750b37b 100644
--- a/core/res/res/values-tr/strings.xml
+++ b/core/res/res/values-tr/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"Mesajlarınız"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"SMS mesajlarınızı, e-posta iletilerinizi ve diğer mesajlarınızı okuyup yazma."</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"Kişisel bilgileriniz"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"Tabletinizde depolanan kişilere ve takvime doğrudan erişim."</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"Telefonunuzda depolanan kişilere ve takvime doğrudan erişim."</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"Konumunuz"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"Fiziksel konumunuzu izleme."</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"Ağ iletişimi"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"Çeşitli ağ özelliklerine erişme."</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"Hesaplarınız"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"Kullanılabilir hesaplara erişin."</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"Donanım denetimleri"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Sisteme alt düzey erişim ve denetimi."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Geliştirme araçları"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"Yalnızca uygulama geliştiriciler için gerekli özellikler."</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"Depolama"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"Payl depolama birimine erişin."</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"SD karta erişin."</string>
@@ -218,7 +286,7 @@
<string name="permlab_getTasks" msgid="6466095396623933906">"çalışan uygulamaları al"</string>
<string name="permdesc_getTasks" msgid="6608159250520381359">"Uygulamaya, şu anda çalışmakta olan ve son çalışan işlemler hakkında bilgi alma izni verir. Kötü amaçlı uygulamalar diğer uygulamalar hakkında özel bilgileri ele geçirebilir."</string>
<string name="permlab_getDetailedTasks" msgid="6229468674753529501">"çalışan uygulamaların ayrıntılarını al"</string>
- <string name="permdesc_getDetailedTasks" msgid="153824741440717599">"Uygulamaya, şu anda çalışmakta olan ve son çalışan işlemler hakkında ayrıntılı bilgi alma izni verir. Kötü amaçlı uygulamalar diğer uygulamalar hakkında özel bilgileri ele geçirebilir."</string>
+ <string name="permdesc_getDetailedTasks" msgid="153824741440717599">"Uygulamaya, şu anda çalışmakta olan ve son çalışan işlemler hakkında ayrıntılı bilgi alma izni verir. Kötü amaçlı uygulamalar diğer uygulamalar hakkında gizli bilgileri ele geçirebilir."</string>
<string name="permlab_reorderTasks" msgid="2018575526934422779">"çalışan uygulamaları yeniden sırala"</string>
<string name="permdesc_reorderTasks" msgid="4175137612205663399">"Uygulamaya, görevleri ön plana ve arka plana taşıma izni verir. Kötü amaçlı uygulamalar kendilerini sizin denetiminiz dışında ön plana taşıyabilir."</string>
<string name="permlab_removeTasks" msgid="6821513401870377403">"çalışan uygulamaları durdur"</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"Telefonda SIM kart yok."</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"SIM kartı takın."</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM kart yok veya okunamıyor. Bir SIM kart takın."</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"SIM kartınız kalıcı olarak devre dışı bırakıldı."\n" Başka bir SIM kart için kablosuz servis sağlayıcınıza başvurun."</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Önceki parça düğmesi"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Sonraki parça düğmesi"</string>
diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml
index 7c0bd06..17f0b26 100644
--- a/core/res/res/values-uk/strings.xml
+++ b/core/res/res/values-uk/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"Ваші повідомл."</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"Читати та писати в SMS, електронні листи й інші повідомлення."</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"Ваша особиста інформація"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"Прямий доступ до контактів і календаря, збережених у пристрої."</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"Прямий доступ до ваших контактів і календаря, збереж. у телефоні."</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"Ваше місцезнаходження"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"Відстежувати ваше фізичне місцезнаходження."</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"Підключення до мережі"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"Отримувати доступ до різних функцій мережі."</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"Ваші облікові записи"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"Доступ до доступних обл. записів."</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"Керув. апар. забезп."</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Контроль і доступ до системи на нижчому рівні."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Інструм. розробника"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"Функції, потрібні лише для розробників програм."</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"Зберігання"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"Отрим. доступу до носія USB."</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"Доступ до карти SD."</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"У тел. немає SIM-карти."</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"Вставте SIM-карту."</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM-карта відсутня або недоступна для читання. Вставте SIM-карту."</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Вашу SIM-карту вимкнено назавжди."\n" Зверніться до свого постачальника послуг бездротового зв’язку, щоб отримати іншу SIM-карту."</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Кнопка \"Попередня доріжка\""</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Кнопка \"Наступна доріжка\""</string>
diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml
index 5b8296a..a8fb561 100644
--- a/core/res/res/values-vi/strings.xml
+++ b/core/res/res/values-vi/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"Tin nhắn của bạn"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"Đọc và soạn SMS, email và các tin nhắn khác của bạn."</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"Thông tin cá nhân của bạn"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"Quyền truy cập trực tiếp vào danh bạ và lịch của bạn được lưu trữ trên máy tính bảng."</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"Quyền truy cập trực tiếp vào danh bạ và lịch của bạn được lưu trữ trên điện thoại."</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"Vị trí của bạn"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"Giám sát vị trí thực của bạn."</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"Kết nối mạng"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"Truy cập các tính năng mạng khác nhau."</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"Tài khoản của bạn"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"Truy cập các tài khoản khả dụng."</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"Kiểm soát phần cứng"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Quyền truy cập và quyền kiểm soát hệ thống cấp thấp hơn."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Công cụ phát triển"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"Các tính năng chỉ cần cho nhà phát triển ứng dụng."</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"Dung lượng"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"Truy cập bộ nhớ USB."</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"Truy cập thẻ SD."</string>
@@ -193,14 +261,11 @@
<string name="permdesc_statusBarService" msgid="716113660795976060">"Cho phép ứng dụng trở thành thanh trạng thái."</string>
<string name="permlab_expandStatusBar" msgid="1148198785937489264">"mở rộng/thu gọn thanh trạng thái"</string>
<string name="permdesc_expandStatusBar" msgid="6917549437129401132">"Cho phép ứng dụng mở rộng hoặc thu gọn thanh trạng thái."</string>
- <!-- no translation found for permlab_processOutgoingCalls (3906007831192990946) -->
- <skip />
+ <string name="permlab_processOutgoingCalls" msgid="3906007831192990946">"định tuyến lại cuộc gọi đi"</string>
<string name="permdesc_processOutgoingCalls" msgid="1152111671618301044">"Cho phép ứng dụng xử lý cuộc gọi đi và thay đổi số được gọi. Ứng dụng độc hại có thể theo dõi, chuyển hướng hoặc chặn cuộc gọi đi."</string>
- <!-- no translation found for permlab_receiveSms (8673471768947895082) -->
- <skip />
+ <string name="permlab_receiveSms" msgid="8673471768947895082">"nhận tin nhắn văn bản (SMS)"</string>
<string name="permdesc_receiveSms" msgid="8107887121893611793">"Cho phép ứng dụng nhận và xử lý tin nhắn SMS. Ứng dụng độc hại có thể giám sát tin nhắn của bạn hoặc xóa tin nhắn mà không hiển thị chúng cho bạn."</string>
- <!-- no translation found for permlab_receiveMms (1821317344668257098) -->
- <skip />
+ <string name="permlab_receiveMms" msgid="1821317344668257098">"nhận tin nhắn văn bản (MMS)"</string>
<string name="permdesc_receiveMms" msgid="1424805308566612086">"Cho phép ứng dụng nhận và xử lý tin nhắn MMS. Ứng dụng độc hại có thể theo dõi tin nhắn của bạn hoặc xóa tin nhắn mà không hiển thị chúng cho bạn."</string>
<string name="permlab_receiveEmergencyBroadcast" msgid="1803477660846288089">"nhận các truyền phát khẩn cấp"</string>
<string name="permdesc_receiveEmergencyBroadcast" msgid="848524070262431974">"Cho phép ứng dụng nhận và xử lý tin nhắn truyền phát khẩn cấp. Quyền này chỉ sẵn có cho các ứng dụng hệ thống."</string>
@@ -210,16 +275,13 @@
<string name="permdesc_sendSms" msgid="906546667507626156">"Cho phép ứng dụng gửi tin nhắn SMS. Ứng dụng độc hại có thể khiến bạn tốn tiền bằng cách gửi tin nhắn mà không cần xác nhận của bạn."</string>
<string name="permlab_sendSmsNoConfirmation" msgid="4781483105951730228">"gửi tin nhắn SMS mà không cần xác nhận"</string>
<string name="permdesc_sendSmsNoConfirmation" msgid="3437759207020400204">"Cho phép ứng dụng gửi tin nhắn SMS. Ứng dụng độc hại có thể khiến bạn bị mất tiền khi gửi tin nhắn mà không có xác nhận của bạn."</string>
- <!-- no translation found for permlab_readSms (8745086572213270480) -->
- <skip />
+ <string name="permlab_readSms" msgid="8745086572213270480">"đọc tin nhắn văn bản của bạn (SMS hoặc MMS)"</string>
<string name="permdesc_readSms" product="tablet" msgid="2341692916884515613">"Cho phép ứng dụng đọc tin nhắn SMS được lưu trữ trên máy tính bảng hoặc thẻ SIM của bạn. Ứng dụng độc hại có thể đọc các tin nhắn bí mật của bạn."</string>
<string name="permdesc_readSms" product="default" msgid="5653850482025875493">"Cho phép ứng dụng đọc tin nhắn SMS được lưu trữ trên điện thoại hoặc thẻ SIM của bạn. Ứng dụng độc hại có thể đọc các tin nhắn bí mật của bạn."</string>
- <!-- no translation found for permlab_writeSms (3216950472636214774) -->
- <skip />
+ <string name="permlab_writeSms" msgid="3216950472636214774">"chỉnh sửa tin nhắn văn bản của bạn (SMS hoặc MMS)"</string>
<string name="permdesc_writeSms" product="tablet" msgid="5160413947794501538">"Cho phép ứng dụng ghi vào tin nhắn SMS được lưu trữ trên máy tính bảng hoặc thẻ SIM của bạn. Ứng dụng độc hại có thể xóa tin nhắn của bạn."</string>
<string name="permdesc_writeSms" product="default" msgid="7268668709052328567">"Cho phép ứng dụng ghi vào tin nhắn SMS được lưu trữ trên điện thoại hoặc thẻ SIM của bạn. Ứng dụng độc hại có thể xóa tin nhắn của bạn."</string>
- <!-- no translation found for permlab_receiveWapPush (5991398711936590410) -->
- <skip />
+ <string name="permlab_receiveWapPush" msgid="5991398711936590410">"nhận tin nhắn văn bản (WAP)"</string>
<string name="permdesc_receiveWapPush" msgid="7983455145335316872">"Cho phép ứng dụng nhận và xử lý tin nhắn WAP. Ứng dụng độc hại có thể giám sát tin nhắn của bạn hoặc xóa tin nhắn mà không hiển thị chúng cho bạn."</string>
<string name="permlab_getTasks" msgid="6466095396623933906">"truy xuất các ứng dụng đang chạy"</string>
<string name="permdesc_getTasks" msgid="6608159250520381359">"Cho phép ứng dụng truy xuất thông tin về các công việc đã và đang chạy gần đây. Ứng dụng độc hại có thể phát hiện thông tin riêng tư về các ứng dụng khác."</string>
@@ -235,13 +297,11 @@
<string name="permdesc_setScreenCompatibility" msgid="692043618693917374">"Cho phép ứng dụng kiểm soát chế độ tương thích màn hình của ứng dụng khác. Các ứng dụng độc hại có thể phá vỡ hoạt động của các ứng dụng khác."</string>
<string name="permlab_setDebugApp" msgid="3022107198686584052">"bật gỡ lỗi ứng dụng"</string>
<string name="permdesc_setDebugApp" msgid="4474512416299013256">"Cho phép ứng dụng bật gỡ lỗi cho một ứng dụng khác. Ứng dụng độc hại có thể sử dụng quyền này để loại bỏ những ứng dụng khác."</string>
- <!-- no translation found for permlab_changeConfiguration (4162092185124234480) -->
- <skip />
+ <string name="permlab_changeConfiguration" msgid="4162092185124234480">"thay đổi cài đặt hiển thị hệ thống"</string>
<string name="permdesc_changeConfiguration" msgid="4372223873154296076">"Cho phép ứng dụng thay đổi cấu hình hiện tại, chẳng hạn như ngôn ngữ hoặc kích thước phông chữ chung."</string>
<string name="permlab_enableCarMode" msgid="5684504058192921098">"bật chế độ trên ô tô"</string>
<string name="permdesc_enableCarMode" msgid="4853187425751419467">"Cho phép ứng dụng bật chế độ trên ô tô."</string>
- <!-- no translation found for permlab_killBackgroundProcesses (3914026687420177202) -->
- <skip />
+ <string name="permlab_killBackgroundProcesses" msgid="3914026687420177202">"đóng ứng dụng khác"</string>
<string name="permdesc_killBackgroundProcesses" msgid="931129103262126617">"Cho phép ứng dụng loại bỏ các quá trình ở nền sau của ứng dụng khác, ngay cả khi không thiếu dung lượng bộ nhớ."</string>
<string name="permlab_forceStopPackages" msgid="2329627428832067700">"buộc dừng ứng dụng khác"</string>
<string name="permdesc_forceStopPackages" msgid="5253157296183940812">"Cho phép ứng dụng buộc dừng ứng dụng khác."</string>
@@ -265,8 +325,7 @@
<string name="permdesc_broadcastWapPush" msgid="4783402525039442729">"Cho phép ứng dụng truyền phát thông báo cho biết rằng đã nhận được tin nhắn WAP PUSH. Ứng dụng độc hại có thể sử dụng quyền này để giả mạo xác nhận đã nhận được tin nhắn MMS hoặc ngầm thay thế nội dung của bất kỳ trang web nào bằng các biến thể độc hại."</string>
<string name="permlab_setProcessLimit" msgid="2451873664363662666">"giới hạn số quá trình đang chạy"</string>
<string name="permdesc_setProcessLimit" msgid="7318061314040879542">"Cho phép ứng dụng kiểm soát số quy trình tối đa sẽ chạy. Không cần thiết cho các ứng dụng thông thường."</string>
- <!-- no translation found for permlab_setAlwaysFinish (550958507798796965) -->
- <skip />
+ <string name="permlab_setAlwaysFinish" msgid="550958507798796965">"buộc ứng dụng nền đóng"</string>
<string name="permdesc_setAlwaysFinish" msgid="7471310652868841499">"Cho phép ứng dụng kiểm soát xem các hoạt động có luôn hoàn tất ngay khi chúng chuyển sang nền sau hay không. Không cần thiết cho các ứng dụng thông thường."</string>
<string name="permlab_batteryStats" msgid="7863923071360031652">"sửa đổi thống kê về pin"</string>
<string name="permdesc_batteryStats" msgid="6835186932305744068">"Cho phép ứng dụng sửa đổi các số liệu thống kê về pin đã được thu thập. Không dành cho các ứng dụng thông thường."</string>
@@ -276,8 +335,7 @@
<string name="permdesc_confirm_full_backup" msgid="1748762171637699562">"Cho phép ứng dụng khởi chạy UI xác nhận sao lưu toàn bộ. Không dành cho bất kỳ ứng dụng nào."</string>
<string name="permlab_internalSystemWindow" msgid="2148563628140193231">"hiển thị các cửa sổ trái phép"</string>
<string name="permdesc_internalSystemWindow" msgid="7458387759461466397">"Cho phép ứng dụng tạo các cửa sổ dùng cho giao diện người dùng hệ thống nội bộ. Không dành cho các ứng dụng thông thường."</string>
- <!-- no translation found for permlab_systemAlertWindow (3543347980839518613) -->
- <skip />
+ <string name="permlab_systemAlertWindow" msgid="3543347980839518613">"vẽ trên ứng dụng khác"</string>
<string name="permdesc_systemAlertWindow" msgid="8507863469978066409">"Cho phép ứng dụng hiển thị các cửa sổ thông báo hệ thống. Ứng dụng độc hại có thể kiểm soát toàn bộ màn hình."</string>
<string name="permlab_setAnimationScale" msgid="2805103241153907174">"sửa đổi tốc độ hoạt ảnh chung"</string>
<string name="permdesc_setAnimationScale" msgid="7690063428924343571">"Cho phép ứng dụng thay đổi tốc độ hoạt ảnh nói chung (hoạt ảnh nhanh hơn hoặc chậm hơn) bất cứ lúc nào."</string>
@@ -339,26 +397,22 @@
<string name="permdesc_grantRevokePermissions" msgid="4088642654085850662">"Cho phép ứng dụng cấp hoặc thu hồi quyền cụ thể đối với ứng dụng đó hoặc các ứng dụng khác. Các ứng dụng độc hại có thể lợi dụng điều này để truy cập các tính năng mà bạn không cấp."</string>
<string name="permlab_setPreferredApplications" msgid="8463181628695396391">"đặt ứng dụng ưa thích"</string>
<string name="permdesc_setPreferredApplications" msgid="4973986762241783712">"Cho phép ứng dụng sửa đổi ứng dụng ưa thích của bạn. Ứng dụng độc hại có thể ngầm thay đổi các ứng dụng đã được chạy, giả mạo các ứng dụng hiện có để thu thập dữ liệu cá nhân của bạn."</string>
- <!-- no translation found for permlab_writeSettings (2226195290955224730) -->
- <skip />
+ <string name="permlab_writeSettings" msgid="2226195290955224730">"sửa đổi cài đặt hệ thống"</string>
<string name="permdesc_writeSettings" msgid="7775723441558907181">"Cho phép ứng dụng sửa đổi dữ liệu cài đặt của hệ thống. Ứng dụng độc hại có thể làm hỏng cấu hình hệ thống của bạn."</string>
<string name="permlab_writeSecureSettings" msgid="204676251876718288">"sửa đổi cài đặt hệ thống bảo mật"</string>
<string name="permdesc_writeSecureSettings" msgid="8159535613020137391">"Cho phép ứng dụng sửa đổi dữ liệu cài đặt bảo mật của hệ thống. Không dành cho các ứng dụng thông thường."</string>
<string name="permlab_writeGservices" msgid="2149426664226152185">"sửa đổi bản đồ dịch vụ của Google"</string>
<string name="permdesc_writeGservices" msgid="1287309437638380229">"Cho phép ứng dụng sửa đổi bản đồ dịch vụ của Google. Không dành cho ứng dụng thông thường."</string>
- <!-- no translation found for permlab_receiveBootCompleted (5312965565987800025) -->
- <skip />
+ <string name="permlab_receiveBootCompleted" msgid="5312965565987800025">"chạy khi khởi động"</string>
<string name="permdesc_receiveBootCompleted" product="tablet" msgid="7390304664116880704">"Cho phép ứng dụng tự khởi chạy ngay khi hệ thống khởi động xong. Quyền này có thể khiến máy tính bảng mất nhiều thời gian khởi động hơn và cho phép ứng dụng làm chậm toàn bộ máy tính bảng do ứng dụng luôn chạy."</string>
<string name="permdesc_receiveBootCompleted" product="default" msgid="513950589102617504">"Cho phép ứng dụng tự khởi chạy ngay khi hệ thống khởi động xong. Quyền này có thể khiến điện thoại mất nhiều thời gian khởi động hơn và cho phép ứng dụng làm chậm toàn bộ điện thoại do ứng dụng luôn chạy."</string>
<string name="permlab_broadcastSticky" msgid="7919126372606881614">"gửi truyền phát hấp dẫn người xem"</string>
<string name="permdesc_broadcastSticky" product="tablet" msgid="1181582512022829259">"Cho phép ứng dụng gửi nội dung truyền phát hấp dẫn người xem. Nội dung này sẽ vẫn còn sau khi quá trình truyền phát kết thúc. Ứng dụng độc hại có thể làm cho máy tính bảng bị chậm hoặc không ổn định bằng cách khiến máy tính bảng sử dụng quá nhiều bộ nhớ."</string>
<string name="permdesc_broadcastSticky" product="default" msgid="3287869131621514325">"Cho phép ứng dụng gửi nội dung truyền phát hấp dẫn người xem. Nội dung này sẽ vẫn còn sau khi quá trình truyền phát kết thúc. Ứng dụng độc hại có thể làm cho điện thoại bị chậm hoặc không ổn định bằng cách khiến điện thoại sử dụng quá nhiều bộ nhớ."</string>
- <!-- no translation found for permlab_readContacts (8348481131899886131) -->
- <skip />
+ <string name="permlab_readContacts" msgid="8348481131899886131">"đọc danh sách liên hệ của bạn"</string>
<string name="permdesc_readContacts" product="tablet" msgid="6370069055638209432">"Cho phép ứng dụng đọc tất cả dữ liệu về các liên hệ được lưu trữ trên máy tính bảng của bạn, bao gồm cả các liên hệ mà bạn thường xuyên gọi, gửi email hoặc liên lạc theo các cách khác với các cá nhân cụ thể. Việc này giúp ích cho tính năng tự động hoàn tất địa chỉ email và các tính năng tiện lợi khác. Các ứng dụng độc hại có thể sử dụng quyền này để gửi dữ liệu liên hệ của bạn cho những người khác."</string>
<string name="permdesc_readContacts" product="default" msgid="4093353182535351501">"Cho phép ứng dụng đọc tất cả dữ liệu về các liên hệ được lưu trữ trên điện thoại của bạn, bao gồm cả các liên hệ mà bạn thường xuyên gọi, gửi email hoặc liên lạc theo các cách khác với các cá nhân cụ thể. Việc này giúp ích cho tính năng tự động hoàn tất địa chỉ email và các tính năng tiện lợi khác. Các ứng dụng độc hại có thể sử dụng quyền này để gửi dữ liệu liên hệ của bạn cho những người khác."</string>
- <!-- no translation found for permlab_writeContacts (5107492086416793544) -->
- <skip />
+ <string name="permlab_writeContacts" msgid="5107492086416793544">"sửa đổi danh sách liên hệ của bạn"</string>
<string name="permdesc_writeContacts" product="tablet" msgid="5495863352173533286">"Cho phép ứng dụng sửa đổi dữ liệu về các liên hệ được lưu trữ trên máy tính bảng của bạn, bao gồm cả các liên hệ mà bạn thường xuyên gọi, gửi email hoặc liên lạc theo các cách khác với các cá nhân cụ thể. Việc này giúp ích cho tính năng tự động hoàn tất địa chỉ email và các tính năng tiện lợi khác. Các ứng dụng độc hại có thể sử dụng quyền này để xóa hoặc sửa đổi dữ liệu liên hệ của bạn."</string>
<string name="permdesc_writeContacts" product="default" msgid="6108469962248865715">"Cho phép ứng dụng sửa đổi dữ liệu về các liên hệ được lưu trữ trên điện thoại của bạn, bao gồm cả các liên hệ mà bạn thường xuyên gọi, gửi email hoặc liên lạc theo các cách khác với các cá nhân cụ thể. Việc này giúp ích cho tính năng tự động hoàn tất địa chỉ email và các tính năng tiện lợi khác. Các ứng dụng độc hại có thể sử dụng quyền này để xóa hoặc sửa đổi dữ liệu liên hệ của bạn."</string>
<string name="permlab_readCallLog" msgid="3478133184624102739">"đọc nhật ký cuộc gọi"</string>
@@ -367,11 +421,9 @@
<string name="permlab_writeCallLog" msgid="8552045664743499354">"ghi nhật ký cuộc gọi"</string>
<string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Cho phép ứng dụng sửa đổi nhật ký cuộc gọi trên máy tính bảng của bạn, bao gồm dữ liệu về các cuộc gọi đến và gọi đi. Các ứng dụng độc hại có thể sử dụng quyền này để xóa hoặc sửa đổi nhật ký cuộc gọi của bạn."</string>
<string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Cho phép ứng dụng sửa đổi nhật ký cuộc gọi trên điện thoại của bạn, bao gồm dữ liệu về các cuộc gọi đến và gọi đi. Các ứng dụng độc hại có thể sử dụng quyền này để xóa hoặc sửa đổi nhật ký cuộc gọi của bạn."</string>
- <!-- no translation found for permlab_readProfile (4701889852612716678) -->
- <skip />
+ <string name="permlab_readProfile" msgid="4701889852612716678">"đọc thẻ liên hệ của riêng bạn"</string>
<string name="permdesc_readProfile" product="default" msgid="94520753797630679">"Cho phép ứng dụng đọc thông tin tiểu sử cá nhân được lưu trữ trên thiết bị, chẳng hạn như tên và thông tin liên hệ của bạn. Điều này có nghĩa là ứng dụng có thể xác định danh tính của bạn và gửi thông tin tiểu sử của bạn cho người khác."</string>
- <!-- no translation found for permlab_writeProfile (907793628777397643) -->
- <skip />
+ <string name="permlab_writeProfile" msgid="907793628777397643">"sửa đổi thẻ liên hệ của riêng bạn"</string>
<string name="permdesc_writeProfile" product="default" msgid="4637366723793045603">"Cho phép ứng dụng thay đổi hoặc thêm vào thông tin tiểu sử cá nhân được lưu trữ trên thiết bị, chẳng hạn như tên và thông tin liên hệ của bạn. Điều này có nghĩa là các ứng dụng khác có thể xác định danh tính của bạn và gửi thông tin tiểu sử của bạn cho người khác."</string>
<string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"đọc luồng xã hội của bạn"</string>
<string name="permdesc_readSocialStream" product="default" msgid="3419050808547335320">"Cho phép ứng dụng truy cập và đồng bộ hóa các cập nhật xã hội của bạn và bạn bè bạn. Ứng dụng độc hại có thể sử dụng quyền này để đọc thông tin liên lạc cá nhân giữa bạn và bạn bè bạn trên các mạng xã hội."</string>
@@ -412,15 +464,11 @@
<string name="permlab_reboot" product="default" msgid="2898560872462638242">"buộc khởi động lại điện thoại"</string>
<string name="permdesc_reboot" product="tablet" msgid="8172056180063700741">"Cho phép ứng dụng buộc máy tính bảng khởi động lại."</string>
<string name="permdesc_reboot" product="default" msgid="5326008124289989969">"Cho phép ứng dụng buộc điện thoại khởi động lại."</string>
- <!-- no translation found for permlab_mount_unmount_filesystems (2927361537942591841) -->
- <skip />
- <!-- no translation found for permlab_mount_unmount_filesystems (4402305049890953810) -->
- <skip />
+ <string name="permlab_mount_unmount_filesystems" product="nosdcard" msgid="2927361537942591841">"truy cập hệ thống tệp của bộ lưu trữ USB"</string>
+ <string name="permlab_mount_unmount_filesystems" product="default" msgid="4402305049890953810">"truy cập hệ thống tệp Thẻ SD"</string>
<string name="permdesc_mount_unmount_filesystems" msgid="1829290701658992347">"Cho phép ứng dụng cài và gỡ các hệ thống tệp của bộ nhớ di động."</string>
- <!-- no translation found for permlab_mount_format_filesystems (6227819582624904972) -->
- <skip />
- <!-- no translation found for permlab_mount_format_filesystems (262582698639274056) -->
- <skip />
+ <string name="permlab_mount_format_filesystems" product="nosdcard" msgid="6227819582624904972">"xóa bộ lưu trữ USB"</string>
+ <string name="permlab_mount_format_filesystems" product="default" msgid="262582698639274056">"xóa Thẻ SD"</string>
<string name="permdesc_mount_format_filesystems" msgid="8784268246779198627">"Cho phép ứng dụng định dạng bộ nhớ di động."</string>
<string name="permlab_asec_access" msgid="3411338632002193846">"nhận thông tin trên bộ nhớ trong"</string>
<string name="permdesc_asec_access" msgid="3094563844593878548">"Cho phép ứng dụng lấy thông tin trên bộ nhớ trong."</string>
@@ -432,8 +480,7 @@
<string name="permdesc_asec_mount_unmount" msgid="3451360114902490929">"Cho phép ứng dụng kết nối/ngắt kết nối bộ nhớ trong."</string>
<string name="permlab_asec_rename" msgid="7496633954080472417">"đổi tên bộ nhớ trong"</string>
<string name="permdesc_asec_rename" msgid="1794757588472127675">"Cho phép ứng dụng đổi tên bộ nhớ trong."</string>
- <!-- no translation found for permlab_vibrate (7696427026057705834) -->
- <skip />
+ <string name="permlab_vibrate" msgid="7696427026057705834">"kiểm soát rung"</string>
<string name="permdesc_vibrate" msgid="6284989245902300945">"Cho phép ứng dụng kiểm soát bộ rung."</string>
<string name="permlab_flashlight" msgid="2155920810121984215">"kiểm soát đèn nháy"</string>
<string name="permdesc_flashlight" msgid="6522284794568368310">"Cho phép ứng dụng kiểm soát đèn nháy."</string>
@@ -458,8 +505,7 @@
<string name="permdesc_bindGadget" msgid="8261326938599049290">"Cho phép ứng dụng thông báo cho hệ thống biết tiện ích con nào có thể được sử dụng bởi ứng dụng nào. Với quyền này, ứng dụng có thể cấp quyền truy cập vào dữ liệu cá nhân cho các ứng dụng khác. Không dành cho các ứng dụng thông thường."</string>
<string name="permlab_modifyPhoneState" msgid="8423923777659292228">"sửa đổi trạng thái điện thoại"</string>
<string name="permdesc_modifyPhoneState" msgid="1029877529007686732">"Cho phép ứng dụng kiểm soát các tính năng điện thoại của thiết bị. Ứng dụng có quyền này có thể chuyển đổi mạng, bật và tắt radio điện thoại cũng như thực hiện các tác vụ tương tự mà không cần thông báo cho bạn."</string>
- <!-- no translation found for permlab_readPhoneState (9178228524507610486) -->
- <skip />
+ <string name="permlab_readPhoneState" msgid="9178228524507610486">"đọc trạng thái và nhận dạng của điện thoại"</string>
<string name="permdesc_readPhoneState" msgid="5127767618743602782">"Cho phép ứng dụng truy cập vào các tính năng điện thoại của thiết bị. Ứng dụng có quyền này có thể xác định số điện thoại và số sêri của điện thoại này, cho dù cuộc gọi có hiện hoạt hay không, số mà cuộc gọi đó được kết nối và các thông tin tương tự."</string>
<string name="permlab_wakeLock" product="tablet" msgid="1531731435011495015">"ngăn máy tính bảng chuyển sang chế độ ngủ"</string>
<string name="permlab_wakeLock" product="default" msgid="573480187941496130">"ngăn điện thoại chuyển sang chế độ ngủ"</string>
@@ -474,8 +520,7 @@
<string name="permdesc_factoryTest" product="default" msgid="8136644990319244802">"Chạy dưới dạng thử nghiệm nhà máy cấp thấp, cho phép quyền truy cập hoàn toàn vào phần cứng điện thoại. Chỉ khả dụng khi điện thoại chạy ở chế độ thử nghiệm trong nhà máy."</string>
<string name="permlab_setWallpaper" msgid="6627192333373465143">"đặt hình nền"</string>
<string name="permdesc_setWallpaper" msgid="7373447920977624745">"Cho phép ứng dụng đặt hình nền hệ thống."</string>
- <!-- no translation found for permlab_setWallpaperHints (3278608165977736538) -->
- <skip />
+ <string name="permlab_setWallpaperHints" msgid="3278608165977736538">"điều chỉnh kích thước hình nền của bạn"</string>
<string name="permdesc_setWallpaperHints" msgid="8235784384223730091">"Cho phép ứng dụng đặt gợi ý kích thước hình nền của hệ thống."</string>
<string name="permlab_masterClear" msgid="2315750423139697397">"đặt lại hệ thống về mặc định ban đầu"</string>
<string name="permdesc_masterClear" msgid="3665380492633910226">"Cho phép ứng dụng đặt lại toàn bộ hệ thống về cài đặt ban đầu, xóa tất cả dữ liệu, cấu hình và ứng dụng đã cài đặt."</string>
@@ -487,21 +532,16 @@
<string name="permdesc_setTimeZone" product="default" msgid="4499943488436633398">"Cho phép ứng dụng thay đổi múi giờ của điện thoại."</string>
<string name="permlab_accountManagerService" msgid="4829262349691386986">"hoạt động như AccountManagerService"</string>
<string name="permdesc_accountManagerService" msgid="1948455552333615954">"Cho phép ứng dụng thực hiện cuộc gọi đến AccountAuthenticators."</string>
- <!-- no translation found for permlab_getAccounts (1086795467760122114) -->
- <skip />
+ <string name="permlab_getAccounts" msgid="1086795467760122114">"tìm tài khoản trên thiết bị"</string>
<string name="permdesc_getAccounts" product="tablet" msgid="3238360555257773358">"Cho phép ứng dụng nhận danh sách các tài khoản mà máy tính bảng biết."</string>
<string name="permdesc_getAccounts" product="default" msgid="2735689364629830348">"Cho phép ứng dụng nhận danh sách các tài khoản mà điện thoại biết."</string>
- <!-- no translation found for permlab_authenticateAccounts (5265908481172736933) -->
- <skip />
+ <string name="permlab_authenticateAccounts" msgid="5265908481172736933">"tạo tài khoản và đặt mật khẩu"</string>
<string name="permdesc_authenticateAccounts" msgid="5472124296908977260">"Cho phép ứng dụng sử dụng các tính năng của trình xác thực tài khoản của AccountManager, bao gồm tạo tài khoản, nhận và đặt mật khẩu cho các tài khoản đó."</string>
- <!-- no translation found for permlab_manageAccounts (4983126304757177305) -->
- <skip />
+ <string name="permlab_manageAccounts" msgid="4983126304757177305">"thêm hoặc xóa tài khoản"</string>
<string name="permdesc_manageAccounts" msgid="8698295625488292506">"Cho phép ứng dụng thực hiện các thao tác như thêm và xóa tài khoản cũng như xóa mật khẩu của các tài khoản đó."</string>
- <!-- no translation found for permlab_useCredentials (235481396163877642) -->
- <skip />
+ <string name="permlab_useCredentials" msgid="235481396163877642">"sử dụng tài khoản trên thiết bị"</string>
<string name="permdesc_useCredentials" msgid="7984227147403346422">"Cho phép ứng dụng yêu cầu mã thông báo xác thực."</string>
- <!-- no translation found for permlab_accessNetworkState (4951027964348974773) -->
- <skip />
+ <string name="permlab_accessNetworkState" msgid="4951027964348974773">"xem kết nối mạng"</string>
<string name="permdesc_accessNetworkState" msgid="479772796952547198">"Cho phép ứng dụng xem trạng thái của tất cả các mạng."</string>
<string name="permlab_createNetworkSockets" msgid="9121633680349549585">"quyền truy cập Internet đầy đủ"</string>
<string name="permdesc_createNetworkSockets" msgid="5963922297444265950">"Cho phép ứng dụng tạo các cổng mạng."</string>
@@ -513,36 +553,29 @@
<string name="permdesc_changeTetherState" msgid="1524441344412319780">"Cho phép ứng dụng thay đổi trạng thái của kết nối mạng được dùng làm điểm truy cập Internet."</string>
<string name="permlab_changeBackgroundDataSetting" msgid="1400666012671648741">"thay đổi cài đặt sử dụng dữ liệu nền"</string>
<string name="permdesc_changeBackgroundDataSetting" msgid="5347729578468744379">"Cho phép ứng dụng thay đổi cài đặt sử dụng dữ liệu nền."</string>
- <!-- no translation found for permlab_accessWifiState (5202012949247040011) -->
- <skip />
+ <string name="permlab_accessWifiState" msgid="5202012949247040011">"xem kết nối Wi-Fi"</string>
<string name="permdesc_accessWifiState" msgid="7770452658226256831">"Cho phép ứng dụng xem thông tin về trạng thái Wi-Fi."</string>
- <!-- no translation found for permlab_changeWifiState (6550641188749128035) -->
- <skip />
+ <string name="permlab_changeWifiState" msgid="6550641188749128035">"kết nối và ngắt kết nối Wi-Fi"</string>
<string name="permdesc_changeWifiState" msgid="7399961004537946240">"Cho phép ứng dụng kết nối và ngắt kết nối khỏi điểm truy cập Wi-Fi cũng như thực hiện các thay đổi đối với mạng Wi-Fi đã được định cấu hình."</string>
<string name="permlab_changeWifiMulticastState" msgid="1368253871483254784">"cho phép thu tín hiệu Wi-Fi Đa hướng"</string>
<string name="permdesc_changeWifiMulticastState" msgid="7633598524564320817">"Cho phép ứng dụng nhận các gói không được gửi trực tiếp đến thiết bị của bạn. Quyền này có thể hữu ích khi phát hiện các dịch vụ được cung cấp gần đó. Chế độ này sử dụng nhiều năng lượng hơn chế độ không phát đa hướng."</string>
- <!-- no translation found for permlab_bluetoothAdmin (6006967373935926659) -->
- <skip />
+ <string name="permlab_bluetoothAdmin" msgid="6006967373935926659">"truy cập cài đặt Bluetooth"</string>
<string name="permdesc_bluetoothAdmin" product="tablet" msgid="6921177471748882137">"Cho phép ứng dụng định cấu hình máy tính bảng Bluetooth cục bộ cũng như phát hiện và ghép nối với các thiết bị từ xa."</string>
<string name="permdesc_bluetoothAdmin" product="default" msgid="8931682159331542137">"Cho phép ứng dụng định cấu hình điện thoại Bluetooth cục bộ cũng như phát hiện và ghép nối với các thiết bị từ xa."</string>
- <!-- no translation found for permlab_accessWimaxState (7436749103151096452) -->
- <skip />
+ <string name="permlab_accessWimaxState" msgid="7436749103151096452">"Xem kết nối WiMAX"</string>
<string name="permdesc_accessWimaxState" msgid="5914958077555177749">"Cho phép ứng dụng xem thông tin về trạng thái của WiMAX."</string>
<string name="permlab_changeWimaxState" msgid="2405042267131496579">"Thay đổi trạng thái WiMAX"</string>
<string name="permdesc_changeWimaxState" msgid="3328853825006455912">"Cho phép ứng dụng kết nối và ngắt kết nối mạng WiMAX."</string>
- <!-- no translation found for permlab_bluetooth (6127769336339276828) -->
- <skip />
+ <string name="permlab_bluetooth" msgid="6127769336339276828">"ghép nối với thiết bị Bluetooth"</string>
<string name="permdesc_bluetooth" product="tablet" msgid="7007851048416363446">"Cho phép ứng dụng xem cấu hình của máy tính bảng Bluetooth cục bộ cũng như tạo và chấp nhận các kết nối với thiết bị được ghép nối."</string>
<string name="permdesc_bluetooth" product="default" msgid="31846362767164948">"Cho phép ứng dụng xem cấu hình của điện thoại Bluetooth cục bộ cũng như tạo và chấp nhận các kết nối với thiết bị được ghép nối."</string>
<string name="permlab_nfc" msgid="4423351274757876953">"kiểm soát Liên lạc trường gần"</string>
<string name="permdesc_nfc" msgid="7120611819401789907">"Cho phép ứng dụng giao tiếp với thẻ Giao tiếp trường gần (NFC), thẻ và trình đọc."</string>
- <!-- no translation found for permlab_disableKeyguard (3598496301486439258) -->
- <skip />
+ <string name="permlab_disableKeyguard" msgid="3598496301486439258">"vô hiệu hóa khóa màn hình của bạn"</string>
<string name="permdesc_disableKeyguard" msgid="6231611286892232626">"Cho phép ứng dụng tắt khóa phím và bất kỳ bảo mật mật khẩu được liên kết nào. Ví dụ thích hợp của việc này là điện thoại tắt khóa phím khi nhận được cuộc gọi đến, sau đó bật lại khóa phím khi cuộc gọi kết thúc."</string>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"đọc cài đặt đồng bộ hóa"</string>
<string name="permdesc_readSyncSettings" msgid="5464056785274229278">"Cho phép ứng dụng đọc cài đặt đồng bộ hóa, chẳng hạn như liệu đồng bộ hóa đã được bật cho ứng dụng Liên hệ hay chưa."</string>
- <!-- no translation found for permlab_writeSyncSettings (5408694875793945314) -->
- <skip />
+ <string name="permlab_writeSyncSettings" msgid="5408694875793945314">"chuyển đổi bật và tắt đồng bộ hóa"</string>
<string name="permdesc_writeSyncSettings" msgid="1466056564502117130">"Cho phép ứng dụng sửa đổi cài đặt đồng bộ hóa, chẳng hạn như có bật đồng bộ hóa cho ứng dụng Liên hệ hay không."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"đọc thống kê đồng bộ hóa"</string>
<string name="permdesc_readSyncStats" msgid="3801971839939951678">"Cho phép ứng dụng đọc các số liệu thống kê về đồng bộ hóa; ví dụ: lịch sử đồng bộ hóa đã diễn ra."</string>
@@ -550,23 +583,16 @@
<string name="permdesc_subscribedFeedsRead" msgid="5557058907906144505">"Cho phép ứng dụng lấy thông tin chi tiết về nguồn cấp dữ liệu hiện được đồng bộ hóa."</string>
<string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"ghi nguồn cấp dữ liệu đã đăng ký"</string>
<string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Cho phép ứng dụng sửa đổi nguồn cấp dữ liệu hiện đã được đồng bộ hóa của bạn. Ứng dụng độc hại có thể thay đổi nguồn cấp dữ liệu đã đồng bộ hóa của bạn."</string>
- <!-- no translation found for permlab_readDictionary (4107101525746035718) -->
- <skip />
+ <string name="permlab_readDictionary" msgid="4107101525746035718">"đọc cụm từ bạn đã thêm vào từ điển"</string>
<string name="permdesc_readDictionary" msgid="8977815988329283705">"Cho phép ứng dụng đọc bất kỳ từ, tên và cụm từ riêng nào mà người dùng có thể đã lưu trữ trong từ điển của người dùng."</string>
<string name="permlab_writeDictionary" msgid="2296383164914812772">"ghi vào từ điển do người dùng xác định"</string>
<string name="permdesc_writeDictionary" msgid="8185385716255065291">"Cho phép ứng dụng ghi từ mới vào từ điển của người dùng."</string>
- <!-- no translation found for permlab_sdcardRead (367275095159405468) -->
- <skip />
- <!-- no translation found for permlab_sdcardRead (2188156462934977940) -->
- <skip />
- <!-- no translation found for permdesc_sdcardRead (3530894470637667917) -->
- <skip />
- <!-- no translation found for permdesc_sdcardRead (2555811422562526606) -->
- <skip />
- <!-- no translation found for permlab_sdcardWrite (8485979062254666748) -->
- <skip />
- <!-- no translation found for permlab_sdcardWrite (9084476432661578751) -->
- <skip />
+ <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"đọc nội dung của bộ lưu trữ USB của bạn"</string>
+ <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"đọc nội dung của thẻ SD của bạn"</string>
+ <string name="permdesc_sdcardRead" product="nosdcard" msgid="3530894470637667917">"Cho phép ứng dụng đọc nội dung của bộ lưu trữ USB, bộ lưu trữ này có thể bao gồm ảnh và đa phương tiện."</string>
+ <string name="permdesc_sdcardRead" product="default" msgid="2555811422562526606">"Cho phép ứng dụng đọc nội dung của thẻ SD, thẻ này có thể bao gồm ảnh và đa phương tiện."</string>
+ <string name="permlab_sdcardWrite" product="nosdcard" msgid="8485979062254666748">"sửa đổi hoặc xóa nội dung của bộ lưu trữ USB của bạn"</string>
+ <string name="permlab_sdcardWrite" product="default" msgid="9084476432661578751">"sửa đổi hoặc xóa nội dung của thẻ SD của bạn"</string>
<string name="permdesc_sdcardWrite" product="nosdcard" msgid="6175406299445710888">"Cho phép ứng dụng ghi vào bộ lưu trữ USB."</string>
<string name="permdesc_sdcardWrite" product="default" msgid="4337417790936632090">"Cho phép ứng dụng ghi vào thẻ SD."</string>
<string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"sửa đổi/xóa nội dung trên bộ nhớ phương tiện cục bộ"</string>
@@ -744,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"Không có thẻ SIM nào trong điện thoại."</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"Hãy lắp thẻ SIM."</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"Thẻ SIM bị thiếu hoặc không thể đọc được. Vui lòng lắp thẻ SIM."</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Thẻ SIM của bạn đã bị vô hiệu hóa vĩnh viễn ."\n" Hãy liên hệ với nhà cung cấp dịch vụ không dây của bạn để lấy thẻ SIM khác."</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Nút bài hát trước"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Nút bài hát tiếp theo"</string>
@@ -819,15 +847,12 @@
<string name="autofill_parish" msgid="8202206105468820057">"Giáo xứ"</string>
<string name="autofill_area" msgid="3547409050889952423">"Khu vực"</string>
<string name="autofill_emirate" msgid="2893880978835698818">"Tiểu vương quốc Ả rập"</string>
- <!-- no translation found for permlab_readHistoryBookmarks (3775265775405106983) -->
- <skip />
+ <string name="permlab_readHistoryBookmarks" msgid="3775265775405106983">"đọc lịch sử và dấu trang Web của bạn"</string>
<string name="permdesc_readHistoryBookmarks" msgid="4577476392604595921">"Cho phép ứng dụng đọc tất cả các URL mà Trình duyệt đã truy cập cũng như tất cả các dấu trang của Trình duyệt."</string>
- <!-- no translation found for permlab_writeHistoryBookmarks (3714785165273314490) -->
- <skip />
+ <string name="permlab_writeHistoryBookmarks" msgid="3714785165273314490">"viết lịch sử và dấu trang web của bạn"</string>
<string name="permdesc_writeHistoryBookmarks" product="tablet" msgid="1757103804824209530">"Cho phép ứng dụng sửa đổi lịch sử hoặc dấu trang của Trình duyệt được lưu trữ trên máy tính bảng của bạn. Ứng dụng độc hại có thể sử dụng quyền này để xóa hoặc sửa đổi dữ liệu của Trình duyệt."</string>
<string name="permdesc_writeHistoryBookmarks" product="default" msgid="6693764355720719197">"Cho phép ứng dụng sửa đổi lịch sử hoặc dấu trang của Trình duyệt được lưu trữ trên điện thoại của bạn. Ứng dụng độc hại có thể sử dụng quyền này để xóa hoặc sửa đổi dữ liệu Trình duyệt của bạn."</string>
- <!-- no translation found for permlab_setAlarm (1379294556362091814) -->
- <skip />
+ <string name="permlab_setAlarm" msgid="1379294556362091814">"đặt báo thức"</string>
<string name="permdesc_setAlarm" msgid="316392039157473848">"Cho phép ứng dụng đặt báo thức trong ứng dụng đồng hồ báo thức được cài đặt. Một số ứng dụng đồng hồ báo thức có thể không thực thi tính năng này."</string>
<string name="permlab_addVoicemail" msgid="5525660026090959044">"thêm thư thoại"</string>
<string name="permdesc_addVoicemail" msgid="6604508651428252437">"Cho phép ứng dụng thêm thông báo vào hộp thư thoại đến của bạn."</string>
diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml
index 9b93c5c..fb0ce9f 100644
--- a/core/res/res/values-zh-rCN/strings.xml
+++ b/core/res/res/values-zh-rCN/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"您的信息"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"读写短信、电子邮件和其他消息。"</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"您的个人信息"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"直接访问平板电脑上存储的联系人和日历。"</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"直接访问手机上存储的联系人和日历。"</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"您的位置"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"监视您的实际位置。"</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"网络通信"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"使用各种网络功能。"</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"您的帐户"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"访问可用的帐户。"</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"硬件控件"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"对系统进行低级访问和控制。"</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"开发工具"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"只有应用开发人员才需要的功能。"</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"存储"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"访问 USB 存储设备。"</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"访问 SD 卡。"</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"手机中无 SIM 卡"</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"请插入 SIM 卡"</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM 卡缺失或无法读取。请插入 SIM 卡。"</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"您的 SIM 卡已永久停用。"\n"请与您的无线服务提供商联系,以便重新获取一张 SIM 卡。"</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"“上一曲目”按钮"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"“下一曲目”按钮"</string>
diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml
index a54f449..78d861d 100644
--- a/core/res/res/values-zh-rTW/strings.xml
+++ b/core/res/res/values-zh-rTW/strings.xml
@@ -147,7 +147,7 @@
<string name="shutdown_confirm" product="default" msgid="649792175242821353">"手機即將關機。"</string>
<string name="shutdown_confirm_question" msgid="2906544768881136183">"您要關機嗎?"</string>
<string name="reboot_safemode_title" msgid="7054509914500140361">"重新啟動進入安全模式"</string>
- <string name="reboot_safemode_confirm" msgid="55293944502784668">"您要重新啟動進入安全模式嗎?這會停用您所安裝的所有第三方應用程式。如要還原這些應用程式,只要再次重新啟動即可。"</string>
+ <string name="reboot_safemode_confirm" msgid="55293944502784668">"您要重新啟動進入安全模式嗎?這會將您安裝的所有第三方應用程式全部停用。如要還原這些應用程式,只要再次重新啟動即可。"</string>
<string name="recent_tasks_title" msgid="3691764623638127888">"最新的"</string>
<string name="no_recent_tasks" msgid="8794906658732193473">"沒有最近用過的應用程式。"</string>
<string name="global_actions" product="tablet" msgid="408477140088053665">"平板電腦選項"</string>
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"您的簡訊"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"讀取及寫入您的簡訊、電子郵件和其他訊息。"</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"您的個人資訊"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"直接存取平板電腦上儲存的聯絡人和日曆。"</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"直接存取手機上的聯絡人與日曆。"</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"您的位置"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"監控您的實際位置。"</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"網路通訊"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"存取各種網路功能。"</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"您的帳戶"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"存取可用帳戶。"</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"硬體控制"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"系統低階存取與控制。"</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"開發工具"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"只有應用程式開發人員需要使用的功能。"</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"儲存"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"存取 USB 儲存裝置。"</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"存取 SD 卡。"</string>
@@ -202,7 +270,7 @@
<string name="permlab_receiveEmergencyBroadcast" msgid="1803477660846288089">"接收緊急廣播"</string>
<string name="permdesc_receiveEmergencyBroadcast" msgid="848524070262431974">"允許應用程式接收及處理緊急廣播訊息,只有系統應用程式可以具備這項權限。"</string>
<string name="permlab_readCellBroadcasts" msgid="1598328843619646166">"讀取區域廣播訊息"</string>
- <string name="permdesc_readCellBroadcasts" msgid="6361972776080458979">"允許應用程式讀取您裝置接收的區域廣播訊息。某些地點會發出區域廣播警告,警告您發生緊急狀況。惡意應用程式可能會在裝置收到緊急區域廣播時,干擾裝置的效能或運作。"</string>
+ <string name="permdesc_readCellBroadcasts" msgid="6361972776080458979">"允許應用程式讀取您裝置收到的區域廣播訊息。某些地點會發出區域廣播警示,警告您有緊急狀況發生。請注意,惡意應用程式可能會在裝置收到緊急區域廣播時,干擾裝置的效能或運作。"</string>
<string name="permlab_sendSms" msgid="5600830612147671529">"傳送 SMS 簡訊"</string>
<string name="permdesc_sendSms" msgid="906546667507626156">"允許應用程式傳送 SMS 簡訊。請注意,惡意應用程式可能利用此功能擅自傳送簡訊,導致您必須支付大筆費用。"</string>
<string name="permlab_sendSmsNoConfirmation" msgid="4781483105951730228">"不需經過確認即傳送 SMS 簡訊"</string>
@@ -224,7 +292,7 @@
<string name="permlab_removeTasks" msgid="6821513401870377403">"停止執行中的應用程式"</string>
<string name="permdesc_removeTasks" msgid="1394714352062635493">"允許應用程式移除工作並終止執行工作的應用程式。請注意,惡意應用程式可能利用此功能干擾其他應用程式的行為。"</string>
<string name="permlab_startAnyActivity" msgid="2918768238045206456">"啟動任何活動"</string>
- <string name="permdesc_startAnyActivity" msgid="997823695343584001">"允許應用程式忽視權限保護或匯出狀態,啟動任何活動。"</string>
+ <string name="permdesc_startAnyActivity" msgid="997823695343584001">"不論權限保護或匯出狀態為何,一律允許應用程式啟動任何活動。"</string>
<string name="permlab_setScreenCompatibility" msgid="6975387118861842061">"設定螢幕相容性"</string>
<string name="permdesc_setScreenCompatibility" msgid="692043618693917374">"允許應用程式控制其他應用程式的螢幕相容性模式。惡意應用程式可能藉此破壞其他應用程式的正常運作。"</string>
<string name="permlab_setDebugApp" msgid="3022107198686584052">"啟用應用程式偵錯"</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"手機未插入 SIM 卡。"</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"插入 SIM 卡。"</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"找不到或無法讀取 SIM 卡。請插入 SIM 卡。"</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"您的 SIM 卡已遭永久停用。"\n"請與您的無線網路服務供應商聯絡,以取得其他 SIM 卡。"</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"[上一首曲目] 按鈕"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"[下一首曲目] 按鈕"</string>
diff --git a/core/res/res/values-zu/strings.xml b/core/res/res/values-zu/strings.xml
index f1779f0..d46c384 100644
--- a/core/res/res/values-zu/strings.xml
+++ b/core/res/res/values-zu/strings.xml
@@ -168,12 +168,76 @@
<string name="permgrouplab_messages" msgid="7521249148445456662">"Imiyalezo yakho"</string>
<string name="permgroupdesc_messages" msgid="7821999071003699236">"Funda futhi ubhale i-SMS yakho, i-imeyili, kanye neminye imiyalezo."</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"Ukwaziswa kwakho komuntu siqu"</string>
- <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"Ukufinyelela okuqondile othintana nabo nekhalenda egcinwe kwithebhulethi yakho."</string>
- <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"Ukufinyelela okuqondile othintana nabo nekhalenda egcinwe efonini yakho."</string>
+ <!-- no translation found for permgroupdesc_personalInfo (8426453129788861338) -->
+ <skip />
+ <!-- no translation found for permgrouplab_socialInfo (5799096623412043791) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_socialInfo (7129842457611643493) -->
+ <skip />
<string name="permgrouplab_location" msgid="635149742436692049">"Indawo yakho"</string>
<string name="permgroupdesc_location" msgid="5704679763124170100">"Gada indawo yakho yokuhlala"</string>
<string name="permgrouplab_network" msgid="5808983377727109831">"Uxhumano lwenethiwekhi"</string>
<string name="permgroupdesc_network" msgid="4478299413241861987">"Finyelela kokuqukethwe inethiwekhi okuhlukahlukee."</string>
+ <!-- no translation found for permgrouplab_shortRangeNetwork (4504840216096355984) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_shortRangeNetwork (8821013030346680806) -->
+ <skip />
+ <!-- no translation found for permgrouplab_audioSettings (8329261670151871235) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_audioSettings (2641515403347568130) -->
+ <skip />
+ <!-- no translation found for permgrouplab_affectsBattery (6209246653424798033) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_affectsBattery (6441275320638916947) -->
+ <skip />
+ <!-- no translation found for permgrouplab_calendar (5863508437783683902) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_calendar (5777534316982184416) -->
+ <skip />
+ <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_dictionary (40926483968949978) -->
+ <skip />
+ <!-- no translation found for permgrouplab_bookmarks (1949519673103968229) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_bookmarks (4169771606257963028) -->
+ <skip />
+ <!-- no translation found for permgrouplab_deviceAlarms (6117704629728824101) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_deviceAlarms (4769356362251641175) -->
+ <skip />
+ <!-- no translation found for permgrouplab_voicemail (4162237145027592133) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_voicemail (2498403969862951393) -->
+ <skip />
+ <!-- no translation found for permgrouplab_microphone (171539900250043464) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_microphone (7106618286905738408) -->
+ <skip />
+ <!-- no translation found for permgrouplab_camera (4820372495894586615) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_camera (2933667372289567714) -->
+ <skip />
+ <!-- no translation found for permgrouplab_appInfo (8028789762634147725) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_appInfo (3950378538049625907) -->
+ <skip />
+ <!-- no translation found for permgrouplab_wallpaper (3850280158041175998) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_wallpaper (5630417854750540154) -->
+ <skip />
+ <!-- no translation found for permgrouplab_systemClock (406535759236612992) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_systemClock (3944359833624094992) -->
+ <skip />
+ <!-- no translation found for permgrouplab_statusBar (2095862568113945398) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_statusBar (6242593432226807171) -->
+ <skip />
+ <!-- no translation found for permgrouplab_syncSettings (3341990986147826541) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_syncSettings (7603195265129031797) -->
+ <skip />
<string name="permgrouplab_accounts" msgid="3359646291125325519">"Ama-akhawunti akho"</string>
<string name="permgroupdesc_accounts" msgid="4948732641827091312">"Finyelela kuma-akhawunti atholakalayo"</string>
<string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"Izilawuli zezingxenyekazi zekhompyutha"</string>
@@ -184,6 +248,10 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Ukufinyelela kwezinga eliphansi nokulawula uhlelo."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Amathuluzi okuthuthukisa"</string>
<string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"Okuqukethwe okudingakela abasunguli bensiza kuphela."</string>
+ <!-- no translation found for permgrouplab_display (4279909676036402636) -->
+ <skip />
+ <!-- no translation found for permgroupdesc_display (6051002031933013714) -->
+ <skip />
<string name="permgrouplab_storage" msgid="1971118770546336966">"Isitoreji"</string>
<string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"Finyelela kwisitoreji se-USB."</string>
<string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"Finyelela ikhadi le-SD."</string>
@@ -193,7 +261,7 @@
<string name="permdesc_statusBarService" msgid="716113660795976060">"Ivumela uhlelo lokusebenza ukuthi lube umudwa ochaza ngesimo."</string>
<string name="permlab_expandStatusBar" msgid="1148198785937489264">"khulisa/nciphisa ibha yomumo"</string>
<string name="permdesc_expandStatusBar" msgid="6917549437129401132">"Ivumela insiza ukuthi ikhulise noma inciphise umudwa ochza ngesimo."</string>
- <string name="permlab_processOutgoingCalls" msgid="3906007831192990946">"thumela izingcingo eziphumayo kabusha"</string>
+ <string name="permlab_processOutgoingCalls" msgid="3906007831192990946">"thumela amakholi aphumayo kabusha"</string>
<string name="permdesc_processOutgoingCalls" msgid="1152111671618301044">"Ivumela ukuth insiza isebenze izingcingo ezphumayo iphinde futhi iguqule inombolo eshayelwayo. Izinsiza ezinobungozi zingabheka, zithumele kabusha noma zivimbe izingcingo eziphumayo."</string>
<string name="permlab_receiveSms" msgid="8673471768947895082">"thola imiyalezo ebhaliwe (i-SMS)"</string>
<string name="permdesc_receiveSms" msgid="8107887121893611793">"Ivumela ukuthi insiza yamukele iphinde isebenze imiyalezo ye-SMS. Izinsiza ezinobungozi zingabheka imiyalezo yakho noma ziyisuse ngaphandle kokuthi zikukhombise."</string>
@@ -257,7 +325,7 @@
<string name="permdesc_broadcastWapPush" msgid="4783402525039442729">"Ivumela insiza ukuthi isakaze isaziso sokuthi umyalezo we-WAP PUSH utholakele. Izinsiza ezinobungozi zingasebenzisa lokhu ukufoja ukutholakala kwemiyalezo ye-S noa zisuse okuqukethwe kwanoma iliphi ikhasi lewebhu eliqukethe okunobungozi."</string>
<string name="permlab_setProcessLimit" msgid="2451873664363662666">"khawula inani lezinqubo ezisebenzayo"</string>
<string name="permdesc_setProcessLimit" msgid="7318061314040879542">"Ivumela insiza ukuthi ilawule isibalo esikhulu sezinto eziqhubekayo eziyosebenza. Ayidingakeli izinsiza ezijwayelekile."</string>
- <string name="permlab_setAlwaysFinish" msgid="550958507798796965">"phoqa izinhlelo zokusebenza ezingemumva ukuthi zivaleke"</string>
+ <string name="permlab_setAlwaysFinish" msgid="550958507798796965">"phoqa izinhlelo zokusebenza ezingemuva ukuthi zivaleke"</string>
<string name="permdesc_setAlwaysFinish" msgid="7471310652868841499">"Ivumela izinsiza ukuthi zilawule ukuthi izehlakalo ziyaphela yini emumva kokuba ziye ngemumva. Akudingakeli izinsiza ezijwayelekile."</string>
<string name="permlab_batteryStats" msgid="7863923071360031652">"guqula izibalo zebhetri"</string>
<string name="permdesc_batteryStats" msgid="6835186932305744068">"Ivumela insiza ukuthi iguqule imininingwane yebhethri eqoqiwe. Akwenzelwe ukuthi kusetshenziswe izinsiza ezijwayelekile."</string>
@@ -399,8 +467,8 @@
<string name="permlab_mount_unmount_filesystems" product="nosdcard" msgid="2927361537942591841">"finyelela ohlelweni lokufayela lwe-USB"</string>
<string name="permlab_mount_unmount_filesystems" product="default" msgid="4402305049890953810">"finyelela ohlelweni lokufayela lwe-SD Card"</string>
<string name="permdesc_mount_unmount_filesystems" msgid="1829290701658992347">"Ivumela izinhlelo ukugibelisa nokukwehlisa izinhlelo zefayela zokugcina okukhiphekayo."</string>
- <string name="permlab_mount_format_filesystems" product="nosdcard" msgid="6227819582624904972">"Sula okokulondoloza kwe-USB"</string>
- <string name="permlab_mount_format_filesystems" product="default" msgid="262582698639274056">"Susa ikhadi le-SD"</string>
+ <string name="permlab_mount_format_filesystems" product="nosdcard" msgid="6227819582624904972">"susa okokulondoloza kwe-USB"</string>
+ <string name="permlab_mount_format_filesystems" product="default" msgid="262582698639274056">"susa ikhadi le-SD"</string>
<string name="permdesc_mount_format_filesystems" msgid="8784268246779198627">"Ivumela uhlelo lokusebenza ukufometha isitoreji esikhiphekayo."</string>
<string name="permlab_asec_access" msgid="3411338632002193846">"thola ulwazi ngesitoreji sangaphakathi"</string>
<string name="permdesc_asec_access" msgid="3094563844593878548">"Ivumela uhlelo lokusebenza ukuthola ukwaziswa ekugcineni kwangaphakathi."</string>
@@ -452,7 +520,7 @@
<string name="permdesc_factoryTest" product="default" msgid="8136644990319244802">"Sebenzise njengokuhlola komkhiqizi wezinga eliphansi, uvumela ukufinyelela okugcwele ihadiwe yefoni. Itholakala kuphela lapho ifoni isebenza kwimodi yokuhlola yomkhiqizi."</string>
<string name="permlab_setWallpaper" msgid="6627192333373465143">"setha iphephadonga"</string>
<string name="permdesc_setWallpaper" msgid="7373447920977624745">"Ivumela uhlelo lokusebenza ukumisa iphephadonga lohlelo."</string>
- <string name="permlab_setWallpaperHints" msgid="3278608165977736538">"shintsha usayizi wesithombe sakho sangemumva"</string>
+ <string name="permlab_setWallpaperHints" msgid="3278608165977736538">"shintsha usayizi wesithombe sakho sangemuva"</string>
<string name="permdesc_setWallpaperHints" msgid="8235784384223730091">"Ivumela uhlelo lokusebenza ukuhlela izihlawumbisela zosayizi wephephadonga lohlelo."</string>
<string name="permlab_masterClear" msgid="2315750423139697397">"setha kabusha kube okumisiwe kwemboni"</string>
<string name="permdesc_masterClear" msgid="3665380492633910226">"Ivuela insiza ukuthi isethe kabusha isistiu ngokuphelele iyibuyisele ezisethweni eyafika nazo, isusa konke ukumisw kwemininingwane, kanye nezinsiza ezifakiwe."</string>
@@ -469,11 +537,11 @@
<string name="permdesc_getAccounts" product="default" msgid="2735689364629830348">"Ivumela insiza ukuthi ithole uhlu lwma-akhawunti aziwa ucingo."</string>
<string name="permlab_authenticateAccounts" msgid="5265908481172736933">"yakha ama-akhawunti bese usetha amaphasiwedi"</string>
<string name="permdesc_authenticateAccounts" msgid="5472124296908977260">"Ivumela uhlelo lokusebenza ukusebenzisa amakhono okufakazela ubuqiniso e-akhawunti Emeneja ye-Akhawunti, kuhlanganise ukwenza ama-akhawunti ngisho nokumisa amaphasiwedi ayo."</string>
- <string name="permlab_manageAccounts" msgid="4983126304757177305">"Faka noma ukhiphe ama-akhawunti"</string>
+ <string name="permlab_manageAccounts" msgid="4983126304757177305">"engeza noma ukhiphe ama-akhawunti"</string>
<string name="permdesc_manageAccounts" msgid="8698295625488292506">"Ivumela uhlelo lokusebenza ukwenza imisebenzi enjengokufaka, nokukhipha ama-akhawunti nokususa iphasiwedi yawo"</string>
<string name="permlab_useCredentials" msgid="235481396163877642">"sebenzisa ama-akhawunti edivayisini"</string>
<string name="permdesc_useCredentials" msgid="7984227147403346422">"Ivumela insiza ukuthi icele amathokheni okuqinisekisa."</string>
- <string name="permlab_accessNetworkState" msgid="4951027964348974773">"bheka ukuxhumaniseka enethiwekhini"</string>
+ <string name="permlab_accessNetworkState" msgid="4951027964348974773">"buka ukuxhumeka kunethiwekhi"</string>
<string name="permdesc_accessNetworkState" msgid="479772796952547198">"Ivumela insiza ukuthi ibheke isio sawo wonke amanethiwekhi."</string>
<string name="permlab_createNetworkSockets" msgid="9121633680349549585">"Ukufinyelela i-Inthanethi ngokugcwele"</string>
<string name="permdesc_createNetworkSockets" msgid="5963922297444265950">"Ivumela insiza ukuthi yakhe amsokhethi enethiwekhi."</string>
@@ -485,7 +553,7 @@
<string name="permdesc_changeTetherState" msgid="1524441344412319780">"Ivumela insiza ukuthi iguqule isimo sokuxhuaniseka kwenethiwekhi ehunyiwe."</string>
<string name="permlab_changeBackgroundDataSetting" msgid="1400666012671648741">"shintsha idatha yasemuva yelungiselelo lokusebenzisa"</string>
<string name="permdesc_changeBackgroundDataSetting" msgid="5347729578468744379">"Ivumela uhlelo lokusebenza ukuthi luguqule izilungiselelo zemininingwane yokusetshenziswa kwedatha."</string>
- <string name="permlab_accessWifiState" msgid="5202012949247040011">"bheka ukuxhumaniseka kwi-Wi-Fi"</string>
+ <string name="permlab_accessWifiState" msgid="5202012949247040011">"buka ukuxhumaneka kwi-Wi-Fi"</string>
<string name="permdesc_accessWifiState" msgid="7770452658226256831">"Ivumela insiza ukuthi ibheke imininingwane emayelana nesimo se-Wi-Fi."</string>
<string name="permlab_changeWifiState" msgid="6550641188749128035">"xhuma uphinde unqamule kwi-Wi-Fi"</string>
<string name="permdesc_changeWifiState" msgid="7399961004537946240">"Ivumela uhlelo lokusebenza ukuxhuma nokungaxhumeki kumaphoyinti okungena e-Wi-Fi, nokwenza izinguquko ukumisa amanethiwekhi e-Wi-Fi."</string>
@@ -494,7 +562,7 @@
<string name="permlab_bluetoothAdmin" msgid="6006967373935926659">"finyelela ezilungiselelweni ze-Bluetooth"</string>
<string name="permdesc_bluetoothAdmin" product="tablet" msgid="6921177471748882137">"Ivumela uhlelo lokusebenza ukumisa ithebhulethi ye-Bluetooth yasendawni, nokuthola nokubhanqanisa namadivaysi okulawula okukude."</string>
<string name="permdesc_bluetoothAdmin" product="default" msgid="8931682159331542137">"Ivumela uhlelo lokusebenza ukumisa ifoni ye-Bluetooth yasendawni, nokuthola nokubhanqanisa namadivaysi okulawula okukude."</string>
- <string name="permlab_accessWimaxState" msgid="7436749103151096452">"Bheka ukuxhumaniseka kwi-WiMAX"</string>
+ <string name="permlab_accessWimaxState" msgid="7436749103151096452">"Buka ukuxhumeka kwi-WiMAX"</string>
<string name="permdesc_accessWimaxState" msgid="5914958077555177749">"Ivumela insiza ukubuka ulwazi mayelana nesimo se-WiMAX."</string>
<string name="permlab_changeWimaxState" msgid="2405042267131496579">"Shintsha isimo se-WiMAX"</string>
<string name="permdesc_changeWimaxState" msgid="3328853825006455912">"Vumela insiza ukuthi ixhumaniseke futhi ibhonculeke kwinethiwekhi ye-WiMAX."</string>
@@ -503,7 +571,7 @@
<string name="permdesc_bluetooth" product="default" msgid="31846362767164948">"Ivumela insiza ukuthi ibheke ukumiswa kwe-Bluetooth ocingweni, kanye nokwenza kanye nokwamukela ukuxhumaniseka nokwenziwa kwamadivayisi ukuthi asebenzisane."</string>
<string name="permlab_nfc" msgid="4423351274757876953">"lawula Uxhumano Lwenkambu Eseduze"</string>
<string name="permdesc_nfc" msgid="7120611819401789907">"Ivuela insiza ukuthi ixhumane ne-Near Field Communication (NFC) amathegi, amakhadi kanye nezinhlelo zokufunda."</string>
- <string name="permlab_disableKeyguard" msgid="3598496301486439258">"yenza ukukhiya kwakho iskrini kungasebenzi"</string>
+ <string name="permlab_disableKeyguard" msgid="3598496301486439258">"khubaza ukukhiya kwakho iskrini"</string>
<string name="permdesc_disableKeyguard" msgid="6231611286892232626">"Ivumela uhlelo lokusebenza ukuvimbela ukuvala ukhiye nanoma yikuphi ukuphepha kwephasiwedi okuhlobene. Isibonelo esisemthethweni salokhu ukuba ifoni ivimbele ukuvala ukhiye lapho ithola ikholi engenayo, bese ivumela futhi ukuvala ukhiye lapho ikholi isiqedile."</string>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"funda izilungiselelo zokuvumelanisa"</string>
<string name="permdesc_readSyncSettings" msgid="5464056785274229278">"Ivumela uhlelo lokusebenza ukuthi lifunde izilungiselelo zokuvumelanisa njengokuthi ukuvumelanise kuyasebenza yini kuhlelo lokusebenza Abantu."</string>
@@ -515,15 +583,15 @@
<string name="permdesc_subscribedFeedsRead" msgid="5557058907906144505">"Ivumela insiza ukuthi ithole imininingwane mayelana namafidi avumelnisiwe njengamanje."</string>
<string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"bhala izifunzo ezikhokhelwayo"</string>
<string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Ivumela insiza ukuthi iguqule amafidi akho avumelanisiwe njengamanje. Izinsiza ezinobungozi zingaguqula amafidi akho avumelanisiwe."</string>
- <string name="permlab_readDictionary" msgid="4107101525746035718">"funda imibandela oyengezile esichazinimazwi"</string>
+ <string name="permlab_readDictionary" msgid="4107101525746035718">"funda imibandela oyengezile esichazimazwini"</string>
<string name="permdesc_readDictionary" msgid="8977815988329283705">"Ivumela uhlelo lokusebenza ukufunda noma yimaphi amagama ayimfihlo, amagama nemisho leyo umsebenzisi ayigcine kwisichazamazwi somsebenzisi."</string>
<string name="permlab_writeDictionary" msgid="2296383164914812772">"bhala kwisichazamazwi esicacisiwe somsebenzisi"</string>
<string name="permdesc_writeDictionary" msgid="8185385716255065291">"Ivumela insiza ukuthi ibhale amagama amasha esichazinimazwi."</string>
- <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"funda okuqukethwe kokokulondoloza kwe-USD kwakho"</string>
+ <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"funda okuqukethwe kokugciniwe kwakho okufinyeleleka nge-USD"</string>
<string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"funda okuqukethwe ekhadini lakho le-SD"</string>
- <string name="permdesc_sdcardRead" product="nosdcard" msgid="3530894470637667917">"Ivumela uhlelo lokusebenza ukuthi lufunde okuqukethwe kwi-USB, okungabandakanya izithombe kanye nezingosi."</string>
- <string name="permdesc_sdcardRead" product="default" msgid="2555811422562526606">"Ivumela uhlelo lokusebenza ukuthi lufunde okuqukethwe ikhadi le-SD, okungabandakanya izithombe kanye nezingosi."</string>
- <string name="permlab_sdcardWrite" product="nosdcard" msgid="8485979062254666748">"guqula noma ususe okuqukethwe kokokulondoloza kwe-USB kwakho"</string>
+ <string name="permdesc_sdcardRead" product="nosdcard" msgid="3530894470637667917">"Ivumela uhlelo lokusebenza ukuthi lufunde okuqukethwe kwi-USB, okungabandakanya izithombe kanye nezingosi yezindaba."</string>
+ <string name="permdesc_sdcardRead" product="default" msgid="2555811422562526606">"Ivumela uhlelo lokusebenza ukuthi lufunde okuqukethwe ikhadi le-SD, okungabandakanya izithombe kanye nengosi yezindaba."</string>
+ <string name="permlab_sdcardWrite" product="nosdcard" msgid="8485979062254666748">"guqula noma ususe okuqukethwe kwakho okugciniwe okufinyeleleka nge-USB"</string>
<string name="permlab_sdcardWrite" product="default" msgid="9084476432661578751">"guqula noma ususe okuqukethwe ekhadini lakho le-SD"</string>
<string name="permdesc_sdcardWrite" product="nosdcard" msgid="6175406299445710888">"Ivumela insiza ukuthi ibhalele ekulondolozweni kwe-USB."</string>
<string name="permdesc_sdcardWrite" product="default" msgid="4337417790936632090">"Ivumela insiza ukuthi ibhalele ekhadini le-SD."</string>
@@ -702,6 +770,8 @@
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"Alikho ikhadi le-SIM efonini."</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"Faka ikhadi le-SIM."</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"Ikhadi le-SIM alitholakali noma alifundeki. Sicela ufake ikhadi le-SIM."</string>
+ <!-- no translation found for lockscreen_permanent_disabled_sim_message_short (5096149665138916184) -->
+ <skip />
<string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"I-SIM khadi ykho isiyenziwe ukuthi ingasebenzi unomphela."\n" Xhumana nomhlinzeki wakho wokuxhumana okungenazintambo ukuze uthole enye i-SIM khadi."</string>
<string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Inkinombo yengoma yangaphambilini"</string>
<string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Inkinobho yengoma elandelayo"</string>
@@ -777,7 +847,7 @@
<string name="autofill_parish" msgid="8202206105468820057">"Parish"</string>
<string name="autofill_area" msgid="3547409050889952423">"Indawo"</string>
<string name="autofill_emirate" msgid="2893880978835698818">"Emirate"</string>
- <string name="permlab_readHistoryBookmarks" msgid="3775265775405106983">"funda amabhukhimakhi akho ewebhu kanye Nomlando"</string>
+ <string name="permlab_readHistoryBookmarks" msgid="3775265775405106983">"funda amabhukhimakhi akho ewebhu kanye nomlando"</string>
<string name="permdesc_readHistoryBookmarks" msgid="4577476392604595921">"Ivumela uhlelo lokusebenza ukufunda wonke ama-URL lawo Isiphequluli esiwavakashele, ngisho nawo wonke amabhukimakhi Esiphequluli."</string>
<string name="permlab_writeHistoryBookmarks" msgid="3714785165273314490">"bhala amabhukhimakhi ewebhu kanye nomlando"</string>
<string name="permdesc_writeHistoryBookmarks" product="tablet" msgid="1757103804824209530">"Ivumela insiza ukuthi iguqule ulando Wesiphequluli noma amabhukumaka agcinwe ekhompyutheni yakho yepeni. Izinsiza ezinobungozi zingasebenzisa lokhu ukususa noma ziguqule imininingwane Yesiphequluli sakho."</string>
diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml
index 978e2a8..2387e7a 100644
--- a/core/res/res/values/public.xml
+++ b/core/res/res/values/public.xml
@@ -63,7 +63,6 @@
<java-symbol type="id" name="clearDefaultHint" />
<java-symbol type="id" name="contentPanel" />
<java-symbol type="id" name="customPanel" />
- <java-symbol type="id" name="dangerous_perms_list" />
<java-symbol type="id" name="datePicker" />
<java-symbol type="id" name="day" />
<java-symbol type="id" name="day_names" />
@@ -117,9 +116,7 @@
<java-symbol type="id" name="new_app_action" />
<java-symbol type="id" name="new_app_description" />
<java-symbol type="id" name="new_app_icon" />
- <java-symbol type="id" name="new_perms_list" />
<java-symbol type="id" name="no_permissions" />
- <java-symbol type="id" name="non_dangerous_perms_list" />
<java-symbol type="id" name="numberpicker_input" />
<java-symbol type="id" name="old_app_action" />
<java-symbol type="id" name="old_app_description" />
@@ -127,7 +124,9 @@
<java-symbol type="id" name="package_label" />
<java-symbol type="id" name="packages_list" />
<java-symbol type="id" name="pause" />
+ <java-symbol type="id" name="perms_list" />
<java-symbol type="id" name="perm_icon" />
+ <java-symbol type="id" name="perm_name" />
<java-symbol type="id" name="permission_group" />
<java-symbol type="id" name="permission_list" />
<java-symbol type="id" name="pickers" />
@@ -163,9 +162,6 @@
<java-symbol type="id" name="sha256_fingerprint" />
<java-symbol type="id" name="share" />
<java-symbol type="id" name="shortcut" />
- <java-symbol type="id" name="show_more" />
- <java-symbol type="id" name="show_more_icon" />
- <java-symbol type="id" name="show_more_text" />
<java-symbol type="id" name="skip_button" />
<java-symbol type="id" name="slider_group" />
<java-symbol type="id" name="split_action_bar" />
@@ -1044,6 +1040,7 @@
<java-symbol type="layout" name="alert_dialog_progress" />
<java-symbol type="layout" name="always_use_checkbox" />
<java-symbol type="layout" name="app_permission_item" />
+ <java-symbol type="layout" name="app_permission_item_old" />
<java-symbol type="layout" name="app_perms_summary" />
<java-symbol type="layout" name="calendar_view" />
<java-symbol type="layout" name="character_picker" />
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index c863e7c..3250507 100755
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -390,11 +390,12 @@
<!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
<string name="permgrouplab_personalInfo">Your personal information</string>
<!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
- <string name="permgroupdesc_personalInfo" product="tablet">Direct access to your contacts
- and calendar stored on the tablet.</string>
+ <string name="permgroupdesc_personalInfo">Direct access to information about you, stored in on your contact card.</string>
+
+ <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
+ <string name="permgrouplab_socialInfo">Your social information</string>
<!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
- <string name="permgroupdesc_personalInfo" product="default">Direct access to your contacts
- and calendar stored on the phone.</string>
+ <string name="permgroupdesc_socialInfo">Direct access to information about your contacts and social connections.</string>
<!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
<string name="permgrouplab_location">Your location</string>
@@ -407,6 +408,81 @@
<string name="permgroupdesc_network">Access various network features.</string>
<!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
+ <string name="permgrouplab_shortRangeNetwork">Bluetooth and NFC</string>
+ <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
+ <string name="permgroupdesc_shortRangeNetwork">Access Bluetooth or NFC networks and devices.</string>
+
+ <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
+ <string name="permgrouplab_audioSettings">Audio Settings</string>
+ <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
+ <string name="permgroupdesc_audioSettings">Change audio settings.</string>
+
+ <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
+ <string name="permgrouplab_affectsBattery">Affects Battery</string>
+ <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
+ <string name="permgroupdesc_affectsBattery">Use features that can quickly drain battery.</string>
+
+ <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
+ <string name="permgrouplab_calendar">Calendar</string>
+ <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
+ <string name="permgroupdesc_calendar">Direct access to calendar and events.</string>
+
+ <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
+ <string name="permgrouplab_dictionary">User Dictionary</string>
+ <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
+ <string name="permgroupdesc_dictionary">Direct access to the user dictionary.</string>
+
+ <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
+ <string name="permgrouplab_bookmarks">Bookmarks and History</string>
+ <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
+ <string name="permgroupdesc_bookmarks">Direct access to bookmarks and browser history.</string>
+
+ <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
+ <string name="permgrouplab_deviceAlarms">Alarm</string>
+ <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
+ <string name="permgroupdesc_deviceAlarms">Set the alarm clock.</string>
+
+ <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
+ <string name="permgrouplab_voicemail">Voicemail</string>
+ <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
+ <string name="permgroupdesc_voicemail">Direct access to voicemail.</string>
+
+ <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
+ <string name="permgrouplab_microphone">Microphone</string>
+ <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
+ <string name="permgroupdesc_microphone">Direct access to the microphone to record audio.</string>
+
+ <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
+ <string name="permgrouplab_camera">Camera</string>
+ <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
+ <string name="permgroupdesc_camera">Direct access to camera for image or video capture.</string>
+
+ <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
+ <string name="permgrouplab_appInfo">Your applications information</string>
+ <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
+ <string name="permgroupdesc_appInfo">Ability to affect behavior of other applications on your device.</string>
+
+ <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
+ <string name="permgrouplab_wallpaper">Wallpaper</string>
+ <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
+ <string name="permgroupdesc_wallpaper">Change the device wallpaper settings.</string>
+
+ <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
+ <string name="permgrouplab_systemClock">Clock</string>
+ <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
+ <string name="permgroupdesc_systemClock">Change the device time or timezone.</string>
+
+ <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
+ <string name="permgrouplab_statusBar">Status Bar</string>
+ <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
+ <string name="permgroupdesc_statusBar">Change the device status bar settings.</string>
+
+ <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
+ <string name="permgrouplab_syncSettings">Sync Settings</string>
+ <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
+ <string name="permgroupdesc_syncSettings">Access to the sync settings.</string>
+
+ <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
<string name="permgrouplab_accounts">Your accounts</string>
<!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
<string name="permgroupdesc_accounts">Access the available accounts.</string>
@@ -432,6 +508,11 @@
<string name="permgroupdesc_developmentTools">Features only needed for app developers.</string>
<!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
+ <string name="permgrouplab_display">Other Application UI</string>
+ <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
+ <string name="permgroupdesc_display">Effect the UI of other applications.</string>
+
+ <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
<string name="permgrouplab_storage">Storage</string>
<!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. [CHAR LIMIT=30] -->
<string name="permgroupdesc_storage" product="nosdcard">Access the USB storage.</string>
@@ -2900,7 +2981,7 @@
<!-- Do not translate. -->
<string name="permissions_format"><xliff:g id="perm_line1">%1$s</xliff:g>, <xliff:g id="perm_line2">%2$s</xliff:g></string>
<!-- Text that is placed at the front of a permission name that is being added to an app [CHAR LIMIT=NONE] -->
- <string name="perms_new_perm_prefix"><font size="12" fgcolor="#ffffa3a3">NEW: </font></string>
+ <string name="perms_new_perm_prefix"><font size="12" fgcolor="#ff900000">NEW: </font></string>
<!-- Shown for an application when it doesn't require any permission grants. -->
<string name="no_permissions">No permissions required</string>
<!-- When installing an application, the less-dangerous permissions are hidden. If the user showed those, this is the text to hide them again. -->
diff --git a/core/res/res/values/themes.xml b/core/res/res/values/themes.xml
index 71738ad..77dbaa5 100644
--- a/core/res/res/values/themes.xml
+++ b/core/res/res/values/themes.xml
@@ -174,6 +174,13 @@
<item name="windowActionModeOverlay">false</item>
<item name="windowCloseOnTouchOutside">false</item>
+ <!-- Define these here; ContextThemeWrappers around themes that define them should
+ always clear these values. -->
+ <item name="windowFixedWidthMajor">0dp</item>
+ <item name="windowFixedWidthMinor">0dp</item>
+ <item name="windowFixedHeightMajor">0dp</item>
+ <item name="windowFixedHeightMinor">0dp</item>
+
<!-- Dialog attributes -->
<item name="alertDialogStyle">@android:style/AlertDialog</item>
<item name="dialogTheme">@android:style/Theme.Dialog</item>
diff --git a/graphics/java/android/graphics/ImageFormat.java b/graphics/java/android/graphics/ImageFormat.java
index b3a8fd7..f6b747a 100644
--- a/graphics/java/android/graphics/ImageFormat.java
+++ b/graphics/java/android/graphics/ImageFormat.java
@@ -48,14 +48,26 @@
* </p>
*
* <pre> y_size = stride * height
- * c_size = ALIGN(stride/2, 16) * height/2
+ * c_stride = ALIGN(stride/2, 16)
+ * c_size = c_stride * height/2
* size = y_size + c_size * 2
* cr_offset = y_size
* cb_offset = y_size + c_size</pre>
*
- * This format is guaranteed to be supported for camera preview images since
+ * <p>This format is guaranteed to be supported for camera preview images since
* API level 12; for earlier API versions, check
* {@link android.hardware.Camera.Parameters#getSupportedPreviewFormats()}.
+ *
+ * <p>Note that for camera preview callback use (see
+ * {@link android.hardware.Camera#setPreviewCallback}), the
+ * <var>stride</var> value is the smallest possible; that is, it is equal
+ * to:
+ *
+ * <pre>stride = ALIGN(width, 16)</pre>
+ *
+ * @see android.hardware.Camera.Parameters#setPreviewCallback
+ * @see android.hardware.Camera.Parameters#setPreviewFormat
+ * @see android.hardware.Camera.Parameters#getSupportedPreviewFormats
* </p>
*/
public static final int YV12 = 0x32315659;
diff --git a/media/java/android/media/AudioService.java b/media/java/android/media/AudioService.java
index 542d2df..2174d06 100644
--- a/media/java/android/media/AudioService.java
+++ b/media/java/android/media/AudioService.java
@@ -40,6 +40,7 @@
import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.PackageManager;
+import android.content.res.Configuration;
import android.database.ContentObserver;
import android.media.MediaPlayer.OnCompletionListener;
import android.media.MediaPlayer.OnErrorListener;
@@ -371,6 +372,8 @@
// Used to play ringtones outside system_server
private volatile IRingtonePlayer mRingtonePlayer;
+ private int mDeviceOrientation = Configuration.ORIENTATION_UNDEFINED;
+
///////////////////////////////////////////////////////////////////////////
// Construction
///////////////////////////////////////////////////////////////////////////
@@ -428,6 +431,16 @@
intentFilter.addAction(Intent.ACTION_BOOT_COMPLETED);
intentFilter.addAction(Intent.ACTION_SCREEN_ON);
intentFilter.addAction(Intent.ACTION_SCREEN_OFF);
+
+ // Register a configuration change listener only if requested by system properties
+ // to monitor orientation changes (off by default)
+ if (SystemProperties.getBoolean("ro.audio.monitorOrientation", false)) {
+ Log.v(TAG, "monitoring device orientation");
+ intentFilter.addAction(Intent.ACTION_CONFIGURATION_CHANGED);
+ // initialize orientation in AudioSystem
+ setOrientationForAudioSystem();
+ }
+
context.registerReceiver(mReceiver, intentFilter);
// Register for package removal intent broadcasts for media button receiver persistence
@@ -2778,6 +2791,11 @@
// Restore master volume
restoreMasterVolume();
+ // Reset device orientation (if monitored for this device)
+ if (SystemProperties.getBoolean("ro.audio.monitorOrientation", false)) {
+ setOrientationForAudioSystem();
+ }
+
// indicate the end of reconfiguration phase to audio HAL
AudioSystem.setParameters("restarting=false");
break;
@@ -3165,6 +3183,8 @@
AudioSystem.setParameters("screen_state=on");
} else if (action.equals(Intent.ACTION_SCREEN_OFF)) {
AudioSystem.setParameters("screen_state=off");
+ } else if (action.equalsIgnoreCase(Intent.ACTION_CONFIGURATION_CHANGED)) {
+ handleConfigurationChanged(context);
}
}
}
@@ -4282,6 +4302,52 @@
}
}
+ //==========================================================================================
+ // Device orientation
+ //==========================================================================================
+ /**
+ * Handles device configuration changes that may map to a change in the orientation.
+ * This feature is optional, and is defined by the definition and value of the
+ * "ro.audio.monitorOrientation" system property.
+ */
+ private void handleConfigurationChanged(Context context) {
+ try {
+ // reading new orientation "safely" (i.e. under try catch) in case anything
+ // goes wrong when obtaining resources and configuration
+ int newOrientation = context.getResources().getConfiguration().orientation;
+ if (newOrientation != mDeviceOrientation) {
+ mDeviceOrientation = newOrientation;
+ setOrientationForAudioSystem();
+ }
+ } catch (Exception e) {
+ Log.e(TAG, "Error retrieving device orientation: " + e);
+ }
+ }
+
+ private void setOrientationForAudioSystem() {
+ switch (mDeviceOrientation) {
+ case Configuration.ORIENTATION_LANDSCAPE:
+ //Log.i(TAG, "orientation is landscape");
+ AudioSystem.setParameters("orientation=landscape");
+ break;
+ case Configuration.ORIENTATION_PORTRAIT:
+ //Log.i(TAG, "orientation is portrait");
+ AudioSystem.setParameters("orientation=portrait");
+ break;
+ case Configuration.ORIENTATION_SQUARE:
+ //Log.i(TAG, "orientation is square");
+ AudioSystem.setParameters("orientation=square");
+ break;
+ case Configuration.ORIENTATION_UNDEFINED:
+ //Log.i(TAG, "orientation is undefined");
+ AudioSystem.setParameters("orientation=undefined");
+ break;
+ default:
+ Log.e(TAG, "Unknown orientation");
+ }
+ }
+
+
@Override
public void setRingtonePlayer(IRingtonePlayer player) {
mContext.enforceCallingOrSelfPermission(REMOTE_AUDIO_PLAYBACK, null);
diff --git a/media/java/android/media/MediaCodec.java b/media/java/android/media/MediaCodec.java
index bbdbf2e..1dbd48e 100644
--- a/media/java/android/media/MediaCodec.java
+++ b/media/java/android/media/MediaCodec.java
@@ -17,6 +17,7 @@
package android.media;
import android.media.MediaCrypto;
+import android.media.MediaFormat;
import android.view.Surface;
import java.nio.ByteBuffer;
import java.util.Map;
@@ -90,14 +91,14 @@
* Most formats also require the actual data to be prefixed by a number
* of buffers containing setup data, or codec specific data, i.e. the
* first few buffers submitted to the codec object after starting it must
- * be codec specific data marked as such using the flag {@link #FLAG_CODECCONFIG}
+ * be codec specific data marked as such using the flag {@link #BUFFER_FLAG_CODEC_CONFIG}
* in a call to {@link #queueInputBuffer}.
*
* Once the client reaches the end of the input data it signals the end of
- * the input stream by specifying a flag of {@link #FLAG_EOS} in the call to
+ * the input stream by specifying a flag of {@link #BUFFER_FLAG_END_OF_STREAM} in the call to
* {@link #queueInputBuffer}. The codec will continue to return output buffers
* until it eventually signals the end of the output stream by specifying
- * the same flag ({@link #FLAG_EOS}) on the BufferInfo returned in
+ * the same flag ({@link #BUFFER_FLAG_END_OF_STREAM}) on the BufferInfo returned in
* {@link #dequeueOutputBuffer}.
*
* In order to start decoding data that's not adjacent to previously submitted
@@ -109,42 +110,12 @@
* flush does not support format discontinuities,
* for this a full stop(), configure(), start() cycle is necessary.
*
- * The format of the media data is specified as string/value pairs represented
- * as a Map<String, Object>.<p>
- *
- * Fields common to all formats:
- *
- * <table>
- * <tr><th>Name</th><th>Value Type</th><th>Description</th></tr>
- * <tr><td>mime</td><td>String</td><td>The type of the format.</td></tr>
- * <tr><td>max-input-size</td><td>Integer</td><td>optional, maximum size of a buffer of input data</td></tr>
- * <tr><td>bitrate</td><td>Integer</td><td><b>encoder-only</b>, desired bitrate in bits/second</td></tr>
- * </table>
- *
- * Video formats have the following fields:
- * <table>
- * <tr><th>Name</th><th>Value Type</th><th>Description</th></tr>
- * <tr><td>width</td><td>Integer</td><td></td></tr>
- * <tr><td>height</td><td>Integer</td><td></td></tr>
- * <tr><td>color-format</td><td>Integer</td><td><b>encoder-only</b></td></tr>
- * <tr><td>frame-rate</td><td>Integer or Float</td><td><b>encoder-only</b></td></tr>
- * <tr><td>i-frame-interval</td><td>Integer</td><td><b>encoder-only</b></td></tr>
- * <tr><td>stride</td><td>Integer</td><td><b>encoder-only</b>, optional, defaults to width</td></tr>
- * <tr><td>slice-height</td><td>Integer</td><td><b>encoder-only</b>, optional, defaults to height</td></tr>
- * </table>
- *
- * Audio formats have the following fields:
- * <table>
- * <tr><th>Name</th><th>Value Type</th><th>Description</th></tr>
- * <tr><td>channel-count</td><td>Integer</td><td></td></tr>
- * <tr><td>sample-rate</td><td>Integer</td><td></td></tr>
- * </table>
- *
-*/
+ */
final public class MediaCodec {
- /** Per buffer metadata includes an offset and size specifying
- the range of valid data in the associated codec buffer.
- */
+ /**
+ * Per buffer metadata includes an offset and size specifying
+ * the range of valid data in the associated codec buffer.
+ */
public final static class BufferInfo {
public void set(
int newOffset, int newSize, long newTimeUs, int newFlags) {
@@ -163,45 +134,46 @@
// The follow flag constants MUST stay in sync with their equivalents
// in MediaCodec.h !
- /** This indicates that the buffer marked as such contains the data
- for a sync frame.
- */
- public static final int FLAG_SYNCFRAME = 1;
+ /**
+ * This indicates that the buffer marked as such contains the data
+ * for a sync frame.
+ */
+ public static final int BUFFER_FLAG_SYNC_FRAME = 1;
- /** This indicated that the buffer marked as such contains codec
- initialization / codec specific data instead of media data.
- */
- public static final int FLAG_CODECCONFIG = 2;
+ /**
+ * This indicated that the buffer marked as such contains codec
+ * initialization / codec specific data instead of media data.
+ */
+ public static final int BUFFER_FLAG_CODEC_CONFIG = 2;
- /** This signals the end of stream, i.e. no buffers will be available
- after this, unless of course, {@link #flush} follows.
- */
- public static final int FLAG_EOS = 4;
+ /**
+ * This signals the end of stream, i.e. no buffers will be available
+ * after this, unless of course, {@link #flush} follows.
+ */
+ public static final int BUFFER_FLAG_END_OF_STREAM = 4;
- // The following mode constants MUST stay in sync with their equivalents
- // in media/hardware/CryptoAPI.h !
- public static final int MODE_UNENCRYPTED = 0;
- public static final int MODE_AES_CTR = 1;
-
- /** Instantiate a decoder supporting input data of the given mime type.
- * @param type The mime type of the input data.
- */
+ /**
+ * Instantiate a decoder supporting input data of the given mime type.
+ * @param type The mime type of the input data.
+ */
public static MediaCodec createDecoderByType(String type) {
return new MediaCodec(type, true /* nameIsType */, false /* encoder */);
}
- /** Instantiate an encoder supporting output data of the given mime type.
- * @param type The desired mime type of the output data.
- */
+ /**
+ * Instantiate an encoder supporting output data of the given mime type.
+ * @param type The desired mime type of the output data.
+ */
public static MediaCodec createEncoderByType(String type) {
return new MediaCodec(type, true /* nameIsType */, true /* encoder */);
}
- /** If you know the exact name of the component you want to instantiate
- use this method to instantiate it. Use with caution.
- Likely to be used with information obtained from {@link android.media.MediaCodecList}
- @param name The name of the codec to be instantiated.
- */
+ /**
+ * If you know the exact name of the component you want to instantiate
+ * use this method to instantiate it. Use with caution.
+ * Likely to be used with information obtained from {@link android.media.MediaCodecList}
+ * @param name The name of the codec to be instantiated.
+ */
public static MediaCodec createByCodecName(String name) {
return new MediaCodec(
name, false /* nameIsType */, false /* unused */);
@@ -217,38 +189,44 @@
native_finalize();
}
- // Make sure you call this when you're done to free up any opened
- // component instance instead of relying on the garbage collector
- // to do this for you at some point in the future.
+ /**
+ * Make sure you call this when you're done to free up any opened
+ * component instance instead of relying on the garbage collector
+ * to do this for you at some point in the future.
+ */
public native final void release();
- /** If this codec is to be used as an encoder, pass this flag.
- */
- public static int CONFIGURE_FLAG_ENCODE = 1;
+ /**
+ * If this codec is to be used as an encoder, pass this flag.
+ */
+ public static final int CONFIGURE_FLAG_ENCODE = 1;
- /** Configures a component.
+ /**
+ * Configures a component.
*
- * @param format The format of the input data (decoder) or the desired
- * format of the output data (encoder).
- * @param surface Specify a surface on which to render the output of this
- * decoder.
- * @param crypto Specify a crypto object to facilitate secure decryption
- * of the media data.
- * @param flags Specify {@link #CONFIGURE_FLAG_ENCODE} to configure the
- * component as an encoder.
- */
+ * @param format The format of the input data (decoder) or the desired
+ * format of the output data (encoder).
+ * @param surface Specify a surface on which to render the output of this
+ * decoder.
+ * @param crypto Specify a crypto object to facilitate secure decryption
+ * of the media data.
+ * @param flags Specify {@link #CONFIGURE_FLAG_ENCODE} to configure the
+ * component as an encoder.
+ */
public void configure(
- Map<String, Object> format,
+ MediaFormat format,
Surface surface, MediaCrypto crypto, int flags) {
+ Map<String, Object> formatMap = format.getMap();
+
String[] keys = null;
Object[] values = null;
if (format != null) {
- keys = new String[format.size()];
- values = new Object[format.size()];
+ keys = new String[formatMap.size()];
+ values = new Object[formatMap.size()];
int i = 0;
- for (Map.Entry<String, Object> entry: format.entrySet()) {
+ for (Map.Entry<String, Object> entry: formatMap.entrySet()) {
keys[i] = entry.getKey();
values[i] = entry.getValue();
++i;
@@ -262,22 +240,25 @@
String[] keys, Object[] values,
Surface surface, MediaCrypto crypto, int flags);
- /** After successfully configuring the component, call start. On return
- * you can query the component for its input/output buffers.
- */
+ /**
+ * After successfully configuring the component, call start. On return
+ * you can query the component for its input/output buffers.
+ */
public native final void start();
- /** Finish the decode/encode session, note that the codec instance
- * remains active and ready to be {@link #start}ed again.
- * To ensure that it is available to other client call {@link #release}
- * and don't just rely on garbage collection to eventually do this for you.
- */
+ /**
+ * Finish the decode/encode session, note that the codec instance
+ * remains active and ready to be {@link #start}ed again.
+ * To ensure that it is available to other client call {@link #release}
+ * and don't just rely on garbage collection to eventually do this for you.
+ */
public native final void stop();
- /** Flush both input and output ports of the component, all indices
- * previously returned in calls to {@link #dequeueInputBuffer} and
- * {@link #dequeueOutputBuffer} become invalid.
- */
+ /**
+ * Flush both input and output ports of the component, all indices
+ * previously returned in calls to {@link #dequeueInputBuffer} and
+ * {@link #dequeueOutputBuffer} become invalid.
+ */
public native final void flush();
public final static class CryptoException extends RuntimeException {
@@ -293,46 +274,55 @@
private int mErrorCode;
}
- /** After filling a range of the input buffer at the specified index
- * submit it to the component.
+ /**
+ * After filling a range of the input buffer at the specified index
+ * submit it to the component.
*
- * Many decoders require the actual compressed data stream to be
- * preceded by "codec specific data", i.e. setup data used to initialize
- * the codec such as PPS/SPS in the case of AVC video or code tables
- * in the case of vorbis audio.
- * The class {@link android.media.MediaExtractor} provides codec
- * specific data as part of
- * the returned track format in entries named "csd-0", "csd-1" ...
+ * Many decoders require the actual compressed data stream to be
+ * preceded by "codec specific data", i.e. setup data used to initialize
+ * the codec such as PPS/SPS in the case of AVC video or code tables
+ * in the case of vorbis audio.
+ * The class {@link android.media.MediaExtractor} provides codec
+ * specific data as part of
+ * the returned track format in entries named "csd-0", "csd-1" ...
*
- * These buffers should be submitted using the flag {@link #FLAG_CODECCONFIG}.
+ * These buffers should be submitted using the flag {@link #BUFFER_FLAG_CODEC_CONFIG}.
*
- * To indicate that this is the final piece of input data (or rather that
- * no more input data follows unless the decoder is subsequently flushed)
- * specify the flag {@link #FLAG_EOS}.
+ * To indicate that this is the final piece of input data (or rather that
+ * no more input data follows unless the decoder is subsequently flushed)
+ * specify the flag {@link #BUFFER_FLAG_END_OF_STREAM}.
*
- * @param index The index of a client-owned input buffer previously returned
- * in a call to {@link #dequeueInputBuffer}.
- * @param offset The byte offset into the input buffer at which the data starts.
- * @param size The number of bytes of valid input data.
- * @param presentationTimeUs The time at which this buffer should be rendered.
- * @param flags A bitmask of flags {@link #FLAG_SYNCFRAME},
- * {@link #FLAG_CODECCONFIG} or {@link #FLAG_EOS}.
- * @throws CryptoException if a crypto object has been specified in
- * {@link #configure}
- */
+ * @param index The index of a client-owned input buffer previously returned
+ * in a call to {@link #dequeueInputBuffer}.
+ * @param offset The byte offset into the input buffer at which the data starts.
+ * @param size The number of bytes of valid input data.
+ * @param presentationTimeUs The time at which this buffer should be rendered.
+ * @param flags A bitmask of flags {@link #BUFFER_FLAG_SYNC_FRAME},
+ * {@link #BUFFER_FLAG_CODEC_CONFIG} or {@link #BUFFER_FLAG_END_OF_STREAM}.
+ * @throws CryptoException if a crypto object has been specified in
+ * {@link #configure}
+ */
public native final void queueInputBuffer(
int index,
int offset, int size, long presentationTimeUs, int flags)
throws CryptoException;
- /** Metadata describing the structure of a (at least partially) encrypted
- * input sample.
- * A buffer's data is considered to be partitioned into "subSamples",
- * each subSample starts with a (potentially empty) run of plain,
- * unencrypted bytes followed by a (also potentially empty) run of
- * encrypted bytes.
- * numBytesOfClearData can be null to indicate that all data is encrypted.
- */
+ // The following mode constants MUST stay in sync with their equivalents
+ // in media/hardware/CryptoAPI.h !
+ public static final int CRYPTO_MODE_UNENCRYPTED = 0;
+ public static final int CRYPTO_MODE_AES_CTR = 1;
+
+ /**
+ * Metadata describing the structure of a (at least partially) encrypted
+ * input sample.
+ * A buffer's data is considered to be partitioned into "subSamples",
+ * each subSample starts with a (potentially empty) run of plain,
+ * unencrypted bytes followed by a (also potentially empty) run of
+ * encrypted bytes.
+ * numBytesOfClearData can be null to indicate that all data is encrypted.
+ * This information encapsulates per-sample metadata as outlined in
+ * ISO/IEC FDIS 23001-7:2011 "Common encryption in ISO base media file format files".
+ */
public final static class CryptoInfo {
public void set(
int newNumSubSamples,
@@ -349,28 +339,44 @@
mode = newMode;
}
- /** The number of subSamples that make up the buffer's contents. */
+ /**
+ * The number of subSamples that make up the buffer's contents.
+ */
public int numSubSamples;
- /** The number of leading unencrypted bytes in each subSample. */
+ /**
+ * The number of leading unencrypted bytes in each subSample.
+ */
public int[] numBytesOfClearData;
- /** The number of trailing encrypted bytes in each subSample. */
+ /**
+ * The number of trailing encrypted bytes in each subSample.
+ */
public int[] numBytesOfEncryptedData;
- /** A 16-byte opaque key */
+ /**
+ * A 16-byte opaque key
+ */
public byte[] key;
- /** A 16-byte initialization vector */
+ /**
+ * A 16-byte initialization vector
+ */
public byte[] iv;
- /** The type of encryption that has been applied */
+ /**
+ * The type of encryption that has been applied,
+ * see {@link #CRYPTO_MODE_UNENCRYPTED} and {@link #CRYPTO_MODE_AES_CTR}.
+ */
public int mode;
};
- /** Similar to {@link #queueInputBuffer} but submits a buffer that is
- * potentially encrypted.
- * @param index The index of a client-owned input buffer previously returned
- * in a call to {@link #dequeueInputBuffer}.
- * @param offset The byte offset into the input buffer at which the data starts.
- * @param presentationTimeUs The time at which this buffer should be rendered.
- * @param flags A bitmask of flags {@link #FLAG_SYNCFRAME},
- * {@link #FLAG_CODECCONFIG} or {@link #FLAG_EOS}.
+ /**
+ * Similar to {@link #queueInputBuffer} but submits a buffer that is
+ * potentially encrypted.
+ * @param index The index of a client-owned input buffer previously returned
+ * in a call to {@link #dequeueInputBuffer}.
+ * @param offset The byte offset into the input buffer at which the data starts.
+ * @param info Metadata required to facilitate decryption, the object can be
+ * reused immediately after this call returns.
+ * @param presentationTimeUs The time at which this buffer should be rendered.
+ * @param flags A bitmask of flags {@link #BUFFER_FLAG_SYNC_FRAME},
+ * {@link #BUFFER_FLAG_CODEC_CONFIG} or {@link #BUFFER_FLAG_END_OF_STREAM}.
*/
public native final void queueSecureInputBuffer(
int index,
@@ -379,80 +385,97 @@
long presentationTimeUs,
int flags) throws CryptoException;
- /** Returns the index of an input buffer to be filled with valid data
- * or -1 if no such buffer is currently available.
- * This method will return immediately if timeoutUs == 0, wait indefinitely
- * for the availability of an input buffer if timeoutUs < 0 or wait up
- * to "timeoutUs" microseconds if timeoutUs > 0.
- * @param timeoutUs The timeout in microseconds, a negative timeout indicates "infinite".
- */
+ /**
+ * Returns the index of an input buffer to be filled with valid data
+ * or -1 if no such buffer is currently available.
+ * This method will return immediately if timeoutUs == 0, wait indefinitely
+ * for the availability of an input buffer if timeoutUs < 0 or wait up
+ * to "timeoutUs" microseconds if timeoutUs > 0.
+ * @param timeoutUs The timeout in microseconds, a negative timeout indicates "infinite".
+ */
public native final int dequeueInputBuffer(long timeoutUs);
- /** If a non-negative timeout had been specified in the call
+ /**
+ * If a non-negative timeout had been specified in the call
* to {@link #dequeueOutputBuffer}, indicates that the call timed out.
- */
+ */
public static final int INFO_TRY_AGAIN_LATER = -1;
- /** The output format has changed, subsequent data will follow the new
- * format. {@link #getOutputFormat} returns the new format.
- */
+ /**
+ * The output format has changed, subsequent data will follow the new
+ * format. {@link #getOutputFormat} returns the new format.
+ */
public static final int INFO_OUTPUT_FORMAT_CHANGED = -2;
- /** The output buffers have changed, the client must refer to the new
- * set of output buffers returned by {@link #getOutputBuffers} from
- * this point on.
- */
+ /**
+ * The output buffers have changed, the client must refer to the new
+ * set of output buffers returned by {@link #getOutputBuffers} from
+ * this point on.
+ */
public static final int INFO_OUTPUT_BUFFERS_CHANGED = -3;
- /** Dequeue an output buffer, block at most "timeoutUs" microseconds.
- * Returns the index of an output buffer that has been successfully
- * decoded or one of the INFO_* constants below.
- * @param info Will be filled with buffer meta data.
- * @param timeoutUs The timeout in microseconds, a negative timeout indicates "infinite".
- */
+ /**
+ * Dequeue an output buffer, block at most "timeoutUs" microseconds.
+ * Returns the index of an output buffer that has been successfully
+ * decoded or one of the INFO_* constants below.
+ * @param info Will be filled with buffer meta data.
+ * @param timeoutUs The timeout in microseconds, a negative timeout indicates "infinite".
+ */
public native final int dequeueOutputBuffer(
BufferInfo info, long timeoutUs);
- /** If you are done with a buffer, use this call to return the buffer to
- * the codec. If you previously specified a surface when configuring this
- * video decoder you can optionally render the buffer.
- * @param index The index of a client-owned output buffer previously returned
- * in a call to {@link #dequeueOutputBuffer}.
- * @param render If a valid surface was specified when configuring the codec,
- * passing true renders this output buffer to the surface.
- */
+ /**
+ * If you are done with a buffer, use this call to return the buffer to
+ * the codec. If you previously specified a surface when configuring this
+ * video decoder you can optionally render the buffer.
+ * @param index The index of a client-owned output buffer previously returned
+ * in a call to {@link #dequeueOutputBuffer}.
+ * @param render If a valid surface was specified when configuring the codec,
+ * passing true renders this output buffer to the surface.
+ */
public native final void releaseOutputBuffer(int index, boolean render);
- /** Call this after dequeueOutputBuffer signals a format change by returning
- * {@link #INFO_OUTPUT_FORMAT_CHANGED}
+ /**
+ * Call this after dequeueOutputBuffer signals a format change by returning
+ * {@link #INFO_OUTPUT_FORMAT_CHANGED}
*/
- public native final Map<String, Object> getOutputFormat();
+ public final MediaFormat getOutputFormat() {
+ return new MediaFormat(getOutputFormatNative());
+ }
- /** Call this after start() returns.
+ private native final Map<String, Object> getOutputFormatNative();
+
+ /**
+ * Call this after start() returns.
*/
public ByteBuffer[] getInputBuffers() {
return getBuffers(true /* input */);
}
- /** Call this after start() returns and whenever dequeueOutputBuffer
- * signals an output buffer change by returning
- * {@link #INFO_OUTPUT_BUFFERS_CHANGED}
+ /**
+ * Call this after start() returns and whenever dequeueOutputBuffer
+ * signals an output buffer change by returning
+ * {@link #INFO_OUTPUT_BUFFERS_CHANGED}
*/
public ByteBuffer[] getOutputBuffers() {
return getBuffers(false /* input */);
}
- /** The content is scaled to the surface dimensions */
+ /**
+ * The content is scaled to the surface dimensions
+ */
public static final int VIDEO_SCALING_MODE_SCALE_TO_FIT = 1;
- /** The content is scaled, maintaining its aspect ratio, the whole
- surface area is used, content may be cropped
- */
+ /**
+ * The content is scaled, maintaining its aspect ratio, the whole
+ * surface area is used, content may be cropped
+ */
public static final int VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING = 2;
- /** If a surface has been specified in a previous call to {@link #configure}
- specifies the scaling mode to use. The default is "scale to fit".
- */
+ /**
+ * If a surface has been specified in a previous call to {@link #configure}
+ * specifies the scaling mode to use. The default is "scale to fit".
+ */
public native final void setVideoScalingMode(int mode);
private native final ByteBuffer[] getBuffers(boolean input);
diff --git a/media/java/android/media/MediaCodecInfo.java b/media/java/android/media/MediaCodecInfo.java
new file mode 100644
index 0000000..4398642
--- /dev/null
+++ b/media/java/android/media/MediaCodecInfo.java
@@ -0,0 +1,213 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.media;
+
+public final class MediaCodecInfo {
+ private int mIndex;
+
+ /* package private */ MediaCodecInfo(int index) {
+ mIndex = index;
+ }
+
+ /**
+ * Retrieve the codec name.
+ */
+ public final String getName() {
+ return MediaCodecList.getCodecName(mIndex);
+ }
+
+ /**
+ * Query if the codec is an encoder.
+ */
+ public final boolean isEncoder() {
+ return MediaCodecList.isEncoder(mIndex);
+ }
+
+ /**
+ * Query the media types supported by the codec.
+ */
+ public final String[] getSupportedTypes() {
+ return MediaCodecList.getSupportedTypes(mIndex);
+ }
+
+ public static final class CodecCapabilities {
+ public CodecProfileLevel[] profileLevels;
+
+ // from OMX_COLOR_FORMATTYPE
+ public final static int COLOR_FormatMonochrome = 1;
+ public final static int COLOR_Format8bitRGB332 = 2;
+ public final static int COLOR_Format12bitRGB444 = 3;
+ public final static int COLOR_Format16bitARGB4444 = 4;
+ public final static int COLOR_Format16bitARGB1555 = 5;
+ public final static int COLOR_Format16bitRGB565 = 6;
+ public final static int COLOR_Format16bitBGR565 = 7;
+ public final static int COLOR_Format18bitRGB666 = 8;
+ public final static int COLOR_Format18bitARGB1665 = 9;
+ public final static int COLOR_Format19bitARGB1666 = 10;
+ public final static int COLOR_Format24bitRGB888 = 11;
+ public final static int COLOR_Format24bitBGR888 = 12;
+ public final static int COLOR_Format24bitARGB1887 = 13;
+ public final static int COLOR_Format25bitARGB1888 = 14;
+ public final static int COLOR_Format32bitBGRA8888 = 15;
+ public final static int COLOR_Format32bitARGB8888 = 16;
+ public final static int COLOR_FormatYUV411Planar = 17;
+ public final static int COLOR_FormatYUV411PackedPlanar = 18;
+ public final static int COLOR_FormatYUV420Planar = 19;
+ public final static int COLOR_FormatYUV420PackedPlanar = 20;
+ public final static int COLOR_FormatYUV420SemiPlanar = 21;
+ public final static int COLOR_FormatYUV422Planar = 22;
+ public final static int COLOR_FormatYUV422PackedPlanar = 23;
+ public final static int COLOR_FormatYUV422SemiPlanar = 24;
+ public final static int COLOR_FormatYCbYCr = 25;
+ public final static int COLOR_FormatYCrYCb = 26;
+ public final static int COLOR_FormatCbYCrY = 27;
+ public final static int COLOR_FormatCrYCbY = 28;
+ public final static int COLOR_FormatYUV444Interleaved = 29;
+ public final static int COLOR_FormatRawBayer8bit = 30;
+ public final static int COLOR_FormatRawBayer10bit = 31;
+ public final static int COLOR_FormatRawBayer8bitcompressed = 32;
+ public final static int COLOR_FormatL2 = 33;
+ public final static int COLOR_FormatL4 = 34;
+ public final static int COLOR_FormatL8 = 35;
+ public final static int COLOR_FormatL16 = 36;
+ public final static int COLOR_FormatL24 = 37;
+ public final static int COLOR_FormatL32 = 38;
+ public final static int COLOR_FormatYUV420PackedSemiPlanar = 39;
+ public final static int COLOR_FormatYUV422PackedSemiPlanar = 40;
+ public final static int COLOR_Format18BitBGR666 = 41;
+ public final static int COLOR_Format24BitARGB6666 = 42;
+ public final static int COLOR_Format24BitABGR6666 = 43;
+
+ public final static int COLOR_TI_FormatYUV420PackedSemiPlanar = 0x7f000100;
+ public final static int COLOR_QCOM_FormatYUV420SemiPlanar = 0x7fa30c00;
+
+ /**
+ * Defined in the OpenMAX IL specs, color format values are drawn from
+ * OMX_COLOR_FORMATTYPE.
+ */
+ public int[] colorFormats;
+ };
+
+ public static final class CodecProfileLevel {
+ // from OMX_VIDEO_AVCPROFILETYPE
+ public static final int AVCProfileBaseline = 0x01;
+ public static final int AVCProfileMain = 0x02;
+ public static final int AVCProfileExtended = 0x04;
+ public static final int AVCProfileHigh = 0x08;
+ public static final int AVCProfileHigh10 = 0x10;
+ public static final int AVCProfileHigh422 = 0x20;
+ public static final int AVCProfileHigh444 = 0x40;
+
+ // from OMX_VIDEO_AVCLEVELTYPE
+ public static final int AVCLevel1 = 0x01;
+ public static final int AVCLevel1b = 0x02;
+ public static final int AVCLevel11 = 0x04;
+ public static final int AVCLevel12 = 0x08;
+ public static final int AVCLevel13 = 0x10;
+ public static final int AVCLevel2 = 0x20;
+ public static final int AVCLevel21 = 0x40;
+ public static final int AVCLevel22 = 0x80;
+ public static final int AVCLevel3 = 0x100;
+ public static final int AVCLevel31 = 0x200;
+ public static final int AVCLevel32 = 0x400;
+ public static final int AVCLevel4 = 0x800;
+ public static final int AVCLevel41 = 0x1000;
+ public static final int AVCLevel42 = 0x2000;
+ public static final int AVCLevel5 = 0x4000;
+ public static final int AVCLevel51 = 0x8000;
+
+ // from OMX_VIDEO_H263PROFILETYPE
+ public static final int H263ProfileBaseline = 0x01;
+ public static final int H263ProfileH320Coding = 0x02;
+ public static final int H263ProfileBackwardCompatible = 0x04;
+ public static final int H263ProfileISWV2 = 0x08;
+ public static final int H263ProfileISWV3 = 0x10;
+ public static final int H263ProfileHighCompression = 0x20;
+ public static final int H263ProfileInternet = 0x40;
+ public static final int H263ProfileInterlace = 0x80;
+ public static final int H263ProfileHighLatency = 0x100;
+
+ // from OMX_VIDEO_H263LEVELTYPE
+ public static final int H263Level10 = 0x01;
+ public static final int H263Level20 = 0x02;
+ public static final int H263Level30 = 0x04;
+ public static final int H263Level40 = 0x08;
+ public static final int H263Level45 = 0x10;
+ public static final int H263Level50 = 0x20;
+ public static final int H263Level60 = 0x40;
+ public static final int H263Level70 = 0x80;
+
+ // from OMX_VIDEO_MPEG4PROFILETYPE
+ public static final int MPEG4ProfileSimple = 0x01;
+ public static final int MPEG4ProfileSimpleScalable = 0x02;
+ public static final int MPEG4ProfileCore = 0x04;
+ public static final int MPEG4ProfileMain = 0x08;
+ public static final int MPEG4ProfileNbit = 0x10;
+ public static final int MPEG4ProfileScalableTexture = 0x20;
+ public static final int MPEG4ProfileSimpleFace = 0x40;
+ public static final int MPEG4ProfileSimpleFBA = 0x80;
+ public static final int MPEG4ProfileBasicAnimated = 0x100;
+ public static final int MPEG4ProfileHybrid = 0x200;
+ public static final int MPEG4ProfileAdvancedRealTime = 0x400;
+ public static final int MPEG4ProfileCoreScalable = 0x800;
+ public static final int MPEG4ProfileAdvancedCoding = 0x1000;
+ public static final int MPEG4ProfileAdvancedCore = 0x2000;
+ public static final int MPEG4ProfileAdvancedScalable = 0x4000;
+ public static final int MPEG4ProfileAdvancedSimple = 0x8000;
+
+ // from OMX_VIDEO_MPEG4LEVELTYPE
+ public static final int MPEG4Level0 = 0x01;
+ public static final int MPEG4Level0b = 0x02;
+ public static final int MPEG4Level1 = 0x04;
+ public static final int MPEG4Level2 = 0x08;
+ public static final int MPEG4Level3 = 0x10;
+ public static final int MPEG4Level4 = 0x20;
+ public static final int MPEG4Level4a = 0x40;
+ public static final int MPEG4Level5 = 0x80;
+
+ // from OMX_AUDIO_AACPROFILETYPE
+ public static final int AACObjectMain = 1;
+ public static final int AACObjectLC = 2;
+ public static final int AACObjectSSR = 3;
+ public static final int AACObjectLTP = 4;
+ public static final int AACObjectHE = 5;
+ public static final int AACObjectScalable = 6;
+ public static final int AACObjectERLC = 17;
+ public static final int AACObjectLD = 23;
+ public static final int AACObjectHE_PS = 29;
+ public static final int AACObjectELD = 39;
+
+ /**
+ * Defined in the OpenMAX IL specs, depending on the type of media
+ * this can be OMX_VIDEO_AVCPROFILETYPE, OMX_VIDEO_H263PROFILETYPE,
+ * or OMX_VIDEO_MPEG4PROFILETYPE.
+ */
+ public int profile;
+
+ /**
+ * Defined in the OpenMAX IL specs, depending on the type of media
+ * this can be OMX_VIDEO_AVCLEVELTYPE, OMX_VIDEO_H263LEVELTYPE
+ * or OMX_VIDEO_MPEG4LEVELTYPE.
+ */
+ public int level;
+ };
+
+ public final CodecCapabilities getCapabilitiesForType(
+ String type) {
+ return MediaCodecList.getCodecCapabilities(mIndex, type);
+ }
+}
diff --git a/media/java/android/media/MediaCodecList.java b/media/java/android/media/MediaCodecList.java
index 1772e9c..1749934 100644
--- a/media/java/android/media/MediaCodecList.java
+++ b/media/java/android/media/MediaCodecList.java
@@ -16,49 +16,35 @@
package android.media;
+import android.media.MediaCodecInfo;
+
/**
* MediaCodecList class can be used to enumerate available codecs,
* find a codec supporting a given format and query the capabilities
* of a given codec.
-*/
+ */
final public class MediaCodecList {
- /** Count the number of available codecs.
- */
- public static native final int countCodecs();
+ /**
+ * Count the number of available codecs.
+ */
+ public static native final int getCodecCount();
- /** Retrieve the codec name at the specified index. */
- public static native final String getCodecName(int index);
+ public static final MediaCodecInfo getCodecInfoAt(int index) {
+ if (index < 0 || index > getCodecCount()) {
+ throw new IllegalArgumentException();
+ }
- /** Query if the codec at the specified index is an encoder. */
- public static native final boolean isEncoder(int index);
+ return new MediaCodecInfo(index);
+ }
- /** Query the media types supported by the codec at the specified index */
- public static native final String[] getSupportedTypes(int index);
+ /* package private */ static native final String getCodecName(int index);
- public static final class CodecProfileLevel {
- /** Defined in the OpenMAX IL specs, depending on the type of media
- * this can be OMX_VIDEO_AVCPROFILETYPE, OMX_VIDEO_H263PROFILETYPE
- * or OMX_VIDEO_MPEG4PROFILETYPE.
- */
- public int profile;
+ /* package private */ static native final boolean isEncoder(int index);
- /** Defined in the OpenMAX IL specs, depending on the type of media
- * this can be OMX_VIDEO_AVCLEVELTYPE, OMX_VIDEO_H263LEVELTYPE
- * or OMX_VIDEO_MPEG4LEVELTYPE.
- */
- public int level;
- };
+ /* package private */ static native final String[] getSupportedTypes(int index);
- public static final class CodecCapabilities {
- public CodecProfileLevel[] profileLevels;
-
- /** Defined in the OpenMAX IL specs, color format values are drawn from
- * OMX_COLOR_FORMATTYPE.
- */
- public int[] colorFormats;
- };
- public static native final CodecCapabilities getCodecCapabilities(
- int index, String type);
+ /* package private */ static native final MediaCodecInfo.CodecCapabilities
+ getCodecCapabilities(int index, String type);
private static native final void native_init();
diff --git a/media/java/android/media/MediaCrypto.java b/media/java/android/media/MediaCrypto.java
index b84ed72..40a1326 100644
--- a/media/java/android/media/MediaCrypto.java
+++ b/media/java/android/media/MediaCrypto.java
@@ -16,6 +16,9 @@
package android.media;
+import android.media.MediaCryptoException;
+import java.util.UUID;
+
/**
* MediaCrypto class can be used in conjunction with {@link android.media.MediaCodec}
* to decode encrypted media data.
@@ -24,27 +27,47 @@
* the method {@link #isCryptoSchemeSupported} can be used to query if a given
* scheme is supported on the device.
*
-*/
+ */
public final class MediaCrypto {
- /** Query if the given scheme identified by its UUID is supported on
- * this device.
- * @param uuid The UUID of the crypto scheme.
- */
- public static final native boolean isCryptoSchemeSupported(byte[] uuid);
-
- /** Instantiate a MediaCrypto object using opaque, crypto scheme specific
- * data.
- * @param uuid The UUID of the crypto scheme.
- * @param initData Opaque initialization data specific to the crypto scheme.
- */
- public MediaCrypto(byte[] uuid, byte[] initData) throws RuntimeException {
- native_setup(uuid, initData);
+ /**
+ * Query if the given scheme identified by its UUID is supported on
+ * this device.
+ * @param uuid The UUID of the crypto scheme.
+ */
+ public static final boolean isCryptoSchemeSupported(UUID uuid) {
+ return isCryptoSchemeSupportedNative(getByteArrayFromUUID(uuid));
}
- /** Query if the crypto scheme requires the use of a secure decoder
- * to decode data of the given mime type.
- * @param mime The mime type of the media data
- */
+ private static final byte[] getByteArrayFromUUID(UUID uuid) {
+ long msb = uuid.getMostSignificantBits();
+ long lsb = uuid.getLeastSignificantBits();
+
+ byte[] uuidBytes = new byte[16];
+ for (int i = 0; i < 8; ++i) {
+ uuidBytes[i] = (byte)(msb >>> (8 * (7 - i)));
+ uuidBytes[8 + i] = (byte)(lsb >>> (8 * (7 - i)));
+ }
+
+ return uuidBytes;
+ }
+
+ private static final native boolean isCryptoSchemeSupportedNative(byte[] uuid);
+
+ /**
+ * Instantiate a MediaCrypto object using opaque, crypto scheme specific
+ * data.
+ * @param uuid The UUID of the crypto scheme.
+ * @param initData Opaque initialization data specific to the crypto scheme.
+ */
+ public MediaCrypto(UUID uuid, byte[] initData) throws MediaCryptoException {
+ native_setup(getByteArrayFromUUID(uuid), initData);
+ }
+
+ /**
+ * Query if the crypto scheme requires the use of a secure decoder
+ * to decode data of the given mime type.
+ * @param mime The mime type of the media data
+ */
public final native boolean requiresSecureDecoderComponent(String mime);
@Override
@@ -54,7 +77,10 @@
public native final void release();
private static native final void native_init();
- private native final void native_setup(byte[] uuid, byte[] initData);
+
+ private native final void native_setup(byte[] uuid, byte[] initData)
+ throws MediaCryptoException;
+
private native final void native_finalize();
static {
diff --git a/media/java/android/media/MediaCryptoException.java b/media/java/android/media/MediaCryptoException.java
new file mode 100644
index 0000000..44c5222
--- /dev/null
+++ b/media/java/android/media/MediaCryptoException.java
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.media;
+
+/**
+ * Exception thrown if MediaCrypto object could not be instantiated for
+ * whatever reason.
+ */
+public final class MediaCryptoException extends Exception {
+ public MediaCryptoException(String detailMessage) {
+ super(detailMessage);
+ }
+}
diff --git a/media/java/android/media/MediaExtractor.java b/media/java/android/media/MediaExtractor.java
index 5fe58a8..58b30db 100644
--- a/media/java/android/media/MediaExtractor.java
+++ b/media/java/android/media/MediaExtractor.java
@@ -20,6 +20,7 @@
import android.content.Context;
import android.content.res.AssetFileDescriptor;
import android.media.MediaCodec;
+import android.media.MediaFormat;
import android.net.Uri;
import java.io.FileDescriptor;
import java.io.IOException;
@@ -33,7 +34,7 @@
* <pre>
* MediaExtractor extractor = new MediaExtractor();
* extractor.setDataSource(...);
- * int numTracks = extractor.countTracks();
+ * int numTracks = extractor.getTrackCount();
* for (int i = 0; i < numTracks; ++i) {
* Map%lt;String, Object> format = extractor.getTrackFormat(i);
* String mime = (String)format.get("mime");
@@ -52,7 +53,7 @@
* extractor.release();
* extractor = null;
* </pre>
-*/
+ */
final public class MediaExtractor {
public MediaExtractor() {
native_setup();
@@ -174,105 +175,134 @@
native_finalize();
}
- /** Make sure you call this when you're done to free up any resources
- * instead of relying on the garbage collector to do this for you at
- * some point in the future.
- */
+ /**
+ * Make sure you call this when you're done to free up any resources
+ * instead of relying on the garbage collector to do this for you at
+ * some point in the future.
+ */
public native final void release();
- /** Count the number of tracks found in the data source.
+ /**
+ * Count the number of tracks found in the data source.
*/
- public native int countTracks();
+ public native final int getTrackCount();
- /** Get the track format at the specified index.
- * More detail on the representation can be found at {@link android.media.MediaCodec}
- */
- public native Map<String, Object> getTrackFormat(int index);
+ /**
+ * Get the track format at the specified index.
+ * More detail on the representation can be found at {@link android.media.MediaCodec}
+ */
+ public MediaFormat getTrackFormat(int index) {
+ return new MediaFormat(getTrackFormatNative(index));
+ }
- /** Subsequent calls to {@link #readSampleData}, {@link #getSampleTrackIndex} and
- * {@link #getSampleTime} only retrieve information for the subset of tracks
- * selected.
- * Selecting the same track multiple times has no effect, the track is
- * only selected once.
- */
+ private native Map<String, Object> getTrackFormatNative(int index);
+
+ /**
+ * Subsequent calls to {@link #readSampleData}, {@link #getSampleTrackIndex} and
+ * {@link #getSampleTime} only retrieve information for the subset of tracks
+ * selected.
+ * Selecting the same track multiple times has no effect, the track is
+ * only selected once.
+ */
public native void selectTrack(int index);
- /** Subsequent calls to {@link #readSampleData}, {@link #getSampleTrackIndex} and
- * {@link #getSampleTime} only retrieve information for the subset of tracks
- * selected.
- */
+ /**
+ * Subsequent calls to {@link #readSampleData}, {@link #getSampleTrackIndex} and
+ * {@link #getSampleTime} only retrieve information for the subset of tracks
+ * selected.
+ */
public native void unselectTrack(int index);
- /** If possible, seek to a sync sample at or before the specified time */
+ /**
+ * If possible, seek to a sync sample at or before the specified time
+ */
public static final int SEEK_TO_PREVIOUS_SYNC = 0;
- /** If possible, seek to a sync sample at or after the specified time */
+ /**
+ * If possible, seek to a sync sample at or after the specified time
+ */
public static final int SEEK_TO_NEXT_SYNC = 1;
- /** If possible, seek to the sync sample closest to the specified time */
+ /**
+ * If possible, seek to the sync sample closest to the specified time
+ */
public static final int SEEK_TO_CLOSEST_SYNC = 2;
- /** If possible, seek to a sample closest to the specified time, which may
- * NOT be a sync sample!
- */
+ /**
+ * If possible, seek to a sample closest to the specified time, which may
+ * NOT be a sync sample!
+ */
public static final int SEEK_TO_CLOSEST = 3;
- /** All selected tracks seek near the requested time according to the
- * specified mode.
- */
+ /**
+ * All selected tracks seek near the requested time according to the
+ * specified mode.
+ */
public native void seekTo(long timeUs, int mode);
- /** Advance to the next sample. Returns false if no more sample data
- * is available (end of stream).
+ /**
+ * Advance to the next sample. Returns false if no more sample data
+ * is available (end of stream).
*/
public native boolean advance();
- /** Retrieve the current encoded sample and store it in the byte buffer
- * starting at the given offset. Returns the sample size (or -1 if
- * no more samples are available).
- */
+ /**
+ * Retrieve the current encoded sample and store it in the byte buffer
+ * starting at the given offset. Returns the sample size (or -1 if
+ * no more samples are available).
+ */
public native int readSampleData(ByteBuffer byteBuf, int offset);
- /** Returns the track index the current sample originates from (or -1
- * if no more samples are available)
- */
+ /**
+ * Returns the track index the current sample originates from (or -1
+ * if no more samples are available)
+ */
public native int getSampleTrackIndex();
- /** Returns the current sample's presentation time in microseconds.
- * or -1 if no more samples are available.
- */
+ /**
+ * Returns the current sample's presentation time in microseconds.
+ * or -1 if no more samples are available.
+ */
public native long getSampleTime();
// Keep these in sync with their equivalents in NuMediaExtractor.h
- /** The sample is a sync sample */
+ /**
+ * The sample is a sync sample
+ */
public static final int SAMPLE_FLAG_SYNC = 1;
- /** The sample is (at least partially) encrypted, see also the documentation
- * for {@link android.media.MediaCodec#queueSecureInputBuffer}
- */
+ /**
+ * The sample is (at least partially) encrypted, see also the documentation
+ * for {@link android.media.MediaCodec#queueSecureInputBuffer}
+ */
public static final int SAMPLE_FLAG_ENCRYPTED = 2;
- /** Returns the current sample's flags. */
+ /**
+ * Returns the current sample's flags.
+ */
public native int getSampleFlags();
- /** If the sample flags indicate that the current sample is at least
- * partially encrypted, this call returns relevant information about
- * the structure of the sample data required for decryption.
- * @param info The android.media.MediaCodec.CryptoInfo structure
- * to be filled in.
- * @return true iff the sample flags contain {@link #SAMPLE_FLAG_ENCRYPTED}
- */
+ /**
+ * If the sample flags indicate that the current sample is at least
+ * partially encrypted, this call returns relevant information about
+ * the structure of the sample data required for decryption.
+ * @param info The android.media.MediaCodec.CryptoInfo structure
+ * to be filled in.
+ * @return true iff the sample flags contain {@link #SAMPLE_FLAG_ENCRYPTED}
+ */
public native boolean getSampleCryptoInfo(MediaCodec.CryptoInfo info);
- /** Returns an estimate of how much data is presently cached in memory
- expressed in microseconds. Returns -1 if that information is unavailable
- or not applicable (no cache).
+ /**
+ * Returns an estimate of how much data is presently cached in memory
+ * expressed in microseconds. Returns -1 if that information is unavailable
+ * or not applicable (no cache).
*/
public native long getCachedDuration();
- /** Returns true iff we are caching data and the cache has reached the
- * end of the data stream (for now, a future seek may of course restart
- * the fetching of data).
- * This API only returns a meaningful result if {link #getCachedDuration}
- * indicates the presence of a cache, i.e. does NOT return -1.
- */
+ /**
+ * Returns true iff we are caching data and the cache has reached the
+ * end of the data stream (for now, a future seek may of course restart
+ * the fetching of data).
+ * This API only returns a meaningful result if {link #getCachedDuration}
+ * indicates the presence of a cache, i.e. does NOT return -1.
+ */
public native boolean hasCacheReachedEndOfStream();
private static native final void native_init();
diff --git a/media/java/android/media/MediaFormat.java b/media/java/android/media/MediaFormat.java
new file mode 100644
index 0000000..df77c9e
--- /dev/null
+++ b/media/java/android/media/MediaFormat.java
@@ -0,0 +1,290 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.media;
+
+import java.nio.ByteBuffer;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Encapsulates the information describing the format of media data,
+ * be it audio or video.
+ *
+ * The format of the media data is specified as string/value pairs.
+ *
+ * Keys common to all formats:
+ *
+ * <table>
+ * <tr><th>Name</th><th>Value Type</th><th>Description</th></tr>
+ * <tr><td>{@link #KEY_MIME}</td><td>String</td><td>The type of the format.</td></tr>
+ * <tr><td>{@link #KEY_MAX_INPUT_SIZE}</td><td>Integer</td><td>optional, maximum size of a buffer of input data</td></tr>
+ * <tr><td>{@link #KEY_BIT_RATE}</td><td>Integer</td><td><b>encoder-only</b>, desired bitrate in bits/second</td></tr>
+ * </table>
+ *
+ * Video formats have the following keys:
+ * <table>
+ * <tr><th>Name</th><th>Value Type</th><th>Description</th></tr>
+ * <tr><td>{@link #KEY_WIDTH}</td><td>Integer</td><td></td></tr>
+ * <tr><td>{@link #KEY_HEIGHT}</td><td>Integer</td><td></td></tr>
+ * <tr><td>{@link #KEY_COLOR_FORMAT}</td><td>Integer</td><td><b>encoder-only</b></td></tr>
+ * <tr><td>{@link #KEY_FRAME_RATE}</td><td>Integer or Float</td><td><b>encoder-only</b></td></tr>
+ * <tr><td>{@link #KEY_I_FRAME_INTERVAL}</td><td>Integer</td><td><b>encoder-only</b></td></tr>
+ * </table>
+ *
+ * Audio formats have the following keys:
+ * <table>
+ * <tr><th>Name</th><th>Value Type</th><th>Description</th></tr>
+ * <tr><td>{@link #KEY_CHANNEL_COUNT}</td><td>Integer</td><td></td></tr>
+ * <tr><td>{@link #KEY_SAMPLE_RATE}</td><td>Integer</td><td></td></tr>
+ * <tr><td>{@link #KEY_IS_ADTS}</td><td>Integer</td><td>optional, if content is AAC audio, setting this key to 1 indicates that each audio frame is prefixed by the ADTS header.</td></tr>
+ * <tr><td>{@link #KEY_AAC_PROFILE}</td><td>Integer</td><td><b>encoder-only</b>, optional, if content is AAC audio, specifies the desired profile.</td></tr>
+ * <tr><td>{@link #KEY_CHANNEL_MASK}</td><td>Integer</td><td>A mask of audio channel assignments</td></tr>
+ * </table>
+ *
+ */
+public final class MediaFormat {
+ private Map<String, Object> mMap;
+
+ /**
+ * A key describing the mime type of the MediaFormat.
+ * The associated value is a string.
+ */
+ public static final String KEY_MIME = "mime";
+
+ /**
+ * A key describing the sample rate of an audio format.
+ * The associated value is an integer
+ */
+ public static final String KEY_SAMPLE_RATE = "sample-rate";
+
+ /**
+ * A key describing the number of channels in an audio format.
+ * The associated value is an integer
+ */
+ public static final String KEY_CHANNEL_COUNT = "channel-count";
+
+ /**
+ * A key describing the width of the content in a video format.
+ * The associated value is an integer
+ */
+ public static final String KEY_WIDTH = "width";
+
+ /**
+ * A key describing the height of the content in a video format.
+ * The associated value is an integer
+ */
+ public static final String KEY_HEIGHT = "height";
+
+ /** A key describing the maximum size in bytes of a buffer of data
+ * described by this MediaFormat.
+ * The associated value is an integer
+ */
+ public static final String KEY_MAX_INPUT_SIZE = "max-input-size";
+
+ /**
+ * A key describing the bitrate in bits/sec.
+ * The associated value is an integer
+ */
+ public static final String KEY_BIT_RATE = "bitrate";
+
+ /**
+ * A key describing the color format of the content in a video format.
+ * Constants are declared in {@link android.media.MediaCodecInfo.CodecCapabilities}.
+ */
+ public static final String KEY_COLOR_FORMAT = "color-format";
+
+ /**
+ * A key describing the frame rate of a video format in frames/sec.
+ * The associated value is an integer or a float.
+ */
+ public static final String KEY_FRAME_RATE = "frame-rate";
+
+ /**
+ * A key describing the frequency of I frames expressed in secs
+ * between I frames.
+ * The associated value is an integer.
+ */
+ public static final String KEY_I_FRAME_INTERVAL = "i-frame-interval";
+
+ /**
+ * @hide
+ */
+ public static final String KEY_STRIDE = "stride";
+ /**
+ * @hide
+ */
+ public static final String KEY_SLICE_HEIGHT = "slice-height";
+
+ /**
+ * A key describing the duration (in microseconds) of the content.
+ * The associated value is a long.
+ */
+ public static final String KEY_DURATION = "durationUs";
+
+ /**
+ * A key mapping to a value of 1 if the content is AAC audio and
+ * audio frames are prefixed with an ADTS header.
+ * The associated value is an integer (0 or 1).
+ */
+ public static final String KEY_IS_ADTS = "is-adts";
+
+ /**
+ * A key describing the channel composition of audio content. This mask
+ * is composed of bits drawn from channel mask definitions in {@link android.media.AudioFormat}.
+ * The associated value is an integer.
+ */
+ public static final String KEY_CHANNEL_MASK = "channel-mask";
+
+ /**
+ * A key describing the AAC profile to be used (AAC audio formats only).
+ * Constants are declared in {@link android.media.MediaCodecInfo.CodecCapabilities}.
+ */
+ public static final String KEY_AAC_PROFILE = "aac-profile";
+
+ /* package private */ MediaFormat(Map<String, Object> map) {
+ mMap = map;
+ }
+
+ /**
+ * Creates an empty MediaFormat
+ */
+ public MediaFormat() {
+ mMap = new HashMap();
+ }
+
+ /* package private */ Map<String, Object> getMap() {
+ return mMap;
+ }
+
+ /**
+ * Returns true iff a key of the given name exists in the format.
+ */
+ public final boolean containsKey(String name) {
+ return mMap.containsKey(name);
+ }
+
+ /**
+ * Returns the value of an integer key.
+ */
+ public final int getInteger(String name) {
+ return ((Integer)mMap.get(name)).intValue();
+ }
+
+ /**
+ * Returns the value of a long key.
+ */
+ public final long getLong(String name) {
+ return ((Long)mMap.get(name)).longValue();
+ }
+
+ /**
+ * Returns the value of a float key.
+ */
+ public final float getFloat(String name) {
+ return ((Float)mMap.get(name)).floatValue();
+ }
+
+ /**
+ * Returns the value of a string key.
+ */
+ public final String getString(String name) {
+ return (String)mMap.get(name);
+ }
+
+ /**
+ * Returns the value of a ByteBuffer key.
+ */
+ public final ByteBuffer getByteBuffer(String name) {
+ return (ByteBuffer)mMap.get(name);
+ }
+
+ /**
+ * Sets the value of an integer key.
+ */
+ public final void setInteger(String name, int value) {
+ mMap.put(name, new Integer(value));
+ }
+
+ /**
+ * Sets the value of a long key.
+ */
+ public final void setLong(String name, long value) {
+ mMap.put(name, new Long(value));
+ }
+
+ /**
+ * Sets the value of a float key.
+ */
+ public final void setFloat(String name, float value) {
+ mMap.put(name, new Float(value));
+ }
+
+ /**
+ * Sets the value of a string key.
+ */
+ public final void setString(String name, String value) {
+ mMap.put(name, value);
+ }
+
+ /**
+ * Sets the value of a ByteBuffer key.
+ */
+ public final void setByteBuffer(String name, ByteBuffer bytes) {
+ mMap.put(name, bytes);
+ }
+
+ /**
+ * Creates a minimal audio format.
+ * @param mime The mime type of the content.
+ * @param sampleRate The sampling rate of the content.
+ * @param channelCount The number of audio channels in the content.
+ */
+ public static final MediaFormat createAudioFormat(
+ String mime,
+ int sampleRate,
+ int channelCount) {
+ MediaFormat format = new MediaFormat();
+ format.setString(KEY_MIME, mime);
+ format.setInteger(KEY_SAMPLE_RATE, sampleRate);
+ format.setInteger(KEY_CHANNEL_COUNT, channelCount);
+
+ return format;
+ }
+
+ /**
+ * Creates a minimal video format.
+ * @param mime The mime type of the content.
+ * @param width The width of the content (in pixels)
+ * @param height The height of the content (in pixels)
+ */
+ public static final MediaFormat createVideoFormat(
+ String mime,
+ int width,
+ int height) {
+ MediaFormat format = new MediaFormat();
+ format.setString(KEY_MIME, mime);
+ format.setInteger(KEY_WIDTH, width);
+ format.setInteger(KEY_HEIGHT, height);
+
+ return format;
+ }
+
+ @Override
+ public String toString() {
+ return mMap.toString();
+ }
+}
diff --git a/media/jni/android_media_MediaCodec.cpp b/media/jni/android_media_MediaCodec.cpp
index f98c063..acd81e1 100644
--- a/media/jni/android_media_MediaCodec.cpp
+++ b/media/jni/android_media_MediaCodec.cpp
@@ -630,9 +630,9 @@
throwExceptionAsNecessary(env, err);
}
-static jobject android_media_MediaCodec_getOutputFormat(
+static jobject android_media_MediaCodec_getOutputFormatNative(
JNIEnv *env, jobject thiz) {
- ALOGV("android_media_MediaCodec_getOutputFormat");
+ ALOGV("android_media_MediaCodec_getOutputFormatNative");
sp<JMediaCodec> codec = getMediaCodec(env, thiz);
@@ -790,8 +790,8 @@
{ "releaseOutputBuffer", "(IZ)V",
(void *)android_media_MediaCodec_releaseOutputBuffer },
- { "getOutputFormat", "()Ljava/util/Map;",
- (void *)android_media_MediaCodec_getOutputFormat },
+ { "getOutputFormatNative", "()Ljava/util/Map;",
+ (void *)android_media_MediaCodec_getOutputFormatNative },
{ "getBuffers", "(Z)[Ljava/nio/ByteBuffer;",
(void *)android_media_MediaCodec_getBuffers },
diff --git a/media/jni/android_media_MediaCodecList.cpp b/media/jni/android_media_MediaCodecList.cpp
index 7139560..0638b4a 100644
--- a/media/jni/android_media_MediaCodecList.cpp
+++ b/media/jni/android_media_MediaCodecList.cpp
@@ -27,7 +27,7 @@
using namespace android;
-static jint android_media_MediaCodecList_countCodecs(
+static jint android_media_MediaCodecList_getCodecCount(
JNIEnv *env, jobject thiz) {
return MediaCodecList::getInstance()->countCodecs();
}
@@ -105,13 +105,13 @@
}
jclass capsClazz =
- env->FindClass("android/media/MediaCodecList$CodecCapabilities");
+ env->FindClass("android/media/MediaCodecInfo$CodecCapabilities");
CHECK(capsClazz != NULL);
jobject caps = env->AllocObject(capsClazz);
jclass profileLevelClazz =
- env->FindClass("android/media/MediaCodecList$CodecProfileLevel");
+ env->FindClass("android/media/MediaCodecInfo$CodecProfileLevel");
CHECK(profileLevelClazz != NULL);
jobjectArray profileLevelArray =
@@ -140,7 +140,7 @@
jfieldID profileLevelsField = env->GetFieldID(
capsClazz,
"profileLevels",
- "[Landroid/media/MediaCodecList$CodecProfileLevel;");
+ "[Landroid/media/MediaCodecInfo$CodecProfileLevel;");
env->SetObjectField(caps, profileLevelsField, profileLevelArray);
@@ -169,7 +169,7 @@
}
static JNINativeMethod gMethods[] = {
- { "countCodecs", "()I", (void *)android_media_MediaCodecList_countCodecs },
+ { "getCodecCount", "()I", (void *)android_media_MediaCodecList_getCodecCount },
{ "getCodecName", "(I)Ljava/lang/String;",
(void *)android_media_MediaCodecList_getCodecName },
{ "isEncoder", "(I)Z", (void *)android_media_MediaCodecList_isEncoder },
@@ -177,7 +177,7 @@
(void *)android_media_MediaCodecList_getSupportedTypes },
{ "getCodecCapabilities",
- "(ILjava/lang/String;)Landroid/media/MediaCodecList$CodecCapabilities;",
+ "(ILjava/lang/String;)Landroid/media/MediaCodecInfo$CodecCapabilities;",
(void *)android_media_MediaCodecList_getCodecCapabilities },
{ "native_init", "()V", (void *)android_media_MediaCodecList_native_init },
diff --git a/media/jni/android_media_MediaCrypto.cpp b/media/jni/android_media_MediaCrypto.cpp
index f4f0953..517a293 100644
--- a/media/jni/android_media_MediaCrypto.cpp
+++ b/media/jni/android_media_MediaCrypto.cpp
@@ -210,7 +210,7 @@
if (err != OK) {
jniThrowException(
env,
- "java/lang/RuntimeException",
+ "android/media/MediaCryptoException",
"Failed to instantiate crypto object.");
return;
}
@@ -223,7 +223,7 @@
android_media_MediaCrypto_release(env, thiz);
}
-static jboolean android_media_MediaCrypto_isCryptoSchemeSupported(
+static jboolean android_media_MediaCrypto_isCryptoSchemeSupportedNative(
JNIEnv *env, jobject thiz, jbyteArray uuidObj) {
jsize uuidLength = env->GetArrayLength(uuidObj);
@@ -284,8 +284,8 @@
{ "native_finalize", "()V",
(void *)android_media_MediaCrypto_native_finalize },
- { "isCryptoSchemeSupported", "([B)Z",
- (void *)android_media_MediaCrypto_isCryptoSchemeSupported },
+ { "isCryptoSchemeSupportedNative", "([B)Z",
+ (void *)android_media_MediaCrypto_isCryptoSchemeSupportedNative },
{ "requiresSecureDecoderComponent", "(Ljava/lang/String;)Z",
(void *)android_media_MediaCrypto_requiresSecureDecoderComponent },
diff --git a/media/jni/android_media_MediaExtractor.cpp b/media/jni/android_media_MediaExtractor.cpp
index 9e1920c..c93baf1 100644
--- a/media/jni/android_media_MediaExtractor.cpp
+++ b/media/jni/android_media_MediaExtractor.cpp
@@ -237,7 +237,7 @@
setMediaExtractor(env, thiz, NULL);
}
-static jint android_media_MediaExtractor_countTracks(
+static jint android_media_MediaExtractor_getTrackCount(
JNIEnv *env, jobject thiz) {
sp<JMediaExtractor> extractor = getMediaExtractor(env, thiz);
@@ -249,7 +249,7 @@
return extractor->countTracks();
}
-static jobject android_media_MediaExtractor_getTrackFormat(
+static jobject android_media_MediaExtractor_getTrackFormatNative(
JNIEnv *env, jobject thiz, jint index) {
sp<JMediaExtractor> extractor = getMediaExtractor(env, thiz);
@@ -669,10 +669,10 @@
static JNINativeMethod gMethods[] = {
{ "release", "()V", (void *)android_media_MediaExtractor_release },
- { "countTracks", "()I", (void *)android_media_MediaExtractor_countTracks },
+ { "getTrackCount", "()I", (void *)android_media_MediaExtractor_getTrackCount },
- { "getTrackFormat", "(I)Ljava/util/Map;",
- (void *)android_media_MediaExtractor_getTrackFormat },
+ { "getTrackFormatNative", "(I)Ljava/util/Map;",
+ (void *)android_media_MediaExtractor_getTrackFormatNative },
{ "selectTrack", "(I)V", (void *)android_media_MediaExtractor_selectTrack },
diff --git a/media/mca/filterpacks/java/android/filterpacks/imageproc/GrainFilter.java b/media/mca/filterpacks/java/android/filterpacks/imageproc/GrainFilter.java
index 168a9c6..31855460 100644
--- a/media/mca/filterpacks/java/android/filterpacks/imageproc/GrainFilter.java
+++ b/media/mca/filterpacks/java/android/filterpacks/imageproc/GrainFilter.java
@@ -42,14 +42,25 @@
@GenerateFieldPort(name = "tile_size", hasDefault = true)
private int mTileSize = 640;
- private Program mProgram;
+ private Program mGrainProgram;
+ private Program mNoiseProgram;
private int mWidth = 0;
private int mHeight = 0;
private int mTarget = FrameFormat.TARGET_UNSPECIFIED;
- private Frame mNoiseFrame = null;
- private Random mRandom;
+ private Random mRandom = new Random();
+
+ private final String mNoiseShader =
+ "precision mediump float;\n" +
+ "uniform vec2 seed;\n" +
+ "varying vec2 v_texcoord;\n" +
+ "float rand(vec2 loc) {\n" +
+ " return fract(sin(dot(loc, vec2(12.9898, 78.233))) * 43758.5453);\n" +
+ "}\n" +
+ "void main() {\n" +
+ " gl_FragColor = vec4(rand(v_texcoord + seed), 0.0, 0.0, 1.0);\n" +
+ "}\n";
private final String mGrainShader =
"precision mediump float;\n" +
@@ -75,8 +86,6 @@
public GrainFilter(String name) {
super(name);
-
- mRandom = new Random();
}
@Override
@@ -93,9 +102,13 @@
public void initProgram(FilterContext context, int target) {
switch (target) {
case FrameFormat.TARGET_GPU:
- ShaderProgram shaderProgram = new ShaderProgram(context, mGrainShader);
+ ShaderProgram shaderProgram = new ShaderProgram(context, mNoiseShader);
shaderProgram.setMaximumTileSize(mTileSize);
- mProgram = shaderProgram;
+ mNoiseProgram = shaderProgram;
+
+ shaderProgram = new ShaderProgram(context, mGrainShader);
+ shaderProgram.setMaximumTileSize(mTileSize);
+ mGrainProgram = shaderProgram;
break;
default:
@@ -106,46 +119,49 @@
}
private void updateParameters() {
- mProgram.setHostValue("scale", mScale);
+ float seed[] = { mRandom.nextFloat(), mRandom.nextFloat() };
+ mNoiseProgram.setHostValue("seed", seed);
+
+ mGrainProgram.setHostValue("scale", mScale);
}
private void updateFrameSize(int width, int height) {
mWidth = width;
mHeight = height;
- if (mProgram != null) {
- mProgram.setHostValue("stepX", 0.5f / mWidth);
- mProgram.setHostValue("stepY", 0.5f / mHeight);
+ if (mGrainProgram != null) {
+ mGrainProgram.setHostValue("stepX", 0.5f / mWidth);
+ mGrainProgram.setHostValue("stepY", 0.5f / mHeight);
updateParameters();
}
}
@Override
public void fieldPortValueUpdated(String name, FilterContext context) {
- if (mProgram != null) {
+ if (mGrainProgram != null && mNoiseProgram != null) {
updateParameters();
}
}
@Override
- public void tearDown(FilterContext context) {
- if (mNoiseFrame != null) {
- mNoiseFrame.release();
- mNoiseFrame = null;
- }
- }
-
- @Override
public void process(FilterContext context) {
// Get input frame
Frame input = pullInput("image");
FrameFormat inputFormat = input.getFormat();
+ FrameFormat noiseFormat = ImageFormat.create(inputFormat.getWidth() / 2,
+ inputFormat.getHeight() / 2,
+ ImageFormat.COLORSPACE_RGBA,
+ FrameFormat.TARGET_GPU);
+
+ // Create noise frame
+ Frame noiseFrame = context.getFrameManager().newFrame(inputFormat);
+
// Create output frame
Frame output = context.getFrameManager().newFrame(inputFormat);
// Create program if not created already
- if (mProgram == null || inputFormat.getTarget() != mTarget) {
+ if (mNoiseProgram == null || mGrainProgram == null || inputFormat.getTarget() != mTarget) {
initProgram(context, inputFormat.getTarget());
updateParameters();
}
@@ -153,35 +169,20 @@
// Check if the frame size has changed
if (inputFormat.getWidth() != mWidth || inputFormat.getHeight() != mHeight) {
updateFrameSize(inputFormat.getWidth(), inputFormat.getHeight());
-
- int[] buffer = new int[mWidth * mHeight];
- for (int i = 0; i < mWidth * mHeight; ++i) {
- buffer[i] = (mRandom.nextInt(256) < RAND_THRESHOLD) ?
- mRandom.nextInt(256) : 0;
- }
- FrameFormat format = ImageFormat.create(mWidth, mHeight,
- ImageFormat.COLORSPACE_RGBA,
- FrameFormat.TARGET_GPU);
- if (mNoiseFrame != null) {
- mNoiseFrame.release();
- }
- mNoiseFrame = context.getFrameManager().newFrame(format);
- mNoiseFrame.setInts(buffer);
}
- if (mNoiseFrame.getFormat().getWidth() != mWidth ||
- mNoiseFrame.getFormat().getHeight() != mHeight) {
- throw new RuntimeException("Random map and imput image size mismatch!");
- }
+ Frame[] empty = {};
+ mNoiseProgram.process(empty, noiseFrame);
// Process
- Frame[] inputs = {input, mNoiseFrame};
- mProgram.process(inputs, output);
+ Frame[] inputs = {input, noiseFrame};
+ mGrainProgram.process(inputs, output);
// Push output
pushOutput("image", output);
// Release pushed frame
output.release();
+ noiseFrame.release();
}
}
diff --git a/native/android/Android.mk b/native/android/Android.mk
index e2c99ee..00d11da 100644
--- a/native/android/Android.mk
+++ b/native/android/Android.mk
@@ -30,8 +30,7 @@
LOCAL_C_INCLUDES += \
frameworks/base/native/include \
- frameworks/base/core/jni/android \
- dalvik/libnativehelper/include/nativehelper
+ frameworks/base/core/jni/android
LOCAL_MODULE:= libandroid
diff --git a/native/graphics/jni/Android.mk b/native/graphics/jni/Android.mk
index 7b741db..8b333e7 100644
--- a/native/graphics/jni/Android.mk
+++ b/native/graphics/jni/Android.mk
@@ -25,8 +25,7 @@
LOCAL_C_INCLUDES += \
external/skia/include/core \
frameworks/base/native/include \
- frameworks/base/core/jni/android/graphics \
- dalvik/libnativehelper/include/nativehelper
+ frameworks/base/core/jni/android/graphics
LOCAL_MODULE:= libjnigraphics
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
index 720be9f..3b00300 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
@@ -47,6 +47,7 @@
import android.util.Log;
import android.util.Slog;
import android.util.TypedValue;
+import android.view.Choreographer;
import android.view.Display;
import android.view.Gravity;
import android.view.IWindowManager;
@@ -106,8 +107,6 @@
static final int EXPANDED_LEAVE_ALONE = -10000;
static final int EXPANDED_FULL_OPEN = -10001;
- private static final int MSG_ANIMATE = 100;
- private static final int MSG_ANIMATE_REVEAL = 101;
private static final int MSG_OPEN_NOTIFICATION_PANEL = 1000;
private static final int MSG_CLOSE_NOTIFICATION_PANEL = 1001;
private static final int MSG_SHOW_INTRUDER = 1002;
@@ -207,14 +206,12 @@
boolean mTracking;
VelocityTracker mVelocityTracker;
- static final int ANIM_FRAME_DURATION = (1000/60);
-
+ Choreographer mChoreographer;
boolean mAnimating;
- long mCurAnimationTime;
float mAnimY;
float mAnimVel;
float mAnimAccel;
- long mAnimLastTime;
+ long mAnimLastTimeNanos;
boolean mAnimatingReveal = false;
int mViewDelta;
int[] mAbsPos = new int[2];
@@ -311,6 +308,8 @@
mStatusBarView.mService = this;
+ mChoreographer = Choreographer.getInstance();
+
try {
boolean showNav = mWindowManager.hasNavigationBar();
if (DEBUG) Slog.v(TAG, "hasNavigationBar=" + showNav);
@@ -1091,12 +1090,6 @@
public void handleMessage(Message m) {
super.handleMessage(m);
switch (m.what) {
- case MSG_ANIMATE:
- doAnimation();
- break;
- case MSG_ANIMATE_REVEAL:
- doRevealAnimation();
- break;
case MSG_OPEN_NOTIFICATION_PANEL:
animateExpand();
break;
@@ -1114,6 +1107,20 @@
}
}
+ final Runnable mAnimationCallback = new Runnable() {
+ @Override
+ public void run() {
+ doAnimation(mChoreographer.getFrameTimeNanos());
+ }
+ };
+
+ final Runnable mRevealAnimationCallback = new Runnable() {
+ @Override
+ public void run() {
+ doRevealAnimation(mChoreographer.getFrameTimeNanos());
+ }
+ };
+
View.OnFocusChangeListener mFocusChangeListener = new View.OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) {
// Because 'v' is a ViewGroup, all its children will be (un)selected
@@ -1246,29 +1253,42 @@
}
}
- void doAnimation() {
+ void doAnimation(long frameTimeNanos) {
if (mAnimating) {
if (SPEW) Slog.d(TAG, "doAnimation");
if (SPEW) Slog.d(TAG, "doAnimation before mAnimY=" + mAnimY);
- incrementAnim();
+ incrementAnim(frameTimeNanos);
if (SPEW) Slog.d(TAG, "doAnimation after mAnimY=" + mAnimY);
+
if (mAnimY >= getExpandedViewMaxHeight()-1) {
if (SPEW) Slog.d(TAG, "Animation completed to expanded state.");
mAnimating = false;
updateExpandedViewPos(EXPANDED_FULL_OPEN);
performExpand();
+ return;
}
- else if (mAnimY < getStatusBarHeight()) {
+
+ if (mAnimY == 0 && mAnimAccel == 0 && mAnimVel == 0) {
if (SPEW) Slog.d(TAG, "Animation completed to collapsed state.");
mAnimating = false;
- updateExpandedViewPos(0);
performCollapse();
+ return;
}
- else {
- updateExpandedViewPos((int)mAnimY);
- mCurAnimationTime += ANIM_FRAME_DURATION;
- mHandler.sendMessageAtTime(mHandler.obtainMessage(MSG_ANIMATE), mCurAnimationTime);
+
+ if (mAnimY < getStatusBarHeight()) {
+ // Draw one more frame with the bar positioned at the top of the screen
+ // before ending the animation so that the user sees the bar in
+ // its final position. The call to performCollapse() causes a window
+ // relayout which takes time and might cause the animation to skip
+ // on the very last frame before the bar disappears if we did it now.
+ mAnimY = 0;
+ mAnimAccel = 0;
+ mAnimVel = 0;
}
+
+ updateExpandedViewPos((int)mAnimY);
+ mChoreographer.postCallback(Choreographer.CALLBACK_ANIMATION,
+ mAnimationCallback, null);
}
}
@@ -1279,31 +1299,30 @@
mVelocityTracker = null;
}
- void incrementAnim() {
- long now = SystemClock.uptimeMillis();
- float t = ((float)(now - mAnimLastTime)) / 1000; // ms -> s
+ void incrementAnim(long frameTimeNanos) {
+ final long deltaNanos = Math.max(frameTimeNanos - mAnimLastTimeNanos, 0);
+ final float t = deltaNanos * 0.000000001f; // ns -> s
final float y = mAnimY;
final float v = mAnimVel; // px/s
final float a = mAnimAccel; // px/s/s
mAnimY = y + (v*t) + (0.5f*a*t*t); // px
mAnimVel = v + (a*t); // px/s
- mAnimLastTime = now; // ms
+ mAnimLastTimeNanos = frameTimeNanos; // ns
//Slog.d(TAG, "y=" + y + " v=" + v + " a=" + a + " t=" + t + " mAnimY=" + mAnimY
// + " mAnimAccel=" + mAnimAccel);
}
- void doRevealAnimation() {
+ void doRevealAnimation(long frameTimeNanos) {
final int h = getCloseViewHeight() + getStatusBarHeight();
if (mAnimatingReveal && mAnimating && mAnimY < h) {
- incrementAnim();
+ incrementAnim(frameTimeNanos);
if (mAnimY >= h) {
mAnimY = h;
updateExpandedViewPos((int)mAnimY);
} else {
updateExpandedViewPos((int)mAnimY);
- mCurAnimationTime += ANIM_FRAME_DURATION;
- mHandler.sendMessageAtTime(mHandler.obtainMessage(MSG_ANIMATE_REVEAL),
- mCurAnimationTime);
+ mChoreographer.postCallback(Choreographer.CALLBACK_ANIMATION,
+ mRevealAnimationCallback, null);
}
}
}
@@ -1323,20 +1342,20 @@
updateExpandedViewPos((int)mAnimY);
mAnimating = true;
mAnimatingReveal = true;
- mHandler.removeMessages(MSG_ANIMATE);
- mHandler.removeMessages(MSG_ANIMATE_REVEAL);
- long now = SystemClock.uptimeMillis();
- mAnimLastTime = now;
- mCurAnimationTime = now + ANIM_FRAME_DURATION;
- mAnimating = true;
- mHandler.sendMessageAtTime(mHandler.obtainMessage(MSG_ANIMATE_REVEAL),
- mCurAnimationTime);
+ mAnimLastTimeNanos = System.nanoTime();
+ mChoreographer.removeCallbacks(Choreographer.CALLBACK_ANIMATION,
+ mAnimationCallback, null);
+ mChoreographer.removeCallbacks(Choreographer.CALLBACK_ANIMATION,
+ mRevealAnimationCallback, null);
+ mChoreographer.postCallback(Choreographer.CALLBACK_ANIMATION,
+ mRevealAnimationCallback, null);
makeExpandedVisible();
} else {
// it's open, close it?
if (mAnimating) {
mAnimating = false;
- mHandler.removeMessages(MSG_ANIMATE);
+ mChoreographer.removeCallbacks(Choreographer.CALLBACK_ANIMATION,
+ mAnimationCallback, null);
}
updateExpandedViewPos(y + mViewDelta);
}
@@ -1397,13 +1416,15 @@
//Slog.d(TAG, "mAnimY=" + mAnimY + " mAnimVel=" + mAnimVel
// + " mAnimAccel=" + mAnimAccel);
- long now = SystemClock.uptimeMillis();
- mAnimLastTime = now;
- mCurAnimationTime = now + ANIM_FRAME_DURATION;
+ mAnimLastTimeNanos = System.nanoTime();
mAnimating = true;
- mHandler.removeMessages(MSG_ANIMATE);
- mHandler.removeMessages(MSG_ANIMATE_REVEAL);
- mHandler.sendMessageAtTime(mHandler.obtainMessage(MSG_ANIMATE), mCurAnimationTime);
+
+ mChoreographer.removeCallbacks(Choreographer.CALLBACK_ANIMATION,
+ mAnimationCallback, null);
+ mChoreographer.removeCallbacks(Choreographer.CALLBACK_ANIMATION,
+ mRevealAnimationCallback, null);
+ mChoreographer.postCallback(Choreographer.CALLBACK_ANIMATION,
+ mAnimationCallback, null);
stopTracking();
}
@@ -1785,8 +1806,7 @@
pw.println(" mAnimating=" + mAnimating
+ ", mAnimY=" + mAnimY + ", mAnimVel=" + mAnimVel
+ ", mAnimAccel=" + mAnimAccel);
- pw.println(" mCurAnimationTime=" + mCurAnimationTime
- + " mAnimLastTime=" + mAnimLastTime);
+ pw.println(" mAnimLastTimeNanos=" + mAnimLastTimeNanos);
pw.println(" mAnimatingReveal=" + mAnimatingReveal
+ " mViewDelta=" + mViewDelta);
pw.println(" mDisplayMetrics=" + mDisplayMetrics);
diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindow.java b/policy/src/com/android/internal/policy/impl/PhoneWindow.java
index c3c49b0..4b91422 100644
--- a/policy/src/com/android/internal/policy/impl/PhoneWindow.java
+++ b/policy/src/com/android/internal/policy/impl/PhoneWindow.java
@@ -2108,8 +2108,11 @@
w = 0;
}
- final int widthSize = MeasureSpec.getSize(widthMeasureSpec);
- widthMeasureSpec = MeasureSpec.makeMeasureSpec(Math.min(w, widthSize), EXACTLY);
+ if (w > 0) {
+ final int widthSize = MeasureSpec.getSize(widthMeasureSpec);
+ widthMeasureSpec = MeasureSpec.makeMeasureSpec(
+ Math.min(w, widthSize), EXACTLY);
+ }
}
}
@@ -2125,9 +2128,11 @@
h = 0;
}
- final int heightSize = MeasureSpec.getSize(heightMeasureSpec);
- heightMeasureSpec =
- MeasureSpec.makeMeasureSpec(Math.min(h, heightSize), EXACTLY);
+ if (h > 0) {
+ final int heightSize = MeasureSpec.getSize(heightMeasureSpec);
+ heightMeasureSpec = MeasureSpec.makeMeasureSpec(
+ Math.min(h, heightSize), EXACTLY);
+ }
}
}
diff --git a/services/java/com/android/server/InputMethodManagerService.java b/services/java/com/android/server/InputMethodManagerService.java
index 43c2292..8e3b825 100644
--- a/services/java/com/android/server/InputMethodManagerService.java
+++ b/services/java/com/android/server/InputMethodManagerService.java
@@ -39,6 +39,7 @@
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
+import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.ContentResolver;
import android.content.Context;
@@ -110,6 +111,7 @@
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
+import java.util.Locale;
import java.util.TreeMap;
/**
@@ -152,6 +154,7 @@
private static final String TAG_ENABLED_WHEN_DEFAULT_IS_NOT_ASCII_CAPABLE =
"EnabledWhenDefaultIsNotAsciiCapable";
private static final String TAG_ASCII_CAPABLE = "AsciiCapable";
+ private static final Locale ENGLISH_LOCALE = new Locale("en");
final Context mContext;
final Resources mRes;
@@ -371,6 +374,7 @@
private View mSwitchingDialogTitleView;
private InputMethodInfo[] mIms;
private int[] mSubtypeIds;
+ private Locale mLastSystemLocale;
class SettingsObserver extends ContentObserver {
SettingsObserver(Handler handler) {
@@ -586,6 +590,7 @@
mImeSwitcherNotification.vibrate = null;
Intent intent = new Intent(Settings.ACTION_SHOW_INPUT_METHOD_PICKER);
mImeSwitchPendingIntent = PendingIntent.getBroadcast(mContext, 0, intent, 0);
+ mLastSystemLocale = mRes.getConfiguration().locale;
mShowOngoingImeSwitcherForPhones = false;
@@ -612,32 +617,102 @@
if (TextUtils.isEmpty(Settings.Secure.getString(
mContext.getContentResolver(), Settings.Secure.DEFAULT_INPUT_METHOD))) {
- InputMethodInfo defIm = null;
- for (InputMethodInfo imi: mMethodList) {
- if (defIm == null && imi.getIsDefaultResourceId() != 0) {
- try {
- Resources res = context.createPackageContext(
- imi.getPackageName(), 0).getResources();
- if (res.getBoolean(imi.getIsDefaultResourceId())) {
- defIm = imi;
- Slog.i(TAG, "Selected default: " + imi.getId());
- }
- } catch (PackageManager.NameNotFoundException ex) {
- } catch (Resources.NotFoundException ex) {
- }
- }
- }
- if (defIm == null && mMethodList.size() > 0) {
- defIm = getMostApplicableDefaultIMELocked();
- Slog.i(TAG, "No default found, using " + defIm.getId());
- }
- if (defIm != null) {
- setSelectedInputMethodAndSubtypeLocked(defIm, NOT_A_SUBTYPE_ID, false);
- }
+ resetDefaultImeLocked(context);
}
mSettingsObserver = new SettingsObserver(mHandler);
updateFromSettingsLocked();
+
+ // IMMS wants to receive Intent.ACTION_LOCALE_CHANGED in order to update the current IME
+ // according to the new system locale.
+ final IntentFilter filter = new IntentFilter();
+ filter.addAction(Intent.ACTION_LOCALE_CHANGED);
+ mContext.registerReceiver(
+ new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ synchronized(mMethodMap) {
+ checkCurrentLocaleChangedLocked();
+ }
+ }
+ }, filter);
+ }
+
+ private void checkCurrentLocaleChangedLocked() {
+ final Locale newLocale = mRes.getConfiguration().locale;
+ if (newLocale != null && !newLocale.equals(mLastSystemLocale)) {
+ if (DEBUG) {
+ Slog.i(TAG, "Locale has been changed to " + newLocale);
+ }
+ buildInputMethodListLocked(mMethodList, mMethodMap);
+ // Reset the current ime to the proper one
+ resetDefaultImeLocked(mContext);
+ mLastSystemLocale = newLocale;
+ }
+ }
+
+ private void resetDefaultImeLocked(Context context) {
+ // Do not reset the default (current) IME when it is a 3rd-party IME
+ if (mCurMethodId != null && !isSystemIme(mMethodMap.get(mCurMethodId))) {
+ return;
+ }
+
+ InputMethodInfo defIm = null;
+ for (InputMethodInfo imi : mMethodList) {
+ if (defIm == null) {
+ if (isValidSystemDefaultIme(imi, context)) {
+ defIm = imi;
+ Slog.i(TAG, "Selected default: " + imi.getId());
+ }
+ }
+ }
+ if (defIm == null && mMethodList.size() > 0) {
+ defIm = getMostApplicableDefaultIMELocked();
+ Slog.i(TAG, "No default found, using " + defIm.getId());
+ }
+ if (defIm != null) {
+ setSelectedInputMethodAndSubtypeLocked(defIm, NOT_A_SUBTYPE_ID, false);
+ }
+ }
+
+ private static boolean isValidSystemDefaultIme(InputMethodInfo imi, Context context) {
+ if (!isSystemIme(imi)) {
+ return false;
+ }
+ if (imi.getIsDefaultResourceId() != 0) {
+ try {
+ Resources res = context.createPackageContext(
+ imi.getPackageName(), 0).getResources();
+ if (res.getBoolean(imi.getIsDefaultResourceId())
+ && containsSubtypeOf(imi, context.getResources().getConfiguration().
+ locale.getLanguage())) {
+ return true;
+ }
+ } catch (PackageManager.NameNotFoundException ex) {
+ } catch (Resources.NotFoundException ex) {
+ }
+ }
+ if (imi.getSubtypeCount() == 0) {
+ Slog.w(TAG, "Found no subtypes in a system IME: " + imi.getPackageName());
+ }
+ return false;
+ }
+
+ private static boolean isSystemImeThatHasEnglishSubtype(InputMethodInfo imi) {
+ if (!isSystemIme(imi)) {
+ return false;
+ }
+ return containsSubtypeOf(imi, ENGLISH_LOCALE.getLanguage());
+ }
+
+ private static boolean containsSubtypeOf(InputMethodInfo imi, String language) {
+ final int N = imi.getSubtypeCount();
+ for (int i = 0; i < N; ++i) {
+ if (imi.getSubtypeAt(i).getLocale().startsWith(language)) {
+ return true;
+ }
+ }
+ return false;
}
@Override
@@ -663,6 +738,7 @@
mContext.getSystemService(Context.KEYGUARD_SERVICE);
mNotificationManager = (NotificationManager)
mContext.getSystemService(Context.NOTIFICATION_SERVICE);
+ mLastSystemLocale = mContext.getResources().getConfiguration().locale;
mStatusBar = statusBar;
statusBar.setIconVisibility("ime", false);
updateImeWindowStatusLocked();
@@ -2043,7 +2119,7 @@
return false;
}
- private boolean isSystemIme(InputMethodInfo inputMethod) {
+ private static boolean isSystemIme(InputMethodInfo inputMethod) {
return (inputMethod.getServiceInfo().applicationInfo.flags
& ApplicationInfo.FLAG_SYSTEM) != 0;
}
@@ -2139,9 +2215,11 @@
final String id = p.getId();
map.put(id, p);
- // System IMEs are enabled by default, unless there's a hard keyboard
- // and the system IME was explicitly disabled
- if (isSystemIme(p) && (!haveHardKeyboard || disabledSysImes.indexOf(id) < 0)) {
+ // Valid system default IMEs and IMEs that have English subtypes are enabled
+ // by default, unless there's a hard keyboard and the system IME was explicitly
+ // disabled
+ if ((isValidSystemDefaultIme(p, mContext) || isSystemImeThatHasEnglishSubtype(p))
+ && (!haveHardKeyboard || disabledSysImes.indexOf(id) < 0)) {
setInputMethodEnabledLocked(id, true);
}
diff --git a/services/java/com/android/server/NetworkTimeUpdateService.java b/services/java/com/android/server/NetworkTimeUpdateService.java
index 1ff914f..76972bc 100644
--- a/services/java/com/android/server/NetworkTimeUpdateService.java
+++ b/services/java/com/android/server/NetworkTimeUpdateService.java
@@ -165,9 +165,15 @@
if (mTime.getCacheAge() < POLLING_INTERVAL_MS) {
final long ntp = mTime.currentTimeMillis();
mTryAgainCounter = 0;
- mLastNtpFetchTime = SystemClock.elapsedRealtime();
- if (Math.abs(ntp - currentTime) > TIME_ERROR_THRESHOLD_MS) {
+ // If the clock is more than N seconds off or this is the first time it's been
+ // fetched since boot, set the current time.
+ if (Math.abs(ntp - currentTime) > TIME_ERROR_THRESHOLD_MS
+ || mLastNtpFetchTime == NOT_SET) {
// Set the system time
+ if (DBG && mLastNtpFetchTime == NOT_SET
+ && Math.abs(ntp - currentTime) <= TIME_ERROR_THRESHOLD_MS) {
+ Log.d(TAG, "For initial setup, rtc = " + currentTime);
+ }
if (DBG) Log.d(TAG, "Ntp time to be set = " + ntp);
// Make sure we don't overflow, since it's going to be converted to an int
if (ntp / 1000 < Integer.MAX_VALUE) {
@@ -176,6 +182,7 @@
} else {
if (DBG) Log.d(TAG, "Ntp time is close enough = " + ntp);
}
+ mLastNtpFetchTime = SystemClock.elapsedRealtime();
} else {
// Try again shortly
mTryAgainCounter++;
diff --git a/services/java/com/android/server/VibratorService.java b/services/java/com/android/server/VibratorService.java
index 6282c31..b609867 100755
--- a/services/java/com/android/server/VibratorService.java
+++ b/services/java/com/android/server/VibratorService.java
@@ -391,9 +391,15 @@
}
private boolean doVibratorExists() {
- synchronized (mInputDeviceVibrators) {
- return !mInputDeviceVibrators.isEmpty() || vibratorExists();
- }
+ // For now, we choose to ignore the presence of input devices that have vibrators
+ // when reporting whether the device has a vibrator. Applications often use this
+ // information to decide whether to enable certain features so they expect the
+ // result of hasVibrator() to be constant. For now, just report whether
+ // the device has a built-in vibrator.
+ //synchronized (mInputDeviceVibrators) {
+ // return !mInputDeviceVibrators.isEmpty() || vibratorExists();
+ //}
+ return vibratorExists();
}
private void doVibratorOn(long millis) {
diff --git a/services/java/com/android/server/input/InputManagerService.java b/services/java/com/android/server/input/InputManagerService.java
index 117e064..299649d 100644
--- a/services/java/com/android/server/input/InputManagerService.java
+++ b/services/java/com/android/server/input/InputManagerService.java
@@ -140,7 +140,8 @@
private static native void nativeStart(int ptr);
private static native void nativeSetDisplaySize(int ptr, int displayId,
int width, int height, int externalWidth, int externalHeight);
- private static native void nativeSetDisplayOrientation(int ptr, int displayId, int rotation);
+ private static native void nativeSetDisplayOrientation(int ptr, int displayId,
+ int rotation, int externalRotation);
private static native int nativeGetScanCodeState(int ptr,
int deviceId, int sourceMask, int scanCode);
@@ -287,15 +288,16 @@
nativeSetDisplaySize(mPtr, displayId, width, height, externalWidth, externalHeight);
}
- public void setDisplayOrientation(int displayId, int rotation) {
+ public void setDisplayOrientation(int displayId, int rotation, int externalRotation) {
if (rotation < Surface.ROTATION_0 || rotation > Surface.ROTATION_270) {
throw new IllegalArgumentException("Invalid rotation.");
}
if (DEBUG) {
- Slog.d(TAG, "Setting display #" + displayId + " orientation to " + rotation);
+ Slog.d(TAG, "Setting display #" + displayId + " orientation to rotation " + rotation
+ + " external rotation " + externalRotation);
}
- nativeSetDisplayOrientation(mPtr, displayId, rotation);
+ nativeSetDisplayOrientation(mPtr, displayId, rotation, externalRotation);
}
/**
diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java
index ee74e40..8eda9ca 100755
--- a/services/java/com/android/server/wm/WindowManagerService.java
+++ b/services/java/com/android/server/wm/WindowManagerService.java
@@ -5580,7 +5580,8 @@
mWaitingForConfig = true;
mLayoutNeeded = true;
startFreezingDisplayLocked(inTransaction);
- mInputManager.setDisplayOrientation(0, rotation);
+ mInputManager.setDisplayOrientation(0, rotation,
+ mDisplay != null ? mDisplay.getExternalRotation() : Surface.ROTATION_0);
// We need to update our screen size information to match the new
// rotation. Note that this is redundant with the later call to
@@ -6606,6 +6607,8 @@
mInputManager.setDisplaySize(Display.DEFAULT_DISPLAY,
mDisplay.getRawWidth(), mDisplay.getRawHeight(),
mDisplay.getRawExternalWidth(), mDisplay.getRawExternalHeight());
+ mInputManager.setDisplayOrientation(Display.DEFAULT_DISPLAY,
+ mDisplay.getRotation(), mDisplay.getExternalRotation());
mPolicy.setInitialDisplaySize(mDisplay, mInitialDisplayWidth, mInitialDisplayHeight);
}
diff --git a/services/jni/com_android_server_input_InputManagerService.cpp b/services/jni/com_android_server_input_InputManagerService.cpp
index b6378bf..0e1ce51 100644
--- a/services/jni/com_android_server_input_InputManagerService.cpp
+++ b/services/jni/com_android_server_input_InputManagerService.cpp
@@ -166,7 +166,7 @@
void setDisplaySize(int32_t displayId, int32_t width, int32_t height,
int32_t externalWidth, int32_t externalHeight);
- void setDisplayOrientation(int32_t displayId, int32_t orientation);
+ void setDisplayOrientation(int32_t displayId, int32_t orientation, int32_t externalOrientation);
status_t registerInputChannel(JNIEnv* env, const sp<InputChannel>& inputChannel,
const sp<InputWindowHandle>& inputWindowHandle, bool monitor);
@@ -224,8 +224,9 @@
struct Locked {
// Display size information.
int32_t displayWidth, displayHeight; // -1 when not initialized
- int32_t displayExternalWidth, displayExternalHeight; // -1 when not initialized
int32_t displayOrientation;
+ int32_t displayExternalWidth, displayExternalHeight; // -1 when not initialized
+ int32_t displayExternalOrientation;
// System UI visibility.
int32_t systemUiVisibility;
@@ -275,9 +276,10 @@
AutoMutex _l(mLock);
mLocked.displayWidth = -1;
mLocked.displayHeight = -1;
+ mLocked.displayOrientation = DISPLAY_ORIENTATION_0;
mLocked.displayExternalWidth = -1;
mLocked.displayExternalHeight = -1;
- mLocked.displayOrientation = DISPLAY_ORIENTATION_0;
+ mLocked.displayExternalOrientation = DISPLAY_ORIENTATION_0;
mLocked.systemUiVisibility = ASYSTEM_UI_VISIBILITY_STATUS_BAR_VISIBLE;
mLocked.pointerSpeed = 0;
@@ -345,7 +347,8 @@
}
}
-void NativeInputManager::setDisplayOrientation(int32_t displayId, int32_t orientation) {
+void NativeInputManager::setDisplayOrientation(int32_t displayId, int32_t orientation,
+ int32_t externalOrientation) {
bool changed = false;
if (displayId == 0) {
AutoMutex _l(mLock);
@@ -359,6 +362,11 @@
controller->setDisplayOrientation(orientation);
}
}
+
+ if (mLocked.displayExternalOrientation != externalOrientation) {
+ changed = true;
+ mLocked.displayExternalOrientation = externalOrientation;
+ }
}
if (changed) {
@@ -444,7 +452,7 @@
mLocked.displayWidth, mLocked.displayHeight, mLocked.displayOrientation);
outConfig->setDisplayInfo(0, true /*external*/,
mLocked.displayExternalWidth, mLocked.displayExternalHeight,
- mLocked.displayOrientation);
+ mLocked.displayExternalOrientation);
} // release lock
}
@@ -1041,10 +1049,10 @@
}
static void nativeSetDisplayOrientation(JNIEnv* env, jclass clazz,
- jint ptr, jint displayId, jint orientation) {
+ jint ptr, jint displayId, jint orientation, jint externalOrientation) {
NativeInputManager* im = reinterpret_cast<NativeInputManager*>(ptr);
- im->setDisplayOrientation(displayId, orientation);
+ im->setDisplayOrientation(displayId, orientation, externalOrientation);
}
static jint nativeGetScanCodeState(JNIEnv* env, jclass clazz,
@@ -1327,7 +1335,7 @@
(void*) nativeStart },
{ "nativeSetDisplaySize", "(IIIIII)V",
(void*) nativeSetDisplaySize },
- { "nativeSetDisplayOrientation", "(III)V",
+ { "nativeSetDisplayOrientation", "(IIII)V",
(void*) nativeSetDisplayOrientation },
{ "nativeGetScanCodeState", "(IIII)I",
(void*) nativeGetScanCodeState },
diff --git a/telephony/java/com/android/internal/telephony/ServiceStateTracker.java b/telephony/java/com/android/internal/telephony/ServiceStateTracker.java
index 75eb226..bd78065 100644
--- a/telephony/java/com/android/internal/telephony/ServiceStateTracker.java
+++ b/telephony/java/com/android/internal/telephony/ServiceStateTracker.java
@@ -463,6 +463,61 @@
pollingContext = new int[1];
}
+ /**
+ * Return true if time zone needs fixing.
+ *
+ * @param phoneBase
+ * @param operatorNumeric
+ * @param prevOperatorNumeric
+ * @param needToFixTimeZone
+ * @return true if time zone needs to be fixed
+ */
+ protected boolean shouldFixTimeZoneNow(PhoneBase phoneBase, String operatorNumeric,
+ String prevOperatorNumeric, boolean needToFixTimeZone) {
+ // Return false if the mcc isn't valid as we don't know where we are.
+ // Return true if we have an IccCard and the mcc changed or we
+ // need to fix it because when the NITZ time came in we didn't
+ // know the country code.
+
+ // If mcc is invalid then we'll return false
+ int mcc;
+ try {
+ mcc = Integer.parseInt(operatorNumeric.substring(0, 3));
+ } catch (Exception e) {
+ if (DBG) {
+ log("shouldFixTimeZoneNow: no mcc, operatorNumeric=" + operatorNumeric +
+ " retVal=false");
+ }
+ return false;
+ }
+
+ // If prevMcc is invalid will make it different from mcc
+ // so we'll return true if the card exists.
+ int prevMcc;
+ try {
+ prevMcc = Integer.parseInt(prevOperatorNumeric.substring(0, 3));
+ } catch (Exception e) {
+ prevMcc = mcc + 1;
+ }
+
+ // Determine if the Icc card exists
+ IccCard iccCard = phoneBase.getIccCard();
+ boolean iccCardExist = (iccCard != null) && iccCard.getState().iccCardExist();
+
+ // Determine retVal
+ boolean retVal = ((iccCardExist && (mcc != prevMcc)) || needToFixTimeZone);
+ if (DBG) {
+ log("shouldFixTimeZoneNow: retVal=" + retVal +
+ " iccCard=" + iccCard +
+ " iccCard.state=" + (iccCard == null ? "null" : iccCard.getState().toString()) +
+ " iccCardExist=" + iccCardExist +
+ " operatorNumeric=" + operatorNumeric + " mcc=" + mcc +
+ " prevOperatorNumeric=" + prevOperatorNumeric + " prevMcc=" + prevMcc +
+ " needToFixTimeZone=" + needToFixTimeZone);
+ }
+ return retVal;
+ }
+
public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
pw.println("ServiceStateTracker:");
pw.println(" ss=" + ss);
diff --git a/telephony/java/com/android/internal/telephony/cdma/CdmaLteServiceStateTracker.java b/telephony/java/com/android/internal/telephony/cdma/CdmaLteServiceStateTracker.java
index ff7a0810..297c2ac 100644
--- a/telephony/java/com/android/internal/telephony/cdma/CdmaLteServiceStateTracker.java
+++ b/telephony/java/com/android/internal/telephony/cdma/CdmaLteServiceStateTracker.java
@@ -377,12 +377,7 @@
phone.setSystemProperty(TelephonyProperties.PROPERTY_OPERATOR_NUMERIC, operatorNumeric);
if (operatorNumeric == null) {
- if (DBG) {
- log("pollStateDone: operatorNumeric=" + operatorNumeric +
- " prevOperatorNumeric=" + prevOperatorNumeric +
- " mNeedFixZone=" + mNeedFixZone +
- " clear PROPERTY_OPERATOR_ISO_COUNTRY");
- }
+ if (DBG) log("operatorNumeric is null");
phone.setSystemProperty(TelephonyProperties.PROPERTY_OPERATOR_ISO_COUNTRY, "");
mGotCountryCode = false;
} else {
@@ -396,20 +391,13 @@
} catch (StringIndexOutOfBoundsException ex) {
loge("countryCodeForMcc error" + ex);
}
- if (DBG) {
- log("pollStateDone: operatorNumeric=" + operatorNumeric +
- " prevOperatorNumeric=" + prevOperatorNumeric +
- " mNeedFixZone=" + mNeedFixZone +
- " mcc=" + mcc + " iso-cc=" + isoCountryCode);
- }
phone.setSystemProperty(TelephonyProperties.PROPERTY_OPERATOR_ISO_COUNTRY,
isoCountryCode);
mGotCountryCode = true;
- // Fix the time zone If the operator changed or we need to fix it because
- // when the NITZ time came in we didn't know the country code.
- if ( ! operatorNumeric.equals(prevOperatorNumeric) || mNeedFixZone) {
+ if (shouldFixTimeZoneNow(phone, operatorNumeric, prevOperatorNumeric,
+ mNeedFixZone)) {
fixTimeZone(isoCountryCode);
}
}
diff --git a/telephony/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java b/telephony/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java
index b694e0a..ba2e51a 100755
--- a/telephony/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java
+++ b/telephony/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java
@@ -904,9 +904,11 @@
if (getAutoTimeZone()) {
setAndBroadcastNetworkSetTimeZone(zone.getID());
} else {
- log("fixTimeZone: zone == null");
+ log("fixTimeZone: skip changing zone as getAutoTimeZone was false");
}
saveNitzTimeZone(zone.getID());
+ } else {
+ log("fixTimeZone: zone == null, do nothing for zone");
}
}
@@ -1003,12 +1005,7 @@
phone.setSystemProperty(TelephonyProperties.PROPERTY_OPERATOR_NUMERIC, operatorNumeric);
if (operatorNumeric == null) {
- if (DBG) {
- log("pollStateDone: operatorNumeric=" + operatorNumeric +
- " prevOperatorNumeric=" + prevOperatorNumeric +
- " mNeedFixZone=" + mNeedFixZone +
- " clear PROPERTY_OPERATOR_ISO_COUNTRY");
- }
+ if (DBG) log("operatorNumeric is null");
phone.setSystemProperty(TelephonyProperties.PROPERTY_OPERATOR_ISO_COUNTRY, "");
mGotCountryCode = false;
} else {
@@ -1022,20 +1019,13 @@
} catch ( StringIndexOutOfBoundsException ex) {
loge("pollStateDone: countryCodeForMcc error" + ex);
}
- if (DBG) {
- log("pollStateDone: operatorNumeric=" + operatorNumeric +
- " prevOperatorNumeric=" + prevOperatorNumeric +
- " mNeedFixZone=" + mNeedFixZone +
- " mcc=" + mcc + " iso-cc=" + isoCountryCode);
- }
phone.setSystemProperty(TelephonyProperties.PROPERTY_OPERATOR_ISO_COUNTRY,
isoCountryCode);
mGotCountryCode = true;
- // Fix the time zone If the operator changed or we need to fix it because
- // when the NITZ time came in we didn't know the country code.
- if ( ! operatorNumeric.equals(prevOperatorNumeric) || mNeedFixZone) {
+ if (shouldFixTimeZoneNow(phone, operatorNumeric, prevOperatorNumeric,
+ mNeedFixZone)) {
fixTimeZone(isoCountryCode);
}
}
diff --git a/telephony/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java b/telephony/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java
index c0acf5b..4235577 100644
--- a/telephony/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java
+++ b/telephony/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java
@@ -21,6 +21,7 @@
import com.android.internal.telephony.DataConnectionTracker;
import com.android.internal.telephony.EventLogTags;
import com.android.internal.telephony.IccCard;
+import com.android.internal.telephony.IccCardStatus;
import com.android.internal.telephony.MccTable;
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.RestrictedState;
@@ -645,8 +646,7 @@
String opNames[] = (String[])ar.result;
if (opNames != null && opNames.length >= 3) {
- newSS.setOperatorName (
- opNames[0], opNames[1], opNames[2]);
+ newSS.setOperatorName (opNames[0], opNames[1], opNames[2]);
}
break;
@@ -858,12 +858,7 @@
phone.setSystemProperty(TelephonyProperties.PROPERTY_OPERATOR_NUMERIC, operatorNumeric);
if (operatorNumeric == null) {
- if (DBG) {
- log("pollStateDone: operatorNumeric=" + operatorNumeric +
- " prevOperatorNumeric=" + prevOperatorNumeric +
- " mNeedFixZone=" + mNeedFixZone +
- " clear PROPERTY_OPERATOR_ISO_COUNTRY");
- }
+ if (DBG) log("operatorNumeric is null");
phone.setSystemProperty(TelephonyProperties.PROPERTY_OPERATOR_ISO_COUNTRY, "");
mGotCountryCode = false;
mNitzUpdatedTime = false;
@@ -877,12 +872,6 @@
} catch ( StringIndexOutOfBoundsException ex) {
loge("pollStateDone: countryCodeForMcc error" + ex);
}
- if (DBG) {
- log("pollStateDone: operatorNumeric=" + operatorNumeric +
- " prevOperatorNumeric=" + prevOperatorNumeric +
- " mNeedFixZone=" + mNeedFixZone +
- " mcc=" + mcc + " iso-cc=" + iso);
- }
phone.setSystemProperty(TelephonyProperties.PROPERTY_OPERATOR_ISO_COUNTRY, iso);
mGotCountryCode = true;
@@ -916,9 +905,8 @@
}
}
- // Fix the time zone If the operator changed or we need to fix it because
- // when the NITZ time came in we didn't know the country code.
- if ( ! operatorNumeric.equals(prevOperatorNumeric) || mNeedFixZone) {
+ if (shouldFixTimeZoneNow(phone, operatorNumeric, prevOperatorNumeric,
+ mNeedFixZone)) {
// If the offset is (0, false) and the timezone property
// is set, use the timezone property rather than
// GMT.
diff --git a/tools/makekeycodes/Android.mk b/tools/makekeycodes/Android.mk
deleted file mode 100644
index 401d44e..0000000
--- a/tools/makekeycodes/Android.mk
+++ /dev/null
@@ -1,13 +0,0 @@
-# Copyright 2005 The Android Open Source Project
-
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-LOCAL_SRC_FILES := \
- makekeycodes.cpp
-
-LOCAL_MODULE := makekeycodes
-
-include $(BUILD_HOST_EXECUTABLE)
-
-
diff --git a/tools/makekeycodes/makekeycodes.cpp b/tools/makekeycodes/makekeycodes.cpp
deleted file mode 100644
index 6ffbfb8..0000000
--- a/tools/makekeycodes/makekeycodes.cpp
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <stdio.h>
-#include <androidfw/KeycodeLabels.h>
-
-int
-main(int argc, char** argv)
-{
- // TODO: Add full copyright.
- printf("// Copyright (C) 2008 The Android Open Source Project\n");
- printf("//\n");
- printf("// This file is generated by makekeycodes from the definitions.\n");
- printf("// in includes/ui/KeycodeLabels.h.\n");
- printf("//\n");
- printf("// If you modify this, your changes will be overwritten.\n");
- printf("\n");
- printf("pacakge android.os;\n");
- printf("\n");
- printf("public class KeyEvent\n");
- printf("{\n");
-
- for (int i=0; KEYCODES[i].literal != NULL; i++) {
- printf(" public static final int KEYCODE_%s = 0x%08x;\n",
- KEYCODES[i].literal, KEYCODES[i].value);
- }
-
- printf("\n");
- for (int i=0; FLAGS[i].literal != NULL; i++) {
- printf(" public static final int MODIFIER_%s = 0x%08x;\n",
- FLAGS[i].literal, FLAGS[i].value);
- }
-
- printf("}\n");
- return 0;
-}
diff --git a/wifi/java/android/net/wifi/WifiStateMachine.java b/wifi/java/android/net/wifi/WifiStateMachine.java
index b49f46c..b099202 100644
--- a/wifi/java/android/net/wifi/WifiStateMachine.java
+++ b/wifi/java/android/net/wifi/WifiStateMachine.java
@@ -184,6 +184,9 @@
private LinkProperties mLinkProperties;
+ /* Tracks sequence number on a periodic scan message */
+ private int mPeriodicScanToken = 0;
+
// Wakelock held during wifi start/stop and driver load/unload
private PowerManager.WakeLock mWakeLock;
@@ -331,6 +334,9 @@
static final int CMD_SET_SUSPEND_OPTIMIZATIONS = BASE + 86;
/* Clear suspend mode optimizations in the driver */
static final int CMD_CLEAR_SUSPEND_OPTIMIZATIONS = BASE + 87;
+ /* When there are no saved networks, we do a periodic scan to notify user of
+ * an open network */
+ static final int CMD_NO_NETWORKS_PERIODIC_SCAN = BASE + 88;
/* arg1 values to CMD_STOP_PACKET_FILTERING and CMD_START_PACKET_FILTERING */
static final int MULTICAST_V6 = 1;
@@ -385,10 +391,11 @@
private final int mDefaultFrameworkScanIntervalMs;
/**
- * Default supplicant scan interval in milliseconds.
- * {@link Settings.Secure#WIFI_SUPPLICANT_SCAN_INTERVAL_MS} can override this.
+ * Supplicant scan interval in milliseconds.
+ * Comes from {@link Settings.Secure#WIFI_SUPPLICANT_SCAN_INTERVAL_MS} or
+ * from the default config if the setting is not set
*/
- private final int mDefaultSupplicantScanIntervalMs;
+ private long mSupplicantScanIntervalMs;
/**
* Minimum time interval between enabling all networks.
@@ -568,9 +575,6 @@
mDefaultFrameworkScanIntervalMs = mContext.getResources().getInteger(
com.android.internal.R.integer.config_wifi_framework_scan_interval);
- mDefaultSupplicantScanIntervalMs = mContext.getResources().getInteger(
- com.android.internal.R.integer.config_wifi_supplicant_scan_interval);
-
mDriverStopDelayMs = mContext.getResources().getInteger(
com.android.internal.R.integer.config_wifi_driver_stop_delay);
@@ -1869,6 +1873,7 @@
case WifiWatchdogStateMachine.POOR_LINK_DETECTED:
case WifiWatchdogStateMachine.GOOD_LINK_DETECTED:
case CMD_CLEAR_SUSPEND_OPTIMIZATIONS:
+ case CMD_NO_NETWORKS_PERIODIC_SCAN:
break;
case CMD_SET_SUSPEND_OPTIMIZATIONS:
mSuspendWakeLock.release();
@@ -2268,11 +2273,15 @@
mIsScanMode = false;
/* Wifi is available as long as we have a connection to supplicant */
mNetworkInfo.setIsAvailable(true);
- /* Set scan interval */
- long supplicantScanIntervalMs = Settings.Secure.getLong(mContext.getContentResolver(),
+
+ int defaultInterval = mContext.getResources().getInteger(
+ com.android.internal.R.integer.config_wifi_supplicant_scan_interval);
+
+ mSupplicantScanIntervalMs = Settings.Secure.getLong(mContext.getContentResolver(),
Settings.Secure.WIFI_SUPPLICANT_SCAN_INTERVAL_MS,
- mDefaultSupplicantScanIntervalMs);
- mWifiNative.setScanInterval((int)supplicantScanIntervalMs / 1000);
+ defaultInterval);
+
+ mWifiNative.setScanInterval((int)mSupplicantScanIntervalMs / 1000);
}
@Override
public boolean processMessage(Message message) {
@@ -3273,11 +3282,39 @@
} else {
setScanAlarm(true);
}
+
+ /**
+ * If we have no networks saved, the supplicant stops doing the periodic scan.
+ * The scans are useful to notify the user of the presence of an open network.
+ * Note that these are not wake up scans.
+ */
+ if (mWifiConfigStore.getConfiguredNetworks().size() == 0) {
+ sendMessageDelayed(obtainMessage(CMD_NO_NETWORKS_PERIODIC_SCAN,
+ ++mPeriodicScanToken, 0), mSupplicantScanIntervalMs);
+ }
}
@Override
public boolean processMessage(Message message) {
if (DBG) log(getName() + message.toString() + "\n");
+ boolean ret = HANDLED;
switch (message.what) {
+ case CMD_NO_NETWORKS_PERIODIC_SCAN:
+ if (message.arg1 == mPeriodicScanToken &&
+ mWifiConfigStore.getConfiguredNetworks().size() == 0) {
+ sendMessage(CMD_START_SCAN);
+ sendMessageDelayed(obtainMessage(CMD_NO_NETWORKS_PERIODIC_SCAN,
+ ++mPeriodicScanToken, 0), mSupplicantScanIntervalMs);
+ }
+ break;
+ case WifiManager.FORGET_NETWORK:
+ case CMD_REMOVE_NETWORK:
+ // Set up a delayed message here. After the forget/remove is handled
+ // the handled delayed message will determine if there is a need to
+ // scan and continue
+ sendMessageDelayed(obtainMessage(CMD_NO_NETWORKS_PERIODIC_SCAN,
+ ++mPeriodicScanToken, 0), mSupplicantScanIntervalMs);
+ ret = NOT_HANDLED;
+ break;
case CMD_SET_SCAN_MODE:
if (message.arg1 == SCAN_ONLY_MODE) {
mWifiNative.setScanResultHandling(message.arg1);
@@ -3304,25 +3341,28 @@
StateChangeResult stateChangeResult = (StateChangeResult) message.obj;
setNetworkDetailedState(WifiInfo.getDetailedStateOf(stateChangeResult.state));
/* ConnectModeState does the rest of the handling */
- return NOT_HANDLED;
+ ret = NOT_HANDLED;
+ break;
case CMD_START_SCAN:
/* Disable background scan temporarily during a regular scan */
if (mEnableBackgroundScan) {
mWifiNative.enableBackgroundScan(false);
}
/* Handled in parent state */
- return NOT_HANDLED;
+ ret = NOT_HANDLED;
+ break;
case WifiMonitor.SCAN_RESULTS_EVENT:
/* Re-enable background scan when a pending scan result is received */
if (mEnableBackgroundScan && mScanResultIsPending) {
mWifiNative.enableBackgroundScan(true);
}
/* Handled in parent state */
- return NOT_HANDLED;
+ ret = NOT_HANDLED;
+ break;
default:
- return NOT_HANDLED;
+ ret = NOT_HANDLED;
}
- return HANDLED;
+ return ret;
}
@Override