diff options
Diffstat (limited to 'core')
28 files changed, 312 insertions, 219 deletions
diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java index 0c47069..9a8d802 100644 --- a/core/java/android/app/Notification.java +++ b/core/java/android/app/Notification.java @@ -907,6 +907,8 @@ public class Notification implements Parcelable * </pre> */ public static class Builder { + private static final int MAX_ACTION_BUTTONS = 2; + private Context mContext; private long mWhen; @@ -938,7 +940,7 @@ public class Notification implements Parcelable private ArrayList<String> mKindList = new ArrayList<String>(1); private Bundle mExtras; private int mPriority; - private ArrayList<Action> mActions = new ArrayList<Action>(3); + private ArrayList<Action> mActions = new ArrayList<Action>(MAX_ACTION_BUTTONS); private boolean mUseChronometer; private Style mStyle; @@ -1460,7 +1462,7 @@ public class Notification implements Parcelable if (N > 0) { // Log.d("Notification", "has actions: " + mContentText); big.setViewVisibility(R.id.actions, View.VISIBLE); - if (N>3) N=3; + if (N>MAX_ACTION_BUTTONS) N=MAX_ACTION_BUTTONS; big.removeAllViews(R.id.actions); for (int i=0; i<N; i++) { final RemoteViews button = generateActionButton(mActions.get(i)); @@ -1500,18 +1502,14 @@ public class Notification implements Parcelable } private RemoteViews generateActionButton(Action action) { - RemoteViews button = new RemoteViews(mContext.getPackageName(), R.layout.notification_action); + final boolean tombstone = (action.actionIntent == null); + RemoteViews button = new RemoteViews(mContext.getPackageName(), + tombstone ? R.layout.notification_action_tombstone + : R.layout.notification_action); button.setTextViewCompoundDrawables(R.id.action0, action.icon, 0, 0, 0); button.setTextViewText(R.id.action0, action.title); - if (action.actionIntent != null) { + if (!tombstone) { button.setOnClickPendingIntent(R.id.action0, action.actionIntent); - //button.setBoolean(R.id.action0, "setEnabled", true); - button.setFloat(R.id.button0, "setAlpha", 1.0f); - button.setBoolean(R.id.button0, "setClickable", true); - } else { - //button.setBoolean(R.id.action0, "setEnabled", false); - button.setFloat(R.id.button0, "setAlpha", 0.5f); - button.setBoolean(R.id.button0, "setClickable", false); } button.setContentDescription(R.id.action0, action.title); return button; @@ -1639,15 +1637,21 @@ public class Notification implements Parcelable if (mBuilder.mSubText == null) { contentView.setViewVisibility(R.id.line3, View.GONE); + } else { + contentView.setViewVisibility(R.id.line3, View.VISIBLE); } if (mBigContentTitle != null && mBigContentTitle.equals("")) { contentView.setViewVisibility(R.id.line1, View.GONE); + } else { + contentView.setViewVisibility(R.id.line1, View.VISIBLE); } if (mSummaryText != null && !mSummaryText.equals("")) { contentView.setViewVisibility(R.id.overflow_title, View.VISIBLE); contentView.setTextViewText(R.id.overflow_title, mSummaryText); + } else { + contentView.setViewVisibility(R.id.overflow_title, View.GONE); } return contentView; @@ -1854,6 +1858,8 @@ public class Notification implements Parcelable if (str != null && !str.equals("")) { contentView.setViewVisibility(rowIds[i], View.VISIBLE); contentView.setTextViewText(rowIds[i], str); + } else { + contentView.setViewVisibility(rowIds[i], View.GONE); } i++; } diff --git a/core/java/android/appwidget/AppWidgetManager.java b/core/java/android/appwidget/AppWidgetManager.java index 7a8c1fb..3aa5181 100644 --- a/core/java/android/appwidget/AppWidgetManager.java +++ b/core/java/android/appwidget/AppWidgetManager.java @@ -320,6 +320,10 @@ public class AppWidgetManager { * It is okay to call this method both inside an {@link #ACTION_APPWIDGET_UPDATE} broadcast, * and outside of the handler. * This method will only work when called from the uid that owns the AppWidget provider. + * + * <p> + * The total Bitmap memory used by the RemoteViews object cannot exceed that required to + * fill the screen once, ie. (screen width x screen height x 4) bytes. * * @param appWidgetIds The AppWidget instances for which to set the RemoteViews. * @param views The RemoteViews object to show. @@ -385,6 +389,10 @@ public class AppWidgetManager { * and outside of the handler. * This method will only work when called from the uid that owns the AppWidget provider. * + * <p> + * The total Bitmap memory used by the RemoteViews object cannot exceed that required to + * fill the screen once, ie. (screen width x screen height x 4) bytes. + * * @param appWidgetId The AppWidget instance for which to set the RemoteViews. * @param views The RemoteViews object to show. */ diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index a4fcd41..53bb3c6 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -6159,7 +6159,8 @@ public class View implements Drawable.Callback, Drawable.Callback2, KeyEvent.Cal ViewRootImpl viewRootImpl = getViewRootImpl(); if (viewRootImpl != null) { View focusHost = viewRootImpl.getAccessibilityFocusedHost(); - if (focusHost != null && ViewRootImpl.isViewDescendantOf(focusHost, this)) { + if (focusHost != null && focusHost != this + && ViewRootImpl.isViewDescendantOf(focusHost, this)) { viewRootImpl.setAccessibilityFocusedHost(null); } } @@ -6637,7 +6638,7 @@ public class View implements Drawable.Callback, Drawable.Callback2, KeyEvent.Cal private boolean nextAtGranularity(int granularity) { CharSequence text = getIterableTextForAccessibility(); - if (text != null && text.length() > 0) { + if (text == null || text.length() == 0) { return false; } TextSegmentIterator iterator = getIteratorForGranularity(granularity); @@ -6661,7 +6662,7 @@ public class View implements Drawable.Callback, Drawable.Callback2, KeyEvent.Cal private boolean previousAtGranularity(int granularity) { CharSequence text = getIterableTextForAccessibility(); - if (text != null && text.length() > 0) { + if (text == null || text.length() == 0) { return false; } TextSegmentIterator iterator = getIteratorForGranularity(granularity); diff --git a/core/java/android/webkit/WebViewClassic.java b/core/java/android/webkit/WebViewClassic.java index f1f3db2..3ae7e9c 100644 --- a/core/java/android/webkit/WebViewClassic.java +++ b/core/java/android/webkit/WebViewClassic.java @@ -1598,8 +1598,6 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc private void init() { OnTrimMemoryListener.init(mContext); mWebView.setWillNotDraw(false); - mWebView.setFocusable(true); - mWebView.setFocusableInTouchMode(true); mWebView.setClickable(true); mWebView.setLongClickable(true); @@ -5767,14 +5765,15 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc return false; } - if (!mWebView.isFocused()) { - mWebView.requestFocus(); - } - if (mInputDispatcher == null) { return false; } + if (mWebView.isFocusable() && mWebView.isFocusableInTouchMode() + && !mWebView.isFocused()) { + mWebView.requestFocus(); + } + if (mInputDispatcher.postPointerEvent(ev, getScrollX(), getScrollY() - getTitleHeight(), mZoomManager.getInvScale())) { mInputDispatcher.dispatchUiEvents(); diff --git a/core/java/android/widget/AbsSeekBar.java b/core/java/android/widget/AbsSeekBar.java index ae68794..e217e4f 100644 --- a/core/java/android/widget/AbsSeekBar.java +++ b/core/java/android/widget/AbsSeekBar.java @@ -21,6 +21,7 @@ import android.content.res.TypedArray; import android.graphics.Canvas; import android.graphics.Rect; import android.graphics.drawable.Drawable; +import android.os.Bundle; import android.util.AttributeSet; import android.view.KeyEvent; import android.view.MotionEvent; @@ -486,5 +487,46 @@ public abstract class AbsSeekBar extends ProgressBar { public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { super.onInitializeAccessibilityNodeInfo(info); info.setClassName(AbsSeekBar.class.getName()); + + if (isEnabled()) { + final int progress = getProgress(); + if (progress > 0) { + info.addAction(AccessibilityNodeInfo.ACTION_SCROLL_BACKWARD); + } + if (progress < getMax()) { + info.addAction(AccessibilityNodeInfo.ACTION_SCROLL_FORWARD); + } + } + } + + @Override + public boolean performAccessibilityAction(int action, Bundle arguments) { + if (super.performAccessibilityAction(action, arguments)) { + return true; + } + if (!isEnabled()) { + return false; + } + final int progress = getProgress(); + final int increment = Math.max(1, Math.round((float) getMax() / 5)); + switch (action) { + case AccessibilityNodeInfo.ACTION_SCROLL_BACKWARD: { + if (progress <= 0) { + return false; + } + setProgress(progress - increment, true); + onKeyChange(); + return true; + } + case AccessibilityNodeInfo.ACTION_SCROLL_FORWARD: { + if (progress >= getMax()) { + return false; + } + setProgress(progress + increment, true); + onKeyChange(); + return true; + } + } + return false; } } diff --git a/core/java/android/widget/RemoteViews.java b/core/java/android/widget/RemoteViews.java index 56c4bd8..51c957a 100644 --- a/core/java/android/widget/RemoteViews.java +++ b/core/java/android/widget/RemoteViews.java @@ -1445,7 +1445,8 @@ public class RemoteViews implements Parcelable, Filter { /** * Returns an estimate of the bitmap heap memory usage for this RemoteViews. */ - int estimateMemoryUsage() { + /** @hide */ + public int estimateMemoryUsage() { return mMemoryUsageCounter.getMemoryUsage(); } diff --git a/core/java/com/android/internal/widget/multiwaveview/MultiWaveView.java b/core/java/com/android/internal/widget/multiwaveview/MultiWaveView.java index 60cd895..deb09e3 100644 --- a/core/java/com/android/internal/widget/multiwaveview/MultiWaveView.java +++ b/core/java/com/android/internal/widget/multiwaveview/MultiWaveView.java @@ -79,18 +79,17 @@ public class MultiWaveView extends View { private static final int SHOW_ANIMATION_DURATION = 200; private static final int SHOW_ANIMATION_DELAY = 0; private static final float TAP_RADIUS_SCALE_ACCESSIBILITY_ENABLED = 1.3f; - private static final long RING_EXPAND_DURATION = 200; private static final float TARGET_INITIAL_POSITION_SCALE = 0.8f; private TimeInterpolator mChevronAnimationInterpolator = Ease.Quad.easeOut; private ArrayList<TargetDrawable> mTargetDrawables = new ArrayList<TargetDrawable>(); private ArrayList<TargetDrawable> mChevronDrawables = new ArrayList<TargetDrawable>(); - private ArrayList<Tweener> mChevronAnimations = new ArrayList<Tweener>(); - private ArrayList<Tweener> mTargetAnimations = new ArrayList<Tweener>(); + private AnimationBundle mChevronAnimations = new AnimationBundle(); + private AnimationBundle mTargetAnimations = new AnimationBundle(); + private AnimationBundle mHandleAnimations = new AnimationBundle(); private ArrayList<String> mTargetDescriptions; private ArrayList<String> mDirectionDescriptions; - private Tweener mHandleAnimation; private OnTriggerListener mOnTriggerListener; private TargetDrawable mHandleDrawable; private TargetDrawable mOuterRing; @@ -114,6 +113,33 @@ public class MultiWaveView extends View { private boolean mDragging; private int mNewTargetResources; + private class AnimationBundle extends ArrayList<Tweener> { + private static final long serialVersionUID = 0xA84D78726F127468L; + private boolean mSuspended; + + public void start() { + if (mSuspended) return; // ignore attempts to start animations + final int count = size(); + for (int i = 0; i < count; i++) { + Tweener anim = get(i); + anim.animator.start(); + } + } + + public void stop() { + final int count = size(); + for (int i = 0; i < count; i++) { + Tweener anim = get(i); + anim.animator.end(); + } + clear(); + } + + public void setSuspended(boolean suspend) { + mSuspended = suspend; + } + }; + private AnimatorListener mResetListener = new AnimatorListenerAdapter() { public void onAnimationEnd(Animator animator) { switchToState(STATE_IDLE, mWaveCenterX, mWaveCenterY); @@ -239,6 +265,7 @@ public class MultiWaveView extends View { a.recycle(); setVibrateEnabled(mVibrationDuration > 0); + assignDefaultsIfNeeded(); } private void dump() { @@ -254,6 +281,21 @@ public class MultiWaveView extends View { Log.v(TAG, "VerticalOffset = " + mVerticalOffset); } + public void suspendAnimations() { + mChevronAnimations.setSuspended(true); + mTargetAnimations.setSuspended(true); + mHandleAnimations.setSuspended(true); + } + + public void resumeAnimations() { + mChevronAnimations.setSuspended(false); + mTargetAnimations.setSuspended(false); + mHandleAnimations.setSuspended(false); + mChevronAnimations.start(); + mTargetAnimations.start(); + mHandleAnimations.start(); + } + @Override protected int getSuggestedMinimumWidth() { // View should be large enough to contain the background + handle and @@ -340,6 +382,8 @@ public class MultiWaveView extends View { final int directionCount = mFeedbackCount > 0 ? mChevronDrawables.size()/mFeedbackCount : 0; + mChevronAnimations.stop(); + // Add an animation for all chevron drawables. There are mFeedbackCount drawables // in each direction and directionCount directions. for (int direction = 0; direction < directionCount; direction++) { @@ -367,24 +411,21 @@ public class MultiWaveView extends View { "onUpdate", mUpdateListener)); } } + mChevronAnimations.start(); } private void stopChevronAnimation() { - for (Tweener anim : mChevronAnimations) { - anim.animator.end(); - } - mChevronAnimations.clear(); + mChevronAnimations.stop(); } private void stopHandleAnimation() { - if (mHandleAnimation != null) { - mHandleAnimation.animator.end(); - mHandleAnimation = null; - } + mHandleAnimations.stop(); } private void deactivateTargets() { - for (TargetDrawable target : mTargetDrawables) { + final int count = mTargetDrawables.size(); + for (int i = 0; i < count; i++) { + TargetDrawable target = mTargetDrawables.get(i); target.setState(TargetDrawable.STATE_INACTIVE); } mActiveTarget = -1; @@ -445,14 +486,16 @@ public class MultiWaveView extends View { // Animate handle back to the center based on current state. int delay = targetHit ? RETURN_TO_HOME_DELAY : 0; int duration = targetHit ? 0 : RETURN_TO_HOME_DURATION; - mHandleAnimation = Tweener.to(mHandleDrawable, duration, + mHandleAnimations.stop(); + mHandleAnimations.add(Tweener.to(mHandleDrawable, duration, "ease", Ease.Quart.easeOut, "delay", delay, "alpha", 1.0f, "x", 0, "y", 0, "onUpdate", mUpdateListener, - "onComplete", (mDragging && !targetHit) ? mResetListenerWithPing : mResetListener); + "onComplete", (mDragging && !targetHit) ? mResetListenerWithPing : mResetListener)); + mHandleAnimations.start(); setGrabbedState(OnTriggerListener.NO_HANDLE); } @@ -467,9 +510,7 @@ public class MultiWaveView extends View { } private void hideTargets(boolean animate) { - if (mTargetAnimations.size() > 0) { - stopTargetAnimation(); - } + mTargetAnimations.stop(); // Note: these animations should complete at the same time so that we can swap out // the target assets asynchronously from the setTargetResources() call. mAnimatingTargets = animate; @@ -497,12 +538,12 @@ public class MultiWaveView extends View { "delay", delay, "onUpdate", mUpdateListener, "onComplete", mTargetUpdateListener)); + + mTargetAnimations.start(); } private void showTargets(boolean animate) { - if (mTargetAnimations.size() > 0) { - stopTargetAnimation(); - } + mTargetAnimations.stop(); mAnimatingTargets = animate; final int delay = animate ? SHOW_ANIMATION_DELAY : 0; final int length = mTargetDrawables.size(); @@ -521,7 +562,7 @@ public class MultiWaveView extends View { } mOuterRing.setScaleX(0.5f); mOuterRing.setScaleY(0.5f); - mTargetAnimations.add(Tweener.to(mOuterRing, animate ? RING_EXPAND_DURATION : 0, + mTargetAnimations.add(Tweener.to(mOuterRing, animate ? SHOW_ANIMATION_DURATION : 0, "ease", Ease.Cubic.easeOut, "alpha", 1.0f, "scaleX", 1.0f, @@ -529,13 +570,12 @@ public class MultiWaveView extends View { "delay", delay, "onUpdate", mUpdateListener, "onComplete", mTargetUpdateListener)); + + mTargetAnimations.start(); } private void stopTargetAnimation() { - for (Tweener anim : mTargetAnimations) { - anim.animator.end(); - } - mTargetAnimations.clear(); + mTargetAnimations.stop(); } private void vibrate() { @@ -658,7 +698,6 @@ public class MultiWaveView extends View { * */ public void ping() { - stopChevronAnimation(); startChevronAnimation(); } @@ -721,7 +760,7 @@ public class MultiWaveView extends View { } private void handleDown(MotionEvent event) { - if (!trySwitchToFirstTouchState(event)) { + if (!trySwitchToFirstTouchState(event.getX(), event.getY())) { mDragging = false; stopTargetAnimation(); ping(); @@ -747,14 +786,11 @@ public class MultiWaveView extends View { } private void handleMove(MotionEvent event) { - if (!mDragging) { - trySwitchToFirstTouchState(event); - return; - } - int activeTarget = -1; final int historySize = event.getHistorySize(); - final boolean singleTarget = mTargetDrawables.size() == 1; + ArrayList<TargetDrawable> targets = mTargetDrawables; + int ntargets = targets.size(); + final boolean singleTarget = ntargets == 1; float x = 0.0f; float y = 0.0f; for (int k = 0; k < historySize + 1; k++) { @@ -768,25 +804,29 @@ public class MultiWaveView extends View { float limitX = tx * scale; float limitY = ty * scale; - if (singleTarget) { - // Snap to outer ring if there's only one target - float snapRadius = mOuterRadius - mSnapMargin; - if (touchRadius > snapRadius) { - activeTarget = 0; - } + if (!mDragging) { + trySwitchToFirstTouchState(eventX, eventY); } else { - // If there's more than one target, snap to the closest one less than hitRadius away. - float best = Float.MAX_VALUE; - final float hitRadius2 = mHitRadius * mHitRadius; - for (int i = 0; i < mTargetDrawables.size(); i++) { - // Snap to the first target in range - TargetDrawable target = mTargetDrawables.get(i); - float dx = limitX - target.getX(); - float dy = limitY - target.getY(); - float dist2 = dx*dx + dy*dy; - if (target.isEnabled() && dist2 < hitRadius2 && dist2 < best) { - activeTarget = i; - best = dist2; + if (singleTarget) { + // Snap to outer ring if there's only one target + float snapRadius = mOuterRadius - mSnapMargin; + if (touchRadius > snapRadius) { + activeTarget = 0; + } + } else { + // For more than one target, snap to the closest one less than hitRadius away. + float best = Float.MAX_VALUE; + final float hitRadius2 = mHitRadius * mHitRadius; + for (int i = 0; i < ntargets; i++) { + // Snap to the first target in range + TargetDrawable target = targets.get(i); + float dx = limitX - target.getX(); + float dy = limitY - target.getY(); + float dist2 = dx*dx + dy*dy; + if (target.isEnabled() && dist2 < hitRadius2 && dist2 < best) { + activeTarget = i; + best = dist2; + } } } } @@ -794,9 +834,13 @@ public class MultiWaveView extends View { y = limitY; } + if (!mDragging) { + return; + } + if (activeTarget != -1) { switchToState(STATE_SNAP, x,y); - TargetDrawable target = mTargetDrawables.get(activeTarget); + TargetDrawable target = targets.get(activeTarget); float newX = singleTarget ? x : target.getX(); float newY = singleTarget ? y : target.getY(); moveHandleTo(newX, newY, false); @@ -812,7 +856,7 @@ public class MultiWaveView extends View { if (mActiveTarget != activeTarget) { // Defocus the old target if (mActiveTarget != -1) { - TargetDrawable target = mTargetDrawables.get(mActiveTarget); + TargetDrawable target = targets.get(mActiveTarget); if (target.hasState(TargetDrawable.STATE_FOCUSED)) { target.setState(TargetDrawable.STATE_INACTIVE); mHandleDrawable.setAlpha(1.0f); @@ -820,7 +864,7 @@ public class MultiWaveView extends View { } // Focus the new target if (activeTarget != -1) { - TargetDrawable target = mTargetDrawables.get(activeTarget); + TargetDrawable target = targets.get(activeTarget); if (target.hasState(TargetDrawable.STATE_FOCUSED)) { target.setState(TargetDrawable.STATE_FOCUSED); mHandleDrawable.setAlpha(0.0f); @@ -877,9 +921,7 @@ public class MultiWaveView extends View { } } - private boolean trySwitchToFirstTouchState(MotionEvent event) { - final float x = event.getX(); - final float y = event.getY(); + private boolean trySwitchToFirstTouchState(float x, float y) { final float tx = x - mWaveCenterX; final float ty = y - mWaveCenterY; if (mAlwaysTrackFinger || dist2(tx,ty) <= getScaledTapRadiusSquared()) { @@ -892,9 +934,9 @@ public class MultiWaveView extends View { return false; } - private void assignDefaultsIfNeeded(float centerX, float centerY) { + private void assignDefaultsIfNeeded() { if (mOuterRadius == 0.0f) { - mOuterRadius = 0.5f*(float) Math.hypot(centerX, centerY); + mOuterRadius = Math.max(mOuterRing.getWidth(), mOuterRing.getHeight())/2.0f; } if (mHitRadius == 0.0f) { // Use the radius of inscribed circle of the first target. @@ -941,6 +983,7 @@ public class MultiWaveView extends View { super.onLayout(changed, left, top, right, bottom); final int width = right - left; final int height = bottom - top; + // Target placement width/height. This puts the targets on the greater of the ring // width or the specified outer radius. final float placementWidth = Math.max(mOuterRing.getWidth(), 2 * mOuterRadius); @@ -950,8 +993,6 @@ public class MultiWaveView extends View { float newWaveCenterY = mVerticalOffset + mVerticalInset + Math.max(height, + mMaxTargetHeight + placementHeight) / 2; - assignDefaultsIfNeeded(newWaveCenterX, newWaveCenterY); - if (mInitialLayout) { hideChevrons(); hideTargets(false); @@ -976,9 +1017,12 @@ public class MultiWaveView extends View { private void updateTargetPositions(float centerX, float centerY) { // Reposition the target drawables if the view changed. - for (int i = 0; i < mTargetDrawables.size(); i++) { - final TargetDrawable targetIcon = mTargetDrawables.get(i); - double angle = -2.0f * Math.PI * i / mTargetDrawables.size(); + ArrayList<TargetDrawable> targets = mTargetDrawables; + final int size = targets.size(); + final float alpha = (float) (-2.0f * Math.PI / size); + for (int i = 0; i < size; i++) { + final TargetDrawable targetIcon = targets.get(i); + final float angle = alpha * i; targetIcon.setPositionX(centerX); targetIcon.setPositionY(centerY); targetIcon.setX(mOuterRadius * (float) Math.cos(angle)); @@ -987,7 +1031,10 @@ public class MultiWaveView extends View { } private void updateChevronPositions(float centerX, float centerY) { - for (TargetDrawable target : mChevronDrawables) { + ArrayList<TargetDrawable> chevrons = mChevronDrawables; + final int size = chevrons.size(); + for (int i = 0; i < size; i++) { + TargetDrawable target = chevrons.get(i); if (target != null) { target.setPositionX(centerX); target.setPositionY(centerY); @@ -996,7 +1043,10 @@ public class MultiWaveView extends View { } private void hideChevrons() { - for (TargetDrawable chevron : mChevronDrawables) { + ArrayList<TargetDrawable> chevrons = mChevronDrawables; + final int size = chevrons.size(); + for (int i = 0; i < size; i++) { + TargetDrawable chevron = chevrons.get(i); if (chevron != null) { chevron.setAlpha(0.0f); } @@ -1006,14 +1056,18 @@ public class MultiWaveView extends View { @Override protected void onDraw(Canvas canvas) { mOuterRing.draw(canvas); - for (TargetDrawable target : mTargetDrawables) { + final int ntargets = mTargetDrawables.size(); + for (int i = 0; i < ntargets; i++) { + TargetDrawable target = mTargetDrawables.get(i); if (target != null) { target.draw(canvas); } } - for (TargetDrawable target : mChevronDrawables) { - if (target != null) { - target.draw(canvas); + final int nchevrons = mChevronDrawables.size(); + for (int i = 0; i < nchevrons; i++) { + TargetDrawable chevron = mChevronDrawables.get(i); + if (chevron != null) { + chevron.draw(canvas); } } mHandleDrawable.draw(canvas); diff --git a/core/java/com/android/internal/widget/multiwaveview/Tweener.java b/core/java/com/android/internal/widget/multiwaveview/Tweener.java index bc8a62f..1d502ba 100644 --- a/core/java/com/android/internal/widget/multiwaveview/Tweener.java +++ b/core/java/com/android/internal/widget/multiwaveview/Tweener.java @@ -122,7 +122,6 @@ class Tweener { anim.addListener(listener); } anim.addListener(mCleanupListener); - anim.start(); return tween; } diff --git a/core/res/res/layout/notification_action.xml b/core/res/res/layout/notification_action.xml index 28812a9..33cbab9 100644 --- a/core/res/res/layout/notification_action.xml +++ b/core/res/res/layout/notification_action.xml @@ -17,11 +17,14 @@ <Button xmlns:android="http://schemas.android.com/apk/res/android" style="?android:attr/borderlessButtonStyle" android:id="@+id/action0" - android:layout_width="match_parent" + android:layout_width="0dp" android:layout_height="48dp" + android:layout_weight="1" android:gravity="left|center_vertical" android:drawablePadding="8dp" android:paddingLeft="8dp" android:textColor="#ccc" android:textSize="14dp" + android:singleLine="true" + android:ellipsize="end" /> diff --git a/core/res/res/layout/notification_action_list.xml b/core/res/res/layout/notification_action_list.xml new file mode 100644 index 0000000..fa0a8c8 --- /dev/null +++ b/core/res/res/layout/notification_action_list.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2012 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<LinearLayout + xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@+id/actions" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="horizontal" + android:visibility="gone" + android:showDividers="middle" + android:divider="?android:attr/listDivider" + > + <!-- actions will be added here --> +</LinearLayout> diff --git a/core/res/res/layout/notification_action_tombstone.xml b/core/res/res/layout/notification_action_tombstone.xml index e61e15f..992b37c 100644 --- a/core/res/res/layout/notification_action_tombstone.xml +++ b/core/res/res/layout/notification_action_tombstone.xml @@ -15,12 +15,18 @@ --> <Button xmlns:android="http://schemas.android.com/apk/res/android" + style="?android:attr/borderlessButtonStyle" android:id="@+id/action0" - android:layout_width="match_parent" + android:layout_width="0dp" android:layout_height="48dp" + android:layout_weight="1" android:gravity="left|center_vertical" android:drawablePadding="8dp" android:paddingLeft="8dp" - android:textColor="#666" + android:textColor="#ccc" android:textSize="14dp" + android:singleLine="true" + android:ellipsize="end" + android:alpha="0.5" + android:enabled="false" /> diff --git a/core/res/res/layout/notification_template_big_base.xml b/core/res/res/layout/notification_template_big_base.xml index 378161c..d50b792 100644 --- a/core/res/res/layout/notification_template_big_base.xml +++ b/core/res/res/layout/notification_template_big_base.xml @@ -143,14 +143,11 @@ style="?android:attr/progressBarStyleHorizontal" /> </LinearLayout> - <LinearLayout + <include + layout="@layout/notification_action_list" android:id="@+id/actions" android:layout_width="match_parent" android:layout_height="wrap_content" - android:orientation="vertical" - android:visibility="gone" - > - <!-- actions will be added here --> - </LinearLayout> + /> </LinearLayout> </FrameLayout> diff --git a/core/res/res/layout/notification_template_big_picture.xml b/core/res/res/layout/notification_template_big_picture.xml index 51e46b2..f98970a 100644 --- a/core/res/res/layout/notification_template_big_picture.xml +++ b/core/res/res/layout/notification_template_big_picture.xml @@ -27,11 +27,12 @@ android:id="@+id/big_picture" android:layout_width="match_parent" android:layout_height="192dp" + android:layout_marginTop="64dp" + android:layout_gravity="bottom" android:scaleType="centerCrop" /> <include layout="@layout/notification_template_base" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginTop="192dp" /> </FrameLayout> diff --git a/core/res/res/layout/notification_template_big_text.xml b/core/res/res/layout/notification_template_big_text.xml index 77a5f11..210bc13 100644 --- a/core/res/res/layout/notification_template_big_text.xml +++ b/core/res/res/layout/notification_template_big_text.xml @@ -105,16 +105,13 @@ android:layout_weight="1" /> </LinearLayout> - <LinearLayout - android:id="@+id/actions" + <include + layout="@layout/notification_action_list" android:layout_width="match_parent" android:layout_height="0dp" - android:orientation="vertical" android:visibility="gone" android:layout_weight="1" - > - <!-- actions will be added here --> - </LinearLayout> + /> <TextView android:id="@+id/overflow_title" android:textAppearance="@style/TextAppearance.StatusBar.EventContent.Title" android:layout_width="match_parent" diff --git a/core/res/res/layout/notification_template_inbox.xml b/core/res/res/layout/notification_template_inbox.xml index 05ec1d8..eb5e759 100644 --- a/core/res/res/layout/notification_template_inbox.xml +++ b/core/res/res/layout/notification_template_inbox.xml @@ -93,8 +93,6 @@ android:layout_height="0dp" android:singleLine="true" android:ellipsize="end" - android:paddingTop="4dp" - android:paddingBottom="4dp" android:visibility="gone" android:layout_weight="1" /> @@ -104,8 +102,6 @@ android:layout_height="0dp" android:singleLine="true" android:ellipsize="end" - android:paddingTop="4dp" - android:paddingBottom="4dp" android:visibility="gone" android:layout_weight="1" /> @@ -115,8 +111,6 @@ android:layout_height="0dp" android:singleLine="true" android:ellipsize="end" - android:paddingTop="4dp" - android:paddingBottom="4dp" android:visibility="gone" android:layout_weight="1" /> @@ -126,8 +120,6 @@ android:layout_height="0dp" android:singleLine="true" android:ellipsize="end" - android:paddingTop="4dp" - android:paddingBottom="4dp" android:visibility="gone" android:layout_weight="1" /> @@ -137,21 +129,16 @@ android:layout_height="0dp" android:singleLine="true" android:ellipsize="end" - android:paddingTop="4dp" - android:paddingBottom="4dp" android:visibility="gone" android:layout_weight="1" /> - <LinearLayout + <include + layout="@layout/notification_action_list" android:id="@+id/actions" android:layout_width="match_parent" android:layout_height="wrap_content" - android:orientation="vertical" android:layout_weight="0" - android:visibility="gone" - > - <!-- actions will be added here --> - </LinearLayout> + /> <TextView android:id="@+id/overflow_title" android:textAppearance="@style/TextAppearance.StatusBar.EventContent.Title" android:layout_width="match_parent" diff --git a/core/res/res/values-af/strings.xml b/core/res/res/values-af/strings.xml index b739835..732b0ab 100644 --- a/core/res/res/values-af/strings.xml +++ b/core/res/res/values-af/strings.xml @@ -176,9 +176,9 @@ <string name="permgrouplab_network" msgid="5808983377727109831">"Netwerkkommunikasie"</string> <string name="permgroupdesc_network" msgid="4478299413241861987">"Kry toegang tot verskeie netwerkfunksies."</string> <string name="permgrouplab_bluetoothNetwork" msgid="1585403544162128109">"Bluetooth"</string> - <string name="permgroupdesc_bluetoothNetwork" msgid="5625288577164282391">"Toegangstoestelle en netwerke deur Bluetooth."</string> + <string name="permgroupdesc_bluetoothNetwork" msgid="5625288577164282391">"Kry toegang tot toestelle en netwerke deur Bluetooth."</string> <string name="permgrouplab_shortrangeNetwork" msgid="130808676377486118">"Kortreeks-netwerke"</string> - <string name="permgroupdesc_shortrangeNetwork" msgid="1884069062653436007">"Toegangstoestelle met kortreeks-netwerke soos NFC."</string> + <string name="permgroupdesc_shortrangeNetwork" msgid="1884069062653436007">"Kry toegang tot toestelle met kortreeks-netwerke soos NFC."</string> <string name="permgrouplab_audioSettings" msgid="8329261670151871235">"Oudio-instellings"</string> <string name="permgroupdesc_audioSettings" msgid="2641515403347568130">"Verander oudio-instellings."</string> <string name="permgrouplab_affectsBattery" msgid="6209246653424798033">"Affekteer battery"</string> @@ -561,7 +561,7 @@ <string name="permdesc_sdcardRead" product="nosdcard" msgid="3530894470637667917">"Laat die program toe om die USB-berging se inhoud te lees, wat foto\'s en media kan insluit."</string> <string name="permdesc_sdcardRead" product="default" msgid="2555811422562526606">"Laat die program toe om die SD-kaart se inhoud te lees, wat foto\'s en media kan insluit."</string> <string name="permlab_sdcardWrite" product="nosdcard" msgid="8485979062254666748">"verander of vee die inhoud van jou USB-berging uit"</string> - <string name="permlab_sdcardWrite" product="default" msgid="8805693630050458763">"Verander of skrap die inhoud van jou SD-kaart"</string> + <string name="permlab_sdcardWrite" product="default" msgid="8805693630050458763">"Verander of vee die inhoud van jou SD-kaart uit"</string> <string name="permdesc_sdcardWrite" product="nosdcard" msgid="6175406299445710888">"Laat die program toe om die USB-geheue te skryf."</string> <string name="permdesc_sdcardWrite" product="default" msgid="4337417790936632090">"Laat die program toe om na die SD-kaart te skryf."</string> <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"verander/vee uit interne mediabergingsinhoud"</string> diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml index 0da38aa..72132dd 100644 --- a/core/res/res/values-es-rUS/strings.xml +++ b/core/res/res/values-es-rUS/strings.xml @@ -1311,7 +1311,6 @@ <string name="sending" msgid="3245653681008218030">"Enviando..."</string> <string name="launchBrowserDefault" msgid="2057951947297614725">"¿Deseas iniciar el navegador?"</string> <string name="SetupCallDefault" msgid="5834948469253758575">"¿Aceptar la llamada?"</string> - <!-- no translation found for activity_resolver_use_always (8017770747801494933) --> - <skip /> + <string name="activity_resolver_use_always" msgid="8017770747801494933">"Siempre"</string> <string name="activity_resolver_use_once" msgid="405646673463328329">"Solo una vez"</string> </resources> diff --git a/core/res/res/values-lt/strings.xml b/core/res/res/values-lt/strings.xml index 3c705ec..f5132c1 100644 --- a/core/res/res/values-lt/strings.xml +++ b/core/res/res/values-lt/strings.xml @@ -1311,7 +1311,6 @@ <string name="sending" msgid="3245653681008218030">"Siunčiama…"</string> <string name="launchBrowserDefault" msgid="2057951947297614725">"Paleisti naršyklę?"</string> <string name="SetupCallDefault" msgid="5834948469253758575">"Priimti skambutį?"</string> - <!-- no translation found for activity_resolver_use_always (8017770747801494933) --> - <skip /> + <string name="activity_resolver_use_always" msgid="8017770747801494933">"Visada"</string> <string name="activity_resolver_use_once" msgid="405646673463328329">"Tik kartą"</string> </resources> diff --git a/core/res/res/values-lv/strings.xml b/core/res/res/values-lv/strings.xml index 0b96365..e6c8d99 100644 --- a/core/res/res/values-lv/strings.xml +++ b/core/res/res/values-lv/strings.xml @@ -1311,7 +1311,6 @@ <string name="sending" msgid="3245653681008218030">"Notiek sūtīšana…"</string> <string name="launchBrowserDefault" msgid="2057951947297614725">"Vai palaist pārlūkprogrammu?"</string> <string name="SetupCallDefault" msgid="5834948469253758575">"Vai atbildēt uz zvanu?"</string> - <!-- no translation found for activity_resolver_use_always (8017770747801494933) --> - <skip /> + <string name="activity_resolver_use_always" msgid="8017770747801494933">"Vienmēr"</string> <string name="activity_resolver_use_once" msgid="405646673463328329">"Tikai vienreiz"</string> </resources> diff --git a/core/res/res/values-ms/strings.xml b/core/res/res/values-ms/strings.xml index 47aa00a..1ab7002 100644 --- a/core/res/res/values-ms/strings.xml +++ b/core/res/res/values-ms/strings.xml @@ -177,7 +177,7 @@ <string name="permgroupdesc_network" msgid="4478299413241861987">"Akses pelbagai ciri rangkaian."</string> <string name="permgrouplab_bluetoothNetwork" msgid="1585403544162128109">"Bluetooth"</string> <string name="permgroupdesc_bluetoothNetwork" msgid="5625288577164282391">"Akses peranti dan rangkaian melalui Bluetooth."</string> - <string name="permgrouplab_shortrangeNetwork" msgid="130808676377486118">"Rangkaian jarak-pendek"</string> + <string name="permgrouplab_shortrangeNetwork" msgid="130808676377486118">"Rangkaian jarak-dekat"</string> <string name="permgroupdesc_shortrangeNetwork" msgid="1884069062653436007">"Akses peranti melalui rangkaian jarak dekat seperti NFC."</string> <string name="permgrouplab_audioSettings" msgid="8329261670151871235">"Tetapan Audio"</string> <string name="permgroupdesc_audioSettings" msgid="2641515403347568130">"Tukar tetapan audio."</string> diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml index 4bb3b2f..e7a809c 100644 --- a/core/res/res/values-pt-rPT/strings.xml +++ b/core/res/res/values-pt-rPT/strings.xml @@ -178,7 +178,7 @@ <string name="permgrouplab_bluetoothNetwork" msgid="1585403544162128109">"Bluetooth"</string> <string name="permgroupdesc_bluetoothNetwork" msgid="5625288577164282391">"Aceder a dispositivos e redes através de Bluetooth."</string> <string name="permgrouplab_shortrangeNetwork" msgid="130808676377486118">"Redes de Curto Alcance"</string> - <string name="permgroupdesc_shortrangeNetwork" msgid="1884069062653436007">"Aceder a dispositivos através de redes de curto alcance como NFC."</string> + <string name="permgroupdesc_shortrangeNetwork" msgid="1884069062653436007">"Aceder a dispositivos através de redes de curto alcance tal como a NFC."</string> <string name="permgrouplab_audioSettings" msgid="8329261670151871235">"Definições de Áudio"</string> <string name="permgroupdesc_audioSettings" msgid="2641515403347568130">"Alterar as definições de áudio."</string> <string name="permgrouplab_affectsBattery" msgid="6209246653424798033">"Afetar a Bateria"</string> @@ -1311,7 +1311,6 @@ <string name="sending" msgid="3245653681008218030">"A enviar..."</string> <string name="launchBrowserDefault" msgid="2057951947297614725">"Iniciar Navegador?"</string> <string name="SetupCallDefault" msgid="5834948469253758575">"Aceitar chamada?"</string> - <!-- no translation found for activity_resolver_use_always (8017770747801494933) --> - <skip /> + <string name="activity_resolver_use_always" msgid="8017770747801494933">"Sempre"</string> <string name="activity_resolver_use_once" msgid="405646673463328329">"Só Uma Vez"</string> </resources> diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml index 4236d50..84ce4bb 100644 --- a/core/res/res/values-pt/strings.xml +++ b/core/res/res/values-pt/strings.xml @@ -1104,7 +1104,7 @@ <string name="dlg_error_title" msgid="7323658469626514207">"Falha na operação do USB"</string> <string name="dlg_ok" msgid="7376953167039865701">"OK"</string> <string name="usb_mtp_notification_title" msgid="3699913097391550394">"Conectado como um dispositivo de mídia"</string> - <string name="usb_ptp_notification_title" msgid="1960817192216064833">"Conectadas como uma câmera"</string> + <string name="usb_ptp_notification_title" msgid="1960817192216064833">"Conectado como câmera"</string> <string name="usb_cd_installer_notification_title" msgid="6774712827892090754">"Conectados como um instalador"</string> <string name="usb_accessory_notification_title" msgid="7848236974087653666">"Conectado a um acessório USB"</string> <string name="usb_notification_message" msgid="2290859399983720271">"Toque para obter outras opções USB."</string> diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml index e943dda..3b416fe 100644 --- a/core/res/res/values-sr/strings.xml +++ b/core/res/res/values-sr/strings.xml @@ -175,28 +175,20 @@ <string name="permgroupdesc_location" msgid="5704679763124170100">"Надгледајте своју физичку локацију."</string> <string name="permgrouplab_network" msgid="5808983377727109831">"Комуникација преко мреже"</string> <string name="permgroupdesc_network" msgid="4478299413241861987">"Приступајте разним функцијама мреже."</string> - <!-- no translation found for permgrouplab_bluetoothNetwork (1585403544162128109) --> - <skip /> - <!-- no translation found for permgroupdesc_bluetoothNetwork (5625288577164282391) --> - <skip /> - <!-- no translation found for permgrouplab_shortrangeNetwork (130808676377486118) --> - <skip /> - <!-- no translation found for permgroupdesc_shortrangeNetwork (1884069062653436007) --> - <skip /> + <string name="permgrouplab_bluetoothNetwork" msgid="1585403544162128109">"Bluetooth"</string> + <string name="permgroupdesc_bluetoothNetwork" msgid="5625288577164282391">"Приступање уређајима и мрежама преко Bluetooth-а."</string> + <string name="permgrouplab_shortrangeNetwork" msgid="130808676377486118">"Мреже кратког домета"</string> + <string name="permgroupdesc_shortrangeNetwork" msgid="1884069062653436007">"Приступање уређајима преко мрежа кратког домета, као што је NFC."</string> <string name="permgrouplab_audioSettings" msgid="8329261670151871235">"Аудио подешавања"</string> <string name="permgroupdesc_audioSettings" msgid="2641515403347568130">"Промена аудио подешавања."</string> <string name="permgrouplab_affectsBattery" msgid="6209246653424798033">"Утицај на батерију"</string> <string name="permgroupdesc_affectsBattery" msgid="6441275320638916947">"Коришћење функција које могу брзо да истроше батерију."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Календар"</string> <string name="permgroupdesc_calendar" msgid="5777534316982184416">"Директан приступ календару и догађајима."</string> - <!-- no translation found for permgrouplab_dictionary (4148597128843641379) --> - <skip /> - <!-- no translation found for permgroupdesc_dictionary (7921166355964764490) --> - <skip /> - <!-- no translation found for permgrouplab_writeDictionary (8090237702432576788) --> - <skip /> - <!-- no translation found for permgroupdesc_writeDictionary (2711561994497361646) --> - <skip /> + <string name="permgrouplab_dictionary" msgid="4148597128843641379">"Читање речника корисника"</string> + <string name="permgroupdesc_dictionary" msgid="7921166355964764490">"Читање речи у речнику корисника."</string> + <string name="permgrouplab_writeDictionary" msgid="8090237702432576788">"Уписивање у речник корисника"</string> + <string name="permgroupdesc_writeDictionary" msgid="2711561994497361646">"Додавање речи у речник корисника."</string> <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Обележивачи и историја"</string> <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Директан приступ обележивачима и историји прегледача."</string> <string name="permgrouplab_deviceAlarms" msgid="6117704629728824101">"Аларм"</string> @@ -569,8 +561,7 @@ <string name="permdesc_sdcardRead" product="nosdcard" msgid="3530894470637667917">"Дозвољава апликацији читање садржаја USB меморије, што могу да буду слике и медиа датотеке."</string> <string name="permdesc_sdcardRead" product="default" msgid="2555811422562526606">"Дозвољава апликацији да чита садржај SD картице, који може да обухвата слике и медиа датотеке."</string> <string name="permlab_sdcardWrite" product="nosdcard" msgid="8485979062254666748">"измена или брисање садржаја USB меморије"</string> - <!-- no translation found for permlab_sdcardWrite (8805693630050458763) --> - <skip /> + <string name="permlab_sdcardWrite" product="default" msgid="8805693630050458763">"мењање или брисање садржаја SD картице"</string> <string name="permdesc_sdcardWrite" product="nosdcard" msgid="6175406299445710888">"Дозвољава апликацији да уписује податке на USB меморију."</string> <string name="permdesc_sdcardWrite" product="default" msgid="4337417790936632090">"Дозвољава апликацији да уписује податке на SD картицу."</string> <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"измена/брисање интерне меморије медија"</string> @@ -1090,8 +1081,7 @@ <string name="date_time_set" msgid="5777075614321087758">"Подеси"</string> <string name="date_time_done" msgid="2507683751759308828">"Готово"</string> <string name="perms_new_perm_prefix" msgid="8257740710754301407"><font size="12" fgcolor="#ff900000">"НОВО: "</font></string> - <!-- no translation found for perms_description_app (5139836143293299417) --> - <skip /> + <string name="perms_description_app" msgid="5139836143293299417">"Омогућава <xliff:g id="APP_NAME">%1$s</xliff:g>."</string> <string name="no_permissions" msgid="7283357728219338112">"Није потребна ниједна дозвола"</string> <string name="usb_storage_activity_title" msgid="4465055157209648641">"USB великог капацитета"</string> <string name="usb_storage_title" msgid="5901459041398751495">"USB је повезан"</string> @@ -1322,6 +1312,5 @@ <string name="launchBrowserDefault" msgid="2057951947297614725">"Желите ли да покренете прегледач?"</string> <string name="SetupCallDefault" msgid="5834948469253758575">"Желите ли да прихватите позив?"</string> <string name="activity_resolver_use_always" msgid="8017770747801494933">"Увек"</string> - <!-- no translation found for activity_resolver_use_once (405646673463328329) --> - <skip /> + <string name="activity_resolver_use_once" msgid="405646673463328329">"Само једном"</string> </resources> diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml index 46c58e3..17dcf64 100644 --- a/core/res/res/values-th/strings.xml +++ b/core/res/res/values-th/strings.xml @@ -175,28 +175,20 @@ <string name="permgroupdesc_location" msgid="5704679763124170100">"ตรวจดูตำแหน่งทางกายภาพของคุณ"</string> <string name="permgrouplab_network" msgid="5808983377727109831">"การสื่อสารของเครือข่าย"</string> <string name="permgroupdesc_network" msgid="4478299413241861987">"เข้าถึงคุณลักษณะเครือข่ายต่างๆ"</string> - <!-- no translation found for permgrouplab_bluetoothNetwork (1585403544162128109) --> - <skip /> - <!-- no translation found for permgroupdesc_bluetoothNetwork (5625288577164282391) --> - <skip /> - <!-- no translation found for permgrouplab_shortrangeNetwork (130808676377486118) --> - <skip /> - <!-- no translation found for permgroupdesc_shortrangeNetwork (1884069062653436007) --> - <skip /> + <string name="permgrouplab_bluetoothNetwork" msgid="1585403544162128109">"บลูทูธ"</string> + <string name="permgroupdesc_bluetoothNetwork" msgid="5625288577164282391">"เข้าถึงอุปกรณ์และเครือข่ายผ่านบลูทูธ"</string> + <string name="permgrouplab_shortrangeNetwork" msgid="130808676377486118">"เครือข่ายระยะใกล้"</string> + <string name="permgroupdesc_shortrangeNetwork" msgid="1884069062653436007">"เข้าถึงอุปกรณ์ผ่านเครือข่ายระยะใกล้ เช่น NFC"</string> <string name="permgrouplab_audioSettings" msgid="8329261670151871235">"การตั้งค่าเสียง"</string> <string name="permgroupdesc_audioSettings" msgid="2641515403347568130">"เปลี่ยนการตั้งค่าเสียง"</string> <string name="permgrouplab_affectsBattery" msgid="6209246653424798033">"มีผลต่อแบตเตอรี่"</string> <string name="permgroupdesc_affectsBattery" msgid="6441275320638916947">"ใช้คุณลักษณะที่ทำให้พลังงานแบตเตอรี่ลดลงอย่างรวดเร็ว"</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"ปฏิทิน"</string> <string name="permgroupdesc_calendar" msgid="5777534316982184416">"เข้าถึงปฏิทินและกิจกรรมโดยตรง"</string> - <!-- no translation found for permgrouplab_dictionary (4148597128843641379) --> - <skip /> - <!-- no translation found for permgroupdesc_dictionary (7921166355964764490) --> - <skip /> - <!-- no translation found for permgrouplab_writeDictionary (8090237702432576788) --> - <skip /> - <!-- no translation found for permgroupdesc_writeDictionary (2711561994497361646) --> - <skip /> + <string name="permgrouplab_dictionary" msgid="4148597128843641379">"อ่านพจนานุกรมผู้ใช้"</string> + <string name="permgroupdesc_dictionary" msgid="7921166355964764490">"อ่านคำในพจนานุกรมผู้ใช้"</string> + <string name="permgrouplab_writeDictionary" msgid="8090237702432576788">"เขียนพจนานุกรมผู้ใช้"</string> + <string name="permgroupdesc_writeDictionary" msgid="2711561994497361646">"เพิ่มคำลงในพจนานุกรมผู้ใช้"</string> <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"บุ๊กมาร์กและประวัติ"</string> <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"เข้าถึงบุ๊กมาร์กและประวัติของเบราว์เซอร์โดยตรง"</string> <string name="permgrouplab_deviceAlarms" msgid="6117704629728824101">"เตือน"</string> @@ -569,8 +561,7 @@ <string name="permdesc_sdcardRead" product="nosdcard" msgid="3530894470637667917">"อนุญาตให้แอปอ่านเนื้อหาในที่จัดเก็บข้อมูล USB ซึ่งอาจรวมไปถึงรูปภาพและสื่อ"</string> <string name="permdesc_sdcardRead" product="default" msgid="2555811422562526606">"อนุญาตให้แอปอ่านเนื้อหาในการ์ด SD ซึ่งอาจรวมไปถึงรูปภาพและสื่อ"</string> <string name="permlab_sdcardWrite" product="nosdcard" msgid="8485979062254666748">"แก้ไขหรือลบเนื้อหาใน USB"</string> - <!-- no translation found for permlab_sdcardWrite (8805693630050458763) --> - <skip /> + <string name="permlab_sdcardWrite" product="default" msgid="8805693630050458763">"แก้ไขหรือลบเนื้อหาในการ์ด SD ของคุณ"</string> <string name="permdesc_sdcardWrite" product="nosdcard" msgid="6175406299445710888">"อนุญาตให้แอปฯ เขียนลงใน USB"</string> <string name="permdesc_sdcardWrite" product="default" msgid="4337417790936632090">"อนุญาตให้แอปพลิเคชันเขียนลงบนการ์ด SD"</string> <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"แก้/ลบเนื้อหาข้อมูลสื่อภายใน"</string> @@ -1090,8 +1081,7 @@ <string name="date_time_set" msgid="5777075614321087758">"ตั้งค่า"</string> <string name="date_time_done" msgid="2507683751759308828">"เสร็จสิ้น"</string> <string name="perms_new_perm_prefix" msgid="8257740710754301407"><font size="12" fgcolor="#ff900000">"ใหม่: "</font></string> - <!-- no translation found for perms_description_app (5139836143293299417) --> - <skip /> + <string name="perms_description_app" msgid="5139836143293299417">"โดย <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> <string name="no_permissions" msgid="7283357728219338112">"ไม่ต้องการการอนุญาต"</string> <string name="usb_storage_activity_title" msgid="4465055157209648641">"ที่จัดเก็บข้อมูลจำนวนมากแบบ USB"</string> <string name="usb_storage_title" msgid="5901459041398751495">"เชื่อมต่อ USB แล้ว"</string> @@ -1321,8 +1311,6 @@ <string name="sending" msgid="3245653681008218030">"กำลังส่ง…"</string> <string name="launchBrowserDefault" msgid="2057951947297614725">"เปิดเบราว์เซอร์หรือไม่"</string> <string name="SetupCallDefault" msgid="5834948469253758575">"รับสายหรือไม่"</string> - <!-- no translation found for activity_resolver_use_always (8017770747801494933) --> - <skip /> - <!-- no translation found for activity_resolver_use_once (405646673463328329) --> - <skip /> + <string name="activity_resolver_use_always" msgid="8017770747801494933">"ทุกครั้ง"</string> + <string name="activity_resolver_use_once" msgid="405646673463328329">"เพียงแค่ครั้งเดียว"</string> </resources> diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml index 9aa2df3..9222823 100644 --- a/core/res/res/values-tr/strings.xml +++ b/core/res/res/values-tr/strings.xml @@ -175,28 +175,20 @@ <string name="permgroupdesc_location" msgid="5704679763124170100">"Fiziksel konumunuzu izleme."</string> <string name="permgrouplab_network" msgid="5808983377727109831">"Ağ iletişimi"</string> <string name="permgroupdesc_network" msgid="4478299413241861987">"Çeşitli ağ özelliklerine erişme."</string> - <!-- no translation found for permgrouplab_bluetoothNetwork (1585403544162128109) --> - <skip /> - <!-- no translation found for permgroupdesc_bluetoothNetwork (5625288577164282391) --> - <skip /> - <!-- no translation found for permgrouplab_shortrangeNetwork (130808676377486118) --> - <skip /> - <!-- no translation found for permgroupdesc_shortrangeNetwork (1884069062653436007) --> - <skip /> + <string name="permgrouplab_bluetoothNetwork" msgid="1585403544162128109">"Bluetooth"</string> + <string name="permgroupdesc_bluetoothNetwork" msgid="5625288577164282391">"Cihazlara ve ağlara Bluetooth ile eriş."</string> + <string name="permgrouplab_shortrangeNetwork" msgid="130808676377486118">"Kısa Mesafeli Ağlar"</string> + <string name="permgroupdesc_shortrangeNetwork" msgid="1884069062653436007">"Cihazlara NFC gibi kısa mesafeli ağları kullanarak eriş."</string> <string name="permgrouplab_audioSettings" msgid="8329261670151871235">"Ses Ayarları"</string> <string name="permgroupdesc_audioSettings" msgid="2641515403347568130">"Ses ayarlarını değiştirme."</string> <string name="permgrouplab_affectsBattery" msgid="6209246653424798033">"Pili Etkileyenler"</string> <string name="permgroupdesc_affectsBattery" msgid="6441275320638916947">"Pili çok çabuk tüketebilen özellikleri kullanma."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Takvim"</string> <string name="permgroupdesc_calendar" msgid="5777534316982184416">"Takvime ve etkinliklere doğrudan erişim."</string> - <!-- no translation found for permgrouplab_dictionary (4148597128843641379) --> - <skip /> - <!-- no translation found for permgroupdesc_dictionary (7921166355964764490) --> - <skip /> - <!-- no translation found for permgrouplab_writeDictionary (8090237702432576788) --> - <skip /> - <!-- no translation found for permgroupdesc_writeDictionary (2711561994497361646) --> - <skip /> + <string name="permgrouplab_dictionary" msgid="4148597128843641379">"Kullanıcı Sözlüğünü Oku"</string> + <string name="permgroupdesc_dictionary" msgid="7921166355964764490">"Kelimeleri kullanıcı sözlüğünde oku."</string> + <string name="permgrouplab_writeDictionary" msgid="8090237702432576788">"Kullanıcı Sözlüğüne Yaz"</string> + <string name="permgroupdesc_writeDictionary" msgid="2711561994497361646">"Kelimeleri kullanıcı sözlüğüne ekle."</string> <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Yer İşaretleri ve Geçmiş"</string> <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Yer işaretlerine ve tarayıcı geçmişine doğrudan erişim."</string> <string name="permgrouplab_deviceAlarms" msgid="6117704629728824101">"Alarm"</string> @@ -569,8 +561,7 @@ <string name="permdesc_sdcardRead" product="nosdcard" msgid="3530894470637667917">"Uygulamaya USB depolamanın içeriğini okuma izni verir. Bu izin fotoğrafları ve medyayı da içerebilir."</string> <string name="permdesc_sdcardRead" product="default" msgid="2555811422562526606">"Uygulamaya SD kartın içeriğini okuma izni verir. Bu izin fotoğrafları ve medyayı da içerebilir."</string> <string name="permlab_sdcardWrite" product="nosdcard" msgid="8485979062254666748">"USB depolamamın içeriğini değiştir veya sil"</string> - <!-- no translation found for permlab_sdcardWrite (8805693630050458763) --> - <skip /> + <string name="permlab_sdcardWrite" product="default" msgid="8805693630050458763">"SD kartın içeriğini değiştir veya sil"</string> <string name="permdesc_sdcardWrite" product="nosdcard" msgid="6175406299445710888">"Uygulamaya USB depolama birimine yazma izni verir."</string> <string name="permdesc_sdcardWrite" product="default" msgid="4337417790936632090">"Uygulamaya, SD karta yazma izni verir."</string> <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"dahili medya depolama birimi içeriğini değiştir/sil"</string> @@ -1090,8 +1081,7 @@ <string name="date_time_set" msgid="5777075614321087758">"Ayarla"</string> <string name="date_time_done" msgid="2507683751759308828">"Tamamlandı"</string> <string name="perms_new_perm_prefix" msgid="8257740710754301407"><font size="12" fgcolor="#ff900000">"YENİ: "</font></string> - <!-- no translation found for perms_description_app (5139836143293299417) --> - <skip /> + <string name="perms_description_app" msgid="5139836143293299417">"Sağlayan: <xliff:g id="APP_NAME">%1$s</xliff:g>."</string> <string name="no_permissions" msgid="7283357728219338112">"İzin gerektirmez"</string> <string name="usb_storage_activity_title" msgid="4465055157209648641">"USB yığın depolama"</string> <string name="usb_storage_title" msgid="5901459041398751495">"USB bağlandı"</string> @@ -1321,8 +1311,6 @@ <string name="sending" msgid="3245653681008218030">"Gönderiliyor…"</string> <string name="launchBrowserDefault" msgid="2057951947297614725">"Tarayıcı Başlatılsın mı?"</string> <string name="SetupCallDefault" msgid="5834948469253758575">"Çağrı kabul edilsin mi?"</string> - <!-- no translation found for activity_resolver_use_always (8017770747801494933) --> - <skip /> - <!-- no translation found for activity_resolver_use_once (405646673463328329) --> - <skip /> + <string name="activity_resolver_use_always" msgid="8017770747801494933">"Her zaman"</string> + <string name="activity_resolver_use_once" msgid="405646673463328329">"Sadece Bir Defa"</string> </resources> diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml index 1487132..542f048 100644 --- a/core/res/res/values-vi/strings.xml +++ b/core/res/res/values-vi/strings.xml @@ -1311,7 +1311,6 @@ <string name="sending" msgid="3245653681008218030">"Đang gửi…"</string> <string name="launchBrowserDefault" msgid="2057951947297614725">"Khởi chạy trình duyệt?"</string> <string name="SetupCallDefault" msgid="5834948469253758575">"Chấp nhận cuộc gọi?"</string> - <!-- no translation found for activity_resolver_use_always (8017770747801494933) --> - <skip /> + <string name="activity_resolver_use_always" msgid="8017770747801494933">"Luôn bật"</string> <string name="activity_resolver_use_once" msgid="405646673463328329">"Chỉ một lần"</string> </resources> diff --git a/core/res/res/values-zu/strings.xml b/core/res/res/values-zu/strings.xml index dce0525..0c9717f 100644 --- a/core/res/res/values-zu/strings.xml +++ b/core/res/res/values-zu/strings.xml @@ -185,7 +185,7 @@ <string name="permgroupdesc_affectsBattery" msgid="6441275320638916947">"Sebenzisa izici ezingakhipha ngokushesha ibhethri."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Ikhalenda"</string> <string name="permgroupdesc_calendar" msgid="5777534316982184416">"Ukufinyelela okuqondile kukhalenda nezehlakalo."</string> - <string name="permgrouplab_dictionary" msgid="4148597128843641379">"Funda isichzamazwi somsebenzisi"</string> + <string name="permgrouplab_dictionary" msgid="4148597128843641379">"Funda isichazamazwi somsebenzisi"</string> <string name="permgroupdesc_dictionary" msgid="7921166355964764490">"Funda amagama kusichazamazwi somsebenzisi."</string> <string name="permgrouplab_writeDictionary" msgid="8090237702432576788">"Bhala isichazamazwi somsebenzisi"</string> <string name="permgroupdesc_writeDictionary" msgid="2711561994497361646">"Engeza amagama kusichazamazwi somsebenzisi."</string> diff --git a/core/res/res/values/styles.xml b/core/res/res/values/styles.xml index 2b34dab..a90dab8 100644 --- a/core/res/res/values/styles.xml +++ b/core/res/res/values/styles.xml @@ -239,22 +239,25 @@ please see styles_device_defaults.xml. </style> <!-- Notification content styles --> <style name="TextAppearance.StatusBar.EventContent"> - <item name="android:textColor">?android:attr/textColorSecondary</item> - <item name="android:textSize">12sp</item> + <item name="android:textColor">#808080</item> + <item name="android:textSize">14dp</item> </style> <style name="TextAppearance.StatusBar.EventContent.Title"> - <item name="android:textColor">?android:attr/textColorPrimary</item> - <item name="android:textSize">16sp</item> + <item name="android:textColor">#ffffff</item> + <item name="android:fontFamily">sans-serif-light</item> + <item name="android:textSize">18dp</item> <item name="android:textStyle">bold</item> </style> <style name="TextAppearance.StatusBar.EventContent.Line2"> - <item name="android:textSize">13sp</item> + <!-- inherit all --> </style> <style name="TextAppearance.StatusBar.EventContent.Info"> - <!-- inherit all --> + <item name="android:textSize">12sp</item> + <item name="android:textColor">#666666</item> </style> <style name="TextAppearance.StatusBar.EventContent.Time"> - <!-- inherit all --> + <item name="android:textSize">12sp</item> + <item name="android:textColor">#666666</item> </style> <style name="TextAppearance.Small.CalendarViewWeekDayView"> @@ -631,6 +634,7 @@ please see styles_device_defaults.xml. <style name="Widget.WebView"> <item name="android:focusable">true</item> + <item name="android:focusableInTouchMode">true</item> <item name="android:scrollbars">horizontal|vertical</item> </style> |