diff options
Diffstat (limited to 'core')
62 files changed, 698 insertions, 116 deletions
diff --git a/core/java/android/accounts/AccountManager.java b/core/java/android/accounts/AccountManager.java index dbf4de8..530ecf1 100644 --- a/core/java/android/accounts/AccountManager.java +++ b/core/java/android/accounts/AccountManager.java @@ -32,6 +32,7 @@ import android.util.Log; import android.text.TextUtils; import java.io.IOException; +import java.util.ArrayList; import java.util.concurrent.Callable; import java.util.concurrent.CancellationException; import java.util.concurrent.ExecutionException; @@ -41,6 +42,7 @@ import java.util.concurrent.TimeUnit; import java.util.HashMap; import java.util.Map; +import com.google.android.collect.Lists; import com.google.android.collect.Maps; /** @@ -1769,6 +1771,44 @@ public class AccountManager { return task; } + /** + * Returns an intent to an {@link Activity} that prompts the user to choose from a list of + * accounts. + * The caller will then typically start the activity by calling + * <code>startActivityWithResult(intent, ...);</code>. + * <p> + * On success the activity returns a Bundle with the account name and type specified using + * keys {@link #KEY_ACCOUNT_NAME} and {@link #KEY_ACCOUNT_TYPE}. + * <p> + * The most common case is to call this with one account type, e.g.: + * <p> + * <pre> newChooseAccountsIntent(null, null, new String[]{"com.google"}, null);</pre> + * @param selectedAccount if specified, indicates that the {@link Account} is the currently + * selected one, according to the caller's definition of selected. + * @param allowableAccounts an optional {@link ArrayList} of accounts that are allowed to be + * shown. If not specified then this field will not limit the displayed accounts. + * @param allowableAccountTypes an optional string array of account types. These are used + * both to filter the shown accounts and to filter the list of account types that are shown + * when adding an account. + * @param addAccountOptions This {@link Bundle} is passed as the addAccount options + * @return an {@link Intent} that can be used to launch the ChooseAccount activity flow. + */ + static public Intent newChooseAccountIntent(Account selectedAccount, + ArrayList<Account> allowableAccounts, + String[] allowableAccountTypes, + Bundle addAccountOptions) { + Intent intent = new Intent(); + intent.setClassName("android", "android.accounts.ChooseTypeAndAccountActivity"); + intent.putExtra(ChooseTypeAndAccountActivity.EXTRA_ALLOWABLE_ACCOUNTS_ARRAYLIST, + allowableAccounts); + intent.putExtra(ChooseTypeAndAccountActivity.EXTRA_ALLOWABLE_ACCOUNT_TYPES_ARRAYLIST, + allowableAccountTypes != null ? Lists.newArrayList(allowableAccountTypes) : 0); + intent.putExtra(ChooseTypeAndAccountActivity.EXTRA_ADD_ACCOUNT_OPTIONS_BUNDLE, + addAccountOptions); + intent.putExtra(ChooseTypeAndAccountActivity.EXTRA_SELECTED_ACCOUNT, selectedAccount); + return intent; + } + private final HashMap<OnAccountsUpdateListener, Handler> mAccountsUpdatedListeners = Maps.newHashMap(); diff --git a/core/java/android/accounts/ChooseAccountTypeActivity.java b/core/java/android/accounts/ChooseAccountTypeActivity.java new file mode 100644 index 0000000..836164c --- /dev/null +++ b/core/java/android/accounts/ChooseAccountTypeActivity.java @@ -0,0 +1,220 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package android.accounts; + +import android.app.Activity; +import android.content.Context; +import android.content.Intent; +import android.content.pm.PackageManager; +import android.content.res.Resources; +import android.graphics.drawable.Drawable; +import android.os.Bundle; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.ListView; +import android.widget.TextView; +import com.android.internal.R; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +/** + * @hide + */ +public class ChooseAccountTypeActivity extends Activity implements AccountManagerCallback<Bundle> { + private static final String TAG = "AccountManager"; + + private HashMap<String, AuthInfo> mTypeToAuthenticatorInfo = new HashMap<String, AuthInfo>(); + private ArrayList<AuthInfo> mAuthenticatorInfosToDisplay; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.choose_account); + + // Read the validAccountTypes, if present, and add them to the setOfAllowableAccountTypes + Set<String> setOfAllowableAccountTypes = null; + ArrayList<String> validAccountTypes = getIntent().getStringArrayListExtra( + ChooseTypeAndAccountActivity.EXTRA_ALLOWABLE_ACCOUNT_TYPES_ARRAYLIST); + if (validAccountTypes != null) { + setOfAllowableAccountTypes = new HashSet<String>(validAccountTypes.size()); + for (String type : validAccountTypes) { + setOfAllowableAccountTypes.add(type); + } + } + + // create a map of account authenticators + buildTypeToAuthDescriptionMap(); + + // Create a list of authenticators that are allowable. Filter out those that + // don't match the allowable account types, if provided. + mAuthenticatorInfosToDisplay = new ArrayList<AuthInfo>(mTypeToAuthenticatorInfo.size()); + for (Map.Entry<String, AuthInfo> entry: mTypeToAuthenticatorInfo.entrySet()) { + final String type = entry.getKey(); + final AuthInfo info = entry.getValue(); + if (setOfAllowableAccountTypes != null + && !setOfAllowableAccountTypes.contains(type)) { + continue; + } + mAuthenticatorInfosToDisplay.add(info); + } + + if (mAuthenticatorInfosToDisplay.isEmpty()) { + Bundle bundle = new Bundle(); + bundle.putString(AccountManager.KEY_ERROR_MESSAGE, "no allowable account types"); + setResult(Activity.RESULT_OK, new Intent().putExtras(bundle)); + finish(); + return; + } + + if (mAuthenticatorInfosToDisplay.size() == 1) { + runAddAccountForAuthenticator(mAuthenticatorInfosToDisplay.get(0)); + return; + } + + // Setup the list + ListView list = (ListView) findViewById(android.R.id.list); + // Use an existing ListAdapter that will map an array of strings to TextViews + list.setAdapter(new AccountArrayAdapter(this, + android.R.layout.simple_list_item_1, mAuthenticatorInfosToDisplay)); + list.setChoiceMode(ListView.CHOICE_MODE_NONE); + list.setTextFilterEnabled(false); + list.setOnItemClickListener(new AdapterView.OnItemClickListener() { + public void onItemClick(AdapterView<?> parent, View v, int position, long id) { + runAddAccountForAuthenticator(mAuthenticatorInfosToDisplay.get(position)); + } + }); + } + + private void buildTypeToAuthDescriptionMap() { + for(AuthenticatorDescription desc : AccountManager.get(this).getAuthenticatorTypes()) { + String name = null; + Drawable icon = null; + try { + Context authContext = createPackageContext(desc.packageName, 0); + icon = authContext.getResources().getDrawable(desc.iconId); + final CharSequence sequence = authContext.getResources().getText(desc.labelId); + if (sequence != null) { + name = sequence.toString(); + } + name = sequence.toString(); + } catch (PackageManager.NameNotFoundException e) { + // Nothing we can do much here, just log + if (Log.isLoggable(TAG, Log.WARN)) { + Log.w(TAG, "No icon name for account type " + desc.type); + } + } catch (Resources.NotFoundException e) { + // Nothing we can do much here, just log + if (Log.isLoggable(TAG, Log.WARN)) { + Log.w(TAG, "No icon resource for account type " + desc.type); + } + } + AuthInfo authInfo = new AuthInfo(desc, name, icon); + mTypeToAuthenticatorInfo.put(desc.type, authInfo); + } + } + + protected void runAddAccountForAuthenticator(AuthInfo authInfo) { + Log.d(TAG, "selected account type " + authInfo.name); + Bundle options = getIntent().getBundleExtra( + ChooseTypeAndAccountActivity.EXTRA_ADD_ACCOUNT_OPTIONS_BUNDLE); + AccountManager.get(this).addAccount(authInfo.desc.type, null, null, options, + this, this, null); + } + + public void run(final AccountManagerFuture<Bundle> accountManagerFuture) { + try { + Bundle accountManagerResult = accountManagerFuture.getResult(); + Bundle bundle = new Bundle(); + bundle.putString(AccountManager.KEY_ACCOUNT_NAME, + accountManagerResult.getString(AccountManager.KEY_ACCOUNT_NAME)); + bundle.putString(AccountManager.KEY_ACCOUNT_TYPE, + accountManagerResult.getString(AccountManager.KEY_ACCOUNT_TYPE)); + setResult(Activity.RESULT_OK, new Intent().putExtras(bundle)); + finish(); + return; + } catch (OperationCanceledException e) { + setResult(Activity.RESULT_CANCELED); + finish(); + return; + } catch (IOException e) { + } catch (AuthenticatorException e) { + } + Bundle bundle = new Bundle(); + bundle.putString(AccountManager.KEY_ERROR_MESSAGE, "error communicating with server"); + setResult(Activity.RESULT_OK, new Intent().putExtras(bundle)); + finish(); + } + + private static class AuthInfo { + final AuthenticatorDescription desc; + final String name; + final Drawable drawable; + + AuthInfo(AuthenticatorDescription desc, String name, Drawable drawable) { + this.desc = desc; + this.name = name; + this.drawable = drawable; + } + } + + private static class ViewHolder { + ImageView icon; + TextView text; + } + + private static class AccountArrayAdapter extends ArrayAdapter<AuthInfo> { + private LayoutInflater mLayoutInflater; + private ArrayList<AuthInfo> mInfos; + + public AccountArrayAdapter(Context context, int textViewResourceId, + ArrayList<AuthInfo> infos) { + super(context, textViewResourceId, infos); + mInfos = infos; + mLayoutInflater = (LayoutInflater) context.getSystemService( + Context.LAYOUT_INFLATER_SERVICE); + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + ViewHolder holder; + + if (convertView == null) { + convertView = mLayoutInflater.inflate(R.layout.choose_account_row, null); + holder = new ViewHolder(); + holder.text = (TextView) convertView.findViewById(R.id.account_row_text); + holder.icon = (ImageView) convertView.findViewById(R.id.account_row_icon); + convertView.setTag(holder); + } else { + holder = (ViewHolder) convertView.getTag(); + } + + holder.text.setText(mInfos.get(position).name); + holder.icon.setImageDrawable(mInfos.get(position).drawable); + + return convertView; + } + } +} diff --git a/core/java/android/accounts/ChooseTypeAndAccountActivity.java b/core/java/android/accounts/ChooseTypeAndAccountActivity.java new file mode 100644 index 0000000..a903399 --- /dev/null +++ b/core/java/android/accounts/ChooseTypeAndAccountActivity.java @@ -0,0 +1,274 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package android.accounts; + +import android.app.Activity; +import android.content.Context; +import android.content.Intent; +import android.content.pm.PackageManager; +import android.content.res.Resources; +import android.graphics.drawable.Drawable; +import android.os.Bundle; +import android.os.Parcelable; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.Button; +import android.widget.ImageView; +import android.widget.ListView; +import android.widget.TextView; +import com.android.internal.R; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Set; + +/** + * @hide + */ +public class ChooseTypeAndAccountActivity extends Activity { + private static final String TAG = "AccountManager"; + + /** + * A Parcelable ArrayList of Account objects that limits the choosable accounts to those + * in this list, if this parameter is supplied. + */ + public static final String EXTRA_ALLOWABLE_ACCOUNTS_ARRAYLIST = "allowableAccounts"; + + /** + * A Parcelable ArrayList of String objects that limits the accounts to choose to those + * that match the types in this list, if this parameter is supplied. This list is also + * used to filter the allowable account types if add account is selected. + */ + public static final String EXTRA_ALLOWABLE_ACCOUNT_TYPES_ARRAYLIST = "allowableAccountTypes"; + + /** + * This is passed as the options bundle in AccountManager.addAccount() if it is called. + */ + public static final String EXTRA_ADD_ACCOUNT_OPTIONS_BUNDLE = "addAccountOptions"; + + /** + * If set then the specified account is already "selected". + */ + public static final String EXTRA_SELECTED_ACCOUNT = "selectedAccount"; + + private ArrayList<AccountInfo> mAccountInfos; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.choose_type_and_account); + final AccountManager accountManager = AccountManager.get(this); + + // build an efficiently queryable map of account types to authenticator descriptions + final HashMap<String, AuthenticatorDescription> typeToAuthDescription = + new HashMap<String, AuthenticatorDescription>(); + for(AuthenticatorDescription desc : accountManager.getAuthenticatorTypes()) { + typeToAuthDescription.put(desc.type, desc); + } + + // Read the validAccounts, if present, and add them to the setOfAllowableAccounts + Set<Account> setOfAllowableAccounts = null; + final ArrayList<Parcelable> validAccounts = + getIntent().getParcelableArrayListExtra(EXTRA_ALLOWABLE_ACCOUNTS_ARRAYLIST); + if (validAccounts != null) { + setOfAllowableAccounts = new HashSet<Account>(validAccounts.size()); + for (Parcelable parcelable : validAccounts) { + setOfAllowableAccounts.add((Account)parcelable); + } + } + + // Read the validAccountTypes, if present, and add them to the setOfAllowableAccountTypes + Set<String> setOfAllowableAccountTypes = null; + final ArrayList<String> validAccountTypes = + getIntent().getStringArrayListExtra(EXTRA_ALLOWABLE_ACCOUNT_TYPES_ARRAYLIST); + if (validAccountTypes != null) { + setOfAllowableAccountTypes = new HashSet<String>(validAccountTypes.size()); + for (String type : validAccountTypes) { + setOfAllowableAccountTypes.add(type); + } + } + + // Create a list of AccountInfo objects for each account that is allowable. Filter out + // accounts that don't match the allowable types, if provided, or that don't match the + // allowable accounts, if provided. + final Account[] accounts = accountManager.getAccounts(); + mAccountInfos = new ArrayList<AccountInfo>(accounts.length); + for (Account account : accounts) { + if (setOfAllowableAccounts != null + && !setOfAllowableAccounts.contains(account)) { + continue; + } + if (setOfAllowableAccountTypes != null + && !setOfAllowableAccountTypes.contains(account.type)) { + continue; + } + mAccountInfos.add(new AccountInfo(account, + getDrawableForType(typeToAuthDescription, account.type))); + } + + // If there are no allowable accounts go directly to add account + if (mAccountInfos.isEmpty()) { + startChooseAccountTypeActivity(); + return; + } + + // if there is only one allowable account return it + if (mAccountInfos.size() == 1) { + Account account = mAccountInfos.get(0).account; + setResultAndFinish(account.name, account.type); + return; + } + + // there is more than one allowable account. initialize the list adapter to allow + // the user to select an account. + ListView list = (ListView) findViewById(android.R.id.list); + list.setAdapter(new AccountArrayAdapter(this, + android.R.layout.simple_list_item_1, mAccountInfos)); + list.setChoiceMode(ListView.CHOICE_MODE_SINGLE); + list.setTextFilterEnabled(false); + list.setOnItemClickListener(new AdapterView.OnItemClickListener() { + public void onItemClick(AdapterView<?> parent, View v, int position, long id) { + onListItemClick((ListView)parent, v, position, id); + } + }); + + // set the listener for the addAccount button + Button addAccountButton = (Button) findViewById(R.id.addAccount); + addAccountButton.setOnClickListener(new View.OnClickListener() { + public void onClick(final View v) { + startChooseAccountTypeActivity(); + } + }); + } + + // Called when the choose account type activity (for adding an account) returns. + // If it was a success read the account and set it in the result. In all cases + // return the result and finish this activity. + @Override + protected void onActivityResult(final int requestCode, final int resultCode, + final Intent data) { + if (resultCode == RESULT_OK && data != null) { + String accountName = data.getStringExtra(AccountManager.KEY_ACCOUNT_NAME); + String accountType = data.getStringExtra(AccountManager.KEY_ACCOUNT_TYPE); + if (accountName != null && accountType != null) { + setResultAndFinish(accountName, accountType); + return; + } + } + setResult(Activity.RESULT_CANCELED); + finish(); + } + + private Drawable getDrawableForType( + final HashMap<String, AuthenticatorDescription> typeToAuthDescription, + String accountType) { + Drawable icon = null; + if (typeToAuthDescription.containsKey(accountType)) { + try { + AuthenticatorDescription desc = typeToAuthDescription.get(accountType); + Context authContext = createPackageContext(desc.packageName, 0); + icon = authContext.getResources().getDrawable(desc.iconId); + } catch (PackageManager.NameNotFoundException e) { + // Nothing we can do much here, just log + if (Log.isLoggable(TAG, Log.WARN)) { + Log.w(TAG, "No icon name for account type " + accountType); + } + } catch (Resources.NotFoundException e) { + // Nothing we can do much here, just log + if (Log.isLoggable(TAG, Log.WARN)) { + Log.w(TAG, "No icon resource for account type " + accountType); + } + } + } + return icon; + } + + protected void onListItemClick(ListView l, View v, int position, long id) { + AccountInfo accountInfo = mAccountInfos.get(position); + Log.d(TAG, "selected account " + accountInfo.account); + setResultAndFinish(accountInfo.account.name, accountInfo.account.type); + } + + private void setResultAndFinish(final String accountName, final String accountType) { + Bundle bundle = new Bundle(); + bundle.putString(AccountManager.KEY_ACCOUNT_NAME, accountName); + bundle.putString(AccountManager.KEY_ACCOUNT_TYPE, accountType); + setResult(Activity.RESULT_OK, new Intent().putExtras(bundle)); + finish(); + } + + private void startChooseAccountTypeActivity() { + final Intent intent = new Intent(this, ChooseAccountTypeActivity.class); + intent.putStringArrayListExtra(EXTRA_ALLOWABLE_ACCOUNT_TYPES_ARRAYLIST, + getIntent().getStringArrayListExtra(EXTRA_ALLOWABLE_ACCOUNT_TYPES_ARRAYLIST)); + intent.putExtra(EXTRA_ADD_ACCOUNT_OPTIONS_BUNDLE, + getIntent().getBundleExtra(EXTRA_ALLOWABLE_ACCOUNT_TYPES_ARRAYLIST)); + startActivityForResult(intent, 0); + } + + private static class AccountInfo { + final Account account; + final Drawable drawable; + + AccountInfo(Account account, Drawable drawable) { + this.account = account; + this.drawable = drawable; + } + } + + private static class ViewHolder { + ImageView icon; + TextView text; + } + + private static class AccountArrayAdapter extends ArrayAdapter<AccountInfo> { + private LayoutInflater mLayoutInflater; + private ArrayList<AccountInfo> mInfos; + + public AccountArrayAdapter(Context context, int textViewResourceId, + ArrayList<AccountInfo> infos) { + super(context, textViewResourceId, infos); + mInfos = infos; + mLayoutInflater = (LayoutInflater) context.getSystemService( + Context.LAYOUT_INFLATER_SERVICE); + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + ViewHolder holder; + + if (convertView == null) { + convertView = mLayoutInflater.inflate(R.layout.choose_account_row, null); + holder = new ViewHolder(); + holder.text = (TextView) convertView.findViewById(R.id.account_row_text); + holder.icon = (ImageView) convertView.findViewById(R.id.account_row_icon); + convertView.setTag(holder); + } else { + holder = (ViewHolder) convertView.getTag(); + } + + holder.text.setText(mInfos.get(position).account.name); + holder.icon.setImageDrawable(mInfos.get(position).drawable); + + return convertView; + } + } +} diff --git a/core/java/android/app/SearchManager.java b/core/java/android/app/SearchManager.java index 5c4cc87..3290b9d 100644 --- a/core/java/android/app/SearchManager.java +++ b/core/java/android/app/SearchManager.java @@ -338,7 +338,7 @@ public class SearchManager /** * Column name for suggestions cursor. <i>Optional.</i> This column may be - * used to specify the time in (@link System#currentTimeMillis + * used to specify the time in {@link System#currentTimeMillis * System.currentTImeMillis()} (wall time in UTC) when an item was last * accessed within the results-providing application. If set, this may be * used to show more-recently-used items first. diff --git a/core/java/android/view/ViewGroup.java b/core/java/android/view/ViewGroup.java index c7b59b8..b678c7d 100644 --- a/core/java/android/view/ViewGroup.java +++ b/core/java/android/view/ViewGroup.java @@ -290,6 +290,13 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager private static final int FLAG_SPLIT_MOTION_EVENTS = 0x200000; /** + * When set, this ViewGroup will not dispatch onAttachedToWindow calls + * to children when adding new views. This is used to prevent multiple + * onAttached calls when a ViewGroup adds children in its own onAttached method. + */ + private static final int FLAG_PREVENT_DISPATCH_ATTACHED_TO_WINDOW = 0x400000; + + /** * Indicates which types of drawing caches are to be kept in memory. * This field should be made private, so it is hidden from the SDK. * {@hide} @@ -2154,8 +2161,12 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager */ @Override void dispatchAttachedToWindow(AttachInfo info, int visibility) { + mGroupFlags |= FLAG_PREVENT_DISPATCH_ATTACHED_TO_WINDOW; super.dispatchAttachedToWindow(info, visibility); + mGroupFlags &= ~FLAG_PREVENT_DISPATCH_ATTACHED_TO_WINDOW; + visibility |= mViewFlags & VISIBILITY_MASK; + final int count = mChildrenCount; final View[] children = mChildren; for (int i = 0; i < count; i++) { @@ -3321,7 +3332,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager } AttachInfo ai = mAttachInfo; - if (ai != null) { + if (ai != null && (mGroupFlags & FLAG_PREVENT_DISPATCH_ATTACHED_TO_WINDOW) == 0) { boolean lastKeepOn = ai.mKeepScreenOn; ai.mKeepScreenOn = false; child.dispatchAttachedToWindow(mAttachInfo, (mViewFlags&VISIBILITY_MASK)); diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index 4611984..9cb4e5e 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -1054,7 +1054,6 @@ public final class ViewRootImpl extends Handler implements ViewParent, || attachInfo.mSystemUiVisibility != oldVis || attachInfo.mHasSystemUiListeners) { params = lp; - windowAttributesChanges |= WindowManager.LayoutParams.BUFFER_CHANGED; } } diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index fae2c6f..2d1eeda 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -4280,7 +4280,6 @@ public class WebView extends AbsoluteLayout } nativeSetExtendSelection(); mDrawSelectionPointer = false; - mSelectionStarted = true; mTouchMode = TOUCH_DRAG_MODE; return true; } @@ -4441,6 +4440,7 @@ public class WebView extends AbsoluteLayout mHeldMotionless = MOTIONLESS_PENDING; } } + int saveCount = canvas.save(); if (animateZoom) { mZoomManager.animateZoom(canvas); } else if (!canvas.isHardwareAccelerated()) { @@ -4491,10 +4491,6 @@ public class WebView extends AbsoluteLayout nativeUseHardwareAccelSkia(mHardwareAccelSkia); } - if (mSelectingText && USE_JAVA_TEXT_SELECTION) { - drawTextSelectionHandles(canvas); - } - } else { DrawFilter df = null; if (mZoomManager.isZoomAnimating() || UIAnimationsRunning) { @@ -4512,6 +4508,11 @@ public class WebView extends AbsoluteLayout } } + canvas.restoreToCount(saveCount); + if (mSelectingText && USE_JAVA_TEXT_SELECTION) { + drawTextSelectionHandles(canvas); + } + if (extras == DRAW_EXTRAS_CURSOR_RING) { if (mTouchMode == TOUCH_SHORTPRESS_START_MODE) { mTouchMode = TOUCH_SHORTPRESS_MODE; diff --git a/core/java/android/widget/AutoCompleteTextView.java b/core/java/android/widget/AutoCompleteTextView.java index 65f3f1c..07523e3 100644 --- a/core/java/android/widget/AutoCompleteTextView.java +++ b/core/java/android/widget/AutoCompleteTextView.java @@ -744,7 +744,6 @@ public class AutoCompleteTextView extends EditText implements Filter.FilterListe if (mFilter != null) { mPopupCanBeUpdated = true; performFiltering(getText(), mLastKeyCode); - buildImeCompletions(); } } else { // drop down is automatically dismissed when enough characters @@ -934,7 +933,8 @@ public class AutoCompleteTextView extends EditText implements Filter.FilterListe */ final boolean dropDownAlwaysVisible = mPopup.isDropDownAlwaysVisible(); - if ((count > 0 || dropDownAlwaysVisible) && enoughToFilter()) { + final boolean enoughToFilter = enoughToFilter(); + if ((count > 0 || dropDownAlwaysVisible) && enoughToFilter) { if (hasFocus() && hasWindowFocus() && mPopupCanBeUpdated) { showDropDown(); } @@ -1045,6 +1045,8 @@ public class AutoCompleteTextView extends EditText implements Filter.FilterListe * <p>Displays the drop down on screen.</p> */ public void showDropDown() { + buildImeCompletions(); + if (mPopup.getAnchorView() == null) { if (mDropDownAnchorId != View.NO_ID) { mPopup.setAnchorView(getRootView().findViewById(mDropDownAnchorId)); @@ -1060,7 +1062,7 @@ public class AutoCompleteTextView extends EditText implements Filter.FilterListe mPopup.show(); mPopup.getListView().setOverScrollMode(View.OVER_SCROLL_ALWAYS); } - + /** * Forces outside touches to be ignored. Normally if {@link #isDropDownAlwaysVisible()} is * false, we allow outside touch to dismiss the dropdown. If this is set to true, then we @@ -1071,7 +1073,7 @@ public class AutoCompleteTextView extends EditText implements Filter.FilterListe public void setForceIgnoreOutsideTouch(boolean forceIgnoreOutsideTouch) { mPopup.setForceIgnoreOutsideTouch(forceIgnoreOutsideTouch); } - + private void buildImeCompletions() { final ListAdapter adapter = mAdapter; if (adapter != null) { @@ -1086,8 +1088,7 @@ public class AutoCompleteTextView extends EditText implements Filter.FilterListe realCount++; Object item = adapter.getItem(i); long id = adapter.getItemId(i); - completions[i] = new CompletionInfo(id, i, - convertSelectionToString(item)); + completions[i] = new CompletionInfo(id, i, convertSelectionToString(item)); } } diff --git a/core/java/android/widget/RelativeLayout.java b/core/java/android/widget/RelativeLayout.java index 6edfd59..12a93ac 100644 --- a/core/java/android/widget/RelativeLayout.java +++ b/core/java/android/widget/RelativeLayout.java @@ -212,6 +212,11 @@ public class RelativeLayout extends ViewGroup { * Describes how the child views are positioned. Defaults to * <code>Gravity.LEFT | Gravity.TOP</code>. * + * <p>Note that since RelativeLayout considers the positioning of each child + * relative to one another to be significant, setting gravity will affect + * the positioning of all children as a single unit within the parent. + * This happens after children have been relatively positioned.</p> + * * @param gravity See {@link android.view.Gravity} * * @see #setHorizontalGravity(int) diff --git a/core/java/com/android/internal/widget/multiwaveview/MultiWaveView.java b/core/java/com/android/internal/widget/multiwaveview/MultiWaveView.java index 173279e..cc2ed7f 100644 --- a/core/java/com/android/internal/widget/multiwaveview/MultiWaveView.java +++ b/core/java/com/android/internal/widget/multiwaveview/MultiWaveView.java @@ -35,7 +35,6 @@ import android.util.Log; import android.util.TypedValue; import android.view.MotionEvent; import android.view.View; -import android.view.ViewConfiguration; import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityManager; @@ -109,9 +108,6 @@ public class MultiWaveView extends View { private boolean mDragging; private int mNewTargetResources; - private boolean mWaveHovered = false; - private long mLastHoverExitTimeMillis = 0; - private AnimatorListener mResetListener = new AnimatorListenerAdapter() { public void onAnimationEnd(Animator animator) { switchToState(STATE_IDLE, mWaveCenterX, mWaveCenterY); @@ -660,59 +656,13 @@ public class MultiWaveView extends View { } private void handleDown(MotionEvent event) { - final float x = event.getX(); - final float y = event.getY(); - final float dx = x - mWaveCenterX; - final float dy = y - mWaveCenterY; - if (dist2(dx,dy) <= getScaledTapRadiusSquared()) { - if (DEBUG) Log.v(TAG, "** Handle HIT"); - switchToState(STATE_FIRST_TOUCH, x, y); - moveHandleTo(x, y, false); - mDragging = true; - } else { + if (!trySwitchToFirstTouchState(event)) { mDragging = false; stopTargetAnimation(); ping(); } } - @Override - public boolean onHoverEvent(MotionEvent event) { - if (AccessibilityManager.getInstance(mContext).isTouchExplorationEnabled()) { - final int action = event.getAction(); - switch (action) { - case MotionEvent.ACTION_HOVER_ENTER: - case MotionEvent.ACTION_HOVER_MOVE: - final float dx = event.getX() - mWaveCenterX; - final float dy = event.getY() - mWaveCenterY; - if (dist2(dx,dy) <= getScaledTapRadiusSquared()) { - if (!mWaveHovered) { - mWaveHovered = true; - final long timeSinceLastHoverExitMillis = - event.getEventTime() - mLastHoverExitTimeMillis; - final long recurringEventsInterval = - ViewConfiguration.getSendRecurringAccessibilityEventsInterval(); - if (timeSinceLastHoverExitMillis > recurringEventsInterval) { - String text = - mContext.getString(R.string.content_description_sliding_handle); - announceText(text); - } - } - } else { - mWaveHovered = false; - } - break; - case MotionEvent.ACTION_HOVER_EXIT: - mLastHoverExitTimeMillis = event.getEventTime(); - mWaveHovered = false; - break; - default: - mWaveHovered = false; - } - } - return super.onHoverEvent(event); - } - private void handleUp(MotionEvent event) { if (DEBUG && mDragging) Log.v(TAG, "** Handle RELEASE"); switchToState(STATE_FINISH, event.getX(), event.getY()); @@ -720,6 +670,7 @@ public class MultiWaveView extends View { private void handleMove(MotionEvent event) { if (!mDragging) { + trySwitchToFirstTouchState(event); return; } @@ -792,6 +743,27 @@ public class MultiWaveView extends View { mActiveTarget = activeTarget; } + @Override + public boolean onHoverEvent(MotionEvent event) { + if (AccessibilityManager.getInstance(mContext).isTouchExplorationEnabled()) { + final int action = event.getAction(); + switch (action) { + case MotionEvent.ACTION_HOVER_ENTER: + event.setAction(MotionEvent.ACTION_DOWN); + break; + case MotionEvent.ACTION_HOVER_MOVE: + event.setAction(MotionEvent.ACTION_MOVE); + break; + case MotionEvent.ACTION_HOVER_EXIT: + event.setAction(MotionEvent.ACTION_UP); + break; + } + onTouchEvent(event); + event.setAction(action); + } + return super.onHoverEvent(event); + } + /** * Sets the current grabbed state, and dispatches a grabbed state change * event to our listener. @@ -808,6 +780,21 @@ public class MultiWaveView extends View { } } + private boolean trySwitchToFirstTouchState(MotionEvent event) { + final float x = event.getX(); + final float y = event.getY(); + final float dx = x - mWaveCenterX; + final float dy = y - mWaveCenterY; + if (dist2(dx,dy) <= getScaledTapRadiusSquared()) { + if (DEBUG) Log.v(TAG, "** Handle HIT"); + switchToState(STATE_FIRST_TOUCH, x, y); + moveHandleTo(x, y, false); + mDragging = true; + return true; + } + return false; + } + private void performInitialLayout(float centerX, float centerY) { if (mOuterRadius == 0.0f) { mOuterRadius = 0.5f*(float) Math.sqrt(dist2(centerX, centerY)); diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml index 9f2eef5..80741eb 100644 --- a/core/res/AndroidManifest.xml +++ b/core/res/AndroidManifest.xml @@ -1530,6 +1530,26 @@ android:process=":ui"> </activity> + <activity android:name="android.accounts.ChooseTypeAndAccountActivity" + android:excludeFromRecents="true" + android:exported="true" + android:theme="@android:style/Theme.Holo.Dialog" + android:label="@string/choose_account_label" + android:process=":ui"> + <intent-filter> + <action android:name="android.intent.action.PICK" /> + <category android:name="android.intent.category.ACCOUNT" /> + </intent-filter> + </activity> + + <activity android:name="android.accounts.ChooseAccountTypeActivity" + android:excludeFromRecents="true" + android:exported="true" + android:theme="@android:style/Theme.Holo.Dialog" + android:label="@string/choose_account_label" + android:process=":ui"> + </activity> + <activity android:name="android.accounts.GrantCredentialsPermissionActivity" android:excludeFromRecents="true" android:exported="true" diff --git a/core/res/res/layout/choose_type_and_account.xml b/core/res/res/layout/choose_type_and_account.xml new file mode 100644 index 0000000..8be01b4 --- /dev/null +++ b/core/res/res/layout/choose_type_and_account.xml @@ -0,0 +1,44 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* //device/apps/common/assets/res/layout/list_content.xml +** +** Copyright 2011, 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:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical" + android:paddingLeft="16dip" + android:paddingRight="16dip"> + + <ListView xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@android:id/list" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_weight="1" + android:drawSelectorOnTop="false" + android:scrollbarAlwaysDrawVerticalTrack="true" /> + + <Button android:id="@+id/addAccount" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_weight="2" + android:layout_marginLeft="2dip" + android:layout_marginRight="2dip" + android:textAppearance="?android:attr/textAppearanceLarge" + android:textStyle="bold" + /> +</LinearLayout> diff --git a/core/res/res/layout/keyguard_screen_password_portrait.xml b/core/res/res/layout/keyguard_screen_password_portrait.xml index cf3bd42..27a51da 100644 --- a/core/res/res/layout/keyguard_screen_password_portrait.xml +++ b/core/res/res/layout/keyguard_screen_password_portrait.xml @@ -178,4 +178,17 @@ android:layout_height="0dip" /> + <!-- Area to overlay FaceLock --> + <TextView android:id="@+id/faceLockAreaView" + android:visibility="gone" + android:layout_row="3" + android:layout_column="0" + android:layout_rowSpan="2" + android:layout_columnSpan="1" + android:layout_gravity="fill" + android:layout_width="0dip" + android:layout_height="0dip" + android:background="@color/facelock_color_background" + /> + </GridLayout> diff --git a/core/res/res/layout/keyguard_screen_unlock_portrait.xml b/core/res/res/layout/keyguard_screen_unlock_portrait.xml index 64c479f..75ed101 100644 --- a/core/res/res/layout/keyguard_screen_unlock_portrait.xml +++ b/core/res/res/layout/keyguard_screen_unlock_portrait.xml @@ -171,4 +171,19 @@ android:layout_height="0dip" /> + <!-- Area to overlay FaceLock --> + <TextView android:id="@+id/faceLockAreaView" + android:visibility="gone" + android:layout_row="4" + android:layout_column="0" + android:layout_rowSpan="1" + android:layout_columnSpan="1" + android:layout_gravity="fill" + android:layout_marginTop="8dip" + android:layout_marginBottom="8dip" + android:layout_width="0dip" + android:layout_height="0dip" + android:background="@color/facelock_color_background" + /> + </GridLayout> diff --git a/core/res/res/values-af/strings.xml b/core/res/res/values-af/strings.xml index e5686bc..ab1dc73 100644 --- a/core/res/res/values-af/strings.xml +++ b/core/res/res/values-af/strings.xml @@ -1467,7 +1467,6 @@ <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"Modus verander"</string> <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Shift"</string> <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Invoersleutel"</string> - <string name="content_description_sliding_handle" msgid="7311938669217173870">"Glyhandvatsel. Tik en hou."</string> <string name="description_direction_up" msgid="1983114130441878529">"Op na <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_down" msgid="4294993639091088240">"Af vir <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="6814008463839915747">"Links vir <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> diff --git a/core/res/res/values-am/strings.xml b/core/res/res/values-am/strings.xml index 42063c0..40f3b73 100644 --- a/core/res/res/values-am/strings.xml +++ b/core/res/res/values-am/strings.xml @@ -1467,7 +1467,6 @@ <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"ሞድ ለውጥ"</string> <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"ቀይር"</string> <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"አስገባ"</string> - <string name="content_description_sliding_handle" msgid="7311938669217173870">"Sliding handle. Tap and hold."</string> <string name="description_direction_up" msgid="1983114130441878529">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ወደላይ።"</string> <string name="description_direction_down" msgid="4294993639091088240">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ወደታች።"</string> <string name="description_direction_left" msgid="6814008463839915747">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ወደግራ።"</string> diff --git a/core/res/res/values-ar/strings.xml b/core/res/res/values-ar/strings.xml index 1f5940b..cb9c195 100644 --- a/core/res/res/values-ar/strings.xml +++ b/core/res/res/values-ar/strings.xml @@ -1141,7 +1141,6 @@ <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"تغيير الوضع"</string> <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"العالي"</string> <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string> - <string name="content_description_sliding_handle" msgid="7311938669217173870">"مقبض التمرير. انقر وامسك."</string> <string name="description_direction_up" msgid="1983114130441878529">"أعلى إلى <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_down" msgid="4294993639091088240">"أسفل إلى <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="6814008463839915747">"يسارًا إلى <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml index 49f13b3..bc3da32 100644 --- a/core/res/res/values-bg/strings.xml +++ b/core/res/res/values-bg/strings.xml @@ -1158,7 +1158,6 @@ <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"Промяна на режима"</string> <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Shift"</string> <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string> - <string name="content_description_sliding_handle" msgid="7311938669217173870">"Плъзгаща се дръжка. Докоснете и задръжте."</string> <!-- no translation found for description_direction_up (1983114130441878529) --> <skip /> <!-- no translation found for description_direction_down (4294993639091088240) --> diff --git a/core/res/res/values-ca/strings.xml b/core/res/res/values-ca/strings.xml index dd63638..b5fa80d 100644 --- a/core/res/res/values-ca/strings.xml +++ b/core/res/res/values-ca/strings.xml @@ -1139,7 +1139,6 @@ <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"Canvi de mode"</string> <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Maj"</string> <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Retorn"</string> - <string name="content_description_sliding_handle" msgid="7311938669217173870">"Llisca el dit. Mantén premut."</string> <string name="description_direction_up" msgid="1983114130441878529">"Cap amunt per <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_down" msgid="4294993639091088240">"Cap avall per <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="6814008463839915747">"Cap a l\'esquerra per <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml index ba0454e..1abd814 100644 --- a/core/res/res/values-cs/strings.xml +++ b/core/res/res/values-cs/strings.xml @@ -1141,7 +1141,6 @@ <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"Změna režimu"</string> <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Shift"</string> <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string> - <string name="content_description_sliding_handle" msgid="7311938669217173870">"Posuvník. Klepněte a podržte."</string> <string name="description_direction_up" msgid="1983114130441878529">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> – nahoru."</string> <string name="description_direction_down" msgid="4294993639091088240">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> – dolů."</string> <string name="description_direction_left" msgid="6814008463839915747">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> – vlevo."</string> diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml index 1fd9de5..c6c97fb 100644 --- a/core/res/res/values-da/strings.xml +++ b/core/res/res/values-da/strings.xml @@ -1141,7 +1141,6 @@ <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"Ændring af tilstand"</string> <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Shift"</string> <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Angiv"</string> - <string name="content_description_sliding_handle" msgid="7311938669217173870">"Glidende håndtag. Tryk og hold nede."</string> <string name="description_direction_up" msgid="1983114130441878529">"Op for at <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_down" msgid="4294993639091088240">"Ned for at <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="6814008463839915747">"Til venstre for at <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings.xml index fb837a8..a4d8279 100644 --- a/core/res/res/values-de/strings.xml +++ b/core/res/res/values-de/strings.xml @@ -1141,7 +1141,6 @@ <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"Modusänderung"</string> <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Umschalttaste"</string> <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Eingabetaste"</string> - <string name="content_description_sliding_handle" msgid="7311938669217173870">"Schieberegler: Tippen und halten"</string> <string name="description_direction_up" msgid="1983114130441878529">"Für <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> nach oben"</string> <string name="description_direction_down" msgid="4294993639091088240">"Für <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> nach unten"</string> <string name="description_direction_left" msgid="6814008463839915747">"Für <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> nach links"</string> diff --git a/core/res/res/values-el/strings.xml b/core/res/res/values-el/strings.xml index bcbf8fe..a6ce61f 100644 --- a/core/res/res/values-el/strings.xml +++ b/core/res/res/values-el/strings.xml @@ -1141,7 +1141,6 @@ <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"Αλλαγή τρόπου"</string> <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Shift"</string> <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string> - <string name="content_description_sliding_handle" msgid="7311938669217173870">"Στοιχείο χειρισμού με δυνατότητα ολίσθησης. Πατήστε παρατεταμένα."</string> <string name="description_direction_up" msgid="1983114130441878529">"Κύλιση πάνω <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_down" msgid="4294993639091088240">"Κύλιση κάτω για <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="6814008463839915747">"Κύλιση αριστερά για <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> diff --git a/core/res/res/values-en-rGB/strings.xml b/core/res/res/values-en-rGB/strings.xml index 261983e..2ae7006 100644 --- a/core/res/res/values-en-rGB/strings.xml +++ b/core/res/res/values-en-rGB/strings.xml @@ -1139,7 +1139,6 @@ <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"Mode change"</string> <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Shift"</string> <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string> - <string name="content_description_sliding_handle" msgid="7311938669217173870">"Sliding handle. Tap and hold."</string> <string name="description_direction_up" msgid="1983114130441878529">"Up for <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_down" msgid="4294993639091088240">"Down for <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="6814008463839915747">"Left for <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml index 76cde96..cb7047d 100644 --- a/core/res/res/values-es-rUS/strings.xml +++ b/core/res/res/values-es-rUS/strings.xml @@ -1141,7 +1141,6 @@ <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"Cambio de modo"</string> <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Mayúscula"</string> <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Ingresar"</string> - <string name="content_description_sliding_handle" msgid="7311938669217173870">"Asidero deslizante (tocar y mantener la presión)"</string> <string name="description_direction_up" msgid="1983114130441878529">"Hacia arriba para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_down" msgid="4294993639091088240">"Hacia abajo para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="6814008463839915747">"Hacia la izquierda para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml index 8c88cca..5f41e43 100644 --- a/core/res/res/values-es/strings.xml +++ b/core/res/res/values-es/strings.xml @@ -1141,7 +1141,6 @@ <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"Cambio de modo"</string> <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Mayús"</string> <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Intro"</string> - <string name="content_description_sliding_handle" msgid="7311938669217173870">"Tirador deslizante (mantener pulsado)"</string> <string name="description_direction_up" msgid="1983114130441878529">"Hacia arriba para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>"</string> <string name="description_direction_down" msgid="4294993639091088240">"Hacia abajo para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>"</string> <string name="description_direction_left" msgid="6814008463839915747">"Hacia la izquierda para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>"</string> diff --git a/core/res/res/values-fa/strings.xml b/core/res/res/values-fa/strings.xml index 49dab56..10e013e 100644 --- a/core/res/res/values-fa/strings.xml +++ b/core/res/res/values-fa/strings.xml @@ -1141,7 +1141,6 @@ <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"تغییر حالت"</string> <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Shift"</string> <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string> - <string name="content_description_sliding_handle" msgid="7311938669217173870">"کنترل کننده کشویی. ضربه زده و نگه دارید."</string> <string name="description_direction_up" msgid="1983114130441878529">"بالا برای <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_down" msgid="4294993639091088240">"پایین برای <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="6814008463839915747">"چپ برای <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> diff --git a/core/res/res/values-fi/strings.xml b/core/res/res/values-fi/strings.xml index 9d8c0a8..5131a16 100644 --- a/core/res/res/values-fi/strings.xml +++ b/core/res/res/values-fi/strings.xml @@ -1141,7 +1141,6 @@ <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"Tilan muutos"</string> <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Shift"</string> <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string> - <string name="content_description_sliding_handle" msgid="7311938669217173870">"Liukuva valitsin. Kosketa pitkään."</string> <string name="description_direction_up" msgid="1983114130441878529">"Ylös: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_down" msgid="4294993639091088240">"Alas: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="6814008463839915747">"Vasemmalle: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml index 96b2a7a..9f3bd41 100644 --- a/core/res/res/values-fr/strings.xml +++ b/core/res/res/values-fr/strings.xml @@ -1141,7 +1141,6 @@ <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"Changement de mode"</string> <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Maj"</string> <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Entrée"</string> - <string name="content_description_sliding_handle" msgid="7311938669217173870">"Poignée coulissante. Appuyez de manière prolongée."</string> <string name="description_direction_up" msgid="1983114130441878529">"Vers le haut pour <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>"</string> <string name="description_direction_down" msgid="4294993639091088240">"Vers le bas pour <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>"</string> <string name="description_direction_left" msgid="6814008463839915747">"Vers la gauche pour <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>"</string> diff --git a/core/res/res/values-hr/strings.xml b/core/res/res/values-hr/strings.xml index 69c77f4..4821752 100644 --- a/core/res/res/values-hr/strings.xml +++ b/core/res/res/values-hr/strings.xml @@ -1141,7 +1141,6 @@ <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"Promjena načina"</string> <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Shift"</string> <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string> - <string name="content_description_sliding_handle" msgid="7311938669217173870">"Klizna ručka. Dotaknite i držite."</string> <string name="description_direction_up" msgid="1983114130441878529">"Gore za <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_down" msgid="4294993639091088240">"Dolje za <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="6814008463839915747">"Lijevo za <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> diff --git a/core/res/res/values-hu/strings.xml b/core/res/res/values-hu/strings.xml index b377f66..a8e2e98 100644 --- a/core/res/res/values-hu/strings.xml +++ b/core/res/res/values-hu/strings.xml @@ -1141,7 +1141,6 @@ <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"Mód váltása"</string> <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Shift"</string> <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string> - <string name="content_description_sliding_handle" msgid="7311938669217173870">"Csúsztatható fogantyú. Érintse meg és tartsa."</string> <string name="description_direction_up" msgid="1983114130441878529">"Fel: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>"</string> <string name="description_direction_down" msgid="4294993639091088240">"Le: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>"</string> <string name="description_direction_left" msgid="6814008463839915747">"Balra: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>"</string> diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml index bcf14d3..3959efa 100644 --- a/core/res/res/values-in/strings.xml +++ b/core/res/res/values-in/strings.xml @@ -1141,7 +1141,6 @@ <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"Pengubahan mode"</string> <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Shift"</string> <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string> - <string name="content_description_sliding_handle" msgid="7311938669217173870">"Gagang geser. Ketuk dan tahan."</string> <string name="description_direction_up" msgid="1983114130441878529">"Ke atas untuk <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_down" msgid="4294993639091088240">"Ke bawah untuk <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="6814008463839915747">"Ke kiri untuk <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml index d7c9237..67d4bd9 100644 --- a/core/res/res/values-it/strings.xml +++ b/core/res/res/values-it/strings.xml @@ -1139,7 +1139,6 @@ <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"Cambio modalità"</string> <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Maiuscolo"</string> <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Invio"</string> - <string name="content_description_sliding_handle" msgid="7311938669217173870">"Maniglia scorrevole. Tocca e tieni premuto."</string> <string name="description_direction_up" msgid="1983114130441878529">"Su per <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_down" msgid="4294993639091088240">"Giù per <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="6814008463839915747">"A sinistra per <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> diff --git a/core/res/res/values-iw/strings.xml b/core/res/res/values-iw/strings.xml index 08f84c0..1cdc789 100644 --- a/core/res/res/values-iw/strings.xml +++ b/core/res/res/values-iw/strings.xml @@ -1141,7 +1141,6 @@ <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"שינוי מצב"</string> <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Shift"</string> <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string> - <string name="content_description_sliding_handle" msgid="7311938669217173870">"ידית להחלקה. הקש והחזק."</string> <string name="description_direction_up" msgid="1983114130441878529">"\'למעלה\' עבור <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_down" msgid="4294993639091088240">"\'למטה\' עבור <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="6814008463839915747">"\'שמאל\' עבור <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml index f5a30e8..b578a38 100644 --- a/core/res/res/values-ja/strings.xml +++ b/core/res/res/values-ja/strings.xml @@ -1158,7 +1158,6 @@ <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"モードを変更"</string> <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Shift"</string> <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string> - <string name="content_description_sliding_handle" msgid="7311938669217173870">"スライダーハンドルです。タップして押し続けます。"</string> <!-- no translation found for description_direction_up (1983114130441878529) --> <skip /> <!-- no translation found for description_direction_down (4294993639091088240) --> diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml index 73ddd03..75e6675 100644 --- a/core/res/res/values-ko/strings.xml +++ b/core/res/res/values-ko/strings.xml @@ -1141,7 +1141,6 @@ <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"모드 변경"</string> <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Shift 키"</string> <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter 키"</string> - <string name="content_description_sliding_handle" msgid="7311938669217173870">"슬라이딩 핸들을 길게 탭하세요."</string> <string name="description_direction_up" msgid="1983114130441878529">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> 방향으로 위"</string> <string name="description_direction_down" msgid="4294993639091088240">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> 방향으로 아래"</string> <string name="description_direction_left" msgid="6814008463839915747">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> 방향으로 왼쪽"</string> diff --git a/core/res/res/values-lt/strings.xml b/core/res/res/values-lt/strings.xml index a366b60..e329b3d 100644 --- a/core/res/res/values-lt/strings.xml +++ b/core/res/res/values-lt/strings.xml @@ -1139,7 +1139,6 @@ <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"Režimo keitimas"</string> <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Shift"</string> <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Įvesti"</string> - <string name="content_description_sliding_handle" msgid="7311938669217173870">"Slydimo valdymas. Palieskite ir laikykite."</string> <string name="description_direction_up" msgid="1983114130441878529">"Aukštyn į <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_down" msgid="4294993639091088240">"Žemyn į <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="6814008463839915747">"Kairėn į <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> diff --git a/core/res/res/values-lv/strings.xml b/core/res/res/values-lv/strings.xml index efedb86..fce77dc 100644 --- a/core/res/res/values-lv/strings.xml +++ b/core/res/res/values-lv/strings.xml @@ -1139,7 +1139,6 @@ <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"Režīma maiņa"</string> <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Pārslēgšanas taustiņš"</string> <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Ievadīšanas taustiņš"</string> - <string name="content_description_sliding_handle" msgid="7311938669217173870">"Bīdāms rokturis. Pieskarieties tam un turiet to nospiestu."</string> <string name="description_direction_up" msgid="1983114130441878529">"Bīdiet uz augšu, lai veiktu šādu darbību: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_down" msgid="4294993639091088240">"Bīdiet uz leju, lai veiktu šādu darbību: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="6814008463839915747">"Bīdiet pa kreisi, lai veiktu šādu darbību: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> diff --git a/core/res/res/values-ms/strings.xml b/core/res/res/values-ms/strings.xml index 281363f..95131cd 100644 --- a/core/res/res/values-ms/strings.xml +++ b/core/res/res/values-ms/strings.xml @@ -1141,7 +1141,6 @@ <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"Perubahan mod"</string> <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Shift"</string> <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Masuk"</string> - <string name="content_description_sliding_handle" msgid="7311938669217173870">"Pemegang gelongsor. Ketik dan tahan."</string> <string name="description_direction_up" msgid="1983114130441878529">"Atas untuk <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_down" msgid="4294993639091088240">"Bawah untuk <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="6814008463839915747">"Kiri untuk <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml index 8f04350..0418b37 100644 --- a/core/res/res/values-nb/strings.xml +++ b/core/res/res/values-nb/strings.xml @@ -1141,7 +1141,6 @@ <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"Modusendring"</string> <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Shift"</string> <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string> - <string name="content_description_sliding_handle" msgid="7311938669217173870">"Glidebryter. Trykk og hold inne."</string> <string name="description_direction_up" msgid="1983114130441878529">"Opp for <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_down" msgid="4294993639091088240">"Ned for <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="6814008463839915747">"Venstre for <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml index 2711f0b..bca9d6c 100644 --- a/core/res/res/values-nl/strings.xml +++ b/core/res/res/values-nl/strings.xml @@ -1141,7 +1141,6 @@ <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"Modus wijzigen"</string> <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Shift"</string> <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string> - <string name="content_description_sliding_handle" msgid="7311938669217173870">"Schuifgreep. Tikken en blijven aanraken."</string> <string name="description_direction_up" msgid="1983114130441878529">"Omhoog voor <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_down" msgid="4294993639091088240">"Omlaag voor <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="6814008463839915747">"Links voor <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml index 702cba6..45b323c 100644 --- a/core/res/res/values-pl/strings.xml +++ b/core/res/res/values-pl/strings.xml @@ -1141,7 +1141,6 @@ <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"Zmiana trybu"</string> <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Shift"</string> <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string> - <string name="content_description_sliding_handle" msgid="7311938669217173870">"Uchwyt przesuwny. Dotknij i przytrzymaj."</string> <string name="description_direction_up" msgid="1983114130441878529">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>: w górę"</string> <string name="description_direction_down" msgid="4294993639091088240">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>: w dół"</string> <string name="description_direction_left" msgid="6814008463839915747">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>: w lewo"</string> diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml index 8e1386a..68700c4 100644 --- a/core/res/res/values-pt-rPT/strings.xml +++ b/core/res/res/values-pt-rPT/strings.xml @@ -1141,7 +1141,6 @@ <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"Alteração do modo"</string> <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Shift"</string> <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string> - <string name="content_description_sliding_handle" msgid="7311938669217173870">"Faixa deslizante. Mantenha premida."</string> <string name="description_direction_up" msgid="1983114130441878529">"Para cima para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_down" msgid="4294993639091088240">"Para baixo para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="6814008463839915747">"Para a esquerda para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml index f578463..5db3738 100644 --- a/core/res/res/values-pt/strings.xml +++ b/core/res/res/values-pt/strings.xml @@ -1141,7 +1141,6 @@ <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"Alteração do modo"</string> <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Shift"</string> <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string> - <string name="content_description_sliding_handle" msgid="7311938669217173870">"Alça deslizante. Toque e segure."</string> <string name="description_direction_up" msgid="1983114130441878529">"Deslize para cima para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_down" msgid="4294993639091088240">"Deslize para baixo para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="6814008463839915747">"Deslize para a esquerda para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> diff --git a/core/res/res/values-rm/strings.xml b/core/res/res/values-rm/strings.xml index 2dc5ce8..7ed10b2 100644 --- a/core/res/res/values-rm/strings.xml +++ b/core/res/res/values-rm/strings.xml @@ -1368,8 +1368,6 @@ <skip /> <!-- no translation found for keyboardview_keycode_enter (2985864015076059467) --> <skip /> - <!-- no translation found for content_description_sliding_handle (7311938669217173870) --> - <skip /> <!-- no translation found for description_direction_up (1983114130441878529) --> <skip /> <!-- no translation found for description_direction_down (4294993639091088240) --> diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml index 2a069f3..8da6920 100644 --- a/core/res/res/values-ro/strings.xml +++ b/core/res/res/values-ro/strings.xml @@ -1158,7 +1158,6 @@ <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"Schimbarea modului"</string> <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Shift"</string> <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string> - <string name="content_description_sliding_handle" msgid="7311938669217173870">"Mâner glisant. Apăsaţi şi ţineţi apăsat."</string> <!-- no translation found for description_direction_up (1983114130441878529) --> <skip /> <!-- no translation found for description_direction_down (4294993639091088240) --> diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml index 2a47531..ea47aa8 100644 --- a/core/res/res/values-ru/strings.xml +++ b/core/res/res/values-ru/strings.xml @@ -1139,7 +1139,6 @@ <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"Клавиша смены режима"</string> <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Клавиша смены регистра"</string> <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Клавиша ввода"</string> - <string name="content_description_sliding_handle" msgid="7311938669217173870">"Сенсорное управление. Нажмите и удерживайте."</string> <string name="description_direction_up" msgid="1983114130441878529">"Проведите вверх, чтобы <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_down" msgid="4294993639091088240">"Проведите вниз, чтобы <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="6814008463839915747">"Проведите влево, чтобы <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml index 2134879..13cc941 100644 --- a/core/res/res/values-sk/strings.xml +++ b/core/res/res/values-sk/strings.xml @@ -1141,7 +1141,6 @@ <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"Zmena režimu"</string> <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Shift"</string> <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string> - <string name="content_description_sliding_handle" msgid="7311938669217173870">"Posuvné tlačidlo. Klepnite a podržte."</string> <string name="description_direction_up" msgid="1983114130441878529">"Nahor na <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_down" msgid="4294993639091088240">"Nadol na <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="6814008463839915747">"Doľava na <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> diff --git a/core/res/res/values-sl/strings.xml b/core/res/res/values-sl/strings.xml index 994ff7b..0216783 100644 --- a/core/res/res/values-sl/strings.xml +++ b/core/res/res/values-sl/strings.xml @@ -1141,7 +1141,6 @@ <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"Sprememba načina"</string> <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Tipka Shift"</string> <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Tipka Enter"</string> - <string name="content_description_sliding_handle" msgid="7311938669217173870">"Drsna ročica. Tapnite in pridržite."</string> <string name="description_direction_up" msgid="1983114130441878529">"Gor za <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_down" msgid="4294993639091088240">"Dol za <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="6814008463839915747">"Levo za <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml index eedd93b..46eb3b5 100644 --- a/core/res/res/values-sr/strings.xml +++ b/core/res/res/values-sr/strings.xml @@ -1141,8 +1141,6 @@ <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"Промена режима"</string> <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Shift"</string> <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string> - <string name="content_description_sliding_handle" msgid="7311938669217173870">"Клизна ручица. Додирните и задржите."</string> - <string name="description_direction_up" msgid="1983114130441878529">"Нагоре за <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_down" msgid="4294993639091088240">"Надоле за <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="6814008463839915747">"Улево за <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_right" msgid="4296057241963012862">"Удесно за <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml index 34b08b1..34c302d 100644 --- a/core/res/res/values-sv/strings.xml +++ b/core/res/res/values-sv/strings.xml @@ -1141,7 +1141,6 @@ <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"Funktionsändring"</string> <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Skift"</string> <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Retur"</string> - <string name="content_description_sliding_handle" msgid="7311938669217173870">"Skärmlåsfunktion. Tryck och dra."</string> <string name="description_direction_up" msgid="1983114130441878529">"Upp för <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_down" msgid="4294993639091088240">"Ned för <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="6814008463839915747">"Vänster för <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> diff --git a/core/res/res/values-sw/strings.xml b/core/res/res/values-sw/strings.xml index e32e851..c5b6841 100644 --- a/core/res/res/values-sw/strings.xml +++ b/core/res/res/values-sw/strings.xml @@ -1467,7 +1467,6 @@ <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"Modi ya mabadiliko"</string> <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Songa"</string> <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Ingiza"</string> - <string name="content_description_sliding_handle" msgid="7311938669217173870">"Kishikilio cha Kuslaidi. Wahi na shikilia."</string> <string name="description_direction_up" msgid="1983114130441878529">"Juu ajili ya<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ."</string> <string name="description_direction_down" msgid="4294993639091088240">"Chini kwa ajili ya<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ."</string> <string name="description_direction_left" msgid="6814008463839915747">"Kushoto kwa <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ."</string> diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml index c63eaf7..55df648 100644 --- a/core/res/res/values-th/strings.xml +++ b/core/res/res/values-th/strings.xml @@ -1139,7 +1139,6 @@ <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"เปลี่ยนโหมด"</string> <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Shift"</string> <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"ป้อน"</string> - <string name="content_description_sliding_handle" msgid="7311938669217173870">"ที่จับสำหรับเลื่อน แตะค้างไว้"</string> <string name="description_direction_up" msgid="1983114130441878529">"เลื่อนขึ้นเพื่อ <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>"</string> <string name="description_direction_down" msgid="4294993639091088240">"เลื่อนลงเพื่อ <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>"</string> <string name="description_direction_left" msgid="6814008463839915747">"เลื่อนไปทางซ้ายเพื่อ <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>"</string> diff --git a/core/res/res/values-tl/strings.xml b/core/res/res/values-tl/strings.xml index 68ae9dd..6aa3889 100644 --- a/core/res/res/values-tl/strings.xml +++ b/core/res/res/values-tl/strings.xml @@ -1139,7 +1139,6 @@ <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"Pagbabago ng Mode"</string> <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Shift"</string> <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string> - <string name="content_description_sliding_handle" msgid="7311938669217173870">"Hawakan sa pag-slide. Tapikin at i-hold."</string> <string name="description_direction_up" msgid="1983114130441878529">"Nakataas para sa <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_down" msgid="4294993639091088240">"Nakababa para sa <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="6814008463839915747">"Pakaliwa para sa <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml index b58b02d..844a947 100644 --- a/core/res/res/values-tr/strings.xml +++ b/core/res/res/values-tr/strings.xml @@ -1158,7 +1158,6 @@ <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"Mod değiştirme"</string> <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"ÜstKrkt"</string> <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Giriş"</string> - <string name="content_description_sliding_handle" msgid="7311938669217173870">"Kayar tutma yeri. Hafifçe vurun ve basılı tutun."</string> <!-- no translation found for description_direction_up (1983114130441878529) --> <skip /> <!-- no translation found for description_direction_down (4294993639091088240) --> diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml index 6364990..f890e75 100644 --- a/core/res/res/values-uk/strings.xml +++ b/core/res/res/values-uk/strings.xml @@ -1141,7 +1141,6 @@ <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"Зміна режиму"</string> <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Shift"</string> <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string> - <string name="content_description_sliding_handle" msgid="7311938669217173870">"Ручка-повзунок. Торкніться й утримуйте її."</string> <string name="description_direction_up" msgid="1983114130441878529">"Угору, щоб <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_down" msgid="4294993639091088240">"Униз, щоб <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="6814008463839915747">"Ліворуч, щоб <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml index f40f145..3407043 100644 --- a/core/res/res/values-vi/strings.xml +++ b/core/res/res/values-vi/strings.xml @@ -1141,7 +1141,6 @@ <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"Thay đổi chế độ"</string> <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Shift"</string> <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string> - <string name="content_description_sliding_handle" msgid="7311938669217173870">"Tay trượt. Bấm và giữ."</string> <string name="description_direction_up" msgid="1983114130441878529">"Lên để <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_down" msgid="4294993639091088240">"Xuống để <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="6814008463839915747">"Sang trái để <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml index b729bb5..057e072 100644 --- a/core/res/res/values-zh-rCN/strings.xml +++ b/core/res/res/values-zh-rCN/strings.xml @@ -1141,7 +1141,6 @@ <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"模式更改"</string> <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Shift"</string> <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string> - <string name="content_description_sliding_handle" msgid="7311938669217173870">"滑动手柄。点按并按住。"</string> <string name="description_direction_up" msgid="1983114130441878529">"向上滑动<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>。"</string> <string name="description_direction_down" msgid="4294993639091088240">"向下滑动<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>。"</string> <string name="description_direction_left" msgid="6814008463839915747">"向左滑动<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>。"</string> diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml index a27f904..dca76fa 100644 --- a/core/res/res/values-zh-rTW/strings.xml +++ b/core/res/res/values-zh-rTW/strings.xml @@ -1141,7 +1141,6 @@ <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"模式變更"</string> <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Shift 鍵"</string> <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter 鍵"</string> - <string name="content_description_sliding_handle" msgid="7311938669217173870">"滑動控制。持續輕按。"</string> <string name="description_direction_up" msgid="1983114130441878529">"向上滑動即可<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>。"</string> <string name="description_direction_down" msgid="4294993639091088240">"向下滑動即可<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>。"</string> <string name="description_direction_left" msgid="6814008463839915747">"向左滑動即可<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>。"</string> diff --git a/core/res/res/values-zu/strings.xml b/core/res/res/values-zu/strings.xml index d1bdeae..0ecf023 100644 --- a/core/res/res/values-zu/strings.xml +++ b/core/res/res/values-zu/strings.xml @@ -1467,7 +1467,6 @@ <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"Ukushintsha kwendlela esetshenziswayo"</string> <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Beka kwenye indawo"</string> <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Faka"</string> - <string name="content_description_sliding_handle" msgid="7311938669217173870">"Isibambo esishelelayo. Thepha bese uyabamba."</string> <string name="description_direction_up" msgid="1983114130441878529">"Phezulu kwe <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_down" msgid="4294993639091088240">"Ngaphansi kwe <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="6814008463839915747">"Kwesokunxeleee kwe <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> diff --git a/core/res/res/values/colors.xml b/core/res/res/values/colors.xml index ddb9942..f0c6d09 100644 --- a/core/res/res/values/colors.xml +++ b/core/res/res/values/colors.xml @@ -112,6 +112,9 @@ <color name="lockscreen_clock_am_pm">#ff9a9a9a</color> <color name="lockscreen_owner_info">#ff9a9a9a</color> + <!-- FaceLock --> + <color name="facelock_color_background">#000000</color> + <!-- For holo theme --> <drawable name="screen_background_holo_light">#fff3f3f3</drawable> <drawable name="screen_background_holo_dark">#ff000000</drawable> diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml index 87cfa38..f75c7d5 100755 --- a/core/res/res/values/strings.xml +++ b/core/res/res/values/strings.xml @@ -3174,9 +3174,6 @@ <!-- Slide lock screen --> - <!-- Description of the sliding handle in the Slide unlock screen. [CHAR LIMIT=NONE] --> - <string name="content_description_sliding_handle">"Sliding handle. Tap and hold."</string> - <!-- Description of the up direction in which one can to slide the handle in the Slide unlock screen. [CHAR LIMIT=NONE] --> <string name="description_direction_up">Up for <xliff:g id="target_description" example="Unlock">%s</xliff:g>.</string> <!-- Description of the down direction in which one can to slide the handle in the Slide unlock screen. [CHAR LIMIT=NONE] --> |