diff options
65 files changed, 338 insertions, 178 deletions
diff --git a/core/java/android/widget/NumberPicker.java b/core/java/android/widget/NumberPicker.java index 2ac5a128598e..4a98f66c1696 100644 --- a/core/java/android/widget/NumberPicker.java +++ b/core/java/android/widget/NumberPicker.java @@ -2185,7 +2185,10 @@ public class NumberPicker extends LinearLayout { mScrollX + (mRight - mLeft), mTopSelectionDividerTop + mSelectionDividerHeight); case VIRTUAL_VIEW_ID_INPUT: - return createAccessibiltyNodeInfoForInputText(); + return createAccessibiltyNodeInfoForInputText(mScrollX, + mTopSelectionDividerTop + mSelectionDividerHeight, + mScrollX + (mRight - mLeft), + mBottomSelectionDividerBottom - mSelectionDividerHeight); case VIRTUAL_VIEW_ID_INCREMENT: return createAccessibilityNodeInfoForVirtualButton(VIRTUAL_VIEW_ID_INCREMENT, getVirtualIncrementButtonText(), mScrollX, @@ -2446,7 +2449,8 @@ public class NumberPicker extends LinearLayout { } } - private AccessibilityNodeInfo createAccessibiltyNodeInfoForInputText() { + private AccessibilityNodeInfo createAccessibiltyNodeInfoForInputText( + int left, int top, int right, int bottom) { AccessibilityNodeInfo info = mInputText.createAccessibilityNodeInfo(); info.setSource(NumberPicker.this, VIRTUAL_VIEW_ID_INPUT); if (mAccessibilityFocusedView != VIRTUAL_VIEW_ID_INPUT) { @@ -2455,6 +2459,15 @@ public class NumberPicker extends LinearLayout { if (mAccessibilityFocusedView == VIRTUAL_VIEW_ID_INPUT) { info.addAction(AccessibilityNodeInfo.ACTION_CLEAR_ACCESSIBILITY_FOCUS); } + Rect boundsInParent = mTempRect; + boundsInParent.set(left, top, right, bottom); + info.setVisibleToUser(isVisibleToUser(boundsInParent)); + info.setBoundsInParent(boundsInParent); + Rect boundsInScreen = boundsInParent; + int[] locationOnScreen = mTempArray; + getLocationOnScreen(locationOnScreen); + boundsInScreen.offset(locationOnScreen[0], locationOnScreen[1]); + info.setBoundsInScreen(boundsInScreen); return info; } diff --git a/core/java/com/android/internal/widget/PointerLocationView.java b/core/java/com/android/internal/widget/PointerLocationView.java index 34cdd935fd0d..f10a2e81f1d7 100644 --- a/core/java/com/android/internal/widget/PointerLocationView.java +++ b/core/java/com/android/internal/widget/PointerLocationView.java @@ -61,6 +61,13 @@ public class PointerLocationView extends View implements InputDeviceListener { private float mAltXVelocity; private float mAltYVelocity; + // Current bounding box, if any + private boolean mHasBoundingBox; + private float mBoundingLeft; + private float mBoundingTop; + private float mBoundingRight; + private float mBoundingBottom; + // Position estimator. private VelocityTracker.Estimator mEstimator = new VelocityTracker.Estimator(); private VelocityTracker.Estimator mAltEstimator = new VelocityTracker.Estimator(); @@ -388,6 +395,12 @@ public class PointerLocationView extends View implements InputDeviceListener { ps.mCoords.x + orientationVectorX * tiltScale, ps.mCoords.y + orientationVectorY * tiltScale, 3.0f, mPaint); + + // Draw the current bounding box + if (ps.mHasBoundingBox) { + canvas.drawRect(ps.mBoundingLeft, ps.mBoundingTop, + ps.mBoundingRight, ps.mBoundingBottom, mPaint); + } } } } @@ -400,20 +413,20 @@ public class PointerLocationView extends View implements InputDeviceListener { for (int i = 0; i < NI; i++) { final int id = event.getPointerId(i); event.getHistoricalPointerCoords(i, historyPos, mTempCoords); - logCoords(type, action, i, mTempCoords, id, - event.getToolType(i), event.getButtonState()); + logCoords(type, action, i, mTempCoords, id, event); } } for (int i = 0; i < NI; i++) { final int id = event.getPointerId(i); event.getPointerCoords(i, mTempCoords); - logCoords(type, action, i, mTempCoords, id, - event.getToolType(i), event.getButtonState()); + logCoords(type, action, i, mTempCoords, id, event); } } private void logCoords(String type, int action, int index, - MotionEvent.PointerCoords coords, int id, int toolType, int buttonState) { + MotionEvent.PointerCoords coords, int id, MotionEvent event) { + final int toolType = event.getToolType(index); + final int buttonState = event.getButtonState(); final String prefix; switch (action & MotionEvent.ACTION_MASK) { case MotionEvent.ACTION_DOWN: @@ -483,6 +496,12 @@ public class PointerLocationView extends View implements InputDeviceListener { .append(" Distance=").append(coords.getAxisValue(MotionEvent.AXIS_DISTANCE), 1) .append(" VScroll=").append(coords.getAxisValue(MotionEvent.AXIS_VSCROLL), 1) .append(" HScroll=").append(coords.getAxisValue(MotionEvent.AXIS_HSCROLL), 1) + .append(" BoundingBox=[(") + .append(event.getAxisValue(MotionEvent.AXIS_GENERIC_1), 3) + .append(", ").append(event.getAxisValue(MotionEvent.AXIS_GENERIC_2), 3).append(")") + .append(", (").append(event.getAxisValue(MotionEvent.AXIS_GENERIC_3), 3) + .append(", ").append(event.getAxisValue(MotionEvent.AXIS_GENERIC_4), 3) + .append(")]") .append(" ToolType=").append(MotionEvent.toolTypeToString(toolType)) .append(" ButtonState=").append(MotionEvent.buttonStateToString(buttonState)) .toString()); @@ -530,6 +549,8 @@ public class PointerLocationView extends View implements InputDeviceListener { final PointerState ps = mPointers.get(id); ps.mCurDown = true; + ps.mHasBoundingBox = (InputDevice.getDevice(event.getDeviceId()). + getMotionRange(MotionEvent.AXIS_GENERIC_1) != null); } final int NI = event.getPointerCount(); @@ -549,8 +570,7 @@ public class PointerLocationView extends View implements InputDeviceListener { final PointerCoords coords = ps != null ? ps.mCoords : mTempCoords; event.getHistoricalPointerCoords(i, historyPos, coords); if (mPrintCoords) { - logCoords("Pointer", action, i, coords, id, - event.getToolType(i), event.getButtonState()); + logCoords("Pointer", action, i, coords, id, event); } if (ps != null) { ps.addTrace(coords.x, coords.y); @@ -563,8 +583,7 @@ public class PointerLocationView extends View implements InputDeviceListener { final PointerCoords coords = ps != null ? ps.mCoords : mTempCoords; event.getPointerCoords(i, coords); if (mPrintCoords) { - logCoords("Pointer", action, i, coords, id, - event.getToolType(i), event.getButtonState()); + logCoords("Pointer", action, i, coords, id, event); } if (ps != null) { ps.addTrace(coords.x, coords.y); @@ -577,6 +596,13 @@ public class PointerLocationView extends View implements InputDeviceListener { mAltVelocity.getEstimator(id, ps.mAltEstimator); } ps.mToolType = event.getToolType(i); + + if (ps.mHasBoundingBox) { + ps.mBoundingLeft = event.getAxisValue(MotionEvent.AXIS_GENERIC_1, i); + ps.mBoundingTop = event.getAxisValue(MotionEvent.AXIS_GENERIC_2, i); + ps.mBoundingRight = event.getAxisValue(MotionEvent.AXIS_GENERIC_3, i); + ps.mBoundingBottom = event.getAxisValue(MotionEvent.AXIS_GENERIC_4, i); + } } } diff --git a/core/res/res/values-af/strings.xml b/core/res/res/values-af/strings.xml index 3714de34a381..73060421de24 100644 --- a/core/res/res/values-af/strings.xml +++ b/core/res/res/values-af/strings.xml @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"Stelsel"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Bluetooth-oudio"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"Draadlose skerm"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Klaar"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Media-uitvoer"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"Skandeer tans..."</string> diff --git a/core/res/res/values-am/strings.xml b/core/res/res/values-am/strings.xml index 8792fc03bcb3..eb58502f4473 100644 --- a/core/res/res/values-am/strings.xml +++ b/core/res/res/values-am/strings.xml @@ -352,7 +352,7 @@ <string name="permdesc_injectEvents" product="default" msgid="653128057572326253">"ለሌሎች መተግበሪያዎች የራሱን የግቤት ክስተቶችን( ቁልፍ መጫኖችን፣ የመሳሰሉት) ለማቅረብ ለመተግበሪያው ይፈቅዳሉ፡፡ ስልኩን ለመቆጣጠር ተንኮል አዘል መተግበሪያዎች ይሄንን ሊጠቀሙበት ይችላሉ፡፡"</string> <string name="permlab_readInputState" msgid="469428900041249234">"የሚተይቡትን እና የሚወስዱትን እርምጃ ይመዝግቡ"</string> <string name="permdesc_readInputState" msgid="8387754901688728043">"ከሌላ መተግበሪያ( ልክ እንደ የይለፍ ቃል መጫን) ጋር በምትገናኝበት ጊዜ እንኳን የተጫንካቸውን ቁልፎች ለማየት ለመተግበሪያው ይፈቅዳሉ፡፡ ለመደበኛ መተግበሪያዎች መቼም ቢሆን አያስፈልግም፡፡"</string> - <string name="permlab_bindInputMethod" msgid="3360064620230515776">"በግቤት ሜተድ ጠርዝ"</string> + <string name="permlab_bindInputMethod" msgid="3360064620230515776">"በግቤት ስልት ጠርዝ"</string> <string name="permdesc_bindInputMethod" msgid="3250440322807286331">"ያዡ ግቤት ስልቱን ወደ ከፍተኛ-ደረጃ በይነገጽ ለመጠረዝ ይፈቅዳሉ። ለመደበኛ ትግበራዎች በፍፁም አያስፈልግም።"</string> <string name="permlab_bindAccessibilityService" msgid="5357733942556031593">"ከአንድ የተደራሽነት አገልግሎት ጋር እሰር"</string> <string name="permdesc_bindAccessibilityService" msgid="7034615928609331368">"ያዢው ወደ የአንድ ተደራሽነት አገልግሎት ከፍተኛ-ደረጃ በይነገጽ እንዲያስር ይፈቅድለታል። ለመደበኛ መተግበሪያዎች መቼም ቢሆን ሊያስፈልግ አይገባም።"</string> @@ -1055,7 +1055,7 @@ <string name="textSelectionCABTitle" msgid="5236850394370820357">"የፅሁፍ ምርጫ"</string> <string name="addToDictionary" msgid="4352161534510057874">"ወደ መዝገበ ቃላት አክል"</string> <string name="deleteText" msgid="6979668428458199034">"ሰርዝ"</string> - <string name="inputMethod" msgid="1653630062304567879">"ግቤት ሜተድ"</string> + <string name="inputMethod" msgid="1653630062304567879">"ግቤት ስልት"</string> <string name="editTextMenuTitle" msgid="4909135564941815494">"የፅሁፍ እርምጃዎች"</string> <string name="low_internal_storage_view_title" msgid="5576272496365684834">"የማከማቻ ቦታ እያለቀ ነው"</string> <string name="low_internal_storage_view_text" msgid="6640505817617414371">"አንዳንድ የስርዓት ተግባራት ላይሰሩ ይችላሉ"</string> @@ -1273,7 +1273,7 @@ <string name="deny" msgid="2081879885755434506">"ያስተባብሉ"</string> <string name="permission_request_notification_title" msgid="6486759795926237907">"ፈቃድ ተጠይቋል"</string> <string name="permission_request_notification_with_subtitle" msgid="8530393139639560189">\n" ለ<xliff:g id="ACCOUNT">%s</xliff:g> መለያ ፈቃድ ተጠይቋል"</string> - <string name="input_method_binding_label" msgid="1283557179944992649">"ግቤት ሜተድ"</string> + <string name="input_method_binding_label" msgid="1283557179944992649">"ግቤት ስልት"</string> <string name="sync_binding_label" msgid="3687969138375092423">"አስምር"</string> <string name="accessibility_binding_label" msgid="4148120742096474641">"ተደራሽነት"</string> <string name="wallpaper_binding_label" msgid="1240087844304687662">"ልጣፍ"</string> @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"ስርዓት"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"የብሉቱዝ ድምጽ"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"ገመድ አልባ ማሳያ"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"ተከናውኗል"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"የሚዲያ ውጽዓት"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"በመቃኘት ላይ..."</string> diff --git a/core/res/res/values-ar/strings.xml b/core/res/res/values-ar/strings.xml index e92359350452..f55450777564 100644 --- a/core/res/res/values-ar/strings.xml +++ b/core/res/res/values-ar/strings.xml @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"النظام"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"صوت بلوتوث"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"عرض شاشة لاسلكي"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"تم"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"المنفذ الإعلامي"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"جارٍ الفحص..."</string> diff --git a/core/res/res/values-be/strings.xml b/core/res/res/values-be/strings.xml index 9d50052e32fe..10e3d458c2bb 100644 --- a/core/res/res/values-be/strings.xml +++ b/core/res/res/values-be/strings.xml @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"Сістэма"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Bluetooth-аўдыё"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"Бесправадны дысплей"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Гатова"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Мультымедыйны выхад"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"Сканiраванне..."</string> diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml index 2cd505870e8d..11c97c2c45f5 100644 --- a/core/res/res/values-bg/strings.xml +++ b/core/res/res/values-bg/strings.xml @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"Система"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Звук през Bluetooth"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"Безжичен дисплей"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Готово"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Изходяща мултимедия"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"Сканира се..."</string> diff --git a/core/res/res/values-ca/strings.xml b/core/res/res/values-ca/strings.xml index 35fff687d669..21f43570cd74 100644 --- a/core/res/res/values-ca/strings.xml +++ b/core/res/res/values-ca/strings.xml @@ -1216,7 +1216,7 @@ <string name="extmedia_format_button_format" msgid="4131064560127478695">"Formata"</string> <string name="adb_active_notification_title" msgid="6729044778949189918">"Depuració USB activada"</string> <string name="adb_active_notification_message" msgid="1016654627626476142">"Toca per desactivar la depuració USB"</string> - <string name="select_input_method" msgid="4653387336791222978">"Selecciona un mètodes d\'entrada"</string> + <string name="select_input_method" msgid="4653387336791222978">"Selecciona un mètode d\'entrada"</string> <string name="configure_input_methods" msgid="9091652157722495116">"Configura els mètodes d\'entrada"</string> <string name="use_physical_keyboard" msgid="6203112478095117625">"Teclat físic"</string> <string name="hardware" msgid="7517821086888990278">"Maquinari"</string> @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"Sistema"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Àudio per Bluetooth"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"Pantalla sense fil"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Fet"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Sortida de contingut multimèdia"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"S\'està explorant..."</string> diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml index 899c89cf6781..d1d83a09a01b 100644 --- a/core/res/res/values-cs/strings.xml +++ b/core/res/res/values-cs/strings.xml @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"Systém"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Bluetooth Audio"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"Bezdrátový displej"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Hotovo"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Výstup médií"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"Vyhledávání…"</string> diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml index b1855a78e486..3c6818bac21f 100644 --- a/core/res/res/values-da/strings.xml +++ b/core/res/res/values-da/strings.xml @@ -1084,7 +1084,7 @@ <string name="anr_application_process" msgid="8941757607340481057">"<xliff:g id="APPLICATION">%1$s</xliff:g> svarer ikke. Vil du lukke den?"</string> <string name="anr_process" msgid="6513209874880517125">"Processen <xliff:g id="PROCESS">%1$s</xliff:g> svarer ikke."\n\n"Vil du lukke den?"</string> <string name="force_close" msgid="8346072094521265605">"OK"</string> - <string name="report" msgid="4060218260984795706">"Rapporter"</string> + <string name="report" msgid="4060218260984795706">"Rapportér"</string> <string name="wait" msgid="7147118217226317732">"Vent"</string> <string name="webpage_unresponsive" msgid="3272758351138122503">"Siden svarer ikke."\n\n"Vil du lukke den?"</string> <string name="launch_warning_title" msgid="1547997780506713581">"Appen er omdirigeret"</string> @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"System"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Bluetooth-lyd"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"Trådløs skærm"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Udfør"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Medieudgang"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"Søger..."</string> diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings.xml index 62dc0819a08e..0bed8256b0d5 100644 --- a/core/res/res/values-de/strings.xml +++ b/core/res/res/values-de/strings.xml @@ -182,7 +182,7 @@ <string name="permgroupdesc_bluetoothNetwork" msgid="5625288577164282391">"Auf Geräte und Netzwerke über Bluetooth zugreifen"</string> <string name="permgrouplab_audioSettings" msgid="8329261670151871235">"Audioeinstellungen"</string> <string name="permgroupdesc_audioSettings" msgid="2641515403347568130">"Audioeinstellungen ändern"</string> - <string name="permgrouplab_affectsBattery" msgid="6209246653424798033">"Wirkt sich auf den Akku aus"</string> + <string name="permgrouplab_affectsBattery" msgid="6209246653424798033">"Auswirkungen auf den Akku"</string> <string name="permgroupdesc_affectsBattery" msgid="6441275320638916947">"Funktionen nutzen, die den Akku schnell entladen"</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalender"</string> <string name="permgroupdesc_calendar" msgid="5777534316982184416">"Direkter Zugriff auf Kalender und Termine"</string> @@ -326,7 +326,7 @@ <string name="permlab_setAlwaysFinish" msgid="550958507798796965">"Apps im Hintergrund schließen"</string> <string name="permdesc_setAlwaysFinish" msgid="7471310652868841499">"Überlässt der App die Entscheidung, ob Aktivitäten immer beendet werden, sobald sie in den Hintergrund rücken. Wird nie für normale Apps benötigt."</string> <string name="permlab_batteryStats" msgid="2789610673514103364">"Akkudaten lesen"</string> - <string name="permdesc_batteryStats" msgid="5897346582882915114">"Ermöglicht einer Anwendung, den momentan niedrigen Akkustand zu erkennen. Unter Umständen erhält die App detaillierte Informationen darüber, welche Apps Sie verwenden."</string> + <string name="permdesc_batteryStats" msgid="5897346582882915114">"Ermöglicht der App, den momentan niedrigen Akkustand zu erkennen. Unter Umständen erhält die App detaillierte Informationen darüber, welche Apps Sie verwenden."</string> <string name="permlab_updateBatteryStats" msgid="3719689764536379557">"Akkudaten ändern"</string> <string name="permdesc_updateBatteryStats" msgid="6862817857178025002">"Ermöglicht der App, erfasste Akkudaten zu ändern. Nicht für normale Apps vorgesehen."</string> <string name="permlab_getAppOpsStats" msgid="1508779687436585744">"App-Vorgangsstatistiken abrufen"</string> @@ -421,7 +421,7 @@ <string name="permlab_readContacts" msgid="8348481131899886131">"Kontakte lesen"</string> <string name="permdesc_readContacts" product="tablet" msgid="5294866856941149639">"Ermöglicht der App, Daten zu den auf Ihrem Tablet gespeicherten Kontakten zu lesen, einschließlich der Häufigkeit, mit der Sie bestimmte Personen angerufen, diesen E-Mails gesendet oder anderweitig mit ihnen kommuniziert haben. Die Berechtigung erlaubt Apps, Ihre Kontaktdaten zu speichern, und schädliche Apps können Kontaktdaten ohne Ihr Wissen weiterleiten."</string> <string name="permdesc_readContacts" product="default" msgid="8440654152457300662">"Ermöglicht der App, Daten zu den auf Ihrem Telefon gespeicherten Kontakten zu lesen, einschließlich der Häufigkeit, mit der Sie bestimmte Personen angerufen, diesen E-Mails gesendet oder anderweitig mit ihnen kommuniziert haben. Die Berechtigung erlaubt Apps, Ihre Kontaktdaten zu speichern, und schädliche Apps können Kontaktdaten ohne Ihr Wissen weiterleiten."</string> - <string name="permlab_writeContacts" msgid="5107492086416793544">"Meine Kontakte ändern"</string> + <string name="permlab_writeContacts" msgid="5107492086416793544">"Kontakte ändern"</string> <string name="permdesc_writeContacts" product="tablet" msgid="897243932521953602">"Ermöglicht der App, Daten zu Kontakten, die auf Ihrem Tablet gespeichert sind, zu ändern, einschließlich der Häufigkeit, mit der Sie bestimmte Kontakte angerufen, diesen E-Mails gesendet oder anderweitig mit ihnen kommuniziert haben. Die Berechtigung erlaubt Apps, Kontaktdaten zu löschen."</string> <string name="permdesc_writeContacts" product="default" msgid="589869224625163558">"Ermöglicht der App, Daten zu Kontakten, die auf Ihrem Telefon gespeichert sind, zu ändern, einschließlich der Häufigkeit, mit der Sie bestimmte Kontakte angerufen, diesen E-Mails gesendet oder anderweitig mit ihnen kommuniziert haben. Die Berechtigung erlaubt Apps, Kontaktdaten zu löschen."</string> <string name="permlab_readCallLog" msgid="3478133184624102739">"Anrufliste lesen"</string> @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"System"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Bluetooth-Audio"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"Kabellose Übertragung"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Fertig"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Medienausgabe"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"Wird gescannt..."</string> diff --git a/core/res/res/values-el/strings.xml b/core/res/res/values-el/strings.xml index 899579533e28..3d275684825b 100644 --- a/core/res/res/values-el/strings.xml +++ b/core/res/res/values-el/strings.xml @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"Σύστημα"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Ήχος Bluetooth"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"Ασύρματη οθόνη"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Τέλος"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Έξοδος μέσων"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"Σάρωση…"</string> diff --git a/core/res/res/values-en-rGB/strings.xml b/core/res/res/values-en-rGB/strings.xml index fe4f1bb6941b..95dec80bb40a 100644 --- a/core/res/res/values-en-rGB/strings.xml +++ b/core/res/res/values-en-rGB/strings.xml @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"System"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Bluetooth audio"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"Wireless display"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Done"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Media output"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"Scanning..."</string> diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml index 7bb97ddc18ec..e8922166ce5c 100644 --- a/core/res/res/values-es-rUS/strings.xml +++ b/core/res/res/values-es-rUS/strings.xml @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"Sistema"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Audio Bluetooth"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"Pantalla inalámbrica"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Listo"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Salida multimedia"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"Examinando..."</string> diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml index 22f8bda92cae..0ab7fca9cb74 100644 --- a/core/res/res/values-es/strings.xml +++ b/core/res/res/values-es/strings.xml @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"Sistema"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Audio Bluetooth"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"Pantalla inalámbrica"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Fin"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Salida multimedia"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"Analizando..."</string> diff --git a/core/res/res/values-et/strings.xml b/core/res/res/values-et/strings.xml index db3cdef4fd73..013a2eb29b28 100644 --- a/core/res/res/values-et/strings.xml +++ b/core/res/res/values-et/strings.xml @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"Süsteem"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Bluetooth-heli"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"Juhtmeta ekraan"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Valmis"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Meediaväljund"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"Skaneering ..."</string> diff --git a/core/res/res/values-fa/strings.xml b/core/res/res/values-fa/strings.xml index c51446141f29..97b430eda240 100644 --- a/core/res/res/values-fa/strings.xml +++ b/core/res/res/values-fa/strings.xml @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"سیستم"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"بلوتوثهای صوتی"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"صفحه نمایش بیسیم"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"انجام شد"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"خروجی رسانه"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"در حال اسکن کردن…"</string> diff --git a/core/res/res/values-fi/strings.xml b/core/res/res/values-fi/strings.xml index 71a82b7c9898..25336b0036ca 100644 --- a/core/res/res/values-fi/strings.xml +++ b/core/res/res/values-fi/strings.xml @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"Järjestelmä"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Bluetooth-ääni"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"Langaton näyttö"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Valmis"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Median äänentoisto"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"Etsitään..."</string> diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml index ff37b724f742..88033d2292bd 100644 --- a/core/res/res/values-fr/strings.xml +++ b/core/res/res/values-fr/strings.xml @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"Système"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Audio Bluetooth"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"Affichage sans fil"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"OK"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Sortie multimédia"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"Analyse en cours..."</string> diff --git a/core/res/res/values-hi/strings.xml b/core/res/res/values-hi/strings.xml index 18fba655ced1..fa09220a78d7 100644 --- a/core/res/res/values-hi/strings.xml +++ b/core/res/res/values-hi/strings.xml @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"सिस्टम"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Bluetooth ऑडियो"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"वायरलेस प्रदर्शन"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"पूर्ण"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"मीडिया आउटपुट"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"स्कैन कर रहा है..."</string> diff --git a/core/res/res/values-hr/strings.xml b/core/res/res/values-hr/strings.xml index fd5b51edacb2..ef9b50a06db2 100644 --- a/core/res/res/values-hr/strings.xml +++ b/core/res/res/values-hr/strings.xml @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"Sustav"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Bluetooth zvuk"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"Bežični prikaz"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Gotovo"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Medijski izlaz"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"Skeniranje..."</string> diff --git a/core/res/res/values-hu/strings.xml b/core/res/res/values-hu/strings.xml index d12f070b1ec8..4c8760413e66 100644 --- a/core/res/res/values-hu/strings.xml +++ b/core/res/res/values-hu/strings.xml @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"Rendszer"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Bluetooth hang"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"Vezeték nélküli kijelző"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Kész"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Médiakimenet"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"Keresés..."</string> diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml index 110289a8d6f2..39106adf27aa 100644 --- a/core/res/res/values-in/strings.xml +++ b/core/res/res/values-in/strings.xml @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"Sistem"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Audio Bluetooth"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"Layar nirkabel"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Selesai"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Keluaran media"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"Memindai..."</string> diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml index bc2f697d3d2b..14e346fa18e9 100644 --- a/core/res/res/values-it/strings.xml +++ b/core/res/res/values-it/strings.xml @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"Sistema"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Audio Bluetooth"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"Visualizzazione wireless"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Fine"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Uscita media"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"Ricerca in corso..."</string> diff --git a/core/res/res/values-iw/strings.xml b/core/res/res/values-iw/strings.xml index acbbadbc18c1..cc7000563d47 100644 --- a/core/res/res/values-iw/strings.xml +++ b/core/res/res/values-iw/strings.xml @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"מערכת"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"אודיו Bluetooth"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"צג אלחוטי"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"סיום"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"פלט מדיה"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"סורק..."</string> diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml index a283f303fc2f..99778a0c8772 100644 --- a/core/res/res/values-ja/strings.xml +++ b/core/res/res/values-ja/strings.xml @@ -600,7 +600,7 @@ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"登録したフィードの書き込み"</string> <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"現在同期されているフィードの変更をアプリに許可します。この許可を悪意のあるアプリに利用されると、同期されたフィードが変更される恐れがあります。"</string> <string name="permlab_readDictionary" msgid="4107101525746035718">"辞書に追加された語句の読み取り"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"ユーザー辞書に登録されているすべての語句や名前を読み取ることをアプリに許可します。"</string> + <string name="permdesc_readDictionary" msgid="659614600338904243">"単語リストに登録されているすべての語句や名前を読み取ることをアプリに許可します。"</string> <string name="permlab_writeDictionary" msgid="2183110402314441106">"単語リストへの語句の追加"</string> <string name="permdesc_writeDictionary" msgid="8185385716255065291">"単語リストに新しい語句を書き込むことをアプリに許可します。"</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="8235341515605559677">"保護されたストレージへのテストアクセス"</string> @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"システム"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Bluetooth音声"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"ワイヤレスディスプレイ"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"完了"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"メディア出力"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"スキャン中..."</string> diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml index b79367d84086..a97bf9b19b17 100644 --- a/core/res/res/values-ko/strings.xml +++ b/core/res/res/values-ko/strings.xml @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"시스템"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"블루투스 오디오"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"무선 디스플레이"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"완료"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"미디어 출력"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"검색 중..."</string> diff --git a/core/res/res/values-lt/strings.xml b/core/res/res/values-lt/strings.xml index 1132371eae8b..2bde7484b83d 100644 --- a/core/res/res/values-lt/strings.xml +++ b/core/res/res/values-lt/strings.xml @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"Sistema"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"„Bluetooth“ garsas"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"Belaidis rodymas"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Atlikta"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Medijos išvestis"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"Nuskaitoma..."</string> diff --git a/core/res/res/values-lv/strings.xml b/core/res/res/values-lv/strings.xml index 569fa7339a72..4cca12373812 100644 --- a/core/res/res/values-lv/strings.xml +++ b/core/res/res/values-lv/strings.xml @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"Sistēma"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Bluetooth audio"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"Bezvadu attēlošana"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Gatavs"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Multivides izeja"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"Notiek meklēšana..."</string> diff --git a/core/res/res/values-ms/strings.xml b/core/res/res/values-ms/strings.xml index 73e5d682a6bd..06548c600a88 100644 --- a/core/res/res/values-ms/strings.xml +++ b/core/res/res/values-ms/strings.xml @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"Sistem"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Audio Bluetooth"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"Paparan wayarles"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Selesai"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Output media"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"Mengimbas…"</string> diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml index 6a79a15a8f49..b339738eaf2e 100644 --- a/core/res/res/values-nb/strings.xml +++ b/core/res/res/values-nb/strings.xml @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"System"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Bluetooth-lyd"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"Trådløs skjerm"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Fullført"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Medieutgang"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"Skanner ..."</string> diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml index 292350003a7d..358dfe3f069e 100644 --- a/core/res/res/values-nl/strings.xml +++ b/core/res/res/values-nl/strings.xml @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"Systeem"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Bluetooth-audio"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"Draadloze display"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Gereed"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Media-uitvoer"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"Scannen..."</string> diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml index 7b42510aa5f3..57cf8fb6b3b3 100644 --- a/core/res/res/values-pl/strings.xml +++ b/core/res/res/values-pl/strings.xml @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"System"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Dźwięk Bluetooth"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"Wyświetlacz bezprzewodowy"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Gotowe"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Wyjście multimediów"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"Skanuję..."</string> diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml index 637040b05168..32d3692e289e 100644 --- a/core/res/res/values-pt-rPT/strings.xml +++ b/core/res/res/values-pt-rPT/strings.xml @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"Sistema"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Áudio Bluetooth"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"Visualização sem fios"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Concluído"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Saída de som multimédia"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"A procurar..."</string> diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml index f20081d23003..79b0fcdbb4a7 100644 --- a/core/res/res/values-pt/strings.xml +++ b/core/res/res/values-pt/strings.xml @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"Sistema"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Áudio Bluetooth"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"Display sem fio"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Concluído"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Saída de mídia"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"Verificando..."</string> diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml index c6c3f5b7f03d..4694e15e3541 100644 --- a/core/res/res/values-ro/strings.xml +++ b/core/res/res/values-ro/strings.xml @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"Sistem"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Audio Bluetooth"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"Ecran wireless"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Terminat"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Rezultate media"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"Se scanează..."</string> diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml index 9fa685a7e09b..1b9b7504a038 100644 --- a/core/res/res/values-ru/strings.xml +++ b/core/res/res/values-ru/strings.xml @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"Система"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Воспроизведение звука через Bluetooth"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"Беспроводной монитор"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Готово"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Перенаправлять поток мультимедиа"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"Сканирование..."</string> diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml index 88b0ad5d9ebd..03e18be7337a 100644 --- a/core/res/res/values-sk/strings.xml +++ b/core/res/res/values-sk/strings.xml @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"Systém"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Bluetooth audio"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"Bezdrôtový displej"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Hotovo"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Výstup médií"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"Prebieha vyhľadávanie..."</string> diff --git a/core/res/res/values-sl/strings.xml b/core/res/res/values-sl/strings.xml index 705aeb4fde8b..80cb710befe1 100644 --- a/core/res/res/values-sl/strings.xml +++ b/core/res/res/values-sl/strings.xml @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"Sistem"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Zvok prek Bluetootha"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"Brezžični prikaz"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Končano"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Izhod predstavnosti"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"Pregledovanje ..."</string> diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml index 507009db1f16..0965b466abea 100644 --- a/core/res/res/values-sr/strings.xml +++ b/core/res/res/values-sr/strings.xml @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"Систем"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Bluetooth аудио"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"Бежични екран"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Готово"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Излаз медија"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"Скенирање..."</string> diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml index 442fb6cbc73d..0df55b98ebdb 100644 --- a/core/res/res/values-sv/strings.xml +++ b/core/res/res/values-sv/strings.xml @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"System"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Bluetooth-ljud"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"Trådlös skärm"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Klar"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Medieuppspelning"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"Skannar…"</string> diff --git a/core/res/res/values-sw/strings.xml b/core/res/res/values-sw/strings.xml index 7fb89fa568ba..2a5a60e31014 100644 --- a/core/res/res/values-sw/strings.xml +++ b/core/res/res/values-sw/strings.xml @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"Mfumo"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Sauti ya Bluetooth"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"Uonyeshaji pasiwaya"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Kwisha"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Towe la midia"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"Inatambaza..."</string> diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml index a7e425cc8720..3010f0d5e30a 100644 --- a/core/res/res/values-th/strings.xml +++ b/core/res/res/values-th/strings.xml @@ -571,7 +571,7 @@ <string name="permdesc_accessWifiState" msgid="5002798077387803726">"อนุญาตให้แอปพลิเคชันดูข้อมูลเกี่ยวกับเครือข่าย WiFi เช่น เปิดใช้งาน WiFi อยู่หรือไม่ และชื่อของอุปกรณ์ WiFi ที่เชื่อมต่อ"</string> <string name="permlab_changeWifiState" msgid="6550641188749128035">"เชื่อมต่อและหยุดเชื่อมต่อ WiFi"</string> <string name="permdesc_changeWifiState" msgid="7137950297386127533">"อนุญาตให้แอปพลิเคชันเชื่อมต่อและหยุดเชื่อมต่อจากจุดเข้าใช้งาน WiFi และเปลี่ยนแปลงการกำหนดค่าอุปกรณ์ำสำหรับเครือข่าย WiFi"</string> - <string name="permlab_changeWifiMulticastState" msgid="1368253871483254784">"อนุญาตให้รับมัลติแคสต์ผ่าน Wi-Fi"</string> + <string name="permlab_changeWifiMulticastState" msgid="1368253871483254784">"อนุญาตให้รับมัลติแคสต์ผ่าน WiFi"</string> <string name="permdesc_changeWifiMulticastState" product="tablet" msgid="7969774021256336548">"อนุญาตให้แอปพลิเคชันรับแพ็คเก็ตที่ส่งไปยังทุกอุปกรณ์บนเครือข่าย WiFi โดยใช้ที่อยู่มัลติแคสต์ ไม่ใช่เพียงแท็บเล็ตของคุณเท่านั้น ซึ่งจะใช้พลังงานมากกว่าในโหมดที่ไม่ใช่มัลติแคสต์"</string> <string name="permdesc_changeWifiMulticastState" product="default" msgid="6851949706025349926">"อนุญาตให้แอปพลิเคชันรับแพ็คเก็ตที่ส่งไปยังทุกอุปกรณ์บนเครือข่าย WiFi โดยใช้ที่อยู่มัลติแคสต์ ไม่ใช่เพียงโทรศัพท์ของคุณเท่านั้น ซึ่งจะใช้พลังงานมากกว่าในโหมดที่ไม่ใช่มัลติแคสต์"</string> <string name="permlab_bluetoothAdmin" msgid="6006967373935926659">"เข้าถึงการตั้งค่าบลูทูธ"</string> @@ -1128,23 +1128,23 @@ <string name="ringtone_picker_title" msgid="3515143939175119094">"เสียงเรียกเข้า"</string> <string name="ringtone_unknown" msgid="5477919988701784788">"ไม่ทราบเสียงเรียกเข้า"</string> <plurals name="wifi_available"> - <item quantity="one" msgid="6654123987418168693">"เครือข่าย Wi-Fi ที่ใช้งานได้"</item> - <item quantity="other" msgid="4192424489168397386">"เครือข่าย Wi-Fi ใช้งานได้"</item> + <item quantity="one" msgid="6654123987418168693">"เครือข่าย WiFi ที่ใช้งานได้"</item> + <item quantity="other" msgid="4192424489168397386">"เครือข่าย WiFi ใช้งานได้"</item> </plurals> <plurals name="wifi_available_detailed"> - <item quantity="one" msgid="1634101450343277345">"เปิดเครือข่าย Wi-Fi ที่ใช้งานได้"</item> - <item quantity="other" msgid="7915895323644292768">"เปิดเครือข่าย Wi-Fi ที่ใช้งานได้"</item> + <item quantity="one" msgid="1634101450343277345">"เปิดเครือข่าย WiFi ที่ใช้งานได้"</item> + <item quantity="other" msgid="7915895323644292768">"เปิดเครือข่าย WiFi ที่ใช้งานได้"</item> </plurals> <string name="wifi_available_sign_in" msgid="4029489716605255386">"ลงชื่อเข้าใช้เครือข่าย WiFi"</string> <string name="network_available_sign_in" msgid="8495155593358054676">"ลงชื่อเข้าใช้เครือข่าย"</string> <!-- no translation found for network_available_sign_in_detailed (8000081941447976118) --> <skip /> - <string name="wifi_watchdog_network_disabled" msgid="7904214231651546347">"ไม่สามารถเชื่อมต่อ Wi-Fi"</string> + <string name="wifi_watchdog_network_disabled" msgid="7904214231651546347">"ไม่สามารถเชื่อมต่อ WiFi"</string> <string name="wifi_watchdog_network_disabled_detailed" msgid="5548780776418332675">" มีสัญญาณอินเทอร์เน็ตไม่ดี"</string> - <string name="wifi_p2p_dialog_title" msgid="97611782659324517">"Wi-Fi Direct"</string> + <string name="wifi_p2p_dialog_title" msgid="97611782659324517">"WiFi Direct"</string> <string name="wifi_p2p_turnon_message" msgid="2909250942299627244">"เริ่มการทำงาน WiFi Direct ซึ่งจะเป็นการปิดการทำงาน WiFi ไคลเอ็นต์/ฮอตสปอต"</string> <string name="wifi_p2p_failed_message" msgid="3763669677935623084">"ไม่สามารถเริ่ม WiFi Direct ได้"</string> - <string name="wifi_p2p_enabled_notification_title" msgid="2068321881673734886">"เปิด Wi-Fi Direct อยู่"</string> + <string name="wifi_p2p_enabled_notification_title" msgid="2068321881673734886">"เปิด WiFi Direct อยู่"</string> <string name="wifi_p2p_enabled_notification_message" msgid="1638949953993894335">"แตะเพื่อตั้งค่า"</string> <string name="accept" msgid="1645267259272829559">"ยอมรับ"</string> <string name="decline" msgid="2112225451706137894">"ปฏิเสธ"</string> @@ -1154,8 +1154,8 @@ <string name="wifi_p2p_to_message" msgid="248968974522044099">"ถึง:"</string> <string name="wifi_p2p_enter_pin_message" msgid="5920929550367828970">"พิมพ์ PIN ที่ต้องการ:"</string> <string name="wifi_p2p_show_pin_message" msgid="8530563323880921094">"PIN:"</string> - <string name="wifi_p2p_frequency_conflict_message" product="tablet" msgid="8012981257742232475">"แท็บเล็ตนี้จะยกเลิกการเชื่อมต่อกับ Wi-Fi ชั่วคราวในขณะที่เชื่อมต่อกับ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string> - <string name="wifi_p2p_frequency_conflict_message" product="default" msgid="7363907213787469151">"โทรศัพท์จะยกเลิกการเชื่อมต่อกับ Wi-Fi ชั่วคราวในขณะที่เชื่อมต่อกับ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string> + <string name="wifi_p2p_frequency_conflict_message" product="tablet" msgid="8012981257742232475">"แท็บเล็ตนี้จะยกเลิกการเชื่อมต่อกับ WiFi ชั่วคราวในขณะที่เชื่อมต่อกับ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string> + <string name="wifi_p2p_frequency_conflict_message" product="default" msgid="7363907213787469151">"โทรศัพท์จะยกเลิกการเชื่อมต่อกับ WiFi ชั่วคราวในขณะที่เชื่อมต่อกับ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string> <string name="select_character" msgid="3365550120617701745">"ใส่อักขระ"</string> <string name="sms_control_title" msgid="7296612781128917719">"กำลังส่งข้อความ SMS"</string> <string name="sms_control_message" msgid="3867899169651496433">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> กำลังส่งข้อความ SMS จำนวนมาก คุณต้องการอนุญาตให้แอปพลิเคชันนี้ส่งข้อความต่อหรือไม่"</string> @@ -1393,12 +1393,12 @@ <string name="data_usage_3g_limit_title" msgid="7093334419518706686">"ปิดใช้งานข้อมูล 2G-3G"</string> <string name="data_usage_4g_limit_title" msgid="7636489436819470761">"ปิดใช้งานข้อมูล 4G"</string> <string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"ปิดใช้งานข้อมูลมือถือ"</string> - <string name="data_usage_wifi_limit_title" msgid="8992154736441284865">"ปิดใช้งานข้อมูล Wi-Fi แล้ว"</string> + <string name="data_usage_wifi_limit_title" msgid="8992154736441284865">"ปิดใช้งานข้อมูล WiFi แล้ว"</string> <string name="data_usage_limit_body" msgid="3317964706973601386">"แตะเพื่อเปิดใช้งาน"</string> <string name="data_usage_3g_limit_snoozed_title" msgid="7026739121138005231">"เกินขีดจำกัดข้อมูล 2G - 3G"</string> <string name="data_usage_4g_limit_snoozed_title" msgid="1106562779311209039">"เกินขีดจำกัดของข้อมูล 4G"</string> <string name="data_usage_mobile_limit_snoozed_title" msgid="279240572165412168">"เกินขีดจำกัดข้อมูลมือถือ"</string> - <string name="data_usage_wifi_limit_snoozed_title" msgid="8743856006384825974">"เกินขีดจำกัดข้อมูล Wi-Fi แล้ว"</string> + <string name="data_usage_wifi_limit_snoozed_title" msgid="8743856006384825974">"เกินขีดจำกัดข้อมูล WiFi แล้ว"</string> <string name="data_usage_limit_snoozed_body" msgid="7035490278298441767">"<xliff:g id="SIZE">%s</xliff:g> เกินขีดจำกัดที่ระบุไว้"</string> <string name="data_usage_restricted_title" msgid="5965157361036321914">"จำกัดข้อมูลแบ็กกราวด์"</string> <string name="data_usage_restricted_body" msgid="6741521330997452990">"แตะเพื่อนำข้อจำกัดออก"</string> @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"ระบบ"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"เสียงบลูทูธ"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"การแสดงผลแบบไร้สาย"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"เสร็จสิ้น"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"เอาต์พุตสื่อ"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"กำลังสแกน..."</string> diff --git a/core/res/res/values-tl/strings.xml b/core/res/res/values-tl/strings.xml index cf0979f4796d..c64de9ad1e7b 100644 --- a/core/res/res/values-tl/strings.xml +++ b/core/res/res/values-tl/strings.xml @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"System"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Audio sa Bluetooth"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"Wireless display"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Tapos na"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Output ng media"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"Nagsa-scan..."</string> diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml index d46ecce85652..8a3d85a78068 100644 --- a/core/res/res/values-tr/strings.xml +++ b/core/res/res/values-tr/strings.xml @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"Sistem"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Bluetooth ses"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"Kablosuz ekran"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Tamamlandı"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Medya çıkışı"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"Taranıyor..."</string> diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml index 15d293e84978..8a89a20b83e1 100644 --- a/core/res/res/values-uk/strings.xml +++ b/core/res/res/values-uk/strings.xml @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"Система"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Аудіо Bluetooth"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"Бездротовий екран"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Готово"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Вивід медіа-даних"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"Сканування..."</string> diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml index 4a721a84ffe5..57fe95afeba0 100644 --- a/core/res/res/values-vi/strings.xml +++ b/core/res/res/values-vi/strings.xml @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"Hệ thống"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Âm thanh Bluetooth"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"Hiển thị không dây"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Xong"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Đầu ra phương tiện"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"Đang quét..."</string> diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml index 7b50daa52ed2..b13196245b1e 100644 --- a/core/res/res/values-zh-rCN/strings.xml +++ b/core/res/res/values-zh-rCN/strings.xml @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"系统"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"蓝牙音频"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"无线显示"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"完成"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"媒体输出线路"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"正在扫描..."</string> diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml index 9489c9b243ab..6c3991a4f96d 100644 --- a/core/res/res/values-zh-rTW/strings.xml +++ b/core/res/res/values-zh-rTW/strings.xml @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"系統"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"藍牙音訊"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"無線螢幕分享"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"完成"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"媒體輸出"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"掃描中..."</string> diff --git a/core/res/res/values-zu/strings.xml b/core/res/res/values-zu/strings.xml index 8c68d8b49c3e..f2e6d5e9b71a 100644 --- a/core/res/res/values-zu/strings.xml +++ b/core/res/res/values-zu/strings.xml @@ -1433,8 +1433,7 @@ <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"Isistimu"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Umsindo we-Bluetooth"</string> - <!-- no translation found for wireless_display_route_description (9070346425023979651) --> - <skip /> + <string name="wireless_display_route_description" msgid="9070346425023979651">"Ukubonisa okungenazintambo"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Qedile"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Okukhiphayo kwemidiya"</string> <string name="media_route_status_scanning" msgid="7279908761758293783">"Iyaskena..."</string> diff --git a/docs/html/google/google_toc.cs b/docs/html/google/google_toc.cs index 00246e28cd28..13d3eb38647f 100644 --- a/docs/html/google/google_toc.cs +++ b/docs/html/google/google_toc.cs @@ -126,9 +126,18 @@ <li><a href="<?cs var:toroot?>google/gcm/gcm.html"> <span class="en">Architectural Overview</span></a> </li> + <li><a href="<?cs var:toroot?>google/gcm/ccs.html"> + <span class="en">Cloud Connection Server</span></a> + </li> + <li><a href="<?cs var:toroot?>google/gcm/notifications.html"> + <span class="en">User Notifications</span></a> + </li> <li><a href="<?cs var:toroot?>google/gcm/demo.html"> <span class="en">Demo App Tutorial</span></a> </li> + <li><a href="<?cs var:toroot?>google/gcm/helper.html"> + <span class="en">Using the Helper Libraries</span></a> + </li> <li><a href="<?cs var:toroot?>google/gcm/adv.html"> <span class="en">Advanced Topics</span></a> </li> diff --git a/docs/html/tools/extras/support-library.jd b/docs/html/tools/extras/support-library.jd index 0ec6592f08bf..9cc0361d284f 100644 --- a/docs/html/tools/extras/support-library.jd +++ b/docs/html/tools/extras/support-library.jd @@ -69,6 +69,8 @@ the Support Package, as denoted by revision number.</p> <li>Added {@link android.support.v4.widget.ScrollerCompat} to provide {@link android.widget.Scroller} and {@link android.widget.OverScroller} compatibility support. </li> + <li>Added {@link android.support.v4.content.FileProvider} to allow sharing of private + files between applications.</li> <li>Updated {@link android.support.v4.view.ViewPager} to throw an exception if the associated {@link android.support.v4.view.PagerAdapter} class is modified without a call to {@link android.support.v4.view.PagerAdapter#notifyDataSetChanged notifyDataSetChanged()}. diff --git a/libs/hwui/DisplayList.cpp b/libs/hwui/DisplayList.cpp index c11741c12638..648da9cb378d 100644 --- a/libs/hwui/DisplayList.cpp +++ b/libs/hwui/DisplayList.cpp @@ -501,8 +501,10 @@ void DisplayList::iterate(OpenGLRenderer& renderer, T& handler, const int level) setViewProperties<T>(renderer, handler, level + 1); if (mClipToBounds && renderer.quickRejectNoScissor(0, 0, mWidth, mHeight)) { - DISPLAY_LIST_LOGD("%*sRestoreToCount %d", level * 2, "", restoreTo); + DISPLAY_LIST_LOGD("%*sRestoreToCount %d", (level + 1) * 2, "", restoreTo); handler(mRestoreToCountOp->reinit(restoreTo), PROPERTY_SAVECOUNT, mClipToBounds); + renderer.restoreToCount(restoreTo); + renderer.setOverrideLayerAlpha(1.0f); return; } diff --git a/policy/src/com/android/internal/policy/impl/keyguard/PagedView.java b/policy/src/com/android/internal/policy/impl/keyguard/PagedView.java index 186a013a0db3..10562e89f796 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/PagedView.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/PagedView.java @@ -86,7 +86,7 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc private static final int MIN_SNAP_VELOCITY = 1500; private static final int MIN_FLING_VELOCITY = 250; - // We are disabling touch interaction of the widget region for factory ROM. + // We are disabling touch interaction of the widget region for factory ROM. private static final boolean DISABLE_TOUCH_INTERACTION = false; private static final boolean DISABLE_TOUCH_SIDE_PAGES = true; private static final boolean DISABLE_FLING_TO_DELETE = false; @@ -1350,6 +1350,9 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc if (mTouchState == TOUCH_STATE_SCROLLING) { // Scroll to follow the motion event final int pointerIndex = ev.findPointerIndex(mActivePointerId); + + if (pointerIndex == -1) return true; + final float x = ev.getX(pointerIndex); final float deltaX = mLastMotionX + mLastMotionXRemainder - x; diff --git a/services/input/InputReader.cpp b/services/input/InputReader.cpp index 10d759191875..c774763fafe4 100644 --- a/services/input/InputReader.cpp +++ b/services/input/InputReader.cpp @@ -2619,6 +2619,18 @@ void TouchInputMapper::populateDeviceInfo(InputDeviceInfo* info) { info->addMotionRange(AMOTION_EVENT_AXIS_HSCROLL, mSource, -1.0f, 1.0f, 0.0f, 0.0f, 0.0f); } + if (mCalibration.coverageCalibration == Calibration::COVERAGE_CALIBRATION_BOX) { + const InputDeviceInfo::MotionRange& x = mOrientedRanges.x; + const InputDeviceInfo::MotionRange& y = mOrientedRanges.y; + info->addMotionRange(AMOTION_EVENT_AXIS_GENERIC_1, mSource, x.min, x.max, x.flat, + x.fuzz, x.resolution); + info->addMotionRange(AMOTION_EVENT_AXIS_GENERIC_2, mSource, y.min, y.max, y.flat, + y.fuzz, y.resolution); + info->addMotionRange(AMOTION_EVENT_AXIS_GENERIC_3, mSource, x.min, x.max, x.flat, + x.fuzz, x.resolution); + info->addMotionRange(AMOTION_EVENT_AXIS_GENERIC_4, mSource, y.min, y.max, y.flat, + y.fuzz, y.resolution); + } } } @@ -3448,6 +3460,19 @@ void TouchInputMapper::parseCalibration() { out.haveDistanceScale = in.tryGetProperty(String8("touch.distance.scale"), out.distanceScale); + + out.coverageCalibration = Calibration::COVERAGE_CALIBRATION_DEFAULT; + String8 coverageCalibrationString; + if (in.tryGetProperty(String8("touch.coverage.calibration"), coverageCalibrationString)) { + if (coverageCalibrationString == "none") { + out.coverageCalibration = Calibration::COVERAGE_CALIBRATION_NONE; + } else if (coverageCalibrationString == "box") { + out.coverageCalibration = Calibration::COVERAGE_CALIBRATION_BOX; + } else if (coverageCalibrationString != "default") { + ALOGW("Invalid value for touch.coverage.calibration: '%s'", + coverageCalibrationString.string()); + } + } } void TouchInputMapper::resolveCalibration() { @@ -3486,6 +3511,11 @@ void TouchInputMapper::resolveCalibration() { } else { mCalibration.distanceCalibration = Calibration::DISTANCE_CALIBRATION_NONE; } + + // Coverage + if (mCalibration.coverageCalibration == Calibration::COVERAGE_CALIBRATION_DEFAULT) { + mCalibration.coverageCalibration = Calibration::COVERAGE_CALIBRATION_NONE; + } } void TouchInputMapper::dumpCalibration(String8& dump) { @@ -3578,6 +3608,17 @@ void TouchInputMapper::dumpCalibration(String8& dump) { dump.appendFormat(INDENT4 "touch.distance.scale: %0.3f\n", mCalibration.distanceScale); } + + switch (mCalibration.coverageCalibration) { + case Calibration::COVERAGE_CALIBRATION_NONE: + dump.append(INDENT4 "touch.coverage.calibration: none\n"); + break; + case Calibration::COVERAGE_CALIBRATION_BOX: + dump.append(INDENT4 "touch.coverage.calibration: box\n"); + break; + default: + ALOG_ASSERT(false); + } } void TouchInputMapper::reset(nsecs_t when) { @@ -4185,13 +4226,31 @@ void TouchInputMapper::cookPointerData() { distance = 0; } - // X and Y + // Coverage + int32_t rawLeft, rawTop, rawRight, rawBottom; + switch (mCalibration.coverageCalibration) { + case Calibration::COVERAGE_CALIBRATION_BOX: + rawLeft = (in.toolMinor & 0xffff0000) >> 16; + rawRight = in.toolMinor & 0x0000ffff; + rawBottom = in.toolMajor & 0x0000ffff; + rawTop = (in.toolMajor & 0xffff0000) >> 16; + break; + default: + rawLeft = rawTop = rawRight = rawBottom = 0; + break; + } + + // X, Y, and the bounding box for coverage information // Adjust coords for surface orientation. - float x, y; + float x, y, left, top, right, bottom; switch (mSurfaceOrientation) { case DISPLAY_ORIENTATION_90: x = float(in.y - mRawPointerAxes.y.minValue) * mYScale + mYTranslate; y = float(mRawPointerAxes.x.maxValue - in.x) * mXScale + mXTranslate; + left = float(rawTop - mRawPointerAxes.y.minValue) * mYScale + mYTranslate; + right = float(rawBottom- mRawPointerAxes.y.minValue) * mYScale + mYTranslate; + bottom = float(mRawPointerAxes.x.maxValue - rawLeft) * mXScale + mXTranslate; + top = float(mRawPointerAxes.x.maxValue - rawRight) * mXScale + mXTranslate; orientation -= M_PI_2; if (orientation < - M_PI_2) { orientation += M_PI; @@ -4200,10 +4259,18 @@ void TouchInputMapper::cookPointerData() { case DISPLAY_ORIENTATION_180: x = float(mRawPointerAxes.x.maxValue - in.x) * mXScale + mXTranslate; y = float(mRawPointerAxes.y.maxValue - in.y) * mYScale + mYTranslate; + left = float(mRawPointerAxes.x.maxValue - rawRight) * mXScale + mXTranslate; + right = float(mRawPointerAxes.x.maxValue - rawLeft) * mXScale + mXTranslate; + bottom = float(mRawPointerAxes.y.maxValue - rawTop) * mYScale + mYTranslate; + top = float(mRawPointerAxes.y.maxValue - rawBottom) * mYScale + mYTranslate; break; case DISPLAY_ORIENTATION_270: x = float(mRawPointerAxes.y.maxValue - in.y) * mYScale + mYTranslate; y = float(in.x - mRawPointerAxes.x.minValue) * mXScale + mXTranslate; + left = float(mRawPointerAxes.y.maxValue - rawBottom) * mYScale + mYTranslate; + right = float(mRawPointerAxes.y.maxValue - rawTop) * mYScale + mYTranslate; + bottom = float(rawRight - mRawPointerAxes.x.minValue) * mXScale + mXTranslate; + top = float(rawLeft - mRawPointerAxes.x.minValue) * mXScale + mXTranslate; orientation += M_PI_2; if (orientation > M_PI_2) { orientation -= M_PI; @@ -4212,6 +4279,10 @@ void TouchInputMapper::cookPointerData() { default: x = float(in.x - mRawPointerAxes.x.minValue) * mXScale + mXTranslate; y = float(in.y - mRawPointerAxes.y.minValue) * mYScale + mYTranslate; + left = float(rawLeft - mRawPointerAxes.x.minValue) * mXScale + mXTranslate; + right = float(rawRight - mRawPointerAxes.x.minValue) * mXScale + mXTranslate; + bottom = float(rawBottom - mRawPointerAxes.y.minValue) * mYScale + mYTranslate; + top = float(rawTop - mRawPointerAxes.y.minValue) * mYScale + mYTranslate; break; } @@ -4224,11 +4295,18 @@ void TouchInputMapper::cookPointerData() { out.setAxisValue(AMOTION_EVENT_AXIS_SIZE, size); out.setAxisValue(AMOTION_EVENT_AXIS_TOUCH_MAJOR, touchMajor); out.setAxisValue(AMOTION_EVENT_AXIS_TOUCH_MINOR, touchMinor); - out.setAxisValue(AMOTION_EVENT_AXIS_TOOL_MAJOR, toolMajor); - out.setAxisValue(AMOTION_EVENT_AXIS_TOOL_MINOR, toolMinor); out.setAxisValue(AMOTION_EVENT_AXIS_ORIENTATION, orientation); out.setAxisValue(AMOTION_EVENT_AXIS_TILT, tilt); out.setAxisValue(AMOTION_EVENT_AXIS_DISTANCE, distance); + if (mCalibration.coverageCalibration == Calibration::COVERAGE_CALIBRATION_BOX) { + out.setAxisValue(AMOTION_EVENT_AXIS_GENERIC_1, left); + out.setAxisValue(AMOTION_EVENT_AXIS_GENERIC_2, top); + out.setAxisValue(AMOTION_EVENT_AXIS_GENERIC_3, right); + out.setAxisValue(AMOTION_EVENT_AXIS_GENERIC_4, bottom); + } else { + out.setAxisValue(AMOTION_EVENT_AXIS_TOOL_MAJOR, toolMajor); + out.setAxisValue(AMOTION_EVENT_AXIS_TOOL_MINOR, toolMinor); + } // Write output properties. PointerProperties& properties = mCurrentCookedPointerData.pointerProperties[i]; diff --git a/services/input/InputReader.h b/services/input/InputReader.h index f87f98e4081f..0189ba7c7e01 100644 --- a/services/input/InputReader.h +++ b/services/input/InputReader.h @@ -1267,6 +1267,14 @@ protected: bool haveDistanceScale; float distanceScale; + enum CoverageCalibration { + COVERAGE_CALIBRATION_DEFAULT, + COVERAGE_CALIBRATION_NONE, + COVERAGE_CALIBRATION_BOX, + }; + + CoverageCalibration coverageCalibration; + inline void applySizeScaleAndBias(float* outSize) const { if (haveSizeScale) { *outSize *= sizeScale; diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java index 3e19094bba71..37a8cb85c05c 100644 --- a/services/java/com/android/server/ConnectivityService.java +++ b/services/java/com/android/server/ConnectivityService.java @@ -2261,9 +2261,8 @@ public class ConnectivityService extends IConnectivityManager.Stub { boolean resetDns = updateRoutes(newLp, curLp, mNetConfigs[netType].isDefault()); if (resetMask != 0 || resetDns) { - LinkProperties linkProperties = mNetTrackers[netType].getLinkProperties(); - if (linkProperties != null) { - for (String iface : linkProperties.getAllInterfaceNames()) { + if (curLp != null) { + for (String iface : curLp.getAllInterfaceNames()) { if (TextUtils.isEmpty(iface) == false) { if (resetMask != 0) { if (DBG) log("resetConnections(" + iface + ", " + resetMask + ")"); @@ -2285,6 +2284,8 @@ public class ConnectivityService extends IConnectivityManager.Stub { if (DBG) loge("Exception resetting dns cache: " + e); } } + } else { + loge("Can't reset connection for type "+netType); } } } diff --git a/services/java/com/android/server/NotificationManagerService.java b/services/java/com/android/server/NotificationManagerService.java index 868278b0748c..04773db67d13 100644 --- a/services/java/com/android/server/NotificationManagerService.java +++ b/services/java/com/android/server/NotificationManagerService.java @@ -763,7 +763,8 @@ public class NotificationManagerService extends INotificationManager.Stub final int N = mListeners.size(); for (int i=N-1; i>=0; i--) { final NotificationListenerInfo info = mListeners.get(i); - if (info.listener == listener && info.userid == userid) { + if (info.listener.asBinder() == listener.asBinder() + && info.userid == userid) { mListeners.remove(i); if (info.connection != null) { mContext.unbindService(info.connection); diff --git a/services/java/com/android/server/accounts/AccountManagerService.java b/services/java/com/android/server/accounts/AccountManagerService.java index 3b6393722e44..0fbde37a20c5 100644 --- a/services/java/com/android/server/accounts/AccountManagerService.java +++ b/services/java/com/android/server/accounts/AccountManagerService.java @@ -2802,12 +2802,19 @@ public class AccountManagerService if (sharedAccounts == null || sharedAccounts.length == 0) return unfiltered; String requiredAccountType = ""; try { - for (String packageName : packages) { - PackageInfo pi = mPackageManager.getPackageInfo(packageName, 0); + // If there's an explicit callingPackage specified, check if that package + // opted in to see restricted accounts. + if (callingPackage != null) { + PackageInfo pi = mPackageManager.getPackageInfo(callingPackage, 0); if (pi != null && pi.restrictedAccountType != null) { requiredAccountType = pi.restrictedAccountType; - // If it matches the package name of the original caller, use this choice. - if (callingPackage != null && packageName.equals(callingPackage)) { + } + } else { + // Otherwise check if the callingUid has a package that has opted in + for (String packageName : packages) { + PackageInfo pi = mPackageManager.getPackageInfo(packageName, 0); + if (pi != null && pi.restrictedAccountType != null) { + requiredAccountType = pi.restrictedAccountType; break; } } diff --git a/tools/layoutlib/bridge/src/android/graphics/Bitmap_Delegate.java b/tools/layoutlib/bridge/src/android/graphics/Bitmap_Delegate.java index b76b8cf7b47a..96616aaeca4f 100644 --- a/tools/layoutlib/bridge/src/android/graphics/Bitmap_Delegate.java +++ b/tools/layoutlib/bridge/src/android/graphics/Bitmap_Delegate.java @@ -61,6 +61,7 @@ public final class Bitmap_Delegate { private final Config mConfig; private BufferedImage mImage; private boolean mHasAlpha = true; + private boolean mHasMipMap = false; // TODO: check the default. private int mGenerationId = 0; @@ -185,6 +186,10 @@ public final class Bitmap_Delegate { return mHasAlpha && mConfig != Config.RGB_565; } + public boolean hasMipMap() { + // TODO: check if more checks are required as in hasAlpha. + return mHasMipMap; + } /** * Update the generationId. * @@ -336,6 +341,17 @@ public final class Bitmap_Delegate { } @LayoutlibDelegate + /*package*/ static boolean nativeHasMipMap(int nativeBitmap) { + // get the delegate from the native int. + Bitmap_Delegate delegate = sManager.getDelegate(nativeBitmap); + if (delegate == null) { + return true; + } + + return delegate.mHasMipMap; + } + + @LayoutlibDelegate /*package*/ static int nativeGetPixel(int nativeBitmap, int x, int y) { // get the delegate from the native int. Bitmap_Delegate delegate = sManager.getDelegate(nativeBitmap); @@ -469,6 +485,17 @@ public final class Bitmap_Delegate { } @LayoutlibDelegate + /*package*/ static void nativeSetHasMipMap(int nativeBitmap, boolean hasMipMap) { + // get the delegate from the native int. + Bitmap_Delegate delegate = sManager.getDelegate(nativeBitmap); + if (delegate == null) { + return; + } + + delegate.mHasMipMap = hasMipMap; + } + + @LayoutlibDelegate /*package*/ static boolean nativeSameAs(int nb0, int nb1) { Bitmap_Delegate delegate1 = sManager.getDelegate(nb0); if (delegate1 == null) { @@ -524,7 +551,7 @@ public final class Bitmap_Delegate { int nativeInt = sManager.addNewDelegate(delegate); // and create/return a new Bitmap with it - return new Bitmap(nativeInt, null /* buffer */, isMutable, null /*ninePatchChunk*/, + return new Bitmap(nativeInt, null /* buffer */, isMutable, null /*ninePatchChunk*/, density); } diff --git a/tools/layoutlib/bridge/src/android/graphics/Canvas_Delegate.java b/tools/layoutlib/bridge/src/android/graphics/Canvas_Delegate.java index 9aed8c852118..4171bb54b31c 100644 --- a/tools/layoutlib/bridge/src/android/graphics/Canvas_Delegate.java +++ b/tools/layoutlib/bridge/src/android/graphics/Canvas_Delegate.java @@ -330,20 +330,19 @@ public final class Canvas_Delegate { } @LayoutlibDelegate - /*package*/ static void native_setBitmap(int nativeCanvas, int bitmap) { + /*package*/ static void copyNativeCanvasState(int srcCanvas, int dstCanvas) { // get the delegate from the native int. - Canvas_Delegate canvasDelegate = sManager.getDelegate(nativeCanvas); - if (canvasDelegate == null) { + Canvas_Delegate srcCanvasDelegate = sManager.getDelegate(srcCanvas); + if (srcCanvasDelegate == null) { return; } // get the delegate from the native int. - Bitmap_Delegate bitmapDelegate = Bitmap_Delegate.getDelegate(bitmap); - if (bitmapDelegate == null) { + Canvas_Delegate dstCanvasDelegate = sManager.getDelegate(dstCanvas); + if (dstCanvasDelegate == null) { return; } - - canvasDelegate.setBitmap(bitmapDelegate); + // TODO: actually copy the canvas state. } @LayoutlibDelegate @@ -572,16 +571,14 @@ public final class Canvas_Delegate { @LayoutlibDelegate /*package*/ static boolean native_quickReject(int nativeCanvas, - RectF rect, - int native_edgeType) { + RectF rect) { // FIXME properly implement quickReject return false; } @LayoutlibDelegate /*package*/ static boolean native_quickReject(int nativeCanvas, - int path, - int native_edgeType) { + int path) { // FIXME properly implement quickReject return false; } @@ -589,8 +586,7 @@ public final class Canvas_Delegate { @LayoutlibDelegate /*package*/ static boolean native_quickReject(int nativeCanvas, float left, float top, - float right, float bottom, - int native_edgeType) { + float right, float bottom) { // FIXME properly implement quickReject return false; } @@ -994,7 +990,8 @@ public final class Canvas_Delegate { float x = startX; float y = startY; if (paintDelegate.getTextAlign() != Paint.Align.LEFT.nativeInt) { - float m = paintDelegate.measureText(text, index, count); + // TODO: check the value of bidiFlags. + float m = paintDelegate.measureText(text, index, count, 0); if (paintDelegate.getTextAlign() == Paint.Align.CENTER.nativeInt) { x -= m / 2; } else if (paintDelegate.getTextAlign() == Paint.Align.RIGHT.nativeInt) { diff --git a/tools/layoutlib/bridge/src/android/graphics/Paint_Delegate.java b/tools/layoutlib/bridge/src/android/graphics/Paint_Delegate.java index 13826414cb27..c9c98007556f 100644 --- a/tools/layoutlib/bridge/src/android/graphics/Paint_Delegate.java +++ b/tools/layoutlib/bridge/src/android/graphics/Paint_Delegate.java @@ -569,29 +569,30 @@ public class Paint_Delegate { @LayoutlibDelegate /*package*/ static float native_measureText(Paint thisPaint, char[] text, int index, - int count) { + int count, int bidiFlags) { // get the delegate Paint_Delegate delegate = sManager.getDelegate(thisPaint.mNativePaint); if (delegate == null) { return 0; } - return delegate.measureText(text, index, count); + return delegate.measureText(text, index, count, bidiFlags); } @LayoutlibDelegate - /*package*/ static float native_measureText(Paint thisPaint, String text, int start, int end) { - return native_measureText(thisPaint, text.toCharArray(), start, end - start); + /*package*/ static float native_measureText(Paint thisPaint, String text, int start, int end, + int bidiFlags) { + return native_measureText(thisPaint, text.toCharArray(), start, end - start, bidiFlags); } @LayoutlibDelegate - /*package*/ static float native_measureText(Paint thisPaint, String text) { - return native_measureText(thisPaint, text.toCharArray(), 0, text.length()); + /*package*/ static float native_measureText(Paint thisPaint, String text, int bidiFlags) { + return native_measureText(thisPaint, text.toCharArray(), 0, text.length(), bidiFlags); } @LayoutlibDelegate /*package*/ static int native_breakText(Paint thisPaint, char[] text, int index, int count, - float maxWidth, float[] measuredWidth) { + float maxWidth, int bidiFlags, float[] measuredWidth) { // get the delegate Paint_Delegate delegate = sManager.getDelegate(thisPaint.mNativePaint); @@ -614,7 +615,7 @@ public class Paint_Delegate { } // measure from start to end - float res = delegate.measureText(text, start, end - start + 1); + float res = delegate.measureText(text, start, end - start + 1, bidiFlags); if (measuredWidth != null) { measuredWidth[measureIndex] = res; @@ -634,9 +635,9 @@ public class Paint_Delegate { @LayoutlibDelegate /*package*/ static int native_breakText(Paint thisPaint, String text, boolean measureForwards, - float maxWidth, float[] measuredWidth) { + float maxWidth, int bidiFlags, float[] measuredWidth) { return native_breakText(thisPaint, text.toCharArray(), 0, text.length(), maxWidth, - measuredWidth); + bidiFlags, measuredWidth); } @LayoutlibDelegate @@ -921,7 +922,7 @@ public class Paint_Delegate { @LayoutlibDelegate /*package*/ static int native_getTextWidths(int native_object, char[] text, int index, - int count, float[] widths) { + int count, int bidiFlags, float[] widths) { // get the delegate from the native int. Paint_Delegate delegate = sManager.getDelegate(native_object); if (delegate == null) { @@ -963,8 +964,9 @@ public class Paint_Delegate { @LayoutlibDelegate /*package*/ static int native_getTextWidths(int native_object, String text, int start, - int end, float[] widths) { - return native_getTextWidths(native_object, text.toCharArray(), start, end - start, widths); + int end, int bidiFlags, float[] widths) { + return native_getTextWidths(native_object, text.toCharArray(), start, end - start, + bidiFlags, widths); } @LayoutlibDelegate @@ -977,7 +979,7 @@ public class Paint_Delegate { @LayoutlibDelegate /*package*/ static float native_getTextRunAdvances(int native_object, char[] text, int index, int count, int contextIndex, int contextCount, - int flags, float[] advances, int advancesIndex, int reserved) { + int flags, float[] advances, int advancesIndex) { // get the delegate from the native int. Paint_Delegate delegate = sManager.getDelegate(native_object); if (delegate == null) { @@ -1021,14 +1023,14 @@ public class Paint_Delegate { @LayoutlibDelegate /*package*/ static float native_getTextRunAdvances(int native_object, String text, int start, int end, int contextStart, int contextEnd, - int flags, float[] advances, int advancesIndex, int reserved) { + int flags, float[] advances, int advancesIndex) { // FIXME: support contextStart, contextEnd and direction flag int count = end - start; char[] buffer = TemporaryBuffer.obtain(count); TextUtils.getChars(text, start, end, buffer, 0); return native_getTextRunAdvances(native_object, buffer, 0, count, contextStart, - contextEnd - contextStart, flags, advances, advancesIndex, reserved); + contextEnd - contextStart, flags, advances, advancesIndex); } @LayoutlibDelegate @@ -1067,13 +1069,14 @@ public class Paint_Delegate { @LayoutlibDelegate /*package*/ static void nativeGetStringBounds(int nativePaint, String text, int start, - int end, Rect bounds) { - nativeGetCharArrayBounds(nativePaint, text.toCharArray(), start, end - start, bounds); + int end, int bidiFlags, Rect bounds) { + nativeGetCharArrayBounds(nativePaint, text.toCharArray(), start, end - start, bidiFlags, + bounds); } @LayoutlibDelegate /*package*/ static void nativeGetCharArrayBounds(int nativePaint, char[] text, int index, - int count, Rect bounds) { + int count, int bidiFlags, Rect bounds) { // get the delegate from the native int. Paint_Delegate delegate = sManager.getDelegate(nativePaint); @@ -1182,7 +1185,8 @@ public class Paint_Delegate { } } - /*package*/ float measureText(char[] text, int index, int count) { + /*package*/ float measureText(char[] text, int index, int count, int bidiFlags) { + // TODO: find out what bidiFlags actually does. // WARNING: the logic in this method is similar to Canvas_Delegate.native_drawText // Any change to this method should be reflected there as well diff --git a/tools/layoutlib/bridge/src/android/os/Looper_Accessor.java b/tools/layoutlib/bridge/src/android/os/Looper_Accessor.java index 2961f9735890..09f3e47d7a14 100644 --- a/tools/layoutlib/bridge/src/android/os/Looper_Accessor.java +++ b/tools/layoutlib/bridge/src/android/os/Looper_Accessor.java @@ -15,6 +15,8 @@ */ package android.os; +import java.lang.reflect.Field; + /** * Class allowing access to package-protected methods/fields. */ @@ -23,5 +25,23 @@ public class Looper_Accessor { public static void cleanupThread() { // clean up the looper Looper.sThreadLocal.remove(); + try { + Field sMainLooper = Looper.class.getDeclaredField("sMainLooper"); + sMainLooper.setAccessible(true); + sMainLooper.set(null, null); + } catch (SecurityException e) { + catchReflectionException(); + } catch (IllegalArgumentException e) { + catchReflectionException(); + } catch (NoSuchFieldException e) { + catchReflectionException(); + } catch (IllegalAccessException e) { + catchReflectionException(); + } + + } + + private static void catchReflectionException() { + assert(false); } } diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/Bridge.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/Bridge.java index bf8658e402b0..42257c560a7f 100644 --- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/Bridge.java +++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/Bridge.java @@ -428,7 +428,7 @@ public final class Bridge extends com.android.ide.common.rendering.api.Bridge { // we need to make sure the Looper has been initialized for this thread. // this is required for View that creates Handler objects. if (Looper.myLooper() == null) { - Looper.prepare(); + Looper.prepareMainLooper(); } } diff --git a/tools/layoutlib/bridge/src/libcore/icu/ICU_Delegate.java b/tools/layoutlib/bridge/src/libcore/icu/ICU_Delegate.java index fb2fc8545338..cd4f82bee925 100644 --- a/tools/layoutlib/bridge/src/libcore/icu/ICU_Delegate.java +++ b/tools/layoutlib/bridge/src/libcore/icu/ICU_Delegate.java @@ -44,6 +44,16 @@ public class ICU_Delegate { // --- Native methods accessing ICU's database. @LayoutlibDelegate + /*package*/ static String getBestDateTimePattern(String skeleton, String localeName) { + return ""; // TODO: check what the right value should be. + } + + @LayoutlibDelegate + /*package*/ static String getCldrVersion() { + return "22.1.1"; // TODO: check what the right value should be. + } + + @LayoutlibDelegate /*package*/ static String getIcuVersion() { return "unknown_layoutlib"; } |