diff --git a/Android.mk b/Android.mk
index d667c157c87b..bb2745823680 100644
--- a/Android.mk
+++ b/Android.mk
@@ -204,6 +204,7 @@ LOCAL_SRC_FILES += \
core/java/android/net/IIpConnectivityMetrics.aidl \
core/java/android/net/IEthernetManager.aidl \
core/java/android/net/IEthernetServiceListener.aidl \
+ core/java/android/net/INetdEventCallback.aidl \
core/java/android/net/INetworkManagementEventObserver.aidl \
core/java/android/net/INetworkPolicyListener.aidl \
core/java/android/net/INetworkPolicyManager.aidl \
@@ -577,6 +578,9 @@ aidl_files := \
frameworks/base/graphics/java/android/graphics/drawable/Icon.aidl \
frameworks/base/core/java/android/accounts/AuthenticatorDescription.aidl \
frameworks/base/core/java/android/accounts/Account.aidl \
+ frameworks/base/core/java/android/app/admin/ConnectEvent.aidl \
+ frameworks/base/core/java/android/app/admin/DnsEvent.aidl \
+ frameworks/base/core/java/android/app/admin/NetworkEvent.aidl \
frameworks/base/core/java/android/app/admin/SystemUpdatePolicy.aidl \
frameworks/base/core/java/android/print/PrintDocumentInfo.aidl \
frameworks/base/core/java/android/print/PageRange.aidl \
diff --git a/api/test-current.txt b/api/test-current.txt
index d74526b72150..fcbd1b519268 100644
--- a/api/test-current.txt
+++ b/api/test-current.txt
@@ -9790,6 +9790,7 @@ package android.content.pm {
method public abstract android.content.res.XmlResourceParser getXml(java.lang.String, int, android.content.pm.ApplicationInfo);
method public abstract boolean hasSystemFeature(java.lang.String);
method public abstract boolean hasSystemFeature(java.lang.String, int);
+ method public abstract boolean isPermissionReviewModeEnabled();
method public abstract boolean isPermissionRevokedByPolicy(java.lang.String, java.lang.String);
method public abstract boolean isSafeMode();
method public abstract java.util.List queryBroadcastReceivers(android.content.Intent, int);
@@ -38217,6 +38218,7 @@ package android.test.mock {
method public android.content.res.XmlResourceParser getXml(java.lang.String, int, android.content.pm.ApplicationInfo);
method public boolean hasSystemFeature(java.lang.String);
method public boolean hasSystemFeature(java.lang.String, int);
+ method public boolean isPermissionReviewModeEnabled();
method public boolean isPermissionRevokedByPolicy(java.lang.String, java.lang.String);
method public boolean isSafeMode();
method public java.util.List queryBroadcastReceivers(android.content.Intent, int);
diff --git a/cmds/am/src/com/android/commands/am/Am.java b/cmds/am/src/com/android/commands/am/Am.java
index d6c00589e7c2..618a7ed34708 100644
--- a/cmds/am/src/com/android/commands/am/Am.java
+++ b/cmds/am/src/com/android/commands/am/Am.java
@@ -48,7 +48,9 @@
import android.content.pm.ParceledListSlice;
import android.content.pm.ResolveInfo;
import android.content.pm.UserInfo;
+import android.content.res.AssetManager;
import android.content.res.Configuration;
+import android.content.res.Resources;
import android.graphics.Rect;
import android.os.Binder;
import android.os.Build;
@@ -64,6 +66,7 @@
import android.text.TextUtils;
import android.util.AndroidException;
import android.util.ArrayMap;
+import android.util.DisplayMetrics;
import android.view.IWindowManager;
import com.android.internal.os.BaseCommand;
@@ -145,7 +148,7 @@ public void onShowUsage(PrintStream out) {
" am clear-debug-app\n" +
" am set-watch-heap \n" +
" am clear-watch-heap\n" +
- " am bug-report [--progress]\n" +
+ " am bug-report [--progress | --telephony]\n" +
" am monitor [--gdb ]\n" +
" am hang [--allow-restart]\n" +
" am restart\n" +
@@ -271,6 +274,7 @@ public void onShowUsage(PrintStream out) {
"am bug-report: request bug report generation; will launch a notification\n" +
" when done to select where it should be delivered. Options are: \n" +
" --progress: will launch a notification right away to show its progress.\n" +
+ " --telephony: will dump only telephony sections.\n" +
"\n" +
"am monitor: start monitoring for crashes or ANRs.\n" +
" --gdb: start gdbserv on the given port at crash/ANR\n" +
@@ -361,6 +365,8 @@ public void onShowUsage(PrintStream out) {
"am send-trim-memory: send a memory trim event to a .\n" +
"\n" +
"am get-current-user: returns id of the current foreground user.\n" +
+ "\n" +
+ "am supports-multiwindow: returns true if the device supports multiwindow.\n" +
"\n"
);
Intent.printIntentArgsHelp(pw, "");
@@ -458,6 +464,8 @@ public void onRun() throws Exception {
runSendTrimMemory();
} else if (op.equals("get-current-user")) {
runGetCurrentUser();
+ } else if (op.equals("supports-multiwindow")) {
+ runSupportsMultiwindow();
} else {
showError("Error: unknown command '" + op + "'");
}
@@ -1144,6 +1152,8 @@ private void runBugReport() throws Exception {
while ((opt=nextOption()) != null) {
if (opt.equals("--progress")) {
bugreportType = ActivityManager.BUGREPORT_OPTION_INTERACTIVE;
+ } else if (opt.equals("--telephony")) {
+ bugreportType = ActivityManager.BUGREPORT_OPTION_TELEPHONY;
} else {
System.err.println("Error: Unknown option: " + opt);
return;
@@ -2534,6 +2544,21 @@ private void runGetCurrentUser() throws Exception {
System.out.println(currentUser.id);
}
+ private void runSupportsMultiwindow() throws Exception {
+ // system resources does not contain all the device configuration, construct it manually.
+ Configuration config = mAm.getConfiguration();
+ if (config == null) {
+ throw new AndroidException("Activity manager has no configuration");
+ }
+
+ final DisplayMetrics metrics = new DisplayMetrics();
+ metrics.setToDefaults();
+
+ Resources res = new Resources(AssetManager.getSystem(), metrics, config);
+
+ System.out.println(res.getBoolean(com.android.internal.R.bool.config_supportsMultiWindow));
+ }
+
/**
* Open the given file for sending into the system process. This verifies
* with SELinux that the system will have access to the file.
diff --git a/cmds/bootanimation/BootAnimation.cpp b/cmds/bootanimation/BootAnimation.cpp
index 892b75adea29..791a40e374a8 100644
--- a/cmds/bootanimation/BootAnimation.cpp
+++ b/cmds/bootanimation/BootAnimation.cpp
@@ -70,15 +70,26 @@ static const char THEME_BOOTANIMATION_FILE[] = "/data/system/theme/bootanimation
static const char SYSTEM_DATA_DIR_PATH[] = "/data/system";
static const char SYSTEM_TIME_DIR_NAME[] = "time";
static const char SYSTEM_TIME_DIR_PATH[] = "/data/system/time";
+static const char CLOCK_FONT_ASSET[] = "images/clock_font.png";
+static const char CLOCK_FONT_ZIP_NAME[] = "clock_font.png";
static const char LAST_TIME_CHANGED_FILE_NAME[] = "last_time_change";
static const char LAST_TIME_CHANGED_FILE_PATH[] = "/data/system/time/last_time_change";
static const char ACCURATE_TIME_FLAG_FILE_NAME[] = "time_is_accurate";
static const char ACCURATE_TIME_FLAG_FILE_PATH[] = "/data/system/time/time_is_accurate";
+static const char TIME_FORMAT_12_HOUR_FLAG_FILE_PATH[] = "/data/system/time/time_format_12_hour";
// Java timestamp format. Don't show the clock if the date is before 2000-01-01 00:00:00.
static const long long ACCURATE_TIME_EPOCH = 946684800000;
+static constexpr char FONT_BEGIN_CHAR = ' ';
+static constexpr char FONT_END_CHAR = '~' + 1;
+static constexpr size_t FONT_NUM_CHARS = FONT_END_CHAR - FONT_BEGIN_CHAR + 1;
+static constexpr size_t FONT_NUM_COLS = 16;
+static constexpr size_t FONT_NUM_ROWS = FONT_NUM_CHARS / FONT_NUM_COLS;
+static const int TEXT_CENTER_VALUE = INT_MAX;
+static const int TEXT_MISSING_VALUE = INT_MIN;
static const char EXIT_PROP_NAME[] = "service.bootanim.exit";
static const char PLAY_SOUND_PROP_NAME[] = "persist.sys.bootanim.play_sound";
static const int ANIM_ENTRY_NAME_MAX = 256;
+static constexpr size_t TEXT_POS_LEN_MAX = 16;
static const char BOOT_COMPLETED_PROP_NAME[] = "sys.boot_completed";
static const char BOOTREASON_PROP_NAME[] = "ro.boot.bootreason";
// bootreasons list in "system/core/bootstat/bootstat.cpp".
@@ -147,7 +158,7 @@ static unsigned long getFreeMemory(void)
}
BootAnimation::BootAnimation() : Thread(false), mClockEnabled(true), mTimeIsAccurate(false),
- mTimeCheckThread(NULL) {
+ mTimeFormat12Hour(false), mTimeCheckThread(NULL) {
mSession = new SurfaceComposerClient();
// If the system has already booted, the animation is not being used for a boot.
@@ -233,6 +244,7 @@ status_t BootAnimation::initTexture(Texture* texture, AssetManager& assets,
glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+
return NO_ERROR;
}
@@ -311,6 +323,66 @@ status_t BootAnimation::initTexture(SkBitmap *bitmap)
bitmap->unlockPixels();
delete bitmap;
+
+ return NO_ERROR;
+}
+
+status_t BootAnimation::initTexture(FileMap* map, int* width, int* height)
+{
+ SkBitmap bitmap;
+ SkMemoryStream stream(map->getDataPtr(), map->getDataLength());
+ SkImageDecoder* codec = SkImageDecoder::Factory(&stream);
+ if (codec != NULL) {
+ codec->setDitherImage(false);
+ codec->decode(&stream, &bitmap,
+ kN32_SkColorType,
+ SkImageDecoder::kDecodePixels_Mode);
+ delete codec;
+ }
+ // FileMap memory is never released until application exit.
+ // Release it now as the texture is already loaded and the memory used for
+ // the packed resource can be released.
+ delete map;
+ // ensure we can call getPixels(). No need to call unlock, since the
+ // bitmap will go out of scope when we return from this method.
+ bitmap.lockPixels();
+ const int w = bitmap.width();
+ const int h = bitmap.height();
+ const void* p = bitmap.getPixels();
+ GLint crop[4] = { 0, h, w, -h };
+ int tw = 1 << (31 - __builtin_clz(w));
+ int th = 1 << (31 - __builtin_clz(h));
+ if (tw < w) tw <<= 1;
+ if (th < h) th <<= 1;
+ switch (bitmap.colorType()) {
+ case kN32_SkColorType:
+ if (!mUseNpotTextures && (tw != w || th != h)) {
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, tw, th, 0, GL_RGBA,
+ GL_UNSIGNED_BYTE, 0);
+ glTexSubImage2D(GL_TEXTURE_2D, 0,
+ 0, 0, w, h, GL_RGBA, GL_UNSIGNED_BYTE, p);
+ } else {
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w, h, 0, GL_RGBA,
+ GL_UNSIGNED_BYTE, p);
+ }
+ break;
+ case kRGB_565_SkColorType:
+ if (!mUseNpotTextures && (tw != w || th != h)) {
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, tw, th, 0, GL_RGB,
+ GL_UNSIGNED_SHORT_5_6_5, 0);
+ glTexSubImage2D(GL_TEXTURE_2D, 0,
+ 0, 0, w, h, GL_RGB, GL_UNSIGNED_SHORT_5_6_5, p);
+ } else {
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, w, h, 0, GL_RGB,
+ GL_UNSIGNED_SHORT_5_6_5, p);
+ }
+ break;
+ default:
+ break;
+ }
+ glTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_CROP_RECT_OES, crop);
+ *width = w;
+ *height = h;
return NO_ERROR;
}
@@ -503,7 +575,6 @@ bool BootAnimation::android()
return false;
}
-
void BootAnimation::checkExit() {
// Allow surface flinger to gracefully request shutdown
char value[PROPERTY_VALUE_MAX];
@@ -514,6 +585,47 @@ void BootAnimation::checkExit() {
}
}
+bool BootAnimation::validClock(const Animation::Part& part) {
+ return part.clockPosX != TEXT_MISSING_VALUE && part.clockPosY != TEXT_MISSING_VALUE;
+}
+
+bool parseTextCoord(const char* str, int* dest) {
+ if (strcmp("c", str) == 0) {
+ *dest = TEXT_CENTER_VALUE;
+ return true;
+ }
+
+ char* end;
+ int val = (int) strtol(str, &end, 0);
+ if (end == str || *end != '\0' || val == INT_MAX || val == INT_MIN) {
+ return false;
+ }
+ *dest = val;
+ return true;
+}
+
+// Parse two position coordinates. If only string is non-empty, treat it as the y value.
+void parsePosition(const char* str1, const char* str2, int* x, int* y) {
+ bool success = false;
+ if (strlen(str1) == 0) { // No values were specified
+ // success = false
+ } else if (strlen(str2) == 0) { // we have only one value
+ if (parseTextCoord(str1, y)) {
+ *x = TEXT_CENTER_VALUE;
+ success = true;
+ }
+ } else {
+ if (parseTextCoord(str1, x) && parseTextCoord(str2, y)) {
+ success = true;
+ }
+ }
+
+ if (!success) {
+ *x = TEXT_MISSING_VALUE;
+ *y = TEXT_MISSING_VALUE;
+ }
+}
+
// Parse a color represented as an HTML-style 'RRGGBB' string: each pair of
// characters in str is a hex number in [0, 255], which are converted to
// floating point values in the range [0.0, 1.0] and placed in the
@@ -560,69 +672,108 @@ static bool readFile(ZipFileRO* zip, const char* name, String8& outString)
return true;
}
-// The time glyphs are stored in a single image of height 64 pixels. Each digit is 40 pixels wide,
-// and the colon character is half that at 20 pixels. The glyph order is '0123456789:'.
-// We render 24 hour time.
-void BootAnimation::drawTime(const Texture& clockTex, const int yPos) {
- static constexpr char TIME_FORMAT[] = "%H:%M";
- static constexpr int TIME_LENGTH = sizeof(TIME_FORMAT);
+// The font image should be a 96x2 array of character images. The
+// columns are the printable ASCII characters 0x20 - 0x7f. The
+// top row is regular text; the bottom row is bold.
+status_t BootAnimation::initFont(Font* font, const char* fallback) {
+ status_t status = NO_ERROR;
- static constexpr int DIGIT_HEIGHT = 64;
- static constexpr int DIGIT_WIDTH = 40;
- static constexpr int COLON_WIDTH = DIGIT_WIDTH / 2;
- static constexpr int TIME_WIDTH = (DIGIT_WIDTH * 4) + COLON_WIDTH;
+ if (font->map != nullptr) {
+ glGenTextures(1, &font->texture.name);
+ glBindTexture(GL_TEXTURE_2D, font->texture.name);
- if (clockTex.h < DIGIT_HEIGHT || clockTex.w < (10 * DIGIT_WIDTH + COLON_WIDTH)) {
- ALOGE("Clock texture is too small; abandoning boot animation clock");
- mClockEnabled = false;
- return;
+ status = initTexture(font->map, &font->texture.w, &font->texture.h);
+
+ glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+ glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+ } else if (fallback != nullptr) {
+ status = initTexture(&font->texture, mAssets, fallback);
+ } else {
+ return NO_INIT;
}
- time_t rawtime;
- time(&rawtime);
- struct tm* timeInfo = localtime(&rawtime);
+ if (status == NO_ERROR) {
+ font->char_width = font->texture.w / FONT_NUM_COLS;
+ font->char_height = font->texture.h / FONT_NUM_ROWS / 2; // There are bold and regular rows
+ }
- char timeBuff[TIME_LENGTH];
- size_t length = strftime(timeBuff, TIME_LENGTH, TIME_FORMAT, timeInfo);
+ return status;
+}
- if (length != TIME_LENGTH - 1) {
- ALOGE("Couldn't format time; abandoning boot animation clock");
- mClockEnabled = false;
- return;
+void BootAnimation::drawText(const char* str, const Font& font, bool bold, int* x, int* y) {
+ glEnable(GL_BLEND); // Allow us to draw on top of the animation
+ glBindTexture(GL_TEXTURE_2D, font.texture.name);
+
+ const int len = strlen(str);
+ const int strWidth = font.char_width * len;
+
+ if (*x == TEXT_CENTER_VALUE) {
+ *x = (mWidth - strWidth) / 2;
+ } else if (*x < 0) {
+ *x = mWidth + *x - strWidth;
+ }
+ if (*y == TEXT_CENTER_VALUE) {
+ *y = (mHeight - font.char_height) / 2;
+ } else if (*y < 0) {
+ *y = mHeight + *y - font.char_height;
}
- glEnable(GL_BLEND); // Allow us to draw on top of the animation
- glBindTexture(GL_TEXTURE_2D, clockTex.name);
+ int cropRect[4] = { 0, 0, font.char_width, -font.char_height };
- int xPos = (mWidth - TIME_WIDTH) / 2;
- int cropRect[4] = { 0, DIGIT_HEIGHT, DIGIT_WIDTH, -DIGIT_HEIGHT };
+ for (int i = 0; i < len; i++) {
+ char c = str[i];
- for (int i = 0; i < TIME_LENGTH - 1; i++) {
- char c = timeBuff[i];
- int width = DIGIT_WIDTH;
- int pos = c - '0'; // Position in the character list
- if (pos < 0 || pos > 10) {
- continue;
- }
- if (c == ':') {
- width = COLON_WIDTH;
+ if (c < FONT_BEGIN_CHAR || c > FONT_END_CHAR) {
+ c = '?';
}
// Crop the texture to only the pixels in the current glyph
- int left = pos * DIGIT_WIDTH;
- cropRect[0] = left;
- cropRect[2] = width;
+ const int charPos = (c - FONT_BEGIN_CHAR); // Position in the list of valid characters
+ const int row = charPos / FONT_NUM_COLS;
+ const int col = charPos % FONT_NUM_COLS;
+ cropRect[0] = col * font.char_width; // Left of column
+ cropRect[1] = row * font.char_height * 2; // Top of row
+ // Move down to bottom of regular (one char_heigh) or bold (two char_heigh) line
+ cropRect[1] += bold ? 2 * font.char_height : font.char_height;
glTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_CROP_RECT_OES, cropRect);
- glDrawTexiOES(xPos, yPos, 0, width, DIGIT_HEIGHT);
+ glDrawTexiOES(*x, *y, 0, font.char_width, font.char_height);
- xPos += width;
+ *x += font.char_width;
}
glDisable(GL_BLEND); // Return to the animation's default behaviour
glBindTexture(GL_TEXTURE_2D, 0);
}
+// We render 12 or 24 hour time.
+void BootAnimation::drawClock(const Font& font, const int xPos, const int yPos) {
+ static constexpr char TIME_FORMAT_12[] = "%l:%M";
+ static constexpr char TIME_FORMAT_24[] = "%H:%M";
+ static constexpr int TIME_LENGTH = 6;
+
+ time_t rawtime;
+ time(&rawtime);
+ struct tm* timeInfo = localtime(&rawtime);
+
+ char timeBuff[TIME_LENGTH];
+ const char* timeFormat = mTimeFormat12Hour ? TIME_FORMAT_12 : TIME_FORMAT_24;
+ size_t length = strftime(timeBuff, TIME_LENGTH, timeFormat, timeInfo);
+
+ if (length != TIME_LENGTH - 1) {
+ ALOGE("Couldn't format time; abandoning boot animation clock");
+ mClockEnabled = false;
+ return;
+ }
+
+ char* out = timeBuff[0] == ' ' ? &timeBuff[1] : &timeBuff[0];
+ int x = xPos;
+ int y = yPos;
+ drawText(out, font, false, &x, &y);
+}
+
bool BootAnimation::parseAnimationDesc(Animation& animation)
{
String8 desString;
@@ -643,9 +794,10 @@ bool BootAnimation::parseAnimationDesc(Animation& animation)
int height = 0;
int count = 0;
int pause = 0;
- int clockPosY = -1;
char path[ANIM_ENTRY_NAME_MAX];
char color[7] = "000000"; // default to black if unspecified
+ char clockPos1[TEXT_POS_LEN_MAX + 1] = "";
+ char clockPos2[TEXT_POS_LEN_MAX + 1] = "";
char pathType;
if (sscanf(l, "%d %d %d", &width, &height, &fps) == 3) {
@@ -653,15 +805,15 @@ bool BootAnimation::parseAnimationDesc(Animation& animation)
animation.width = width;
animation.height = height;
animation.fps = fps;
- } else if (sscanf(l, " %c %d %d %s #%6s %d",
- &pathType, &count, &pause, path, color, &clockPosY) >= 4) {
- // ALOGD("> type=%c, count=%d, pause=%d, path=%s, color=%s, clockPosY=%d", pathType, count, pause, path, color, clockPosY);
+ } else if (sscanf(l, " %c %d %d %s #%6s %16s %16s",
+ &pathType, &count, &pause, path, color, clockPos1, clockPos2) >= 4) {
+ //ALOGD("> type=%c, count=%d, pause=%d, path=%s, color=%s, clockPos1=%s, clockPos2=%s",
+ // pathType, count, pause, path, color, clockPos1, clockPos2);
Animation::Part part;
part.playUntilComplete = pathType == 'c';
part.count = count;
part.pause = pause;
part.path = path;
- part.clockPosY = clockPosY;
part.audioData = NULL;
part.animation = NULL;
if (!parseColor(color, part.backgroundColor)) {
@@ -670,6 +822,7 @@ bool BootAnimation::parseAnimationDesc(Animation& animation)
part.backgroundColor[1] = 0.0f;
part.backgroundColor[2] = 0.0f;
}
+ parsePosition(clockPos1, clockPos2, &part.clockPosX, &part.clockPosY);
animation.parts.add(part);
}
else if (strcmp(l, "$SYSTEM") == 0) {
@@ -713,6 +866,14 @@ bool BootAnimation::preloadZip(Animation& animation)
const String8 path(entryName.getPathDir());
const String8 leaf(entryName.getPathLeaf());
if (leaf.size() > 0) {
+ if (entryName == CLOCK_FONT_ZIP_NAME) {
+ FileMap* map = zip->createEntryFileMap(entry);
+ if (map) {
+ animation.clockFont.map = map;
+ }
+ continue;
+ }
+
for (size_t j = 0; j < pcount; j++) {
if (path == animation.parts[j].path) {
uint16_t method;
@@ -797,7 +958,7 @@ bool BootAnimation::movie()
bool anyPartHasClock = false;
for (size_t i=0; i < animation->parts.size(); i++) {
- if(animation->parts[i].clockPosY >= 0) {
+ if(validClock(animation->parts[i])) {
anyPartHasClock = true;
break;
}
@@ -835,10 +996,11 @@ bool BootAnimation::movie()
glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
- bool clockTextureInitialized = false;
+ bool clockFontInitialized = false;
if (mClockEnabled) {
- clockTextureInitialized = (initTexture(&mClock, mAssets, "images/clock64.png") == NO_ERROR);
- mClockEnabled = clockTextureInitialized;
+ clockFontInitialized =
+ (initFont(&animation->clockFont, CLOCK_FONT_ASSET) == NO_ERROR);
+ mClockEnabled = clockFontInitialized;
}
if (mClockEnabled && !updateIsTimeAccurate()) {
@@ -855,8 +1017,8 @@ bool BootAnimation::movie()
releaseAnimation(animation);
- if (clockTextureInitialized) {
- glDeleteTextures(1, &mClock.name);
+ if (clockFontInitialized) {
+ glDeleteTextures(1, &animation->clockFont.texture.name);
}
return false;
@@ -972,8 +1134,8 @@ bool BootAnimation::playAnimation(const Animation& animation)
// which is equivalent to mHeight - (yc + frame.trimHeight)
glDrawTexiOES(xc, mHeight - (yc + frame.trimHeight),
0, frame.trimWidth, frame.trimHeight);
- if (mClockEnabled && mTimeIsAccurate && part.clockPosY >= 0) {
- drawTime(mClock, part.clockPosY);
+ if (mClockEnabled && mTimeIsAccurate && validClock(part)) {
+ drawClock(animation.clockFont, part.clockPosX, part.clockPosY);
}
eglSwapBuffers(mDisplay, mSurface);
@@ -1061,6 +1223,7 @@ BootAnimation::Animation* BootAnimation::loadAnimation(const String8& fn)
Animation *animation = new Animation;
animation->fileName = fn;
animation->zip = zip;
+ animation->clockFont.map = nullptr;
mLoadedFiles.add(animation->fileName);
parseAnimationDesc(*animation);
@@ -1217,6 +1380,11 @@ bool BootAnimation::updateIsTimeAccurate() {
}
struct stat statResult;
+
+ if(stat(TIME_FORMAT_12_HOUR_FLAG_FILE_PATH, &statResult) == 0) {
+ mTimeFormat12Hour = true;
+ }
+
if(stat(ACCURATE_TIME_FLAG_FILE_PATH, &statResult) == 0) {
mTimeIsAccurate = true;
return true;
diff --git a/cmds/bootanimation/BootAnimation.h b/cmds/bootanimation/BootAnimation.h
index eede889e10d6..44a0fcc39106 100644
--- a/cmds/bootanimation/BootAnimation.h
+++ b/cmds/bootanimation/BootAnimation.h
@@ -82,6 +82,13 @@ class BootAnimation : public Thread, public IBinder::DeathRecipient
GLuint name;
};
+ struct Font {
+ FileMap* map;
+ Texture texture;
+ int char_width;
+ int char_height;
+ };
+
struct Animation {
struct Frame {
String8 name;
@@ -98,8 +105,12 @@ class BootAnimation : public Thread, public IBinder::DeathRecipient
struct Part {
int count; // The number of times this part should repeat, 0 for infinite
int pause; // The number of frames to pause for at the end of this part
- int clockPosY; // The y position of the clock, in pixels, from the bottom of the
- // display (the clock is centred horizontally). -1 to disable the clock
+ int clockPosX; // The x position of the clock, in pixels. Positive values offset from
+ // the left of the screen, negative values offset from the right.
+ int clockPosY; // The y position of the clock, in pixels. Positive values offset from
+ // the bottom of the screen, negative values offset from the top.
+ // If either of the above are INT_MIN the clock is disabled, if INT_MAX
+ // the clock is centred on that axis.
String8 path;
String8 trimData;
SortedVector frames;
@@ -116,14 +127,19 @@ class BootAnimation : public Thread, public IBinder::DeathRecipient
String8 audioConf;
String8 fileName;
ZipFileRO* zip;
+ Font clockFont;
};
status_t initTexture(Texture* texture, AssetManager& asset, const char* name);
status_t initTexture(const Animation::Frame& frame);
status_t initTexture(SkBitmap *bitmap);
+ status_t initTexture(FileMap* map, int* width, int* height);
+ status_t initFont(Font* font, const char* fallback);
bool android();
bool movie();
- void drawTime(const Texture& clockTex, const int yPos);
+ void drawText(const char* str, const Font& font, bool bold, int* x, int* y);
+ void drawClock(const Font& font, const int xPos, const int yPos);
+ bool validClock(const Animation::Part& part);
Animation* loadAnimation(const String8&);
bool playAnimation(const Animation&);
void releaseAnimation(Animation*) const;
@@ -138,7 +154,6 @@ class BootAnimation : public Thread, public IBinder::DeathRecipient
sp mSession;
AssetManager mAssets;
Texture mAndroid[2];
- Texture mClock;
int mWidth;
int mHeight;
bool mUseNpotTextures = false;
@@ -149,6 +164,7 @@ class BootAnimation : public Thread, public IBinder::DeathRecipient
sp mFlingerSurface;
bool mClockEnabled;
bool mTimeIsAccurate;
+ bool mTimeFormat12Hour;
bool mSystemBoot;
String8 mZipFileName;
SortedVector mLoadedFiles;
diff --git a/cmds/svc/src/com/android/commands/svc/NfcCommand.java b/cmds/svc/src/com/android/commands/svc/NfcCommand.java
index 8e9791f8b731..02a92b9c19ff 100644
--- a/cmds/svc/src/com/android/commands/svc/NfcCommand.java
+++ b/cmds/svc/src/com/android/commands/svc/NfcCommand.java
@@ -58,7 +58,8 @@ public void run(String[] args) {
IPackageManager pm = IPackageManager.Stub.asInterface(
ServiceManager.getService("package"));
try {
- if (pm.hasSystemFeature(PackageManager.FEATURE_NFC, 0)) {
+ if (pm.hasSystemFeature(PackageManager.FEATURE_NFC, 0) ||
+ pm.hasSystemFeature(PackageManager.FEATURE_NFC_HOST_CARD_EMULATION, 0)) {
INfcAdapter nfc = INfcAdapter.Stub
.asInterface(ServiceManager.getService(Context.NFC_SERVICE));
try {
diff --git a/cmds/svc/src/com/android/commands/svc/UsbCommand.java b/cmds/svc/src/com/android/commands/svc/UsbCommand.java
index a6ef25fc4479..4dcb05e4f85d 100644
--- a/cmds/svc/src/com/android/commands/svc/UsbCommand.java
+++ b/cmds/svc/src/com/android/commands/svc/UsbCommand.java
@@ -50,7 +50,7 @@ public void run(String[] args) {
IUsbManager usbMgr = IUsbManager.Stub.asInterface(ServiceManager.getService(
Context.USB_SERVICE));
try {
- usbMgr.setCurrentFunction((args.length >=3 ? args[2] : null));
+ usbMgr.setCurrentFunction((args.length >=3 ? args[2] : null), false);
} catch (RemoteException e) {
System.err.println("Error communicating with UsbManager: " + e);
}
diff --git a/cmds/svc/src/com/android/commands/svc/WifiCommand.java b/cmds/svc/src/com/android/commands/svc/WifiCommand.java
index 94214ff9694f..633dd9787cb1 100644
--- a/cmds/svc/src/com/android/commands/svc/WifiCommand.java
+++ b/cmds/svc/src/com/android/commands/svc/WifiCommand.java
@@ -52,7 +52,7 @@ public void run(String[] args) {
IWifiManager wifiMgr
= IWifiManager.Stub.asInterface(ServiceManager.getService(Context.WIFI_SERVICE));
try {
- wifiMgr.setWifiEnabled(flag);
+ wifiMgr.setWifiEnabled("com.android.shell", flag);
}
catch (RemoteException e) {
System.err.println("Wi-Fi operation failed: " + e);
diff --git a/cmds/uiautomator/library/core-src/com/android/uiautomator/core/UiObject.java b/cmds/uiautomator/library/core-src/com/android/uiautomator/core/UiObject.java
index 751bbe825bca..ef6d55ffb483 100644
--- a/cmds/uiautomator/library/core-src/com/android/uiautomator/core/UiObject.java
+++ b/cmds/uiautomator/library/core-src/com/android/uiautomator/core/UiObject.java
@@ -808,7 +808,7 @@ public String getPackageName() throws UiObjectNotFoundException {
*
* @return Rect
* @throws UiObjectNotFoundException
- * @see {@link #getBounds()}
+ * @see #getBounds()
* @since API Level 17
*/
public Rect getVisibleBounds() throws UiObjectNotFoundException {
diff --git a/cmds/uiautomator/library/testrunner-src/com/android/uiautomator/core/UiAutomationShellWrapper.java b/cmds/uiautomator/library/testrunner-src/com/android/uiautomator/core/UiAutomationShellWrapper.java
index ddeb8e786271..19aa11a3b1aa 100644
--- a/cmds/uiautomator/library/testrunner-src/com/android/uiautomator/core/UiAutomationShellWrapper.java
+++ b/cmds/uiautomator/library/testrunner-src/com/android/uiautomator/core/UiAutomationShellWrapper.java
@@ -41,7 +41,7 @@ public void connect() {
* actions such as dialing 911 or posting messages to public forums, etc.
*
* @param isSet True to set as monkey test. False to set as regular functional test (default).
- * @see {@link ActivityManager#isUserAMonkey()}
+ * @see ActivityManager#isUserAMonkey()
*/
public void setRunAsMonkey(boolean isSet) {
IActivityManager am = ActivityManagerNative.getDefault();
diff --git a/core/java/android/accessibilityservice/AccessibilityService.java b/core/java/android/accessibilityservice/AccessibilityService.java
index 163e7d2661b9..b311c218de30 100644
--- a/core/java/android/accessibilityservice/AccessibilityService.java
+++ b/core/java/android/accessibilityservice/AccessibilityService.java
@@ -334,7 +334,8 @@ public abstract class AccessibilityService extends Service {
public static final int GLOBAL_ACTION_HOME = 2;
/**
- * Action to toggle showing the overview of recent apps
+ * Action to toggle showing the overview of recent apps. Will fail on platforms that don't
+ * show recent apps.
*/
public static final int GLOBAL_ACTION_RECENTS = 3;
diff --git a/core/java/android/accounts/AbstractAccountAuthenticator.java b/core/java/android/accounts/AbstractAccountAuthenticator.java
index 4dca8e24d435..a291ef5cbb1e 100644
--- a/core/java/android/accounts/AbstractAccountAuthenticator.java
+++ b/core/java/android/accounts/AbstractAccountAuthenticator.java
@@ -707,7 +707,7 @@ public Bundle getAccountRemovalAllowed(AccountAuthenticatorResponse response,
* @param account the account to clone, will never be null
* @return a Bundle result or null if the result is to be returned via the response.
* @throws NetworkErrorException
- * @see {@link #addAccountFromCredentials(AccountAuthenticatorResponse, Account, Bundle)}
+ * @see #addAccountFromCredentials(AccountAuthenticatorResponse, Account, Bundle)
*/
public Bundle getAccountCredentialsForCloning(final AccountAuthenticatorResponse response,
final Account account) throws NetworkErrorException {
@@ -732,7 +732,7 @@ public void run() {
* provided by {@link #getAccountCredentialsForCloning(AccountAuthenticatorResponse, Account)}.
* @return a Bundle result or null if the result is to be returned via the response.
* @throws NetworkErrorException
- * @see {@link #getAccountCredentialsForCloning(AccountAuthenticatorResponse, Account)}
+ * @see #getAccountCredentialsForCloning(AccountAuthenticatorResponse, Account)
*/
public Bundle addAccountFromCredentials(final AccountAuthenticatorResponse response,
Account account,
diff --git a/core/java/android/animation/ObjectAnimator.java b/core/java/android/animation/ObjectAnimator.java
index 0c21c4ff55e7..4707bed3ee14 100644
--- a/core/java/android/animation/ObjectAnimator.java
+++ b/core/java/android/animation/ObjectAnimator.java
@@ -38,8 +38,8 @@
*
* {@sample development/samples/ApiDemos/res/anim/object_animator.xml ObjectAnimatorResources}
*
- * When using resource files, it is possible to use {@link PropertyValuesHolder} and
- * {@link Keyframe} to create more complex animations. Using PropertyValuesHolders
+ *
Starting from API 23, it is possible to use {@link PropertyValuesHolder} and
+ * {@link Keyframe} in resource files to create more complex animations. Using PropertyValuesHolders
* allows animators to animate several properties in parallel, as shown in this sample:
*
* {@sample development/samples/ApiDemos/res/anim/object_animator_pvh.xml
diff --git a/core/java/android/animation/ValueAnimator.java b/core/java/android/animation/ValueAnimator.java
index 7e16e3ece549..d472c37cd64d 100644
--- a/core/java/android/animation/ValueAnimator.java
+++ b/core/java/android/animation/ValueAnimator.java
@@ -49,8 +49,8 @@
*
* {@sample development/samples/ApiDemos/res/anim/animator.xml ValueAnimatorResources}
*
- * It is also possible to use a combination of {@link PropertyValuesHolder} and
- * {@link Keyframe} resource tags to create a multi-step animation.
+ *
Starting from API 23, it is also possible to use a combination of {@link PropertyValuesHolder}
+ * and {@link Keyframe} resource tags to create a multi-step animation.
* Note that you can specify explicit fractional values (from 0 to 1) for
* each keyframe to determine when, in the overall duration, the animation should arrive at that
* value. Alternatively, you can leave the fractions off and the keyframes will be equally
diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java
index e4880b0f6a43..3cb3b0b96eae 100644
--- a/core/java/android/app/Activity.java
+++ b/core/java/android/app/Activity.java
@@ -2946,8 +2946,11 @@ public boolean hasWindowFocus() {
* @hide
*/
@Override
- public void onWindowDismissed(boolean finishTask) {
+ public void onWindowDismissed(boolean finishTask, boolean suppressWindowTransition) {
finish(finishTask ? FINISH_TASK_WITH_ACTIVITY : DONT_FINISH_TASK_WITH_ACTIVITY);
+ if (suppressWindowTransition) {
+ overridePendingTransition(0, 0);
+ }
}
@@ -4210,7 +4213,7 @@ public void startActivityForResult(@RequiresPermission Intent intent, int reques
* @param requestCode If >= 0, this code will be returned in
* onActivityResult() when the activity exits.
* @param options Additional options for how the Activity should be started.
- * See {@link android.content.Context#startActivity(Intent, Bundle)
+ * See {@link android.content.Context#startActivity(Intent, Bundle)}
* Context.startActivity(Intent, Bundle)} for more details.
*
* @throws android.content.ActivityNotFoundException
@@ -4419,7 +4422,7 @@ public void startIntentSenderForResult(IntentSender intent, int requestCode,
* flagsMask
* @param extraFlags Always set to 0.
* @param options Additional options for how the Activity should be started.
- * See {@link android.content.Context#startActivity(Intent, Bundle)
+ * See {@link android.content.Context#startActivity(Intent, Bundle)}
* Context.startActivity(Intent, Bundle)} for more details. If options
* have also been supplied by the IntentSender, options given here will
* override any that conflict with those given by the IntentSender.
@@ -4504,7 +4507,7 @@ public void startActivity(Intent intent) {
*
* @param intent The intent to start.
* @param options Additional options for how the Activity should be started.
- * See {@link android.content.Context#startActivity(Intent, Bundle)
+ * See {@link android.content.Context#startActivity(Intent, Bundle)}
* Context.startActivity(Intent, Bundle)} for more details.
*
* @throws android.content.ActivityNotFoundException
@@ -4553,7 +4556,7 @@ public void startActivities(Intent[] intents) {
*
* @param intents The intents to start.
* @param options Additional options for how the Activity should be started.
- * See {@link android.content.Context#startActivity(Intent, Bundle)
+ * See {@link android.content.Context#startActivity(Intent, Bundle)}
* Context.startActivity(Intent, Bundle)} for more details.
*
* @throws android.content.ActivityNotFoundException
@@ -4602,7 +4605,7 @@ public void startIntentSender(IntentSender intent,
* flagsMask
* @param extraFlags Always set to 0.
* @param options Additional options for how the Activity should be started.
- * See {@link android.content.Context#startActivity(Intent, Bundle)
+ * See {@link android.content.Context#startActivity(Intent, Bundle)}
* Context.startActivity(Intent, Bundle)} for more details. If options
* have also been supplied by the IntentSender, options given here will
* override any that conflict with those given by the IntentSender.
@@ -4662,7 +4665,7 @@ public boolean startActivityIfNeeded(@RequiresPermission @NonNull Intent intent,
* onActivityResult() when the activity exits, as described in
* {@link #startActivityForResult}.
* @param options Additional options for how the Activity should be started.
- * See {@link android.content.Context#startActivity(Intent, Bundle)
+ * See {@link android.content.Context#startActivity(Intent, Bundle)}
* Context.startActivity(Intent, Bundle)} for more details.
*
* @return If a new activity was launched then true is returned; otherwise
@@ -4739,7 +4742,7 @@ public boolean startNextMatchingActivity(@RequiresPermission @NonNull Intent int
* your own activity; the only changes you can make are to the extras
* inside of it.
* @param options Additional options for how the Activity should be started.
- * See {@link android.content.Context#startActivity(Intent, Bundle)
+ * See {@link android.content.Context#startActivity(Intent, Bundle)}
* Context.startActivity(Intent, Bundle)} for more details.
*
* @return Returns a boolean indicating whether there was another Activity
@@ -4794,7 +4797,7 @@ public void startActivityFromChild(@NonNull Activity child, @RequiresPermission
* @param intent The intent to start.
* @param requestCode Reply request code. < 0 if reply is not requested.
* @param options Additional options for how the Activity should be started.
- * See {@link android.content.Context#startActivity(Intent, Bundle)
+ * See {@link android.content.Context#startActivity(Intent, Bundle)}
* Context.startActivity(Intent, Bundle)} for more details.
*
* @throws android.content.ActivityNotFoundException
@@ -4847,7 +4850,7 @@ public void startActivityFromFragment(@NonNull Fragment fragment,
* @param intent The intent to start.
* @param requestCode Reply request code. < 0 if reply is not requested.
* @param options Additional options for how the Activity should be started.
- * See {@link android.content.Context#startActivity(Intent, Bundle)
+ * See {@link android.content.Context#startActivity(Intent, Bundle)}
* Context.startActivity(Intent, Bundle)} for more details.
*
* @throws android.content.ActivityNotFoundException
diff --git a/core/java/android/app/ActivityManager.java b/core/java/android/app/ActivityManager.java
index b0e6dadbcb96..32599a8ec2d8 100644
--- a/core/java/android/app/ActivityManager.java
+++ b/core/java/android/app/ActivityManager.java
@@ -75,7 +75,39 @@
import java.util.List;
/**
- * Interact with the overall activities running in the system.
+ *
+ * This class gives information about, and interacts
+ * with, activities, services, and the containing
+ * process.
+ *
+ *
+ *
+ * A number of the methods in this class are for
+ * debugging or informational purposes and they should
+ * not be used to affect any runtime behavior of
+ * your app. These methods are called out as such in
+ * the method level documentation.
+ *
+ *
+ *
+ * Most application developers should not have the need to
+ * use this class, most of whose methods are for specialized
+ * use cases. However, a few methods are more broadly applicable.
+ * For instance, {@link android.app.ActivityManager#isLowRamDevice() isLowRamDevice()}
+ * enables your app to detect whether it is running on a low-memory device,
+ * and behave accordingly.
+ * {@link android.app.ActivityManager#clearApplicationUserData() clearApplicationUserData()}
+ * is for apps with reset-data functionality.
+ *
+ *
+ *
+ * In some special use cases, where an app interacts with
+ * its Task stack, the app may use the
+ * {@link android.app.ActivityManager.AppTask} and
+ * {@link android.app.ActivityManager.RecentTaskInfo} inner
+ * classes. However, in general, the methods in this class should
+ * be used for testing and debugging purposes only.
+ *
*/
public class ActivityManager {
private static String TAG = "ActivityManager";
@@ -94,7 +126,8 @@ public class ActivityManager {
BUGREPORT_OPTION_FULL,
BUGREPORT_OPTION_INTERACTIVE,
BUGREPORT_OPTION_REMOTE,
- BUGREPORT_OPTION_WEAR
+ BUGREPORT_OPTION_WEAR,
+ BUGREPORT_OPTION_TELEPHONY
})
public @interface BugreportMode {}
/**
@@ -121,6 +154,13 @@ public class ActivityManager {
*/
public static final int BUGREPORT_OPTION_WEAR = 3;
+ /**
+ * Takes a lightweight version of bugreport that only includes a few, urgent sections
+ * used to report telephony bugs.
+ * @hide
+ */
+ public static final int BUGREPORT_OPTION_TELEPHONY = 4;
+
/**
* {@code
* } name for a 'home' Activity that declares a package that is to be
@@ -2152,13 +2192,13 @@ public static class RunningServiceInfo implements Parcelable {
public static final int FLAG_FOREGROUND = 1<<1;
/**
- * Bit for {@link #flags): set if the service is running in a
+ * Bit for {@link #flags}: set if the service is running in a
* core system process.
*/
public static final int FLAG_SYSTEM_PROCESS = 1<<2;
/**
- * Bit for {@link #flags): set if the service is running in a
+ * Bit for {@link #flags}: set if the service is running in a
* persistent process.
*/
public static final int FLAG_PERSISTENT_PROCESS = 1<<3;
diff --git a/core/java/android/app/ActivityManagerInternal.java b/core/java/android/app/ActivityManagerInternal.java
index d4f80a01ea53..28f84771e10c 100644
--- a/core/java/android/app/ActivityManagerInternal.java
+++ b/core/java/android/app/ActivityManagerInternal.java
@@ -60,6 +60,13 @@ public abstract class ActivityManagerInternal {
*/
public static final int APP_TRANSITION_TIMEOUT = 3;
+ /**
+ * Grant Uri permissions from one app to another. This method only extends
+ * permission grants if {@code callingUid} has permission to them.
+ */
+ public abstract void grantUriPermissionFromIntent(int callingUid, String targetPkg,
+ Intent intent, int targetUserId);
+
/**
* Verify that calling app has access to the given provider.
*/
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java
index 680293a5d78a..0d583bfb48c9 100644
--- a/core/java/android/app/ActivityThread.java
+++ b/core/java/android/app/ActivityThread.java
@@ -63,6 +63,7 @@
import android.os.Debug;
import android.os.DropBoxManager;
import android.os.Environment;
+import android.os.GraphicsEnvironment;
import android.os.Handler;
import android.os.IBinder;
import android.os.LocaleList;
@@ -5062,7 +5063,7 @@ final void handleTrimMemory(int level) {
WindowManagerGlobal.getInstance().trimMemory(level);
}
- private void setupGraphicsSupport(LoadedApk info, File cacheDir) {
+ private void setupGraphicsSupport(Context context, File cacheDir) {
if (Process.isIsolated()) {
// Isolated processes aren't going to do UI.
return;
@@ -5075,6 +5076,7 @@ private void setupGraphicsSupport(LoadedApk info, File cacheDir) {
if (packages != null) {
ThreadedRenderer.setupDiskCache(cacheDir);
RenderScriptCacheDir.setupDiskCache(cacheDir);
+ GraphicsEnvironment.setupGraphicsEnvironment(context);
}
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
@@ -5362,7 +5364,7 @@ private void handleBindApplication(AppBindData data) {
final Context deviceContext = appContext.createDeviceProtectedStorageContext();
final File codeCacheDir = deviceContext.getCodeCacheDir();
if (codeCacheDir != null) {
- setupGraphicsSupport(data.info, codeCacheDir);
+ setupGraphicsSupport(appContext, codeCacheDir);
} else {
Log.e(TAG, "Unable to setupGraphicsSupport due to missing code-cache directory");
}
diff --git a/core/java/android/app/AppOpsManager.java b/core/java/android/app/AppOpsManager.java
index 3f17f26a1155..9efcec4e2c30 100755
--- a/core/java/android/app/AppOpsManager.java
+++ b/core/java/android/app/AppOpsManager.java
@@ -413,8 +413,8 @@ public class AppOpsManager {
OP_WRITE_SMS,
OP_RECEIVE_SMS,
OP_RECEIVE_SMS,
- OP_RECEIVE_SMS,
- OP_RECEIVE_SMS,
+ OP_RECEIVE_MMS,
+ OP_RECEIVE_WAP_PUSH,
OP_SEND_SMS,
OP_READ_SMS,
OP_WRITE_SMS,
diff --git a/core/java/android/app/ApplicationErrorReport.java b/core/java/android/app/ApplicationErrorReport.java
index 9fa8a5d2faee..eb5613a05fb8 100644
--- a/core/java/android/app/ApplicationErrorReport.java
+++ b/core/java/android/app/ApplicationErrorReport.java
@@ -378,6 +378,11 @@ public CrashInfo(Throwable tr) {
exceptionMessage = sanitizeString(exceptionMessage);
}
+ /** {@hide} */
+ public void appendStackTrace(String tr) {
+ stackTrace = sanitizeString(stackTrace + tr);
+ }
+
/**
* Ensure that the string is of reasonable size, truncating from the middle if needed.
*/
diff --git a/core/java/android/app/ApplicationPackageManager.java b/core/java/android/app/ApplicationPackageManager.java
index 37faa2e23dbf..c44cdb290de6 100644
--- a/core/java/android/app/ApplicationPackageManager.java
+++ b/core/java/android/app/ApplicationPackageManager.java
@@ -291,6 +291,12 @@ public List queryPermissionsByGroup(String group, int flags)
throw new NameNotFoundException(group);
}
+ @Override
+ public boolean isPermissionReviewModeEnabled() {
+ return mContext.getResources().getBoolean(
+ com.android.internal.R.bool.config_permissionReviewRequired);
+ }
+
@Override
public PermissionGroupInfo getPermissionGroupInfo(String name,
int flags) throws NameNotFoundException {
diff --git a/core/java/android/app/Dialog.java b/core/java/android/app/Dialog.java
index 6e2c464e9a37..72ccf72d2d05 100644
--- a/core/java/android/app/Dialog.java
+++ b/core/java/android/app/Dialog.java
@@ -185,6 +185,11 @@ public Dialog(@NonNull Context context, @StyleRes int themeResId) {
mWindow = w;
w.setCallback(this);
w.setOnWindowDismissedCallback(this);
+ w.setOnWindowSwipeDismissedCallback(() -> {
+ if (mCancelable) {
+ cancel();
+ }
+ });
w.setWindowManager(mWindowManager, null, null);
w.setGravity(Gravity.CENTER);
@@ -200,6 +205,7 @@ protected Dialog(@NonNull Context context, boolean cancelable,
@Nullable Message cancelCallback) {
this(context);
mCancelable = cancelable;
+ updateWindowForCancelable();
mCancelMessage = cancelCallback;
}
@@ -207,6 +213,7 @@ protected Dialog(@NonNull Context context, boolean cancelable,
@Nullable OnCancelListener cancelListener) {
this(context);
mCancelable = cancelable;
+ updateWindowForCancelable();
setOnCancelListener(cancelListener);
}
@@ -742,7 +749,7 @@ public void onDetachedFromWindow() {
/** @hide */
@Override
- public void onWindowDismissed(boolean finishTask) {
+ public void onWindowDismissed(boolean finishTask, boolean suppressWindowTransition) {
dismiss();
}
@@ -1187,6 +1194,7 @@ public final void setFeatureDrawableAlpha(int featureId, int alpha) {
*/
public void setCancelable(boolean flag) {
mCancelable = flag;
+ updateWindowForCancelable();
}
/**
@@ -1200,6 +1208,7 @@ public void setCancelable(boolean flag) {
public void setCanceledOnTouchOutside(boolean cancel) {
if (cancel && !mCancelable) {
mCancelable = true;
+ updateWindowForCancelable();
}
mWindow.setCloseOnTouchOutside(cancel);
@@ -1351,4 +1360,8 @@ public void handleMessage(Message msg) {
}
}
}
+
+ private void updateWindowForCancelable() {
+ mWindow.setCloseOnSwipeEnabled(mCancelable);
+ }
}
diff --git a/core/java/android/app/Fragment.java b/core/java/android/app/Fragment.java
index 5dead2850942..6b2838626ded 100644
--- a/core/java/android/app/Fragment.java
+++ b/core/java/android/app/Fragment.java
@@ -1115,7 +1115,7 @@ public void startActivity(Intent intent) {
*
* @param intent The intent to start.
* @param options Additional options for how the Activity should be started.
- * See {@link android.content.Context#startActivity(Intent, Bundle)
+ * See {@link android.content.Context#startActivity(Intent, Bundle)}
* Context.startActivity(Intent, Bundle)} for more details.
*/
public void startActivity(Intent intent, Bundle options) {
diff --git a/core/java/android/app/KeyguardManager.java b/core/java/android/app/KeyguardManager.java
index 391065787683..1850cebf4f07 100644
--- a/core/java/android/app/KeyguardManager.java
+++ b/core/java/android/app/KeyguardManager.java
@@ -21,18 +21,20 @@
import android.app.trust.ITrustManager;
import android.content.Context;
import android.content.Intent;
-import android.content.pm.UserInfo;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
import android.os.Binder;
-import android.os.RemoteException;
import android.os.IBinder;
import android.os.IUserManager;
+import android.os.RemoteException;
import android.os.ServiceManager;
import android.os.UserHandle;
-import android.os.UserManager;
-import android.view.IWindowManager;
import android.view.IOnKeyguardExitResult;
+import android.view.IWindowManager;
import android.view.WindowManagerGlobal;
+import java.util.List;
+
/**
* Class that can be used to lock and unlock the keyboard. Get an instance of this
* class by calling {@link android.content.Context#getSystemService(java.lang.String)}
@@ -44,6 +46,7 @@ public class KeyguardManager {
private IWindowManager mWM;
private ITrustManager mTrustManager;
private IUserManager mUserManager;
+ private Context mContext;
/**
* Intent used to prompt user for device credentials.
@@ -86,8 +89,9 @@ public Intent createConfirmDeviceCredentialIntent(CharSequence title, CharSequen
Intent intent = new Intent(ACTION_CONFIRM_DEVICE_CREDENTIAL);
intent.putExtra(EXTRA_TITLE, title);
intent.putExtra(EXTRA_DESCRIPTION, description);
- // For security reasons, only allow this to come from system settings.
- intent.setPackage("com.android.settings");
+
+ // explicitly set the package for security
+ intent.setPackage(getSettingsPackageForIntent(intent));
return intent;
}
@@ -108,11 +112,23 @@ public Intent createConfirmDeviceCredentialIntent(
intent.putExtra(EXTRA_TITLE, title);
intent.putExtra(EXTRA_DESCRIPTION, description);
intent.putExtra(Intent.EXTRA_USER_ID, userId);
- // For security reasons, only allow this to come from system settings.
- intent.setPackage("com.android.settings");
+
+ // explicitly set the package for security
+ intent.setPackage(getSettingsPackageForIntent(intent));
+
return intent;
}
+ private String getSettingsPackageForIntent(Intent intent) {
+ List resolveInfos = mContext.getPackageManager()
+ .queryIntentActivities(intent, PackageManager.MATCH_SYSTEM_ONLY);
+ for (int i = 0; i < resolveInfos.size(); i++) {
+ return resolveInfos.get(i).activityInfo.packageName;
+ }
+
+ return "com.android.settings";
+ }
+
/**
* @deprecated Use {@link android.view.WindowManager.LayoutParams#FLAG_DISMISS_KEYGUARD}
* and/or {@link android.view.WindowManager.LayoutParams#FLAG_SHOW_WHEN_LOCKED}
@@ -191,7 +207,8 @@ public interface OnKeyguardExitResult {
}
- KeyguardManager() {
+ KeyguardManager(Context context) {
+ mContext = context;
mWM = WindowManagerGlobal.getWindowManagerService();
mTrustManager = ITrustManager.Stub.asInterface(
ServiceManager.getService(Context.TRUST_SERVICE));
diff --git a/core/java/android/app/SystemServiceRegistry.java b/core/java/android/app/SystemServiceRegistry.java
index 55744b935f51..4c9b9778d7b5 100644
--- a/core/java/android/app/SystemServiceRegistry.java
+++ b/core/java/android/app/SystemServiceRegistry.java
@@ -320,10 +320,10 @@ public TextServicesManager createService() {
}});
registerService(Context.KEYGUARD_SERVICE, KeyguardManager.class,
- new StaticServiceFetcher() {
+ new CachedServiceFetcher() {
@Override
- public KeyguardManager createService() {
- return new KeyguardManager();
+ public KeyguardManager createService(ContextImpl ctx) {
+ return new KeyguardManager(ctx);
}});
registerService(Context.LAYOUT_INFLATER_SERVICE, LayoutInflater.class,
diff --git a/core/java/android/app/TaskStackBuilder.java b/core/java/android/app/TaskStackBuilder.java
index 0077db1eb317..bab993f855e9 100644
--- a/core/java/android/app/TaskStackBuilder.java
+++ b/core/java/android/app/TaskStackBuilder.java
@@ -226,7 +226,7 @@ public void startActivities(Bundle options, UserHandle userHandle) {
* Start the task stack constructed by this builder.
*
* @param options Additional options for how the Activity should be started.
- * See {@link android.content.Context#startActivity(Intent, Bundle)
+ * See {@link android.content.Context#startActivity(Intent, Bundle)}
* Context.startActivity(Intent, Bundle)} for more details.
*/
public void startActivities(Bundle options) {
@@ -259,7 +259,7 @@ public PendingIntent getPendingIntent(int requestCode, @PendingIntent.Flags int
* {@link Intent#fillIn(Intent, int)} to control which unspecified parts of the
* intent that can be supplied when the actual send happens.
* @param options Additional options for how the Activity should be started.
- * See {@link android.content.Context#startActivity(Intent, Bundle)
+ * See {@link android.content.Context#startActivity(Intent, Bundle)}
* Context.startActivity(Intent, Bundle)} for more details.
*
* @return The obtained PendingIntent
diff --git a/core/java/android/app/admin/ConnectEvent.aidl b/core/java/android/app/admin/ConnectEvent.aidl
new file mode 100644
index 000000000000..bab40f5add38
--- /dev/null
+++ b/core/java/android/app/admin/ConnectEvent.aidl
@@ -0,0 +1,21 @@
+/*
+ * Copyright (C) 2016 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.app.admin;
+
+/** {@hide} */
+parcelable ConnectEvent;
+
diff --git a/core/java/android/app/admin/ConnectEvent.java b/core/java/android/app/admin/ConnectEvent.java
new file mode 100644
index 000000000000..b6b14f24a096
--- /dev/null
+++ b/core/java/android/app/admin/ConnectEvent.java
@@ -0,0 +1,93 @@
+/*
+ * Copyright (C) 2016 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.app.admin;
+
+import android.os.Parcel;
+import android.os.Parcelable;
+
+/**
+ * A class that represents a connect library call event.
+ * @hide
+ */
+public final class ConnectEvent extends NetworkEvent implements Parcelable {
+
+ /** The destination IP address. */
+ private final String ipAddress;
+
+ /** The destination port number. */
+ private final int port;
+
+ /** @hide */
+ public ConnectEvent(String ipAddress, int port, String packageName, long timestamp) {
+ super(packageName, timestamp);
+ this.ipAddress = ipAddress;
+ this.port = port;
+ }
+
+ private ConnectEvent(Parcel in) {
+ this.ipAddress = in.readString();
+ this.port = in.readInt();
+ this.packageName = in.readString();
+ this.timestamp = in.readLong();
+ }
+
+ public String getIpAddress() {
+ return ipAddress;
+ }
+
+ public int getPort() {
+ return port;
+ }
+
+ @Override
+ public String toString() {
+ return String.format("ConnectEvent(%s, %d, %d, %s)", ipAddress, port, timestamp,
+ packageName);
+ }
+
+ public static final Parcelable.Creator CREATOR
+ = new Parcelable.Creator() {
+ @Override
+ public ConnectEvent createFromParcel(Parcel in) {
+ if (in.readInt() != PARCEL_TOKEN_CONNECT_EVENT) {
+ return null;
+ }
+ return new ConnectEvent(in);
+ }
+
+ @Override
+ public ConnectEvent[] newArray(int size) {
+ return new ConnectEvent[size];
+ }
+ };
+
+ @Override
+ public int describeContents() {
+ return 0;
+ }
+
+ @Override
+ public void writeToParcel(Parcel out, int flags) {
+ // write parcel token first
+ out.writeInt(PARCEL_TOKEN_CONNECT_EVENT);
+ out.writeString(ipAddress);
+ out.writeInt(port);
+ out.writeString(packageName);
+ out.writeLong(timestamp);
+ }
+}
+
diff --git a/core/java/android/app/admin/DeviceAdminReceiver.java b/core/java/android/app/admin/DeviceAdminReceiver.java
index dd70b5dfd1f0..cbd5a6d54832 100644
--- a/core/java/android/app/admin/DeviceAdminReceiver.java
+++ b/core/java/android/app/admin/DeviceAdminReceiver.java
@@ -275,6 +275,36 @@ public class DeviceAdminReceiver extends BroadcastReceiver {
public static final String ACTION_SECURITY_LOGS_AVAILABLE
= "android.app.action.SECURITY_LOGS_AVAILABLE";
+ /**
+ * Broadcast action: notify that a new batch of network logs is ready to be collected.
+ * @see DeviceAdminReceiver#onNetworkLogsAvailable
+ * @hide
+ */
+ @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
+ public static final String ACTION_NETWORK_LOGS_AVAILABLE
+ = "android.app.action.NETWORK_LOGS_AVAILABLE";
+
+ /**
+ * A {@code long} containing a token of the current batch of network logs, that has to be used
+ * to retrieve the batch of logs by the device owner.
+ *
+ * @see #ACTION_NETWORK_LOGS_AVAILABLE
+ * @see DevicePolicyManager#retrieveNetworkLogs
+ * @hide
+ */
+ public static final String EXTRA_NETWORK_LOGS_TOKEN =
+ "android.app.extra.EXTRA_NETWORK_LOGS_TOKEN";
+
+ /**
+ * An {@code int} count representing a total count of network logs inside the current batch of
+ * network logs.
+ *
+ * @see #ACTION_NETWORK_LOGS_AVAILABLE
+ * @hide
+ */
+ public static final String EXTRA_NETWORK_LOGS_COUNT =
+ "android.app.extra.EXTRA_NETWORK_LOGS_COUNT";
+
/**
* A string containing the SHA-256 hash of the bugreport file.
*
@@ -634,6 +664,25 @@ public void onBugreportFailed(Context context, Intent intent,
public void onSecurityLogsAvailable(Context context, Intent intent) {
}
+ /**
+ * Called each time a new batch of network logs can be retrieved. This callback method will only
+ * ever be called when network logging is enabled. The logs can only be retrieved while network
+ * logging is enabled.
+ *
+ * This callback is only applicable to device owners.
+ *
+ * @param context The running context as per {@link #onReceive}.
+ * @param intent The received intent as per {@link #onReceive}.
+ * @param batchToken The token representing the current batch of network logs.
+ * @param networkLogsCount The total count of events in the current batch of network logs.
+ * @see DevicePolicyManager#retrieveNetworkLogs(ComponentName)
+ *
+ * @hide
+ */
+ public void onNetworkLogsAvailable(Context context, Intent intent, long batchToken,
+ int networkLogsCount) {
+ }
+
/**
* Intercept standard device administrator broadcasts. Implementations
* should not override this method; it is better to implement the
@@ -688,6 +737,10 @@ public void onReceive(Context context, Intent intent) {
onBugreportFailed(context, intent, failureCode);
} else if (ACTION_SECURITY_LOGS_AVAILABLE.equals(action)) {
onSecurityLogsAvailable(context, intent);
+ } else if (ACTION_NETWORK_LOGS_AVAILABLE.equals(action)) {
+ long batchToken = intent.getLongExtra(EXTRA_NETWORK_LOGS_TOKEN, -1);
+ int networkLogsCount = intent.getIntExtra(EXTRA_NETWORK_LOGS_COUNT, 0);
+ onNetworkLogsAvailable(context, intent, batchToken, networkLogsCount);
}
}
}
diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java
index e23f142317ac..2fd7d3c51c43 100644
--- a/core/java/android/app/admin/DevicePolicyManager.java
+++ b/core/java/android/app/admin/DevicePolicyManager.java
@@ -25,6 +25,7 @@
import android.annotation.SystemApi;
import android.annotation.UserIdInt;
import android.app.Activity;
+import android.app.admin.NetworkEvent;
import android.app.admin.SecurityLog.SecurityEvent;
import android.content.ComponentName;
import android.content.Context;
@@ -360,7 +361,7 @@ protected int myUserId() {
* @hide
*/
public static final String ACTION_BUGREPORT_SHARING_ACCEPTED =
- "com.android.server.action.BUGREPORT_SHARING_ACCEPTED";
+ "com.android.server.action.REMOTE_BUGREPORT_SHARING_ACCEPTED";
/**
* Action: Bugreport sharing with device owner has been declined by the user.
@@ -368,7 +369,7 @@ protected int myUserId() {
* @hide
*/
public static final String ACTION_BUGREPORT_SHARING_DECLINED =
- "com.android.server.action.BUGREPORT_SHARING_DECLINED";
+ "com.android.server.action.REMOTE_BUGREPORT_SHARING_DECLINED";
/**
* Action: Bugreport has been collected and is dispatched to {@link DevicePolicyManagerService}.
@@ -948,6 +949,15 @@ protected int myUserId() {
public static final String ACTION_SET_NEW_PARENT_PROFILE_PASSWORD
= "android.app.action.SET_NEW_PARENT_PROFILE_PASSWORD";
+ /**
+ * Broadcast action: Tell the status bar to open the device monitoring dialog, e.g. when
+ * Network logging was enabled and the user tapped the notification.
+ *
This is a protected intent that can only be sent by the system.
+ * @hide
+ */
+ public static final String ACTION_SHOW_DEVICE_MONITORING_DIALOG
+ = "android.app.action.SHOW_DEVICE_MONITORING_DIALOG";
+
/**
* Flag used by {@link #addCrossProfileIntentFilter} to allow activities in
* the parent profile to access intents sent from the managed profile.
@@ -6624,4 +6634,81 @@ public boolean isBackupServiceEnabled(@NonNull ComponentName admin) {
throw re.rethrowFromSystemServer();
}
}
+
+ /**
+ * Called by a device owner to control the network logging feature. Logging can only be
+ * enabled on single user devices where the sole user is managed by the device owner. If a new
+ * user is added on the device, logging is disabled.
+ *
+ * Network logs contain DNS lookup and connect() library call events.
+ *
+ * @param admin Which {@link DeviceAdminReceiver} this request is associated with.
+ * @param enabled whether network logging should be enabled or not.
+ * @throws {@link SecurityException} if {@code admin} is not a device owner.
+ * @see #retrieveNetworkLogs
+ *
+ * @hide
+ */
+ public void setNetworkLoggingEnabled(@NonNull ComponentName admin, boolean enabled) {
+ throwIfParentInstance("setNetworkLoggingEnabled");
+ try {
+ mService.setNetworkLoggingEnabled(admin, enabled);
+ } catch (RemoteException re) {
+ throw re.rethrowFromSystemServer();
+ }
+ }
+
+ /**
+ * Return whether network logging is enabled by a device owner.
+ *
+ * @param admin Which {@link DeviceAdminReceiver} this request is associated with. Can only
+ * be {@code null} if the caller has MANAGE_USERS permission.
+ * @return {@code true} if network logging is enabled by device owner, {@code false} otherwise.
+ * @throws {@link SecurityException} if {@code admin} is not a device owner and caller has
+ * no MANAGE_USERS permission
+ *
+ * @hide
+ */
+ public boolean isNetworkLoggingEnabled(@Nullable ComponentName admin) {
+ throwIfParentInstance("isNetworkLoggingEnabled");
+ try {
+ return mService.isNetworkLoggingEnabled(admin);
+ } catch (RemoteException re) {
+ throw re.rethrowFromSystemServer();
+ }
+ }
+
+ /**
+ * Called by device owner to retrieve the most recent batch of network logging events.
+ * A device owner has to provide a batchToken provided as part of
+ * {@link DeviceAdminReceiver#onNetworkLogsAvailable} callback. If the token doesn't match the
+ * token of the most recent available batch of logs, {@code null} will be returned.
+ *
+ *
{@link NetworkEvent} can be one of {@link DnsEvent} or {@link ConnectEvent}.
+ *
+ *
The list of network events is sorted chronologically, and contains at most 1200 events.
+ *
+ *
Access to the logs is rate limited and this method will only return a new batch of logs
+ * after the device device owner has been notified via
+ * {@link DeviceAdminReceiver#onNetworkLogsAvailable}.
+ *
+ * @param admin Which {@link DeviceAdminReceiver} this request is associated with.
+ * @param batchToken A token of the batch to retrieve
+ * @return A new batch of network logs which is a list of {@link NetworkEvent}. Returns
+ * {@code null} if the batch represented by batchToken is no longer available or if
+ * logging is disabled.
+ * @throws {@link SecurityException} if {@code admin} is not a device owner.
+ * @see DeviceAdminReceiver#onNetworkLogsAvailable
+ *
+ * @hide
+ */
+ public @Nullable List retrieveNetworkLogs(@NonNull ComponentName admin,
+ long batchToken) {
+ throwIfParentInstance("retrieveNetworkLogs");
+ try {
+ return mService.retrieveNetworkLogs(admin, batchToken);
+ } catch (RemoteException re) {
+ throw re.rethrowFromSystemServer();
+ }
+ }
}
diff --git a/core/java/android/app/admin/DnsEvent.aidl b/core/java/android/app/admin/DnsEvent.aidl
new file mode 100644
index 000000000000..6da962a0a828
--- /dev/null
+++ b/core/java/android/app/admin/DnsEvent.aidl
@@ -0,0 +1,21 @@
+/*
+ * Copyright (C) 2016 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.app.admin;
+
+/** {@hide} */
+parcelable DnsEvent;
+
diff --git a/core/java/android/app/admin/DnsEvent.java b/core/java/android/app/admin/DnsEvent.java
new file mode 100644
index 000000000000..4ff8e1cba531
--- /dev/null
+++ b/core/java/android/app/admin/DnsEvent.java
@@ -0,0 +1,124 @@
+/*
+ * Copyright (C) 2016 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.app.admin;
+
+import android.os.Parcel;
+import android.os.Parcelable;
+
+/**
+ * A class that represents a DNS lookup event.
+ * @hide
+ */
+public final class DnsEvent extends NetworkEvent implements Parcelable {
+
+ /** The hostname that was looked up. */
+ private final String hostname;
+
+ /** Contains (possibly a subset of) the IP addresses returned. */
+ private final String[] ipAddresses;
+
+ /**
+ * The number of IP addresses returned from the DNS lookup event. May be different from the
+ * length of ipAddresses if there were too many addresses to log.
+ */
+ private final int ipAddressesCount;
+
+ /** @hide */
+ public DnsEvent(String hostname, String[] ipAddresses, int ipAddressesCount,
+ String packageName, long timestamp) {
+ super(packageName, timestamp);
+ this.hostname = hostname;
+ this.ipAddresses = ipAddresses;
+ this.ipAddressesCount = ipAddressesCount;
+ }
+
+ private DnsEvent(Parcel in) {
+ this.hostname = in.readString();
+ this.ipAddresses = in.createStringArray();
+ this.ipAddressesCount = in.readInt();
+ this.packageName = in.readString();
+ this.timestamp = in.readLong();
+ }
+
+ /** Returns the hostname that was looked up. */
+ public String getHostname() {
+ return hostname;
+ }
+
+ /** Returns (possibly a subset of) the IP addresses returned. */
+ public String[] getIpAddresses() {
+ return ipAddresses;
+ }
+
+ /**
+ * Returns the number of IP addresses returned from the DNS lookup event. May be different from
+ * the length of ipAddresses if there were too many addresses to log.
+ */
+ public int getIpAddressesCount() {
+ return ipAddressesCount;
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ if (ipAddresses != null) {
+ for (int i = 0; i < ipAddresses.length; i++) {
+ sb.append(ipAddresses[i]);
+ if (i < ipAddresses.length - 1) {
+ sb.append(" ");
+ }
+ }
+ } else {
+ sb.append("NONE");
+ }
+ return String.format("DnsEvent(%s, %s, %d, %d, %s)", hostname, sb.toString(),
+ ipAddressesCount, timestamp, packageName);
+ }
+
+ public static final Parcelable.Creator CREATOR
+ = new Parcelable.Creator() {
+ @Override
+ public DnsEvent createFromParcel(Parcel in) {
+ if (in.readInt() != PARCEL_TOKEN_DNS_EVENT) {
+ return null;
+ }
+ return new DnsEvent(in);
+ }
+
+ @Override
+ public DnsEvent[] newArray(int size) {
+ return new DnsEvent[size];
+ }
+ };
+
+ @Override
+ public int describeContents() {
+ return 0;
+ }
+
+ @Override
+ public void writeToParcel(Parcel out, int flags) {
+ // write parcel token first
+ out.writeInt(PARCEL_TOKEN_DNS_EVENT);
+ out.writeString(hostname);
+ out.writeStringArray(ipAddresses);
+ out.writeInt(ipAddressesCount);
+ out.writeString(packageName);
+ out.writeLong(timestamp);
+ }
+}
+
diff --git a/core/java/android/app/admin/IDevicePolicyManager.aidl b/core/java/android/app/admin/IDevicePolicyManager.aidl
index 90632a19a09b..b98927d1a148 100644
--- a/core/java/android/app/admin/IDevicePolicyManager.aidl
+++ b/core/java/android/app/admin/IDevicePolicyManager.aidl
@@ -17,6 +17,7 @@
package android.app.admin;
+import android.app.admin.NetworkEvent;
import android.app.admin.SystemUpdatePolicy;
import android.content.ComponentName;
import android.content.Intent;
@@ -312,4 +313,8 @@ interface IDevicePolicyManager {
void setBackupServiceEnabled(in ComponentName admin, boolean enabled);
boolean isBackupServiceEnabled(in ComponentName admin);
+
+ void setNetworkLoggingEnabled(in ComponentName admin, boolean enabled);
+ boolean isNetworkLoggingEnabled(in ComponentName admin);
+ List retrieveNetworkLogs(in ComponentName admin, long batchToken);
}
diff --git a/core/java/android/app/admin/NetworkEvent.aidl b/core/java/android/app/admin/NetworkEvent.aidl
new file mode 100644
index 000000000000..5fa5dbfabb5f
--- /dev/null
+++ b/core/java/android/app/admin/NetworkEvent.aidl
@@ -0,0 +1,21 @@
+/*
+ * Copyright (C) 2016 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.app.admin;
+
+/** {@hide} */
+parcelable NetworkEvent;
+
diff --git a/core/java/android/app/admin/NetworkEvent.java b/core/java/android/app/admin/NetworkEvent.java
new file mode 100644
index 000000000000..0de2665f90a8
--- /dev/null
+++ b/core/java/android/app/admin/NetworkEvent.java
@@ -0,0 +1,97 @@
+/*
+ * Copyright (C) 2016 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.app.admin;
+
+import android.content.pm.PackageManager;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.os.ParcelFormatException;
+
+/**
+ * An abstract class that represents a network event.
+ * @hide
+ */
+public abstract class NetworkEvent implements Parcelable {
+
+ static final int PARCEL_TOKEN_DNS_EVENT = 1;
+ static final int PARCEL_TOKEN_CONNECT_EVENT = 2;
+
+ /** The package name of the UID that performed the query. */
+ String packageName;
+
+ /** The timestamp of the event being reported in milliseconds. */
+ long timestamp;
+
+ /** @hide */
+ NetworkEvent() {
+ //empty constructor
+ }
+
+ /** @hide */
+ NetworkEvent(String packageName, long timestamp) {
+ this.packageName = packageName;
+ this.timestamp = timestamp;
+ }
+
+ /**
+ * Returns the package name of the UID that performed the query, as returned by
+ * {@link PackageManager#getNameForUid}.
+ */
+ public String getPackageName() {
+ return packageName;
+ }
+
+ /**
+ * Returns the timestamp of the event being reported in milliseconds, the difference between
+ * the time the event was reported and midnight, January 1, 1970 UTC.
+ */
+ public long getTimestamp() {
+ return timestamp;
+ }
+
+ @Override
+ public int describeContents() {
+ return 0;
+ }
+
+ public static final Parcelable.Creator CREATOR
+ = new Parcelable.Creator() {
+ public NetworkEvent createFromParcel(Parcel in) {
+ final int initialPosition = in.dataPosition();
+ final int parcelToken = in.readInt();
+ // we need to move back to the position from before we read parcelToken
+ in.setDataPosition(initialPosition);
+ switch (parcelToken) {
+ case PARCEL_TOKEN_DNS_EVENT:
+ return DnsEvent.CREATOR.createFromParcel(in);
+ case PARCEL_TOKEN_CONNECT_EVENT:
+ return ConnectEvent.CREATOR.createFromParcel(in);
+ default:
+ throw new ParcelFormatException("Unexpected NetworkEvent token in parcel: "
+ + parcelToken);
+ }
+ }
+
+ public NetworkEvent[] newArray(int size) {
+ return new NetworkEvent[size];
+ }
+ };
+
+ @Override
+ public abstract void writeToParcel(Parcel out, int flags);
+}
+
diff --git a/core/java/android/app/admin/SecurityLog.java b/core/java/android/app/admin/SecurityLog.java
index 2858991fbdf4..91b87d74694d 100644
--- a/core/java/android/app/admin/SecurityLog.java
+++ b/core/java/android/app/admin/SecurityLog.java
@@ -144,8 +144,7 @@ public long getTimeNanos() {
}
/**
- * Returns the payload contained in this log. Each call to this method will
- * retrieve the next payload item. If no more payload exists, it returns {@code null}.
+ * Returns the payload contained in this log entry or {@code null} if there is no payload.
*/
public Object getData() {
return mEvent.getData();
diff --git a/core/java/android/app/backup/BackupAgent.java b/core/java/android/app/backup/BackupAgent.java
index a793d0c12ee9..d3a14853cf1e 100644
--- a/core/java/android/app/backup/BackupAgent.java
+++ b/core/java/android/app/backup/BackupAgent.java
@@ -493,7 +493,7 @@ private void applyXmlFiltersAndDoFullBackupForDomain(String packageName, String
* Attempting to back up files in directories that are ignored by
* the backup system will have no effect. For example, if the app calls this method
* with a file inside the {@link #getNoBackupFilesDir()} directory, it will be ignored.
- * See {@link #onFullBackup(FullBackupDataOutput) for details on what directories
+ * See {@link #onFullBackup(FullBackupDataOutput)} for details on what directories
* are excluded from backups.
*
* @param file The file to be backed up. The file must exist and be readable by
diff --git a/core/java/android/appwidget/AppWidgetHostView.java b/core/java/android/appwidget/AppWidgetHostView.java
index bb5f7a1d606e..5d99ada9a024 100644
--- a/core/java/android/appwidget/AppWidgetHostView.java
+++ b/core/java/android/appwidget/AppWidgetHostView.java
@@ -347,8 +347,9 @@ public LayoutParams generateLayoutParams(AttributeSet attrs) {
}
/**
- * Sets an executor which can be used for asynchronously inflating and applying the remoteviews.
- * @see {@link RemoteViews#applyAsync(Context, ViewGroup, RemoteViews.OnViewAppliedListener, Executor)}
+ * Sets an executor which can be used for asynchronously inflating. CPU intensive tasks like
+ * view inflation or loading images will be performed on the executor. The updates will still
+ * be applied on the UI thread.
*
* @param executor the executor to use or null.
* @hide
diff --git a/core/java/android/bluetooth/BluetoothAdapter.java b/core/java/android/bluetooth/BluetoothAdapter.java
index c5f07e320a87..6f8374c3ea95 100644
--- a/core/java/android/bluetooth/BluetoothAdapter.java
+++ b/core/java/android/bluetooth/BluetoothAdapter.java
@@ -23,6 +23,7 @@
import android.annotation.SdkConstant;
import android.annotation.SdkConstant.SdkConstantType;
import android.annotation.SystemApi;
+import android.app.ActivityThread;
import android.bluetooth.le.BluetoothLeAdvertiser;
import android.bluetooth.le.BluetoothLeScanner;
import android.bluetooth.le.ScanCallback;
@@ -199,6 +200,23 @@ public final class BluetoothAdapter {
*/
public static final int STATE_BLE_TURNING_OFF = 16;
+ /**
+ * Human-readable string helper for AdapterState
+ * @hide
+ */
+ public static String nameForState(@AdapterState int state) {
+ switch(state) {
+ case STATE_OFF: return "OFF";
+ case STATE_TURNING_ON: return "TURNING_ON";
+ case STATE_ON: return "ON";
+ case STATE_TURNING_OFF: return "TURNING_OFF";
+ case STATE_BLE_TURNING_ON: return "BLE_TURNING_ON";
+ case STATE_BLE_ON: return "BLE_ON";
+ case STATE_BLE_TURNING_OFF: return "BLE_TURNING_OFF";
+ default: return "?!?!? (" + state + ")";
+ }
+ }
+
/**
* Activity Action: Show a system activity that requests discoverable mode.
* This activity will also request the user to turn on Bluetooth if it
@@ -254,6 +272,29 @@ public final class BluetoothAdapter {
public static final String ACTION_REQUEST_ENABLE =
"android.bluetooth.adapter.action.REQUEST_ENABLE";
+ /**
+ * Activity Action: Show a system activity that allows the user to turn off
+ * Bluetooth. This is used only if permission review is enabled which is for
+ * apps targeting API less than 23 require a permission review before any of
+ * the app's components can run.
+ *
This system activity will return once Bluetooth has completed turning
+ * off, or the user has decided not to turn Bluetooth off.
+ *
Notification of the result of this activity is posted using the
+ * {@link android.app.Activity#onActivityResult} callback. The
+ * resultCode
+ * will be {@link android.app.Activity#RESULT_OK} if Bluetooth has been
+ * turned off or {@link android.app.Activity#RESULT_CANCELED} if the user
+ * has rejected the request or an error has occurred.
+ *
Applications can also listen for {@link #ACTION_STATE_CHANGED}
+ * for global notification whenever Bluetooth is turned on or off.
+ *
Requires {@link android.Manifest.permission#BLUETOOTH}
+ *
+ * @hide
+ */
+ @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
+ public static final String ACTION_REQUEST_DISABLE =
+ "android.bluetooth.adapter.action.REQUEST_DISABLE";
+
/**
* Activity Action: Show a system activity that allows user to enable BLE scans even when
* Bluetooth is turned off.
@@ -640,42 +681,12 @@ public boolean isEnabled() {
@SystemApi
public boolean isLeEnabled() {
final int state = getLeState();
- if (state == BluetoothAdapter.STATE_ON) {
- if (DBG) Log.d (TAG, "STATE_ON");
- } else if (state == BluetoothAdapter.STATE_BLE_ON) {
- if (DBG) Log.d (TAG, "STATE_BLE_ON");
- } else {
- if (DBG) Log.d (TAG, "STATE_OFF");
- return false;
- }
- return true;
- }
-
- /**
- * Performs action based on user action to turn BT ON
- * or OFF if BT is in BLE_ON state
- */
- private void notifyUserAction(boolean enable) {
- try {
- mServiceLock.readLock().lock();
- if (mService == null) {
- Log.e(TAG, "mService is null");
- return;
- }
- if (enable) {
- mService.onLeServiceUp(); //NA:TODO implementation pending
- } else {
- mService.onBrEdrDown(); //NA:TODO implementation pending
- }
- } catch (RemoteException e) {
- Log.e(TAG, "", e);
- } finally {
- mServiceLock.readLock().unlock();
- }
+ if (DBG) Log.d(TAG, "isLeEnabled(): " + BluetoothAdapter.nameForState(state));
+ return (state == BluetoothAdapter.STATE_ON || state == BluetoothAdapter.STATE_BLE_ON);
}
/**
- * Turns off Bluetooth LE which was earlier turned on by calling EnableBLE().
+ * Turns off Bluetooth LE which was earlier turned on by calling enableBLE().
*
*
If the internal Adapter state is STATE_BLE_ON, this would trigger the transition
* to STATE_OFF and completely shut-down Bluetooth
@@ -705,61 +716,50 @@ public boolean disableBLE() {
if (!isBleScanAlwaysAvailable()) return false;
int state = getLeState();
- if (state == BluetoothAdapter.STATE_ON) {
- if (DBG) Log.d (TAG, "STATE_ON: shouldn't disable");
+ if (state == BluetoothAdapter.STATE_ON || state == BluetoothAdapter.STATE_BLE_ON) {
+ String packageName = ActivityThread.currentPackageName();
+ if (DBG) Log.d (TAG, "disableBLE(): de-registering " + packageName);
try {
- mManagerService.updateBleAppCount(mToken, false);
+ mManagerService.updateBleAppCount(mToken, false, packageName);
} catch (RemoteException e) {
Log.e(TAG, "", e);
}
return true;
-
- } else if (state == BluetoothAdapter.STATE_BLE_ON) {
- if (DBG) Log.d (TAG, "STATE_BLE_ON");
- int bleAppCnt = 0;
- try {
- bleAppCnt = mManagerService.updateBleAppCount(mToken, false);
- } catch (RemoteException e) {
- Log.e(TAG, "", e);
- }
- if (bleAppCnt == 0) {
- // Disable only if there are no other clients
- notifyUserAction(false);
- }
- return true;
}
- if (DBG) Log.d (TAG, "STATE_OFF: Already disabled");
+ if (DBG) Log.d (TAG, "disableBLE(): Already disabled");
return false;
}
/**
- * Special Applications who want to only turn on Bluetooth Low Energy (BLE) would
- * EnableBLE, EnableBLE brings-up Bluetooth so that application can access
- * only LE related feature (Bluetooth GATT layers interfaces using the respective class)
- * EnableBLE in turn registers the existance of a special App which wants to
- * turn on Bluetooth Low enrgy part without making it visible at the settings UI
- * as Bluetooth ON.
- *
Invoking EnableBLE when Bluetooth is already in ON state, would just registers
- * the existance of special Application and doesn't do anything to current BT state.
- * when user turn OFF Bluetooth from UI, if there is an existance of special app, Bluetooth
- * would stay in BLE_ON state so that LE features are still acessible to the special
- * Applications.
+ * Applications who want to only use Bluetooth Low Energy (BLE) can call enableBLE.
*
- *
This is an asynchronous call: it will return immediately, and
+ * enableBLE registers the existence of an app using only LE functions.
+ *
+ * enableBLE may enable Bluetooth to an LE only mode so that an app can use
+ * LE related features (BluetoothGatt or BluetoothGattServer classes)
+ *
+ * If the user disables Bluetooth while an app is registered to use LE only features,
+ * Bluetooth will remain on in LE only mode for the app.
+ *
+ * When Bluetooth is in LE only mode, it is not shown as ON to the UI.
+ *
+ *
This is an asynchronous call: it returns immediately, and
* clients should listen for {@link #ACTION_BLE_STATE_CHANGED}
- * to be notified of subsequent adapter state changes. If this call returns
- * true, then the adapter state will immediately transition from {@link
- * #STATE_OFF} to {@link #STATE_BLE_TURNING_ON}, and some time
- * later transition to either {@link #STATE_OFF} or {@link
- * #STATE_BLE_ON}. If this call returns false then there was an
- * immediate problem that will prevent the adapter from being turned on -
- * such as Airplane mode, or the adapter is already turned on.
- * (@link #ACTION_BLE_STATE_CHANGED) returns the Bluetooth Adapter's various
+ * to be notified of adapter state changes.
+ *
+ * If this call returns * true, then the adapter state is either in a mode where
+ * LE is available, or will transition from {@link #STATE_OFF} to {@link #STATE_BLE_TURNING_ON},
+ * and some time later transition to either {@link #STATE_OFF} or {@link #STATE_BLE_ON}.
+ *
+ * If this call returns false then there was an immediate problem that prevents the
+ * adapter from being turned on - such as Airplane mode.
+ *
+ * {@link #ACTION_BLE_STATE_CHANGED} returns the Bluetooth Adapter's various
* states, It includes all the classic Bluetooth Adapter states along with
* internal BLE only states
*
- * @return true to indicate Bluetooth LE start-up has begun, or false on
+ * @return true to indicate Bluetooth LE will be available, or false on
* immediate error
* @hide
*/
@@ -768,13 +768,14 @@ public boolean enableBLE() {
if (!isBleScanAlwaysAvailable()) return false;
try {
- mManagerService.updateBleAppCount(mToken, true);
+ String packageName = ActivityThread.currentPackageName();
+ mManagerService.updateBleAppCount(mToken, true, packageName);
if (isLeEnabled()) {
if (DBG) Log.d(TAG, "enableBLE(): Bluetooth already enabled");
return true;
}
if (DBG) Log.d(TAG, "enableBLE(): Calling enable");
- return mManagerService.enable();
+ return mManagerService.enable(packageName);
} catch (RemoteException e) {
Log.e(TAG, "", e);
}
@@ -814,10 +815,10 @@ public int getState() {
if (state == BluetoothAdapter.STATE_BLE_ON
|| state == BluetoothAdapter.STATE_BLE_TURNING_ON
|| state == BluetoothAdapter.STATE_BLE_TURNING_OFF) {
- if (VDBG) Log.d(TAG, "Consider internal state as OFF");
+ if (VDBG) Log.d(TAG, "Consider " + BluetoothAdapter.nameForState(state) + " state as OFF");
state = BluetoothAdapter.STATE_OFF;
}
- if (VDBG) Log.d(TAG, "" + hashCode() + ": getState(). Returning " + state);
+ if (VDBG) Log.d(TAG, "" + hashCode() + ": getState(). Returning " + BluetoothAdapter.nameForState(state));
return state;
}
@@ -854,12 +855,12 @@ public int getLeState() {
mServiceLock.readLock().unlock();
}
- if (VDBG) Log.d(TAG,"getLeState() returning " + state);
+ if (VDBG) Log.d(TAG,"getLeState() returning " + BluetoothAdapter.nameForState(state));
return state;
}
boolean getLeAccess() {
- if(getLeState() == STATE_ON)
+ if (getLeState() == STATE_ON)
return true;
else if (getLeState() == STATE_BLE_ON)
@@ -898,12 +899,12 @@ else if (getLeState() == STATE_BLE_ON)
@RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
public boolean enable() {
android.util.SeempLog.record(56);
- if (isEnabled() == true) {
- if (DBG) Log.d(TAG, "enable(): BT is already enabled..!");
+ if (isEnabled()) {
+ if (DBG) Log.d(TAG, "enable(): BT already enabled!");
return true;
}
try {
- return mManagerService.enable();
+ return mManagerService.enable(ActivityThread.currentPackageName());
} catch (RemoteException e) {Log.e(TAG, "", e);}
return false;
}
@@ -936,7 +937,7 @@ public boolean enable() {
public boolean disable() {
android.util.SeempLog.record(57);
try {
- return mManagerService.disable(true);
+ return mManagerService.disable(ActivityThread.currentPackageName(), true);
} catch (RemoteException e) {Log.e(TAG, "", e);}
return false;
}
@@ -955,7 +956,7 @@ public boolean disable(boolean persist) {
android.util.SeempLog.record(57);
try {
- return mManagerService.disable(persist);
+ return mManagerService.disable(ActivityThread.currentPackageName(), persist);
} catch (RemoteException e) {Log.e(TAG, "", e);}
return false;
}
@@ -1499,6 +1500,37 @@ public Set getBondedDevices() {
return null;
}
+ /**
+ * Gets the currently supported profiles by the adapter.
+ *
+ * This can be used to check whether a profile is supported before attempting
+ * to connect to its respective proxy.
+ *
+ * @return a list of integers indicating the ids of supported profiles as defined in
+ * {@link BluetoothProfile}.
+ * @hide
+ */
+ public List getSupportedProfiles() {
+ final ArrayList supportedProfiles = new ArrayList();
+
+ try {
+ synchronized (mManagerCallback) {
+ if (mService != null) {
+ final long supportedProfilesBitMask = mService.getSupportedProfiles();
+
+ for (int i = 0; i <= BluetoothProfile.MAX_PROFILE_ID; i++) {
+ if ((supportedProfilesBitMask & (1 << i)) != 0) {
+ supportedProfiles.add(i);
+ }
+ }
+ }
+ }
+ } catch (RemoteException e) {
+ Log.e(TAG, "getSupportedProfiles:", e);
+ }
+ return supportedProfiles;
+ }
+
/**
* Get the current connection state of the local Bluetooth adapter.
* This can be used to check whether the local Bluetooth adapter is connected
@@ -1877,34 +1909,6 @@ public BluetoothServerSocket listenUsingInsecureL2capOn(int port) throws IOExcep
* @hide
*/
public Pair readOutOfBandData() {
- if (getState() != STATE_ON) return null;
- //TODO(BT
- /*
- try {
- byte[] hash;
- byte[] randomizer;
-
- byte[] ret = null;
- mServiceLock.readLock().lock();
- if (mService != null) mService.readOutOfBandData();
-
- if (ret == null || ret.length != 32) return null;
-
- hash = Arrays.copyOfRange(ret, 0, 16);
- randomizer = Arrays.copyOfRange(ret, 16, 32);
-
- if (DBG) {
- Log.d(TAG, "readOutOfBandData:" + Arrays.toString(hash) +
- ":" + Arrays.toString(randomizer));
- }
- return new Pair(hash, randomizer);
-
- } catch (RemoteException e) {
- Log.e(TAG, "", e);
- } finally {
- mServiceLock.readLock().unlock();
- }
- */
return null;
}
@@ -2058,7 +2062,7 @@ public void onBluetoothServiceUp(IBluetooth bluetoothService) {
if (cb != null) {
cb.onBluetoothServiceUp(bluetoothService);
} else {
- Log.d(TAG, "onBluetoothServiceUp: cb is null!!!");
+ Log.d(TAG, "onBluetoothServiceUp: cb is null!");
}
} catch (Exception e) {
Log.e(TAG,"",e);
@@ -2088,7 +2092,7 @@ public void onBluetoothServiceDown() {
if (cb != null) {
cb.onBluetoothServiceDown();
} else {
- Log.d(TAG, "onBluetoothServiceDown: cb is null!!!");
+ Log.d(TAG, "onBluetoothServiceDown: cb is null!");
}
} catch (Exception e) { Log.e(TAG,"",e);}
}
@@ -2097,7 +2101,7 @@ public void onBluetoothServiceDown() {
}
public void onBrEdrDown() {
- if (DBG) Log.i(TAG, "onBrEdrDown:");
+ if (VDBG) Log.i(TAG, "onBrEdrDown: " + mService);
}
};
@@ -2108,11 +2112,11 @@ public void onBrEdrDown() {
*/
public boolean enableNoAutoConnect() {
if (isEnabled() == true){
- if (DBG) Log.d(TAG, "enableNoAutoConnect(): BT is already enabled..!");
+ if (DBG) Log.d(TAG, "enableNoAutoConnect(): BT already enabled!");
return true;
}
try {
- return mManagerService.enableNoAutoConnect();
+ return mManagerService.enableNoAutoConnect(ActivityThread.currentPackageName());
} catch (RemoteException e) {Log.e(TAG, "", e);}
return false;
}
@@ -2148,22 +2152,6 @@ public boolean enableNoAutoConnect() {
*/
public boolean changeApplicationBluetoothState(boolean on,
BluetoothStateChangeCallback callback) {
- if (callback == null) return false;
-
- //TODO(BT)
- /*
- try {
- mServiceLock.readLock().lock();
- if (mService != null) {
- return mService.changeApplicationBluetoothState(on, new
- StateChangeCallbackWrapper(callback), new Binder());
- }
- } catch (RemoteException e) {
- Log.e(TAG, "changeBluetoothState", e);
- } finally {
- mServiceLock.readLock().unlock();
- }
- */
return false;
}
diff --git a/core/java/android/bluetooth/BluetoothGatt.java b/core/java/android/bluetooth/BluetoothGatt.java
index 552c8d3b0143..0eca4d670d3d 100644
--- a/core/java/android/bluetooth/BluetoothGatt.java
+++ b/core/java/android/bluetooth/BluetoothGatt.java
@@ -44,14 +44,18 @@ public final class BluetoothGatt implements BluetoothProfile {
private IBluetoothGatt mService;
private BluetoothGattCallback mCallback;
private int mClientIf;
- private boolean mAuthRetry = false;
private BluetoothDevice mDevice;
private boolean mAutoConnect;
+ private int mAuthRetryState;
private int mConnState;
private final Object mStateLock = new Object();
private Boolean mDeviceBusy = false;
private int mTransport;
+ private static final int AUTH_RETRY_STATE_IDLE = 0;
+ private static final int AUTH_RETRY_STATE_NO_MITM = 1;
+ private static final int AUTH_RETRY_STATE_MITM = 2;
+
private static final int CONN_STATE_IDLE = 0;
private static final int CONN_STATE_CONNECTING = 1;
private static final int CONN_STATE_CONNECTED = 2;
@@ -262,17 +266,19 @@ public void onCharacteristicRead(String address, int status, int handle, byte[]
if ((status == GATT_INSUFFICIENT_AUTHENTICATION
|| status == GATT_INSUFFICIENT_ENCRYPTION)
- && mAuthRetry == false) {
+ && (mAuthRetryState != AUTH_RETRY_STATE_MITM)) {
try {
- mAuthRetry = true;
- mService.readCharacteristic(mClientIf, address, handle, AUTHENTICATION_MITM);
+ final int authReq = (mAuthRetryState == AUTH_RETRY_STATE_IDLE) ?
+ AUTHENTICATION_NO_MITM : AUTHENTICATION_MITM;
+ mService.readCharacteristic(mClientIf, address, handle, authReq);
+ mAuthRetryState++;
return;
} catch (RemoteException e) {
Log.e(TAG,"",e);
}
}
- mAuthRetry = false;
+ mAuthRetryState = AUTH_RETRY_STATE_IDLE;
BluetoothGattCharacteristic characteristic = getCharacteristicById(mDevice, handle);
if (characteristic == null) {
@@ -311,19 +317,20 @@ public void onCharacteristicWrite(String address, int status, int handle) {
if ((status == GATT_INSUFFICIENT_AUTHENTICATION
|| status == GATT_INSUFFICIENT_ENCRYPTION)
- && mAuthRetry == false) {
+ && (mAuthRetryState != AUTH_RETRY_STATE_MITM)) {
try {
- mAuthRetry = true;
+ final int authReq = (mAuthRetryState == AUTH_RETRY_STATE_IDLE) ?
+ AUTHENTICATION_NO_MITM : AUTHENTICATION_MITM;
mService.writeCharacteristic(mClientIf, address, handle,
- characteristic.getWriteType(), AUTHENTICATION_MITM,
- characteristic.getValue());
+ characteristic.getWriteType(), authReq, characteristic.getValue());
+ mAuthRetryState++;
return;
} catch (RemoteException e) {
Log.e(TAG,"",e);
}
}
- mAuthRetry = false;
+ mAuthRetryState = AUTH_RETRY_STATE_IDLE;
try {
mCallback.onCharacteristicWrite(BluetoothGatt.this, characteristic, status);
@@ -378,17 +385,19 @@ public void onDescriptorRead(String address, int status, int handle, byte[] valu
if ((status == GATT_INSUFFICIENT_AUTHENTICATION
|| status == GATT_INSUFFICIENT_ENCRYPTION)
- && mAuthRetry == false) {
+ && (mAuthRetryState != AUTH_RETRY_STATE_MITM)) {
try {
- mAuthRetry = true;
- mService.readDescriptor(mClientIf, address, handle, AUTHENTICATION_MITM);
+ final int authReq = (mAuthRetryState == AUTH_RETRY_STATE_IDLE) ?
+ AUTHENTICATION_NO_MITM : AUTHENTICATION_MITM;
+ mService.readDescriptor(mClientIf, address, handle, authReq);
+ mAuthRetryState++;
return;
} catch (RemoteException e) {
Log.e(TAG,"",e);
}
}
- mAuthRetry = true;
+ mAuthRetryState = AUTH_RETRY_STATE_IDLE;
try {
mCallback.onDescriptorRead(BluetoothGatt.this, descriptor, status);
@@ -417,19 +426,21 @@ public void onDescriptorWrite(String address, int status, int handle) {
if ((status == GATT_INSUFFICIENT_AUTHENTICATION
|| status == GATT_INSUFFICIENT_ENCRYPTION)
- && mAuthRetry == false) {
+ && (mAuthRetryState != AUTH_RETRY_STATE_MITM)) {
try {
- mAuthRetry = true;
+ final int authReq = (mAuthRetryState == AUTH_RETRY_STATE_IDLE) ?
+ AUTHENTICATION_NO_MITM : AUTHENTICATION_MITM;
mService.writeDescriptor(mClientIf, address, handle,
BluetoothGattCharacteristic.WRITE_TYPE_DEFAULT,
- AUTHENTICATION_MITM, descriptor.getValue());
+ authReq, descriptor.getValue());
+ mAuthRetryState++;
return;
} catch (RemoteException e) {
Log.e(TAG,"",e);
}
}
- mAuthRetry = false;
+ mAuthRetryState = AUTH_RETRY_STATE_IDLE;
try {
mCallback.onDescriptorWrite(BluetoothGatt.this, descriptor, status);
@@ -503,6 +514,7 @@ public void onConfigureMTU(String address, int mtu, int status) {
mServices = new ArrayList();
mConnState = CONN_STATE_IDLE;
+ mAuthRetryState = AUTH_RETRY_STATE_IDLE;
}
/**
@@ -516,6 +528,7 @@ public void close() {
unregisterApp();
mConnState = CONN_STATE_CLOSED;
+ mAuthRetryState = AUTH_RETRY_STATE_IDLE;
}
/**
diff --git a/core/java/android/bluetooth/BluetoothProfile.java b/core/java/android/bluetooth/BluetoothProfile.java
index da79b586cf66..c76d10eaa659 100644
--- a/core/java/android/bluetooth/BluetoothProfile.java
+++ b/core/java/android/bluetooth/BluetoothProfile.java
@@ -142,6 +142,13 @@ public interface BluetoothProfile {
*/
public static final int DUN = 21;
+ /**
+ * Max profile ID. This value should be updated whenever a new profile is added to match
+ * the largest value assigned to a profile.
+ * @hide
+ */
+ public static final int MAX_PROFILE_ID = 17;
+
/**
* Default priority for devices that we try to auto-connect to and
* and allow incoming connections for the profile
diff --git a/core/java/android/bluetooth/IBluetooth.aidl b/core/java/android/bluetooth/IBluetooth.aidl
index 3049255f81ac..54c68d368e85 100644
--- a/core/java/android/bluetooth/IBluetooth.aidl
+++ b/core/java/android/bluetooth/IBluetooth.aidl
@@ -62,6 +62,7 @@ interface IBluetooth
boolean cancelBondProcess(in BluetoothDevice device);
boolean removeBond(in BluetoothDevice device);
int getBondState(in BluetoothDevice device);
+ long getSupportedProfiles();
int getConnectionState(in BluetoothDevice device);
String getRemoteName(in BluetoothDevice device);
diff --git a/core/java/android/bluetooth/IBluetoothManager.aidl b/core/java/android/bluetooth/IBluetoothManager.aidl
index 2b853a373b52..5afd77418222 100644
--- a/core/java/android/bluetooth/IBluetoothManager.aidl
+++ b/core/java/android/bluetooth/IBluetoothManager.aidl
@@ -34,9 +34,9 @@ interface IBluetoothManager
void registerStateChangeCallback(in IBluetoothStateChangeCallback callback);
void unregisterStateChangeCallback(in IBluetoothStateChangeCallback callback);
boolean isEnabled();
- boolean enable();
- boolean enableNoAutoConnect();
- boolean disable(boolean persist);
+ boolean enable(String packageName);
+ boolean enableNoAutoConnect(String packageName);
+ boolean disable(String packageName, boolean persist);
int getState();
IBluetoothGatt getBluetoothGatt();
@@ -47,6 +47,6 @@ interface IBluetoothManager
String getName();
boolean isBleScanAlwaysAvailable();
- int updateBleAppCount(IBinder b, boolean enable);
+ int updateBleAppCount(IBinder b, boolean enable, String packageName);
boolean isBleAppPresent();
}
diff --git a/core/java/android/bluetooth/OobData.java b/core/java/android/bluetooth/OobData.java
index 8e659e04d705..9e87230c686e 100644
--- a/core/java/android/bluetooth/OobData.java
+++ b/core/java/android/bluetooth/OobData.java
@@ -30,7 +30,23 @@
* @hide
*/
public class OobData implements Parcelable {
+ private byte[] leBluetoothDeviceAddress;
private byte[] securityManagerTk;
+ private byte[] leSecureConnectionsConfirmation;
+ private byte[] leSecureConnectionsRandom;
+
+ public byte[] getLeBluetoothDeviceAddress() {
+ return leBluetoothDeviceAddress;
+ }
+
+ /**
+ * Sets the LE Bluetooth Device Address value to be used during LE pairing.
+ * The value shall be 7 bytes. Please see Bluetooth CSSv6, Part A 1.16 for
+ * a detailed description.
+ */
+ public void setLeBluetoothDeviceAddress(byte[] leBluetoothDeviceAddress) {
+ this.leBluetoothDeviceAddress = leBluetoothDeviceAddress;
+ }
public byte[] getSecurityManagerTk() {
return securityManagerTk;
@@ -45,10 +61,29 @@ public void setSecurityManagerTk(byte[] securityManagerTk) {
this.securityManagerTk = securityManagerTk;
}
+ public byte[] getLeSecureConnectionsConfirmation() {
+ return leSecureConnectionsConfirmation;
+ }
+
+ public void setLeSecureConnectionsConfirmation(byte[] leSecureConnectionsConfirmation) {
+ this.leSecureConnectionsConfirmation = leSecureConnectionsConfirmation;
+ }
+
+ public byte[] getLeSecureConnectionsRandom() {
+ return leSecureConnectionsRandom;
+ }
+
+ public void setLeSecureConnectionsRandom(byte[] leSecureConnectionsRandom) {
+ this.leSecureConnectionsRandom = leSecureConnectionsRandom;
+ }
+
public OobData() { }
private OobData(Parcel in) {
+ leBluetoothDeviceAddress = in.createByteArray();
securityManagerTk = in.createByteArray();
+ leSecureConnectionsConfirmation = in.createByteArray();
+ leSecureConnectionsRandom = in.createByteArray();
}
public int describeContents() {
@@ -57,7 +92,10 @@ public int describeContents() {
@Override
public void writeToParcel(Parcel out, int flags) {
+ out.writeByteArray(leBluetoothDeviceAddress);
out.writeByteArray(securityManagerTk);
+ out.writeByteArray(leSecureConnectionsConfirmation);
+ out.writeByteArray(leSecureConnectionsRandom);
}
public static final Parcelable.Creator CREATOR
diff --git a/core/java/android/content/BroadcastReceiver.java b/core/java/android/content/BroadcastReceiver.java
index 10e6fb233249..a7a86158edee 100644
--- a/core/java/android/content/BroadcastReceiver.java
+++ b/core/java/android/content/BroadcastReceiver.java
@@ -27,189 +27,25 @@
import android.util.Slog;
/**
- * Base class for code that will receive intents sent by sendBroadcast().
- *
- * If you don't need to send broadcasts across applications, consider using
- * this class with {@link android.support.v4.content.LocalBroadcastManager} instead
- * of the more general facilities described below. This will give you a much
- * more efficient implementation (no cross-process communication needed) and allow
- * you to avoid thinking about any security issues related to other applications
- * being able to receive or send your broadcasts.
+ * Base class for code that receives and handles broadcast intents sent by
+ * {@link android.content.Context#sendBroadcast(Intent)}.
*
*
You can either dynamically register an instance of this class with
* {@link Context#registerReceiver Context.registerReceiver()}
- * or statically publish an implementation through the
+ * or statically declare an implementation with the
* {@link android.R.styleable#AndroidManifestReceiver <receiver>}
* tag in your AndroidManifest.xml
.
- *
- *
Note:
- * If registering a receiver in your
- * {@link android.app.Activity#onResume() Activity.onResume()}
- * implementation, you should unregister it in
- * {@link android.app.Activity#onPause() Activity.onPause()}.
- * (You won't receive intents when paused,
- * and this will cut down on unnecessary system overhead). Do not unregister in
- * {@link android.app.Activity#onSaveInstanceState(android.os.Bundle) Activity.onSaveInstanceState()},
- * because this won't be called if the user moves back in the history
- * stack.
- *
- *
There are two major classes of broadcasts that can be received:
- *
- * Normal broadcasts (sent with {@link Context#sendBroadcast(Intent)
- * Context.sendBroadcast}) are completely asynchronous. All receivers of the
- * broadcast are run in an undefined order, often at the same time. This is
- * more efficient, but means that receivers cannot use the result or abort
- * APIs included here.
- * Ordered broadcasts (sent with {@link Context#sendOrderedBroadcast(Intent, String)
- * Context.sendOrderedBroadcast}) are delivered to one receiver at a time.
- * As each receiver executes in turn, it can propagate a result to the next
- * receiver, or it can completely abort the broadcast so that it won't be passed
- * to other receivers. The order receivers run in can be controlled with the
- * {@link android.R.styleable#AndroidManifestIntentFilter_priority
- * android:priority} attribute of the matching intent-filter; receivers with
- * the same priority will be run in an arbitrary order.
- *
- *
- * Even in the case of normal broadcasts, the system may in some
- * situations revert to delivering the broadcast one receiver at a time. In
- * particular, for receivers that may require the creation of a process, only
- * one will be run at a time to avoid overloading the system with new processes.
- * In this situation, however, the non-ordered semantics hold: these receivers still
- * cannot return results or abort their broadcast.
- *
- * Note that, although the Intent class is used for sending and receiving
- * these broadcasts, the Intent broadcast mechanism here is completely separate
- * from Intents that are used to start Activities with
- * {@link Context#startActivity Context.startActivity()}.
- * There is no way for a BroadcastReceiver
- * to see or capture Intents used with startActivity(); likewise, when
- * you broadcast an Intent, you will never find or start an Activity.
- * These two operations are semantically very different: starting an
- * Activity with an Intent is a foreground operation that modifies what the
- * user is currently interacting with; broadcasting an Intent is a background
- * operation that the user is not normally aware of.
- *
- *
The BroadcastReceiver class (when launched as a component through
- * a manifest's {@link android.R.styleable#AndroidManifestReceiver <receiver>}
- * tag) is an important part of an
- * application's overall lifecycle .
- *
- * Topics covered here:
- *
- * Security
- * Receiver Lifecycle
- * Process Lifecycle
- *
*
*
*
Developer Guides
- *
For information about how to use this class to receive and resolve intents, read the
- * Intents and Intent Filters
- * developer guide.
- *
- *
- *
- * Security
- *
- * Receivers used with the {@link Context} APIs are by their nature a
- * cross-application facility, so you must consider how other applications
- * may be able to abuse your use of them. Some things to consider are:
- *
- *
- * The Intent namespace is global. Make sure that Intent action names and
- * other strings are written in a namespace you own, or else you may inadvertently
- * conflict with other applications.
- *
When you use {@link Context#registerReceiver(BroadcastReceiver, IntentFilter)},
- * any application may send broadcasts to that registered receiver. You can
- * control who can send broadcasts to it through permissions described below.
- *
When you publish a receiver in your application's manifest and specify
- * intent-filters for it, any other application can send broadcasts to it regardless
- * of the filters you specify. To prevent others from sending to it, make it
- * unavailable to them with android:exported="false"
.
- *
When you use {@link Context#sendBroadcast(Intent)} or related methods,
- * normally any other application can receive these broadcasts. You can control who
- * can receive such broadcasts through permissions described below. Alternatively,
- * starting with {@link android.os.Build.VERSION_CODES#ICE_CREAM_SANDWICH}, you
- * can also safely restrict the broadcast to a single application with
- * {@link Intent#setPackage(String) Intent.setPackage}
- *
+ * For more information about using BroadcastReceiver, read the
+ * Broadcasts developer guide.
*
- * None of these issues exist when using
- * {@link android.support.v4.content.LocalBroadcastManager}, since intents
- * broadcast it never go outside of the current process.
- *
- *
Access permissions can be enforced by either the sender or receiver
- * of a broadcast.
- *
- *
To enforce a permission when sending, you supply a non-null
- * permission argument to
- * {@link Context#sendBroadcast(Intent, String)} or
- * {@link Context#sendOrderedBroadcast(Intent, String, BroadcastReceiver, android.os.Handler, int, String, Bundle)}.
- * Only receivers who have been granted this permission
- * (by requesting it with the
- * {@link android.R.styleable#AndroidManifestUsesPermission <uses-permission>}
- * tag in their AndroidManifest.xml
) will be able to receive
- * the broadcast.
- *
- *
To enforce a permission when receiving, you supply a non-null
- * permission when registering your receiver -- either when calling
- * {@link Context#registerReceiver(BroadcastReceiver, IntentFilter, String, android.os.Handler)}
- * or in the static
- * {@link android.R.styleable#AndroidManifestReceiver <receiver>}
- * tag in your AndroidManifest.xml
. Only broadcasters who have
- * been granted this permission (by requesting it with the
- * {@link android.R.styleable#AndroidManifestUsesPermission <uses-permission>}
- * tag in their AndroidManifest.xml
) will be able to send an
- * Intent to the receiver.
- *
- *
See the Security and Permissions
- * document for more information on permissions and security in general.
- *
- *
- *
Receiver Lifecycle
- *
- * A BroadcastReceiver object is only valid for the duration of the call
- * to {@link #onReceive}. Once your code returns from this function,
- * the system considers the object to be finished and no longer active.
- *
- *
This has important repercussions to what you can do in an
- * {@link #onReceive} implementation: anything that requires asynchronous
- * operation is not available, because you will need to return from the
- * function to handle the asynchronous operation, but at that point the
- * BroadcastReceiver is no longer active and thus the system is free to kill
- * its process before the asynchronous operation completes.
- *
- *
In particular, you may not show a dialog or bind to a service from
- * within a BroadcastReceiver. For the former, you should instead use the
- * {@link android.app.NotificationManager} API. For the latter, you can
- * use {@link android.content.Context#startService Context.startService()} to
- * send a command to the service.
- *
- *
- *
Process Lifecycle
- *
- * A process that is currently executing a BroadcastReceiver (that is,
- * currently running the code in its {@link #onReceive} method) is
- * considered to be a foreground process and will be kept running by the
- * system except under cases of extreme memory pressure.
- *
- *
Once you return from onReceive(), the BroadcastReceiver is no longer
- * active, and its hosting process is only as important as any other application
- * components that are running in it. This is especially important because if
- * that process was only hosting the BroadcastReceiver (a common case for
- * applications that the user has never or not recently interacted with), then
- * upon returning from onReceive() the system will consider its process
- * to be empty and aggressively kill it so that resources are available for other
- * more important processes.
- *
- *
This means that for longer-running operations you will often use
- * a {@link android.app.Service} in conjunction with a BroadcastReceiver to keep
- * the containing process active for the entire time of your operation.
*/
public abstract class BroadcastReceiver {
private PendingResult mPendingResult;
private boolean mDebugUnregister;
-
+
/**
* State for a result that is pending for a broadcast receiver. Returned
* by {@link BroadcastReceiver#goAsync() goAsync()}
@@ -218,7 +54,7 @@ public abstract class BroadcastReceiver {
* terminate; you must call {@link #finish()} once you are done with the
* broadcast. This allows you to process the broadcast off of the main
* thread of your app.
- *
+ *
*
Note on threading: the state inside of this class is not itself
* thread-safe, however you can use it from any thread if you properly
* sure that you do not have races. Typically this means you will hand
@@ -232,14 +68,14 @@ public static class PendingResult {
public static final int TYPE_REGISTERED = 1;
/** @hide */
public static final int TYPE_UNREGISTERED = 2;
-
+
final int mType;
final boolean mOrderedHint;
final boolean mInitialStickyHint;
final IBinder mToken;
final int mSendingUser;
final int mFlags;
-
+
int mResultCode;
String mResultData;
Bundle mResultExtras;
@@ -259,7 +95,7 @@ public PendingResult(int resultCode, String resultData, Bundle resultExtras, int
mSendingUser = userId;
mFlags = flags;
}
-
+
/**
* Version of {@link BroadcastReceiver#setResultCode(int)
* BroadcastReceiver.setResultCode(int)} for
@@ -331,7 +167,7 @@ public final void setResult(int code, String data, Bundle extras) {
mResultData = data;
mResultExtras = extras;
}
-
+
/**
* Version of {@link BroadcastReceiver#getAbortBroadcast()
* BroadcastReceiver.getAbortBroadcast()} for
@@ -350,7 +186,7 @@ public final void abortBroadcast() {
checkSynchronousHint();
mAbortBroadcast = true;
}
-
+
/**
* Version of {@link BroadcastReceiver#clearAbortBroadcast()
* BroadcastReceiver.clearAbortBroadcast()} for
@@ -359,7 +195,7 @@ public final void abortBroadcast() {
public final void clearAbortBroadcast() {
mAbortBroadcast = false;
}
-
+
/**
* Finish the broadcast. The current result will be sent and the
* next broadcast will proceed.
@@ -397,14 +233,14 @@ public final void finish() {
sendFinished(mgr);
}
}
-
+
/** @hide */
public void setExtrasClassLoader(ClassLoader cl) {
if (mResultExtras != null) {
mResultExtras.setClassLoader(cl);
}
}
-
+
/** @hide */
public void sendFinished(IActivityManager am) {
synchronized (this) {
@@ -412,7 +248,7 @@ public void sendFinished(IActivityManager am) {
throw new IllegalStateException("Broadcast already finished");
}
mFinished = true;
-
+
try {
if (mResultExtras != null) {
mResultExtras.setAllowFds(false);
@@ -448,7 +284,7 @@ void checkSynchronousHint() {
Log.e("BroadcastReceiver", e.getMessage(), e);
}
}
-
+
public BroadcastReceiver() {
}
@@ -468,14 +304,15 @@ public BroadcastReceiver() {
*
*
If this BroadcastReceiver was launched through a <receiver> tag,
* then the object is no longer alive after returning from this
- * function. This means you should not perform any operations that
- * return a result to you asynchronously -- in particular, for interacting
- * with services, you should use
- * {@link Context#startService(Intent)} instead of
- * {@link Context#bindService(Intent, ServiceConnection, int)}. If you wish
- * to interact with a service that is already running, you can use
- * {@link #peekService}.
- *
+ * function. This means you should not perform any operations that
+ * return a result to you asynchronously. If you need to perform any follow up
+ * background work, schedule a {@link android.app.job.JobService} with
+ * {@link android.app.job.JobScheduler}.
+ *
+ * If you wish to interact with a service that is already running and previously
+ * bound using {@link android.content.Context#bindService(Intent, ServiceConnection, int) bindService()},
+ * you can use {@link #peekService}.
+ *
*
The Intent filters used in {@link android.content.Context#registerReceiver}
* and in application manifests are not guaranteed to be exclusive. They
* are hints to the operating system about how to find suitable recipients. It is
@@ -483,7 +320,7 @@ public BroadcastReceiver() {
* resolution. For this reason, {@link #onReceive(Context, Intent) onReceive()}
* implementations should respond only to known actions, ignoring any unexpected
* Intents that they may receive.
- *
+ *
* @param context The Context in which the receiver is running.
* @param intent The Intent being received.
*/
@@ -496,7 +333,7 @@ public BroadcastReceiver() {
* responsive to the broadcast (finishing it within 10s), but does allow
* the implementation to move work related to it over to another thread
* to avoid glitching the main UI thread due to disk IO.
- *
+ *
* @return Returns a {@link PendingResult} representing the result of
* the active broadcast. The BroadcastRecord itself is no longer active;
* all data and other interaction must go through {@link PendingResult}
@@ -508,15 +345,20 @@ public final PendingResult goAsync() {
mPendingResult = null;
return res;
}
-
+
/**
- * Provide a binder to an already-running service. This method is synchronous
+ * Provide a binder to an already-bound service. This method is synchronous
* and will not start the target service if it is not present, so it is safe
* to call from {@link #onReceive}.
- *
+ *
+ * For peekService() to return a non null {@link android.os.IBinder} interface
+ * the service must have published it before. In other words some component
+ * must have called {@link android.content.Context#bindService(Intent, ServiceConnection, int)} on it.
+ *
* @param myContext The Context that had been passed to {@link #onReceive(Context, Intent)}
- * @param service The Intent indicating the service you wish to use. See {@link
- * Context#startService(Intent)} for more information.
+ * @param service Identifies the already-bound service you wish to use. See
+ * {@link android.content.Context#bindService(Intent, ServiceConnection, int)}
+ * for more information.
*/
public IBinder peekService(Context myContext, Intent service) {
IActivityManager am = ActivityManagerNative.getDefault();
@@ -538,13 +380,13 @@ public IBinder peekService(Context myContext, Intent service) {
* Activity {@link android.app.Activity#RESULT_CANCELED} and
* {@link android.app.Activity#RESULT_OK} constants, though the
* actual meaning of this value is ultimately up to the broadcaster.
- *
+ *
*
This method does not work with non-ordered broadcasts such
* as those sent with {@link Context#sendBroadcast(Intent)
* Context.sendBroadcast}
- *
+ *
* @param code The new result code.
- *
+ *
* @see #setResult(int, String, Bundle)
*/
public final void setResultCode(int code) {
@@ -554,7 +396,7 @@ public final void setResultCode(int code) {
/**
* Retrieve the current result code, as set by the previous receiver.
- *
+ *
* @return int The current result code.
*/
public final int getResultCode() {
@@ -567,13 +409,13 @@ public final int getResultCode() {
* {@link Context#sendOrderedBroadcast(Intent, String)
* Context.sendOrderedBroadcast}. This is an arbitrary
* string whose interpretation is up to the broadcaster.
- *
+ *
* This method does not work with non-ordered broadcasts such
* as those sent with {@link Context#sendBroadcast(Intent)
* Context.sendBroadcast}
- *
+ *
* @param data The new result data; may be null.
- *
+ *
* @see #setResult(int, String, Bundle)
*/
public final void setResultData(String data) {
@@ -584,7 +426,7 @@ public final void setResultData(String data) {
/**
* Retrieve the current result data, as set by the previous receiver.
* Often this is null.
- *
+ *
* @return String The current result data; may be null.
*/
public final String getResultData() {
@@ -599,13 +441,13 @@ public final String getResultData() {
* holding arbitrary data, whose interpretation is up to the
* broadcaster. Can be set to null. Calling this method completely
* replaces the current map (if any).
- *
+ *
* This method does not work with non-ordered broadcasts such
* as those sent with {@link Context#sendBroadcast(Intent)
* Context.sendBroadcast}
- *
+ *
* @param extras The new extra data map; may be null.
- *
+ *
* @see #setResult(int, String, Bundle)
*/
public final void setResultExtras(Bundle extras) {
@@ -617,11 +459,11 @@ public final void setResultExtras(Bundle extras) {
* Retrieve the current result extra data, as set by the previous receiver.
* Any changes you make to the returned Map will be propagated to the next
* receiver.
- *
+ *
* @param makeMap If true then a new empty Map will be made for you if the
* current Map is null; if false you should be prepared to
* receive a null Map.
- *
+ *
* @return Map The current extras map.
*/
public final Bundle getResultExtras(boolean makeMap) {
@@ -640,11 +482,11 @@ public final Bundle getResultExtras(boolean makeMap) {
* {@link Context#sendOrderedBroadcast(Intent, String)
* Context.sendOrderedBroadcast}. All current result data is replaced
* by the value given to this method.
- *
+ *
* This method does not work with non-ordered broadcasts such
* as those sent with {@link Context#sendBroadcast(Intent)
* Context.sendBroadcast}
- *
+ *
* @param code The new result code. Often uses the
* Activity {@link android.app.Activity#RESULT_CANCELED} and
* {@link android.app.Activity#RESULT_OK} constants, though the
@@ -662,11 +504,11 @@ public final void setResult(int code, String data, Bundle extras) {
mPendingResult.mResultData = data;
mPendingResult.mResultExtras = extras;
}
-
+
/**
* Returns the flag indicating whether or not this receiver should
* abort the current broadcast.
- *
+ *
* @return True if the broadcast should be aborted.
*/
public final boolean getAbortBroadcast() {
@@ -679,10 +521,10 @@ public final boolean getAbortBroadcast() {
* {@link Context#sendOrderedBroadcast(Intent, String)
* Context.sendOrderedBroadcast}. This will prevent
* any other broadcast receivers from receiving the broadcast. It will still
- * call {@link #onReceive} of the BroadcastReceiver that the caller of
+ * call {@link #onReceive} of the BroadcastReceiver that the caller of
* {@link Context#sendOrderedBroadcast(Intent, String)
* Context.sendOrderedBroadcast} passed in.
- *
+ *
* This method does not work with non-ordered broadcasts such
* as those sent with {@link Context#sendBroadcast(Intent)
* Context.sendBroadcast}
@@ -691,7 +533,7 @@ public final void abortBroadcast() {
checkSynchronousHint();
mPendingResult.mAbortBroadcast = true;
}
-
+
/**
* Clears the flag indicating that this receiver should abort the current
* broadcast.
@@ -701,7 +543,7 @@ public final void clearAbortBroadcast() {
mPendingResult.mAbortBroadcast = false;
}
}
-
+
/**
* Returns true if the receiver is currently processing an ordered
* broadcast.
@@ -709,7 +551,7 @@ public final void clearAbortBroadcast() {
public final boolean isOrderedBroadcast() {
return mPendingResult != null ? mPendingResult.mOrderedHint : false;
}
-
+
/**
* Returns true if the receiver is currently processing the initial
* value of a sticky broadcast -- that is, the value that was last
@@ -719,7 +561,7 @@ public final boolean isOrderedBroadcast() {
public final boolean isInitialStickyBroadcast() {
return mPendingResult != null ? mPendingResult.mInitialStickyHint : false;
}
-
+
/**
* For internal use, sets the hint about whether this BroadcastReceiver is
* running in ordered mode.
@@ -727,21 +569,21 @@ public final boolean isInitialStickyBroadcast() {
public final void setOrderedHint(boolean isOrdered) {
// Accidentally left in the SDK.
}
-
+
/**
* For internal use to set the result data that is active. @hide
*/
public final void setPendingResult(PendingResult result) {
mPendingResult = result;
}
-
+
/**
* For internal use to set the result data that is active. @hide
*/
public final PendingResult getPendingResult() {
return mPendingResult;
}
-
+
/** @hide */
public int getSendingUserId() {
return mPendingResult.mSendingUser;
@@ -761,19 +603,19 @@ public int getSendingUserId() {
public final void setDebugUnregister(boolean debug) {
mDebugUnregister = debug;
}
-
+
/**
* Return the last value given to {@link #setDebugUnregister}.
*/
public final boolean getDebugUnregister() {
return mDebugUnregister;
}
-
+
void checkSynchronousHint() {
if (mPendingResult == null) {
throw new IllegalStateException("Call while result is not pending");
}
-
+
// Note that we don't assert when receiving the initial sticky value,
// since that may have come from an ordered broadcast. We'll catch
// them later when the real broadcast happens again.
diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java
index 1ca44e0f6339..dea1d5a60df9 100644
--- a/core/java/android/content/Context.java
+++ b/core/java/android/content/Context.java
@@ -1668,7 +1668,7 @@ public boolean canStartActivityForResult() {
*
* @param intents An array of Intents to be started.
* @param options Additional options for how the Activity should be started.
- * See {@link android.content.Context#startActivity(Intent, Bundle)
+ * See {@link android.content.Context#startActivity(Intent, Bundle)}
* Context.startActivity(Intent, Bundle)} for more details.
*
* @throws ActivityNotFoundException
@@ -1696,7 +1696,7 @@ public boolean canStartActivityForResult() {
* @param intents An array of Intents to be started.
* @param options Additional options for how the Activity should be started.
* @param userHandle The user for whom to launch the activities
- * See {@link android.content.Context#startActivity(Intent, Bundle)
+ * See {@link android.content.Context#startActivity(Intent, Bundle)}
* Context.startActivity(Intent, Bundle)} for more details.
*
* @throws ActivityNotFoundException
@@ -1745,7 +1745,7 @@ public abstract void startIntentSender(IntentSender intent,
* flagsMask
* @param extraFlags Always set to 0.
* @param options Additional options for how the Activity should be started.
- * See {@link android.content.Context#startActivity(Intent, Bundle)
+ * See {@link android.content.Context#startActivity(Intent, Bundle)}
* Context.startActivity(Intent, Bundle)} for more details. If options
* have also been supplied by the IntentSender, options given here will
* override any that conflict with those given by the IntentSender.
@@ -2474,9 +2474,8 @@ public abstract Intent registerReceiverAsUser(BroadcastReceiver receiver,
* for high frequency calls.
*
*
- * @param service Identifies the service to be started. The Intent must be either
- * fully explicit (supplying a component name) or specify a specific package
- * name it is targetted to. Additional values
+ * @param service Identifies the service to be started. The Intent must be
+ * fully explicit (supplying a component name). Additional values
* may be included in the Intent extras to supply arguments along with
* this specific start call.
*
@@ -2554,10 +2553,8 @@ public abstract Intent registerReceiverAsUser(BroadcastReceiver receiver,
* {@link #registerReceiver}, since the lifetime of this BroadcastReceiver
* is tied to another object (the one that registered it).
*
- * @param service Identifies the service to connect to. The Intent may
- * specify either an explicit component name, or a logical
- * description (action, category, etc) to match an
- * {@link IntentFilter} published by a service.
+ * @param service Identifies the service to connect to. The Intent must
+ * specify an explicit component name.
* @param conn Receives information as the service is started and stopped.
* This must be a valid ServiceConnection object; it must not be null.
* @param flags Operation options for the binding. May be 0,
diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java
index 1d74ee90ef93..580bb6ffc94d 100644
--- a/core/java/android/content/Intent.java
+++ b/core/java/android/content/Intent.java
@@ -8163,7 +8163,7 @@ public void setSourceBounds(Rect r) {
* @return Returns a bit mask of {@link #FILL_IN_ACTION},
* {@link #FILL_IN_DATA}, {@link #FILL_IN_CATEGORIES}, {@link #FILL_IN_PACKAGE},
* {@link #FILL_IN_COMPONENT}, {@link #FILL_IN_SOURCE_BOUNDS},
- * {@link #FILL_IN_SELECTOR} and {@link #FILL_IN_CLIP_DATA indicating which fields were
+ * {@link #FILL_IN_SELECTOR} and {@link #FILL_IN_CLIP_DATA} indicating which fields were
* changed.
*/
@FillInFlags
diff --git a/core/java/android/content/SyncRequest.java b/core/java/android/content/SyncRequest.java
index 541ebbd32f11..74d2f114aae5 100644
--- a/core/java/android/content/SyncRequest.java
+++ b/core/java/android/content/SyncRequest.java
@@ -175,7 +175,7 @@ protected SyncRequest(SyncRequest.Builder b) {
}
/**
- * Builder class for a @link SyncRequest. As you build your SyncRequest this class will also
+ * Builder class for a {@link SyncRequest}. As you build your SyncRequest this class will also
* perform validation.
*/
public static class Builder {
@@ -351,7 +351,7 @@ public Builder setDisallowMetered(boolean disallow) {
* @param requiresCharging true if sync requires the phone to be plugged in. Default false.
*/
public Builder setRequiresCharging(boolean requiresCharging) {
- mRequiresCharging = true;
+ mRequiresCharging = requiresCharging;
return this;
}
diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java
index a75f11167721..349684397557 100644
--- a/core/java/android/content/pm/PackageManager.java
+++ b/core/java/android/content/pm/PackageManager.java
@@ -2825,6 +2825,14 @@ public abstract PermissionInfo getPermissionInfo(String name, @PermissionInfoFla
public abstract List queryPermissionsByGroup(String group,
@PermissionInfoFlags int flags) throws NameNotFoundException;
+ /**
+ * Returns true if Permission Review Mode is enabled, false otherwise.
+ *
+ * @hide
+ */
+ @TestApi
+ public abstract boolean isPermissionReviewModeEnabled();
+
/**
* Retrieve all of the information we know about a particular group of
* permissions.
@@ -3291,7 +3299,8 @@ public abstract boolean isPermissionRevokedByPolicy(@NonNull String permName,
* Grant a runtime permission to an application which the application does not
* already have. The permission must have been requested by the application.
* If the application is not allowed to hold the permission, a {@link
- * java.lang.SecurityException} is thrown.
+ * java.lang.SecurityException} is thrown. If the package or permission is
+ * invalid, a {@link java.lang.IllegalArgumentException} is thrown.
*
* Note: Using this API requires holding
* android.permission.GRANT_REVOKE_PERMISSIONS and if the user id is
@@ -3316,7 +3325,8 @@ public abstract void grantRuntimePermission(@NonNull String packageName,
* #grantRuntimePermission(String, String, android.os.UserHandle)}. The
* permission must have been requested by and granted to the application.
* If the application is not allowed to hold the permission, a {@link
- * java.lang.SecurityException} is thrown.
+ * java.lang.SecurityException} is thrown. If the package or permission is
+ * invalid, a {@link java.lang.IllegalArgumentException} is thrown.
*
* Note: Using this API requires holding
* android.permission.GRANT_REVOKE_PERMISSIONS and if the user id is
diff --git a/core/java/android/content/pm/PackageManagerInternal.java b/core/java/android/content/pm/PackageManagerInternal.java
index bdbdd1ebcf91..2133c2156359 100644
--- a/core/java/android/content/pm/PackageManagerInternal.java
+++ b/core/java/android/content/pm/PackageManagerInternal.java
@@ -192,4 +192,17 @@ public abstract void setDeviceAndProfileOwnerPackages(
* which to load the paths, or null if no overlays should be used.
*/
public abstract void setResourceDirs(int userId, String packageName, String[] resourceDirs);
+
+ /**
+ * Retrieve the official name associated with a user id. This name is
+ * guaranteed to never change, though it is possible for the underlying
+ * user id to be changed. That is, if you are storing information about
+ * user ids in persistent storage, you should use the string returned
+ * by this function instead of the raw user-id.
+ *
+ * @param uid The user id for which you would like to retrieve a name.
+ * @return Returns a unique name for the given user id, or null if the
+ * user id is not currently assigned.
+ */
+ public abstract String getNameForUid(int uid);
}
diff --git a/core/java/android/content/pm/ShortcutManager.java b/core/java/android/content/pm/ShortcutManager.java
index a93870ece823..f7c4d592b3a9 100644
--- a/core/java/android/content/pm/ShortcutManager.java
+++ b/core/java/android/content/pm/ShortcutManager.java
@@ -193,7 +193,11 @@
* The following list includes descriptions for the different attributes within a static shortcut:
*
* {@code android:shortcutId}
- * Mandatory shortcut ID
+ * Mandatory shortcut ID.
+ *
+ * This must be a string literal.
+ * A resource string, such as @string/foo
, cannot be used.
+ *
*
* {@code android:enabled}
* Default is {@code true}. Can be set to {@code false} in order
@@ -206,15 +210,24 @@
*
* {@code android:shortcutShortLabel}
* Mandatory shortcut short label.
- * See {@link ShortcutInfo.Builder#setShortLabel(CharSequence)}.
+ * See {@link ShortcutInfo.Builder#setShortLabel(CharSequence)}.
+ *
+ * This must be a resource string, such as @string/shortcut_label
.
+ *
*
*
{@code android:shortcutLongLabel}
* Shortcut long label.
- * See {@link ShortcutInfo.Builder#setLongLabel(CharSequence)}.
+ * See {@link ShortcutInfo.Builder#setLongLabel(CharSequence)}.
+ *
+ * This must be a resource string, such as @string/shortcut_long_label
.
+ *
*
*
{@code android:shortcutDisabledMessage}
* When {@code android:enabled} is set to
- * {@code false}, this attribute is used to display a custom disabled message.
+ * {@code false}, this attribute is used to display a custom disabled message.
+ *
+ * This must be a resource string, such as @string/shortcut_disabled_message
.
+ *
*
*
{@code intent}
* Intent to launch when the user selects the shortcut.
diff --git a/core/java/android/hardware/display/DisplayManagerInternal.java b/core/java/android/hardware/display/DisplayManagerInternal.java
index 13ba6cc37d22..c915b18b8a80 100644
--- a/core/java/android/hardware/display/DisplayManagerInternal.java
+++ b/core/java/android/hardware/display/DisplayManagerInternal.java
@@ -167,6 +167,8 @@ public static final class DisplayPowerRequest {
public static final int POLICY_DIM = 2;
// Policy: Make the screen bright as usual.
public static final int POLICY_BRIGHT = 3;
+ // Policy: Keep the screen and display optimized for VR mode.
+ public static final int POLICY_VR = 4;
// The basic overall policy to apply: off, doze, dim or bright.
public int policy;
@@ -211,9 +213,6 @@ public static final class DisplayPowerRequest {
public int dozeScreenBrightness;
public int dozeScreenState;
- // If true, use twilight to affect the brightness.
- public boolean useTwilight;
-
public DisplayPowerRequest() {
policy = POLICY_BRIGHT;
useProximitySensor = false;
@@ -233,6 +232,10 @@ public boolean isBrightOrDim() {
return policy == POLICY_BRIGHT || policy == POLICY_DIM;
}
+ public boolean isVr() {
+ return policy == POLICY_VR;
+ }
+
public void copyFrom(DisplayPowerRequest other) {
policy = other.policy;
useProximitySensor = other.useProximitySensor;
@@ -245,7 +248,6 @@ public void copyFrom(DisplayPowerRequest other) {
boostScreenBrightness = other.boostScreenBrightness;
dozeScreenBrightness = other.dozeScreenBrightness;
dozeScreenState = other.dozeScreenState;
- useTwilight = other.useTwilight;
}
@Override
@@ -266,8 +268,7 @@ public boolean equals(DisplayPowerRequest other) {
&& lowPowerMode == other.lowPowerMode
&& boostScreenBrightness == other.boostScreenBrightness
&& dozeScreenBrightness == other.dozeScreenBrightness
- && dozeScreenState == other.dozeScreenState
- && useTwilight == other.useTwilight;
+ && dozeScreenState == other.dozeScreenState;
}
@Override
@@ -287,8 +288,7 @@ public String toString() {
+ ", lowPowerMode=" + lowPowerMode
+ ", boostScreenBrightness=" + boostScreenBrightness
+ ", dozeScreenBrightness=" + dozeScreenBrightness
- + ", dozeScreenState=" + Display.stateToString(dozeScreenState)
- + ", useTwilight=" + useTwilight;
+ + ", dozeScreenState=" + Display.stateToString(dozeScreenState);
}
public static String policyToString(int policy) {
@@ -301,6 +301,8 @@ public static String policyToString(int policy) {
return "DIM";
case POLICY_BRIGHT:
return "BRIGHT";
+ case POLICY_VR:
+ return "VR";
default:
return Integer.toString(policy);
}
diff --git a/core/java/android/hardware/fingerprint/FingerprintManager.java b/core/java/android/hardware/fingerprint/FingerprintManager.java
index f17fd55bd22a..c5ae1f54aed6 100644
--- a/core/java/android/hardware/fingerprint/FingerprintManager.java
+++ b/core/java/android/hardware/fingerprint/FingerprintManager.java
@@ -710,7 +710,7 @@ public boolean isHardwareDetected() {
/**
* Retrieves the authenticator token for binding keys to the lifecycle
- * of the current set of fingerprints. Used only by internal clients.
+ * of the calling user's fingerprints. Used only by internal clients.
*
* @hide
*/
diff --git a/core/java/android/hardware/usb/IUsbManager.aidl b/core/java/android/hardware/usb/IUsbManager.aidl
index 6e4c9de1c8ef..00b0bffdd1f5 100644
--- a/core/java/android/hardware/usb/IUsbManager.aidl
+++ b/core/java/android/hardware/usb/IUsbManager.aidl
@@ -87,15 +87,13 @@ interface IUsbManager
/* Returns true if the specified USB function is enabled. */
boolean isFunctionEnabled(String function);
- /* Sets the current USB function. */
- void setCurrentFunction(String function);
-
- /* Sets whether USB data (for example, MTP exposed pictures) should be made
- * available on the USB connection. Unlocking data should only be done with
- * user involvement, since exposing pictures or other data could leak sensitive
- * user information.
+ /* Sets the current USB function as well as whether USB data
+ * (for example, MTP exposed pictures) should be made available
+ * on the USB connection. Unlocking data should only be done with
+ * user involvement, since exposing pictures or other data could
+ * leak sensitive user information.
*/
- void setUsbDataUnlocked(boolean unlock);
+ void setCurrentFunction(String function, boolean usbDataUnlocked);
/* Allow USB debugging from the attached host. If alwaysAllow is true, add the
* the public key to list of host keys that the user has approved.
diff --git a/core/java/android/hardware/usb/UsbEndpoint.java b/core/java/android/hardware/usb/UsbEndpoint.java
index 708d651a58ae..c346700a979f 100644
--- a/core/java/android/hardware/usb/UsbEndpoint.java
+++ b/core/java/android/hardware/usb/UsbEndpoint.java
@@ -75,8 +75,8 @@ public int getEndpointNumber() {
* if the direction is host to device, and
* {@link UsbConstants#USB_DIR_IN} if the
* direction is device to host.
- * @see {@link UsbConstants#USB_DIR_IN}
- * @see {@link UsbConstants#USB_DIR_OUT}
+ * @see UsbConstants#USB_DIR_IN
+ * @see UsbConstants#USB_DIR_OUT
*
* @return the endpoint's direction
*/
diff --git a/core/java/android/hardware/usb/UsbManager.java b/core/java/android/hardware/usb/UsbManager.java
index e23eb7423d52..ed09994eb5a3 100755
--- a/core/java/android/hardware/usb/UsbManager.java
+++ b/core/java/android/hardware/usb/UsbManager.java
@@ -538,33 +538,23 @@ public boolean isFunctionEnabled(String function) {
* {@link #USB_FUNCTION_MIDI}, {@link #USB_FUNCTION_MTP}, {@link #USB_FUNCTION_PTP},
* or {@link #USB_FUNCTION_RNDIS}.
*
+ * Also sets whether USB data (for example, MTP exposed pictures) should be made available
+ * on the USB connection when in device mode. Unlocking usb data should only be done with
+ * user involvement, since exposing pictures or other data could leak sensitive
+ * user information.
+ *
* Note: This function is asynchronous and may fail silently without applying
* the requested changes.
*
*
* @param function name of the USB function, or null to restore the default function
+ * @param usbDataUnlocked whether user data is accessible
*
* {@hide}
*/
- public void setCurrentFunction(String function) {
- try {
- mService.setCurrentFunction(function);
- } catch (RemoteException e) {
- throw e.rethrowFromSystemServer();
- }
- }
-
- /**
- * Sets whether USB data (for example, MTP exposed pictures) should be made available
- * on the USB connection when in device mode. Unlocking usb data should only be done with
- * user involvement, since exposing pictures or other data could leak sensitive
- * user information.
- *
- * {@hide}
- */
- public void setUsbDataUnlocked(boolean unlocked) {
+ public void setCurrentFunction(String function, boolean usbDataUnlocked) {
try {
- mService.setUsbDataUnlocked(unlocked);
+ mService.setCurrentFunction(function, usbDataUnlocked);
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
diff --git a/core/java/android/inputmethodservice/InputMethodService.java b/core/java/android/inputmethodservice/InputMethodService.java
index fede77d9bb1d..9a6f804272b8 100644
--- a/core/java/android/inputmethodservice/InputMethodService.java
+++ b/core/java/android/inputmethodservice/InputMethodService.java
@@ -2370,16 +2370,16 @@ public boolean onExtractTextContextMenuItem(int id) {
}
return true;
}
-
+
/**
* Return text that can be used as a button label for the given
* {@link EditorInfo#imeOptions EditorInfo.imeOptions}. Returns null
* if there is no action requested. Note that there is no guarantee that
* the returned text will be relatively short, so you probably do not
* want to use it as text on a soft keyboard key label.
- *
- * @param imeOptions The value from @link EditorInfo#imeOptions EditorInfo.imeOptions}.
- *
+ *
+ * @param imeOptions The value from {@link EditorInfo#imeOptions EditorInfo.imeOptions}.
+ *
* @return Returns a label to use, or null if there is no action.
*/
public CharSequence getTextForImeAction(int imeOptions) {
diff --git a/core/java/android/net/ConnectivityManager.java b/core/java/android/net/ConnectivityManager.java
index 0afb546aa4e4..2b5afa725de6 100644
--- a/core/java/android/net/ConnectivityManager.java
+++ b/core/java/android/net/ConnectivityManager.java
@@ -87,6 +87,13 @@ public class ConnectivityManager {
* sent as an extra; it should be consulted to see what kind of
* connectivity event occurred.
*
+ * Apps targeting Android 7.0 (API level 24) and higher do not receive this
+ * broadcast if they declare the broadcast receiver in their manifest. Apps
+ * will still receive broadcasts if they register their
+ * {@link android.content.BroadcastReceiver} with
+ * {@link android.content.Context#registerReceiver Context.registerReceiver()}
+ * and that context is still valid.
+ *
* If this is a connection that was the result of failing over from a
* disconnected network, then the FAILOVER_CONNECTION boolean extra is
* set to true.
@@ -222,6 +229,13 @@ public class ConnectivityManager {
*/
public static final String EXTRA_CAPTIVE_PORTAL_URL = "android.net.extra.CAPTIVE_PORTAL_URL";
+ /**
+ * Key for passing a user agent string to the captive portal login activity.
+ * {@hide}
+ */
+ public static final String EXTRA_CAPTIVE_PORTAL_USER_AGENT =
+ "android.net.extra.CAPTIVE_PORTAL_USER_AGENT";
+
/**
* Broadcast action to indicate the change of data activity status
* (idle or active) on a network in a recent period.
diff --git a/core/java/android/net/IIpConnectivityMetrics.aidl b/core/java/android/net/IIpConnectivityMetrics.aidl
index 8f634bbf0cc9..6f07b3153833 100644
--- a/core/java/android/net/IIpConnectivityMetrics.aidl
+++ b/core/java/android/net/IIpConnectivityMetrics.aidl
@@ -18,12 +18,23 @@ package android.net;
import android.os.Parcelable;
import android.net.ConnectivityMetricsEvent;
+import android.net.INetdEventCallback;
/** {@hide} */
interface IIpConnectivityMetrics {
/**
- * @return number of remaining available slots in buffer.
+ * @return the number of remaining available slots in buffer,
+ * or -1 if the event was dropped due to rate limiting.
*/
int logEvent(in ConnectivityMetricsEvent event);
+
+ /**
+ * At most one callback can be registered (by DevicePolicyManager).
+ * @return status {@code true} if registering/unregistering of the callback was successful,
+ * {@code false} otherwise (might happen if IIpConnectivityMetrics is not available,
+ * if it happens make sure you call it when the service is up in the caller)
+ */
+ boolean registerNetdEventCallback(in INetdEventCallback callback);
+ boolean unregisterNetdEventCallback();
}
diff --git a/core/java/android/net/INetdEventCallback.aidl b/core/java/android/net/INetdEventCallback.aidl
new file mode 100644
index 000000000000..49436beadc51
--- /dev/null
+++ b/core/java/android/net/INetdEventCallback.aidl
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2016 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.net;
+
+/** {@hide} */
+oneway interface INetdEventCallback {
+
+ /**
+ * Reports a single DNS lookup function call.
+ * This method must not block or perform long-running operations.
+ *
+ * @param hostname the name that was looked up.
+ * @param ipAddresses (possibly a subset of) the IP addresses returned.
+ * At most {@link #DNS_REPORTED_IP_ADDRESSES_LIMIT} addresses are logged.
+ * @param ipAddressesCount the number of IP addresses returned. May be different from the length
+ * of ipAddresses if there were too many addresses to log.
+ * @param timestamp the timestamp at which the query was reported by netd.
+ * @param uid the UID of the application that performed the query.
+ */
+ void onDnsEvent(String hostname, in String[] ipAddresses, int ipAddressesCount, long timestamp,
+ int uid);
+
+ /**
+ * Reports a single connect library call.
+ * This method must not block or perform long-running operations.
+ *
+ * @param ipAddr destination IP address.
+ * @param port destination port number.
+ * @param timestamp the timestamp at which the call was reported by netd.
+ * @param uid the UID of the application that performed the connection.
+ */
+ void onConnectEvent(String ipAddr, int port, long timestamp, int uid);
+}
diff --git a/core/java/android/net/NetworkUtils.java b/core/java/android/net/NetworkUtils.java
index 35e3065b078f..a677d7342dad 100644
--- a/core/java/android/net/NetworkUtils.java
+++ b/core/java/android/net/NetworkUtils.java
@@ -51,6 +51,17 @@ public class NetworkUtils {
*/
public native static void attachRaFilter(FileDescriptor fd, int packetType) throws SocketException;
+ /**
+ * Attaches a socket filter that accepts L2-L4 signaling traffic required for IP connectivity.
+ *
+ * This includes: all ARP, ICMPv6 RS/RA/NS/NA messages, and DHCPv4 exchanges.
+ *
+ * @param fd the socket's {@link FileDescriptor}.
+ * @param packetType the hardware address type, one of ARPHRD_*.
+ */
+ public native static void attachControlPacketFilter(FileDescriptor fd, int packetType)
+ throws SocketException;
+
/**
* Configures a socket for receiving ICMPv6 router solicitations and sending advertisements.
* @param fd the socket's {@link FileDescriptor}.
diff --git a/core/java/android/net/Uri.java b/core/java/android/net/Uri.java
index 4fb189e85c18..3fd40428efbe 100644
--- a/core/java/android/net/Uri.java
+++ b/core/java/android/net/Uri.java
@@ -1746,8 +1746,8 @@ public boolean getBooleanQueryParameter(String key, boolean defaultValue) {
* begin with and a scheme component cannot be found.
*
* @return normalized Uri (never null)
- * @see {@link android.content.Intent#setData}
- * @see {@link android.content.Intent#setDataAndNormalize}
+ * @see android.content.Intent#setData
+ * @see android.content.Intent#setDataAndNormalize
*/
public Uri normalizeScheme() {
String scheme = getScheme();
diff --git a/core/java/android/net/metrics/DnsEvent.java b/core/java/android/net/metrics/DnsEvent.java
index 4fc6b7aaf842..6176b2c58deb 100644
--- a/core/java/android/net/metrics/DnsEvent.java
+++ b/core/java/android/net/metrics/DnsEvent.java
@@ -21,7 +21,7 @@
import android.os.Parcelable;
/**
- * An event recorded by DnsEventListenerService.
+ * A DNS event recorded by NetdEventListenerService.
* {@hide}
*/
@SystemApi
diff --git a/core/java/android/net/metrics/IpManagerEvent.java b/core/java/android/net/metrics/IpManagerEvent.java
index a5b4eb5aff86..e0a026ed678d 100644
--- a/core/java/android/net/metrics/IpManagerEvent.java
+++ b/core/java/android/net/metrics/IpManagerEvent.java
@@ -38,9 +38,15 @@ public final class IpManagerEvent implements Parcelable {
public static final int PROVISIONING_OK = 1;
public static final int PROVISIONING_FAIL = 2;
public static final int COMPLETE_LIFECYCLE = 3;
+ /** @hide */ public static final int ERROR_STARTING_IPV4 = 4;
+ /** @hide */ public static final int ERROR_STARTING_IPV6 = 5;
+ /** @hide */ public static final int ERROR_STARTING_IPREACHABILITYMONITOR = 6;
/** {@hide} */
- @IntDef(value = {PROVISIONING_OK, PROVISIONING_FAIL, COMPLETE_LIFECYCLE})
+ @IntDef(value = {
+ PROVISIONING_OK, PROVISIONING_FAIL, COMPLETE_LIFECYCLE,
+ ERROR_STARTING_IPV4, ERROR_STARTING_IPV6, ERROR_STARTING_IPREACHABILITYMONITOR,
+ })
@Retention(RetentionPolicy.SOURCE)
public @interface EventType {}
@@ -95,6 +101,7 @@ public String toString() {
final static class Decoder {
static final SparseArray constants = MessageUtils.findMessageNames(
- new Class[]{IpManagerEvent.class}, new String[]{"PROVISIONING_", "COMPLETE_"});
+ new Class[]{IpManagerEvent.class},
+ new String[]{"PROVISIONING_", "COMPLETE_", "ERROR_"});
}
}
diff --git a/core/java/android/net/metrics/NetworkEvent.java b/core/java/android/net/metrics/NetworkEvent.java
index 3b3fa6976fc9..06674950a044 100644
--- a/core/java/android/net/metrics/NetworkEvent.java
+++ b/core/java/android/net/metrics/NetworkEvent.java
@@ -41,6 +41,15 @@ public final class NetworkEvent implements Parcelable {
public static final int NETWORK_UNLINGER = 6;
public static final int NETWORK_DISCONNECTED = 7;
+ /** {@hide} */
+ public static final int NETWORK_FIRST_VALIDATION_SUCCESS = 8;
+ /** {@hide} */
+ public static final int NETWORK_REVALIDATION_SUCCESS = 9;
+ /** {@hide} */
+ public static final int NETWORK_FIRST_VALIDATION_PORTAL_FOUND = 10;
+ /** {@hide} */
+ public static final int NETWORK_REVALIDATION_PORTAL_FOUND = 11;
+
/** {@hide} */
@IntDef(value = {
NETWORK_CONNECTED,
@@ -50,6 +59,10 @@ public final class NetworkEvent implements Parcelable {
NETWORK_LINGER,
NETWORK_UNLINGER,
NETWORK_DISCONNECTED,
+ NETWORK_FIRST_VALIDATION_SUCCESS,
+ NETWORK_REVALIDATION_SUCCESS,
+ NETWORK_FIRST_VALIDATION_PORTAL_FOUND,
+ NETWORK_REVALIDATION_PORTAL_FOUND,
})
@Retention(RetentionPolicy.SOURCE)
public @interface EventType {}
diff --git a/core/java/android/net/metrics/ValidationProbeEvent.java b/core/java/android/net/metrics/ValidationProbeEvent.java
index 1a31b56f1ffb..a724ec12ed32 100644
--- a/core/java/android/net/metrics/ValidationProbeEvent.java
+++ b/core/java/android/net/metrics/ValidationProbeEvent.java
@@ -44,10 +44,8 @@ public final class ValidationProbeEvent implements Parcelable {
public static final int DNS_FAILURE = 0;
public static final int DNS_SUCCESS = 1;
- /** {@hide} */
- @IntDef(value = {PROBE_DNS, PROBE_HTTP, PROBE_HTTPS, PROBE_PAC})
- @Retention(RetentionPolicy.SOURCE)
- public @interface ProbeType {}
+ private static final int FIRST_VALIDATION = 1 << 8;
+ private static final int REVALIDATION = 2 << 8;
/** {@hide} */
@IntDef(value = {DNS_FAILURE, DNS_SUCCESS})
@@ -56,12 +54,17 @@ public final class ValidationProbeEvent implements Parcelable {
public final int netId;
public final long durationMs;
- public final @ProbeType int probeType;
+ // probeType byte format (MSB to LSB):
+ // byte 0: unused
+ // byte 1: unused
+ // byte 2: 0 = UNKNOWN, 1 = FIRST_VALIDATION, 2 = REVALIDATION
+ // byte 3: PROBE_* constant
+ public final int probeType;
public final @ReturnCode int returnCode;
/** {@hide} */
public ValidationProbeEvent(
- int netId, long durationMs, @ProbeType int probeType, @ReturnCode int returnCode) {
+ int netId, long durationMs, int probeType, @ReturnCode int returnCode) {
this.netId = netId;
this.durationMs = durationMs;
this.probeType = probeType;
@@ -99,9 +102,19 @@ public ValidationProbeEvent[] newArray(int size) {
}
};
+ /** @hide */
+ public static int makeProbeType(int probeType, boolean firstValidation) {
+ return (probeType & 0xff) | (firstValidation ? FIRST_VALIDATION : REVALIDATION);
+ }
+
/** @hide */
public static String getProbeName(int probeType) {
- return Decoder.constants.get(probeType, "PROBE_???");
+ return Decoder.constants.get(probeType & 0xff, "PROBE_???");
+ }
+
+ /** @hide */
+ public static String getValidationStage(int probeType) {
+ return Decoder.constants.get(probeType & 0xff00, "UNKNOWN");
}
public static void logEvent(int netId, long durationMs, int probeType, int returnCode) {
@@ -109,12 +122,13 @@ public static void logEvent(int netId, long durationMs, int probeType, int retur
@Override
public String toString() {
- return String.format("ValidationProbeEvent(%d, %s:%d, %dms)",
- netId, getProbeName(probeType), returnCode, durationMs);
+ return String.format("ValidationProbeEvent(%d, %s:%d %s, %dms)", netId,
+ getProbeName(probeType), returnCode, getValidationStage(probeType), durationMs);
}
final static class Decoder {
static final SparseArray constants = MessageUtils.findMessageNames(
- new Class[]{ValidationProbeEvent.class}, new String[]{"PROBE_"});
+ new Class[]{ValidationProbeEvent.class},
+ new String[]{"PROBE_", "FIRST_", "REVALIDATION"});
}
}
diff --git a/core/java/android/os/BatteryStats.java b/core/java/android/os/BatteryStats.java
index a0c2efd407ba..0bb05b5a22a2 100644
--- a/core/java/android/os/BatteryStats.java
+++ b/core/java/android/os/BatteryStats.java
@@ -182,7 +182,7 @@ public abstract class BatteryStats implements Parcelable {
* New in version 19:
* - Wakelock data (wl) gets current and max times.
*/
- static final String CHECKIN_VERSION = "19";
+ static final String CHECKIN_VERSION = "20";
/**
* Old version, we hit 9 and ran out of room, need to remove.
diff --git a/core/java/android/os/GraphicsEnvironment.java b/core/java/android/os/GraphicsEnvironment.java
new file mode 100644
index 000000000000..e4cdbce09796
--- /dev/null
+++ b/core/java/android/os/GraphicsEnvironment.java
@@ -0,0 +1,112 @@
+/*
+ * Copyright 2016 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.os;
+
+import android.content.Context;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
+import android.opengl.EGL14;
+import android.os.SystemProperties;
+import android.util.Log;
+
+import dalvik.system.VMRuntime;
+
+import java.io.File;
+
+/** @hide */
+public final class GraphicsEnvironment {
+
+ private static final boolean DEBUG = false;
+ private static final String TAG = "GraphicsEnvironment";
+ private static final String PROPERTY_GFX_DRIVER = "ro.gfx.driver.0";
+
+ public static void setupGraphicsEnvironment(Context context) {
+ chooseDriver(context);
+
+ // Now that we've figured out which driver to use for this process, load and initialize it.
+ // This can take multiple frame periods, and it would otherwise happen as part of the first
+ // frame, increasing first-frame latency. Starting it here, as a low-priority background
+ // thread, means that it's usually done long before we start drawing the first frame,
+ // without significantly disrupting other activity launch work.
+ Thread eglInitThread = new Thread(
+ () -> {
+ EGL14.eglGetDisplay(EGL14.EGL_DEFAULT_DISPLAY);
+ },
+ "EGL Init");
+ eglInitThread.start();
+ }
+
+ private static void chooseDriver(Context context) {
+ String driverPackageName = SystemProperties.get(PROPERTY_GFX_DRIVER);
+ if (driverPackageName == null || driverPackageName.isEmpty()) {
+ return;
+ }
+ // To minimize risk of driver updates crippling the device beyond user repair, never use an
+ // updated driver for privileged or non-updated system apps. Presumably pre-installed apps
+ // were tested thoroughly with the pre-installed driver.
+ ApplicationInfo ai = context.getApplicationInfo();
+ if (ai.isPrivilegedApp() || (ai.isSystemApp() && !ai.isUpdatedSystemApp())) {
+ if (DEBUG) Log.v(TAG, "ignoring driver package for privileged/non-updated system app");
+ return;
+ }
+ ApplicationInfo driverInfo;
+ try {
+ driverInfo = context.getPackageManager().getApplicationInfo(driverPackageName,
+ PackageManager.MATCH_SYSTEM_ONLY);
+ } catch (PackageManager.NameNotFoundException e) {
+ Log.w(TAG, "driver package '" + driverPackageName + "' not installed");
+ return;
+ }
+ String abi = chooseAbi(driverInfo);
+ if (abi == null) {
+ if (DEBUG) {
+ // This is the normal case for the pre-installed empty driver package, don't spam
+ if (driverInfo.isUpdatedSystemApp()) {
+ Log.w(TAG, "updated driver package has no compatible native libraries");
+ }
+ }
+ return;
+ }
+
+ StringBuilder sb = new StringBuilder();
+ sb.append(driverInfo.nativeLibraryDir)
+ .append(File.pathSeparator);
+ sb.append(driverInfo.sourceDir)
+ .append("!/lib/")
+ .append(abi);
+ String paths = sb.toString();
+
+ if (DEBUG) Log.v(TAG, "gfx driver package libs: " + paths);
+ setDriverPath(paths);
+ }
+
+ private static String chooseAbi(ApplicationInfo ai) {
+ String isa = VMRuntime.getCurrentInstructionSet();
+ if (ai.primaryCpuAbi != null &&
+ isa.equals(VMRuntime.getInstructionSet(ai.primaryCpuAbi))) {
+ return ai.primaryCpuAbi;
+ }
+ if (ai.secondaryCpuAbi != null &&
+ isa.equals(VMRuntime.getInstructionSet(ai.secondaryCpuAbi))) {
+ return ai.secondaryCpuAbi;
+ }
+ return null;
+ }
+
+ private static native void setDriverPath(String path);
+
+}
diff --git a/core/java/android/os/IUserManager.aidl b/core/java/android/os/IUserManager.aidl
index eeb641d33c20..394866941d43 100644
--- a/core/java/android/os/IUserManager.aidl
+++ b/core/java/android/os/IUserManager.aidl
@@ -82,4 +82,7 @@ interface IUserManager {
boolean someUserHasSeedAccount(in String accountName, in String accountType);
boolean isManagedProfile(int userId);
boolean isDemoUser(int userId);
+ boolean isUserUnlocked(int userId);
+ boolean isUserUnlockingOrUnlocked(int userId);
+ boolean isUserRunning(int userId);
}
diff --git a/core/java/android/os/PowerManager.java b/core/java/android/os/PowerManager.java
index e71c816be39a..5405e2199c9a 100644
--- a/core/java/android/os/PowerManager.java
+++ b/core/java/android/os/PowerManager.java
@@ -49,23 +49,23 @@
* These levels are mutually exclusive - you may only specify one of them.
*
*
- * Flag Value
+ * Flag Value
* CPU Screen Keyboard
*
* {@link #PARTIAL_WAKE_LOCK}
- * On* Off Off
+ * On* Off Off
*
- *
+ *
* {@link #SCREEN_DIM_WAKE_LOCK}
- * On Dim Off
+ * On Dim Off
*
*
* {@link #SCREEN_BRIGHT_WAKE_LOCK}
- * On Bright Off
+ * On Bright Off
*
- *
+ *
* {@link #FULL_WAKE_LOCK}
- * On Bright Bright
+ * On Bright Bright
*
*
*
@@ -85,13 +85,13 @@
* the illumination to remain on once it turns on (e.g. from user activity). This flag
* will force the screen and/or keyboard to turn on immediately, when the WakeLock is
* acquired. A typical use would be for notifications which are important for the user to
- * see immediately.
+ * see immediately.
*
- *
+ *
*
{@link #ON_AFTER_RELEASE}
* If this flag is set, the user activity timer will be reset when the WakeLock is
- * released, causing the illumination to remain on a bit longer. This can be used to
- * reduce flicker if you are cycling between wake lock conditions.
+ * released, causing the illumination to remain on a bit longer. This can be used to
+ * reduce flicker if you are cycling between wake lock conditions.
*
*
*
@@ -473,12 +473,32 @@ public int getDefaultScreenBrightnessSetting() {
}
/**
- * Returns true if the twilight service should be used to adjust screen brightness
- * policy. This setting is experimental and disabled by default.
+ * Gets the minimum supported screen brightness setting for VR Mode.
+ * @hide
+ */
+ public int getMinimumScreenBrightnessForVrSetting() {
+ return mContext.getResources().getInteger(
+ com.android.internal.R.integer.config_screenBrightnessForVrSettingMinimum);
+ }
+
+ /**
+ * Gets the maximum supported screen brightness setting for VR Mode.
+ * The screen may be allowed to become dimmer than this value but
+ * this is the maximum value that can be set by the user.
* @hide
*/
- public static boolean useTwilightAdjustmentFeature() {
- return SystemProperties.getBoolean("persist.power.usetwilightadj", false);
+ public int getMaximumScreenBrightnessForVrSetting() {
+ return mContext.getResources().getInteger(
+ com.android.internal.R.integer.config_screenBrightnessForVrSettingMaximum);
+ }
+
+ /**
+ * Gets the default screen brightness for VR setting.
+ * @hide
+ */
+ public int getDefaultScreenBrightnessForVrSetting() {
+ return mContext.getResources().getInteger(
+ com.android.internal.R.integer.config_screenBrightnessForVrSettingDefault);
}
/**
diff --git a/core/java/android/os/StrictMode.java b/core/java/android/os/StrictMode.java
index c36b48886f37..287092320921 100644
--- a/core/java/android/os/StrictMode.java
+++ b/core/java/android/os/StrictMode.java
@@ -1432,9 +1432,6 @@ void handleViolation(final ViolationInfo info) {
if (violations == null) {
violations = new ArrayList(1);
gatheredViolations.set(violations);
- } else if (violations.size() >= 5) {
- // Too many. In a loop or something? Don't gather them all.
- return;
}
for (ViolationInfo previous : violations) {
if (info.crashInfo.stackTrace.equals(previous.crashInfo.stackTrace)) {
@@ -1931,18 +1928,14 @@ public static void onVmPolicyViolation(String message, Throwable originStack,
if (violations == null) {
p.writeInt(0);
} else {
- p.writeInt(violations.size());
- for (int i = 0; i < violations.size(); ++i) {
- int start = p.dataPosition();
- violations.get(i).writeToParcel(p, 0 /* unused flags? */);
- int size = p.dataPosition()-start;
- if (size > 10*1024) {
- Slog.d(TAG, "Wrote violation #" + i + " of " + violations.size() + ": "
- + (p.dataPosition()-start) + " bytes");
- }
+ // To avoid taking up too much transaction space, only include
+ // details for the first 3 violations. Deep inside, CrashInfo
+ // will truncate each stack trace to ~20kB.
+ final int size = Math.min(violations.size(), 3);
+ p.writeInt(size);
+ for (int i = 0; i < size; i++) {
+ violations.get(i).writeToParcel(p, 0);
}
- if (LOG_V) Log.d(TAG, "wrote violations to response parcel; num=" + violations.size());
- violations.clear(); // somewhat redundant, as we're about to null the threadlocal
}
gatheredViolations.set(null);
}
@@ -1956,40 +1949,19 @@ private static class LogStackTrace extends Exception {}
/* package */ static void readAndHandleBinderCallViolations(Parcel p) {
// Our own stack trace to append
StringWriter sw = new StringWriter();
+ sw.append("# via Binder call with stack:\n");
PrintWriter pw = new FastPrintWriter(sw, false, 256);
new LogStackTrace().printStackTrace(pw);
pw.flush();
String ourStack = sw.toString();
- int policyMask = getThreadPolicyMask();
- boolean currentlyGathering = (policyMask & PENALTY_GATHER) != 0;
-
- int numViolations = p.readInt();
- for (int i = 0; i < numViolations; ++i) {
- if (LOG_V) Log.d(TAG, "strict mode violation stacks read from binder call. i=" + i);
- ViolationInfo info = new ViolationInfo(p, !currentlyGathering);
- if (info.crashInfo.stackTrace != null && info.crashInfo.stackTrace.length() > 30000) {
- String front = info.crashInfo.stackTrace.substring(0, 256);
- // 30000 characters is way too large for this to be any sane kind of
- // strict mode collection of stacks. We've had a problem where we leave
- // strict mode violations associated with the thread, and it keeps tacking
- // more and more stacks on to the violations. Looks like we're in this casse,
- // so we'll report it and bail on all of the current strict mode violations
- // we currently are maintaining for this thread.
- // First, drain the remaining violations from the parcel.
- i++; // Skip the current entry.
- for (; i < numViolations; i++) {
- info = new ViolationInfo(p, !currentlyGathering);
- }
- // Next clear out all gathered violations.
- clearGatheredViolations();
- // Now report the problem.
- Slog.wtfStack(TAG, "Stack is too large: numViolations=" + numViolations
- + " policy=#" + Integer.toHexString(policyMask)
- + " front=" + front);
- return;
- }
- info.crashInfo.stackTrace += "# via Binder call with stack:\n" + ourStack;
+ final int policyMask = getThreadPolicyMask();
+ final boolean currentlyGathering = (policyMask & PENALTY_GATHER) != 0;
+
+ final int size = p.readInt();
+ for (int i = 0; i < size; i++) {
+ final ViolationInfo info = new ViolationInfo(p, !currentlyGathering);
+ info.crashInfo.appendStackTrace(ourStack);
BlockGuard.Policy policy = BlockGuard.getThreadPolicy();
if (policy instanceof AndroidBlockGuardPolicy) {
((AndroidBlockGuardPolicy) policy).handleViolationWithTimingAttempt(info);
@@ -2320,7 +2292,7 @@ public static void decrementExpectedActivityCount(Class klass) {
* @hide
*/
public static class ViolationInfo {
- public String message;
+ public final String message;
/**
* Stack and other stuff info.
@@ -2379,6 +2351,7 @@ public static class ViolationInfo {
* Create an uninitialized instance of ViolationInfo
*/
public ViolationInfo() {
+ message = null;
crashInfo = null;
policy = 0;
}
@@ -2425,7 +2398,9 @@ public ViolationInfo(String message, Throwable tr, int policy) {
@Override
public int hashCode() {
int result = 17;
- result = 37 * result + crashInfo.stackTrace.hashCode();
+ if (crashInfo != null) {
+ result = 37 * result + crashInfo.stackTrace.hashCode();
+ }
if (numAnimationsRunning != 0) {
result *= 37;
}
@@ -2455,7 +2430,11 @@ public ViolationInfo(Parcel in) {
*/
public ViolationInfo(Parcel in, boolean unsetGatheringBit) {
message = in.readString();
- crashInfo = new ApplicationErrorReport.CrashInfo(in);
+ if (in.readInt() != 0) {
+ crashInfo = new ApplicationErrorReport.CrashInfo(in);
+ } else {
+ crashInfo = null;
+ }
int rawPolicy = in.readInt();
if (unsetGatheringBit) {
policy = rawPolicy & ~PENALTY_GATHER;
@@ -2476,7 +2455,12 @@ public ViolationInfo(Parcel in, boolean unsetGatheringBit) {
*/
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(message);
- crashInfo.writeToParcel(dest, flags);
+ if (crashInfo != null) {
+ dest.writeInt(1);
+ crashInfo.writeToParcel(dest, flags);
+ } else {
+ dest.writeInt(0);
+ }
int start = dest.dataPosition();
dest.writeInt(policy);
dest.writeInt(durationMillis);
@@ -2504,7 +2488,9 @@ public void writeToParcel(Parcel dest, int flags) {
* Dump a ViolationInfo instance to a Printer.
*/
public void dump(Printer pw, String prefix) {
- crashInfo.dump(pw, prefix);
+ if (crashInfo != null) {
+ crashInfo.dump(pw, prefix);
+ }
pw.println(prefix + "policy: " + policy);
if (durationMillis != -1) {
pw.println(prefix + "durationMillis: " + durationMillis);
diff --git a/core/java/android/os/UserManager.java b/core/java/android/os/UserManager.java
index 03d3cf2e70f4..85b010a6a8f3 100644
--- a/core/java/android/os/UserManager.java
+++ b/core/java/android/os/UserManager.java
@@ -960,9 +960,8 @@ public boolean isUserRunning(UserHandle user) {
/** {@hide} */
public boolean isUserRunning(int userId) {
- // TODO Switch to using UMS internal isUserRunning
try {
- return ActivityManagerNative.getDefault().isUserRunning(userId, 0);
+ return mService.isUserRunning(userId);
} catch (RemoteException re) {
throw re.rethrowFromSystemServer();
}
@@ -1059,8 +1058,7 @@ public boolean isUserUnlocked(UserHandle user) {
/** {@hide} */
public boolean isUserUnlocked(@UserIdInt int userId) {
try {
- return ActivityManagerNative.getDefault().isUserRunning(userId,
- ActivityManager.FLAG_AND_UNLOCKED);
+ return mService.isUserUnlocked(userId);
} catch (RemoteException re) {
throw re.rethrowFromSystemServer();
}
@@ -1073,10 +1071,8 @@ public boolean isUserUnlockingOrUnlocked(UserHandle user) {
/** {@hide} */
public boolean isUserUnlockingOrUnlocked(@UserIdInt int userId) {
- // TODO Switch to using UMS internal isUserUnlockingOrUnlocked
try {
- return ActivityManagerNative.getDefault().isUserRunning(userId,
- ActivityManager.FLAG_AND_UNLOCKING_OR_UNLOCKED);
+ return mService.isUserUnlockingOrUnlocked(userId);
} catch (RemoteException re) {
throw re.rethrowFromSystemServer();
}
diff --git a/core/java/android/os/UserManagerInternal.java b/core/java/android/os/UserManagerInternal.java
index 93afb4376cf2..e42704ca2141 100644
--- a/core/java/android/os/UserManagerInternal.java
+++ b/core/java/android/os/UserManagerInternal.java
@@ -134,6 +134,12 @@ public abstract void setBaseUserRestrictionsByDpmsForMigration(int userId,
*/
public abstract boolean isUserUnlockingOrUnlocked(int userId);
+ /**
+ * Return whether the given user is running in an
+ * {@code UserState.STATE_RUNNING_UNLOCKED} state.
+ */
+ public abstract boolean isUserUnlocked(int userId);
+
/**
* Return whether the given user is running
*/
diff --git a/core/java/android/preference/Preference.java b/core/java/android/preference/Preference.java
index b1cad0538d31..ec1e102c9289 100644
--- a/core/java/android/preference/Preference.java
+++ b/core/java/android/preference/Preference.java
@@ -719,6 +719,9 @@ public void setIcon(@DrawableRes int iconResId) {
* @see #setIcon(Drawable)
*/
public Drawable getIcon() {
+ if (mIcon == null && mIconResId != 0) {
+ mIcon = getContext().getDrawable(mIconResId);
+ }
return mIcon;
}
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index 033314b30e7e..2f71b86d1d04 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -2758,6 +2758,15 @@ public boolean validate(String value) {
private static final Validator SCREEN_BRIGHTNESS_VALIDATOR =
new InclusiveIntegerRangeValidator(0, 255);
+ /**
+ * The screen backlight brightness between 0 and 255.
+ * @hide
+ */
+ public static final String SCREEN_BRIGHTNESS_FOR_VR = "screen_brightness_for_vr";
+
+ private static final Validator SCREEN_BRIGHTNESS_FOR_VR_VALIDATOR =
+ new InclusiveIntegerRangeValidator(0, 255);
+
/**
* Control whether to enable automatic brightness mode.
*/
@@ -3774,6 +3783,7 @@ public boolean validate(String value) {
VALIDATORS.put(DIM_SCREEN, DIM_SCREEN_VALIDATOR);
VALIDATORS.put(SCREEN_OFF_TIMEOUT, SCREEN_OFF_TIMEOUT_VALIDATOR);
VALIDATORS.put(SCREEN_BRIGHTNESS, SCREEN_BRIGHTNESS_VALIDATOR);
+ VALIDATORS.put(SCREEN_BRIGHTNESS_FOR_VR, SCREEN_BRIGHTNESS_FOR_VR_VALIDATOR);
VALIDATORS.put(SCREEN_BRIGHTNESS_MODE, SCREEN_BRIGHTNESS_MODE_VALIDATOR);
VALIDATORS.put(MODE_RINGER_STREAMS_AFFECTED, MODE_RINGER_STREAMS_AFFECTED_VALIDATOR);
VALIDATORS.put(MUTE_STREAMS_AFFECTED, MUTE_STREAMS_AFFECTED_VALIDATOR);
@@ -5388,6 +5398,13 @@ public static boolean putFloatForUser(ContentResolver cr, String name, float val
*/
public static final String LONG_PRESS_TIMEOUT = "long_press_timeout";
+ /**
+ * The duration in milliseconds between the first tap's up event and the second tap's
+ * down event for an interaction to be considered part of the same multi-press.
+ * @hide
+ */
+ public static final String MULTI_PRESS_TIMEOUT = "multi_press_timeout";
+
/**
* List of the enabled print services.
*
@@ -5960,6 +5977,36 @@ public static boolean putFloatForUser(ContentResolver cr, String name, float val
public static final int INCALL_POWER_BUTTON_BEHAVIOR_DEFAULT =
INCALL_POWER_BUTTON_BEHAVIOR_SCREEN_OFF;
+ /**
+ * What happens when the user presses the Back button while in-call
+ * and the screen is on.
+ * Values:
+ * 0 - The Back buttons does nothing different.
+ * 1 - The Back button hangs up the current call.
+ *
+ * @hide
+ */
+ public static final String INCALL_BACK_BUTTON_BEHAVIOR = "incall_back_button_behavior";
+
+ /**
+ * INCALL_BACK_BUTTON_BEHAVIOR value for no action.
+ * @hide
+ */
+ public static final int INCALL_BACK_BUTTON_BEHAVIOR_NONE = 0x0;
+
+ /**
+ * INCALL_BACK_BUTTON_BEHAVIOR value for "hang up".
+ * @hide
+ */
+ public static final int INCALL_BACK_BUTTON_BEHAVIOR_HANGUP = 0x1;
+
+ /**
+ * INCALL_POWER_BUTTON_BEHAVIOR default value.
+ * @hide
+ */
+ public static final int INCALL_BACK_BUTTON_BEHAVIOR_DEFAULT =
+ INCALL_BACK_BUTTON_BEHAVIOR_NONE;
+
/**
* Whether the device should wake when the wake gesture sensor detects motion.
* @hide
@@ -6151,6 +6198,14 @@ public static boolean putFloatForUser(ContentResolver cr, String name, float val
public static final String LOCK_SCREEN_SHOW_NOTIFICATIONS =
"lock_screen_show_notifications";
+ /**
+ * This preference stores the last stack active task time for each user, which affects what
+ * tasks will be visible in Overview.
+ * @hide
+ */
+ public static final String OVERVIEW_LAST_STACK_ACTIVE_TIME =
+ "overview_last_stack_active_time";
+
/**
* List of TV inputs that are currently hidden. This is a string
* containing the IDs of all hidden TV inputs. Each ID is encoded by
@@ -6257,12 +6312,6 @@ public static boolean putFloatForUser(ContentResolver cr, String name, float val
*/
public static final String NIGHT_DISPLAY_CUSTOM_END_TIME = "night_display_custom_end_time";
- /**
- * Whether brightness should automatically adjust based on twilight state.
- * @hide
- */
- public static final String BRIGHTNESS_USE_TWILIGHT = "brightness_use_twilight";
-
/**
* Names of the service components that the current user has explicitly allowed to
* be a VR mode listener, separated by ':'.
@@ -6388,6 +6437,12 @@ public static boolean putFloatForUser(ContentResolver cr, String name, float val
*/
public static final String WEB_ACTION_ENABLED = "web_action_enabled";
+ /**
+ * Has this pairable device been paired or upgraded from a previously paired system.
+ * @hide
+ */
+ public static final String DEVICE_PAIRED = "device_paired";
+
/**
* This are the settings to be backed up.
*
@@ -6472,7 +6527,8 @@ public static boolean putFloatForUser(ContentResolver cr, String name, float val
QS_TILES,
DOZE_ENABLED,
DOZE_PULSE_ON_PICK_UP,
- DOZE_PULSE_ON_DOUBLE_TAP
+ DOZE_PULSE_ON_DOUBLE_TAP,
+ NFC_PAYMENT_DEFAULT_COMPONENT
};
/**
@@ -6852,6 +6908,12 @@ public static final class Global extends NameValueTable {
*/
public static final String DOCK_SOUNDS_ENABLED = "dock_sounds_enabled";
+ /**
+ * Whether to play a sound for dock events, only when an accessibility service is on.
+ * @hide
+ */
+ public static final String DOCK_SOUNDS_ENABLED_WHEN_ACCESSIBILITY = "dock_sounds_enabled_when_accessbility";
+
/**
* URI for the "device locked" (keyguard shown) sound.
* @hide
@@ -7146,6 +7208,13 @@ public static final class Global extends NameValueTable {
*/
public static final String MOBILE_DATA_ALWAYS_ON = "mobile_data_always_on";
+ /**
+ * Size of the event buffer for IP connectivity metrics.
+ * @hide
+ */
+ public static final String CONNECTIVITY_METRICS_BUFFER_SIZE =
+ "connectivity_metrics_buffer_size";
+
/** {@hide} */
public static final String NETSTATS_ENABLED = "netstats_enabled";
/** {@hide} */
@@ -7571,6 +7640,13 @@ public static final class Global extends NameValueTable {
public static final String WIMAX_NETWORKS_AVAILABLE_NOTIFICATION_ON =
"wimax_networks_available_notification_on";
+ /**
+ * Whether we support connecting to Carrier Networks.
+ * @hide
+ **/
+ public static final String WIFI_CONNECT_CARRIER_NETWORKS =
+ "wifi_connect_carrier_networks";
+
/**
* Delay (in seconds) before repeating the Wi-Fi networks available notification.
* Connecting to a network will reset the timer.
@@ -7998,12 +8074,46 @@ public static final class Global extends NameValueTable {
*/
public static final String PAC_CHANGE_DELAY = "pac_change_delay";
+ /**
+ * Don't attempt to detect captive portals.
+ *
+ * @hide
+ */
+ public static final int CAPTIVE_PORTAL_MODE_IGNORE = 0;
+
+ /**
+ * When detecting a captive portal, display a notification that
+ * prompts the user to sign in.
+ *
+ * @hide
+ */
+ public static final int CAPTIVE_PORTAL_MODE_PROMPT = 1;
+
+ /**
+ * When detecting a captive portal, immediately disconnect from the
+ * network and do not reconnect to that network in the future.
+ *
+ * @hide
+ */
+ public static final int CAPTIVE_PORTAL_MODE_AVOID = 2;
+
+ /**
+ * What to do when connecting a network that presents a captive portal.
+ * Must be one of the CAPTIVE_PORTAL_MODE_* constants above.
+ *
+ * The default for this setting is CAPTIVE_PORTAL_MODE_PROMPT.
+ * @hide
+ */
+ public static final String CAPTIVE_PORTAL_MODE = "captive_portal_mode";
+
/**
* Setting to turn off captive portal detection. Feature is enabled by
* default and the setting needs to be set to 0 to disable it.
*
+ * @deprecated use CAPTIVE_PORTAL_MODE_IGNORE to disable captive portal detection
* @hide
*/
+ @Deprecated
public static final String
CAPTIVE_PORTAL_DETECTION_ENABLED = "captive_portal_detection_enabled";
@@ -9325,6 +9435,24 @@ public static boolean putFloat(ContentResolver cr, String name, float value) {
* @hide
*/
public static final String CELL_ON = "cell_on";
+
+ /**
+ * Whether to show the high temperature warning notification.
+ * @hide
+ */
+ public static final String SHOW_TEMPERATURE_WARNING = "show_temperature_warning";
+
+ /**
+ * Temperature at which the high temperature warning notification should be shown.
+ * @hide
+ */
+ public static final String WARNING_TEMPERATURE = "warning_temperature";
+
+ /**
+ * Whether the diskstats logging task is enabled/disabled.
+ * @hide
+ */
+ public static final String ENABLE_DISKSTATS_LOGGING = "enable_diskstats_logging";
}
/**
diff --git a/core/java/android/provider/VoicemailContract.java b/core/java/android/provider/VoicemailContract.java
index 5099eebf6eb1..1e5416382f8c 100644
--- a/core/java/android/provider/VoicemailContract.java
+++ b/core/java/android/provider/VoicemailContract.java
@@ -30,6 +30,7 @@
import android.telecom.PhoneAccount;
import android.telecom.PhoneAccountHandle;
import android.telecom.Voicemail;
+
import java.util.List;
/**
@@ -317,6 +318,48 @@ private Voicemails() {
*/
public static final String LAST_MODIFIED = "last_modified";
+ /**
+ * Flag to indicate the voicemail was backed up. The value will be 1 if backed up, 0 if
+ * not.
+ *
+ * Type: INTEGER (boolean)
+ *
+ * @hide
+ */
+ public static final String BACKED_UP = "backed_up";
+
+ /**
+ * Flag to indicate the voicemail was restored from a backup. The value will be 1 if
+ * restored, 0 if not.
+ *
+ * Type: INTEGER (boolean)
+ *
+ * @hide
+ */
+ public static final String RESTORED = "restored";
+
+ /**
+ * Flag to indicate the voicemail was marked as archived. Archived voicemail should not be
+ * deleted even if it no longer exist on the server. The value will be 1 if archived true, 0
+ * if not.
+ *
+ * Type: INTEGER (boolean)
+ *
+ * @hide
+ */
+ public static final String ARCHIVED = "archived";
+
+ /**
+ * Flag to indicate the voicemail is a OMTP voicemail handled by the {@link
+ * android.telephony.VisualVoicemailService}. The UI should only show OMTP voicemails from
+ * the current visual voicemail package.
+ *
+ * Type: INTEGER (boolean)
+ *
+ * @hide
+ */
+ public static final String IS_OMTP_VOICEMAIL = "is_omtp_voicemail";
+
/**
* A convenience method to build voicemail URI specific to a source package by appending
* {@link VoicemailContract#PARAM_KEY_SOURCE_PACKAGE} param to the base URI.
diff --git a/core/java/android/security/IKeystoreService.aidl b/core/java/android/security/IKeystoreService.aidl
index 8689dce3fef5..641e1ada6eaa 100644
--- a/core/java/android/security/IKeystoreService.aidl
+++ b/core/java/android/security/IKeystoreService.aidl
@@ -76,4 +76,5 @@ interface IKeystoreService {
int onUserAdded(int userId, int parentId);
int onUserRemoved(int userId);
int attestKey(String alias, in KeymasterArguments params, out KeymasterCertificateChain chain);
+ int onDeviceOffBody();
}
diff --git a/core/java/android/service/carrier/CarrierService.java b/core/java/android/service/carrier/CarrierService.java
index 455e1b25df18..813acc232289 100644
--- a/core/java/android/service/carrier/CarrierService.java
+++ b/core/java/android/service/carrier/CarrierService.java
@@ -107,12 +107,12 @@ public CarrierService() {
*
* Requires Permission:
* {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE}
- * Or the calling app has carrier privileges.
- * @see {@link android.telephony.TelephonyManager#hasCarrierPrivileges}
+ * or the calling app has carrier privileges.
*
* @param active Whether the carrier network change is or shortly will be
* active. Set this value to true to begin showing
* alternative UI and false to stop.
+ * @see android.telephony.TelephonyManager#hasCarrierPrivileges
*/
public final void notifyCarrierNetworkChange(boolean active) {
try {
diff --git a/core/java/android/service/notification/NotificationListenerService.java b/core/java/android/service/notification/NotificationListenerService.java
index 1557a2718b55..5a42b83592c3 100644
--- a/core/java/android/service/notification/NotificationListenerService.java
+++ b/core/java/android/service/notification/NotificationListenerService.java
@@ -785,7 +785,7 @@ public void unregisterAsSystemService() throws RemoteException {
}
/**
- * Request that the listener be rebound, after a previous call to (@link requestUnbind).
+ * Request that the listener be rebound, after a previous call to {@link #requestUnbind}.
*
*
This method will fail for listeners that have
* not been granted the permission by the user.
diff --git a/core/java/android/text/Editable.java b/core/java/android/text/Editable.java
index b3f2c2a5c447..519ccd2560f6 100644
--- a/core/java/android/text/Editable.java
+++ b/core/java/android/text/Editable.java
@@ -94,10 +94,10 @@ public interface Editable
public Editable append(char text);
/**
- * Convenience for replace(0, length(), "", 0, 0)
- * @see #replace(int, int, CharSequence, int, int)
+ * Convenience for replace(0, length(), "", 0, 0).
* Note that this clears the text, not the spans;
* use {@link #clearSpans} if you need that.
+ * @see #replace(int, int, CharSequence, int, int)
*/
public void clear();
diff --git a/core/java/android/text/SpannableStringBuilder.java b/core/java/android/text/SpannableStringBuilder.java
index dc8e4b93e093..cdf7e8b09221 100644
--- a/core/java/android/text/SpannableStringBuilder.java
+++ b/core/java/android/text/SpannableStringBuilder.java
@@ -21,6 +21,7 @@
import android.graphics.Paint;
import android.util.Log;
+import com.android.internal.annotations.GuardedBy;
import com.android.internal.util.ArrayUtils;
import com.android.internal.util.GrowingArrayUtils;
@@ -73,8 +74,6 @@ public SpannableStringBuilder(CharSequence text, int start, int end) {
mSpanFlags = EmptyArray.INT;
mSpanMax = EmptyArray.INT;
mSpanOrder = EmptyArray.INT;
- mPrioSortBuffer = EmptyArray.INT;
- mOrderSortBuffer = EmptyArray.INT;
if (text instanceof Spanned) {
Spanned sp = (Spanned) text;
@@ -856,14 +855,14 @@ public T[] getSpans(int queryStart, int queryEnd, @Nullable Class kind) {
* @param queryStart Start index.
* @param queryEnd End index.
* @param kind Class type to search for.
- * @param sort If true the results are sorted by the insertion order.
+ * @param sortByInsertionOrder If true the results are sorted by the insertion order.
* @param
* @return Array of the spans. Empty array if no results are found.
*
* @hide
*/
public T[] getSpans(int queryStart, int queryEnd, @Nullable Class kind,
- boolean sort) {
+ boolean sortByInsertionOrder) {
if (kind == null) return (T[]) ArrayUtils.emptyArray(Object.class);
if (mSpanCount == 0) return ArrayUtils.emptyArray(kind);
int count = countSpans(queryStart, queryEnd, kind, treeRoot());
@@ -873,13 +872,15 @@ public T[] getSpans(int queryStart, int queryEnd, @Nullable Class kind,
// Safe conversion, but requires a suppressWarning
T[] ret = (T[]) Array.newInstance(kind, count);
- if (sort) {
- mPrioSortBuffer = checkSortBuffer(mPrioSortBuffer, count);
- mOrderSortBuffer = checkSortBuffer(mOrderSortBuffer, count);
+ final int[] prioSortBuffer = sortByInsertionOrder ? obtain(count) : EmptyArray.INT;
+ final int[] orderSortBuffer = sortByInsertionOrder ? obtain(count) : EmptyArray.INT;
+ getSpansRec(queryStart, queryEnd, kind, treeRoot(), ret, prioSortBuffer,
+ orderSortBuffer, 0, sortByInsertionOrder);
+ if (sortByInsertionOrder) {
+ sort(ret, prioSortBuffer, orderSortBuffer);
+ recycle(prioSortBuffer);
+ recycle(orderSortBuffer);
}
- getSpansRec(queryStart, queryEnd, kind, treeRoot(), ret, mPrioSortBuffer,
- mOrderSortBuffer, 0, sort);
- if (sort) sort(ret, mPrioSortBuffer, mOrderSortBuffer);
return ret;
}
@@ -991,16 +992,64 @@ private int getSpansRec(int queryStart, int queryEnd, Class kind,
return count;
}
+ /**
+ * Obtain a temporary sort buffer.
+ *
+ * @param elementCount the size of the int[] to be returned
+ * @return an int[] with elementCount length
+ */
+ private static int[] obtain(final int elementCount) {
+ int[] result = null;
+ synchronized (sCachedIntBuffer) {
+ // try finding a tmp buffer with length of at least elementCount
+ // if not get the first available one
+ int candidateIndex = -1;
+ for (int i = sCachedIntBuffer.length - 1; i >= 0; i--) {
+ if (sCachedIntBuffer[i] != null) {
+ if (sCachedIntBuffer[i].length >= elementCount) {
+ candidateIndex = i;
+ break;
+ } else if (candidateIndex == -1) {
+ candidateIndex = i;
+ }
+ }
+ }
+
+ if (candidateIndex != -1) {
+ result = sCachedIntBuffer[candidateIndex];
+ sCachedIntBuffer[candidateIndex] = null;
+ }
+ }
+ result = checkSortBuffer(result, elementCount);
+ return result;
+ }
+
+ /**
+ * Recycle sort buffer.
+ *
+ * @param buffer buffer to be recycled
+ */
+ private static void recycle(int[] buffer) {
+ synchronized (sCachedIntBuffer) {
+ for (int i = 0; i < sCachedIntBuffer.length; i++) {
+ if (sCachedIntBuffer[i] == null || buffer.length > sCachedIntBuffer[i].length) {
+ sCachedIntBuffer[i] = buffer;
+ break;
+ }
+ }
+ }
+ }
+
/**
* Check the size of the buffer and grow if required.
*
- * @param buffer Buffer to be checked.
- * @param size Required size.
+ * @param buffer buffer to be checked.
+ * @param size required size.
* @return Same buffer instance if the current size is greater than required size. Otherwise a
* new instance is created and returned.
*/
- private final int[] checkSortBuffer(int[] buffer, int size) {
- if(size > buffer.length) {
+ private static int[] checkSortBuffer(int[] buffer, int size) {
+ if (buffer == null || size > buffer.length) {
return ArrayUtils.newUnpaddedIntArray(GrowingArrayUtils.growSize(size));
}
return buffer;
@@ -1025,16 +1074,19 @@ private final void sort(T[] array, int[] priority, int[] insertionOrder) {
}
for (int i = size - 1; i > 0; i--) {
- T v = array[0];
- int prio = priority[0];
- int insertOrder = insertionOrder[0];
+ final T tmpSpan = array[0];
array[0] = array[i];
+ array[i] = tmpSpan;
+
+ final int tmpPriority = priority[0];
priority[0] = priority[i];
+ priority[i] = tmpPriority;
+
+ final int tmpOrder = insertionOrder[0];
insertionOrder[0] = insertionOrder[i];
+ insertionOrder[i] = tmpOrder;
+
siftDown(0, array, i, priority, insertionOrder);
- array[i] = v;
- priority[i] = prio;
- insertionOrder[i] = insertOrder;
}
}
@@ -1050,10 +1102,6 @@ private final void sort(T[] array, int[] priority, int[] insertionOrder) {
*/
private final void siftDown(int index, T[] array, int size, int[] priority,
int[] insertionOrder) {
- T v = array[index];
- int prio = priority[index];
- int insertOrder = insertionOrder[index];
-
int left = 2 * index + 1;
while (left < size) {
if (left < size - 1 && compareSpans(left, left + 1, priority, insertionOrder) < 0) {
@@ -1062,15 +1110,22 @@ private final void siftDown(int index, T[] array, int size, int[] priority,
if (compareSpans(index, left, priority, insertionOrder) >= 0) {
break;
}
+
+ final T tmpSpan = array[index];
array[index] = array[left];
+ array[left] = tmpSpan;
+
+ final int tmpPriority = priority[index];
priority[index] = priority[left];
+ priority[left] = tmpPriority;
+
+ final int tmpOrder = insertionOrder[index];
insertionOrder[index] = insertionOrder[left];
+ insertionOrder[left] = tmpOrder;
+
index = left;
left = 2 * index + 1;
}
- array[index] = v;
- priority[index] = prio;
- insertionOrder[index] = insertOrder;
}
/**
@@ -1702,6 +1757,10 @@ private void invalidateIndex(int i) {
}
private static final InputFilter[] NO_FILTERS = new InputFilter[0];
+
+ @GuardedBy("sCachedIntBuffer")
+ private static final int[][] sCachedIntBuffer = new int[6][0];
+
private InputFilter[] mFilters = NO_FILTERS;
private char[] mText;
@@ -1715,8 +1774,6 @@ private void invalidateIndex(int i) {
private int[] mSpanFlags;
private int[] mSpanOrder; // store the order of span insertion
private int mSpanInsertCount; // counter for the span insertion
- private int[] mPrioSortBuffer; // buffer used to sort getSpans result
- private int[] mOrderSortBuffer; // buffer used to sort getSpans result
private int mSpanCount;
private IdentityHashMap mIndexOfSpan;
diff --git a/core/java/android/text/style/ImageSpan.java b/core/java/android/text/style/ImageSpan.java
index 856dd0bff36e..b0bff680f390 100644
--- a/core/java/android/text/style/ImageSpan.java
+++ b/core/java/android/text/style/ImageSpan.java
@@ -43,7 +43,7 @@ public ImageSpan(Bitmap b) {
}
/**
- * @deprecated Use {@link #ImageSpan(Context, Bitmap, int) instead.
+ * @deprecated Use {@link #ImageSpan(Context, Bitmap, int)} instead.
*/
@Deprecated
public ImageSpan(Bitmap b, int verticalAlignment) {
diff --git a/core/java/android/text/style/TtsSpan.java b/core/java/android/text/style/TtsSpan.java
index e9153ddba831..29e667f5abc5 100644
--- a/core/java/android/text/style/TtsSpan.java
+++ b/core/java/android/text/style/TtsSpan.java
@@ -798,7 +798,7 @@ public DecimalBuilder() {
/**
* Creates a TtsSpan of type {@link #TYPE_DECIMAL} and sets the
* {@link #ARG_INTEGER_PART} and {@link #ARG_FRACTIONAL_PART} arguments.
- * @see {@link #setArgumentsFromDouble(double, int, int)
+ * @see #setArgumentsFromDouble(double, int, int)
*/
public DecimalBuilder(double number,
int minimumFractionDigits,
@@ -1082,7 +1082,7 @@ public MeasureBuilder setDenominator(String denominator) {
* Sets the {@link #ARG_UNIT} argument.
* @param unit The unit of the measure.
* @return This instance.
- * @see {@link TtsSpan.ARG_UNIT}
+ * @see TtsSpan.ARG_UNIT
*/
public MeasureBuilder setUnit(String unit) {
return setStringArgument(TtsSpan.ARG_UNIT, unit);
@@ -1116,7 +1116,7 @@ public TimeBuilder(int hours, int minutes) {
* Sets the {@link #ARG_HOURS} argument.
* @param hours The value to be set for hours. See {@link #ARG_HOURS}.
* @return This instance.
- * @see {@link #ARG_HOURS}
+ * @see #ARG_HOURS
*/
public TimeBuilder setHours(int hours) {
return setIntArgument(TtsSpan.ARG_HOURS, hours);
@@ -1127,7 +1127,7 @@ public TimeBuilder setHours(int hours) {
* @param minutes The value to be set for minutes. See
* {@link #ARG_MINUTES}.
* @return This instance.
- * @see {@link #ARG_MINUTES}
+ * @see #ARG_MINUTES
*/
public TimeBuilder setMinutes(int minutes) {
return setIntArgument(TtsSpan.ARG_MINUTES, minutes);
@@ -1177,7 +1177,7 @@ public DateBuilder(Integer weekday,
* @param weekday The value to be set for weekday. See
* {@link #ARG_WEEKDAY}.
* @return This instance.
- * @see {@link #ARG_WEEKDAY}
+ * @see #ARG_WEEKDAY
*/
public DateBuilder setWeekday(int weekday) {
return setIntArgument(TtsSpan.ARG_WEEKDAY, weekday);
@@ -1187,7 +1187,7 @@ public DateBuilder setWeekday(int weekday) {
* Sets the {@link #ARG_DAY} argument.
* @param day The value to be set for day. See {@link #ARG_DAY}.
* @return This instance.
- * @see {@link #ARG_DAY}
+ * @see #ARG_DAY
*/
public DateBuilder setDay(int day) {
return setIntArgument(TtsSpan.ARG_DAY, day);
@@ -1197,7 +1197,7 @@ public DateBuilder setDay(int day) {
* Sets the {@link #ARG_MONTH} argument.
* @param month The value to be set for month. See {@link #ARG_MONTH}.
* @return This instance.
- * @see {@link #ARG_MONTH}
+ * @see #ARG_MONTH
*/
public DateBuilder setMonth(int month) {
return setIntArgument(TtsSpan.ARG_MONTH, month);
@@ -1207,7 +1207,7 @@ public DateBuilder setMonth(int month) {
* Sets the {@link #ARG_YEAR} argument.
* @param year The value to be set for year. See {@link #ARG_YEAR}.
* @return This instance.
- * @see {@link #ARG_YEAR}
+ * @see #ARG_YEAR
*/
public DateBuilder setYear(int year) {
return setIntArgument(TtsSpan.ARG_YEAR, year);
diff --git a/core/java/android/view/Display.java b/core/java/android/view/Display.java
index 85a4bf9d9e8f..e29155821eaa 100644
--- a/core/java/android/view/Display.java
+++ b/core/java/android/view/Display.java
@@ -284,6 +284,15 @@ public final class Display {
*/
public static final int STATE_DOZE_SUSPEND = 4;
+ /**
+ * Display state: The display is on and optimized for VR mode.
+ *
+ * @see #getState
+ * @see android.os.PowerManager#isInteractive
+ * @hide
+ */
+ public static final int STATE_VR = 5;
+
/* The color mode constants defined below must be kept in sync with the ones in
* system/graphics.h */
@@ -868,7 +877,8 @@ public void getRealMetrics(DisplayMetrics outMetrics) {
* Gets the state of the display, such as whether it is on or off.
*
* @return The state of the display: one of {@link #STATE_OFF}, {@link #STATE_ON},
- * {@link #STATE_DOZE}, {@link #STATE_DOZE_SUSPEND}, or {@link #STATE_UNKNOWN}.
+ * {@link #STATE_DOZE}, {@link #STATE_DOZE_SUSPEND}, or
+ * {@link #STATE_UNKNOWN}.
*/
public int getState() {
synchronized (this) {
@@ -984,6 +994,8 @@ public static String stateToString(int state) {
return "DOZE";
case STATE_DOZE_SUSPEND:
return "DOZE_SUSPEND";
+ case STATE_VR:
+ return "VR";
default:
return Integer.toString(state);
}
diff --git a/core/java/android/view/FrameMetrics.java b/core/java/android/view/FrameMetrics.java
index 2b938d0df7eb..7d1b76b8becb 100644
--- a/core/java/android/view/FrameMetrics.java
+++ b/core/java/android/view/FrameMetrics.java
@@ -138,7 +138,7 @@ public final class FrameMetrics {
/**
* Identifiers for metrics available for each frame.
*
- * {@see {@link #getMetric(int)}}
+ * {@see #getMetric(int)}
* @hide
*/
@IntDef({
diff --git a/core/java/android/view/KeyCharacterMap.java b/core/java/android/view/KeyCharacterMap.java
index 55dd6bb64fe6..a70eb2279cca 100644
--- a/core/java/android/view/KeyCharacterMap.java
+++ b/core/java/android/view/KeyCharacterMap.java
@@ -673,8 +673,8 @@ public int getKeyboardType() {
*
* @return The modifier behavior for this keyboard.
*
- * @see {@link #MODIFIER_BEHAVIOR_CHORDED}
- * @see {@link #MODIFIER_BEHAVIOR_CHORDED_OR_TOGGLED}
+ * @see #MODIFIER_BEHAVIOR_CHORDED
+ * @see #MODIFIER_BEHAVIOR_CHORDED_OR_TOGGLED
*/
public int getModifierBehavior() {
switch (getKeyboardType()) {
diff --git a/core/java/android/view/RoundScrollbarRenderer.java b/core/java/android/view/RoundScrollbarRenderer.java
index b77be8c00e69..694232f9dfd5 100644
--- a/core/java/android/view/RoundScrollbarRenderer.java
+++ b/core/java/android/view/RoundScrollbarRenderer.java
@@ -31,8 +31,8 @@ class RoundScrollbarRenderer {
private static final int MAX_SCROLLBAR_ANGLE_SWIPE = 16;
private static final int MIN_SCROLLBAR_ANGLE_SWIPE = 6;
private static final float WIDTH_PERCENTAGE = 0.02f;
- private static final int DEFAULT_THUMB_COLOR = 0xFF757575;
- private static final int DEFAULT_TRACK_COLOR = 0x21FFFFFF;
+ private static final int DEFAULT_THUMB_COLOR = 0x4CFFFFFF;
+ private static final int DEFAULT_TRACK_COLOR = 0x26FFFFFF;
private final Paint mThumbPaint = new Paint();
private final Paint mTrackPaint = new Paint();
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 5f40ad520d0c..984078a98208 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -12940,7 +12940,7 @@ public StateListAnimator getStateListAnimator() {
* Any previously attached StateListAnimator will be detached.
*
* @param stateListAnimator The StateListAnimator to update the view
- * @see {@link android.animation.StateListAnimator}
+ * @see android.animation.StateListAnimator
*/
public void setStateListAnimator(StateListAnimator stateListAnimator) {
if (mStateListAnimator == stateListAnimator) {
@@ -23914,8 +23914,8 @@ protected void encodeProperties(@NonNull ViewHierarchyEncoder stream) {
* Determine if this view is rendered on a round wearable device and is the main view
* on the screen.
*/
- private boolean shouldDrawRoundScrollbar() {
- if (!mResources.getConfiguration().isScreenRound()) {
+ boolean shouldDrawRoundScrollbar() {
+ if (!mResources.getConfiguration().isScreenRound() || mAttachInfo == null) {
return false;
}
@@ -23931,7 +23931,7 @@ private boolean shouldDrawRoundScrollbar() {
return false;
}
- getLocationOnScreen(mAttachInfo.mTmpLocation);
+ getLocationInWindow(mAttachInfo.mTmpLocation);
return mAttachInfo.mTmpLocation[0] == insets.getStableInsetLeft()
&& mAttachInfo.mTmpLocation[1] == insets.getStableInsetTop();
}
diff --git a/core/java/android/view/ViewConfiguration.java b/core/java/android/view/ViewConfiguration.java
index 4d584a3df4fb..8b8525f2f1b5 100644
--- a/core/java/android/view/ViewConfiguration.java
+++ b/core/java/android/view/ViewConfiguration.java
@@ -16,6 +16,7 @@
package android.view;
+import android.annotation.SystemApi;
import android.app.AppGlobals;
import android.content.Context;
import android.content.res.Configuration;
@@ -63,6 +64,12 @@ public class ViewConfiguration {
*/
private static final int DEFAULT_LONG_PRESS_TIMEOUT = 500;
+ /**
+ * Defines the default duration in milliseconds between the first tap's up event and the second
+ * tap's down event for an interaction to be considered part of the same multi-press.
+ */
+ private static final int DEFAULT_MULTI_PRESS_TIMEOUT = 300;
+
/**
* Defines the time between successive key repeats in milliseconds.
*/
@@ -212,6 +219,12 @@ public class ViewConfiguration {
*/
private static final int OVERFLING_DISTANCE = 6;
+ /**
+ * Amount to scroll in response to a {@link MotionEvent#ACTION_SCROLL} event, in dips per
+ * axis value.
+ */
+ private static final int SCROLL_FACTOR = 64;
+
/**
* Default duration to hide an action mode for.
*/
@@ -240,6 +253,7 @@ public class ViewConfiguration {
private final int mOverflingDistance;
private final boolean mFadingMarqueeEnabled;
private final long mGlobalActionsKeyTimeout;
+ private final int mScrollFactor;
private boolean sHasPermanentMenuKey;
private boolean sHasPermanentMenuKeySet;
@@ -268,6 +282,7 @@ public ViewConfiguration() {
mOverflingDistance = OVERFLING_DISTANCE;
mFadingMarqueeEnabled = true;
mGlobalActionsKeyTimeout = GLOBAL_ACTIONS_KEY_TIMEOUT;
+ mScrollFactor = SCROLL_FACTOR;
}
/**
@@ -351,6 +366,8 @@ private ViewConfiguration(Context context) {
com.android.internal.R.dimen.config_viewMaxFlingVelocity);
mGlobalActionsKeyTimeout = res.getInteger(
com.android.internal.R.integer.config_globalActionsKeyTimeout);
+ mScrollFactor = res.getDimensionPixelSize(
+ com.android.internal.R.dimen.config_scrollFactor);
}
/**
@@ -440,6 +457,16 @@ public static int getLongPressTimeout() {
DEFAULT_LONG_PRESS_TIMEOUT);
}
+ /**
+ * @return the duration in milliseconds between the first tap's up event and the second tap's
+ * down event for an interaction to be considered part of the same multi-press.
+ * @hide
+ */
+ public static int getMultiPressTimeout() {
+ return AppGlobals.getIntCoreSetting(Settings.Secure.MULTI_PRESS_TIMEOUT,
+ DEFAULT_MULTI_PRESS_TIMEOUT);
+ }
+
/**
* @return the time before the first key repeat in milliseconds.
*/
@@ -652,6 +679,16 @@ public int getScaledMaximumFlingVelocity() {
return mMaximumFlingVelocity;
}
+ /**
+ * @return Amount to scroll in response to a {@link MotionEvent#ACTION_SCROLL} event. Multiply
+ * this by the event's axis value to obtain the number of pixels to be scrolled.
+ * @hide
+ * @SystemApi
+ */
+ public int getScaledScrollFactor() {
+ return mScrollFactor;
+ }
+
/**
* The maximum drawing cache size expressed in bytes.
*
diff --git a/core/java/android/view/ViewOverlay.java b/core/java/android/view/ViewOverlay.java
index b770bd50c277..8fa5d70b41c0 100644
--- a/core/java/android/view/ViewOverlay.java
+++ b/core/java/android/view/ViewOverlay.java
@@ -238,7 +238,19 @@ public void invalidateDrawable(@NonNull Drawable drawable) {
@Override
protected void dispatchDraw(Canvas canvas) {
+ /*
+ * The OverlayViewGroup doesn't draw with a DisplayList, because
+ * draw(Canvas, View, long) is never called on it. This is fine, since it doesn't need
+ * RenderNode/DisplayList features, and can just draw into the owner's Canvas.
+ *
+ * This means that we need to insert reorder barriers manually though, so that children
+ * of the OverlayViewGroup can cast shadows and Z reorder with each other.
+ */
+ canvas.insertReorderBarrier();
+
super.dispatchDraw(canvas);
+
+ canvas.insertInorderBarrier();
final int numDrawables = (mDrawables == null) ? 0 : mDrawables.size();
for (int i = 0; i < numDrawables; ++i) {
mDrawables.get(i).draw(canvas);
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index e95fa5e6a2ee..f761b9b4ea14 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -6080,7 +6080,8 @@ public boolean shouldSkipIme() {
return true;
}
return mEvent instanceof MotionEvent
- && mEvent.isFromSource(InputDevice.SOURCE_CLASS_POINTER);
+ && (mEvent.isFromSource(InputDevice.SOURCE_CLASS_POINTER)
+ || mEvent.isFromSource(InputDevice.SOURCE_ROTARY_ENCODER));
}
public boolean shouldSendToSynthesizer() {
diff --git a/core/java/android/view/Window.java b/core/java/android/view/Window.java
index 87616408e10d..3ee02771aee3 100644
--- a/core/java/android/view/Window.java
+++ b/core/java/android/view/Window.java
@@ -275,6 +275,7 @@ public abstract class Window {
private TypedArray mWindowStyle;
private Callback mCallback;
private OnWindowDismissedCallback mOnWindowDismissedCallback;
+ private OnWindowSwipeDismissedCallback mOnWindowSwipeDismissedCallback;
private WindowControllerCallback mWindowControllerCallback;
private OnRestrictedCaptionAreaChangedListener mOnRestrictedCaptionAreaChangedListener;
private Rect mRestrictedCaptionAreaRect;
@@ -302,6 +303,7 @@ public abstract class Window {
private boolean mDestroyed;
private boolean mOverlayWithDecorCaptionEnabled = false;
+ private boolean mCloseOnSwipeEnabled = false;
// The current window attributes.
private final WindowManager.LayoutParams mWindowAttributes =
@@ -580,8 +582,22 @@ public interface OnWindowDismissedCallback {
* Called when a window is dismissed. This informs the callback that the
* window is gone, and it should finish itself.
* @param finishTask True if the task should also be finished.
+ * @param suppressWindowTransition True if the resulting exit and enter window transition
+ * animations should be suppressed.
*/
- void onWindowDismissed(boolean finishTask);
+ void onWindowDismissed(boolean finishTask, boolean suppressWindowTransition);
+ }
+
+ /** @hide */
+ public interface OnWindowSwipeDismissedCallback {
+ /**
+ * Called when a window is swipe dismissed. This informs the callback that the
+ * window is gone, and it should finish itself.
+ * @param finishTask True if the task should also be finished.
+ * @param suppressWindowTransition True if the resulting exit and enter window transition
+ * animations should be suppressed.
+ */
+ void onWindowSwipeDismissed();
}
/** @hide */
@@ -870,9 +886,22 @@ public final void setOnWindowDismissedCallback(OnWindowDismissedCallback dcb) {
}
/** @hide */
- public final void dispatchOnWindowDismissed(boolean finishTask) {
+ public final void dispatchOnWindowDismissed(
+ boolean finishTask, boolean suppressWindowTransition) {
if (mOnWindowDismissedCallback != null) {
- mOnWindowDismissedCallback.onWindowDismissed(finishTask);
+ mOnWindowDismissedCallback.onWindowDismissed(finishTask, suppressWindowTransition);
+ }
+ }
+
+ /** @hide */
+ public final void setOnWindowSwipeDismissedCallback(OnWindowSwipeDismissedCallback sdcb) {
+ mOnWindowSwipeDismissedCallback = sdcb;
+ }
+
+ /** @hide */
+ public final void dispatchOnWindowSwipeDismissed() {
+ if (mOnWindowSwipeDismissedCallback != null) {
+ mOnWindowSwipeDismissedCallback.onWindowSwipeDismissed();
}
}
@@ -2217,4 +2246,21 @@ public void notifyRestrictedCaptionAreaCallback(int left, int top, int right, in
* @hide
*/
public abstract void reportActivityRelaunched();
+
+ /**
+ * Called to set flag to check if the close on swipe is enabled. This will only function if
+ * FEATURE_SWIPE_TO_DISMISS has been set.
+ * @hide
+ */
+ public void setCloseOnSwipeEnabled(boolean closeOnSwipeEnabled) {
+ mCloseOnSwipeEnabled = closeOnSwipeEnabled;
+ }
+
+ /**
+ * @return {@code true} if the close on swipe is enabled.
+ * @hide
+ */
+ public boolean isCloseOnSwipeEnabled() {
+ return mCloseOnSwipeEnabled;
+ }
}
diff --git a/core/java/android/view/accessibility/AccessibilityManager.java b/core/java/android/view/accessibility/AccessibilityManager.java
index 2dfa8cdd3db9..286f5f7c1bf9 100644
--- a/core/java/android/view/accessibility/AccessibilityManager.java
+++ b/core/java/android/view/accessibility/AccessibilityManager.java
@@ -353,7 +353,18 @@ public void interrupt() {
return;
}
if (!mIsEnabled) {
- throw new IllegalStateException("Accessibility off. Did you forget to check that?");
+ Looper myLooper = Looper.myLooper();
+ if (myLooper == Looper.getMainLooper()) {
+ throw new IllegalStateException(
+ "Accessibility off. Did you forget to check that?");
+ } else {
+ // If we're not running on the thread with the main looper, it's possible for
+ // the state of accessibility to change between checking isEnabled and
+ // calling this method. So just log the error rather than throwing the
+ // exception.
+ Log.e(LOG_TAG, "Interrupt called with accessibility disabled");
+ return;
+ }
}
userId = mUserId;
}
diff --git a/core/java/android/view/animation/LayoutAnimationController.java b/core/java/android/view/animation/LayoutAnimationController.java
index df2f18c21735..7fa49c1a6c8f 100644
--- a/core/java/android/view/animation/LayoutAnimationController.java
+++ b/core/java/android/view/animation/LayoutAnimationController.java
@@ -150,7 +150,7 @@ public LayoutAnimationController(Animation animation, float delay) {
* Returns the order used to compute the delay of each child's animation.
*
* @return one of {@link #ORDER_NORMAL}, {@link #ORDER_REVERSE} or
- * {@link #ORDER_RANDOM)
+ * {@link #ORDER_RANDOM}
*
* @attr ref android.R.styleable#LayoutAnimation_animationOrder
*/
diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java
index f54edf14bbe1..3a8551954266 100644
--- a/core/java/android/webkit/WebView.java
+++ b/core/java/android/webkit/WebView.java
@@ -740,9 +740,26 @@ public void savePassword(String host, String username, String password) {
}
/**
- * Stores HTTP authentication credentials for a given host and realm. This
- * method is intended to be used with
- * {@link WebViewClient#onReceivedHttpAuthRequest}.
+ * Stores HTTP authentication credentials for a given host and realm to the {@link WebViewDatabase}
+ * instance.
+ *
+ * To use HTTP authentication, the embedder application has to implement
+ * {@link WebViewClient#onReceivedHttpAuthRequest}, and call {@link HttpAuthHandler#proceed}
+ * with the correct username and password.
+ *
+ * The embedder app can get the username and password any way it chooses, and does not have to
+ * use {@link WebViewDatabase}.
+ *
+ * Notes:
+ *
+ * {@link WebViewDatabase} is provided only as a convenience to store and retrieve http
+ * authentication credentials. WebView does not read from it during HTTP authentication.
+ *
+ *
+ * WebView does not provide a special mechanism to clear HTTP authentication credentials for
+ * implementing client logout. The client logout mechanism should be implemented by the Web site
+ * designer (such as server sending a HTTP 401 for invalidating credentials).
+ *
*
* @param host the host to which the credentials apply
* @param realm the realm to which the credentials apply
@@ -759,9 +776,8 @@ public void setHttpAuthUsernamePassword(String host, String realm,
}
/**
- * Retrieves HTTP authentication credentials for a given host and realm.
- * This method is intended to be used with
- * {@link WebViewClient#onReceivedHttpAuthRequest}.
+ * Retrieves HTTP authentication credentials for a given host and realm from the {@link
+ * WebViewDatabase} instance.
*
* @param host the host to which the credentials apply
* @param realm the realm to which the credentials apply
diff --git a/core/java/android/webkit/WebViewDatabase.java b/core/java/android/webkit/WebViewDatabase.java
index cdff41685b80..cc2c6cc34803 100644
--- a/core/java/android/webkit/WebViewDatabase.java
+++ b/core/java/android/webkit/WebViewDatabase.java
@@ -44,7 +44,7 @@ public static WebViewDatabase getInstance(Context context) {
*
* @return true if there are any saved username/password pairs
* @see WebView#savePassword
- * @see #clearUsernamePassworda
+ * @see #clearUsernamePassword
* @deprecated Saving passwords in WebView will not be supported in future versions.
*/
@Deprecated
@@ -72,7 +72,16 @@ public static WebViewDatabase getInstance(Context context) {
public abstract boolean hasHttpAuthUsernamePassword();
/**
- * Clears any saved credentials for HTTP authentication.
+ * Clears any saved credentials for HTTP authentication. This method only clears the username
+ * and password stored in WebViewDatabase instance. The username and password are not read from
+ * the {@link WebViewDatabase} during {@link WebViewClient#onReceivedHttpAuthRequest}. It is up
+ * to the app to do this or not.
+ *
+ * The username and password used for http authentication might be cached in the network stack
+ * itself, and are not cleared when this method is called. WebView does not provide a special
+ * mechanism to clear HTTP authentication for implementing client logout. The client logout
+ * mechanism should be implemented by the Web site designer (such as server sending a HTTP 401
+ * for invalidating credentials).
*
* @see WebView#getHttpAuthUsernamePassword
* @see WebView#setHttpAuthUsernamePassword
diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java
index 7b45d8cb05b0..c01348d69f3c 100644
--- a/core/java/android/widget/AbsListView.java
+++ b/core/java/android/widget/AbsListView.java
@@ -21,6 +21,7 @@
import android.annotation.NonNull;
import android.content.Context;
import android.content.Intent;
+import android.content.res.Configuration;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Rect;
@@ -616,6 +617,8 @@ public abstract class AbsListView extends AdapterView implements Te
private int mTouchSlop;
private float mDensityScale;
+ private float mScrollFactor;
+
private InputConnection mDefInputConnection;
private InputConnectionWrapper mPublicInputConnection;
@@ -857,6 +860,10 @@ public AbsListView(Context context, AttributeSet attrs, int defStyleAttr, int de
R.styleable.AbsListView_fastScrollAlwaysVisible, false));
a.recycle();
+
+ if (context.getResources().getConfiguration().uiMode == Configuration.UI_MODE_TYPE_WATCH) {
+ setRevealOnFocusHint(false);
+ }
}
private void initAbsListView() {
@@ -869,6 +876,7 @@ private void initAbsListView() {
final ViewConfiguration configuration = ViewConfiguration.get(mContext);
mTouchSlop = configuration.getScaledTouchSlop();
+ mScrollFactor = configuration.getScaledScrollFactor();
mMinimumVelocity = configuration.getScaledMinimumFlingVelocity();
mMaximumVelocity = configuration.getScaledMaximumFlingVelocity();
mOverscrollDistance = configuration.getScaledOverscrollDistance();
@@ -2160,7 +2168,6 @@ protected void onLayout(boolean changed, int l, int t, int r, int b) {
}
layoutChildren();
- mInLayout = false;
mOverscrollMax = (b - t) / OVERSCROLL_LIMIT_DIVISOR;
@@ -2168,6 +2175,7 @@ protected void onLayout(boolean changed, int l, int t, int r, int b) {
if (mFastScroll != null) {
mFastScroll.onItemCountChanged(getChildCount(), mItemCount);
}
+ mInLayout = false;
}
/**
@@ -2697,6 +2705,9 @@ protected void onSizeChanged(int w, int h, int oldw, int oldh) {
* fail to relayout them properly to accommodate for new bounds.
*/
void handleBoundsChange() {
+ if (mInLayout) {
+ return;
+ }
final int childCount = getChildCount();
if (childCount > 0) {
mDataChanged = true;
@@ -4201,21 +4212,26 @@ protected void onOverScrolled(int scrollX, int scrollY, boolean clampedX, boolea
@Override
public boolean onGenericMotionEvent(MotionEvent event) {
- if ((event.getSource() & InputDevice.SOURCE_CLASS_POINTER) != 0) {
- switch (event.getAction()) {
- case MotionEvent.ACTION_SCROLL:
- if (mTouchMode == TOUCH_MODE_REST) {
- final float vscroll = event.getAxisValue(MotionEvent.AXIS_VSCROLL);
- if (vscroll != 0) {
- final int delta = (int) (vscroll * getVerticalScrollFactor());
- if (!trackMotionScroll(delta, delta)) {
- return true;
- }
- }
- }
- break;
+ switch (event.getAction()) {
+ case MotionEvent.ACTION_SCROLL:
+ final float axisValue;
+ if (event.isFromSource(InputDevice.SOURCE_CLASS_POINTER)) {
+ axisValue = event.getAxisValue(MotionEvent.AXIS_VSCROLL);
+ } else if (event.isFromSource(InputDevice.SOURCE_ROTARY_ENCODER)) {
+ axisValue = event.getAxisValue(MotionEvent.AXIS_SCROLL);
+ } else {
+ axisValue = 0;
+ }
- case MotionEvent.ACTION_BUTTON_PRESS:
+ final int delta = Math.round(axisValue * mScrollFactor);
+ if (delta != 0) {
+ if (!trackMotionScroll(delta, delta)) {
+ return true;
+ }
+ }
+ break;
+ case MotionEvent.ACTION_BUTTON_PRESS:
+ if (event.isFromSource(InputDevice.SOURCE_CLASS_POINTER)) {
int actionButton = event.getActionButton();
if ((actionButton == MotionEvent.BUTTON_STYLUS_PRIMARY
|| actionButton == MotionEvent.BUTTON_SECONDARY)
@@ -4225,8 +4241,8 @@ public boolean onGenericMotionEvent(MotionEvent event) {
removeCallbacks(mPendingCheckForTap);
}
}
- break;
- }
+ }
+ break;
}
return super.onGenericMotionEvent(event);
diff --git a/core/java/android/widget/ArrayAdapter.java b/core/java/android/widget/ArrayAdapter.java
index 9d228cf667b1..bbc50dafa576 100644
--- a/core/java/android/widget/ArrayAdapter.java
+++ b/core/java/android/widget/ArrayAdapter.java
@@ -312,10 +312,10 @@ public void notifyDataSetChanged() {
}
/**
- * Control whether methods that change the list ({@link #add},
- * {@link #insert}, {@link #remove}, {@link #clear}) automatically call
- * {@link #notifyDataSetChanged}. If set to false, caller must
- * manually call notifyDataSetChanged() to have the changes
+ * Control whether methods that change the list ({@link #add}, {@link #addAll(Collection)},
+ * {@link #addAll(Object[])}, {@link #insert}, {@link #remove}, {@link #clear},
+ * {@link #sort(Comparator)}) automatically call {@link #notifyDataSetChanged}. If set to
+ * false, caller must manually call notifyDataSetChanged() to have the changes
* reflected in the attached view.
*
* The default is true, and calling notifyDataSetChanged()
diff --git a/core/java/android/widget/HorizontalScrollView.java b/core/java/android/widget/HorizontalScrollView.java
index 00f368e3abe3..918b6c0d65ff 100644
--- a/core/java/android/widget/HorizontalScrollView.java
+++ b/core/java/android/widget/HorizontalScrollView.java
@@ -18,6 +18,7 @@
import android.annotation.NonNull;
import android.content.Context;
+import android.content.res.Configuration;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Rect;
@@ -128,6 +129,8 @@ public class HorizontalScrollView extends FrameLayout {
private int mOverscrollDistance;
private int mOverflingDistance;
+ private float mScrollFactor;
+
/**
* ID of the active pointer. This is used to retain consistency during
* drags/flings if multiple pointers are used.
@@ -165,6 +168,10 @@ public HorizontalScrollView(
setFillViewport(a.getBoolean(android.R.styleable.HorizontalScrollView_fillViewport, false));
a.recycle();
+
+ if (context.getResources().getConfiguration().uiMode == Configuration.UI_MODE_TYPE_WATCH) {
+ setRevealOnFocusHint(false);
+ }
}
@Override
@@ -217,6 +224,7 @@ private void initScrollView() {
mMaximumVelocity = configuration.getScaledMaximumFlingVelocity();
mOverscrollDistance = configuration.getScaledOverscrollDistance();
mOverflingDistance = configuration.getScaledOverflingDistance();
+ mScrollFactor = configuration.getScaledScrollFactor();
}
@Override
@@ -719,30 +727,35 @@ private void onSecondaryPointerUp(MotionEvent ev) {
@Override
public boolean onGenericMotionEvent(MotionEvent event) {
- if ((event.getSource() & InputDevice.SOURCE_CLASS_POINTER) != 0) {
- switch (event.getAction()) {
- case MotionEvent.ACTION_SCROLL: {
- if (!mIsBeingDragged) {
- final float hscroll;
+ switch (event.getAction()) {
+ case MotionEvent.ACTION_SCROLL: {
+ if (!mIsBeingDragged) {
+ final float axisValue;
+ if (event.isFromSource(InputDevice.SOURCE_CLASS_POINTER)) {
if ((event.getMetaState() & KeyEvent.META_SHIFT_ON) != 0) {
- hscroll = -event.getAxisValue(MotionEvent.AXIS_VSCROLL);
+ axisValue = -event.getAxisValue(MotionEvent.AXIS_VSCROLL);
} else {
- hscroll = event.getAxisValue(MotionEvent.AXIS_HSCROLL);
+ axisValue = event.getAxisValue(MotionEvent.AXIS_HSCROLL);
}
- if (hscroll != 0) {
- final int delta = (int) (hscroll * getHorizontalScrollFactor());
- final int range = getScrollRange();
- int oldScrollX = mScrollX;
- int newScrollX = oldScrollX + delta;
- if (newScrollX < 0) {
- newScrollX = 0;
- } else if (newScrollX > range) {
- newScrollX = range;
- }
- if (newScrollX != oldScrollX) {
- super.scrollTo(newScrollX, mScrollY);
- return true;
- }
+ } else if (event.isFromSource(InputDevice.SOURCE_ROTARY_ENCODER)) {
+ axisValue = event.getAxisValue(MotionEvent.AXIS_SCROLL);
+ } else {
+ axisValue = 0;
+ }
+
+ final int delta = Math.round(axisValue * mScrollFactor);
+ if (delta != 0) {
+ final int range = getScrollRange();
+ int oldScrollX = mScrollX;
+ int newScrollX = oldScrollX + delta;
+ if (newScrollX < 0) {
+ newScrollX = 0;
+ } else if (newScrollX > range) {
+ newScrollX = range;
+ }
+ if (newScrollX != oldScrollX) {
+ super.scrollTo(newScrollX, mScrollY);
+ return true;
}
}
}
@@ -1430,11 +1443,13 @@ protected int computeScrollDeltaToGetChildRectOnScreen(Rect rect) {
@Override
public void requestChildFocus(View child, View focused) {
- if (!mIsLayoutDirty) {
- scrollToChild(focused);
- } else {
- // The child may not be laid out yet, we can't compute the scroll yet
- mChildToScrollTo = focused;
+ if (focused.getRevealOnFocusHint()) {
+ if (!mIsLayoutDirty) {
+ scrollToChild(focused);
+ } else {
+ // The child may not be laid out yet, we can't compute the scroll yet
+ mChildToScrollTo = focused;
+ }
}
super.requestChildFocus(child, focused);
}
diff --git a/core/java/android/widget/PopupWindow.java b/core/java/android/widget/PopupWindow.java
index 9b89491ce408..473585857d11 100644
--- a/core/java/android/widget/PopupWindow.java
+++ b/core/java/android/widget/PopupWindow.java
@@ -223,7 +223,7 @@ public void onScrollChanged() {
mDecorView.getLayoutParams();
updateAboveAnchor(findDropDownPosition(anchor, p, mAnchorXoff, mAnchorYoff,
- p.width, p.height, mAnchoredGravity));
+ p.width, p.height, mAnchoredGravity, false));
update(p.x, p.y, -1, -1, true);
}
}
@@ -1227,7 +1227,7 @@ public void showAsDropDown(View anchor, int xoff, int yoff, int gravity) {
preparePopup(p);
final boolean aboveAnchor = findDropDownPosition(anchor, p, xoff, yoff,
- p.width, p.height, gravity);
+ p.width, p.height, gravity, mAllowScrollingAnchorParent);
updateAboveAnchor(aboveAnchor);
p.accessibilityIdOfAnchor = (anchor != null) ? anchor.getAccessibilityViewId() : -1;
@@ -1519,10 +1519,12 @@ private int computeAnimationResource() {
* @param xOffset absolute horizontal offset from the left of the anchor
* @param yOffset absolute vertical offset from the top of the anchor
* @param gravity horizontal gravity specifying popup alignment
+ * @param allowScroll whether the anchor view's parent may be scrolled
+ * when the popup window doesn't fit on screen
* @return true if the popup is translated upwards to fit on screen
*/
private boolean findDropDownPosition(View anchor, WindowManager.LayoutParams outParams,
- int xOffset, int yOffset, int width, int height, int gravity) {
+ int xOffset, int yOffset, int width, int height, int gravity, boolean allowScroll) {
final int anchorHeight = anchor.getHeight();
final int anchorWidth = anchor.getWidth();
if (mOverlapAnchor) {
@@ -1576,7 +1578,7 @@ private boolean findDropDownPosition(View anchor, WindowManager.LayoutParams out
final int scrollY = anchor.getScrollY();
final Rect r = new Rect(scrollX, scrollY, scrollX + width + xOffset,
scrollY + height + anchorHeight + yOffset);
- if (mAllowScrollingAnchorParent && anchor.requestRectangleOnScreen(r, true)) {
+ if (allowScroll && anchor.requestRectangleOnScreen(r, true)) {
// Reset for the new anchor position.
anchor.getLocationInWindow(drawingLocation);
outParams.x = drawingLocation[0] + xOffset;
@@ -1834,7 +1836,8 @@ public void dismiss() {
// can expect the OnAttachStateChangeListener to have been called prior
// to executing this method, so we can rely on that instead.
final Transition exitTransition = mExitTransition;
- if (mIsAnchorRootAttached && exitTransition != null && decorView.isLaidOut()) {
+ if (exitTransition != null && decorView.isLaidOut()
+ && (mIsAnchorRootAttached || mAnchorRoot == null)) {
// The decor view is non-interactive and non-IME-focusable during exit transitions.
final LayoutParams p = (LayoutParams) decorView.getLayoutParams();
p.flags |= LayoutParams.FLAG_NOT_TOUCHABLE;
@@ -1842,18 +1845,13 @@ public void dismiss() {
p.flags &= ~LayoutParams.FLAG_ALT_FOCUSABLE_IM;
mWindowManager.updateViewLayout(decorView, p);
+ final View anchorRoot = mAnchorRoot != null ? mAnchorRoot.get() : null;
+ final Rect epicenter = getTransitionEpicenter();
+
// Once we start dismissing the decor view, all state (including
// the anchor root) needs to be moved to the decor view since we
// may open another popup while it's busy exiting.
- final View anchorRoot = mAnchorRoot != null ? mAnchorRoot.get() : null;
- final Rect epicenter = getTransitionEpicenter();
- exitTransition.setEpicenterCallback(new EpicenterCallback() {
- @Override
- public Rect onGetEpicenter(Transition transition) {
- return epicenter;
- }
- });
- decorView.startExitTransition(exitTransition, anchorRoot,
+ decorView.startExitTransition(exitTransition, anchorRoot, epicenter,
new TransitionListenerAdapter() {
@Override
public void onTransitionEnd(Transition transition) {
@@ -2176,15 +2174,19 @@ private void update(View anchor, boolean updateLocation, int xoff, int yoff,
}
final boolean aboveAnchor = findDropDownPosition(anchor, p, mAnchorXoff, mAnchorYoff,
- width, height, gravity);
+ width, height, gravity, mAllowScrollingAnchorParent);
updateAboveAnchor(aboveAnchor);
final boolean paramsChanged = oldGravity != p.gravity || oldX != p.x || oldY != p.y
|| oldWidth != p.width || oldHeight != p.height;
- // If width and mWidth were both < 0 then we have a MATCH_PARENT/WRAP_CONTENT case.
- // findDropDownPosition will have resolved this to absolute values,
- // but we don't want to update mWidth/mHeight to these absolute values.
- update(p.x, p.y, width < 0 ? width : p.width, height < 0 ? height : p.height, paramsChanged);
+
+ // If width and mWidth were both < 0 then we have a MATCH_PARENT or
+ // WRAP_CONTENT case. findDropDownPosition will have resolved this to
+ // absolute values, but we don't want to update mWidth/mHeight to these
+ // absolute values.
+ final int newWidth = width < 0 ? width : p.width;
+ final int newHeight = height < 0 ? height : p.height;
+ update(p.x, p.y, newWidth, newHeight, paramsChanged);
}
/**
@@ -2348,8 +2350,9 @@ private void startEnterTransition(Transition enterTransition) {
* its {@code onTransitionEnd} method called even if the transition
* never starts; however, it may be called with a {@code null} argument.
*/
- public void startExitTransition(Transition transition, final View anchorRoot,
- final TransitionListener listener) {
+ public void startExitTransition(@NonNull Transition transition,
+ @Nullable final View anchorRoot, @Nullable final Rect epicenter,
+ @NonNull final TransitionListener listener) {
if (transition == null) {
return;
}
@@ -2357,23 +2360,35 @@ public void startExitTransition(Transition transition, final View anchorRoot,
// The anchor view's window may go away while we're executing our
// transition, in which case we need to end the transition
// immediately and execute the listener to remove the popup.
- anchorRoot.addOnAttachStateChangeListener(mOnAnchorRootDetachedListener);
+ if (anchorRoot != null) {
+ anchorRoot.addOnAttachStateChangeListener(mOnAnchorRootDetachedListener);
+ }
// The exit listener MUST be called for cleanup, even if the
// transition never starts or ends. Stash it for later.
mPendingExitListener = new TransitionListenerAdapter() {
@Override
- public void onTransitionEnd(Transition transition) {
- anchorRoot.removeOnAttachStateChangeListener(mOnAnchorRootDetachedListener);
- listener.onTransitionEnd(transition);
+ public void onTransitionEnd(Transition t) {
+ if (anchorRoot != null) {
+ anchorRoot.removeOnAttachStateChangeListener(mOnAnchorRootDetachedListener);
+ }
+
+ listener.onTransitionEnd(t);
// The listener was called. Our job here is done.
mPendingExitListener = null;
+ t.removeListener(this);
}
};
final Transition exitTransition = transition.clone();
exitTransition.addListener(mPendingExitListener);
+ exitTransition.setEpicenterCallback(new EpicenterCallback() {
+ @Override
+ public Rect onGetEpicenter(Transition transition) {
+ return epicenter;
+ }
+ });
final int count = getChildCount();
for (int i = 0; i < count; i++) {
diff --git a/core/java/android/widget/RemoteViews.java b/core/java/android/widget/RemoteViews.java
index d0d233ebe975..04ae2627e6df 100644
--- a/core/java/android/widget/RemoteViews.java
+++ b/core/java/android/widget/RemoteViews.java
@@ -390,6 +390,7 @@ public void mergeRemoteViews(RemoteViews newRv) {
// Because pruning can remove the need for bitmaps, we reconstruct the bitmap cache
mBitmapCache = new BitmapCache();
setBitmapCache(mBitmapCache);
+ recalculateMemoryUsage();
}
private class SetEmptyView extends Action {
@@ -2057,26 +2058,8 @@ public int getMemoryUsage() {
return mMemoryUsage;
}
- @SuppressWarnings("deprecation")
public void addBitmapMemory(Bitmap b) {
- final Bitmap.Config c = b.getConfig();
- // If we don't know, be pessimistic and assume 4
- int bpp = 4;
- if (c != null) {
- switch (c) {
- case ALPHA_8:
- bpp = 1;
- break;
- case RGB_565:
- case ARGB_4444:
- bpp = 2;
- break;
- case ARGB_8888:
- bpp = 4;
- break;
- }
- }
- increment(b.getWidth() * b.getHeight() * bpp);
+ increment(b.getAllocationByteCount());
}
int mMemoryUsage;
@@ -2659,8 +2642,8 @@ public void setProgressBar(int viewId, int max, int progress,
*
* When setting the on-click action of items within collections (eg. {@link ListView},
* {@link StackView} etc.), this method will not work. Instead, use {@link
- * RemoteViews#setPendingIntentTemplate(int, PendingIntent) in conjunction with
- * RemoteViews#setOnClickFillInIntent(int, Intent).
+ * RemoteViews#setPendingIntentTemplate(int, PendingIntent)} in conjunction with
+ * {@link RemoteViews#setOnClickFillInIntent(int, Intent)}.
*
* @param viewId The id of the view that will trigger the {@link PendingIntent} when clicked
* @param pendingIntent The {@link PendingIntent} to send when user clicks
@@ -3245,7 +3228,7 @@ public interface OnViewAppliedListener {
* Applies the views asynchronously, moving as much of the task on the background
* thread as possible.
*
- * @see {@link #apply(Context, ViewGroup)}
+ * @see #apply(Context, ViewGroup)
* @param context Default context to use
* @param parent Parent that the resulting view hierarchy will be attached to. This method
* does not attach the hierarchy. The caller should do so when appropriate.
@@ -3400,7 +3383,7 @@ public void reapply(Context context, View v, OnClickHandler handler) {
* Applies all the actions to the provided view, moving as much of the task on the background
* thread as possible.
*
- * @see {@link #reapply(Context, View)}
+ * @see #reapply(Context, View)
* @param context Default context to use
* @param v The view to apply the actions to. This should be the result of
* the {@link #apply(Context,ViewGroup)} call.
diff --git a/core/java/android/widget/ScrollView.java b/core/java/android/widget/ScrollView.java
index 0555cd403b00..e696ff7229e8 100644
--- a/core/java/android/widget/ScrollView.java
+++ b/core/java/android/widget/ScrollView.java
@@ -17,6 +17,7 @@
package android.widget;
import android.annotation.NonNull;
+import android.content.res.Configuration;
import android.os.Build;
import android.os.Build.VERSION_CODES;
import android.os.Parcel;
@@ -134,6 +135,8 @@ public class ScrollView extends FrameLayout {
private int mOverscrollDistance;
private int mOverflingDistance;
+ private int mScrollFactor;
+
/**
* ID of the active pointer. This is used to retain consistency during
* drags/flings if multiple pointers are used.
@@ -186,6 +189,10 @@ public ScrollView(Context context, AttributeSet attrs, int defStyleAttr, int def
setFillViewport(a.getBoolean(R.styleable.ScrollView_fillViewport, false));
a.recycle();
+
+ if (context.getResources().getConfiguration().uiMode == Configuration.UI_MODE_TYPE_WATCH) {
+ setRevealOnFocusHint(false);
+ }
}
@Override
@@ -243,6 +250,7 @@ private void initScrollView() {
mMaximumVelocity = configuration.getScaledMaximumFlingVelocity();
mOverscrollDistance = configuration.getScaledOverscrollDistance();
mOverflingDistance = configuration.getScaledOverflingDistance();
+ mScrollFactor = configuration.getScaledScrollFactor();
}
@Override
@@ -777,30 +785,35 @@ private void onSecondaryPointerUp(MotionEvent ev) {
@Override
public boolean onGenericMotionEvent(MotionEvent event) {
- if ((event.getSource() & InputDevice.SOURCE_CLASS_POINTER) != 0) {
- switch (event.getAction()) {
- case MotionEvent.ACTION_SCROLL: {
- if (!mIsBeingDragged) {
- final float vscroll = event.getAxisValue(MotionEvent.AXIS_VSCROLL);
- if (vscroll != 0) {
- final int delta = (int) (vscroll * getVerticalScrollFactor());
- final int range = getScrollRange();
- int oldScrollY = mScrollY;
- int newScrollY = oldScrollY - delta;
- if (newScrollY < 0) {
- newScrollY = 0;
- } else if (newScrollY > range) {
- newScrollY = range;
- }
- if (newScrollY != oldScrollY) {
- super.scrollTo(mScrollX, newScrollY);
- return true;
- }
- }
+ switch (event.getAction()) {
+ case MotionEvent.ACTION_SCROLL:
+ final float axisValue;
+ if (event.isFromSource(InputDevice.SOURCE_CLASS_POINTER)) {
+ axisValue = event.getAxisValue(MotionEvent.AXIS_VSCROLL);
+ } else if (event.isFromSource(InputDevice.SOURCE_ROTARY_ENCODER)) {
+ axisValue = event.getAxisValue(MotionEvent.AXIS_SCROLL);
+ } else {
+ axisValue = 0;
+ }
+
+ final int delta = Math.round(axisValue * mScrollFactor);
+ if (delta != 0) {
+ final int range = getScrollRange();
+ int oldScrollY = mScrollY;
+ int newScrollY = oldScrollY - delta;
+ if (newScrollY < 0) {
+ newScrollY = 0;
+ } else if (newScrollY > range) {
+ newScrollY = range;
+ }
+ if (newScrollY != oldScrollY) {
+ super.scrollTo(mScrollX, newScrollY);
+ return true;
}
}
- }
+ break;
}
+
return super.onGenericMotionEvent(event);
}
@@ -1455,11 +1468,13 @@ protected int computeScrollDeltaToGetChildRectOnScreen(Rect rect) {
@Override
public void requestChildFocus(View child, View focused) {
- if (!mIsLayoutDirty) {
- scrollToChild(focused);
- } else {
- // The child may not be laid out yet, we can't compute the scroll yet
- mChildToScrollTo = focused;
+ if (focused.getRevealOnFocusHint()) {
+ if (!mIsLayoutDirty) {
+ scrollToChild(focused);
+ } else {
+ // The child may not be laid out yet, we can't compute the scroll yet
+ mChildToScrollTo = focused;
+ }
}
super.requestChildFocus(child, focused);
}
diff --git a/core/java/android/widget/TextClock.java b/core/java/android/widget/TextClock.java
index a585d75e5d7a..49380b745564 100644
--- a/core/java/android/widget/TextClock.java
+++ b/core/java/android/widget/TextClock.java
@@ -130,7 +130,7 @@ public class TextClock extends TextView {
private CharSequence mDescFormat;
- private boolean mAttached;
+ private boolean mRegistered;
private Calendar mTime;
private String mTimeZone;
@@ -250,7 +250,7 @@ private void init() {
}
createTime(mTimeZone);
- // Wait until onAttachedToWindow() to handle the ticker
+ // Wait until registering for events to handle the ticker
chooseFormat(false);
}
@@ -501,7 +501,7 @@ private void chooseFormat(boolean handleTicker) {
boolean hadSeconds = mHasSeconds;
mHasSeconds = DateFormat.hasSeconds(mFormat);
- if (handleTicker && mAttached && hadSeconds != mHasSeconds) {
+ if (handleTicker && mRegistered && hadSeconds != mHasSeconds) {
if (hadSeconds) getHandler().removeCallbacks(mTicker);
else mTicker.run();
}
@@ -515,11 +515,9 @@ private static CharSequence abc(CharSequence a, CharSequence b, CharSequence c)
}
@Override
- protected void onAttachedToWindow() {
- super.onAttachedToWindow();
-
- if (!mAttached) {
- mAttached = true;
+ public void onVisibilityAggregated(boolean isVisible) {
+ if (!mRegistered && isVisible) {
+ mRegistered = true;
registerReceiver();
registerObserver();
@@ -531,20 +529,13 @@ protected void onAttachedToWindow() {
} else {
onTimeChanged();
}
- }
- }
-
- @Override
- protected void onDetachedFromWindow() {
- super.onDetachedFromWindow();
-
- if (mAttached) {
+ } else if (mRegistered && !isVisible) {
unregisterReceiver();
unregisterObserver();
getHandler().removeCallbacks(mTicker);
- mAttached = false;
+ mRegistered = false;
}
}
@@ -567,7 +558,7 @@ private void registerReceiver() {
}
private void registerObserver() {
- if (isAttachedToWindow()) {
+ if (mRegistered) {
if (mFormatChangeObserver == null) {
mFormatChangeObserver = new FormatChangeObserver(getHandler());
}
diff --git a/core/java/com/android/internal/app/AlertController.java b/core/java/com/android/internal/app/AlertController.java
index cdb706304206..49e2a0377a4f 100644
--- a/core/java/com/android/internal/app/AlertController.java
+++ b/core/java/com/android/internal/app/AlertController.java
@@ -888,7 +888,8 @@ private void setBackground(TypedArray a, View topPanel, View contentPanel, View
final int checkedItem = mCheckedItem;
if (checkedItem > -1) {
listView.setItemChecked(checkedItem, true);
- listView.setSelection(checkedItem);
+ listView.setSelectionFromTop(checkedItem,
+ a.getDimensionPixelSize(R.styleable.AlertDialog_selectionScrollOffset, 0));
}
}
}
diff --git a/core/java/com/android/internal/app/ResolverActivity.java b/core/java/com/android/internal/app/ResolverActivity.java
index 1e26c92dd764..0010073a2e91 100644
--- a/core/java/com/android/internal/app/ResolverActivity.java
+++ b/core/java/com/android/internal/app/ResolverActivity.java
@@ -124,6 +124,13 @@ public class ResolverActivity extends Activity {
bindProfileView();
}
}
+
+ @Override
+ public boolean onPackageChanged(String packageName, int uid, String[] components) {
+ // We care about all package changes, not just the whole package itself which is
+ // default behavior.
+ return true;
+ }
};
/**
@@ -1322,6 +1329,14 @@ private void rebuildList() {
PackageManager.MATCH_DEFAULT_ONLY
| (shouldGetResolvedFilter ? PackageManager.GET_RESOLVED_FILTER : 0)
| (shouldGetActivityMetadata ? PackageManager.GET_META_DATA : 0));
+ // Remove any activities that are not exported.
+ int totalSize = infos.size();
+ for (int j = totalSize - 1; j >= 0 ; j--) {
+ ResolveInfo info = infos.get(j);
+ if (info.activityInfo != null && !info.activityInfo.exported) {
+ infos.remove(j);
+ }
+ }
if (infos != null) {
if (currentResolveList == null) {
currentResolveList = mOrigResolveList = new ArrayList<>();
@@ -1494,7 +1509,15 @@ private boolean isSameResolvedComponent(ResolveInfo a, ResolvedComponentInfo b)
}
public void onListRebuilt() {
- // This space for rent
+ int count = getUnfilteredCount();
+ if (count == 1 && getOtherProfile() == null) {
+ // Only one target, so we're a candidate to auto-launch!
+ final TargetInfo target = targetInfoForPosition(0, false);
+ if (shouldAutoLaunchSingleChoice(target)) {
+ safelyStartActivity(target);
+ finish();
+ }
+ }
}
public boolean shouldGetResolvedFilter() {
diff --git a/core/java/com/android/internal/os/BatteryStatsImpl.java b/core/java/com/android/internal/os/BatteryStatsImpl.java
index 3b3344e7d934..f28315bdc7f3 100644
--- a/core/java/com/android/internal/os/BatteryStatsImpl.java
+++ b/core/java/com/android/internal/os/BatteryStatsImpl.java
@@ -108,7 +108,7 @@ public class BatteryStatsImpl extends BatteryStats {
private static final int MAGIC = 0xBA757475; // 'BATSTATS'
// Current on-disk Parcel version
- private static final int VERSION = 150 + (USE_OLD_HISTORY ? 1000 : 0);
+ private static final int VERSION = 151 + (USE_OLD_HISTORY ? 1000 : 0);
// Maximum number of items we will record in the history.
private static final int MAX_HISTORY_ITEMS = 2000;
@@ -1593,7 +1593,7 @@ public DurationTimer(Clocks clocks, Uid uid, int type, ArrayList
@Override
public void writeToParcel(Parcel out, long elapsedRealtimeUs) {
super.writeToParcel(out, elapsedRealtimeUs);
- out.writeLong(mMaxDurationMs);
+ out.writeLong(getMaxDurationMsLocked(elapsedRealtimeUs / 1000));
}
/**
@@ -1606,7 +1606,7 @@ public void writeToParcel(Parcel out, long elapsedRealtimeUs) {
@Override
public void writeSummaryFromParcelLocked(Parcel out, long elapsedRealtimeUs) {
super.writeSummaryFromParcelLocked(out, elapsedRealtimeUs);
- out.writeLong(mMaxDurationMs);
+ out.writeLong(getMaxDurationMsLocked(elapsedRealtimeUs / 1000));
}
/**
@@ -1630,7 +1630,7 @@ public void readSummaryFromParcelLocked(Parcel in) {
public void onTimeStarted(long elapsedRealtimeUs, long baseUptime, long baseRealtime) {
super.onTimeStarted(elapsedRealtimeUs, baseUptime, baseRealtime);
if (mNesting > 0) {
- mStartTimeMs = mTimeBase.getRealtime(mClocks.elapsedRealtime()*1000) / 1000;
+ mStartTimeMs = baseRealtime / 1000;
}
}
@@ -1640,10 +1640,11 @@ public void onTimeStarted(long elapsedRealtimeUs, long baseUptime, long baseReal
* If the timer is running, add the duration into mCurrentDurationMs.
*/
@Override
- public void onTimeStopped(long elapsedRealtimeUs, long baseUptime, long baseRealtime) {
- super.onTimeStopped(elapsedRealtimeUs, baseUptime, baseRealtime);
+ public void onTimeStopped(long elapsedRealtimeUs, long baseUptime, long baseRealtimeUs) {
+ super.onTimeStopped(elapsedRealtimeUs, baseUptime, baseRealtimeUs);
if (mNesting > 0) {
- mCurrentDurationMs += (elapsedRealtimeUs / 1000) - mStartTimeMs;
+ // baseRealtimeUs has already been converted to the timebase's realtime.
+ mCurrentDurationMs += (baseRealtimeUs / 1000) - mStartTimeMs;
}
mStartTimeMs = -1;
}
@@ -1658,7 +1659,7 @@ public void startRunningLocked(long elapsedRealtimeMs) {
super.startRunningLocked(elapsedRealtimeMs);
if (mNesting == 1 && mTimeBase.isRunning()) {
// Just started
- mStartTimeMs = mTimeBase.getRealtime(mClocks.elapsedRealtime()*1000) / 1000;
+ mStartTimeMs = mTimeBase.getRealtime(elapsedRealtimeMs * 1000) / 1000;
}
}
@@ -1670,8 +1671,7 @@ public void startRunningLocked(long elapsedRealtimeMs) {
*/
@Override
public void stopRunningLocked(long elapsedRealtimeMs) {
- super.stopRunningLocked(elapsedRealtimeMs);
- if (mNesting == 0) {
+ if (mNesting == 1) {
final long durationMs = getCurrentDurationMsLocked(elapsedRealtimeMs);
if (durationMs > mMaxDurationMs) {
mMaxDurationMs = durationMs;
@@ -1679,6 +1679,9 @@ public void stopRunningLocked(long elapsedRealtimeMs) {
mStartTimeMs = -1;
mCurrentDurationMs = 0;
}
+ // super method decrements mNesting, which getCurrentDurationMsLocked relies on,
+ // so call super.stopRunningLocked after calling getCurrentDurationMsLocked.
+ super.stopRunningLocked(elapsedRealtimeMs);
}
@Override
@@ -1720,11 +1723,9 @@ public long getMaxDurationMsLocked(long elapsedRealtimeMs) {
@Override
public long getCurrentDurationMsLocked(long elapsedRealtimeMs) {
long durationMs = mCurrentDurationMs;
- if (mNesting > 0) {
- if (mTimeBase.isRunning()) {
- durationMs += (mTimeBase.getRealtime(elapsedRealtimeMs*1000)/1000)
- - mStartTimeMs;
- }
+ if (mNesting > 0 && mTimeBase.isRunning()) {
+ durationMs += (mTimeBase.getRealtime(elapsedRealtimeMs*1000)/1000)
+ - mStartTimeMs;
}
return durationMs;
}
@@ -2877,8 +2878,22 @@ void addHistoryBufferLocked(long elapsedRealtimeMs, long uptimeMs, HistoryItem c
mHistoryLastWritten.setTo(mHistoryLastLastWritten);
}
+ boolean recordResetDueToOverflow = false;
final int dataSize = mHistoryBuffer.dataSize();
- if (dataSize >= MAX_HISTORY_BUFFER) {
+ if (dataSize >= MAX_MAX_HISTORY_BUFFER*3) {
+ // Clients can't deal with history buffers this large. This only
+ // really happens when the device is on charger and interacted with
+ // for long periods of time, like in retail mode. Since the device is
+ // most likely charged, when unplugged, stats would have reset anyways.
+ // Reset the stats and mark that we overflowed.
+ // b/32540341
+ resetAllStatsLocked();
+
+ // Mark that we want to set *OVERFLOW* event and the RESET:START
+ // events.
+ recordResetDueToOverflow = true;
+
+ } else if (dataSize >= MAX_HISTORY_BUFFER) {
if (!mHistoryOverflow) {
mHistoryOverflow = true;
addHistoryBufferLocked(elapsedRealtimeMs, uptimeMs, HistoryItem.CMD_UPDATE, cur);
@@ -2924,9 +2939,12 @@ void addHistoryBufferLocked(long elapsedRealtimeMs, long uptimeMs, HistoryItem c
return;
}
- if (dataSize == 0) {
+ if (dataSize == 0 || recordResetDueToOverflow) {
// The history is currently empty; we need it to start with a time stamp.
cur.currentTime = System.currentTimeMillis();
+ if (recordResetDueToOverflow) {
+ addHistoryBufferLocked(elapsedRealtimeMs, uptimeMs, HistoryItem.CMD_OVERFLOW, cur);
+ }
addHistoryBufferLocked(elapsedRealtimeMs, uptimeMs, HistoryItem.CMD_RESET, cur);
}
addHistoryBufferLocked(elapsedRealtimeMs, uptimeMs, HistoryItem.CMD_UPDATE, cur);
@@ -9594,9 +9612,9 @@ void setOnBatteryLocked(final long mSecRealtime, final long mSecUptime, final bo
}
doWrite = true;
resetAllStatsLocked();
- if (chargeUAh > 0) {
+ if (chargeUAh > 0 && level > 0) {
// Only use the reported coulomb charge value if it is supported and reported.
- mEstimatedBatteryCapacity = (int) ((level / 100.0) * (chargeUAh / 1000));
+ mEstimatedBatteryCapacity = (int) ((chargeUAh / 1000) / (level / 100.0));
}
mDischargeStartLevel = level;
reset = true;
diff --git a/core/java/com/android/internal/os/ZygoteInit.java b/core/java/com/android/internal/os/ZygoteInit.java
index 455849e0c19e..29a79787b6b1 100644
--- a/core/java/com/android/internal/os/ZygoteInit.java
+++ b/core/java/com/android/internal/os/ZygoteInit.java
@@ -80,6 +80,7 @@ public class ZygoteInit {
private static final String TAG = "Zygote";
private static final String PROPERTY_DISABLE_OPENGL_PRELOADING = "ro.zygote.disable_gl_preload";
+ private static final String PROPERTY_GFX_DRIVER = "ro.gfx.driver.0";
private static final String PROPERTY_RUNNING_IN_CONTAINER = "ro.boot.container";
private static final String ANDROID_SOCKET_PREFIX = "ANDROID_SOCKET_";
@@ -243,7 +244,9 @@ private static void preloadSharedLibraries() {
}
private static void preloadOpenGL() {
- if (!SystemProperties.getBoolean(PROPERTY_DISABLE_OPENGL_PRELOADING, false)) {
+ String driverPackageName = SystemProperties.get(PROPERTY_GFX_DRIVER);
+ if (!SystemProperties.getBoolean(PROPERTY_DISABLE_OPENGL_PRELOADING, false) ||
+ driverPackageName == null || driverPackageName.isEmpty()) {
EGL14.eglGetDisplay(EGL14.EGL_DEFAULT_DISPLAY);
}
}
diff --git a/core/java/com/android/internal/policy/DecorView.java b/core/java/com/android/internal/policy/DecorView.java
index 92ab3246e354..8dfdc6a815a1 100644
--- a/core/java/com/android/internal/policy/DecorView.java
+++ b/core/java/com/android/internal/policy/DecorView.java
@@ -96,6 +96,7 @@
import static android.view.WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS;
import static android.view.WindowManager.LayoutParams.FLAG_FULLSCREEN;
import static android.view.WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR;
+import static android.view.WindowManager.LayoutParams.FLAG_LAYOUT_IN_OVERSCAN;
import static android.view.WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
import static android.view.WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION;
import static android.view.WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;
@@ -969,7 +970,7 @@ public WindowInsets onApplyWindowInsets(WindowInsets insets) {
mFrameOffsets.set(insets.getSystemWindowInsets());
insets = updateColorViews(insets, true /* animate */);
insets = updateStatusGuard(insets);
- updateNavigationGuard(insets);
+ insets = updateNavigationGuard(insets);
if (getForeground() != null) {
drawableChanged();
}
@@ -1329,9 +1330,11 @@ private WindowInsets updateStatusGuard(WindowInsets insets) {
return insets;
}
- private void updateNavigationGuard(WindowInsets insets) {
- // IMEs lay out below the nav bar, but the content view must not (for back compat)
- if (mWindow.getAttributes().type == WindowManager.LayoutParams.TYPE_INPUT_METHOD) {
+ private WindowInsets updateNavigationGuard(WindowInsets insets) {
+ // IME windows lay out below the nav bar, but the content view must not (for back compat)
+ // Only make this adjustment if the window is not requesting layout in overscan
+ if (mWindow.getAttributes().type == WindowManager.LayoutParams.TYPE_INPUT_METHOD
+ && (mWindow.getAttributes().flags & FLAG_LAYOUT_IN_OVERSCAN) == 0) {
// prevent the content view from including the nav bar height
if (mWindow.mContentParent != null) {
if (mWindow.mContentParent.getLayoutParams() instanceof MarginLayoutParams) {
@@ -1356,7 +1359,10 @@ private void updateNavigationGuard(WindowInsets insets) {
mNavigationGuard.setLayoutParams(lp);
}
updateNavigationGuardColor();
+ insets = insets.consumeSystemWindowInsets(
+ false, false, false, true /* bottom */);
}
+ return insets;
}
void updateNavigationGuardColor() {
diff --git a/core/java/com/android/internal/policy/PhoneWindow.java b/core/java/com/android/internal/policy/PhoneWindow.java
index 878f3a69a504..3b280ad20d41 100644
--- a/core/java/com/android/internal/policy/PhoneWindow.java
+++ b/core/java/com/android/internal/policy/PhoneWindow.java
@@ -2495,6 +2495,7 @@ protected ViewGroup generateLayout(DecorView decor) {
// System.out.println("Features: 0x" + Integer.toHexString(features));
if ((features & (1 << FEATURE_SWIPE_TO_DISMISS)) != 0) {
layoutResource = R.layout.screen_swipe_dismiss;
+ setCloseOnSwipeEnabled(true);
} else if ((features & ((1 << FEATURE_LEFT_ICON) | (1 << FEATURE_RIGHT_ICON))) != 0) {
if (mIsFloating) {
TypedValue res = new TypedValue();
@@ -2566,7 +2567,7 @@ protected ViewGroup generateLayout(DecorView decor) {
}
if ((features & (1 << FEATURE_SWIPE_TO_DISMISS)) != 0) {
- registerSwipeCallbacks();
+ registerSwipeCallbacks(contentParent);
}
// Remaining setup -- of background and title -- that only applies
@@ -2980,25 +2981,27 @@ private ImageView getRightIconView() {
return (mRightIconView = (ImageView)findViewById(R.id.right_icon));
}
- private void registerSwipeCallbacks() {
- SwipeDismissLayout swipeDismiss =
- (SwipeDismissLayout) findViewById(R.id.content);
+ private void registerSwipeCallbacks(ViewGroup contentParent) {
+ if (!(contentParent instanceof SwipeDismissLayout)) {
+ Log.w(TAG, "contentParent is not a SwipeDismissLayout: " + contentParent);
+ return;
+ }
+ SwipeDismissLayout swipeDismiss = (SwipeDismissLayout) contentParent;
swipeDismiss.setOnDismissedListener(new SwipeDismissLayout.OnDismissedListener() {
@Override
public void onDismissed(SwipeDismissLayout layout) {
- dispatchOnWindowDismissed(false /*finishTask*/);
+ dispatchOnWindowSwipeDismissed();
+ dispatchOnWindowDismissed(false /*finishTask*/, true /*suppressWindowTransition*/);
}
});
swipeDismiss.setOnSwipeProgressChangedListener(
new SwipeDismissLayout.OnSwipeProgressChangedListener() {
- private static final float ALPHA_DECREASE = 0.5f;
- private boolean mIsTranslucent = false;
@Override
public void onSwipeProgressChanged(
- SwipeDismissLayout layout, float progress, float translate) {
+ SwipeDismissLayout layout, float alpha, float translate) {
WindowManager.LayoutParams newParams = getAttributes();
newParams.x = (int) translate;
- newParams.alpha = 1 - (progress * ALPHA_DECREASE);
+ newParams.alpha = alpha;
setAttributes(newParams);
int flags = 0;
@@ -3013,14 +3016,28 @@ public void onSwipeProgressChanged(
@Override
public void onSwipeCancelled(SwipeDismissLayout layout) {
WindowManager.LayoutParams newParams = getAttributes();
- newParams.x = 0;
- newParams.alpha = 1;
- setAttributes(newParams);
- setFlags(FLAG_FULLSCREEN, FLAG_FULLSCREEN | FLAG_LAYOUT_NO_LIMITS);
+ // Swipe changes only affect the x-translation and alpha, check to see if
+ // those values have changed first before resetting them.
+ if (newParams.x != 0 || newParams.alpha != 1) {
+ newParams.x = 0;
+ newParams.alpha = 1;
+ setAttributes(newParams);
+ setFlags(FLAG_FULLSCREEN, FLAG_FULLSCREEN | FLAG_LAYOUT_NO_LIMITS);
+ }
}
});
}
+ /** @hide */
+ @Override
+ public void setCloseOnSwipeEnabled(boolean closeOnSwipeEnabled) {
+ if (hasFeature(Window.FEATURE_SWIPE_TO_DISMISS) // swipe-to-dismiss feature is requested
+ && mContentParent instanceof SwipeDismissLayout) { // check casting mContentParent
+ ((SwipeDismissLayout) mContentParent).setDismissable(closeOnSwipeEnabled);
+ }
+ super.setCloseOnSwipeEnabled(closeOnSwipeEnabled);
+ }
+
/**
* Helper method for calling the {@link Callback#onPanelClosed(int, Menu)}
* callback. This method will grab whatever extra state is needed for the
diff --git a/core/java/com/android/internal/util/TokenBucket.java b/core/java/com/android/internal/util/TokenBucket.java
new file mode 100644
index 000000000000..a163ceb5f8f8
--- /dev/null
+++ b/core/java/com/android/internal/util/TokenBucket.java
@@ -0,0 +1,128 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.internal.util;
+
+import android.os.SystemClock;
+
+import static com.android.internal.util.Preconditions.checkArgumentNonnegative;
+import static com.android.internal.util.Preconditions.checkArgumentPositive;
+
+/**
+ * A class useful for rate-limiting or throttling that stores and distributes tokens.
+ *
+ * A TokenBucket starts with a fixed capacity of tokens, an initial amount of tokens, and
+ * a fixed filling period (in milliseconds).
+ *
+ * For every filling period, the bucket gains one token, up to its maximum capacity from
+ * which point tokens simply overflow and are lost. Tokens can be obtained one by one or n by n.
+ *
+ * The available amount of tokens is computed lazily when the bucket state is inspected.
+ * Therefore it is purely synchronous and does not involve any asynchronous activity.
+ * It is not synchronized in any way and not a thread-safe object.
+ *
+ * {@hide}
+ */
+public class TokenBucket {
+
+ private final int mFillDelta; // Time in ms it takes to generate one token.
+ private final int mCapacity; // Maximum number of tokens that can be stored.
+ private long mLastFill; // Last time in ms the bucket generated tokens.
+ private int mAvailable; // Current number of available tokens.
+
+ /**
+ * Create a new TokenBucket.
+ * @param deltaMs the time in milliseconds it takes to generate a new token.
+ * Must be strictly positive.
+ * @param capacity the maximum token capacity. Must be strictly positive.
+ * @param tokens the starting amount of token. Must be positive or zero.
+ */
+ public TokenBucket(int deltaMs, int capacity, int tokens) {
+ mFillDelta = checkArgumentPositive(deltaMs, "deltaMs must be strictly positive");
+ mCapacity = checkArgumentPositive(capacity, "capacity must be strictly positive");
+ mAvailable = Math.min(checkArgumentNonnegative(tokens), mCapacity);
+ mLastFill = scaledTime();
+ }
+
+ /**
+ * Create a new TokenBucket that starts completely filled.
+ * @param deltaMs the time in milliseconds it takes to generate a new token.
+ * Must be strictly positive.
+ * @param capacity the maximum token capacity. Must be strictly positive.
+ */
+ public TokenBucket(int deltaMs, int capacity) {
+ this(deltaMs, capacity, capacity);
+ }
+
+ /** Reset this TokenBucket and set its number of available tokens. */
+ public void reset(int tokens) {
+ checkArgumentNonnegative(tokens);
+ mAvailable = Math.min(tokens, mCapacity);
+ mLastFill = scaledTime();
+ }
+
+ /** Returns this TokenBucket maximum token capacity. */
+ public int capacity() {
+ return mCapacity;
+ }
+
+ /** Returns this TokenBucket currently number of available tokens. */
+ public int available() {
+ fill();
+ return mAvailable;
+ }
+
+ /** Returns true if this TokenBucket as one or more tokens available. */
+ public boolean has() {
+ fill();
+ return mAvailable > 0;
+ }
+
+ /** Consumes a token from this TokenBucket and returns true if a token is available. */
+ public boolean get() {
+ return (get(1) == 1);
+ }
+
+ /**
+ * Try to consume many tokens from this TokenBucket.
+ * @param n the number of tokens to consume.
+ * @return the number of tokens that were actually consumed.
+ */
+ public int get(int n) {
+ fill();
+ if (n <= 0) {
+ return 0;
+ }
+ if (n > mAvailable) {
+ int got = mAvailable;
+ mAvailable = 0;
+ return got;
+ }
+ mAvailable -= n;
+ return n;
+ }
+
+ private void fill() {
+ final long now = scaledTime();
+ final int diff = (int) (now - mLastFill);
+ mAvailable = Math.min(mCapacity, mAvailable + diff);
+ mLastFill = now;
+ }
+
+ private long scaledTime() {
+ return SystemClock.elapsedRealtime() / mFillDelta;
+ }
+}
diff --git a/core/java/com/android/internal/widget/DecorCaptionView.java b/core/java/com/android/internal/widget/DecorCaptionView.java
index fc68b849ed20..04767b00bdff 100644
--- a/core/java/com/android/internal/widget/DecorCaptionView.java
+++ b/core/java/com/android/internal/widget/DecorCaptionView.java
@@ -416,7 +416,8 @@ public boolean onSingleTapUp(MotionEvent e) {
if (mClickTarget == mMaximize) {
maximizeWindow();
} else if (mClickTarget == mClose) {
- mOwner.dispatchOnWindowDismissed(true /*finishTask*/);
+ mOwner.dispatchOnWindowDismissed(
+ true /*finishTask*/, false /*suppressWindowTransition*/);
}
return true;
}
diff --git a/core/java/com/android/internal/widget/ImageFloatingTextView.java b/core/java/com/android/internal/widget/ImageFloatingTextView.java
index 358be604f847..a5d2bf3b68d3 100644
--- a/core/java/com/android/internal/widget/ImageFloatingTextView.java
+++ b/core/java/com/android/internal/widget/ImageFloatingTextView.java
@@ -71,10 +71,14 @@ protected Layout makeSingleLayout(int wantWidth, BoringLayout.Metrics boring, in
.setTextDirection(getTextDirectionHeuristic())
.setLineSpacing(getLineSpacingExtra(), getLineSpacingMultiplier())
.setIncludePad(getIncludeFontPadding())
- .setEllipsize(shouldEllipsize ? effectiveEllipsize : null)
- .setEllipsizedWidth(ellipsisWidth)
.setBreakStrategy(Layout.BREAK_STRATEGY_HIGH_QUALITY)
- .setHyphenationFrequency(Layout.HYPHENATION_FREQUENCY_FULL);
+ .setHyphenationFrequency(Layout.HYPHENATION_FREQUENCY_FULL)
+ .setMaxLines(getMaxLines() >= 0 ? getMaxLines() : Integer.MAX_VALUE);
+ if (shouldEllipsize) {
+ builder.setEllipsize(effectiveEllipsize)
+ .setEllipsizedWidth(ellipsisWidth);
+ }
+
// we set the endmargin on the requested number of lines.
int endMargin = getContext().getResources().getDimensionPixelSize(
R.dimen.notification_content_picture_margin);
diff --git a/core/java/com/android/internal/widget/LockPatternChecker.java b/core/java/com/android/internal/widget/LockPatternChecker.java
index df9b0ddc1804..6defd1e8d9f2 100644
--- a/core/java/com/android/internal/widget/LockPatternChecker.java
+++ b/core/java/com/android/internal/widget/LockPatternChecker.java
@@ -4,6 +4,7 @@
import com.android.internal.widget.LockPatternUtils.RequestThrottledException;
+import java.util.ArrayList;
import java.util.List;
/**
@@ -61,11 +62,19 @@ public interface OnVerifyCallback {
final OnVerifyCallback callback) {
AsyncTask task = new AsyncTask() {
private int mThrottleTimeout;
+ private List patternCopy;
+
+ @Override
+ protected void onPreExecute() {
+ // Make a copy of the pattern to prevent race conditions.
+ // No need to clone the individual cells because they are immutable.
+ patternCopy = new ArrayList(pattern);
+ }
@Override
protected byte[] doInBackground(Void... args) {
try {
- return utils.verifyPattern(pattern, challenge, userId);
+ return utils.verifyPattern(patternCopy, challenge, userId);
} catch (RequestThrottledException ex) {
mThrottleTimeout = ex.getTimeoutMs();
return null;
@@ -95,11 +104,19 @@ protected void onPostExecute(byte[] result) {
final OnCheckCallback callback) {
AsyncTask task = new AsyncTask() {
private int mThrottleTimeout;
+ private List patternCopy;
+
+ @Override
+ protected void onPreExecute() {
+ // Make a copy of the pattern to prevent race conditions.
+ // No need to clone the individual cells because they are immutable.
+ patternCopy = new ArrayList(pattern);
+ }
@Override
protected Boolean doInBackground(Void... args) {
try {
- return utils.checkPattern(pattern, userId, callback::onEarlyMatched);
+ return utils.checkPattern(patternCopy, userId, callback::onEarlyMatched);
} catch (RequestThrottledException ex) {
mThrottleTimeout = ex.getTimeoutMs();
return false;
diff --git a/core/java/com/android/internal/widget/LockPatternView.java b/core/java/com/android/internal/widget/LockPatternView.java
index 96492e283e1f..4ba19f446b13 100644
--- a/core/java/com/android/internal/widget/LockPatternView.java
+++ b/core/java/com/android/internal/widget/LockPatternView.java
@@ -24,6 +24,7 @@
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.CanvasProperty;
+import android.graphics.drawable.Drawable;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.Rect;
@@ -143,6 +144,10 @@ public class LockPatternView extends View {
private PatternExploreByTouchHelper mExploreByTouchHelper;
private AudioManager mAudioManager;
+ private Drawable mSelectedDrawable;
+ private Drawable mNotSelectedDrawable;
+ private boolean mUseLockPatternDrawable;
+
/**
* Represents a cell in the 3 X 3 matrix of the unlock pattern view.
*/
@@ -314,6 +319,12 @@ public LockPatternView(Context context, AttributeSet attrs) {
mDotSizeActivated = getResources().getDimensionPixelSize(
R.dimen.lock_pattern_dot_size_activated);
+ mUseLockPatternDrawable = getResources().getBoolean(R.bool.use_lock_pattern_drawable);
+ if (mUseLockPatternDrawable) {
+ mSelectedDrawable = getResources().getDrawable(R.drawable.lockscreen_selected);
+ mNotSelectedDrawable = getResources().getDrawable(R.drawable.lockscreen_notselected);
+ }
+
mPaint.setAntiAlias(true);
mPaint.setDither(true);
@@ -621,6 +632,11 @@ protected void onSizeChanged(int w, int h, int oldw, int oldh) {
final int height = h - mPaddingTop - mPaddingBottom;
mSquareHeight = height / 3.0f;
mExploreByTouchHelper.invalidateRoot();
+
+ if (mUseLockPatternDrawable) {
+ mNotSelectedDrawable.setBounds(mPaddingLeft, mPaddingTop, width, height);
+ mSelectedDrawable.setBounds(mPaddingLeft, mPaddingTop, width, height);
+ }
}
private int resolveMeasured(int measureSpec, int desired)
@@ -1095,14 +1111,18 @@ protected void onDraw(Canvas canvas) {
CellState cellState = mCellStates[i][j];
float centerX = getCenterXForColumn(j);
float translationY = cellState.translationY;
- if (isHardwareAccelerated() && cellState.hwAnimating) {
- DisplayListCanvas displayListCanvas = (DisplayListCanvas) canvas;
- displayListCanvas.drawCircle(cellState.hwCenterX, cellState.hwCenterY,
- cellState.hwRadius, cellState.hwPaint);
- } else {
- drawCircle(canvas, (int) centerX, (int) centerY + translationY,
- cellState.radius, drawLookup[i][j], cellState.alpha);
+ if (mUseLockPatternDrawable) {
+ drawCellDrawable(canvas, i, j, cellState.radius, drawLookup[i][j]);
+ } else {
+ if (isHardwareAccelerated() && cellState.hwAnimating) {
+ DisplayListCanvas displayListCanvas = (DisplayListCanvas) canvas;
+ displayListCanvas.drawCircle(cellState.hwCenterX, cellState.hwCenterY,
+ cellState.hwRadius, cellState.hwPaint);
+ } else {
+ drawCircle(canvas, (int) centerX, (int) centerY + translationY,
+ cellState.radius, drawLookup[i][j], cellState.alpha);
+ }
}
}
}
@@ -1193,6 +1213,30 @@ private void drawCircle(Canvas canvas, float centerX, float centerY, float radiu
canvas.drawCircle(centerX, centerY, radius, mPaint);
}
+ /**
+ * @param partOfPattern Whether this circle is part of the pattern.
+ */
+ private void drawCellDrawable(Canvas canvas, int i, int j, float radius,
+ boolean partOfPattern) {
+ Rect dst = new Rect(
+ (int) (mPaddingLeft + j * mSquareWidth),
+ (int) (mPaddingTop + i * mSquareHeight),
+ (int) (mPaddingLeft + (j + 1) * mSquareWidth),
+ (int) (mPaddingTop + (i + 1) * mSquareHeight));
+ float scale = radius / (mDotSize / 2);
+
+ // Only draw on this square with the appropriate scale.
+ canvas.save();
+ canvas.clipRect(dst);
+ canvas.scale(scale, scale, dst.centerX(), dst.centerY());
+ if (!partOfPattern || scale > 1) {
+ mNotSelectedDrawable.draw(canvas);
+ } else {
+ mSelectedDrawable.draw(canvas);
+ }
+ canvas.restore();
+ }
+
@Override
protected Parcelable onSaveInstanceState() {
Parcelable superState = super.onSaveInstanceState();
diff --git a/core/java/com/android/internal/widget/MessagingLinearLayout.java b/core/java/com/android/internal/widget/MessagingLinearLayout.java
index d2a43b755f18..cb123a13ad1d 100644
--- a/core/java/com/android/internal/widget/MessagingLinearLayout.java
+++ b/core/java/com/android/internal/widget/MessagingLinearLayout.java
@@ -126,7 +126,8 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
// Pretend we need the image padding for all views, we don't know which
// one will end up needing to do this (might end up not using all the space,
// but calculating this exactly would be more expensive).
- ((ImageFloatingTextView) child).setNumIndentLines(mIndentLines);
+ ((ImageFloatingTextView) child).setNumIndentLines(
+ mIndentLines == 2 ? 3 : mIndentLines);
}
measureChildWithMargins(child, widthMeasureSpec, 0, heightMeasureSpec, 0);
@@ -147,6 +148,9 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
// Now that we know which views to take, fix up the indents and see what width we get.
int measuredWidth = mPaddingLeft + mPaddingRight;
int imageLines = mIndentLines;
+ // Need to redo the height because it may change due to changing indents.
+ totalHeight = mPaddingTop + mPaddingBottom;
+ first = true;
for (int i = 0; i < count; i++) {
final View child = getChildAt(i);
final LayoutParams lp = (LayoutParams) child.getLayoutParams();
@@ -173,6 +177,9 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
measuredWidth = Math.max(measuredWidth,
child.getMeasuredWidth() + lp.leftMargin + lp.rightMargin
+ mPaddingLeft + mPaddingRight);
+ totalHeight = Math.max(totalHeight, totalHeight + child.getMeasuredHeight() +
+ lp.topMargin + lp.bottomMargin + (first ? 0 : mSpacing));
+ first = false;
}
diff --git a/core/java/com/android/internal/widget/SwipeDismissLayout.java b/core/java/com/android/internal/widget/SwipeDismissLayout.java
index d88f4797cc1c..6d814bf14bc0 100644
--- a/core/java/com/android/internal/widget/SwipeDismissLayout.java
+++ b/core/java/com/android/internal/widget/SwipeDismissLayout.java
@@ -16,9 +16,14 @@
package com.android.internal.widget;
+import android.animation.Animator;
+import android.animation.TimeInterpolator;
+import android.animation.ValueAnimator;
+import android.animation.ValueAnimator.AnimatorUpdateListener;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
+import android.content.ContextWrapper;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.res.TypedArray;
@@ -29,7 +34,7 @@
import android.view.View;
import android.view.ViewConfiguration;
import android.view.ViewGroup;
-import android.view.ViewTreeObserver;
+import android.view.animation.DecelerateInterpolator;
import android.widget.FrameLayout;
/**
@@ -38,8 +43,8 @@
public class SwipeDismissLayout extends FrameLayout {
private static final String TAG = "SwipeDismissLayout";
- private static final float DISMISS_MIN_DRAG_WIDTH_RATIO = .33f;
- private boolean mUseDynamicTranslucency = true;
+ private static final float MAX_DIST_THRESHOLD = .33f;
+ private static final float MIN_DIST_THRESHOLD = .1f;
public interface OnDismissedListener {
void onDismissed(SwipeDismissLayout layout);
@@ -49,16 +54,18 @@ public interface OnSwipeProgressChangedListener {
/**
* Called when the layout has been swiped and the position of the window should change.
*
- * @param progress A number in [0, 1] representing how far to the
- * right the window has been swiped
+ * @param alpha A number in [0, 1] representing what the alpha transparency of the window
+ * should be.
* @param translate A number in [0, w], where w is the width of the
* layout. This is equivalent to progress * layout.getWidth().
*/
- void onSwipeProgressChanged(SwipeDismissLayout layout, float progress, float translate);
+ void onSwipeProgressChanged(SwipeDismissLayout layout, float alpha, float translate);
void onSwipeCancelled(SwipeDismissLayout layout);
}
+ private boolean mIsWindowNativelyTranslucent;
+
// Cached ViewConfiguration and system-wide constant values
private int mSlop;
private int mMinFlingVelocity;
@@ -67,27 +74,18 @@ public interface OnSwipeProgressChangedListener {
private int mActiveTouchId;
private float mDownX;
private float mDownY;
+ private float mLastX;
private boolean mSwiping;
private boolean mDismissed;
private boolean mDiscardIntercept;
private VelocityTracker mVelocityTracker;
- private float mTranslationX;
+ private boolean mBlockGesture = false;
+ private boolean mActivityTranslucencyConverted = false;
+
+ private final DismissAnimator mDismissAnimator = new DismissAnimator();
private OnDismissedListener mDismissedListener;
private OnSwipeProgressChangedListener mProgressListener;
- private ViewTreeObserver.OnEnterAnimationCompleteListener mOnEnterAnimationCompleteListener =
- new ViewTreeObserver.OnEnterAnimationCompleteListener() {
- @Override
- public void onEnterAnimationComplete() {
- // SwipeDismissLayout assumes that the host Activity is translucent
- // and temporarily disables translucency when it is fully visible.
- // As soon as the user starts swiping, we will re-enable
- // translucency.
- if (mUseDynamicTranslucency && getContext() instanceof Activity) {
- ((Activity) getContext()).convertFromTranslucent();
- }
- }
- };
private BroadcastReceiver mScreenOffReceiver = new BroadcastReceiver() {
private Runnable mRunnable = new Runnable() {
@Override
@@ -108,7 +106,8 @@ public void onReceive(Context context, Intent intent) {
};
private IntentFilter mScreenOffFilter = new IntentFilter(Intent.ACTION_SCREEN_OFF);
- private float mLastX;
+
+ private boolean mDismissable = true;
public SwipeDismissLayout(Context context) {
super(context);
@@ -131,8 +130,8 @@ private void init(Context context) {
mMinFlingVelocity = vc.getScaledMinimumFlingVelocity();
TypedArray a = context.getTheme().obtainStyledAttributes(
com.android.internal.R.styleable.Theme);
- mUseDynamicTranslucency = !a.hasValue(
- com.android.internal.R.styleable.Window_windowIsTranslucent);
+ mIsWindowNativelyTranslucent = a.getBoolean(
+ com.android.internal.R.styleable.Window_windowIsTranslucent, false);
a.recycle();
}
@@ -147,27 +146,29 @@ public void setOnSwipeProgressChangedListener(OnSwipeProgressChangedListener lis
@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
- if (getContext() instanceof Activity) {
- getViewTreeObserver().addOnEnterAnimationCompleteListener(
- mOnEnterAnimationCompleteListener);
- }
getContext().registerReceiver(mScreenOffReceiver, mScreenOffFilter);
}
@Override
protected void onDetachedFromWindow() {
getContext().unregisterReceiver(mScreenOffReceiver);
- if (getContext() instanceof Activity) {
- getViewTreeObserver().removeOnEnterAnimationCompleteListener(
- mOnEnterAnimationCompleteListener);
- }
super.onDetachedFromWindow();
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
- // offset because the view is translated during swipe
- ev.offsetLocation(mTranslationX, 0);
+ checkGesture((ev));
+ if (mBlockGesture) {
+ return true;
+ }
+ if (!mDismissable) {
+ return super.onInterceptTouchEvent(ev);
+ }
+
+ // Offset because the view is translated during swipe, match X with raw X. Active touch
+ // coordinates are mostly used by the velocity tracker, so offset it to match the raw
+ // coordinates which is what is primarily used elsewhere.
+ ev.offsetLocation(ev.getRawX() - ev.getX(), 0);
switch (ev.getActionMasked()) {
case MotionEvent.ACTION_DOWN:
@@ -175,7 +176,7 @@ public boolean onInterceptTouchEvent(MotionEvent ev) {
mDownX = ev.getRawX();
mDownY = ev.getRawY();
mActiveTouchId = ev.getPointerId(0);
- mVelocityTracker = VelocityTracker.obtain();
+ mVelocityTracker = VelocityTracker.obtain("int1");
mVelocityTracker.addMovement(ev);
break;
@@ -225,18 +226,29 @@ public boolean onInterceptTouchEvent(MotionEvent ev) {
@Override
public boolean onTouchEvent(MotionEvent ev) {
- if (mVelocityTracker == null) {
+ checkGesture((ev));
+ if (mBlockGesture) {
+ return true;
+ }
+ if (mVelocityTracker == null || !mDismissable) {
return super.onTouchEvent(ev);
}
- // offset because the view is translated during swipe
- ev.offsetLocation(mTranslationX, 0);
+
+ // Offset because the view is translated during swipe, match X with raw X. Active touch
+ // coordinates are mostly used by the velocity tracker, so offset it to match the raw
+ // coordinates which is what is primarily used elsewhere.
+ ev.offsetLocation(ev.getRawX() - ev.getX(), 0);
+
switch (ev.getActionMasked()) {
case MotionEvent.ACTION_UP:
updateDismiss(ev);
if (mDismissed) {
- dismiss();
- } else if (mSwiping) {
- cancel();
+ mDismissAnimator.animateDismissal(ev.getRawX() - mDownX);
+ } else if (mSwiping
+ // Only trigger animation if we had a MOVE event that would shift the
+ // underlying view, otherwise the animation would be janky.
+ && mLastX != Integer.MIN_VALUE) {
+ mDismissAnimator.animateRecovery(ev.getRawX() - mDownX);
}
resetMembers();
break;
@@ -251,9 +263,6 @@ public boolean onTouchEvent(MotionEvent ev) {
mLastX = ev.getRawX();
updateSwiping(ev);
if (mSwiping) {
- if (mUseDynamicTranslucency && getContext() instanceof Activity) {
- ((Activity) getContext()).convertToTranslucent(null, null);
- }
setProgress(ev.getRawX() - mDownX);
break;
}
@@ -262,9 +271,9 @@ public boolean onTouchEvent(MotionEvent ev) {
}
private void setProgress(float deltaX) {
- mTranslationX = deltaX;
if (mProgressListener != null && deltaX >= 0) {
- mProgressListener.onSwipeProgressChanged(this, deltaX / getWidth(), deltaX);
+ mProgressListener.onSwipeProgressChanged(
+ this, progressToAlpha(deltaX / getWidth()), deltaX);
}
}
@@ -275,8 +284,12 @@ private void dismiss() {
}
protected void cancel() {
- if (mUseDynamicTranslucency && getContext() instanceof Activity) {
- ((Activity) getContext()).convertFromTranslucent();
+ if (!mIsWindowNativelyTranslucent) {
+ Activity activity = findActivity();
+ if (activity != null && mActivityTranslucencyConverted) {
+ activity.convertFromTranslucent();
+ mActivityTranslucencyConverted = false;
+ }
}
if (mProgressListener != null) {
mProgressListener.onSwipeCancelled(this);
@@ -291,8 +304,8 @@ private void resetMembers() {
mVelocityTracker.recycle();
}
mVelocityTracker = null;
- mTranslationX = 0;
mDownX = 0;
+ mLastX = Integer.MIN_VALUE;
mDownY = 0;
mSwiping = false;
mDismissed = false;
@@ -300,6 +313,7 @@ private void resetMembers() {
}
private void updateSwiping(MotionEvent ev) {
+ boolean oldSwiping = mSwiping;
if (!mSwiping) {
float deltaX = ev.getRawX() - mDownX;
float deltaY = ev.getRawY() - mDownY;
@@ -309,25 +323,46 @@ private void updateSwiping(MotionEvent ev) {
mSwiping = false;
}
}
+
+ if (mSwiping && !oldSwiping) {
+ // Swiping has started
+ if (!mIsWindowNativelyTranslucent) {
+ Activity activity = findActivity();
+ if (activity != null) {
+ mActivityTranslucencyConverted = activity.convertToTranslucent(null, null);
+ }
+ }
+ }
}
private void updateDismiss(MotionEvent ev) {
float deltaX = ev.getRawX() - mDownX;
- mVelocityTracker.addMovement(ev);
+ // Don't add the motion event as an UP event would clear the velocity tracker
mVelocityTracker.computeCurrentVelocity(1000);
+ float xVelocity = mVelocityTracker.getXVelocity();
+ if (mLastX == Integer.MIN_VALUE) {
+ // If there's no changes to mLastX, we have only one point of data, and therefore no
+ // velocity. Estimate velocity from just the up and down event in that case.
+ xVelocity = deltaX / ((ev.getEventTime() - ev.getDownTime()) / 1000);
+ }
if (!mDismissed) {
-
- if (deltaX > (getWidth() * DISMISS_MIN_DRAG_WIDTH_RATIO) &&
- ev.getRawX() >= mLastX) {
+ // Adjust the distance threshold linearly between the min and max threshold based on the
+ // x-velocity scaled with the the fling threshold speed
+ float distanceThreshold = getWidth() * Math.max(
+ Math.min((MIN_DIST_THRESHOLD - MAX_DIST_THRESHOLD)
+ * xVelocity / mMinFlingVelocity // scale x-velocity with fling velocity
+ + MAX_DIST_THRESHOLD, // offset to start at max threshold
+ MAX_DIST_THRESHOLD), // cap at max threshold
+ MIN_DIST_THRESHOLD); // bottom out at min threshold
+ if ((deltaX > distanceThreshold && ev.getRawX() >= mLastX)
+ || xVelocity >= mMinFlingVelocity) {
mDismissed = true;
}
}
// Check if the user tried to undo this.
if (mDismissed && mSwiping) {
- // Check if the user's finger is actually back
- if (deltaX < (getWidth() * DISMISS_MIN_DRAG_WIDTH_RATIO) ||
- // or user is flinging back left
- mVelocityTracker.getXVelocity() < -mMinFlingVelocity) {
+ // Check if the user's finger is actually flinging back to left
+ if (xVelocity < -mMinFlingVelocity) {
mDismissed = false;
}
}
@@ -363,4 +398,111 @@ protected boolean canScroll(View v, boolean checkV, float dx, float x, float y)
return checkV && v.canScrollHorizontally((int) -dx);
}
+
+ public void setDismissable(boolean dismissable) {
+ if (!dismissable && mDismissable) {
+ cancel();
+ resetMembers();
+ }
+
+ mDismissable = dismissable;
+ }
+
+ private void checkGesture(MotionEvent ev) {
+ if (ev.getActionMasked() == MotionEvent.ACTION_DOWN) {
+ mBlockGesture = mDismissAnimator.isAnimating();
+ }
+ }
+
+ private float progressToAlpha(float progress) {
+ return 1 - progress * progress * progress;
+ }
+
+ private Activity findActivity() {
+ Context context = getContext();
+ while (context instanceof ContextWrapper) {
+ if (context instanceof Activity) {
+ return (Activity) context;
+ }
+ context = ((ContextWrapper) context).getBaseContext();
+ }
+ return null;
+ }
+
+ private class DismissAnimator implements AnimatorUpdateListener, Animator.AnimatorListener {
+ private final TimeInterpolator DISMISS_INTERPOLATOR = new DecelerateInterpolator(1.5f);
+ private final long DISMISS_DURATION = 250;
+
+ private final ValueAnimator mDismissAnimator = new ValueAnimator();
+ private boolean mWasCanceled = false;
+ private boolean mDismissOnComplete = false;
+
+ /* package */ DismissAnimator() {
+ mDismissAnimator.addUpdateListener(this);
+ mDismissAnimator.addListener(this);
+ }
+
+ /* package */ void animateDismissal(float currentTranslation) {
+ animate(
+ currentTranslation / getWidth(),
+ 1,
+ DISMISS_DURATION,
+ DISMISS_INTERPOLATOR,
+ true /* dismiss */);
+ }
+
+ /* package */ void animateRecovery(float currentTranslation) {
+ animate(
+ currentTranslation / getWidth(),
+ 0,
+ DISMISS_DURATION,
+ DISMISS_INTERPOLATOR,
+ false /* don't dismiss */);
+ }
+
+ /* package */ boolean isAnimating() {
+ return mDismissAnimator.isStarted();
+ }
+
+ private void animate(float from, float to, long duration, TimeInterpolator interpolator,
+ boolean dismissOnComplete) {
+ mDismissAnimator.cancel();
+ mDismissOnComplete = dismissOnComplete;
+ mDismissAnimator.setFloatValues(from, to);
+ mDismissAnimator.setDuration(duration);
+ mDismissAnimator.setInterpolator(interpolator);
+ mDismissAnimator.start();
+ }
+
+ @Override
+ public void onAnimationUpdate(ValueAnimator animation) {
+ float value = (Float) animation.getAnimatedValue();
+ setProgress(value * getWidth());
+ }
+
+ @Override
+ public void onAnimationStart(Animator animation) {
+ mWasCanceled = false;
+ }
+
+ @Override
+ public void onAnimationCancel(Animator animation) {
+ mWasCanceled = true;
+ }
+
+ @Override
+ public void onAnimationEnd(Animator animation) {
+ if (!mWasCanceled) {
+ if (mDismissOnComplete) {
+ dismiss();
+ } else {
+ cancel();
+ }
+ }
+ }
+
+ @Override
+ public void onAnimationRepeat(Animator animation) {
+ }
+ }
}
diff --git a/core/java/com/android/internal/widget/WatchHeaderListView.java b/core/java/com/android/internal/widget/WatchHeaderListView.java
index 3d32d86cd49c..4fd19c37bf47 100644
--- a/core/java/com/android/internal/widget/WatchHeaderListView.java
+++ b/core/java/com/android/internal/widget/WatchHeaderListView.java
@@ -103,7 +103,8 @@ protected View findViewByPredicateTraversal(Predicate predicate, View chil
@Override
public int getHeaderViewsCount() {
- return mTopPanel == null ? super.getHeaderViewsCount() : super.getHeaderViewsCount() + 1;
+ return mTopPanel == null ? super.getHeaderViewsCount()
+ : super.getHeaderViewsCount() + (mTopPanel.getVisibility() == GONE ? 0 : 1);
}
private void wrapAdapterIfNecessary() {
@@ -133,7 +134,7 @@ public void setTopPanel(View v) {
}
private int getTopPanelCount() {
- return mTopPanel == null ? 0 : 1;
+ return (mTopPanel == null || mTopPanel.getVisibility() == GONE) ? 0 : 1;
}
@Override
@@ -143,33 +144,19 @@ public int getCount() {
@Override
public boolean areAllItemsEnabled() {
- return mTopPanel == null && super.areAllItemsEnabled();
+ return getTopPanelCount() == 0 && super.areAllItemsEnabled();
}
@Override
public boolean isEnabled(int position) {
- if (mTopPanel != null) {
- if (position == 0) {
- return false;
- } else {
- return super.isEnabled(position - 1);
- }
- }
-
- return super.isEnabled(position);
+ int topPanelCount = getTopPanelCount();
+ return position < topPanelCount ? false : super.isEnabled(position - topPanelCount);
}
@Override
public Object getItem(int position) {
- if (mTopPanel != null) {
- if (position == 0) {
- return null;
- } else {
- return super.getItem(position - 1);
- }
- }
-
- return super.getItem(position);
+ int topPanelCount = getTopPanelCount();
+ return position < topPanelCount ? null : super.getItem(position - topPanelCount);
}
@Override
@@ -187,15 +174,9 @@ public long getItemId(int position) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
- if (mTopPanel != null) {
- if (position == 0) {
- return mTopPanel;
- } else {
- return super.getView(position - 1, convertView, parent);
- }
- }
-
- return super.getView(position, convertView, parent);
+ int topPanelCount = getTopPanelCount();
+ return position < topPanelCount
+ ? mTopPanel : super.getView(position - topPanelCount, convertView, parent);
}
@Override
diff --git a/core/java/com/android/internal/widget/WatchListDecorLayout.java b/core/java/com/android/internal/widget/WatchListDecorLayout.java
index 538cecaec616..5b49611fa4b0 100644
--- a/core/java/com/android/internal/widget/WatchListDecorLayout.java
+++ b/core/java/com/android/internal/widget/WatchListDecorLayout.java
@@ -306,8 +306,9 @@ public void onScrollChanged() {
if (mListView.getChildCount() > 0) {
if (mListView.getLastVisiblePosition() >= mListView.getCount() - 1) {
View lastChild = mListView.getChildAt(mListView.getChildCount() - 1);
- setScrolling(mBottomPanel,
- lastChild.getY() + lastChild.getHeight() - mBottomPanel.getTop());
+ setScrolling(mBottomPanel, Math.max(
+ 0,
+ lastChild.getY() + lastChild.getHeight() - mBottomPanel.getTop()));
} else {
// shift to hide the frame, last child is not the last position
setScrolling(mBottomPanel, mBottomPanel.getHeight());
diff --git a/core/jni/Android.mk b/core/jni/Android.mk
index e665ef38c9a4..206f44e72f23 100644
--- a/core/jni/Android.mk
+++ b/core/jni/Android.mk
@@ -81,6 +81,7 @@ LOCAL_SRC_FILES:= \
android_text_AndroidBidi.cpp \
android_text_StaticLayout.cpp \
android_os_Debug.cpp \
+ android_os_GraphicsEnvironment.cpp \
android_os_MemoryFile.cpp \
android_os_MessageQueue.cpp \
android_os_Parcel.cpp \
diff --git a/core/jni/AndroidRuntime.cpp b/core/jni/AndroidRuntime.cpp
index 1fda0b7a09a7..32c90c0329c1 100644
--- a/core/jni/AndroidRuntime.cpp
+++ b/core/jni/AndroidRuntime.cpp
@@ -157,6 +157,7 @@ extern int register_android_database_SQLiteGlobal(JNIEnv* env);
extern int register_android_database_SQLiteDebug(JNIEnv* env);
extern int register_android_nio_utils(JNIEnv* env);
extern int register_android_os_Debug(JNIEnv* env);
+extern int register_android_os_GraphicsEnvironment(JNIEnv* env);
extern int register_android_os_MessageQueue(JNIEnv* env);
extern int register_android_os_Parcel(JNIEnv* env);
extern int register_android_os_SELinux(JNIEnv* env);
@@ -1350,6 +1351,7 @@ static const RegJNIRec gRegJNI[] = {
REG_JNI(register_android_database_SQLiteDebug),
REG_JNI(register_android_os_Debug),
REG_JNI(register_android_os_FileObserver),
+ REG_JNI(register_android_os_GraphicsEnvironment),
REG_JNI(register_android_os_MessageQueue),
REG_JNI(register_android_os_SELinux),
REG_JNI(register_android_os_Trace),
diff --git a/core/jni/android_net_NetUtils.cpp b/core/jni/android_net_NetUtils.cpp
index 679e88299992..eb105d292a43 100644
--- a/core/jni/android_net_NetUtils.cpp
+++ b/core/jni/android_net_NetUtils.cpp
@@ -47,28 +47,33 @@ int ifc_disable(const char *ifname);
namespace android {
+static const uint32_t kEtherTypeOffset = offsetof(ether_header, ether_type);
+static const uint32_t kEtherHeaderLen = sizeof(ether_header);
+static const uint32_t kIPv4Protocol = kEtherHeaderLen + offsetof(iphdr, protocol);
+static const uint32_t kIPv4FlagsOffset = kEtherHeaderLen + offsetof(iphdr, frag_off);
+static const uint32_t kIPv6NextHeader = kEtherHeaderLen + offsetof(ip6_hdr, ip6_nxt);
+static const uint32_t kIPv6PayloadStart = kEtherHeaderLen + sizeof(ip6_hdr);
+static const uint32_t kICMPv6TypeOffset = kIPv6PayloadStart + offsetof(icmp6_hdr, icmp6_type);
+static const uint32_t kUDPSrcPortIndirectOffset = kEtherHeaderLen + offsetof(udphdr, source);
+static const uint32_t kUDPDstPortIndirectOffset = kEtherHeaderLen + offsetof(udphdr, dest);
static const uint16_t kDhcpClientPort = 68;
static void android_net_utils_attachDhcpFilter(JNIEnv *env, jobject clazz, jobject javaFd)
{
- uint32_t ip_offset = sizeof(ether_header);
- uint32_t proto_offset = ip_offset + offsetof(iphdr, protocol);
- uint32_t flags_offset = ip_offset + offsetof(iphdr, frag_off);
- uint32_t dport_indirect_offset = ip_offset + offsetof(udphdr, dest);
struct sock_filter filter_code[] = {
// Check the protocol is UDP.
- BPF_STMT(BPF_LD | BPF_B | BPF_ABS, proto_offset),
+ BPF_STMT(BPF_LD | BPF_B | BPF_ABS, kIPv4Protocol),
BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, IPPROTO_UDP, 0, 6),
// Check this is not a fragment.
- BPF_STMT(BPF_LD | BPF_H | BPF_ABS, flags_offset),
- BPF_JUMP(BPF_JMP | BPF_JSET | BPF_K, 0x1fff, 4, 0),
+ BPF_STMT(BPF_LD | BPF_H | BPF_ABS, kIPv4FlagsOffset),
+ BPF_JUMP(BPF_JMP | BPF_JSET | BPF_K, IP_OFFMASK, 4, 0),
// Get the IP header length.
- BPF_STMT(BPF_LDX | BPF_B | BPF_MSH, ip_offset),
+ BPF_STMT(BPF_LDX | BPF_B | BPF_MSH, kEtherHeaderLen),
// Check the destination port.
- BPF_STMT(BPF_LD | BPF_H | BPF_IND, dport_indirect_offset),
+ BPF_STMT(BPF_LD | BPF_H | BPF_IND, kUDPDstPortIndirectOffset),
BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, kDhcpClientPort, 0, 1),
// Accept or reject.
@@ -96,17 +101,13 @@ static void android_net_utils_attachRaFilter(JNIEnv *env, jobject clazz, jobject
return;
}
- uint32_t ipv6_offset = sizeof(ether_header);
- uint32_t ipv6_next_header_offset = ipv6_offset + offsetof(ip6_hdr, ip6_nxt);
- uint32_t icmp6_offset = ipv6_offset + sizeof(ip6_hdr);
- uint32_t icmp6_type_offset = icmp6_offset + offsetof(icmp6_hdr, icmp6_type);
struct sock_filter filter_code[] = {
// Check IPv6 Next Header is ICMPv6.
- BPF_STMT(BPF_LD | BPF_B | BPF_ABS, ipv6_next_header_offset),
+ BPF_STMT(BPF_LD | BPF_B | BPF_ABS, kIPv6NextHeader),
BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, IPPROTO_ICMPV6, 0, 3),
// Check ICMPv6 type is Router Advertisement.
- BPF_STMT(BPF_LD | BPF_B | BPF_ABS, icmp6_type_offset),
+ BPF_STMT(BPF_LD | BPF_B | BPF_ABS, kICMPv6TypeOffset),
BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, ND_ROUTER_ADVERT, 0, 1),
// Accept or reject.
@@ -125,6 +126,81 @@ static void android_net_utils_attachRaFilter(JNIEnv *env, jobject clazz, jobject
}
}
+// TODO: Move all this filter code into libnetutils.
+static void android_net_utils_attachControlPacketFilter(
+ JNIEnv *env, jobject clazz, jobject javaFd, jint hardwareAddressType) {
+ if (hardwareAddressType != ARPHRD_ETHER) {
+ jniThrowExceptionFmt(env, "java/net/SocketException",
+ "attachControlPacketFilter only supports ARPHRD_ETHER");
+ return;
+ }
+
+ // Capture all:
+ // - ARPs
+ // - DHCPv4 packets
+ // - Router Advertisements & Solicitations
+ // - Neighbor Advertisements & Solicitations
+ //
+ // tcpdump:
+ // arp or
+ // '(ip and udp port 68)' or
+ // '(icmp6 and ip6[40] >= 133 and ip6[40] <= 136)'
+ struct sock_filter filter_code[] = {
+ // Load the link layer next payload field.
+ BPF_STMT(BPF_LD | BPF_H | BPF_ABS, kEtherTypeOffset),
+
+ // Accept all ARP.
+ // TODO: Figure out how to better filter ARPs on noisy networks.
+ BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, ETHERTYPE_ARP, 16, 0),
+
+ // If IPv4:
+ BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, ETHERTYPE_IP, 0, 9),
+
+ // Check the protocol is UDP.
+ BPF_STMT(BPF_LD | BPF_B | BPF_ABS, kIPv4Protocol),
+ BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, IPPROTO_UDP, 0, 14),
+
+ // Check this is not a fragment.
+ BPF_STMT(BPF_LD | BPF_H | BPF_ABS, kIPv4FlagsOffset),
+ BPF_JUMP(BPF_JMP | BPF_JSET | BPF_K, IP_OFFMASK, 12, 0),
+
+ // Get the IP header length.
+ BPF_STMT(BPF_LDX | BPF_B | BPF_MSH, kEtherHeaderLen),
+
+ // Check the source port.
+ BPF_STMT(BPF_LD | BPF_H | BPF_IND, kUDPSrcPortIndirectOffset),
+ BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, kDhcpClientPort, 8, 0),
+
+ // Check the destination port.
+ BPF_STMT(BPF_LD | BPF_H | BPF_IND, kUDPDstPortIndirectOffset),
+ BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, kDhcpClientPort, 6, 7),
+
+ // IPv6 ...
+ BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, ETHERTYPE_IPV6, 0, 6),
+ // ... check IPv6 Next Header is ICMPv6 (ignore fragments), ...
+ BPF_STMT(BPF_LD | BPF_B | BPF_ABS, kIPv6NextHeader),
+ BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, IPPROTO_ICMPV6, 0, 4),
+ // ... and check the ICMPv6 type is one of RS/RA/NS/NA.
+ BPF_STMT(BPF_LD | BPF_B | BPF_ABS, kICMPv6TypeOffset),
+ BPF_JUMP(BPF_JMP | BPF_JGE | BPF_K, ND_ROUTER_SOLICIT, 0, 2),
+ BPF_JUMP(BPF_JMP | BPF_JGT | BPF_K, ND_NEIGHBOR_ADVERT, 1, 0),
+
+ // Accept or reject.
+ BPF_STMT(BPF_RET | BPF_K, 0xffff),
+ BPF_STMT(BPF_RET | BPF_K, 0)
+ };
+ struct sock_fprog filter = {
+ sizeof(filter_code) / sizeof(filter_code[0]),
+ filter_code,
+ };
+
+ int fd = jniGetFDFromFileDescriptor(env, javaFd);
+ if (setsockopt(fd, SOL_SOCKET, SO_ATTACH_FILTER, &filter, sizeof(filter)) != 0) {
+ jniThrowExceptionFmt(env, "java/net/SocketException",
+ "setsockopt(SO_ATTACH_FILTER): %s", strerror(errno));
+ }
+}
+
static void android_net_utils_setupRaSocket(JNIEnv *env, jobject clazz, jobject javaFd,
jint ifIndex)
{
@@ -266,6 +342,7 @@ static const JNINativeMethod gNetworkUtilMethods[] = {
{ "queryUserAccess", "(II)Z", (void*)android_net_utils_queryUserAccess },
{ "attachDhcpFilter", "(Ljava/io/FileDescriptor;)V", (void*) android_net_utils_attachDhcpFilter },
{ "attachRaFilter", "(Ljava/io/FileDescriptor;I)V", (void*) android_net_utils_attachRaFilter },
+ { "attachControlPacketFilter", "(Ljava/io/FileDescriptor;I)V", (void*) android_net_utils_attachControlPacketFilter },
{ "setupRaSocket", "(Ljava/io/FileDescriptor;I)V", (void*) android_net_utils_setupRaSocket },
};
diff --git a/core/jni/android_os_GraphicsEnvironment.cpp b/core/jni/android_os_GraphicsEnvironment.cpp
new file mode 100644
index 000000000000..905a85adc551
--- /dev/null
+++ b/core/jni/android_os_GraphicsEnvironment.cpp
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2016 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.
+ */
+
+#define LOG_TAG "GraphicsEnvironment"
+
+#include
+#include
+#include "core_jni_helpers.h"
+
+namespace {
+
+void setDriverPath(JNIEnv* env, jobject clazz, jstring path) {
+ ScopedUtfChars pathChars(env, path);
+ android::GraphicsEnv::getInstance().setDriverPath(pathChars.c_str());
+}
+
+const JNINativeMethod g_methods[] = {
+ { "setDriverPath", "(Ljava/lang/String;)V", reinterpret_cast(setDriverPath) },
+};
+
+const char* const kGraphicsEnvironmentName = "android/os/GraphicsEnvironment";
+
+} // anonymous namespace
+
+namespace android {
+
+int register_android_os_GraphicsEnvironment(JNIEnv* env) {
+ return RegisterMethodsOrDie(env, kGraphicsEnvironmentName, g_methods, NELEM(g_methods));
+}
+
+} // namespace android
diff --git a/core/jni/android_util_AssetManager.cpp b/core/jni/android_util_AssetManager.cpp
index b734436d6ab1..417edb22905e 100644
--- a/core/jni/android_util_AssetManager.cpp
+++ b/core/jni/android_util_AssetManager.cpp
@@ -25,6 +25,7 @@
#include
#include
#include
+#include
#include // for AID_SYSTEM
@@ -41,6 +42,7 @@
#include "ScopedUtfChars.h"
#include "utils/Log.h"
#include "utils/misc.h"
+#include "utils/String8.h"
extern "C" int capget(cap_user_header_t hdrp, cap_user_data_t datap);
extern "C" int capset(cap_user_header_t hdrp, const cap_user_data_t datap);
diff --git a/core/jni/android_view_PointerIcon.cpp b/core/jni/android_view_PointerIcon.cpp
index 6b634dfbef3e..4150636cae12 100644
--- a/core/jni/android_view_PointerIcon.cpp
+++ b/core/jni/android_view_PointerIcon.cpp
@@ -78,6 +78,9 @@ status_t android_view_PointerIcon_load(JNIEnv* env, jobject pointerIconObj, jobj
status_t android_view_PointerIcon_getLoadedIcon(JNIEnv* env, jobject pointerIconObj,
PointerIcon* outPointerIcon) {
+ if (!pointerIconObj) {
+ return BAD_VALUE;
+ }
outPointerIcon->style = env->GetIntField(pointerIconObj, gPointerIconClassInfo.mType);
outPointerIcon->hotSpotX = env->GetFloatField(pointerIconObj, gPointerIconClassInfo.mHotSpotX);
outPointerIcon->hotSpotY = env->GetFloatField(pointerIconObj, gPointerIconClassInfo.mHotSpotY);
diff --git a/core/jni/fd_utils-inl.h b/core/jni/fd_utils-inl.h
index e0512882a043..53bad0a44c5a 100644
--- a/core/jni/fd_utils-inl.h
+++ b/core/jni/fd_utils-inl.h
@@ -20,6 +20,7 @@
#include
#include
+#include
#include
#include
#include
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index b375dcd5a6b4..7b1c4b0b14dd 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -105,6 +105,7 @@
+
@@ -464,6 +465,7 @@
+
@@ -728,6 +730,7 @@
android:priority="400" />
-
@@ -3417,10 +3422,13 @@
android:permission="android.permission.BIND_JOB_SERVICE" >
-
+
+
+
+
diff --git a/core/res/assets/images/android-logo-mask.png b/core/res/assets/images/android-logo-mask.png
index ad40645e8943..5512c0ad8a83 100644
Binary files a/core/res/assets/images/android-logo-mask.png and b/core/res/assets/images/android-logo-mask.png differ
diff --git a/core/res/assets/images/android-logo-shine.png b/core/res/assets/images/android-logo-shine.png
index cb65f229eb52..c5d126392eeb 100644
Binary files a/core/res/assets/images/android-logo-shine.png and b/core/res/assets/images/android-logo-shine.png differ
diff --git a/core/res/assets/images/clock64.png b/core/res/assets/images/clock64.png
deleted file mode 100644
index 493a1ea97717..000000000000
Binary files a/core/res/assets/images/clock64.png and /dev/null differ
diff --git a/core/res/assets/images/clock_font.png b/core/res/assets/images/clock_font.png
new file mode 100644
index 000000000000..be927ae2612f
Binary files /dev/null and b/core/res/assets/images/clock_font.png differ
diff --git a/core/res/assets/sounds/bootanim0.raw b/core/res/assets/sounds/bootanim0.raw
deleted file mode 100644
index 46b8c0f9a8c4..000000000000
Binary files a/core/res/assets/sounds/bootanim0.raw and /dev/null differ
diff --git a/core/res/assets/sounds/bootanim1.raw b/core/res/assets/sounds/bootanim1.raw
deleted file mode 100644
index ce69944f69b2..000000000000
Binary files a/core/res/assets/sounds/bootanim1.raw and /dev/null differ
diff --git a/core/res/assets/webkit/hyph_en_US.dic b/core/res/assets/webkit/hyph_en_US.dic
deleted file mode 100644
index d91204b55418..000000000000
--- a/core/res/assets/webkit/hyph_en_US.dic
+++ /dev/null
@@ -1,9784 +0,0 @@
-ISO8859-1
-LEFTHYPHENMIN 2
-RIGHTHYPHENMIN 3
-.a2ch4
-.ad4der
-.a2d
-.ad1d4
-.a2f1t
-.a2f
-.a4l3t
-.am5at
-.4a1ma
-.an5c
-.a2n
-.2ang4
-.an1i5m
-.an1t4
-.an3te
-.anti5s
-.ant2i
-.a4r5s2
-.2a2r
-.ar4t2ie4
-.ar1ti
-.ar4ty
-.as3c
-.as1p
-.a2s1s
-.aster5
-.a2tom5
-.a1to
-.au1d
-.av4i
-.awn4
-.ba4g
-.ba5na
-.ba2n
-.bas4e
-.ber4
-.be5r1a
-.be3s1m
-.4bes4
-.b4e5s2to
-.bri2
-.but4ti
-.bu4t3t2
-.cam4pe
-.1ca
-.ca4m1p
-.can5c
-.ca2n
-.capa5b
-.ca1pa
-.car5ol
-.c2a2r
-.ca4t
-.ce4la
-.2ch4
-.chill5i
-.ch4il2
-.chil1l
-.1ci2
-.cit5r
-.2c1it
-.co3e2
-.1co
-.co4r
-.cor5n1er
-.corn2e
-.de4moi2
-.d4em
-.de1mo
-.de3o
-.de3r1a
-.de3r1i
-.de1s4c
-.des2
-.dic1t2io5
-.3di2c1t
-.do4t
-.1do
-.du4c
-.1du
-.du4m1b5
-.earth5
-.ear2t
-.e2a2r
-.eas3i
-.2e1b4
-.eer4
-.eg2
-.e2l5d
-.el3em
-.enam3
-.e1na
-.en3g
-.e2n3s2
-.eq5ui5t
-.e1q
-.equ2
-.eq2ui2
-.er4ri
-.er1r4
-.es3
-.4eu3
-.eye5
-.fes3
-.for5mer
-.1fo
-.fo2r
-.for1m
-.for2me
-.1ga2
-.ge2
-.gen3t4
-.1gen
-.ge5o2g
-.1geo
-.1g2i5a
-.gi4b
-.go4r
-.1go
-.hand5i
-.ha2n
-.h4and
-.ha4n5k2
-.he2
-.hero5i2
-.h2ero
-.h1es3
-.he4t3
-.hi3b
-.hi3er
-.h2ie4
-.hon5ey
-.ho2n
-.hon3o
-.hov5
-.id4l
-.2id
-.idol3
-.i1do
-.im3m
-.im5p1i2n
-.i4m1p
-.im2pi
-.in1
-.in3ci
-.2ine2
-.4i4n2k2
-.2i2n3s2
-.ir5r4
-.4ir
-.is4i
-.ju3r
-.la4cy
-.la4m
-.lat5er
-.l4ath5
-.le2
-.leg5e
-.len4
-.lep5
-.lev1
-.l2i4g
-.li1g5a
-.li2n
-.l2i3o
-.l1i4t
-.ma1g5a5
-.1ma
-.mal5o
-.ma1n5a
-.ma2n
-.mar5ti
-.m2a2r
-.me2
-.mer3c
-.me5ter
-.me1te
-.m2is1
-.mis4t5i
-.mon3e
-.1mo
-.mo2n
-.mo3ro
-.mo2r
-.mu5ta
-.1mu
-.mu2ta5b
-.ni4c
-.od2
-.od1d5
-.of5te
-.o2ft
-.or5a1to
-.o1ra
-.or3c
-.or1d
-.or3t
-.os3
-.os4tl
-.4oth3
-.out3
-.ou2
-.ped5al
-.2p2ed
-.p2e2d2a
-.pe5te
-.pe2t
-.pe5tit
-.p2i4e4
-.pio5n4
-.3p2i1o
-.pi2t
-.pre3m
-.pr2
-.ra4c
-.ran4t
-.ra2n
-.ratio5n1a
-.ratio2n4
-.ra1t2io
-.ree2
-.re5mit
-.res2
-.re5stat
-.res2t
-.res1ta
-.r2i4g
-.ri2t5u
-.ro4q
-.ros5t
-.row5d
-.ru4d
-.3s4c2i3e4
-.s1ci
-.5se2l2f5
-.sel1l5
-.se2n
-.se5r2ie4
-.ser1i
-.s2h2
-.si2
-.s3ing4
-.2s1in
-.st4
-.sta5b2l2
-.s1ta
-.s2tab
-.s4y2
-.1ta4
-.te4
-.3ten5a2n
-.te1na
-.th2
-.ti2
-.til4
-.ti1m5o5
-.1tim
-.ting4
-.2t1in
-.t4i4n5k2
-.to1n4a
-.1to
-.to2n
-.to4p
-.top5i
-.to2u5s
-.tou2
-.trib5ut
-.tr4ib
-.u1n1a
-.un3ce
-.under5
-.un1de
-.u2n1e
-.u4n5k2
-.un5o
-.un3u4
-.up3
-.ure3
-.us5a2
-.2us
-.ven4de
-.ve5r1a
-.wil5i
-.wi2
-.wil2
-.ye4
-4ab.
-a5bal
-a5ba2n
-abe2
-ab5erd
-ab2i5a
-ab5i2t5ab
-abi2t
-abi1ta
-ab5lat
-ab2l2
-ab5o5l1iz
-abol2i
-4abr
-ab5rog
-ab3ul
-a4c2a2r
-a1ca
-ac5ard
-ac5aro
-a5ceou2
-ac1er
-a5che4t
-a2ch
-ache2
-4a2ci
-a3c2ie4
-a2c1in
-a3c2io
-ac5rob
-act5if2
-a2c1t
-ac3ul
-ac4um
-a2d
-ad4d1in
-ad1d4
-ad5er.
-2adi
-a3d4i3a
-ad3i1ca
-adi4er
-ad2ie4
-a3d2io
-a3dit
-a5di1u
-ad4le
-ad3ow
-a1do
-ad5ra2n
-a1dr
-ad4su
-a2d1s2
-4a1du
-a3du2c
-ad5um
-ae4r
-aer2i4e4
-aer1i
-a2f
-a4f1f4
-a4gab
-a1ga
-aga4n
-ag5el1l
-a1ge4o
-4ag4eu
-ag1i
-4ag4l2
-ag1n
-a2go
-3a3g4o4g
-ag3o3ni
-ago2n2
-a5guer
-a2gue
-ag5ul
-a4gy
-a3ha
-a3he
-a4h4l4
-a3ho
-ai2
-a5i1a
-a3ic.
-ai5ly
-a4i4n
-ain5in
-a2ini
-a2i1n5o
-ait5en
-a2ite
-a1j
-ak1en
-al5ab
-al3a2d
-a4l2a2r
-4aldi4
-a2ld
-2ale
-al3end
-a4lent2i
-a1len1t
-a5le5o
-al1i
-al4ia.
-al2i1a
-al2i4e4
-al5lev
-al1l
-al2le
-4allic
-all2i
-4a2lm
-a5log.
-a4ly.
-a1ly
-4a2lys4
-5a5lys1t
-5alyt
-3alyz
-4a1ma
-a2m5ab
-am3ag
-ama5ra
-am2a2r
-am5asc
-a4ma3tis
-a4m5a1to
-am5er1a
-am3ic
-am5if
-am5i1ly
-am1in
-am2i4no
-a2mo
-a5mo2n
-amor5i
-amo2r
-amp5en
-a4m1p
-a2n
-an3age
-a1na
-3ana1ly
-a3n2a2r
-an3ar3c
-anar4i
-a3nati
-an2at
-4and
-ande4s2
-an1de
-an3dis1
-an1dl
-an4dow
-an1do
-a5nee
-a3nen
-an5e2st.
-a1nes
-a2nest
-a3n4eu
-2ang
-ang5ie4
-an1gl2
-a4n1ic
-a3nies
-an2ie4
-an3i3f
-an4ime
-an1im
-a5nim1i
-a5n2ine
-an1in
-an3i4o
-a3n2ip
-an3is2h
-an3it
-a3ni1u
-an4kli
-a4nk2
-an1k1l
-5anniz
-a4n1n2
-ano4
-an5ot
-an4oth5
-an2sa2
-a2n1s2
-an4s1co
-ans4c
-an4s1n4
-an2sp
-ans3po
-an4st
-an4su2r
-an1su
-anta2l4
-an1t
-an1ta
-an4t2ie4
-ant2i
-4an1to
-an2tr
-an4tw4
-an3u1a
-an3ul
-a5nur
-4ao
-ap2a2r4
-a1pa
-ap5at
-ap5er3o
-a3ph4er
-4aphi
-a4pilla
-apil1l
-ap5ill2a2r
-ap3i2n
-ap3i1ta
-a3pi2tu
-a2p2l2
-apo4c5
-ap5o1la
-apor5i
-a1p4or
-apos3t
-a1pos
-aps5e4s
-a2p1s2
-ap2se
-a3pu
-aque5
-aqu2
-2a2r
-ar3a2c1t
-a5rade
-ara2d
-ar5adis1
-ar2adi
-ar3al
-a5rame1te
-aram3et
-ar2an4g
-ara2n
-ara3p
-ar4at
-a5ra1t2io
-ar5a1t2iv
-a5rau
-ar5av4
-araw4
-arbal4
-ar1b
-ar4cha2n
-ar1c
-ar3cha
-ar2ch
-ar5d2ine
-ard2i
-ard1in4
-ar4dr
-ar5eas
-a3ree
-ar3en1t
-a5r2e2ss
-ar4fi
-ar1f
-ar4f4l2
-ar1i
-ar5i2al
-ar2i3a
-ar3i2a2n
-a3ri5et
-ar2ie4
-ar4im
-ar5in2at
-ar2i1na
-ar3i1o
-ar2iz
-ar2mi
-ar1m
-ar5o5d
-a5roni
-aro2n
-a3roo2
-ar2p
-ar3q
-arre4
-ar1r4
-ar4sa2
-a4rs2
-ar2s2h
-4as.
-a2s4ab
-asa2
-as3an1t
-asa2n
-ashi4
-as2h
-a5sia.
-as2i1a
-a3si1b
-a3sic
-5a5si4t
-ask3i
-ask2
-as4l2
-a4soc
-a1so
-as5ph
-as4s2h
-a2ss
-as3ten
-as1t4r
-asu1r5a
-a1su
-asu2r
-a2ta
-at3ab2l2
-a2tab
-at5ac
-at3alo
-ata2l
-at5ap
-ate5c
-at5e2ch
-at3e1go
-ateg4
-at3en.
-at3er1a
-ater5n
-a5ter1na
-at3est
-at5ev
-4ath
-ath5em
-ath2e
-a5the2n
-at4ho
-ath5om
-4ati.
-a5t2i1a
-a2t5i5b
-at1ic
-at3if2
-ation5a2r
-a1t2io
-atio2n
-atio1n1a
-at3i1tu
-a4tog
-a1to
-a2tom
-at5om2iz
-a4top
-a4tos2
-a1tr
-at5rop
-at4sk2
-a4t1s2
-at4tag
-a4t3t2
-at1ta
-at5te
-at4th
-a2tu
-at5u1a
-a4t5ue
-at3ul
-at3u1ra
-a2ty
-au4b
-augh3
-au3gu
-au4l2
-aun5d
-au3r
-au5si1b
-a2us
-a4ut5en
-au1th
-a2va
-av3ag4
-a5va2n
-av4e4no
-av3er1a
-av5ern
-av5ery
-av1i
-avi4er
-av2ie4
-av3ig
-av5oc
-a1vor
-3away
-aw3i2
-aw4ly
-aws4
-ax4i5c
-ax3i
-ax4id
-ay5al
-aye4
-ays4
-azi4er
-a2z1i
-az2ie4
-az2z5i
-a4z1z2
-5ba.
-bad5ger
-ba2d
-ba4ge
-bal1a
-ban5dag
-ba2n
-b4and
-ban1d2a
-ban4e
-ban3i
-barbi5
-b2a2r
-bar1b
-bar2i4a
-bar1i
-bas4si
-ba2ss
-1bat
-ba4z
-2b1b
-b2be
-b3ber
-bbi4na
-4b1d
-4be.
-beak4
-bea2t3
-4be2d
-b2e3d2a
-be3de
-b4e3di
-be3gi
-be5gu
-1bel
-be1l2i
-be3lo
-4be5m
-be5n2ig
-be5nu
-4bes4
-be3sp
-b2e5st4r
-3bet
-be1t5iz
-be5tr
-be3tw4
-be3w
-be5y1o4
-2bf
-4b3h
-bi2b
-b2i4d
-3b2ie4
-bi5en
-bi4er
-2b3if
-1bil
-bi3l2iz
-bil1i
-bin2a5r4
-bi1na
-b4in4d
-bi5net
-b2ine
-bi3o2gr
-b2io
-bi5ou2
-bi2t
-3b2i3t2io
-bi1ti
-bi3tr
-3bit5u1a
-bi1tu
-b5i4tz
-b1j
-bk4
-b2l2
-bl4ath5
-b4le.
-blen4
-5ble1sp
-bles2
-b3lis
-b4lo
-blun4t
-4b1m
-4b3n
-bne5g
-3bod
-bod3i
-bo4e
-bol3ic
-bol2i
-bom4bi
-bo4m1b
-bo1n4a
-bo2n
-bon5at
-3boo2
-5bor.
-4b1o1ra
-bor5d
-5bore
-5bori
-5bos4
-b5o1ta
-b4oth5
-bo4to
-boun2d3
-bou2
-4bp
-4brit
-br4oth3
-2b5s2
-bsor4
-b1so
-2bt
-b2t4l
-b4to
-b3tr
-buf4fer1
-bu4f1f
-bu4ga
-bu3l2i
-bu1mi4
-bu4n
-bunt4i
-bun1t
-bu3re
-bus5ie4
-b2us
-buss4e
-bu2ss
-5bust
-4bu1ta
-3bu1t2io
-b4u1t2i
-b5u1to
-b1v
-4b5w
-5by.
-bys4
-1ca
-cab3in
-ca1b2l2
-ca2ch4
-ca5den
-ca2d
-4cag4
-2c5ah
-ca3lat
-cal4la
-cal1l
-cal2l5in4
-call2i
-4calo
-c4an5d
-ca2n
-can4e
-ca4n4ic
-can5is
-can3iz
-can4ty
-can1t
-cany4
-ca5per
-car5om
-c2a2r
-cast5er
-cas5t2ig
-cast2i
-4cas4y
-c4a4th
-4ca1t2iv
-cav5al
-ca2va
-c3c
-ccha5
-c2ch
-c3c2i4a
-c1ci
-ccom1pa5
-c1co
-cco4m1p
-cco2n4
-ccou3t
-ccou2
-2ce.
-4ced.
-4ce1den
-3cei2
-5cel.
-3cel1l
-1cen
-3cenc
-2cen4e
-4ceni
-3cen1t
-3cep
-ce5ram
-cer1a
-4ce1s4a2
-3ces1si
-c2e2ss
-ces5si5b
-ces5t
-cet4
-c5e4ta
-cew4
-2ch
-4ch.
-4ch3ab
-5cha4n1ic
-cha2n
-ch5a5nis
-che2
-cheap3
-4ch4ed
-ch5e5lo
-3chemi
-ch5ene
-che2n
-ch3er.
-ch3e4r1s2
-4ch1in
-5chi2ne.
-ch2ine
-ch5i5n2e2ss
-chi1nes
-5ch2ini
-5ch2io
-3chit
-chi2z
-3cho2
-ch4ti
-1ci
-3c2i1a
-ci2a5b
-ci2a5r
-ci5c
-4cier
-c2ie4
-5c4i2f3ic.
-ci1fi
-4c4i5i4
-ci4la
-3cil1i
-2cim
-2cin
-c4i1na
-3cin2at
-cin3em
-c2ine
-c1ing
-c5ing.
-5c2i1no
-cio2n4
-c2io
-4cipe4
-c2ip
-ci3ph
-4cip4ic
-cip3i
-4cis1ta
-4cis1t2i
-2c1it
-ci1t3iz
-ci1ti
-5ciz
-ck1
-ck3i
-1c4l4
-4cl2a2r
-c5la5ra1t2io
-clar4at
-5clare
-cle4m
-4clic
-clim4
-c1ly4
-c5n
-1co
-co5ag
-c4oa
-coe2
-2cog
-co4gr
-coi4
-co3inc
-col5i
-5colo
-col3o4r
-com5er
-co2me
-co1n4a
-co2n
-c4one
-con3g
-con5t
-co3pa
-cop3ic
-co4p2l2
-4cor1b
-coro3n
-cos4e
-cov1
-cove4
-cow5a
-co2z5e
-co5z1i
-c1q
-cras5t
-cr2as
-5crat.
-5crat1ic
-cre3a2t
-5c2r2ed
-4c3re1ta
-cre4v2
-cri2
-cri5f
-c4rin
-cr2is4
-5cri1ti
-cro4p2l2
-crop5o
-cros4e
-cru4d
-4c3s2
-2c1t
-c2ta4b
-c1ta
-ct5ang
-cta2n
-c5tan1t
-c2te
-c3ter
-c4t4ic1u
-ctim3i
-c1tim
-ctu4r
-c1tu
-c4tw4
-cud5
-c4uf
-c4ui2
-cu5i1ty
-5cul2i
-cul4tis4
-cul1ti
-cu4lt
-3c4ul1tu2
-cu2ma
-c3ume
-cu4mi
-3cun
-cu3pi
-cu5py
-cu2r5a4b
-cu1ra
-cu5r2i3a
-1c2us
-cus1s4i
-cu2ss
-3c4ut
-cu4t2ie4
-c4u1t2i
-4c5u1t2iv
-4cutr
-1cy
-c2ze4
-1d2a
-5da.
-2d3a4b
-da2ch4
-4da2f
-2dag
-da2m2
-d2an3g
-da2n
-dard5
-d2a2r
-dark5
-4dary
-3dat
-4da1t2iv
-4da1to
-5dav4
-dav5e
-5day
-d1b
-d5c
-d1d4
-2de.
-dea2f5
-de4b5i2t
-d2e1b
-de4bo2n
-deca2n4
-de1ca
-de4cil
-de1c2i
-de5com
-de1co
-2d1ed
-4dee.
-de5if
-dei2
-del2i4e4
-del2i
-de4l5i5q
-de5lo
-d4em
-5dem.
-3demic
-dem5ic.
-de5mil
-de4mo2n3s2
-de1mo
-demo2n
-demo2r5
-1den
-de4n2a2r
-de1na
-d4e3no
-denti5f2
-den1t
-dent2i
-de3nu
-de1p
-de3pa
-depi4
-de2pu
-d3e1q
-d4er1h4
-5der3m4
-d5ern5iz
-de4r5s2
-des2
-d2es.
-de1s2c
-de2s5o
-des3t2i
-d2e3st4r
-de4su
-de1t
-de2to
-de1v
-de2v3i4l
-de1vi
-4dey
-4d1f
-d4ga
-d3ge4t
-dg1i
-d2gy
-d1h2
-5di.
-1d4i3a
-dia5b
-d4i4cam
-di1ca
-d4ice
-3di2c1t
-3d2id
-5di3en
-d2ie4
-d1if
-di3ge
-d2ig
-di4la1to
-di1la
-d1in
-1di1na
-3di2ne.
-d2ine
-5d2ini
-di5niz
-1d2io
-dio5g
-di4p2l2
-d2ip
-d4ir2
-di1re
-dir1t5i
-dis1
-5disi
-d4is3t
-d2i1ti
-1d2i1v
-d1j
-d5k2
-4d5la
-3dle.
-3dled
-3dles.
-dles2
-4d3l2e2ss
-2d3lo
-4d5lu
-2d1ly
-d1m
-4d1n4
-1do
-3do.
-do5de
-5doe
-2d5of
-d4og
-do4la
-dol2i4
-do5lo4r
-dom5iz
-do3n2at
-do2n
-do1n1a
-doni4
-doo3d
-doo2
-do4p4p
-d4or
-3dos
-4d5out
-dou2
-do4v
-3dox
-d1p
-1dr
-drag5o2n2
-dra2go
-4dr2ai2
-dre4
-dre2a5r
-5dren
-dr4i4b
-dril4
-dro4p
-4drow
-5drupli
-dru3p2l2
-4dry
-2d1s2
-ds4p
-d4sw2
-d4s4y
-d2th
-1du
-d1u1a
-du2c
-d1u3ca
-duc5er
-4duct.
-du2c1t
-4duc4t1s2
-du5el
-du4g
-d3ul4e
-dum4be
-du4m1b
-du4n
-4dup
-du4pe
-d1v
-d1w
-d2y
-5dyn
-dy4s2e
-dys5p
-e1a4b
-e3a2c1t
-ea2d1
-ead5ie4
-e2adi
-ea4ge
-ea5ger
-ea4l
-eal5er
-e2ale
-eal3ou2
-eam3er
-e5and
-ea2n
-ear3a
-e2a2r
-ear4c
-ear5es
-ear4ic
-ear1i
-ear4il
-ear5k
-ear2t
-eart3e
-ea5sp
-e3a2ss
-east3
-ea2t
-eat5en
-eath3i
-e4ath
-e5at3if2
-e4a3tu
-ea2v
-eav3en
-eav5i
-eav5o
-2e1b
-e4bel.
-e1bel
-e4be2l1s2
-e4ben
-e4bi2t
-e3br
-e4ca2d
-e1ca
-ecan5c
-eca2n
-ec1ca5
-ec3c
-e1ce
-ec5es1sa2
-ec2e2ss
-e1c2i
-e4cib
-ec5ificat
-eci1fi
-ecifi1ca
-ec5i3f2ie4
-ec5i1fy
-e2c3im
-e2c1i4t
-e5c2ite
-e4clam
-e1c4l4
-e4cl2us
-e2col
-e1co
-e4com1m
-e4compe
-eco4m1p
-e4con1c
-eco2n
-e2cor
-ec3o1ra
-eco5ro
-e1cr
-e4crem
-ec4ta2n
-e2c1t
-ec1ta
-ec4te
-e1cu
-e4cul
-ec3u1la
-2e2d2a
-4ed3d4
-e4d1er
-ede4s2
-4edi
-e3d4i3a
-ed3ib
-ed3i1ca
-ed3im
-ed1it
-edi5z
-4e1do
-e4dol
-edo2n2
-e4dri
-e1dr
-e4dul
-e1du
-ed5u1l4o
-ee2c
-e4ed3i
-ee2f
-eel3i
-ee4ly
-ee2m
-ee4na
-ee4p1
-ee2s4
-eest4
-ee4ty
-e5ex
-e1f
-e4f3ere
-efer1
-1e4f1f
-e4fic
-e1fi
-5ef2i1c4i
-efil4
-e3f2i2ne
-e2fin
-ef5i5n2ite
-ef2ini
-efin2it
-3efit
-efor5es
-e1fo
-efo2r
-e4fu4se.
-e3fu
-ef2us
-4egal
-e1ga
-eger4
-eg5ib
-eg4ic
-eg5ing
-e5git5
-eg5n
-e4go.
-e1go
-e4gos
-eg1ul
-e5gur
-5e1gy
-e1h4
-eher4
-ei2
-e5ic
-e2i5d
-e2ig2
-ei5g4l2
-e3i4m1b
-e3in3f
-e1ing
-e5inst
-e2i2n1s2
-eir4d
-e4ir
-e2it3e
-e2i3th
-e5i1ty
-e1j
-e4jud
-ej5udi
-eki4n
-ek1i
-ek4la
-ek1l
-e1la
-e4la.
-e4lac
-e3l4an4d
-ela2n
-e4l5a1t2iv
-e4law
-elax1a4
-e3le2a
-el5ebra
-el2e1b
-ele3br
-5elec
-e4led
-el3e1ga
-e5len
-e4l1er
-e1les2
-e2l2f
-el2i
-e3libe4
-e4l5ic.
-el3i1ca
-e3lier
-el2ie4
-el5i3gib
-el2ig
-el4igi
-e5lim
-e4l3ing
-e3l2io
-e2lis
-el5is2h
-e3l2iv3
-4ella
-el1l
-el4lab
-ell4o4
-e5loc
-el5og
-el3op.
-el2s2h
-e2l1s2
-el4ta
-e4lt
-e5lud
-el5ug
-e4mac
-e1ma
-e4mag
-e5ma2n
-em5a1na
-e4m5b
-e1me
-e2mel
-e4met
-em3i1ca
-em2i4e4
-em5igra
-em2ig4
-emi1gr
-em1in2
-em5ine
-em3i3ni
-e4m2is
-em5is2h
-e5m4i2s1s
-em3iz
-5emniz
-e4m1n
-emo4g
-e1mo
-emo3n2i5o
-emo2n
-em3pi
-e4m1p
-e4mul
-e1mu
-em5u1la
-emu3n2
-e3my
-en5a2mo
-e1na
-e4nan1t
-en2a2n
-ench4er
-en2ch
-enche2
-en3dic
-e5nea
-e5nee
-en3em
-en5ero
-en1er
-en5e1si
-e1nes
-e2n5est
-en3etr
-e3ne4w
-en5i4c3s2
-e5n2ie4
-e5nil
-e3n2i4o
-en3is2h
-en3it
-e5ni1u
-5eniz
-4e4n1n2
-4eno
-e4no4g
-e4nos
-en3ov
-en4sw2
-e2n1s2
-ent5age
-en1t
-en1ta
-4enth1es
-enth2e
-en3u1a
-en5uf
-e3ny.
-4e4n3z
-e5of
-eo2g
-e4oi4
-e3ol
-eop3a2r
-eo2pa
-e1or
-eo3re
-eo5rol
-eos4
-e4ot
-eo4to
-e5out
-eou2
-e5ow
-e2pa
-e3p4ai2
-ep5anc
-epa2n
-e5pel
-e3pen1t
-ep5e5t2i1t2io
-epe2t
-epeti1ti
-ephe4
-e4pli
-e1p2l2
-e1po
-e4prec
-epr2
-ep5re1ca
-e4p2r2ed
-ep3re1h4
-e3pro
-e4prob
-ep4s4h
-e2p1s2
-ep5ti5b
-e2p1t
-e4pu2t
-ep5u1ta
-e1q
-equi3l
-equ2
-eq2ui2
-e4q3ui3s
-er1a
-e2ra4b
-4er4and
-era2n
-er3a2r
-4er4ati.
-2er1b
-er4b2l2
-er3ch
-er1c
-er4che2
-2e2re.
-e3re1a4l
-ere5co
-ere3in
-erei2
-er5el.
-er3e1mo
-er5e1na
-er5ence
-4erene
-er3en1t
-ere4q
-er5e2ss
-er3es2t
-eret4
-er1h4
-er1i
-e1r2i3a4
-5erick1
-e3rien
-er2ie4
-eri4er
-er3in4e
-e1r2i1o
-4erit
-er4i1u
-er2i4v
-e4ri1va
-er3m4
-er4nis4
-4er3n2it
-5erniz
-er3no4
-2ero
-er5ob
-e5r2oc
-ero4r
-er1ou2
-e4r1s2
-er3set
-er2se
-ert3er
-4er2tl
-er3tw4
-4eru
-eru4t
-5erwau
-er1w
-e1s4a2
-e4sa2ge.
-e4sages
-es2c
-e2s1ca
-es5ca2n
-e3scr
-es5cu
-e1s2e
-e2sec
-es5e1cr
-e4s5enc
-e4sert.
-e4ser4t1s2
-e4ser1va
-4es2h
-e3sha
-esh5e2n
-e1si
-e2sic
-e2s2id
-es5i1den
-e4s5ig1n4a
-es2ig
-e2s5im
-e2s4i4n
-esis4te
-e1sis
-e5si4u
-e5skin
-esk2
-esk1i
-es4mi
-e2s1m
-e2sol
-e1so
-es3olu
-e2so2n
-es5o1n1a4
-e1sp
-e2s3per
-es5pi1ra
-esp4ir
-es4pre
-espr2
-2e2ss
-es4si4b
-es1si
-esta2n4
-es1ta
-es3t2ig
-est2i
-es5tim
-4es2to
-e3sto2n
-2est4r
-e5stro
-estruc5
-e2su2r
-e1su
-es5ur1r4
-es4w2
-e2ta4b
-e1ta
-e3ten4d
-e3teo
-ethod3
-et1ic
-e5tide
-et2id
-e2t1in4
-et2i4no
-e5t4ir
-e5t2i1t2io
-eti1ti
-et5i1t2iv
-4e2t1n2
-et5o1n1a
-e1to
-eto2n
-e3tra
-e3tre
-et3ric
-et5rif
-et3rog
-et5ros
-et3u1a
-e1tu
-et5ym
-e1ty
-e4t5z
-4eu
-e5un
-e3up
-eu3ro
-e2us4
-eute4
-euti5l
-e4u1t2i
-eu5tr
-eva2p5
-e1va
-e2vas
-ev5ast
-e5vea
-ev3el1l
-eve4l3o
-e5veng
-even4i
-ev1er
-e5v2er1b
-e1vi
-ev3id
-e2vi4l
-e4v1in
-e3v2i4v
-e5voc
-e5vu
-e1wa
-e4wag
-e5wee
-e3wh
-ewil5
-ewi2
-ew3in4g
-e3wit
-1ex3p
-5ey1c
-5eye.
-eys4
-1fa
-fa3b2l2
-f4ab3r
-fa4ce
-4fag
-fa4i4n4
-fai2
-fal2l5e
-fal1l
-4f4a4ma
-fam5is
-5f2a2r
-far5th
-fa3ta
-fa3th2e
-f4ath
-4fa1to
-fau4lt5
-fau4l2
-4f5b
-4fd
-4fe.
-feas4
-fe4ath3
-fea2t
-f2e4b
-4fe1ca
-5fe2c1t
-2fed
-fe3l2i
-fe4mo
-fen2d
-fen1d5e
-fer1
-5fer1r4
-fev4
-4f1f
-f4fes
-f4f2ie4
-f1fi
-f5f2in.
-f2fin
-f2f5is
-f4f2ly5
-ff4l2
-f2fy
-4fh
-1fi
-f2i3a
-2f3ic.
-4f3ical
-fi1ca
-f3ica2n
-4ficate
-f3i1cen
-fi3cer
-f2i1c4i
-5fi3c2i1a
-5fic2ie4
-4fi4c3s2
-fi3cu
-fi5del
-f2id
-fight5
-f2ig
-fil5i
-fil2l5in4
-fil1l
-fill2i
-4fi1ly
-2fin
-5fi1na
-f4in2d5
-f2i2ne
-f1in3g
-f2i4n4n2
-fis4t2i
-f4l2
-f5l2e2ss
-fles2
-flin4
-flo3re
-f2ly5
-4fm
-4fn
-1fo
-5fo2n
-fon4de
-f2ond
-fon4t
-fo2r
-fo5rat
-fo1ra
-for5ay
-fore5t
-for4i
-for1t5a
-fos5
-4f5p
-fra4t
-f5rea
-fres5c
-fri2
-fril4
-frol5
-2f3s
-2ft
-f4to
-f2ty
-3fu
-fu5el
-4fug
-fu4min
-fu1mi
-fu5ne
-fu3ri
-fusi4
-f2us
-fu2s4s
-4fu1ta
-1fy
-1ga
-ga2f4
-5gal.
-3gal1i
-ga3lo
-2gam
-ga5met
-g5a2mo
-gan5is
-ga2n
-ga3niz
-gani5za1
-4gano4
-gar5n4
-g2a2r
-ga2ss4
-g4ath3
-4ga1t2iv
-4gaz
-g3b
-gd4
-2ge.
-2ged
-geez4
-gel4in
-gel2i
-ge5lis
-ge5l1iz
-4ge1ly
-1gen
-ge4n2at
-ge1na
-g5e5niz
-4g4eno
-4geny
-1geo
-ge3om
-g4ery
-5ge1si
-geth5
-4ge1to
-ge4ty
-ge4v
-4g1g2
-g2ge
-g3ger
-gglu5
-ggl2
-g1go4
-gh3in
-gh5out
-ghou2
-gh4to
-5gi.
-1g2i4a
-gi2a5r
-g1ic
-5gi3c2i1a
-g2i1ci
-g4i1co
-gien5
-g2ie4
-5gies.
-gil4
-g3i1men
-3g4in.
-g4in5ge
-5g4i2n1s2
-5g2io
-3g4ir
-gir4l
-g3is1l2
-gi4u
-5g2iv
-3giz
-gl2
-gla4
-gl2ad5i
-gla2d
-5glas
-1gle
-gli4b
-g3l2ig
-3glo
-glo3r
-g1m
-g4my
-g1n4a
-g4na.
-gne4t4t2
-g1ni
-g2n1in
-g4n2i4o
-g1no
-g4no4n
-1go
-3go.
-gob5
-5goe
-3g4o4g
-go3is
-goi2
-go2n2
-4g3o3n1a
-gon5do5
-g2ond
-go3ni
-5goo2
-go5riz
-gor5ou2
-5gos.
-gov1
-g3p
-1gr
-4gra1d2a
-gra2d
-g4r2ai2
-gra2n2
-5gra4ph.
-g5ra3ph4er
-5graph1ic
-gr4aphi
-4g3ra1phy
-4gray
-gre4n
-4gress.
-gr2e2ss
-4grit
-g4ro
-gruf4
-gs2
-g5ste
-gth3
-gu4a
-3guar2d
-gu2a2r
-2gue
-5gui5t
-g2ui2
-3gun
-3g2us
-4gu4t
-g3w
-1gy
-2g5y3n
-gy5ra
-h3ab4l2
-ha2ch4
-hae4m
-hae4t
-h5agu
-ha3la
-hala3m
-ha4m
-han4ci
-ha2n
-han4cy
-5hand.
-h4and
-h2an4g
-hang5er
-han1g5o
-h5a5niz
-ha4n4k2
-han4te
-han1t
-ha2p3l2
-ha2p5t
-ha3ra2n
-h2a2r
-ha5r2as
-har2d
-hard3e
-har4le4
-har1l
-harp5en
-har2p
-har5ter
-ha2s5s
-haun4
-5haz
-haz3a1
-h1b
-1hea2d1
-3he2a2r
-he4ca2n
-he1ca
-h5ecat
-h4ed
-h4e5do5
-he3l4i
-hel4lis
-hel1l
-hell2i
-hel4ly
-h5elo
-he4m4p
-he2n
-he1na4
-hen5at
-he1o5r
-hep5
-h4er1a
-hera3p
-her4ba
-h2er1b
-here5a
-h3ern
-h5er1ou2
-h2ero
-h3ery
-h1es
-he2s5p
-he4t
-he2t4ed
-h4eu4
-h1f
-h1h
-hi5a2n
-h2i1a
-hi4co
-high5
-h2ig
-h4il2
-himer4
-h4i1na
-hion4e
-h2io
-hio2n
-h2i4p
-hir4l
-h4ir
-hi3ro
-hir4p
-hir4r4
-his3el
-h4ise
-h4i2s4s
-hith5er
-h2ith
-hith2e
-h2i2v
-4hk
-4h1l4
-hla2n4
-h2lo
-hlo3ri
-4h1m
-hmet4
-2h1n
-h5odiz
-h5o2d1s2
-ho4g
-ho1ge4
-hol5a2r
-ho1la
-3hol4e
-ho4ma
-ho2me3
-ho1n4a
-ho2n
-ho5ny
-3hood
-hoo2
-hoo2n4
-hor5at
-ho1ra
-ho5r2is
-hort3e
-ho5ru
-hos4e
-ho5sen
-hos1p
-1ho2us
-hou2
-house3
-hov5el
-4h5p
-4hr4
-hree5
-hro5niz
-hro2n
-hro3po
-4h1s2
-h4s2h
-h4t2a2r
-h1ta
-ht1en
-ht5es
-h4ty
-hu4g
-hu4min
-hu1mi
-hun5ke
-hu4nk2
-hun4t
-hus3t4
-h2us
-hu4t
-h1w
-h4war4t
-hw2a2r
-hy3pe
-hy3ph
-hy2s
-2i1a
-i2al
-iam4
-iam5e1te
-i2a2n
-4ianc
-ian3i
-4ian4t
-ia5pe
-ia2ss4
-i4a1t2iv
-ia4tric
-ia1tr
-i4a2tu
-ibe4
-ib3er1a
-ib5ert
-ib5i1a
-ib3in
-ib5it.
-ibi2t
-ib5ite
-i1b2l2
-ib3li
-i5bo
-i1br
-i2b5ri
-i5bu4n
-4icam
-i1ca
-5icap
-4ic2a2r
-i4car.
-i4cara
-icas5
-i4cay
-iccu4
-ic3c
-4iceo
-4i2ch
-2i1ci
-i5c2id
-ic5i1na
-i2cin
-i2c2ip
-ic3i1pa
-i4c1ly4
-i1c4l4
-i2c5oc
-i1co
-4i1cr
-5icra
-i4cry
-ic4te
-i2c1t
-ic1tu2
-ic4t3u1a
-ic3u1la
-ic4um
-ic5uo
-i3cur
-2id
-i4dai2
-i1d2a
-id5anc
-ida2n
-id5d4
-ide3a4l
-ide4s2
-i2di
-id5i2a2n
-i1d4i3a
-idi4a2r
-i5d2ie4
-i1d3io
-idi5ou2
-id1it
-id5i1u
-i3dle
-i4dom
-i1do
-id3ow
-i4dr
-i2du
-id5uo
-2ie4
-ied4e
-5ie5ga
-ie2ld3
-ie1n5a4
-ien4e
-i5e4n1n2
-i3ent2i
-ien1t
-i1er.
-i3es2c
-i1est
-i3et
-4if.
-if5ero
-ifer1
-iff5en
-i4f1f
-if4fr
-4i2f3ic.
-i1fi
-i3f2ie4
-i3f4l2
-4i2ft
-2ig
-iga5b
-i1ga
-ig3er1a
-ight3i
-4igi
-i3gib
-ig3il4
-ig3in
-ig3it
-i4g4l2
-i2go
-ig3or
-ig5ot
-i5gre
-i1gr
-ig2u5i2
-ig1ur
-i3h
-4i5i4
-i3j
-4ik
-i1la
-il3a4b
-i4l4ade
-ila2d
-i2l5am
-ila5ra
-il2a2r
-i3leg
-il1er
-ilev4
-i2l5f
-il1i
-il3i1a
-il2ib
-il3io
-il4ist
-2il1it
-il2iz
-ill5ab
-il1l
-4i2l1n2
-il3o1q
-il4ty
-i4lt
-il5ur
-il3v
-i4mag
-i1ma
-im3age
-ima5ry
-im2a2r
-iment2a5r
-i1men
-i3men1t
-imen1ta
-4imet
-im1i
-im5i1d4a
-im2id
-imi5le
-i5m2ini
-4imit
-im4ni
-i4m1n
-i3mo2n
-i1mo
-i2mu
-im3u1la
-2in.
-i4n3au
-i1na
-4inav
-incel4
-in3cer
-4ind
-in5dling
-2ine
-i3nee
-in4er4a2r
-in1er
-iner1a
-i5n2e2ss
-i1nes
-4in1ga
-4inge
-in5gen
-4ingi
-in5gling
-ingl2
-4in1go
-4in1gu
-2ini
-i5ni.
-i4n4i1a
-in3i4o
-in1is
-i5ni4te.
-in2it
-in2ite
-5i3n2i1t2io
-ini1ti
-in3i1ty
-4i4nk2
-4i4n1l
-2i4n1n2
-2i1no
-i4no4c
-ino4s
-i4not
-2i2n1s2
-in3se
-insu1r5a
-in1su
-insu2r
-2int.
-in1t
-2in4th
-in1u
-i5n2us
-4iny
-2io
-4io.
-io1ge4
-io2gr
-i1ol
-io4m
-ion3at
-io2n
-io1n1a
-ion4ery
-ion1er
-ion3i
-i2o5ph
-ior3i
-i4os
-i4o5th
-i5oti
-io4to
-i4our
-iou2
-2ip
-ipe4
-iphr2as4
-ip4hr4
-ip3i
-ip4ic
-ip4re4
-ipr2
-ip3ul
-i3qua
-iqu2
-iq5ue1f
-iq3u2id
-iq2ui2
-iq3ui3t
-4ir
-i1ra
-i2ra4b
-i4rac
-ird5e
-ire4de
-i2r2ed
-i4re1f
-i4rel4
-i4res
-ir5gi
-irg2
-ir1i
-iri5de
-ir2id
-ir4is
-iri3tu
-5i5r2iz
-ir4min
-ir1m
-iro4g
-5iron.
-iro2n
-ir5ul
-2is.
-is5ag
-isa2
-is3a2r
-isas5
-2is1c
-is3ch2
-4ise
-is3er
-3i4s3f
-is5ha2n
-is2h
-is3ho2n3
-isho4
-ish5op
-is3i1b
-is2i4d
-i5sis
-is5i1t2iv
-isi1ti
-4is4k2
-isla2n4
-is1l2
-4is4m1s2
-i2s1m
-i2so
-iso5mer
-i3som
-iso2me
-is1p
-is2pi
-is4py
-4i2s1s
-is4sal
-is1sa2
-issen4
-is4s1e4s
-is4ta.
-is1ta
-is1te
-is1t2i
-ist4ly
-is2tl
-4istral
-ist4r
-is1tra
-i2su
-is5us
-4i3ta.
-i1ta
-ita4bi
-i2tab
-i4tag
-4ita5m
-i3ta2n
-i3tat
-2ite
-it3er1a
-i5ter1i
-it4es
-2ith
-i1ti
-4i1t2i1a
-4i2tic
-it3i1ca
-5i5tick1
-i2t3ig
-it5il1l
-i2tim
-2i1t2io
-4itis
-i4ti2s4m
-i2t5o5m
-i1to
-4ito2n
-i4tram
-i1tra
-it5ry
-4i4t3t2
-it3u1at
-i1tu
-itu1a
-i5tud2
-it3ul
-4itz.
-i4tz
-i1u
-2iv
-iv3el1l
-iv3en.
-i4v3er.
-i4vers.
-ive4r1s2
-iv5il.
-i2vil
-iv5io
-iv1it
-i5vore
-iv3o3ro
-i4v3ot
-4i5w
-ix4o
-4iy
-4iz2a2r2
-iza1
-i2z1i4
-5izon1t
-i1zo
-izo2n
-5ja
-jac4q
-ja4p
-1je
-je4r5s2
-4jes4t2ie4
-jest2i
-4jes2ty
-jew3
-jo4p
-5judg
-3ka.
-k3ab
-k5ag
-kais4
-kai2
-kal4
-k1b
-k2ed
-1kee
-ke4g
-ke5l2i
-k3en4d
-k1er
-kes4
-k3e2st.
-ke4ty
-k3f
-kh4
-k1i
-5ki.
-5k2ic
-k4il1l
-kilo5
-k4im
-k4in.
-kin4de
-k4ind
-k5i5n2e2ss
-k2ine
-ki1nes
-kin4g
-k2i4p
-kis4
-k5is2h
-kk4
-k1l
-4k3ley
-4k1ly
-k1m
-k5nes
-1k2no
-ko5r
-kos2h4
-k3ou2
-kro5n
-4k1s2
-k4sc
-ks4l2
-k4s4y
-k5t
-k1w
-lab3ic
-l4abo
-l4a2ci4
-l4ade
-la2d
-la3d2y
-lag4n
-la2m3o
-3l4and
-la2n
-lan4dl
-lan5et
-lan4te
-lan1t
-lar4g2
-l2a2r
-lar3i
-las4e
-la5ta2n
-la2ta
-4latel2i4
-4la1t2iv
-4lav
-la4v4a
-2l1b
-lbin4
-4l1c2
-lce4
-l3ci
-2ld
-l2de
-ld4ere
-ld4er1i
-ldi4
-ld5is1
-l3dr
-l4dri
-le2a
-le4bi
-l2e1b
-le2ft5
-le1f
-5leg.
-5le4g1g2
-le4mat
-le1ma
-lem5at1ic
-4len.
-3lenc
-5le2ne.
-1len1t
-le3ph
-le4pr2
-le2ra5b
-ler1a
-ler4e
-3lerg2
-3l4er1i
-l4ero
-les2
-le5s1co
-les2c
-5lesq
-3l2e2ss
-5less.
-l3e1va
-lev4er.
-lev1er
-lev4er1a
-lev4e4r1s2
-3ley
-4leye
-2lf
-l5fr
-4l1g4
-l5ga
-lg2a2r3
-l4ges
-l1go3
-2l3h
-li4ag
-l2i1a
-li2am4
-liar5iz
-li2a2r
-liar1i
-li4as
-li4a1to
-li5bi
-5lic2io
-l2i1ci
-li4cor
-li1co
-4li4c3s2
-4lict.
-li2c1t
-l4icu
-l3i1cy
-l3i1d2a
-l2id
-lid5er
-3li2di
-lif3er1
-l4i4f1f
-li4f4l2
-5ligate
-l2ig
-li1ga
-3ligh
-li4gra
-li1gr
-3l4ik
-4l4i4l
-lim4b2l2
-li4m1b
-lim3i
-li4mo
-l4i4m4p
-l4i1na
-1l4ine
-lin3ea
-l2in3i
-link5er
-l4i4nk2
-li5og
-l2io
-4l4iq
-lis4p
-l1it
-l2it.
-5lit3i1ca
-li1ti
-l4i2tic
-l5i5ti4c3s2
-liv3er
-l2iv
-l1iz
-4lj
-lka3
-l3kal4
-lka4t
-l1l
-l4law
-l2le
-l5le2a
-l3lec
-l3leg
-l3lel
-l3le4n
-l3le4t
-ll2i
-l2lin4
-l5l4i1na
-ll4o
-lloq2ui5
-llo1q
-lloqu2
-l2l5out
-llou2
-l5low
-2lm
-l5met
-lm3ing
-l4mo2d1
-l1mo
-lmo2n4
-2l1n2
-3lo.
-lob5al
-lo4ci
-4lof
-3log1ic
-l5o1go
-3logu
-lom3er
-lo2me
-5long
-lo2n
-lon4i
-l3o3niz
-lood5
-loo2
-5lo4pe.
-lop3i
-l3o4p1m
-lo1ra4
-lo4ra1to
-lo5r2ie4
-lor5ou2
-5los.
-los5et
-5los5o3phiz
-lo2so
-los4op
-los2oph
-5los5o1phy
-los4t
-lo4ta
-loun5d
-lou2
-2lout
-4lov
-2lp
-lpa5b
-l1pa
-l3pha
-l5phi
-lp5ing
-lpi2n
-l3pit
-l4p2l2
-l5pr2
-4l1r
-2l1s2
-l4sc
-l2se
-l4s2ie4
-4lt
-lt5ag
-l1ta
-ltane5
-lta2n
-l1te
-lten4
-lter1a4
-lth3i
-l5ties.
-lt2ie4
-ltis4
-l1tr
-l1tu2
-ltu1r3a
-lu5a
-lu3br
-lu2ch4
-lu3ci
-lu3en
-luf4
-lu5id
-l2ui2
-lu4ma
-5lu1mi
-l5umn.
-lu4m1n
-5lum3n4i1a
-lu3o
-luo3r
-4lup
-lu2ss4
-l2us
-lus3te
-1lut
-l5ven
-l5vet4
-2l1w
-1ly
-4lya
-4ly1b
-ly5me4
-ly3no
-2lys4
-l5y3s2e
-1ma
-2mab
-ma2ca
-ma5ch2ine
-ma2ch
-ma4ch1in
-ma4c4l4
-mag5in
-mag1i
-5mag1n
-2mah
-ma2id5
-mai2
-4ma2ld
-ma3l2ig
-mal1i
-ma5lin
-mal4l2i
-mal1l
-mal4ty
-ma4lt
-5ma3n4i1a
-ma2n
-man5is
-man3iz
-4map
-ma5ri2ne.
-m2a2r
-mar1i
-mar2in4e
-ma5r2iz
-mar4ly
-mar1l
-mar3v
-ma5sce
-mas4e
-mas1t
-5mate
-m4ath3
-ma3tis
-4mati3za1
-ma1tiz
-4m1b
-m1ba4t5
-m5bil
-m4b3ing
-mb2i4v
-4m5c
-4me.
-2med
-4med.
-5me3d4i3a
-m4edi
-me3d2ie4
-m5e5d2y
-me2g
-mel5o2n
-me4l4t
-me2m
-me1m1o3
-1men
-me1n4a
-men5ac
-men4de
-4mene
-men4i
-me2n1s4
-men1su5
-3men1t
-men4te
-me5o2n
-m5er1sa2
-me4r1s2
-2mes
-3mest2i
-me4ta
-met3a2l
-me1te
-me5thi
-m4etr
-5met3ric
-me5tr2ie4
-me3try
-me4v
-4m1f
-2mh
-5mi.
-m2i3a
-mi1d4a
-m2id
-mid4g
-m2ig4
-3mil3i1a
-mil1i
-m5i5l2ie4
-m4il1l
-mi1n4a
-3m4ind
-m5i3nee
-m2ine
-m4ingl2
-min5gli
-m5ing1ly
-min4t
-m4in1u
-miot4
-m2io
-m2is
-mi4s4er.
-m4ise
-mis3er
-mis5l2
-mis4t2i
-m5i4stry
-mist4r
-4m2ith
-m2iz
-4mk
-4m1l
-m1m
-mma5ry
-m1ma
-mm2a2r
-4m1n
-m1n4a
-m4n1in
-mn4o
-1mo
-4mocr
-5moc5ra1tiz
-mo2d1
-mo4go
-mois2
-moi2
-mo4i5se
-4m2ok
-mo5lest
-moles2
-mo3me
-mon5et
-mo2n
-mon5ge
-mo3n4i3a
-mon4i2s1m
-mon1is
-mon4ist
-mo3niz
-monol4
-mo3ny.
-mo2r
-4mo5ra.
-mo1ra
-mos2
-mo5sey
-mo3sp
-m4oth3
-m5ouf
-mou2
-3mo2us
-mo2v
-4m1p
-mpara5
-m1pa
-mp2a2r
-mpa5rab
-mp4a4r5i
-m3pe2t
-mphas4
-m2pi
-mp2i4a
-mp5ies
-mp2ie4
-m4p1i2n
-m5p4ir
-mp5is
-mpo3ri
-m1p4or
-mpos5ite
-m1pos
-m4po2us
-mpou2
-mpov5
-mp4tr
-m2p1t
-m2py
-4m3r
-4m1s2
-m4s2h
-m5si
-4mt
-1mu
-mul2a5r4
-mu1la
-5mu4lt
-mul1ti3
-3mum
-mun2
-4mup
-mu4u
-4mw
-1na
-2n1a2b
-n4abu
-4nac.
-na4ca
-n5a2c1t
-nag5er.
-nak4
-na4l1i
-na5l2i1a
-4na4lt
-na5mit
-n2a2n
-nan1ci4
-nan4it
-na4nk4
-nar3c
-n2a2r
-4nare
-nar3i
-nar4l
-n5ar1m
-n4as
-nas4c
-nas5t2i
-n2at
-na3ta2l
-na2ta
-nat5o5m2iz
-na2tom
-na1to
-n2au
-nau3se
-na2us
-3naut
-nav4e
-4n1b4
-nc2a2r5
-n1ca
-n4ces.
-n3cha
-n2ch
-n5cheo
-nche2
-n5ch4il2
-n3chis
-n2c1in
-n1ci
-n2c4it
-ncou1r5a
-n1co
-ncou2
-n1cr
-n1cu
-n4dai2
-n1d2a
-n5da2n
-n1de
-nd5e2st.
-ndes2
-ndi4b
-n5d2if
-n1dit
-n3diz
-n5du2c
-n1du
-ndu4r
-nd2we
-nd1w
-2ne.
-n3e2a2r
-n2e2b
-neb3u
-ne2c
-5neck1
-2ned
-ne4gat
-ne1ga
-ne4g5a1t2iv
-5nege
-ne4la
-nel5iz
-nel2i
-ne5mi
-ne4mo
-1nen
-4nene
-3neo
-ne4po
-ne2q
-n1er
-ne2ra5b
-ner1a
-n4er3a2r
-n2ere
-n4er5i
-ner4r4
-1nes
-2nes.
-4ne1sp
-2nest
-4nes4w2
-3net1ic
-ne4v
-n5eve
-ne4w
-n3f
-n4gab
-n1ga
-n3gel
-nge4n4e
-n1gen
-n5gere
-n3ger1i
-ng5ha
-n3gib
-ng1in
-n5git
-n4gla4
-ngl2
-ngov4
-n1go
-ng5s2h
-ngs2
-n1gu
-n4gum
-n2gy
-4n1h4
-nha4
-nhab3
-nhe4
-3n4i1a
-ni3a2n
-ni4ap
-ni3ba
-ni4b2l2
-n2i4d
-ni5di
-ni4er
-n2ie4
-ni2fi
-ni5ficat
-nifi1ca
-n5i1gr
-n2ig
-n4ik4
-n1im
-ni3m2iz
-nim1i
-n1in
-5ni2ne.
-n2ine
-nin4g
-n2i4o
-5n2is.
-nis4ta
-n2it
-n4ith
-3n2i1t2io
-ni1ti
-n3itor
-ni1to
-ni3tr
-n1j
-4nk2
-n5k2ero
-nk1er
-n3ket
-nk3in
-nk1i
-n1k1l
-4n1l
-n5m
-nme4
-nmet4
-4n1n2
-nne4
-nni3al
-n3n4i1a
-nn2i4v
-nob4l2
-no3ble
-n5o1c4l4
-4n3o2d
-3noe
-4nog
-no1ge4
-nois5i
-noi2
-no5l4i
-5nol1o1gis
-3nomic
-n5o5m2iz
-no4mo
-no3my
-no4n
-non4ag
-no1n1a
-non5i
-n5oniz
-4nop
-5nop5o5l2i
-no2r5ab
-no1ra
-no4rary
-nor2a2r
-4nos2c
-nos4e
-nos5t
-no5ta
-1nou2
-3noun
-nov3el3
-nowl3
-n1p4
-npi4
-npre4c
-npr2
-n1q
-n1r
-nru4
-2n1s2
-n2s5ab
-nsa2
-nsati4
-ns4c
-n2se
-n4s3e4s
-ns2id1
-ns2ig4
-n2s1l2
-n2s3m
-n4soc
-n1so
-ns4pe
-n5spi
-nsta5b2l2
-ns1ta
-ns2tab
-n1t
-n2ta4b
-n1ta
-nte4r3s2
-nt2i
-n5ti2b
-nti4er
-nt2ie4
-nti2f2
-n3t2ine
-n2t1in
-n4t3ing
-nt2i4p
-ntrol5l2i
-ntrol1l
-n4t4s2
-ntu3me
-n1tu
-n3tum
-nu1a
-nu4d
-nu5en
-nuf4fe
-nu4f1f
-n3ui4n
-n2ui2
-3nu3it
-n4um
-nu1me
-n5u1mi
-3nu4n
-n3uo
-nu3tr
-n1v2
-n1w4
-nym4
-nyp4
-4nz
-n3za1
-4oa
-oa2d3
-o5a5les2
-o2ale
-oard3
-o2a2r
-oas4e
-oast5e
-oat5i
-ob3a3b
-o5b2a2r
-o1be4l
-o1bi
-o2bin
-ob5ing
-o3br
-ob3ul
-o1ce
-o2ch4
-o3che4t
-oche2
-ocif3
-o1ci
-o4cil
-o4clam
-o1c4l4
-o4cod
-o1co
-oc3rac
-oc5ra1tiz
-ocre3
-5ocrit
-ocri2
-octo2r5a
-o2c1t
-oc1to
-oc3u1la
-o5cure
-od5d1ed
-od1d4
-od3ic
-o1d2i3o
-o2do4
-od4or3
-o4d5uct.
-o1du
-odu2c
-odu2c1t
-o4d5uc4t1s2
-o4el
-o5eng
-o3er
-oe4ta
-o3ev
-o2fi
-of5ite
-of4i4t4t2
-o2g5a5r
-o1ga
-o4g5a1t2iv
-o4ga1to
-o1ge
-o5gene
-o1gen
-o5geo
-o4ger
-o3g2ie4
-1o1gis
-og3it
-o4gl2
-o5g2ly
-3ogniz
-og1ni
-o4g4ro
-o1gr
-og2u5i2
-1o1gy
-2o2g5y3n
-o1h2
-ohab5
-oi2
-oic3es
-oi3der
-o2id
-oi4f1f4
-o2ig4
-oi5let
-o3ing
-oint5er
-oin1t
-o5i2s1m
-oi5so2n
-oi2so
-oist5en
-ois1te
-oi3ter
-o2ite
-o5j
-2ok
-o3ken
-ok5ie4
-ok1i
-o1la
-o4la2n
-ola2ss4
-o2l2d
-ol2d1e
-ol3er
-o3les2c
-oles2
-o3let
-ol4fi
-o2lf
-ol2i
-o3l2i1a
-o3lice
-ol5id.
-ol2id
-o3li4f
-o5l4i4l
-ol3ing
-o5l2io
-o5l2is.
-ol3is2h
-o5l2ite
-ol1it
-o5l2i1t2io
-oli1ti
-o5l2iv
-oll2i4e4
-ol1l
-oll2i
-ol5o3giz
-olo4r
-ol5p2l2
-o2lp
-o4l2t
-ol3ub
-ol3ume
-ol3un
-o5l2us
-ol2v
-o2ly
-o2m5ah
-o1ma
-oma5l
-om5a1tiz
-om2be
-o4m1b
-om4b2l2
-o2me
-om3e1n4a
-o1men
-om5er2se
-ome4r1s2
-o4met
-om5e3try
-om4etr
-o3m2i3a
-om3ic.
-om3i1ca
-o5m2id
-om1in
-o5m2ini
-5ommend
-om1m
-om1men
-omo4ge
-o1mo
-o4mo2n
-om3pi
-o4m1p
-ompro5
-ompr2
-o2n
-o1n1a
-on4ac
-o3n2a2n
-on1c
-3oncil
-on1ci
-2ond
-on5do
-o3nen
-o2n5est
-o1nes
-on4gu
-on1ic
-o3n2i4o
-on1is
-o5ni1u
-on3key
-o4nk2
-on4odi
-o4n3o2d
-on3o3my
-o2n3s2
-on5spi4
-onspi1r5a
-onsp4ir
-on1su4
-onten4
-on1t
-on3t4i
-onti2f5
-on5um
-on1va5
-on1v2
-oo2
-ood5e
-ood5i
-o2o4k
-oop3i
-o3ord
-oost5
-o2pa
-o2p2e5d
-op1er
-3oper1a
-4op4erag
-2oph
-o5pha2n
-o5ph4er
-op3ing
-opi2n
-o3pit
-o5po2n
-o4posi
-o1pos
-o1pr2
-op1u
-opy5
-o1q
-o1ra
-o5ra.
-o4r3ag
-or5al1iz
-oral1i
-or5an4ge
-ora2n
-or2ang
-ore5a
-o5re1a4l
-or3ei2
-or4e5s2h
-or5e2st.
-ores2t
-orew4
-or4gu
-org2
-4o5r2i3a
-or3i1ca
-o5ril
-or1in
-o1r2i1o
-or3i1ty
-o3ri1u
-or2mi
-or1m
-orn2e
-o5rof
-or3oug
-orou2
-or5pe
-or1p
-3orrh4
-or1r4
-or4se
-o4rs2
-ors5en
-orst4
-or3thi
-or3thy
-or4ty
-o5rum
-o1ry
-os3al
-osa2
-os2c
-os4ce
-o3scop
-os1co
-4oscopi
-o5scr
-os4i4e4
-os5i1t2iv
-osi1ti
-os3i1to
-os3i1ty
-o5si4u
-os4l2
-o2so
-o2s4pa
-os4po
-os2ta
-o5stati
-os5til
-ost2i
-os5tit
-o4ta2n
-o1ta
-otele4g
-ot3er.
-ot5e4r1s2
-o4tes
-4oth
-oth5e1si
-oth2e
-oth1es
-oth3i4
-ot3ic.
-ot5i1ca
-o3tice
-o3tif2
-o3tis
-oto5s2
-o1to
-ou2
-ou3b2l2
-ouch5i
-ou2ch
-ou5et
-ou4l
-ounc5er
-oun2d
-ou5v2
-ov4en
-over4ne
-ove4r3s2
-ov4ert
-o3vis
-o4vi1ti4
-o5v4ol
-ow3der
-ow3el
-ow5est3
-ow1i2
-own5i
-o4wo2
-oy1a
-1pa
-pa4ca
-pa4ce
-pa2c4t
-p4a2d
-5paga4n
-pa1ga
-p3agat
-p4ai2
-pa4i4n4
-p4al
-pa1n4a
-pa2n
-pan3el
-pan4ty
-pan1t
-pa3ny
-pa1p
-pa4pu
-para5b2l2
-p2a2r
-pa2rab
-par5age
-par5d2i
-3pare
-par5el
-p4a4r1i
-par4is
-pa2te
-pa5ter
-5pathic
-p4ath
-pa5thy
-pa4tric
-pa1tr
-pav4
-3pay
-4p1b
-pd4
-4pe.
-3pe4a
-pear4l
-pe2a2r
-pe2c
-2p2ed
-3pede
-3p4edi
-pe3d4i3a4
-ped4ic
-p4ee
-pee4d
-pek4
-pe4la
-pel2i4e4
-pel2i
-pe4n2a2n
-pe1na
-p4enc
-pen4th
-pen1t
-pe5o2n
-p4era.
-per1a
-pera5b2l2
-pe2ra4b
-p4erag
-p4er1i
-peri5st
-per2is
-per4mal
-per3m4
-per1ma
-per2me5
-p4ern
-p2er3o
-per3ti
-p4e5ru
-per1v
-pe2t
-pe5ten
-pe5tiz
-4pf
-4pg
-4ph.
-phar5i
-ph2a2r
-ph4e3no
-phe2n
-ph4er
-ph4es.
-ph1es
-ph1ic
-5ph2ie4
-ph5ing
-5phis1t2i
-3phiz
-p4h2l4
-3phob
-3phone
-pho2n
-5phoni
-pho4r
-4p4h1s2
-ph3t
-5phu
-1phy
-p2i3a
-pi2a2n4
-pi4c2ie4
-p2i1ci
-pi4cy
-p4id
-p5i1d2a
-pi3de
-5pi2di
-3piec
-p2ie4
-pi3en
-pi4grap
-p2ig
-pi1gr
-pi3lo
-pi2n
-p4in.
-p4ind4
-p4i1no
-3p2i1o
-pio2n4
-p3ith
-pi5tha
-pi2tu
-2p3k2
-1p2l2
-3pla2n
-plas5t
-pl2i3a
-pli5er
-pl2ie4
-4pl2ig
-pli4n
-ploi4
-plu4m
-plu4m4b
-4p1m
-2p3n
-po4c
-5pod.
-po5em
-po3et5
-5po4g
-poin2
-poi2
-5poin1t
-poly5t
-po2ly
-po4ni
-po2n
-po4p
-1p4or
-po4ry
-1pos
-po2s1s
-p4ot
-po4ta
-5poun
-pou2
-4p1p
-ppa5ra
-p1pa
-pp2a2r
-p2pe
-p4p2ed
-p5pel
-p3pen
-p3per
-p3pe2t
-ppo5s2ite
-p1pos
-pr2
-pray4e4
-5pre1c2i
-pre5co
-pre3e2m
-pre4f5ac
-pre1f
-pre1fa
-pre4la
-pr1e3r4
-p3re1s2e
-3pr2e2ss
-pre5ten
-pre3v2
-5pr2i4e4
-prin4t3
-pr2i4s
-pri2s3o
-p3ro1ca
-pr2oc
-prof5it
-pro2fi
-pro3l
-pros3e
-pro1t
-2p1s2
-p2se
-ps4h
-p4si1b
-2p1t
-p2t5a4b
-p1ta
-p2te
-p2th
-p1ti3m
-ptu4r
-p1tu
-p4tw4
-pub3
-pue4
-puf4
-pu4l3c2
-pu4m
-pu2n
-pur4r4
-5p2us
-pu2t
-5pute
-put3er
-pu3tr
-put4t1ed
-pu4t3t2
-put4t1in
-p3w
-qu2
-qua5v4
-2que.
-3quer
-3quet
-2rab
-ra3bi
-rach4e2
-ra2ch
-r5a1c4l4
-raf5fi
-ra2f
-ra4f1f4
-ra2f4t
-r2ai2
-ra4lo
-ram3et
-r2ami
-ra3ne5o
-ra2n
-ran4ge
-r2ang
-r4ani
-ra5no4
-rap3er
-3ra1phy
-rar5c
-r2a2r
-rare4
-rar5e1f
-4raril
-rar1i
-r2as
-ratio2n4
-ra1t2io
-rau4t
-ra5vai2
-ra2va
-rav3el
-ra5z2ie4
-ra2z1i
-r1b
-r4bab
-r4bag
-rbi2
-r2b3i4f
-r2bin
-r5b2ine
-rb5ing.
-rb4o
-r1c
-r2ce
-r1cen4
-r3cha
-r2ch
-rch4er
-rche2
-r4ci4b
-r1ci
-r2c4it
-rcum3
-r4dal
-r1d2a
-rd2i
-r1d4i4a
-rdi4er
-rd2ie4
-rd1in4
-rd3ing
-2re.
-re1a4l
-re3a2n
-re5ar1r4
-re2a2r
-5rea2v
-re4aw
-r5ebrat
-r2e1b
-re3br
-rec5ol1l
-re2col
-re1co
-re4c5ompe
-reco4m1p
-re4cre
-re1cr
-2r2ed
-re1de
-re3dis1
-r4edi
-red5it
-re4fac
-re1f
-re1fa
-re2fe
-re5fer.
-refer1
-re3fi
-re4fy
-reg3is
-re5it
-rei2
-re1l2i
-re5lu
-r4en4ta
-ren1t
-ren4te
-re1o
-re5pi2n
-re4posi
-re1po
-re1pos
-re1pu
-r1er4
-r4er1i
-r2ero4
-r4e5ru
-r4es.
-re4spi
-re1sp
-res4s5i4b
-r2e2ss
-res1si
-res2t
-re5s2ta2l
-res1ta
-r2e3st4r
-re4ter
-re4ti4z
-re3tri
-r4eu2
-re5u1t2i
-rev2
-re4val
-re1va
-rev3el
-r5ev5er.
-rev1er
-re5ve4r1s2
-re5vert
-re5vi4l
-re1vi
-rev5olu
-re4wh
-r1f
-r3fu4
-r4fy
-rg2
-rg3er
-r3get
-r3g1ic
-rgi4n
-rg3ing
-r5gis
-r5git
-r1gl2
-rgo4n2
-r1go
-r3gu
-rh4
-4rh.
-4rhal
-r2i3a
-ria4b
-ri4ag
-r4ib
-rib3a
-ric5as5
-ri1ca
-r4ice
-4r2i1ci
-5ri5c2id
-ri4c2ie4
-r4i1co
-rid5er
-r2id
-ri3enc
-r2ie4
-ri3en1t
-ri1er
-ri5et
-rig5a2n
-r2ig
-ri1ga
-5r4igi
-ril3iz
-ril1i
-5rima2n
-ri1ma
-rim5i
-3ri1mo
-rim4pe
-ri4m1p
-r2i1na
-5rina.
-r4in4d
-r2in4e
-rin4g
-r2i1o
-5riph
-r2ip
-riph5e
-ri2p2l2
-rip5lic
-r4iq
-r2is
-r4is.
-r2is4c
-r3is2h
-ris4p
-ri3ta3b
-ri1ta
-r5ited.
-r2ite
-ri2t1ed
-rit5er.
-rit5e4r1s2
-r4i2t3ic
-ri1ti
-ri2tu
-rit5ur
-riv5el
-r2iv
-riv3et
-riv3i
-r3j
-r3ket
-rk4le
-rk1l
-rk4lin
-r1l
-rle4
-r2led
-r4l2ig
-r4lis
-rl5is2h
-r3lo4
-r1m
-rma5c
-r1ma
-r2me
-r3men
-rm5e4r1s2
-rm3ing
-r4ming.
-r4m2io
-r3mit
-r4my
-r4n2a2r
-r1na
-r3nel
-r4n1er
-r5net
-r3ney
-r5nic
-r1nis4
-r3n2it
-r3n2iv
-rno4
-r4nou2
-r3nu
-rob3l2
-r2oc
-ro3cr
-ro4e
-ro1fe
-ro5fil
-ro2fi
-r2ok2
-ro5k1er
-5role.
-rom5e1te
-ro2me
-ro4met
-rom4i
-ro4m4p
-ron4al
-ro2n
-ro1n1a
-ron4e
-ro5n4is
-ron4ta
-ron1t
-1room
-roo2
-5root
-ro3pel
-rop3ic
-ror3i
-ro5ro
-ro2s5per
-ro2s4s
-ro4th2e
-r4oth
-ro4ty
-ro4va
-rov5el
-rox5
-r1p
-r4pe4a
-r5pen1t
-rp5er.
-r3pe2t
-rp4h4
-rp3ing
-rpi2n
-r3po
-r1r4
-rre4c
-rre4f
-r4re1o
-rre4s2t
-rr2i4o
-rr2i4v
-rro2n4
-rros4
-rrys4
-4rs2
-r1sa2
-rsa5ti
-rs4c
-r2se
-r3sec
-rse4cr
-r4s5er.
-rs3e4s
-r5se5v2
-r1s2h
-r5sha
-r1si
-r4si4b
-rso2n3
-r1so
-r1sp
-r5sw2
-rta2ch4
-r1ta
-r4tag
-r3t2e1b
-r3ten4d
-r1te5o
-r1ti
-r2t5i2b
-rt2i4d
-r4tier
-rt2ie4
-r3t2ig
-rtil3i
-rtil4l
-r4ti1ly
-r4tist
-r4t2iv
-r3tri
-rtr2oph4
-rt4s2h4
-r4t1s2
-ru3a
-ru3e4l
-ru3en
-ru4gl2
-ru3i4n
-r2ui2
-rum3p2l2
-ru4m2p
-ru2n
-ru4nk5
-run4ty
-run1t
-r5usc2
-r2us
-ru2t1i5n
-r4u1t2i
-rv4e
-rvel4i
-r3ven
-rv5er.
-r5vest
-rv4e2s
-r3vey
-r3vic
-r3v2i4v
-r3vo
-r1w
-ry4c
-5rynge
-ryn5g
-ry3t
-sa2
-2s1ab
-5sack1
-sac3ri2
-s3a2c1t
-5sai2
-sa4l2a2r4
-s4a2l4m
-sa5lo
-sa4l4t
-3sanc
-sa2n
-san4de
-s4and
-s1ap
-sa5ta
-5sa3t2io
-sa2t3u
-sau4
-sa5vor
-5saw
-4s5b
-scan4t5
-s1ca
-sca2n
-sca4p
-scav5
-s4ced
-4s3cei2
-s4ces
-s2ch2
-s4cho2
-3s4c2ie4
-s1ci
-5sc4in4d
-s2cin
-scle5
-s1c4l4
-s4cli
-scof4
-s1co
-4scopy5
-scou1r5a
-scou2
-s1cu
-4s5d
-4se.
-se4a
-seas4
-sea5w
-se2c3o
-3se2c1t
-4s4ed
-se4d4e
-s5edl
-se2g
-se1g3r
-5sei2
-se1le
-5se2l2f
-5selv
-4se1me
-se4mol
-se1mo
-sen5at
-se1na
-4senc
-sen4d
-s5e2ned
-sen5g
-s5en1in
-4sen4t1d
-sen1t
-4sen2tl
-se2p3a3
-4s1er.
-s4er1l
-s2er4o
-4ser3vo
-s1e4s
-s4e5s2h
-ses5t
-5se5um
-s4eu
-5sev
-sev3en
-sew4i2
-5sex
-4s3f
-2s3g
-s2h
-2sh.
-sh1er
-5shev
-sh1in
-sh3io
-3sh2i4p
-sh2i2v5
-sho4
-sh5o2l2d
-sho2n3
-shor4
-short5
-4sh1w
-si1b
-s5ic3c
-3si2de.
-s2id
-5side4s2
-5si2di
-si5diz
-4sig1n4a
-s2ig
-sil4e
-4si1ly
-2s1in
-s2i1na
-5si2ne.
-s2ine
-s3ing
-1s2io
-5sio2n
-sio1n5a
-s4i2r
-si1r5a
-1sis
-3s2i1t2io
-si1ti
-5si1u
-1s2iv
-5siz
-sk2
-4ske
-s3ket
-sk5ine
-sk1i
-sk5in4g
-s1l2
-s3lat
-s2le
-sl2ith5
-sl1it
-2s1m
-s3ma
-smal1l3
-sma2n3
-smel4
-s5men
-5s4m2ith
-smo2l5d4
-s1mo
-s1n4
-1so
-so4ce
-so2ft3
-so4lab
-so1la
-so2l3d2
-so3lic
-sol2i
-5sol2v
-3som
-3s4on.
-so2n
-so1n1a4
-son4g
-s4op
-5soph1ic
-s2oph
-s5o3phiz
-s5o1phy
-sor5c
-sor5d
-4sov
-so5vi
-2s1pa
-5sp4ai2
-spa4n
-spen4d
-2s5peo
-2sper
-s2phe
-3sph4er
-spho5
-spil4
-sp5ing
-spi2n
-4s3p2i1o
-s4p1ly
-s1p2l2
-s4po2n
-s1p4or4
-4sp4ot
-squal4l
-squ2
-s1r
-2ss
-s1sa2
-ssas3
-s2s5c
-s3sel
-s5sen5g
-s4ses.
-ss1e4s
-s5set
-s1si
-s4s2ie4
-ssi4er
-s4s5i1ly
-s4s1l2
-ss4li
-s4s1n4
-sspen4d4
-ss2t
-ssu1r5a
-s1su
-ssu2r
-ss5w2
-2st.
-s2tag
-s1ta
-s2ta2l
-stam4i
-5st4and
-sta2n
-s4ta4p
-5stat.
-s4t1ed
-stern5i
-s5t2ero
-ste2w
-ste1w5a
-s3th2e
-st2i
-s4ti.
-s5t2i1a
-s1tic
-5s4tick1
-s4t2ie4
-s3tif2
-st3ing
-s2t1in
-5st4ir
-s1tle
-s2tl
-5stock1
-s1to
-sto2m3a
-5stone
-sto2n
-s4top
-3store
-st4r
-s4tra2d
-s1tra
-5stra2tu
-s4tray
-s4tr2id
-4stry
-4st3w4
-s2ty
-1su
-su1al
-su4b3
-su2g3
-su5is
-s2ui2
-suit3
-s4ul
-su2m
-su1m3i
-su2n
-su2r
-4sv
-sw2
-4s1wo2
-s4y
-4sy1c
-3syl
-syn5o
-sy5rin
-1ta
-3ta.
-2tab
-ta5bles2
-tab2l2
-5tab5o5l1iz
-tabol2i
-4t4a2ci
-ta5do
-ta2d
-4ta2f4
-tai5lo
-tai2
-ta2l
-ta5la
-tal5en
-t2ale
-tal3i
-4talk
-tal4lis
-tal1l
-tall2i
-ta5log
-ta5mo
-tan4de
-ta2n
-t4and
-1tan1ta3
-tan1t
-ta5per
-ta5p2l2
-tar4a
-t2a2r
-4tar1c
-4tare
-ta3r2iz
-tar1i
-tas4e
-ta5s4y
-4tat1ic
-ta4tur
-ta2tu
-taun4
-tav4
-2taw
-tax4is
-tax3i
-2t1b
-4tc
-t4ch
-tch5e4t
-tche2
-4t1d
-4te.
-te2ad4i
-tea2d1
-4tea2t
-te1ce4
-5te2c1t
-2t1ed
-t4e5di
-1tee
-teg4
-te5ger4
-te5gi
-3tel.
-tel2i4
-5te2l1s2
-te2ma2
-tem3at
-3ten2a2n
-te1na
-3tenc
-3tend
-4te1nes
-1ten1t
-ten4tag
-ten1ta
-1teo
-te4p
-te5pe
-ter3c
-5ter3d
-1ter1i
-ter5ies
-ter2ie4
-ter3is
-teri5za1
-5t4er3n2it
-ter5v
-4tes.
-4t2e2ss
-t3ess.
-teth5e
-3t4eu
-3tex
-4tey
-2t1f
-4t1g
-2th.
-tha2n4
-th2e
-4thea
-th3eas
-the5a2t
-the3is
-thei2
-3the4t
-th5ic.
-th5i1ca
-4th4il2
-5th4i4nk2
-4t4h1l4
-th5ode
-5thod3ic
-4thoo2
-thor5it
-tho5riz
-2t4h1s2
-1t2i1a
-ti4ab
-ti4a1to
-2ti2b
-4tick1
-t4i1co
-t4ic1u
-5ti2di
-t2id
-3tien
-t2ie4
-tif2
-ti5fy
-2t2ig
-5tigu
-til2l5in4
-til1l
-till2i
-1tim
-4ti4m1p
-tim5ul
-ti2mu
-2t1in
-t2i1na
-3ti2ne.
-t2ine
-3t2ini
-1t2io
-ti5oc
-tion5ee
-tio2n
-5tiq
-ti3sa2
-3t4ise
-ti2s4m
-ti5so
-tis4p
-5tisti1ca
-tis1t2i
-tis1tic
-ti3tl
-ti4u
-1t2iv
-ti1v4a
-1tiz
-ti3za1
-ti3ze4n
-ti2ze
-2tl
-t5la
-tla2n4
-3tle.
-3tled
-3tles.
-tles2
-t5let.
-t5lo
-4t1m
-tme4
-2t1n2
-1to
-to3b
-to5crat
-4to2do4
-2tof
-to2gr
-to5ic
-toi2
-to2ma
-to4m4b
-to3my
-ton4a4l1i
-to2n
-to1n1a
-to3n2at
-4tono
-4tony
-to2ra
-to3r2ie4
-tor5iz
-tos2
-5tour
-tou2
-4tout
-to3w2a2r
-4t1p
-1tra
-t2ra3b
-tra5ch
-tr4a2ci4
-tra2c4it
-trac4te
-tra2c1t
-tr2as4
-tra5ven
-trav5e2s5
-tre5f
-tre4m
-trem5i
-5tr2i3a
-tri5ces
-tr4ice
-5tri3c2i1a
-t4r2i1ci
-4tri4c3s2
-2trim
-tr2i4v
-tro5m4i
-tron5i
-tro2n
-4trony
-tro5phe
-tr2oph
-tro3sp
-tro3v
-tr2u5i2
-tr2us4
-4t1s2
-t4sc
-ts2h4
-t4sw2
-4t3t2
-t4tes
-t5to
-t1tu4
-1tu
-tu1a
-tu3a2r
-tu4b4i
-tud2
-4tue
-4tuf4
-5t2u3i2
-3tum
-tu4nis
-tu1ni
-2t3up.
-3ture
-5turi
-tur3is
-tur5o
-tu5ry
-3t2us
-4tv
-tw4
-4t1wa
-twis4
-twi2
-4t1wo2
-1ty
-4tya
-2tyl
-type3
-ty5ph
-4tz
-t2z4e
-4uab
-uac4
-ua5na
-ua2n
-uan4i
-uar5an1t
-u2a2r
-uara2n
-uar2d
-uar3i
-uar3t
-u1at
-uav4
-ub4e
-u4bel
-u3ber
-u4b2ero
-u1b4i
-u4b5ing
-u3b4le.
-ub2l2
-u3ca
-uci4b
-u1ci
-u2c4it
-ucle3
-u1c4l4
-u3cr
-u3cu
-u4cy
-ud5d4
-ud3er
-ud5est
-udes2
-ude1v4
-u1dic
-ud3ied
-ud2ie4
-ud3ies
-ud5is1
-u5dit
-u4do2n
-u1do
-ud4si
-u2d1s2
-u4du
-u4ene
-ue2n1s4
-uen4te
-uen1t
-uer4il
-uer1i
-3u1fa
-u3f4l2
-ugh3e2n
-ug5in
-2ui2
-uil5iz
-uil1i
-ui4n
-u1ing
-uir4m
-u4ir
-ui1ta4
-u2iv3
-ui4v4er.
-u5j
-4uk
-u1la
-ula5b
-u5lati
-ul2ch4
-u4l1c2
-5ulche2
-ul3der
-u2ld
-ul2de
-ul4e
-u1len
-ul4gi
-u4l1g4
-ul2i
-u5l2i1a
-ul3ing
-ul5is2h
-ul4l2a2r
-ul1l
-ul4li4b
-ull2i
-ul4lis
-4u2l3m
-u1l4o
-4u2l1s2
-uls5e4s
-ul2se
-ul1ti
-u4lt
-ul1tra3
-ul1tr
-4ul1tu2
-u3lu
-ul5ul
-ul5v
-u2m5ab
-u1ma
-um4bi
-u4m1b
-um4b1ly
-umb2l2
-u1mi
-u4m3ing
-umor5o
-u1mo
-umo2r
-u4m2p
-un2at4
-u1na
-u2ne
-un4er
-u1ni
-un4im
-u2n1in
-un5is2h
-un2i3v
-u2n3s4
-un4sw2
-un2t3a4b
-un1t
-un1ta
-un4ter.
-un4tes
-unu4
-un5y
-u4n5z
-u4o4rs2
-u5os
-u1ou2
-u1pe
-upe4r5s2
-u5p2i3a
-up3ing
-upi2n
-u3p2l2
-u4p3p
-upport5
-up1p4or
-up2t5i2b
-u2p1t
-up1tu4
-u1ra
-4ura.
-u4rag
-u4r2as
-ur4be
-ur1b
-ur1c4
-ur1d
-ure5a2t
-ur4fer1
-ur1f
-ur4fr
-u3rif
-uri4fic
-uri1fi
-ur1in
-u3r2i1o
-u1rit
-ur3iz
-ur2l
-url5ing.
-ur4no4
-uros4
-ur4pe
-ur1p
-ur4pi
-urs5er
-u4rs2
-ur2se
-ur5tes
-ur3th2e
-ur1ti4
-ur4t2ie4
-u3ru
-2us
-u5sa2d
-usa2
-u5sa2n
-us4ap
-usc2
-us3ci
-use5a
-u5s2i1a
-u3sic
-us4lin
-us1l2
-us1p
-us5s1l2
-u2ss
-us5tere
-us1t4r
-u2su
-usu2r4
-u2ta4b
-u1ta
-u3tat
-4u4te.
-4utel
-4uten
-uten4i
-4u1t2i
-uti5l2iz
-util1i
-u3t2ine
-u2t1in
-ut3ing
-utio1n5a
-u1t2io
-utio2n
-u4tis
-5u5tiz
-u4t1l
-u2t5of
-u1to
-uto5g
-uto5mat1ic
-uto2ma
-u5to2n
-u4tou2
-u4t1s4
-u3u
-uu4m
-u1v2
-ux1u3
-u2z4e
-1va
-5va.
-2v1a4b
-vac5il
-v4a2ci
-vac3u
-vag4
-va4ge
-va5l2i4e4
-val1i
-val5o
-val1u
-va5mo
-va5niz
-va2n
-va5pi
-var5ied
-v2a2r
-var1i
-var2ie4
-3vat
-4ve.
-4ved
-veg3
-v3el.
-vel3l2i
-vel1l
-ve4lo
-v4e1ly
-ven3om
-v4eno
-v5enue
-v4erd
-5v2e2re.
-v4erel
-v3eren
-ver5enc
-v4eres
-ver3ie4
-ver1i
-vermi4n
-ver3m4
-3ver2se
-ve4r1s2
-ver3th
-v4e2s
-4ves.
-ves4te
-ve4te
-vet3er
-ve4ty
-vi5al1i
-v2i1a
-vi2al
-5vi2a2n
-5vi2de.
-v2id
-5vi2d1ed
-4v3i1den
-5vide4s2
-5vi2di
-v3if
-vi5gn
-v2ig
-v4ik4
-2vil
-5v2il1it
-vil1i
-v3i3l2iz
-v1in
-4vi4na
-v2inc
-v4in5d
-4ving
-vi1o3l
-v2io
-v3io4r
-vi1ou2
-v2i4p
-vi5ro
-v4ir
-vis3it
-vi3so
-vi3su
-4vi1ti
-vit3r
-4vi1ty
-3v2iv
-5vo.
-voi4
-3v2ok
-vo4la
-v5ole
-5vo4l2t
-3vol2v
-vom5i
-vo2r5ab
-vo1ra
-vori4
-vo4ry
-vo4ta
-4vo1tee
-4vv4
-v4y
-w5ab2l2
-2wac
-wa5ger
-wa2g5o
-wait5
-wai2
-w5al.
-wam4
-war4t
-w2a2r
-was4t
-wa1te
-wa5ver
-w1b
-wea5r2ie4
-we2a2r
-wear1i
-we4ath3
-wea2t
-we4d4n4
-weet3
-wee5v
-wel4l
-w1er
-west3
-w3ev
-whi4
-wi2
-wil2
-wil2l5in4
-wil1l
-will2i
-win4de
-w4ind
-win4g
-w4ir4
-3w4ise
-w2ith3
-wiz5
-w4k
-wl4es2
-wl3in
-w4no
-1wo2
-wom1
-wo5v4en
-w5p
-wra4
-wri4
-wri1ta4
-w3s2h
-ws4l2
-ws4pe
-w5s4t
-4wt
-wy4
-x1a
-xac5e
-x4a2go
-xam3
-x4ap
-xas5
-x3c2
-x1e
-xe4cu1to
-xe1cu
-xe3c4ut
-x2ed
-xer4i
-x2e5ro
-x1h
-xhi2
-xh4il5
-xhu4
-x3i
-x2i5a
-xi5c
-xi5di
-x2id
-x4ime
-xi5m2iz
-xim1i
-x3o
-x4ob
-x3p
-xp4an4d
-x1pa
-xpa2n
-xpec1to5
-xpe2c
-xpe2c1t
-x2p2e3d
-x1t2
-x3ti
-x1u
-xu3a
-xx4
-y5ac
-3y2a2r4
-y5at
-y1b
-y1c
-y2ce
-yc5er
-y3ch
-ych4e2
-ycom4
-y1co
-ycot4
-y1d
-y5ee
-y1er
-y4er1f
-yes4
-ye4t
-y5gi
-4y3h
-y1i
-y3la
-ylla5b2l2
-yl1l
-y3lo
-y5lu
-ymbol5
-y4m1b
-yme4
-ym1pa3
-y4m1p
-yn3c4hr4
-yn2ch
-yn5d
-yn5g
-yn5ic
-5ynx
-y1o4
-yo5d
-y4o5g
-yom4
-yo5net
-yo2n
-y4o2n3s2
-y4os
-y4p2ed
-yper5
-yp3i
-y3po
-y4po4c
-yp2ta
-y2p1t
-y5pu
-yra5m
-yr5i3a
-y3ro
-yr4r4
-ys4c
-y3s2e
-ys3i1ca
-y1s3io
-3y1sis
-y4so
-y2ss4
-ys1t
-ys3ta
-ysu2r4
-y1su
-y3thin
-yt3ic
-y1w
-za1
-z5a2b
-z2a2r2
-4zb
-2ze
-ze4n
-ze4p
-z1er
-z2e3ro
-zet4
-2z1i
-z4il
-z4is
-5zl
-4zm
-1zo
-zo4m
-zo5ol
-zoo2
-zte4
-4z1z2
-z4zy
-.as9s8o9c8i8a8te.
-.as1so
-.asso1ci
-.asso3c2i1a
-.as9s8o9c8i8a8t8es.
-.de8c9l8i9n8a9t8i8on.
-.de1c4l4
-.decl4i1na
-.declin2at
-.declina1t2io
-.declinatio2n
-.ob8l8i8g9a9t8o8ry.
-.ob2l2
-.obl2ig
-.obli1ga
-.obliga1to
-.obligato1ry
-.ph8i8l9a8n9t8h8r8o8p8ic.
-.ph4il2
-.phi1la
-.phila2n
-.philan1t
-.philant4hr4
-.philanthrop3ic
-.pr8e8s8e8nt.
-.p3re1s2e
-.presen1t
-.pr8e8s8e8n8ts.
-.presen4t4s2
-.pr8o8j8e8ct.
-.pro5j
-.pro1je
-.proje2c1t
-.pr8o8j8e8c8ts.
-.projec4t1s2
-.re8c9i9p8r8o8c9i9t8y.
-.re1c2i
-.rec2ip
-.recipr2
-.recipr2oc
-.re1cipro1ci
-.recipro2c1it
-.reciproci1ty
-.re9c8o8g9n8i9z8a8n8ce.
-.re1co
-.re2cog
-.rec3ogniz
-.recog1ni
-.recogniza1
-.recogniza2n
-.re8f9o8r9m8a9t8i8on.
-.re1f
-.re1fo
-.refo2r
-.refor1m
-.refor1ma
-.reforma1t2io
-.reformatio2n
-.re8t9r8i9b8u9t8i8on.
-.re3tri
-.retr4ib
-.retri3bu1t2io
-.retrib4u1t2i
-.retributio2n
-.ta9b8le.
-.2tab
-.tab2l2
-.ac8a8d9e9m8y.
-.a1ca
-.aca2d
-.acad4em
-.acade3my
-.ac8a8d9e9m8i8e8s.
-.academ2i4e4
-.ac9c8u9s8a9t8i8v8e.
-.ac3c
-.ac1c2us
-.accusa2
-.accusa1t2iv
-.ac8r8o9n8y8m.
-.acro2n
-.acronym4
-.ac8r8y8l9a8m8i8d8e.
-.acry3la
-.acrylam2id
-.ac8r8y8l9a8m8i8d8e8s.
-.acrylamide4s2
-.ac8r8y8l9a8l8d8e9h8y8d8e.
-.acryla2ld
-.acrylal2de
-.acrylalde1h4
-.acrylaldehy1d
-.ad8d9a9b8l8e.
-.ad1d2a
-.ad2d3a4b
-.addab2l2
-.ad8d9i9b8l8e.
-.addi1b2l2
-.ad8r8e8n9a9l8i8n8e.
-.a1dr
-.adre4
-.a5dren
-.adre1na
-.adrena4l1i
-.adrena1l4ine
-.ae8r8o9s8p8a8c8e.
-.ae4r
-.a2ero
-.aero2s4pa
-.aerospa4ce
-.af9t8e8r9t8h8o8u8g8h8t.
-.afterthou2
-.af9t8e8r9t8h8o8u8g8h8t8s.
-.afterthough4t1s2
-.ag8r8o8n9o9m8i8s8t.
-.a1gr
-.ag4ro
-.agro2n
-.agronom2is
-.ag8r8o8n9o9m8i8s8t8s.
-.agronomis4t1s2
-.al9g8e9b8r8a9i9c8a8l9l8y.
-.a4l1g4
-.alg2e1b
-.alge3br
-.algebr2ai2
-.algebrai1ca
-.algebraical1l
-.algebraical1ly
-.am9p8h8e8t9a9m8i8n8e.
-.a4m1p
-.amphe4t
-.amphe1ta
-.amphetam1in
-.amphetam2ine
-.am9p8h8e8t9a9m8i8n8e8s.
-.amphetami1nes
-.an9a9l8y8s8e.
-.3ana1ly
-.a1na
-.an4a2lys4
-.anal5y3s2e
-.an9a9l8y8s8e8d.
-.analy4s4ed
-.an8a8l8y9s8e8s.
-.analys1e4s
-.an9i8s8o9t8r8o8p9i8c.
-.ani2so
-.anisotrop3ic
-.an9i8s8o9t8r8o8p9i9c8a8l9l8y.
-.anisotropi1ca
-.anisotropical1l
-.anisotropical1ly
-.an9i8s8o8t9r8o9p8i8s8m.
-.anisotropi2s1m
-.an9i8s8o8t9r8o8p8y.
-.anisotropy5
-.an8o8m9a8l8y.
-.ano4
-.anoma5l
-.ano1ma
-.anoma1ly
-.an8o8m9a8l8i8e8s.
-.anomal1i
-.anomal2i4e4
-.an8t8i9d8e8r8i8v9a9t8i8v8e.
-.ant2id
-.antider1i
-.antider2i4v
-.antide4ri1va
-.antideri3vat
-.antider2iva1t2iv
-.an8t8i9d8e8r8i8v9a9t8i8v8e8s.
-.antiderivativ4e2s
-.an8t8i9h8o8l8o9m8o8r9p8h8i8c.
-.anti3h
-.antiholo1mo
-.antiholomo2r
-.antiholomor1p
-.antiholomorp4h4
-.antiholomorph1ic
-.an9t8i8n9o9m8y.
-.an2t1in
-.ant2i1no
-.antino3my
-.an9t8i8n9o9m8i8e8s.
-.antinom2ie4
-.an9t8i9n8u9c8l8e8a8r.
-.antin1u
-.antinucle3
-.antinu1c4l4
-.antinucle2a
-.antinucle2a2r
-.an9t8i9n8u9c8l8e9o8n.
-.antinucleo2n
-.an9t8i9r8e8v9o9l8u9t8i8o8n9a8r8y.
-.ant4ir
-.antirev2
-.antirev5olu
-.antirevo1lut
-.antirevol4u1t2i
-.antirevolutio1n5a
-.antirevolu1t2io
-.antirevolutio2n
-.antirevolution2a2r
-.ap8o8t8h9e9o9s8e8s.
-.ap4ot
-.ap4oth
-.apoth2e
-.apotheos4
-.apotheos1e4s
-.ap8o8t8h9e9o9s8i8s.
-.apotheo1sis
-.ap9p8e8n9d8i8x.
-.a4p1p
-.ap2pe
-.ap3pen
-.ar9c8h8i9m8e9d8e8a8n.
-.ar1c
-.ar2ch
-.archi2med
-.archimedea2n
-.ar9c8h8i9p8e8l9a8g8o.
-.arch2i4p
-.archipe4
-.archipe4la
-.archipela2go
-.ar9c8h8i9p8e8l9a9g8o8s.
-.ar9c8h8i8v8e.
-.arch2i2v
-.ar9c8h8i8v8e8s.
-.archiv4e2s
-.ar9c8h8i8v9i8n8g.
-.archiv1in
-.archi4ving
-.ar9c8h8i8v9i8s8t.
-.ar9c8h8i8v9i8s8t8s.
-.archivis4t1s2
-.ar9c8h8e9t8y8p9a8l.
-.arche2
-.arche4t
-.arche1ty
-.archety1pa
-.archetyp4al
-.ar9c8h8e9t8y8p9i9c8a8l.
-.archetyp3i
-.archetypi1ca
-.ar8c9t8a8n9g8e8n8t.
-.ar2c1t
-.arct5ang
-.arc1ta
-.arcta2n
-.arctan1gen
-.arctangen1t
-.ar8c9t8a8n9g8e8n8t8s.
-.arctangen4t4s2
-.as9s8i8g8n9a9b8l8e.
-.as1si
-.as4sig1n4a
-.ass2ig
-.assig2n1a2b
-.assignab2l2
-.as9s8i8g8n9o8r.
-.assig1no
-.as9s8i8g8n9o8r8s.
-.assigno4rs2
-.as9s8i8s8t9a8n8t9s8h8i8p.
-.as1sis
-.assis1ta
-.assista2n
-.assistan1t
-.assistan4t4s2
-.assistants2h4
-.assistant3sh2i4p
-.as9s8i8s8t9a8n8t9s8h8i8p8s.
-.assistantshi2p1s2
-.as8y8m8p9t8o9m8a8t8i8c.
-.as4y
-.asy4m1p
-.asym2p1t
-.asymp1to
-.asympto2ma
-.asymptomat1ic
-.as9y8m8p9t8o8t9i8c.
-.as8y8n9c8h8r8o9n8o8u8s.
-.asyn3c4hr4
-.asyn2ch
-.asynchro2n
-.asynchro1nou2
-.asynchrono2us
-.at8h9e8r9o9s8c8l8e9r8o9s8i8s.
-.4ath
-.ath2e
-.ath2ero
-.atheros2c
-.atheroscle5
-.atheros1c4l4
-.ath2eroscl4ero
-.atherosclero1sis
-.at9m8o8s9p8h8e8r8e.
-.a4t1m
-.at1mo
-.atmos2
-.atmo3sp
-.atmos2phe
-.atmo3sph4er
-.at9m8o8s9p8h8e8r8e8s.
-.at9t8r8i8b9u8t8e8d.
-.a4t3t2
-.attr4ib
-.attribu2t1ed
-.at9t8r8i8b9u8t9a8b8l8e.
-.attri4bu1ta
-.attribu2ta4b
-.attributab2l2
-.au9t8o9m8a9t8i8o8n.
-.au1to
-.auto2ma
-.automa1t2io
-.automatio2n
-.au9t8o8m9a9t8o8n.
-.automa1to
-.automato2n
-.au9t8o8m9a9t8a.
-.automa2ta
-.au9t8o9n8u8m9b8e8r9i8n8g.
-.au5to2n
-.auton5um
-.autonu4m1b
-.autonumber1i
-.autonumberin4g
-.au9t8o8n9o9m8o8u8s.
-.au4tono
-.autono4mo
-.autono3mo2us
-.autonomou2
-.au8t8o9r8o8u8n8d9i8n8g.
-.autorou2
-.autoroun2d
-.autoround1in
-.av9o8i8r9d8u9p8o8i8s.
-.avoi4
-.avo4ir
-.avoir1du
-.avoir4dup
-.avoirdupoi2
-.ba8n8d9l8e8a8d8e8r.
-.b4and
-.ban1dl
-.bandle2a
-.bandlea2d1
-.ba8n8d9l8e8a8d8e8r8s.
-.bandleade4r5s2
-.ba8n8k9r8u8p8t.
-.ba4nk2
-.bankru2p1t
-.ba8n8k9r8u8p8t9c8y.
-.bankrup4tc
-.bankrupt1cy
-.ba8n8k9r8u8p8t9c8i8e8s.
-.bankrupt1ci
-.bankruptc2ie4
-.ba8r9o8n8i8e8s.
-.b2a2r
-.ba5roni
-.baro2n
-.baron2ie4
-.ba8s8e9l8i8n8e9s8k8i8p.
-.basel2i
-.base1l4ine
-.baseli1nes
-.baselinesk2
-.baselinesk1i
-.baselinesk2i4p
-.ba9t8h8y8m9e9t8r8y.
-.1bat
-.b4ath
-.bathyme4
-.bathym4etr
-.bathyme3try
-.ba8t8h8y9s8c8a8p8h8e.
-.bathy2s
-.bathys4c
-.bathysca4p
-.bathys1ca
-.be8a8n9i8e8s.
-.bea2n
-.bea3nies
-.bean2ie4
-.be9h8a8v9i8o8u8r.
-.be1h4
-.behav1i
-.behavi1ou2
-.behav2io
-.behavi4our
-.be9h8a8v9i8o8u8r8s.
-.behaviou4rs2
-.be8v8i8e8s.
-.be1vi
-.bev2ie4
-.bi8b9l8i9o8g9r8a9p8h8y9s8t8y8l8e.
-.bi2b
-.bi1b2l2
-.bib3li
-.bibli5og
-.bibl2io
-.biblio2gr
-.biblio4g3ra1phy
-.bibliography2s
-.bibliographys1t
-.bibliographys2ty
-.bibliographys2tyl
-.bi9d8i8f9f8e8r9e8n9t8i8a8l.
-.b2i4d
-.bi2di
-.bid1if
-.bidi4f1f
-.bidiffer1
-.bidiffer3en1t
-.bidifferent2i
-.bidifferen1t2i1a
-.bidifferenti2al
-.bi8g9g8e8s8t.
-.b2ig
-.bi4g1g2
-.big2ge
-.bi8l8l9a8b8l8e.
-.1bil
-.bill5ab
-.bil1l
-.billab2l2
-.bi8o9m8a8t8h9e9m8a8t9i8c8s.
-.b2io
-.bio4m
-.bio1ma
-.biom4ath3
-.biomath5em
-.biomath2e
-.biomathe1ma
-.biomathemat1ic
-.biomathemati4c3s2
-.bi8o9m8e8d9i9c8a8l.
-.bio2me
-.bio2med
-.biom4edi
-.biomed3i1ca
-.bi8o9m8e8d9i9c8i8n8e.
-.biomed2i1ci
-.biomedi2cin
-.biomedic2ine
-.bi8o9r8h8y8t8h8m8s.
-.biorh4
-.biorhyt4h1m
-.biorhyth4m1s2
-.bi8t9m8a8p.
-.bi2t
-.bi4t1m
-.bit1ma
-.bit4map
-.bi8t9m8a8p8s.
-.bitma2p1s2
-.bl8a8n8d9e8r.
-.b2l2
-.b3l4and
-.bla2n
-.blan1de
-.bl8a8n8d9e8s8t.
-.blande4s2
-.bl8i8n8d9e8r.
-.bl4ind
-.blin1de
-.bl8o8n8d8e8s.
-.b4lo
-.blo2n
-.bl2ond
-.blon1de
-.blondes2
-.bl8u8e9p8r8i8n8t.
-.bluepr2
-.blueprin4t3
-.bl8u8e9p8r8i8n8t8s.
-.blueprin4t4s2
-.bo9l8o8m9e9t8e8r.
-.bolo2me
-.bolo4met
-.bolome1te
-.bo8o8k9s8e8l8l9e8r.
-.3boo2
-.bo2o4k
-.boo4k1s2
-.booksel1l
-.booksel2le
-.bo8o8k9s8e8l8l9e8r8s.
-.bookselle4r1s2
-.bo8o8l9e8a8n.
-.boole2a
-.boolea2n
-.bo8o8l9e8a8n8s.
-.boolea2n1s2
-.bo8r9n8o9l8o8g9i9c8a8l.
-.borno4
-.borno3log1ic
-.bornologi1ca
-.bo8t9u9l8i8s8m.
-.bo1tu
-.botul2i
-.botuli2s1m
-.br8u8s8q8u8e8r.
-.br2us
-.brusqu2
-.brus3quer
-.bu8f9f8e8r.
-.buf4fer1
-.bu4f1f
-.bu8f9f8e8r8s.
-.buffe4r1s2
-.bu8s8i8e8r.
-.bus5ie4
-.b2us
-.bu8s8i8e8s8t.
-.busi1est
-.bu8s8s8i8n8g.
-.bu2ss
-.bus1si
-.bus2s1in
-.buss3ing
-.bu8t8t8e8d.
-.but2t1ed
-.bu8z8z9w8o8r8d.
-.bu4z1z2
-.buzz1wo2
-.bu8z8z9w8o8r8d8s.
-.buzzwor2d1s2
-.ca9c8o8p8h9o9n8y.
-.ca1co
-.cac2oph
-.cacopho5ny
-.cacopho2n
-.ca9c8o8p8h9o9n8i8e8s.
-.caco5phoni
-.cacophon2ie4
-.ca8l8l9e8r.
-.cal1l
-.cal2le
-.ca8l8l9e8r8s.
-.calle4r1s2
-.ca8m9e8r8a9m8e8n.
-.cam5er1a
-.camera1men
-.ca8r8t9w8h8e8e8l.
-.cartw4
-.ca8r8t9w8h8e8e8l8s.
-.cartwhee2l1s2
-.ca9t8a8r8r8h8s.
-.ca2ta
-.cat2a2r
-.catar1r4
-.catarrh4
-.catarr4h1s2
-.ca8t9a9s8t8r8o8p8h9i8c.
-.catas1t4r
-.catastr2oph
-.catastroph1ic
-.ca8t9a9s8t8r8o8p8h9i9c8a8l8l8y.
-.catastrophi1ca
-.catastrophical1l
-.catastrophical1ly
-.ca8t9e9n8o8i8d.
-.cat4eno
-.catenoi2
-.cateno2id
-.ca8t9e9n8o8i8d8s.
-.catenoi2d1s2
-.ca8u9l8i9f8l8o8w9e8r.
-.cau4l2
-.caul2i
-.cauli4f4l2
-.cauliflow1er
-.ch8a8p9a8r9r8a8l.
-.chap2a2r4
-.cha1pa
-.chapar1r4
-.ch8a8r9t8r8e8u8s8e.
-.ch2a2r
-.chartr4eu2
-.chartre2us4
-.ch8e8m8o9t8h8e8r9a8p8y.
-.che2
-.che1mo
-.chem4oth3
-.chemoth2e
-.chemoth4er1a
-.chemothera3p
-.ch8e8m8o9t8h8e8r9a9p8i8e8s.
-.chemotherap2ie4
-.ch8l8o8r8o9m8e8t8h9a8n8e.
-.c4h1l4
-.ch2lo
-.chloro2me
-.chloro4met
-.chlorometha2n4
-.ch8l8o8r8o9m8e8t8h9a8n8e8s.
-.chlorometha1nes
-.ch8o9l8e8s9t8e8r8i8c.
-.3cho2
-.c3hol4e
-.choles2
-.choles1ter1i
-.ci8g9a9r8e8t8t8e.
-.c2ig
-.ci1ga
-.cig2a2r
-.cigare4t3t2
-.ci8g9a9r8e8t8t8e8s.
-.cigaret4tes
-.ci8n8q8u8e9f8o8i8l.
-.2cin
-.cin1q
-.cinqu2
-.cinque1f
-.cinque1fo
-.cinquefoi2
-.co9a8s8s8o9c8i8a9t8i8v8e.
-.c4oa
-.coa2ss
-.coas1so
-.coasso1ci
-.coasso3c2i1a
-.coassoci4a1t2iv
-.co9g8n8a8c.
-.2cog
-.cog1n4a
-.co9g8n8a8c8s.
-.cogna4c3s2
-.co9k8e8r9n8e8l.
-.c2ok
-.cok1er
-.coker3nel
-.co9k8e8r9n8e8l8s.
-.cokerne2l1s2
-.co8l9l8i8n9e8a9t8i8o8n.
-.col1l
-.coll2i
-.col2lin4
-.col1l4ine
-.collin3ea
-.collinea2t
-.collinea1t2io
-.collineatio2n
-.co8l9u8m8n8s.
-.colu4m1n
-.colum2n1s2
-.co8m9p8a8r9a8n8d.
-.co4m1p
-.compara5
-.com1pa
-.comp2a2r
-.compara2n
-.compar4and
-.co8m9p8a8r9a8n8d8s.
-.comparan2d1s2
-.co8m9p8e8n9d8i8u8m.
-.compendi1u
-.co8m9p8o9n8e8n8t9w8i8s8e.
-.compo2n
-.compo3nen
-.componen1t
-.componentw4
-.componentwis4
-.componentwi2
-.component3w4ise
-.co8m8p9t8r8o8l9l8e8r.
-.comp4tr
-.com2p1t
-.comptrol1l
-.comptrol2le
-.co8m8p9t8r8o8l9l8e8r8s.
-.comptrolle4r1s2
-.co8n9f8o8r8m9a8b8l8e.
-.co2n
-.con3f
-.con1fo
-.confo2r
-.confor1m
-.confor1ma
-.confor2mab
-.conformab2l2
-.co8n9f8o8r8m9i8s8t.
-.confor2mi
-.conform2is
-.co8n9f8o8r8m9i8s8t8s.
-.conformis4t1s2
-.co8n9f8o8r8m9i8t8y.
-.confor3mit
-.conformi1ty
-.co8n9g8r8e8s8s.
-.con3g
-.con1gr
-.congr2e2ss
-.co8n9g8r8e8s8s8e8s.
-.congress1e4s
-.co8n9t8r8i8b9u8t8e.
-.con5t
-.contr4ib
-.co8n9t8r8i8b9u8t8e8s.
-.co8n9t8r8i8b9u8t8e8d.
-.contribu2t1ed
-.co9r8e9l8a9t8i8o8n.
-.core1la
-.corela1t2io
-.corelatio2n
-.co9r8e9l8a9t8i8o8n8s.
-.corelatio2n3s2
-.co9r8e9l8i9g8i8o8n9i8s8t.
-.core1l2i
-.corel2ig
-.corel4igi
-.coreli5g2io
-.coreligion3i
-.coreligio2n
-.coreligion1is
-.co9r8e9l8i9g8i8o8n9i8s8t8s.
-.coreligionis4t1s2
-.co9r8e9o8p9s8i8s.
-.core1o
-.coreo2p1s2
-.coreop1sis
-.co9r8e9s8p8o8n9d8e8n8t.
-.core1sp
-.cores4po2n
-.coresp2ond
-.corespon1de
-.corespon1den
-.coresponden1t
-.co9r8e9s8p8o8n9d8e8n8t8s.
-.coresponden4t4s2
-.co9s8e9c8a8n8t.
-.cos4e
-.cose1ca
-.coseca2n
-.cosecan1t
-.co9t8a8n9g8e8n8t.
-.co4ta2n
-.co1ta
-.cot2ang
-.cotan1gen
-.cotangen1t
-.co8u8r9s8e8s.
-.cou2
-.cou4rs2
-.cour2se
-.cours3e4s
-.co9w8o8r8k9e8r.
-.co4wo2
-.cowork1er
-.co9w8o8r8k9e8r8s.
-.coworke4r1s2
-.cr8a8n8k9c8a8s8e.
-.cra2n
-.cra4nk2
-.crank1ca
-.cr8a8n8k9s8h8a8f8t.
-.cran4k1s2
-.cranks2h
-.cranksha2f
-.cranksha2ft
-.cr8o8c9o9d8i8l8e.
-.cr2oc
-.cro4cod
-.cro1co
-.cr8o8c9o9d8i8l8e8s.
-.crocodiles2
-.cr8o8s8s9h8a8t8c8h.
-.cro2s4s
-.cross2h
-.crossha4tc
-.crosshat4ch
-.cr8o8s8s9h8a8t8c8h8e8d.
-.crosshatche2
-.crosshat4ch4ed
-.cr8o8s8s9o8v8e8r.
-.cros1so
-.cros4sov
-.cr8y8p9t8o9g8r8a8m.
-.cry2p1t
-.cryp1to
-.crypto2gr
-.cr8y8p9t8o9g8r8a8m8s.
-.cryptogra4m1s2
-.cu8f8f9l8i8n8k.
-.c4uf
-.cu4f1f
-.cuff4l2
-.cufflin4
-.cuffl4i4nk2
-.cu8f8f9l8i8n8k8s.
-.cufflin4k1s2
-.cu9n8e8i9f8o8r8m.
-.3cun
-.cu2ne
-.cunei2
-.cunei1fo
-.cuneifo2r
-.cuneifor1m
-.cu8s9t8o8m9i8z9a9b8l8e.
-.1c2us
-.cus1to
-.custom2iz
-.customiza1
-.customiz5a2b
-.customizab2l2
-.cu8s9t8o8m9i8z8e.
-.customi2ze
-.cu8s9t8o8m9i8z8e8s.
-.cu8s9t8o8m9i8z8e8d.
-.da8c8h8s9h8u8n8d.
-.1d2a
-.da2ch4
-.dac4h1s2
-.dach4s2h
-.da8m9s8e8l9f8l8y.
-.da2m2
-.da4m1s2
-.dam5se2l2f
-.damself4l2
-.damself2ly5
-.da8m9s8e8l9f8l8i8e8s.
-.damselfl2ie4
-.da8c8t8y8l9o9g8r8a8m.
-.da2c1t
-.dac1ty
-.dac2tyl
-.dacty3lo
-.dactylo1gr
-.da8c8t8y8l9o9g8r8a8p8h.
-.da8t8a9b8a8s8e.
-.3dat
-.da2ta
-.da2tab
-.da8t8a9b8a8s8e8s.
-.databas1e4s
-.da8t8a9p8a8t8h.
-.dat5ap
-.datap5at
-.data1pa
-.datap4ath
-.da8t8a9p8a8t8h8s.
-.datapa2t4h1s2
-.da8t8e9s8t8a8m8p.
-.dat3est
-.dates1ta
-.datesta4m1p
-.da8t8e9s8t8a8m8p8s.
-.datestam2p1s2
-.de9c8l8a8r9a8b8l8e.
-.de4cl2a2r
-.decla2rab
-.declarab2l2
-.de9f8i8n9i9t8i8v8e.
-.de1f
-.de1fi
-.de2fin
-.def2ini
-.defin2it
-.defini1ti
-.defini1t2iv
-.de9l8e8c9t8a9b8l8e.
-.d5elec
-.dele2c1t
-.delec2ta4b
-.delec1ta
-.delectab2l2
-.de8m8i9s8e8m8i9q8u8a9v8e8r.
-.de4m2is
-.dem4ise
-.demisemi3qua
-.demisemiqu2
-.demisemiqua5v4
-.de8m8i9s8e8m8i9q8u8a9v8e8r8s.
-.demisemiquave4r1s2
-.de9m8o8c9r8a9t8i8s8m.
-.de4mocr
-.democrati2s4m
-.de8m8o8s.
-.demos2
-.de9r8i8v9a9t8i8v8e.
-.der2i4v
-.de4ri1va
-.deri3vat
-.der2iva1t2iv
-.de9r8i8v9a9t8i8v8e8s.
-.derivativ4e2s
-.di8a9l8e8c9t8i8c.
-.1d4i3a
-.di2al
-.di2ale
-.diale2c1t
-.di8a9l8e8c9t8i8c8s.
-.dialecti4c3s2
-.di8a9l8e8c9t8i9c8i8a8n.
-.dialect2i1ci
-.d2i1alecti3c2i1a
-.dialectici2a2n
-.di8a9l8e8c9t8i9c8i8a8n8s.
-.dialecticia2n1s2
-.di9c8h8l8o8r8o9m8e8t8h9a8n8e.
-.d4i2ch
-.dic4h1l4
-.dich2lo
-.dichloro2me
-.dichloro4met
-.dichlorometha2n4
-.di8f9f8r8a8c8t.
-.d1if
-.dif4fr
-.di4f1f
-.diffra2c1t
-.di8f9f8r8a8c8t8s.
-.diffrac4t1s2
-.di8f9f8r8a8c9t8i8o8n.
-.diffrac1t2io
-.diffractio2n
-.di8f9f8r8a8c9t8i8o8n8s.
-.diffractio2n3s2
-.di8r8e8r.
-.d4ir2
-.di1re
-.dir1er4
-.di8r8e9n8e8s8s.
-.dire1nes
-.diren2e2ss
-.di8s9p8a8r9a8n8d.
-.dis1
-.dis1p
-.di2s1pa
-.disp2a2r
-.dispara2n
-.dispar4and
-.di8s9p8a8r9a8n8d8s.
-.disparan2d1s2
-.di8s9t8r8a8u8g8h8t9l8y.
-.d4is3t
-.dist4r
-.dis1tra
-.distraugh3
-.distraugh2tl
-.distraught1ly
-.di8s9t8r8i8b9u8t8e.
-.distr4ib
-.di8s9t8r8i8b9u8t8e8s.
-.di8s9t8r8i8b9u8t8e8d.
-.distribu2t1ed
-.do8u9b8l8e9s8p8a8c8e.
-.dou2
-.dou3b2l2
-.dou5ble1sp
-.doubles2
-.double2s1pa
-.doublespa4ce
-.do8u9b8l8e9s8p8a8c9i8n8g.
-.doublesp4a2ci
-.doublespa2c1in
-.doublespac1ing
-.do8l8l9i8s8h.
-.dol1l
-.doll2i
-.dollis2h
-.dr8i8f8t9a8g8e.
-.1dr
-.dr4i2ft
-.drif1ta
-.dr8i8v9e8r8s.
-.dr2iv
-.drive4r1s2
-.dr8o8m9e9d8a8r8y.
-.dro2me
-.dro2med
-.drom2e2d2a
-.drome4dary
-.dromed2a2r
-.dr8o8m9e9d8a8r8i8e8s.
-.dromedar1i
-.dromedar2ie4
-.du9o8p9o9l8i8s8t.
-.duopol2i
-.du9o8p9o9l8i8s8t8s.
-.duopolis4t1s2
-.du9o8p9o8l8y.
-.duopo2ly
-.dy8s9l8e8x8i8a.
-.d2y
-.dys1l2
-.dys2le
-.dyslex3i
-.dyslex2i5a
-.dy8s9l8e8c9t8i8c.
-.dysle2c1t
-.ea8s8t9e8n8d9e8r8s.
-.east3
-.eas3ten
-.eas3tend
-.easten1de
-.eastende4r5s2
-.ec8o9n8o8m9i8c8s.
-.e1co
-.eco2n
-.eco3nomic
-.economi4c3s2
-.ec8o8n9o9m8i8s8t.
-.econom2is
-.ec8o8n9o9m8i8s8t8s.
-.economis4t1s2
-.ei9g8e8n9c8l8a8s8s.
-.ei2
-.e2ig2
-.ei1gen
-.eigen1c4l4
-.eigencla2ss
-.ei9g8e8n9c8l8a8s8s8e8s.
-.eigenclass1e4s
-.ei9g8e8n9v8a8l9u8e.
-.eigen1v2
-.eigen1va
-.eigenval1u
-.ei9g8e8n9v8a8l9u8e8s.
-.el8e8c8t8r8o9m8e8c8h8a8n9i9c8a8l.
-.5elec
-.ele2c1t
-.electro2me
-.electrome2ch
-.electrome5cha4n1ic
-.electromecha2n
-.electromechani1ca
-.el8e8c8t8r8o9m8e8c8h8a8n8o9a8c8o8u8s8t8i8c.
-.electromechano4
-.electromechan4oa
-.electromechanoa1co
-.electromechanoacou2
-.electromechanoaco2us
-.electromechanoacoust2i
-.electromechanoacous1tic
-.el8i8t9i8s8t.
-.el2i
-.el1it
-.eli1ti
-.el4itis
-.el8i8t9i8s8t8s.
-.elitis4t1s2
-.en9t8r8e9p8r8e9n8e8u8r.
-.en1t
-.entrepr2
-.entrepren4eu
-.en9t8r8e9p8r8e9n8e8u8r9i8a8l.
-.entrepreneur2i3a
-.entrepreneuri2al
-.ep9i9n8e8p8h9r8i8n8e.
-.epi2n
-.ep2ine
-.epinep4hr4
-.ep2inephr2in4e
-.eq8u8i9v8a8r8i9a8n8t.
-.equ2iv3
-.equi1va
-.equiv2a2r
-.equivar1i
-.equivar3i2a2n
-.equivar2i3a
-.equivar4ian4t
-.eq8u8i9v8a8r8i9a8n8c8e.
-.equivar4ianc
-.et8h9a8n8e.
-.etha2n4
-.et8h9y8l9e8n8e.
-.ev8e8r9s8i9b8l8e.
-.ev1er
-.eve4r1s2
-.ever1si
-.ever4si4b
-.eversi1b2l2
-.ev8e8r8t.
-.ev8e8r8t8s.
-.ever4t1s2
-.ev8e8r8t9e8d.
-.ever2t1ed
-.ev8e8r8t9i8n8g.
-.ever1ti
-.ever2t1in
-.ex9q8u8i8s9i8t8e.
-.exqu2
-.exq2ui2
-.exquis2ite
-.ex9t8r8a9o8r9d8i9n8a8r8y.
-.ex1t2
-.ex1tra
-.extr4ao
-.extraord2i
-.extraord1in4
-.extraor1di1na
-.extraordin2a2r
-.fa8l8l9i8n8g.
-.1fa
-.fal1l
-.fall2i
-.fal2lin4
-.fe8r8m8i9o8n8s.
-.fer1
-.fer3m4
-.fer4m2io
-.fermio2n
-.fermio2n3s2
-.fi9n8i8t8e9l8y.
-.1fi
-.2fin
-.f2ini
-.fin2it
-.fin2ite
-.finite1ly
-.fl8a9g8e8l9l8u8m.
-.f4l2
-.flag5el1l
-.fl8a9g8e8l9l8a.
-.flag4ella
-.fl8a8m9m8a9b8l8e8s.
-.flam1m
-.flam1ma
-.flam2mab
-.flammab2l2
-.flammables2
-.fl8e8d8g9l8i8n8g.
-.fledgl2
-.fl8o8w9c8h8a8r8t.
-.flow2ch
-.flowch2a2r
-.fl8o8w9c8h8a8r8t8s.
-.flowchar4t1s2
-.fl8u8o8r8o9c8a8r9b8o8n.
-.flu3o
-.fluo3r
-.fluor2oc
-.fluoro1ca
-.fluoroc2a2r
-.fluorocar1b
-.fluorocarb4o
-.fluorocarbo2n
-.fo8r9m8i9d8a9b8l8e.
-.for2mi
-.formi1d4a
-.form2id
-.formi2d3a4b
-.formidab2l2
-.fo8r9m8i9d8a9b8l8y.
-.formidab1ly
-.fo8r9s8y8t8h9i8a.
-.fo4rs2
-.fors4y
-.forsyth2i1a
-.fo8r8t8h9r8i8g8h8t.
-.fort4hr4
-.forthr2ig
-.fr8e8e9l8o8a8d8e8r.
-.freel4oa
-.freeloa2d3
-.fr8e8e9l8o8a8d8e8r8s.
-.freeloade4r5s2
-.fr8i8e8n8d9l8i8e8r.
-.fri2
-.fr2ie4
-.friendl2ie4
-.fr8i9v8o8l9i8t8y.
-.fr2iv
-.frivol2i
-.frivol1it
-.frivoli1ty
-.fr8i9v8o8l9i9t8i8e8s.
-.frivoli1ti
-.frivolit2ie4
-.fr8i8v9o9l8o8u8s.
-.frivolou2
-.frivolo2us
-.ga9l8a8c9t8i8c.
-.gala2c1t
-.ga8l9a8x8y.
-.ga8l9a8x9i8e8s.
-.galax3i
-.galax2ie4
-.ga8s9o8m9e9t8e8r.
-.ga1so
-.ga3som
-.gaso2me
-.gaso4met
-.gasome1te
-.ge9o9d8e8s9i8c.
-.geodes2
-.geode1si
-.geode2sic
-.ge9o9d8e8t9i8c.
-.geode1t
-.geodet1ic
-.ge8o9m8e8t9r8i8c.
-.ge3om
-.geo2me
-.geo4met
-.geom4etr
-.geo5met3ric
-.ge8o9m8e8t9r8i8c8s.
-.geome4tri4c3s2
-.ge9o9s8t8r8o8p8h8i8c.
-.geos4
-.geost4r
-.geostr2oph
-.geostroph1ic
-.ge8o9t8h8e8r9m8a8l.
-.ge4ot
-.ge4oth
-.geoth2e
-.geother3m4
-.geother1ma
-.ge9o8t9r8o9p8i8s8m.
-.geotropi2s1m
-.gn8o9m8o8n.
-.g1no
-.gno4mo
-.gno4mo2n
-.gn8o9m8o8n8s.
-.gnomo2n3s2
-.gr8a8n8d9u8n8c8l8e.
-.1gr
-.gra2n2
-.gr4and
-.gran1du
-.grandu4n
-.grandun1c4l4
-.gr8a8n8d9u8n8c8l8e8s.
-.granduncles2
-.gr8i8e8v9a8n8c8e.
-.gr2ie4
-.grie1va
-.grieva2n
-.gr8i8e8v9a8n8c8e8s.
-.gr8i8e8v9o8u8s.
-.grievou2
-.grievo2us
-.gr8i8e8v9o8u8s9l8y.
-.grievous1l2
-.grievous1ly
-.ha8i8r9s8t8y8l8e.
-.hai2
-.ha4ir
-.hai4rs2
-.hairs2ty
-.hairs2tyl
-.ha8i8r9s8t8y8l8e8s.
-.hairstyles2
-.ha8i8r9s8t8y8l9i8s8t.
-.ha8i8r9s8t8y8l9i8s8t8s.
-.hairstylis4t1s2
-.ha8l8f9s8p8a8c8e.
-.ha2lf
-.hal2f3s
-.half2s1pa
-.halfspa4ce
-.ha8l8f9s8p8a8c8e8s.
-.ha8l8f9w8a8y.
-.ha8r9b8i8n9g8e8r.
-.h2a2r
-.har1b
-.harbi2
-.har2bin
-.harb4inge
-.ha8r9b8i8n9g8e8r8s.
-.harbinge4r1s2
-.ha8r9l8e9q8u8i8n.
-.har4le4
-.har1l
-.harle1q
-.harlequ2
-.harleq2ui2
-.harlequi4n
-.ha8r9l8e9q8u8i8n8s.
-.harlequ2i2n1s2
-.ha8t8c8h9e8r8i8e8s.
-.ha4tc
-.hat4ch
-.hatche2
-.hatcher1i
-.hatcher2ie4
-.he8m8i9d8e8m8i9s8e8m8i9q8u8a9v8e8r.
-.hem2id
-.hemid4em
-.hemide4m2is
-.hemidem4ise
-.hemidemisemi3qua
-.hemidemisemiqu2
-.hemidemisemiqua5v4
-.he8m8i9d8e8m8i9s8e8m8i9q8u8a9v8e8r8s.
-.hemidemisemiquave4r1s2
-.he9m8o9g8l8o9b8i8n.
-.hemo4g
-.he1mo
-.hemo4gl2
-.hemo3glo
-.hemoglo1bi
-.hemoglo2bin
-.he9m8o9p8h8i8l9i8a.
-.hem2oph
-.hemoph4il2
-.hemophil1i
-.hemophil3i1a
-.he9m8o9p8h8i8l9i8a8c.
-.he9m8o9p8h8i8l9i8a8c8s.
-.hemophilia4c3s2
-.he8m8o9r8h8e9o8l9o8g8y.
-.hemo2r
-.hemorh4
-.hemorhe3ol
-.hemorheol1o1gy
-.he9p8a8t9i8c.
-.hep5
-.he2pa
-.hepat1ic
-.he8r9m8a8p8h9r8o9d8i8t8e.
-.her3m4
-.her1ma
-.her4map
-.hermap4hr4
-.hermaphrod2ite
-.he8r9m8a8p8h9r8o9d8i8t9i8c.
-.hermaphrod2i1ti
-.hermaphrod4i2tic
-.he9r8o8e8s.
-.hero4e
-.he8x8a9d8e8c9i9m8a8l.
-.hex1a
-.hexa2d
-.hexade1c2i
-.hexade2c3im
-.hexadeci1ma
-.ho9l8o9n8o9m8y.
-.holo2n
-.holon3o3my
-.ho9m8e8o9m8o8r9p8h8i8c.
-.ho2me3
-.homeo1mo
-.homeomo2r
-.homeomor1p
-.homeomorp4h4
-.homeomorph1ic
-.ho9m8e8o9m8o8r9p8h8i8s8m.
-.homeomorphi2s1m
-.ho9m8o9t8h8e8t8i8c.
-.ho1mo
-.hom4oth3
-.homoth2e
-.homo3the4t
-.homothet1ic
-.ho8r8s8e9r8a8d9i8s8h.
-.hor4se
-.ho4rs2
-.horser1a
-.horsera2d
-.horser2adi
-.horseradis1
-.horseradis2h
-.ho8t9b8e8d.
-.ho2t1b
-.hot4be2d
-.ho8t9b8e8d8s.
-.hotbe2d1s2
-.hy9d8r8o9t8h8e8r9m8a8l.
-.hy1d
-.hy1dr
-.hydro4th2e
-.hydr4oth
-.hydrother3m4
-.hydrother1ma
-.hy9p8o9t8h8a8l9a9m8u8s.
-.hy3po
-.hyp4ot
-.hyp4oth
-.hypotha3la
-.hypothala3m
-.hypothala1mu
-.hypothalam2us
-.id8e8a8l8s.
-.ide3a4l
-.idea2l1s2
-.id8e8o9g8r8a8p8h8s.
-.ideo2g
-.ideo1gr
-.ideogra4p4h1s2
-.id8i8o9s8y8n9c8r8a8s8y.
-.i2di
-.i1d3io
-.idi4os
-.idios4y
-.idiosyn1cr
-.idiosyncr2as
-.idiosyncras4y
-.id8i8o9s8y8n9c8r8a9s8i8e8s.
-.idiosyncras2ie4
-.id8i8o9s8y8n9c8r8a8t8i8c.
-.idiosyn5crat1ic
-.id8i8o9s8y8n9c8r8a8t9i9c8a8l9l8y.
-.idiosyncrati1ca
-.idiosyncratical1l
-.idiosyncratical1ly
-.ig9n8i8t9e8r.
-.2ig
-.ig1ni
-.ign2it
-.ign2ite
-.ig9n8i8t9e8r8s.
-.ignite4r1s2
-.ig9n8i9t8o8r.
-.ign3itor
-.igni1to
-.ig8n8o8r8e9s8p8a8c8e8s.
-.ig1no
-.ignore1sp
-.ignore2s1pa
-.ignorespa4ce
-.im9p8e8d9a8n8c8e.
-.im2p2ed
-.imp2e2d2a
-.impeda2n
-.im9p8e8d9a8n8c8e8s.
-.in9d8u9b8i9t8a9b8l8e.
-.4ind
-.in1du
-.indu1b4i
-.indubi2t
-.indubi1ta
-.indubi2tab
-.indubitab2l2
-.in9f8i8n9i8t8e9l8y.
-.in3f
-.in1fi
-.in2fin
-.inf2ini
-.infin2it
-.infin2ite
-.infinite1ly
-.in9f8i8n9i9t8e8s9i9m8a8l.
-.infinit4es
-.infinite1si
-.infinite2s5im
-.infinitesi1ma
-.in9f8r8a9s8t8r8u8c9t8u8r8e.
-.infr2as
-.infras1t4r
-.infrastru2c1t
-.infrastructu4r
-.infrastruc1tu
-.infrastruc3ture
-.in9f8r8a9s8t8r8u8c9t8u8r8e8s.
-.in9s8t8a8l8l9e8r.
-.ins2ta2l
-.ins1ta
-.instal1l
-.instal2le
-.in9s8t8a8l8l9e8r8s.
-.installe4r1s2
-.in9t8e8r9d8i8s9c8i9p8l8i9n8a8r8y.
-.in1t
-.in5ter3d
-.interd2i
-.interdis1
-.interd2is1c
-.interdis1ci
-.interdisc2ip
-.interdisci1p2l2
-.interdiscipli4n
-.interdiscipl4i1na
-.interdisciplin2a2r
-.in9t8e8r9g8a9l8a8c9t8i8c.
-.interg2
-.inter1ga
-.intergala2c1t
-.in9u8t8i8l8e.
-.in1u
-.in4u1t2i
-.in9u8t8i8l9i9t8y.
-.inutil1i
-.inut2il1it
-.inutili1ty
-.ir9r8e9d8u8c9i8b8l8e.
-.ir2r2ed
-.irre1du
-.irredu2c
-.irreduci4b
-.irredu1ci
-.irreduci1b2l2
-.ir9r8e9d8u8c9i8b8l8y.
-.irreducib1ly
-.ir9r8e8v9o9c8a9b8l8e.
-.irrev2
-.irre5voc
-.irrevo1ca
-.irrevoca1b2l2
-.is8o8t9r8o8p8y.
-.i2so
-.isotropy5
-.is8o9t8r8o8p9i8c.
-.isotrop3ic
-.it8i8n9e8r9a8r8y.
-.i1ti
-.i2t1in
-.it2ine
-.itin4er4a2r
-.itin1er
-.itiner1a
-.it8i8n9e8r9a8r9i8e8s.
-.itinerar1i
-.itinerar2ie4
-.je9r8e9m8i9a8d8s.
-.1je
-.jerem2i3a
-.jeremia2d
-.jeremia2d1s2
-.ke8y9n8o8t8e.
-.ke8y9n8o8t8e8s.
-.keyno4tes
-.ke8y9s8t8r8o8k8e.
-.keys4
-.keys1t
-.keyst4r
-.keystr2ok2
-.ke8y9s8t8r8o8k8e8s.
-.keystrokes4
-.ki8l8n9i8n8g.
-.k1i
-.k4i2l1n2
-.kiln1in
-.kilnin4g
-.la8c9i9e8s8t.
-.l4a2ci4
-.la3c2ie4
-.laci1est
-.la8m9e8n9t8a9b8l8e.
-.la1men
-.la3men1t
-.lamen2ta4b
-.lamen1ta
-.lamentab2l2
-.la8n8d9s8c8a8p9e8r.
-.3l4and
-.la2n
-.lan2d1s2
-.landsca4p
-.lands1ca
-.landsca5per
-.la8n8d9s8c8a8p9e8r8s.
-.landscape4r1s2
-.la8r9c8e9n8y.
-.l2a2r
-.lar1c
-.lar2ce
-.lar1cen4
-.la8r9c8e9n9i8s8t.
-.lar4ceni
-.le8a8f9h8o8p9p8e8r.
-.le2a
-.lea2f
-.lea4fh
-.leafho4p1p
-.leafhop2pe
-.leafhop3per
-.le8a8f9h8o8p9p8e8r8s.
-.leafhoppe4r1s2
-.le8t9t8e8r9s8p8a8c9i8n8g.
-.le4t3t2
-.lette4r1s2
-.letter1sp
-.letter2s1pa
-.lettersp4a2ci
-.letterspa2c1in
-.letterspac1ing
-.li8f8e9s8p8a8n.
-.life1sp
-.life2s1pa
-.lifespa4n
-.li8f8e9s8p8a8n8s.
-.lifespa2n1s2
-.li8f8e9s8t8y8l8e.
-.lifes2ty
-.lifes2tyl
-.li8f8e9s8t8y8l8e8s.
-.lifestyles2
-.li8g8h8t9w8e8i8g8h8t.
-.3ligh
-.lightw4
-.lightwei2
-.l2ightwe2ig2
-.li8m9o8u9s8i8n8e8s.
-.li4mo
-.li3mo2us
-.limou2
-.limou2s1in
-.limous2ine
-.limousi1nes
-.li8n8e9b8a8c8k8e8r.
-.1l4ine
-.lin2e2b
-.lineback1
-.lineback1er
-.li8n8e9s8p8a8c8i8n8g.
-.li1nes
-.li4ne1sp
-.line2s1pa
-.linesp4a2ci
-.linespa2c1in
-.linespac1ing
-.li9o8n9e8s8s.
-.lio2n
-.lio1nes
-.lion2e2ss
-.li8t8h9o9g8r8a8p8h8e8d.
-.l2ith
-.litho4g
-.litho1gr
-.lithograph4ed
-.li8t8h9o9g8r8a8p8h8s.
-.lithogra4p4h1s2
-.lo9b8o8t9o8m8y.
-.lobo4to
-.loboto3my
-.lo9b8o8t9o8m9i8z8e.
-.lobotom2iz
-.lobotomi2ze
-.lo8g8e8s.
-.lo1ge
-.lo8n8g9e8s8t.
-.5long
-.lo2n
-.lo9q8u8a8c9i8t8y.
-.lo1q
-.loqu2
-.loquac4
-.loqu4a2ci
-.loqua2c1it
-.loquaci1ty
-.lo8v8e9s8t8r8u8c8k.
-.4lov
-.lov4e2s
-.lov2est4r
-.lovestruc5
-.lovestruck1
-.ma8c8r8o9e8c8o9n8o8m8i8c8s.
-.macro4e
-.macroe1co
-.macroeco2n
-.macroeco3nomic
-.macroeconomi4c3s2
-.ma8l9a9p8r8o8p9i8s8m.
-.malapr2
-.malapropi2s1m
-.ma8l9a9p8r8o8p9i8s8m8s.
-.malaprop4is4m1s2
-.ma8n9s8l8a8u8g8h9t8e8r.
-.ma2n1s2
-.man2s1l2
-.manslaugh3
-.ma8n9u9s8c8r8i8p8t.
-.man2us
-.manusc2
-.manuscri2
-.manuscr2ip
-.manuscri2p1t
-.ma8r9g8i8n9a8l.
-.marg2
-.margi4n
-.margi1na
-.ma8t8h9e9m8a9t8i9c8i8a8n.
-.m4ath3
-.math5em
-.math2e
-.1mathe1ma
-.mathemat1ic
-.mathemat2i1ci
-.mathemati3c2i1a
-.mathematici2a2n
-.ma8t8h9e9m8a9t8i9c8i8a8n8s.
-.mathematicia2n1s2
-.ma8t8t8e8s.
-.mat5te
-.ma4t3t2
-.mat4tes
-.me8d9i8c9a8i8d.
-.2med
-.m4edi
-.med3i1ca
-.medicai2
-.medica2id
-.me8d8i9o8c8r8e.
-.me1d2io
-.mediocre3
-.me8d8i9o8c9r8i9t8i8e8s.
-.medi5ocrit
-.mediocri2
-.medio5cri1ti
-.mediocrit2ie4
-.me8g8a9l8i8t8h.
-.me2g
-.m4egal
-.me1ga
-.me3gal1i
-.megal1it
-.megal2ith
-.me8g8a9l8i8t8h8s.
-.megali2t4h1s2
-.me8t8a9b8o8l9i8c.
-.me4ta
-.me2ta4b
-.metabol3ic
-.metabol2i
-.me9t8a8b9o9l8i8s8m.
-.metaboli2s1m
-.me9t8a8b9o9l8i8s8m8s.
-.metabol4is4m1s2
-.me9t8a8b9o9l8i8t8e.
-.metabo5l2ite
-.metabol1it
-.me9t8a8b9o9l8i8t8e8s.
-.metabolit4es
-.me8t8a9l8a8n9g8u8a8g8e.
-.met3a2l
-.meta5la
-.metala2n
-.metal2ang
-.metalan1gu
-.metalangu4a
-.me8t8a9l8a8n9g8u8a8g8e8s.
-.me8t8a9p8h8o8r9i8c.
-.metapho4r
-.me8t8h9a8n8e.
-.metha2n4
-.me9t8r8o8p9o9l8i8s.
-.m4etr
-.metropol2i
-.me9t8r8o8p9o9l8i8s8e8s.
-.metropol4ise
-.metropolis1e4s
-.me8t9r8o9p8o8l9i9t8a8n.
-.metropol1it
-.metropoli3ta2n
-.metropoli1ta
-.me8t9r8o9p8o8l9i9t8a8n8s.
-.metropolita2n1s2
-.mi8c8r8o9e8c8o9n8o8m8i8c8s.
-.m4i1cr
-.micro4e
-.microe1co
-.microeco2n
-.microeco3nomic
-.microeconomi4c3s2
-.mi9c8r8o9f8i8c8h8e.
-.micro2fi
-.microf4i2ch
-.microfiche2
-.mi9c8r8o9f8i8c8h8e8s.
-.microfich1es
-.mi8c8r8o9o8r8g8a8n9i8s8m.
-.microo2
-.microorg2
-.microor1ga
-.microorgan5is
-.microorga2n
-.microorgani2s1m
-.mi8c8r8o9o8r8g8a8n9i8s8m8s.
-.microorgan4is4m1s2
-.mi8l8l9a8g8e.
-.m4il1l
-.mi8l9l8i9l8i8t8e8r.
-.mill2i
-.mil4l4i4l
-.millil1i
-.mill2il1it
-.millil2ite
-.mi8m8e8o9g8r8a8p8h8e8d.
-.mimeo2g
-.mimeo1gr
-.mimeograph4ed
-.mi8m8e8o9g8r8a8p8h8s.
-.mimeogra4p4h1s2
-.mi8m9i8c9r8i8e8s.
-.mim1i
-.mim4i1cr
-.mimicri2
-.mimicr2ie4
-.mi8n9i8s.
-.m2ini
-.min1is
-.mi8n8i9s8y8m9p8o9s8i8u8m.
-.minis4y
-.minisy4m1p
-.minisym1pos
-.minisympo5si4u
-.mi8n8i9s8y8m9p8o9s8i8a.
-.minisympos2i1a
-.mi9n8u8t9e8r.
-.m4in1u
-.mi9n8u8t9e8s8t.
-.mi8s9c8h8i8e9v8o8u8s9l8y.
-.m2is1c
-.mis3ch2
-.misch2ie4
-.mischievou2
-.mischievo2us
-.mischievous1l2
-.mischievous1ly
-.mi9s8e8r8s.
-.m4ise
-.mis3er
-.mise4r1s2
-.mi9s8o8g9a9m8y.
-.mi2so
-.miso1ga
-.miso2gam
-.mo8d9e8l9l8i8n8g.
-.mo2d1
-.model1l
-.modell2i
-.model2lin4
-.mo8l9e9c8u8l8e.
-.mole1cu
-.mole4cul
-.molecul4e
-.mo8l9e9c8u8l8e8s.
-.molecules2
-.mo8n9a8r8c8h8s.
-.mo1n1a
-.monar3c
-.mon2a2r
-.monar2ch
-.monarc4h1s2
-.mo8n8e8y9l8e8n9d8e8r.
-.moneylen1de
-.mo8n8e8y9l8e8n9d8e8r8s.
-.moneylende4r5s2
-.mo8n8o9c8h8r8o8m8e.
-.mono2ch4
-.monoc4hr4
-.monochro2me
-.mo8n8o9e8n9e8r9g8e8t8i8c.
-.mo3noe
-.monoen1er
-.monoenerg2
-.monoener3get
-.monoenerget1ic
-.mo8n9o8i8d.
-.monoi2
-.mono2id
-.mo8n8o9p8o8l8e.
-.mo4nop
-.mo8n8o9p8o8l8e8s.
-.monopoles2
-.mo9n8o8p9o8l8y.
-.monopo2ly
-.mo8n8o9s8p8l8i8n8e.
-.monos1p2l2
-.monospli4n
-.monosp1l4ine
-.mo8n8o9s8p8l8i8n8e8s.
-.monospli1nes
-.mo8n8o9s8t8r8o8f8i8c.
-.monos5t
-.monost4r
-.monostro2fi
-.mo9n8o8t9o9n8i8e8s.
-.mono1to
-.mo2noto2n
-.monoton2ie4
-.mo9n8o8t9o9n8o8u8s.
-.mono4tono
-.monoto1nou2
-.monotono2us
-.mo9r8o8n9i8s8m.
-.moro5n4is
-.moro2n
-.moroni2s1m
-.mo8s9q8u8i9t8o.
-.mos2
-.mosqu2
-.mosq2ui2
-.mosqui1to
-.mo8s9q8u8i9t8o8s.
-.mosquitos2
-.mo8s9q8u8i9t8o8e8s.
-.mu8d9r8o8o8m.
-.mu1dr
-.mud1room
-.mudroo2
-.mu8d9r8o8o8m8s.
-.mudroo4m1s2
-.mu8l9t8i9f8a8c9e8t8e8d.
-.5mu4lt
-.mul1ti3
-.multif2
-.multi1fa
-.multifa4ce
-.multifacet4
-.multiface2t1ed
-.mu8l9t8i9p8l8i8c9a8b8l8e.
-.mult2ip
-.multi1p2l2
-.multipli1ca
-.multiplica1b2l2
-.mu8l8t8i9u8s8e8r.
-.multi4u
-.multi2us
-.ne8o9f8i8e8l8d8s.
-.3neo
-.ne5of
-.neo2fi
-.neof2ie4
-.neofie2ld3
-.neofiel2d1s2
-.ne8o9n8a8z8i.
-.neo2n
-.neo1n1a
-.neona2z1i
-.ne8o9n8a8z8i8s.
-.neonaz4is
-.ne8p8h9e8w8s.
-.nephe4
-.ne8p8h9r8i8t8e.
-.nep4hr4
-.nephr2ite
-.ne8p8h9r8i8t8i8c.
-.nephr4i2t3ic
-.nephri1ti
-.ne8w9e8s8t.
-.ne4w
-.newest3
-.ne8w8s9l8e8t9t8e8r.
-.news4l2
-.news2le
-.newsle4t3t2
-.ne8w8s9l8e8t9t8e8r8s.
-.newslette4r1s2
-.ni8t8r8o9m8e8t8h9a8n8e.
-.n2it
-.ni3tr
-.nitro2me
-.nitro4met
-.nitrometha2n4
-.no9n8a8m8e.
-.no4n
-.no1n1a
-.no8n9a8r9i8t8h9m8e8t9i8c.
-.nonar3i
-.non2a2r
-.nonar2ith
-.nonarit4h1m
-.nonarithmet4
-.nonarithmet1ic
-.no8n9e8m8e8r9g8e8n8c8y.
-.none1me
-.nonemerg2
-.nonemer1gen
-.nonemergen1cy
-.no8n9e8q8u8i9v8a8r8i9a8n8c8e.
-.none2q
-.nonequ2
-.noneq2ui2
-.nonequ2iv3
-.nonequi1va
-.nonequiv2a2r
-.nonequivar1i
-.nonequivar3i2a2n
-.nonequivar2i3a
-.nonequivar4ianc
-.no8n8e9t8h8e9l8e8s8s.
-.noneth2e
-.nonethe1les2
-.nonethe3l2e2ss
-.no8n9e8u8c8l8i8d9e8a8n.
-.non4eu
-.noneu1c4l4
-.noneucl2id
-.noneuclidea2n
-.no8n9i8s8o9m8o8r9p8h8i8c.
-.non5i
-.non1is
-.noni2so
-.noni3som
-.noniso1mo
-.nonisomo2r
-.nonisomor1p
-.nonisomorp4h4
-.nonisomorph1ic
-.no8n9p8s8e8u8d8o9c8o8m9p8a8c8t.
-.non1p4
-.non2p1s2
-.nonp2se
-.nonps4eu
-.nonpseu1do
-.nonpseudo1co
-.nonpseudoco4m1p
-.nonpseudocom1pa
-.nonpseudocompa2c4t
-.no8n9s8m8o8o8t8h.
-.no2n3s2
-.non2s3m
-.nons1mo
-.nonsmoo2
-.nonsmo4oth
-.no8n9u8n8i9f8o8r8m.
-.no3nu4n
-.nonu1ni
-.nonuni1fo
-.nonunifo2r
-.nonunifor1m
-.no8n9u8n8i9f8o8r8m9l8y.
-.nonunifor4m1l
-.nonuniform1ly
-.no8r9e8p9i9n8e8p8h9r8i8n8e.
-.nore5pi2n
-.norep2ine
-.norepinep4hr4
-.norep2inephr2in4e
-.no8t9w8i8t8h9s8t8a8n8d9i8n8g.
-.notw4
-.notwi2
-.notw2ith3
-.notwi2t4h1s2
-.notwith5st4and
-.notwiths1ta
-.notwithsta2n
-.notwithstand1in
-.nu9c8l8e8o9t8i8d8e.
-.nucle3
-.nu1c4l4
-.nucle4ot
-.nucleot2id
-.nu9c8l8e8o9t8i8d8e8s.
-.nucleotide4s2
-.nu8t9c8r8a8c8k9e8r.
-.nu4tc
-.nutcrack1
-.nutcrack1er
-.nu8t9c8r8a8c8k9e8r8s.
-.nutcracke4r1s2
-.oe8r9s8t8e8d8s.
-.o3er
-.oe4r1s2
-.oers4t1ed
-.oerste2d1s2
-.of8f9l8i8n8e.
-.o4f1f
-.off4l2
-.offlin4
-.off1l4ine
-.of8f9l8o8a8d.
-.offl4oa
-.offloa2d3
-.of8f9l8o8a8d8s.
-.offloa2d1s2
-.of8f9l8o8a8d8e8d.
-.offloa2d1ed
-.ol8i9g8o8p9o9l8i8s8t.
-.ol2i
-.ol2ig
-.oli2go
-.ol2igopol2i
-.ol8i9g8o8p9o9l8i8s8t8s.
-.oligopolis4t1s2
-.ol8i9g8o8p9o8l8y.
-.oligopo2ly
-.ol8i9g8o8p9o8l9i8e8s.
-.oligopol2ie4
-.op9e8r9a8n8d.
-.op1er
-.3oper1a
-.op4er4and
-.opera2n
-.op9e8r9a8n8d8s.
-.operan2d1s2
-.or8a8n8g9u8t8a8n.
-.ora2n
-.or2ang
-.oran1gu
-.oran4gu4t
-.orangu1ta
-.ora2nguta2n
-.or8a8n8g9u8t8a8n8s.
-.oranguta2n1s2
-.or9t8h8o9d8o8n9t8i8s8t.
-.ortho2do4
-.orthodo2n
-.orthodon3t4i
-.orthodon1t
-.or9t8h8o9d8o8n9t8i8s8t8s.
-.orthodontis4t1s2
-.or9t8h8o9k8e8r9a9t8o8l9o8g8y.
-.orth2ok
-.orthok1er
-.orthoker1a
-.orthokera1to
-.orthokeratol1o1gy
-.or8t8h8o9n8i8t8r8o9t8o8l8u8e8n8e.
-.ortho2n
-.orthon2it
-.orthoni3tr
-.orthonitro1to
-.orthonitrotolu3en
-.orthonitrotolu4ene
-.ov8e8r9v8i8e8w.
-.overv2ie4
-.ov8e8r9v8i8e8w8s.
-.ox9i8d9i8c.
-.ox3i
-.oxi5di
-.ox2id
-.pa8d9d8i8n8g.
-.1pa
-.p4a2d
-.pad4d1in
-.pad1d4
-.pa8i8n9l8e8s8s9l8y.
-.p4ai2
-.pa4i4n4
-.pa4i4n1l
-.painles2
-.pain3l2e2ss
-.painles4s1l2
-.painless1ly
-.pa8l9e8t8t8e.
-.p4al
-.p2ale
-.pale4t3t2
-.pa8l9e8t8t8e8s.
-.palet4tes
-.pa8r9a9b8o8l8a.
-.p2a2r
-.pa2rab
-.parabo1la
-.pa8r9a9b8o8l9i8c.
-.parabol3ic
-.parabol2i
-.pa9r8a8b9o9l8o8i8d.
-.paraboloi2
-.parabolo2id
-.pa8r9a9d8i8g8m.
-.para2d
-.par2adi
-.parad2ig
-.paradig1m
-.pa8r9a9d8i8g8m8s.
-.paradig4m1s2
-.pa8r8a9c8h8u8t8e.
-.para2ch
-.parachu4t
-.pa8r8a9c8h8u8t8e8s.
-.pa8r8a9d8i9m8e8t8h8y8l9b8e8n8z8e8n8e.
-.parad4imet
-.paradimethy2l1b
-.paradimethylb4e4n3z
-.paradimethylben2ze
-.paradimethylbenze4n
-.pa8r8a9f8l8u8o8r8o9t8o8l8u8e8n8e.
-.para2f
-.paraf4l2
-.paraflu3o
-.parafluo3r
-.parafluoro1to
-.parafluorotolu3en
-.parafluorotolu4ene
-.pa8r8a9g8r8a8p8h9e8r.
-.para1gr
-.parag5ra3ph4er
-.pa8r8a9l8e9g8a8l.
-.par3al
-.par2ale
-.paral4egal
-.parale1ga
-.pa8r9a8l9l8e8l9i8s8m.
-.paral1l
-.paral2le
-.paral3lel
-.parallel2i
-.paralle2lis
-.paralleli2s1m
-.pa8r8a9m8a8g9n8e8t9i8s8m.
-.par4a1ma
-.param3ag
-.para5mag1n
-.paramagneti2s4m
-.pa8r8a9m8e8d8i8c.
-.para2med
-.param4edi
-.pa8r8a9m8e8t8h8y8l9a8n8i8s8o8l8e.
-.param3et
-.paramethy3la
-.paramethyla2n
-.paramethylani2so
-.pa9r8a8m9e9t8r8i8z8e.
-.param4etr
-.parametri2ze
-.pa8r8a9m8i8l9i9t8a8r8y.
-.par2ami
-.paramil1i
-.param2il1it
-.paramili1ta
-.paramilit2a2r
-.pa8r8a9m8o8u8n8t.
-.para2mo
-.paramou2
-.paramoun1t
-.pa8t8h9o9g8e8n9i8c.
-.p4ath
-.pat4ho
-.patho4g
-.patho1ge4
-.patho1gen
-.pe8e8v9i8s8h.
-.p4ee
-.pee1vi
-.peevis2h
-.pe8e8v9i8s8h9n8e8s8s.
-.peevis2h1n
-.peevish1nes
-.peevishn2e2ss
-.pe8n9t8a9g8o8n.
-.pen1t
-.pen1ta
-.penta2go
-.pentago2n2
-.pe8n9t8a9g8o8n8s.
-.pentago2n3s2
-.pe9t8r8o9l8e9u8m.
-.petrol4eu
-.ph8e9n8o8m9e9n8o8n.
-.ph4e3no
-.phe2n
-.pheno2me
-.pheno1men
-.phenom4eno
-.phenomeno4n
-.ph8e8n8y8l9a8l8a9n8i8n8e.
-.pheny3la
-.phenylala2n
-.phenylala5n2ine
-.phenylalan1in
-.ph8i9l8a8t9e9l8i8s8t.
-.phi4latel2i4
-.philate2lis
-.ph8i9l8a8t9e9l8i8s8t8s.
-.philatelis4t1s2
-.ph8o9n8e8m8e.
-.3phone
-.pho2n
-.phone1me
-.ph8o9n8e8m8e8s.
-.phone2mes
-.ph8o9n8e9m8i8c.
-.phone5mi
-.ph8o8s9p8h8o8r9i8c.
-.phos1p
-.phospho5
-.phospho4r
-.ph8o9t8o9g8r8a8p8h8s.
-.pho1to
-.photo2gr
-.photogra4p4h1s2
-.ph8o9t8o9o8f8f9s8e8t.
-.photoo2
-.photoo4f1f
-.photoof2f3s
-.pi8c9a9d8o8r.
-.pi1ca
-.pica2d
-.pica1do
-.picad4or
-.pi8c9a9d8o8r8s.
-.picado4rs2
-.pi8p8e9l8i8n8e.
-.p2ip
-.pipe4
-.pipel2i
-.pipe1l4ine
-.pi8p8e9l8i8n8e8s.
-.pipeli1nes
-.pi8p8e9l8i8n9i8n8g.
-.pipel2in3i
-.pipelin1in
-.pipelinin4g
-.pi9r8a9n8h8a8s.
-.p4ir
-.pi1ra
-.pira2n
-.pira4n1h4
-.piranha4
-.pl8a8c8a9b8l8e.
-.1p2l2
-.pla1ca
-.placa1b2l2
-.pl8a8n8t9h8o8p9p8e8r.
-.3pla2n
-.plan1t
-.plantho4p1p
-.planthop2pe
-.planthop3per
-.pl8a8n8t9h8o8p9p8e8r8s.
-.planthoppe4r1s2
-.pl8e8a8s9a8n8c8e.
-.ple2a
-.pleasa2
-.plea3sanc
-.pleasa2n
-.pl8u8g9i8n.
-.plug5in
-.pl8u8g9i8n8s.
-.plu5g4i2n1s2
-.po8l9t8e8r9g8e8i8s8t.
-.po4l2t
-.pol1te
-.polterg2
-.poltergei2
-.po8l8y9e8n8e.
-.po2ly
-.po8l8y9e8t8h9y8l9e8n8e.
-.polye4t
-.po9l8y8g9a9m8i8s8t.
-.poly1ga
-.poly2gam
-.polygam2is
-.po9l8y8g9a9m8i8s8t8s.
-.polygamis4t1s2
-.po8l8y8g9o8n9i9z8a9t8i8o8n.
-.poly1go
-.polygo2n2
-.polygo3ni
-.polygoniza1
-.polygoniza1t2io
-.polygonizatio2n
-.po9l8y8p8h9o9n8o8u8s.
-.polypho2n
-.polypho1nou2
-.polyphono2us
-.po8l8y9s8t8y8r8e8n8e.
-.po2lys4
-.polys1t
-.polys2ty
-.po8m8e9g8r8a8n9a8t8e.
-.po2me
-.pome2g
-.pome1gr
-.pomegra2n2
-.pomegra1na
-.pomegran2at
-.po8r8o9e8l8a8s9t8i8c.
-.1p4or
-.poro4e
-.poro4el
-.poroe1la
-.poroelast2i
-.poroelas1tic
-.po8r9o8u8s.
-.porou2
-.poro2us
-.po8r9t8a9b8l8e.
-.por1ta
-.por2tab
-.portab2l2
-.po8s8t9a8m9b8l8e.
-.1pos
-.pos2ta
-.posta4m1b
-.postamb2l2
-.po8s8t9a8m9b8l8e8s.
-.postambles2
-.po8s8t9h8u9m8o8u8s.
-.posthu1mo
-.posthu3mo2us
-.posthumou2
-.po8s8t9s8c8r8i8p8t.
-.pos4t1s2
-.post4sc
-.postscri2
-.postscr2ip
-.postscri2p1t
-.po8s8t9s8c8r8i8p8t8s.
-.postscrip4t1s2
-.po8s9t8u8r9a8l.
-.pos1tu
-.postu1ra
-.pr8e9a8m9b8l8e.
-.prea4m1b
-.preamb2l2
-.pr8e9a8m9b8l8e8s.
-.preambles2
-.pr8e9l8o8a8d8e8d.
-.prel4oa
-.preloa2d3
-.preloa2d1ed
-.pr8e9p8a8r9i8n8g.
-.pre2pa
-.prep4a4r1i
-.prep2a2r
-.preparin4g
-.pr8e9p8r8i8n8t.
-.pr2epr2
-.preprin4t3
-.pr8e9p8r8i8n8t8s.
-.preprin4t4s2
-.pr8e9p8r8o8c8e8s9s8o8r.
-.pre3pro
-.prepr2oc
-.prepro1ce
-.preproc2e2ss
-.preproces1so
-.pr8e9p8r8o8c8e8s9s8o8r8s.
-.preprocesso4rs2
-.pr8e9s8p8l8i8t9t8i8n8g.
-.pre1sp
-.pres1p2l2
-.prespl1it
-.prespl4i4t3t2
-.presplit2t1in
-.pr8e9w8r8a8p.
-.prewra4
-.pr8e9w8r8a8p8p8e8d.
-.prewra4p1p
-.prewrap2pe
-.prewrap4p2ed
-.pr8i8e8s8t9e8s8s8e8s.
-.5pr2i4e4
-.pri1est
-.pries4t2e2ss
-.priestess1e4s
-.pr8e8t9t8y9p8r8i8n9t8e8r.
-.pre4t3t2
-.pret1ty
-.pr2ettypr2
-.prettyprin4t3
-.pr8e8t9t8y9p8r8i8n9t8i8n8g.
-.prettyprint2i
-.prettyprin4t3ing
-.prettyprin2t1in
-.pr8o9c8e9d8u8r9a8l.
-.pr2oc
-.pro1ce
-.proce1du
-.procedu1ra
-.pr8o8c8e8s8s.
-.proc2e2ss
-.pr8o9c8u8r9a8n8c8e.
-.procu1ra
-.procura2n
-.pr8o8g9e9n8i8e8s.
-.pro1ge
-.pro1gen
-.proge5n2ie4
-.pr8o8g9e9n8y.
-.pro4geny
-.pr8o9g8r8a8m9m8a8b8l8e.
-.pro1gr
-.program1m
-.program1ma
-.program2mab
-.programmab2l2
-.pr8o8m9i9n8e8n8t.
-.prom4i
-.prom1in
-.prom2ine
-.promi1nen
-.prominen1t
-.pr8o9m8i8s9c8u9o8u8s.
-.prom2is
-.prom2is1c
-.promis1cu
-.promiscu1ou2
-.promiscuo2us
-.pr8o8m9i8s9s8o8r8y.
-.prom4i2s1s
-.promis1so
-.promisso1ry
-.pr8o8m9i8s8e.
-.prom4ise
-.pr8o8m9i8s8e8s.
-.promis1e4s
-.pr8o9p8e8l9l8e8r.
-.pro3pel
-.propel1l
-.propel2le
-.pr8o9p8e8l9l8e8r8s.
-.propelle4r1s2
-.pr8o9p8e8l9l8i8n8g.
-.propell2i
-.propel2lin4
-.pr8o9h8i8b9i9t8i8v8e.
-.pro1h2
-.prohibi2t
-.prohibi1ti
-.prohibi1t2iv
-.pr8o9h8i8b9i9t8i8v8e9l8y.
-.prohibitiv4e1ly
-.pr8o9s8c8i8u8t9t8o.
-.pros2c
-.pros1ci
-.prosci1u
-.prosciu4t3t2
-.prosciut5to
-.pr8o9t8e8s8t9e8r.
-.pro1t
-.pro4tes
-.pr8o9t8e8s8t9e8r8s.
-.proteste4r1s2
-.pr8o9t8e8s9t8o8r.
-.prot4es2to
-.pr8o9t8e8s9t8o8r8s.
-.protesto4rs2
-.pr8o9t8o9l8a8n9g8u8a8g8e.
-.pro1to
-.proto1la
-.proto4la2n
-.protol2ang
-.protolan1gu
-.protolangu4a
-.pr8o9t8o9t8y8p9a8l.
-.proto1ty
-.prototy1pa
-.prototyp4al
-.pr8o8v9i8n8c8e.
-.prov1in
-.prov2inc
-.pr8o8v9i8n8c8e8s.
-.pr8o9v8i8n9c8i8a8l.
-.provin1ci
-.provin3c2i1a
-.provinci2al
-.pr8o8w9e8s8s.
-.prow2e2ss
-.ps8e8u9d8o9d8i8f9f8e8r9e8n9t8i8a8l.
-.2p1s2
-.p2se
-.ps4eu
-.pseu1do
-.pseudod1if
-.pseudodi4f1f
-.pseudodiffer1
-.pseudodiffer3en1t
-.pseudodifferent2i
-.pseudodifferen1t2i1a
-.pseudodifferenti2al
-.ps8e8u9d8o9f8i9n8i8t8e.
-.pseu2d5of
-.pseudo2fi
-.pseudo2fin
-.pseudof2ini
-.pseudofin2it
-.pseudofin2ite
-.ps8e8u9d8o9f8i9n8i8t8e9l8y.
-.pseudofinite1ly
-.ps8e8u9d8o9f8o8r8c8e8s.
-.pseudo1fo
-.pseudofo2r
-.pseudofor1c
-.pseudofor2ce
-.ps8e8u9d8o8g9r8a9p8h8e8r.
-.pseud4og
-.pseudo1gr
-.pseudog5ra3ph4er
-.ps8e8u9d8o9g8r8o8u8p.
-.pseudo4g4ro
-.pseudogrou2
-.ps8e8u9d8o9g8r8o8u8p8s.
-.pseudogrou2p1s2
-.ps8e8u9d8o9n8y8m.
-.pseu4do2n
-.pseudonym4
-.ps8e8u9d8o9n8y8m8s.
-.pseudony4m1s2
-.ps8e8u9d8o9w8o8r8d.
-.pseudo4wo2
-.ps8e8u9d8o9w8o8r8d8s.
-.pseudowor2d1s2
-.ps8y9c8h8e9d8e8l9i8c.
-.ps4y
-.p4sy1c
-.psy3ch
-.psych4e2
-.psy4ch4ed
-.psychedel2i
-.ps8y8c8h8s.
-.psyc4h1s2
-.pu9b8e8s9c8e8n8c8e.
-.pub3
-.pub4e
-.pu4bes4
-.pubes2c
-.pubes1cen
-.pubes3cenc
-.qu8a8d9d8i8n8g.
-.qu2
-.qua2d
-.quad4d1in
-.quad1d4
-.qu8a9d8r8a8t9i8c.
-.qua1dr
-.quadrat1ic
-.qu8a9d8r8a8t9i8c8s.
-.quadrati4c3s2
-.qu8a8d9r8a9t8u8r8e.
-.quadra2tu
-.quadra3ture
-.qu8a8d9r8i9p8l8e8g9i8c.
-.quadri2p2l2
-.quadr2ip
-.quadripleg4ic
-.qu8a8i8n8t9e8r.
-.quai2
-.qua4i4n
-.quain1t
-.qu8a8i8n8t9e8s8t.
-.qu8a9s8i9e8q8u8i8v9a9l8e8n8c8e.
-.quas2ie4
-.quasie1q
-.qu2asiequ2
-.quasieq2ui2
-.quasiequ2iv3
-.quasiequi1va
-.quasiequiv2ale
-.quasiequiva3lenc
-.qu8a9s8i9e8q8u8i8v9a9l8e8n8c8e8s.
-.qu8a9s8i9e8q8u8i8v9a9l8e8n8t.
-.quasiequiva1len1t
-.qu8a9s8i9h8y9p8o9n8o8r9m8a8l.
-.quasi3h
-.quasihy3po
-.quasihypo2n
-.quasihyponor1m
-.quasihyponor1ma
-.qu8a9s8i9r8a8d9i9c8a8l.
-.quas4i2r
-.quasi1r5a
-.quasira2d
-.quasir2adi
-.quasirad3i1ca
-.qu8a9s8i9r8e8s8i8d9u8a8l.
-.quasi4res
-.quasire1si
-.quasire2s2id
-.quasiresi2du
-.quasiresid1u1a
-.qu8a9s8i9s8m8o8o8t8h.
-.qua1sis
-.quasi2s1m
-.quasis1mo
-.quasismoo2
-.quasismo4oth
-.qu8a9s8i9s8t8a9t8i8o8n9a8r8y.
-.quasis1ta
-.quasistation5a2r
-.quasista1t2io
-.quasistatio2n
-.quasistatio1n1a
-.qu8a9s8i9t8o8p8o8s.
-.qu5a5si4t
-.quasi1to
-.quasito1pos
-.qu8a9s8i9t8r8i9a8n9g8u9l8a8r.
-.quasi5tr2i3a
-.quasitri2a2n
-.quasitri2ang
-.quasitrian1gu
-.quasitriangu1la
-.quasitriangul2a2r
-.qu8a9s8i9t8r8i8v9i8a8l.
-.quasitr2i4v
-.quasitriv3i
-.quasitriv2i1a
-.quasitrivi2al
-.qu8i8n9t8e8s9s8e8n8c8e.
-.q2ui2
-.qui4n
-.quin1t
-.quin4t2e2ss
-.quintes4senc
-.qu8i8n9t8e8s9s8e8n8c8e8s.
-.qu8i8n9t8e8s9s8e8n9t8i8a8l.
-.quintessen1t
-.quintessent2i
-.quintessen1t2i1a
-.quintessenti2al
-.ra8b9b8i8t9r8y.
-.2rab
-.ra2b1b
-.rabbi2t
-.rabbi3tr
-.rabbit5ry
-.ra9d8i9o8g9r8a9p8h8y.
-.ra2d
-.r2adi
-.ra3d2io
-.radio5g
-.radio2gr
-.radio4g3ra1phy
-.ra8f8f9i8s8h.
-.raf5fi
-.ra2f
-.ra4f1f4
-.raf2f5is
-.raffis2h
-.ra8f8f9i8s8h9l8y.
-.raffis4h1l4
-.raffish1ly
-.ra8m9s8h8a8c8k8l8e.
-.ra4m1s2
-.ram4s2h
-.ramshack1
-.ramshack1l
-.ra8v9e8n9o8u8s.
-.rav4e4no
-.rave1nou2
-.raveno2us
-.re9a8r8r8a8n8g8e9m8e8n8t.
-.re5ar1r4
-.re2a2r
-.rearran4ge
-.rearra2n
-.rearr2ang
-.rearrange1me
-.rearrange1men
-.rearrange3men1t
-.re9a8r8r8a8n8g8e9m8e8n8t8s.
-.rearrangemen4t4s2
-.re8c9i9p8r8o8c9i9t8i8e8s.
-.reciproci1ti
-.reciprocit2ie4
-.re8c9t8a8n9g8l8e.
-.rec4ta2n
-.re2c1t
-.rect5ang
-.rec1ta
-.rectan1gl2
-.rectan1gle
-.re8c9t8a8n9g8l8e8s.
-.rectangles2
-.re8c9t8a8n9g8u9l8a8r.
-.rectan1gu
-.rectangu1la
-.rectangul2a2r
-.re9d8i9r8e8c8t.
-.2r2ed
-.r4edi
-.red4ir2
-.redi1re
-.redire2c1t
-.re9d8i9r8e8c8t9i8o8n.
-.redirec1t2io
-.redirectio2n
-.re9d8u8c9i8b8l8e.
-.re1du
-.redu2c
-.reduci4b
-.redu1ci
-.reduci1b2l2
-.re9e8c8h8o.
-.ree2c
-.ree2ch
-.ree3cho2
-.re9p8h8r8a8s8e.
-.rep4hr4
-.rephr2as
-.re9p8h8r8a8s8e8s.
-.rephras1e4s
-.re9p8h8r8a8s8e8d.
-.rephra4s4ed
-.re9p8o9s8i9t8i8o8n.
-.re4posi
-.re1po
-.re1pos
-.repo3s2i1t2io
-.reposi1ti
-.repositio2n
-.re9p8o9s8i9t8i8o8n8s.
-.repositio2n3s2
-.re9p8r8i8n8t.
-.repr2
-.reprin4t3
-.re9p8r8i8n8t8s.
-.reprin4t4s2
-.re9s8t8o8r9a8b8l8e.
-.r4es2to
-.resto2ra
-.resto2rab
-.restorab2l2
-.re8t8r8o9f8i8t.
-.retro2fi
-.re8t8r8o9f8i8t9t8e8d.
-.retrof4i4t4t2
-.retrofit2t1ed
-.re9u8s9a8b8l8e.
-.r4eu2
-.re2us4
-.reusa2
-.reu2s1ab
-.reusab2l2
-.re9u8s8e.
-.re9w8i8r8e.
-.rewi2
-.rew4ir4
-.re9w8r8a8p.
-.rewra4
-.re9w8r8a8p8p8e8d.
-.rewra4p1p
-.rewrap2pe
-.rewrap4p2ed
-.re9w8r8i8t8e.
-.rewri4
-.rewr2ite
-.rh8i9n8o8c9e8r9o8s.
-.rh4
-.rh2i1no
-.rhi4no4c
-.rhino1ce
-.rhinoc2ero
-.ri8g8h8t9e8o8u8s.
-.righ1teo
-.righteou2
-.righteo2us
-.ri8g8h8t9e8o8u8s9n8e8s8s.
-.righteous1n4
-.righteous1nes
-.righteousn2e2ss
-.ri8n8g9l8e8a8d8e8r.
-.rin4g
-.ringl2
-.rin1gle
-.ringle2a
-.ringlea2d1
-.ri8n8g9l8e8a8d8e8r8s.
-.ringleade4r5s2
-.ro9b8o8t.
-.ro9b8o8t8s.
-.robo4t1s2
-.ro9b8o8t8i8c.
-.ro9b8o8t9i8c8s.
-.roboti4c3s2
-.ro8u8n8d9t8a8b8l8e.
-.rou2
-.roun2d
-.round1ta
-.round2tab
-.roundtab2l2
-.ro8u8n8d9t8a8b8l8e8s.
-.roundta5bles2
-.sa8l8e8s9c8l8e8r8k.
-.sa2
-.s2ale
-.sales2
-.sales2c
-.salescle5
-.sales1c4l4
-.sa8l8e8s9c8l8e8r8k8s.
-.salescler4k1s2
-.sa8l8e8s9w8o8m8a8n.
-.sales4w2
-.sale4s1wo2
-.saleswom1
-.saleswo1ma
-.saleswoma2n
-.sa8l8e8s9w8o8m8e8n.
-.saleswo2me
-.saleswo1men
-.sa8l9m8o9n8e8l9l8a.
-.s4a2l4m
-.salmo2n4
-.sal1mo
-.salmon4ella
-.salmonel1l
-.sa8l9t8a9t8i8o8n.
-.sa4l4t
-.sal1ta
-.salta1t2io
-.saltatio2n
-.sa8r9s8a9p8a8r9i8l9l8a.
-.s2a2r
-.sa2r4sa2
-.sa4rs2
-.sars1ap
-.s2a2rsap2a2r4
-.sarsa1pa
-.sarsap4a4r1i
-.sarsaparil1l
-.sa8u8e8r9k8r8a8u8t.
-.sau4
-.sauerkrau4t
-.sc8a8t9o9l8o8g9i9c8a8l.
-.s1ca
-.sca1to
-.scato3log1ic
-.scatologi1ca
-.sc8h8e8d9u8l9i8n8g.
-.s2ch2
-.sche2
-.s4ch4ed
-.sche4dul
-.sche1du
-.schedul2i
-.schedul3ing
-.sc8h8i8z9o9p8h8r8e8n8i8c.
-.schi2z
-.schi1zo
-.schiz2oph
-.schizop4hr4
-.sc8h8n8a8u9z8e8r.
-.sc2h1n
-.sch1na
-.schn2au
-.schnau2z4e
-.schnauz1er
-.sc8h8o8o8l9c8h8i8l8d.
-.s4cho2
-.schoo2
-.schoo4l1c2
-.s2chool2ch
-.schoolch4il2
-.schoolchi2ld
-.sc8h8o8o8l9c8h8i8l8d9r8e8n.
-.schoolchil3dr
-.schoolchildre4
-.schoolchil5dren
-.sc8h8o8o8l9t8e8a8c8h8e8r.
-.schoo4l2t
-.school1te
-.s2chooltea2ch
-.schoolteache2
-.sc8h8o8o8l9t8e8a8c8h9e8r8s.
-.schoolteach3e4r1s2
-.sc8r8u9t8i9n8y.
-.scru2t1i5n
-.scr4u1t2i
-.scrut4iny
-.sc8y8t8h9i8n8g.
-.s1cy
-.scy3thin
-.se8l8l9e8r.
-.sel2le
-.se8l8l9e8r8s.
-.selle4r1s2
-.se8c9r8e9t8a8r9i8a8t.
-.se1cr
-.se4c3re1ta
-.secret2a2r
-.secretar1i
-.secretar2i3a
-.se8c9r8e9t8a8r9i8a8t8s.
-.secretaria4t1s2
-.se8m9a9p8h8o8r8e.
-.se1ma
-.se4map
-.semapho4r
-.se8m9a9p8h8o8r8e8s.
-.se9m8e8s9t8e8r.
-.4se1me
-.se2mes
-.se8m8i9d8e8f9i9n8i8t8e.
-.sem2id
-.semide1f
-.semidef5i5n2ite
-.semide1fi
-.semide2fin
-.semidef2ini
-.semidefin2it
-.se8m8i9d8i9r8e8c8t.
-.semi2di
-.semid4ir2
-.semidi1re
-.semidire2c1t
-.se8m8i9h8o9m8o9t8h8e8t9i8c.
-.semi3h
-.semiho1mo
-.semihom4oth3
-.semihomoth2e
-.semihomo3the4t
-.semihomothet1ic
-.se8m8i9r8i8n8g.
-.sem4ir
-.semir1i
-.semirin4g
-.se8m8i9r8i8n8g8s.
-.semirings2
-.se8m8i9s8i8m9p8l8e.
-.se4m2is
-.semisi4m1p
-.semisim1p2l2
-.se8m8i9s8k8i8l8l8e8d.
-.sem4is4k2
-.semisk1i
-.semisk4il1l
-.semiskil2le
-.se8r8o9e8p8i9d8e9m8i9o9l8o8g9i9c8a8l.
-.s2er4o
-.sero4e
-.seroep4id
-.seroepi3de
-.seroepid4em
-.seroepidem2io
-.seroepidemi1ol
-.seroepidemio3log1ic
-.seroepidemiologi1ca
-.se8r9v8o9m8e8c8h9a8n8i8s8m.
-.4ser3vo
-.servo2me
-.servome2ch
-.servomech5a5nis
-.servomecha2n
-.servomechani2s1m
-.se8r9v8o9m8e8c8h9a8n8i8s8m8s.
-.servomechan4is4m1s2
-.se8s9q8u8i9p8e9d8a9l8i8a8n.
-.s1e4s
-.sesqu2
-.sesq2ui2
-.sesqu2ip
-.sesquipe4
-.sesqui2p2ed
-.sesquip2e2d2a
-.sesquipedal1i
-.sesquipedal2i1a
-.sesquipedali2a2n
-.se8t9u8p.
-.se1tu
-.se8t9u8p8s.
-.setu2p1s2
-.se9v8e8r8e9l8y.
-.5sev
-.sev1er
-.sev4erel
-.severe1ly
-.sh8a8p8e9a8b8l8e.
-.sha3pe4a
-.shape1a4b
-.shapeab2l2
-.sh8o8e9s8t8r8i8n8g.
-.sho4
-.sho2est4r
-.shoestrin4g
-.sh8o8e9s8t8r8i8n8g8s.
-.shoestrings2
-.si8d8e9s8t8e8p.
-.5side4s2
-.s2id
-.sideste4p
-.si8d8e9s8t8e8p8s.
-.sideste2p1s2
-.si8d8e9s8w8i8p8e.
-.sides4w2
-.sideswi2
-.sidesw2ip
-.sideswipe4
-.sk8y9s8c8r8a8p8e8r.
-.sk2
-.skys4c
-.skyscrap3er
-.sk8y9s8c8r8a8p8e8r8s.
-.skyscrape4r1s2
-.sm8o8k8e9s8t8a8c8k.
-.2s1m
-.s1mo
-.s4m2ok
-.smokes4
-.smokes1ta
-.smokestack1
-.sm8o8k8e9s8t8a8c8k8s.
-.smokestac4k1s2
-.sn8o8r9k8e8l9i8n8g.
-.s1n4
-.snorke5l2i
-.snorke4l3ing
-.so9l8e9n8o8i8d.
-.1so
-.sol4eno
-.solenoi2
-.soleno2id
-.so9l8e9n8o8i8d8s.
-.solenoi2d1s2
-.so8l8u8t8e.
-.so1lut
-.so8l8u8t8e8s.
-.so8v9e8r9e8i8g8n.
-.4sov
-.soverei2
-.sovere2ig2
-.so8v9e8r9e8i8g8n8s.
-.sovereig2n1s2
-.sp8a9c8e8s.
-.2s1pa
-.spa4ce
-.sp8e9c8i8o8u8s.
-.spe2c
-.spe1c2i
-.spec2io
-.speciou2
-.specio2us
-.sp8e8l8l9e8r.
-.spel1l
-.spel2le
-.sp8e8l8l9e8r8s.
-.spelle4r1s2
-.sp8e8l8l9i8n8g.
-.spell2i
-.spel2lin4
-.sp8e9l8u8n8k9e8r.
-.spelu4nk2
-.spelunk1er
-.sp8e8n8d9t8h8r8i8f8t.
-.spen4d
-.spend2th
-.spendt4hr4
-.spendthr4i2ft
-.sp8h8e8r9o8i8d.
-.s2phe
-.3sph4er
-.sph2ero
-.spheroi2
-.sphero2id
-.sp8h8e8r9o8i8d9a8l.
-.spheroi1d2a
-.sp8h8i8n9g8e8s.
-.sph5ing
-.sph4inge
-.sp8i8c9i9l8y.
-.sp2i1ci
-.spici1ly
-.sp8i8n9o8r8s.
-.spi2n
-.sp4i1no
-.spino4rs2
-.sp8o8k8e8s9w8o8m8a8n.
-.sp2ok
-.spokes4
-.spokes4w2
-.spoke4s1wo2
-.spokeswom1
-.spokeswo1ma
-.spokeswoma2n
-.sp8o8k8e8s9w8o8m8e8n.
-.spokeswo2me
-.spokeswo1men
-.sp8o8r8t8s9c8a8s8t.
-.s1p4or4
-.spor4t1s2
-.sport4sc
-.sports1ca
-.sp8o8r8t8s9c8a8s8t9e8r.
-.sportscast5er
-.sp8o8r9t8i8v8e9l8y.
-.spor1ti
-.spor4t2iv
-.sportiv4e1ly
-.sp8o8r8t8s9w8e8a8r.
-.sport4sw2
-.sportswe2a2r
-.sp8o8r8t8s9w8r8i8t8e8r.
-.sportswri4
-.sportswr2ite
-.sp8o8r8t8s9w8r8i8t8e8r8s.
-.sportswrit5e4r1s2
-.sp8r8i8g8h8t9l8i8e8r.
-.spr2
-.spr2ig
-.sprigh2tl
-.sprightl2ie4
-.sq8u8e8a9m8i8s8h.
-.squ2
-.squeam2is
-.squeamis2h
-.st8a8n8d9a8l8o8n8e.
-.5st4and
-.sta2n
-.stan1d2a
-.standalo2n
-.st8a8r9t8l8i8n8g.
-.st2a2r
-.star2tl
-.st8a8r9t8l8i8n8g9l8y.
-.startlingl2
-.startling1ly
-.st8a9t8i8s9t8i8c8s.
-.statis1t2i
-.statis1tic
-.statisti4c3s2
-.st8e8a8l8t8h9i8l8y.
-.stea4l
-.stea4lt
-.stealth3i
-.steal4th4il2
-.stealthi1ly
-.st8e8e8p8l8e9c8h8a8s8e.
-.s1tee
-.stee4p1
-.stee1p2l2
-.steeple2ch
-.st8e8r8e8o9g8r8a8p8h9i8c.
-.stere1o
-.stereo2g
-.stereo1gr
-.stereo5graph1ic
-.stereogr4aphi
-.st8o9c8h8a8s9t8i8c.
-.s1to
-.sto2ch4
-.stochast2i
-.stochas1tic
-.st8r8a8n8g8e9n8e8s8s.
-.st4r
-.s1tra
-.stran4ge
-.stra2n
-.str2ang
-.strange4n4e
-.stran1gen
-.strange1nes
-.strangen2e2ss
-.st8r8a8p9h8a8n8g8e8r.
-.straph2an4g
-.straphang5er
-.strapha2n
-.st8r8a8t9a9g8e8m.
-.stra2ta
-.st8r8a8t9a9g8e8m8s.
-.stratage4m1s2
-.st8r8e8t8c8h9i9e8r.
-.stre4tc
-.stret4ch
-.stretch2ie4
-.st8r8i8p9t8e8a8s8e.
-.str2ip
-.stri2p1t
-.strip2te
-.st8r8o8n8g9h8o8l8d.
-.stro2n
-.strongho2l2d
-.st8r8o8n8g9e8s8t.
-.st8u9p8i8d9e8r.
-.s1tu
-.stup4id
-.stupi3de
-.st8u9p8i8d9e8s8t.
-.stupide4s2
-.su8b9d8i8f9f8e8r9e8n9t8i8a8l.
-.1su
-.su4b3
-.su4b1d
-.subd1if
-.subdi4f1f
-.subdiffer1
-.subdiffer3en1t
-.subdifferent2i
-.subdifferen1t2i1a
-.subdifferenti2al
-.su8b9e8x9p8r8e8s9s8i8o8n.
-.sub4e
-.sub1ex3p
-.subexpr2
-.subex3pr2e2ss
-.subexpres1si
-.subexpres1s2io
-.subexpres5sio2n
-.su8b9e8x9p8r8e8s9s8i8o8n8s.
-.subexpressio2n3s2
-.su8m9m8a9b8l8e.
-.su2m
-.sum1m
-.sum1ma
-.sum2mab
-.summab2l2
-.su8p8e8r9e8g8o.
-.su1pe
-.supere1go
-.su8p8e8r9e8g8o8s.
-.supere4gos
-.su9p8r8e8m9a9c8i8s8t.
-.supr2
-.supre4mac
-.supre1ma
-.suprem4a2ci
-.su9p8r8e8m9a9c8i8s8t8s.
-.supremacis4t1s2
-.su8r9v8e8i8l9l8a8n8c8e.
-.su2r
-.surv4e
-.survei2
-.surveil1l
-.surveilla2n
-.sw8i8m9m8i8n8g9l8y.
-.sw2
-.swi2
-.swim1m
-.swimm4ingl2
-.swimm5ing1ly
-.sy8m8p9t8o9m8a8t8i8c.
-.sy4m1p
-.sym2p1t
-.symp1to
-.sympto2ma
-.symptomat1ic
-.sy8n9c8h8r8o9m8e8s8h.
-.syn3c4hr4
-.syn2ch
-.synchro2me
-.synchro2mes
-.synchrom4es2h
-.sy8n9c8h8r8o9n8o8u8s.
-.synchro2n
-.synchro1nou2
-.synchrono2us
-.sy8n9c8h8r8o9t8r8o8n.
-.synchrotro2n
-.ta8f8f9r8a8i8l.
-.4ta2f4
-.ta4f1f4
-.taffr2ai2
-.ta8l8k9a9t8i8v8e.
-.ta2l
-.4talk
-.talka3
-.talka4t
-.talka1t2iv
-.ta9p8e8s9t8r8y.
-.tap2est4r
-.tape4stry
-.ta9p8e8s9t8r8i8e8s.
-.tapestr2ie4
-.ta8r9p8a8u9l8i8n.
-.t2a2r
-.tar2p
-.tar1pa
-.tarpau4l2
-.tarpaul2i
-.ta8r9p8a8u9l8i8n8s.
-.tarpaul2i2n1s2
-.te9l8e8g9r8a9p8h8e8r.
-.tele1gr
-.teleg5ra3ph4er
-.te9l8e8g9r8a9p8h8e8r8s.
-.telegraphe4r1s2
-.te8l8e9k8i9n8e8t9i8c.
-.teleki4n
-.telek1i
-.telek2ine
-.teleki3net1ic
-.te8l8e9k8i9n8e8t9i8c8s.
-.telekineti4c3s2
-.te8l8e9r8o9b8o8t9i8c8s.
-.te4l1er
-.tel4ero
-.teler5ob
-.teleroboti4c3s2
-.te8l8l9e8r.
-.tel1l
-.tel2le
-.te8l8l9e8r8s.
-.telle4r1s2
-.te8m9p8o9r8a8r9i8l8y.
-.te4m1p
-.tem1p4or
-.tempo1ra
-.tempo4raril
-.tempor2a2r
-.temporar1i
-.temporari1ly
-.te8n9u8r8e.
-.te8s8t9b8e8d.
-.tes2t1b
-.test4be2d
-.te8x8t9w8i8d8t8h.
-.3tex
-.tex1t2
-.textw4
-.textwi2
-.textw2id
-.textwid2th
-.th8a8l9a9m8u8s.
-.tha3la
-.thala3m
-.thala1mu
-.thalam2us
-.th8e8r9m8o9e8l8a8s9t8i8c.
-.th2e
-.ther3m4
-.ther1mo
-.thermo4el
-.thermoe1la
-.thermoelast2i
-.thermoelas1tic
-.ti8m8e9s8t8a8m8p.
-.ti2mes
-.times1ta
-.timesta4m1p
-.ti8m8e9s8t8a8m8p8s.
-.timestam2p1s2
-.to8o8l9k8i8t.
-.too2
-.toolk1i
-.to8o8l9k8i8t8s.
-.toolki4t1s2
-.to8p8o9g8r8a8p8h9i9c8a8l.
-.to5po4g
-.topo1gr
-.topo5graph1ic
-.topogr4aphi
-.topographi1ca
-.to8q8u8e8s.
-.to1q
-.toqu2
-.tr8a8i9t8o8r9o8u8s.
-.1tra
-.tr2ai2
-.trai1to
-.traitorou2
-.traitoro2us
-.tr8a8n8s9c8e8i8v8e8r.
-.tra2n
-.tra2n1s2
-.trans4c
-.tran4s3cei2
-.transce2iv
-.tr8a8n8s9c8e8i8v8e8r8s.
-.transceive4r1s2
-.tr8a8n8s9g8r8e8s8s.
-.tran2s3g
-.trans1gr
-.transgr2e2ss
-.tr8a8n8s9v8e8r9s8a8l.
-.tran4sv
-.transve4r1s2
-.transver1sa2
-.tr8a8n8s9v8e8r9s8a8l8s.
-.transversa2l1s2
-.tr8a8n8s9v8e8s9t8i8t8e.
-.transv4e2s
-.transvest2i
-.transvest2ite
-.tr8a8n8s9v8e8s9t8i8t8e8s.
-.transvestit4es
-.tr8a9v8e8r8s9a9b8l8e.
-.trave4r1s2
-.traver1sa2
-.traver2s1ab
-.traversab2l2
-.tr8a9v8e8r9s8a8l.
-.tr8a9v8e8r9s8a8l8s.
-.traversa2l1s2
-.tr8i9e8t8h8y8l9a8m8i8n8e.
-.tri5et
-.tr2ie4
-.triethy3la
-.triethylam1in
-.triethylam2ine
-.tr8e8a8c8h9e8r8i8e8s.
-.trea2ch
-.treache2
-.treacher1i
-.treacher2ie4
-.tr8o8u9b8a9d8o8u8r.
-.trou2
-.trouba2d
-.trouba1do
-.troubadou2
-.tu8r9k8e8y.
-.1tu
-.tu8r9k8e8y8s.
-.turkeys4
-.tu8r8n9a8r8o8u8n8d.
-.tur4n2a2r
-.tur1na
-.turnarou2
-.turnaroun2d
-.tu8r8n9a8r8o8u8n8d8s.
-.turnaroun2d1s2
-.ty8p9a8l.
-.1ty
-.ty1pa
-.typ4al
-.un9a8t9t8a8c8h8e8d.
-.un2at4
-.una4t3t2
-.unat1ta
-.unatta2ch
-.unattache2
-.unatta4ch4ed
-.un9e8r8r9i8n8g9l8y.
-.un4er
-.uner4r4
-.unerrin4g
-.unerringl2
-.unerring1ly
-.un9f8r8i8e8n8d9l8y.
-.un3f
-.unfri2
-.unfr2ie4
-.unfrien2d1ly
-.un9f8r8i8e8n8d9l8i9e8r.
-.unfriendl2ie4
-.va8g8u8e8r.
-.1va
-.vag4
-.va5guer
-.va2gue
-.va8u8d8e9v8i8l8l8e.
-.vaude1v4
-.vaude2v3i4l
-.vaude1vi
-.vaudevil1l
-.vaudevil2le
-.vi8c9a8r8s.
-.v4ic2a2r
-.vi1ca
-.vica4rs2
-.vi8l9l8a8i8n9e8s8s.
-.2vil
-.vil1l
-.villai2
-.villa4i4n
-.villa2ine
-.villai5n2e2ss
-.villai1nes
-.vi8s9u8a8l.
-.vi3su
-.visu1al
-.vi8s9u8a8l9l8y.
-.visual1l
-.visual1ly
-.vi9v8i8p9a9r8o8u8s.
-.3v2iv
-.viv2i4p
-.vivi1pa
-.vivip2a2r
-.viviparou2
-.viviparo2us
-.vo8i8c8e9p8r8i8n8t.
-.voi4
-.voi3cep
-.voicepr2
-.voiceprin4t3
-.vs8p8a8c8e.
-.v2s1pa
-.vspa4ce
-.wa8d9d8i8n8g.
-.wa2d
-.wad4d1in
-.wad1d4
-.wa8l8l9f8l8o8w8e8r.
-.wal1l
-.wal2lf
-.wallf4l2
-.wallflow1er
-.wa8l8l9f8l8o8w9e8r8s.
-.wallflowe4r1s2
-.wa8r8m9e8s8t.
-.w2a2r
-.war1m
-.war2me
-.war2mes
-.wa8s8t8e9w8a8t8e8r.
-.was4t
-.waste2w
-.waste1w5a
-.wastewa1te
-.wa8v8e9g8u8i8d8e.
-.waveg3
-.waveg2ui2
-.wavegu2id
-.wa8v8e9g8u8i8d8e8s.
-.waveguide4s2
-.wa8v8e9l8e8t.
-.wa8v8e9l8e8t8s.
-.wavele4t1s2
-.we8b9l8i8k8e.
-.w2e1b
-.web2l2
-.web3l4ik
-.we8e8k9n8i8g8h8t.
-.weekn2ig
-.we8e8k9n8i8g8h8t8s.
-.weeknigh4t1s2
-.wh8e8e8l9c8h8a8i8r.
-.whee4l1c2
-.wheel2ch
-.wheelchai2
-.wheelcha4ir
-.wh8e8e8l9c8h8a8i8r8s.
-.wheelchai4rs2
-.wh8i8c8h9e8v8e8r.
-.whi4
-.wh4i2ch
-.whiche2
-.whichev1er
-.wh8i8t8e9s8i8d8e8d.
-.wh2ite
-.whit4es
-.white1si
-.white2s2id
-.whitesi2d1ed
-.wh8i8t8e9s8p8a8c8e.
-.white1sp
-.white2s1pa
-.whitespa4ce
-.wh8i8t8e9s8p8a8c8e8s.
-.wi8d8e9s8p8r8e8a8d.
-.w2id
-.wide4s2
-.wide1sp
-.wides4pre
-.widespr2
-.widesprea2d1
-.wi8n8g9s8p8a8n.
-.win4g
-.wings2
-.wing2s1pa
-.wingspa4n
-.wi8n8g9s8p8a8n8s.
-.wingspa2n1s2
-.wi8n8g9s8p8r8e8a8d.
-.wingspr2
-.wingsprea2d1
-.wi8t8c8h9c8r8a8f8t.
-.wi4tc
-.wit4ch
-.witchcra2f4t
-.witchcra2f
-.wo8r8d9s8p8a8c9i8n8g.
-.1wo2
-.wor2d1s2
-.words4p
-.word2s1pa
-.wordsp4a2ci
-.wordspa2c1in
-.wordspac1ing
-.wo8r8k9a8r8o8u8n8d.
-.work2a2r
-.workarou2
-.workaroun2d
-.wo8r8k9a8r8o8u8n8d8s.
-.workaroun2d1s2
-.wo8r8k9h8o8r8s8e.
-.workh4
-.workhor4se
-.workho4rs2
-.wo8r8k9h8o8r8s8e8s.
-.workhors3e4s
-.wr8a8p9a8r8o8u8n8d.
-.wra4
-.wrap2a2r4
-.wra1pa
-.wraparou2
-.wraparoun2d
-.wr8e8t8c8h9e8d.
-.wre4tc
-.wret4ch
-.wretche2
-.wret4ch4ed
-.wr8e8t8c8h9e8d9l8y.
-.wretche2d1ly
-.ye8s9t8e8r9y8e8a8r.
-.yes4
-.yesterye2a2r
-.al9g8e9b8r8a8i9s8c8h8e.
-.algebra2is1c
-.algebrais3ch2
-.algebraische2
-.al9l8e9g8h8e9n8y.
-.al1l
-.al2le
-.al3leg
-.alleghe2n
-.ar9k8a8n9s8a8s.
-.arka2n
-.arkan2sa2
-.arka2n1s2
-.at8p9a8s8e.
-.a4t1p
-.at1pa
-.at8p9a8s8e8s.
-.atpas1e4s
-.au8s9t8r8a8l9a8s8i8a8n.
-.a2us
-.aus1t4r
-.aus1tra
-.australas2i1a
-.australasi2a2n
-.au8t8o9m8a8t8i9s8i8e8r9t8e8r.
-.automa3tis
-.automatis2ie4
-.automatisiert3er
-.be9d8i8e9n8u8n8g.
-.4be2d
-.b4e3di
-.be5di3en
-.bed2ie4
-.bedie3nu4n
-.be8m8b8o.
-.4be5m
-.be4m5b
-.bi8b9l8i9o9g8r8a9p8h8i9s8c8h8e.
-.bibliogr4aphi
-.bibliograph2is1c
-.bibliographis3ch2
-.bibliographische2
-.bo8s9t8o8n.
-.5bos4
-.bos1to
-.bosto2n
-.br8o8w8n9i8a8n.
-.brown5i
-.brow3n4i1a
-.browni3a2n
-.br8u8n8s9w8i8c8k.
-.bru2n
-.bru2n3s4
-.brun4sw2
-.brunswi2
-.brunswick1
-.bu9d8a9p8e8s8t.
-.bu1d2a
-.ca8r9i8b9b8e8a8n.
-.car1i
-.car4ib
-.cari2b1b
-.carib2be
-.caribbea2n
-.ch8a8r8l8e8s9t8o8n.
-.char4le4
-.char1l
-.charles2
-.charl4es2to
-.charle3sto2n
-.ch8a8r9l8o8t8t8e8s9v8i8l8l8e.
-.char3lo4
-.charlo4t3t2
-.charlot4tes
-.charlotte4sv
-.charlottes2vil
-.charlottesvil1l
-.charlottesvil2le
-.co9l8u8m9b8i8a.
-.colum4bi
-.colu4m1b
-.columb2i1a
-.cz8e8c8h8o9s8l8o9v8a9k8i8a.
-.c2ze4
-.cze2ch
-.cze3cho2
-.czechos4l2
-.czechos4lov
-.czechoslo1va
-.czechoslovak1i
-.czechoslovak2i1a
-.de8l9a9w8a8r8e.
-.de1la
-.de4law
-.delaw2a2r
-.di8j8k9s8t8r8a.
-.di3j
-.dij4k1s2
-.dijkst4r
-.dijks1tra
-.du8a8n8e.
-.d1u1a
-.dua2n
-.dy9n8a9m8i9s8c8h8e.
-.5dyn
-.dy1na
-.dynam2is
-.dynam2is1c
-.dynamis3ch2
-.dynamische2
-.en8g9l8i8s8h.
-.engl2
-.englis2h
-.eu8l8e8r9i8a8n.
-.eul4e
-.eu3l4er1i
-.eule1r2i3a4
-.euleri2a2n
-.ev8a8n9s8t8o8n.
-.e1va
-.eva2n
-.evan4st
-.eva2n1s2
-.evans1to
-.evansto2n
-.fe8b9r8u9a8r8y.
-.f2e4b
-.fe3br
-.febru3a
-.febru2a2r
-.fe8s8t9s8c8h8r8i8f8t.
-.fes4t1s2
-.fest4sc
-.fests2ch2
-.festsc4hr4
-.festschr4i2ft
-.fl8o8r9i9d8a.
-.flor2id
-.flori1d2a
-.fl8o8r9i9d9i8a8n.
-.flori2di
-.florid5i2a2n
-.flori1d4i3a
-.fo8r9s8c8h8u8n8g8s9i8n9s8t8i9t8u8t.
-.fors4c
-.fors2ch2
-.forschungs2
-.forschung2s1in
-.forschungs2i2n1s2
-.forschungsinst2i
-.forschungsinsti1tu
-.fr8e8e9b8s8d.
-.fre2e1b
-.free2b5s2
-.freeb4s5d
-.fu8n8k9t8s8i8o8n8a8l.
-.3fu
-.fu4nk2
-.funk5t
-.funk4t1s2
-.funkt1s2io
-.funkt5sio2n
-.funktsio1n5a
-.ga8u8s8s9i8a8n.
-.ga2us
-.gau2ss
-.gaus1si
-.gauss2i1a
-.gaussi2a2n
-.gh8o8s8t9s8c8r8i8p8t.
-.ghos4t1s2
-.ghost4sc
-.ghostscri2
-.ghostscr2ip
-.ghostscri2p1t
-.gh8o8s8t9v8i8e8w.
-.ghos4tv
-.ghostv2ie4
-.gr8a8s8s9m8a8n8n9i8a8n.
-.gr2as
-.gra2ss
-.gras2s1m
-.grass3ma
-.grassma2n3
-.grassma4n1n2
-.grassman3n4i1a
-.grassma2nni3a2n
-.gr8e8i8f8s9w8a8l8d.
-.grei2
-.grei2f3s
-.greifsw2
-.greifswa2ld
-.gr8o8t8h8e8n9d8i8e8c8k.
-.g4ro
-.gro4th2e
-.gr4oth
-.grothe2n
-.grothend2ie4
-.grothendieck1
-.gr8u8n8d9l8e8h9r8e8n.
-.gru2n
-.grundle1h4
-.grundle4hr4
-.ha9d8a9m8a8r8d.
-.ha2d
-.ha1d2a
-.hada2m2
-.had4a1ma
-.hadam2a2r
-.ha8i9f8a.
-.hai1fa
-.ha8m8i8l9t8o8n9i8a8n.
-.ha4m
-.hami4lt
-.hamil1to
-.hamilto2n
-.hamilto3n4i1a
-.hamiltoni3a2n
-.he8l9s8i8n8k8i.
-.he2l1s2
-.hel2s1in
-.hels4i4nk2
-.helsink1i
-.he8r9m8i8t9i8a8n.
-.her3mit
-.hermi1ti
-.herm4i1t2i1a
-.hermiti2a2n
-.hi8b8b8s.
-.hi2b1b
-.hib2b5s2
-.ho8k9k8a8i9d8o.
-.h2ok
-.hokk4
-.hokkai2
-.hokka2id
-.hokkai1do
-.ja8c9k8o8w9s8k8i.
-.5ja
-.jack1
-.jackowsk2
-.jackowsk1i
-.ja8n9u9a8r8y.
-.ja2n
-.jan3u1a
-.janu2a2r
-.ja9p8a9n8e8s8e.
-.ja4p
-.ja1pa
-.japa2n
-.japa1nes
-.japane1s2e
-.ka8d9o8m9t8s8e8v.
-.ka2d
-.ka1do
-.kado4mt
-.kadom4t1s2
-.kadomt5sev
-.ka8n9s8a8s.
-.ka2n
-.kan2sa2
-.ka2n1s2
-.ka8r8l8s9r8u8h8e.
-.k2a2r
-.kar1l
-.kar2l1s2
-.karls1r
-.ko8r9t8e9w8e8g.
-.ko5r
-.kr8i8s8h8n8a.
-.kr2is
-.kr3is2h
-.kris2h1n
-.krish1na
-.kr8i8s8h9n8a9i8s8m.
-.krishnai2
-.krishnai2s1m
-.kr8i8s8h9n8a8n.
-.krishn2a2n
-.la8n9c8a8s9t8e8r.
-.lan1ca
-.lancast5er
-.le9g8e8n8d8r8e.
-.le1gen
-.legen1dr
-.legendre4
-.le8i8c8e8s9t8e8r.
-.lei2
-.le5ic
-.leices5t
-.li8p9s8c8h8i8t8z.
-.l2ip
-.li2p1s2
-.lips2ch2
-.lips3chit
-.lipschi4tz
-.li8p9s8c8h8i8t8z9i8a8n.
-.lipschit2z1i
-.lipschitz2i1a
-.lipschitzi2a2n
-.lo8j9b8a8n.
-.lo5j
-.lojba2n
-.lo8u9i9s8i9a8n8a.
-.lou2
-.lo2ui2
-.louis2i1a
-.louisi2a2n
-.louisia1na
-.ma8c9o8s.
-.ma1co
-.ma8n9c8h8e8s9t8e8r.
-.man2ch
-.manche2
-.manch1es
-.ma8r9k8o8v9i8a8n.
-.marko5vi2a2n
-.markov2i1a
-.ma8r8k8t9o8b8e8r9d8o8r8f.
-.mark5t
-.mark1to
-.markto3b
-.marktober1do
-.marktoberd4or
-.marktoberdor1f
-.ma8s8s9a9c8h8u9s8e8t8t8s.
-.ma2ss
-.mas1sa2
-.massa2ch
-.massach2us
-.massachuse4t3t2
-.massachuset4t1s2
-.ma8x9w8e8l8l.
-.maxwel4l
-.mi9c8r8o9s8o8f8t.
-.micro2so
-.microso2ft3
-.mi8n9n8e9a8p9o9l8i8s.
-.m2i4n1n2
-.minne4
-.minneapol2i
-.mi8n9n8e9s8o8t8a.
-.min1nes
-.minne1so
-.minneso1ta
-.mo8s9c8o8w.
-.mos2c
-.mos1co
-.na8c8h9r8i8c8h8t8e8n.
-.1na
-.na2ch
-.nac4hr4
-.na2chr4i2ch
-.nachricht1en
-.na8s8h9v8i8l8l8e.
-.n4as
-.nas2h
-.nash2vil
-.nashvil1l
-.nashvil2le
-.ne8t9b8s8d.
-.ne2t1b
-.net2b5s2
-.netb4s5d
-.ne8t9s8c8a8p8e.
-.ne4t1s2
-.net4sc
-.netsca4p
-.nets1ca
-.ni8j9m8e9g8e8n.
-.ni3j
-.nijme2g
-.nijme1gen
-.no8e9t8h8e8r9i8a8n.
-.3noe
-.noeth2e
-.noether1i
-.noethe1r2i3a4
-.noetheri2a2n
-.no8o8r8d9w8i8j8k8e8r9h8o8u8t.
-.noo2
-.no3ord
-.noord1w
-.noordwi2
-.noordwi3j
-.noordwijk1er
-.noordwijker1h4
-.noordwijkerhou2
-.no9v8e8m9b8e8r.
-.nove4m5b
-.op8e8n9b8s8d.
-.ope4n1b4
-.open2b5s2
-.openb4s5d
-.op8e8n9o8f8f8i8c8e.
-.op4eno
-.openo4f1f
-.openof1fi
-.pa8l8a9t8i8n8o.
-.pala2t1in
-.palat2i1no
-.pa9l8e8r9m8o.
-.paler3m4
-.paler1mo
-.pe9t8r8o8v9s8k8i.
-.petro3v
-.petrovsk2
-.petrovsk1i
-.pf8a8f8f9i8a8n.
-.4pf
-.p1fa
-.pfa2f
-.pfa4f1f4
-.pfaf1fi
-.pfaff2i3a
-.pfaffi2a2n
-.ph8i8l9a9d8e8l9p8h8i8a.
-.phi4l4ade
-.phila2d
-.philade2lp
-.philadel5phi
-.philadelph2i1a
-.ph8i8l9o9s8o8p8h9i9s8c8h8e.
-.philo2so
-.philos4op
-.philos2oph
-.philosoph2is1c
-.philosophis3ch2
-.philosophische2
-.po8i8n9c8a8r8e.
-.poin2
-.poi2
-.poinc2a2r5
-.poin1ca
-.po9t8e8n9t8i8a8l9g8l8e8i9c8h8u8n8g.
-.p4ot
-.po1ten1t
-.potent2i
-.poten1t2i1a
-.potenti2al
-.potentia4l1g4
-.potentialgl2
-.potential1gle
-.potentialglei2
-.potentialgle5ic
-.potentialgle4i2ch
-.ra9d8h8a9k8r8i8s8h9n8a8n.
-.rad1h2
-.radhakr2is
-.radhakr3is2h
-.radhakris2h1n
-.radhakrish1na
-.radhakrishn2a2n
-.ra8t8h8s9k8e8l9l8e8r.
-.r4ath
-.ra2t4h1s2
-.rathsk2
-.rath4ske
-.rathskel1l
-.rathskel2le
-.ri8e9m8a8n8n9i8a8n.
-.r2ie4
-.rie5ma2n
-.rie1ma
-.riema4n1n2
-.rieman3n4i1a
-.riema2nni3a2n
-.ry8d9b8e8r8g.
-.ry1d
-.ryd1b
-.rydberg2
-.sc8h8o8t9t8i8s8c8h8e.
-.scho4t3t2
-.schott2is1c
-.s2ch2ottis3ch2
-.schottische2
-.sc8h8r8o9d8i8n8g9e8r.
-.sc4hr4
-.schrod1in
-.schrod4inge
-.sc8h8w8a9b8a9c8h8e8r.
-.sch1w
-.schwaba2ch
-.schwabache2
-.sc8h8w8a8r8z9s8c8h8i8l8d.
-.schw2a2r
-.s2chwarzs2ch2
-.schwarzsch4il2
-.schwarzschi2ld
-.se8p9t8e8m9b8e8r.
-.se2p1t
-.sep2te
-.septe4m5b
-.st8o8k8e8s9s8c8h8e.
-.st2ok
-.stokes4
-.stok2e2ss
-.stokes2s5c
-.stokess2ch2
-.stokessche2
-.st8u8t8t9g8a8r8t.
-.stu4t3t2
-.stut4t1g
-.stutt1ga
-.stuttg2a2r
-.su8s9q8u8e9h8a8n9n8a.
-.s2us
-.susqu2
-.susque1h4
-.susqueha2n
-.susqueha4n1n2
-.susquehan1na
-.ta8u9b8e8r9i8a8n.
-.tau4b
-.taub4e
-.tau3ber
-.tauber1i
-.taube1r2i3a4
-.tauberi2a2n
-.te8c8h9n8i9s8c8h8e.
-.te2ch
-.tec2h1n
-.techn2is1c
-.te2chnis3ch2
-.technische2
-.te8n9n8e8s9s8e8e.
-.t4e4n1n2
-.tenne4
-.ten1nes
-.tenn2e2ss
-.to9m8a9s8z8e8w9s8k8i.
-.to2ma
-.tomas2ze
-.tomaszewsk2
-.tomaszewsk1i
-.ty9p8o9g8r8a8p8h8i8q8u8e.
-.ty3po
-.ty5po4g
-.typo1gr
-.typogr4aphi
-.typographiqu2
-.uk8r8a8i8n9i8a8n.
-.4uk
-.ukr2ai2
-.ukra4i4n
-.ukra2ini
-.ukrai4n4i1a
-.ukraini3a2n
-.ve8r9a8l8l9g8e9m8e8i8n9e8r8t8e.
-.veral1l
-.veral4l1g4
-.verallge1me
-.verallgemei2
-.verallgeme2ine
-.verallgemein1er
-.ve8r9e8i8n9i9g8u8n8g.
-.vere3in
-.verei2
-.vere2ini
-.verein2ig
-.vereini3gun
-.ve8r9t8e8i9l8u8n9g8e8n.
-.vertei2
-.verteilun1gen
-.vi8i8i8t8h.
-.v4i5i4
-.vi4i5i4
-.vii2ith
-.vi8i8t8h.
-.vi2ith
-.wa8h8r9s8c8h8e8i8n9l8i8c8h9k8e8i8t8s9t8h8e8o9r8i8e.
-.wa4hr4
-.wah4rs2
-.wahrs4c
-.wahrs2ch2
-.wahrsche2
-.wahrschei2
-.wahrsche4i4n1l
-.wahrs2cheinl4i2ch
-.wahrscheinlic4hk
-.wahrscheinlichkei2
-.wahrscheinlichkei4t1s2
-.wahrscheinlichkeits3th2e
-.wahrscheinlichkeitsthe1o5r
-.wahrscheinlichkeitstheor2ie4
-.we8r9n8e8r.
-.w1er
-.wer4n1er
-.we8r9t8h8e8r9i8a8n.
-.werth2e
-.werther1i
-.werthe1r2i3a4
-.wertheri2a2n
-.wi8n9c8h8e8s9t8e8r.
-.win2ch
-.winche2
-.winch1es
-.wi8r8t9s8c8h8a8f8t.
-.w4ir4
-.wir4t1s2
-.wirt4sc
-.wirts2ch2
-.wirtscha2f
-.wirtscha2ft
-.wi8s9s8e8n9s8c8h8a8f8t9l8i8c8h.
-.w4i2s1s
-.wissen4
-.wisse2n1s2
-.wissens4c
-.wissens2ch2
-.wissenscha2f
-.wissenscha2ft
-.wissenschaf2tl
-.wissens2chaftl4i2ch
-.xv8i8i8i8t8h.
-.xv4i5i4
-.xvi4i5i4
-.xvii2ith
-.xv8i8i8t8h.
-.xvi2ith
-.xx8i8i8i8r8d.
-.xx4
-.xx3i
-.xx4i5i4
-.xxi4i5i4
-.xxii4ir
-.xx8i8i8n8d.
-.xxi4ind
-.yi8n8g9y8o8n8g.
-.y1i
-.yin2gy
-.yingy1o4
-.yingyo2n
-.sh8u9x8u8e.
-.shux1u3
-.ji9s8u8a8n.
-.ji2su
-.jisua2n
-.ze8a9l8a8n8d.
-.2ze
-.zea4l
-.zea3l4and
-.zeala2n
-.ze8i8t9s8c8h8r8i8f8t.
-.zei2
-.zei4t1s2
-.zeit4sc
-.zeits2ch2
-.zeitsc4hr4
-.zeitschr4i2ft
diff --git a/core/res/assets/webkit/incognito_mode_start_page.html b/core/res/assets/webkit/incognito_mode_start_page.html
deleted file mode 100644
index 5d7a3fbf98c0..000000000000
--- a/core/res/assets/webkit/incognito_mode_start_page.html
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
- New incognito window
-
-
- You've gone incognito . Pages you view in this window
- won't appear in your browser history or search history, and they won't
- leave other traces, like cookies, on your device after you close the
- incognito window. Any files you download or bookmarks you create will be
- preserved, however.
-
- Going incognito doesn't affect the behavior of other people,
- servers, or software. Be wary of:
-
-
- Websites that collect or share information about you
- Internet service providers or employers that track the pages you visit
- Malicious software that tracks your keystrokes in exchange for free smileys
- Surveillance by secret agents
- People standing behind you
-
-
-
diff --git a/core/res/assets/webkit/missingImage.png b/core/res/assets/webkit/missingImage.png
deleted file mode 100644
index f49a98d59d2d..000000000000
Binary files a/core/res/assets/webkit/missingImage.png and /dev/null differ
diff --git a/core/res/assets/webkit/nullPlugin.png b/core/res/assets/webkit/nullPlugin.png
deleted file mode 100644
index 96a52e3c2cc6..000000000000
Binary files a/core/res/assets/webkit/nullPlugin.png and /dev/null differ
diff --git a/core/res/assets/webkit/play.png b/core/res/assets/webkit/play.png
deleted file mode 100644
index 26fe2864d7c3..000000000000
Binary files a/core/res/assets/webkit/play.png and /dev/null differ
diff --git a/core/res/assets/webkit/textAreaResizeCorner.png b/core/res/assets/webkit/textAreaResizeCorner.png
deleted file mode 100644
index 777eff01a0a0..000000000000
Binary files a/core/res/assets/webkit/textAreaResizeCorner.png and /dev/null differ
diff --git a/core/res/assets/webkit/togglePlugin.png b/core/res/assets/webkit/togglePlugin.png
deleted file mode 100644
index 008333c66e60..000000000000
Binary files a/core/res/assets/webkit/togglePlugin.png and /dev/null differ
diff --git a/core/res/assets/webkit/youtube.html b/core/res/assets/webkit/youtube.html
deleted file mode 100644
index 8e103c1655e1..000000000000
--- a/core/res/assets/webkit/youtube.html
+++ /dev/null
@@ -1,71 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/core/res/assets/webkit/youtube.png b/core/res/assets/webkit/youtube.png
deleted file mode 100644
index 87779b113dd0..000000000000
Binary files a/core/res/assets/webkit/youtube.png and /dev/null differ
diff --git a/core/res/res/anim-watch/progress_indeterminate_material.xml b/core/res/res/anim-watch/progress_indeterminate_material.xml
new file mode 100644
index 000000000000..8f00d6c4cb66
--- /dev/null
+++ b/core/res/res/anim-watch/progress_indeterminate_material.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
diff --git a/core/res/res/anim-watch/progress_indeterminate_rotation_material.xml b/core/res/res/anim-watch/progress_indeterminate_rotation_material.xml
new file mode 100644
index 000000000000..63e66ec24410
--- /dev/null
+++ b/core/res/res/anim-watch/progress_indeterminate_rotation_material.xml
@@ -0,0 +1,24 @@
+
+
+
diff --git a/core/res/res/anim/slide_out_micro.xml b/core/res/res/anim/slide_out_micro.xml
index c6470935e5d2..01df0dae6259 100644
--- a/core/res/res/anim/slide_out_micro.xml
+++ b/core/res/res/anim/slide_out_micro.xml
@@ -19,7 +19,7 @@
-->
+ android:zAdjustment="normal">
diff --git a/core/res/res/anim/watch_switch_thumb_to_off_animation.xml b/core/res/res/anim/watch_switch_thumb_to_off_animation.xml
deleted file mode 100644
index cd02e0db2fd5..000000000000
--- a/core/res/res/anim/watch_switch_thumb_to_off_animation.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
-
-
-
-
diff --git a/core/res/res/anim/watch_switch_thumb_to_on_animation.xml b/core/res/res/anim/watch_switch_thumb_to_on_animation.xml
deleted file mode 100644
index e64421776605..000000000000
--- a/core/res/res/anim/watch_switch_thumb_to_on_animation.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/core/res/res/drawable/watch_switch_thumb_to_on_anim_mtrl.xml b/core/res/res/color/background_cache_hint_selector_device_default.xml
similarity index 70%
rename from core/res/res/drawable/watch_switch_thumb_to_on_anim_mtrl.xml
rename to core/res/res/color/background_cache_hint_selector_device_default.xml
index 9f92361e70ea..4470754f4155 100644
--- a/core/res/res/drawable/watch_switch_thumb_to_on_anim_mtrl.xml
+++ b/core/res/res/color/background_cache_hint_selector_device_default.xml
@@ -1,9 +1,12 @@
-
-
-
+
+
+
+
+
diff --git a/core/res/res/color/watch_switch_thumb_color_material.xml b/core/res/res/color/watch_switch_thumb_color_material.xml
index d4796a032631..f78d9b62a509 100644
--- a/core/res/res/color/watch_switch_thumb_color_material.xml
+++ b/core/res/res/color/watch_switch_thumb_color_material.xml
@@ -10,9 +10,9 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-
-
-
-
-
\ No newline at end of file
+
+
+
+
diff --git a/core/res/res/drawable/watch_switch_thumb_to_off_anim_mtrl.xml b/core/res/res/color/watch_switch_track_color_material.xml
similarity index 70%
rename from core/res/res/drawable/watch_switch_thumb_to_off_anim_mtrl.xml
rename to core/res/res/color/watch_switch_track_color_material.xml
index 2c6ba2f75753..c7dc5d34204a 100644
--- a/core/res/res/drawable/watch_switch_thumb_to_off_anim_mtrl.xml
+++ b/core/res/res/color/watch_switch_track_color_material.xml
@@ -1,9 +1,12 @@
-
-
-
+
+
+
+
\ No newline at end of file
diff --git a/core/res/res/drawable-hdpi/watch_switch_thumb_mtrl_14w.png b/core/res/res/drawable-hdpi/watch_switch_thumb_mtrl_14w.png
new file mode 100644
index 000000000000..371469c43b13
Binary files /dev/null and b/core/res/res/drawable-hdpi/watch_switch_thumb_mtrl_14w.png differ
diff --git a/core/res/res/drawable-hdpi/watch_switch_thumb_mtrl_15w.png b/core/res/res/drawable-hdpi/watch_switch_thumb_mtrl_15w.png
new file mode 100644
index 000000000000..e47726058e3e
Binary files /dev/null and b/core/res/res/drawable-hdpi/watch_switch_thumb_mtrl_15w.png differ
diff --git a/core/res/res/drawable-hdpi/watch_switch_thumb_mtrl_16w.png b/core/res/res/drawable-hdpi/watch_switch_thumb_mtrl_16w.png
new file mode 100644
index 000000000000..19a1bd317799
Binary files /dev/null and b/core/res/res/drawable-hdpi/watch_switch_thumb_mtrl_16w.png differ
diff --git a/core/res/res/drawable-hdpi/watch_switch_thumb_mtrl_17w.png b/core/res/res/drawable-hdpi/watch_switch_thumb_mtrl_17w.png
new file mode 100644
index 000000000000..79dc7332b60d
Binary files /dev/null and b/core/res/res/drawable-hdpi/watch_switch_thumb_mtrl_17w.png differ
diff --git a/core/res/res/drawable-hdpi/watch_switch_thumb_mtrl_18w.png b/core/res/res/drawable-hdpi/watch_switch_thumb_mtrl_18w.png
new file mode 100644
index 000000000000..6d921c0709b8
Binary files /dev/null and b/core/res/res/drawable-hdpi/watch_switch_thumb_mtrl_18w.png differ
diff --git a/core/res/res/drawable-hdpi/watch_switch_track_mtrl.png b/core/res/res/drawable-hdpi/watch_switch_track_mtrl.png
new file mode 100644
index 000000000000..ecee3e137ef6
Binary files /dev/null and b/core/res/res/drawable-hdpi/watch_switch_track_mtrl.png differ
diff --git a/core/res/res/drawable-watch/ic_input_extract_action_done.xml b/core/res/res/drawable-watch/ic_input_extract_action_done.xml
new file mode 100644
index 000000000000..a04b944f391f
--- /dev/null
+++ b/core/res/res/drawable-watch/ic_input_extract_action_done.xml
@@ -0,0 +1,19 @@
+
+
+
+
diff --git a/core/res/res/drawable-watch/ic_input_extract_action_send.xml b/core/res/res/drawable-watch/ic_input_extract_action_send.xml
new file mode 100644
index 000000000000..3689172f72ab
--- /dev/null
+++ b/core/res/res/drawable-watch/ic_input_extract_action_send.xml
@@ -0,0 +1,24 @@
+
+
+
+
diff --git a/core/res/res/drawable-watch/scrollbar_vertical_thumb.xml b/core/res/res/drawable-watch/scrollbar_vertical_thumb.xml
new file mode 100644
index 000000000000..51aced25e619
--- /dev/null
+++ b/core/res/res/drawable-watch/scrollbar_vertical_thumb.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
diff --git a/core/res/res/drawable-watch/scrollbar_vertical_track.xml b/core/res/res/drawable-watch/scrollbar_vertical_track.xml
new file mode 100644
index 000000000000..5a04b1ca0b2c
--- /dev/null
+++ b/core/res/res/drawable-watch/scrollbar_vertical_track.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
diff --git a/core/res/res/drawable-xhdpi/watch_switch_thumb_mtrl_14w.png b/core/res/res/drawable-xhdpi/watch_switch_thumb_mtrl_14w.png
new file mode 100644
index 000000000000..7f7ca1416b76
Binary files /dev/null and b/core/res/res/drawable-xhdpi/watch_switch_thumb_mtrl_14w.png differ
diff --git a/core/res/res/drawable-xhdpi/watch_switch_thumb_mtrl_15w.png b/core/res/res/drawable-xhdpi/watch_switch_thumb_mtrl_15w.png
new file mode 100644
index 000000000000..52120b8bef02
Binary files /dev/null and b/core/res/res/drawable-xhdpi/watch_switch_thumb_mtrl_15w.png differ
diff --git a/core/res/res/drawable-xhdpi/watch_switch_thumb_mtrl_16w.png b/core/res/res/drawable-xhdpi/watch_switch_thumb_mtrl_16w.png
new file mode 100644
index 000000000000..d6e9be9e5daf
Binary files /dev/null and b/core/res/res/drawable-xhdpi/watch_switch_thumb_mtrl_16w.png differ
diff --git a/core/res/res/drawable-xhdpi/watch_switch_thumb_mtrl_17w.png b/core/res/res/drawable-xhdpi/watch_switch_thumb_mtrl_17w.png
new file mode 100644
index 000000000000..8d76393a1b63
Binary files /dev/null and b/core/res/res/drawable-xhdpi/watch_switch_thumb_mtrl_17w.png differ
diff --git a/core/res/res/drawable-xhdpi/watch_switch_thumb_mtrl_18w.png b/core/res/res/drawable-xhdpi/watch_switch_thumb_mtrl_18w.png
new file mode 100644
index 000000000000..ca9c66e994ff
Binary files /dev/null and b/core/res/res/drawable-xhdpi/watch_switch_thumb_mtrl_18w.png differ
diff --git a/core/res/res/drawable-xhdpi/watch_switch_track_mtrl.png b/core/res/res/drawable-xhdpi/watch_switch_track_mtrl.png
new file mode 100644
index 000000000000..1aa544227380
Binary files /dev/null and b/core/res/res/drawable-xhdpi/watch_switch_track_mtrl.png differ
diff --git a/core/res/res/drawable-xxhdpi/watch_switch_thumb_mtrl_14w.png b/core/res/res/drawable-xxhdpi/watch_switch_thumb_mtrl_14w.png
new file mode 100644
index 000000000000..c0d72d70d6dd
Binary files /dev/null and b/core/res/res/drawable-xxhdpi/watch_switch_thumb_mtrl_14w.png differ
diff --git a/core/res/res/drawable-xxhdpi/watch_switch_thumb_mtrl_15w.png b/core/res/res/drawable-xxhdpi/watch_switch_thumb_mtrl_15w.png
new file mode 100644
index 000000000000..d7c0ec0fd25e
Binary files /dev/null and b/core/res/res/drawable-xxhdpi/watch_switch_thumb_mtrl_15w.png differ
diff --git a/core/res/res/drawable-xxhdpi/watch_switch_thumb_mtrl_16w.png b/core/res/res/drawable-xxhdpi/watch_switch_thumb_mtrl_16w.png
new file mode 100644
index 000000000000..5815ba9d3767
Binary files /dev/null and b/core/res/res/drawable-xxhdpi/watch_switch_thumb_mtrl_16w.png differ
diff --git a/core/res/res/drawable-xxhdpi/watch_switch_thumb_mtrl_17w.png b/core/res/res/drawable-xxhdpi/watch_switch_thumb_mtrl_17w.png
new file mode 100644
index 000000000000..41da8c0eaaa6
Binary files /dev/null and b/core/res/res/drawable-xxhdpi/watch_switch_thumb_mtrl_17w.png differ
diff --git a/core/res/res/drawable-xxhdpi/watch_switch_thumb_mtrl_18w.png b/core/res/res/drawable-xxhdpi/watch_switch_thumb_mtrl_18w.png
new file mode 100644
index 000000000000..975eb01cea4a
Binary files /dev/null and b/core/res/res/drawable-xxhdpi/watch_switch_thumb_mtrl_18w.png differ
diff --git a/core/res/res/drawable-xxhdpi/watch_switch_track_mtrl.png b/core/res/res/drawable-xxhdpi/watch_switch_track_mtrl.png
new file mode 100644
index 000000000000..af2042be7f59
Binary files /dev/null and b/core/res/res/drawable-xxhdpi/watch_switch_track_mtrl.png differ
diff --git a/core/res/res/drawable/ic_qs_network_logging.xml b/core/res/res/drawable/ic_qs_network_logging.xml
new file mode 100644
index 000000000000..9e08264156e6
--- /dev/null
+++ b/core/res/res/drawable/ic_qs_network_logging.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
diff --git a/core/res/res/drawable/lockscreen_notselected.xml b/core/res/res/drawable/lockscreen_notselected.xml
new file mode 100644
index 000000000000..eecea13b59e2
--- /dev/null
+++ b/core/res/res/drawable/lockscreen_notselected.xml
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/core/res/res/drawable/lockscreen_selected.xml b/core/res/res/drawable/lockscreen_selected.xml
new file mode 100644
index 000000000000..eecea13b59e2
--- /dev/null
+++ b/core/res/res/drawable/lockscreen_selected.xml
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/core/res/res/drawable/watch_switch_thumb_material_anim.xml b/core/res/res/drawable/watch_switch_thumb_material_anim.xml
index 686fb976cf1c..9e3e89338dab 100644
--- a/core/res/res/drawable/watch_switch_thumb_material_anim.xml
+++ b/core/res/res/drawable/watch_switch_thumb_material_anim.xml
@@ -15,21 +15,79 @@
android:constantSize="true">
+ android:drawable="@drawable/watch_switch_thumb_mtrl_14w" />
+ android:toId="@id/on">
+
+
+
+
+
+
+
+
+
+
+
+
+ android:toId="@id/off">
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/core/res/res/interpolator-watch/progress_indeterminate_rotation_interpolator.xml b/core/res/res/interpolator-watch/progress_indeterminate_rotation_interpolator.xml
new file mode 100644
index 000000000000..ed2655cb0ac8
--- /dev/null
+++ b/core/res/res/interpolator-watch/progress_indeterminate_rotation_interpolator.xml
@@ -0,0 +1,18 @@
+
+
+
diff --git a/core/res/res/interpolator-watch/trim_end_interpolator.xml b/core/res/res/interpolator-watch/trim_end_interpolator.xml
new file mode 100644
index 000000000000..f46d5e0e7c82
--- /dev/null
+++ b/core/res/res/interpolator-watch/trim_end_interpolator.xml
@@ -0,0 +1,18 @@
+
+
+
diff --git a/core/res/res/interpolator-watch/trim_offset_interpolator.xml b/core/res/res/interpolator-watch/trim_offset_interpolator.xml
new file mode 100644
index 000000000000..d58672e9cb42
--- /dev/null
+++ b/core/res/res/interpolator-watch/trim_offset_interpolator.xml
@@ -0,0 +1,18 @@
+
+
+
diff --git a/core/res/res/interpolator-watch/trim_start_interpolator.xml b/core/res/res/interpolator-watch/trim_start_interpolator.xml
new file mode 100644
index 000000000000..365609c97d75
--- /dev/null
+++ b/core/res/res/interpolator-watch/trim_start_interpolator.xml
@@ -0,0 +1,18 @@
+
+
+
diff --git a/core/res/res/layout-notround-watch/alert_dialog_header_micro.xml b/core/res/res/layout-notround-watch/alert_dialog_title_material.xml
similarity index 74%
rename from core/res/res/layout-notround-watch/alert_dialog_header_micro.xml
rename to core/res/res/layout-notround-watch/alert_dialog_title_material.xml
index fc840d9fa73f..08eecef1da95 100644
--- a/core/res/res/layout-notround-watch/alert_dialog_header_micro.xml
+++ b/core/res/res/layout-notround-watch/alert_dialog_title_material.xml
@@ -18,24 +18,21 @@
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:paddingTop="?attr/dialogPreferredPadding"
+ android:paddingBottom="8dp"
android:orientation="vertical"
- android:gravity="top|center_horizontal"
- android:minHeight="@dimen/alert_dialog_title_height">
+ android:gravity="center_horizontal|top">
-
+ android:layout_height="wrap_content" />
diff --git a/core/res/res/layout-round-watch/alert_dialog_header_micro.xml b/core/res/res/layout-round-watch/alert_dialog_title_material.xml
similarity index 52%
rename from core/res/res/layout-round-watch/alert_dialog_header_micro.xml
rename to core/res/res/layout-round-watch/alert_dialog_title_material.xml
index 6f7ae02388a3..dac1e324be81 100644
--- a/core/res/res/layout-round-watch/alert_dialog_header_micro.xml
+++ b/core/res/res/layout-round-watch/alert_dialog_title_material.xml
@@ -14,25 +14,30 @@
~ See the License for the specific language governing permissions and
~ limitations under the License
-->
-
-
+
-
+
+
+
-
+ android:layout_height="wrap_content" />
+
diff --git a/core/res/res/layout-watch/alert_dialog_material.xml b/core/res/res/layout-watch/alert_dialog_material.xml
index ce8e20a12187..960b927a0e64 100644
--- a/core/res/res/layout-watch/alert_dialog_material.xml
+++ b/core/res/res/layout-watch/alert_dialog_material.xml
@@ -39,18 +39,19 @@
+ layout="@layout/alert_dialog_title_material"/>
diff --git a/core/res/res/layout-watch/date_picker_dialog.xml b/core/res/res/layout-watch/date_picker_dialog.xml
new file mode 100644
index 000000000000..b8772bc5ea3c
--- /dev/null
+++ b/core/res/res/layout-watch/date_picker_dialog.xml
@@ -0,0 +1,26 @@
+
+
+
+
diff --git a/core/res/res/layout-watch/input_method_extract_view.xml b/core/res/res/layout-watch/input_method_extract_view.xml
index 038b766c749b..3478bb544934 100644
--- a/core/res/res/layout-watch/input_method_extract_view.xml
+++ b/core/res/res/layout-watch/input_method_extract_view.xml
@@ -49,7 +49,7 @@
android:layout_width="@dimen/input_extract_action_button_width"
android:layout_height="@dimen/input_extract_action_button_width"
android:background="@drawable/input_extract_action_bg_material_dark"
- android:padding="4dp"
+ android:padding="@dimen/input_extract_action_icon_padding"
android:scaleType="centerInside" />
diff --git a/core/res/res/layout-watch/preference_list_fragment_material.xml b/core/res/res/layout-watch/preference_list_fragment_material.xml
index ae8f203a7ce6..22e66d513936 100644
--- a/core/res/res/layout-watch/preference_list_fragment_material.xml
+++ b/core/res/res/layout-watch/preference_list_fragment_material.xml
@@ -44,7 +44,7 @@
android:paddingEnd="@dimen/dialog_padding_material"
android:paddingBottom="8dp"
android:textAppearance="@style/TextAppearance.Material.Title"
- android:gravity="center" />
+ android:gravity="center_horizontal|top" />
diff --git a/core/res/res/layout-watch/preference_widget_switch.xml b/core/res/res/layout-watch/preference_widget_switch.xml
index 37d0c6bf1af6..a1a845abfe3a 100644
--- a/core/res/res/layout-watch/preference_widget_switch.xml
+++ b/core/res/res/layout-watch/preference_widget_switch.xml
@@ -23,8 +23,9 @@
android:layout_gravity="center"
android:thumb="@drawable/watch_switch_thumb_material_anim"
android:thumbTint="@color/watch_switch_thumb_color_material"
- android:track="@drawable/watch_switch_track_material"
- android:trackTint="?android:colorPrimary"
+ android:thumbTintMode="multiply"
+ android:track="@drawable/watch_switch_track_mtrl"
+ android:trackTint="@color/watch_switch_track_color_material"
android:focusable="false"
android:clickable="false"
android:background="@null" />
diff --git a/core/res/res/layout-watch/progress_dialog_material.xml b/core/res/res/layout-watch/progress_dialog_material.xml
index 228f72454c0a..96bda1d0c285 100644
--- a/core/res/res/layout-watch/progress_dialog_material.xml
+++ b/core/res/res/layout-watch/progress_dialog_material.xml
@@ -32,14 +32,15 @@
+ android:layout_marginEnd="8dp" />
diff --git a/core/res/res/layout-watch/time_picker_dialog.xml b/core/res/res/layout-watch/time_picker_dialog.xml
new file mode 100644
index 000000000000..788602bf09ba
--- /dev/null
+++ b/core/res/res/layout-watch/time_picker_dialog.xml
@@ -0,0 +1,26 @@
+
+
+
+
diff --git a/core/res/res/layout/date_picker_legacy_holo.xml b/core/res/res/layout/date_picker_legacy_holo.xml
index b465d97339a2..a6e93c99160d 100644
--- a/core/res/res/layout/date_picker_legacy_holo.xml
+++ b/core/res/res/layout/date_picker_legacy_holo.xml
@@ -41,8 +41,8 @@
android:id="@+id/month"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginTop="16dip"
- android:layout_marginBottom="16dip"
+ android:layout_marginTop="@dimen/picker_top_margin"
+ android:layout_marginBottom="@dimen/picker_bottom_margin"
android:layout_marginStart="8dip"
android:layout_marginEnd="8dip"
android:focusable="true"
@@ -54,8 +54,8 @@
android:id="@+id/day"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginTop="16dip"
- android:layout_marginBottom="16dip"
+ android:layout_marginTop="@dimen/picker_top_margin"
+ android:layout_marginBottom="@dimen/picker_bottom_margin"
android:layout_marginStart="8dip"
android:layout_marginEnd="8dip"
android:focusable="true"
@@ -67,8 +67,8 @@
android:id="@+id/year"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginTop="16dip"
- android:layout_marginBottom="16dip"
+ android:layout_marginTop="@dimen/picker_top_margin"
+ android:layout_marginBottom="@dimen/picker_bottom_margin"
android:layout_marginStart="8dip"
android:layout_marginEnd="16dip"
android:focusable="true"
diff --git a/core/res/res/layout/date_picker_material.xml b/core/res/res/layout/date_picker_material.xml
index 763f2a416bfb..dd8a45d26172 100644
--- a/core/res/res/layout/date_picker_material.xml
+++ b/core/res/res/layout/date_picker_material.xml
@@ -25,10 +25,16 @@
android:layout_width="match_parent"
android:layout_height="wrap_content" />
-
+
+
+
diff --git a/core/res/res/layout/number_picker_material.xml b/core/res/res/layout/number_picker_material.xml
index b0455857e79e..6fbd2b279f0c 100644
--- a/core/res/res/layout/number_picker_material.xml
+++ b/core/res/res/layout/number_picker_material.xml
@@ -22,4 +22,4 @@
android:gravity="center"
android:singleLine="true"
android:background="@null"
- android:textAppearance="@style/TextAppearance.Material.Body1" />
+ android:textAppearance="@style/TextAppearance.Material.NumberPicker" />
diff --git a/core/res/res/layout/select_dialog_multichoice_material.xml b/core/res/res/layout/select_dialog_multichoice_material.xml
index 36e8e57b2988..731fe1619634 100644
--- a/core/res/res/layout/select_dialog_multichoice_material.xml
+++ b/core/res/res/layout/select_dialog_multichoice_material.xml
@@ -26,5 +26,5 @@
android:paddingStart="@dimen/select_dialog_padding_start_material"
android:paddingEnd="?attr/dialogPreferredPadding"
android:drawableStart="?attr/listChoiceIndicatorMultiple"
- android:drawablePadding="20dp"
+ android:drawablePadding="@dimen/select_dialog_drawable_padding_start_material"
android:ellipsize="marquee" />
diff --git a/core/res/res/layout/select_dialog_singlechoice_material.xml b/core/res/res/layout/select_dialog_singlechoice_material.xml
index 995272ad80ef..77b693058e82 100644
--- a/core/res/res/layout/select_dialog_singlechoice_material.xml
+++ b/core/res/res/layout/select_dialog_singlechoice_material.xml
@@ -26,5 +26,5 @@
android:paddingStart="@dimen/select_dialog_padding_start_material"
android:paddingEnd="?attr/dialogPreferredPadding"
android:drawableStart="?attr/listChoiceIndicatorSingle"
- android:drawablePadding="20dp"
+ android:drawablePadding="@dimen/select_dialog_drawable_padding_start_material"
android:ellipsize="marquee" />
diff --git a/core/res/res/layout/time_picker_legacy_material.xml b/core/res/res/layout/time_picker_legacy_material.xml
index c6b7d3a70d97..ee56266390f1 100644
--- a/core/res/res/layout/time_picker_legacy_material.xml
+++ b/core/res/res/layout/time_picker_legacy_material.xml
@@ -40,8 +40,8 @@
android:id="@+id/hour"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginTop="16dip"
- android:layout_marginBottom="16dip"
+ android:layout_marginTop="@dimen/picker_top_margin"
+ android:layout_marginBottom="@dimen/picker_bottom_margin"
android:focusable="true"
android:focusableInTouchMode="true"
/>
@@ -62,8 +62,8 @@
android:id="@+id/minute"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginTop="16dip"
- android:layout_marginBottom="16dip"
+ android:layout_marginTop="@dimen/picker_top_margin"
+ android:layout_marginBottom="@dimen/picker_bottom_margin"
android:focusable="true"
android:focusableInTouchMode="true"
/>
@@ -75,8 +75,8 @@
android:id="@+id/amPm"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginTop="16dip"
- android:layout_marginBottom="16dip"
+ android:layout_marginTop="@dimen/picker_top_margin"
+ android:layout_marginBottom="@dimen/picker_bottom_margin"
android:layout_marginStart="8dip"
android:layout_marginEnd="8dip"
android:focusable="true"
diff --git a/core/res/res/raw-ar-xlarge/incognito_mode_start_page.html b/core/res/res/raw-ar-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 002be4164c9a..000000000000
--- a/core/res/res/raw-ar-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- نافذة جديدة للتصفح المتخفي
-
-
- أنت الآن في وضع التصفح المتخفي الصفحات التي تشاهدها في هذه النافذة لن تظهر في سجل المتصفح أو سجلّ البحث، ولن تترك آثارًا أخرى للتتبع، مثل ملفات تعريف الارتباط على جهازك بعد أن تغلق نافذة التصفح المتخفي. ورغم ذلك، سيتم الاحتفاظ بأي ملفات تنزلها أو أية إشارات مرجعية تقوم بإنشائها.
-
- العمل في وضع التصفح المخفي لا يؤثر على طريقة عمل الأشخاص الآخرين أو الخوادم أو البرامج الأخرى. كن على حذر مما يلي:
-
-
- مواقع الويب التي تجمع معلومات عنك أو تشارك الآخرين فيها
- مزوّدو خدمة الإنترنت أو الموظفون الذين يتتبعون الصفحات التي تزورها
- البرامج الضارة التي تتبع ضغطات المفاتيح التي تقوم بها مقابل تنزيل وجوه رمزية مجانًا
- المراقبة من قبل العملاء السريين
- الأشخاص الذين يقفون خلفك
-
-
-
diff --git a/core/res/res/raw-ar/incognito_mode_start_page.html b/core/res/res/raw-ar/incognito_mode_start_page.html
deleted file mode 100644
index 002be4164c9a..000000000000
--- a/core/res/res/raw-ar/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- نافذة جديدة للتصفح المتخفي
-
-
- أنت الآن في وضع التصفح المتخفي الصفحات التي تشاهدها في هذه النافذة لن تظهر في سجل المتصفح أو سجلّ البحث، ولن تترك آثارًا أخرى للتتبع، مثل ملفات تعريف الارتباط على جهازك بعد أن تغلق نافذة التصفح المتخفي. ورغم ذلك، سيتم الاحتفاظ بأي ملفات تنزلها أو أية إشارات مرجعية تقوم بإنشائها.
-
- العمل في وضع التصفح المخفي لا يؤثر على طريقة عمل الأشخاص الآخرين أو الخوادم أو البرامج الأخرى. كن على حذر مما يلي:
-
-
- مواقع الويب التي تجمع معلومات عنك أو تشارك الآخرين فيها
- مزوّدو خدمة الإنترنت أو الموظفون الذين يتتبعون الصفحات التي تزورها
- البرامج الضارة التي تتبع ضغطات المفاتيح التي تقوم بها مقابل تنزيل وجوه رمزية مجانًا
- المراقبة من قبل العملاء السريين
- الأشخاص الذين يقفون خلفك
-
-
-
diff --git a/core/res/res/raw-bg-xlarge/incognito_mode_start_page.html b/core/res/res/raw-bg-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index ee25ae4023ff..000000000000
--- a/core/res/res/raw-bg-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Нов прозорец „инкогнито“
-
-
- Влязохте в режим „инкогнито“ . Страниците, които разглеждате в този прозорец, няма да се показват в историята на браузъра ви, нито в историята на търсенията ви. Те също няма да оставят други следи като „бисквитки“ в устройството ви, след като затворите прозореца в режим „инкогнито“. Ще се съхранят обаче всички файлове, които изтеглите, или отметки, които създадете.
-
- Преминаването в режим „инкогнито“ не засяга поведението на други хора, сървъри или софтуер. Внимавайте за:
-
-
- уебсайтове, които събират или споделят информация за вас;
- доставчици на интернет услуги или служители, които проследяват посещаваните от вас страници;
- злонамерен софтуер, който ви дава безплатни емотикони, но в замяна проследява натисканията на клавишите от вас;
- наблюдение от тайните служби;
- хора, които стоят зад вас.
-
-
-
diff --git a/core/res/res/raw-bg/incognito_mode_start_page.html b/core/res/res/raw-bg/incognito_mode_start_page.html
deleted file mode 100644
index ee25ae4023ff..000000000000
--- a/core/res/res/raw-bg/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Нов прозорец „инкогнито“
-
-
- Влязохте в режим „инкогнито“ . Страниците, които разглеждате в този прозорец, няма да се показват в историята на браузъра ви, нито в историята на търсенията ви. Те също няма да оставят други следи като „бисквитки“ в устройството ви, след като затворите прозореца в режим „инкогнито“. Ще се съхранят обаче всички файлове, които изтеглите, или отметки, които създадете.
-
- Преминаването в режим „инкогнито“ не засяга поведението на други хора, сървъри или софтуер. Внимавайте за:
-
-
- уебсайтове, които събират или споделят информация за вас;
- доставчици на интернет услуги или служители, които проследяват посещаваните от вас страници;
- злонамерен софтуер, който ви дава безплатни емотикони, но в замяна проследява натисканията на клавишите от вас;
- наблюдение от тайните служби;
- хора, които стоят зад вас.
-
-
-
diff --git a/core/res/res/raw-ca-xlarge/incognito_mode_start_page.html b/core/res/res/raw-ca-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index bec3dacb9101..000000000000
--- a/core/res/res/raw-ca-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Nova finestra d'incògnit
-
-
- Has passat a l'estat d'incògnit . Les pàgines que visualitzis en aquesta finestra no apareixeran a l'historial del navegador ni a l'historial de cerques, i no deixaran cap pista, com ara galetes, al dispositiu després de tancar la finestra d'incògnit. Tanmateix, es conservaran tots els fitxers que baixis o les adreces d'interès que creïs.
-
- Utilitzar el mode d'incògnit no afecta el comportament d'altres usuaris, servidors ni programari. Vés amb compte amb:
-
-
- llocs web que recopilen o comparteixen informació sobre la teva identitat,
- proveïdors de serveis d'Internet o treballadors que segueixen les pàgines que visites,
- programari maliciós que segueix les teves pulsacions del teclat a canvi d'emoticones,
- vigilància per part d'agents secrets,
- persones que estan darrere teu.
-
-
-
diff --git a/core/res/res/raw-ca/incognito_mode_start_page.html b/core/res/res/raw-ca/incognito_mode_start_page.html
deleted file mode 100644
index bec3dacb9101..000000000000
--- a/core/res/res/raw-ca/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Nova finestra d'incògnit
-
-
- Has passat a l'estat d'incògnit . Les pàgines que visualitzis en aquesta finestra no apareixeran a l'historial del navegador ni a l'historial de cerques, i no deixaran cap pista, com ara galetes, al dispositiu després de tancar la finestra d'incògnit. Tanmateix, es conservaran tots els fitxers que baixis o les adreces d'interès que creïs.
-
- Utilitzar el mode d'incògnit no afecta el comportament d'altres usuaris, servidors ni programari. Vés amb compte amb:
-
-
- llocs web que recopilen o comparteixen informació sobre la teva identitat,
- proveïdors de serveis d'Internet o treballadors que segueixen les pàgines que visites,
- programari maliciós que segueix les teves pulsacions del teclat a canvi d'emoticones,
- vigilància per part d'agents secrets,
- persones que estan darrere teu.
-
-
-
diff --git a/core/res/res/raw-cs-xlarge/incognito_mode_start_page.html b/core/res/res/raw-cs-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 7420393d3e51..000000000000
--- a/core/res/res/raw-cs-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Nové anonymní okno
-
-
- Spustili jste anonymní režim . Stránky, které zobrazíte v tomto okně, se nezahrnou do historie prohlížeče ani historie vyhledávání a dokonce po zavření tohoto anonymního okna ve vašem zařízení nezanechají ani žádné jiné stopy například v podobě souborů cookie. Veškeré stažené soubory nebo vytvořené záložky však budou zachovány.
-
- Použití anonymního režimu nemá vliv na chování jiných osob, serverů nebo softwaru. Dejte si pozor na:
-
-
- Weby, které sbírají nebo sdílejí informace o vás
- Poskytovatele internetových služeb nebo zaměstnavatele, kteří sledují stránky, které navštěvujete
- Škodlivý software, který sleduje stisknuté klávesy a výměnou nabízí nové emotikony
- Tajné agenty
- Lidi, kteří vám koukají přes rameno
-
-
-
diff --git a/core/res/res/raw-cs/incognito_mode_start_page.html b/core/res/res/raw-cs/incognito_mode_start_page.html
deleted file mode 100644
index 7420393d3e51..000000000000
--- a/core/res/res/raw-cs/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Nové anonymní okno
-
-
- Spustili jste anonymní režim . Stránky, které zobrazíte v tomto okně, se nezahrnou do historie prohlížeče ani historie vyhledávání a dokonce po zavření tohoto anonymního okna ve vašem zařízení nezanechají ani žádné jiné stopy například v podobě souborů cookie. Veškeré stažené soubory nebo vytvořené záložky však budou zachovány.
-
- Použití anonymního režimu nemá vliv na chování jiných osob, serverů nebo softwaru. Dejte si pozor na:
-
-
- Weby, které sbírají nebo sdílejí informace o vás
- Poskytovatele internetových služeb nebo zaměstnavatele, kteří sledují stránky, které navštěvujete
- Škodlivý software, který sleduje stisknuté klávesy a výměnou nabízí nové emotikony
- Tajné agenty
- Lidi, kteří vám koukají přes rameno
-
-
-
diff --git a/core/res/res/raw-da-xlarge/incognito_mode_start_page.html b/core/res/res/raw-da-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index eae989f9cd19..000000000000
--- a/core/res/res/raw-da-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Nyt inkognitovindue
-
-
- Nu er du inkognito . De sider, du besøger i dette vindue, vises ikke i din browser- eller søgeoversigt, og de efterlader ikke andre spor, såsom cookies, på din enhed, når du lukker incognitovinduet. Filer, som du downloader eller bogmærker, som du opretter, gemmes dog.
-
- At være inkognito er ikke noget, der påvirker andre folk, servere eller software. Vær opmærksom på:
-
-
- Websider, der indsamler eller deler oplysninger om dig
- Internetserviceudbydere eller arbejdsgivere, der registrerer de sider, du besøger
- Ondsindet software, der registrerer dine tasteslag til gengæld for gratis smileys
- Overvågning af hemmelige agenter
- Folk, der kigger dig over skulderen
-
-
-
diff --git a/core/res/res/raw-da/incognito_mode_start_page.html b/core/res/res/raw-da/incognito_mode_start_page.html
deleted file mode 100644
index eae989f9cd19..000000000000
--- a/core/res/res/raw-da/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Nyt inkognitovindue
-
-
- Nu er du inkognito . De sider, du besøger i dette vindue, vises ikke i din browser- eller søgeoversigt, og de efterlader ikke andre spor, såsom cookies, på din enhed, når du lukker incognitovinduet. Filer, som du downloader eller bogmærker, som du opretter, gemmes dog.
-
- At være inkognito er ikke noget, der påvirker andre folk, servere eller software. Vær opmærksom på:
-
-
- Websider, der indsamler eller deler oplysninger om dig
- Internetserviceudbydere eller arbejdsgivere, der registrerer de sider, du besøger
- Ondsindet software, der registrerer dine tasteslag til gengæld for gratis smileys
- Overvågning af hemmelige agenter
- Folk, der kigger dig over skulderen
-
-
-
diff --git a/core/res/res/raw-de-xlarge/incognito_mode_start_page.html b/core/res/res/raw-de-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 1d2cb69904b0..000000000000
--- a/core/res/res/raw-de-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Neues Inkognito-Fenster
-
-
- Sie haben den Modus für anonymes Browsen aktiviert . In diesem Fenster aufgerufene Seiten erscheinen nicht in Ihrem Browser- oder Suchverlauf. Zudem werden nach dem Schließen des Inkognito-Fensters keine anderen Spuren wie etwa Cookies auf Ihrem Gerät gespeichert. Heruntergeladene Dateien oder hinzugefügte Lesezeichen werden jedoch beibehalten.
-
- Das anonyme Browsen wirkt sich nicht auf das Verhalten von Menschen, Servern oder Software aus. Vorsicht ist geboten bei:
-
-
- Websites, auf denen Informationen über Sie gesammelt oder weitergegeben werden
- Internetanbietern oder Arbeitgebern, die die von Ihnen aufgerufenen Seiten protokollieren
- Bösartiger Software, die Ihnen kostenlose Smileys bietet, dafür aber Ihre Tastatureingaben speichert
- Geheimagenten
- Personen, die hinter Ihnen stehen
-
-
-
diff --git a/core/res/res/raw-de/incognito_mode_start_page.html b/core/res/res/raw-de/incognito_mode_start_page.html
deleted file mode 100644
index 1d2cb69904b0..000000000000
--- a/core/res/res/raw-de/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Neues Inkognito-Fenster
-
-
- Sie haben den Modus für anonymes Browsen aktiviert . In diesem Fenster aufgerufene Seiten erscheinen nicht in Ihrem Browser- oder Suchverlauf. Zudem werden nach dem Schließen des Inkognito-Fensters keine anderen Spuren wie etwa Cookies auf Ihrem Gerät gespeichert. Heruntergeladene Dateien oder hinzugefügte Lesezeichen werden jedoch beibehalten.
-
- Das anonyme Browsen wirkt sich nicht auf das Verhalten von Menschen, Servern oder Software aus. Vorsicht ist geboten bei:
-
-
- Websites, auf denen Informationen über Sie gesammelt oder weitergegeben werden
- Internetanbietern oder Arbeitgebern, die die von Ihnen aufgerufenen Seiten protokollieren
- Bösartiger Software, die Ihnen kostenlose Smileys bietet, dafür aber Ihre Tastatureingaben speichert
- Geheimagenten
- Personen, die hinter Ihnen stehen
-
-
-
diff --git a/core/res/res/raw-el-xlarge/incognito_mode_start_page.html b/core/res/res/raw-el-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 5641650b8691..000000000000
--- a/core/res/res/raw-el-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Νέο παράθυρο για ανώνυμη περιήγηση
-
-
- Είστε σε κατάσταση ανώνυμης περιήγησης . Οι σελίδες που θα προβάλλετε σε αυτό το παράθυρο δεν θα εμφανιστούν στο ιστορικό του πρόγράμματος περιήγησης ή στο ιστορικό αναζήτησης. Επίσης, δεν θα αφήσουν ίχνη, όπως cookie, στη συσκευή σας αφού κλείσετε το παράθυρο ανώνυμης περιήγησης. Ωστόσο, τα αρχεία και οι σελιδοδείκτες που θα δημιουργήσετε θα διατηρηθούν.
-
- Η κατάσταση ανώνυμης περιήγησης δεν επηρεάζει την συμπεριφορά άλλων, διακομιστών ή λογισμικού. Αλλά προσοχή σε:
-
-
- Ιστοτόπους που συλλέγουν ή μοιράζονται πληροφορίες για εσάς
- Πάροχους υπηρεσιών διαδικτύου ή εργοδότες που παρακολουθούν τις ιστοσελίδες που επισκέπτεστε
- Κακόβουλο λογισμικό που καταγράφει ότι πληκτρολογείτε με αντάλλαγμα δωρεάν "φατσούλες"
- Παρακολούθηση από μυστικούς πράκτορες
- Άτομα που στέκονται πίσω σας
-
-
-
diff --git a/core/res/res/raw-el/incognito_mode_start_page.html b/core/res/res/raw-el/incognito_mode_start_page.html
deleted file mode 100644
index 5641650b8691..000000000000
--- a/core/res/res/raw-el/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Νέο παράθυρο για ανώνυμη περιήγηση
-
-
- Είστε σε κατάσταση ανώνυμης περιήγησης . Οι σελίδες που θα προβάλλετε σε αυτό το παράθυρο δεν θα εμφανιστούν στο ιστορικό του πρόγράμματος περιήγησης ή στο ιστορικό αναζήτησης. Επίσης, δεν θα αφήσουν ίχνη, όπως cookie, στη συσκευή σας αφού κλείσετε το παράθυρο ανώνυμης περιήγησης. Ωστόσο, τα αρχεία και οι σελιδοδείκτες που θα δημιουργήσετε θα διατηρηθούν.
-
- Η κατάσταση ανώνυμης περιήγησης δεν επηρεάζει την συμπεριφορά άλλων, διακομιστών ή λογισμικού. Αλλά προσοχή σε:
-
-
- Ιστοτόπους που συλλέγουν ή μοιράζονται πληροφορίες για εσάς
- Πάροχους υπηρεσιών διαδικτύου ή εργοδότες που παρακολουθούν τις ιστοσελίδες που επισκέπτεστε
- Κακόβουλο λογισμικό που καταγράφει ότι πληκτρολογείτε με αντάλλαγμα δωρεάν "φατσούλες"
- Παρακολούθηση από μυστικούς πράκτορες
- Άτομα που στέκονται πίσω σας
-
-
-
diff --git a/core/res/res/raw-en-rGB-xlarge/incognito_mode_start_page.html b/core/res/res/raw-en-rGB-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 7436f9804c51..000000000000
--- a/core/res/res/raw-en-rGB-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- New incognito window
-
-
- You've gone incognito . Pages that you view in this window won't appear in your browser history or search history, and they won't leave other traces, such as cookies, on your device after you close the incognito window. However, any files that you download or bookmarks that you create will be preserved.
-
- Going incognito doesn't affect the behaviour of other people, servers or software. Be cautious of:
-
-
- Websites that collect or share information about you
- Internet service providers or employers that track the pages that you visit
- Malicious software that tracks your keystrokes in exchange for free smileys
- Surveillance by secret agents
- People standing behind you
-
-
-
diff --git a/core/res/res/raw-en-rGB/incognito_mode_start_page.html b/core/res/res/raw-en-rGB/incognito_mode_start_page.html
deleted file mode 100644
index 7436f9804c51..000000000000
--- a/core/res/res/raw-en-rGB/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- New incognito window
-
-
- You've gone incognito . Pages that you view in this window won't appear in your browser history or search history, and they won't leave other traces, such as cookies, on your device after you close the incognito window. However, any files that you download or bookmarks that you create will be preserved.
-
- Going incognito doesn't affect the behaviour of other people, servers or software. Be cautious of:
-
-
- Websites that collect or share information about you
- Internet service providers or employers that track the pages that you visit
- Malicious software that tracks your keystrokes in exchange for free smileys
- Surveillance by secret agents
- People standing behind you
-
-
-
diff --git a/core/res/res/raw-es-rUS-xlarge/incognito_mode_start_page.html b/core/res/res/raw-es-rUS-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index d283df56cbaf..000000000000
--- a/core/res/res/raw-es-rUS-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Nueva ventana de incógnito
-
-
- Estás de incógnito . Las páginas que veas en esta ventana no aparecerán en el historial de tu navegador ni en el historial de búsquedas, y cuando cierres la ventana de incógnito, tampoco quedará ningún otro rastro, como cookies, en tu dispositivo. Sin embargo, sí se preservarán los archivos que descargues o los favoritos que marques.
-
- Estar de incógnito no afecta el comportamiento de otras personas, servidores o programas. Ten cuidado con:
-
-
- Sitios web que recaban o comparten tu información
- Proveedores de servicio de Internet o empleadores que hacen un seguimiento de las páginas que visitas
- Programas de software maliciosos que hacen un seguimiento de la actividad de tu teclado a cambio de emoticones gratuitos
- Vigilancia a cargo de agentes secretos
- Personas paradas atrás tuyo
-
-
-
diff --git a/core/res/res/raw-es-rUS/incognito_mode_start_page.html b/core/res/res/raw-es-rUS/incognito_mode_start_page.html
deleted file mode 100644
index d283df56cbaf..000000000000
--- a/core/res/res/raw-es-rUS/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Nueva ventana de incógnito
-
-
- Estás de incógnito . Las páginas que veas en esta ventana no aparecerán en el historial de tu navegador ni en el historial de búsquedas, y cuando cierres la ventana de incógnito, tampoco quedará ningún otro rastro, como cookies, en tu dispositivo. Sin embargo, sí se preservarán los archivos que descargues o los favoritos que marques.
-
- Estar de incógnito no afecta el comportamiento de otras personas, servidores o programas. Ten cuidado con:
-
-
- Sitios web que recaban o comparten tu información
- Proveedores de servicio de Internet o empleadores que hacen un seguimiento de las páginas que visitas
- Programas de software maliciosos que hacen un seguimiento de la actividad de tu teclado a cambio de emoticones gratuitos
- Vigilancia a cargo de agentes secretos
- Personas paradas atrás tuyo
-
-
-
diff --git a/core/res/res/raw-es-xlarge/incognito_mode_start_page.html b/core/res/res/raw-es-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 6d9b5014b615..000000000000
--- a/core/res/res/raw-es-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Nueva ventana de incógnito
-
-
- Estás navegando de incógnito . Las páginas que consultes a través de esta ventana no quedarán registradas en el historial del navegador ni en el historial de búsquedas, y tampoco dejarán otros rastros en el ordenador (como cookies) una vez cerrada. Los archivos que descargues y los marcadores que guardes sí se almacenarán.
-
- La función de navegación de incógnito no afecta al comportamiento de los servidores o programas de software. Ten cuidado con:
-
-
- sitios web que recopilan o comparten información personal
- proveedores de servicios de Internet o trabajadores de estas empresas que supervisan las páginas que visitas
- software malicioso que realiza un seguimiento de las teclas que pulsas a cambio de emoticonos gratuitos
- actividades de seguimiento por parte de terceros
- personas merodeando cerca de tu ordenador
-
-
-
diff --git a/core/res/res/raw-es/incognito_mode_start_page.html b/core/res/res/raw-es/incognito_mode_start_page.html
deleted file mode 100644
index 6d9b5014b615..000000000000
--- a/core/res/res/raw-es/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Nueva ventana de incógnito
-
-
- Estás navegando de incógnito . Las páginas que consultes a través de esta ventana no quedarán registradas en el historial del navegador ni en el historial de búsquedas, y tampoco dejarán otros rastros en el ordenador (como cookies) una vez cerrada. Los archivos que descargues y los marcadores que guardes sí se almacenarán.
-
- La función de navegación de incógnito no afecta al comportamiento de los servidores o programas de software. Ten cuidado con:
-
-
- sitios web que recopilan o comparten información personal
- proveedores de servicios de Internet o trabajadores de estas empresas que supervisan las páginas que visitas
- software malicioso que realiza un seguimiento de las teclas que pulsas a cambio de emoticonos gratuitos
- actividades de seguimiento por parte de terceros
- personas merodeando cerca de tu ordenador
-
-
-
diff --git a/core/res/res/raw-fa-xlarge/incognito_mode_start_page.html b/core/res/res/raw-fa-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index f004120a62e4..000000000000
--- a/core/res/res/raw-fa-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- پنجره ناشناس جدید
-
-
- شما به صورت ناشناس وارد شده اید صفحاتی که شما در این پنجره مشاهده میکنید در سابقه مرورگر یا سابقه جستجوی شما ظاهر نمیشوند، و پس از بستن پنجره ناشناس، دنباله ای از خود مانند کوکی ها روی دستگاه شما بر جای نمیگذارند. به هر حال، فایل های دانلود شده و نشانکهای صفحه ای که ایجاد کرده اید باقی خواهند ماند.
-
- وارد شدن به صورت ناشناس، تاثیری بر روی رفتار افراد دیگر، سرورها و یا نرم افزارها ندارد. در خصوص موارد زیر هشیار باشید:
-
-
- وبسایت هایی که اطلاعاتی را در مورد شما جمع آوری کرده و به اشتراک میگذارند
- تامین کننده های خدمات اینترنتی شما یا کارمندانی که صفحاتی که شما بازدید کرده اید را پیگیری میکنند
- نرم افزارهای مخربی که در ازای نشانک های رایگان، ضربات کلیدهای شما را ذخیره میکنند
- نظارت توسط نمایندگان سری
- افرادی که پشت سرتان ایستاده اند
-
-
-
diff --git a/core/res/res/raw-fa/incognito_mode_start_page.html b/core/res/res/raw-fa/incognito_mode_start_page.html
deleted file mode 100644
index f004120a62e4..000000000000
--- a/core/res/res/raw-fa/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- پنجره ناشناس جدید
-
-
- شما به صورت ناشناس وارد شده اید صفحاتی که شما در این پنجره مشاهده میکنید در سابقه مرورگر یا سابقه جستجوی شما ظاهر نمیشوند، و پس از بستن پنجره ناشناس، دنباله ای از خود مانند کوکی ها روی دستگاه شما بر جای نمیگذارند. به هر حال، فایل های دانلود شده و نشانکهای صفحه ای که ایجاد کرده اید باقی خواهند ماند.
-
- وارد شدن به صورت ناشناس، تاثیری بر روی رفتار افراد دیگر، سرورها و یا نرم افزارها ندارد. در خصوص موارد زیر هشیار باشید:
-
-
- وبسایت هایی که اطلاعاتی را در مورد شما جمع آوری کرده و به اشتراک میگذارند
- تامین کننده های خدمات اینترنتی شما یا کارمندانی که صفحاتی که شما بازدید کرده اید را پیگیری میکنند
- نرم افزارهای مخربی که در ازای نشانک های رایگان، ضربات کلیدهای شما را ذخیره میکنند
- نظارت توسط نمایندگان سری
- افرادی که پشت سرتان ایستاده اند
-
-
-
diff --git a/core/res/res/raw-fi-xlarge/incognito_mode_start_page.html b/core/res/res/raw-fi-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index feb9f4faae32..000000000000
--- a/core/res/res/raw-fi-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Uusi incognito-ikkuna
-
-
- Olet nyt incognito-tilassa . Incognito-tilassa katsellut sivut eivät näy selainhistoriassa eikä hakuhistoriassa. Ne eivät myöskään jätä muita jälkiä, kuten evästeitä, sivun sulkemisen jälkeen. Lataamasi tiedostot tai luomasi kirjanmerkit tosin tallentuvat.
-
- Incognito-tilaan siirtyminen ei vaikuta muiden ihmisten, palvelimien tai tietokoneohjelmien toimintaan. Varo:
-
-
- Verkkosivustoja jotka keräävät sinusta tietoa ja/tai jakavat sitä eteenpäin
- Internet-palveluntarjoajia ja työnantajia jotka seuraavat sivuja, joilla käyt
- Haittaohjelmia jotka seuraavat näppäimistön toimintaa ja tarjoavat vastineeksi ilmaisia hymiöitä
- Salaisten agenttien seurantaa
- Ihmisiä jotka seisovat takanasi
-
-
-
diff --git a/core/res/res/raw-fi/incognito_mode_start_page.html b/core/res/res/raw-fi/incognito_mode_start_page.html
deleted file mode 100644
index feb9f4faae32..000000000000
--- a/core/res/res/raw-fi/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Uusi incognito-ikkuna
-
-
- Olet nyt incognito-tilassa . Incognito-tilassa katsellut sivut eivät näy selainhistoriassa eikä hakuhistoriassa. Ne eivät myöskään jätä muita jälkiä, kuten evästeitä, sivun sulkemisen jälkeen. Lataamasi tiedostot tai luomasi kirjanmerkit tosin tallentuvat.
-
- Incognito-tilaan siirtyminen ei vaikuta muiden ihmisten, palvelimien tai tietokoneohjelmien toimintaan. Varo:
-
-
- Verkkosivustoja jotka keräävät sinusta tietoa ja/tai jakavat sitä eteenpäin
- Internet-palveluntarjoajia ja työnantajia jotka seuraavat sivuja, joilla käyt
- Haittaohjelmia jotka seuraavat näppäimistön toimintaa ja tarjoavat vastineeksi ilmaisia hymiöitä
- Salaisten agenttien seurantaa
- Ihmisiä jotka seisovat takanasi
-
-
-
diff --git a/core/res/res/raw-fr-xlarge/incognito_mode_start_page.html b/core/res/res/raw-fr-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 8962cdf28859..000000000000
--- a/core/res/res/raw-fr-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Nouvelle fenêtre de navigation privée
-
-
- Vous êtes passé en navigation privée . Les pages que vous consultez dans cette fenêtre n'apparaîtront ni dans l'historique de votre navigateur, ni dans l'historique des recherches, et ne laisseront aucune trace (comme les cookies) sur votre appareil une fois que vous aurez fermé la fenêtre de navigation privée. Tous les fichiers téléchargés et les favoris créés seront toutefois conservés.
-
- Passer en navigation privée n'a aucun effet sur les autres utilisateurs, serveurs ou logiciels. Méfiez-vous :
-
-
- Des sites Web qui collectent ou partagent des informations vous concernant
- Des fournisseurs d'accès Internet ou des employeurs qui conservent une trace des pages que vous visitez
- Des programmes indésirables qui enregistrent vos frappes en échange d'émoticônes gratuites
- Des personnes qui pourraient surveiller vos activités
- Des personnes qui se tiennent derrière vous
-
-
-
diff --git a/core/res/res/raw-fr/incognito_mode_start_page.html b/core/res/res/raw-fr/incognito_mode_start_page.html
deleted file mode 100644
index 8962cdf28859..000000000000
--- a/core/res/res/raw-fr/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Nouvelle fenêtre de navigation privée
-
-
- Vous êtes passé en navigation privée . Les pages que vous consultez dans cette fenêtre n'apparaîtront ni dans l'historique de votre navigateur, ni dans l'historique des recherches, et ne laisseront aucune trace (comme les cookies) sur votre appareil une fois que vous aurez fermé la fenêtre de navigation privée. Tous les fichiers téléchargés et les favoris créés seront toutefois conservés.
-
- Passer en navigation privée n'a aucun effet sur les autres utilisateurs, serveurs ou logiciels. Méfiez-vous :
-
-
- Des sites Web qui collectent ou partagent des informations vous concernant
- Des fournisseurs d'accès Internet ou des employeurs qui conservent une trace des pages que vous visitez
- Des programmes indésirables qui enregistrent vos frappes en échange d'émoticônes gratuites
- Des personnes qui pourraient surveiller vos activités
- Des personnes qui se tiennent derrière vous
-
-
-
diff --git a/core/res/res/raw-hi-xlarge/incognito_mode_start_page.html b/core/res/res/raw-hi-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index f73c41d01e9c..000000000000
--- a/core/res/res/raw-hi-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- नई गुप्त विंडो
-
-
- आप गुप्त मोड में हैं . इस विंडो में देखे गए पृष्ठ आपके ब्राउज़र इतिहास या खोज इतिहास में प्रकट नहीं होंगे, और वे आपके डिवाइस पर गुप्त विंडो बंद करने के बाद और कोई चिह्न जैसे कुकीज़, नहीं छोड़ते. हालांकि डाउनलोड की गई या बुकमार्क की गई कोई भी फ़ाइल संरक्षित रखी जाएगी.
-
- गुप्त मोड में होने से दूसरे लोगों, सर्वर. या सॉफ़्टवेयर पर कोई प्रभाव नहीं होता. इनका ध्यान रखें
-
-
- वे वेबसाइट जो आपके बारे में जानकारी एकत्र या शेयर करती हैं
- इंटरनेट सेवा प्रदाता या नियोक्ता जो आपके द्वारा विज़िट किए गए पृष्ठों पर नज़र रखते हैं
- दुर्भावनापूर्ण सॉफ़्टवेयर जो मुफ़्त स्माइली के बदले आपके कीस्ट्रोक पर नज़र रखते हैं.
- गुप्तचरों द्वारा निगरानी
- आपके पीछे खड़े लोग
-
-
-
diff --git a/core/res/res/raw-hi/incognito_mode_start_page.html b/core/res/res/raw-hi/incognito_mode_start_page.html
deleted file mode 100644
index f73c41d01e9c..000000000000
--- a/core/res/res/raw-hi/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- नई गुप्त विंडो
-
-
- आप गुप्त मोड में हैं . इस विंडो में देखे गए पृष्ठ आपके ब्राउज़र इतिहास या खोज इतिहास में प्रकट नहीं होंगे, और वे आपके डिवाइस पर गुप्त विंडो बंद करने के बाद और कोई चिह्न जैसे कुकीज़, नहीं छोड़ते. हालांकि डाउनलोड की गई या बुकमार्क की गई कोई भी फ़ाइल संरक्षित रखी जाएगी.
-
- गुप्त मोड में होने से दूसरे लोगों, सर्वर. या सॉफ़्टवेयर पर कोई प्रभाव नहीं होता. इनका ध्यान रखें
-
-
- वे वेबसाइट जो आपके बारे में जानकारी एकत्र या शेयर करती हैं
- इंटरनेट सेवा प्रदाता या नियोक्ता जो आपके द्वारा विज़िट किए गए पृष्ठों पर नज़र रखते हैं
- दुर्भावनापूर्ण सॉफ़्टवेयर जो मुफ़्त स्माइली के बदले आपके कीस्ट्रोक पर नज़र रखते हैं.
- गुप्तचरों द्वारा निगरानी
- आपके पीछे खड़े लोग
-
-
-
diff --git a/core/res/res/raw-hr-xlarge/incognito_mode_start_page.html b/core/res/res/raw-hr-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 6f20fe0ecfd9..000000000000
--- a/core/res/res/raw-hr-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Novi anonimni prozor
-
-
- Sada ste anonimni . Stranice koje pregledavate u ovom prozoru neće se pojaviti u povijesti preglednika ili povijesti pretraživanja, neće ostaviti tragove, poput kolačića, na vašem uređaju nakon što zatvorite anonimni prozor. Međutim, sve datoteke koje preuzmete ili oznake koje stvorite bit će sačuvane.
-
- Anonimno pregledavanje neće utjecati na ponašanje drugih osoba, poslužitelja ili softvera. Pazite na sljedeće:
-
-
- Web-lokacije koje prikupljaju ili dijele informacije o vama
- Davatelje internetskih usluga ili poslodavce koji prate stranice koje posjećujete
- Zlonamjerni softver koji prati koje tipke pritišćete u zamjenu za besplatne emotikone
- Nadzor tajnih službi
- Osobe koje stoje iza vas
-
-
-
diff --git a/core/res/res/raw-hr/incognito_mode_start_page.html b/core/res/res/raw-hr/incognito_mode_start_page.html
deleted file mode 100644
index 6f20fe0ecfd9..000000000000
--- a/core/res/res/raw-hr/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Novi anonimni prozor
-
-
- Sada ste anonimni . Stranice koje pregledavate u ovom prozoru neće se pojaviti u povijesti preglednika ili povijesti pretraživanja, neće ostaviti tragove, poput kolačića, na vašem uređaju nakon što zatvorite anonimni prozor. Međutim, sve datoteke koje preuzmete ili oznake koje stvorite bit će sačuvane.
-
- Anonimno pregledavanje neće utjecati na ponašanje drugih osoba, poslužitelja ili softvera. Pazite na sljedeće:
-
-
- Web-lokacije koje prikupljaju ili dijele informacije o vama
- Davatelje internetskih usluga ili poslodavce koji prate stranice koje posjećujete
- Zlonamjerni softver koji prati koje tipke pritišćete u zamjenu za besplatne emotikone
- Nadzor tajnih službi
- Osobe koje stoje iza vas
-
-
-
diff --git a/core/res/res/raw-hu-xlarge/incognito_mode_start_page.html b/core/res/res/raw-hu-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 38b0806a1d58..000000000000
--- a/core/res/res/raw-hu-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Új inkognitóablak
-
-
- Ön inkognitó módra váltott . Az inkognitóablakban megtekintett oldalak nem jelennek meg böngészője előzményeiben, illetve keresési előzményeiben, és nem hagynak más nyomot pl. cookie-t sem a számítógépén az inkognitóablak bezárását követően. A letöltött fájlok, valamint a létrehozott könyvjelzők azonban megmaradnak.
-
- Az inkognitó üzemmód nem befolyásolja a többi felhasználó, szerver vagy szoftver viselkedését. Ügyeljen a következőkre:
-
-
- Olyan webhelyek, amelyek információt gyűjtenek vagy osztanak meg Önről
- Olyan internetszolgáltatók vagy alkalmazottaik, akik nyomon követik az Ön által látogatott oldalakat
- Olyan kártékony szoftverek, amelyek ingyenes hangulatjelekért cserébe nyomon követik billentyűbeviteleit
- Titkos ügynökök megfigyelése
- Az Ön mögött álló emberek
-
-
-
diff --git a/core/res/res/raw-hu/incognito_mode_start_page.html b/core/res/res/raw-hu/incognito_mode_start_page.html
deleted file mode 100644
index 38b0806a1d58..000000000000
--- a/core/res/res/raw-hu/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Új inkognitóablak
-
-
- Ön inkognitó módra váltott . Az inkognitóablakban megtekintett oldalak nem jelennek meg böngészője előzményeiben, illetve keresési előzményeiben, és nem hagynak más nyomot pl. cookie-t sem a számítógépén az inkognitóablak bezárását követően. A letöltött fájlok, valamint a létrehozott könyvjelzők azonban megmaradnak.
-
- Az inkognitó üzemmód nem befolyásolja a többi felhasználó, szerver vagy szoftver viselkedését. Ügyeljen a következőkre:
-
-
- Olyan webhelyek, amelyek információt gyűjtenek vagy osztanak meg Önről
- Olyan internetszolgáltatók vagy alkalmazottaik, akik nyomon követik az Ön által látogatott oldalakat
- Olyan kártékony szoftverek, amelyek ingyenes hangulatjelekért cserébe nyomon követik billentyűbeviteleit
- Titkos ügynökök megfigyelése
- Az Ön mögött álló emberek
-
-
-
diff --git a/core/res/res/raw-id-xlarge/incognito_mode_start_page.html b/core/res/res/raw-id-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 788c08868012..000000000000
--- a/core/res/res/raw-id-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Jendela penyamaran baru
-
-
- Anda menggunakan penyamaran . Laman yang Anda lihat di jendela ini tidak akan ditampilkan dalam riwayat peramban atau riwayat penelusuran, dan tidak akan meninggalkan jejak, seperti kuki, di perangkat setelah jendela penyamaran ditutup. Namun, berkas yang diunduh atau bookmark yang dibuat akan disimpan.
-
- Menggunakan penyamaran tidak mempengaruhi perilaku orang lain, server, atau perangkat lunak. Waspadai:
-
-
- Situs web yang mengumpulkan atau berbagi informasi tentang Anda
- Penyedia layanan internet atau tempat kerja yang melacak laman yang Anda kunjungi
- Perangkat lunak jahat yang melacak penekanan tombol dengan imbalan smiley gratis
- Pemantauan oleh agen rahasia
- Orang yang berdiri di belakang Anda
-
-
-
diff --git a/core/res/res/raw-id/incognito_mode_start_page.html b/core/res/res/raw-id/incognito_mode_start_page.html
deleted file mode 100644
index 788c08868012..000000000000
--- a/core/res/res/raw-id/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Jendela penyamaran baru
-
-
- Anda menggunakan penyamaran . Laman yang Anda lihat di jendela ini tidak akan ditampilkan dalam riwayat peramban atau riwayat penelusuran, dan tidak akan meninggalkan jejak, seperti kuki, di perangkat setelah jendela penyamaran ditutup. Namun, berkas yang diunduh atau bookmark yang dibuat akan disimpan.
-
- Menggunakan penyamaran tidak mempengaruhi perilaku orang lain, server, atau perangkat lunak. Waspadai:
-
-
- Situs web yang mengumpulkan atau berbagi informasi tentang Anda
- Penyedia layanan internet atau tempat kerja yang melacak laman yang Anda kunjungi
- Perangkat lunak jahat yang melacak penekanan tombol dengan imbalan smiley gratis
- Pemantauan oleh agen rahasia
- Orang yang berdiri di belakang Anda
-
-
-
diff --git a/core/res/res/raw-it-xlarge/incognito_mode_start_page.html b/core/res/res/raw-it-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 4a34874462da..000000000000
--- a/core/res/res/raw-it-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Nuova finestra di navigazione in incognito
-
-
- Sei passato alla navigazione in incognito . Le pagine aperte in questa finestra non vengono registrate nella cronologia di navigazione o di ricerca, e non lasciano traccia sul tuo computer, ad esempio sotto forma di cookie, una volta chiusa la finestra. Tuttavia, qualsiasi file scaricato o preferito creato verrà conservato.
-
- La navigazione in incognito non influisce sul comportamento di altri utenti, server o software. Diffida di:
-
-
- Siti web che raccolgono o condividono informazioni su di te
- Provider di servizi Internet o datori di lavoro che registrano le pagine da te visitate
- Software dannosi che registrano le sequenze di tasti da te utilizzate in cambio di smiley gratuiti
- Agenti segreti
- Persone che ti stanno alle spalle
-
-
-
diff --git a/core/res/res/raw-it/incognito_mode_start_page.html b/core/res/res/raw-it/incognito_mode_start_page.html
deleted file mode 100644
index 4a34874462da..000000000000
--- a/core/res/res/raw-it/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Nuova finestra di navigazione in incognito
-
-
- Sei passato alla navigazione in incognito . Le pagine aperte in questa finestra non vengono registrate nella cronologia di navigazione o di ricerca, e non lasciano traccia sul tuo computer, ad esempio sotto forma di cookie, una volta chiusa la finestra. Tuttavia, qualsiasi file scaricato o preferito creato verrà conservato.
-
- La navigazione in incognito non influisce sul comportamento di altri utenti, server o software. Diffida di:
-
-
- Siti web che raccolgono o condividono informazioni su di te
- Provider di servizi Internet o datori di lavoro che registrano le pagine da te visitate
- Software dannosi che registrano le sequenze di tasti da te utilizzate in cambio di smiley gratuiti
- Agenti segreti
- Persone che ti stanno alle spalle
-
-
-
diff --git a/core/res/res/raw-iw-xlarge/incognito_mode_start_page.html b/core/res/res/raw-iw-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 368dea0ed395..000000000000
--- a/core/res/res/raw-iw-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- חלון חדש של גלישה בסתר
-
-
- עברת למצב של גלישה בסתר . דפים שאתה רואה בחלון זה לא יופיעו בהיסטוריית הדפדפן או בהיסטוריית החיפושים שלך, והם לא ישאירו עקבות אחרים, כמו קובצי cookie, לאחר שתסגור את חלון הגלישה בסתר. עם זאת, כל קובץ שאתה מוריד או כוכביות שאתה יוצר יישמרו.
-
- גלישה בסתר לא משפיעה על התנהגותם של אנשים אחרים, שרתים אחרים או תוכנות אחרות. היזהר מ:
-
-
- אתרים שאוספים נתונים או משתפים מידע לגביך
- ספקי שירות אינטרנט או עובדים שעוקבים אחר הדפים שבהם אתה מבקר
- תוכנה זדונית שעוקבת אחר ההקשות שלך על המקשים בתמורה לסימני סמיילי בחינם
- מעקב של סוכנים חשאיים
- אנשים שעומדים מאחוריך
-
-
-
diff --git a/core/res/res/raw-iw/incognito_mode_start_page.html b/core/res/res/raw-iw/incognito_mode_start_page.html
deleted file mode 100644
index 368dea0ed395..000000000000
--- a/core/res/res/raw-iw/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- חלון חדש של גלישה בסתר
-
-
- עברת למצב של גלישה בסתר . דפים שאתה רואה בחלון זה לא יופיעו בהיסטוריית הדפדפן או בהיסטוריית החיפושים שלך, והם לא ישאירו עקבות אחרים, כמו קובצי cookie, לאחר שתסגור את חלון הגלישה בסתר. עם זאת, כל קובץ שאתה מוריד או כוכביות שאתה יוצר יישמרו.
-
- גלישה בסתר לא משפיעה על התנהגותם של אנשים אחרים, שרתים אחרים או תוכנות אחרות. היזהר מ:
-
-
- אתרים שאוספים נתונים או משתפים מידע לגביך
- ספקי שירות אינטרנט או עובדים שעוקבים אחר הדפים שבהם אתה מבקר
- תוכנה זדונית שעוקבת אחר ההקשות שלך על המקשים בתמורה לסימני סמיילי בחינם
- מעקב של סוכנים חשאיים
- אנשים שעומדים מאחוריך
-
-
-
diff --git a/core/res/res/raw-ja-xlarge/incognito_mode_start_page.html b/core/res/res/raw-ja-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index a58ad05c2ea7..000000000000
--- a/core/res/res/raw-ja-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- 新しいシークレットウィンドウ
-
-
- シークレットモードを使用中です 。このウィンドウで開いたページはブラウザの履歴や検索履歴に残りません。このウィンドウを閉じるとCookieなどの記録も端末から消去されます。ただし、ダウンロードしたファイルやブックマークしたページは保存されます。
-
- シークレットモードが他のユーザーやサーバー、ソフトウェアの動作に影響することはありません。なお、下記のようなケースにご注意ください。
-
-
- ユーザーの情報を収集、共有するウェブサイト
- アクセスしたページをトラッキングするインターネットサービスプロバイダや雇用主
- 無料ダウンロードなどと一緒にインストールされ、キーストロークを記録するマルウェア
- スパイ、諜報活動
- 背後にいる人
-
-
-
diff --git a/core/res/res/raw-ja/incognito_mode_start_page.html b/core/res/res/raw-ja/incognito_mode_start_page.html
deleted file mode 100644
index a58ad05c2ea7..000000000000
--- a/core/res/res/raw-ja/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- 新しいシークレットウィンドウ
-
-
- シークレットモードを使用中です 。このウィンドウで開いたページはブラウザの履歴や検索履歴に残りません。このウィンドウを閉じるとCookieなどの記録も端末から消去されます。ただし、ダウンロードしたファイルやブックマークしたページは保存されます。
-
- シークレットモードが他のユーザーやサーバー、ソフトウェアの動作に影響することはありません。なお、下記のようなケースにご注意ください。
-
-
- ユーザーの情報を収集、共有するウェブサイト
- アクセスしたページをトラッキングするインターネットサービスプロバイダや雇用主
- 無料ダウンロードなどと一緒にインストールされ、キーストロークを記録するマルウェア
- スパイ、諜報活動
- 背後にいる人
-
-
-
diff --git a/core/res/res/raw-ko-xlarge/incognito_mode_start_page.html b/core/res/res/raw-ko-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 0e703b100102..000000000000
--- a/core/res/res/raw-ko-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- 새 시크릿 창
-
-
- 시크릿 모드로 들어오셨습니다. 이 창에서 보는 페이지는 브라우저 기록이나 검색기록에 남지 않으며, 시크릿 창을 닫은 뒤 기기에 쿠기와 같은 흔적도 남기지 않습니다. 다운로드한 파일이나 생성한 북마크는 보관됩니다.
-
- 시크릿 모드를 이용해도 다른 사용자, 서버, 소프트웨어에 영향을 주지는 않습니다. 다음을 주의하세요.
-
-
- 사용자에 대한 정보를 모으고 공유하는 웹사이트
- 방문 페이지를 추적하는 인터넷 서비스 제공업체나 직원
- 스마일 이모티콘을 제공한다는 명목으로 입력 내용을 추적하는 악성 소프트웨어
- 비밀 개체를 통한 감시
- 뒤에서 사용자의 작업내용을 지켜보는 사람
-
-
-
diff --git a/core/res/res/raw-ko/incognito_mode_start_page.html b/core/res/res/raw-ko/incognito_mode_start_page.html
deleted file mode 100644
index 0e703b100102..000000000000
--- a/core/res/res/raw-ko/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- 새 시크릿 창
-
-
- 시크릿 모드로 들어오셨습니다. 이 창에서 보는 페이지는 브라우저 기록이나 검색기록에 남지 않으며, 시크릿 창을 닫은 뒤 기기에 쿠기와 같은 흔적도 남기지 않습니다. 다운로드한 파일이나 생성한 북마크는 보관됩니다.
-
- 시크릿 모드를 이용해도 다른 사용자, 서버, 소프트웨어에 영향을 주지는 않습니다. 다음을 주의하세요.
-
-
- 사용자에 대한 정보를 모으고 공유하는 웹사이트
- 방문 페이지를 추적하는 인터넷 서비스 제공업체나 직원
- 스마일 이모티콘을 제공한다는 명목으로 입력 내용을 추적하는 악성 소프트웨어
- 비밀 개체를 통한 감시
- 뒤에서 사용자의 작업내용을 지켜보는 사람
-
-
-
diff --git a/core/res/res/raw-lt-xlarge/incognito_mode_start_page.html b/core/res/res/raw-lt-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 9244ae4398b1..000000000000
--- a/core/res/res/raw-lt-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Naujas inkognito langas
-
-
- Naršote inkognito režimu . Šiame lange peržiūrimi puslapiai nebus išsaugomi naršyklės istorijoje ar paieškos istorijoje ir uždarius inkognito langą nepaliks jokių kitų žymių, pvz., slapukų. Tačiau bus išsaugoti atsisiųsti failai ar sukurtos žymos.
-
- Naršymas inkognito režimu nedaro jokios įtakos kitiems asmenims, serveriams ar programinei įrangai. Saugokitės:
-
-
- svetainių, kurios renka ar platina informaciją apie jus
- interneto paslaugos teikėjų ar darbdavių, kurie stebi, kuriuos puslapius peržiūrite
- kenkėjiškos programinės įrangos, kuri siūlydama nemokamų šypsniukų fiksuoja klavišų paspaudimus
- jus galinčių sekti slaptųjų agentų
- už nugaros stovinčių asmenų
-
-
-
diff --git a/core/res/res/raw-lt/incognito_mode_start_page.html b/core/res/res/raw-lt/incognito_mode_start_page.html
deleted file mode 100644
index 9244ae4398b1..000000000000
--- a/core/res/res/raw-lt/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Naujas inkognito langas
-
-
- Naršote inkognito režimu . Šiame lange peržiūrimi puslapiai nebus išsaugomi naršyklės istorijoje ar paieškos istorijoje ir uždarius inkognito langą nepaliks jokių kitų žymių, pvz., slapukų. Tačiau bus išsaugoti atsisiųsti failai ar sukurtos žymos.
-
- Naršymas inkognito režimu nedaro jokios įtakos kitiems asmenims, serveriams ar programinei įrangai. Saugokitės:
-
-
- svetainių, kurios renka ar platina informaciją apie jus
- interneto paslaugos teikėjų ar darbdavių, kurie stebi, kuriuos puslapius peržiūrite
- kenkėjiškos programinės įrangos, kuri siūlydama nemokamų šypsniukų fiksuoja klavišų paspaudimus
- jus galinčių sekti slaptųjų agentų
- už nugaros stovinčių asmenų
-
-
-
diff --git a/core/res/res/raw-lv-xlarge/incognito_mode_start_page.html b/core/res/res/raw-lv-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index f325ef5267b9..000000000000
--- a/core/res/res/raw-lv-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Jauns inkognito logs
-
-
- Jūs esat ieslēdzis inkognito režīmu . Šajā logā aplūkotās lapas neparādīsies jūsu pārlūkprogrammas vēsturē vai meklēšanas vēsturē, tās arī neatstās citas pēdas, piemēram, sīkfailus, jūsu ierīcē pēc inkognito režīma loga aizvēršanas. Tomēr visi jūsu lejupielādētie faili vai izveidotās grāmatzīmes tiks saglabātas.
-
- Inkognito režīma ieslēgšana neietekmēs citu personu, serveru vai programmatūras darbību. Uzmanieties no
-
-
- vietnēm, kas apkopo vai koplieto informāciju par jums;
- interneta pakalpojumu sniedzējiem vai darba devējiem, kas izseko jūsu apmeklētajām lapām;
- maldprogrammatūras, kas izseko jūsu taustiņsitieniem apmaiņā par bezmaksas smaidiņiem;
- slepeno aģentu veiktas izmeklēšanas;
- personām, kas stāv aiz jums.
-
-
-
diff --git a/core/res/res/raw-lv/incognito_mode_start_page.html b/core/res/res/raw-lv/incognito_mode_start_page.html
deleted file mode 100644
index f325ef5267b9..000000000000
--- a/core/res/res/raw-lv/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Jauns inkognito logs
-
-
- Jūs esat ieslēdzis inkognito režīmu . Šajā logā aplūkotās lapas neparādīsies jūsu pārlūkprogrammas vēsturē vai meklēšanas vēsturē, tās arī neatstās citas pēdas, piemēram, sīkfailus, jūsu ierīcē pēc inkognito režīma loga aizvēršanas. Tomēr visi jūsu lejupielādētie faili vai izveidotās grāmatzīmes tiks saglabātas.
-
- Inkognito režīma ieslēgšana neietekmēs citu personu, serveru vai programmatūras darbību. Uzmanieties no
-
-
- vietnēm, kas apkopo vai koplieto informāciju par jums;
- interneta pakalpojumu sniedzējiem vai darba devējiem, kas izseko jūsu apmeklētajām lapām;
- maldprogrammatūras, kas izseko jūsu taustiņsitieniem apmaiņā par bezmaksas smaidiņiem;
- slepeno aģentu veiktas izmeklēšanas;
- personām, kas stāv aiz jums.
-
-
-
diff --git a/core/res/res/raw-nb-xlarge/incognito_mode_start_page.html b/core/res/res/raw-nb-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 724e73433fcb..000000000000
--- a/core/res/res/raw-nb-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Nytt inkognitovindu
-
-
- Du er nå inkognito Sider du besøker i dette vinduet blir ikke lagret i nettleser- eller søkelogg, og etterlater ikke andre spor, f. eks. informasjonskapsler, på enheten din etter at du har lukket vinduet. Filer du laster ned eller bokmerker du lager blir derimot lagret.
-
- Det at du er inkognito endrer ikke hvordan andre mennesker, tjenere eller programmer oppfører seg. Pass deg for:
-
-
- Nettsider som samler eller deler informasjon om deg
- Nettleverandører eller arbeidsgivere som overvåker hvilke sider du besøker
- Skadelige programmer som følger med på tastetrykk i bytte mot smilefjes
- Hemmelige agenter som spionerer på deg
- Folk som titter over skulderen din
-
-
-
diff --git a/core/res/res/raw-nb/incognito_mode_start_page.html b/core/res/res/raw-nb/incognito_mode_start_page.html
deleted file mode 100644
index 724e73433fcb..000000000000
--- a/core/res/res/raw-nb/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Nytt inkognitovindu
-
-
- Du er nå inkognito Sider du besøker i dette vinduet blir ikke lagret i nettleser- eller søkelogg, og etterlater ikke andre spor, f. eks. informasjonskapsler, på enheten din etter at du har lukket vinduet. Filer du laster ned eller bokmerker du lager blir derimot lagret.
-
- Det at du er inkognito endrer ikke hvordan andre mennesker, tjenere eller programmer oppfører seg. Pass deg for:
-
-
- Nettsider som samler eller deler informasjon om deg
- Nettleverandører eller arbeidsgivere som overvåker hvilke sider du besøker
- Skadelige programmer som følger med på tastetrykk i bytte mot smilefjes
- Hemmelige agenter som spionerer på deg
- Folk som titter over skulderen din
-
-
-
diff --git a/core/res/res/raw-nl-xlarge/incognito_mode_start_page.html b/core/res/res/raw-nl-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 92fedd725fe6..000000000000
--- a/core/res/res/raw-nl-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Nieuw incognitovenster
-
-
- U bent nu incognito De pagina's die u in dit venster bekijkt worden niet opgenomen in de browsergeschiedenis en de zoekgeschiedenis en laten geen cookies of andere sporen na op uw apparaat nadat u het incognitovenster hebt gesloten. Alle bestanden die u downloadt en bladwijzers die u maakt, blijven echter behouden.
-
- Incognito zijn heeft geen invloed op het gedrag van andere personen, servers of software. Wees op uw hoede voor:
-
-
- Websites die informatie over u verzamelen of delen
- Internetproviders of werkgevers die bijhouden welke pagina's u bezoekt
- Schadelijke software die uw toetsaanslagen registreert in ruil voor gratis emoticons
- Spionage door geheim agenten
- Mensen die achter u staan
-
-
-
diff --git a/core/res/res/raw-nl/incognito_mode_start_page.html b/core/res/res/raw-nl/incognito_mode_start_page.html
deleted file mode 100644
index 92fedd725fe6..000000000000
--- a/core/res/res/raw-nl/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Nieuw incognitovenster
-
-
- U bent nu incognito De pagina's die u in dit venster bekijkt worden niet opgenomen in de browsergeschiedenis en de zoekgeschiedenis en laten geen cookies of andere sporen na op uw apparaat nadat u het incognitovenster hebt gesloten. Alle bestanden die u downloadt en bladwijzers die u maakt, blijven echter behouden.
-
- Incognito zijn heeft geen invloed op het gedrag van andere personen, servers of software. Wees op uw hoede voor:
-
-
- Websites die informatie over u verzamelen of delen
- Internetproviders of werkgevers die bijhouden welke pagina's u bezoekt
- Schadelijke software die uw toetsaanslagen registreert in ruil voor gratis emoticons
- Spionage door geheim agenten
- Mensen die achter u staan
-
-
-
diff --git a/core/res/res/raw-pl-xlarge/incognito_mode_start_page.html b/core/res/res/raw-pl-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 9748ead325a2..000000000000
--- a/core/res/res/raw-pl-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Nowe okno incognito
-
-
- Jesteś teraz incognito Strony przeglądane w tym oknie nie będą wyświetlane w historii przeglądarki ani w historii wyszukiwania. Po zamknięciu okna incognito na komputerze nie zostanie po nich żaden ślad np. w postaci plików cookie. Zachowane zostaną jednak pobrane pliki lub utworzone zakładki.
-
- Przejście do trybu incognito nie ma wpływu na działania innych osób, serwery ani oprogramowanie. Należy uważać na:
-
-
- witryny zbierające lub udostępniające dane na temat użytkowników
- dostawców usług internetowych oraz pracowników monitorujących strony odwiedzane przez użytkowników
- złośliwe oprogramowanie śledzące naciśnięcia klawiszy (np. w zamian za darmowe emotikony)
- aktywność wywiadowczą tajnych agentów
- osoby stojące za plecami
-
-
-
diff --git a/core/res/res/raw-pl/incognito_mode_start_page.html b/core/res/res/raw-pl/incognito_mode_start_page.html
deleted file mode 100644
index 9748ead325a2..000000000000
--- a/core/res/res/raw-pl/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Nowe okno incognito
-
-
- Jesteś teraz incognito Strony przeglądane w tym oknie nie będą wyświetlane w historii przeglądarki ani w historii wyszukiwania. Po zamknięciu okna incognito na komputerze nie zostanie po nich żaden ślad np. w postaci plików cookie. Zachowane zostaną jednak pobrane pliki lub utworzone zakładki.
-
- Przejście do trybu incognito nie ma wpływu na działania innych osób, serwery ani oprogramowanie. Należy uważać na:
-
-
- witryny zbierające lub udostępniające dane na temat użytkowników
- dostawców usług internetowych oraz pracowników monitorujących strony odwiedzane przez użytkowników
- złośliwe oprogramowanie śledzące naciśnięcia klawiszy (np. w zamian za darmowe emotikony)
- aktywność wywiadowczą tajnych agentów
- osoby stojące za plecami
-
-
-
diff --git a/core/res/res/raw-pt-rPT-xlarge/incognito_mode_start_page.html b/core/res/res/raw-pt-rPT-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 89a5ab0de880..000000000000
--- a/core/res/res/raw-pt-rPT-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Nova janela de navegação anónima
-
-
- Está no modo de navegação anónima . As páginas que visualizar nesta janela não vão aparecer nos históricos de pesquisa ou de navegação e não deixarão quaisquer vestígios (por exemplo cookies) no computador depois de fechar a janela. No entanto se transferir ficheiros ou criar marcadores, estes serão preservados.
-
- Navegar no modo de navegação anónima não afecta o comportamento de outras pessoas, nem o comportamento de servidores ou programas. Tenha cuidado com:
-
-
- Web sites que recolhem ou partilham informações sobre si
- Serviços de fornecimento de internet ou empregadores que monitorizam as páginas que você visita
- Programas maliciosos que monitorizam as teclas em que carrega em troca de ícones expressivos ("smileys")
- Vigilância de agentes secretos
- Pessoas que estejam perto de si
-
-
-
diff --git a/core/res/res/raw-pt-rPT/incognito_mode_start_page.html b/core/res/res/raw-pt-rPT/incognito_mode_start_page.html
deleted file mode 100644
index 89a5ab0de880..000000000000
--- a/core/res/res/raw-pt-rPT/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Nova janela de navegação anónima
-
-
- Está no modo de navegação anónima . As páginas que visualizar nesta janela não vão aparecer nos históricos de pesquisa ou de navegação e não deixarão quaisquer vestígios (por exemplo cookies) no computador depois de fechar a janela. No entanto se transferir ficheiros ou criar marcadores, estes serão preservados.
-
- Navegar no modo de navegação anónima não afecta o comportamento de outras pessoas, nem o comportamento de servidores ou programas. Tenha cuidado com:
-
-
- Web sites que recolhem ou partilham informações sobre si
- Serviços de fornecimento de internet ou empregadores que monitorizam as páginas que você visita
- Programas maliciosos que monitorizam as teclas em que carrega em troca de ícones expressivos ("smileys")
- Vigilância de agentes secretos
- Pessoas que estejam perto de si
-
-
-
diff --git a/core/res/res/raw-pt-xlarge/incognito_mode_start_page.html b/core/res/res/raw-pt-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index b301eda73f49..000000000000
--- a/core/res/res/raw-pt-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Nova janela anônima
-
-
- Você ficou anônimo . As páginas que você vê nesta janela não aparecerão no histórico do seu navegador ou da sua pesquisa e não deixarão rastros, como cookies, no seu dispositivo depois que você fechar a janela anônima. Quaisquer arquivos que você fizer o download ou favoritos que criar serão preservados.
-
- Tornar-se anônimo não afeta o comportamento de outras pessoas, servidores ou software. Esteja atento a:
-
-
- Websites que coletam ou compartilham informações sobre você
- Provedores de serviços de internet ou funcionários que rastreiam as páginas que você visita
- Softwares maliciosos que rastreiam os seus toques de teclado em troca de ícones gratuitos
- Vigilância por agentes secretos
- Pessoas paradas detrás de você
-
-
-
diff --git a/core/res/res/raw-pt/incognito_mode_start_page.html b/core/res/res/raw-pt/incognito_mode_start_page.html
deleted file mode 100644
index b301eda73f49..000000000000
--- a/core/res/res/raw-pt/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Nova janela anônima
-
-
- Você ficou anônimo . As páginas que você vê nesta janela não aparecerão no histórico do seu navegador ou da sua pesquisa e não deixarão rastros, como cookies, no seu dispositivo depois que você fechar a janela anônima. Quaisquer arquivos que você fizer o download ou favoritos que criar serão preservados.
-
- Tornar-se anônimo não afeta o comportamento de outras pessoas, servidores ou software. Esteja atento a:
-
-
- Websites que coletam ou compartilham informações sobre você
- Provedores de serviços de internet ou funcionários que rastreiam as páginas que você visita
- Softwares maliciosos que rastreiam os seus toques de teclado em troca de ícones gratuitos
- Vigilância por agentes secretos
- Pessoas paradas detrás de você
-
-
-
diff --git a/core/res/res/raw-ro-xlarge/incognito_mode_start_page.html b/core/res/res/raw-ro-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 3e499d30039c..000000000000
--- a/core/res/res/raw-ro-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Fereastră incognito nouă
-
-
- Navigaţi incognito . Paginile pe care le afişaţi în această fereastră nu vor apărea în istoricul browserului sau al căutărilor şi nu vor lăsa alte urme, precum cookie-uri, pe dispozitivul dvs. după ce închideţi fereastra incognito. Dar fişierele descărcate şi marcajele create vor fi păstrate.
-
- Navigarea incognito nu influenţează comportamentul altor persoane, servere sau aplicaţii software. Fiţi atent(ă) la:
-
-
- site-urile web care colectează sau distribuie informaţii despre dvs.;
- furnizorii de servicii de internet sau angajatorii care urmăresc paginile pe care le accesaţi;
- aplicaţiile software rău intenţionate care vă urmăresc apăsările pe taste promiţându-vă că vă oferă emoticonuri gratuite;
- acţiunile de monitorizare efectuate de agenţi secreţi;
- persoanele din spatele dvs.
-
-
-
diff --git a/core/res/res/raw-ro/incognito_mode_start_page.html b/core/res/res/raw-ro/incognito_mode_start_page.html
deleted file mode 100644
index 3e499d30039c..000000000000
--- a/core/res/res/raw-ro/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Fereastră incognito nouă
-
-
- Navigaţi incognito . Paginile pe care le afişaţi în această fereastră nu vor apărea în istoricul browserului sau al căutărilor şi nu vor lăsa alte urme, precum cookie-uri, pe dispozitivul dvs. după ce închideţi fereastra incognito. Dar fişierele descărcate şi marcajele create vor fi păstrate.
-
- Navigarea incognito nu influenţează comportamentul altor persoane, servere sau aplicaţii software. Fiţi atent(ă) la:
-
-
- site-urile web care colectează sau distribuie informaţii despre dvs.;
- furnizorii de servicii de internet sau angajatorii care urmăresc paginile pe care le accesaţi;
- aplicaţiile software rău intenţionate care vă urmăresc apăsările pe taste promiţându-vă că vă oferă emoticonuri gratuite;
- acţiunile de monitorizare efectuate de agenţi secreţi;
- persoanele din spatele dvs.
-
-
-
diff --git a/core/res/res/raw-ru-xlarge/incognito_mode_start_page.html b/core/res/res/raw-ru-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index ae7b59cacfec..000000000000
--- a/core/res/res/raw-ru-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Новое окно в режиме инкогнито
-
-
- Вы перешли в режим инкогнито . Страницы, которые вы просматриваете в окне в режиме инкогнито, не появятся в истории вашего браузера или истории поиска, а также не оставят на вашем компьютере других следов, таких как файлы cookie, когда вы закроете это окно. Тем не менее, все файлы, которые вы загружаете, или закладки, которые вы создаете, останутся в целости и сохранности.
-
- Переход в режим инкогнито не влияет на поведение других пользователей, серверов или программ. Опасайтесь:
-
-
- Веб-сайтов, которые собирают информацию о вас или передают ее другим
- Поставщиков услуг Интернета или их сотрудников, которые отслеживают, какие страницы вы посещаете
- Вредоносного ПО, которое отслеживает нажатие клавиш клавиатуры в обмен на бесплатные смайлики
- Слежки тайными агентами
- Людей, которые стоят у вас за спиной
-
-
-
diff --git a/core/res/res/raw-ru/incognito_mode_start_page.html b/core/res/res/raw-ru/incognito_mode_start_page.html
deleted file mode 100644
index ae7b59cacfec..000000000000
--- a/core/res/res/raw-ru/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Новое окно в режиме инкогнито
-
-
- Вы перешли в режим инкогнито . Страницы, которые вы просматриваете в окне в режиме инкогнито, не появятся в истории вашего браузера или истории поиска, а также не оставят на вашем компьютере других следов, таких как файлы cookie, когда вы закроете это окно. Тем не менее, все файлы, которые вы загружаете, или закладки, которые вы создаете, останутся в целости и сохранности.
-
- Переход в режим инкогнито не влияет на поведение других пользователей, серверов или программ. Опасайтесь:
-
-
- Веб-сайтов, которые собирают информацию о вас или передают ее другим
- Поставщиков услуг Интернета или их сотрудников, которые отслеживают, какие страницы вы посещаете
- Вредоносного ПО, которое отслеживает нажатие клавиш клавиатуры в обмен на бесплатные смайлики
- Слежки тайными агентами
- Людей, которые стоят у вас за спиной
-
-
-
diff --git a/core/res/res/raw-sk-xlarge/incognito_mode_start_page.html b/core/res/res/raw-sk-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 5b138f1e087c..000000000000
--- a/core/res/res/raw-sk-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Nové okno inkognito
-
-
- Ste v režime inkognito Stránky, ktoré si pozriete v tomto okne, sa nezobrazia v histórii prehliadača ani v histórii vyhľadávania. Po zavretí okna inkognito na zariadení nezostanú ani žiadne iné stopy, ako sú napr. súbory cookie. Napriek tomu však zostanú zachované všetky prevzaté súbory aj záložky, ktoré ste vytvorili.
-
- Režim inkognito neovplyvňuje správanie iných ľudí, serverov ani softvéru. Dávajte si pozor na:
-
-
- webové stránky, ktoré zbierajú alebo zdieľajú vaše informácie;
- poskytovateľov internetových služieb alebo zamestnancov, ktorí sledujú vaše navštívené stránky;
- škodlivý softvér, ktorý sleduje ktoré klávesy stláčate výmenou za smajlíkov zadarmo;
- sledovanie tajnými agentmi;
- ľudí, ktorí stoja za vami.
-
-
-
diff --git a/core/res/res/raw-sk/incognito_mode_start_page.html b/core/res/res/raw-sk/incognito_mode_start_page.html
deleted file mode 100644
index 5b138f1e087c..000000000000
--- a/core/res/res/raw-sk/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Nové okno inkognito
-
-
- Ste v režime inkognito Stránky, ktoré si pozriete v tomto okne, sa nezobrazia v histórii prehliadača ani v histórii vyhľadávania. Po zavretí okna inkognito na zariadení nezostanú ani žiadne iné stopy, ako sú napr. súbory cookie. Napriek tomu však zostanú zachované všetky prevzaté súbory aj záložky, ktoré ste vytvorili.
-
- Režim inkognito neovplyvňuje správanie iných ľudí, serverov ani softvéru. Dávajte si pozor na:
-
-
- webové stránky, ktoré zbierajú alebo zdieľajú vaše informácie;
- poskytovateľov internetových služieb alebo zamestnancov, ktorí sledujú vaše navštívené stránky;
- škodlivý softvér, ktorý sleduje ktoré klávesy stláčate výmenou za smajlíkov zadarmo;
- sledovanie tajnými agentmi;
- ľudí, ktorí stoja za vami.
-
-
-
diff --git a/core/res/res/raw-sl-xlarge/incognito_mode_start_page.html b/core/res/res/raw-sl-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 33a8b08fed49..000000000000
--- a/core/res/res/raw-sl-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Novo okno brez beleženja zgodovine
-
-
- Ste v načinu brez beleženja zgodovine. Strani, ki si jih ogledate v tem oknu, ne bodo prikazane v zgodovini brskalnika ali zgodovini iskanja, prav tako v vaši napravi ne bodo pustile sledi, kot npr. piškotkov, ko zaprete stran, ki jo imate odprto v tem načinu. Datoteke, ki jih prenesete ali zaznamki, ki jih ustvarite, bodo ohranjeni.
-
- Funkcije brez beleženja zgodovine ne vplivajo na obnašanje drugih oseb, strežnikov ali programske opreme. Pazite na:
-
-
- Spletna mesta, ki zbirajo informacije o vas ali jih dajejo v skupno rabo.
- Ponudnike internetnih storitev ali zaposlene, ki spremljajo spletna mesta, ki ste jih obiskali.
- Zlonamerno programsko opremo, ki spremlja vaše tipkanje, v zameno pa vam ponuja brezplačne čustvene simbole.
- Nadzor tajnih agentov.
- Osebe, ki stojijo za vašim hrbtom.
-
-
-
diff --git a/core/res/res/raw-sl/incognito_mode_start_page.html b/core/res/res/raw-sl/incognito_mode_start_page.html
deleted file mode 100644
index 33a8b08fed49..000000000000
--- a/core/res/res/raw-sl/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Novo okno brez beleženja zgodovine
-
-
- Ste v načinu brez beleženja zgodovine. Strani, ki si jih ogledate v tem oknu, ne bodo prikazane v zgodovini brskalnika ali zgodovini iskanja, prav tako v vaši napravi ne bodo pustile sledi, kot npr. piškotkov, ko zaprete stran, ki jo imate odprto v tem načinu. Datoteke, ki jih prenesete ali zaznamki, ki jih ustvarite, bodo ohranjeni.
-
- Funkcije brez beleženja zgodovine ne vplivajo na obnašanje drugih oseb, strežnikov ali programske opreme. Pazite na:
-
-
- Spletna mesta, ki zbirajo informacije o vas ali jih dajejo v skupno rabo.
- Ponudnike internetnih storitev ali zaposlene, ki spremljajo spletna mesta, ki ste jih obiskali.
- Zlonamerno programsko opremo, ki spremlja vaše tipkanje, v zameno pa vam ponuja brezplačne čustvene simbole.
- Nadzor tajnih agentov.
- Osebe, ki stojijo za vašim hrbtom.
-
-
-
diff --git a/core/res/res/raw-sr-xlarge/incognito_mode_start_page.html b/core/res/res/raw-sr-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index b1fbcb1324bd..000000000000
--- a/core/res/res/raw-sr-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Нов прозор без архивирања
-
-
- Ушли сте у режим без архивирања Странице које гледате у овом прозору се неће појавити у историји прегледања ни историји претраге, нити ће оставити друге трагове, попут колачића, на вашем уређају када затворите овај прозор. Међутим, ако преузмете датотеке или направите обележиваче, они ће бити сачувани.
-
- Режим без архивирања не утиче на понашање других људи, сервера нити софтвера. Чувајте се:
-
-
- Веб сајтова који прикупљају и деле податке о вама
- Добављача интернет услуга или запослених који прате странице које посетите
- Злонамерног софтвера који прати шта куцате
- Надзора тајних агената
- Људи који вам стоје иза леђа
-
-
-
diff --git a/core/res/res/raw-sr/incognito_mode_start_page.html b/core/res/res/raw-sr/incognito_mode_start_page.html
deleted file mode 100644
index b1fbcb1324bd..000000000000
--- a/core/res/res/raw-sr/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Нов прозор без архивирања
-
-
- Ушли сте у режим без архивирања Странице које гледате у овом прозору се неће појавити у историји прегледања ни историји претраге, нити ће оставити друге трагове, попут колачића, на вашем уређају када затворите овај прозор. Међутим, ако преузмете датотеке или направите обележиваче, они ће бити сачувани.
-
- Режим без архивирања не утиче на понашање других људи, сервера нити софтвера. Чувајте се:
-
-
- Веб сајтова који прикупљају и деле податке о вама
- Добављача интернет услуга или запослених који прате странице које посетите
- Злонамерног софтвера који прати шта куцате
- Надзора тајних агената
- Људи који вам стоје иза леђа
-
-
-
diff --git a/core/res/res/raw-sv-xlarge/incognito_mode_start_page.html b/core/res/res/raw-sv-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 5ebbb22f409b..000000000000
--- a/core/res/res/raw-sv-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Nytt inkognitofönster
-
-
- Du använder inkognitoläget . Sidor som du har läst i detta fönster visas inte i din webbläsarhistorik eller sökhistorik. De lämnar inga spår efter sig, till exempel cookies, i din enhet efter att du stängt inkognitofönstret. Alla filer som du hämtar eller bokmärken du skapar sparas dock.
-
- Att använda datorn inkognito påverkar inte användare, servrar eller program. Se upp för:
-
-
- Webbplatser som samlar eller delar information om dig
- Internetleverantörer eller arbetsgivare som spårar var du surfar
- Skadlig programvara som spårar dina tangenttryckningar som nyckelloggare
- Övervakning av hemliga agenter
- Personer som står bakom dig
-
-
-
diff --git a/core/res/res/raw-sv/incognito_mode_start_page.html b/core/res/res/raw-sv/incognito_mode_start_page.html
deleted file mode 100644
index 5ebbb22f409b..000000000000
--- a/core/res/res/raw-sv/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Nytt inkognitofönster
-
-
- Du använder inkognitoläget . Sidor som du har läst i detta fönster visas inte i din webbläsarhistorik eller sökhistorik. De lämnar inga spår efter sig, till exempel cookies, i din enhet efter att du stängt inkognitofönstret. Alla filer som du hämtar eller bokmärken du skapar sparas dock.
-
- Att använda datorn inkognito påverkar inte användare, servrar eller program. Se upp för:
-
-
- Webbplatser som samlar eller delar information om dig
- Internetleverantörer eller arbetsgivare som spårar var du surfar
- Skadlig programvara som spårar dina tangenttryckningar som nyckelloggare
- Övervakning av hemliga agenter
- Personer som står bakom dig
-
-
-
diff --git a/core/res/res/raw-th-xlarge/incognito_mode_start_page.html b/core/res/res/raw-th-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 29c64eb4c041..000000000000
--- a/core/res/res/raw-th-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- หน้าต่างใหม่ที่ไม่ระบุตัวตน
-
-
- คุณได้เข้าสู่โหมดไม่ระบุตัวตนแล้ว หน้าเว็บที่คุณดูในหน้าต่างนี้จะไม่ปรากฏในประวัติของเบราว์เซอร์หรือประวัติการค้นหาของคุณ และจะไม่ทิ้งร่องรอยอื่นๆ เช่น คุกกี้ ไว้บนอุปกรณ์หลังจากที่คุณปิดหน้าต่างที่ไม่ระบุตัวตนนี้แล้ว อย่างไรก็ตาม ไฟล์ที่คุณดาวน์โหลดหรือบุ๊กมาร์กที่สร้างขึ้นจะถูกเก็บไว้
-
- การเข้าสู่โหมดไม่ระบุตัวตนจะไม่กระทบต่อการทำงานของบุคคล เซิร์ฟเวอร์ หรือซอฟต์แวร์อื่น โปรดระวัง:
-
-
- เว็บไซต์ที่เก็บหรือแบ่งปันข้อมูลเกี่ยวกับคุณ
- ผู้ให้บริการอินเทอร์เน็ตหรือนายจ้างที่ติดตามหน้าเว็บที่คุณเข้าชม
- ซอฟต์แวร์มุ่งร้ายที่ติดตามการกดแป้นพิมพ์โดยมากับของฟรี
- การตรวจสอบของหน่วยสืบราชการลับ
- บุคคลที่ยืนอยู่ข้างหลังคุณ
-
-
-
diff --git a/core/res/res/raw-th/incognito_mode_start_page.html b/core/res/res/raw-th/incognito_mode_start_page.html
deleted file mode 100644
index 29c64eb4c041..000000000000
--- a/core/res/res/raw-th/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- หน้าต่างใหม่ที่ไม่ระบุตัวตน
-
-
- คุณได้เข้าสู่โหมดไม่ระบุตัวตนแล้ว หน้าเว็บที่คุณดูในหน้าต่างนี้จะไม่ปรากฏในประวัติของเบราว์เซอร์หรือประวัติการค้นหาของคุณ และจะไม่ทิ้งร่องรอยอื่นๆ เช่น คุกกี้ ไว้บนอุปกรณ์หลังจากที่คุณปิดหน้าต่างที่ไม่ระบุตัวตนนี้แล้ว อย่างไรก็ตาม ไฟล์ที่คุณดาวน์โหลดหรือบุ๊กมาร์กที่สร้างขึ้นจะถูกเก็บไว้
-
- การเข้าสู่โหมดไม่ระบุตัวตนจะไม่กระทบต่อการทำงานของบุคคล เซิร์ฟเวอร์ หรือซอฟต์แวร์อื่น โปรดระวัง:
-
-
- เว็บไซต์ที่เก็บหรือแบ่งปันข้อมูลเกี่ยวกับคุณ
- ผู้ให้บริการอินเทอร์เน็ตหรือนายจ้างที่ติดตามหน้าเว็บที่คุณเข้าชม
- ซอฟต์แวร์มุ่งร้ายที่ติดตามการกดแป้นพิมพ์โดยมากับของฟรี
- การตรวจสอบของหน่วยสืบราชการลับ
- บุคคลที่ยืนอยู่ข้างหลังคุณ
-
-
-
diff --git a/core/res/res/raw-tl-xlarge/incognito_mode_start_page.html b/core/res/res/raw-tl-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 6ce5853de0cd..000000000000
--- a/core/res/res/raw-tl-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Bagong incognito window
-
-
- Nag-incognito ka . Hindi lalabas sa iyong kasaysayan ng pag-browse at kasaysayan ng paghahanap ang mga pahinang tiningnan mo sa window na ito, at hindi sila mag-iiwan ng ibang bakas, gaya ng cookies, sa iyong device matapos mong isara ang window na incognito. Gayunpaman, pananatiliin ang anumang mga file na iyong na-download o ang iyong mga ginawang bookmark.
-
- Hindi nakakaapekto ang pagiging incognito sa gawi ng ibang mga tao, server, o software. Maging maingat sa:
-
-
- Mga website na kumokolekta o nagbabahagi ng impormasyong tungkol sa iyo
- Mga internet service provider o mga employer na sinusubaybayan ang mga pahinang binibisita mo
- Malicious software na sinusubaybayan ang iyong mga keystroke kapalit ng mga libreng smiley
- Pagmamasid ng mga secret agent
- Mga tao na nakatayo sa likuran mo
-
-
-
diff --git a/core/res/res/raw-tl/incognito_mode_start_page.html b/core/res/res/raw-tl/incognito_mode_start_page.html
deleted file mode 100644
index 6ce5853de0cd..000000000000
--- a/core/res/res/raw-tl/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Bagong incognito window
-
-
- Nag-incognito ka . Hindi lalabas sa iyong kasaysayan ng pag-browse at kasaysayan ng paghahanap ang mga pahinang tiningnan mo sa window na ito, at hindi sila mag-iiwan ng ibang bakas, gaya ng cookies, sa iyong device matapos mong isara ang window na incognito. Gayunpaman, pananatiliin ang anumang mga file na iyong na-download o ang iyong mga ginawang bookmark.
-
- Hindi nakakaapekto ang pagiging incognito sa gawi ng ibang mga tao, server, o software. Maging maingat sa:
-
-
- Mga website na kumokolekta o nagbabahagi ng impormasyong tungkol sa iyo
- Mga internet service provider o mga employer na sinusubaybayan ang mga pahinang binibisita mo
- Malicious software na sinusubaybayan ang iyong mga keystroke kapalit ng mga libreng smiley
- Pagmamasid ng mga secret agent
- Mga tao na nakatayo sa likuran mo
-
-
-
diff --git a/core/res/res/raw-tr-xlarge/incognito_mode_start_page.html b/core/res/res/raw-tr-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index c570cc7e645f..000000000000
--- a/core/res/res/raw-tr-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Yeni gizli pencere
-
-
- Gizli moda geçtiniz Bu pencerede görüntülediğiniz sayfalar tarayıcı geçmişinizde veya arama geçmişinizde görünmez ve gizli pencereyi kapatmanızın ardından cihazınızda çerezler gibi izler bırakmaz. Ancak, indirdiğiniz dosyalar ve oluşturduğunuz favoriler korunur.
-
- Gizli moda geçmeniz diğer kişilerin, sunucuların veya yazılımların davranışlarını etkilemez. Şu konularda dikkatli olun:
-
-
- Hakkınızda bilgi toplayan veya paylaşan web siteleri
- Ziyaret ettiğiniz sayfaları izleyen şirket çalışanları veya servis sağlayıcıları
- Ücretsiz ifade simgeleri karşılığında tuş vuruşlarınızı takip eden kötü niyetli yazılımlar
- Gizli ajanlar tarafından takip edilme
- Arkanızda dikilip ne yaptığınıza bakan kişiler
-
-
-
diff --git a/core/res/res/raw-tr/incognito_mode_start_page.html b/core/res/res/raw-tr/incognito_mode_start_page.html
deleted file mode 100644
index c570cc7e645f..000000000000
--- a/core/res/res/raw-tr/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Yeni gizli pencere
-
-
- Gizli moda geçtiniz Bu pencerede görüntülediğiniz sayfalar tarayıcı geçmişinizde veya arama geçmişinizde görünmez ve gizli pencereyi kapatmanızın ardından cihazınızda çerezler gibi izler bırakmaz. Ancak, indirdiğiniz dosyalar ve oluşturduğunuz favoriler korunur.
-
- Gizli moda geçmeniz diğer kişilerin, sunucuların veya yazılımların davranışlarını etkilemez. Şu konularda dikkatli olun:
-
-
- Hakkınızda bilgi toplayan veya paylaşan web siteleri
- Ziyaret ettiğiniz sayfaları izleyen şirket çalışanları veya servis sağlayıcıları
- Ücretsiz ifade simgeleri karşılığında tuş vuruşlarınızı takip eden kötü niyetli yazılımlar
- Gizli ajanlar tarafından takip edilme
- Arkanızda dikilip ne yaptığınıza bakan kişiler
-
-
-
diff --git a/core/res/res/raw-uk-xlarge/incognito_mode_start_page.html b/core/res/res/raw-uk-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 8852854b4110..000000000000
--- a/core/res/res/raw-uk-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Нове анонімне вікно
-
-
- Ви в анонімному режимі . Сторінки, які ви переглядаєте в цьому вікні, не з’являться в історії веб-переглядача чи в історії пошуку. Вони також не залишать жодних слідів, як-от файлів cookie, у вашому пристрої після того, як ви закриєте анонімне вікно. Однак, завантажені файли та збережені закладки залишаться.
-
- Анонімний режим не впливає на поведінку інших людей, серверів чи програмного забезпечення. Остерігайтеся:
-
-
- веб-сайтів, які збирають чи поширюють інформацію про вас
- постачальників інтернет-послуг або роботодавців, які відстежують сторінки, які ви відвідуєте
- зловмисного програмного забезпечення, яке пропонує безкоштовні смайли, натомість реєструючи клавіші, які ви натискаєте
- нагляду збоку секретних служб
- людей за вашою спиною
-
-
-
diff --git a/core/res/res/raw-uk/incognito_mode_start_page.html b/core/res/res/raw-uk/incognito_mode_start_page.html
deleted file mode 100644
index 8852854b4110..000000000000
--- a/core/res/res/raw-uk/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Нове анонімне вікно
-
-
- Ви в анонімному режимі . Сторінки, які ви переглядаєте в цьому вікні, не з’являться в історії веб-переглядача чи в історії пошуку. Вони також не залишать жодних слідів, як-от файлів cookie, у вашому пристрої після того, як ви закриєте анонімне вікно. Однак, завантажені файли та збережені закладки залишаться.
-
- Анонімний режим не впливає на поведінку інших людей, серверів чи програмного забезпечення. Остерігайтеся:
-
-
- веб-сайтів, які збирають чи поширюють інформацію про вас
- постачальників інтернет-послуг або роботодавців, які відстежують сторінки, які ви відвідуєте
- зловмисного програмного забезпечення, яке пропонує безкоштовні смайли, натомість реєструючи клавіші, які ви натискаєте
- нагляду збоку секретних служб
- людей за вашою спиною
-
-
-
diff --git a/core/res/res/raw-vi-xlarge/incognito_mode_start_page.html b/core/res/res/raw-vi-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 9902cdef45cb..000000000000
--- a/core/res/res/raw-vi-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Cửa sổ ẩn danh mới
-
-
- Bạn đã sử dụng cửa sổ ẩn danh . Các trang bạn xem trong cửa sổ này sẽ không xuất hiện trong lịch sử của trình duyệt hoặc lịch sử tìm kiếm và chúng cũng không để lại dấu vết như cookie trên thiết bị sau khi bạn đóng cửa sổ ẩn danh. Tuy nhiên, mọi tệp bạn tải xuống hoặc mọi dấu trang bạn tạo sẽ được giữ nguyên.
-
- Sử dụng cửa sổ ẩn danh không ảnh hưởng đến hành vi của người khác, của máy chủ hoặc phần mềm. Hãy cảnh giác với:
-
-
- Các trang web thu thập hoặc chia sẻ thông tin về bạn
- Nhà cung cấp dịch vụ Internet hoặc ông chủ muốn theo dõi những trang bạn đã truy cập
- Phần mềm độc hại theo dõi thao tác gõ phím khi nhập các mặt cười
- Sự theo dõi của các cơ quan tình báo
- Những người đứng đằng sau bạn
-
-
-
diff --git a/core/res/res/raw-vi/incognito_mode_start_page.html b/core/res/res/raw-vi/incognito_mode_start_page.html
deleted file mode 100644
index 9902cdef45cb..000000000000
--- a/core/res/res/raw-vi/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Cửa sổ ẩn danh mới
-
-
- Bạn đã sử dụng cửa sổ ẩn danh . Các trang bạn xem trong cửa sổ này sẽ không xuất hiện trong lịch sử của trình duyệt hoặc lịch sử tìm kiếm và chúng cũng không để lại dấu vết như cookie trên thiết bị sau khi bạn đóng cửa sổ ẩn danh. Tuy nhiên, mọi tệp bạn tải xuống hoặc mọi dấu trang bạn tạo sẽ được giữ nguyên.
-
- Sử dụng cửa sổ ẩn danh không ảnh hưởng đến hành vi của người khác, của máy chủ hoặc phần mềm. Hãy cảnh giác với:
-
-
- Các trang web thu thập hoặc chia sẻ thông tin về bạn
- Nhà cung cấp dịch vụ Internet hoặc ông chủ muốn theo dõi những trang bạn đã truy cập
- Phần mềm độc hại theo dõi thao tác gõ phím khi nhập các mặt cười
- Sự theo dõi của các cơ quan tình báo
- Những người đứng đằng sau bạn
-
-
-
diff --git a/core/res/res/raw-xlarge/incognito_mode_start_page.html b/core/res/res/raw-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 492658d29484..000000000000
--- a/core/res/res/raw-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
- New incognito tab
-
-
- You've gone incognito . Pages you view in this tab
- won't appear in your browser history or search history, and they won't
- leave other traces, like cookies, on your device after you close the
- incognito tab. Any files you download or bookmarks you create will be
- preserved, however.
-
- Going incognito doesn't affect the behavior of other people,
- servers, or software. Be wary of:
-
-
- Websites that collect or share information about you
- Internet service providers or employers that track the pages you visit
- Malicious software that tracks your keystrokes in exchange for free smileys
- Surveillance by secret agents
- People standing behind you
-
-
-
diff --git a/core/res/res/raw-zh-rCN-xlarge/incognito_mode_start_page.html b/core/res/res/raw-zh-rCN-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 2caf8f8bc807..000000000000
--- a/core/res/res/raw-zh-rCN-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- 新建隐身窗口
-
-
- 您已进入隐身模式 。当关闭隐身窗口后,您在此窗口中查看的网页将不会出现在您的浏览器历史记录或搜索记录中,也不会在您的设备留下任何踪迹(如 cookie)。但是,您下载的任何文件或您创建的书签会予以保留。
-
- 进入隐身模式不会影响他人、其他服务器或软件的行为。敬请提防:
-
-
- 搜集并分享有关您的信息的网站
- 跟踪您所访问的网页的互联网服务提供商或雇主
- 跟踪您的键盘输入内容以换取免费表情符号的恶意软件
- 对您进行监视的秘密代理
- 站在您身后的人
-
-
-
diff --git a/core/res/res/raw-zh-rCN/incognito_mode_start_page.html b/core/res/res/raw-zh-rCN/incognito_mode_start_page.html
deleted file mode 100644
index 2caf8f8bc807..000000000000
--- a/core/res/res/raw-zh-rCN/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- 新建隐身窗口
-
-
- 您已进入隐身模式 。当关闭隐身窗口后,您在此窗口中查看的网页将不会出现在您的浏览器历史记录或搜索记录中,也不会在您的设备留下任何踪迹(如 cookie)。但是,您下载的任何文件或您创建的书签会予以保留。
-
- 进入隐身模式不会影响他人、其他服务器或软件的行为。敬请提防:
-
-
- 搜集并分享有关您的信息的网站
- 跟踪您所访问的网页的互联网服务提供商或雇主
- 跟踪您的键盘输入内容以换取免费表情符号的恶意软件
- 对您进行监视的秘密代理
- 站在您身后的人
-
-
-
diff --git a/core/res/res/raw-zh-rTW-xlarge/incognito_mode_start_page.html b/core/res/res/raw-zh-rTW-xlarge/incognito_mode_start_page.html
deleted file mode 100644
index 54eb40bbecd0..000000000000
--- a/core/res/res/raw-zh-rTW-xlarge/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- 新的無痕式視窗
-
-
- 您已開啟無痕式視窗 。透過這個視窗開啟的網頁都不會出現在瀏覽器記錄和搜尋記錄中,而且您關閉此類視窗之後,裝置上並不會保留任何相關記錄 (例如 cookie)。不過系統會保存您的下載檔案和書籤。
-
- 無痕式視窗無法掌控人、伺服器和軟體的行為,所以請小心下列的人事物:
-
-
- 會收集或分享您的相關資訊的網站
- 會追蹤您造訪網頁的網路服務供應商或雇主
- 以免費下載為誘因引誘您點擊的連結,其中通常隱藏鍵盤記錄惡意軟體
- 情報特務的監控
- 站在您身後的人
-
-
-
diff --git a/core/res/res/raw-zh-rTW/incognito_mode_start_page.html b/core/res/res/raw-zh-rTW/incognito_mode_start_page.html
deleted file mode 100644
index 54eb40bbecd0..000000000000
--- a/core/res/res/raw-zh-rTW/incognito_mode_start_page.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- 新的無痕式視窗
-
-
- 您已開啟無痕式視窗 。透過這個視窗開啟的網頁都不會出現在瀏覽器記錄和搜尋記錄中,而且您關閉此類視窗之後,裝置上並不會保留任何相關記錄 (例如 cookie)。不過系統會保存您的下載檔案和書籤。
-
- 無痕式視窗無法掌控人、伺服器和軟體的行為,所以請小心下列的人事物:
-
-
- 會收集或分享您的相關資訊的網站
- 會追蹤您造訪網頁的網路服務供應商或雇主
- 以免費下載為誘因引誘您點擊的連結,其中通常隱藏鍵盤記錄惡意軟體
- 情報特務的監控
- 站在您身後的人
-
-
-
diff --git a/core/res/res/raw/incognito_mode_start_page.html b/core/res/res/raw/incognito_mode_start_page.html
deleted file mode 100644
index 5d7a3fbf98c0..000000000000
--- a/core/res/res/raw/incognito_mode_start_page.html
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
- New incognito window
-
-
- You've gone incognito . Pages you view in this window
- won't appear in your browser history or search history, and they won't
- leave other traces, like cookies, on your device after you close the
- incognito window. Any files you download or bookmarks you create will be
- preserved, however.
-
- Going incognito doesn't affect the behavior of other people,
- servers, or software. Be wary of:
-
-
- Websites that collect or share information about you
- Internet service providers or employers that track the pages you visit
- Malicious software that tracks your keystrokes in exchange for free smileys
- Surveillance by secret agents
- People standing behind you
-
-
-
diff --git a/core/res/res/values-af/strings.xml b/core/res/res/values-af/strings.xml
index 4b59f21ec69a..e34d0dce9bd8 100644
--- a/core/res/res/values-af/strings.xml
+++ b/core/res/res/values-af/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Verbindingsprobleem of ongeldige MMI-kode."
"Bewerking is beperk tot belbeperking-nommers."
+ "Kan oproep-aanstuurinstellings nie van jou foon af verander tewyl jy swerf nie."
"Diens is geaktiveer."
"Diens geaktiveer vir:"
"Diens is gedeaktiveer."
@@ -96,6 +97,8 @@
"Stem/data-dienste is geblokkeer."
"Stem-/SMS-dienste is geblokkeer."
"Alle stem-/data-/SMS-dienste is geblokkeer."
+ "Kan netwerk nie bereik nie"
+ "Probeer om die soort te verander wat jy by Instellings > Sellulêre netwerke > Voorkeurnetwerksoort kies, om ontvangs te verbeter."
"Ander party het TTY-modus VOL versoek"
"Ander party het TTY-modus GOD versoek"
"Ander party het TTY-modus SOD versoek"
@@ -179,6 +182,8 @@
"Werkprofiel is uitgevee weens ontbrekende administrasieprogram."
"Die werkprofiel se administrasieprogram ontbreek of is korrup. Gevolglik is jou werkprofiel en verwante data uitgevee. Kontak jou administrateur vir bystand."
"Jou werkprofiel is nie meer op hierdie toestel beskikbaar nie."
+ "Netwerkverkeer word gemonitor"
+ "Tik om meer te wete te kom"
"Jou toestel sal uitgevee word"
"Die administrasieprogram kort komponente of is korrup en kan nie gebruik word nie. Jou toestel sal nou uitgevee word. Kontak jou administrateur vir bystand."
"Ek"
@@ -1208,6 +1213,8 @@
"Laat \'n program toe om installasiesessies te lees. Dit laat dit toe om besonderhede van aktiewe pakketinstallasies te sien."
"versoek installeerpakkette"
"Laat \'n program toe om te versoek dat pakkette geïnstalleer word."
+ "vra om batteryoptimerings te ignoreer"
+ "Laat \'n program toe om toestemming te vra om batteryoptimerings vir daardie program ignoreer."
"Klop twee keer vir zoembeheer"
"Kon nie legstuk byvoeg nie."
"Gaan"
@@ -1558,7 +1565,7 @@
"Kies jaar"
"%1$s uitgevee"
"Werk-%1$s "
- "Raak en hou Terug om hierdie skerm te ontspeld."
+ "Raak en hou Terug en Oorsig om hierdie skerm te ontspeld."
"Program is vasgespeld: Dit mag nie op hierdie toestel ontspeld word nie."
"Skerm vasgespeld"
"Skerm ontspeld"
diff --git a/core/res/res/values-am/strings.xml b/core/res/res/values-am/strings.xml
index 54bddc753e3b..eb1208824d44 100644
--- a/core/res/res/values-am/strings.xml
+++ b/core/res/res/values-am/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"የተያያዥ ችግር ወይም ትክከል ያልሆነየMMI ኮድ ባህሪ።"
"ክዋኔ ለቋሚ መደወያ ቁጥሮች ብቻ ተገድቧል።"
+ "Can not change call forwarding settings from your phone while you are roaming."
"አገልግሎት ነቅቶ ነበር።"
"ለ፡ አገልግሎት ነቅቶ ነበር"
"አገልግሎቱ ቦዝኗል።"
@@ -96,6 +97,8 @@
"ድምፅ/ውሂብ አገልግሎቶች ታግደዋል።"
"ድምፅ/SMS አገልግሎቶች ታግደዋል።"
"ሁሉም ድምጽ/ውሂብ/ኤስ ኤም ኤስ አገልግሎቶች ታግደዋል።"
+ "አውታረ መረብ ላይ መድረስ አይቻልም"
+ "ቅበላን ለማሻሻል የተመረጠውን ዓይነት በቅንብሮች > ተንቀሳቃሽ አውታረ መረቦች > ተመራጭ የአውታረ መረብ ዓይነት ላይ ለመለወጥ ይሞክሩ።"
"ቢጤ መልዕክት መጻጻፊያ ስልክ ሁነታ FULL ጠይቋል"
"ቢጤ መልዕክት መጻጻፊያ ስልክ ሁነታ HCO ጠይቋል"
"ቢጤ መልዕክት መጻጻፊያ ስልክ ሁነታ VCO ጠይቋል"
@@ -179,6 +182,8 @@
"በጎደለ የአስተዳዳሪ መተግበሪያ ምክንያት የስራ መገለጫ ተሰርዟል።"
"የስራ መገለጫ አስተዳዳሪ መተግበሪያው ወይም ይጎድላል ወይም ተበላሽቷል። በዚህ ምክንያት የስራ መገለጫዎ እና ተዛማጅ ውሂብ ተሰርዘዋል። እርዳታን ለማግኘት አስተዳዳሪዎን ያነጋግሩ።"
"የስራ መገለጫዎ ከዚህ በኋላ በዚህ መሳሪያ ላይ አይገኝም።"
+ "የአውታረ መረብ ክትትል እየተደረገበት ነው"
+ "የበለጠ ለመረዳት መታ ያድርጉ"
"የእርስዎ መሣሪያ ይደመሰሳል"
"የአስተዳዳሪ መተግበሪያው ክፍሎች ይጎድሉታል ወይም ተበላሽቷል፣ እና ስራ ላይ መዋል አይችልም። የእርስዎ መሣሪያ አሁን ይደመሰሳል። እርዳታ ለማግኘት አስተዳዳሪዎን ያነጋግሩ።"
"እኔ"
@@ -1208,6 +1213,8 @@
"መተግበሪያው የመጫን ክፍለ ጊዜዎችን እንዲያነብ ይፈቅድለታል። ይህም ስለ ገቢር የጥቅል ጭነቶች ዝርዝር መረጃን እንዲያይ ይፈቅድለታል።"
"የጭነት ጥቅሎችን መጠየቅ"
"መተግበሪያ የጥቅሎች መጫንን እንዲጠይቅ ይፈቅዳል።"
+ "የባትሪ ማትባቶችን ችላ ለማለት መጠየቅ"
+ "አንድ መተግበሪያ ለዚያ መተግበሪያ የባትሪ ማትባቶችን ችላ ለማለት እንዲጠይቅ ይፈቅድለታል።"
"ለአጉላ መቆጣጠሪያ ሁለት ጊዜ ነካ አድርግ"
"ምግብር ማከል አልተቻለም።"
"ሂድ"
@@ -1558,7 +1565,7 @@
"ዓመት ይምረጡ"
"%1$s ተሰርዟል"
"ስራ %1$s "
- "ይህን ማያ ገጽ ለመንቀል ተመለስን ይንኩትና ያዙት።"
+ "ይህን ማያ ገጽ ለመንቀል ተመለስ እና አጠቃላይ እይታን ተጭነው ይያዙ።"
"መተግበሪያ ተሰክቷል፦ በዚህ መሣሪያ ላይ ማላቀቅ አይፈቀድም።"
"ማያ ገጽ ተሰክቷል"
"ማያ ገጽ ተነቅሏል"
diff --git a/core/res/res/values-ar/strings.xml b/core/res/res/values-ar/strings.xml
index 493170bf7c0c..74b145bcca31 100644
--- a/core/res/res/values-ar/strings.xml
+++ b/core/res/res/values-ar/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"حدثت مشكلة في الاتصال أو أن كود MMI غير صحيح."
"تم تقييد التشغيل لأرقام الاتصال الثابت فقط."
+ "يتعذر تغيير إعدادات إعادة توجيه المكالمات من هاتفك أثناء التجوال."
"تم تمكين الخدمة."
"تم تمكين الخدمة لـ:"
"تم تعطيل الخدمة."
@@ -100,6 +101,8 @@
"خدمات الصوت/البيانات محظورة."
"خدمات الصوت/الرسائل القصيرة SMS محظورة."
"جميع خدمات الصوت/البيانات/الرسائل القصيرة SMS محظورة."
+ "يتعذر الوصول إلى الشبكة"
+ "لتحسين الاستقبال، يمكنك تجربة تغيير النوع المحدّد في الإعدادات > شبكات الجوّال > نوع الشبكة المفضَّل."
"طلب النظير وضع TTY الكامل"
"طلب النظير وضع TTY على HCO"
"طلب النظير وضع TTY على VCO"
@@ -187,6 +190,8 @@
"تم حذف الملف الشخصي للعمل نتيجة فقد تطبيق المشرف."
"تطبيق المشرف للملف الشخصي للعمل مفقود أو تالف لذا تم حذف الملف والبيانات ذات الصلة. اتصل بالمشرف للحصول على المساعدة."
"لم يعد ملفك الشخصي للعمل متاحًا على هذا الجهاز."
+ "تتم مراقبة حركة بيانات الشبكة"
+ "انقر لمعرفة المزيد من المعلومات"
"سيتم محو بيانات جهازك."
"تطبيق المشرف فاقد لمكونات أو تالف ويتعذر استخدامه. سيتم محو بيانات جهازك الآن. اتصل بالمشرف للحصول على المساعدة."
"أنا"
@@ -783,7 +788,7 @@
"تأكيد الانتقال"
"مغادرة هذه الصفحة"
"البقاء في هذه الصفحة"
- "%s \n\nهل تريد بالتأكيد الانتقال بعيدًا عن هذه الصفحة؟"
+ "%s \n\nهل تريد فعلًا الانتقال بعيدًا عن هذه الصفحة؟"
"تأكيد"
"نصيحة: اضغط مرتين للتكبير والتصغير."
"ملء تلقائي"
@@ -1308,6 +1313,8 @@
"للسماح لأحد التطبيقات بقراءة جلسات التثبيت. ويسمح لك هذا بالاطلاع على تفاصيل بشأن عمليات تثبيت الحزم النشطة."
"طلب حزم التثبيت"
"للسماح لتطبيق ما بطلب تثبيت الحزم."
+ "طلب تجاهل تحسينات البطارية"
+ "للسماح للتطبيق بطلب الإذن لتجاهل تحسينات البطارية في هذا التطبيق."
"اضغط مرتين للتحكم في التكبير/التصغير"
"تعذرت إضافة أداة."
"تنفيذ"
@@ -1666,7 +1673,7 @@
"تحديد العام"
"تم حذف %1$s "
"%1$s المخصص للعمل"
- "لإزالة تثبيت هذه الشاشة، يمكنك لمس زر الرجوع مع الاستمرار."
+ "لإزالة تثبيت هذه الشاشة، يمكنك لمس زر \"رجوع\" و\"نظرة عامة\" مع الاستمرار."
"التطبيق مقيد: ولا يسمح بإلغاء التقييد على هذا الجهاز."
"تم تثبيت الشاشة"
"تم إلغاء تثبيت الشاشة"
diff --git a/core/res/res/values-az-rAZ/strings.xml b/core/res/res/values-az-rAZ/strings.xml
index 7c3f2a44eef0..4dd9a79a26ba 100644
--- a/core/res/res/values-az-rAZ/strings.xml
+++ b/core/res/res/values-az-rAZ/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Bağlantı problemi və ya yalnış MM kodu."
"Əməliyyat yalnız sabit nömrələrə yığımla məhdudlaşıb."
+ "Roaminqdə olarkən zəng yönləndirmə ayarlarını telefonunuzdan dəyişə bilməz."
"Servis işə salındı."
"Xidmət aktiv edilmişdir:"
"Xidmət deaktiv edilib."
@@ -96,6 +97,8 @@
"Səs/data xidmətləri bloklanıb."
"Səs/SMS xidmətləri bloklanıb."
"Bütün səs/data/SMS xidmətləri bağlıdır."
+ "Şəbəkəyə daxil olmaq mümkün deyil"
+ "Qəbulu inkişaf etdirmək üçün, Ayarlar > Mobil Şəbəkə > Tərcih edilən şəbəkə növü bölməsindən seçilmiş növü dəyişməyə çalışın."
"Eskpert TTY Rejimi FULL-u sorğuladı"
"Ekspert TTY Rejimi HCO-nu sorğuladı"
"Ekspert TTY Rejimi VCO-nu sorğuladı"
@@ -179,6 +182,8 @@
"İnzibatçı proqramı olmadığından iş profili silindi."
"İnzibatçı proqramın iş profili ya yoxdur, ya da korlanıb. Nəticədə iş profiliniz və onunla bağlı məlumatlar silinib. Yardım üçün inzibatçınızla əlaqə saxlayın."
"İş profiliniz daha bu cihazda əlçatan deyil."
+ "Şəbəkə trafikinə nəzarət edilir"
+ "Ətraflı məlumat üçün klikləyin"
"Cihazınız təmizlənəcəkdir"
"İnzibatçı proqramında komponentlər yoxdur və ya korlanıb və istifadə oluna bilməz. Cihazınız indi təmizlənəcəkdir. Yardım üçün inzibatçınızla əlaqə saxlayın."
"Mən"
@@ -1208,6 +1213,8 @@
"Tətbiqə quraşdırma sessiyalarını oxumağa yardım edir. Bu da aktiv paket quraşdırmaları haqqında məlumatları görməyə imkan verir."
"paketləri quraşdırma sorğusu"
"Tətbiqə paketləri quraşdırma sorğusu göndərməyə icazə verir."
+ "batareya optimallaşdırmasını iqnor etmək üçün soruşun"
+ "Tatareya optimallaşdırılmasını o tətbiq üçün iqnor edilməsinə icazə vermək məqsədilə soruşmağa tətbiqə icazə verilir."
"Zoom kontrolu üçün iki dəfə toxunun"
"Widget əlavə edilə bilmədi."
"Get"
@@ -1558,7 +1565,7 @@
"İl seçin"
"%1$s silindi"
"İş %1$s "
- "Sancağı götürmək üçün Geri düyməsinə toxunun və saxlayın."
+ "Sancağı götürmək üçün Geri və İcmal düymələrinə basıb saxlayın"
"Tətbiq sancılıb: Açmağa bu cihazda icazə verilmir."
"Screen pinned"
"Screen unpinned"
diff --git a/core/res/res/values-b+sr+Latn/strings.xml b/core/res/res/values-b+sr+Latn/strings.xml
index 50e1327f4a9c..b1146f394533 100644
--- a/core/res/res/values-b+sr+Latn/strings.xml
+++ b/core/res/res/values-b+sr+Latn/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Problemi sa vezom ili nevažeći MMI kôd."
"Rad je ograničen samo na brojeve fiksnog biranja."
+ "Ne možete da promenite podešavanja preusmeravanja poziva sa telefona dok ste u romingu."
"Usluga je omogućena."
"Usluga je omogućena za:"
"Usluga je onemogućena."
@@ -97,6 +98,8 @@
"Glasovna usluga/usluga prenosa podataka su blokirane."
"Glasovna usluga i SMS usluga su blokirane."
"Sve glasovne i SMS usluge, kao i usluge prenosa podataka su blokirane."
+ "Povezivanje sa mrežom nije uspelo"
+ "Da biste poboljšali prijem, probajte da promenite izabrani tip u odeljku Podešavanja > Mobilne mreže > Željeni tip mreže."
"Korisnik zahteva POTPUN režim TTY"
"Korisnik zahteva PRENOS ZVUKA za režim TTY"
"Korisnik zahteva PRENOS GLASA za režim TTY"
@@ -181,6 +184,8 @@
"Poslovni profil je izbrisan jer nedostaje administratorska aplikacija."
"Administratorska aplikacija poslovnog profila nedostaje ili je oštećena. Zbog toga su vaš poslovni profil i povezani podaci izbrisani. Obratite se administratoru za pomoć."
"Profil za Work više nije dostupan na ovom uređaju."
+ "Mrežni saobraćaj se prati"
+ "Dodirnite da biste saznali više"
"Uređaj će biti obrisan"
"Administratorskoj aplikaciji nedostaju neke komponente ili je oštećena i ne može da se koristi. Uređaj će sada biti obrisan. Obratite se administratoru za pomoć."
"Ja"
@@ -371,7 +376,7 @@
"slanje komandi na SIM"
"Omogućava aplikaciji da šalje komande SIM kartici. To je veoma opasno."
"snimanje fotografija i video snimaka"
- "Dozvoljava aplikaciji da snima slike i video snimke kamerom. Ova dozvola omogućava aplikaciji da u bilo kom trenutku koristi kameru bez vaše potvrde."
+ "Dozvoljava aplikaciji da snima slike i video kamerom. Ova dozvola omogućava aplikaciji da u bilo kom trenutku koristi kameru bez vaše potvrde."
"kontrola vibracije"
"Dozvoljava aplikaciji da kontroliše vibraciju."
"direktno pozivanje brojeva telefona"
@@ -1233,6 +1238,8 @@
"Dozvoljava aplikaciji da čita sesije instaliranja. To joj dozvoljava da vidi detalje o aktivnim instalacijama paketa."
"zahtevanje paketa za instaliranje"
"Omogućava da aplikacija zahteva instalaciju paketa."
+ "traženje dozvole za ignorisanje optimizacija baterije"
+ "Dozvoljava aplikaciji da traži dozvolu za ignorisanje optimizacija baterije za tu aplikaciju."
"Dodirnite dvaput za kontrolu zumiranja"
"Nije moguće dodati vidžet."
"Idi"
@@ -1585,7 +1592,7 @@
"Izaberite godinu"
"Izbrisali ste %1$s "
"%1$s na poslu"
- "Da biste otkačili ovaj ekran, dodirnite i zadržite Nazad."
+ "Da biste otkačili ovaj ekran, dodirnite i zadržite Nazad i Pregled."
"Aplikacija je zakačena: otkačinjanje nije dozvoljeno na ovom uređaju."
"Ekran je zakačen"
"Ekran je otkačen"
diff --git a/core/res/res/values-be-rBY/strings.xml b/core/res/res/values-be-rBY/strings.xml
index cadc0bc9ebd4..715141400a97 100644
--- a/core/res/res/values-be-rBY/strings.xml
+++ b/core/res/res/values-be-rBY/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Праблема падлучэння ці няправільны код MMI."
"Выкарыстанне абмежаванае толькі дазволенымі нумарамі."
+ "Немагчыма змяніць налады пераадрасацыі выклікаў з тэлефона, пакуль вы знаходзіцеся ў роўмінгу."
"Служба была ўключана."
"Служба была ўключана для:"
"Служба была адключаная."
@@ -98,6 +99,8 @@
"Службы перадачы голаса/дадзеных заблакаваны."
"Службы перадачы голаса і SMS заблакаваныя."
"Усе службы перадачы дадзеных, галасавыя і SMS-службы заблакаваны."
+ "Немагчыма падключыцца да сеткі"
+ "Каб палепшыць якасць прыёму, паспрабуйце змяніць тып, выбраны ў меню \"Налады > Сотавыя сеткі > Прыярытэтны тып сеткі\"."
"Аднарангавая прылада запытала рэжым TTY FULL"
"Аднарангавая прылада запытала рэжым TTY НСО"
"Аднарангавая прылада запытала рэжым TTY VCO"
@@ -183,6 +186,8 @@
"Рабочы профіль выдалены з-за адсутнасці праграмы адміністравання."
"Праграма для адміністравання рабочага профілю адсутнічае або пашкоджана. У выніку гэтага ваш рабочы профіль і звязаныя з ім даныя былі выдаленыя. Звярніцеся па дапамогу да адміністратара."
"Ваш працоўны профіль больш не даступны на гэтай прыладзе."
+ "Сеткавы трафік адсочваецца"
+ "Дакраніцеся, каб даведацца больш"
"Даныя вашай прылады будуць сцерты"
"Праграма для адміністравання не можа быць выкарыстана, таму што ў яе адсутнічаюць кампаненты або яна пашкоджана. Зараз даныя вашай прылады будуць сцерты. Звярніцеся па дапамогу да адміністратара."
"Я"
@@ -1258,6 +1263,8 @@
"Дазваляе праграме счытваць сеансы ўсталёўкі. Гэта дазваляе ёй праглядаць інфармацыю аб актыўных усталёўках пакета."
"запытваць усталёўку пакетаў"
"Дазваляе праграме запытваць усталёўку пакетаў."
+ "запытваць дазвол на ігнараванне аптымізацыі акумулятара"
+ "Дазваляе праграме запытваць дазвол на ігнараванне аптымізацыі акумулятара для гэтай праграмы."
"Націсніце двойчы, каб кіраваць маштабаваннем"
"Немагчыма дадаць віджэт."
"Пачаць"
@@ -1612,7 +1619,7 @@
"Выберыце год"
"Выдалена: %1$s "
"%1$s (праца)"
- "Каб адмацаваць гэты экран, дакраніцеся і ўтрымлівайце кнопку \"Назад\"."
+ "Каб адмацаваць гэты экран, дакраніцеся і ўтрымлівайце кнопкі \"Назад\" і \"Агляд\"."
"Праграма замацавана: адмацаванне на гэтай прыладзе не дапускаецца."
"Экран замацаваны"
"Экран адмацаваны"
diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml
index 4d8915b46202..4def3fe3ebb7 100644
--- a/core/res/res/values-bg/strings.xml
+++ b/core/res/res/values-bg/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Има проблем с връзката или MMI кодът е невалиден."
"Операцията е ограничена само до фиксираните номера за набиране."
+ "Докато сте в режим на роуминг, настройките за пренасочване на обажданията не могат да се променят от телефона ви."
"Услугата бе активирана."
"Услугата бе активирана за:"
"Услугата бе деактивирана."
@@ -96,6 +97,8 @@
"Услугите за глас или данни са блокирани."
"Услугите за глас и SMS са блокирани."
"Всички услуги за глас/данни/SMS са блокирани."
+ "Не може да се установи връзка с мрежата"
+ "За да подобрите сигнала, променете избрания тип от „Настройки“ > „Клетъчни мрежи“ > „Предпочитан тип мрежа“."
"Отсрещният потребител заяви пълен TTY режим (FULL)"
"Отсрещният потребител заяви TTY режим с пренос на слух (HCO)"
"Отсрещният потребител заяви TTY режим с пренос на глас (VCО)"
@@ -179,6 +182,8 @@
"Служебният потребителски профил е изтрит поради липса на администраторско приложение."
"Администраторското приложение на служебния потребителски профил липсва или е повредено. В резултат на това той и свързаните с него данни са изтрити. За съдействие се свържете с администратора си."
"Служебният ви потребителски профил вече не е налице на това устройство."
+ "Трафикът в мрежата се следи"
+ "Докоснете, за да научите повече"
"Данните на устройството ви ще бъдат изтрити"
"В администраторското приложение липсват компоненти или то е невалидно и не може да се използва. Сега данните на устройството ви ще бъдат изтрити. Свържете се с администратора си за съдействие."
"Аз"
@@ -250,15 +255,15 @@
"Календар"
"има достъп до календара ви"
"SMS"
- "изпраща и преглежда SMS съобщения"
+ "да изпраща и преглежда SMS съобщения"
"Съхранение"
- "има достъп до снимките, мултимедията и файловете на устройството ви"
+ "да има достъп до снимките, мултимедията и файловете на устройството ви"
"Микрофон"
"записва звук"
"Камера"
- "прави снимки и записва видеоклипове"
+ "да прави снимки и записва видеоклипове"
"Телефон"
- "извършва телефонни обаждания и да ги управлява"
+ "да извършва телефонни обаждания и да ги управлява"
"Телесни сензори"
"достъп до сензорните данни за жизнените ви показатели"
"Извличане на съдържанието от прозореца"
@@ -1208,6 +1213,8 @@
"Разрешава на приложението да чете сесии за инсталиране. Това му позволява да вижда подробности за активните инсталирания на пакети."
"заявка на пакети за инсталиране"
"Разрешава на приложението да заявява инсталиране на пакети."
+ "искане за пренебрегване на оптимизациите на батерията"
+ "Разрешава на дадено приложение да иска разрешение за пренебрегване на свързаните с него оптимизации на батерията."
"Докоснете двукратно за управление на промяната на мащаба"
"Приспособлението не можа да бъде добавено."
"Старт"
@@ -1234,7 +1241,7 @@
"Тапет"
"Промяна на тапета"
"Слушател на известия"
- "Приемател за виртуална реалност"
+ "Приемател за VR"
"Доставчик на условия"
"Услуга за класифициране на известията"
"VPN е активирана"
@@ -1558,7 +1565,7 @@
"Избиране на година"
"Изтрихте %1$s "
"%1$s за работа"
- "За да освободите този екран, докоснете и задръжте бутона за връщане назад."
+ "За да освободите този екран, докоснете и задръжте бутона за връщане назад и този за общ преглед."
"Приложението е фиксирано. Освобождаването му не е разрешено на това устройство."
"Екранът е фиксиран"
"Екранът е освободен"
diff --git a/core/res/res/values-bn-rBD/strings.xml b/core/res/res/values-bn-rBD/strings.xml
index 8d893e53a91c..3c8d3bce4627 100644
--- a/core/res/res/values-bn-rBD/strings.xml
+++ b/core/res/res/values-bn-rBD/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"সংযোগ সমস্যা বা অবৈধ MMI কোড৷"
"নির্দিষ্ট নম্বরে ডায়ালযোগ্য হিসাবে প্রক্রিয়াটি সীমিত করা হয়েছে৷"
+ "আপনি রোমিংয়ে থাকাকালীন আপনার ফোন থেকে \'কল ফরওয়ার্ড করার সেটিংস\' পরিবর্তন করা যাবে না৷"
"পরিষেবা সক্ষম করা ছিল৷"
"এর জন্য পরিষেবার সক্ষম করা ছিল:"
"পরিষেবা অক্ষম করা হয়েছে৷"
@@ -62,8 +63,8 @@
"সিম কার্ড অবরোধ মুক্ত করতে PUK2 লিখুন৷"
"অসফল, সিম/RUIM লক সক্ষম করুন৷"
- - আপনার কাছে আর
%d টি প্রচেষ্টা বাকি রয়েছে এটির পরেই আপনার SIM লক হয়ে যাবে৷
- - আপনার কাছে আর
%d টি প্রচেষ্টা বাকি রয়েছে এটির পরেই আপনার SIM লক হয়ে যাবে৷
+ - আপনার কাছে আর
%d টি প্রচেষ্টা বাকি রয়েছে এটির পরেই আপনার সিম লক হয়ে যাবে৷
+ - আপনার কাছে আর
%d টি প্রচেষ্টা বাকি রয়েছে এটির পরেই আপনার সিম লক হয়ে যাবে৷
"IMEI"
"MEID"
@@ -96,6 +97,8 @@
"ভয়েস/ডেটা পরিষেবাগুলি অবরুদ্ধ করা হয়েছে৷"
"ভয়েস/SMS পরিষেবা অবরুদ্ধ করা আছে৷"
"সমস্ত ভয়েস/ডেটা/SMS পরিষেবা অবরুদ্ধ করা হয়েছে৷"
+ "নেটওয়ার্কের সিগন্যাল নেই"
+ "রিসেপশন উন্নত করতে সেটিংস > সেলুলার নেটওয়ার্ক > পছন্দের নেটওয়ার্কের প্রকার এ নির্বাচিত প্রকারটি পরিবর্তন করার চেষ্টা করুন৷"
"পির TTY মোড FULL অনুরোধ করেছে"
"পির TTY মোড HCO অনুরোধ করেছে"
"পির TTY মোড VCO অনুরোধ করেছে"
@@ -179,6 +182,8 @@
"প্রশাসক অ্যাপ্লিকেশান অনুপস্থিত থাকায় কাজের প্রোফাইল মুছে ফেলা হয়েছে৷"
"কাজের প্রোফাইলের প্রশাসক অ্যাপ্লিকেশান হয় অনুপস্থিত বা ক্ষতিগ্রস্ত হয়েছে৷ এর ফলস্বরূপ আপনার কাজের প্রোফাইল এবং সম্পর্কিত ডেটা মুছে দেওয়া হয়েছে৷ সহায়তার জন্য আপনার প্রশাসকের সাথে যোগাযোগ করুন৷"
"আপনার কাজের প্রোফাইল এই ডিভাইসে আর উপলব্ধ নেই।"
+ "নেটওয়ার্ক ট্রাফিক মনিটর করা হচ্ছে"
+ "আরো জানতে আলতো চাপুন"
"আপনার ডিভাইসটি মুছে ফেলা হবে"
"প্রশাসক অ্যাপকেশানটিতে উপাদান অনুপস্থিত বা ক্ষতিগ্রস্ত হয়েছে এবং ব্যবহার করা যাবে না৷ আপনার ডিভাইস এখন মুছে ফেলা হবে৷ সহায়তার জন্য আপনার প্রশাসকের সাথে যোগাযোগ করুন৷"
"আমাকে"
@@ -250,7 +255,7 @@
"ক্যালেন্ডার"
"আপনার ক্যালেন্ডারে অ্যাক্সেস"
"SMS"
- "SMS বার্তাগুলি পাঠাতে এবং দেখতে"
+ "এসএমএসগুলি পাঠাতে এবং দেখতে"
"সঞ্চয়স্থান"
"আপনার ডিভাইসে ফটো, মিডিয়া এবং ফাইলগুলিতে অ্যাক্সেস"
"মাইক্রোফোন"
@@ -286,7 +291,7 @@
"আউটগোয়িং কলগুলি পুনঃচালিত করুন"
"অ্যাপ্লিকেশানকে কল চলাকালীন অন্য একটি নম্বরে কল পুনঃনির্দেশ বা কলটি একসথে বন্ধ করার সাথে ডায়াল করা নম্বরটি দেখতে দেয়৷"
"পাঠ্য বার্তা পান (SMS)"
- "অ্যাপ্লিকেশানটিকে SMS বার্তা প্রাপ্ত করার এবং প্রক্রিয়া করার অনুমতি দেয়৷ এর মানে হল অ্যাপ্লিকেশানটি আপনার ডিভাইস থেকে পাঠানো বার্তাগুলিকে পর্যবেক্ষণ করতে পারে এবং মুছতে পারে সেগুলিকে আপনাকে না দেখিয়ে৷"
+ "অ্যাপ্লিকেশানটিকে এসএমএস প্রাপ্ত করার এবং প্রক্রিয়া করার অনুমতি দেয়৷ এর মানে হল অ্যাপ্লিকেশানটি আপনার ডিভাইস থেকে পাঠানো বার্তাগুলিকে পর্যবেক্ষণ করতে পারে এবং মুছতে পারে সেগুলিকে আপনাকে না দেখিয়ে৷"
"পাঠ্য বার্তা পান (MMS)"
"অ্যাপ্লিকেশানটিকে MMS বার্তা প্রাপ্ত করার এবং প্রক্রিয়া করার অনুমতি দেয়৷ এর মানে হল অ্যাপ্লিকেশানটি আপনার ডিভাইস থেকে পাঠানো বার্তাগুলিকে পর্যবেক্ষণ করতে পারে এবং মুছতে পারে সেগুলিকে আপনাকে না দেখিয়ে৷"
"সেল সম্প্রচার বার্তা পড়ুন"
@@ -294,11 +299,11 @@
"গ্রাহক হিসাবে নেওয়া ফিডগুলি পড়ে"
"অ্যাপ্লিকেশানকে বর্তমানে সিঙ্ক করা ফিডগুলির সম্পর্কে বিবরণ পেতে দেয়৷"
"SMS পাঠানো ও দেখা,আপনি কি পরিচিতি কে এগুলি করার অনুমতি দেবেন?"
- "অ্যাপ্লিকেশানটিকে SMS বার্তাগুলি পাঠাতে অনুমতি দেয়৷ এর জন্য অপ্রত্যাশিত চার্জ কাটা হতে পারে৷ ক্ষতিকারক অ্যাপ্লিকেশানগুলি আপনার নিশ্চিতকরণ ছাড়া বার্তা পাঠানোর মাধ্যমে আপনাকে অর্থ চার্জ করতে পারে৷"
+ "অ্যাপ্লিকেশানটিকে এসএমএসগুলি পাঠাতে অনুমতি দেয়৷ এর জন্য অপ্রত্যাশিত চার্জ কাটা হতে পারে৷ ক্ষতিকারক অ্যাপ্লিকেশানগুলি আপনার নিশ্চিতকরণ ছাড়া বার্তা পাঠানোর মাধ্যমে আপনাকে অর্থ চার্জ করতে পারে৷"
"আপনার পাঠ্য বার্তা পড়ুন (SMS বা MMS)"
- "অ্যাপ্লিকেশানটিকে আপনার ট্যাবলেটে বা আপনার সিম কার্ডে সংরক্ষিত SMS বার্তাগুলি পড়ার অনুমতি দেয়৷ এটি অ্যাপ্লিকেশানটিকে সামগ্রী বা গোপনীয়তার সমস্ত SMS বার্তা নির্বিশেষে পড়ার অনুমতি দেয়৷"
- "অ্যাপ্লিকেশানটিকে আপনার টিভি বা SIM কার্ডে সংরক্ষিত SMS বার্তাগুলি পড়ার অনুমতি দেয়৷ এটি অ্যাপ্লিকেশানটিকে সামগ্রী বা গোপনীয়তা নির্বিশেষে সমস্ত SMS বার্তাগুলি পড়ার অনুমতি দেয়৷"
- "অ্যাপ্লিকেশানটিকে আপনার ফোনে বা আপনার সিম কার্ডে সংরক্ষিত SMS বার্তাগুলি পড়ার অনুমতি দেয়৷ এটি অ্যাপ্লিকেশানটিকে সামগ্রী বা গোপনীয়তার সমস্ত SMS বার্তা নির্বিশেষে পড়ার অনুমতি দেয়৷"
+ "অ্যাপ্লিকেশানটিকে আপনার ট্যাবলেটে বা আপনার সিম কার্ডে সংরক্ষিত এসএমএসগুলি পড়ার অনুমতি দেয়৷ এটি অ্যাপ্লিকেশানটিকে সামগ্রী বা গোপনীয়তার সমস্ত এসএমএস নির্বিশেষে পড়ার অনুমতি দেয়৷"
+ "অ্যাপ্লিকেশানটিকে আপনার টিভি বা সিম কার্ডে সংরক্ষিত এসএমএসগুলি পড়ার অনুমতি দেয়৷ এটি অ্যাপ্লিকেশানটিকে সামগ্রী বা গোপনীয়তা নির্বিশেষে সমস্ত এসএমএসগুলি পড়ার অনুমতি দেয়৷"
+ "অ্যাপ্লিকেশানটিকে আপনার ফোনে বা আপনার সিম কার্ডে সংরক্ষিত এসএমএসগুলি পড়ার অনুমতি দেয়৷ এটি অ্যাপ্লিকেশানটিকে সামগ্রী বা গোপনীয়তার সমস্ত এসএমএস নির্বিশেষে পড়ার অনুমতি দেয়৷"
"পাঠ্য বার্তা পান (WAP)"
"অ্যাপ্লিকেশানটিকে WAP বার্তা প্রাপ্ত করার এবং প্রক্রিয়া করার অনুমতি দেয়৷ এর মানে হল অ্যাপ্লিকেশানটি আপনার ডিভাইস থেকে পাঠানো বার্তাগুলিকে পর্যবেক্ষণ করতে পারে এবং মুছতে পারে সেগুলিকে আপনাকে না দেখিয়ে৷"
"চলমান অ্যাপ্লিকেশান উদ্ধার করে"
@@ -365,7 +370,7 @@
"ভলিউম এবং যেখানে স্পিকার আউটপুট সামগ্রী হিসাবে ব্যবহৃত হয় সেই সব ক্ষেত্রে গ্লোবাল অডিও সেটিংসের সংশোধন করতে অ্যাপ্লিকেশানটিকে মঞ্জুর করে৷"
"অডিও রেকর্ড"
"অ্যাপ্লিকেশানটিকে মাইক্রোফোনের দ্বারা অডিও রেকর্ড করার অনুমতি দেয়৷ এই অনুমতিটি অ্যাপ্লিকেশানটিকে আপনার অনুমোদন ছাড়া যেকোনো সময় অডিও রেকর্ড করার অনুমতি দেয়৷"
- "SIM এ আদেশগুলি পাঠান"
+ "সিম এ আদেশগুলি পাঠান"
"অ্যাপ্লিকেশানটিকে সিম কার্ডে কমান্ডগুলি পাঠানোর অনুমতি দেয়৷ এটি খুবই বিপজ্জনক৷"
"ছবি এবং ভিডিও তোলে"
"ক্যামেরার সাহায্যে ছবি তুলতে ও ভিডিও তৈরি করতে অ্যাপ্লিকেশানটিকে মঞ্জুর করে৷ এই অনুমতিটি অ্যাপ্লিকেশানটিকে আপনার নিশ্চয়তা ছাড়াই যেকোনো সময় ক্যামেরা ব্যবহার করতে মঞ্জুর করে৷"
@@ -470,8 +475,8 @@
"অ্যাপ্লিকেশানকে SD কার্ডে লেখার অনুমতি দেয়৷"
"SIP কল করুন/গ্রহণ করুন"
"অ্যাপ্লিকেশানকে SIP কল করতে ও গ্রহণ করতে অনুমতি দেয়।"
- "নতুন টেলিকম SIM সংযোগগুলির নিবন্ধন"
- "অ্যাপ্লিকেশানটিকে নতুন টেলিকম SIM সংযোগগুলি নিবন্ধিত করতে অনুমোদিত করে৷"
+ "নতুন টেলিকম সিম সংযোগগুলির নিবন্ধন"
+ "অ্যাপ্লিকেশানটিকে নতুন টেলিকম সিম সংযোগগুলি নিবন্ধিত করতে অনুমোদিত করে৷"
"নতুন টেলিকম সংযোগগুলির নিবন্ধন"
"নতুন টেলিকম সংযোগ নিবন্ধিত করতে অ্যাপ্লিকেশানটিকে অনুমোদিত করে৷"
"টেলিকম সংযোগগুলি পরিচালনা করুন"
@@ -605,7 +610,7 @@
"রেডিও"
"টেলেক্স"
"TTY TDD"
- "কার্যক্ষেত্রের মোবাইল"
+ "অফিসের মোবাইল"
"কার্যক্ষেত্রের পেজার"
"সহায়ক"
"MMS"
@@ -683,7 +688,7 @@
"মুখের সাহায্যে আনলক করার প্রচেষ্টা যতবার করা যায় তার সীমা পেরিয়ে গেছে"
"কোনো সিম কার্ড নেই"
"ট্যাবলেটের মধ্যে কোনো সিম কার্ড নেই৷"
- "টিভির মধ্যে কোনো SIM কার্ড নেই৷"
+ "টিভির মধ্যে কোনো সিম কার্ড নেই৷"
"ফোনের মধ্যে কোনো সিম কার্ড নেই৷"
"একটি সিম কার্ড ঢোকান৷"
"সিম কার্ডটি অনুপস্থিত বা পাঠযোগ্য নয়৷ একটি সিম কার্ড ঢোকান৷"
@@ -1110,8 +1115,8 @@
"আপনার টিভি %1$s এ সংযুক্ত থাকার সময় ওয়াই-ফাই থেকে সাময়িকভাবে সংযোগ বিচ্ছিন্ন হবে৷"
"ফোনটি যখন %1$s এ সংযুক্ত হবে তখন এটি ওয়াই-ফাই থেকে সাময়িকভাবে সংযোগ বিচ্ছিন্ন হবে"
"অক্ষর ঢোকান"
- "SMS বার্তা পাঠানো হচ্ছে"
- "<b>%1$s </b> অনেকগুলি SMS বার্তা পাঠাচ্ছে৷ আপনি কি এই অ্যাপ্লিকেশানটিকে বার্তা পাঠানো চালিয়ে যাওয়ার অনুমতি দিতে চান?"
+ "এসএমএস পাঠানো হচ্ছে"
+ "<b>%1$s </b> অনেকগুলি এসএমএস পাঠাচ্ছে৷ আপনি কি এই অ্যাপ্লিকেশানটিকে বার্তা পাঠানো চালিয়ে যাওয়ার অনুমতি দিতে চান?"
"অনুমতি দিন"
"আস্বীকার করুন"
"<b>%1$s </b> <b>%2$s </b> এ একটি বার্তা পাঠাতে চায়৷"
@@ -1129,10 +1134,10 @@
"সিম কার্ড যোগ করা হয়েছে"
"সেলুলার নেটওয়ার্ক অ্যাক্সেস করতে আপনার ডিভাইস পুনর্সূচনা করুন"
"পুনর্সূচনা"
- "যাতে আপনার নতুন SIM সঠিকভাবে কাজ করে, তার জন্য আপনাকে আপনার পরিষেবা প্রদানকারীর থেকে একটি অ্যাপ্লিকেশান ইনস্টল করতে এবং খুলতে হবে৷"
+ "যাতে আপনার নতুন সিম সঠিকভাবে কাজ করে, তার জন্য আপনাকে আপনার পরিষেবা প্রদানকারীর থেকে একটি অ্যাপ্লিকেশান ইনস্টল করতে এবং খুলতে হবে৷"
"অ্যাপ্লিকেশানটি পান"
"এখনই নয়"
- "নতুন SIM ঢোকানো হয়েছে"
+ "নতুন সিম ঢোকানো হয়েছে"
"এটিকে সেট আপ করতে আলতো চাপুন"
"সময় সেট করুন"
"তারিখ সেট করুন"
@@ -1208,6 +1213,8 @@
"কোনো অ্যাপ্লিকেশানকে সেশনগুলি পড়ার অনুমতি দেয়। এটি সক্রিয় প্যাকেজ ইনস্টলেশনের বিশদ বিবরণ দেখতে দেয়।"
"প্যাকেজগুলি ইনস্টল করার অনুরোধ"
"একটি অ্যাপ্লিকেশানকে প্যাকেজগুলির ইনস্টল করার অনুরোধ জানাতে অনুমতি দেয়৷"
+ "ব্যাটারি অপ্টিমাইজেশন উপেক্ষা করার জন্য অনুমতি চাওয়া"
+ "কোনো অ্যাপের জন্য ব্যাটারি অপ্টিমাইজেশন উপেক্ষা করতে সেটিকে অনুমতির চাওয়ার মঞ্জুরি দেয়৷"
"জুম নিয়ন্ত্রণের জন্য দুবার আলতো চাপুন"
"উইজেট যোগ করা যায়নি৷"
"যান"
@@ -1234,7 +1241,7 @@
"ওয়ালপেপার"
"ওয়ালপেপার পরিবর্তন করুন"
"বিজ্ঞপ্তির শ্রোতা"
- "VR শ্রোতা"
+ "(ভিআর)VR শ্রোতা"
"শর্ত প্রদানকারী"
"বিজ্ঞপ্তি র্যাঙ্কার পরিষেবা"
"VPN সক্রিয়"
@@ -1432,7 +1439,7 @@
" — "
"সরান"
"প্রস্তাবিত স্তরের চেয়ে বেশি উঁচুতে ভলিউম বাড়াবেন?\n\nউঁচু ভলিউমে বেশি সময় ধরে কিছু শুনলে আপনার শ্রবনশক্তির ক্ষতি হতে পারে।"
- "অ্যাক্সেসযোগ্যতা সক্রিয় করতে দুইটি আঙ্গুলকে চেপে নীচে ধরে রাখুন৷"
+ "অ্যাক্সেসযোগ্যতা সক্রিয় করতে দুইটি আঙ্গুলকে চেপে নিচে ধরে রাখুন৷"
"অ্যাক্সেসযোগ্যতা সক্ষম করা হয়েছে৷"
"অ্যাক্সেসযোগ্যতা বাতিল করা হয়েছে৷"
"বর্তমান ব্যবহারকারী %1$s ৷"
@@ -1558,7 +1565,7 @@
"বছর নির্বাচন করুন"
"%1$s মুছে ফেলা হয়েছে"
"কর্মক্ষেত্র %1$s "
- "এই স্ক্রীনটিকে আনপিন করতে, \'ফিরুন\' স্পর্শ করুন এবং ধরে রাখুন৷"
+ "এই স্ক্রীনটিকে আনপিন করতে, \'ফিরুন এবং ওভারভিউ\' স্পর্শ করে ধরে রাখুন৷"
"অ্যাপ্লিকেশান পিন করা আছে: এই ডিভাইস এটিকে পিনমুক্ত করা মঞ্জুরিপ্রাপ্ত নয়৷"
"স্ক্রীন পিন করা হয়েছে"
"পিন না করা স্ক্রীন"
diff --git a/core/res/res/values-bs-rBA/strings.xml b/core/res/res/values-bs-rBA/strings.xml
index e8a3c028eeaa..b809f3cfcabb 100644
--- a/core/res/res/values-bs-rBA/strings.xml
+++ b/core/res/res/values-bs-rBA/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Problem sa povezivanjem ili nevažeći MMI kôd."
"Operacija je ograničena samo na brojeve fiksnog biranja."
+ "Nije moguće promijeniti postavke za preusmjeravanje poziva s vašeg telefona dok ste u romingu."
"Usluga je omogućena."
"Usluga je omogućena za:"
"Usluga je onemogućena."
@@ -97,6 +98,8 @@
"Blokirane su govorne usluge i usluge prijenosa podataka."
"Blokirane su govorne/SMS usluge."
"Blokirane su sve govorne i SMS usluge te usluge prijenosa podataka."
+ "Nije moguće dosegnuti mrežu"
+ "Da poboljšate prijem, pokušajte promijeniti odabranu vrstu mreže u meniju Postavke > Mobilne mreže > Preferirana vrsta mreže."
"Ravnopravni uređaj zatražio TTY PUNI način rada"
"Ravnopravni uređaj zatražio TTY HCO način rada"
"Ravnopravni uređaj zatražio TTY VCO način rada"
@@ -181,6 +184,8 @@
"Poslovni profil je obrisan jer nedostaje aplikacija administratora."
"Aplikacija administratora za poslovni profil nedostaje ili je neispravna. Zbog toga su vaš poslovni profil i vezani podaci obrisani. Za pomoć se obratite administratoru."
"Profil za posao više nije dostupan na ovom uređaju."
+ "Mrežni saobraćaj se nadgleda"
+ "Dodirnite da saznate više"
"Uređaj će biti izbrisan"
"Aplikaciji administratora nedostaju komponente ili je neispravna, i ne može se koristiti. Vaš uređaj će sada biti izbrisan. Za pomoć se obratite administratoru."
"Ja"
@@ -551,35 +556,35 @@
- "Kuća"
- "Mobilni"
- - "Poslovni"
+ - "Posao"
- "Poslovni faks"
- "Kućni faks"
- "Pejdžer"
- "Ostalo"
- - "Dodatno"
+ - "Prilagođeno"
- "Kućni"
- - "Poslovni"
- - "Ostali"
- - "Dodatni"
+ - "Posao"
+ - "Ostalo"
+ - "Prilagođeno"
- "Kuća"
- "Posao"
- "Ostalo"
- - "Dodatno"
+ - "Prilagođeno"
- "Kućni"
- - "Poslovni"
- - "Ostali"
- - "Dodatni"
+ - "Posao"
+ - "Ostalo"
+ - "Prilagođeno"
- "Posao"
- "Ostalo"
- - "Dodatno"
+ - "Prilagođeno"
- "AIM"
@@ -600,15 +605,15 @@
"Pejdžer"
"Ostalo"
"Povratni poziv"
- "Auto"
- "Glavni broj kompanije"
+ "Automobil"
+ "Poslovni glavni"
"ISDN"
"Glavni"
"Drugi faks"
"Radio"
"Teleks"
"TTY TDD"
- "Posao mobilni"
+ "Poslovni mobilni"
"Poslovni pejdžer"
"Pomoćnik"
"MMS"
@@ -616,10 +621,10 @@
"Rođendan"
"Godišnjica"
"Ostalo"
- "Prilagođeni"
+ "Prilagođeno"
"Kućni"
- "Poslovni"
- "Ostali"
+ "Posao"
+ "Ostalo"
"Mobilni"
"Prilagođeno"
"Kućna adresa"
@@ -646,17 +651,17 @@
"Pomoćnik"
"Brat"
"Dijete"
- "Domaći partner"
+ "Nevjenčani partner"
"Otac"
"Prijatelj"
- "Menadžer"
+ "Šef"
"Majka"
"Roditelj"
"Partner"
"Uputio(la)"
- "Rođak"
+ "Rođak/ica"
"Sestra"
- "Bračni partner"
+ "Suprug/a"
"Prilagođeno"
"Kuća"
"Posao"
@@ -1084,7 +1089,7 @@
"Jačina zvuka za medijske sadržaje"
"Jačina zvuka za obavještenja"
"Zadana melodija zvona"
- "Zadano zvono (%1$s )"
+ "Zadana melodija zvona (%1$s )"
"Bez zvuka"
"Melodije zvona"
"Nepoznato zvono"
@@ -1235,6 +1240,8 @@
"Dozvoljava aplikaciji da čita sesije instalacija. Ovim se aplikaciji omogućava da vidi detalje o aktivnim instalacijama paketa."
"zahtijevanje paketa za instaliranje"
"Omogućava aplikaciji da zahtijeva instalaciju paket ā."
+ "traži zanemarivanje optimizacije baterije"
+ "Omogućava aplikaciji da traži dozvolu za zanemarivanje optimizacije baterije za tu aplikaciju."
"Dodirnite dvaput za kontrolu uvećanja"
"Dodavanje vidžeta nije uspjelo."
"Počni"
@@ -1587,7 +1594,7 @@
"Odaberite godinu"
"Broj %1$s je izbrisan"
"Poslovni %1$s "
- "Da biste otkačili ovaj ekran, dodirnite i držite dugme Nazad."
+ "Da biste otkačili ovaj ekran, dodirnite i držite dugme Nazad i Pregled."
"Aplikacija je prikačena. Na ovom uređaju nije dozvoljeno otkačivanje."
"Ekran je zakačen"
"Ekran je otkačen"
diff --git a/core/res/res/values-ca/strings.xml b/core/res/res/values-ca/strings.xml
index 137d924ac1fc..44bd36a9122d 100644
--- a/core/res/res/values-ca/strings.xml
+++ b/core/res/res/values-ca/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Problema de connexió o codi MMI no vàlid."
"L\'operació està restringida a números de marcatge fixos."
+ "No es pot canviar la configuració de desviació de trucades del telèfon quan estàs en itinerància."
"El servei s\'ha activat."
"S\'ha activat el servei per a:"
"El servei s\'ha desactivat."
@@ -67,8 +68,8 @@
"IMEI"
"MEID"
- "ID de l\'emissor (trucada entrant)"
- "ID de l\'emissor (trucada de sortida)"
+ "Identificador de trucada (trucada entrant)"
+ "Identificador de trucada (trucada de sortida)"
"Identificador de la línia connectada"
"Restricció de l\'identificador de la línia connectada"
"Desviació de trucades"
@@ -82,12 +83,12 @@
"Rebuig de trucades molestes no desitjades"
"Lliurament de número que truca"
"No molesteu"
- "El valor predeterminat de l\'identificador de l\'emissor és restringit. Següent trucada: restringit"
- "El valor predeterminat de l\'identificador de l\'emissor és restringit. Següent trucada: no restringit"
- "El valor predeterminat de l\'identificador de l\'emissor és no restringit. Següent trucada: restringit"
- "El valor predeterminat de l\'identificador de l\'emissor és no restringit. Següent trucada: no restringit"
+ "El valor predeterminat de l\'identificador de trucada és restringit. Trucada següent: restringit"
+ "El valor predeterminat de l\'identificador de trucada és restringit. Trucada següent: no restringit"
+ "El valor predeterminat de l\'identificador de trucada és no restringit. Trucada següent: restringit"
+ "El valor predeterminat de l\'identificador de trucada és no restringit. Trucada següent: no restringit"
"No s\'ha proveït el servei."
- "No pots canviar la configuració de l\'identificador de l\'emissor."
+ "No pots canviar la configuració de l\'identificador de trucada."
"El servei de dades està bloquejat."
"El servei d\'emergència està bloquejat."
"El servei de veu està bloquejat."
@@ -96,6 +97,8 @@
"Els serveis de veu/dades estan bloquejats."
"Els serveis de veu/SMS estan bloquejats."
"Tots els serveis de veu/dades/SMS estan bloquejats."
+ "No es pot accedir a la xarxa"
+ "Per millorar la recepció, prova de canviar-ne el tipus a Configuració > Xarxes mòbils > Tipus de xarxa preferit."
"L\'altre dispositiu ha sol·licitat el mode TTY COMPLET."
"L\'altre dispositiu ha sol·licitat el mode TTY HCO."
"L\'altre dispositiu ha sol·licitat el mode TTY VCO."
@@ -179,6 +182,8 @@
"S\'ha suprimit el perfil professional perquè no s\'ha detectat cap aplicació d\'administració."
"L\'aplicació d\'administració del perfil professional està malmesa o no es detecta. Com a conseqüència, el perfil professional i les dades relacionades s\'han suprimit. Contacta amb l\'administrador per obtenir ajuda."
"El perfil professional ja no està disponible en aquest dispositiu."
+ "El trànsit de xarxa s\'està supervisant"
+ "Toca per obtenir més informació"
"El contingut del dispositiu s\'esborrarà"
"L\'aplicació d\'administració està malmesa o hi falten components, i no es pot fer servir. El contingut del dispositiu s\'esborrarà. Contacta amb l\'administrador per obtenir ajuda."
"Mi"
@@ -503,7 +508,7 @@
"canviar el calibratge del dispositiu d\'entrada"
"Permet que l\'aplicació modifiqui els paràmetres de calibratge de la pantalla tàctil. No ha de ser mai necessari per a aplicacions normals."
"accedir als certificats de DRM"
- "Permet que una aplicació proporcioni i utilitzi certificats de gestió de drets digitals (DRM, Digital Rights Management). No ha de ser mai necessari per a aplicacions normals."
+ "Permet que una aplicació proporcioni i utilitzi certificats DRM. No ha de ser mai necessari per a aplicacions normals."
"rebre l\'estat de la transferència d\'Android Beam"
"Permet que aquesta aplicació rebi informació sobre les transferències d\'Android Beam actuals."
"suprimir els certificats DRM"
@@ -596,7 +601,7 @@
"Fax de casa"
"Cercapersones"
"Altres"
- "Torna la trucada"
+ "Devolució de trucada"
"Cotxe"
"Telèfon d\'empresa"
"XDSI"
@@ -1208,6 +1213,8 @@
"Permet que una aplicació llegeixi les sessions d\'instal·lació i això permet veure detalls sobre les instal·lacions de paquet actives."
"sol·licitar la instal·lació de paquets"
"Permet que una aplicació sol·liciti la instal·lació de paquets."
+ "Demanar permís per ignorar les optimitzacions de bateria"
+ "Permet que una aplicació demani permís per ignorar les optimitzacions de bateria per a l\'aplicació."
"Piqueu dos cops per controlar el zoom"
"No s\'ha pogut afegir el widget."
"Vés"
@@ -1234,7 +1241,7 @@
"Fons de pantalla"
"Canvia el fons de pantalla"
"Oient de notificacions"
- "Processador de realitat virtual"
+ "Processador de RV"
"Proveïdor de condicions"
"Servei de classificació de notificacions"
"VPN activada"
@@ -1246,7 +1253,7 @@
"La VPN sempre activada està desconnectada"
"Error de la VPN sempre activada"
"Toca per configurar"
- "Trieu un fitxer"
+ "Tria un fitxer"
"No s\'ha escollit cap fitxer"
"Restableix"
"Envia"
@@ -1558,7 +1565,7 @@
"Selecciona un any"
"%1$s suprimit"
"%1$s de la feina"
- "Toca i mantén premuda l\'opció Enrere per deixar de fixar aquesta pantalla."
+ "Toca i mantén premudes les opcions Enrere i Visió general per deixar de fixar aquesta pantalla."
"S\'ha fixat l\'aplicació. En aquest dispositiu no es permet anul·lar-ne la fixació."
"Pantalla fixada"
"Fixació de la pantalla anul·lada"
diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml
index 8037681ea37a..218221e073cc 100644
--- a/core/res/res/values-cs/strings.xml
+++ b/core/res/res/values-cs/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Problém s připojením nebo neplatný kód MMI."
"Operace je omezena pouze na povolená telefonní čísla."
+ "Když je aktivní roaming, nastavení přesměrování hovorů z telefonu nelze změnit."
"Služba byla zapnuta."
"Služba byla zapnuta pro:"
"Služba byla vypnuta."
@@ -98,6 +99,8 @@
"Hlasové a datové služby jsou zablokovány."
"Hlasové služby a služby SMS jsou zablokovány."
"Veškeré hlasové a datové služby a služby SMS jsou zablokovány."
+ "K síti se nelze připojit"
+ "Chcete-li zlepšit příjem, zkuste v Nastavení > Mobilní sítě > Preferovaný typ sítě změnit vybraný typ."
"Partner požádal o přechod na režim TTY FULL"
"Partner požádal o přechod na režim TTY HCO"
"Partner požádal o přechod na režim TTY VCO"
@@ -183,6 +186,8 @@
"Pracovní profil byl smazán, protože není k dispozici aplikace pro správu."
"Aplikace pro správu pracovního profilu chybí nebo je poškozena. Váš pracovní profil a související data proto byla smazána. Kontaktujte svého administrátora a požádejte jej o pomoc."
"Váš pracovní profil v tomto zařízení již není k dispozici."
+ "Síťový provoz je monitorován"
+ "Klepnutím zobrazíte další informace"
"Zařízení bude vymazáno"
"V aplikaci pro správu chybí některé součásti nebo je poškozená, a proto ji nelze použít. Zařízení nyní bude vymazáno. Kontaktujte svého administrátora a požádejte jej o pomoc."
"Já"
@@ -256,9 +261,9 @@
"Kalendář"
"přístup ke kalendáři"
"SMS"
- "odesílání a zobrazení zpráv SMS"
+ "odesílání a zobrazování zpráv SMS"
"Úložiště"
- "přístup k fotkám, médiím a souborům na zařízení"
+ "přístup k fotkám, médiím a souborům v zařízení"
"Mikrofon"
"nahrávání zvuku"
"Fotoaparát"
@@ -299,7 +304,7 @@
"Umožňuje aplikaci číst zprávy informačních služeb přijaté ve vašem zařízení. Výstražná upozornění informačních služeb jsou v některých oblastech odesílána za účelem varování před výjimečnými událostmi. Škodlivé aplikace mohou narušit výkon či provoz vašeho zařízení během přijímání zpráv informačních služeb."
"čtení zdrojů přihlášených k odběru"
"Umožňuje aplikaci získat podrobnosti o aktuálně synchronizovaných zdrojích."
- "odesílání a zobrazení zpráv SMS"
+ "odesílání a zobrazování zpráv SMS"
"Umožňuje aplikaci odesílat zprávy SMS. Může to mít za následek účtování neočekávaných poplatků. Škodlivé aplikace vás mohou připravit o peníze odesíláním zpráv bez vašeho svolení."
"čtení textových zpráv (SMS nebo MMS)"
"Umožňuje aplikaci číst zprávy SMS uložené v tabletu nebo na SIM kartě.Toto oprávnění umožňuje aplikaci číst zprávy SMS bez ohledu na jejich obsah nebo důvěrnost."
@@ -1258,6 +1263,8 @@
"Povoluje aplikaci číst instalační relace. Díky tomu můžete zobrazit podrobnosti o aktivních instalacích balíčku."
"odesílání žádostí o přístup k instalačním balíčkům"
"Umožňuje aplikaci požádat o instalaci balíčků."
+ "požádat o ignorování optimalizace využití baterie"
+ "Povoluje aplikaci požádat o oprávnění ignorovat optimalizaci využití baterie, která pro ni je nastavena."
"Poklepáním můžete ovládat přiblížení"
"Widget nelze přidat."
"Přejít"
@@ -1284,7 +1291,7 @@
"Tapeta"
"Změnit tapetu"
"Aplikace poslouchající oznámení"
- "Přijímač virtuální reality"
+ "VR přijímač"
"Poskytovatel podmínky"
"Služba na hodnocení důležitosti oznámení"
"Síť VPN je aktivována"
@@ -1612,7 +1619,7 @@
"Vyberte rok"
"Číslice %1$s byla smazána"
"Pracovní %1$s "
- "Chcete-li tuto obrazovku uvolnit, klepněte na tlačítko Zpět a podržte jej."
+ "Chcete-li tuto obrazovku uvolnit, klepněte na tlačítko Zpět a poté na tlačítko Přehled a podržte jej."
"Aplikace je připnutá: Odepnutí v tomto zařízení není povoleno."
"Obrazovka připnuta"
"Obrazovka uvolněna"
diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml
index eb4d2555f9f4..12679774e1e3 100644
--- a/core/res/res/values-da/strings.xml
+++ b/core/res/res/values-da/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Forbindelsesproblemer eller ugyldigt MMI-nummer."
"Du kan kun foretage handlinger med dine numre til begrænset opkald."
+ "Det er ikke muligt at ændre indstillingerne for viderestilling af opkald fra din telefon, mens du bruger roaming."
"Tjenesten blev aktiveret."
"Tjenesten blev aktiveret for:"
"Tjenesten er deaktiveret."
@@ -96,6 +97,8 @@
"Stemme-/datatjenester er blokeret."
"Stemme-/sms-tjenester er blokerede."
"Alle stemme-/data-/sms-tjenester er blokeret."
+ "Der er ingen forbindelse til netværket"
+ "For at forbedre signalet kan du prøve at ændre den valgte netværkstype i Indstillinger > Mobilnetværk > Foretrukken netværkstype."
"Den anden enhed har skiftet til FULD TTY-tilstand"
"Den anden enhed har skiftet til TTY-tilstanden HCO"
"Den anden enhed har skiftet til TTY-tilstanden VCO"
@@ -179,6 +182,8 @@
"Arbejdsprofilen blev slettet, fordi der mangler en administrationsapp."
"Administrationsappen til arbejdsprofilen mangler eller er beskadiget. Derfor er din arbejdsprofil og dine relaterede data blevet slettet. Kontakt din administrator for at få hjælp."
"Din arbejdsprofil er ikke længere tilgængelig på denne enhed."
+ "Netværkstrafikken overvåges"
+ "Tryk for at få flere oplysninger"
"Enheden slettes"
"Administrationsappen mangler komponenter eller er beskadiget og kan ikke bruges. Enheden vil nu blive slettet. Kontakt din administrator for at få hjælp."
"Mig"
@@ -219,12 +224,12 @@
"Lav fejlrapport"
"Der indsamles oplysninger om din enheds aktuelle status, der efterfølgende sendes i en e-mail. Der går lidt tid, fra fejlrapporten påbegyndes, til den er klar til at blive sendt. Tak for tålmodigheden."
"Interaktiv rapport"
- "Brug dette workflow under de fleste omstændigheder. Det giver dig mulighed for at se status på rapporten, angive flere oplysninger om problemet og tage skærmbilleder. Nogle mindre brugte sektioner, der tager lang tid at rapportere, udelades muligvis."
+ "Brug dette workflow under de fleste omstændigheder. Det giver dig mulighed for at se status på rapporten, angive flere oplysninger om problemet og tage screenshots. Nogle mindre brugte sektioner, der tager lang tid at rapportere, udelades muligvis."
"Fuld rapport"
- "Brug denne mulighed for at gribe mindst muligt ind, når enheden ikke reagerer eller er for langsom, eller når du har brug for alle rapportsektioner. Du har ikke mulighed for at angive flere oplysninger eller tage yderligere skærmbilleder."
+ "Brug denne mulighed for at gribe mindst muligt ind, når enheden ikke reagerer eller er for langsom, eller når du har brug for alle rapportsektioner. Du har ikke mulighed for at angive flere oplysninger eller tage yderligere screenshots."
- - Der tages et skærmbillede til fejlrapporten om
%d sekund.
- - Der tages et skærmbillede til fejlrapporten om
%d sekunder.
+ - Der tages et screenshot til fejlrapporten om
%d sekund.
+ - Der tages et screenshot til fejlrapporten om
%d sekunder.
"Lydløs"
"Lyden er slået FRA"
@@ -1208,6 +1213,8 @@
"Tillader, at en applikation læser installationssessioner. Dermed kan applikationen se oplysninger om aktive pakkeinstallationer."
"anmod om installation af pakker"
"Tillader, at en app anmoder om installation af pakker."
+ "bede om at ignorere batterioptimeringer"
+ "Gør det muligt for en app at bede om tilladelse til at ignorere batterioptimeringer for den pågældende app."
"Tryk to gange for zoomkontrol"
"Widget kunne ikke tilføjes."
"Gå"
@@ -1397,7 +1404,7 @@
"Forkert pinkode"
"Prøv igen om %1$d sekunder."
"Tegn dit mønster"
- "Indtast pinkode til SIM"
+ "Indtast pinkode til SIM-kort"
"Indtast pinkode"
"Angiv adgangskode"
"SIM-kortet er nu deaktiveret. Indtast PUK-koden for at fortsætte. Kontakt mobiloperatøren for at få flere oplysninger."
@@ -1558,7 +1565,7 @@
"Vælg år"
"%1$s er slettet"
"%1$s – arbejde"
- "Hvis du vil frigøre dette skærmbillede, skal du trykke på Tilbage og holde fingeren nede."
+ "Hvis du vil frigøre dette skærmbillede, skal du trykke på Tilbage og Oversigt samt holde fingeren nede."
"Appen er fastgjort: Det er ikke tilladt at frigøre den på denne enhed."
"Skærmen blev fastgjort"
"Skærmen blev frigjort"
@@ -1606,7 +1613,7 @@
"Indtil %1$s "
"Indtil %1$s (næste alarm)"
- "Indtil du slår denne indstilling fra"
+ "Indtil du slår dette fra"
"Indtil du slår \"Forstyr ikke\" fra"
"%1$s /%2$s "
"Skjul"
diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings.xml
index a6fad85e2df9..c9c74542b172 100644
--- a/core/res/res/values-de/strings.xml
+++ b/core/res/res/values-de/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Verbindungsproblem oder ungültiger MMI-Code."
"Der Vorgang ist nur für deine zugelassenen Rufnummern möglich."
+ "Die Einstellungen für die Anrufweiterleitung von deinem Smartphone können während des Roamings nicht geändert werden."
"Dienst wurde aktiviert."
"Dienst wurde aktiviert für:"
"Dienst wurde deaktiviert."
@@ -96,6 +97,8 @@
"Sprach-/Datendienste sind gesperrt."
"Sprach-/SMS-Dienste sind gesperrt."
"Alle Sprach-/Daten-/SMS-Dienste sind gesperrt."
+ "Netzwerk nicht erreichbar"
+ "Der Empfang lässt sich möglicherweise verbessern, indem du unter \"Einstellungen\" > \"Mobilfunknetze\" > \"Bevorzugter Netzwerktyp\" einen anderen Typ auswählst."
"Peer hat TTY-Modus \"Vollständig\" angefordert."
"Peer hat TTY-Modus \"HCO\" angefordert."
"Peer hat TTY-Modus \"VC\" angefordert."
@@ -179,6 +182,8 @@
"Arbeitsprofil aufgrund fehlender Admin-App gelöscht"
"Die Admin-App für das Arbeitsprofil fehlt oder ist beschädigt. Daher wurden dein Arbeitsprofil und alle zugehörigen Daten gelöscht. Wende dich für weitere Hilfe an deinen Administrator."
"Dein Arbeitsprofil ist auf diesem Gerät nicht mehr verfügbar."
+ "Der Netzwerkverkehr wird protokolliert"
+ "Für weitere Informationen tippen"
"Die Daten auf deinem Gerät werden gelöscht."
"Die Admin-App kann nicht verwendet werden, da sie beschädigt wurde oder Komponenten fehlen. Die Daten auf deinem Gerät werden nun gelöscht. Wende dich für weitere Hilfe an deinen Administrator."
"Eigene"
@@ -1208,6 +1213,8 @@
"Ermöglicht der App, Installationssitzungen zu lesen. Dadurch kann sie Details aktiver Paketinstallationen abrufen."
"Installation von Paketen anfordern"
"Ermöglicht der App, die Installation von Paketen anzufordern"
+ "fragen, ob Akku-Leistungsoptimierungen ignoriert werden können"
+ "Erlaubt einer App, nach der Berechtigung zum Ignorieren der Akku-Leistungsoptimierungen zu fragen."
"Für Zoomeinstellung zweimal berühren"
"Widget konnte nicht hinzugefügt werden."
"Los"
@@ -1226,7 +1233,7 @@
"Ablehnen"
"Berechtigung angefordert"
"Berechtigung angefordert\nfür Konto %s "
- "Sie verwenden diese App außerhalb Ihres Arbeitsprofils"
+ "Du verwendest diese App außerhalb deines Arbeitsprofils"
"Du verwendest diese App in deinem Arbeitsprofil."
"Eingabemethode"
"Synchronisieren"
@@ -1558,7 +1565,7 @@
"Jahr auswählen"
"%1$s gelöscht"
"%1$s (geschäftlich)"
- "Um die Fixierung dieses Bildschirms aufzuheben, \"Zurück\" berühren und halten."
+ "Um die Fixierung dieses Bildschirms aufzuheben, berühre und halte gleichzeitig \"Zurück\" und \"Übersicht\"."
"Die App ist fixiert. Das Aufheben der Fixierung ist auf diesem Gerät nicht zulässig."
"Bildschirm fixiert"
"Bildschirm gelöst"
diff --git a/core/res/res/values-el/strings.xml b/core/res/res/values-el/strings.xml
index 9e41023575f9..0739f24651e1 100644
--- a/core/res/res/values-el/strings.xml
+++ b/core/res/res/values-el/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Πρόβλημα σύνδεσης ή μη έγκυρος κώδικας MMI."
"Η λειτουργία περιορίζεται μόνο σε προκαθορισμένους αριθμούς κλήσης."
+ "Δεν είναι δυνατή η αλλαγή των ρυθμίσεων προώθησης κλήσεων από το τηλέφωνό σας κατά τη διάρκεια της περιαγωγής."
"Η υπηρεσία ενεργοποιήθηκε."
"Η υπηρεσία ενεργοποιήθηκε για:"
"Η υπηρεσία έχει απενεργοποιηθεί."
@@ -96,6 +97,8 @@
"Οι υπηρεσίες φωνής/δεδομένων έχουν αποκλειστεί."
"Όλες οι υπηρεσίες φωνής/SMS έχουν αποκλειστεί."
"Όλες οι υπηρεσίες φωνής/δεδομένων/SMS έχουν αποκλειστεί."
+ "Δεν είναι δυνατή η σύνδεση στο δίκτυο"
+ "Για να βελτιώσετε τη λήψη, δοκιμάστε να αλλάξετε τον επιλεγμένο τύπο από τις Ρυθμίσεις > Δίκτυα κινητής τηλεφωνίας > Προτιμώμενος τύπος δικτύου."
"Αίτημα peer για TTY ΠΛΗΡΗΣ Λειτουργία"
"Αίτημα peer για TTY Λειτουργία HCO"
"Αίτημα peer για TTY Λειτουργία VCO"
@@ -179,6 +182,8 @@
"Το προφίλ εργασίας διαγράφηκε επειδή λείπει η εφαρμογή διαχείρισης."
"Η εφαρμογή διαχείρισης προφίλ εργασίας είτε λείπει είτε είναι κατεστραμμένη. Ως αποτέλεσμα, το προφίλ εργασίας και σχετικά δεδομένα διαγράφηκαν. Επικοινωνήστε με το διαχειριστή για βοήθεια."
"Το προφίλ σας εργασίας δεν είναι πια διαθέσιμο σε αυτήν τη συσκευή."
+ "Η επισκεψιμότητα δικτύου παρακολουθείται"
+ "Πατήστε για να μάθετε περισσότερα"
"Η συσκευή σας θα διαγραφεί"
"Λείπουν στοιχεία από την εφαρμογή διαχείρισης ή είναι κατεστραμμένη, και δεν μπορεί να χρησιμοποιηθεί. Η συσκευή σας θα διαγραφεί. Επικοινωνήστε με το διαχειριστή για βοήθεια."
"Για εμένα"
@@ -1208,6 +1213,8 @@
"Επιτρέπει σε μια εφαρμογή την ανάγνωση των περιόδων σύνδεσης εγκατάστασης. Αυτό της επιτρέπει να βλέπει λεπτομέρειες σχετικά με τις εγκαταστάσεις του ενεργού πακέτου."
"ζητά πακέτα εγκατάστασης"
"Επιτρέπει σε μια εφαρμογή να ζητά εγκατάσταση πακέτων."
+ "αίτημα αγνόησης βελτιστοποιήσεων μπαταρίας"
+ "Επιτρέπει σε μια εφαρμογή να ζητήσει άδεια για την αγνόηση βελτιστοποιήσεων της μπαταρίας για τη συγκεκριμένη εφαρμογή."
"Πατήστε δύο φορές για έλεγχο εστίασης"
"Δεν ήταν δυνατή η προσθήκη του γραφικού στοιχείου."
"Μετάβαση"
@@ -1234,7 +1241,7 @@
"Ταπετσαρία"
"Αλλαγή ταπετσαρίας"
"Υπηρεσία ακρόασης ειδοποίησης"
- "Λειτουργία ακρόασης Εικονικής Πραγματικότητας"
+ "Λειτουργία ακρόασης VR"
"Πάροχος συνθηκών"
"Υπηρεσία κατάταξης ειδοποιήσεων"
"Το VPN ενεργοποιήθηκε"
@@ -1558,7 +1565,7 @@
"Επιλογή έτους"
"%1$s διαγράφηκε"
"Εργασία %1$s "
- "Για να ξεκαρφιτσώσετε αυτήν την οθόνη, αγγίξτε παρατεταμένα \"Επιστροφή\"."
+ "Για να ξεκαρφιτσώσετε αυτήν την οθόνη, αγγίξτε παρατεταμένα τις επιλογές \"Πίσω\" και \"Επισκόπηση\"."
"Η εφαρμογή καρφιτσώθηκε: Το ξεκαρφίτσωμα δεν επιτρέπεται σε αυτήν τη συσκευή."
"Η οθόνη καρφιτσώθηκε"
"Η οθόνη ξεκαρφιτσώθηκε"
diff --git a/core/res/res/values-en-rAU/strings.xml b/core/res/res/values-en-rAU/strings.xml
index c6e04d71c5db..d650f15c09b0 100644
--- a/core/res/res/values-en-rAU/strings.xml
+++ b/core/res/res/values-en-rAU/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Connection problem or invalid MMI code."
"Operation is restricted to fixed dialling numbers only."
+ "Cannot change call forwarding settings from your phone while you are roaming."
"Service was enabled."
"Service was enabled for:"
"Service has been disabled."
@@ -96,6 +97,8 @@
"Voice/Data services are blocked."
"Voice/SMS services are blocked."
"All voice/data/SMS services are blocked."
+ "Can’t find network"
+ "To improve signal, try changing the type selected at Settings > Mobile networks > Preferred network type."
"Peer requested TTY Mode FULL"
"Peer requested TTY Mode HCO"
"Peer requested TTY Mode VCO"
@@ -179,6 +182,8 @@
"Work profile deleted due to missing admin app."
"The work profile admin app is either missing or corrupted. As a result, your work profile and related data have been deleted. Contact your administrator for assistance."
"Your work profile is no longer available on this device."
+ "Network traffic is being monitored"
+ "Tap to find out more"
"Your device will be erased"
"The admin app is missing components or corrupted, and can\'t be used. Your device will now be erased. Contact your administrator for assistance."
"Me"
@@ -1208,6 +1213,8 @@
"Allows an application to read install sessions. This allows it to see details about active package installations."
"request install packages"
"Allows an application to request installation of packages."
+ "ask to ignore battery optimisations"
+ "Allows an app to ask for permission to ignore battery optimisations for that app."
"Tap twice for zoom control"
"Couldn\'t add widget."
"Go"
@@ -1558,7 +1565,7 @@
"Select year"
"%1$s deleted"
"Work %1$s "
- "To unpin this screen, touch & hold Back."
+ "To unpin this screen, touch & hold Back and Overview."
"App is pinned: unpinning isn\'t allowed on this device."
"Screen pinned"
"Screen unpinned"
diff --git a/core/res/res/values-en-rGB/strings.xml b/core/res/res/values-en-rGB/strings.xml
index c6e04d71c5db..d650f15c09b0 100644
--- a/core/res/res/values-en-rGB/strings.xml
+++ b/core/res/res/values-en-rGB/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Connection problem or invalid MMI code."
"Operation is restricted to fixed dialling numbers only."
+ "Cannot change call forwarding settings from your phone while you are roaming."
"Service was enabled."
"Service was enabled for:"
"Service has been disabled."
@@ -96,6 +97,8 @@
"Voice/Data services are blocked."
"Voice/SMS services are blocked."
"All voice/data/SMS services are blocked."
+ "Can’t find network"
+ "To improve signal, try changing the type selected at Settings > Mobile networks > Preferred network type."
"Peer requested TTY Mode FULL"
"Peer requested TTY Mode HCO"
"Peer requested TTY Mode VCO"
@@ -179,6 +182,8 @@
"Work profile deleted due to missing admin app."
"The work profile admin app is either missing or corrupted. As a result, your work profile and related data have been deleted. Contact your administrator for assistance."
"Your work profile is no longer available on this device."
+ "Network traffic is being monitored"
+ "Tap to find out more"
"Your device will be erased"
"The admin app is missing components or corrupted, and can\'t be used. Your device will now be erased. Contact your administrator for assistance."
"Me"
@@ -1208,6 +1213,8 @@
"Allows an application to read install sessions. This allows it to see details about active package installations."
"request install packages"
"Allows an application to request installation of packages."
+ "ask to ignore battery optimisations"
+ "Allows an app to ask for permission to ignore battery optimisations for that app."
"Tap twice for zoom control"
"Couldn\'t add widget."
"Go"
@@ -1558,7 +1565,7 @@
"Select year"
"%1$s deleted"
"Work %1$s "
- "To unpin this screen, touch & hold Back."
+ "To unpin this screen, touch & hold Back and Overview."
"App is pinned: unpinning isn\'t allowed on this device."
"Screen pinned"
"Screen unpinned"
diff --git a/core/res/res/values-en-rIN/strings.xml b/core/res/res/values-en-rIN/strings.xml
index c6e04d71c5db..d650f15c09b0 100644
--- a/core/res/res/values-en-rIN/strings.xml
+++ b/core/res/res/values-en-rIN/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Connection problem or invalid MMI code."
"Operation is restricted to fixed dialling numbers only."
+ "Cannot change call forwarding settings from your phone while you are roaming."
"Service was enabled."
"Service was enabled for:"
"Service has been disabled."
@@ -96,6 +97,8 @@
"Voice/Data services are blocked."
"Voice/SMS services are blocked."
"All voice/data/SMS services are blocked."
+ "Can’t find network"
+ "To improve signal, try changing the type selected at Settings > Mobile networks > Preferred network type."
"Peer requested TTY Mode FULL"
"Peer requested TTY Mode HCO"
"Peer requested TTY Mode VCO"
@@ -179,6 +182,8 @@
"Work profile deleted due to missing admin app."
"The work profile admin app is either missing or corrupted. As a result, your work profile and related data have been deleted. Contact your administrator for assistance."
"Your work profile is no longer available on this device."
+ "Network traffic is being monitored"
+ "Tap to find out more"
"Your device will be erased"
"The admin app is missing components or corrupted, and can\'t be used. Your device will now be erased. Contact your administrator for assistance."
"Me"
@@ -1208,6 +1213,8 @@
"Allows an application to read install sessions. This allows it to see details about active package installations."
"request install packages"
"Allows an application to request installation of packages."
+ "ask to ignore battery optimisations"
+ "Allows an app to ask for permission to ignore battery optimisations for that app."
"Tap twice for zoom control"
"Couldn\'t add widget."
"Go"
@@ -1558,7 +1565,7 @@
"Select year"
"%1$s deleted"
"Work %1$s "
- "To unpin this screen, touch & hold Back."
+ "To unpin this screen, touch & hold Back and Overview."
"App is pinned: unpinning isn\'t allowed on this device."
"Screen pinned"
"Screen unpinned"
diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml
index ea1c1a5bda83..2db6686a0b6f 100644
--- a/core/res/res/values-es-rUS/strings.xml
+++ b/core/res/res/values-es-rUS/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Problema de conexión o código incorrecto de MMI."
"La operación está limitada a números de marcación fija."
+ "No se puede cambiar la configuración de reenvío de llamadas de tu teléfono mientras usas el servicio de roaming."
"Se ha activado el servicio."
"Se activó el servicio para:"
"Se ha desactivado el servicio."
@@ -96,6 +97,8 @@
"Los servicios de voz o datos están bloqueados."
"Los servicios de voz/SMS están bloqueados."
"Todos los servicios de voz, datos o SMS están bloqueados."
+ "No se puede establecer conexión con la red"
+ "Para mejorar la recepción, intenta cambiar el tipo de red seleccionado en Configuración > Redes móviles > Tipo de red preferido."
"El dispositivo del mismo nivel solicitó el modo TTY FULL."
"El dispositivo del mismo nivel solicitó el modo TTY HCO."
"El dispositivo del mismo nivel solicitó el modo TTY VCO."
@@ -179,6 +182,8 @@
"Se eliminó el perfil de trabajo debido a la falta de una aplicación de administración."
"La aplicación de administración de perfil de trabajo no se encuentra o está dañada. Por lo tanto, se eliminaron tu perfil de trabajo y los datos relacionados. Para obtener asistencia, comunícate con el administrador."
"Tu perfil de trabajo ya no está disponible en este dispositivo."
+ "Se está controlando el tráfico de red"
+ "Presiona para obtener más información"
"Se borrarán los datos del dispositivo"
"La aplicación de administración no cuenta con algunos componentes o está dañada, de modo que no puede usarse. Se borrarán los datos del dispositivo. Para obtener asistencia, comunícate con el administrador."
"Yo"
@@ -792,12 +797,12 @@
"Circunscripción"
"Área"
"Emirato"
- "leer tus marcadores web y el historial"
- "Permite que la aplicación consulte el historial de todas las URL visitadas por el navegador, y todos sus marcadores. Nota: Este permiso no puede ser utilizado por navegadores externos ni otras aplicaciones que tengan funciones de navegación por Internet."
- "escribir marcadores web e historial"
- "Permite que la aplicación modifique el historial o los marcadores del navegador almacenados en la tablet. La aplicación puede utilizar este permiso para borrar o modificar datos del navegador. Nota: Este permiso no puede ser utilizado por navegadores externos ni otras aplicaciones que tengan funciones de navegación por Internet."
- "Permite que la aplicación modifique el historial o los marcadores del navegador almacenados en la TV. Esta opción puede permitir que la aplicación borre o modifique los datos del navegador. Ten en cuenta que este permiso no puede ser usado por navegadores de terceros ni otras aplicaciones con capacidades de navegación web."
- "Permite que la aplicación modifique el historial o los marcadores del navegador almacenados en el dispositivo. La aplicación puede utilizar este permiso para borrar o modificar los datos del navegador. Nota: Este permiso no puede ser utilizado por navegadores externos ni otras aplicaciones que tengan funciones de navegación por Internet."
+ "leer tus favoritos web y el historial"
+ "Permite que la aplicación consulte el historial de todas las URL visitadas por el navegador, y todos sus favoritos. Nota: Este permiso no puede ser utilizado por navegadores externos ni otras aplicaciones que tengan funciones de navegación por Internet."
+ "escribir favoritos web e historial"
+ "Permite que la aplicación modifique el historial o los favoritos del navegador almacenados en la tablet. La aplicación puede utilizar este permiso para borrar o modificar datos del navegador. Nota: Este permiso no puede ser utilizado por navegadores externos ni otras aplicaciones que tengan funciones de navegación por Internet."
+ "Permite que la aplicación modifique el historial o los favoritos del navegador almacenados en la TV. Esta opción puede permitir que la aplicación borre o modifique los datos del navegador. Ten en cuenta que este permiso no puede ser usado por navegadores de terceros ni otras aplicaciones con capacidades de navegación web."
+ "Permite que la aplicación modifique el historial o los favoritos del navegador almacenados en el dispositivo. La aplicación puede utilizar este permiso para borrar o modificar los datos del navegador. Nota: Este permiso no puede ser utilizado por navegadores externos ni otras aplicaciones que tengan funciones de navegación por Internet."
"programar una alarma"
"Permite que la aplicación establezca una alarma en una aplicación de alarma instalada. Es posible que algunas aplicaciones de alarma no incluyan esta función."
"agregar correo de voz"
@@ -818,7 +823,7 @@
"Buscar"
"Buscar…"
"Buscar"
- "Consulta de búsqueda"
+ "Búsqueda"
"Eliminar la consulta"
"Enviar consulta"
"Búsqueda por voz"
@@ -1208,6 +1213,8 @@
"Permite que una aplicación lea sesiones de instalación. Esto le permite ver detalles acerca de instalaciones de paquetes activas."
"solicitar la instalación de paquetes"
"Permite que una aplicación solicite la instalación de paquetes."
+ "solicitar permiso para ignorar las optimizaciones de la batería"
+ "Permite que una app solicite permiso para ignorar las optimizaciones de la batería."
"Presiona dos veces para obtener el control del zoom"
"No se pudo agregar el widget."
"Ir"
@@ -1558,7 +1565,7 @@
"Seleccionar año"
"%1$s borrado"
"%1$s de trabajo"
- "Para dejar de fijar esta pantalla, mantén presionado Atrás."
+ "Para dejar de fijar esta pantalla, mantén presionados Atrás y Recientes."
"La aplicación está fijada, no se puede anular la fijación en este dispositivo."
"Pantalla fija"
"Pantalla no fija"
diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml
index c6d6663c2d6a..c140e0cf8b5a 100644
--- a/core/res/res/values-es/strings.xml
+++ b/core/res/res/values-es/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Se ha producido un problema de conexión o el código MMI no es válido."
"La operación solo es válida para números de marcación fija."
+ "No se puede cambiar la configuración de desvío de llamada desde tu teléfono mientras estás en itinerancia."
"El servicio se ha habilitado."
"Se ha habilitado el servicio para:"
"El servicio se ha inhabilitado."
@@ -96,6 +97,8 @@
"Los servicios de voz y de datos están bloqueados."
"Todos los servicios de voz y de SMS están bloqueados."
"Todos los servicios de voz, de datos y de SMS están bloqueados."
+ "No se puede establecer conexión con la red"
+ "Para mejorar la recepción, intenta cambiar el tipo seleccionado en Ajustes > Redes móviles > Tipo de red preferida."
"Un dispositivo ha solicitado el modo TTY FULL"
"Un dispositivo ha solicitado el modo TTY HCO"
"Un dispositivo ha solicitado el modo TTY VCO"
@@ -179,6 +182,8 @@
"Perfil de trabajo eliminado porque falta la aplicación de administración."
"La aplicación de administración del perfil de trabajo falta o está dañada. Como consecuencia, se han eliminado tu perfil de trabajo y todos los datos asociados. Si necesitas ayuda, ponte en contacto con tu administrador."
"Tu perfil de trabajo ya no está disponible en este dispositivo."
+ "Se está controlando el tráfico de la red"
+ "Toca la notificación para obtener más información"
"Tu dispositivo se borrará"
"La aplicación de administración no se puede usar porque está dañada o le faltan componentes. Tu dispositivo se borrará. Si necesitas ayuda, ponte en contacto con tu administrador."
"Yo"
@@ -258,7 +263,7 @@
"Cámara"
"hacer fotos y grabar vídeos"
"Teléfono"
- "hacer y administrar llamadas de teléfono"
+ "hacer y administrar llamadas telefónicas"
"Sensores corporales"
"acceder a datos de sensores de tus constantes vitales"
"Recuperar el contenido de la ventana"
@@ -1208,6 +1213,8 @@
"Permite que una aplicación consulte sesiones de instalación para ver detalles sobre instalaciones de paquetes activos."
"solicitar instalación de paquetes"
"Permite a una aplicación solicitar la instalación de paquetes."
+ "solicitar permiso para ignorar las optimizaciones de la batería"
+ "Permite que una aplicación solicite permiso para ignorar las optimizaciones de la batería."
"Da dos toques para acceder al control de zoom."
"No se ha podido añadir el widget."
"Ir"
@@ -1558,7 +1565,7 @@
"Seleccionar año"
"%1$s eliminado"
"%1$s de trabajo"
- "Mantén pulsado el botón Atrás para dejar de fijar esta pantalla."
+ "Mantén pulsado el botón Atrás y el de aplicaciones recientes para dejar de fijar esta pantalla."
"La aplicación está fijada: no se puede deshacer la fijación en este dispositivo."
"Pantalla fijada"
"La pantalla ya no está fija"
diff --git a/core/res/res/values-et-rEE/strings.xml b/core/res/res/values-et-rEE/strings.xml
index 9263b59b65b9..91891b58bf02 100644
--- a/core/res/res/values-et-rEE/strings.xml
+++ b/core/res/res/values-et-rEE/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Ühendusprobleem või kehtetu MMI-kood."
"Toiming on ainult fikseeritud valimisnumbritele."
+ "Kõne suunamise seadeid ei saa rändluse ajal teie telefonis muuta."
"Teenus on lubatud."
"Teenus oli lubatud järgmisele:"
"Teenus on keelatud."
@@ -96,6 +97,8 @@
"Hääl-/andmeteenused on blokeeritud."
"Hääl-/SMS-teenused on blokeeritud."
"Kõik hääl-/andme-/SMS-teenused on blokeeritud."
+ "Võrguga ei saa ühendust"
+ "Vastuvõtu parandamiseks muutke menüüs Seaded > Mobiilsidevõrgud > Eelistatud võrgutüüp valitud tüüpi."
"Partner taotles TTY-režiimi TÄIELIK"
"Partner taotles TTY-režiimi HCO"
"Partner taotles TTY-režiimi VCO"
@@ -179,6 +182,8 @@
"Tööprofiil on kustutatud puuduva administraatori rakenduse tõttu."
"Tööprofiili administraatori rakendus puudub või on rikutud. Seetõttu on teie tööprofiil ja seotud andmed kustutatud. Abi saamiseks võtke ühendust administraatoriga."
"Teie tööprofiil pole selles seadmes enam saadaval."
+ "Võrguliiklust jälgitakse"
+ "Puudutage lisateabe saamiseks"
"Seade kustutatakse"
"Administraatori rakendusel on puuduvaid osi või on see rikutud ja seda ei saa kasutada. Seade kustutatakse. Abi saamiseks võtke ühendust administraatoriga."
"Mina"
@@ -252,7 +257,7 @@
"SMS"
"saata ja vaadata SMS-sõnumeid"
"Mäluruum"
- "juurde pääseda seadmesse salvestatud fotodele, meediasisule ja failidele"
+ "juurdepääs seadmesse salvestatud fotodele, meediasisule ja failidele"
"Mikrofon"
"heli salvestamine"
"Kaamera"
@@ -650,7 +655,7 @@
"Ema"
"Vanem"
"Partner"
- "Viitas:"
+ "Soovitaja"
"Sugulane"
"Õde"
"Abikaasa"
@@ -1208,6 +1213,8 @@
"Lubab rakendusel lugeda installiseansse. See võimaldab näha aktiivse paketi installimise üksikasju."
"installipakettide taotlemine"
"Võimaldab rakendusel pakettide installimist taotleda."
+ "küsida luba aku optimeerimise eiramiseks"
+ "Lubab rakendusel küsida luba rakenduse aku optimeerimise eiramiseks."
"Suumi kasutamiseks koputage kaks korda"
"Vidinat ei saanud lisada."
"Mine"
@@ -1558,7 +1565,7 @@
"Aasta valimine"
"%1$s on kustutatud"
"Töö %1$s "
- "Ekraani vabastamiseks puudutage pikalt nuppu Tagasi."
+ "Ekraani vabastamiseks puudutage pikalt nuppe Tagasi ja Ülevaade."
"Rakendus on kinnitatud: vabastamine pole selles seadmes lubatud."
"Ekraan on kinnitatud"
"Ekraan on vabastatud"
diff --git a/core/res/res/values-eu-rES/strings.xml b/core/res/res/values-eu-rES/strings.xml
index 97628fc76836..1ab61c6174cc 100644
--- a/core/res/res/values-eu-rES/strings.xml
+++ b/core/res/res/values-eu-rES/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Konexio-arazoren bat gertatu da edo MMI kodea baliogabea da."
"Eragiketa markatze finkoko zenbakietara murriztua dago."
+ "Ezin dira aldatu deiak desbideratzeko ezarpenak telefonoa ibiltaritzan dagoenean."
"Zerbitzua gaitu da."
"Zerbitzua honetarako gaitu da:"
"Zerbitzua desgaitu da."
@@ -96,6 +97,8 @@
"Ahots- eta datu-zerbitzuak blokeatuta daude."
"Ahots eta SMS zerbitzuak blokeatuta daude."
"Ahotsaren, datuen eta SMSen zerbitzuak blokeatuta daude."
+ "Ezin da konektatu sarera"
+ "Seinalea hobea izan dadin, aldatu hautatutako mota Ezarpenak > Sare mugikorrak > Sare mota hobetsia atalean."
"Beste gailuak TTY osagarria FULL moduan erabiltzea eskatu du"
"Beste gailuak TTY osagarria HCO moduan erabiltzea eskatu du"
"Beste gailuak TTY osagarria VCO moduan erabiltzea eskatu du"
@@ -179,6 +182,8 @@
"Laneko profila ezabatu egin da hura administratzeko aplikazioa falta delako."
"Laneko profila administratzeko aplikazioa falta da edo hondatuta dago. Ondorioz, laneko profila eta horrekin erlazionatutako datuak ezabatu egin dira. Laguntza lortzeko, jarri administratzailearekin harremanetan."
"Work profila ez dago erabilgarri gailu honetan."
+ "Sareko trafikoa gainbegiratzen da"
+ "Sakatu informazio gehiago lortzeko"
"Gailuko datuak ezabatu egingo dira"
"Administrazio-aplikazioaren osagai batzuk falta dira edo aplikazioa hondatuta dago eta ezin da erabili. Gailuko datuak ezabatu egingo dira. Laguntza lortzeko, jarri administratzailearekin harremanetan."
"Ni"
@@ -1075,7 +1080,7 @@
"Hasi saioa sarean"
- "Wi-Fi eginbidea ezin da Internetera konektatu"
+ "Ezin da konektatu Internetera Wi-Fi bidez"
"Sakatu aukerak ikusteko"
"%1$s erabiltzen ari zara orain"
"%2$s Internetera konektatzeko gauza ez denean, %1$s erabiltzen du gailuak. Agian kostuak ordaindu beharko dituzu."
@@ -1208,6 +1213,8 @@
"Instalazio-saioak irakurtzea baimentzen die aplikazioei. Horrela, pakete-instalazio aktiboei buruzko xehetasunak ikus ditzakete."
"Eskatu instalazio-paketeak"
"Paketeak instalatzeko eskatzea baimentzen die aplikazioei."
+ "Eskatu bateriaren optimizazioei ez ikusi egitea"
+ "Bateriaren optimizazioei ez ikusi egiteko baimena eskatzea baimentzen die aplikazioei."
"Sakatu birritan zooma kontrolatzeko"
"Ezin izan da widgeta gehitu."
"Joan"
@@ -1234,7 +1241,7 @@
"Horma-papera"
"Aldatu horma-papera"
"Jakinarazpenak hautemateko zerbitzua"
- "Errealitate birtualeko hautemailea"
+ "EB hautemailea"
"Baldintza-hornitzailea"
"Jakinarazpenen sailkapen-zerbitzua"
"VPN eginbidea aktibatuta"
@@ -1558,7 +1565,7 @@
"Hautatu urtea"
"%1$s ezabatu da"
"Laneko %1$s "
- "Pantailari aingura kentzeko, eduki sakatuta Atzera botoia."
+ "Pantailari aingura kentzeko, eduki sakatuta Atzera eta Ikuspegi orokorra botoiak."
"Aplikazioa ainguratuta dago. Gailu honetan ezin da aingura kendu."
"Pantaila ainguratu da"
"Aingura kendu zaio pantailari"
diff --git a/core/res/res/values-fa/strings.xml b/core/res/res/values-fa/strings.xml
index 128a66f394da..1c9289b37599 100644
--- a/core/res/res/values-fa/strings.xml
+++ b/core/res/res/values-fa/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"مشکل در اتصال یا کد MMI نامعتبر."
"عملکرد فقط به شمارههای شمارهگیری ثابت محدود است."
+ "وقتی درحال رومینگ هستید، نمیتوانید تنظیمات هدایت تماس را از تلفنتان تغییر دهید."
"سرویس فعال شد."
"سرویس فعال شد برای:"
"سرویس غیرفعال شده است."
@@ -96,6 +97,8 @@
"سرویسهای صدا/داده مسدود شدند."
"سرویسهای صوتی/پیامک مسدود شدهاند"
"تمام سرویسهای صدا/داده/ پیامک مسدود هستند."
+ "شبکه دردسترس نیست"
+ "برای بهبود دریافت، نوع شبکهای را که انتخاب کردهاید در «تنظیمات > شبکههای تلفن همراه & gt؛ نوع شبکه ترجیحی» تغییر دهید."
"دستگاه مرتبط درخواست TTY حالت FULL کرد"
"دستگاه مرتبط درخواست TTY حالت HCO کرد"
"دستگاه مرتبط درخواست TTY حالت VCO کرد"
@@ -179,6 +182,8 @@
"به دلیل نداشتن برنامه سرپرست، نمایه کار حذف شده است."
"برنامه سرپرست نمایه کار وجود ندارد یا خراب است. در نتیجه، نمایه کاریتان و اطلاعات مرتبط حذف شده است. برای دریافت راهنمایی با سرپرستتان تماس بگیرید."
"نمایه کاری شما دیگر در این دستگاه در دسترس نیست."
+ "ترافیک شبکه، تحت نظارت است"
+ "برای اطلاعات بیشتر ضربه بزنید"
"دستگاهتان پاک خواهد شد"
"برنامه سرپرست بخشهایی را ندارد یا خراب است، و نمیتواند استفاده شود. دستگاهتان اکنون پاک میشود. برای این که راهنمایی شوید، با سرپرستتان تماس بگیرید."
"من"
@@ -1208,6 +1213,8 @@
"به برنامه اجازه میدهد جلسات نصب را بخواند. این کار به برنامه اجازه میدهد جزئیات نصبهای بسته فعال را ببیند."
"درخواست نصب بسته"
"به برنامه اجازه میدهد درخواست نصب بستهبندی کند."
+ "درخواست نادیدهگرفتن بهینهسازی باتری"
+ "به یک برنامه اجازه میدهد جهت نادیده گرفتن بهینهسازی باتری برای خود مجوز درخواست کند."
"برای کنترل بزرگنمایی، دو بار ضربه بزنید"
"افزودن ابزارک انجام نشد."
"برو"
@@ -1558,7 +1565,7 @@
"انتخاب سال"
"%1$s حذف شد"
"%1$s محل کار"
- "برای برداشتن پین این صفحه، «برگشت» را لمس کنید و نگه دارید."
+ "برای برداشتن پین این صفحه، «برگشت» و «نمای کلی» را لمس کنید و نگهدارید."
"برنامه پین شده است: برداشتن پین در این دستگاه مجاز نیست."
"صفحه پین شد"
"پین صفحه برداشته شد"
diff --git a/core/res/res/values-fi/strings.xml b/core/res/res/values-fi/strings.xml
index c4c223bd7085..dce680d01b91 100644
--- a/core/res/res/values-fi/strings.xml
+++ b/core/res/res/values-fi/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Yhteysongelma tai virheellinen MMI-koodi."
"Voit suorittaa toiminnon vain sallitut puhelut -numeroihin."
+ "Soitonsiirtoasetuksia ei voi muuttaa puhelimella roaming-tilassa."
"Palvelu otettiin käyttöön."
"Palvelu käytössä luokalle:"
"Palvelu on poistettu käytöstä."
@@ -96,6 +97,8 @@
"Ääni/tiedonsiirtopalvelut on estetty."
"Ääni/tekstiviestipalvelut on estetty."
"Kaikki ääni-/tiedonsiirto-/tekstiviestipalvelut on estetty."
+ "Ei yhteyttä verkkoon"
+ "Voit yrittää parantaa kuuluvuutta vaihtamalla tyypin asetusta. Valitse Asetukset > Matkapuhelinverkot > Ensisijainen verkko."
"Toinen käyttäjä vaihtoi TTY-tilaksi TÄYSI"
"Toinen käyttäjä vaihtoi TTY-tilaksi HCO"
"Toinen käyttäjä vaihtoi TTY-tilaksi VCO"
@@ -179,6 +182,8 @@
"Työprofiili poistettiin, koska laitteelta puuttuu järjestelmänvalvojasovellus."
"Työprofiilin järjestelmänvalvojasovellus puuttuu tai se on vioittunut. Tästä syystä työprofiilisi ja siihen liittyvät tiedot on poistettu. Pyydä ohjeita järjestelmänvalvojaltasi."
"Työprofiilisi ei ole enää käytettävissä tällä laitteella."
+ "Verkkoliikennettä seurataan"
+ "Lue lisää napauttamalla."
"Laitteen tiedot poistetaan"
"Järjestelmänvalvojasovelluksesta puuttuu osia tai se on vioittunut, eikä sitä voi käyttää. Laitteen tiedot poistetaan. Pyydä ohjeita järjestelmänvalvojaltasi."
"Minä"
@@ -1208,6 +1213,8 @@
"Sallii sovelluksen lukea asennusistuntoja. Toiminto sallii sovelluksen lukea aktiivisten asennuspakettien tietoja."
"pyytää asennuspaketteja"
"Antaa sovelluksen pyytää pakettien asennusta."
+ "Lupa ohittaa akun optimoinnit"
+ "Sallii sovelluksen pyytää lupaa ohittaa tietyn sovelluksen akun optimoinnit."
"Hallitse zoomausta napauttamalla kahdesti"
"Widgetin lisääminen epäonnistui."
"Siirry"
@@ -1234,7 +1241,7 @@
"Taustakuva"
"Vaihda taustakuvaa"
"Ilmoituskuuntelija"
- "Virtuaalitodellisuuden kuuntelija"
+ "VR-kuuntelija"
"Ehtojen toimituspalvelu"
"Ilmoitusten sijoituspalvelu"
"VPN on aktivoitu"
@@ -1558,7 +1565,7 @@
"Valitse vuosi"
"%1$s poistettiin"
"%1$s (työ)"
- "Irrota näyttö koskettamalla Takaisin-painiketta pitkään."
+ "Irrota näyttö koskettamalla pitkään Takaisin- ja Viimeisimmät-painikkeita."
"Sovellus on kiinnitetty. Irrottaminen ei ole sallittua tällä laitteella."
"Näyttö kiinnitetty"
"Näyttö irrotettu"
@@ -1606,7 +1613,7 @@
"Kunnes kello on %1$s "
"%1$s asti (seuraava hälytys)"
- "Kunnes poistat tämän käytöstä"
+ "Kunnes otat tämän pois päältä"
"Kunnes poistat Varattu-tilan käytöstä."
"%1$s /%2$s "
"Kutista"
diff --git a/core/res/res/values-fr-rCA/strings.xml b/core/res/res/values-fr-rCA/strings.xml
index e52eeda9f7f3..5d63bae107b7 100644
--- a/core/res/res/values-fr-rCA/strings.xml
+++ b/core/res/res/values-fr-rCA/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Problème de connexion ou code IHM incorrect"
"Opération réservée aux numéros autorisés"
+ "Impossible de modifier les paramètres de transfert d\'appel sur votre téléphone lorsque vous êtes en itinérance."
"Le service a été activé."
"Ce service a été activé pour :"
"Ce service a été désactivé."
@@ -96,6 +97,8 @@
"Les services vocaux/de données sont bloqués."
"Les services voix/SMS sont bloqués."
"Tous les services vocaux/de données/SMS sont bloqués."
+ "Impossible de joindre le réseau"
+ "Pour améliorer la réception, essayez de changer le type de réseau sélectionné, sous Paramètres > Réseaux cellulaires > Type de réseau préféré."
"Mode TTY COMPLET demandé par un pair"
"Mode TTY HCO demandé par un pair"
"Mode TTY VCO demandé par un pair"
@@ -179,6 +182,8 @@
"Profil professionnel supprimé en raison de l\'application d\'administration manquante."
"Le profil professionnel de l\'application d\'administration est manquant ou corrompu. Votre profil professionnel et ses données connexes ont donc été supprimés. Communiquez avec votre administrateur pour obtenir de l\'assistance."
"Votre profil professionnel n\'est plus accessible sur cet appareil."
+ "Le trafic réseau est surveillé"
+ "Touchez ici pour en savoir plus"
"Le contenu de votre appareil sera effacé"
"Des éléments de l\'application d\'administration sont manquants ou celle-ci est corrompue, ce qui la rend inutilisable. Le contenu de votre appareil sera maintenant effacé. Communiquez avec votre administrateur pour obtenir de l\'assistance."
"Moi"
@@ -1060,7 +1065,7 @@
"Volume des notifications"
"Sonnerie par défaut"
"Sonnerie par défaut (%1$s )"
- "Aucune"
+ "Aucun"
"Sonneries"
"Sonnerie inconnue"
@@ -1208,6 +1213,8 @@
"Permet à une application d\'accéder aux sessions d\'installation. Cela lui permet de consulter les détails relatifs à l\'installation des paquets actifs."
"demander l\'installation de paquets"
"Permet à une application de demander l\'installation de paquets."
+ "demander d\'ignorer les optimisations de la pile"
+ "Permet à une application de demander la permission d\'ignorer les optimisations de la pile."
"Appuyer deux fois pour régler le zoom"
"Impossible d\'ajouter le widget."
"Aller"
@@ -1558,7 +1565,7 @@
"Sélectionnez une année"
"« %1$s » a été supprimé"
"%1$s (travail)"
- "Pour annuler l\'épinglage de cet écran, maintenez enfoncée la touche Retour."
+ "Pour annuler l\'épinglage de cet écran, maintenez enfoncées les touches Retour et Aperçu."
"L\'application est épinglée : l\'annulation de l\'épinglage n\'est pas autorisée sur cet appareil."
"Écran épinglé"
"Épinglage d\'écran annulé"
diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml
index 9da228e40d01..faa5686593da 100644
--- a/core/res/res/values-fr/strings.xml
+++ b/core/res/res/values-fr/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Problème de connexion ou code IHM non valide."
"Opération réservée aux numéros autorisés"
+ "Impossible de modifier les paramètres de transfert d\'appel depuis votre téléphone lorsque vous êtes en itinérance."
"Le service a été activé."
"Ce service a été activé pour :"
"Ce service a été désactivé."
@@ -96,6 +97,8 @@
"Les services vocaux/de données sont bloqués."
"Les services voix/SMS sont bloqués."
"Tous les services vocaux/de données/SMS sont bloqués."
+ "Impossible d\'accéder au réseau"
+ "Pour améliorer la réception, essayez de modifier le type sélectionné sous Paramètres > Réseaux mobiles > Type de réseau préféré."
"Mode TTY demandé par l\'interlocuteur : COMPLET"
"Mode TTY demandé par l\'interlocuteur : HCO"
"Mode TTY demandé par l\'interlocuteur : VCO"
@@ -179,6 +182,8 @@
"Le profil professionnel a été supprimé, car une application d\'administration est manquante."
"L\'application d\'administration du profil professionnel est manquante ou endommagée. Par conséquent, votre profil professionnel et toutes les données associées ont été supprimés. Pour obtenir de l\'aide, contactez l\'administrateur."
"Votre profil professionnel n\'est plus disponible sur cet appareil."
+ "Le trafic réseau est surveillé"
+ "Appuyez sur cette notification pour en savoir plus"
"Les données de votre appareil vont être effacées"
"Certains composants de l\'application d\'administration sont manquants ou endommagés, et l\'application est donc inutilisable. Les données de votre appareil vont maintenant être effacées. Pour obtenir de l\'aide, contactez l\'administrateur."
"Moi"
@@ -1208,6 +1213,8 @@
"Permet à une application d\'accéder aux sessions d\'installation. Cela lui permet de consulter les détails relatifs à l\'installation des packages actifs."
"demander l\'installation de packages"
"Permet à une application de demander l\'installation de packages."
+ "demander à ignorer les optimisations de batterie"
+ "Autorise une application à demander l\'autorisation d\'ignorer les optimisations de batterie pour cette application."
"Appuyer deux fois pour régler le zoom"
"Impossible d\'ajouter le widget."
"OK"
@@ -1558,7 +1565,7 @@
"Sélectionner une année"
"\"%1$s \" supprimé"
"%1$s (travail)"
- "Pour annuler l\'épinglage, appuyez de manière prolongée sur \"Retour\"."
+ "Pour annuler l\'épinglage de l\'écran, appuyez de manière prolongée sur les boutons Retour et Aperçu."
"L\'application est épinglée. L\'annulation de l\'épinglage n\'est pas autorisée sur cet appareil."
"Écran épinglé."
"Épinglage d\'écran annulé."
diff --git a/core/res/res/values-gl-rES/strings.xml b/core/res/res/values-gl-rES/strings.xml
index 72757a6aae6b..4ab2a9a9589f 100644
--- a/core/res/res/values-gl-rES/strings.xml
+++ b/core/res/res/values-gl-rES/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Problema de conexión ou código MMI non válido."
"A operación está restrinxida a números de marcación fixa."
+ "Non se pode cambiar a configuración do desvío de chamadas desde o teléfono mentres estás en itinerancia."
"Activouse o servizo."
"Activouse o servizo para:"
"Desactivouse o servizo."
@@ -96,6 +97,8 @@
"Os servizos de voz/datos están bloqueados."
"Os servizos de voz/SMS están bloqueados."
"Todos os servizos de voz/datos/SMS están bloqueados."
+ "Non se pode conectar coa rede"
+ "Para mellorar a recepción, proba a cambiar o tipo seleccionado en Configuración > Redes móbiles > Tipo de rede preferido."
"Outro dispositivo solicitou o modo TTY COMPLETO"
"Outro dispositivo solicitou o modo TTY HCO"
"Outro dispositivo solicitou o modo TTY VCO"
@@ -179,6 +182,8 @@
"Eliminouse o perfil de traballo porque falta a aplicación de administración."
"Falta a aplicación de administración no perfil de traballo ou ben está danada. Como resultado, eliminouse o teu perfil de traballo e os datos relacionados. Ponte en contacto co teu administrador para obter asistencia."
"O teu perfil de traballo xa non está dispoñible neste dispositivo."
+ "Estase controlando o tráfico da rede"
+ "Toca para obter máis información"
"Borrarase o teu dispositivo"
"Non se pode utilizar a aplicación de administración porque lle faltan compoñentes ou están danados. Agora borrarase o teu dispositivo. Ponte en contacto co teu administrador para obter asistencia."
"Eu"
@@ -551,7 +556,7 @@
- "Traballo"
- "Fax do traballo"
- "Fax particular"
- - "Busca"
+ - "Buscapersoas"
- "Outros"
- "Personalizado"
@@ -594,7 +599,7 @@
"Traballo"
"Fax do traballo"
"Fax particular"
- "Busca"
+ "Buscapersoas"
"Outro"
"Devolver chamada"
"Coche"
@@ -606,7 +611,7 @@
"Télex"
"TTY TDD"
"Móbil do traballo"
- "Busca do traballo"
+ "Buscapersoas do traballo"
"Asistente"
"MMS"
"Personalizados"
@@ -1208,6 +1213,8 @@
"Permite que unha aplicación consulte as sesións de instalación. Desta forma, pode ver os detalles acerca das instalacións de paquetes activas."
"solicitar instalación de paquetes"
"Permite a unha aplicación solicitar a instalación dos paquetes."
+ "pedir que se ignore a optimización da batería"
+ "Fai que unha aplicación poida solicitar permiso para ignorar as optimizacións da batería."
"Toca dúas veces para controlar o zoom"
"Non se puido engadir o widget."
"Ir"
@@ -1558,7 +1565,7 @@
"Seleccionar ano"
"%1$s eliminado"
"%1$s do traballo"
- "Para soltar a pantalla, mantén premido Volver."
+ "Para soltar a pantalla, mantén premido Atrás e Visión xeral."
"A aplicación está fixada: non se permite soltala neste dispositivo."
"Pantalla fixada"
"Pantalla desactivada"
diff --git a/core/res/res/values-gu-rIN/strings.xml b/core/res/res/values-gu-rIN/strings.xml
index a233361d5792..290e885c9ce7 100644
--- a/core/res/res/values-gu-rIN/strings.xml
+++ b/core/res/res/values-gu-rIN/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"કનેક્શન સમસ્યા અથવા અમાન્ય MMI કોડ."
"ઑપરેશન ફક્ત સ્થિર ડાયલિંગ નંબર્સ પર પ્રતિબંધિત છે."
+ "તમે રોમિંગમાં હોવ તે વખતે તમારા ફોન પરથી કૉલ ફોરવર્ડિગ સેટિંગ્સ બદલી શકતાં નથી."
"સેવા સક્ષમ હતી."
"સેવા આ માટે સક્ષમ હતી:"
"સેવા અક્ષમ કરવામાં આવી છે."
@@ -96,6 +97,8 @@
"વૉઇસ/ડેટા સેવાઓ અવરોધિત છે."
"તમામ વૉઇસ/SMS સેવાઓ અવરોધિત છે."
"તમામ વૉઇસ/ડેટા/SMS સેવાઓ અવરોધિત છે."
+ "નેટવર્ક પર પહોંચી શકાતું નથી"
+ "પ્રાપ્તિને બહેતર બનાવવા માટે, સેટિંગ્સ > સેલ્યુલર નેટવર્ક્સ > પસંદગીનો નેટવર્ક પ્રકાર પર પસંદ કરેલ પ્રકારને બદલી જુઓ."
"પીઅરે TTY મોડ પૂર્ણની વિનંતી કરી"
"પીઅરે TTY મોડ HCO ની વિનંતી કરી"
"પીઅરે TTY મોડ VCO ની વિનંતી કરી"
@@ -179,6 +182,8 @@
"ખૂટતી એડમિન એપ્લિકેશનને કારણે કાર્ય પ્રોફાઇલ કાઢી નાખી."
"કાર્ય પ્રોફાઇલ વ્યવસ્થાપક ઍપ્લિકેશન કાં તો ખૂટે છે અથવા દૂષિત છે. પરિણામે, તમારી કાર્ય પ્રોફાઇલ અને સંબંધિત ડેટા કાઢી નાખવામાં આવ્યો છે. સહાયતા માટે તમારા વ્યવસ્થાપકનો સંપર્ક કરો."
"આ ઉપકરણ પર તમારી કાર્ય પ્રોફાઇલ હવે ઉપલબ્ધ નથી."
+ "નેટવર્ક ટ્રાફિક મૉનિટર કરવામાં આવી રહ્યું છે"
+ "વધુ જાણવા માટે ટૅપ કરો"
"તમારું ઉપકરણ કાઢી નાખવામાં આવશે"
"એડમિન એપ્લિકેશનમાં ઘટકો ખૂટે છે અથવા દૂષિત છે અને વાપરી શકાશે નહીં. તમારું ઉપકરણ હવે કાઢી નાખવામાં આવશે. સહાયતા માટે તમારા વ્યવસ્થાપકનો સંપર્ક કરો."
"હું"
@@ -1208,6 +1213,8 @@
"એપ્લિકેશનને ઇન્સ્ટોલ સત્રોને વાંચવાની મંજૂરી આપે છે. આ તેને સક્રિય પૅકેજ ઇન્સ્ટોલેશન્સ વિશે વિગતો જોવાની મંજૂરી આપે છે."
"પૅકેજેસ ઇન્સ્ટૉલ કરવાની વિનંતી કરો"
"એપ્લિકેશનને પૅકેજેસના ઇન્સ્ટોલેશનની વિનંતી કરવાની મંજૂરી આપો."
+ "બૅટરી ઓપ્ટિમાઇઝેશન્સને અવગણવા માટે પૂછો"
+ "ઍપ્લિકેશનને તે ઍપ્લિકેશન માટે બૅટરી ઓપ્ટિમાઇઝેશન્સને અવગણવાની પરવાનગી આપવા માટે પૂછવાની મંજૂરી આપે છે."
"ઝૂમ નિયંત્રણ માટે બેવાર ટૅપ કરો"
"વિજેટ ઉમેરી શકાયું નથી."
"જાઓ"
@@ -1558,7 +1565,7 @@
"વર્ષ પસંદ કરો"
"%1$s કાઢી નાખી"
"કાર્યાલય %1$s "
- "આ સ્ક્રીનને અનપિન કરવા માટે, પાછળને ટચ કરીને પકડી રાખો."
+ "આ સ્ક્રીનને અનપિન કરવા માટે, પાછળ અને વિહંગાવલોકનને ટચ કરો અને પકડો."
"ઍપ્લિકેશન પિન કરેલ છે. આ ઉપકરણ પર અનપિન કરવાની મંજૂરી નથી."
"સ્ક્રીન પિન કરી"
"સ્ક્રીન અનપિન કરી"
diff --git a/core/res/res/values-hi/strings.xml b/core/res/res/values-hi/strings.xml
index ea45c1a17642..96be6b0edeff 100644
--- a/core/res/res/values-hi/strings.xml
+++ b/core/res/res/values-hi/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"कनेक्शन समस्या या अमान्य MMI कोड."
"कार्रवाई केवल फ़िक्स्ड डायलिंग नंबर के लिए प्रतिबंधित है."
+ "आपके रोमिंग में होने पर आपके फ़ोन से कॉल अग्रेषण की सेटिंग नहीं बदली जा सकतीं."
"सेवा अक्षम थी."
"सेवा इसके लिए सक्षम की गई थी:"
"सेवा अक्षम कर दी गई है."
@@ -96,6 +97,8 @@
"ध्वनि/डेटा सेवाएं अवरोधित हैं."
"ध्वनि/SMS सेवाएं अवरोधित हैं."
"सभी ध्वनि/डेटा/SMS सेवाएं अवरोधित हैं."
+ "नेटवर्क तक नहीं पहुंच पा रहे हैं"
+ "रिसेप्शन बेहतर करने के लिए, सेटिंग > सेल्युलर नेटवर्क > पसंदीदा नेटवर्क प्रकार में चयनित प्रकार को बदलकर देखें."
"पीयर ने TTY मोड पूर्ण का अनुरोध किया"
"पीयर ने TTY मोड HCO का अनुरोध किया"
"पीयर ने TTY मोड VCO का अनुरोध किया"
@@ -153,10 +156,10 @@
"सर्वर से कनेक्ट नहीं किया जा सका."
"सर्वर से संचार नहीं किया जा सका. बाद में पुन: प्रयास करें."
"सर्वर से कनेक्शन का समय समाप्त हुआ."
- "पृष्ठ में कई सर्वर रीडायरेक्ट हैं."
+ "पेज में कई सर्वर रीडायरेक्ट हैं."
"प्रोटोकॉल समर्थित नहीं है."
"सुरक्षित कनेक्शन स्थापित नहीं किया जा सका."
- "URL अमान्य होने के कारण पृष्ठ नहीं खोला जा सका."
+ "URL अमान्य होने के कारण पेज नहीं खोला जा सका."
"फ़ाइल पर नहीं पहुंचा जा सका."
"अनुरोधित फ़ाइल नहीं मिल सकी."
"बहुत सारे अनुरोधों का संसाधन हो रहा है. बाद में पुन: प्रयास करें."
@@ -179,6 +182,8 @@
"अनुपलब्ध व्यवस्थापक ऐप के कारण कार्य प्रोफ़ाइल हटाई गई."
"कार्य प्रोफ़ाइल व्यवस्थापक ऐप या तो अनुपलब्ध है या दूषित है. परिणाम स्वरूप, आपकी कार्य प्रोफ़ाइल और संबंधित डेटा हटा दिया गया है. सहायता के लिए अपने नियंत्रक से संपर्क करें."
"आपकी कार्य प्रोफ़ाइल इस डिवाइस पर उपलब्ध नहीं है."
+ "नेटवर्क ट्रैफ़िक मॉनीटर किया जा रहा है"
+ "अधिक जानने के लिए टैप करें"
"आपके डिवाइस को मिटा दिया जाएगा"
"व्यवस्थापक ऐप में घटक अनुपलब्ध हैं या वह दूषित है और उसका उपयोग नहीं किया जा सकता. आपके डिवाइस को अब मिटा दिया जाएगा. सहायता के लिए अपने नियंत्रक से संपर्क करें."
"मैं"
@@ -347,14 +352,14 @@
"ऐप्स को इनकमिंग और आउटगोइंग कॉल के डेटा सहित, आपके फ़ोन का कॉल लॉग संशोधित करने देता है. दुर्भावनापूर्ण ऐप्स आपके कॉल लॉग को मिटाने या संशोधित करने के लिए इसका उपयोग कर सकते हैं."
"शरीर संवेदक एक्सेस करें (जैसे हृदय गति मॉनीटर)"
"ऐप को आपकी शारीरिक स्थिति, जैसे आपकी हृदय गति पर नज़र रखने वाले संवेदकों का डेटा एक्सेस करने देती है."
- "केलैंडर ईवेंट के साथ-साथ गोपनीय जानकारी पढ़ें"
+ "केलैंडर इवेंट के साथ-साथ गोपनीय जानकारी पढ़ें"
"ऐप्स को मित्रों या सहकर्मियों के कैलेंडर इवेंट सहित, आपके टेबलेट पर संग्रहीत कैलेंडर इवेंट पढ़ने देता है. इससे निजता या संवेदनशीलता पर ध्यान दिए बिना, ऐप्स आपके कैलेंडर डेटा को साझा कर सकता है या सहेज सकता है."
- "ऐप को, मित्रों और सहकर्मियों के कैलेंडर ईवेंट सहित, आपके टीवी पर संग्रहीत सभी कैलेंडर ईवेंट पढ़ने देती है. इससे ऐप को निजता या संवेदनशीलता पर ध्यान दिए बिना, आपका कैलेडर डेटा साझा करने या सहेजने की अनुमति मिल जाती है."
+ "ऐप को, मित्रों और सहकर्मियों के कैलेंडर इवेंट सहित, आपके टीवी पर संग्रहीत सभी कैलेंडर इवेंट पढ़ने देती है. इससे ऐप को निजता या संवेदनशीलता पर ध्यान दिए बिना, आपका कैलेडर डेटा साझा करने या सहेजने की अनुमति मिल जाती है."
"ऐप्स को मित्रों या सहकर्मियों के कैलेंडर इवेंट सहित, आपके फ़ोन पर संग्रहीत कैलेंडर इवेंट पढ़ने देता है. इससे निजता या संवेदनशीलता पर ध्यान दिए बिना, ऐप्स आपके कैलेंडर डेटा को साझा कर सकता है या सहेज सकता है."
- "अपनी जानकारी के बिना कैलेंडर ईवेंट जोड़ें या संशोधित करें और अतिथियों को ईमेल भेजें"
- "ऐप्स को मित्रों या सहकर्मियों के ईवेंट के साथ ही वे ईवेंट जोड़ने, निकालने, बदलने देता है जिन्हें आप अपने टेबलेट पर संशोधित कर सकते हैं. इससे ऐप्स ,अपनी जानकारी के बिना उन संदेशों को भेज सकता है जो कैलेंडर स्वामियों की ओर से आते दिखाई देते हैं, या ईवेंट संशोधित कर सकता है."
- "ऐप को ऐसे ईवेंट जोड़ने, निकालने, बदलने देती है जिन्हें आप अपने डिवाइस पर बदल सकते हैं, जिनमें मित्रों या सहकर्मियों के ईवेंट शामिल हैं. इससे ऐप ऐसे संदेश भेज सकता है जो कैलेंडर स्वामी से आते हुए प्रतीत होते हैं या ऐप स्वामी की जानकारी के बिना ईवेंट बदल सकता है."
- "ऐप्स को मित्रों या सहकर्मियों के ईवेंट के साथ ही वे ईवेंट जोड़ने, निकालने, बदलने देता है जिन्हें आप अपने फ़ोन पर संशोधित कर सकते हैं. इससे ऐप्स , अपनी जानकारी के बिना उन संदेशों को भेज सकता है जो कैलेंडर स्वामियों की ओर से आते दिखाई देते हैं, या ईवेंट संशोधित कर सकता है."
+ "अपनी जानकारी के बिना कैलेंडर इवेंट जोड़ें या संशोधित करें और अतिथियों को ईमेल भेजें"
+ "ऐप्स को मित्रों या सहकर्मियों के इवेंट के साथ ही वे इवेंट जोड़ने, निकालने, बदलने देता है जिन्हें आप अपने टेबलेट पर संशोधित कर सकते हैं. इससे ऐप्स ,अपनी जानकारी के बिना उन संदेशों को भेज सकता है जो कैलेंडर स्वामियों की ओर से आते दिखाई देते हैं, या इवेंट संशोधित कर सकता है."
+ "ऐप को ऐसे इवेंट जोड़ने, निकालने, बदलने देती है जिन्हें आप अपने डिवाइस पर बदल सकते हैं, जिनमें मित्रों या सहकर्मियों के इवेंट शामिल हैं. इससे ऐप ऐसे संदेश भेज सकता है जो कैलेंडर स्वामी से आते हुए प्रतीत होते हैं या ऐप स्वामी की जानकारी के बिना इवेंट बदल सकता है."
+ "ऐप्स को मित्रों या सहकर्मियों के इवेंट के साथ ही वे इवेंट जोड़ने, निकालने, बदलने देता है जिन्हें आप अपने फ़ोन पर संशोधित कर सकते हैं. इससे ऐप्स , अपनी जानकारी के बिना उन संदेशों को भेज सकता है जो कैलेंडर स्वामियों की ओर से आते दिखाई देते हैं, या इवेंट संशोधित कर सकता है."
"अतिरिक्त स्थान प्रदाता आदेशों में पहुंचे"
"ऐप्स को अतिरिक्त स्थान प्रदाता आदेशों पर पहुंचने देती है. इससे ऐप्स GPS या अन्य स्थान स्रोतों के संचालन में अवरोध पहुंचा सकता है."
"सटीक स्थान एक्सेस करें (GPS और नेटवर्क-आधारित)"
@@ -410,7 +415,7 @@
"वाई-फ़ाई कनेक्शन देखें"
"ऐप्स को वाई-फ़ाई नेटवर्क के बारे में जानकारी, जैसे WI-Fi सक्षम है या नहीं और कनेक्ट किए गए वाई-फ़ाई डिवाइस के नाम, देखने देता है."
"वाई-फ़ाई से कनेक्ट और डिस्कनेक्ट करें"
- "ऐप्स को वाई-फ़ाई पहुंच बिंदुओं से कनेक्ट और डिस्कनेक्ट करने और वाई-फ़ाई नेटवर्क के लिए डिवाइस कॉन्फ़िगरेशन में परिवर्तन करने देता है."
+ "ऐप्स को वाई-फ़ाई पहुंच बिंदुओं से कनेक्ट और डिसकनेक्ट करने और वाई-फ़ाई नेटवर्क के लिए डिवाइस कॉन्फ़िगरेशन में परिवर्तन करने देता है."
"वाई-फ़ाई मल्टीकास्ट प्राप्ति को अनुमति दें"
"ऐप्स को वाई-फ़ाई नेटवर्क पर मल्टीकास्ट पते के उपयोग से केवल आपके टेबलेट पर ही नहीं, बल्कि सभी डिवाइस पर भेजे गए पैकेट प्राप्त करने देता है. यह गैर-मल्टीकास्ट मोड से अधिक पावर का उपयोग करता है."
"ऐप को मल्टीकास्ट पतों का उपयोग करके ना केवल आपके टीवी को, बल्कि वाई-फ़ाई पर मौजूद सभी डिवाइसों को पैकेट भेजने और प्राप्त करने देती है. इसमें गैर-मल्टीकास्ट मोड की अपेक्षा अधिक पावर का उपयोग होता है."
@@ -419,7 +424,7 @@
"किसी ऐप्स को स्थानीय ब्लूटूथ टेबलेट कॉन्फ़िगर करने की और रिमोट डिवाइस के साथ खोजने और युग्मित करने देता है."
"ऐप को स्थानीय ब्लूटूथ टीवी कॉन्फ़िगर करने देती है और दूरस्थ डिवाइसों को खोजने और उनसे युग्मित करने देती है."
"ऐप्स को स्थानीय ब्लूटूथ फ़ोन कॉन्फ़िगर करने देता है, और रिमोट डिवाइस के साथ खोजने और युग्मित करने देता है."
- "WiMAX से कनेक्ट और डिस्कनेक्ट करें"
+ "WiMAX से कनेक्ट और डिसकनेक्ट करें"
"ऐप्स को WiMAX सक्षम है या नहीं और कनेक्ट किए गए किसी WiMAX नेटवर्क के बारे में जानकारी निर्धारित करने देता है."
"WiMAX स्थिति बदलें"
"ऐप्स को WiMAX नेटवर्क से टेबलेट को कनेक्ट और डिस्कनेक्ट करने देता है."
@@ -459,7 +464,7 @@
"समन्वयन बंद या चालू टॉगल करें"
"ऐप्स को किसी खाते की समन्वयन सेटिंग संशोधित करने देता है. उदाहरण के लिए, इसका उपयोग लोग ऐप्स का समन्वयन किसी खाते से सक्षम करने में हो सकता है."
"समन्वयन आंकड़े पढ़ें"
- "ऐप्स को किसी खाते के समन्वयन आंकड़े, साथ ही समन्वयित ईवेंट का इतिहास और समन्वयित डेटा की मात्रा पढ़ने देता है."
+ "ऐप्स को किसी खाते के समन्वयन आंकड़े, साथ ही समन्वयित इवेंट का इतिहास और समन्वयित डेटा की मात्रा पढ़ने देता है."
"अपने USB मेमोरी की सामग्री पढ़ें"
"अपने SD कार्ड की सामग्री पढ़ें"
"एप्लिकेशन को आपके USB मेमोरी की सामग्री पढ़ने की अनुमति देता है."
@@ -766,12 +771,12 @@
"FACTORY_TEST क्रिया केवल /system/app में इंस्टॉल किए गए पैकेज के लिए समर्थित है."
"ऐसा कोई पैकेज नहीं मिला था जो FACTORY_TEST कार्रवाई प्रदान करता हो."
"रीबूट करें"
- "\'%s \' पर यह पृष्ठ दर्शाता है:"
+ "\'%s \' पर यह पेज दर्शाता है:"
"JavaScript"
"मार्गदर्शक की दुबारा पूछें"
- "इस पृष्ठ से आगे बढ़ें"
- "इस पृष्ठ पर बने रहें"
- "%s \n\nक्या आप वाकई इस पृष्ठ से दूर नेविगेट करना चाहते हैं?"
+ "इस पेज से आगे बढ़ें"
+ "इस पेज पर बने रहें"
+ "%s \n\nक्या आप वाकई इस पेज से दूर नेविगेट करना चाहते हैं?"
"दुबारा पूछें"
"युक्ति: ज़ूम इन और आउट करने के लिए डबल-टैप करें."
"स्वत: भरण"
@@ -808,7 +813,7 @@
"अभी नहीं"
"याद रखें"
"कभी नहीं"
- "आपके पास इस पृष्ठ को खोलने की अनुमति नहीं है."
+ "आपके पास इस पेज को खोलने की अनुमति नहीं है."
"लेख की क्लिपबोर्ड पर प्रतिलिपि बनाई गई."
"अधिक"
"मेनू+"
@@ -1010,7 +1015,7 @@
"ठीक है"
"रिपोर्ट करें"
"प्रतीक्षा करें"
- "पृष्ठ प्रतिसाद नहीं दे रहा है.\n\nक्या आप इसे बंद करना चाहते हैं?"
+ "पेज प्रतिसाद नहीं दे रहा है.\n\nक्या आप इसे बंद करना चाहते हैं?"
"एप्लि. रीडायरेक्ट किया गया"
"%1$s अभी चल रहा है."
"%1$s को वास्तविक रूप से लॉन्च किया गया था."
@@ -1106,9 +1111,9 @@
"प्रति:"
"आवश्यक पिन लिखें:"
"पिन:"
- "%1$s से कनेक्ट रहने पर टेबलेट वाई-फ़ाई से अस्थायी रूप से डिस्कनेक्ट हो जाएगा"
+ "%1$s से कनेक्ट रहने पर टेबलेट वाई-फ़ाई से अस्थायी रूप से डिसकनेक्ट हो जाएगा"
"जब टीवी %1$s से कनेक्ट होगा तब वह वाई-फ़ाई से अस्थायी रूप से डिस्कनेक्ट हो जाएगा"
- "फ़ोन %1$s से कनेक्ट रहते समय वाई-फ़ाई से अस्थायी रूप से डिस्कनेक्ट हो जाएगा"
+ "फ़ोन %1$s से कनेक्ट रहते समय वाई-फ़ाई से अस्थायी रूप से डिसकनेक्ट हो जाएगा"
"वर्ण सम्मिलित करें"
"SMS संदेश भेज रहा है"
"<b>%1$s </b> बड़ी संख्या में SMS संदेश भेज रहा है. क्या आप इस ऐप्स को संदेश भेजना जारी रखने देना चाहते हैं?"
@@ -1208,6 +1213,8 @@
"ऐप्लिकेशन को इंस्टॉल सत्रों को पढ़ने देती है. इससे उसे सक्रिय पैकेज इंस्टॉलेशन के बारे में विवरण देखने की अनुमति मिल जाती है."
"पैकेज इंस्टॉल करने का अनुरोध करें"
"किसी ऐप्लिकेशन को पैकेज इंस्टॉल करने के अनुरोध की अनुमति देता है."
+ "बैटरी ऑप्टिमाइज़ेशन पर ध्यान ना देने के लिए पूछें"
+ "किसी ऐप्लिकेशन को उस ऐप्लिकेशन के लिए बैटरी ऑप्टिमाइज़ेशन पर ध्यान ना देने की अनुमति के लिए पूछने देता है."
"ज़ूम नियंत्रण के लिए दो बार टैप करें"
"विजेट नहीं जोड़ा जा सका."
"जाएं"
@@ -1258,7 +1265,7 @@
"आगे"
"अभी नहीं"
"कोई मिलान नहीं"
- "पृष्ठ पर ढूंढें"
+ "पेज पर ढूंढें"
%d में से %d
%d में से %d
@@ -1329,7 +1336,7 @@
"%s USB डिस्क"
"USB मेमोरी"
"संपादित करें"
- "डेटा उपयोग की सूचना"
+ "डेटा उपयोग की चेतावनी"
"उपयोग व सेटिंग देखने हेतु टैप करें."
"2G-3G डेटा सीमा पूर्ण हो गई"
"4G डेटा सीमा पूर्ण हो गई"
@@ -1380,7 +1387,7 @@
"स्क्रीन को डिवाइस में कास्ट करें"
"डिवाइस खोजे जा रहे हैं…"
"सेटिंग"
- "डिस्कनेक्ट करें"
+ "डिसकनेक्ट करें"
"स्कैन कर रहा है..."
"कनेक्ट हो रहा है..."
"उपलब्ध"
@@ -1558,7 +1565,7 @@
"वर्ष चुनें"
"%1$s को हटा दिया गया"
"कार्यस्थल का %1$s "
- "इस स्क्रीन को अनपिन करने के लिए, वापस जाएं को स्पर्श करके रखें."
+ "इस स्क्रीन को अनपिन करने के लिए, वापस जाएं और अवलोकन को स्पर्श करके रखें."
"ऐप पिन किया गया है: इस डिवाइस पर अनपिन करने की अनुमति नहीं है."
"स्क्रीन पिन की गई"
"स्क्रीन अनपिन की गई"
@@ -1614,7 +1621,7 @@
"बंद रहने का समय"
"सप्ताह की रात"
"सप्ताहांत"
- "ईवेंट"
+ "इवेंट"
"%1$s द्वारा म्यूट किया गया"
"आपके डिवाइस के साथ कोई आंतरिक त्रुटि हुई और यह तब तक अस्थिर रह सकता है, जब तक आप फ़ैक्टरी डेटा रीसेट नहीं करते हैं."
"आपके डिवाइस के साथ कोई आंतरिक त्रुटि हुई. विवरणों के लिए अपने निर्माता से संपर्क करें."
diff --git a/core/res/res/values-hr/strings.xml b/core/res/res/values-hr/strings.xml
index 5f2d3d62d50e..c3d1f6dbcb1b 100644
--- a/core/res/res/values-hr/strings.xml
+++ b/core/res/res/values-hr/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Problem s vezom ili nevažeći MMI kôd."
"Operacija je ograničena samo na brojeve s fiksnim biranjem."
+ "Nije moguće promijeniti postavke preusmjeravanja poziva na telefonu dok ste u roamingu."
"Usluga nije omogućena."
"Usluga je omogućena za korisnika:"
"Usluga je onemogućena."
@@ -97,6 +98,8 @@
"Glasovne/podatkovne usluge blokirane su."
"Glasovne/SMS usluge su blokirane."
"Sve su glasovne/podatkovne/SMS usluge blokirane."
+ "Pristup mreži nije moguć"
+ "Za bolji prijem pokušajte odabrati drugu vrstu mreže u odjeljku Postavke > Mobilne mreže > Željena vrsta mreže."
"Način TTY FULL koji zahtijeva paralelni uređaj"
"Način TTY HCO koji zahtijeva paralelni uređaj"
"Način TTY VCO koji zahtijeva paralelni uređaj"
@@ -181,6 +184,8 @@
"Radni je profil izbrisan jer nedostaje administratorska aplikacija."
"Administratorska aplikacija radnog profila nedostaje ili je oštećena. Zbog toga su radni profil i povezani podaci izbrisani. Za pomoć se obratite svom administratoru."
"Vaš poslovni profil više nije dostupan na ovom uređaju."
+ "Mrežni se promet prati"
+ "Dodirnite da biste saznali više"
"Uređaj će se izbrisati"
"Nije moguće upotrijebiti administratorsku aplikaciju jer joj nedostaju komponente ili je oštećena. Vaš će se uređaj sada izbrisati. Za pomoć se obratite svom administratoru."
"Ja"
@@ -646,7 +651,7 @@
"Pomoćnik"
"Brat"
"Dijete"
- "Partner u kućan."
+ "Vanbračni partner"
"Otac"
"Prijatelj"
"Voditelj"
@@ -1233,6 +1238,8 @@
"Omogućuje aplikaciji čitanje sesija instaliranja. Aplikacija može vidjeti pojedinosti o aktivnim instaliranjima paketa."
"zahtijevati instaliranje paketa"
"Aplikaciji omogućuje zahtijevanje instaliranja paketa."
+ "tražiti zanemarivanje optimizacija baterije"
+ "Aplikaciji omogućuje da traži dopuštenje za zanemarivanje optimizacija baterije za tu aplikaciju."
"Dvaput dotaknite za upravljanje zumiranjem"
"Widget nije moguće dodati."
"Idi"
@@ -1585,7 +1592,7 @@
"Odaberite godinu"
"Izbrisan je broj %1$s "
"%1$s za posao"
- "Da biste otkvačili ovaj zaslon, dodirnite i zadržite Natrag."
+ "Da biste otkvačili ovaj zaslon, dodirnite i zadržite Natrag i Pregled."
"Aplikacija je prikvačena: otkvačivanje nije dopušteno na tom uređaju."
"Zaslon je pričvršćen"
"Zaslon je otkvačen"
diff --git a/core/res/res/values-hu/strings.xml b/core/res/res/values-hu/strings.xml
index cd3659a7f0f9..9731aba90eef 100644
--- a/core/res/res/values-hu/strings.xml
+++ b/core/res/res/values-hu/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Kapcsolódási probléma vagy érvénytelen MMI-kód."
"A művelet fix hívószámokra van korlátozva."
+ "A hívásátirányítási beállításokat barangolás közben telefonról nem lehet módosítani."
"A szolgáltatás engedélyezésre került."
"Engedélyezett szolgáltatás(ok):"
"A szolgáltatás ki van kapcsolva."
@@ -96,6 +97,8 @@
"A hang- és adatszolgáltatások le vannak tiltva."
"A hang- és SMS szolgáltatások le vannak tiltva."
"Minden hang-, adat- és SMS szolgáltatás le van tiltva."
+ "A hálózat nem érhető el"
+ "A vétel javítása érdekében próbálja módosítani a kiválasztott hálózattípust a Beállítások > Mobilhálózatok > Preferált hálózattípus lehetőségnél."
"Partner által kért TTY-mód: FULL"
"Partner által kért TTY-mód: HCO"
"Partner által kért TTY-mód: VCO"
@@ -179,6 +182,8 @@
"A munkahelyi profilt a rendszer a hiányzó rendszergazda alkalmazás miatt törölte."
"A munkahelyi profil rendszergazda alkalmazása hiányzik vagy sérült. A rendszer ezért törölte munkahelyi profilját, és az ahhoz kapcsolódó adatokat. Ha segítségre van szüksége, vegye fel a kapcsolatot rendszergazdájával."
"Munkaprofilja már nem érhető el ezen az eszközön."
+ "A hálózati forgalmat figyelik"
+ "Koppintson, ha további információt szeretne kapni"
"A rendszer törölni fogja eszközét"
"A rendszergazda alkalmazás egyes részei hiányoznak, vagy az alkalmazás sérült, ezért nem használható. A rendszer most törölni fogja eszközét. Ha segítségre van szüksége, vegye fel a kapcsolatot rendszergazdájával."
"Saját"
@@ -1208,6 +1213,8 @@
"Engedélyezi az alkalmazásnak a telepítési munkamenetek olvasását. Ezáltal részleteket kaphat az egyes csomagok éppen folyamatban lévő telepítéséről."
"telepítőcsomagok kérése"
"Lehetővé teszi az alkalmazás számára csomagok telepítésének kérését."
+ "Akkumulátoroptimalizálási beállítások mellőzésének kérése"
+ "Az alkalmazás engedélyt kérhet az akkumulátoroptimalizálási beállítások mellőzésére."
"Érintse meg kétszer a nagyítás beállításához"
"Nem sikerült hozzáadni a modult."
"Ugrás"
@@ -1558,7 +1565,7 @@
"Válassza ki az évet"
"A(z) %1$s érték törölve"
"Munkahelyi %1$s "
- "A képernyő rögzítésének feloldásához tartsa lenyomva a Vissza lehetőséget."
+ "A képernyő rögzítésének feloldásához tartsa lenyomva a Vissza és az Áttekintés lehetőségeket."
"Az alkalmazás rögzítve van: a rögzítés feloldása nem engedélyezett ezen az eszközön."
"Képernyő rögzítve"
"Képernyő rögzítése feloldva"
diff --git a/core/res/res/values-hy-rAM/strings.xml b/core/res/res/values-hy-rAM/strings.xml
index 160efff177e3..14c9385749a4 100644
--- a/core/res/res/values-hy-rAM/strings.xml
+++ b/core/res/res/values-hy-rAM/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Միացման խնդիր կամ անվավեր MMI ծածակագիր:"
"Գործողությունը սահմանափակված է միայն ամրակայված հեռախոսահամարների համար:"
+ "Ռոումինգում չեք կարող փոխել զանգի վերահասցեավորման կարգավորումները ձեր հեռախոսից։"
"Ծառայությունը միացված է:"
"Ծառայությունը միացված է`"
"Ծառայությունն անջատվել է:"
@@ -96,6 +97,8 @@
"Ձայնային կամ տվյալների ծառայություններն արգելափակված են:"
"Ձայնային/SMS ծառայությունները արգելափակված են:"
"Բոլոր ձայնային/տվյալների/SMS ծառայությունները արգելափակված են:"
+ "Ցանցն անհասանելի է"
+ "Ազդանշանի ընդունման որակը բարելավելու համար փոխեք ցանցի տեսակը՝ անցնելով Կարգավորումներ > Բջջային ցանցեր > Ցանկալի ցանցի տեսակը։"
"Բաժանորդի սարքում ընտրված է հեռատիպի ԲՈԼՈՐԸ ռեժիմը"
"Բաժանորդի սարքում ընտրված է հեռատիպի HCO ռեժիմը"
"Բաժանորդի սարքում ընտրված է հեռատիպի VCO ռեժիմը"
@@ -179,6 +182,8 @@
"Աշխատանքային պրոֆիլը ջնջվել է ադմինիստրատորի հավելվածի բացակայության պատճառով:"
"Աշխատանքային պրոֆիլի ադմինիստրատորի հավելվածը բացակայում է կամ վնասված է: Արդյունքում ձեր աշխատանքային պրոֆիլը և առնչվող տվյալները ջնջվել են: Օգնության համար դիմեք ձեր ադմինիստրատորին:"
"Ձեր աշխատանքային պրոֆիլն այս սարքում այլևս հասանելի չէ:"
+ "Ցանցային թրաֆիկը վերահսկվում է"
+ "Հպեք՝ ավելին իմանալու համար"
"Ձեր սարքը ջնջվելու է"
"Ադմինիստրատորի հավելվածում բացակայում են բաղադրիչներ կամ այն վնասված է և չի կարող օգտագործվել: Ձեր սարքն այժմ ջնջվելու է: Օգնություն համար դիմեք ձեր ադմինիստրատորին:"
"Իմ"
@@ -312,7 +317,7 @@
"փակել այլ հավելվածները"
"Թույլ է տալիս հավելվածին վերջ տալ այլ հավելվածների հետնաշերտի գործընթացները: Սա կարող է պատճառ դառնալ, որ այլ հավելվածները դադարեն աշխատել:"
"անցնել այլ ծրագրերի վրայով"
- "Թույլ է տալիս հավելվածին երևալ այլ հավելվածների վերևում կամ օգտվողի ինտերֆեյսի մասերում: Դրանք կարող են խոչընդոտել ձեր ինտերֆեյսի օգտագործմանը ցանկացած հավելվածում կամ փոխել այն, ինչը կարծում եք, որ տեսնում եք այլ հավելվածներում:"
+ "Թույլ է տալիս հավելվածին երևալ այլ հավելվածների վերևում կամ օգտատիրոջ ինտերֆեյսի մասերում: Դրանք կարող են խոչընդոտել ձեր ինտերֆեյսի օգտագործմանը ցանկացած հավելվածում կամ փոխել այն, ինչը կարծում եք, որ տեսնում եք այլ հավելվածներում:"
"միշտ աշխատեցնել հավելվածը"
"Թույլ է տալիս հավելվածին մնայուն դարձնել իր մասերը հիշողության մեջ: Սա կարող է սահմանափակել այլ հավելվածներին հասանելի հիշողությունը` դանդաղեցնելով պլանշետի աշխատանքը:"
"Թույլ է տալիս հավելվածին պահել իր տարրերը հիշողության մեջ: Սա կարող է սահմանափակել այլ հավելվածների համար հատկացված հիշողությունը և դանդաղեցնել հեռուստացույցի աշխատանքը:"
@@ -347,11 +352,11 @@
"Թույլ է տալիս հավելվածին փոփոխել ձեր հեռախոսի զանգերի մատյանը, այդ թվում` մուտքային և ելքային զանգերի մասին տվյալները: Վնասարար հավելվածները կարող են սա օգտագործել` ձեր զանգերի մատյանը ջնջելու կամ փոփոխելու համար:"
"օգտագործել մարմնի սենսորները (օրինակ` սրտի կծկումների հաճախականության չափիչ)"
"Հավելվածին թույլ է տալիս մուտք ունենալ սենսորների տվյալներին, որոնք վերահսկում են ձեր ֆիզիկական վիճակը, օրինակ՝ ձեր սրտի զարկերը:"
- "կարդալ օրացուցային իրադարձությունները և գաղտնի տեղեկությունները"
- "Թույլ է տալիս հավելվածին կարդալ ձեր պլանշետում պահված բոլոր օրացուցային իրադարձությունները, այդ թվում` ընկերների կամ գործընկերների: Սա կարող է թույլ տալ հավելվածին տարածել կամ պահել ձեր օրացուցային տվյալները` անկախ գաղտնիությունից կամ զգայունությունից:"
- "Թույլ է տալիս հավելվածին կարդալ հեռուստացույցի օրացույցում պահված բոլոր իրադարձությունները, այդ թվում նաև ընկերների կամ գործընկերների հետ կապված իրադարձությունները: Սա կարող է թույլ տալ հավելվածին համօգտագործել կամ պահել ձեր օրացույցի տվյալները՝ անկախ նրանց գաղտնիության կամ կարևորության աստիճանից:"
- "Թույլ է տալիս հավելվածին կարդալ ձեր հեռախոսում պահված բոլոր օրացուցային իրադարձությունները, այդ թվում` ընկերների կամ գործընկերների: Սա կարող է թույլ տալ հավելվածին տարածել կամ պահել ձեր օրացուցային տվյալները` անկախ գաղտնիությունից կամ զգայունությունից:"
- "ավելացնել կամ փոփոխել օրացուցային իրադարձությունները և ուղարկել նամակ հյուրերին` առանց սեփականատերերի իմացության"
+ "կարդալ օրացուցային միջոցառումները և գաղտնի տեղեկությունները"
+ "Թույլ է տալիս հավելվածին կարդալ ձեր պլանշետում պահված բոլոր օրացուցային միջոցառումները, այդ թվում` ընկերների կամ գործընկերների: Սա կարող է թույլ տալ հավելվածին տարածել կամ պահել ձեր օրացուցային տվյալները` անկախ գաղտնիությունից կամ զգայունությունից:"
+ "Թույլ է տալիս հավելվածին կարդալ հեռուստացույցի օրացույցում պահված բոլոր միջոցառումները, այդ թվում նաև ընկերների կամ գործընկերների հետ կապված իրադարձությունները: Սա կարող է թույլ տալ հավելվածին համօգտագործել կամ պահել ձեր օրացույցի տվյալները՝ անկախ նրանց գաղտնիության կամ կարևորության աստիճանից:"
+ "Թույլ է տալիս հավելվածին կարդալ ձեր հեռախոսում պահված բոլոր օրացուցային միջոցառումները, այդ թվում` ընկերների կամ գործընկերների: Սա կարող է թույլ տալ հավելվածին տարածել կամ պահել ձեր օրացուցային տվյալները` անկախ գաղտնիությունից կամ զգայունությունից:"
+ "ավելացնել կամ փոփոխել օրացուցային միջոցառումները և ուղարկել նամակ հյուրերին` առանց սեփականատերերի իմացության"
"Թույլ է տալիս հավելվածին ավելացնել, հեռացնել, փոխել իրադարձություններ, որոնք դուք կարող եք փոփոխել ձեր պլանշետում, այդ թվում ընկերների կամ աշխատակիցների իրադարձությունները: Սա կարող է թույլ տալ հավելվածին ուղարկել հաղորդագրություններ, որոնք երևում են որպես օրացույցի սեփականատերերից ուղարկված, կամ փոփոխել իրադարձություններն առանց սեփականատերերի իմացության:"
"Թույլ է տալիս հավելվածին ավելացնել, հեռացնել, փոփոխել իրադարձությունները, որոնք կարող եք փոփոխել ձեր հեռուստացույցի մեջ, այդ թվում` ընկերների կամ աշխատակիցների հետ կապված իրադարձությունները: Սա կարող է թույլատրել հավելվածին ուղարկել հաղորդագրություններ, որոնք հայտնվում են օրացույցի սեփականատերերից կամ փոփոխել իրադարձություններն` առանց սեփականատերերի իմացության:"
"Թույլ է տալիս հավելվածին ավելացնել, հեռացնել, փոխել այն իրադարձությունները, որոնք կարող եք փոփոխել ձեր հեռախոսից, այդ թվում` ընկերների կամ գործընկերների: Սա կարող է թույլ տալ հավելվածին ուղարկել հաղորդագրություններ, որոնք իբրև գալիս են օրացույցի սեփականատիրոջից, կամ փոփոխել իրադարձությունները` առանց սեփականատիրոջ իմացության:"
@@ -477,7 +482,7 @@
"կառավարել հեռահաղորդակցության կապերը"
"Հավելվածին թույլ է տալիս կառավարել հեռահաղորդակցության կապերը:"
"փոխազդել մուտքային զանգի էկրանին"
- "Թույլ է տալիս ծրագրին վերահսկել՝ երբ և ինչպես է օգտվողը տեսնում մուտքային զանգը էկրանին:"
+ "Թույլ է տալիս ծրագրին վերահսկել՝ երբ և ինչպես է օգտատերը տեսնում մուտքային զանգը էկրանին:"
"համագործակցել հեռախոսակապի ծառայությունների հետ"
"Թույլատրում է ծրագրին համագործակցել հեռախոսակապի ծառայությունների հետ՝ զանգեր կատարելու/ստանալու համար:"
"Մատակարարել ներզանգային հնարավորություն:"
@@ -520,9 +525,9 @@
"Վերահսկել սխալ գաղտնաբառերի թիվը, որոնք մուտքագրվել են էկրանն ապակողպելիս, և կողպել պլանշետը կամ ջնջել պլանշետի բոլոր տվյալները, եթե մուտքագրվել են չափից շատ սխալ գաղտնաբառեր:"
"Վերահսկել սխալ գաղտնաբառերի թիվը, որոնք մուտքագրվել են էկրանը ապակողպելիս, և կողպել հեռուստացույցը կամ ջնջել բոլոր տվյալները, եթե չափից ավելի սխալ գաղտնաբառեր են մուտքագրվել:"
"Վերահսկել սխալ գաղտնաբառերի թիվը, որոնք մուտքագրվել են էկրանն ապակողպելիս, և կողպել հեռախոսը կամ ջնջել հեռախոսի բոլոր տվյալները, եթե մուտքագրվել են չափից շատ սխալ գաղտնաբառեր:"
- "Կառավարել էկրանն ապակողպելիս մուտքագրվող սխալ գաղտնաբառերի թիվը և կողպել պլանշետը կամ ջնջել այս օգտվողի բոլոր տվյալները չափից ավելի սխալ գաղտնաբառեր մուտքագրելու դեպքում:"
- "Կառավարել էկրանն ապակողպելիս մուտքագրվող սխալ գաղտնաբառերի թիվը և կողպել հեռուստացույցը կամ ջնջել այս օգտվողի բոլոր տվյալները չափից ավելի սխալ գաղտնաբառեր մուտքագրելու դեպքում:"
- "Կառավարել էկրանն ապակողպելիս մուտքագրվող սխալ գաղտնաբառերի թիվը և կողպել հեռախոսը կամ ջնջել այս օգտվողի բոլոր տվյալները չափից ավելի սխալ գաղտնաբառեր մուտքագրելու դեպքում:"
+ "Կառավարել էկրանն ապակողպելիս մուտքագրվող սխալ գաղտնաբառերի թիվը և կողպել պլանշետը կամ ջնջել այս օգտատիրոջ բոլոր տվյալները չափից ավելի սխալ գաղտնաբառեր մուտքագրելու դեպքում:"
+ "Կառավարել էկրանն ապակողպելիս մուտքագրվող սխալ գաղտնաբառերի թիվը և կողպել հեռուստացույցը կամ ջնջել այս օգտատիրոջ բոլոր տվյալները չափից ավելի սխալ գաղտնաբառեր մուտքագրելու դեպքում:"
+ "Կառավարել էկրանն ապակողպելիս մուտքագրվող սխալ գաղտնաբառերի թիվը և կողպել հեռախոսը կամ ջնջել այս օգտատիրոջ բոլոր տվյալները չափից ավելի սխալ գաղտնաբառեր մուտքագրելու դեպքում:"
"Փոխել էկրանի կողպման գաղտնաբառը"
"Փոխել էկրանի կողպման գաղտնաբառը:"
"Կողպել էկրանը"
@@ -531,10 +536,10 @@
"Ջնջել պլանշետի տվյալներն առանց նախազգուշացման` կատարելով գործարանային տվյալների վերակայում:"
"Ջնջել հեռուստացույցի տվյալները առանց զգուշացման՝ վերականգնելով գործարանային կարգավորումները:"
"Ջնջել հեռախոսի տվյալներն առանց նախազգուշացման` կատարելով գործարանային տվյալների վերակայում:"
- "Ջնջել օգտվողի տվյալները"
- "Ջնջել այս օգտվողի տվյալներն այս պլանշետում առանց նախազգուշացման:"
- "Ջնջել այս օգտվողի տվյալներն այս հեռուստացույցում առանց նախազգուշացման:"
- "Ջնջել այս օգտվողի տվյալներն այս հեռախոսում առանց նախազգուշացման:"
+ "Ջնջել օգտատիրոջ տվյալները"
+ "Ջնջել այս օգտատիրոջ տվյալներն այս պլանշետում առանց նախազգուշացման:"
+ "Ջնջել այս օգտատիրոջ տվյալներն այս հեռուստացույցում առանց նախազգուշացման:"
+ "Ջնջել այս օգտատիրոջ տվյալներն այս հեռախոսում առանց նախազգուշացման:"
"Կարգավորել սարքի համաշխարհային պրոքսին"
"Կարգավորել, որ սարքի համընդհանուր պրոքսի-սերվերն օգտագործվի, երբ քաղաքականությունը միացված է: Միայն սարքի սեփականատերը կարող է կարգավորել համընդհանուր պրոքսի-սերվերը:"
"Նշել էկր կողպ գաղտնաբ սպառումը"
@@ -598,7 +603,7 @@
"Այլ"
"Ետզանգ"
"Մեքենա"
- "Ընկերության գլխավոր"
+ "Ընկերության հիմնական"
"ISDN"
"Հիմնական"
"Այլ ֆաքս"
@@ -643,14 +648,14 @@
"Օգնական"
"Եղբայր"
"Երեխա"
- "Տեղական գործընկեր"
+ "Կենակից"
"Հայր"
"Ընկեր"
"Կառավարիչ"
"Մայր"
"Ծնող"
"Գործընկեր"
- "Հղված է"
+ "Հանձնարարված"
"Բարեկամ"
"Քույր"
"Ամուսին"
@@ -699,7 +704,7 @@
"Միայն արտակարգ իրավիճակների զանգեր"
"Ցանցը կողպված է"
"SIM քարտը PUK-ով կողպված է:"
- "Տեսեք Օգտվողի ուղեցույցը կամ դիմեք Բաժանորդների սպասարկման կենտրոն:"
+ "Տեսեք Օգտատիրոջ ուղեցույցը կամ դիմեք Բաժանորդների սպասարկման կենտրոն:"
"SIM քարտը կողպված է:"
"SIM քարտը ապակողպվում է…"
"Դուք %1$d անգամ սխալ եք հավաքել ձեր ապակողպման սխեման: \n\nՓորձեք կրկին %2$d վայրկյանից:"
@@ -708,9 +713,9 @@
"Դուք %1$d անգամ սխալ եք հավաքել ձեր ապակողպման սխեման: %2$d անգամից ավել անհաջող փորձերից հետո ձեզ կառաջարկվի ապակողպել ձեր պլանշետը` օգտագործելով ձեր Google-ի մուտքի օգտանունը:\n \n Փորձեք կրկին %3$d վայրկյանից:"
"Դուք %1$d անգամ սխալ եք գծել ապակողպման նախշը: Եվս %2$d անհաջող փորձից հետո հեռուստացույցը կկարողանաք ապակողպել միայն մուտք գործելով ձեր Google հաշիվ:\n\n Նորից փորձեք %3$d վայրկյանից:"
"Դուք %1$d անգամ սխալ եք հավաքել ձեր ապակողպման սխեման: Եվս %2$d անհաջող փորձից հետո ձեզ կառաջարկվի ապակողպել ձեր հեռախոսը` օգտագործելով Google-ի ձեր մուտքը:\n \n Փորձեք կրկին %3$d վայրկյանից:"
- "Դուք %1$d անգամ գրասալիկն ապակողպելու սխալ փորձ եք արել: Եվս %2$d անհաջող փորձից հետո պլանշետը կվերակարգավորվի գործարանային լռելյայնի, և օգտվողի բոլոր տվյալները կկորեն:"
- "Դուք հեռուստացույցն ապակողպելու %1$d սխալ փորձ եք կատարել: Եվս %2$d անհաջող փորձից հետո հեռուստացույցի գործարանային կարգավորումները կվերականգնվեն և օգտվողի բոլոր տվյալները կջնջվեն:"
- "Դուք %1$d անգամ հեռախոսը ապակողպելու սխալ փորձ եք արել: Եվս %2$d անհաջող փորձից հետո հեռախոսը կվերակարգավորվի գործարանային սկզբնադիր ռեժիմի, և օգտվողի բոլոր տվյալները կկորեն:"
+ "Դուք %1$d անգամ գրասալիկն ապակողպելու սխալ փորձ եք արել: Եվս %2$d անհաջող փորձից հետո պլանշետը կվերակարգավորվի գործարանային լռելյայնի, և օգտատիրոջ բոլոր տվյալները կկորեն:"
+ "Դուք հեռուստացույցն ապակողպելու %1$d սխալ փորձ եք կատարել: Եվս %2$d անհաջող փորձից հետո հեռուստացույցի գործարանային կարգավորումները կվերականգնվեն և օգտատիրոջ բոլոր տվյալները կջնջվեն:"
+ "Դուք %1$d անգամ հեռախոսը ապակողպելու սխալ փորձ եք արել: Եվս %2$d անհաջող փորձից հետո հեռախոսը կվերակարգավորվի գործարանային սկզբնադիր ռեժիմի, և օգտատիրոջ բոլոր տվյալները կկորեն:"
"Դուք %d անգամ սխալ փորձ եք արել գրասալիկն ապակողպելու համար: Գրասալիկն այժմ կվերակարգավորվի գործարանային լռելյայնի:"
"Դուք հեռուստացույցն ապակողպելու %d սխալ փորձ եք կատարել: Այժմ կվերականգնվեն հեռուստացույցի գործարանային կարգավորումները:"
"Դուք %d անգամ հեռախոսը ապակողպելու սխալ փորձ եք արել: Հեռախոսն այժմ կվերակարգավորվի գործարանային սկզբնադիր ռեժիմի:"
@@ -740,7 +745,7 @@
"Ապակողպման տարածքն ընդլայնված է:"
"Ապակողպման տարածքը ետ է ծալված:"
"%1$s վիջեթ:"
- "Օգտվողի ընտրիչ"
+ "Օգտատիրոջ ընտրիչ"
"Կարգավիճակ"
"Ֆոտոխցիկ"
"Մեդիա կարգավորումներ"
@@ -1137,7 +1142,7 @@
"Սահմանել ժամը"
"Սահմանել ամսաթիվը"
"Սահմանել"
- "Կատարված է"
+ "Պատրաստ է"
"Նոր` "
"Տրամադրված է %1$s -ի կողմից:"
"Թույլտվություններ չեն պահանջվում"
@@ -1208,13 +1213,15 @@
"Ծրագրին թույլ է տալիս կարդալ տեղադրման աշխատաշրջանները: Սա թույլ է տալիս տեղեկանալ փաթեթների ակտիվ տեղադրումների մանրամասներին:"
"պահանջել տեղադրման փաթեթներ"
"Թույլ է տալիս հավելվածին պահանջել փաթեթների տեղադրումը:"
+ "հայցել մարտկոցի օպտիմալացումն անտեսելու թույլտվություն"
+ "Հավելվածին հնարավորություն է տալիս հայցելու թույլտվություն՝ տվյալ հավելվածի համար մարտկոցի օպտիմալացումն անտեսելու համար:"
"Հպեք երկու անգամ` խոշորացման վերահսկման համար"
"Չհաջողվեց վիջեթ ավելացնել:"
"Առաջ"
"Որոնել"
"Ուղարկել"
"Հաջորդը"
- "Կատարված է"
+ "Պատրաստ է"
"Նախորդ"
"Կատարել"
"Հավաքել հեռախոսահամարը`\nօգտագործելով %s -ը"
@@ -1263,7 +1270,7 @@
%d ՝ %d -ից
%d ՝ %d -ից
- "Կատարված է"
+ "Պատրաստ է"
"Ջնջում է USB կրիչը..."
"Ջնջում է SD քարտը..."
"Կիսվել"
@@ -1273,7 +1280,7 @@
"Գտնել նախորդը"
"Տեղադրության հարցում %s -ից"
"Տեղադրության հարցում"
- "%1$s (%2$s )-ի հարցմամբ"
+ "%1$s (%2$s )-ի հարցումով"
"Այո"
"Ոչ"
"Ջնջելու սահմանը գերազանցվել է"
@@ -1305,7 +1312,7 @@
"Alt"
"Չեղարկել"
"Ջնջել"
- "Կատարված է"
+ "Պատրաստ է"
"Ռեժիմի փոփոխում"
"Shift"
"Մուտք"
@@ -1420,9 +1427,9 @@
"Դուք %1$d անգամ սխալ եք մուտքագրել ձեր PIN-ը: \n\nՓորձեք կրկին %2$d վայրկյանից:"
"Դուք սխալ եք մուտքագրել ձեր գաղտնաբառը %1$d անգամ: \n\nՓորձեք կրկին %2$d վայրկյանից:"
"Դուք %1$d անգամ սխալ եք հավաքել ձեր ապակողպման սխեման: \n\nՓորձեք կրկին %2$d վայրկյանից:"
- "Դուք %1$d անգամ սխալ փորձ եք արել գրասալիկն ապակողպելու համար: %2$d անգամից ավել անհաջող փորձերից հետո պլանշետը կվերակարգավորվի գործարանային լռելյայնի, և օգտվողի բոլոր տվյալները կկորեն:"
- "Դուք հեռուստացույցն ապակողպելու %1$d սխալ փորձ եք կատարել: Եվս %2$d անհաջող փորձից հետո հեռուստացույցի գործարանային կարգավորումները կվերականգնվեն և օգտվողի բոլոր տվյալները կջնջվեն:"
- "Դուք %1$d անգամ սխալ փորձ եք արել հեռախոսն ապակողպելու համար: %2$d անգամից ավել անհաջող փորձերից հետո հեռախոսը կվերակարգավորվի գործարանային լռելյայնի, և օգտվողի բոլոր տվյալները կկորեն:"
+ "Դուք %1$d անգամ սխալ փորձ եք արել գրասալիկն ապակողպելու համար: %2$d անգամից ավել անհաջող փորձերից հետո պլանշետը կվերակարգավորվի գործարանային լռելյայնի, և օգտատիրոջ բոլոր տվյալները կկորեն:"
+ "Դուք հեռուստացույցն ապակողպելու %1$d սխալ փորձ եք կատարել: Եվս %2$d անհաջող փորձից հետո հեռուստացույցի գործարանային կարգավորումները կվերականգնվեն և օգտատիրոջ բոլոր տվյալները կջնջվեն:"
+ "Դուք %1$d անգամ սխալ փորձ եք արել հեռախոսն ապակողպելու համար: %2$d անգամից ավել անհաջող փորձերից հետո հեռախոսը կվերակարգավորվի գործարանային լռելյայնի, և օգտատիրոջ բոլոր տվյալները կկորեն:"
"Դուք %d անգամ սխալ փորձ եք արել գրասալիկն ապակողպելու համար: Գրասալիկն այժմ կվերակարգավորվի գործարանային լռելյայնի:"
"Դուք հեռուստացույցն ապակողպելու %d սխալ փորձ եք կատարել: Այժմ կվերականգնվեն հեռուստացույցի գործարանային կարգավորումները:"
"Դուք %d անգամ սխալ փորձ եք արել հեռախոսն ապակողպելու համար: Հեռախոսն այժմ կվերակարգավորվի գործարանային լռելյայնի:"
@@ -1435,7 +1442,7 @@
"Սեղմած պահեք երկու մատները` մատչելիությունը միացնելու համար:"
"Մատչելիությունը միացված է:"
"Մուտքի հնարավորությունը չեղարկված է:"
- "Ներկայիս օգտվողը %1$s :"
+ "Ներկայիս օգտատերը %1$s :"
"Փոխարկվում է %1$s -ին..."
"Ելք %1$s -ից…"
"Սեփականատեր"
@@ -1558,7 +1565,7 @@
"Ընտրեք տարին"
"%1$s թիվը ջնջված է"
"Աշխատանքային %1$s "
- "Այս էկրանն ապամրացնելու համար հպեք և պահեք Հետ կոճակը:"
+ "Այս էկրանն ապամրացնելու համար հպեք և պահեք Հետ և Համատեսք կոճակները:"
"Հավելվածն ամրացված է: Ապամրացումն այս սարքում չի թույլատրվում:"
"Էկրանն ամրացված է"
"Էկրանն ապամրացված է"
@@ -1614,7 +1621,7 @@
"Անգործունության ժամանակը"
"Աշխատանքային օր"
"Շաբաթ-կիրակի"
- "Իրադարձություն"
+ "Միջոցառում"
"Համրեցվել է %1$s -ի կողմից"
"Սարքում ներքին խնդիր է առաջացել և այն կարող է կրկնվել, մինչև չվերականգնեք գործարանային կարգավորումները:"
"Սարքում ներքին խնդիր է առաջացել: Մանրամասների համար կապվեք արտադրողի հետ:"
@@ -1641,8 +1648,8 @@
"Դուք սահմանել եք այս ծանուցումների կարևորությունը:"
"Կարևոր է, քանի որ որոշակի մարդիկ են ներգրավված:"
- "Թույլ տա՞լ %1$s հավելվածին %2$s հաշվով նոր Օգտվող ստեղծել:"
- "Թույլ տա՞լ %1$s հավելվածին %2$s հաշվով նոր Օգտվող ստեղծել (նման հաշվով Օգտվող արդեն գոյություն ունի):"
+ "Թույլ տա՞լ %1$s հավելվածին %2$s հաշվով նոր Օտատեր ստեղծել:"
+ "Թույլ տա՞լ %1$s հավելվածին %2$s հաշվով նոր Օտատեր ստեղծել (նման հաշվով Օտատեր արդեն գոյություն ունի):"
"Ավելացնել լեզու"
"Նախընտրելի տարածաշրջան"
"Մուտքագրեք լեզուն"
@@ -1657,7 +1664,7 @@
"Դիտելու համար բացել SMS հավելվածը"
"Որոշ գործառույթներ կարող են սահմանափակված լինել"
"Հպեք՝ ապակողպելու համար"
- "Օգտվողի տվյալները կողպված են"
+ "Օգտատիրոջ տվյալները կողպված են"
"Աշխատանքային պրոֆիլը կողպված է"
"Հպեք՝ այն ապակողպելու համար"
"Միացված է %1$s -ին"
@@ -1668,7 +1675,7 @@
"−%1$s "
"Վերակայե՞լ սարքը:"
"Հպեք՝ սարքը վերակայելու համար"
- "Ցուցադրական օգտվողը գործարկվում է…"
+ "Ցուցադրական օգտատերը գործարկվում է…"
"Սարաքը վերակայվում է…"
"Վերակայե՞լ սարքը:"
"Կատարված փոփոխությունները չեն պահվի, իսկ ցուցադրական նյութը կրկին կգործարկվի %1$s վայրկյանից…"
diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml
index fefca0ccd58b..aa90d5aa48ac 100644
--- a/core/res/res/values-in/strings.xml
+++ b/core/res/res/values-in/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Masalah sambungan atau kode MMI tidak valid."
"Operasi dibatasi untuk nomor panggilan tetap saja."
+ "Tidak dapat mengubah setelan penerusan panggilan dari ponsel saat roaming"
"Layanan telah diaktifkan."
"Layanan diaktifkan untuk:"
"Layanan telah dinonaktifkan."
@@ -96,6 +97,8 @@
"Layanan suara/data dicekal."
"Layanan suara/SMS dicekal."
"Semua layanan suara/data/SMS dicekal."
+ "Tidak dapat menjangkau jaringan"
+ "Untuk meningkatkan penerimaan sinyal, coba ubah jenis yang dipilih di Setelan > Data seluler > Jenis jaringan pilihan."
"Rekan meminta Mode TTY PENUH"
"Rekan meminta Mode TTY HCO"
"Rekan meminta Mode TTY VCO"
@@ -179,6 +182,8 @@
"Profil kerja dihapus karena tidak ada aplikasi admin."
"Aplikasi admin profil kerja tidak ada atau rusak. Akibatnya, profil kerja dan data terkait telah dihapus. Hubungi administrator untuk meminta bantuan."
"Profil kerja tidak tersedia lagi di perangkat ini."
+ "Traffic jaringan sedang dipantau"
+ "Tap untuk mempelajari lebih lanjut"
"Perangkat akan dihapus"
"Aplikasi admin kehilangan komponen atau rusak, dan tidak dapat digunakan. Perangkat sekarang akan dihapus. Hubungi administrator untuk meminta bantuan."
"Saya"
@@ -988,7 +993,7 @@
"Jepret gambar"
"Gunakan secara default untuk tindakan ini."
"Gunakan aplikasi yang berbeda"
- "Menghapus default di Setelan sistem > Apl > Terunduh."
+ "Menghapus default di Setelan sistem > Apl > Terdownload."
"Pilih tindakan"
"Pilih apl untuk perangkat USB"
"Tidak ada apl yang dapat melakukan tindakan ini."
@@ -1016,7 +1021,7 @@
"%1$s telah diluncurkan aslinya."
"Skala"
"Selalu tampilkan"
- "Aktifkan kembali dialog ini di Setelan sistem > Apl > Terunduh."
+ "Aktifkan kembali dialog ini di Setelan sistem > Apl > Terdownload."
"%1$s tidak mendukung setelan Ukuran layar saat ini dan dapat menunjukkan perilaku yang tak diharapkan."
"Selalu tampilkan"
"Apl %1$s (proses %2$s ) telah melanggar kebijakan StrictMode yang diberlakukannya sendiri."
@@ -1208,6 +1213,8 @@
"Memungkinkan aplikasi membaca sesi pemasangan. Tindakan ini memungkinkannya melihat detail tentang pemasangan paket aktif."
"minta pasang paket"
"Mengizinkan aplikasi meminta pemasangan paket."
+ "meminta mengabaikan pengoptimalan baterai"
+ "Mengizinkan aplikasi meminta izin untuk mengabaikan pengoptimalan baterai bagi aplikasi tersebut."
"Ketuk dua kali untuk kontrol perbesar/perkecil"
"Tidak dapat menambahkan widget."
"Buka"
@@ -1234,7 +1241,7 @@
"Wallpaper"
"Ubah wallpaper"
"Pendengar pemberitahuan"
- "Pemroses Realitas Maya"
+ "Pemroses VR"
"Penyedia ketentuan"
"Layanan penentu peringkat notifikasi"
"VPN diaktifkan"
@@ -1558,7 +1565,7 @@
"Pilih tahun"
"%1$s dihapus"
"Kantor %1$s "
- "Untuk melepas pin layar ini, sentuh & tahan tombol Kembali."
+ "Untuk melepas pin layar ini, sentuh & tahan Kembali dan Ringkasan."
"Pin dipasang ke aplikasi. Melepas pin tidak diizinkan di perangkat ini."
"Layar disematkan"
"Layar dicopot sematannya"
diff --git a/core/res/res/values-is-rIS/strings.xml b/core/res/res/values-is-rIS/strings.xml
index cdc6d4228a9e..563563561356 100644
--- a/core/res/res/values-is-rIS/strings.xml
+++ b/core/res/res/values-is-rIS/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Vandamál með tengingu eða ógild MMI-kóðaskipun."
"Aðgerð takmarkast við fast númeraval."
+ "Ekki er hægt að breyta stillingum fyrir framsendingu símtala úr símanum á meðan þú ert í reiki."
"Þjónustan var virkjuð."
"Þjónustan var virkjuð fyrir:"
"Þjónustan hefur verið gerð óvirk."
@@ -96,6 +97,8 @@
"Lokað er á radd-/gagnaþjónustu."
"Lokað er fyrir raddþjónustu/SMS-þjónustu."
"Lokað á alla radd-, gagna- og SMS-þjónustu."
+ "Ekki næst samband við símkerfi"
+ "Reyndu að breyta valinni gerð í Stillingar > Farsímakerfi > Valin símkerfistegund til að bæta móttökuskilyrðin."
"Jafningi bað um FULLA stillingu fjarrita"
"Jafningi bað um HCO-stillingu fjarrita"
"Jafningi bað um VCO-stillingu fjarrita"
@@ -179,6 +182,8 @@
"Vinnusniði eytt vegna þess að stjórnunarforrit vantar."
"Stjórnunarforrit vinnusniðsins vantar eða er skemmt. Vinnusniðinu og gögnum því tengdu hefur því verið eytt. Hafðu samband við kerfisstjórann til að fá frekari aðstoð."
"Vinnusniðið þitt er ekki lengur í boði á þessu tæki."
+ "Verið er að fylgjast með netumferð"
+ "Ýttu til að fá frekari upplýsingar"
"Tækið verður hreinsað"
"Stjórnunarforritið vantar íhluti eða er skemmt og ekki er hægt að nota það. Þurrkað verður út af tækinu. Hafðu samband við kerfisstjórann til að fá aðstoð."
"Ég"
@@ -1208,6 +1213,8 @@
"Leyfir forriti að lesa uppsetningarlotur. Þetta gerir því kleift að sjá upplýsingar um virkar pakkauppsetningar."
"fara fram á uppsetningu pakka"
"Leyfir forriti að fara fram á uppsetningu pakka."
+ "biðja um að hunsa rafhlöðusparnað"
+ "Gerir forriti kleift að biðja um heimild til að hunsa rafhlöðusparnað fyrir forritið."
"Ýttu tvisvar til að opna aðdráttarstýringar"
"Ekki tókst að bæta græju við."
"Áfram"
@@ -1558,7 +1565,7 @@
"Veldu ár"
"%1$s eytt"
"%1$s í vinnu"
- "Til að taka lásinn af þessari skjámynd skaltu halda inni bakkhnappinum."
+ "Til að losa þessa skjámynd skaltu halda „Til baka“ og „Yfirlit“ inni."
"Forritið er fest: Ekki er hægt að losa forrit í þessu tæki."
"Skjár festur"
"Skjár opnaður"
diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml
index b82470fe2254..a1f8fc2bbc20 100644
--- a/core/res/res/values-it/strings.xml
+++ b/core/res/res/values-it/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Problema di connessione o codice MMI non valido."
"Operazione limitata solo ai numeri di selezione fissa."
+ "Impossibile modificare le impostazioni di deviazione chiamate dal telefono durante il roaming."
"Il servizio è stato attivato."
"Il servizio è stato attivato per:"
"Il servizio è stato disattivato."
@@ -96,6 +97,8 @@
"I servizi vocali/dati sono bloccati."
"I servizi vocali/SMS sono bloccati."
"Tutti i servizi vocali/dati/SMS sono bloccati."
+ "Impossibile raggiungere la rete"
+ "Per migliorare la ricezione, prova a modificare il tipo selezionato in Impostazioni > Reti cellulari > Tipo di rete preferito."
"Peer ha richiesto la modalità TTY FULL"
"Peer ha richiesto la modalità TTY HCO"
"Peer ha richiesto la modalità TTY VCO"
@@ -179,6 +182,8 @@
"Profilo di lavoro eliminato per app di amministrazione mancante."
"L\'app di amministrazione dei profili di lavoro manca o è danneggiata. Di conseguenza, il tuo profilo di lavoro e i relativi dati sono stati eliminati. Contatta l\'amministratore per ricevere assistenza."
"Il tuo profilo di lavoro non è più disponibile sul dispositivo."
+ "Il traffico di rete è monitorato"
+ "Tocca per ulteriori informazioni"
"Il dispositivo verrà resettato"
"L\'app di amministrazione è danneggiata o mancano componenti, pertanto non è possibile utilizzarla. Il dispositivo verrà resettato. Contatta l\'amministratore per ricevere assistenza."
"Io"
@@ -1208,6 +1213,8 @@
"Consente a un\'applicazione di leggere le sessioni di installazione. L\'app può conoscere i dettagli sulle installazioni di pacchetti attive."
"richiesta di pacchetti di installazione"
"Consente a un\'applicazione di richiedere l\'installazione di pacchetti."
+ "chiedi di ignorare le ottimizzazioni della batteria"
+ "Consente a un\'app di chiedere l\'autorizzazione a ignorare le ottimizzazioni della batteria per quell\'app."
"Tocca due volte per il comando dello zoom"
"Aggiunta del widget non riuscita."
"Vai"
@@ -1234,7 +1241,7 @@
"Sfondo"
"Cambia sfondo"
"Listener di notifica"
- "Listener realtà virtuale"
+ "Listener VR"
"Provider condizioni"
"Servizio di classificazione delle notifiche"
"VPN attiva"
@@ -1558,7 +1565,7 @@
"Seleziona anno"
"%1$s eliminato"
"%1$s lavoro"
- "Per sbloccare questa schermata tieni premuta l\'opzione Indietro."
+ "Per sbloccare questa schermata tieni premuto Indietro e Panoramica."
"L\'app è bloccata. Su questo dispositivo non è consentito lo sblocco."
"Schermata bloccata"
"Schermata sbloccata"
diff --git a/core/res/res/values-iw/strings.xml b/core/res/res/values-iw/strings.xml
index 36c52057f38a..705cbe805ae5 100644
--- a/core/res/res/values-iw/strings.xml
+++ b/core/res/res/values-iw/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"בעיה בחיבור או קוד MMI לא חוקי."
"הפעולה מוגבלת למספרי חיוג קבועים בלבד."
+ "לא ניתן לשנות את הגדרות העברת השיחות מהטלפון שלך כשאתה במצב נדידה."
"השירות הופעל."
"השירות הופעל עבור:"
"השירות הושבת."
@@ -98,6 +99,8 @@
"שירותי הקול/נתונים חסומים."
"שירותי קול/SMS חסומים."
"כל השירותים של קול/נתונים/SMS חסומים."
+ "לא ניתן להתחבר לרשת"
+ "כדי לשפר את הקליטה, נסה לשנות את סוג הרשת באפשרות \'הגדרות\' > \'רשתות סלולריות\' > \'סוג רשת מועדף\'."
"העמית ביקש TTY במצב FULL"
"העמית ביקש TTY במצב HCO"
"העמית ביקש TTY במצב VCO"
@@ -183,6 +186,8 @@
"פרופיל העבודה נמחק מפני שחסרה אפליקציית ניהול."
"אפליקציית הניהול של פרופיל העבודה חסרה או פגומה. כתוצאה מכך פרופיל העבודה שלך נמחק, כולל כל הנתונים הקשורים אליו. לקבלת סיוע, פנה למנהל המערכת שלך."
"פרופיל העבודה שלך אינו זמין עוד במכשיר הזה."
+ "התנועה ברשת מנוטרת"
+ "למידע נוסף, הקש"
"תתבצע מחיקה של המכשיר"
"באפליקציית הניהול חסרים מרכיבים או שהיא פגומה ולא ניתן להשתמש בה. תתבצע כעת מחיקה של המכשיר. לקבלת סיוע, פנה למנהל המערכת שלך."
"אני"
@@ -324,7 +329,7 @@
"מאפשרת לאפליקציה ליצור חלקים ממנה השמורים בזיכרון באופן עקבי. הדבר עלול להגביל את הזיכרון הזמין לאפליקציות אחרות וכתוצאה מכך להאט את פעולת הטלוויזיה."
"מאפשר לאפליקציה להפוך חלקים ממנו לקבועים בזיכרון. פעולה זו עשויה להגביל את הזיכרון הזמין לאפליקציות אחרים ולהאט את פעולת הטלפון."
"מדידת נפח האחסון של אפליקציות"
- "מאפשר לאפליקציה לאחזר את הקוד, הנתונים, וגודלי הקבצים השמורים שלו"
+ "מאפשר לאפליקציה לאחזר את הקוד, הנתונים, וגודלי קובצי המטמון שלו"
"שינוי הגדרות מערכת"
"מאפשר לאפליקציה לשנות את נתוני הגדרות המערכת. אפליקציות זדוניות עלולות לשבש את תצורת המערכת שלך."
"הפעלה בעת אתחול"
@@ -599,7 +604,7 @@
"נייד"
"עבודה"
"פקס בעבודה"
- "מס\' פקס בבית"
+ "פקס בבית"
"זימונית"
"אחר"
"התקשרות חזרה"
@@ -612,7 +617,7 @@
"טלקס"
"TTY TDD"
"נייד של העבודה"
- "איתורית של העבודה"
+ "זימונית מהעבודה"
"מסייע"
"MMS"
"מותאם אישית"
@@ -1258,6 +1263,8 @@
"מאפשר לאפליקציה לקרוא הפעלות התקנה. הרשאה זו מאפשרת לה לראות פרטים על התקנות פעילות של חבילות."
"בקשה להתקנת חבילות"
"מתיר לאפליקציה לבקש התקנה של חבילות."
+ "בקשה להתעלם מאופטימיזציות של הסוללה"
+ "מאפשר לאפליקציה לבקש רשות להתעלם מאופטימיזציות של הסוללה לאפליקציה הזו."
"הקש פעמיים לבקרת מרחק מתצוגה"
"לא ניתן להוסיף widget."
"התחל"
@@ -1612,7 +1619,7 @@
"בחר שנה"
"%1$s נמחק"
"עבודה %1$s "
- "כדי לבטל את הצמדת המסך הזה, לחץ לחיצה ממושכת על הלחצן \'הקודם\'."
+ "כדי לבטל את ההצמדה של מסך זה, גע בלחצן \'הקודם\' והחזק אותו, ואז גע בלחצן \'סקירה\'."
"האפליקציה מוצמדת: ביטול ההצמדה אסור במכשיר הזה."
"המסך מוצמד"
"הצמדת המסך בוטלה"
diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml
index 5550900543e4..2614d4fbddca 100644
--- a/core/res/res/values-ja/strings.xml
+++ b/core/res/res/values-ja/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"接続に問題があるか、MMIコードが正しくありません。"
"発信番号制限で指定された番号に対してのみ操作できます。"
+ "ローミング中はスマートフォンから着信転送設定の変更はできません。"
"サービスが有効になりました。"
"次のサービスが有効になりました:"
"サービスが無効になりました。"
@@ -96,6 +97,8 @@
"音声/データサービスがブロックされています。"
"音声/SMSサービスがブロックされています。"
"すべての音声/データ/SMSサービスがブロックされています。"
+ "ネットワークにアクセスできません"
+ "受信状態を改善するには、[設定] > [モバイル ネットワーク] > [優先ネットワーク タイプ] で選択したタイプを変更してみてください。"
"ピアから、TTYモードをFULLにするようリクエストされました"
"ピアから、TTYモードをHCOにするようリクエストされました"
"ピアから、TTYモードをVCOにするようリクエストされました"
@@ -179,6 +182,8 @@
"管理アプリがないため仕事用プロファイルが削除されました。"
"仕事用プロファイルの管理アプリがないか、破損しています。そのため仕事用プロファイルと関連データが削除されました。管理者にサポートをご依頼ください。"
"お使いの仕事用プロファイルはこの端末で使用できなくなりました"
+ "ネットワーク トラフィックの監視中"
+ "詳細を確認するにはタップします"
"端末のデータが消去されます"
"管理アプリの構成要素が不足しているか、アプリが破損しているため、ご利用になれません。端末のデータはこれから消去されます。管理者にサポートをご依頼ください。"
"自分"
@@ -1208,6 +1213,8 @@
"インストールセッションの読み取りをアプリに許可します。これにより、アプリはアクティブパッケージのインストールに関する詳細情報を参照できるようになります。"
"インストールパッケージのリクエスト"
"パッケージのインストールをリクエストすることをアプリケーションに許可します。"
+ "電池の最適化を無視するかどうかの確認"
+ "電池の最適化の無視についてアプリが確認することを許可します。"
"ダブルタップでズームします"
"ウィジェットを追加できませんでした。"
"移動"
@@ -1558,7 +1565,7 @@
"年を選択"
"%1$s を削除しました"
"仕事の%1$s "
- "この画面の固定を解除するには [戻る] を押し続けます。"
+ "この画面の固定を解除するには [戻る] と [概要] を押し続けます。"
"アプリは固定されています。この端末では固定を解除できません。"
"画面を固定しました"
"画面固定を解除しました"
diff --git a/core/res/res/values-ka-rGE/strings.xml b/core/res/res/values-ka-rGE/strings.xml
index a8fed8b577b5..55de3c3de0fe 100644
--- a/core/res/res/values-ka-rGE/strings.xml
+++ b/core/res/res/values-ka-rGE/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"კავშირის პრობლემა ან არასწორი MMI კოდი."
"ოპერაცია შეზღუდულია მხოლოდ დაშვებულ ნომრებზე."
+ "ზარის გადამისამართების პარამეტრების თქვენი ტელეფონიდან შეცვლა როუმინგისას ვერ მოხერხდება."
"სერვისი ჩართულია."
"სერვისი ჩართულია შემდეგისთვის:"
"სერვისი გამორთულია."
@@ -96,6 +97,8 @@
"ხმის/მონაცემების სერვისები დაბლოკილია."
"ყველა ხმოვანი/SMS-ის სერვისი დაბლოკილია."
"ხმის/მონაცემების/SMS-ის ყველა სერვისი დაბლოკილია."
+ "ქსელთან დაკავშირება ვერ ხერხდება"
+ "მიღების გასაუმჯობესებლად ცადეთ არჩეული ტიპის შეცვლა აქ: პარამეტრები > ფიჭური ქსელები > ქსელის სასურველი ტიპი."
"მოთხოვნილია კვანძი TTY რეჟიმი FULL"
"მოთხოვნილია კვანძი TTY რეჟიმი HCO"
"მოთხოვნილია კვანძი TTY რეჟიმი VCO"
@@ -179,6 +182,8 @@
"სამუშაო პროფილი წაშლილია ადმინისტრატორის აპლიკაციის არ ქონის გამო."
"სამუშაო პროფილის ადმინისტრატორის აპლიკაცია გამოტოვებული ან დაზიანებულია. შედეგად, თქვენი სამუშაო პროფილი და მასთან დაკავშირებული მონაცემები წაიშალა. დახმარებისათვის დაუკავშირდით თქვენს ადმინისტრატორს."
"თქვენი სამუშაო პროფილი აღარ არის ხელმისაწვდომი ამ მოწყობილობაზე."
+ "ქსელის ტრაფიკი მონიტორინგს გადის"
+ "შეეხეთ, რათა შეიტყოთ მეტი"
"თქვენი მოწყობილობა წაიშლება"
"ადმინისტრატორის აპლიკაციას კომპონენტები აკლია ან დაზიანებულია, შესაბამისად, მისი გამოყენება ვერ მოხერხდება. თქვენი მოწყობილობა წაიშლება. დახმარებისათვის დაუკავშირდით თქვენს ადმინისტრატორს."
"მე"
@@ -1208,6 +1213,8 @@
"საშუალებას აძლევს აპლიკაციას წაიკითხოს ინსტალაციის სესიები. ამით მას საშუალება აქვს იხილოს პაკეტის აქტიური ინსტალაციები."
"პაკეტების ინსტალაციის მოთხოვნა"
"აპლიკაციას შეეძლება მოითხოვოს პაკეტების ინსტალაცია."
+ "ბატარეის ოპტიმიზაციის იგნორირების მოთხოვნა"
+ "საშუალებას მისცემს აპს, მოითხოვოს მასთან დაკავშირებული ბატარეის ოპტიმიზაციის იგნორირების ნებართვა."
"მასშტაბის ცვლილებისთვის შეეხეთ ორჯერ"
"ვერ დაემატა ვიჯეტი."
"გადასვლა"
@@ -1558,7 +1565,7 @@
"აირჩიეთ წელი"
"%1$s წაიშალა"
"სამსახური %1$s "
- "ამ ეკრანის ჩამაგრების მოსახსნელად, ხანგრძლივად შეეხეთ ღილაკს „უკან“."
+ "ამ ეკრანის ჩამაგრების მოსახსნელად, ხანგრძლივად შეეხეთ ღილაკს „უკან და მიმოხილვა“."
"აპი მიმაგრებულია: მიმაგრების მოხსნა არ არის ნებადართული ამ მოწყობილობაზე."
"ეკრანი დაფიქსირდა"
"ეკრანს ფიქსაცია მოეხსნა"
diff --git a/core/res/res/values-kk-rKZ/strings.xml b/core/res/res/values-kk-rKZ/strings.xml
index 00264ad8969a..7f9bc230993c 100644
--- a/core/res/res/values-kk-rKZ/strings.xml
+++ b/core/res/res/values-kk-rKZ/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Байланыс мәселесі немесе MMИ коды жарамсыз."
"Әрекет анықталған сандарды теруге шектелген."
+ "Роуминг кезінде телефоннан қоңырауды басқа нөмірге бағыттау параметрлері өзгертілмейді."
"Қызмет қосылған."
"Қызмет келесі мақсат үшін қосылды:"
"Қызмет өшірілген."
@@ -96,6 +97,8 @@
"Дыбыс/дерекқор қызметтері бөгелген."
"Дауыс/SMS қызметтері бөгелген."
"Барлық дыбыс/дерекқор/SMS қызметтері бөгелген."
+ "Желіге қосылу мүмкін емес"
+ "Қабылдау мүмкіндігін жақсарту үшін \"Параметрлер > Ұялы желілер > Қалаған желі түрін\" таңдап, басқасына өзгертіп көріңіз."
"Пир TTY режимі ТОЛЫҚ сұрады"
"Пир TTY режимінің HCO сұрады"
"Пир TTY режимінің VCO сұрады"
@@ -179,6 +182,8 @@
"Басқару қолданбасы болмағандықтан жұмыс профилі жойылды."
"Жұмыс профилінің басқару қолданбасы жоқ немесе бүлінген. Нәтижесінде жұмыс профиліңіз және қатысты деректер жойылды. Көмек алу үшін әкімшіге хабарласыңыз."
"Жұмыс профиліңіз осы құрылғыда енді қолжетімді емес."
+ "Желі трафигі бақылануда"
+ "Толығырақ мәліметтер үшін түртіңіз"
"Құрылғыңыздағы деректер өшіріледі"
"Басқару қолданбасында құрамдастар жетіспейді немесе ол бүлінген және оны пайдалану мүмкін емес. Құрылғыңыздағы деректер қазір өшіріледі. Көмек алу үшін әкімшіге хабарласыңыз."
"Мен"
@@ -1208,6 +1213,8 @@
"Қолданбаға орнату сеанстарын оқуға рұқсат етеді. Бұл оған белсенді бума орнатулары туралы мәліметтерді көруге рұқсат етеді."
"орнату бумаларын сұрау"
"Қолданбаның бумаларды орнатуға рұқсат сұрауына мүмкіндік береді."
+ "батареяны оңтайландыру әрекетін елемеуді сұрау"
+ "Қолданба батареяны оңтайландыру әрекетін елемеуді сұрай алады."
"Масштабтау параметрін басқару үшін екі рет түртіңіз"
"Виджетті қосу."
"Өту"
@@ -1558,7 +1565,7 @@
"Жыл таңдау"
"%1$s жойылды"
"Жұмыс %1$s "
- "Осы экранды босату үшін \"Артқа\" түймесін басып тұрыңыз."
+ "Бұл экранды ашу үшін \"Артқа\" және \"Шолу\" түймелерін қатар басып тұрыңыз"
"Бағдарлама белгіленді: Бұл құрылғыда белгіні алуға рұқсат берілмейді."
"Экран түйрелді"
"Экран босатылды"
diff --git a/core/res/res/values-km-rKH/strings.xml b/core/res/res/values-km-rKH/strings.xml
index feaef821e535..d00c8398848d 100644
--- a/core/res/res/values-km-rKH/strings.xml
+++ b/core/res/res/values-km-rKH/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"បញ្ហាក្នុងការតភ្ជាប់ ឬកូដ MMI មិនត្រឹមត្រូវ។"
"ប្រតិបត្តិការត្រូវបានដាក់កម្រិតចំពោះលេខហៅថេរតែប៉ុណ្ណោះ។"
+ "មិនអាចប្តូរការកំណត់នៃការបញ្ជូនការហៅបន្តពីទូរសព្ទរបស់អ្នកបានទេ ខណៈពេលដែលអ្នកកំពុងប្រើសេវារ៉ូមីង។"
"បានបើកសេវាកម្ម។"
"បានបើកសេវាកម្មសម្រាប់៖"
"បានបិទសេវាកម្ម។"
@@ -96,6 +97,8 @@
"បានទប់ស្កាត់សេវាកម្មសំឡេង/ទិន្នន័យ។"
"បានទប់ស្កាត់សេវាកម្មសំឡេង/សារ SMS ។"
"សំឡេង/ទិន្នន័យ/សេវាកម្ម SMS ទាំងអស់ត្រូវបានទប់ស្កាត់។"
+ "មិនអាចភ្ជាប់ទៅបណ្តាញបានទេ"
+ "ដើម្បីធ្វើឲ្យការទទួលរលកសញ្ញាប្រសើរជាងមុន សូមសាកល្បងប្តូរប្រភេទដែលបានជ្រើសរើសនៅក្នុង ការកំណត់ > បណ្តាញចល័ត > ប្រភេទបណ្តាញដែលពេញចិត្ត។"
"ម៉ាស៊ីនកូនបានស្នើ TTY Mode FULL"
"ម៉ាស៊ីនកូនបានស្នើ TTY Mode HCO"
"ម៉ាស៊ីនកូនបានស្នើ TTY Mode VCO"
@@ -179,6 +182,8 @@
"ប្រវត្តិរូបការងារត្រូវបានលុបដោយសារបាត់បង់កម្មវិធីគ្រប់គ្រង។"
"ប្រវត្តិរូបការងាររបស់អ្នកអាចបាត់បង់ ឬមានបញ្ហា។ ជាលទ្ធផល ប្រវត្តិរូបការងាររបស់អ្នក និងទិន្នន័យដែលពាក់ព័ន្ធត្រូវបានលុប។ ទំនាក់ទំនងអ្នកគ្រប់គ្រងរបស់អ្នកសម្រាប់ជំនួយ។"
"ប្រវត្តិរូបការងាររបស់អ្នកមិនមាននៅលើឧបករណ៍នេះទៀតទេ។"
+ "កំពុងតាមដានចរាចរណ៍បណ្តាញ"
+ "ចុចដើម្បីស្វែងយល់បន្ថែម"
"ឧបករណ៍របស់អ្នកនឹងត្រូវបានលុប"
"កម្មវិធីគ្រប់គ្រងបាត់បង់សមាសធាតុ ឬមានបញ្ហា ហើយមិនអាចប្រើបានទេ។ ឧបករណ៍របស់អ្នកនឹងត្រូវបានលុបឥឡូវនេះ។ ទំនាក់ទំនងអ្នកគ្រប់គ្រងរបស់អ្នកសម្រាប់ជំនួយ។"
"ខ្ញុំ"
@@ -605,9 +610,9 @@
"វិទ្យុ"
"ទូរសារ"
"TTY TDD"
- "ទូរស័ព្ទកន្លែងធ្វើការ"
+ "ទូរសព្ទកន្លែងធ្វើការ"
"ភេយ័រកន្លែងធ្វើការ"
- "អ្នកជំនួយការ"
+ "ជំនួយការ"
"សារ MMS"
"តាមតម្រូវការ"
"ថ្ងៃខួបកំណើត"
@@ -640,10 +645,10 @@
"ផ្សេងៗ"
"តាមតម្រូវការ"
"តាមបំណង"
- "អ្នកជំនួយការ"
+ "ជំនួយការ"
"បងប្អូនប្រុស"
"កូន"
- "ដៃគូក្នុងស្រុក"
+ "ដៃគូរួមរស់ជាមួយគ្នា"
"ឪពុក"
"មិត្តភ័ក្ដិ"
"អ្នកគ្រប់គ្រង"
@@ -1210,6 +1215,8 @@
"ឲ្យកម្មវិធីអានសម័យដំឡើង។ វាអនុញ្ញាតឲ្យឃើញព័ត៌មានលម្អិតអំពីការដំឡើងកញ្ចប់សកម្ម។"
"ស្នើសុំកញ្ចប់ដំឡើង"
"អនុញ្ញាតឲ្យកម្មវិធីស្នើសុំដំឡើងកញ្ចប់ (ឯកសារ/មាតិកា)។"
+ "ស្នើឲ្យមិនអើពើចំពោះការបង្កើនប្រសិទ្ធភាពថ្ម"
+ "អនុញ្ញាតឲ្យកម្មវិធីស្នើសុំការអនុញ្ញាត ដើម្បីមិនអើពើចំពោះការបង្កើនប្រសិទ្ធភាពថ្ម។"
"ប៉ះ ពីរដងដើម្បីពិនិត្យការពង្រីក"
"មិនអាចបន្ថែមធាតុក្រាហ្វិក។"
"ទៅ"
@@ -1560,7 +1567,7 @@
"ជ្រើសឆ្នាំ"
"បានលុប %1$s "
"កន្លែងធ្វើការ %1$s "
- "ដើម្បីផ្តាច់អេក្រង់នេះ សូមប៉ះ និងសង្កត់ប៊ូតុងថយក្រោយឲ្យជាប់។"
+ "ដើម្បីដកការខ្ទាស់អេក្រង់នេះ សូមសង្កត់ប៉ូតុងថយក្រោយ និងប៊ូតុងថ្មីឲ្យជាប់។"
"កម្មវិធីនេះត្រូវបានខ្ទាស់។ មិនអនុញ្ញាតឲ្យដោះការខ្ទាស់នៅលើឧបករណ៍នេះទេ។"
"បានភ្ជាប់អេក្រង់"
"មិនបានភ្ជាប់អេក្រង់"
diff --git a/core/res/res/values-kn-rIN/strings.xml b/core/res/res/values-kn-rIN/strings.xml
index 7cb97a7c56b7..ab8d33a7352f 100644
--- a/core/res/res/values-kn-rIN/strings.xml
+++ b/core/res/res/values-kn-rIN/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"ಸಂಪರ್ಕ ಸಮಸ್ಯೆ ಇಲ್ಲವೇ ಅಮಾನ್ಯ MMI ಕೋಡ್."
"ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಸ್ಥಿರ ದೂರವಾಣಿ ಸಂಖ್ಯೆಗಳಿಗೆ ಮಾತ್ರ ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ."
+ "ನೀವು ರೋಮಿಂಗ್ನಲ್ಲಿರುವಾಗ ನಿಮ್ಮ ಫೋನ್ನಿಂದ ಕರೆ ಫಾರ್ವರ್ಡ್ ಮಾಡುವಿಕೆಯ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."
"ಸೇವೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ."
"ಸೇವೆಯನ್ನು ಇವುಗಳಿಗಾಗಿ ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ:"
"ಸೇವೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ."
@@ -96,6 +97,8 @@
"ಧ್ವನಿ/ಡೇಟಾ ಸೇವೆಗಳನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ."
"ಧ್ವನಿ/SMS ಸೇವೆಗಳನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ."
"ಎಲ್ಲಾ ದ್ವನಿ/ಡೇಟಾ/SMS ಸೇವೆಗಳನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ."
+ "ನೆಟ್ವರ್ಕ್ ತಲುಪಲು ಸಾಧ್ಯವಿಲ್ಲ"
+ "ಸ್ವೀಕರಿಸುವುದನ್ನು ಸುಧಾರಿಸಲು, ಸೆಟ್ಟಿಂಗ್ಗಳು > ಸೆಲ್ಯುಲಾರ್ ನೆಟ್ವರ್ಕ್ > ಪ್ರಾಶಸ್ತ್ಯ ನೀಡಲಾದ ನೆಟ್ವರ್ಕ್ ಪ್ರಕಾರದಲ್ಲಿ ಆಯ್ಕೆ ಮಾಡಲಾದ ರೀತಿಯನ್ನು ಬದಲಾಯಿಸಲು ಪ್ರಯತ್ನಿಸಿ."
"ಪೀರ್ ವಿನಂತಿಸಿಕೊಂಡ TTY ಮೋಡ್ ಪೂರ್ಣಗೊಂಡಿದೆ"
"ಪೀರ್ ವಿನಂತಿಸಿಕೊಂಡ TTY ಮೋಡ್ HCO"
"ಪೀರ್ ವಿನಂತಿಸಿಕೊಂಡ TTY ಮೋಡ್ VCO"
@@ -179,6 +182,8 @@
"ತಪ್ಪಿಹೋಗಿರುವ ನಿರ್ವಾಹಕ ಅಪ್ಲಿಕೇಶನ್ನಿಂದಾಗಿ ಕೆಲಸದ ಪ್ರೊಫೈಲ್ ಅನ್ನು ಅಳಿಸಲಾಗಿದೆ."
"ಕೆಲಸದ ಪ್ರೊಫೈಲ್ ನಿರ್ವಾಹಕ ಅಪ್ಲಿಕೇಶನ್ ಕಳೆದು ಹೋಗಿದೆ ಅಥವಾ ಹಾಳಾಗಿದೆ. ಇದರ ಪರಿಣಾಮವಾಗಿ ನಿಮ್ಮ ಕೆಲಸದ ಪ್ರೊಫೈಲ್ ಮತ್ತು ಅದಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಡೇಟಾವನ್ನು ಅಳಿಸಲಾಗಿದೆ. ಸಹಾಯಕ್ಕಾಗಿ ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ."
"ನಿಮ್ಮ ಕಾರ್ಯ ಪ್ರೊಫೈಲ್ ಈ ಸಾಧನದಲ್ಲಿ ಇನ್ನು ಮುಂದೆ ಲಭ್ಯವಿರುವುದಿಲ್ಲ."
+ "ನೆಟ್ವರ್ಕ್ ಟ್ರಾಫಿಕ್ ಅನ್ನು ಮಾನಿಟರ್ ಮಾಡಲಾಗುತ್ತಿದೆ"
+ "ಇನ್ನಷ್ಟು ತಿಳಿಯಲು ಟ್ಯಾಪ್ ಮಾಡಿ"
"ನಿಮ್ಮ ಸಾಧನವನ್ನು ಅಳಿಸಲಾಗುತ್ತದೆ"
"ನಿರ್ವಾಹಕ ಅಪ್ಲಿಕೇಶನ್ನ ಅಂಶಗಳು ಕಾಣೆಯಾಗಿವೆ ಅಥವಾ ದೋಷಪೂರಿತವಾಗಿದೆ ಮತ್ತು ಬಳಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ನಿಮ್ಮ ಸಾಧನವನ್ನು ಇದೀಗ ಅಳಿಸಲಾಗುತ್ತದೆ. ಸಹಾಯಕ್ಕಾಗಿ ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ."
"ನಾನು"
@@ -958,9 +963,9 @@
"%1$s ಚಾಲನೆಯಲ್ಲಿದೆ"
"ಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ ಅಥವಾ ಅಪ್ಲಿಕೇಶನ್ ನಿಲ್ಲಿಸಲು ಟ್ಯಾಪ್ ಮಾಡಿ."
"ಸರಿ"
- "ರದ್ದುಮಾಡು"
+ "ರದ್ದುಮಾಡಿ"
"ಸರಿ"
- "ರದ್ದುಮಾಡು"
+ "ರದ್ದುಮಾಡಿ"
"ಗಮನಿಸಿ"
"ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ..."
"ಆನ್ ಮಾಡು"
@@ -997,7 +1002,7 @@
"%1$s ನಿಲ್ಲುತ್ತಲೇ ಇರುತ್ತದೆ"
"%1$s ನಿಲ್ಲುತ್ತಲೇ ಇರುತ್ತದೆ"
"ಅಪ್ಲಿಕೇಶನ್ ಮತ್ತೆ ತೆರೆಯಿರಿ"
- "ಪ್ರತಿಕ್ರಿಯೆ ಕಳುಹಿಸು"
+ "ಪ್ರತಿಕ್ರಿಯೆ ಕಳುಹಿಸಿ"
"ಮುಚ್ಚು"
"ಸಾಧನವು ಮರುಪ್ರಾರಂಭವಾಗುವವರೆಗೂ ಮ್ಯೂಟ್ ಮಾಡಿ"
"ನಿರೀಕ್ಷಿಸು"
@@ -1118,7 +1123,7 @@
"ಇದು ನಿಮ್ಮ ಮೊಬೈಲ್ ಖಾತೆಯಲ್ಲಿ ""ಶುಲ್ಕಗಳನ್ನು ವಿಧಿಸುವುದಕ್ಕೆ ಕಾರಣವಾಗಬಹುದು" "."
"ಇದು ನಿಮ್ಮ ಮೊಬೈಲ್ ಖಾತೆಯಲ್ಲಿ ಶುಲ್ಕಗಳನ್ನು ವಿಧಿಸುವುದಕ್ಕೆ ಕಾರಣವಾಗುತ್ತದೆ."
"ಕಳುಹಿಸು"
- "ರದ್ದುಮಾಡು"
+ "ರದ್ದುಮಾಡಿ"
"ನನ್ನ ಆಯ್ಕೆಯನ್ನು ನೆನಪಿಡು"
"ನೀವು ಇದನ್ನು ನಂತರದಲ್ಲಿ ಸೆಟ್ಟಿಂಗ್ಗಳು > ಅಪ್ಲಿಕೇಶನ್ಗಳಲ್ಲಿ ಬದಲಾಯಿಸಬಹುದು"
"ಯಾವಾಗಲೂ ಅನುಮತಿಸು"
@@ -1208,6 +1213,8 @@
"ಸ್ಥಾಪಿತ ಸೆಷನ್ಗಳನ್ನು ಓದಲು ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಅನುಮತಿಸುತ್ತದೆ. ಸಕ್ರಿಯ ಪ್ಯಾಕೇಜ್ ಸ್ಥಾಪನೆಗಳ ಕುರಿತು ವಿವರಣೆಗಳನ್ನು ವೀಕ್ಷಿಸಲು ಇದು ಅನುಮತಿಸುತ್ತದೆ."
"ಸ್ಥಾಪನೆ ಪ್ಯಾಕೇಜ್ಗಳನ್ನು ವಿನಂತಿಸಿ"
"ಪ್ಯಾಕೇಜ್ಗಳ ಸ್ಥಾಪನೆಯನ್ನು ವಿನಂತಿಸಲು ಅಪ್ಲಿಕೇಶನ್ಗೆ ಅನುಮತಿಸುತ್ತದೆ."
+ "ಬ್ಯಾಟರಿ ಆಪ್ಟಿಮೈಸೇಶನ್ಗಳನ್ನು ಕಡೆಗಣಿಸಲು ಕೇಳಿ"
+ "ಈ ಅಪ್ಲಿಕೇಶನ್ಗೆ ಬ್ಯಾಟರಿ ಆಪ್ಟಿಮೈಸೇಶನ್ಗಳನ್ನು ಕಡೆಗಣಿಸುವುದಕ್ಕೆ ಅನುಮತಿಯನ್ನು ಕೇಳಲು ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಅನುಮತಿಸುತ್ತದೆ."
"ಝೂಮ್ ನಿಯಂತ್ರಿಸಲು ಎರಡು ಬಾರಿ ಟ್ಯಾಪ್ ಮಾಡಿ"
"ವಿಜೆಟ್ ಸೇರಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ."
"ಹೋಗು"
@@ -1303,7 +1310,7 @@
"ಹಿಂದಿನ ತಿಂಗಳು"
"ಮುಂದಿನ ತಿಂಗಳು"
"Alt"
- "ರದ್ದುಮಾಡು"
+ "ರದ್ದುಮಾಡಿ"
"ಅಳಿಸು"
"ಮುಗಿದಿದೆ"
"ಮೋಡ್ ಬದಲಾವಣೆ"
@@ -1558,7 +1565,7 @@
"ವರ್ಷವನ್ನು ಆಯ್ಕೆಮಾಡಿ"
"%1$s ಅಳಿಸಲಾಗಿದೆ"
"ಕೆಲಸ %1$s "
- "ಈ ಪರದೆಯನ್ನು ಅನ್ಪಿನ್ ಮಾಡಲು, ಸ್ಪರ್ಶಿಸಿ ಮತ್ತು ಹಿಂಂದೆ ಒತ್ತಿ ಹಿಡಿಯಿರಿ."
+ "ಈ ಪರದೆಯನ್ನು ಅನ್ಪಿನ್ ಮಾಡಲು, ಅವಲೋಕನವನ್ನು ಸ್ಪರ್ಶಿಸಿ ಮತ್ತು ಹೋಲ್ಡ್ ಮಾಡಿ."
"ಅಪ್ಲಿಕೇಶನ್ ಪಿನ್ ಮಾಡಲಾಗಿದೆ: ಈ ಸಾಧನದಲ್ಲಿ ಅನ್ಪಿನ್ ಮಾಡುವುದನ್ನು ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ."
"ಸ್ಕ್ರೀನ್ ಪಿನ್ ಮಾಡಲಾಗಿದೆ"
"ಸ್ಕ್ರೀನ್ ಅನ್ಪಿನ್ ಮಾಡಲಾಗಿದೆ"
@@ -1672,7 +1679,7 @@
"ಸಾಧನ ಮರುಹೊಂದಿಸಲಾಗುತ್ತಿದೆ..."
"ಸಾಧನವನ್ನು ಮರುಹೊಂದಿಸುವುದೇ?"
"ನೀವು ಯಾವುದೇ ಬದಲಾವಣೆಗಳನ್ನು ಕಳೆದುಕೊಳ್ಳುತ್ತೀರಿ ಮತ್ತು %1$s ಸೆಕೆಂಡುಗಳಲ್ಲಿ ಡೆಮೋ ಮತ್ತೆ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ..."
- "ರದ್ದುಮಾಡು"
+ "ರದ್ದುಮಾಡಿ"
"ಈಗಲೇ ಮರುಹೊಂದಿಸು"
"ನಿರ್ಬಂಧಗಳು ಇಲ್ಲದೆಯೇ ಈ ಸಾಧನವನ್ನು ಬಳಸಲು ಫ್ಯಾಕ್ಟರಿ ಮರುಹೊಂದಿಸಿ"
"ಇನ್ನಷ್ಟು ತಿಳಿಯಲು ಸ್ಪರ್ಶಿಸಿ."
diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml
index b23a96637c57..4e704d67767f 100644
--- a/core/res/res/values-ko/strings.xml
+++ b/core/res/res/values-ko/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"연결에 문제가 있거나 MMI 코드가 잘못되었습니다."
"발신 허용 번호에서만 수행할 수 있는 작업입니다."
+ "로밍 중에는 착신 전환 설정을 변경할 수 없습니다."
"서비스를 사용하도록 설정했습니다."
"사용 설정된 서비스 목록:"
"서비스가 사용 중지되었습니다."
@@ -96,6 +97,8 @@
"음성/데이터 서비스가 차단되었습니다."
"음성/SMS 서비스가 차단되었습니다."
"모든 음성/데이터/SMS 서비스가 차단되었습니다."
+ "네트워크에 연결할 수 없습니다."
+ "수신 상태를 개선하려면 설정 > 이동통신망 > 기본 네트워크 유형에서 선택된 유형을 변경해 보세요."
"피어가 TTY 모드 FULL을 요청했습니다."
"피어가 TTY 모드 HCO를 요청했습니다."
"피어가 TTY 모드 VCO를 요청했습니다."
@@ -179,6 +182,8 @@
"관리 앱이 누락되어 직장 프로필이 삭제되었습니다."
"직장 프로필 관리 앱이 없거나 손상되어 직장 프로필 및 관련 데이터가 삭제되었습니다. 도움이 필요한 경우 관리자에게 문의하세요."
"직장 프로필을 이 기기에서 더 이상 사용할 수 없습니다."
+ "네트워크 트래픽이 모니터링되고 있음"
+ "자세한 내용을 보려면 탭하세요."
"기기가 삭제됩니다."
"관리 앱이 손상되었거나 구성요소가 없어서 사용할 수 없습니다. 이제 기기가 삭제됩니다. 도움이 필요한 경우 관리자에게 문의하세요."
"나"
@@ -248,17 +253,17 @@
"위치"
"이 기기의 위치정보에 액세스"
"캘린더"
- "일정에 접근할 수 있도록"
+ "캘린더에 액세스"
"SMS"
- "문자 메시지를 보내고 확인할 수 있도록"
+ "SMS 메시지 전송 및 보기"
"저장"
"기기 사진, 미디어, 파일 액세스"
"마이크"
- "오디오를 녹음할 수 있도록"
+ "오디오 녹음"
"카메라"
"사진 및 동영상 촬영"
"전화"
- "통화 상태를 관리하거나 전화를 걸 수 있도록"
+ "전화 걸기 및 관리"
"신체 센서"
"생체 신호에 관한 센서 데이터에 액세스"
"창 콘텐츠 가져오기"
@@ -284,11 +289,11 @@
"바로가기 제거"
"애플리케이션이 사용자의 작업 없이 홈 화면 바로가기를 삭제할 수 있도록 허용합니다."
"발신전화 경로 전환"
- "통화를 다른 번호로 리디렉션하거나 통화를 완전히 중단하는 옵션을 사용하여, 앱에서 발신 통화 중에 전화를 거는 번호를 볼 수 있게 허용합니다."
+ "다른 번호로 다시 걸거나 중단시키는 옵션을 사용하여 발신한 번호를 볼 수 있게 허용합니다."
"문자 메시지 받기(SMS)"
- "앱이 SMS 메시지를 수신하고 처리할 수 있도록 허용합니다. 이는 앱이 사용자에게 표시하지 않고 기기로 전송된 메시지를 모니터링 또는 삭제할 수도 있다는 것을 의미합니다."
+ "앱이 SMS 메시지를 수신하고 처리할 수 있도록 허용합니다. 앱이 사용자에게 표시하지 않고 기기로 전송된 메시지를 확인 또는 삭제할 수도 있습니다."
"문자 메시지 받기(MMS)"
- "앱이 MMS 메시지를 수신하고 처리할 수 있도록 허용합니다. 이는 앱이 사용자에게 표시하지 않고 기기로 전송된 메시지를 모니터링 또는 삭제할 수도 있다는 것을 의미합니다."
+ "앱이 MMS 메시지를 수신하고 처리할 수 있도록 허용합니다. 앱이 사용자에게 표시하지 않고 기기로 전송된 메시지를 확인 또는 삭제할 수도 있습니다."
"셀 브로드캐스트 메시지 읽기"
"앱이 기기가 수신한 셀 브로드캐스트 메시지를 읽을 수 있도록 합니다. 비상 상황임을 알리기 위해 일부 지역에서 셀 브로드캐스트 경고가 전달됩니다. 비상 셀 브로드캐스트를 수신할 때 악성 앱이 기기의 성능이나 작동을 방해할 수 있습니다."
"가입된 피드 읽기"
@@ -346,7 +351,7 @@
"앱에서 수신 및 발신 통화 데이터를 포함하여 TV의 통화 기록을 수정할 수 있도록 허용합니다. 이 경우 악성 앱이 통화 기록을 삭제하거나 수정할 수도 있습니다."
"앱에서 수신 및 발신 통화 데이터를 포함하여 휴대전화의 통화 기록을 수정할 수 있도록 허용합니다. 이 경우 악성 앱이 통화 기록을 지우거나 수정할 수 있습니다."
"신체 센서(예: 심박수 모니터)에 액세스"
- "앱이 심박수와 같은 신체 상태를 모니터링하는 센서의 데이터에 액세스하도록 허용합니다."
+ "앱이 심박수와 같은 신체 상태를 확인하는 센서의 데이터에 접근하도록 허용합니다."
"캘린더 일정 및 기밀정보 읽기"
"앱이 친구나 동료의 일정을 포함하여 태블릿에 저장된 모든 캘린더 일정을 읽을 수 있도록 허용합니다. 이 경우 앱이 비밀유지 또는 기밀성을 무시하고 캘린더 데이터를 공유 또는 저장할 수도 있습니다."
"앱이 친구 및 동료들의 일정을 포함하여 TV에 저장된 모든 캘린더 일정을 읽을 수 있도록 허용합니다. 이 경우 앱이 데이터의 민감성 또는 기밀성과 상관없이 캘린더 데이터를 공유하거나 저장할 수 있게 됩니다."
@@ -355,8 +360,8 @@
"앱이 친구나 동료의 일정을 포함하여 태블릿에서 수정할 수 있는 일정을 추가, 삭제, 변경할 수 있도록 허용합니다. 이 경우 앱이 캘린더 소유자가 보내는 것처럼 메시지를 전송하거나 소유자 모르게 일정을 수정할 수도 있습니다."
"앱이 친구나 동료의 일정을 비롯하여 TV에서 수정할 수 있는 일정을 추가, 삭제, 변경할 수 있도록 허용합니다. 이 경우 앱이 발신자가 캘린더 소유자인 메시지를 전송하거나 소유자가 모르는 사이에 일정을 수정할 수 있습니다."
"앱이 친구나 동료의 일정을 포함하여 휴대전화에서 수정할 수 있는 일정을 추가, 삭제, 변경할 수 있도록 허용합니다. 이 경우 앱이 캘린더 소유자가 보내는 것처럼 메시지를 전송하거나 소유자 모르게 일정을 수정할 수도 있습니다."
- "추가 위치 제공업체 명령에 액세스"
- "앱이 추가 위치 정보 제공 기능의 명령에 액세스하도록 허용합니다. 이 경우 앱이 GPS 또는 기타 위치 소스의 작동을 방해할 수 있습니다."
+ "추가 위치 제공업체 명령에 접근"
+ "앱이 추가 위치 정보 제공 기능의 명령에 접근하도록 허용합니다. 이 경우 앱이 GPS 또는 기타 위치 소스의 작동을 방해할 수 있습니다."
"정확한 위치(GPS 및 네트워크 기반)에 액세스"
"앱에서 GPS 또는 기지국 및 Wi-Fi와 같은 네트워크 위치 제공자를 사용하는 위치 서비스를 통해 내 정확한 위치를 알 수 있도록 합니다. 앱에서 이를 사용하도록 하려면 기기에서 이러한 위치 서비스는 사용하도록 설정해야 합니다. 앱에서 위치 서비스를 사용하여 내 위치를 파악할 수 있으며 배터리 소모량이 증가할 수 있습니다."
"대략적인 위치(네트워크 기반)에 액세스"
@@ -373,10 +378,10 @@
"앱이 진동을 제어할 수 있도록 허용합니다."
"전화번호 자동 연결"
"앱이 사용자의 조작 없이 전화번호로 전화를 걸 수 있도록 허용합니다. 이 경우 예상치 못한 통화 요금이 부과될 수 있습니다. 앱이 비상 전화를 걸도록 하는 권한은 주어지지 않습니다. 악성 앱이 사용자의 확인 없이 전화를 걸어 요금이 부과될 수 있습니다."
- "IMS 통화 서비스에 액세스"
+ "IMS 통화 서비스에 접근"
"앱이 IMS 서비스를 사용하여 자동으로 전화를 걸 수 있도록 허용합니다."
"휴대전화 상태 및 ID 읽기"
- "앱이 기기의 휴대전화 기능에 액세스할 수 있도록 허용합니다. 이 권한을 사용하면 앱이 전화번호 및 기기의 ID, 활성 통화인지 여부, 통화가 연결된 원격 번호 등을 확인할 수 있습니다."
+ "앱이 기기의 휴대전화 기능에 접근할 수 있도록 허용합니다. 이 권한을 사용하면 앱이 전화번호 및 기기의 ID, 활성 통화인지 여부, 통화가 연결된 원격 번호 등을 확인할 수 있습니다."
"태블릿이 절전 모드로 전환되지 않도록 설정"
"TV의 절전 모드 전환 방지"
"휴대전화가 절전 모드로 전환되지 않도록 설정"
@@ -401,7 +406,7 @@
"앱이 휴대전화가 알고 있는 계정 목록을 가져올 수 있도록 허용합니다. 이 경우 설치한 애플리케이션에 의해 만들어진 모든 계정을 포함할 수 있습니다."
"네트워크 연결 보기"
"앱이 어떤 네트워크가 존재하며 연결되었는지 등의 네트워크 연결에 대한 정보를 볼 수 있도록 허용합니다."
- "전체 네트워크 액세스 권한 보유"
+ "완전한 네트워크 접근"
"앱이 네트워크 소켓을 만들고 맞춤 네트워크 프로토콜을 사용할 수 있도록 허용합니다. 브라우저 및 기타 앱이 데이터를 인터넷에 전송하는 수단을 제공하므로, 이 권한이 데이터를 인터넷에 전송하는 데 필요하지 않습니다."
"네트워크 연결 변경"
"앱이 네트워크 연결 상태를 변경할 수 있도록 허용합니다."
@@ -415,7 +420,7 @@
"앱이 사용자의 태블릿뿐 아니라 멀티캐스트 주소를 사용하여 Wi-Fi 네트워크에서 모든 기기로 전송된 패킷을 받도록 허용합니다. 이 경우 비멀티캐스트 모드보다 전력을 더 많이 소비합니다."
"앱이 멀티캐스트 주소를 사용하여 TV뿐 아니라 Wi-Fi 네트워크에 있는 모든 기기로 전송된 패킷을 수신할 수 있도록 허용합니다. 멀티캐스트 모드를 사용하지 않을 때보다 전략 소비량이 많아집니다."
"앱이 사용자의 휴대전화뿐 아니라 멀티캐스트 주소를 사용하여 Wi-Fi 네트워크에서 모든 기기로 전송된 패킷을 받을 수 있도록 허용합니다. 이 경우 비멀티캐스트 모드보다 전력을 더 많이 소비합니다."
- "블루투스 설정에 액세스"
+ "블루투스 설정에 접근"
"앱이 로컬 블루투스 태블릿을 설정한 다음 원격 기기를 검색하여 페어링할 수 있도록 허용합니다."
"앱이 로컬 블루투스 TV를 설정하고 원격 기기를 검색하여 페어링할 수 있도록 허용합니다."
"앱이 로컬 블루투스 휴대전화를 설정한 다음 원격 기기를 검색하여 페어링할 수 있도록 허용합니다."
@@ -428,7 +433,7 @@
"블루투스 기기와 페어링"
"앱이 태블릿의 블루투스 설정을 확인하고 페어링된 기기에 연결하며 연결을 수락할 수 있도록 허용합니다."
"앱이 TV에서 블루투스 설정을 확인하고 페어링된 기기의 연결을 수락할 수 있도록 허용합니다."
- "앱이 휴대전화의 블루투스 설정을 확인하고 페어링된 기기에 연결하며 연결을 수락할 수 있도록 허용합니다."
+ "앱에서 휴대전화의 블루투스 설정을 확인하고 등록된 디바이스에 연결하며 연결을 수락할 수 있습니다."
"NFC(Near Field Communication) 제어"
"앱이 NFC(근거리 무선 통신) 태그, 카드 및 리더와 통신할 수 있도록 허용합니다."
"화면 잠금 사용 중지"
@@ -488,7 +493,7 @@
"앱이 네트워크 정책을 관리하고 앱별 규칙을 정의할 수 있도록 허용합니다."
"네트워크 사용량 계산 수정"
"애플리케이션이 애플리케이션의 네트워크 사용량을 계산하는 방식을 수정할 수 있도록 허용합니다. 일반 애플리케이션에서는 사용하지 않습니다."
- "알림 액세스"
+ "알림 접근"
"앱이 다른 앱에서 게시한 알림을 비롯하여 알림을 검색하고 살펴보며 삭제할 수 있도록 허용합니다."
"알림 수신기 서비스 사용"
"권한을 가진 프로그램이 알림 수신기 서비스에 대한 최상위 인터페이스를 사용하도록 허용합니다. 일반 앱에는 필요하지 않습니다."
@@ -502,7 +507,7 @@
"애플리케이션이 네트워크 상태에 대한 관측 보고를 수신하도록 허용합니다. 일반 앱에는 필요하지 않습니다."
"입력 기기 보정 변경"
"앱이 터치 스크린의 보정 매개변수를 수정할 수 있도록 허용합니다. 일반 앱에는 필요하지 않습니다."
- "DRM 인증서에 액세스"
+ "DRM 인증서에 접근"
"애플리케이션이 DRM 인증서를 프로비저닝하고 사용하도록 허용합니다. 일반 앱에서는 필요하지 않습니다."
"Android Beam 전송 상태 수신"
"이 애플리케이션이 현재 Android Beam 전송 관련 정보를 수신하도록 허용합니다."
@@ -512,7 +517,7 @@
"보유자가 이동통신사 메시지 서비스의 최상위 인터페이스에 고정할 수 있습니다. 일반 앱에는 필요하지 않습니다."
"이동통신사 서비스 사용"
"권한을 가진 애플리케이션에서 이동통신사 서비스를 사용하도록 허용합니다. 일반 앱에는 필요하지 않습니다."
- "알림 일시중지에 액세스"
+ "알림 일시중지에 접근"
"앱에 알림 일시중지 설정을 읽고 작성하도록 허용합니다."
"비밀번호 규칙 설정"
"화면 잠금 비밀번호와 PIN에 허용되는 길이와 문자 수를 제어합니다."
@@ -1208,6 +1213,8 @@
"애플리케이션의 설치 세션 읽기를 허용하면, 활성 패키지 설치에 대한 세부 정보를 볼 수 있습니다."
"패키지 설치 요청"
"애플리케이션이 패키지 설치를 요청하도록 허용합니다."
+ "배터리 최적화를 무시하도록 요청"
+ "앱에서 배터리 최적화를 무시할 수 있는 권한을 요청할 수 있도록 허용합니다."
"확대/축소하려면 두 번 탭하세요."
"위젯을 추가할 수 없습니다."
"이동"
@@ -1234,7 +1241,7 @@
"배경화면"
"배경화면 변경"
"알림 수신기"
- "가상 현실 리스너"
+ "VR 리스너"
"조건 제공자"
"알림 순위 지정 서비스"
"VPN이 활성화됨"
@@ -1558,7 +1565,7 @@
"연도 선택"
"%1$s 삭제됨"
"업무용 %1$s "
- "이 화면을 고정 해제하려면 \'뒤로\'를 길게 터치합니다."
+ "이 화면을 고정 해제하려면 \'뒤로\' 및 \'최근 사용\'을 길게 터치하세요."
"앱이 고정되었습니다. 이 기기에서는 고정 해제를 허용하지 않습니다."
"화면 고정됨"
"화면 고정 해제됨"
diff --git a/core/res/res/values-ky-rKG/strings.xml b/core/res/res/values-ky-rKG/strings.xml
index 4f48a944f798..21a50870c0dd 100644
--- a/core/res/res/values-ky-rKG/strings.xml
+++ b/core/res/res/values-ky-rKG/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Туташууда көйгөй чыкты же MMI коду жараксыз."
"Иш-аракет туруктуу терүү номерлери менен гана чектелет."
+ "Роуминг учурунда чалууну башка номерге багыттоонун жөндөөлөрүн телефонуңуздан өзгөртүү мүмкүн эмес."
"Кызмат иштетилди."
"Кызмат төмөнкү үчүн иштетилди:"
"Кызмат өчүрүлдү."
@@ -96,6 +97,8 @@
"Үн/берилиштер кызматтары бөгөттөлдү."
"Үн/SMS кызматтары бөгөттөлгөн."
"Бардык үн/берилиштер/SMS кызматтары бөгөттөлдү."
+ "Тармакка туташпай жатат"
+ "Кабыл алуу мүмкүнчүлүгүн жакшыртуу үчүн Жөндөөлөр > Мобилдик тармактар > Тандалган тармак бөлүмүнөн тармактын түрүн өзгөртүп көрүңүз."
"Peer TTY режимин FULL кылууну суранды"
"Peer TTY режимин HCO кылууну суранды"
"Peer TTY режимин VCO кылууну суранды"
@@ -179,6 +182,8 @@
"Администратордун колдонмосу жок болгондуктан, жумуш профили жок кылынды."
"Жумуш профилинин администратор колдонмосу жок же бузулгандыктан, жумуш профилиңиз жана ага байланыштуу дайындар жок кылынган. Жардам алуу үчүн администраторуңузга кайрылыңыз."
"Жумуш профилиңиз бул түзмөктө жеткиликтүү болбой калды."
+ "Тармак трафиги көзөмөлдөнүүдө"
+ "Көбүрөөк маалымат алуу үчүн таптап коюңуз"
"Түзмөгүңүз тазаланат"
"Администратор колдонмосунун курамдары жок же бузулгандыктан, аны колдонуу мүмкүн эмес. Түзмөгүңүз азыр тазаланат. Жардам алуу үчүн администраторуңузга кайрылыңыз."
"Мен"
@@ -641,18 +646,18 @@
"Өзгөчө"
"Өзгөчө"
"Жардамчы"
- "Ага-ини"
- "Баласы"
- "Жергиликтүү Өнөктөш"
- "Атасы"
- "Досу"
- "Менежер"
- "Энеси"
+ "Ага/Ини"
+ "Бала"
+ "Жарандык нике"
+ "Ата"
+ "Дос"
+ "Башчы"
+ "Эне"
"Ата/эне"
"Өнөк"
- "Төмөнкүдөй аталат"
+ "Сунушталган"
"Тууган"
- "Эже-сиңди"
+ "Эже/Сиңди"
"Жубай"
"Өзгөчө"
"Үй"
@@ -997,7 +1002,7 @@
"%1$s колдонмосу иштебей калып жатат"
"%1$s колдонмосу иштебей калып жатат"
"Колдонмону кайра ачуу"
- "Жооп пикир жөнөтүү"
+ "Пикир билдирүү"
"Жабуу"
"Түзмөк өчүрүлүп-күйгүзүлгүчө үнүн өчүрүү"
"Күтүү"
@@ -1058,10 +1063,10 @@
"Чалуунун үн деңгээли"
"Медиа үнүнүн деңгээли"
"Эскертме үнүнүн деңгээли"
- "Демейки рингтон"
- "Демейки рингтон (%1$s )"
+ "Демейки шыңгыр"
+ "Демейки шыңгыр (%1$s )"
"Эч бир"
- "Ринтондор"
+ "Шыңгырлар"
"Белгисиз рингтон"
- Wi-Fi тармагы жеткиликтүү
@@ -1208,6 +1213,8 @@
"Колдонмого орнотуу сеанстарын окуу мүмкүнчүлүгүн берет. Ушуну менен, ал жигердүү топтом орнотууларынын чоо-жайын көрө алат."
"орнотуу топтомдорун суроо"
"Колдонмо топтомдорду орнотууга уруксат сурай алат."
+ "батареянын кубатын көп керектей берсин"
+ "Колдонмо батареянын кубатын керектегенден мурун уруксат суралсын."
"Масштабдын параметрлерин өзгөртүү үчүн бул жерди эки жолу басыңыз."
"Виджетти кошуу мүмкүн болбоду."
"Өтүү"
@@ -1558,7 +1565,7 @@
"Жылды тандаңыз"
"%1$s өчүрүлдү"
"Жумуш %1$s "
- "Бул экранды бошотуу үчүн \"Артка\" баскычын басып, кармап туруңуз."
+ "Бул экранды бошотуу үчүн \"Артка\" жана \"Сереп салуу\" баскычтарын басып, кармап туруңуз."
"Колдонмо кадалган: Бул түзмөктө бошотууга уруксат жок."
"Экран кадалды"
"Экран бошотулду"
diff --git a/core/res/res/values-lo-rLA/strings.xml b/core/res/res/values-lo-rLA/strings.xml
index 18f285f96d89..84ea55a5e747 100644
--- a/core/res/res/values-lo-rLA/strings.xml
+++ b/core/res/res/values-lo-rLA/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"ມີບັນຫາໃນການເຊື່ອມຕໍ່ ຫຼືລະຫັດ MMI ບໍ່ຖືກຕ້ອງ."
"ການດຳເນີນການຖືກຈຳກັດເປັນ ຈຳກັດໝາຍເລກໂທອອກເທົ່ານັ້ນ."
+ "Can not change call forwarding settings from your phone while you are roaming."
"ບໍລິການຖືກເປີດໄວ້ແລ້ວ."
"ບໍລິການຖືກເປີດໃຊ້ສຳລັບ:"
"ບໍລິການໄດ້ຖືກປິດແລ້ວ."
@@ -96,6 +97,8 @@
"ບໍລິການ ຂໍ້ມູນ/ສຽງ ຖືກບລັອກ."
"ບໍລິການ ສຽງ/SMS ຖືກບລັອກ."
"ບໍລິການ ການໂທ/ອິນເຕີເນັດ/SMS ຖືກປິດກັ້ນໄວ້."
+ "Can’t reach network"
+ "To improve reception, try changing the type selected at Settings > Cellular networks > Preferred network type."
"ໂໝດ TTY ທີ່ເພື່ອນຂໍນັ້ນເຕັມແລ້ວ"
"ໂໝດ TTY ທີ່ເພື່ອນຂໍ HCO"
"ໂໝດ TTY ທີ່ເພື່ອນຂໍ VCO"
@@ -179,6 +182,8 @@
"ລຶບໂປຣໄຟລ໌ບ່ອນເຮັດວຽກແລ້ວ ເນື່ອງຈາກຂາດແອັບບໍລິຫານໄປ."
"ແອັບບໍລິຫານໂປຣໄຟລ໌ວຽກຂາດໄປ ຫຼືຖືກເສຍຫາຍ. ດ້ວຍເຫດຜົນນັ້ນ, ໂປຣໄຟລ໌ບ່ອນເຮັດວຽກຂອງທ່ານ ແລະຂໍ້ມູນທີ່ກ່ຽວຂ້ອງຈິ່ງຖືກລຶບໄປ. ຕິດຕໍ່ຜູ້ຄວບຄຸມຂອງທ່ານ ເພື່ອຂໍຄວາມຊ່ວຍເຫຼືອ."
"ໂປຣໄຟລ໌ບ່ອນເຮັດວຽກບໍ່ມີໃຫ້ໃຊ້ງານເທິງອຸປະກອນນີ້ອີກຕໍ່ໄປ."
+ "ກຳລັງຕິດຕາມທຣາບຟິກເຄືອຂ່າຍ"
+ "ແຕະເພື່ອສຶກສາເພີ່ມເຕີມ"
"ອຸປະກອນຂອງທ່ານຈະຖືກລຶບ"
"ແອັບບໍລິຫານຂາດອົງປະກອບ ຫຼືຖືກຂັດຈັງຫວະ, ແລະບໍ່ສາມາດໃຊໄດ້. ດຽວນີ້ອຸປະກອນຂອງທ່ານຈະຖືກລຶບ. ຕິດຕໍ່ຜູ້ຄວບຄຸມຂອງທ່ານ ເພື່ອຂໍຄວາມຊ່ວຍເຫຼືອ."
"ຂ້າພະເຈົ້າ"
@@ -1208,6 +1213,8 @@
"ອະນຸຍາດໃຫ້ແອັບພລິເຄຊັນອ່ານເຊດຊັນການຕິດຕັ້ງໄດ້. ນີ້ຈະອະນຸຍາດໃຫ້ມັນເບິ່ງເຫັນລາຍລະອຽດກ່ຽວກັບການຕິດຕັ້ງແພັກເກດທີ່ເຮັດວຽກຢູ່ໄດ້."
"ຂໍຕິດຕັ້ງແພັກເກດ"
"ອະນຸຍາດໃຫ້ແອັບພລິເຄຊັນຂອງການຕິດຕັ້ງແພັກເກດ."
+ "ຖາມເພື່ອໃຫ້ເພີກເສີຍການປັບແຕ່ງແບັດເຕີຣີ"
+ "ອະນຸຍາດໃຫ້ແອັບຖາມສິດອະນຸຍາດເພື່ອເພີກເສີຍຕໍ່ການປັບແຕ່ງແບັດເຕີຣີສຳລັບແອັບນັ້ນ."
"ແຕະສອງເທື່ອເພື່ອຄວບຄຸມການຊູມ"
"ບໍ່ສາມາດເພີ່ມວິດເຈັດໄດ້."
"ໄປ"
@@ -1558,7 +1565,7 @@
"ເລືອກປີ"
"%1$s ຖືກລຶບແລ້ວ"
"ບ່ອນເຮັດວຽກ %1$s "
- "ກົດປຸ່ມກັບຄືນຄ້າງໄວ້ເພື່ອເຊົາປັກໝຸດໜ້າຈໍນີ້."
+ "To unpin this screen, touch & hold Back and Overview."
"ແອັບຖືກປັກໝຸດແລ້ວ: ບໍ່ອະນຸຍາດໃຫ້ຖອນປັກໝຸດຢູ່ເທິງອຸປະກອນນີ້."
"ປັກໝຸດໜ້າຈໍແລ້ວ"
"ຍົກເລີກການປັກໝຸນຫນ້າຈໍແລ້ວ"
diff --git a/core/res/res/values-lt/strings.xml b/core/res/res/values-lt/strings.xml
index 9952a7c5a109..d3414518ad26 100644
--- a/core/res/res/values-lt/strings.xml
+++ b/core/res/res/values-lt/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Ryšio problema arba neteisingas MMI kodas."
"Operacija ribojama tik naudojant fiksuoto rinkimo numerius."
+ "Negalima pakeisti telefono skambučio peradresavimo nustatymų, kai naudojate tarptinklinį ryšį."
"Paslauga įgalinta."
"Paslauga buvo įgalinta:"
"Paslauga išjungta."
@@ -98,6 +99,8 @@
"Balso / duomenų paslaugos užblokuotos."
"Balso / SMS paslaugos blokuojamos."
"Blokuojamos visos balso / duomenų / SMS paslaugos."
+ "Nepavyko pasiekti tinklo"
+ "Kad pagerintumėte ryšį, pabandykite pakeisti tipą, pasirinktą skiltyje „Nustatymai“ > „Mobiliojo ryšio tinklai“ > „Pageidaujamas tinklo tipas“."
"Lygiavertis naudotojas pateikė užklausą dėl TTY režimo FULL"
"Lygiavertis naudotojas pateikė užklausą dėl TTY režimo HCO"
"Lygiavertis naudotojas pateikė užklausą dėl TTY režimo VCO"
@@ -183,6 +186,8 @@
"Darbo profilis ištrintas dėl trūkstamos administratoriaus programos."
"Trūksta darbo profilio administratoriaus programos arba ji sugadinta. Todėl darbo profilis ir susiję duomenys buvo ištrinti. Dėl pagalbos susisiekite su administratoriumi."
"Darbo profilis nebepasiekiamas šiame įrenginyje."
+ "Tinklo srautas stebimas"
+ "Palieskite, kad sužinotumėte daugiau"
"Įrenginys bus ištrintas"
"Trūksta administratoriaus programos komponentų arba programa sugadinta ir jos negalima naudoti. Dabar įrenginys bus ištrintas. Dėl pagalbos susisiekite su administratoriumi."
"Aš"
@@ -1258,6 +1263,8 @@
"Leidžiama programai skaityti diegimo seansus. Leidžiama peržiūrėti išsamią aktyvių paketų diegimo informaciją."
"pateikti užklausą dėl diegimo paketų"
"Programai leidžiama pateikti užklausą dėl paketų diegimo."
+ "prašyti nepaisyti akumuliatoriaus optimizavimo nustatymų"
+ "Programai leidžiama prašyti leidimo nepaisyti tai programai skirto akumuliatoriaus optimizavimo nustatymų."
"Bakstelėkite du kartus, kad valdytumėte mastelio keitimą"
"Nepavyko pridėti."
"Pradėti"
@@ -1612,7 +1619,7 @@
"Pasirinkite metus"
"Ištrinta: %1$s "
"Darbo %1$s "
- "Kad atsegtumėte šį ekraną, palieskite ir palaikykite „Atgal“."
+ "Kad atsegtumėte šį ekraną, palieskite ir palaikykite „Atgal“ ir „Apžvalga“."
"Programa prisegta: šiame įrenginyje negalima atsegti."
"Ekrano prisegtas"
"Ekranas atsegtas"
@@ -1682,7 +1689,7 @@
"Sutraukti"
"Netrukdyti"
"Prastova"
- "Savaitgalio vakarą"
+ "Darbo dienos vakarą"
"Savaitgalį"
"Įvykis"
"Nutildė %1$s "
diff --git a/core/res/res/values-lv/strings.xml b/core/res/res/values-lv/strings.xml
index ff2e97482524..b65eb4e5d83c 100644
--- a/core/res/res/values-lv/strings.xml
+++ b/core/res/res/values-lv/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Savienojuma problēma vai nederīgs MMI kods."
"Darbība ir atļauta tikai fiksēto numuru sastādīšanai."
+ "Nevar mainīt zvanu pāradresēšanas iestatījumus tālrunī, kamēr izmantojat viesabonēšanu."
"Pakalpojums tika iespējots."
"Pakalpojums tika iespējots šādai pakalpojumu klasei:"
"Pakalpojums ir atspējots."
@@ -97,6 +98,8 @@
"Balss/datu pakalpojumi ir bloķēti."
"Balss/īsziņu pakalpojumi ir bloķēti."
"Visi balss/datu/īsziņu pakalpojumi ir bloķēti."
+ "Nevar sasniegt tīklu"
+ "Lai uzlabotu uztveršanu, mainiet atlasīto veidu sadaļā Iestatījumi > Mobilie tīkli gt; Ieteicamais tīkla veids."
"Vienādranga ierīce pieprasīja teksta tālruņa režīmu FULL"
"Vienādranga ierīce pieprasīja teksta tālruņa režīmu HCO"
"Vienādranga ierīce pieprasīja teksta tālruņa režīmu VCO"
@@ -181,6 +184,8 @@
"Darba profils tika dzēsts, jo trūkst administratora lietotnes."
"Trūkst darba profila administratora lietotnes, vai šī lietotne ir bojāta. Šī iemesla dēļ jūsu darba profils un saistītie dati tika dzēsti. Lai saņemtu palīdzību, sazinieties ar administratoru."
"Jūsu darba profils šai ierīcē vairs nav pieejams."
+ "Tīkla datplūsma tiek pārraudzīta"
+ "Pieskarieties, lai uzzinātu vairāk"
"Jūsu ierīces dati tiks dzēsti"
"Administratora lietotnē trūkst komponentu, vai šī lietotne ir bojāta. Lietotni nevar izmantot. Ierīces dati tūlīt tiks dzēsti. Lai saņemtu palīdzību, sazinieties ar administratoru."
"Man"
@@ -1233,6 +1238,8 @@
"Ļauj lietojumprogrammai lasīt instalēšanas sesijas. Tādējādi lietojumprogrammai ir pieejama informācija par aktīvajām pakotņu instalācijām."
"Pieprasīt pakotņu instalēšanu"
"Ļauj lietojumprogrammai pieprasīt pakotņu instalēšanu."
+ "Lūgt akumulatora optimizācijas ignorēšanu"
+ "Ļauj lietotnei lūgt atļauju ignorēt akumulatora optimizāciju šai lietotnei."
"Pieskarieties divreiz, lai kontrolētu tālummaiņu."
"Nevarēja pievienot logrīku."
"Doties uz"
@@ -1585,7 +1592,7 @@
"Atlasiet gadu."
"%1$s tika dzēsts."
"Darbā: %1$s "
- "Lai atspraustu šo ekrānu, pieskarieties pogai “Atpakaļ” un turiet to."
+ "Lai atspraustu šo ekrānu, pieskarieties pogām “Atpakaļ” un “Pārskats” un turiet tās."
"Lietotne ir piesprausta. Atspraušana šajā ierīcē nav atļauta."
"Ekrāns ir piesprausts"
"Ekrāns ir atsprausts"
diff --git a/core/res/res/values-mcc208-mnc10/config.xml b/core/res/res/values-mcc208-mnc10/config.xml
index d3640e5c4153..3ed78181ffe6 100644
--- a/core/res/res/values-mcc208-mnc10/config.xml
+++ b/core/res/res/values-mcc208-mnc10/config.xml
@@ -31,28 +31,4 @@
- [ApnSettingV3]INTERNET NRJ,internetnrj,,,,,,,,,208,10,,DUN,,,true,0,,,,,,,gid,4E
-
- - 21401
- - 21402
- - 21403
- - 21404
- - 21405
- - 21406
- - 21407
- - 21408
- - 21409
- - 21410
- - 21411
- - 21412
- - 21413
- - 21414
- - 21415
- - 21416
- - 21417
- - 21418
- - 21419
- - 21420
- - 21421
-
-
diff --git a/core/res/res/values-mcc214-mnc01/config.xml b/core/res/res/values-mcc214-mnc01/config.xml
index 895b770d771c..24150a782d22 100644
--- a/core/res/res/values-mcc214-mnc01/config.xml
+++ b/core/res/res/values-mcc214-mnc01/config.xml
@@ -40,27 +40,4 @@
- INTERNET,airtelnet.es,,,vodafone,vodafone,,,,,214,01,1,DUN
-
- - 21402
- - 21403
- - 21404
- - 21405
- - 21406
- - 21407
- - 21408
- - 21409
- - 21410
- - 21411
- - 21412
- - 21413
- - 21414
- - 21415
- - 21416
- - 21417
- - 21418
- - 21419
- - 21420
- - 21421
-
-
diff --git a/core/res/res/values-mk-rMK/strings.xml b/core/res/res/values-mk-rMK/strings.xml
index eb86a77e0e5d..5d7aaa4510ff 100644
--- a/core/res/res/values-mk-rMK/strings.xml
+++ b/core/res/res/values-mk-rMK/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Проблем со поврзување или неважечки MMI код."
"Операцијата е ограничена на бирање само фиксни броеви."
+ "Не може да се сменат поставките за проследување повик од телефонот додека сте во роаминг."
"Услугата беше овозможена."
"Услугата беше овозможена за:"
"Услугата е оневозможена."
@@ -96,6 +97,8 @@
"Услугите со говор/податоци се блокирани."
"Услугите за гласовно бирање/SMS пораки се блокирани."
"Сите услугите со говор/податоци/SMS пораки се блокирани."
+ "Не може да се дојде до мрежата"
+ "За да се подобри приемот, обидете се да го смените избраниот тип во „Поставки“ > „Мобилни мрежи“ > „Претпочитан тип мрежа“."
"Рамноправен уред го побара режимот на TTY „FULL“"
"Рамноправен уред го побара режимот на TTY „HCO“"
"Рамноправен уред го побара режимот на TTY „VCO“"
@@ -179,6 +182,8 @@
"Работниот профил е избришан заради отсуството на апликација на администратор."
"Апликацијата на администраторот за работниот профил недостасува или е оштетена. Како резултат на тоа, работниот профил и поврзаните податоци ќе се избришат. Контактирајте со администраторот за помош."
"Работниот профил веќе не е достапен на уредов."
+ "Се следи сообраќајот на мрежата"
+ "Допрете за да дознаете повеќе"
"Уредот ќе се избрише"
"На апликацијата на администраторот ѝ недостасуваат компоненти или е оштетена, па не може да се користи. Уредот ќе се избрише сега. Контактирајте со администраторот за помош."
"Јас"
@@ -196,9 +201,9 @@
"Системско ажурирање на Android"
"Се подготвува ажурирањето…"
"Пакетот за ажурирање се обработува..."
- "Се престартува…"
+ "Се рестартира…"
"Ресетирање фабрички податоци"
- "Се престартува…"
+ "Се рестартира…"
"Се исклучува..."
"Вашиот таблет ќе се исклучи."
"Вашиот телевизор ќе се исклучи."
@@ -1208,6 +1213,8 @@
"Дозволува апликација да чита сесии на инсталирање. Тоа овозможува апликацијата да гледа детали за активни инсталации на пакет."
"барање пакети за инсталирање"
"Дозволува апликацијата да бара инсталација на пакети."
+ "прашај дали да се игнорираат оптимизациите на батеријата"
+ "Овозможува апликацијата да побара дозвола за игнорирање на оптимизациите на батеријата за таа апликација."
"Допрете двапати за контрола на зумот"
"Не можеше да се додаде виџет."
"Оди"
@@ -1560,7 +1567,7 @@
"Избери година"
"Избришано %1$s "
"Работа %1$s "
- "За откачување на екранов, допрете и задржете Назад."
+ "За откачување на екранов, допрете и задржете Назад и Краток преглед."
"Апликацијата е закачена: откачување не е дозволено на уредов."
"Екранот е закачен"
"Екранот е откачен"
diff --git a/core/res/res/values-ml-rIN/strings.xml b/core/res/res/values-ml-rIN/strings.xml
index 423db1d19599..09b405c2774e 100644
--- a/core/res/res/values-ml-rIN/strings.xml
+++ b/core/res/res/values-ml-rIN/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"കണക്ഷൻ പ്രശ്നം അല്ലെങ്കിൽ MMI കോഡ് അസാധുവാണ്."
"നിശ്ചയിച്ചുറപ്പിച്ച ഡയൽ ചെയ്യൽ നമ്പറുകൾക്ക് മാത്രമായി പ്രവർത്തനം പരിമിതപ്പെടുത്തിയിരിക്കുന്നു."
+ "റോമിംഗിൽ ആയിരിക്കുമ്പോൾ നിങ്ങളുടെ ഫോണിൽ നിന്ന് കോൾ കൈമാറൽ ക്രമീകരണം മാറ്റാൻ കഴിയില്ല."
"സേവനം പ്രവർത്തനക്ഷമമാക്കി."
"സേവനം ഇവയ്ക്കായി പ്രവർത്തനക്ഷമമാക്കി:"
"സേവനം പ്രവർത്തനരഹിതമാക്കി."
@@ -96,6 +97,8 @@
"വോയ്സ്/ഡാറ്റ സേവനങ്ങൾ തടഞ്ഞു."
"വോയ്സ്/SMS സേവനങ്ങൾ തടഞ്ഞു."
"എല്ലാ വോയ്സ്/ഡാറ്റ/SMS സേവനങ്ങളും തടഞ്ഞു."
+ "നെറ്റ്വർക്കിലേക്ക് കണക്റ്റുചെയ്യാനാവുന്നില്ല"
+ "സ്വീകരണം മെച്ചപ്പെടുത്തുന്നതിന് ക്രമീകരണം > സെല്ലുലാർ നെറ്റ്വർക്കുകൾ > തിരഞ്ഞെടുത്ത നെറ്റ്വർക്ക് തരം എന്നതിൽ തിരഞ്ഞെടുത്തിരിക്കുന്ന തരം മാറ്റിക്കൊണ്ട് ശ്രമിച്ചുനോക്കുക."
"പിയർ അഭ്യർത്ഥിച്ച TTY മോഡ് \'ഫുൾ\'"
"പിയർ അഭ്യർത്ഥിച്ച TTY മോഡ് HCO"
"പിയർ അഭ്യർത്ഥിച്ച TTY മോഡ് VCO"
@@ -163,7 +166,7 @@
"%1$s എന്നതിൽ സൈൻ ഇൻ ചെയ്യുന്നതിൽ പിശക്"
"സമന്വയിപ്പിക്കുക"
"സമന്വയിപ്പിക്കുക"
- "വളരെയധികം %s ഇല്ലാതാക്കലുകൾ."
+ "വളരെയധികം %s ഇല്ലാതാക്കുന്നു."
"ടാബ്ലെറ്റ് സ്റ്റോറേജ് കഴിഞ്ഞു. ഇടം ശൂന്യമാക്കാൻ ചില ഫയലുകൾ ഇല്ലാതാക്കുക."
"വാച്ചിലെ സ്റ്റോറേജ് നിറഞ്ഞു. ഇടം ശൂന്യമാക്കാൻ കുറച്ച് ഫയലുകൾ ഇല്ലാതാക്കുക."
"ടിവി സ്റ്റോറേജ് നിറഞ്ഞു. ഇടം ശൂന്യമാക്കാൻ കുറച്ച് ഫയലുകൾ ഇല്ലാതാക്കുക."
@@ -179,6 +182,8 @@
"അഡ്മിൻ അപ്ലിക്കേഷൻ നഷ്ടപ്പെട്ടതിനാൽ ഔദ്യോഗിക പ്രൊഫൈൽ ഇല്ലാതാക്കി."
"ഔദ്യോഗിക പ്രൊഫൈൽ അഡ്മിൻ അപ്ലിക്കേഷൻ നഷ്ടപ്പെട്ടതോ കേടായതോ ആണ്. അക്കാരണത്താൽ നിങ്ങളുടെ ഔദ്യോഗിക പ്രൊഫൈലും ബന്ധപ്പെട്ട വിവരവും ഇല്ലാതാക്കിയിരിക്കുന്നു. സഹായത്തിന് അഡ്മിനിസ്ട്രേറ്ററുമായി ബന്ധപ്പെടുക."
"ഈ ഉപകരണത്തിൽ തുടർന്നങ്ങോട്ട് നിങ്ങളുടെ ഔദ്യോഗിക പ്രൊഫൈൽ ലഭ്യമല്ല."
+ "നെറ്റ്വർക്ക് ട്രാഫിക്ക് നിരീക്ഷിക്കപ്പെടുന്നു"
+ "കൂടുതലറിയുന്നതിന് ടാപ്പുചെയ്യുക"
"നിങ്ങളുടെ ഉപകരണം മായ്ക്കും"
"അഡ്മിൻ അപ്ലിക്കേഷൻ, ഘടകഭാഗങ്ങൾ നഷ്ടപ്പെട്ടതോ കേടായതോ ആണെങ്കിൽ ഉപയോഗിക്കാനാവില്ല. നിങ്ങളുടെ ഉപകരണം ഇപ്പോൾ ഇല്ലാതാക്കും. സഹായത്തിന് നിങ്ങളുടെ അഡ്മിനിസ്ട്രേറ്ററെ ബന്ധപ്പെടുക."
"ഞാന്"
@@ -265,7 +270,7 @@
"നിങ്ങൾ സംവദിക്കുന്ന ഒരു വിൻഡോയുടെ ഉള്ളടക്കം പരിശോധിക്കുക."
"സ്പർശനം വഴി പര്യവേക്ഷണം ചെയ്യുക ഓൺ ചെയ്യുക"
"ടാപ്പുചെയ്ത ഇനങ്ങൾ ഉച്ചത്തിൽ പറയപ്പെടും, ജെസ്റ്ററുകൾ ഉപയോഗിച്ച് സ്ക്രീൻ അടുത്തറിയാവുന്നതാണ്."
- "മെച്ചപ്പെടുത്തിയ വെബ് പ്രവേശനക്ഷമത ഓണാക്കുക"
+ "മെച്ചപ്പെടുത്തിയ വെബ് ഉപയോഗസഹായി ഓണാക്കുക"
"അപ്ലിക്കേഷൻ ഉള്ളടക്കം കൂടുതൽ ആക്സസ്സുചെയ്യാൻ കഴിയുന്നതാക്കാൻ സ്ക്രിപ്റ്റുകൾ ഇൻസ്റ്റാളുചെയ്യാനിടയുണ്ട്."
"നിങ്ങൾ ടൈപ്പുചെയ്യുന്ന വാചകം നിരീക്ഷിക്കുക"
"ക്രെഡിറ്റ് കാർഡ് നമ്പറുകളും പാസ്വേഡുകളും പോലുള്ള വ്യക്തിഗത ഡാറ്റ ഉൾപ്പെടുന്നു."
@@ -1208,6 +1213,8 @@
"ഇൻസ്റ്റാൾ ചെയ്ത സെഷനുകൾ റീഡുചെയ്യുന്നതിന് ഒരു അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു. സജീവ പാക്കേജ് ഇൻസ്റ്റാളേഷനുകളെക്കുറിച്ചുള്ള വിശദാംശങ്ങൾ കാണുന്നതിന് ഇത് അനുവദിക്കുന്നു."
"പാക്കേജുകൾ ഇൻസ്റ്റാൾ ചെയ്യാൻ അഭ്യർത്ഥിക്കുക"
"പാക്കേജുകളുടെ ഇൻസ്റ്റാളേഷൻ അഭ്യർത്ഥിക്കാൻ ഒരു അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു."
+ "ബാറ്ററി ഒപ്റ്റിമൈസേഷനുകൾ അവഗണിക്കാൻ ആവശ്യപ്പെടുക"
+ "ആപ്പിന് വേണ്ടിയുള്ള ബാറ്ററി ഒപ്റ്റിമൈസേഷനുകളെ അവഗണിക്കാനുള്ള അനുമതി ചോദിക്കുന്നതിന് ആപ്പിനെ അനുവദിക്കുന്നു."
"സൂം നിയന്ത്രണം ലഭിക്കാൻ രണ്ടുതവണ ടാപ്പുചെയ്യുക"
"വിജറ്റ് ചേർക്കാനായില്ല."
"പോവുക"
@@ -1230,7 +1237,7 @@
"നിങ്ങളുടെ ഔദ്യോഗിക പ്രൊഫൈലിൽ ഈ അപ്ലിക്കേഷൻ ഉപയോഗിക്കുന്നു"
"ടൈപ്പുചെയ്യൽ രീതി"
"സമന്വയിപ്പിക്കുക"
- "പ്രവേശനക്ഷമത"
+ "ഉപയോഗസഹായി"
"വാൾപേപ്പർ"
"വാൾപേപ്പർ മാറ്റുക"
"അറിയിപ്പ് ലിസണർ"
@@ -1432,9 +1439,9 @@
" — "
"നീക്കംചെയ്യുക"
"മുകളിൽക്കൊടുത്തിരിക്കുന്ന ശുപാർശചെയ്ത ലെവലിലേക്ക് വോളിയം വർദ്ധിപ്പിക്കണോ?\n\nഉയർന്ന വോളിയത്തിൽ ദീർഘനേരം കേൾക്കുന്നത് നിങ്ങളുടെ ശ്രവണ ശേഷിയെ ദോഷകരമായി ബാധിക്കാം."
- "പ്രവേശനക്ഷമത പ്രവർത്തനക്ഷമമാക്കാൻ രണ്ട് വിരലുകൾ അമർത്തിപ്പിടിക്കുക."
- "പ്രവേശനക്ഷമത പ്രവർത്തനക്ഷമമാക്കി."
- "പ്രവേശനക്ഷമത റദ്ദാക്കി."
+ "ഉപയോഗസഹായി പ്രവർത്തനക്ഷമമാക്കാൻ രണ്ട് വിരലുകൾ അമർത്തിപ്പിടിക്കുക."
+ "ഉപയോഗസഹായി പ്രവർത്തനക്ഷമമാക്കി."
+ "ഉപയോഗസഹായി റദ്ദാക്കി."
"നിലവിലെ ഉപയോക്താവ് %1$s ആണ്."
"%1$s എന്ന ഉപയോക്താവിലേക്ക് മാറുന്നു…"
"%1$s ലോഗൌട്ട് ചെയ്യുന്നു…"
@@ -1558,7 +1565,7 @@
"വർഷം തിരഞ്ഞെടുക്കുക"
"%1$s ഇല്ലാതാക്കി"
"ഔദ്യോഗികം %1$s "
- "ഈ സ്ക്രീൻ അൺപിൻ ചെയ്യാൻ, ബാക്ക് ബട്ടൺ സ്പർശിച്ച് പിടിക്കുക"
+ "ഈ സ്ക്രീൻ അൺപിൻ ചെയ്യാൻ, ബാക്കും ചുരുക്കവിവരണവും സ്പർശിച്ച് പിടിക്കുക."
"അപ്ലിക്കേഷൻ പിൻ ചെയ്തു: ഈ ഉപകരണത്തിൽ അൺപിൻ ചെയ്യാനാവില്ല."
"സ്ക്രീൻ പിൻ ചെയ്തു"
"സ്ക്രീൻ അൺപിൻ ചെയ്തു"
diff --git a/core/res/res/values-mn-rMN/strings.xml b/core/res/res/values-mn-rMN/strings.xml
index f936b85966a7..2f7857327578 100644
--- a/core/res/res/values-mn-rMN/strings.xml
+++ b/core/res/res/values-mn-rMN/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Холболтын асуудал эсвэл буруу MMI код."
"Ажиллагаа зөвөх тогтсон дугаараар хязгаарлагдсан."
+ "Таныг роуминг үйлчилгээг идэвхжүүлсэн үед таны утаснаас дуудлага дамжуулах тохиргоог өөрчлөх боломжгүй."
"Үйлчилгээ идэвхжсэн."
"Дараах үйлчилгээ идэвхтэй болсон:"
"Үйлчилгээ идэвхгүй болсон."
@@ -96,6 +97,8 @@
"Дуут/дата үйлчилгээ хаагдсан."
"Дуут/SMS үйлчилгээнүүд хориглогдсон."
"Бүх дуут/дата/SMS үйлчилгээнүүд хориглогдсон."
+ "Сүлжээнд холбогдох боломжгүй байна"
+ "Хүлээн авалтыг сайжруулахын тулд Тохиргоо > Үүрэн сүлжээ > Сүлжээний төрөл хэсгийг сонгон төрлөө өөрчилнө үү."
"Хандлагын цэгт хүсэлт тавьсан TTY Mode FULL"
"Хандлагын цэгт хүсэлт тавьсан TTY Mode HCO"
"Хандлагын цэгт хүсэлт тавьсан TTY Mode VCO"
@@ -179,6 +182,8 @@
"Зохицуулагч аппликейшн алга болсон учраас ажлын профайл устсан байна."
"Ажлын профайлын зохицуулагч аппликейшн алга болсон эсвэл эвдэрсэн байна. Үүний улмаас таны ажлын профайл болон холбогдох мэдээллүүд устсан байна. Тусламж хэрэгтэй байгаа бол админтай холбоо барина уу."
"Таны ажлын профайл энэ төхөөрөмж дээр ажиллахгүй болсон байна."
+ "Сүлжээний ачааллыг хянаж байна"
+ "Дэлгэрэнгүй үзэхийн тулд товшино уу"
"Таны төхөөрөмж устах болно."
"Зохицуулагч аппликейшны зарим нэг хэсэг дутуу эсвэл эвдэрсэн байгаа тул ашиглах боломжгүй байна. Таны төхөөрөмжийг одоо устгах болно. Танд тусламж хэрэгтэй байгаа бол админтайгаа холбоо барина уу."
"Би"
@@ -436,7 +441,7 @@
"хурууны хээний програм хангамжийг удирдах"
"Хурууны хээний загварыг нэмэх эсвэл усгтах үйлдлийг хийх зөвшөөрлийг програмд олгодог."
"хурууны хээний програм хангамжийг ашиглах"
- "Баталгаажуулалт хийх зорилгоор хурууны хээний програм хамгамжийг ашиглах зөвшөөрлийг програмд олгодог"
+ "Баталгаажуулалт хийх зорилгоор хурууны хээний апп хамгамжийг ашиглах зөвшөөрлийг аппд олгодог"
"Хурууны хээг дутуу уншуулсан байна. Дахин оролдоно уу."
"Хурууны хээ боловсруулж чадахгүй байна. Дахин оролдоно уу."
"Хурууны хээ мэдрэгч бохирдсон байна. Та цэвэрлэсний дараагаар дахин оролдоно уу."
@@ -1202,12 +1207,14 @@
"Хэлбэршүүлж байна..."
"Оруулаагүй байна"
"Таарах активити олдсонгүй."
- "медиа гаралтын маршрут"
+ "медиа гаралтын чиглэл"
"Аппликешн нь медиа гаралтыг бусад гадаад төхөөрөмжрүү чиглүүлэх боломжтой."
"Суулгах харилцан үйлдлийг унших"
"Аппликешн-д суулгах сешн уншихыг зөвшөөрнө. Энэ нь идэвхтэй багцуудыг суулгалтын талаар дэлгэрэнгүй мэдээллийг үзэх боломж олгоно."
"багц суулгахыг хүсэх"
"Аппликейшн нь багц суулгахыг хүсэх боломжтой."
+ "батерейны оновчлол алгасахыг асуух"
+ "Тухайн аппaaс батерейны оновчлол алгасах зөвшөөрөл асуухыг зөвшөөрдөг."
"Өсгөх контрол дээр хоёр удаа товшино уу"
"Виджет нэмж чадсангүй."
"Очих"
@@ -1558,7 +1565,7 @@
"Жилийг сонгоно уу"
"%1$s устсан"
"Ажлын %1$s "
- "Энэ дэлгэцийг эхэнд нээхийг болиулахын тулд Буцах товчлуурыг дараад, хүлээнэ үү."
+ "Энэ дэлгэцийг тогтоосныг болиулахын тулд Буцах, Тойм гэснийг товшоод, хүлээнэ үү."
"App-ыг тусгайлан тэмдэглэсэн байна: Энэ төхөөрөмж дээр тусгайлан тэмдэглэсэн сонголтыг устгах боломжгүй."
"Дэлгэцийг тогтоосон"
"Дэлгэцийг сулласан"
diff --git a/core/res/res/values-mr-rIN/strings.xml b/core/res/res/values-mr-rIN/strings.xml
index 8951643cfde0..5239d8f6a84b 100644
--- a/core/res/res/values-mr-rIN/strings.xml
+++ b/core/res/res/values-mr-rIN/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"कनेक्शन समस्या किंवा अवैध MMI कोड."
"कार्य फक्त निश्चित डायलिंग नंबरसाठी प्रतिबंधित आहे."
+ "आपण रोमिंगमध्ये असताना आपल्या फोनवरील कॉल अग्रेषण सेटिंंग्ज बदलू शकत नाही."
"सेवा सक्षम केली."
"सेवा यासाठी सक्षम केली:"
"सेवा अक्षम केली गेली आहे."
@@ -67,10 +68,10 @@
"IMEI"
"MEID"
- "येणारा कॉलर ID"
- "केला जाणारा कॉलर ID"
- "कनेक्ट केलेला रेखा ID"
- "कनेक्ट केलेला रेखा ID प्रतिबंध"
+ "येणारा कॉलर आयडी"
+ "केला जाणारा कॉलर आयडी"
+ "कनेक्ट केलेला रेखा आयडी"
+ "कनेक्ट केलेला रेखा आयडी प्रतिबंध"
"कॉल अग्रेषण"
"कॉल प्रतीक्षा"
"कॉल सोडून"
@@ -82,12 +83,12 @@
"अवांछित त्रासदायक कॉल ला नकार"
"कॉल करणार्या नंबरचे वितरण"
"व्यत्यय आणू नका"
- "कॉलर ID डीफॉल्ट रूपात प्रतिबंधित वर सेट असतो. पुढील कॉल: प्रतिबंधित"
- "कॉलर ID डीफॉल्ट रूपात प्रतिबंधित वर सेट असतो. पुढील कॉल: प्रतिबंधित नाही"
- "कॉलर ID डीफॉल्ट रूपात प्रतिबंधित नाही वर सेट असतो. पुढील कॉल: प्रतिबंधित"
- "कॉलर ID डीफॉल्ट रूपात प्रतिबंधित नाही वर सेट असतो. पुढील कॉल: प्रतिबंधित नाही"
+ "कॉलर आयडी डीफॉल्ट रूपात प्रतिबंधित वर सेट असतो. पुढील कॉल: प्रतिबंधित"
+ "कॉलर आयडी डीफॉल्ट रूपात प्रतिबंधित वर सेट असतो. पुढील कॉल: प्रतिबंधित नाही"
+ "कॉलर आयडी डीफॉल्ट रूपात प्रतिबंधित नाही वर सेट असतो. पुढील कॉल: प्रतिबंधित"
+ "कॉलर आयडी डीफॉल्ट रूपात प्रतिबंधित नाही वर सेट असतो. पुढील कॉल: प्रतिबंधित नाही"
"सेवेची तरतूद केलेली नाही."
- "आपण कॉलर ID सेटिंग बदलू शकत नाही."
+ "आपण कॉलर आयडी सेटिंग बदलू शकत नाही."
"डेटा सेवा अवरोधित केली आहे."
"आणीबाणी सेवा अवरोधित केली आहे."
"व्हॉइस सेवा अवरोधित केली आहे."
@@ -96,6 +97,8 @@
"व्हॉइस/डेटा सेवा अवरोधित केल्या आहेत."
"व्हॉइस/SMS सेवा अवरोधित केल्या आहेत."
"सर्व व्हॉइस/डेटा/SMS सेवा अवरोधित केल्या आहेत."
+ "नेटवर्कवर पोहोचूू शकत नाही"
+ "रिसेप्शन सुधारण्यासाठी, प्रकार सेटिंग्ज > सेल्युलर नेटवर्क > प्राधान्यीकृत नेटवर्क प्रकार येथे निवडलेला प्रकार बदलून पहा."
"समवयस्क व्यक्तीने TTY मोड पूर्ण ची विनंती केली"
"समवयस्क व्यक्तीने TTY मोड HCO ची विनंती केली"
"समवयस्क व्यक्तीने TTY मोड VCO ची विनंती केली"
@@ -179,6 +182,8 @@
"गहाळ प्रशासन अॅपमुळे कार्य प्रोफाईल हटविले."
"कार्य प्रोफाईल प्रशासन अॅप गहाळ आहे किंवा दुषित आहे. यामुळे, आपले कार्य प्रोफाईल आणि संबंधित डेटा हटविला गेला आहे. सहाय्यासाठी आपल्या प्रशासकाशी संपर्क साधा."
"आपले कार्य प्रोफाईल या डिव्डाइसवर यापुढे उपलब्ध नाही."
+ "नेटवर्क रहदारीचे परीक्षण केले जात आहे"
+ "अधिक जाणून घेण्यासाठी टॅप करा"
"आपले डिव्हाइस मिटविले जाईल"
"प्रशासन अॅपमध्ये घटक गहाळ किंवा दूषित आहेत आणि वापरला जाऊ शकत नाही. आपले डिव्हाइस आता मिटविले जाईल. सहाय्यासाठी आपल्या प्रशासकाशी संपर्क साधा."
"मी"
@@ -318,7 +323,7 @@
"अॅपला मेमरीमध्ये कायम असलेले त्याचे स्वतःचे भाग बनविण्यासाठी अनुमती देते. हे टीव्ही धीमा करून इतर अॅप्सवर उपलब्ध असलेली मेमरी मर्यादित करू शकते."
"अॅप ला मेमरीमध्ये कायम असलेले त्याचे स्वतःचे भाग बनविण्यास अनुमती देते. हे फोन धीमा करून अन्य अॅप्सवर उपलब्ध असलेल्या मेमरीवर मर्यादा घालू शकते."
"अॅप संचयन स्थान मोजा"
- "अॅप ला त्याचा कोड, डेटा आणि कॅशे आकार पुनर्प्राप्त करण्यासाठी अनुमती देते"
+ "अॅप ला त्याचा कोड, डेटा आणि कॅश आकार पुनर्प्राप्त करण्यासाठी अनुमती देते"
"सिस्टम सेटिंग्ज सुधारित करा"
"सिस्टीमचा सेटिंग्ज डेटा सुधारित करण्यासाठी अॅप ला अनुमती देते. दुर्भावनापूर्ण अॅप्स आपल्या सिस्टीमचे कॉन्फिगरेशन दूषित करू शकतात."
"सुरूवातीस चालवा"
@@ -376,7 +381,7 @@
"IMS कॉल सेवेमध्ये प्रवेश करा"
"आपल्या हस्तक्षेपाशिवाय अॅपला कॉल करण्यासाठी IMS सेवा वापरण्याची अनुमती देते."
"फोन स्थिती आणि ओळख वाचा"
- "डिव्हाइसच्या फोन वैशिष्ट्यांवर प्रवेश करण्यास अॅप ला अनुमती देते. ही परवानगी कॉल सक्रिय असला किंवा नसला तरीही, फोन नंबर आणि डिव्हाइस ID आणि कॉलद्वारे कनेक्ट केलेला रीमोट नंबर निर्धारित करण्यासाठी अॅप ला अनुमती देते."
+ "डिव्हाइसच्या फोन वैशिष्ट्यांवर प्रवेश करण्यास अॅप ला अनुमती देते. ही परवानगी कॉल सक्रिय असला किंवा नसला तरीही, फोन नंबर आणि डिव्हाइस आयडी आणि कॉलद्वारे कनेक्ट केलेला रीमोट नंबर निर्धारित करण्यासाठी अॅप ला अनुमती देते."
"टॅबलेट निष्क्रिय होण्यापासून प्रतिबंधित करा"
"निष्क्रिय होण्यापासून प्रतिबंध करा"
"फोन निष्क्रिय होण्यापासून प्रतिबंधित करा"
@@ -1208,6 +1213,8 @@
"अनुप्रयोगास स्थापना सत्र वाचण्याची अनुमती देते. हे सक्रिय पॅकेज स्थापनांविषयी तपशील पाहाण्याची यास अनुमती देते."
"पॅकेज स्थापित करण्यासाठी विनंती करा"
"पॅकेजच्या स्थापना करण्यासाठी अनुप्रयोगास अनुमती देते."
+ "बॅटरी ऑप्टिमायझेशन दुर्लक्षित करण्यास सांगा"
+ "त्या अॅपसाठी बॅटरी ऑप्टिमायझेशन दुर्लक्षित करण्यासाठी अॅपला परवानगी मागण्याची अनुमती देते."
"झूम नियंत्रणासाठी दोनदा टॅप करा"
"विजेट जोडू शकलो नाही."
"जा"
@@ -1558,7 +1565,7 @@
"वर्ष निवडा"
"%1$s हटविली"
"कार्य %1$s "
- "ही स्क्रीन अनपिन करण्यासाठी, परत ला स्पर्श करा आणि धरून ठेवा."
+ "ही स्क्रीन अनपिन करण्यासाठी, परत जा आणि विहंगावलोकन करा स्पर्श करा आणि धरून ठेवा."
"अॅप पिन केलेला आहे: या डिव्हाइसवर अनपिन करण्यास अनुमती नाही."
"स्क्रीन पिन केली"
"स्क्रीन अनपिन केली"
diff --git a/core/res/res/values-ms-rMY/strings.xml b/core/res/res/values-ms-rMY/strings.xml
index e096aecd0188..820963ff1512 100644
--- a/core/res/res/values-ms-rMY/strings.xml
+++ b/core/res/res/values-ms-rMY/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Masalah sambungan atau kod MMI tidak sah"
"Pengendalian dihadkan kepada nombor dailan tetap sahaja."
+ "Tidak dapat mengubah tetapan pemajuan panggilan daripad telefon anda semasa dalam perayauan."
"Perkhidmatan telah didayakan."
"Perkhidmatan didayakan untuk:"
"Perkhidmatan telah dilumpuhkan."
@@ -96,6 +97,8 @@
"Perkhidmatan suara/data disekat."
"Perkhidmatan suara/SMS disekat."
"Semua perkhidmatan suara/data/SMS disekat."
+ "Tidak dapat mencapai rangkaian"
+ "Untuk mempertingkat penerimaan, cuba tukar jenis yang dipilih di Tetapan > Rangkaian selular > Jenis rangkaian yang dipilih."
"Rakan meminta Mod TTY PENUH"
"Rakan meminta Mod TTY HCO"
"Rakan meminta Mod TTY VCO"
@@ -179,6 +182,8 @@
"Profil kerja dipadam kerana apl pentadbir hilang."
"Apl admin profil kerja hilang atau pun rosak. Akibatnya, profil kerja anda dan data yang berkaitan telah dipadam. Hubungi pentadbir anda untuk mendapatkan bantuan."
"Profil kerja anda tidak tersedia pada peranti ini lagi."
+ "Trafik rangkaian sedang dipantau"
+ "Ketik untuk mengetahui lebih lanjut"
"Peranti anda akan dipadam"
"Apl pentadbir kehilangan komponen atau rosak dan tidak boleh digunakan. Sekarang peranti anda akan dipadam. Hubungi pentadbir anda untuk mendapatkan bantuan."
"Saya"
@@ -1208,6 +1213,8 @@
"Membenarkan aplikasi membaca sesi pemasangan Ini membenarkan apl melihat butiran mengenai pemasangan pakej yang aktif."
"minta pakej pemasangan"
"Membenarkan aplikasi meminta pemasangan pakej."
+ "minta kebenaran untuk mengabaikan pengoptimuman bateri"
+ "Membenarkan apl meminta kebenaran untuk mengabaikan pengoptimuman bateri untuk apl itu."
"Ketik dua kali untuk mendapatkan kawalan zum"
"Tidak dapat menambahkan widget."
"Pergi"
@@ -1558,7 +1565,7 @@
"Pilih tahun"
"%1$s dipadamkan"
"Kerja %1$s "
- "Untuk menyahsematkan skrin ni, ketik & tahan Kembali."
+ "Untuk menyahsematkan skrin ini, sentuh & tahan Kembali dan Ikhtisar."
"Apl disemat: Nyahsemat tidak dibenarkan pada peranti ini."
"Skrin disemat"
"Skrin dinyahsemat"
diff --git a/core/res/res/values-my-rMM/strings.xml b/core/res/res/values-my-rMM/strings.xml
index 80d331d6ec34..fbcb1d15e8fd 100644
--- a/core/res/res/values-my-rMM/strings.xml
+++ b/core/res/res/values-my-rMM/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"ဆက်သွယ်မှုဆိုင်ရာပြသနာ သို့မဟုတ် မမှန်ကန်သောMMIကုတ်"
"သတ်မှတ်ခေါ်ဆိုနိုင်သောနံပါတ်များထံသာ ကန့်သတ်ထားသည်"
+ "ကွန်ရက်ပြင်ပဒေတာအသုံးပြုခြင်းကို ဖွင့်ထားသည့်အခါ သင့်ဖုန်းမှနေ၍ ခေါ်ဆိုမှုထပ်ဆင့်ပို့ခြင်းဆက်တင်အား ပြောင်း၍မရပါ။"
"ဝန်ဆောင်မှု လုပ်ဆောင်နိုင်မည်"
"ဝန်ဆောင်မှု ရရှိမည်"
"ဝန်ဆောင်မှုအား ရပ်ဆိုင်းသည်"
@@ -96,6 +97,8 @@
"အသံ၊ဒေတာ ဆားဗစ်များအားလုံး ပိတ်ထားပါသည်"
"အသံ/SMSဝန်ဆောင်မှုများအားပိတ်ထားသည်။"
"အသံ၊အချက်အလက်၊စာတိုဆားဗစ်များအားလုံး ပိတ်ထားပါသည်"
+ "ကွန်ရက်ကို ချိတ်ဆက်၍မရပါ"
+ "လိုင်းကောင်းစေရန်အတွက် ဆက်တင် > ဆယ်လူလာကွန်ရက်များ > ပိုနှစ်သက်သည့် ကွန်ရက်အမျိုးအစားထဲတွင် ရွေးချယ်ထားသည့် အမျိုးအစားကို ပြောင်းကြည့်ပါ။"
"အခြားစက်မှ TTY မုဒ် FULL ပြုရန် တောင်းဆို၏"
"အခြားစက်မှ TTY မုဒ် HCO ပြုရန် တောင်းဆို၏"
"TTY မုဒ် VCO ပြုရန် အခြားစက်မှ တောင်းဆို၏"
@@ -179,6 +182,8 @@
"အက်ဒမင် အက်ပ်ပျောက်နေသောကြောင့် အလုပ်ပရိုဖိုင် ပျက်သွားသည်။"
"အလုပ်ပရိုဖိုင် အက်ဒမင် အပလီကေးရှင်းပျောက်နေသည် သို့မဟုတ် ပျက်စီးနေသည်။ ထို့ကြောင့် သင့်အလုပ်ပရိုဖိုင်နှင့် ဆက်စပ်နေသော ဒေတာများအား ပယ်ဖျက်ခြင်းခံရမည်။ အကူအညီတောင်းခံရန် သင့်အက်ဒမင်အား ဆက်သွယ်ပါ။"
"ဤစက်ကိရိယာတွင် သင့်အလုပ်ပရိုဖိုင် မရှိတော့ပါ။"
+ "ကွန်ရက်အသွားအလာကို စောင့်ကြည့်နေပါသည်"
+ "ပိုမိုလေ့လာရန် တို့ပါ"
"သင့်ကိရိယာအား ပယ်ဖျက်လိမ့်မည်"
"အက်ဒမင် အက်ပ်၏ အစိတ်အပိုင်းများ ပျောက်နေသည် သို့မဟုတ် ပျက်စီးနေသည်။ သင့်ကိရိယာအား ပယ်ဖျက်လိမ့်မည်။ အကူအညီတောင်းခံရန် သင့်အက်ဒမင်အား ဆက်သွယ်ပါ။"
"ကျွန်ုပ်"
@@ -643,7 +648,7 @@
"အထောက်အကူ"
"ညီအကို"
"သားသမီး"
- "အတူနေအပေါင်းအဖော်"
+ "အတူနေအဖော်"
"ဖခင်"
"သူငယ်ချင်း"
"မန်နေဂျာ"
@@ -651,7 +656,7 @@
"မိဘ"
"လုပ်ဖော်ကိုင်ဖက်"
"မှရည်ညွှန်းပေးသည်"
- "ဆွေးမျိုး"
+ "ဆွေမျိုး"
"ညီအမ"
"အိမ်ထောင်ဖက်"
"မိမိစိတ်ကြိုက်"
@@ -1208,6 +1213,8 @@
"အပလီကေးရှင်းအား တပ်ဆင်ရေး ချိတ်ဆက်မှုများကို ဖတ်ခွင့်ပြုသည်။ ၎င်းသည် ဖွင့်သုံးနေသည့် အထုပ်အား တပ်ဆင်မှုဆိုင်ရာ အသေးိစတ်များကို ကြည့်ရှုခွင့် ပြုသည်။"
"တပ်ဆင်ရေး အထုပ်များကို တောင်းဆိုပါ"
"ပက်ကေ့များ သွင်းယူခြင်းအတွက် တောင်းဆိုရန် အပလီကေးရှင်းအား ခွင့်ပြုပါ"
+ "ဘက်ထရီ ပိုမိုကောင်းမွန်အောင် ပြုလုပ်ခြင်းကို လျစ်လျူရှုရန် တောင်းဆိုပါ"
+ "ဘက်ထရီ ပိုမိုကောင်းမွန်အောင် ပြုလုပ်ခြင်းကို လျစ်လျူရှုရန်အတွက် ခွင့်ပြုချက်တောင်းရန် အက်ပ်ကို ခွင့်ပြုပါ။"
"ဇူးမ်အသုံးပြုရန် နှစ်ချက်တို့ပါ"
"ဝဒ်ဂျက်ထည့်လို့ မရပါ"
"သွားပါ"
@@ -1558,7 +1565,7 @@
"ခုနှစ်ကို ရွေးပါ"
"%1$s ကို ဖျက်ပြီးပါပြီ"
"အလုပ် %1$s "
- "ဤမျက်နှာပြင်ကို ပင်ဖြုတ်ရန် \"နောက်သို့\" ကိုထိပြီးဖိထားပါ။"
+ "ဤမျက်နှာပြင်ကို ပင်ဖြုတ်ရန်အတွက် Back နှင့် Overview ကိုနှိပ်၍ ဖိထားပါ။"
"အက်ပ်ကို ပင်ထိုးထားသည်။ ပင်ဖျက်ခြင်းကို ဒီစက်မှာ မရနိုင်ပါ။"
"မျက်နှာပြင်ကို ပင်ထိုးထား"
"မျက်နှာပြင် ပင်ထိုးမှု ဖြတ်လိုက်ပြီ"
diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml
index 691da31748c6..75b57cba1a8f 100644
--- a/core/res/res/values-nb/strings.xml
+++ b/core/res/res/values-nb/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Tilkoblingsproblem eller ugyldig MMI-kode."
"Handlingen kan kun utføres på numre med anropsbegrensning."
+ "Får ikke endret innstillinger for viderekobling fra telefonen din når du bruker roaming."
"Tjenesten ble aktivert."
"Tjenesten ble aktivert for:"
"Tjenesten ble deaktivert."
@@ -96,6 +97,8 @@
"Alle tjenester for tale og data er blokkert."
"Tjenester for tale og tekstmeldinger er blokkert."
"Alle tjenester for tale, data og tekstmeldinger er blokkert."
+ "Får ikke kontakt med nettverket"
+ "For å forbedre signalet, prøv å endre valgt nettverkstype i Innstillinger > Mobilnettverk > Foretrukket nettverkstype."
"Motpart ba om TTY-modus FULL"
"Motpart ba om TTY-modus HCO"
"Motpart ba om TTY-modus VCO"
@@ -179,6 +182,8 @@
"Arbeidsprofilen er slettet på grunn av manglende admin-app."
"Arbeidsprofilens admin-app mangler eller er ødelagt. Dette har ført til at arbeidsprofilen og alle data knyttet til den er blitt slettet. Kontakt administratoren for å få hjelp."
"Arbeidsprofilen din er ikke lenger tilgjengelig på denne enheten."
+ "Nettverkstrafikken blir overvåket"
+ "Trykk for å finne ut mer"
"Enheten blir slettet"
"Admin-appen mangler komponenter eller er ødelagt, og kan ikke brukes. Enheten din blir nå slettet. Kontakt administratoren for å få hjelp."
"Meg"
@@ -1208,6 +1213,8 @@
"Tillater en app å lese installeringsøkter. Dette gjør det mulig for den å se detaljer om aktive pakkeinstallasjoner."
"be om installasjon av pakker"
"Lar apper be om installasjon av pakker."
+ "be om å ignorere batterioptimaliseringer"
+ "Gjør det mulig for apper å be om tillatelse til å ignorere batterioptimaliseringer for disse appene."
"Trykk to ganger for zoomkontroll"
"Kunne ikke legge til modulen."
"Utfør"
@@ -1234,7 +1241,7 @@
"Bakgrunnsbilde"
"Velg bakgrunnsbilde"
"Varsellytteren"
- "Lyttetjeneste for virtuell virkelighet"
+ "Lyttetjeneste for VR"
"Betingelsesleverandør"
"Tjeneste for rangering av varsler"
"VPN er aktivert"
@@ -1328,7 +1335,7 @@
"USB-stasjon"
"%s USB-stasjon"
"USB-lagring"
- "Rediger"
+ "Endre"
"Varsel om databruk"
"Trykk for å se bruken og innstillingene."
"Datagrensen for 2G-3G er nådd"
@@ -1558,7 +1565,7 @@
"Velg året"
"%1$s er slettet"
"Jobb-%1$s "
- "For å løsne denne skjermen, trykk og hold inne Tilbake."
+ "For å løsne denne skjermen, trykk på og hold inne Tilbake og Oversikt."
"Appen er festet – du kan ikke løsne apper på denne enheten."
"Skjermen er festet"
"Skjermen er løsnet"
diff --git a/core/res/res/values-ne-rNP/strings.xml b/core/res/res/values-ne-rNP/strings.xml
index 3d5cfeddd91c..75ee39d1d3ef 100644
--- a/core/res/res/values-ne-rNP/strings.xml
+++ b/core/res/res/values-ne-rNP/strings.xml
@@ -46,6 +46,7 @@
"MSISDN१"
"जडान समस्या वा अमान्य MMI कोड।"
"अपरेशन निश्चित डायल नम्बरहरूको लागि मात्र प्रतिबन्धित छ।"
+ "तपाईं रोमिङमा हुनुहुँदा तपाईंको फोनबाट कल फर्वार्ड गर्ने सम्बन्धी सेटिङहरू परिवर्तन गर्न सकिँदैन।"
"सेवा सक्षम पारियो।"
"निम्न उल्लेखितको लागि सेवा सक्षम पारियो:"
"सेवा असक्षम पारिएको छ।"
@@ -96,6 +97,8 @@
"भ्वाइस/डेटा सेवाहरू रोकिएका छन्।"
"आवाज/SMS सेवाहरू बन्द छन्।"
"सबै भ्वाइस/डेटा/SMS सेवाहरू ब्लक भएका छन्।"
+ "नेटवर्कमाथि पहुँच राख्न सकिँदैन"
+ "सेलुलरको रिसेप्सनलाई सुधार्न सेटिङहरू > सेलुलर नेटवर्कहरू > नेटवर्कको रुचाइएको प्रकारमा गई चयन गरिएको प्रकार परिवर्तन गरी हेर्नुहोस्।"
"सहकर्मी अनुरोध गरियो। TTY मोड पूर्ण"
"सहकर्मी अनुरोध गरियो। TTY मोड HCO"
"सहकर्मी अनुरोध गरियो। TTY मोड VCO"
@@ -179,6 +182,8 @@
"प्रशासन अनुप्रयोग हराएको कारण कार्य प्रोफाइल मेटियो।"
"कार्य प्रोफाइल व्यवस्थापक अनुप्रयोग या त हराएको या त बिग्रेको छ। फलस्वरूप, तपाईँको कार्य प्रोफाइल र सम्बन्धित डेटा मेटिएको छ। सहयोगको लागि तपाईँको व्यवस्थापकसँग सम्पर्क गर्नुहोस्।"
"यस यन्त्रमा तपाईँको कार्य प्रोफाइल अब उपलब्ध छैन।"
+ "नेटवर्कको ट्राफिकको अनुगमन गरिँदै छ"
+ "थप जान्न ट्याप गर्नुहोस्"
"तपाईंको यन्त्र मेटिनेछ"
"व्यवस्थापक अनुप्रयोगमा कम्पोनेन्टहरू या त हराएको वा भ्रष्ट छन्, र यसैले प्रयोग गर्न सकिँदैन। तपाईंको यन्त्र अब मेटिनेछ। सहयोगको लागि आफ्नो व्यवस्थापकलाई सम्पर्क गर्नुहोस्।"
"मलाई"
@@ -553,30 +558,30 @@
- "घरको फ्याक्स"
- "पेजर"
- "अन्य"
- - "अनुकूलन"
+ - "आफू अनुकूल"
- "गृह"
- "काम"
- "अन्य"
- - "अनुकूलन"
+ - "आफू अनुकूल"
- "गृह"
- "काम"
- "अन्य"
- - "अनुकूलन"
+ - "आफू अनुकूल"
- "गृह"
- "काम"
- "अन्य"
- - "अनुकूलन"
+ - "आफू अनुकूल"
- "काम गर्नुहोस्"
- "अन्य"
- - "अनुकूलन"
+ - "आफू अनुकूल"
- "AIM"
@@ -588,7 +593,7 @@
- "ICQ"
- "Jabber"
- "अनुकूलन"
+ "आफू अनुकूल"
"गृह"
"मोबाइल"
"काम"
@@ -609,24 +614,24 @@
"कार्य पेजर"
"सहायक"
"MMS"
- "अनुकूलन"
+ "आफू अनुकूल"
"जन्मदिन"
"वार्षिक समारोह"
"अन्य"
- "अनुकूलन"
+ "आफू अनुकूल"
"गृह"
"काम"
"अन्य"
"मोबाइल"
- "अनुकूलन"
+ "आफू अनुकूल"
"गृह"
"काम"
"अन्य"
- "अनुकूलन"
+ "आफू अनुकूल"
"गृह"
"काम"
"अन्य"
- "अनुकूलन"
+ "आफू अनुकूल"
"AIM"
"Windows Live"
"Yahoo"
@@ -638,8 +643,8 @@
"NetMeeting"
"काम"
"अन्य"
- "अनुकूलन"
- "अनुकूलन"
+ "आफू अनुकूल"
+ "आफू अनुकूल"
"सहायक"
"भाइ"
"सन्तान"
@@ -653,8 +658,8 @@
"द्वारा उल्लिखित"
"आफन्त"
"बहिनी"
- "पति-पत्नि"
- "अनुकूलन"
+ "पति-पत्नी"
+ "आफू अनुकूल"
"गृह"
"काम गर्नुहोस्"
"अन्य"
@@ -1029,7 +1034,7 @@
"प्रक्रिया %1$s यसको आफ्नै कडामोड नीतिका कारण उल्लङ्घन गरिएको छ।"
"एन्ड्रोइड अपग्रेड हुँदैछ…"
"Android शुरू हुँदैछ..."
- "भण्डारण अनुकूलन गर्दै।"
+ "भण्डारण आफू अनुकूल गर्दै।"
"Android को अद्यावधिकलाई सम्पन्न गर्दै…"
"स्तरवृद्धि सम्पन्न नभएसम्म केही अनुप्रयोगहरू राम्ररी काम नगर्न सक्छन्"
"%1$s को स्तरवृद्धि हुँदैछ…"
@@ -1100,8 +1105,8 @@
"अनुप्रयोग %1$s Wifi सञ्जाल %2$s मा जडान गर्न चाहन्छ"
"एउटा अनुप्रयोग"
"Wi-Fi प्रत्यक्ष"
- "Wi-Fi सिधा सुरु गर्नुहोस्। यसले Wi-Fi ग्राहक/हट्स्पटलाई बन्द गराउने छ।"
- "Wi-Fi सिधा सुरु हुन सकेन।"
+ "Wi-Fi सीधा सुरु गर्नुहोस्। यसले Wi-Fi ग्राहक/हट्स्पटलाई बन्द गराउने छ।"
+ "Wi-Fi सीधा सुरु हुन सकेन।"
"Wi-Fi प्रत्यक्ष खुल्ला छ"
"सेटिङहरूका लागि ट्याप गर्नुहोस्"
"स्वीकार्नुहोस्"
@@ -1214,6 +1219,8 @@
"स्थापित सत्र पढ्न अनुप्रयोगलाई अनुमति दिनुहोस्। यसले सक्रिय प्याकेज प्रतिष्ठानहरू बारेमा विवरण हेर्ने अनुमति दिन्छ।"
"स्थापना प्याकेजहरू अनुरोध गर्नुहोस्"
"प्याकेजहरूको स्थापना अनुरोध गर्न अनुप्रयोगलाई अनुमति दिन्छ।"
+ "ब्याट्री सम्बन्धी अनुकूलनहरूलाई बेवास्ता गर्न सोध्नुहोस्"
+ "कुनै अनुप्रयोगलाई त्यसका ब्याट्री सम्बन्धी अनुकूलनहरूलाई बेवास्ता गर्नका लागि अनुमति माग्न दिन्छ।"
"जुम नियन्त्रणको लागि दुई चोटि ट्याप गर्नुहोस्"
"विजेट थप गर्न सकिँदैन।"
"जानुहोस्"
@@ -1564,7 +1571,7 @@
"वर्ष चयन गर्नुहोस्"
"%1$s हटाइयो"
"कार्य %1$s "
- "यस स्क्रिनलाई अनपिन गर्न पछाडि बटनलाई छोइराख्नुहोस्।"
+ "यस स्क्रिनलाई अनपिन गर्न पछाडि र परिदृश्य बटनलाई छोइराख्नुहोस्।"
"अनुप्रयोग पिन गरियो: यस यन्त्रमा अनपिन गर्ने अनुमति छैन।"
"स्क्रिन पिन गरियो"
"स्क्रिन अनपिन गरियो"
diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml
index 1f53e8dc1bfd..4a15417fcfb6 100644
--- a/core/res/res/values-nl/strings.xml
+++ b/core/res/res/values-nl/strings.xml
@@ -21,7 +21,7 @@
"B"
- "kB"
+ " KB"
"MB"
"GB"
"TB"
@@ -46,6 +46,7 @@
"MSISDN1"
"Verbindingsprobleem of ongeldige MMI-code."
"Bewerking is beperkt tot vaste nummers."
+ "Kan instellingen voor doorschakelen van oproepen niet wijzigen vanaf je telefoon tijdens roaming."
"Service is ingeschakeld."
"Service is ingeschakeld voor:"
"Service is uitgeschakeld."
@@ -54,11 +55,11 @@
"Onjuist wachtwoord."
"MMI voltooid."
"De oude pincode die je hebt ingevoerd, is onjuist."
- "De PUK-code die je hebt ingevoerd, is onjuist."
+ "De pukcode die je hebt ingevoerd, is onjuist."
"De pincodes die je hebt ingevoerd, komen niet overeen."
"Voer een pincode van 4 tot 8 cijfers in."
- "Typ een PUK-code die 8 cijfers of langer is."
- "Je SIM-kaart is vergrendeld met de PUK-code. Typ de PUK-code om te ontgrendelen."
+ "Typ een pukcode die 8 cijfers of langer is."
+ "Je SIM-kaart is vergrendeld met de pukcode. Typ de pukcode om te ontgrendelen."
"Voer de PUK2-code in om de SIM-kaart te ontgrendelen."
"Mislukt. Schakel SIM/RUIM-vergrendeling in."
@@ -96,6 +97,8 @@
"Spraak-/gegevensservices zijn geblokkeerd."
"Spraak-/SMS-services zijn geblokkeerd."
"Alle spraak-/gegevens-/SMS-services zijn geblokkeerd."
+ "Kan netwerk niet bereiken"
+ "Als je de ontvangst wilt verbeteren, kun je het netwerktype wijzigen dat is geselecteerd bij Instellingen > Mobiele netwerken > Voorkeursnetwerktype."
"Door peer aangevraagde TTY-modus VOL"
"Door peer aangevraagde TTY-modus HCO"
"Door peer aangevraagde TTY-modus VCO"
@@ -179,6 +182,8 @@
"Werkprofiel verwijderd wegens ontbrekende beheerapp."
"De beheerapp van het werkprofiel ontbreekt of is beschadigd. Als gevolg hiervan zijn je werkprofiel en alle gerelateerde gegevens verwijderd. Neem voor hulp contact op met je beheerder."
"Je werkprofiel is niet meer beschikbaar op dit apparaat."
+ "Netwerkverkeer wordt bijgehouden"
+ "Tik voor meer informatie"
"Je apparaat wordt gewist"
"Er ontbreken onderdelen van de beheerapp of de app is beschadigd, waardoor de app niet kan worden gebruikt. Je apparaat wordt nu gewist. Neem voor hulp contact op met je beheerder."
"Ik"
@@ -204,9 +209,9 @@
"Je tv wordt uitgeschakeld.."
"Je horloge wordt uitgeschakeld."
"Je telefoon wordt uitgeschakeld."
- "Wilt u afsluiten?"
+ "Wil je afsluiten?"
"Opnieuw opstarten in veilige modus"
- "Wilt u opnieuw opstarten in de veilige modus? Als u dit doet, worden alle geïnstalleerde applicaties van derden uitgeschakeld. Ze worden weer ingeschakeld als u weer opnieuw opstart."
+ "Wil je opnieuw opstarten in de veilige modus? Als u dit doet, worden alle geïnstalleerde applicaties van derden uitgeschakeld. Ze worden weer ingeschakeld als u weer opnieuw opstart."
"Recent"
"Geen recente apps."
"Tabletopties"
@@ -258,7 +263,7 @@
"Camera"
"foto\'s maken en video opnemen"
"Telefoon"
- "bellen en telefoontjes beheren"
+ "telefoneren en oproepen beheren"
"Lichaamssensoren"
"toegang krijgen tot sensorgegevens over je vitale functies"
"Content van vensters ophalen"
@@ -356,9 +361,9 @@
"Hiermee kan de app afspraken toevoegen, verwijderen en wijzigen die u op je tv kunt aanpassen, inclusief afspraken van vrienden of collega\'s. Met deze toestemming zou de app berichten kunnen verzenden die afkomstig lijken te zijn van agenda-eigenaren of afspraken kunnen aanpassen zonder medeweten van de eigenaar."
"Hiermee kan de app afspraken toevoegen, verwijderen en wijzigen die u kunt bewerken op je telefoon, inclusief afspraken van vrienden of collega\'s. Zo kan de app berichten verzenden die afkomstig lijken te zijn van agenda-eigenaren, of afspraken aanpassen zonder medeweten van de eigenaar."
"toegang tot extra opdrachten van locatieaanbieder"
- "Hiermee kan de app toegang krijgen tot extra opdrachten voor de locatieprovider. De app kan hiermee de werking van GPS of andere locatiebronnen te verstoren."
- "toegang tot precieze locatie (GPS- en netwerkgebaseerd)"
- "Hiermee kan de app je precieze locatie bepalen via GPS (Global Positioning System) of netwerklocatiebronnen zoals zendmasten en wifi. Deze locatieservices moeten zijn ingeschakeld en beschikbaar zijn op je apparaat voordat de app ze kan gebruiken. Apps kunnen dit gebruiken om te bepalen waar u bent en verbruiken mogelijk extra acculading."
+ "Hiermee kan de app toegang krijgen tot extra opdrachten voor de locatieprovider. De app kan hiermee de werking van gps of andere locatiebronnen te verstoren."
+ "toegang tot precieze locatie (gps- en netwerkgebaseerd)"
+ "Hiermee kan de app je precieze locatie bepalen via gps (Global Positioning System) of netwerklocatiebronnen zoals zendmasten en wifi. Deze locatieservices moeten zijn ingeschakeld en beschikbaar zijn op je apparaat voordat de app ze kan gebruiken. Apps kunnen dit gebruiken om te bepalen waar u bent en verbruiken mogelijk extra acculading."
"toegang tot geschatte locatie (netwerkgebaseerd)"
"Hiermee kan de app beschikken over je geschatte locatie. Deze locatie wordt afgeleid van locatieservices die netwerklocatiebronnen zoals zendmasten en wifi gebruiken. Deze locatieservices moeten zijn ingeschakeld en beschikbaar zijn op je apparaat voordat de app ze kan gebruiken. Apps kunnen dit gebruiken om ongeveer te bepalen waar u zich bevindt."
"je audio-instellingen wijzigen"
@@ -655,13 +660,13 @@
"Zus"
"Huwelijkspartner"
"Aangepast"
- "Startpagina"
+ "Homepage"
"Werk"
"Overig"
"Er is geen app gevonden om dit contact te bekijken."
"Pincode typen"
- "Geef de PUK-code en de nieuwe pincode op"
- "PUK-code"
+ "Geef de pukcode en de nieuwe pincode op"
+ "pukcode"
"Nieuwe pincode"
"Tik om het wachtwoord te typen"
"Typ het wachtwoord om te ontgrendelen"
@@ -698,7 +703,7 @@
"Vooruitspoelen"
"Alleen noodoproepen"
"Netwerk vergrendeld"
- "SIM-kaart is vergrendeld met PUK-code."
+ "SIM-kaart is vergrendeld met pukcode."
"Raadpleeg de gebruikershandleiding of neem contact op met de klantenservice."
"SIM-kaart is vergrendeld."
"SIM-kaart ontgrendelen..."
@@ -804,7 +809,7 @@
"Hiermee kan de app berichten toevoegen aan de inbox van je voicemail."
"geolocatiemachtigingen voor browser aanpassen"
"Hiermee kan de app de geolocatiemachtigingen van de browser aanpassen. Schadelijke apps kunnen dit gebruiken om locatiegegevens te verzenden naar willekeurige websites."
- "Wilt u dat de browser dit wachtwoord onthoudt?"
+ "Wil je dat de browser dit wachtwoord onthoudt?"
"Niet nu"
"Onthouden"
"Nooit"
@@ -1010,7 +1015,7 @@
"OK"
"Melden"
"Wachten"
- "De pagina reageert niet meer.\n\nWilt u de pagina sluiten?"
+ "De pagina reageert niet meer.\n\nWil je de pagina sluiten?"
"App verplaatst"
"%1$s is nu actief."
"%1$s was het eerst gestart."
@@ -1111,7 +1116,7 @@
"De verbinding met het wifi-netwerk wordt tijdelijk uitgeschakeld terwijl de telefoon verbonden is met %1$s "
"Teken invoegen"
"SMS-berichten verzenden"
- "<b>%1$s </b> verzendt moment een groot aantal sms-berichten. Wilt u toestaan dat deze app berichten blijft verzenden?"
+ "<b>%1$s </b> verzendt moment een groot aantal sms-berichten. Wil je toestaan dat deze app berichten blijft verzenden?"
"Toestaan"
"Weigeren"
"<b>%1$s </b> wil graag een bericht verzenden naar <b>%2$s </b>."
@@ -1208,6 +1213,8 @@
"Hiermee wordt een app toegestaan installatiesessies te lezen. Zo kan de app informatie bekijken over actieve pakketinstallaties."
"installatiepakketten aanvragen"
"Hiermee kan een app installatie van pakketten aanvragen."
+ "vragen om batterijoptimalisatie te negeren"
+ "Hiermee kan een app toestemming vragen om batterijoptimalisatie voor die app te negeren."
"Tik twee keer voor zoomregeling"
"Kan widget niet toevoegen."
"Ga"
@@ -1220,7 +1227,7 @@
"Nummer bellen\nmet %s "
"Contact maken\nmet %s "
"De volgende apps verzoeken om toegang tot je account, nu en in de toekomst."
- "Wilt u dit verzoek toestaan?"
+ "Wil je dit verzoek toestaan?"
"Verzoek om toegang"
"Toestaan"
"Weigeren"
@@ -1277,7 +1284,7 @@
"Ja"
"Nee"
"Verwijderingslimiet overschreden"
- "Er zijn %1$d verwijderde items voor %2$s , account %3$s . Wat wilt u doen?"
+ "Er zijn %1$d verwijderde items voor %2$s , account %3$s . Wat wil je doen?"
"De items verwijderen."
"Verwijderingen ongedaan maken"
"Nu niets doen."
@@ -1333,7 +1340,7 @@
"Tik voor gebruik en instellingen"
"Gegevenslimiet van 2G-3G bereikt"
"Gegevenslimiet van 4G bereikt"
- "Mobiele gegevenslimiet bereikt"
+ "Mobiele datalimiet bereikt"
"Wifi-gegevenslimiet bereikt"
"Gegev. onderbr. voor rest cyclus"
"Gegevenslimiet 2G-3G overschreden"
@@ -1400,14 +1407,14 @@
"Geef de pincode van de simkaart op"
"Pincode opgeven"
"Wachtwoord invoeren"
- "De simkaart is nu uitgeschakeld. Geef de PUK-code op om door te gaan. Neem contact op met de provider voor informatie."
+ "De simkaart is nu uitgeschakeld. Geef de pukcode op om door te gaan. Neem contact op met de provider voor informatie."
"Gewenste pincode opgeven"
"Gewenste pincode bevestigen"
"Simkaart ontgrendelen..."
"Onjuiste pincode."
"Voer een pincode van 4 tot 8 cijfers in."
- "De PUK-code is acht cijfers lang."
- "Geef de juiste PUK-code opnieuw op. Bij herhaalde pogingen wordt de simkaart permanent uitgeschakeld."
+ "De pukcode is acht cijfers lang."
+ "Geef de juiste pukcode opnieuw op. Bij herhaalde pogingen wordt de simkaart permanent uitgeschakeld."
"Pincodes komen niet overeen"
"Te veel patroonpogingen"
"Als u wilt ontgrendelen, moet u inloggen op je Google-account."
@@ -1524,8 +1531,8 @@
"Kahu"
"Kaku2"
"You4"
- "Onbekend portret"
- "Onbekend landschap"
+ "Onbekend staand"
+ "Onbekend liggend"
"Geannuleerd"
"Fout bij schrijven van content"
"onbekend"
@@ -1558,7 +1565,7 @@
"Jaar selecteren"
"%1$s verwijderd"
"Werk %1$s "
- "Tik op Terug en houd vast om dit scherm los te maken."
+ "Tik op Terug en Overzicht en houd vast om dit scherm los te maken."
"App is vastgezet: losmaken is niet toegestaan op dit apparaat."
"Scherm vastgezet"
"Scherm losgemaakt"
diff --git a/core/res/res/values-notround-watch/dimens.xml b/core/res/res/values-notround-watch/dimens.xml
index f103aa91dcfe..f0204d0f2d34 100644
--- a/core/res/res/values-notround-watch/dimens.xml
+++ b/core/res/res/values-notround-watch/dimens.xml
@@ -24,4 +24,5 @@
- 0%
- 24dp
- 24dp
+ - 3dp
diff --git a/core/res/res/values-notround-watch/dimens_material.xml b/core/res/res/values-notround-watch/dimens_material.xml
index 9cacb117cf7b..9fdf55b8a31d 100644
--- a/core/res/res/values-notround-watch/dimens_material.xml
+++ b/core/res/res/values-notround-watch/dimens_material.xml
@@ -15,12 +15,16 @@
-->
8dp
- 0dp
+ 8dp
- 16dp
- 16dp
- 16dp
+ 8dp
+ 8dp
+ 8dp
- 8dp
- 8dp
+ 0dp
+ 0dp
+
+
+ 8dp
+ 8dp
diff --git a/core/res/res/values-pa-rIN/strings.xml b/core/res/res/values-pa-rIN/strings.xml
index 9658e1e15790..fc26602b1eca 100644
--- a/core/res/res/values-pa-rIN/strings.xml
+++ b/core/res/res/values-pa-rIN/strings.xml
@@ -40,12 +40,13 @@
"%1$d ਸਕਿੰਟ"
"%1$d ਸਕਿੰਟ"
"<ਬਿਨਾਂ ਸਿਰਲੇਖ>"
- "(ਕੋਈ ਫੋਨ ਨੰਬਰ ਨਹੀਂ)"
+ "(ਕੋਈ ਫ਼ੋਨ ਨੰਬਰ ਨਹੀਂ)"
"ਅਗਿਆਤ"
"ਵੌਇਸਮੇਲ"
"MSISDN1"
"ਕਨੈਕਸ਼ਨ ਸਮੱਸਿਆ ਜਾਂ ਅਪ੍ਰਮਾਣਿਕ MMI ਕੋਡ।"
"ਓਪਰੇਸ਼ਨ ਕੇਵਲ ਫਿਕਸਡ ਡਾਇਲਿੰਗ ਨੰਬਰਾਂ ਤੱਕ ਸੀਮਿਤ ਹੈ।"
+ "ਤੁਹਾਡੇ ਰੋਮਿੰਗ ਵਿੱਚ ਹੋਣ ਦੌਰਾਨ ਤੁਹਾਡੇ ਫ਼ੋਨ ਤੋਂ ਕਾਲ ਫਾਰਵਰਡਿੰਗ ਸੈਟਿੰਗਾਂ ਨੂੰ ਬਦਲਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ।"
"ਸੇਵਾ ਅਸਮਰੱਥ ਬਣਾਈ ਗਈ ਸੀ।"
"ਸੇਵਾ ਇਸ ਲਈ ਸਮਰੱਥ ਬਣਾਈ ਗਈ ਸੀ:"
"ਸੇਵਾ ਅਸਮਰੱਥ ਬਣਾਈ ਗਈ ਹੈ।"
@@ -96,6 +97,8 @@
"ਵੌਇਸ/ਡੈਟਾ ਸੇਵਾਵਾਂ ਬਲੌਕ ਕੀਤੀਆਂ ਹੋਈਆਂ ਹਨ।"
"ਵੌਇਸ/SMS ਸੇਵਾਵਾਂ ਬਲੌਕ ਕੀਤੀਆਂ ਗਈਆਂ ਹਨ।"
"ਸਾਰੀਆਂ ਵੌਇਸ/ਡੈਟਾ/SMS ਸੇਵਾਵਾਂ ਬਲੌਕ ਕੀਤੀਆਂ ਗਈਆਂ ਹਨ।"
+ "ਨੈੱਟਵਰਕ ਤੱਕ ਪਹੁੰਚ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ"
+ "ਪ੍ਰਾਪਤੀ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਲਈ, ਸੈਟਿੰਗਾਂ > ਸੈਲਿਊਲਰ ਨੈੱਟਵਰਕ > ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਕਿਸਮ \'ਤੇ ਚੁਣੀ ਗਈ ਕਿਸਮ ਨੂੰ ਬਦਲਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"
"ਪੀਅਰ ਨੇ TTY Mode FULL ਦੀ ਬੇਨਤੀ ਕੀਤੀ"
"ਪੀਅਰ ਨੇ TTY Mode HCO ਦੀ ਬੇਨਤੀ ਕੀਤੀ"
"ਪੀਅਰ ਨੇ TTY Mode VCO ਦੀ ਬੇਨਤੀ ਕੀਤੀ"
@@ -179,6 +182,8 @@
"ਕੰਮ ਪ੍ਰੋਫਾਈਲ ਐਡਮਿਨ ਐਪ ਦੇ ਕਾਰਨ ਮਿਟਾਈ ਗਈ।"
"ਕੰਮ ਪ੍ਰੋਫਾਈਲ ਐਡਮਿਨ ਐਪ ਜਾਂ ਤਾਂ ਲੁਪਤ ਹੈ ਜਾਂ ਕਰਪਟ ਹੈ। ਇੱਕ ਸਿੱਟੇ ਦੇ ਤੌਰ ਤੇ, ਤੁਹਾਡੀ ਕੰਮ ਪ੍ਰੋਫਾਈਲ ਅਤੇ ਸੰਬੰਧਿਤ ਡੈਟਾ ਮਿਟਾਇਆ ਗਿਆ ਹੈ। ਸਹਾਇਤਾ ਲਈ ਆਪਣੇ ਪ੍ਰਬੰਧਕ ਨੂੰ ਸੰਪਰਕ ਕਰੋ।"
"ਤੁਹਾਡੀ ਕੰਮ ਪ੍ਰੋਫਾਈਲ ਹੁਣ ਇਸ ਡੀਵਾਈਸ ਤੇ ਉਪਲਬਧ ਨਹੀਂ ਹੈ।"
+ "ਨੈੱਟਵਰਕ ਟਰੈਫਿਕ ਦੀ ਨਿਗਰਾਨੀ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ"
+ "ਹੋਰ ਜਾਣਨ ਲਈ ਟੈਪ ਕਰੋ"
"ਤੁਹਾਡੀ ਡੀਵਾਈਸ ਮਿਟਾਈ ਜਾਏਗੀ"
"ਐਡਮਿਨ ਐਪ ਲੁਪਤ ਕੰਪੋਨੈਂਟ ਜਾਂ ਕਰਪਟ ਹੈ ਅਤੇ ਇਸਦੀ ਵਰਤੋਂ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ। ਹੁਣ ਤੁਹਾਡੀ ਡੀਵਾਈਸ ਮਿਟਾ ਦਿੱਤੀ ਜਾਏਗੀ। ਸਹਾਇਤਾ ਲਈ ਆਪਣੇ ਪ੍ਰਬੰਧਕ ਨੂੰ ਸੰਪਰਕ ਕਰੋ।"
"ਮੈਂ"
@@ -252,7 +257,7 @@
"SMS"
"SMS ਸੁਨੇਹੇ ਭੇਜਣ ਅਤੇ ਦੇਖਣ"
"ਸਟੋਰੇਜ"
- "ਆਪਣੀ ਡੀਵਾਈਸ ’ਤੇ ਫੋਟੋਆਂ, ਮੀਡੀਆ ਅਤੇ ਫਾਈਲਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰਨ"
+ "ਆਪਣੀ ਡੀਵਾਈਸ ’ਤੇ ਫ਼ੋਟੋਆਂ, ਮੀਡੀਆ ਅਤੇ ਫਾਈਲਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰਨ"
"ਮਾਈਕ੍ਰੋਫੋਨ"
"ਔਡੀਓ ਰਿਕਾਰਡ ਕਰਨ"
"ਕੈਮਰਾ"
@@ -376,7 +381,7 @@
"IMS ਕਾਲ ਸੇਵਾ ਤੱਕ ਪਹੁੰਚ"
"ਐਪ ਨੂੰ ਤੁਹਾਡੇ ਦਖ਼ਲ ਤੋਂ ਬਿਨਾਂ ਕਾਲਾਂ ਕਰਨ ਲਈ IMS ਸੇਵਾ ਵਰਤਣ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ।"
"ਫੋਨ ਸਥਿਤੀ ਅਤੇ ਪਛਾਣ ਪੜ੍ਹੋ"
- "ਐਪ ਨੂੰ ਡੀਵਾਈਸ ਦੀਆਂ ਫੋਨ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਤੱਕ ਪਹੁੰਚ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਇਹ ਅਨੁਮਤੀ ਐਪ ਨੂੰ ਫੋਨ ਨੰਬਰ ਅਤੇ ਡੀਵਾਈਸ ID ਨਿਰਧਾਰਿਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ, ਇੱਕ ਕਾਲ ਸਕਿਰਿਆ ਹੈ ਜਾਂ ਨਹੀਂ ਅਤੇ ਰਿਮੋਟ ਨੰਬਰ ਇੱਕ ਕਾਲ ਨਾਲ ਕਨੈਕਟ ਹੈ ਜਾਂ ਨਹੀਂ।"
+ "ਐਪ ਨੂੰ ਡੀਵਾਈਸ ਦੀਆਂ ਫੋਨ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਤੱਕ ਪਹੁੰਚ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਇਹ ਅਨੁਮਤੀ ਐਪ ਨੂੰ ਫ਼ੋਨ ਨੰਬਰ ਅਤੇ ਡੀਵਾਈਸ ID ਨਿਰਧਾਰਿਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ, ਇੱਕ ਕਾਲ ਸਕਿਰਿਆ ਹੈ ਜਾਂ ਨਹੀਂ ਅਤੇ ਰਿਮੋਟ ਨੰਬਰ ਇੱਕ ਕਾਲ ਨਾਲ ਕਨੈਕਟ ਹੈ ਜਾਂ ਨਹੀਂ।"
"ਟੈਬਲੇਟ ਨੂੰ ਸਲੀਪਿੰਗ ਤੋਂ ਰੋਕੋ"
"TV ਨੂੰ ਸਲੀਪਿੰਗ ਤੋਂ ਰੋਕੋ"
"ਫੋਨ ਨੂੰ ਸਲੀਪਿੰਗ ਤੋਂ ਰੋਕੋ"
@@ -549,7 +554,7 @@
- "ਘਰ"
- "ਮੋਬਾਈਲ"
- "ਕੰਮ"
- - "ਦਫ਼ਤਰ ਦੀ ਫੈਕਸ"
+ - "ਕਾਰਜ-ਸਥਾਨ ਫੈਕਸ"
- "ਘਰ ਦੀ ਫੈਕਸ"
- "ਪੇਜਰ"
- "ਹੋਰ"
@@ -592,7 +597,7 @@
"ਘਰ"
"ਮੋਬਾਈਲ"
"ਕੰਮ"
- "ਦਫ਼ਤਰ ਦੀ ਫੈਕਸ"
+ "ਕਾਰਜ-ਸਥਾਨ ਫੈਕਸ"
"ਘਰ ਦੀ ਫੈਕਸ"
"ਪੇਜਰ"
"ਹੋਰ"
@@ -1146,7 +1151,7 @@
"ਇਹ ਡੀਵਾਈਸ USB ਰਾਹੀਂ ਚਾਰਜ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ"
"ਨੱਥੀ ਕੀਤੀ ਡੀਵਾਈਸ ਨੂੰ USB ਰਾਹੀਂ ਪਾਵਰ ਮਿਲ ਰਹੀ ਹੈ"
"ਫ਼ਾਈਲ ਟ੍ਰਾਂਸਫ਼ਰ ਲਈ USB"
- "ਫੋਟੋ ਟ੍ਰਾਂਸਫ਼ਰ ਲਈ USB"
+ "ਫ਼ੋਟੋ ਟ੍ਰਾਂਸਫ਼ਰ ਲਈ USB"
"MIDI ਲਈ USB"
"ਇੱਕ USB ਐਕਸੈਸਰੀ ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ"
"ਹੋਰ ਵਿਕਲਪਾਂ ਲਈ ਟੈਪ ਕਰੋ।"
@@ -1168,7 +1173,7 @@
"%s ਤਿਆਰ ਹੋ ਰਿਹਾ ਹੈ"
"ਤਰੁੱਟੀਆਂ ਦੀ ਜਾਂਚ ਕਰ ਰਿਹਾ ਹੈ"
"ਨਵੇਂ %s ਦਾ ਪਤਾ ਲਗਾਇਆ ਗਿਆ"
- "ਫੋਟੋਆਂ ਅਤੇ ਮੀਡੀਆ ਨੂੰ ਟ੍ਰਾਂਸਫ਼ਰ ਕਰਨ ਲਈ"
+ "ਫ਼ੋਟੋਆਂ ਅਤੇ ਮੀਡੀਆ ਨੂੰ ਟ੍ਰਾਂਸਫ਼ਰ ਕਰਨ ਲਈ"
"ਕਰਪਟਿਡ %s "
"%s ਗ਼ਲਤ ਹੈ। ਠੀਕ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ।"
"ਅਸਮਰਥਿਤ %s "
@@ -1208,6 +1213,8 @@
"ਇੱਕ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਇੰਸਟੌਲ ਸੈਸ਼ਨ ਪੜ੍ਹਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਇਹ ਇਸਨੂੰ ਸਕਿਰਿਆ ਪੈਕੇਜ ਇੰਸਟੌਲੇਸ਼ਨਾਂ ਬਾਰੇ ਵੇਰਵੇ ਦੇਖਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"
"ਪੈਕੇਜ ਸਥਾਪਿਤ ਕਰਨ ਦੀ ਬੇਨਤੀ ਕਰੋ"
"ਪੈਕੇਜ ਦੀ ਸਥਾਪਨਾ ਦੀ ਬੇਨਤੀ ਕਰਨ ਲਈ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਅਨੁਮਤੀ ਦਿੰਦਾ ਹੈ"
+ "ਬੈਟਰੀ ਸੁਯੋਗਤਾਵਾਂ ਨੂੰ ਅਣਡਿੱਠ ਕਰਨ ਲਈ ਪੁੱਛੋ"
+ "ਕਿਸੇ ਐਪ ਨੂੰ ਉਸ ਵਾਸਤੇ ਬੈਟਰੀ ਸੁਯੋਗਤਾਵਾਂ ਨੂੰ ਅਣਡਿੱਠ ਕਰਨ ਲਈ ਇਜਾਜ਼ਤ ਵਾਸਤੇ ਪੁੱਛਣ ਲਈ ਆਗਿਆ ਦਿੰਦੀ ਹੈ।"
"ਜ਼ੂਮ ਕੰਟਰੋਲ ਲਈ ਦੋ ਵਾਰ ਟੈਪ ਕਰੋ"
"ਵਿਜੇਟ ਨਹੀਂ ਜੋੜ ਸਕਿਆ।"
"ਜਾਓ"
@@ -1558,7 +1565,7 @@
"ਸਾਲ ਚੁਣੋ"
"%1$s ਹਟਾਇਆ ਗਿਆ"
"ਕੰਮ %1$s "
- "ਇਸ ਸਕ੍ਰੀਨ ਨੂੰ ਅਨਪਿੰਨ ਕਰਨ ਲਈ, ਸਪਰਸ਼ ਕਰੋ & ਦਬਾਈ ਰੱਖੋ।"
+ "ਇਸ ਸਕ੍ਰੀਨ ਨੂੰ ਅਨਪਿੰਨ ਕਰਨ ਲਈ, \'ਪਿੱਛੇ\' ਅਤੇ \'ਰੂਪ-ਰੇਖਾ\' ਨੂੰ ਸਪੱਰਸ਼ ਕਰੋ ਅਤੇ ਦਬਾ ਕੇ ਰੱਖੋ।"
"ਐਪ ਪਿੰਨਡ ਹੈ: ਇਸ ਡੀਵਾਈਸ ਤੇ ਅਨਪਿਨ ਕਰਨ ਦੀ ਆਗਿਆ ਨਹੀਂ ਹੈ।"
"ਸਕ੍ਰੀਨ ਪਿੰਨ ਕੀਤੀ"
"ਸਕ੍ਰੀਨ ਅਨਪਿਨ ਕੀਤੀ"
diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml
index dbe29ee33993..5a88c933ec63 100644
--- a/core/res/res/values-pl/strings.xml
+++ b/core/res/res/values-pl/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Problem z połączeniem lub błędny kod MMI."
"Operacja jest ograniczona wyłącznie do numerów ustalonych."
+ "Podczas roamingu nie można zmienić ustawień przekazywania połączeń z telefonu."
"Usługa została włączona."
"Usługa została włączona dla:"
"Usługa została wyłączona."
@@ -98,6 +99,8 @@
"Usługi głosowe/danych są zablokowane."
"Usługi głosowe/SMS są zablokowane."
"Wszystkie usługi głosowe/danych/SMS są zablokowane."
+ "Brak zasięgu sieci"
+ "Aby poprawić odbiór, zmień typ sieci – wybierz Ustawienia > Sieci komórkowe > Preferowany typ sieci."
"Drugie urządzenie zażądało trybu „TTY pełny”"
"Drugie urządzenie zażądało trybu „TTY HCO”"
"Drugie urządzenie zażądało trybu „TTY VCO”"
@@ -183,6 +186,8 @@
"Profil do pracy został usunięty z powodu braku aplikacji administracyjnej."
"Brakuje aplikacji administracyjnej profilu do pracy lub jest ona uszkodzona. Z tego powodu Twój profil do pracy i związane z nim dane zostały usunięte. Skontaktuj się ze swoim administratorem, by uzyskać pomoc."
"Twój profil do pracy nie jest już dostępny na tym urządzeniu."
+ "Ruch w sieci jest monitorowany"
+ "Kliknij, by dowiedzieć się więcej"
"Twoje urządzenie zostanie wyczyszczone"
"Aplikacja administracyjna nie ma wszystkich składników lub jest uszkodzona i nie można jej użyć. Twoje urządzenie zostanie teraz wyczyszczone. Skontaktuj się ze swoim administratorem, aby uzyskać pomoc."
"Ja"
@@ -1008,7 +1013,7 @@
"OK"
"Anuluj"
"Uwaga"
- "Wczytywanie…"
+ "Wczytuję…"
"Wł"
"Wył"
"Wykonaj czynność przez..."
@@ -1258,6 +1263,8 @@
"Pozwala aplikacji odczytywać sesje instalacji. Umożliwia to jej na poznanie szczegółów aktywnych instalacji pakietów."
"żądanie instalacji pakietów"
"Zezwala aplikacji żądanie instalacji pakietów."
+ "Prośba o ignorowanie optymalizacji wykorzystania baterii"
+ "Zezwala aplikacji na proszenie o uprawnienia do ignorowania optymalizacji wykorzystania baterii w przypadku danej aplikacji."
"Dotknij dwukrotnie, aby sterować powiększeniem"
"Nie można dodać widżetu."
"OK"
@@ -1284,7 +1291,7 @@
"Tapeta"
"Zmień tapetę"
"Odbiornik powiadomień"
- "Odbiornik rzeczywistości wirtualnej"
+ "Odbiornik VR"
"Dostawca warunków"
"Usługa rankingu powiadomień"
"VPN aktywny"
@@ -1612,7 +1619,7 @@
"Wybierz rok"
"%1$s usunięte"
"%1$s (praca)"
- "Aby odpiąć ten ekran, naciśnij i przytrzymaj Wstecz."
+ "Aby odpiąć ten ekran, naciśnij i przytrzymaj Wstecz oraz Przegląd."
"Aplikacja jest przypięta. Nie możesz jej odpiąć na tym urządzeniu."
"Ekran przypięty"
"Ekran odpięty"
diff --git a/core/res/res/values-pt-rBR/strings.xml b/core/res/res/values-pt-rBR/strings.xml
index 4f3b09fd5ca6..5947ac27ef0c 100644
--- a/core/res/res/values-pt-rBR/strings.xml
+++ b/core/res/res/values-pt-rBR/strings.xml
@@ -21,7 +21,7 @@
"B"
- "Kb"
+ "KB"
"MB"
"GB"
"TB"
@@ -46,6 +46,7 @@
"MSISDN1"
"Problema de conexão ou código MMI inválido."
"A operação é limitada somente a números de chamadas fixas."
+ "Não é possível alterar as configurações de encaminhamento de chamada do seu smartphone em roaming."
"O serviço foi ativado."
"O serviço foi ativado para:"
"O serviço foi desativado."
@@ -96,6 +97,8 @@
"Os serviços de voz/dados estão bloqueados."
"Os serviços de voz/SMS estão bloqueados."
"Todos os serviços de voz/dados/SMS estão bloqueados."
+ "Não foi possível acessar a rede"
+ "Para melhorar a recepção, tente alterar o tipo selecionado em Configurações > Redes celulares > Tipo de rede preferencial."
"TTD modo COMPLETO solicitado"
"TTD modo HCO solicitado"
"TTD modo VCO solicitado"
@@ -179,6 +182,8 @@
"Perfil de trabalho excluído devido à ausência de um app para administrador."
"O app para administrador do perfil de trabalho não foi encontrado ou está corrompido. Consequentemente, seu perfil de trabalho e os dados relacionados foram excluídos. Entre em contato com seu administrador para receber assistência."
"Seu perfil de trabalho não está mais disponível neste dispositivo."
+ "O tráfego de rede está sendo monitorado"
+ "Toque para saber mais"
"Seu dispositivo será limpo"
"O app para administrador está sem alguns componentes ou foi corrompido e não pode ser usado. Seu dispositivo será limpo agora. Entre em contato com seu administrador para receber assistência."
"Eu"
@@ -1208,6 +1213,8 @@
"Permite que um app leia sessões de instalação. Isso permite que ele veja detalhes sobre as instalações de pacote ativas."
"solicitar pacotes de instalação"
"Permite que um app solicite a instalação de pacotes."
+ "solicitar que as otimizações de bateria sejam ignoradas"
+ "Permite que um app peça permissão para ignorar as otimizações de bateria para esse app."
"Toque duas vezes para ter controle do zoom"
"Não foi possível adicionar widget."
"Ir"
@@ -1268,7 +1275,7 @@
"Apagando cartão SD..."
"Compartilhar"
"Localizar"
- "Pesquisa na web do Google"
+ "Pesquisa Google na Web"
"Localizar próximo"
"Localizar anterior"
"Solicitação de local de %s "
@@ -1558,7 +1565,7 @@
"Selecione o ano"
"%1$s excluído"
"Trabalho: %1$s "
- "Para liberar esta tela, toque no botão \"Voltar\" e mantenha-o pressionado."
+ "Para liberar essa tela, toque nos botões Voltar e Visão geral e mantenha-os pressionados."
"O app está fixado. A liberação não é permitida neste dispositivo."
"Tela fixada"
"Tela liberada"
diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml
index 64db1c2ad70b..eff872fd579e 100644
--- a/core/res/res/values-pt-rPT/strings.xml
+++ b/core/res/res/values-pt-rPT/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Problema de ligação ou código MMI inválido."
"A operação está restringida a números fixos autorizados."
+ "Não é possível alterar as definições do encaminhamento de chamadas no telemóvel quando está em roaming."
"O serviço foi ativado."
"O serviço foi ativado para:"
"O serviço foi desativado."
@@ -96,6 +97,8 @@
"Os serviços de voz/dados estão bloqueados."
"Os serviços de Voz/SMS estão bloqueados."
"Todos os serviços de voz/dados/SMS estão bloqueados."
+ "Não é possível ligar à rede"
+ "Para melhorar a receção, experimente alterar o tipo selecionado em Definições > Redes móveis > Tipo de rede preferido."
"O par solicitou o modo COMPLETO de teletipo"
"O par solicitou o modo HCO de teletipo"
"O par solicitou o modo VCO de teletipo"
@@ -179,6 +182,8 @@
"Perfil de trabalho eliminado devido a aplicação de administração em falta."
"A aplicação de administração do perfil de trabalho está em falta ou corrompida. Consequentemente, o seu perfil de trabalho e os dados relacionados foram eliminados. Contacte o seu administrador para obter assistência."
"O seu perfil de trabalho já não está disponível neste dispositivo."
+ "O tráfego de rede está a ser monitorizado"
+ "Toque para saber mais"
"O seu dispositivo será apagado"
"A aplicação de administração tem componentes em falta ou corrompidos e não podem ser utilizados. O seu dispositivo será agora apagado. Contacte o seu administrador para obter assistência."
"Eu"
@@ -1208,6 +1213,8 @@
"Permite que uma aplicação leia sessões de instalação. Isto permite que veja detalhes acerca de instalações de pacotes ativas."
"solicitar pacotes de instalação"
"Permite que uma aplicação solicite a instalação de pacotes."
+ "pedir para ignorar as otimizações da bateria"
+ "Permite que uma aplicação solicite autorização para ignorar as otimizações da bateria para a mesma."
"Tocar duas vezes para controlar o zoom"
"Não foi possível adicionar widget."
"Ir"
@@ -1558,7 +1565,7 @@
"Selecionar ano"
"%1$s eliminado"
"%1$s de trabalho"
- "Para soltar este ecrã, toque sem soltar em Anterior."
+ "Para soltar este ecrã, toque sem soltar em Anterior e Vista geral."
"A aplicação está fixa: não é permitido soltá-la neste dispositivo."
"Ecrã fixo"
"Ecrã solto"
diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml
index 4f3b09fd5ca6..5947ac27ef0c 100644
--- a/core/res/res/values-pt/strings.xml
+++ b/core/res/res/values-pt/strings.xml
@@ -21,7 +21,7 @@
"B"
- "Kb"
+ "KB"
"MB"
"GB"
"TB"
@@ -46,6 +46,7 @@
"MSISDN1"
"Problema de conexão ou código MMI inválido."
"A operação é limitada somente a números de chamadas fixas."
+ "Não é possível alterar as configurações de encaminhamento de chamada do seu smartphone em roaming."
"O serviço foi ativado."
"O serviço foi ativado para:"
"O serviço foi desativado."
@@ -96,6 +97,8 @@
"Os serviços de voz/dados estão bloqueados."
"Os serviços de voz/SMS estão bloqueados."
"Todos os serviços de voz/dados/SMS estão bloqueados."
+ "Não foi possível acessar a rede"
+ "Para melhorar a recepção, tente alterar o tipo selecionado em Configurações > Redes celulares > Tipo de rede preferencial."
"TTD modo COMPLETO solicitado"
"TTD modo HCO solicitado"
"TTD modo VCO solicitado"
@@ -179,6 +182,8 @@
"Perfil de trabalho excluído devido à ausência de um app para administrador."
"O app para administrador do perfil de trabalho não foi encontrado ou está corrompido. Consequentemente, seu perfil de trabalho e os dados relacionados foram excluídos. Entre em contato com seu administrador para receber assistência."
"Seu perfil de trabalho não está mais disponível neste dispositivo."
+ "O tráfego de rede está sendo monitorado"
+ "Toque para saber mais"
"Seu dispositivo será limpo"
"O app para administrador está sem alguns componentes ou foi corrompido e não pode ser usado. Seu dispositivo será limpo agora. Entre em contato com seu administrador para receber assistência."
"Eu"
@@ -1208,6 +1213,8 @@
"Permite que um app leia sessões de instalação. Isso permite que ele veja detalhes sobre as instalações de pacote ativas."
"solicitar pacotes de instalação"
"Permite que um app solicite a instalação de pacotes."
+ "solicitar que as otimizações de bateria sejam ignoradas"
+ "Permite que um app peça permissão para ignorar as otimizações de bateria para esse app."
"Toque duas vezes para ter controle do zoom"
"Não foi possível adicionar widget."
"Ir"
@@ -1268,7 +1275,7 @@
"Apagando cartão SD..."
"Compartilhar"
"Localizar"
- "Pesquisa na web do Google"
+ "Pesquisa Google na Web"
"Localizar próximo"
"Localizar anterior"
"Solicitação de local de %s "
@@ -1558,7 +1565,7 @@
"Selecione o ano"
"%1$s excluído"
"Trabalho: %1$s "
- "Para liberar esta tela, toque no botão \"Voltar\" e mantenha-o pressionado."
+ "Para liberar essa tela, toque nos botões Voltar e Visão geral e mantenha-os pressionados."
"O app está fixado. A liberação não é permitida neste dispositivo."
"Tela fixada"
"Tela liberada"
diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml
index 192d9c1a1f95..40230fab26cd 100644
--- a/core/res/res/values-ro/strings.xml
+++ b/core/res/res/values-ro/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Problemă de conexiune sau cod MMI nevalid."
"Operația este limitată la numerele cu apelări restricționate."
+ "Nu puteți schimba setările de redirecționare a apelurilor de pe telefon când sunteți în roaming."
"Serviciul a fost activat."
"Serviciul a fost activat pentru:"
"Serviciul a fost dezactivat."
@@ -97,6 +98,8 @@
"Serviciile de voce/date sunt blocate."
"Serviciile de voce/SMS sunt blocate."
"Toate serviciile de voce/date/SMS sunt blocate."
+ "Nu se poate stabili conexiunea la rețea"
+ "Pentru o recepție mai bună, încercați să schimbați tipul selectat în Setări > Rețele mobile > Tip preferat de rețea."
"Cealaltă persoană a solicitat modul TTY cu setarea COMPLET"
"Cealaltă persoană a solicitat modul TTY cu setarea HCO"
"Cealaltă persoană a solicitat modul TTY cu setarea VCO"
@@ -181,6 +184,8 @@
"Profilul de serviciu a fost șters, deoarece aplicația de administrare lipsește."
"Aplicația de administrare a profilului de serviciu lipsește sau este deteriorată. Prin urmare, profilul de serviciu și datele asociate au fost șterse. Pentru asistență, contactați administratorul."
"Profilul de serviciu nu mai este disponibil pe acest dispozitiv."
+ "Traficul de rețea este monitorizat"
+ "Atingeți ca să aflați mai multe"
"Datele de pe dispozitiv vor fi șterse"
"Aplicația de administrare nu poate fi utilizată, deoarece este deteriorată sau îi lipsesc componente. Datele de pe dispozitiv vor fi șterse. Pentru asistență, contactați administratorul."
"Eu"
@@ -1084,7 +1089,7 @@
"Ton de apel prestabilit"
"Ton de apel prestabilit (%1$s )"
"Niciunul"
- "Tonuri de sonerie"
+ "Tonuri de apel"
"Ton de apel necunoscut"
- Rețele Wi-Fi disponibile
@@ -1233,6 +1238,8 @@
"Permite unei aplicații accesul la citirea sesiunilor de instalare. Aceasta poate vedea detalii despre instalările de pachete active."
"să solicite pachete de instalare"
"Permite unei aplicații să solicite instalarea pachetelor."
+ "să solicite ignorarea optimizărilor bateriei"
+ "Permite unei aplicații să solicite permisiunea de a ignora optimizările bateriei pentru aplicația respectivă."
"Apăsați de două ori pentru a controla mărirea/micșorarea"
"Nu s-a putut adăuga widgetul."
"Accesați"
@@ -1259,7 +1266,7 @@
"Imagine de fundal"
"Schimbați imaginea de fundal"
"Serviciu de citire a notificărilor"
- "Instrument de ascultare pentru Realitatea virtuală"
+ "Instrument de ascultare pentru RV"
"Furnizor de condiții"
"Serviciul de clasificare a notificărilor"
"VPN activat"
@@ -1585,7 +1592,7 @@
"Selectați anul"
"%1$s a fost șters"
"%1$s de serviciu"
- "Pentru a anula fixarea acestui ecran, atingeți lung opțiunea Înapoi."
+ "Pentru a anula fixarea acestui ecran, atingeți lung opțiunile Înapoi și Recente."
"Aplicația este fixată: Anularea fixării nu este permisă pe acest dispozitiv."
"Ecran fixat"
"Fixarea ecranului anulată"
diff --git a/core/res/res/values-round-watch/config_material.xml b/core/res/res/values-round-watch/config_material.xml
index bf445ef3fd0e..ae4a6eedf4fd 100644
--- a/core/res/res/values-round-watch/config_material.xml
+++ b/core/res/res/values-round-watch/config_material.xml
@@ -19,4 +19,7 @@
false
+
+
+ @dimen/screen_percentage_15
diff --git a/core/res/res/values-round-watch/dimens.xml b/core/res/res/values-round-watch/dimens.xml
index a12f49929929..1d8c669ac55b 100644
--- a/core/res/res/values-round-watch/dimens.xml
+++ b/core/res/res/values-round-watch/dimens.xml
@@ -24,4 +24,5 @@
- 2.1%
- 32dp
- 32dp
+ - 5dp
diff --git a/core/res/res/values-round-watch/dimens_material.xml b/core/res/res/values-round-watch/dimens_material.xml
index f2de4e013a78..c8f27b1724e3 100644
--- a/core/res/res/values-round-watch/dimens_material.xml
+++ b/core/res/res/values-round-watch/dimens_material.xml
@@ -23,4 +23,8 @@
@dimen/screen_percentage_15
@dimen/screen_percentage_15
+
+
+ @dimen/screen_percentage_15
+ 8dp
diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml
index b1b14f9d2292..a126950ca9df 100644
--- a/core/res/res/values-ru/strings.xml
+++ b/core/res/res/values-ru/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Неполадки подключения или неверный код MMI."
"Операция возможна только для разрешенных номеров."
+ "Вы не можете изменить настройки переадресации вызовов, поскольку находитесь в роуминге."
"Служба включена."
"Служба подключена для:"
"Служба отключена."
@@ -90,7 +91,7 @@
"Идентификация абонента по умолчанию не запрещена. След. вызов: разрешена"
"Услуга не предоставляется."
"Невозможно изменить параметр идентификатора вызывающего абонента."
- "Служба данных заблокирована."
+ "Передача данных заблокирована."
"Служба экстренной помощи заблокирована."
"Служба передачи голосовых сообщений заблокирована."
"Все службы передачи голосовых сообщений заблокированы."
@@ -98,6 +99,8 @@
"Службы передачи данных/голосовых сообщений заблокированы."
"Службы передачи голосовых сообщений/SMS заблокированы."
"Все службы передачи данных/голосовых сообщений/SMS заблокированы."
+ "Сеть недоступна"
+ "Чтобы улучшить сигнал, попробуйте выбрать другой тип сети в настройках (раздел \"Мобильные сети\")."
"На устройстве абонента выбран режим телетайпа \"ВСЕ\""
"На устройстве абонента выбран режим телетайпа HCO"
"На устройстве абонента выбран режим телетайпа VCO"
@@ -183,6 +186,8 @@
"Рабочий профиль удален из-за отсутствия приложения Admin."
"Приложение Admin в рабочем профиле отсутствует или повреждено. Из-за этого рабочий профиль и связанные с ним данные были удалены. Если у вас возникли вопросы, обратитесь к администратору."
"Ваш рабочий профиль больше не доступен на этом устройстве."
+ "Включен мониторинг сетевого трафика"
+ "Подробнее…"
"Все данные с устройства будут удалены"
"Приложение Admin нельзя использовать, так как оно отсутствует или повреждено. С устройства будут удалены все данные. Если у вас возникли вопросы, обратитесь к администратору."
"Я"
@@ -1258,6 +1263,8 @@
"Чтение данных текущих сеансов установки пакетов."
"Запрос пакетов установки"
"Приложение сможет запрашивать разрешения на установку пакетов."
+ "Без ограничения расхода батареи"
+ "Разрешает приложению игнорировать ограничение на расход заряда батареи."
"Нажмите дважды для изменения масштаба"
"Не удалось добавить виджет."
"Выбрать"
@@ -1612,7 +1619,7 @@
"Выберите год"
"Цифра %1$s удалена"
"Рабочий %1$s "
- "Чтобы открепить экран, нажмите и удерживайте кнопку \"Назад\"."
+ "Чтобы открепить экран, нажмите и удерживайте кнопки \"Назад\"и \"Обзор\""
"Включена блокировка в приложении. Ее отключение запрещено правилами организации."
"Блокировка включена"
"Блокировка выключена"
diff --git a/core/res/res/values-si-rLK/strings.xml b/core/res/res/values-si-rLK/strings.xml
index f3c8e7bad0d6..098f1940fe96 100644
--- a/core/res/res/values-si-rLK/strings.xml
+++ b/core/res/res/values-si-rLK/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"සම්බන්ධතා ගැටළුවක් හෝ අවලංගු MMI කේතයකි."
"ස්ථාවර ඇමතීම් අංක වලට පමණක් මෙහෙයුම සීමාකර ඇත."
+ "ඔබ රෝමිං තුළ සිටින අතරතුර ඔබේ දුරකථනයෙන් ඇමතුම් ප්රතියොමු සැකසීම් වෙනස් කළ නොහැකිය."
"සේවාව සබල කරන ලදි."
"සේවාව සබලයි, සඳහා:"
"සේවාව අබල කරන ලදි."
@@ -96,6 +97,8 @@
"හඬ/දත්ත සේවා අවහිර කර ඇත."
"හඬ/SMS සේවා අවහිර කර ඇත."
"සියලුම හඬ/දත්ත/SMS සේවාවන් බාධා කර ඇත."
+ "ජාලය වෙත ළඟා විය නොහැකිය"
+ "ලැබීම වැඩි දියුණු කිරීමට, සැකසීම් > සෙලියුලර් ජාල > වඩා කැමති ජාල වර්ගය තුළ තෝරන ලද වර්ගය වෙනස් කිරීම උත්සාහ කරන්න."
"සම ඉල්ලීම් කළ TTY ප්රකාරය පූර්ණයි"
"සම ඉල්ලීම් කළ TTY ප්රකාරය HCO"
"සම ඉල්ලීම් කළ TTY ප්රකාරය VCO"
@@ -108,7 +111,7 @@
"සමමුහුර්ත කිරීම"
"පැකැට්ටුව"
"PAD"
- "රෝමිං දර්ශකය සක්රියයි"
+ "රෝමිං දර්ශකය ක්රියාත්මකයි"
"රෝමිං දර්ශකය අක්රියයි"
"රෝමිං දර්ශකය සැණෙලි වෙයි"
"වටපිටාවෙන් ඉවත්ව"
@@ -179,6 +182,8 @@
"පරිපාලක යෙදුමක් නොමැති වීමෙන් කාර්යාල පැතිකඩ මකා දමන ලදි."
"කාර්යාල පැතිකඩ පාලක යෙදුම නොමැති හෝ දූෂණය වී ඇත. ප්රතිඵලයක් ලෙස ඔබගේ කාර්යාල පැතිකඩ සහ අදාළ දත්ත මකා දමා ඇත. සහය සඳහා ඔබගේ පරිපාලකයා සම්බන්ධ කර ගන්න."
"ඔබේ කාර්යාල පැතිකඩ මෙම උපාංගය මත තවදුරටත් ලබා ගැනීමට නොහැකිය."
+ "ජාල තදබදය නිරීක්ෂණය කරමින් පවතී"
+ "තව දැන ගැනීමට තට්ටු කරන්න"
"ඔබගේ උපාංගය මකා දැමෙනු ඇත"
"යෙදුමේ කොටස් නොමැති හෝ දූෂණය වී ඇති නිසා, භාවිතා කළ නොහැක. ඔබගේ උපාංගය දැන් මකා දැමෙනු ඇත. සහය සඳහා ඔබගේ පරිපාලකයා සම්බන්ධ කරගන්න."
"මම"
@@ -189,7 +194,7 @@
"නොරැහන් සක්රිය කරන්න"
"නොරැහැන් අක්රිය කරන්න"
"තිර අගුල"
- "බලය අක්රිය කරන්න"
+ "බල රහිත කරන්න"
"හඬ නඟනය අක්රියයි"
"හඬ නඟනය කම්පනය"
"හඬ නඟනය සක්රීයයි"
@@ -213,7 +218,7 @@
"රූපවාහිනී විකල්ප"
"දුරකථන විකල්ප"
"තිර අගුල"
- "බලය අක්රිය කරන්න"
+ "බල රහිත කරන්න"
"හදිසි"
"දෝෂ වර්තාව"
"දෝෂ වාර්තාවක් ගන්න"
@@ -228,7 +233,7 @@
"නිහඬ ආකාරය"
"ශබ්දය අක්රියයි"
- "හඬ සක්රියයි"
+ "හඬ ක්රියාත්මකයි"
"අහස්යානා ආකාරය"
"අහස්යානා ආකාරය සක්රීයයි."
"අහස්යානා අකාරය අක්රියයි"
@@ -269,8 +274,8 @@
"යෙදුම් අන්තර්ගතයට ප්රවේශ්යතාවය වැඩිවන ලෙස සකස් කිරීමට ඇතැම් විට ස්ක්රිප්ට් ස්ථාපනය කර ඇත."
"ඔබ ටයිප් කළ පෙළ බලන්න"
"ණයවරපත් අංක සහ මුරපද වැනි පුද්ගලික දත්ත ඇතුළත් වේ."
- "සංදර්ශන විශාලන මට්ටම පාලනය කිරීම"
- "සංදර්ශනයේ විශාලන මට්ටම සහ පිහිටීම පාලනය කිරීම."
+ "සංදර්ශනයේ විශාලනය පාලනය කරන්න"
+ "සංදර්ශනයේ විශාලන මට්ටම සහ පිහිටීම පාලනය කරන්න."
"අභින සිදු කරන්න"
"තට්ටු කිරීමට, ස්වයිප් කිරීමට, පින්ච් කිරීමට, සහ වෙනත් අභින සිදු කිරීමට හැකිය."
"තත්ව තීරුව අබල කරන්න හෝ වෙනස් කරන්න"
@@ -284,7 +289,7 @@
"කෙටිමං අස්ථාපනය කරන්න"
"පරිශීලක මැදිහත්වීමෙන් තොරව මුල්තිර කෙටිමං එක් කිරීමට යෙදුමකට අවසර දෙයි."
"පිටවන ඇමතුම් වල මග වෙනස් කිරීම"
- "ඇමතුම වෙනත් අංකයකට හරවා යැවීම හෝ ඇමතුම මුළුමනින්ම නැවත් වීම වැනි විකල්ප සමඟ පිටතට යන ඇමතුමකදී ඩයල් කළ අංකය බැලීමට යෙදුමට ඉඩ දෙන්න."
+ "ඇමතුම වෙනත් අංකයකට හරවා යැවීම හෝ ඇමතුම මුළුමනින්ම නැවත්වීම වැනි විකල්ප සමඟ පිටතට යන ඇමතුමකදී අංකනය කළ අංකය බැලීමට යෙදුමට ඉඩ දෙයි."
"කෙටි පණිවිඩ ලබාගැනීම (SMS)"
"SMS පණිවිඩ ලැබීමට සහ ක්රියාත්මක කිරීමට යෙදුමට අවසර දෙන්න. මෙහි තේරුම යෙදුමට ඔබගේ උපාංගයට ලැබෙන පණිවිඩ අධීක්ෂණය කිරීමට හැකිවීම වන අතර, ඒවා ඔබට නොපෙන්වා මකා දැමීමටද හැකි වීමයි."
"පෙළ පණිවුඩ ලබාගන්න (MMS)"
@@ -376,7 +381,7 @@
"IMS ඇමතුම් සේවාවට පිවිසෙන්න"
"ඔබේ මැදිහත්වීමකින් තොරව ඇමතුම් සිදු කිරීමට IMS සේවාව භාවිතයට යෙදුමට ඉඩ දෙන්න."
"දුරකථනයේ තත්වය සහ අනන්යතාවය කියවීම"
- "උපාංගයේ දුරකථන විශේෂාංග වෙත පිවිසීමට යෙදුමට අවසර දෙන්න. ඇමතුම සක්රිය වුවත් සහ ඇමතුමකින් දුරස්ථ අංකය සම්බන්ධ වුවත් දුරකථන අංකය සහ උපාංග ID හඳුනා ගැනීමට මෙම අවසරය යෙදුමට අවසර දෙයි."
+ "උපාංගයේ දුරකථන විශේෂාංග වෙත ප්රවේශයට යෙදුමට ඉඩ දෙයි. ඇමතුම සක්රිය වුවත්, සහ ඇමතුමකින් දුරස්ථ අංකය සම්බන්ධ වුවත් දුරකථන අංකය සහ උපාංග ID හඳුනා ගැනීමට මෙම අවසරය යෙදුමට ඉඩ දෙයි."
"ටැබ්ලටය නින්දෙන් වැළක්වීම"
"රූපවාහිනිය නින්දට යාමෙන් නවත්වන්න"
"දුරකථනය නින්දට යාමෙන් වළකන්න"
@@ -457,13 +462,13 @@
"සමමුහුර්ත සැකසීම් කියවන්න"
"ගිණුම සඳහා සමමුහුර්ත සැකසීම් කියවීමට යෙදුමට අවසර දෙන්න. උදාහරණයක් ලෙස, ගිණුමක් සමඟ පුද්ගල යෙදුම සමමුහුර්ත දැයි මෙයට හඳුනා ගත හැක."
"සමමුහුර්ත කිරීම සක්රිය කරන්න සහ අක්රිය කරන්න"
- "ගිණුම සඳහා සමමුහුර්ත සැකසීම් වෙනස් කිරීමට යෙදුමට අවසර දෙන්න. උදාහරණයක් ලෙස, ගිණුම සමඟ පුද්ගල යෙදුම සමමුහුර්ත කිරීම සක්රිය කිරීමට භාවිත කල හැක."
+ "ගිණුමක් සඳහා සමමුහුර්ත සැකසීම් විකරණය කිරීමට යෙදුමකට ඉඩ දෙයි. උදාහරණයක් ලෙස, ගිණුමක් සමඟ පුද්ගල යෙදුම සමමුහුර්ත කිරීම සබල කිරීමට මෙය භාවිත කළ හැක."
"සමමුහුර්ත කිරීමේ සංඛ්යාන කියවීම"
"සමමුහුර්ත කිරීමේ සිදුවීම් ඉතිහාසය සහ කෙතරම් දත්ත සමමුහුර්ත වී ඇතිදැයි ඇතුලත් ගිණුම සඳහා සමමුහුර්ත කිරීමේ සංඛ්යාන කියවීමට යෙදුමට අවසර දෙන්න."
"ඔබගේ USB ආචයනය හි අන්තර්ගතය කියවන්න"
"ඔබගේ SD කාඩ් පතෙහි අන්තර්ගතය කියවන්න"
"යෙදුමට ඔබගේ USB ආචයනය අන්තර්ගතය කියවීමට අවසර දෙන්න."
- "යෙදුමට ඔබගේ SD කාඩ් පතින් අන්තර්ගත කියවීමට අවසර දෙන්න."
+ "යෙදුමට ඔබගේ SD කාඩ්පතේ අන්තර්ගතය කියවීමට ඉඩ දෙයි."
"ඔබගේ USB ආචයනයේ අන්තර්ගත වෙනස් කිරීම හෝ මැකීම"
"ඔබගේ SD පතේ අන්තර්ගත වෙනස් කිරීම හෝ මැකීම"
"USB ආචයනය වෙත ලිවීමට යෙදුමට අවසර දෙන්න."
@@ -737,7 +742,7 @@
- "විජටය එකතු කරන්න."
+ "විජටය එක් කරන්න."
"හිස්"
"අගුළු අරින ප්රදේශය විදහා ඇත."
"අගුළු අරින ප්රදේශය හැකිලී ඇත."
@@ -950,7 +955,7 @@
"අස් කරන්න"
"යළි කරන්න"
"පෙළ තේරීම"
- "ශබ්ද කෝෂයට එකතු කරන්න"
+ "ශබ්ද කෝෂයට එක් කරන්න"
"මකන්න"
"ආදාන ක්රමය"
"පෙළ ක්රියාවන්"
@@ -975,7 +980,7 @@
"විවෘත කරන්න"
"සමඟ සංස්කරණය කරන්න"
"%1$s සමඟ සංස්කරණය කරන්න"
- "සංස්කරණය කරන්න"
+ "සංස්කරණය"
"සමඟ බෙදාගන්න"
"%s සමඟ බෙදාගන්න"
"බෙදා ගන්න"
@@ -1095,10 +1100,10 @@
"සම්බන්ධතාවයට ඉඩ දෙන්නද?"
"යෙදුම් %1$s ක් WiFi ජාලය %2$s වෙත සම්බන්ධ කිරීමට කැමතියි"
"යෙදුම"
- "ඍජු Wi-Fi"
- "ඍජු Wi-Fi ආරම්භ කරන්න. මෙය Wi-Fi සේවාදායක/හොට්ස්පොට් එක අක්රිය කරනු ඇත."
- "ඍජු Wi-Fi ආරම්භ කළ නොහැක."
- "Wi-Fi ඍජු සම්බන්ධතාව සක්රියයි"
+ "Wi-Fi Direct"
+ "Wi-Fi Direct ආරම්භ කරන්න. මෙය Wi-Fi සේවාදායක/හොට්ස්පොට් එක අක්රිය කරනු ඇත."
+ "Wi-Fi Direct ආරම්භ කළ නොහැක."
+ "Wi-Fi Direct ක්රියාත්මකයි"
"සැකසීම් සඳහා තට්ටු කරන්න"
"පිළිගන්න"
"ප්රතික්ෂේප කරන්න"
@@ -1210,6 +1215,8 @@
"ස්ථාපන සැසිය කියවීමට යෙදුමට ඉඩ දෙන්න. සක්රිය පැකේජ ස්ථාපනය පිළිබඳ විස්තර බැලීමට එයට මෙයින් ඉඩ දෙයි."
"ස්ථාපන පැකේජ ඉල්ලීම"
"ස්ථාපන පැකේජ ඉල්ලීමට යෙදුමකට අවසර දීම."
+ "බැටරි ප්රශස්තකරණ නොසලකා හැරීමට ඉල්ලන්න"
+ "යෙදුමකට එම යෙදුම සඳහා බැටරි ප්රශස්තකරණ නොසලකා හැරීමට අවසර ඉල්ලීමට ඉඩ දෙයි."
"විශාලන පාලක සඳහා දෙවතාවක් තට්ටු කරන්න"
"විජටය එකතු කිරීමට නොහැකි විය."
"යන්න"
@@ -1284,7 +1291,7 @@
"මැකීම් අස් කරන්න"
"දැනට කිසිවක් නොකරන්න"
"ගිණුමක් තෝරන්න"
- "ගිණුමක් එකතු කරන්න"
+ "ගිණුමක් එක් කරන්න"
"ගිණුමක් එක් කරන්න"
"වැඩි කරන්න"
"අඩු කරන්න"
@@ -1330,7 +1337,7 @@
"USB ධාවකය"
"%s USB ධාවකය"
"USB ආචයනය"
- "සංස්කරණය කරන්න"
+ "සංස්කරණය"
"දත්ත භාවිතය ගැන ඇඟවීම"
"භාවිතය සහ සැකසීම් බැලීමට තට්ටු කරන්න."
"2G-3G දත්ත සීමාවට ළඟාවී ඇත"
@@ -1376,7 +1383,7 @@
"HDMI"
"පද්ධතිය"
"බ්ලූටූත් ශ්රව්ය"
- "රැහැන් රහිත දර්ශනය"
+ "නොරැහැන් සංදර්ශකය"
"Cast"
"උපාංගයට සම්බන්ධ වන්න"
"තිරය උපාංගයට යොමු කරන්න"
@@ -1560,7 +1567,7 @@
"වසර තෝරන්න"
"%1$s මකා දමන ලදි"
"වැඩ %1$s "
- "මෙම තිරය ඇමුණුම් ඉවත් කිරීමට, ස්පර්ශ කර අල්ලා ගෙන සිටින්න."
+ "මෙම තිරය ඇමුණුම් ඉවත් කිරීමට, දළ විශ්ලේෂණය ස්පර්ශ කර අල්ලා ගෙන සිටින්න."
"යෙදුම අමුණා ඇත: ගැලවීමට මෙම උපාංගය මත ඉඩ දිය නොහැකිය."
"තිරය අගුළු දමා ඇත"
"තිරයේ අගුළු ඇර ඇත"
@@ -1608,7 +1615,7 @@
"%1$s තෙක්"
"%1$s තෙක් (ඊළඟ එලාමය)"
- "ඔබ මෙය අක්රිය කරන තුරු"
+ "ඔබ මෙය ක්රියාවිරහිත කරන තුරු"
"බාධා නොකරන්න ඔබ අක්රිය කරන තුරු"
"%1$s / %2$s "
"හකුළන්න"
diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml
index a94c3b40d5dc..c2bcbf398d86 100644
--- a/core/res/res/values-sk/strings.xml
+++ b/core/res/res/values-sk/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Problém s pripojením alebo neplatný kód MMI."
"Operácia je obmedzená len na povolené čísla."
+ "Nastavenia presmerovania hovorov nie je možné zmeniť z telefónu počas roamingu."
"Služba bola povolená."
"Služba bola povolená pre:"
"Služba bola vypnutá."
@@ -98,6 +99,8 @@
"Hlasové a dátové služby sú zablokované."
"Hlasové služby a služby SMS sú zablokované."
"Všetky hlasové, údajové služby a služby SMS sú zablokované."
+ "Nepodarilo sa pripojiť k sieti"
+ "Ak chcete vylepšiť príjem, skúste zmeniť vybratý typ siete v časti Nastavenia > Mobilné siete > Preferovaný typ siete."
"Používateľ, s ktorým komunikujete, požiadal o režim FULL textového telefónu"
"Používateľ, s ktorým komunikujete, požiadal o režim HCO textového telefónu"
"Používateľ, s ktorým komunikujete, požiadal o režim VCO textového telefónu"
@@ -183,6 +186,8 @@
"Pracovný profil bol odstránený z dôvodu chýbajúcej správcovskej aplikácie."
"Správcovská aplikácia pracovného profilu buď chýba, alebo je poškodená. Z toho dôvodu boli váš pracovný profil a s ním súvisiace údaje odstránené. Ak potrebujete pomoc, kontaktujte svojho správcu."
"Váš pracovný profil už nie je na tomto zariadení dostupný."
+ "Sleduje sa sieťová premávka."
+ "Klepnutím získate ďalšie informácie"
"Vaše zariadenie bude vymazané"
"V správcovskej aplikácii chýbajú komponenty alebo je poškodená, a preto sa nedá použiť. Vaše zariadenie bude vymazané. Ak potrebujete pomoc, kontaktujte svojho správcu."
"Ja"
@@ -649,10 +654,10 @@
"Asistent"
"Brat"
"Dieťa"
- "Partner(ka)"
+ "Druh(-žka)"
"Otec"
"Kamarát(ka)"
- "Manažér"
+ "Vedúci(-a)"
"Matka"
"Rodič"
"Partner(ka)"
@@ -1258,6 +1263,8 @@
"Toto povolenie umožňuje aplikácii čítať relácie inštalácií a zobraziť tak podrobnosti o aktívnych inštaláciách balíkov."
"odosielanie žiadostí o inštaláciu balíkov"
"Umožňuje aplikácii vyžiadať inštaláciu balíkov."
+ "požiadať o ignorovanie optimalizácií výdrže batérie"
+ "Umožňuje aplikácii požiadať o povolenie ignorovať optimalizácie výdrže batérie pre danú aplikáciu."
"Dvojitým klepnutím môžete ovládať priblíženie"
"Miniaplikáciu sa nepodarilo pridať."
"Hľadať"
@@ -1612,7 +1619,7 @@
"Vyberte rok"
"Číslo %1$s bolo odstránené"
"Práca – %1$s "
- "Ak chcete uvoľniť túto obrazovku, klepnite na tlačidlo Späť a podržte ho."
+ "Ak chcete odopnúť túto obrazovku, klepnite na tlačidlá Späť a Prehľad a podržte ich."
"Aplikácia je pripnutá. Uvoľnenie nie je na tomto zariadení povolené."
"Obrazovka bola pripnutá"
"Obrazovka bola uvoľnená"
diff --git a/core/res/res/values-sl/strings.xml b/core/res/res/values-sl/strings.xml
index a19643b13533..99f1163742eb 100644
--- a/core/res/res/values-sl/strings.xml
+++ b/core/res/res/values-sl/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Težava s povezavo ali neveljavna koda MMI."
"Operacija je omejena na dovoljene telefonske številke, za katere ne velja zapora odhodnega klica."
+ "Nastavitev preusmerjanja klicev ni mogoče spremeniti v telefonu med gostovanjem v tujem omrežju."
"Storitev je omogočena."
"Storitev je bila omogočena za:"
"Storitev je onemogočena."
@@ -98,6 +99,8 @@
"Storitvi za govor/podatke sta blokirani."
"Storitvi za govor/SMS sta blokirani."
"Vse storitve za govor/podatke/SMS so blokirane."
+ "Povezave z omrežjem ni mogoče vzpostaviti"
+ "Če želite izboljšati sprejem, poskusite zamenjati vrsto omrežja v »Nastavitve« > »Mobilna omrežja« > »Prednostna vrsta omrežja«."
"Enakovredna naprava je zahtevala način TTY FULL"
"Enakovredna naprava je zahtevala način TTY HCO"
"Enakovredna naprava je zahtevala način TTY VCO"
@@ -183,6 +186,8 @@
"Delovni profil izbrisan zaradi manjkajoče skrbniške aplikacije."
"Skrbniška aplikacija delovnega profila manjka ali pa je poškodovana, zaradi česar je bil delovni profil s povezanimi podatki izbrisan. Za pomoč se obrnite na skrbnika."
"Vaš delovni profil ni več na voljo v tej napravi."
+ "Omrežni promet je nadzorovan"
+ "Dotaknite se, če želite izvedeti več"
"Podatki v napravi bodo izbrisani"
"Skrbniška aplikacija je nepopolna ali poškodovana, zato je ni mogoče uporabiti. Podatki v napravi bodo izbrisani. Za pomoč se obrnite na skrbnika."
"Jaz"
@@ -656,7 +661,7 @@
"Mati"
"Starši"
"Partner"
- "Predlagatelj:"
+ "Predlagatelj"
"Sorodnik"
"Sestra"
"Zakonski partner"
@@ -1258,6 +1263,8 @@
"Aplikaciji omogoča branje sej namestitev. Tako lahko bere podrobnosti o aktivnih namestitvah paketov."
"zahtevanje paketov za namestitev"
"Aplikaciji omogoča zahtevanje namestitve paketov."
+ "Dovoljenje za prezrtje optimizacij akumulatorja"
+ "Aplikaciji dovoljuje, da vpraša za dovoljenje, ali naj prezre optimizacije akumulatorja."
"Tapnite dvakrat za nadzor povečave/pomanjšave"
"Pripomočka ni bilo mogoče dodati."
"Pojdi"
@@ -1284,7 +1291,7 @@
"Ozadje"
"Spreminjanje ozadja"
"Poslušalec obvestil"
- "Poslušalec za navidezno resničnost"
+ "Poslušalec za VR"
"Ponudnik pogojev"
"Storitev za določanje stopenj pomembnosti obvestil"
"VPN aktiviran"
@@ -1612,7 +1619,7 @@
"Izberite leto"
"Številka %1$s je izbrisana"
"%1$s za delo"
- "Če želite odpeti ta zaslon, se dotaknite tipke za nazaj in jo pridržite."
+ "Če želite odpeti ta zaslon, hkrati pridržite gumba Nazaj in Pregled."
"Aplikacija je pripeta: v tej napravi odpenjanje ni dovoljeno."
"Zaslon je pripet"
"Zaslon je odpet"
diff --git a/core/res/res/values-sq-rAL/strings.xml b/core/res/res/values-sq-rAL/strings.xml
index 624b00466a75..339ac59d1a90 100644
--- a/core/res/res/values-sq-rAL/strings.xml
+++ b/core/res/res/values-sq-rAL/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Problem në lidhje ose kod i pavlefshëm MMI-je."
"Veprimi është i kufizuar vetëm kundrejt numrave me telefonim të përzgjedhur"
+ "Cilësimet e transferimit të telefonatave nuk mund të ndryshohen nga telefoni yt kur je në roaming."
"Shërbimi u aktivizua."
"Shërbimi u aktivizua për:"
"Shërbimi është çaktivizuar."
@@ -96,6 +97,8 @@
"Shërbimet zanore/të të dhënave janë bllokuar."
"Shërbimet me zë/SMS-të janë të bllokuara."
"Të gjitha shërbimet me zë/të të dhënave/SMS-të janë bllokuar."
+ "Rrjeti i paarritshëm"
+ "Për të përmirësuar marrjen e sinjalit, provo të ndryshosh llojin e zgjedhur te Cilësimet > Rrjetet celulare > Lloji i preferuar i rrjetit."
"Homologu yt kërkoi modalitet \"TTY\" të plotë"
"Homologu kërkoi modalitet \"TTY\" të llojit \"HCO\""
"Homologu yt kërkoi modalitet \"TTY\" të llojit \"VCO\""
@@ -179,6 +182,8 @@
"Profili i punës u fshi për shkak të mungesës së aplikacionit të administratorit."
"Aplikacioni i administratorit të profilit të punës mungon ose është dëmtuar. Si rezultat i kësaj, profili yt i punës dhe të dhënat përkatëse janë fshirë. Kontakto administratorin tënd për ndihmë."
"Profili yt i punës nuk është më i disponueshëm në këtë pajisje."
+ "Trafiku i rrjetit po monitorohet"
+ "Trokit për të mësuar më shumë"
"Pajisja do të spastrohet"
"Aplikacionit të administratorit i mungojnë përbërësit ose është dëmtuar dhe nuk mund të përdoret. Pajisja jote tani do të fshihet. Kontakto administratorin tënd për ndihmë."
"Unë"
@@ -1208,6 +1213,8 @@
"Lejon një aplikacion të lexojë sesionet e instalimit. Kjo e lejon atë të shohë detaje rreth instalimeve të paketave aktive."
"kërko paketat e instalimit"
"Lejon që një aplikacion të kërkojë instalimin e paketave."
+ "kërko të shpërfillësh optimizimet e baterisë"
+ "Lejon që një aplikacion të kërkojë leje për të shpërfillur optimizimet e baterisë për atë aplikacion."
"Trokit dy herë për të kontrolluar zmadhimin"
"Nuk mundi të shtonte miniaplikacion."
"Shko"
@@ -1558,7 +1565,7 @@
"Përzgjidh vitin"
"%1$s u fshi"
"Puna %1$s "
- "Për të hequr gozhdimin e ekranit, prek dhe mbaj të shtypur \"Prapa\"."
+ "Për të hequr gozhdimin e ekranit, prek dhe mbaj të shtypur \"Prapa\" dhe \"Përmbledhja\"."
"Ekrani është i gozhduar. Anulimi i mbërthimit nuk lejohet nga organizata jote."
"Ekrani u gozhdua"
"Ekrani u hoq nga gozhdimi"
diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml
index 395b049c1d2d..7bba6fe1e26f 100644
--- a/core/res/res/values-sr/strings.xml
+++ b/core/res/res/values-sr/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Проблеми са везом или неважећи MMI кôд."
"Рад је ограничен само на бројеве фиксног бирања."
+ "Не можете да промените подешавања преусмеравања позива са телефона док сте у ромингу."
"Услуга је омогућена."
"Услуга је омогућена за:"
"Услуга је онемогућена."
@@ -97,6 +98,8 @@
"Гласовна услуга/услуга преноса података су блокиране."
"Гласовна услуга и SMS услуга су блокиране."
"Све гласовне и SMS услуге, као и услуге преноса података су блокиране."
+ "Повезивање са мрежом није успело"
+ "Да бисте побољшали пријем, пробајте да промените изабрани тип у одељку Подешавања > Мобилне мреже > Жељени тип мреже."
"Корисник захтева ПОТПУН режим TTY"
"Корисник захтева ПРЕНОС ЗВУКА за режим TTY"
"Корисник захтева ПРЕНОС ГЛАСА за режим TTY"
@@ -181,6 +184,8 @@
"Пословни профил је избрисан јер недостаје администраторска апликација."
"Администраторска апликација пословног профила недостаје или је оштећена. Због тога су ваш пословни профил и повезани подаци избрисани. Обратите се администратору за помоћ."
"Профил за Work више није доступан на овом уређају."
+ "Мрежни саобраћај се прати"
+ "Додирните да бисте сазнали више"
"Уређај ће бити обрисан"
"Администраторској апликацији недостају неке компоненте или је оштећена и не може да се користи. Уређај ће сада бити обрисан. Обратите се администратору за помоћ."
"Ја"
@@ -371,7 +376,7 @@
"слање команди на SIM"
"Омогућава апликацији да шаље команде SIM картици. То је веома опасно."
"снимање фотографија и видео снимака"
- "Дозвољава апликацији да снима слике и видео снимке камером. Ова дозвола омогућава апликацији да у било ком тренутку користи камеру без ваше потврде."
+ "Дозвољава апликацији да снима слике и видео камером. Ова дозвола омогућава апликацији да у било ком тренутку користи камеру без ваше потврде."
"контрола вибрације"
"Дозвољава апликацији да контролише вибрацију."
"директно позивање бројева телефона"
@@ -1233,6 +1238,8 @@
"Дозвољава апликацији да чита сесије инсталирања. То јој дозвољава да види детаље о активним инсталацијама пакета."
"захтевање пакета за инсталирање"
"Омогућава да апликација захтева инсталацију пакета."
+ "тражење дозволе за игнорисање оптимизација батерије"
+ "Дозвољава апликацији да тражи дозволу за игнорисање оптимизација батерије за ту апликацију."
"Додирните двапут за контролу зумирања"
"Није могуће додати виџет."
"Иди"
@@ -1585,7 +1592,7 @@
"Изаберите годину"
"Избрисали сте %1$s "
"%1$s на послу"
- "Да бисте откачили овај екран, додирните и задржите Назад."
+ "Да бисте откачили овај екран, додирните и задржите Назад и Преглед."
"Апликација је закачена: откачињање није дозвољено на овом уређају."
"Екран је закачен"
"Екран је откачен"
diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml
index d43282db7686..c2b919eac86b 100644
--- a/core/res/res/values-sv/strings.xml
+++ b/core/res/res/values-sv/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Anslutningsproblem eller ogiltig MMI-kod."
"Endast fasta nummer kan användas."
+ "Det går inte att ändra inställningarna för vidarebefordran av samtal medan mobilen är i roaming-läge."
"Tjänsten har aktiverats."
"Tjänsten har aktiverats för:"
"Tjänsten har inaktiverats."
@@ -82,10 +83,10 @@
"Avvisande av oönskade irriterande samtal"
"Leverans av nummer för inkommande samtal"
"Stör ej"
- "Nummerpresentatören är begränsad som standard. Nästa samtal: Begränsad"
- "Nummerpresentatörens standardinställning är begränsad. Nästa samtal: Inte begränsad"
- "Nummerpresentatörens standardinställning är inte begränsad. Nästa samtal: Begränsad"
- "Nummerpresentatörens standardinställning är inte begränsad. Nästa samtal: Inte begränsad"
+ "Nummerpresentatören är blockerad som standard. Nästa samtal: Blockerad"
+ "Nummerpresentatörens standardinställning är blockerad. Nästa samtal: Inte blockerad"
+ "Nummerpresentatörens standardinställning är inte blockerad. Nästa samtal: Blockerad"
+ "Nummerpresentatörens standardinställning är inte blockerad. Nästa samtal: Inte blockerad"
"Tjänsten är inte etablerad."
"Det går inte att ändra inställningen för nummerpresentatör."
"Datatjänsten är blockerad."
@@ -96,6 +97,8 @@
"Röst- och datatjänster är blockerade."
"Röst- och SMS-tjänster är blockerade."
"Alla röst-, data- och SMS-tjänster är blockerade."
+ "Det går inte att nå nätverket"
+ "Testa om du får bättre mottagning genom att ändra till en annan typ under Inställningar > Mobilnät > Önskad nätverkstyp."
"Peer-enheten begärde texttelefonläget FULL"
"Peer-enheten begärde texttelefonläget HCO"
"Peer-enheten begärde texttelefonläget VCO"
@@ -179,6 +182,8 @@
"Jobbprofilen har raderats eftersom det saknas en administratörsapp."
"Administratörsappen för jobbprofilen saknas eller är skadad. Det innebär att jobbprofilen och all relaterad data har raderats. Kontakta administratören om du vill ha hjälp."
"Din jobbprofil är inte längre tillgänglig på den här enheten."
+ "Nätverkstrafiken övervakas"
+ "Tryck här om du vill läsa mer"
"Enheten kommer att rensas"
"Administratörsappen saknar delar eller är skadad och kan inte användas. Enheten kommer nu att rensas. Kontakta administratören om du behöver hjälp."
"Jag"
@@ -650,7 +655,7 @@
"Mamma"
"Förälder"
"Partner"
- "Genom"
+ "Känner genom"
"Släkting"
"Syster"
"Make/maka"
@@ -667,11 +672,11 @@
"Ange lösenord för att låsa upp"
"Ange PIN-kod för att låsa upp"
"Fel PIN-kod."
- "Tryck på Menu och sedan på 0 om du vill låsa upp."
+ "Tryck på Menu och sedan på 0 för att låsa upp."
"Nödsamtalsnummer"
"Ingen tjänst"
"Skärmen har låsts."
- "Tryck på Menu om du vill låsa upp eller ringa nödsamtal."
+ "Tryck på Menu för att låsa upp eller ringa nödsamtal."
"Tryck på Menu för att låsa upp."
"Rita grafiskt lösenord för att låsa upp"
"Nödsamtal"
@@ -1208,6 +1213,8 @@
"Tillåt appen att läsa installationssessioner. Det ger den tillgång till uppgifter om aktiva paketinstallationer."
"begära installationspaket"
"Tillåter att en app begär paketinstallation."
+ "får be om tillstånd att ignorera batterioptimering"
+ "Appen får be om tillstånd att ignorera batterioptimering."
"Peka två gånger för zoomkontroll"
"Det gick inte att lägga till widgeten."
"Kör"
@@ -1234,7 +1241,7 @@
"Bakgrund"
"Ändra bakgrund"
"Meddelandelyssnare"
- "Lyssnare för virtuell verklighet"
+ "Lyssnare för VR"
"Leverantör"
"Rankningstjänst för aviseringar"
"VPN är aktiverat"
@@ -1558,7 +1565,7 @@
"Välj år"
"%1$s har tagits bort"
"%1$s för arbetet"
- "Om du vill lossa skärmen trycker du länge på Tillbaka."
+ "Om du vill lossa skärmen trycker du länge på Tillbaka och Översikt."
"Appen är fäst. Att lossa den är inte tillåtet på den här enheten."
"Skärmen är fäst"
"Skärmen är inte längre fäst"
diff --git a/core/res/res/values-sw/strings.xml b/core/res/res/values-sw/strings.xml
index cc750d6f37bb..261ec7ff3eb9 100644
--- a/core/res/res/values-sw/strings.xml
+++ b/core/res/res/values-sw/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Tatizo la muunganisho au msimbo batili MMI."
"Uendeshaji umepunguzwa kwa namba za upigaji simu za kudumu pekee."
+ "Haiwezi kubadilisha mipangilio ya kusambaza simu kutoka kwenye simu yako ukiwa unatumia mitandao mingine."
"Huduma iliwezeshwa"
"Huduma iliwezesha kwa:"
"Hitilafu ya huduma!"
@@ -96,6 +97,8 @@
"Huduma za sauti/data zimezuiwa."
"Huduma za Sauti/Ujumbe mfupi zimezuiwa."
"Huduma zote za Sauti/data/SMS zimezuiwa."
+ "Haiwezi kufikia mtandao"
+ "Ili uboreshe upokeaji, jaribu kubadilisha aina iliyochaguliwa katika Mipangilio > Mitandao ya simu > Aina ya mtandao unaopendelea."
"Hali ya TTY iliyoombwa na mtandao mwenza KAMILI"
"Hali ya TTY iliyoombwa na mtandao mwenza HCO"
"Hali ya TTY iliyoombwa na mtandao mwenza VCO"
@@ -177,6 +180,8 @@
"Wasifu wa kazini umefutwa kutokana na kupotea kwa programu ya msimamizi."
"Programu ya msimamizi wa wasifu wa kazini imepotea au ina hitilafu. Kwa sbabu hiyo, wasifu wako wa kazini na data husika imefutwa. Wasiliana na msimamizi wako kwa usaidizi."
"Wasifu wako wa kazini haupatikani tena kwenye kifaa hiki."
+ "Trafiki ya mtandao inachunguzwa"
+ "Gonga ili upate maelezo zaidi"
"Data iliyomo kwenye kifaa chako itafutwa"
"Programu ya msimamizi inakosa vipengele au ina hitilafu, na haiwezi kutumika. Data iliyomo kwenye kifaa chako sasa itafutwa. Wasiliana na msimamizi wako kwa usaidizi."
"Mimi"
@@ -1206,6 +1211,8 @@
"Huruhusu programu kusoma vipindi vya kusanikisha. Hii huiruhusu kuona maelezo kuhusu usanikishaji wa programu unaoendelea."
"omba ruhusa ya kusakinisha vifurushi"
"Huruhusu programu kuomba idhini ya kusakinisha vifurushi."
+ "omba kupuuza uimarishji wa betri"
+ "Huruhusu programu kuomba ruhusa ya kupuuza uimarishaji wa betri katika programu yako."
"Gonga mara mbili kwa udhibiti wa kuza"
"Haikuweza kuongeza wijeti."
"Nenda"
@@ -1232,7 +1239,7 @@
"Mandhari"
"Badilisha mandhari"
"Kisikilizi cha arifa"
- "Kisikilizaji cha Uhalisia Pepe"
+ "Kisikilizaji cha VR"
"Mtoa masharti"
"Huduma ya kupanga arifa"
"VPN imewezeshwa"
@@ -1556,7 +1563,7 @@
"Chagua mwaka"
"%1$s kimefutwa"
"Ya kazini %1$s "
- "Ili kubandua skrini hii, gusa na ushikilie Nyuma."
+ "Ili kubandua skrini hii, gusa na ushikilie kitufe cha Nyuma na Muhtasari."
"Programu imebanwa: Kubanuliwa hakuruhusiwi kwenye kifaa hiki."
"Skrini imebandikwa"
"Skrini imebanduliwa"
diff --git a/core/res/res/values-sw900dp/dimens.xml b/core/res/res/values-sw900dp/dimens.xml
new file mode 100644
index 000000000000..11092b2cb9e9
--- /dev/null
+++ b/core/res/res/values-sw900dp/dimens.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+ 56dp
+
+
+ 56dp
+
+
diff --git a/core/res/res/values-ta-rIN/strings.xml b/core/res/res/values-ta-rIN/strings.xml
index 20226e9c856a..271e8855d40c 100644
--- a/core/res/res/values-ta-rIN/strings.xml
+++ b/core/res/res/values-ta-rIN/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"இணைப்பு சிக்கல் அல்லது தவறான MMI குறியீடு."
"நிலையான அழைப்பு எண்களுக்கு மட்டுமே எனச் செயல்பாடு வரையறுக்கப்பட்டுள்ளது."
+ "ரோமிங்கில் இருக்கும் போது, உங்கள் மொபைலிலிருந்து அழைப்புப் பகிர்வு அமைப்புகளை மாற்ற முடியாது."
"சேவை இயக்கப்பட்டுள்ளது."
"சேவை பின்வருவதற்கு இயக்கப்பட்டுள்ளது:"
"சேவை முடக்கப்பட்டுள்ளது."
@@ -96,6 +97,8 @@
"குரல்/தரவு சேவைகள் தடைசெய்யப்பட்டுள்ளன."
"குரல்/SMS சேவைகள் தடைசெய்யப்பட்டுள்ளன."
"எல்லா குரல்/தரவு/SMS சேவைகள் தடைசெய்யப்பட்டுள்ளன."
+ "நெட்வொர்க்குடன் இணைக்க முடியவில்லை"
+ "பெறுதலை மேம்படுத்த, அமைப்புகள் > செல்லுலார் நெட்வொர்க்குகள் > விரும்பும் நெட்வொர்க் வகை என்பதில் தேர்ந்தெடுத்த நெட்வொர்க் வகையை மாற்றவும்."
"TTY Mode FULLஐ இணைச் செயல்பாடு கோரியது"
"TTY Mode HCOஐ இணைச் செயல்பாடு கோரியது"
"TTY Mode VCOஐ இணைச் செயல்பாடு கோரியது"
@@ -179,6 +182,8 @@
"நிர்வாகி பயன்பாடு இல்லாததனால், பணி சுயவிவரம் நீக்கப்பட்டது."
"பணி சுயவிவர நிர்வாகி பயன்பாடு இல்லை அல்லது சேதமடைந்துள்ளது. இதன் விளைவாக, உங்கள் பணி சுயவிவரமும், அதனுடன் தொடர்புடைய தரவும் நீக்கப்பட்டன. உதவிக்கு, உங்கள் நிர்வாகியைத் தொடர்புகொள்ளவும்."
"சாதனத்தில் இனி பணி சுயவிவரம் கிடைக்காது."
+ "நெட்வொர்க் ட்ராஃபிக் கண்காணிக்கப்படுகிறது"
+ "மேலும் அறிய, தட்டவும்"
"சாதனத் தரவு அழிக்கப்படும்"
"நிர்வாகி பயன்பாடு இல்லை அல்லது சேதமடைந்துள்ளது மற்றும் பயன்படுத்த முடியாது. இப்போது சாதனத் தரவு அழிக்கப்படும். உதவிக்கு, நிர்வாகியைத் தொடர்புகொள்ளவும்."
"நான்"
@@ -1208,6 +1213,8 @@
"நிறுவல் அமர்வுகளைப் படிக்க, பயன்பாட்டை அனுமதிக்கிறது. இது செயல்படும் தொகுப்பு நிறுவல்களைப் பற்றிய விவரங்களைப் பார்க்க அனுமதிக்கிறது."
"நிறுவல் தொகுப்புகளைக் கோருதல்"
"தொகுப்புகளின் நிறுவலைக் கோர, பயன்பாட்டை அனுமதிக்கும்."
+ "பேட்டரி மேம்படுத்தல்களைப் புறக்கணிப்பதற்கான அனுமதியைக் கோரு"
+ "பயன்பாட்டிற்கான பேட்டரி மேம்படுத்தல்களைப் புறக்கணிப்பதற்கான அனுமதியைக் கோர, பயன்பாட்டை அனுமதிக்கும்."
"அளவை மாற்றுவதற்கான கட்டுப்பாட்டிற்கு, இருமுறை தட்டவும்"
"விட்ஜெட்டைச் சேர்க்க முடியவில்லை."
"செல்"
@@ -1558,7 +1565,7 @@
"ஆண்டைத் தேர்ந்தெடுக்கவும்"
"%1$s நீக்கப்பட்டது"
"பணியிடம் %1$s "
- "இந்தத் திரையை விலக்க, \"முந்தையது\" பொத்தானைத் தொட்டுப் பிடிக்கவும்."
+ "இந்தத் திரையை அகற்ற, முந்தையது மற்றும் மேலோட்டப் பார்வை ஆகிய இரண்டையும் தொட்டுப் பிடித்திருக்கவும்."
"பயன்பாடு பொருத்தப்பட்டது: பொருத்தியதை நீக்குவதற்கு இந்தச் சாதனத்தில் அனுமதியில்லை."
"திரை பின் செய்யப்பட்டது"
"திரையின் பின் அகற்றப்பட்டது"
diff --git a/core/res/res/values-te-rIN/strings.xml b/core/res/res/values-te-rIN/strings.xml
index 072b69bcaefc..cd67c80e56cb 100644
--- a/core/res/res/values-te-rIN/strings.xml
+++ b/core/res/res/values-te-rIN/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"కనెక్షన్ సమస్య లేదా చెల్లని MMI కోడ్."
"చర్య స్థిరమైన డయలింగ్ నంబర్లకు మాత్రమే పరిమితం చేయబడింది."
+ "మీరు రోమింగ్లో ఉన్నప్పుడు మీ ఫోన్ నుండి కాల్ ఫార్వార్డింగ్ సెట్టింగ్లను మార్చలేరు."
"సేవ ప్రారంభించబడింది."
"వీటి కోసం సేవ ప్రారంభించబడింది:"
"సేవ నిలిపివేయబడింది."
@@ -96,6 +97,8 @@
"వాయిస్/డేటా సేవలు బ్లాక్ చేయబడ్డాయి."
"వాయిస్/SMS సేవలు బ్లాక్ చేయబడ్డాయి."
"అన్ని వాయిస్/డేటా/SMS సేవలు బ్లాక్ చేయబడ్డాయి."
+ "నెట్వర్క్ను చేరుకోలేరు"
+ "స్వీకరణను మెరుగుపరచడానికి, సెట్టింగ్లు > సెల్యులార్ నెట్వర్క్లు > ప్రాధాన్య నెట్వర్క్ రకం ఎంపికలో ఎంచుకున్న రకాన్ని మార్చడానికి ప్రయత్నించండి."
"అవతలి వారు FULL TTY మోడ్ని అభ్యర్థించారు"
"అవతలి వారు HCO TTY మోడ్ని అభ్యర్థించారు"
"అవతలి వారు VCO TTY మోడ్ని అభ్యర్థించారు"
@@ -179,6 +182,8 @@
"నిర్వాహక అనువర్తనం లేనందున కార్యాలయ ప్రొఫైల్ తొలగించబడింది."
"కార్యాలయ ప్రొఫైల్ నిర్వాహక అనువర్తనం లేదు లేదా పాడైంది. తత్ఫలితంగా, మీ కార్యాలయ ప్రొఫైల్ మరియు సంబంధిత డేటా తొలగించబడ్డాయి. సహాయం కోసం మీ నిర్వాహకుడిని సంప్రదించండి."
"ఈ పరికరంలో మీ కార్యాలయ ప్రొఫైల్ ఇప్పుడు అందుబాటులో లేదు."
+ "నెట్వర్క్ ట్రాఫిక్ పర్యవేక్షించబడుతోంది"
+ "మరింత తెలుసుకోవడానికి నొక్కండి"
"మీ పరికరంలోని డేటా తొలగించబడుతుంది"
"నిర్వాహక అనువర్తనంలో కొన్ని అంతర్భాగాలు లేవు లేదా అది పాడైపోయి, నిరుపయోగంగా మారింది. మీ పరికరంలోని డేటా ఇప్పుడు తొలగించబడుతుంది. సహాయం కోసం మీ నిర్వాహకుడిని సంప్రదించండి."
"నేను"
@@ -1208,6 +1213,8 @@
"ఇన్స్టాల్ సెషన్లను చదవడానికి అనువర్తనాన్ని అనుమతిస్తుంది. ఇది సక్రియ ప్యాకేజీ ఇన్స్టాలేషన్ల గురించి వివరాలను చూడటానికి అనువర్తనాన్ని అనుమతిస్తుంది."
"ఇన్స్టాల్ ప్యాకేజీలను అభ్యర్థించడం"
"ప్యాకేజీల ఇన్స్టాలేషన్ అభ్యర్థించడానికి అనువర్తనాన్ని అనుమతిస్తుంది."
+ "బ్యాటరీ అనుకూలీకరణలను విస్మరించడానికి అడగాలి"
+ "ఆ అనువర్తనం కోసం బ్యాటరీ అనుకూలీకరణలు విస్మరించేలా అనుమతి కోరడానికి అనువర్తనాన్ని అనుమతిస్తుంది."
"జూమ్ నియంత్రణ కోసం రెండుసార్లు నొక్కండి"
"విడ్జెట్ను జోడించడం సాధ్యపడలేదు."
"వెళ్లు"
@@ -1558,7 +1565,7 @@
"సంవత్సరాన్ని ఎంచుకోండి"
"%1$s తొలగించబడింది"
"కార్యాలయం %1$s "
- "ఈ స్క్రీన్ని అన్పిన్ చేయడానికి, వెనుకకు తాకి & అలాగే పట్టుకోండి."
+ "ఈ స్క్రీన్ను అన్పిన్ చేయడానికి, వెనుకకు మరియు స్థూలదృష్టి తాకి & అలాగే పట్టుకోండి."
"అనువర్తనం పిన్ చేయబడింది: ఈ పరికరంలో అన్పిన్ చేయడానికి అనుమతి లేదు."
"స్క్రీన్ పిన్ చేయబడింది"
"స్క్రీన్ అన్పిన్ చేయబడింది"
diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml
index c2515908dd7b..fbbca8929eb1 100644
--- a/core/res/res/values-th/strings.xml
+++ b/core/res/res/values-th/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"ปัญหาการเชื่อมต่อหรือรหัส MMI ไม่ถูกต้อง"
"การดำเนินการถูกจำกัดไว้ที่การจำกัดหมายเลขโทรออกเท่านั้น"
+ "ไม่สามารถเปลี่ยนการตั้งค่าการโอนสายจากโทรศัพท์ในขณะที่โรมมิ่ง"
"เปิดใช้งานบริการแล้ว"
"เปิดการใช้งานบริการสำหรับ:"
"ปิดใช้บริการไว้"
@@ -96,6 +97,8 @@
"บริการเสียง/ข้อมูลถูกบล็อก"
"บริการเสียง/SMS ถูกปิดกั้น"
"บริการเสียง/ข้อมูล/SMS ทั้งหมดถูกบล็อก"
+ "เข้าถึงเครือข่ายไม่ได้"
+ "เพื่อให้การรับสัญญาณดีขึ้น ลองเปลี่ยนประเภทที่เลือกที่ \"การตั้งค่า\" > \"เครือข่ายมือถือ\" > \"ประเภทเครือข่ายที่ต้องการ\""
"อีกฝั่งหนึ่งขอโหมด TTY เป็น \"เต็ม\""
"อีกฝั่งหนึ่งขอโหมด TTY เป็น \"HCO\""
"อีกฝั่งหนึ่งขอโหมด TTY เป็น \"VCO\""
@@ -179,6 +182,8 @@
"ลบโปรไฟล์งานแล้วเนื่องจากไม่มีแอปผู้ดูแลระบบ"
"แอปผู้ดูแลระบบโปรไฟล์งานไม่มีอยู่หรือเสียหาย ระบบจึงทำการลบโปรไฟล์งานและข้อมูลที่เกี่ยวข้องของคุณออก โปรดติดต่อผู้ดูแลระบบเพื่อรับความช่วยเหลือ"
"โปรไฟล์งานของคุณไม่สามารถใช้บนอุปกรณ์นี้ได้อีกต่อไป"
+ "มีการติดตามดูการจราจรของข้อมูลในเครือข่าย"
+ "แตะเพื่อเรียนรู้เพิ่มเติม"
"ระบบจะลบข้อมูลในอุปกรณ์ของคุณ"
"แอปผู้ดูแลระบบมีองค์ประกอบไม่ครบหรือเสียหาย และใช้งานไม่ได้ ระบบจะลบข้อมูลอุปกรณ์ของคุณ โปรดติดต่อผู้ดูแลระบบเพื่อรับความช่วยเหลือ"
"ฉัน"
@@ -1208,6 +1213,8 @@
"อนุญาตให้แอปพลิเคชันอ่านเซสชันการติดตั้ง ซึ่งจะอนุญาตให้อ่านรายละเอียดเกี่ยวกับการติดตั้งแพ็กเกจที่ใช้งาน"
"ขอติดตั้งแพ็กเกจ"
"อนุญาตให้แอปพลิเคชันขอการติดตั้งแพ็กเกจ"
+ "ขอเพิกเฉยต่อการเพิ่มประสิทธิภาพแบตเตอรี่"
+ "อนุญาตให้แอปขอสิทธิ์เพิกเฉยต่อการเพิ่มประสิทธิภาพแบตเตอรี่สำหรับแอปนั้น"
"แตะสองครั้งเพื่อควบคุมการซูม"
"ไม่สามารถเพิ่มวิดเจ็ต"
"ไป"
@@ -1234,7 +1241,7 @@
"วอลเปเปอร์"
"เปลี่ยนวอลเปเปอร์"
"ตัวฟังการแจ้งเตือน"
- "Listener ความเป็นจริงเสมือน"
+ "VR Listener"
"ผู้เสนอเงื่อนไข"
"บริการตัวจัดอันดับการแจ้งเตือน"
"VPN เปิดใช้งานแล้ว"
@@ -1547,7 +1554,7 @@
"ลองอีกครั้งในภายหลัง"
"กำลังดูแบบเต็มหน้าจอ"
- "หากต้องการออกไป ให้เลื่อนลงจากด้านบน"
+ "หากต้องการออก ให้เลื่อนลงจากด้านบน"
"รับทราบ"
"เสร็จสิ้น"
"ตัวเลื่อนหมุนระบุชั่วโมง"
@@ -1558,7 +1565,7 @@
"เลือกปี"
"ลบ %1$s แล้ว"
"%1$s ที่ทำงาน"
- "หากต้องการเลิกตรึงหน้าจอนี้ แตะ \"กลับ\" ค้างไว้"
+ "หากต้องการเลิกตรึงหน้าจอนี้ ให้แตะ \"กลับ\" และ \"ภาพรวม\" ค้างไว้"
"มีการตรึงแอป: ไม่อนุญาตให้เลิกตรึงบนอุปกรณ์นี้"
"ตรึงหน้าจอแล้ว"
"เลิกตรึงหน้าจอแล้ว"
diff --git a/core/res/res/values-tl/strings.xml b/core/res/res/values-tl/strings.xml
index b0d84ea51ba4..0cabf8706a7d 100644
--- a/core/res/res/values-tl/strings.xml
+++ b/core/res/res/values-tl/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Problema sa koneksyon o di-wastong MMI code."
"Pinaghihigpitan ang pagpapatakbo sa mga fixed dialing number lang."
+ "Hindi maaaring baguhin ang mga setting ng pagpapasa ng tawag mula sa iyong telepono habang naka-roaming ka."
"Pinagana ang serbisyo."
"Pinagana ang serbisyo para sa:"
"Hindi pinagana ang serbisyo."
@@ -96,6 +97,8 @@
"Naka-block ang mga serbisyo sa boses/data."
"Naka-block ang mga serbisyo ng Voice/SMS."
"Naka-block ang lahat ng serbisyo sa boses/data/SMS."
+ "Hindi maabot ang network"
+ "Upang mapahusay ang reception, subukang baguhin ang uring napili sa Mga Setting > Mga cellular network > Gustong uri ng network."
"Hiniling ng peer ang TTY Mode FULL"
"Hiniling ng peer ang TTY Mode HCO"
"Hiniling ng peer ang TTY Mode VCO"
@@ -179,6 +182,8 @@
"Na-delete ang profile sa trabaho dahil wala itong admin app."
"Ang admin app ng profile sa trabaho ay nawawala o sira. Bilang resulta, na-delete na ang iyong profile sa trabaho at nauugnay na data. Makipag-ugnayan sa iyong administrator para sa tulong."
"Hindi na available ang iyong profile sa trabaho sa device na ito."
+ "Sinusubaybayan ang trapiko sa network"
+ "I-tap upang matuto pa"
"Buburahin ang iyong device"
"Ang admin app ay may mga kulang na bahagi o sira, at hindi ito magagamit. Buburahin na ngayon ang iyong device. Makipag-ugnayan sa iyong administrator para sa tulong."
"Ako"
@@ -244,23 +249,23 @@
"Lumipat sa Personal"
"Lumipat sa para sa Trabaho"
"Mga Contact"
- "ina-access ang iyong mga contact"
+ "i-access ang iyong mga contact"
"Lokasyon"
"i-access ang lokasyon ng device na ito"
"Kalendaryo"
- "ina-access ang iyong kalendaryo"
+ "i-access ang iyong kalendaryo"
"SMS"
"magpadala at tumingin ng mga mensaheng SMS"
"Imbakan"
- "mag-access ng mga larawan, media at file sa iyong device"
+ "i-access ang mga larawan, media at file sa iyong device"
"Mikropono"
"mag-record ng audio"
"Camera"
"kumuha ng mga larawan at mag-record ng video"
"Telepono"
- "tumatawag sa telepono at namamahala sa mga tawag sa telepono"
+ "tumawag at mamahala ng mga tawag sa telepono"
"Mga Sensor ng Katawan"
- "i-access ang data ng sensor tungkol sa iyong mahahalagang senyales"
+ "i-access ang data ng sensor tungkol sa iyong vital signs"
"Kunin ang content ng window"
"Siyasatin ang nilalaman ng isang window kung saan ka nakikipag-ugnayan."
"I-on ang Explore by Touch"
@@ -1208,6 +1213,8 @@
"Pinapayagan ang isang application na magbasa ng mga session ng pag-install. Nagbibigay-daan ito upang makita ang mga detalye tungkol sa mga aktibong pag-install ng package."
"humiling ng mga package sa pag-install"
"Pinapayagan ang isang application na hilingin ang pag-install ng mga package."
+ "hilingin na balewalain ang mga pag-optimize ng baterya"
+ "Pinapayagang humingi ng pahintulot ang isang app na balewalain ang mga pag-optimize ng baterya para sa app na iyon."
"Tapikin ng dalawang beses para sa pagkontrol ng zoom"
"Hindi maidagdag ang widget."
"Pumunta"
@@ -1558,7 +1565,7 @@
"Pumili ng taon"
"Tinanggal ang %1$s "
"%1$s sa Trabaho"
- "Upang i-unpin ang screen na ito, pindutin nang matagal ang Bumalik."
+ "Upang i-unpin ang screen na ito, pindutin nang matagal ang Bumalik at Pangkalahatang-ideya."
"Naka-pin ang app: Hindi pinapayagan ang pag-a-unpin sa device na ito."
"Naka-pin ang screen"
"Naka-unpin ang screen"
diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml
index a089fd42feb6..1043e93b07c8 100644
--- a/core/res/res/values-tr/strings.xml
+++ b/core/res/res/values-tr/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Bağlantı sorunu veya geçersiz MMI kodu."
"İşlem sadece sabit arama numaralarıyla sınırlandırılmıştır."
+ "Dolaşımdayken telefonunuzdan çağrı yönlendirme ayarları değiştirilemiyor."
"Hizmet etkindi."
"Hizmet şunun için etkinleştirildi:"
"Hizmet devre dışı bırakıldı."
@@ -96,6 +97,8 @@
"Ses/Veri hizmetleri engellendi."
"Ses/SMS hizmetleri engellendi."
"Tüm Ses/Veri/SMS hizmetleri engellendi."
+ "Ağa erişilemiyor"
+ "Sinyal gücünü iyileştirmek için Ayarlar > Hücresel ağlar > Tercih Edilen Ağ Modu\'ndan seçili türü değiştirmeyi deneyin."
"Karşı taraf TTY Modunu TAM yaptı"
"Karşı taraf TTY Modunu HCO yaptı"
"Karşı taraf TTY Modunu VCO yaptı"
@@ -179,6 +182,8 @@
"Eksik yönetici uygulaması nedeniyle iş profili silindi."
"İş profili yönetici uygulaması eksik ya da bozuk. Bunun sonucunda iş profiliniz ve ilgili veriler silindi. Yardım almak için yöneticiniz ile iletişim kurun."
"İş profiliniz arık bu cihazda kullanılamıyor."
+ "Ağ trafiği izleniyor"
+ "Daha fazla bilgi için dokunun"
"Cihazınız silinecek"
"Yönetici uygulamasında bileşen eksik ya da uygulama bozuk ve kullanılamaz durumda. Cihazınız şimdi silinecek. Yardım için yöneticinizle iletişim kurun."
"Ben"
@@ -605,7 +610,7 @@
"Telsiz"
"Teleks"
"TTY TDD"
- "İş Cep Telefonu"
+ "İş Mobil"
"İş Çağrı Cihazı"
"Yardımcı"
"MMS"
@@ -649,7 +654,7 @@
"Yönetici"
"Anne"
"Ebeveyn"
- "Hayat Arkadaşı"
+ "Ortak"
"Öneren"
"Akraba"
"Kız Kardeş"
@@ -773,7 +778,7 @@
"Bu sayfada kal"
"%s \n\nBu sayfadan ayrılmak istediğinizden emin misiniz?"
"Onayla"
- "İpucu: Yakınlaştırmak ve uzaklaştırmak için iki kez hafifçe dokunun."
+ "İpucu: Yakınlaştırmak ve uzaklaştırmak için iki kez dokunun."
"Otomatik Doldur"
"Otomatik doldurma ayarla"
" "
@@ -1133,7 +1138,7 @@
"UYGULAMAYI AL"
"ŞİMDİ DEĞİL"
"Yeni SIM kart takıldı"
- "Kurmak için hafifçe dokunun"
+ "Kurmak için dokunun"
"Saati ayarlayın"
"Tarihi ayarlayın"
"Ayarla"
@@ -1208,6 +1213,8 @@
"Bir uygulamanın yükleme oturumlarını okumasına izin verir. Bu, etkin paket yüklemeleriyle ilgili ayrıntıların görülmesine olanak tanır."
"paket yükleme isteğinde bulunma"
"Uygulamaya, paketleri yükleme isteğinde bulunma izni verir."
+ "pil optimizasyonlarını göz ardı etme izni iste"
+ "Bir uygulamanın, kendisi için pil optimizasyonlarını göz ardı etme izni istemesine olanak sağlar."
"Zum denetimi için iki kez dokun"
"Widget eklenemedi."
"Git"
@@ -1234,7 +1241,7 @@
"Duvar Kağıdı"
"Duvar kağıdını değiştir"
"Bildirim dinleyici"
- "Sanal Gerçeklik dinleyici"
+ "VR dinleyici"
"Durum sağlayıcı"
"Bildirim sıralama hizmeti"
"VPN etkinleştirildi"
@@ -1531,7 +1538,7 @@
"bilinmiyor"
"Yazdırma hizmeti etkin değil"
"%s hizmeti yüklendi"
- "Etkinleştirmek için hafifçe dokunun"
+ "Etkinleştirmek için dokunun"
"Yönetici PIN\'ini girin"
"PIN\'i girin"
"Yanlış"
@@ -1558,7 +1565,7 @@
"Yılı seçin"
"%1$s silindi"
"%1$s (İş)"
- "Bu ekranın sabitlemesini kaldırmak için Geri\'ye dokunup basılı tutun."
+ "Bu ekranın sabitlemesini kaldırmak için Geri\'ye ve Genel Bakış\'a dokunup basılı tutun."
"Uygulama sabitlendi. Bu cihazda sabitlemenin kaldırılmasına izin verilmiyor."
"Ekran sabitlendi"
"Ekran sabitlemesi kaldırıldı"
@@ -1659,9 +1666,9 @@
"Kilidi açmak için dokunun"
"Kullanıcı verileri kilitlendi"
"İş profili kilitlendi"
- "İş profilinin kilidini açmak için hafifçe dokunun"
+ "İş profilinin kilidini açmak için dokunun"
"%1$s cihazına bağlandı"
- "Dosyaları görüntülemek için hafifçe dokunun"
+ "Dosyaları görüntülemek için dokunun"
"Sabitle"
"Sabitlemeyi kaldır"
"Uygulama bilgileri"
diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml
index 704ade8e27dd..aaf5253fa3c5 100644
--- a/core/res/res/values-uk/strings.xml
+++ b/core/res/res/values-uk/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Пробл. підключення чи недійсний код MMI."
"Операція лише для номерів фіксованого набору."
+ "У роумінгу на телефоні не можна змінити налаштування переадресації викликів."
"Послугу ввімкнено."
"Службу ввімкнено для:"
"Службу вимкнено."
@@ -98,6 +99,8 @@
"Голосові служби чи служби даних заблоковано."
"Голос.служ. чи служ. даних заблок."
"Усі голосові служби, служби даних і SMS заблоковано."
+ "Не вдається під’єднатися до мережі"
+ "Щоб покращити якість сигналу, змініть тип у меню \"Налаштування > Мобільні мережі > Тип мережі\"."
"Пристрій змінив режим TTY на FULL"
"Пристрій змінив режим TTY на HCO"
"Пристрій змінив режим TTY на VCO"
@@ -183,6 +186,8 @@
"Робочий профіль видалено через відсутність додатка адміністратора."
"Додаток адміністратора в робочому профілі відсутній або пошкоджений. У результаті ваш робочий профіль і пов’язані з ним дані видалено. Зверніться до свого адміністратора по допомогу."
"Робочий профіль більше не доступний на цьому пристрої."
+ "Відстежується мережевий трафік"
+ "Торкніться, щоб дізнатися більше"
"З вашого пристрою буде стерто всі дані"
"Неможливо скористатися додатком адміністратора, оскільки в ньому немає певних компонентів або його пошкоджено. З вашого пристрою буде стерто всі дані. Зверніться до свого адміністратора по допомогу."
"Я"
@@ -1258,6 +1263,8 @@
"Дозволяє додатку читати дані сеансів встановлення. Додаток може бачити деталі про активні встановлення пакетів."
"запитувати дані про пакети встановлення"
"Додаток зможе надсилати запити на встановлення пакетів."
+ "запитувати дозвіл ігнорувати оптимізацію використання заряду акумулятора"
+ "Додаток зможе запитувати дозвіл ігнорувати оптимізацію використання заряду акумулятора."
"Двічі натис. для кер. масшт."
"Не вдалося додати віджет."
"Йти"
@@ -1284,7 +1291,7 @@
"Фоновий мал."
"Змінити фоновий малюнок"
"Служба читання сповіщень"
- "Обробник віртуальної реальності"
+ "VR-режим"
"Постачальник умов"
"Служба встановлення пріоритетності сповіщень"
"Мережу VPN активовано"
@@ -1371,7 +1378,7 @@
"Крапка."
"Перейти на головну"
"Перейти вгору"
- "Інші варіанти"
+ "Більше"
"%1$s, %2$s"
"%1$s, %2$s, %3$s"
"Внутрішнє спільне сховище"
@@ -1612,7 +1619,7 @@
"Виберіть рік"
"%1$s видалено"
"Робоча %1$s "
- "Щоб відкріпити цей екран, натисніть і утримуйте кнопку \"Назад\"."
+ "Щоб відкріпити цей екран, натисніть і втримуйте кнопки \"Назад\" та \"Огляд\"."
"Додаток закріплено. Його не можна відкріпити на цьому пристрої."
"Екран закріплено"
"Екран відкріплено"
diff --git a/core/res/res/values-ur-rPK/strings.xml b/core/res/res/values-ur-rPK/strings.xml
index 24a03b24e066..3136c33b51c6 100644
--- a/core/res/res/values-ur-rPK/strings.xml
+++ b/core/res/res/values-ur-rPK/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"کنکشن مسئلہ یا غلط MMI کوڈ۔"
"آپریشن صرف متعین ڈائلنگ نمبرز تک محدود ہے۔"
+ "جب آپ رومنگ پر ہوں تو اپنے فون سے کال فارورڈنگ کی ترتیبات تبدیل نہیں کی جا سکتیں۔"
"سروس فعال کی گئی۔"
"سروس فعال کی گئی برائے:"
"سروس غیر فعال کر دی گئی ہے۔"
@@ -96,6 +97,8 @@
"صوتی/ڈیٹا سروسز مسدود کر دی گئی ہیں۔"
"وائس/SMS سروسز مسدود ہیں۔"
"سبھی صوتی/ڈیٹا/SMS سروسز مسدود کر دی گئی ہیں۔"
+ "نیٹ ورک تک نہیں پہنچا جا سکتا"
+ "ریسپشن کو بہتر بنانے کیلئے، ترتیبات > سیلولر نیٹ ورکس > ترجیحی نیٹ ورک کی قسم پرمنتخب کی گئی قسم تبدیل کرنے کی کوشش کریں۔"
"ہمسر نے TTY وضع مکمل کی درخواست کی"
"ہمسر نے TTY وضع HCO کی درخواست کی"
"ہمسر نے TTY وضع VCO کی درخواست کی"
@@ -179,6 +182,8 @@
"گمشدہ منتظم ایپ کی وجہ سے دفتری پروفائل حذف کر دیا گیا۔"
"دفتری پروفائل کی منتظم ایپ یا تو غائب ہے یا خراب ہے۔ اس کی وجہ سے، آپ کا دفتری پروفائل اور متعلقہ ڈیٹا حذف کر دیے گئے ہیں۔ مدد کیلئے اپنے منتظم سے رابطہ کریں۔"
"آپ کا دفتری پروفائل اس آلہ پر مزید دستیاب نہیں ہے۔"
+ "نیٹ ورک ٹریفک مانیٹر ہو رہی ہے"
+ "مزید جاننے کیلئے تھپتھپائیں"
"آپ کا آلہ صاف کر دیا جائے گا"
"منتظم کی ایپ میں گمشدہ اجزاء ہیں یا وہ خراب ہے اور اسے استعمال نہیں کیا جا سکتا ہے۔ آپ کے آلہ کو اب صاف کر دیا جائے گا۔ مدد کیلئے اپنے منتظم سے رابطہ کریں۔"
"میں"
@@ -265,7 +270,7 @@
"کسی ایسی ونڈو کے مواد کا معائنہ کریں جس کے ساتھ آپ تعامل کر رہے ہیں۔"
"ٹچ کے ذریعے دریافت کریں کو آن کرنے کی"
"تھپتھپائے گئے آئٹمز کو باآواز بلند بولا جائے گا اور اشاروں کا استعمال کرکے اسکرین کو دریافت کیا جا سکتا ہے۔"
- "بہتر ویب accessibility کو آن کرنے کی"
+ "بہتر ویب ایکسیسبیلٹی کو آن کرنے کی"
"ایپ کا مواد مزید قابل رسائی بنانے کیلئے اسکرپٹس کو انسٹال کیا جا سکتا ہے۔"
"آپکے ٹائپ کردہ متن کا مشاہدہ کرنے کی"
"اس میں ذاتی ڈیٹا جیسے کریڈٹ کارڈ نمبرز اور پاس ورڈز شامل ہیں۔"
@@ -1208,6 +1213,8 @@
"ایک ایپلیکیشن کو انسٹال سیشنز پڑھنے کی اجازت دیتا ہے۔ یہ اسے فعال پیکیج انسٹالیشنز کے بارے میں تفصیلات دیکھنے کی اجازت دیتا ہے۔"
"پیکجز انسٹال کرنے کی درخواست کریں"
"ایک ایپلیکیشن کو پیکجز انسٹال کرنے کی اجازت دیتی ہے۔"
+ "بیٹری کی بہتریاں نظر انداز کرنے کا پوچھیں"
+ "اس ایپ کیلئے ایک ایپ کو بیٹری کی کارکردگی بہتر بنانے کو نظر انداز کرنے کی اجازت دیں۔"
"زوم کنٹرول کیلئے دوبار تھپتھپائیں"
"ویجٹس کو شامل نہیں کرسکا۔"
"جائیں"
@@ -1230,7 +1237,7 @@
"آپ اس ایپ کو اپنے دفتری پروفائل میں استعمال کر رہے ہیں"
"اندراج کا طریقہ"
"مطابقت پذیری کریں"
- "Accessibility"
+ "ایکسیسبیلٹی"
"وال پیپر"
"وال پیپر تبدیل کریں"
"اطلاع سننے والا"
@@ -1432,9 +1439,9 @@
" — "
"ہٹائیں"
"والیوم کو تجویز کردہ سطح سے زیادہ کریں؟\n\nزیادہ وقت تک اونچی آواز میں سننے سے آپ کی سماعت کو نقصان پہنچ سکتا ہے۔"
- "accessibility فعال کرنے کیلئے دو انگلیاں نیچے دبائے رکھیں۔"
- "Accessibility فعال۔"
- "Accessibility منسوخ ہوگئی۔"
+ "ایکسیسبیلٹی فعال کرنے کیلئے دو انگلیاں نیچے دبائے رکھیں۔"
+ "ایکسیسبیلٹی فعال۔"
+ "ایکسیسبیلٹی منسوخ ہوگئی۔"
"موجودہ صارف %1$s ۔"
"%1$s پر سوئچ کیا جا رہا ہے…"
"%1$s لاگ آؤٹ ہو رہا ہے…"
@@ -1558,7 +1565,7 @@
"سال منتخب کریں"
"%1$s کو حذف کر دیا گیا"
"دفتر %1$s "
- "اس اسکرین سے پن ہٹانے کیلئے، پیچھے کو تھپتھپائیں اور دبا کر رکھیں۔"
+ "اس اسکرین سے پن ہٹانے کیلئے، ٹچ کریں، دبائیں اور مجموعی جائزہ۔"
"ایپ کو پن کر دیا گیا ہے: اس آلہ پر پن ہٹانے کی اجازت نہیں ہے۔"
"اسکرین کو پن کر دیا گیا"
"اسکرین کا پن ہٹا دیا گیا"
diff --git a/core/res/res/values-uz-rUZ/strings.xml b/core/res/res/values-uz-rUZ/strings.xml
index e5a2889b7054..cc213e639ef9 100644
--- a/core/res/res/values-uz-rUZ/strings.xml
+++ b/core/res/res/values-uz-rUZ/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Tarmoqda xato yoki MMI kod noto‘g‘ri."
"Bu amal faqat ruxsat etilgan raqamlar uchun mavjud."
+ "Rouming vaqtida telefondagi chaqiruvni boshqa raqamga uzatish sozlamalarini o‘zgartirib bo‘lmadi."
"Xizmat yoqildi."
"Xizmat quyidagi uchun yoqildi:"
"Xizmat o‘chirib qo‘yilgan."
@@ -96,6 +97,8 @@
"Ovozli/internet xizmatlari to‘sib qo‘yilgan."
"Ovoz/SMS xizmatlari bloklandi."
"Barcha ovozli/internet/SMS xizmatlari to‘sib qo‘yilgan."
+ "Tarmoq bilan bog‘lanib bo‘lmadi"
+ "Qabul qilish sifatini yaxshilash uchun Sozlamalar > Mobil tarmoqlar > Asosiy tarmoq turi orqali tarmoqni o‘zgartirib ko‘ring."
"Teng huquqli ishtirokchi teletayp rejimini FULL (to‘liq) qilib o‘zgartirdi"
"Teng huquqli ishtirokchi teletayp rejimini HCO (eshitadi, gapirolmaydi) qilib o‘zgartirdi"
"Teng huquqli ishtirokchi teletayp rejimini VCO (gapiradi, eshitolmaydi) qilib o‘zgartirdi"
@@ -179,6 +182,8 @@
"Administrator ilovasi yo‘qligi sababli ishchi profil o‘chirib tashlandi"
"Ishchi profilning administrator ilovasi yo‘q yoki buzilgan. Shuning uchun, ishchi profilingiz va unga aloqador ma’lumotlar o‘chirib tashlandi. Yordam olish uchun administratoringizga murojaat qiling."
"Bu qurilmada endi ishchi profilingiz mavjud emas."
+ "Tarmoq trafigi nazorat qilinmoqda"
+ "Batafsil ma’lumot olish uchun bosing"
"Qurilmangizdagi ma’lumotlar o‘chirib tashlanadi"
"Administrator ilovasining ba’zi qismlari yo‘qolgan yoki buzilgan, shuning uchun undan foydalanib bo‘lmaydi. Qurilmangizdagi ma’lumotlar o‘chirib tashlanadi. Yordam olish uchun administratoringizga murojaat qiling."
"Men"
@@ -696,7 +701,7 @@
"To‘xtatish"
"Orqaga o‘tkazish"
"Oldinga o‘tkazish"
- "Faqat favqulodda qo‘ng‘iroqlar"
+ "Faqat favqulodda chaqiruvlar"
"Tarmoq qulflangan"
"SIM karta PUK kod bilan qulflangan."
"Foydalanuvchi qo‘llanmasiga qarang yoki Abonentlarni qo‘llab-quvvatlash markaziga murojaat qiling."
@@ -1208,6 +1213,8 @@
"Ilovaga o‘rnatilgan seanslarni o‘qish uchun ruxsat beradi. Bu unga faol paket o‘rnatmalari haqidagi ma’lumotlarni ko‘rish imkonini beradi."
"paketlarni o‘rnatish so‘rovini yuborish"
"Ilovaga paketlarni o‘rnatish so‘rovini yuborish imkonini beradi."
+ "batareya quvvatidan xohlagancha foydalanishni so‘rash"
+ "Ilovaga batareya quvvatidan xohlagancha foydalanish uchun ruxsat so‘rashga imkon beradi."
"Ko‘lamini o‘zgartirish uchun ikki marta bosing"
"Vidjet qo‘shilmadi."
"O‘tish"
@@ -1558,7 +1565,7 @@
"Yilni tanlash"
"%1$s raqami o‘chirib tashlandi"
"Ish %1$s "
- "Bu ekrandan chiqish uchun “Orqaga” tugmasini bosib turing."
+ "Bu ekrandan chiqish uchun “Orqaga” va “Umumiy ma’lumot” tugmalarini bosib turing."
"Ilova qadab qo‘yilgan. Uni ekrandan yechish ushbu qurilmada ta’qiqlangan."
"Ekran qadab qo‘yildi"
"Ekran bo‘shatildi"
diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml
index 0bbfe3b8a8c1..63af1e256183 100644
--- a/core/res/res/values-vi/strings.xml
+++ b/core/res/res/values-vi/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Sự cố kết nối hoặc mã MMI không hợp lệ."
"Chỉ hạn chế thao tác đối với số quay số định sẵn."
+ "Không thể thay đổi cài đặt chuyển tiếp cuộc gọi từ điện thoại của bạn khi bạn đang chuyển vùng."
"Dịch vụ đã được bật."
"Dịch vụ đã được bật cho:"
"Dịch vụ đã bị vô hiệu hóa."
@@ -96,6 +97,8 @@
"Dịch vụ thoại/dữ liệu đã bị chặn."
"Dịch vụ Thoại/SMS đã bị chặn."
"Tất cả các dịch vụ thoại/dữ liệu/SMS đã bị chặn."
+ "Không thể kết nối mạng"
+ "Để cải thiện khả năng thu tín hiệu, hãy thử thay đổi loại được chọn tại Cài đặt > Mạng di động > Loại mạng ưa thích."
"TTY theo yêu cầu của thiết bị ngang hàng ở chế độ ĐẦY ĐỦ"
"TTY theo yêu cầu của thiết bị ngang hàng ở chế độ HCO"
"TTY theo yêu cầu của thiết bị ngang hàng ở chế độ VCO"
@@ -179,6 +182,8 @@
"Đã xóa hồ sơ công việc do thiếu ứng dụng quản trị."
"Ứng dụng quản trị hồ sơ công việc bị thiếu hoặc hỏng. Do vậy, hồ sơ công việc của bạn và dữ liệu liên quan đã bị xóa. Hãy liên hệ với quản trị viên để được trợ giúp."
"Hồ sơ công việc của bạn không có sẵn trên thiết bị này nữa."
+ "Lưu lượng truy cập mạng đang được giám sát"
+ "Nhấn để tìm hiểu thêm"
"Thiết bị của bạn sẽ bị xóa"
"Ứng dụng quản trị đang bị thiếu thành phần hoặc bị hỏng và không thể sử dụng được. Bây giờ, thiết bị của bạn sẽ bị xóa. Hãy liên hệ với quản trị viên của bạn để được trợ giúp."
"Tôi"
@@ -1208,6 +1213,8 @@
"Cho phép ứng dụng đọc phiên cài đặt. Thao tác này sẽ cho phép ứng dụng xem chi tiết về gói cài đặt đang hoạt động."
"yêu cầu gói cài đặt"
"Cho phép ứng dụng yêu cầu cài đặt gói."
+ "hỏi để bỏ qua tối ưu hóa pin"
+ "Cho phép ứng dụng hỏi quyền để bỏ qua tối ưu hóa pin cho ứng dụng đó."
"Nhấn hai lần để kiểm soát thu phóng"
"Không thể thêm tiện ích."
"Đến"
@@ -1558,7 +1565,7 @@
"Chọn năm"
"Đã xóa %1$s "
"%1$s làm việc"
- "Để bỏ ghim màn hình này, nhấn và giữ Quay lại."
+ "Để bỏ ghim màn hình này, chạm và giữ Quay lại và Tổng quan."
"Ứng dụng được ghim: Không được phép bỏ ghim trên thiết bị này."
"Đã ghim màn hình"
"Đã bỏ ghim màn hình"
diff --git a/core/res/res/values-w180dp-notround-watch/dimens_material.xml b/core/res/res/values-w180dp-notround-watch/dimens_material.xml
new file mode 100644
index 000000000000..79acf84b7e3f
--- /dev/null
+++ b/core/res/res/values-w180dp-notround-watch/dimens_material.xml
@@ -0,0 +1,36 @@
+
+
+
+ 80sp
+ 50sp
+ 40sp
+ 30sp
+ 20sp
+ 18sp
+ 18sp
+ 18dp
+ 18dp
+ 18sp
+ 16sp
+ 16sp
+ 16sp
+ 14sp
+ 16sp
+
+ 18sp
+ 16sp
+ 14sp
+
diff --git a/core/res/res/values-w210dp-round-watch/dimens_material.xml b/core/res/res/values-w210dp-round-watch/dimens_material.xml
new file mode 100644
index 000000000000..79acf84b7e3f
--- /dev/null
+++ b/core/res/res/values-w210dp-round-watch/dimens_material.xml
@@ -0,0 +1,36 @@
+
+
+
+ 80sp
+ 50sp
+ 40sp
+ 30sp
+ 20sp
+ 18sp
+ 18sp
+ 18dp
+ 18dp
+ 18sp
+ 16sp
+ 16sp
+ 16sp
+ 14sp
+ 16sp
+
+ 18sp
+ 16sp
+ 14sp
+
diff --git a/core/res/res/values-w225dp/dimens_material.xml b/core/res/res/values-w225dp/dimens_material.xml
new file mode 100644
index 000000000000..aa822a32c975
--- /dev/null
+++ b/core/res/res/values-w225dp/dimens_material.xml
@@ -0,0 +1,20 @@
+
+
+
+ 11.25dp
+ 22.5dp
+ 33.75dp
+
diff --git a/core/res/res/values-watch/colors_device_defaults.xml b/core/res/res/values-watch/colors_device_defaults.xml
new file mode 100644
index 000000000000..15786b4a23f8
--- /dev/null
+++ b/core/res/res/values-watch/colors_device_defaults.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+ @color/btn_default_material_dark
+
+ #995E97f6
+
diff --git a/core/res/res/values-watch/colors_material.xml b/core/res/res/values-watch/colors_material.xml
index 45eb9812f137..72f589b3d337 100644
--- a/core/res/res/values-watch/colors_material.xml
+++ b/core/res/res/values-watch/colors_material.xml
@@ -14,13 +14,15 @@
limitations under the License.
-->
- #ff232e33
- #ff3e5059
+ #232E33
+ #3E5059
- #ff5e97f6
- #ff4285f4
+ #5385DB
+ #75A4F5
+ #5E97F6
+ #93B7F5
- #4D4D4D
+ #33ffffff
- #ff999999
+ #ff919699
diff --git a/core/res/res/values-watch/config.xml b/core/res/res/values-watch/config.xml
index 919519e5832a..d13d15468825 100644
--- a/core/res/res/values-watch/config.xml
+++ b/core/res/res/values-watch/config.xml
@@ -57,4 +57,12 @@
true
+
+
+ true
+
+
+ false
diff --git a/core/res/res/values-watch/config_material.xml b/core/res/res/values-watch/config_material.xml
index 81b53e71b5d7..03d3637b150d 100644
--- a/core/res/res/values-watch/config_material.xml
+++ b/core/res/res/values-watch/config_material.xml
@@ -30,6 +30,10 @@
true
-
- 3
+
+ true
+
+
+ @drawable/scrollbar_vertical_thumb
+ @drawable/scrollbar_vertical_track
diff --git a/core/res/res/values-watch/dimens.xml b/core/res/res/values-watch/dimens.xml
new file mode 100644
index 000000000000..4c8b39ca92a7
--- /dev/null
+++ b/core/res/res/values-watch/dimens.xml
@@ -0,0 +1,21 @@
+
+
+
+
+ 0dp
+
+ 0dp
+
diff --git a/core/res/res/values-watch/dimens_material.xml b/core/res/res/values-watch/dimens_material.xml
index d579434d5e30..3c4904ccf07d 100644
--- a/core/res/res/values-watch/dimens_material.xml
+++ b/core/res/res/values-watch/dimens_material.xml
@@ -14,5 +14,34 @@
limitations under the License.
-->
+ 71sp
+ 44sp
+ 36sp
+ 27sp
+ 18sp
+ 16sp
+ 16sp
+ 16dp
+ 16dp
+ 16sp
+ 14sp
+ 14sp
+ 14sp
+ 12sp
+ 14sp
+
+ 16sp
+ 14sp
+ 12sp
+
- 1.2
+
+
+ 1dip
+ 1dip
+
+
+ 16dip
+ 32dip
+ 64dip
diff --git a/core/res/res/layout-watch/number_picker_material.xml b/core/res/res/values-watch/integers.xml
similarity index 59%
rename from core/res/res/layout-watch/number_picker_material.xml
rename to core/res/res/values-watch/integers.xml
index a1c0921482ad..46ed97d83182 100644
--- a/core/res/res/layout-watch/number_picker_material.xml
+++ b/core/res/res/values-watch/integers.xml
@@ -1,6 +1,6 @@
+
+
+ 1
-
-
-
-
-
+
+ 1
+
diff --git a/core/res/res/values-watch/styles_material.xml b/core/res/res/values-watch/styles_material.xml
index a9f6e226510c..0053c12d9d84 100644
--- a/core/res/res/values-watch/styles_material.xml
+++ b/core/res/res/values-watch/styles_material.xml
@@ -61,11 +61,16 @@ please see styles_device_defaults.xml.
- @empty
+
+
+
-
+
+
+
diff --git a/core/res/res/values-watch/themes_device_defaults.xml b/core/res/res/values-watch/themes_device_defaults.xml
index 2313b26c1f8d..4d210f6e2f9f 100644
--- a/core/res/res/values-watch/themes_device_defaults.xml
+++ b/core/res/res/values-watch/themes_device_defaults.xml
@@ -1,5 +1,5 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/core/res/res/values-watch/themes_material.xml b/core/res/res/values-watch/themes_material.xml
index 4ae4367e8bc7..0cf398b11085 100644
--- a/core/res/res/values-watch/themes_material.xml
+++ b/core/res/res/values-watch/themes_material.xml
@@ -37,6 +37,7 @@ please see styles_device_defaults.xml.
- @style/Animation.InputMethod
- ?colorBackground
- @anim/input_method_extract_enter
+ - false
@@ -59,4 +60,17 @@ please see styles_device_defaults.xml.
- @color/background_cache_hint_selector_material_light
- false
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml
old mode 100755
new mode 100644
index 66d7a80f2372..9c6d494a0190
--- a/core/res/res/values-zh-rCN/strings.xml
+++ b/core/res/res/values-zh-rCN/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"出现连接问题或 MMI 码无效。"
"只能对固定拨号号码执行此类操作。"
+ "漫游时无法通过您的手机来更改来电转接设置。"
"已启用服务。"
"已针对以下内容启用了服务:"
"已停用服务。"
@@ -96,6 +97,8 @@
"语音/数据服务已停用。"
"语音/短信服务已停用。"
"所有语音/数据/短信服务都已停用。"
+ "无法连接网络"
+ "要改善信号情况,请尝试更改在“设置”>“移动网络”>“首选网络类型”中选择的类型。"
"对方请求使用“TTY 完整”模式"
"对方请求使用“TTY HCO”模式"
"对方请求使用“TTY VCO”模式"
@@ -179,6 +182,8 @@
"由于缺少管理应用,工作资料已被删除。"
"工作资料管理应用缺失或损坏,因此系统已删除您的工作资料及相关数据。请与您的管理员联系以寻求帮助。"
"您的工作资料已不在此设备上。"
+ "网络流量正受到监控"
+ "点按即可了解详情"
"系统将清空您的设备"
"由于缺少组件或软件包已损坏,无法使用此管理应用。系统现在将清空您的设备。请与您的管理员联系以寻求帮助。"
"我"
@@ -207,9 +212,6 @@
"您要关机吗?"
"重新启动并进入安全模式"
"您要重新启动并进入安全模式吗?这样会停用您已安装的所有第三方应用。再次重新启动将恢复这些应用。"
- "重启"
- "您的平板电脑将会重启。"
- "您的手机将会重启。"
"近期任务"
"最近没有运行任何应用"
"平板电脑选项"
@@ -217,7 +219,6 @@
"手机选项"
"屏幕锁定"
"关机"
- "重启"
"紧急呼救"
"错误报告"
"提交错误报告"
@@ -250,11 +251,11 @@
"通讯录"
"访问您的通讯录"
"位置信息"
- "获得设备所在位置信息"
+ "获取此设备的位置信息"
"日历"
"访问您的日历"
"短信"
- "短信"
+ "发送和查看短信"
"存储空间"
"访问您设备上的照片、媒体内容和文件"
"麦克风"
@@ -262,7 +263,7 @@
"相机"
"拍摄照片和录制视频"
"电话"
- "电话"
+ "拨打电话和管理通话"
"身体传感器"
"访问与您的生命体征相关的传感器数据"
"检索窗口内容"
@@ -282,7 +283,7 @@
"用作状态栏"
"允许以状态栏形式显示应用。"
"展开/收拢状态栏"
- "允许应用展开或折叠状态栏。"
+ "允许应用展开或收起状态栏。"
"安装快捷方式"
"允许应用自行添加主屏幕快捷方式。"
"卸载快捷方式"
@@ -299,7 +300,7 @@
"允许应用获取有关当前同步的 Feed 的详情。"
"发送短信"
"允许该应用发送短信。此权限可能会导致意外收费。恶意应用可能会未经您的确认而发送短信,由此产生相关费用。"
- "读取您的讯息(短信/彩信)"
+ "读取短信"
"允许该应用读取您平板电脑或SIM卡上存储的短信。此权限可让该应用读取所有短信,而不考虑短信内容或机密性。"
"允许应用读取您的电视或 SIM 卡上存储的短信。此权限会允许应用读取所有短信,而不论短信内容是什么或是否属于机密内容。"
"允许该应用读取您手机或SIM卡上存储的短信。此权限可让该应用读取所有短信,而不考虑短信内容或机密性。"
@@ -333,11 +334,11 @@
"允许该应用发送持久广播消息,此类消息在广播结束后仍会保留。过度使用可能会导致平板电脑使用过多内存,从而降低其速度或稳定性。"
"允许应用发送持久广播消息,此类消息在广播结束后仍会保留。过度使用可能会导致电视使用过多内存,从而降低其速度或稳定性。"
"允许该应用发送持久广播消息,此类消息在广播结束后仍会保留。过度使用可能会导致手机使用过多内存,从而降低其速度或稳定性。"
- "读取您的通讯录"
+ "读取联系人"
"允许该应用读取您平板电脑上存储的联系人的相关数据,包括您通过打电话、发送电子邮件或以其他方式与特定个人通信的频率。此权限可让应用保存您的联系人数据,而恶意应用可能会在您不知情的情况下分享联系人数据。"
"允许应用读取您的电视上存储的联系人相关数据,包括您与特定联系人通话、发送电子邮件或通过其他方式进行通信的频率。此权限可让应用保存您的联系人数据,而且恶意应用可能会在您不知情的情况下分享联系人数据。"
"允许该应用读取您手机上存储的联系人的相关数据,包括您通过打电话、发送电子邮件或以其他方式与特定个人通信的频率。此权限可让应用保存您的联系人数据,而恶意应用可能会在您不知情的情况下分享联系人数据。"
- "写入/删除您的通讯录"
+ "修改您的通讯录"
"允许该应用修改您平板电脑上存储的联系人的相关数据,包括您通过打电话、发送电子邮件或以其他方式与特定联系人通信的频率。此权限可让应用删除联系人数据。"
"允许应用修改您的电视上存储的联系人相关数据,包括您与特定联系人通话、发送电子邮件或通过其他方式进行通信的频率。此权限可让应用删除联系人数据。"
"允许该应用修改您手机上存储的联系人的相关数据,包括您通过打电话、发送电子邮件或以其他方式与特定联系人通信的频率。此权限可让应用删除联系人数据。"
@@ -345,7 +346,7 @@
"允许该应用读取平板电脑的通话记录,包括有关来电和外拨电话的数据。此权限可让应用保存您的通话记录数据,而恶意应用可能会在您不知情的情况下分享通话记录数据。"
"允许应用读取您的电视的通话记录,包括有关来电和外拨电话的数据。此权限可让应用保存您的通话记录数据,而恶意应用可能会在您不知情的情况下分享通话记录数据。"
"允许该应用读取手机的通话记录,包括有关来电和外拨电话的数据。此权限可让应用保存您的通话记录数据,而恶意应用可能会在您不知情的情况下分享通话记录数据。"
- "写入/删除通话记录"
+ "新建/修改/删除通话记录"
"允许该应用修改平板电脑的通话记录,包括有关来电和外拨电话的数据。恶意应用可能会借此清除或修改您的通话记录。"
"允许应用修改电视的通话记录,包括有关来电和外拨电话的数据。恶意应用可能会借此清除或修改您的通话记录。"
"允许该应用修改手机的通话记录,包括有关来电和外拨电话的数据。恶意应用可能会借此清除或修改您的通话记录。"
@@ -361,7 +362,7 @@
"允许该应用添加、删除、更改您可在手机上修改的活动,包括朋友或同事的活动。此权限可让该应用冒充日历所有者发送消息,或在所有者不知情的情况下修改活动。"
"获取额外的位置信息提供程序命令"
"允许该应用使用其他的位置信息提供程序命令。此权限使该应用可以干扰GPS或其他位置信息源的运作。"
- "精确位置(基于GPS)"
+ "访问确切位置信息(以 GPS 和网络为依据)"
"允许该应用通过全球定位系统(GPS)或网络位置信息源(例如基站和WLAN)获取您的精确位置信息。您必须在设备上开启这些位置信息服务,应用才能获得位置信息。应用会使用此类服务确定您的位置,这可能会消耗更多电量。"
"访问大致位置信息(以网络为依据)"
"允许该应用获取您的大致位置信息。这类位置信息来自于使用网络位置信息源(例如基站和WLAN)的位置信息服务。您必须在设备上开启这些位置信息服务,应用才能获得位置信息。应用会使用此类服务确定您的大概位置。"
@@ -413,13 +414,13 @@
"允许应用更改绑定网络连接的状态。"
"查看WLAN连接"
"允许该应用查看WLAN网络的相关信息,例如是否启用了WLAN以及连接的WLAN设备的名称。"
- "打开WLAN"
+ "连接WLAN网络和断开连接"
"允许该应用与WLAN接入点建立和断开连接,以及更改WLAN网络的设备配置。"
"允许接收WLAN多播"
"允许该应用使用多播地址接收发送到WLAN网络上所有设备(而不仅仅是您的平板电脑)的数据包。该操作的耗电量比非多播模式要大。"
"允许应用使用多播地址接收发送到 WLAN 网络中所有设备(而不仅仅是您的电视)的数据包。该操作的耗电量比非多播模式要大。"
"允许该应用使用多播地址接收发送到WLAN网络上所有设备(而不仅仅是您的手机)的数据包。该操作的耗电量比非多播模式要大。"
- "打开蓝牙"
+ "访问蓝牙设置"
"允许应用配置本地蓝牙平板电脑,并允许其查找远程设备且与之配对。"
"允许应用配置本地蓝牙电视,并允许其查找远程设备且与之配对。"
"允许应用配置本地蓝牙手机,并允许其查找远程设备且与之配对。"
@@ -464,13 +465,13 @@
"允许该应用修改某个帐号的同步设置。例如,此权限可用于在“联系人”应用与某个帐号之间启用同步。"
"读取同步统计信息"
"允许该应用读取某个帐号的同步统计信息,包括同步活动历史记录和同步数据量。"
- "读取内部存储"
+ "读取您的USB存储设备中的内容"
"读取您的SD卡中的内容"
- "允许应用读取存储设备。"
+ "允许应用读取您USB存储设备中的内容。"
"允许应用读取您SD卡的内容。"
- "写入/删除内部存储"
- "写入/删除您的SD卡中的内容"
- "允许应用写入存储设备。"
+ "修改或删除您的USB存储设备中的内容"
+ "修改或删除您的SD卡中的内容"
+ "允许应用写入USB存储设备。"
"允许应用写入SD卡。"
"拨打/接听SIP电话"
"允许该应用拨打和接听SIP电话。"
@@ -742,7 +743,7 @@
"添加小部件。"
"空白"
"已展开解锁区域。"
- "已折叠解锁区域。"
+ "已收起解锁区域。"
"%1$s 小部件。"
"用户选择器"
"状态"
@@ -1212,6 +1213,8 @@
"允许应用读取安装会话。这样,应用将可以查看有关当前软件包安装的详情。"
"请求安装文件包"
"允许应用请求安装文件包。"
+ "请求忽略电池优化"
+ "允许应用请求相应的权限,以便忽略针对该应用的电池优化。"
"双击可以进行缩放控制"
"无法添加小部件。"
"开始"
@@ -1562,7 +1565,7 @@
"选择年份"
"已删除%1$s "
"工作%1$s "
- "要取消固定此屏幕,请触摸并按住“返回”按钮。"
+ "要取消固定此屏幕,请触摸并按住“返回”和“概览”。"
"应用处于固定状态:在此设备上不允许退出该模式。"
"已固定屏幕"
"已取消固定屏幕"
@@ -1681,10 +1684,5 @@
"恢复出厂设置即可正常使用此设备,不受任何限制"
"触摸即可了解详情。"
"已停用的%1$s "
- 其他权限
- 永远记住
- 权限
- 允许
- 拒绝
"电话会议"
diff --git a/core/res/res/values-zh-rHK/strings.xml b/core/res/res/values-zh-rHK/strings.xml
index 8e034a78327f..7f9b2865865d 100644
--- a/core/res/res/values-zh-rHK/strings.xml
+++ b/core/res/res/values-zh-rHK/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"連線發生問題或 MMI 碼無效。"
"僅限對固定撥號號碼執行這項運作。"
+ "使用漫遊服務時,不可從手機變更來電轉駁設定。"
"服務已啟用。"
"已啟用服務:"
"已停用服務。"
@@ -96,6 +97,8 @@
"已封鎖語音/數據服務。"
"已封鎖語音/SMS 服務。"
"已封鎖所有語音/數據傳輸/SMS 服務。"
+ "無法連接網絡"
+ "如要改善接收品質,請嘗試前往「設定」>「流動網絡」>「偏好網絡類型」以變更所選類型。"
"對方曾要求 TTY 模式 (FULL)"
"對方曾要求 TTY 模式 (HCO)"
"對方曾要求 TTY 模式 (VCO)"
@@ -179,6 +182,8 @@
"由於沒有管理員應用程式,工作設定檔已被刪除。"
"找不到工作設定檔應用程式,或工作設定檔應用程式已受損。因此,您的工作設定檔現在將被清除。請聯絡您的管理員以取得協助。"
"無法在此裝置上再使用您的工作設定檔。"
+ "網絡流量現正受監控"
+ "輕按即可瞭解詳情"
"您的裝置將被清除"
"找不到管理員應用程式的元件,或管理員應用程式已受損並不能使用。您的裝置現在將被清除。請聯絡您的管理員以取得協助。"
"我本人"
@@ -646,7 +651,7 @@
"同居伴侶"
"父親"
"朋友"
- "管理員"
+ "主管"
"母親"
"父母"
"夥伴"
@@ -1208,6 +1213,8 @@
"允許應用程式讀取安裝工作階段。應用程式將可查看目前安裝套裝的詳細資料。"
"要求安裝套件"
"允許應用程式要求安裝套件"
+ "要求忽略電池優化"
+ "允許應用程式要求就該應用程式忽略電池優化。"
"輕觸兩下控制縮放"
"無法新增小工具。"
"開始"
@@ -1234,7 +1241,7 @@
"桌布"
"變更桌布"
"通知接聽器"
- "虛擬現實接聽器"
+ "VR 接聽器"
"條件供應商"
"通知排序服務"
"VPN 已啟用。"
@@ -1558,7 +1565,7 @@
"選取年份"
"%1$s 已刪除"
"公司%1$s "
- "如要取消固定這個畫面,請按住 [返回]。"
+ "如要取消固定此畫面,請按住 [返回] 和 [概覽]。"
"應用程式已固定:不允許在此裝置上取消固定。"
"螢幕已固定"
"已取消固定螢幕"
diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml
index 82b4f6d8b7cd..7c293f0b717a 100644
--- a/core/res/res/values-zh-rTW/strings.xml
+++ b/core/res/res/values-zh-rTW/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"連線發生問題或錯誤的 MMI 碼。"
"僅限對固定撥號號碼執行此作業。"
+ "漫遊時無法透過你的手機變更來電轉接設定。"
"服務已啟用。"
"已啟用服務:"
"服務已停用。"
@@ -96,6 +97,8 @@
"已封鎖語音/數據傳輸服務。"
"已封鎖語音/SMS 服務。"
"已封鎖所有語音/數據傳輸/簡訊服務。"
+ "無法連上網路"
+ "如要改善收訊狀況,請依序開啟 [設定] > [行動網路] > [偏好的網路類型],然後選取其他網路類型。"
"通訊對象要求使用 TTY 的 FULL 模式"
"通訊對象要求使用 TTY 的 HCO 模式"
"通訊對象要求使用 TTY 的 VCO 模式"
@@ -179,6 +182,8 @@
"Work 設定檔因管理員應用程式遺失而遭到刪除。"
"Work 設定檔管理員應用程式遺失或已毀損,因此系統刪除了您的 Work 設定檔和相關資料。如需協助,請與您的管理員聯絡。"
"您的 Work 設定檔已不在這台裝置上。"
+ "網路流量目前受到監控"
+ "輕觸即可瞭解詳情"
"您的裝置資料將遭到清除"
"管理員應用程式因遺失元件或已毀損而無法使用,您的裝置資料將隨即遭到清除。如需相關協助,請與您的管理員聯絡。"
"我"
@@ -605,7 +610,7 @@
"無線電"
"電報"
"TTY/TDD"
- "公司行動電話"
+ "公司手機"
"公司呼叫器"
"助理"
"多媒體簡訊"
@@ -1208,6 +1213,8 @@
"允許應用程式讀取安裝工作階段。應用程式將可查看目前的套件安裝詳細資料。"
"要求安裝套件"
"允許應用程式要求安裝套件。"
+ "要求忽略電池效能最佳化設定"
+ "允許應用程式要求權限,以便忽略針對該應用程式的電池效能最佳化設定。"
"點兩下以進行縮放控制"
"無法新增小工具。"
"開始"
@@ -1558,7 +1565,7 @@
"選取年份"
"已刪除 %1$s "
"公司%1$s "
- "如要取消固定這個畫面,請按住「返回」按鈕。"
+ "如要取消固定這個畫面,請按住「返回」按鈕和「總覽」按鈕。"
"應用程式已固定:無法在這部裝置取消固定。"
"已固定螢幕"
"已取消固定螢幕"
diff --git a/core/res/res/values-zu/strings.xml b/core/res/res/values-zu/strings.xml
index 20dfcc03ef94..4055f08a8a93 100644
--- a/core/res/res/values-zu/strings.xml
+++ b/core/res/res/values-zu/strings.xml
@@ -46,6 +46,7 @@
"MSISDN1"
"Inkinga yoxhumano noma ikhadi ye-MMI engalungile."
"Umsebenzi uvinjelwe ekudayeleni izinombolo ezingaguquki kuphela."
+ "Ayikwazi ukushintsha izilungiselelo zokudluliselwa kwekholi kusuka efonini yakho ngenkathi uzula."
"Isevisi ivaliwe."
"Isevisi ivulelwe:"
"Isevisi ivaliwe."
@@ -96,6 +97,8 @@
"Amasevisi Wezwi/Idatha avimbelwe."
"Amasevisi Wezwi/SMS avimbelwe."
"Wonke amasevisi Wezwi/Idatha/SMS avimbelwe."
+ "Ayikwazi ukufinyelela inethiwekhi"
+ "Ukuze uthuthukise ukwamukela, zama ukushintsha uhlobo olukhethiwe kuzilungiselelo > amanethiwekhi eselula > uhlobo lwenethiwekhi olukhethayo."
"Umngani ucele imodi ye-TTY ephelele"
"Umngani ucele imodi ye-TTY HCO"
"Umngani ucele imodi ye-TTY VCO"
@@ -179,6 +182,8 @@
"Iphrofayela yomsebenzi isusiwe ngenxa yohlelo lokusebenza lomlawuli elingekho."
"Uhlelo lokusebenza lomlawuli lephrofayela yomsebenzi kungenzeka alukho noma lumoshekile. Njengomphumela walokho, iphrofayela yakho yomsebenzi nedatha ehlobene kususiwe. Xhumana nomlawuli wakho ukuze uthole usizo."
"Iphrofayela yakho yomsebenzi ayisatholakali kule divayisi."
+ "Ithrafikhi yenethiwekhi iyangamelwa"
+ "Thepha ukuze ufunde kabanzi"
"Idivayisi yakho izosulwa"
"Uhlelo lokusebenza lomlawuli lushoda ngezingxenye noma lumoshekile, futhi alikwazi ukusetshenziswa. Idivayisi yakho manje izosulwa. Xhumana nomlawuli wakho ukuze uthole usizo."
"Mina"
@@ -1208,6 +1213,8 @@
"Ivumela uhlelo lokusebenza ukufunda izikhathi. Lokhu kuzolivumela ukubona imininingwane mayelana nokufaka kwephakethi esebenzayo."
"cela amaphakheji wokufaka"
"Ivumela uhlelo lokusebenza ukucela ukufakwa kwamaphakheji."
+ "cela ukuziba ukulungiselelwa kwebhethri"
+ "Ivumela uhlelo lokusebenza ukuthi licele imvume yokuziba ukulungiselela ibhethri yalolo hlelo lokusebenza."
"Thepha kabili ukuthola ukulawula ukusondeza"
"Yehlulekile ukwengeza i-widget."
"Iya"
@@ -1558,7 +1565,7 @@
"Khetha unyaka"
"I-%1$s isusiwe"
"Umsebenzi %1$s "
- "Ukuze ususe ukuphina lesi sikrini, thinta futhi ubambe okuthi Emuva."
+ "Ukuze ususe ukuphina lesi sikrini, thinta futhi ubambe okuthi Emuva nokuthi Buka konke."
"Uhlelo lokusebenza luphiniwe: Ukususa ukuphina akuvunyelwe kule divayisi."
"Isikrini siphiniwe"
"Isikrini sisuswe ukuphina"
diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml
index 30a1a28617e5..066a5381d56b 100644
--- a/core/res/res/values/attrs.xml
+++ b/core/res/res/values/attrs.xml
@@ -2057,6 +2057,8 @@ i
+
+
@@ -2469,13 +2471,13 @@ i
+ {@see android.view.View#setAccessibilityTraversalBefore(int)} -->
+ {@see android.view.View#setAccessibilityTraversalAfter(int)} -->
+ false
diff --git a/core/res/res/values/colors_device_defaults.xml b/core/res/res/values/colors_device_defaults.xml
index 27ee27bdd165..8f0350a887b9 100644
--- a/core/res/res/values/colors_device_defaults.xml
+++ b/core/res/res/values/colors_device_defaults.xml
@@ -28,8 +28,13 @@
@color/tertiary_material_settings
@color/quaternary_material_settings
- @color/material_deep_teal_700
+ @color/accent_material_700
@color/accent_material_light
@color/accent_material_dark
- @color/material_deep_teal_50
+ @color/accent_material_50
+
+ @color/background_material_dark
+ @color/background_material_light
+ @color/background_floating_material_dark
+ @color/background_floating_material_light
diff --git a/core/res/res/values/colors_material.xml b/core/res/res/values/colors_material.xml
index 92426c6a9bca..37feff8daf7f 100644
--- a/core/res/res/values/colors_material.xml
+++ b/core/res/res/values/colors_material.xml
@@ -36,8 +36,10 @@
@color/material_blue_grey_700
@color/material_blue_grey_200
+ @color/material_deep_teal_700
@color/material_deep_teal_500
@color/material_deep_teal_200
+ @color/material_deep_teal_50
#ff5a595b
#ffd6d7d7
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index 3d7392893f97..68e86bb9d2b9 100755
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -202,7 +202,7 @@
- 200
+ 10
@@ -419,6 +419,9 @@
true
+
+ false
+
10-0050F204-5
@@ -555,9 +558,12 @@
Software implementation will be used if config_hardware_auto_brightness_available is not set -->
false
-
+
200
+
+ 40
+
true
@@ -812,6 +818,12 @@
-->
0
+
+ 0
+
102
+
+ 86
+
+
+ 79
+
+
+ 255
+
@@ -1051,6 +1073,12 @@
4000
8000
+
+ 0
+
250
@@ -1078,6 +1106,26 @@
10000
+
+ false
+
+
+ false
+
@@ -1143,6 +1191,61 @@
0
false
+
+
+ - 100
+
+
+
+
+ - 200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1773,6 +1876,10 @@
500
+
+ 64dp
+
3
@@ -1861,6 +1968,12 @@
mirror the content of the default display. -->
true
+
+ 0
+
false
@@ -2602,6 +2715,15 @@
com.android.retaildemo/.DemoPlayer
+
+
+
+
+
+
+
+
+
false
@@ -2633,6 +2755,14 @@
+
+ false
+
+ com.android.systemui/com.android.systemui.net.NetworkOverLimitActivity
+ com.android.settings/com.android.settings.Settings$DataUsageSummaryActivity
+
+ false
+
diff --git a/core/res/res/values/config_material.xml b/core/res/res/values/config_material.xml
index a37be837d9f1..8737df84e060 100644
--- a/core/res/res/values/config_material.xml
+++ b/core/res/res/values/config_material.xml
@@ -32,9 +32,16 @@
false
-
- 1
+
+ false
true
+
+
+ 0dp
+
+
+ @drawable/scrollbar_handle_material
+ @null
diff --git a/core/res/res/values/dimens_material.xml b/core/res/res/values/dimens_material.xml
index f96cef9ad1c5..ebe577c73758 100644
--- a/core/res/res/values/dimens_material.xml
+++ b/core/res/res/values/dimens_material.xml
@@ -129,6 +129,7 @@
20dp
+ 20dp
2dp
2dp
@@ -189,4 +190,13 @@
0dp
226dp
+
+
+ 16dip
+ 16dip
+
+
+ 16dip
+ 48dp
+ 76dp
diff --git a/core/res/res/values/integers.xml b/core/res/res/values/integers.xml
index 71ac2f49ff71..2b69c75b7d9c 100644
--- a/core/res/res/values/integers.xml
+++ b/core/res/res/values/integers.xml
@@ -26,5 +26,12 @@
1
1
+
+
+ 2
+
+
+ 2
+
2
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index df3ab84e2f4a..9d8555ac6e7c 100755
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -101,6 +101,8 @@
Operation is restricted to fixed dialing numbers only.
+
+ Can not change call forwarding settings from your phone while you are roaming.
Service was enabled.
@@ -202,6 +204,12 @@
All voice/data/SMS services are blocked.
+
+ Can\u2019t reach network
+
+ To improve reception, try changing the type selected at Settings > Cellular networks > Preferred network type."
+
+
Peer requested TTY Mode FULL
Peer requested TTY Mode HCO
@@ -382,6 +390,13 @@
This indicates that a work profile has been deleted. [CHAR LIMIT=NONE]-->
Your work profile is no longer available on this device.
+
+ Network traffic is being monitored
+
+ Tap to learn more
+
Your device will be erased
@@ -1967,7 +1982,7 @@
Pattern cleared
Cell added
-
Cell %1$s added
@@ -2047,6 +2062,12 @@
Reboot
+
+ "clock"
+
+
+ "calendar"
+
Mozilla/5.0 (Linux; U; Android %s )
AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 %s Safari/534.30
@@ -3238,6 +3259,11 @@
Allows an application to request installation of packages.
+
+ ask to ignore battery optimizations
+
+ Allows an app to ask for permission to ignore battery optimizations for that app.
+
Tap twice for zoom control
@@ -4173,7 +4199,7 @@
sans-serif-medium
- To unpin this screen, touch & hold Back.
+ To unpin this screen, touch & hold Back and Overview.
App is pinned: Unpinning isn\'t allowed on this device.
diff --git a/core/res/res/values/styles.xml b/core/res/res/values/styles.xml
index 762cf31abd55..937428b12c60 100644
--- a/core/res/res/values/styles.xml
+++ b/core/res/res/values/styles.xml
@@ -649,11 +649,13 @@ please see styles_device_defaults.xml.
+
+
+
+
+
-
-
-
@@ -684,7 +685,7 @@ please see styles_device_defaults.xml.
@@ -751,6 +756,10 @@ please see styles_device_defaults.xml.
@@ -758,6 +767,10 @@ please see styles_device_defaults.xml.
@@ -1208,6 +1221,7 @@ please see styles_device_defaults.xml.
- @layout/select_dialog_multichoice_material
- @layout/select_dialog_singlechoice_material
- @integer/config_alertDialogController
+ - @dimen/config_alertDialogSelectionScrollOffset
@@ -1246,7 +1260,7 @@ please see styles_device_defaults.xml.
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index f446341d97d8..c280b2864995 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -312,6 +312,7 @@
+
@@ -381,6 +382,7 @@
+
@@ -421,6 +423,7 @@
+
@@ -489,6 +492,8 @@
+
+
@@ -728,6 +733,7 @@
+
@@ -1111,6 +1117,8 @@
+
+
@@ -1121,6 +1129,9 @@
+
+
+
@@ -1224,6 +1235,7 @@
+
@@ -1418,7 +1430,6 @@
-
@@ -1656,6 +1667,11 @@
+
+
+
+
+
@@ -1673,6 +1689,8 @@
+
+
@@ -1704,6 +1722,7 @@
+
@@ -1742,6 +1761,7 @@
+
@@ -1772,6 +1792,9 @@
+
+
+
@@ -1782,6 +1805,7 @@
+
@@ -2724,6 +2748,10 @@
+
+
+
+
@@ -2778,4 +2806,9 @@
+
+
+
+
+
diff --git a/core/res/res/values/themes_device_defaults.xml b/core/res/res/values/themes_device_defaults.xml
index 0e98adea434a..b19858ef194d 100644
--- a/core/res/res/values/themes_device_defaults.xml
+++ b/core/res/res/values/themes_device_defaults.xml
@@ -49,7 +49,7 @@ easier.
Type.DeviceDefault.Etc (for example, {@code Widget.DeviceDefault.Button} and
{@code TextAppearance.DeviceDefault.Widget.PopupMenu.Large}).
-->
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Frame Alert
+
+
+
+This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.
+
+Link to Non-frame version.
+
+