diff options
Diffstat (limited to 'core')
98 files changed, 868 insertions, 810 deletions
diff --git a/core/java/android/accounts/AccountManager.java b/core/java/android/accounts/AccountManager.java index 150880c..39e83e0 100644 --- a/core/java/android/accounts/AccountManager.java +++ b/core/java/android/accounts/AccountManager.java @@ -405,6 +405,55 @@ public class AccountManager { } /** + * Change whether or not an app (identified by its uid) is allowed to retrieve an authToken + * for an account. + * <p> + * This is only meant to be used by system activities and is not in the SDK. + * @param account The account whose permissions are being modified + * @param authTokenType The type of token whose permissions are being modified + * @param uid The uid that identifies the app which is being granted or revoked permission. + * @param value true is permission is being granted, false for revoked + * @hide + */ + public void updateAppPermission(Account account, String authTokenType, int uid, boolean value) { + try { + mService.updateAppPermission(account, authTokenType, uid, value); + } catch (RemoteException e) { + // won't ever happen + throw new RuntimeException(e); + } + } + + /** + * Get the user-friendly label associated with an authenticator's auth token. + * @param accountType the type of the authenticator. must not be null. + * @param authTokenType the token type. must not be null. + * @param callback callback to invoke when the result is available. may be null. + * @param handler the handler on which to invoke the callback, or null for the main thread + * @return a future containing the label string + * @hide + */ + public AccountManagerFuture<String> getAuthTokenLabel( + final String accountType, final String authTokenType, + AccountManagerCallback<String> callback, Handler handler) { + if (accountType == null) throw new IllegalArgumentException("accountType is null"); + if (authTokenType == null) throw new IllegalArgumentException("authTokenType is null"); + return new Future2Task<String>(handler, callback) { + public void doWork() throws RemoteException { + mService.getAuthTokenLabel(mResponse, accountType, authTokenType); + } + + @Override + public String bundleToResult(Bundle bundle) throws AuthenticatorException { + if (!bundle.containsKey(KEY_AUTH_TOKEN_LABEL)) { + throw new AuthenticatorException("no result in response"); + } + return bundle.getString(KEY_AUTH_TOKEN_LABEL); + } + }.start(); + } + + /** * Finds out whether a particular account has all the specified features. * Account features are authenticator-specific string tokens identifying * boolean account properties. For example, features are used to tell diff --git a/core/java/android/accounts/AccountManagerService.java b/core/java/android/accounts/AccountManagerService.java index 2b643c2..079b9bd 100644 --- a/core/java/android/accounts/AccountManagerService.java +++ b/core/java/android/accounts/AccountManagerService.java @@ -163,7 +163,8 @@ public class AccountManagerService new HashMap<Account, Integer>(); private final Object cacheLock = new Object(); /** protected by the {@link #cacheLock} */ - private final HashMap<String, Account[]> accountCache = new HashMap<String, Account[]>(); + private final HashMap<String, Account[]> accountCache = + new LinkedHashMap<String, Account[]>(); /** protected by the {@link #cacheLock} */ private HashMap<Account, HashMap<String, String>> userDataCache = new HashMap<Account, HashMap<String, String>>(); @@ -296,7 +297,7 @@ public class AccountManagerService try { accounts.accountCache.clear(); final HashMap<String, ArrayList<String>> accountNamesByType = - new HashMap<String, ArrayList<String>>(); + new LinkedHashMap<String, ArrayList<String>>(); while (cursor.moveToNext()) { final long accountId = cursor.getLong(0); final String accountType = cursor.getString(1); @@ -985,21 +986,25 @@ public class AccountManagerService } } - void getAuthTokenLabel(final IAccountManagerResponse response, - final Account account, - final String authTokenType, int uid) { - if (account == null) throw new IllegalArgumentException("account is null"); + public void getAuthTokenLabel(IAccountManagerResponse response, final String accountType, + final String authTokenType) + throws RemoteException { + if (accountType == null) throw new IllegalArgumentException("accountType is null"); if (authTokenType == null) throw new IllegalArgumentException("authTokenType is null"); - checkBinderPermission(Manifest.permission.USE_CREDENTIALS); - UserAccounts accounts = getUserAccounts(UserId.getUserId(uid)); + final int callingUid = getCallingUid(); + clearCallingIdentity(); + if (callingUid != android.os.Process.SYSTEM_UID) { + throw new SecurityException("can only call from system"); + } + UserAccounts accounts = getUserAccounts(UserId.getUserId(callingUid)); long identityToken = clearCallingIdentity(); try { - new Session(accounts, response, account.type, false, + new Session(accounts, response, accountType, false, false /* stripAuthTokenFromResult */) { protected String toDebugString(long now) { return super.toDebugString(now) + ", getAuthTokenLabel" - + ", " + account + + ", " + accountType + ", authTokenType " + authTokenType; } @@ -2230,6 +2235,21 @@ public class AccountManagerService Manifest.permission.USE_CREDENTIALS); } + public void updateAppPermission(Account account, String authTokenType, int uid, boolean value) + throws RemoteException { + final int callingUid = getCallingUid(); + + if (callingUid != android.os.Process.SYSTEM_UID) { + throw new SecurityException(); + } + + if (value) { + grantAppPermission(account, authTokenType, uid); + } else { + revokeAppPermission(account, authTokenType, uid); + } + } + /** * Allow callers with the given uid permission to get credentials for account/authTokenType. * <p> @@ -2237,7 +2257,7 @@ public class AccountManagerService * which is in the system. This means we don't need to protect it with permissions. * @hide */ - public void grantAppPermission(Account account, String authTokenType, int uid) { + private void grantAppPermission(Account account, String authTokenType, int uid) { if (account == null || authTokenType == null) { Log.e(TAG, "grantAppPermission: called with invalid arguments", new Exception()); return; @@ -2271,7 +2291,7 @@ public class AccountManagerService * which is in the system. This means we don't need to protect it with permissions. * @hide */ - public void revokeAppPermission(Account account, String authTokenType, int uid) { + private void revokeAppPermission(Account account, String authTokenType, int uid) { if (account == null || authTokenType == null) { Log.e(TAG, "revokeAppPermission: called with invalid arguments", new Exception()); return; diff --git a/core/java/android/accounts/ChooseTypeAndAccountActivity.java b/core/java/android/accounts/ChooseTypeAndAccountActivity.java index 291e75e..6b3b7fd 100644 --- a/core/java/android/accounts/ChooseTypeAndAccountActivity.java +++ b/core/java/android/accounts/ChooseTypeAndAccountActivity.java @@ -16,24 +16,18 @@ 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.text.TextUtils; 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.io.IOException; @@ -106,10 +100,16 @@ public class ChooseTypeAndAccountActivity extends Activity private static final String KEY_INSTANCE_STATE_PENDING_REQUEST = "pendingRequest"; private static final String KEY_INSTANCE_STATE_EXISTING_ACCOUNTS = "existingAccounts"; + private static final String KEY_INSTANCE_STATE_SELECTED_ACCOUNT_NAME = "selectedAccountName"; + private static final String KEY_INSTANCE_STATE_SELECTED_ADD_ACCOUNT = "selectedAddAccount"; + + private static final int SELECTED_ITEM_NONE = -1; - private ArrayList<AccountInfo> mAccountInfos; + private ArrayList<Account> mAccounts; private int mPendingRequest = REQUEST_NULL; private Parcelable[] mExistingAccounts = null; + private int mSelectedItemIndex; + private Button mOkButton; @Override public void onCreate(Bundle savedInstanceState) { @@ -119,31 +119,39 @@ public class ChooseTypeAndAccountActivity extends Activity + savedInstanceState + ")"); } + // save some items we use frequently + final AccountManager accountManager = AccountManager.get(this); + final Intent intent = getIntent(); + + String selectedAccountName = null; + boolean selectedAddNewAccount = false; + if (savedInstanceState != null) { mPendingRequest = savedInstanceState.getInt(KEY_INSTANCE_STATE_PENDING_REQUEST); mExistingAccounts = savedInstanceState.getParcelableArray(KEY_INSTANCE_STATE_EXISTING_ACCOUNTS); + + // Makes sure that any user selection is preserved across orientation changes. + selectedAccountName = savedInstanceState.getString( + KEY_INSTANCE_STATE_SELECTED_ACCOUNT_NAME); + + selectedAddNewAccount = savedInstanceState.getBoolean( + KEY_INSTANCE_STATE_SELECTED_ADD_ACCOUNT, false); } else { mPendingRequest = REQUEST_NULL; mExistingAccounts = null; + // If the selected account as specified in the intent matches one in the list we will + // show is as pre-selected. + Account selectedAccount = (Account) intent.getParcelableExtra(EXTRA_SELECTED_ACCOUNT); + if (selectedAccount != null) { + selectedAccountName = selectedAccount.name; + } } - // save some items we use frequently - final AccountManager accountManager = AccountManager.get(this); - final Intent intent = getIntent(); - - // override the description text if supplied - final String descriptionOverride = - intent.getStringExtra(EXTRA_DESCRIPTION_TEXT_OVERRIDE); - if (!TextUtils.isEmpty(descriptionOverride)) { - ((TextView)findViewById(R.id.description)).setText(descriptionOverride); + if (Log.isLoggable(TAG, Log.VERBOSE)) { + Log.v(TAG, "selected account name is " + selectedAccountName); } - // If the selected account matches one in the list we will place a - // checkmark next to it. - final Account selectedAccount = - (Account)intent.getParcelableExtra(EXTRA_SELECTED_ACCOUNT); - // build an efficiently queryable map of account types to authenticator descriptions final HashMap<String, AuthenticatorDescription> typeToAuthDescription = new HashMap<String, AuthenticatorDescription>(); @@ -192,7 +200,8 @@ public class ChooseTypeAndAccountActivity extends Activity // 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); + mAccounts = new ArrayList<Account>(accounts.length); + mSelectedItemIndex = SELECTED_ITEM_NONE; for (Account account : accounts) { if (setOfAllowableAccounts != null && !setOfAllowableAccounts.contains(account)) { @@ -202,15 +211,16 @@ public class ChooseTypeAndAccountActivity extends Activity && !setOfRelevantAccountTypes.contains(account.type)) { continue; } - mAccountInfos.add(new AccountInfo(account, - getDrawableForType(typeToAuthDescription, account.type), - account.equals(selectedAccount))); + if (account.name.equals(selectedAccountName)) { + mSelectedItemIndex = mAccounts.size(); + } + mAccounts.add(account); } if (mPendingRequest == REQUEST_NULL) { - // If there are no relevant accounts and only one relevant account typoe go directly to + // If there are no relevant accounts and only one relevant account type go directly to // add account. Otherwise let the user choose. - if (mAccountInfos.isEmpty()) { + if (mAccounts.isEmpty()) { if (setOfRelevantAccountTypes.size() == 1) { runAddAccountForAuthenticator(setOfRelevantAccountTypes.iterator().next()); } else { @@ -221,36 +231,64 @@ public class ChooseTypeAndAccountActivity extends Activity // if there is only one allowable account return it if (!intent.getBooleanExtra(EXTRA_ALWAYS_PROMPT_FOR_ACCOUNT, false) - && mAccountInfos.size() == 1) { - Account account = mAccountInfos.get(0).account; + && mAccounts.size() == 1) { + Account account = mAccounts.get(0); setResultAndFinish(account.name, account.type); return; } } + // Cannot set content view until we know that mPendingRequest is not null, otherwise + // would cause screen flicker. setContentView(R.layout.choose_type_and_account); - // there is more than one allowable account. initialize the list adapter to allow - // the user to select an account. + // Override the description text if supplied + final String descriptionOverride = + intent.getStringExtra(EXTRA_DESCRIPTION_TEXT_OVERRIDE); + TextView descriptionView = (TextView) findViewById(R.id.description); + if (!TextUtils.isEmpty(descriptionOverride)) { + descriptionView.setText(descriptionOverride); + } else { + descriptionView.setVisibility(View.GONE); + } + + // List of options includes all accounts found together with "Add new account" as the + // last item in the list. + String[] listItems = new String[mAccounts.size() + 1]; + for (int i = 0; i < mAccounts.size(); i++) { + listItems[i] = mAccounts.get(i).name; + } + listItems[mAccounts.size()] = getResources().getString( + R.string.add_account_button_label); + ListView list = (ListView) findViewById(android.R.id.list); - list.setAdapter(new AccountArrayAdapter(this, - android.R.layout.simple_list_item_1, mAccountInfos)); + list.setAdapter(new ArrayAdapter<String>(this, + android.R.layout.simple_list_item_single_choice, listItems)); list.setChoiceMode(ListView.CHOICE_MODE_SINGLE); + list.setItemsCanFocus(false); list.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View v, int position, long id) { - onListItemClick((ListView)parent, v, position, id); + mSelectedItemIndex = position; + mOkButton.setEnabled(true); } }); - // set the listener for the addAccount button - Button addAccountButton = (Button) findViewById(R.id.addAccount); - addAccountButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(final View v) { - startChooseAccountTypeActivity(); + // If "Add account" option was previously selected by user, preserve it across + // orientation changes. + if (selectedAddNewAccount) { + mSelectedItemIndex = mAccounts.size(); + } + if (mSelectedItemIndex != SELECTED_ITEM_NONE) { + list.setItemChecked(mSelectedItemIndex, true); + if (Log.isLoggable(TAG, Log.VERBOSE)) { + Log.v(TAG, "List item " + mSelectedItemIndex + " should be selected"); } - }); + } + + // Only enable "OK" button if something has been selected. + mOkButton = (Button) findViewById(android.R.id.button2); + mOkButton.setEnabled(mSelectedItemIndex != SELECTED_ITEM_NONE); } @Override @@ -268,6 +306,28 @@ public class ChooseTypeAndAccountActivity extends Activity if (mPendingRequest == REQUEST_ADD_ACCOUNT) { outState.putParcelableArray(KEY_INSTANCE_STATE_EXISTING_ACCOUNTS, mExistingAccounts); } + if (mSelectedItemIndex != SELECTED_ITEM_NONE) { + if (mSelectedItemIndex == mAccounts.size()) { + outState.putBoolean(KEY_INSTANCE_STATE_SELECTED_ADD_ACCOUNT, true); + } else { + outState.putBoolean(KEY_INSTANCE_STATE_SELECTED_ADD_ACCOUNT, false); + outState.putString(KEY_INSTANCE_STATE_SELECTED_ACCOUNT_NAME, + mAccounts.get(mSelectedItemIndex).name); + } + } + } + + public void onCancelButtonClicked(View view) { + onBackPressed(); + } + + public void onOkButtonClicked(View view) { + if (mSelectedItemIndex == mAccounts.size()) { + // Selected "Add New Account" option + startChooseAccountTypeActivity(); + } else if (mSelectedItemIndex != SELECTED_ITEM_NONE) { + onAccountSelected(mAccounts.get(mSelectedItemIndex)); + } } // Called when the choose account type activity (for adding an account) returns. @@ -287,9 +347,9 @@ public class ChooseTypeAndAccountActivity extends Activity mPendingRequest = REQUEST_NULL; if (resultCode == RESULT_CANCELED) { - // if cancelling out of addAccount and the original state caused us to skip this, + // if canceling out of addAccount and the original state caused us to skip this, // finish this activity - if (mAccountInfos.isEmpty()) { + if (mAccounts.isEmpty()) { setResult(Activity.RESULT_CANCELED); finish(); } @@ -360,6 +420,7 @@ public class ChooseTypeAndAccountActivity extends Activity options, null /* activity */, this /* callback */, null /* Handler */); } + @Override public void run(final AccountManagerFuture<Bundle> accountManagerFuture) { try { final Bundle accountManagerResult = accountManagerFuture.getResult(); @@ -385,34 +446,9 @@ public class ChooseTypeAndAccountActivity extends Activity 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 onAccountSelected(Account account) { + Log.d(TAG, "selected account " + account); + setResultAndFinish(account.name, account.type); } private void setResultAndFinish(final String accountName, final String accountType) { @@ -444,58 +480,4 @@ public class ChooseTypeAndAccountActivity extends Activity startActivityForResult(intent, REQUEST_CHOOSE_TYPE); mPendingRequest = REQUEST_CHOOSE_TYPE; } - - private static class AccountInfo { - final Account account; - final Drawable drawable; - private final boolean checked; - - AccountInfo(Account account, Drawable drawable, boolean checked) { - this.account = account; - this.drawable = drawable; - this.checked = checked; - } - } - - private static class ViewHolder { - ImageView icon; - TextView text; - ImageView checkmark; - } - - 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_selected_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); - holder.checkmark = (ImageView) convertView.findViewById(R.id.account_row_checkmark); - convertView.setTag(holder); - } else { - holder = (ViewHolder) convertView.getTag(); - } - - holder.text.setText(mInfos.get(position).account.name); - holder.icon.setImageDrawable(mInfos.get(position).drawable); - final int displayCheckmark = - mInfos.get(position).checked ? View.VISIBLE : View.INVISIBLE; - holder.checkmark.setVisibility(displayCheckmark); - return convertView; - } - } } diff --git a/core/java/android/accounts/GrantCredentialsPermissionActivity.java b/core/java/android/accounts/GrantCredentialsPermissionActivity.java index 4419c8c..8b01c6a 100644 --- a/core/java/android/accounts/GrantCredentialsPermissionActivity.java +++ b/core/java/android/accounts/GrantCredentialsPermissionActivity.java @@ -16,22 +16,22 @@ package android.accounts; import android.app.Activity; +import android.content.pm.RegisteredServicesCache; +import android.content.res.Resources; import android.os.Bundle; -import android.os.RemoteException; import android.widget.TextView; import android.widget.LinearLayout; -import android.widget.ImageView; import android.view.View; import android.view.LayoutInflater; -import android.view.Window; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; -import android.content.pm.RegisteredServicesCache; import android.text.TextUtils; -import android.graphics.drawable.Drawable; import com.android.internal.R; +import java.io.IOException; +import java.net.Authenticator; + /** * @hide */ @@ -48,7 +48,6 @@ public class GrantCredentialsPermissionActivity extends Activity implements View private int mUid; private Bundle mResultBundle = null; protected LayoutInflater mInflater; - private final AccountManagerService accountManagerService = AccountManagerService.getSingleton(); protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -81,7 +80,7 @@ public class GrantCredentialsPermissionActivity extends Activity implements View String accountTypeLabel; try { - accountTypeLabel = accountManagerService.getAccountLabel(mAccount.type); + accountTypeLabel = getAccountLabel(mAccount); } catch (IllegalArgumentException e) { // label or resource was missing. abort the activity. setResult(Activity.RESULT_CANCELED); @@ -92,28 +91,27 @@ public class GrantCredentialsPermissionActivity extends Activity implements View final TextView authTokenTypeView = (TextView) findViewById(R.id.authtoken_type); authTokenTypeView.setVisibility(View.GONE); - /** Handles the responses from the AccountManager */ - IAccountManagerResponse response = new IAccountManagerResponse.Stub() { - public void onResult(Bundle bundle) { - final String authTokenLabel = - bundle.getString(AccountManager.KEY_AUTH_TOKEN_LABEL); - if (!TextUtils.isEmpty(authTokenLabel)) { - runOnUiThread(new Runnable() { - public void run() { - if (!isFinishing()) { - authTokenTypeView.setText(authTokenLabel); - authTokenTypeView.setVisibility(View.VISIBLE); + final AccountManagerCallback<String> callback = new AccountManagerCallback<String>() { + public void run(AccountManagerFuture<String> future) { + try { + final String authTokenLabel = future.getResult(); + if (!TextUtils.isEmpty(authTokenLabel)) { + runOnUiThread(new Runnable() { + public void run() { + if (!isFinishing()) { + authTokenTypeView.setText(authTokenLabel); + authTokenTypeView.setVisibility(View.VISIBLE); + } } - } - }); + }); + } + } catch (OperationCanceledException e) { + } catch (IOException e) { + } catch (AuthenticatorException e) { } } - - public void onError(int code, String message) { - } }; - - accountManagerService.getAuthTokenLabel(response, mAccount, mAuthTokenType, mUid); + AccountManager.get(this).getAuthTokenLabel(mAccount.type, mAuthTokenType, callback, null); findViewById(R.id.allow_button).setOnClickListener(this); findViewById(R.id.deny_button).setOnClickListener(this); @@ -134,6 +132,24 @@ public class GrantCredentialsPermissionActivity extends Activity implements View ((TextView) findViewById(R.id.account_type)).setText(accountTypeLabel); } + private String getAccountLabel(Account account) { + final AuthenticatorDescription[] authenticatorTypes = + AccountManager.get(this).getAuthenticatorTypes(); + for (int i = 0, N = authenticatorTypes.length; i < N; i++) { + final AuthenticatorDescription desc = authenticatorTypes[i]; + if (desc.type.equals(account.type)) { + try { + return createPackageContext(desc.packageName, 0).getString(desc.labelId); + } catch (PackageManager.NameNotFoundException e) { + return account.type; + } catch (Resources.NotFoundException e) { + return account.type; + } + } + } + return account.type; + } + private View newPackageView(String packageLabel) { View view = mInflater.inflate(R.layout.permissions_package_list_item, null); ((TextView) view.findViewById(R.id.package_label)).setText(packageLabel); @@ -143,7 +159,7 @@ public class GrantCredentialsPermissionActivity extends Activity implements View public void onClick(View v) { switch (v.getId()) { case R.id.allow_button: - accountManagerService.grantAppPermission(mAccount, mAuthTokenType, mUid); + AccountManager.get(this).updateAppPermission(mAccount, mAuthTokenType, mUid, true); Intent result = new Intent(); result.putExtra("retry", true); setResult(RESULT_OK, result); @@ -151,7 +167,7 @@ public class GrantCredentialsPermissionActivity extends Activity implements View break; case R.id.deny_button: - accountManagerService.revokeAppPermission(mAccount, mAuthTokenType, mUid); + AccountManager.get(this).updateAppPermission(mAccount, mAuthTokenType, mUid, false); setResult(RESULT_CANCELED); break; } diff --git a/core/java/android/accounts/IAccountManager.aidl b/core/java/android/accounts/IAccountManager.aidl index 36a5653..6007321 100644 --- a/core/java/android/accounts/IAccountManager.aidl +++ b/core/java/android/accounts/IAccountManager.aidl @@ -41,6 +41,7 @@ interface IAccountManager { void setPassword(in Account account, String password); void clearPassword(in Account account); void setUserData(in Account account, String key, String value); + void updateAppPermission(in Account account, String authTokenType, int uid, boolean value); void getAuthToken(in IAccountManagerResponse response, in Account account, String authTokenType, boolean notifyOnAuthFailure, boolean expectActivityLaunch, @@ -54,4 +55,6 @@ interface IAccountManager { boolean expectActivityLaunch); void confirmCredentials(in IAccountManagerResponse response, in Account account, in Bundle options, boolean expectActivityLaunch); + void getAuthTokenLabel(in IAccountManagerResponse response, String accountType, + String authTokenType); } diff --git a/core/java/android/app/ActivityManager.java b/core/java/android/app/ActivityManager.java index 17b1962..92b6f72 100644 --- a/core/java/android/app/ActivityManager.java +++ b/core/java/android/app/ActivityManager.java @@ -1360,6 +1360,13 @@ public class ActivityManager { public int lastTrimLevel; /** + * Constant for {@link #importance}: this is a persistent process. + * Only used when reporting to process observers. + * @hide + */ + public static final int IMPORTANCE_PERSISTENT = 50; + + /** * Constant for {@link #importance}: this process is running the * foreground UI. */ diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java index a457e3c..7242029 100644 --- a/core/java/android/app/ActivityThread.java +++ b/core/java/android/app/ActivityThread.java @@ -4516,7 +4516,7 @@ public final class ActivityThread { boolean noisy, boolean noReleaseNeeded, boolean stable) { ContentProvider localProvider = null; IContentProvider provider; - if (holder == null) { + if (holder == null || holder.provider == null) { if (DEBUG_PROVIDER || noisy) { Slog.d(TAG, "Loading provider " + info.authority + ": " + info.name); diff --git a/core/java/android/app/FragmentManager.java b/core/java/android/app/FragmentManager.java index 6058bdc..03ee419 100644 --- a/core/java/android/app/FragmentManager.java +++ b/core/java/android/app/FragmentManager.java @@ -1568,8 +1568,17 @@ final class FragmentManagerImpl extends FragmentManager { for (int i=0; i<N; i++) { Fragment f = mActive.get(i); if (f != null) { + if (f.mIndex < 0) { + String msg = "Failure saving state: active " + f + + " has cleared index: " + f.mIndex; + Slog.e(TAG, msg); + dump(" ", null, new PrintWriter(new LogWriter( + Log.ERROR, TAG, Log.LOG_ID_SYSTEM)), new String[] { }); + throw new IllegalStateException(msg); + } + haveFragments = true; - + FragmentState fs = new FragmentState(f); active[i] = fs; @@ -1621,6 +1630,14 @@ final class FragmentManagerImpl extends FragmentManager { added = new int[N]; for (int i=0; i<N; i++) { added[i] = mAdded.get(i).mIndex; + if (added[i] < 0) { + String msg = "Failure saving state: active " + mAdded.get(i) + + " has cleared index: " + added[i]; + Slog.e(TAG, msg); + dump(" ", null, new PrintWriter(new LogWriter( + Log.ERROR, TAG, Log.LOG_ID_SYSTEM)), new String[] { }); + throw new IllegalStateException(msg); + } if (DEBUG) Log.v(TAG, "saveAllState: adding fragment #" + i + ": " + mAdded.get(i)); } diff --git a/core/java/android/app/IProcessObserver.aidl b/core/java/android/app/IProcessObserver.aidl index 2094294..e587912 100644 --- a/core/java/android/app/IProcessObserver.aidl +++ b/core/java/android/app/IProcessObserver.aidl @@ -20,6 +20,7 @@ package android.app; oneway interface IProcessObserver { void onForegroundActivitiesChanged(int pid, int uid, boolean foregroundActivities); + void onImportanceChanged(int pid, int uid, int importance); void onProcessDied(int pid, int uid); } diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java index 3ced82b..036008b 100644 --- a/core/java/android/app/Notification.java +++ b/core/java/android/app/Notification.java @@ -1379,7 +1379,7 @@ public class Notification implements Parcelable } } - private RemoteViews applyStandardTemplate(int resId) { + private RemoteViews applyStandardTemplate(int resId, boolean fitIn1U) { RemoteViews contentView = new RemoteViews(mContext.getPackageName(), resId); boolean showLine3 = false; boolean showLine2 = false; @@ -1432,7 +1432,6 @@ public class Notification implements Parcelable contentView.setTextViewText(R.id.text, mSubText); if (mContentText != null) { contentView.setTextViewText(R.id.text2, mContentText); - // need to shrink all the type to make sure everything fits contentView.setViewVisibility(R.id.text2, View.VISIBLE); showLine2 = true; } else { @@ -1450,10 +1449,13 @@ public class Notification implements Parcelable } } if (showLine2) { - final Resources res = mContext.getResources(); - final float subTextSize = res.getDimensionPixelSize( - R.dimen.notification_subtext_size); - contentView.setTextViewTextSize(R.id.text, TypedValue.COMPLEX_UNIT_PX, subTextSize); + if (fitIn1U) { + // need to shrink all the type to make sure everything fits + final Resources res = mContext.getResources(); + final float subTextSize = res.getDimensionPixelSize( + R.dimen.notification_subtext_size); + contentView.setTextViewTextSize(R.id.text, TypedValue.COMPLEX_UNIT_PX, subTextSize); + } // vertical centering contentView.setViewPadding(R.id.line1, 0, 0, 0, 0); } @@ -1470,16 +1472,18 @@ public class Notification implements Parcelable } } contentView.setViewVisibility(R.id.line3, showLine3 ? View.VISIBLE : View.GONE); + contentView.setViewVisibility(R.id.overflow_divider, showLine3 ? View.VISIBLE : View.GONE); return contentView; } private RemoteViews applyStandardTemplateWithActions(int layoutId) { - RemoteViews big = applyStandardTemplate(layoutId); + RemoteViews big = applyStandardTemplate(layoutId, false); int N = mActions.size(); if (N > 0) { // Log.d("Notification", "has actions: " + mContentText); big.setViewVisibility(R.id.actions, View.VISIBLE); + big.setViewVisibility(R.id.action_divider, View.VISIBLE); if (N>MAX_ACTION_BUTTONS) N=MAX_ACTION_BUTTONS; big.removeAllViews(R.id.actions); for (int i=0; i<N; i++) { @@ -1495,7 +1499,7 @@ public class Notification implements Parcelable if (mContentView != null) { return mContentView; } else { - return applyStandardTemplate(R.layout.notification_template_base); // no more special large_icon flavor + return applyStandardTemplate(R.layout.notification_template_base, true); // no more special large_icon flavor } } @@ -1506,7 +1510,7 @@ public class Notification implements Parcelable if (mContentView == null) { return applyStandardTemplate(mLargeIcon == null ? R.layout.status_bar_latest_event_ticker - : R.layout.status_bar_latest_event_ticker_large_icon); + : R.layout.status_bar_latest_event_ticker_large_icon, true); } else { return null; } @@ -1655,12 +1659,9 @@ public class Notification implements Parcelable contentView.setViewVisibility(R.id.line1, View.VISIBLE); } + // The last line defaults to the content text or subtext, but can be replaced by mSummaryText if (mSummaryText != null && !mSummaryText.equals("")) { - contentView.setViewVisibility(R.id.overflow_title, View.VISIBLE); - contentView.setTextViewText(R.id.overflow_title, mSummaryText); - contentView.setViewVisibility(R.id.line3, View.GONE); - } else { - contentView.setViewVisibility(R.id.overflow_title, View.GONE); + contentView.setTextViewText(R.id.text, mSummaryText); contentView.setViewVisibility(R.id.line3, View.VISIBLE); } @@ -1801,6 +1802,8 @@ public class Notification implements Parcelable } private RemoteViews makeBigContentView() { + // Remove the content text so line3 disappears entirely + mBuilder.mContentText = null; RemoteViews contentView = getStandardView(R.layout.notification_template_big_text); contentView.setTextViewText(R.id.big_text, mBigText); contentView.setViewVisibility(R.id.big_text, View.VISIBLE); diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java index ad52e13..e180df4 100644 --- a/core/java/android/content/pm/PackageParser.java +++ b/core/java/android/content/pm/PackageParser.java @@ -935,7 +935,17 @@ public class PackageParser { com.android.internal.R.styleable.AndroidManifest_installLocation, PARSE_DEFAULT_INSTALL_LOCATION); pkg.applicationInfo.installLocation = pkg.installLocation; - + + /* Set the global "forward lock" flag */ + if ((flags & PARSE_FORWARD_LOCK) != 0) { + pkg.applicationInfo.flags |= ApplicationInfo.FLAG_FORWARD_LOCK; + } + + /* Set the global "on SD card" flag */ + if ((flags & PARSE_ON_SDCARD) != 0) { + pkg.applicationInfo.flags |= ApplicationInfo.FLAG_EXTERNAL_STORAGE; + } + // Resource boolean are -1, so 1 means we don't know the value. int supportsSmallScreens = 1; int supportsNormalScreens = 1; @@ -1726,14 +1736,6 @@ public class PackageParser { } } - if ((flags & PARSE_FORWARD_LOCK) != 0) { - ai.flags |= ApplicationInfo.FLAG_FORWARD_LOCK; - } - - if ((flags & PARSE_ON_SDCARD) != 0) { - ai.flags |= ApplicationInfo.FLAG_EXTERNAL_STORAGE; - } - if (sa.getBoolean( com.android.internal.R.styleable.AndroidManifestApplication_debuggable, false)) { diff --git a/core/java/android/hardware/Camera.java b/core/java/android/hardware/Camera.java index 035a7c6..4d9077f 100644 --- a/core/java/android/hardware/Camera.java +++ b/core/java/android/hardware/Camera.java @@ -736,8 +736,8 @@ public class Camera { return; case CAMERA_MSG_PREVIEW_FRAME: - if (mPreviewCallback != null) { - PreviewCallback cb = mPreviewCallback; + PreviewCallback pCb = mPreviewCallback; + if (pCb != null) { if (mOneShot) { // Clear the callback variable before the callback // in case the app calls setPreviewCallback from @@ -749,7 +749,7 @@ public class Camera { // Set to oneshot mode again. setHasPreviewCallback(true, false); } - cb.onPreviewFrame((byte[])msg.obj, mCamera); + pCb.onPreviewFrame((byte[])msg.obj, mCamera); } return; diff --git a/core/java/android/provider/ContactsContract.java b/core/java/android/provider/ContactsContract.java index 2782dca..e8f87bb 100644 --- a/core/java/android/provider/ContactsContract.java +++ b/core/java/android/provider/ContactsContract.java @@ -24,6 +24,7 @@ import android.content.ContentResolver; import android.content.ContentUris; import android.content.ContentValues; import android.content.Context; +import android.content.ContextWrapper; import android.content.CursorEntityIterator; import android.content.Entity; import android.content.EntityIterator; @@ -7711,9 +7712,19 @@ public final class ContactsContract { */ public static void showQuickContact(Context context, Rect target, Uri lookupUri, int mode, String[] excludeMimes) { + // When launching from an Activiy, we don't want to start a new task, but otherwise + // we *must* start a new task. (Otherwise startActivity() would crash.) + Context actualContext = context; + while ((actualContext instanceof ContextWrapper) + && !(actualContext instanceof Activity)) { + actualContext = ((ContextWrapper) actualContext).getBaseContext(); + } + final int intentFlags = (actualContext instanceof Activity) + ? Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET + : Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK; + // Launch pivot dialog through intent for now - final Intent intent = new Intent(ACTION_QUICK_CONTACT) - .addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); + final Intent intent = new Intent(ACTION_QUICK_CONTACT).addFlags(intentFlags); intent.setData(lookupUri); intent.setSourceBounds(target); diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index 8b7ee0e..8630204 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -2886,6 +2886,15 @@ public final class Settings { "enabled_accessibility_services"; /** + * List of the accessibility services to which the user has graned + * permission to put the device into touch exploration mode. + * + * @hide + */ + public static final String TOUCH_EXPLORATION_GRANTED_ACCESSIBILITY_SERVICES = + "touch_exploration_granted_accessibility_services"; + + /** * Whether to speak passwords while in accessibility mode. */ public static final String ACCESSIBILITY_SPEAK_PASSWORD = "speak_password"; @@ -4292,6 +4301,7 @@ public final class Settings { ACCESSIBILITY_SCRIPT_INJECTION, BACKUP_AUTO_RESTORE, ENABLED_ACCESSIBILITY_SERVICES, + TOUCH_EXPLORATION_GRANTED_ACCESSIBILITY_SERVICES, TOUCH_EXPLORATION_ENABLED, ACCESSIBILITY_ENABLED, ACCESSIBILITY_SPEAK_PASSWORD, diff --git a/core/java/android/server/BluetoothA2dpService.java b/core/java/android/server/BluetoothA2dpService.java index 300bc68..08a99d2 100644 --- a/core/java/android/server/BluetoothA2dpService.java +++ b/core/java/android/server/BluetoothA2dpService.java @@ -33,7 +33,11 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.media.AudioManager; +import android.os.Handler; +import android.os.Message; import android.os.ParcelUuid; +import android.os.PowerManager; +import android.os.PowerManager.WakeLock; import android.provider.Settings; import android.util.Log; @@ -65,6 +69,10 @@ public class BluetoothA2dpService extends IBluetoothA2dp.Stub { private final BluetoothAdapter mAdapter; private int mTargetA2dpState; private BluetoothDevice mPlayingA2dpDevice; + private IntentBroadcastHandler mIntentBroadcastHandler; + private final WakeLock mWakeLock; + + private static final int MSG_CONNECTION_STATE_CHANGED = 0; private final BroadcastReceiver mReceiver = new BroadcastReceiver() { @Override @@ -131,6 +139,11 @@ public class BluetoothA2dpService extends IBluetoothA2dp.Stub { public BluetoothA2dpService(Context context, BluetoothService bluetoothService) { mContext = context; + PowerManager pm = (PowerManager)context.getSystemService(Context.POWER_SERVICE); + mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "BluetoothA2dpService"); + + mIntentBroadcastHandler = new IntentBroadcastHandler(); + mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); mBluetoothService = bluetoothService; @@ -514,17 +527,15 @@ public class BluetoothA2dpService extends IBluetoothA2dp.Stub { adjustOtherSinkPriorities(device); } - Intent intent = new Intent(BluetoothA2dp.ACTION_CONNECTION_STATE_CHANGED); - intent.putExtra(BluetoothDevice.EXTRA_DEVICE, device); - intent.putExtra(BluetoothProfile.EXTRA_PREVIOUS_STATE, prevState); - intent.putExtra(BluetoothProfile.EXTRA_STATE, state); - intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT); - mContext.sendBroadcast(intent, BLUETOOTH_PERM); + int delay = mAudioManager.setBluetoothA2dpDeviceConnectionState(device, state); - if (DBG) log("A2DP state : device: " + device + " State:" + prevState + "->" + state); - - mBluetoothService.sendConnectionStateChange(device, BluetoothProfile.A2DP, state, - prevState); + mWakeLock.acquire(); + mIntentBroadcastHandler.sendMessageDelayed(mIntentBroadcastHandler.obtainMessage( + MSG_CONNECTION_STATE_CHANGED, + prevState, + state, + device), + delay); } } @@ -586,6 +597,34 @@ public class BluetoothA2dpService extends IBluetoothA2dp.Stub { } } + /** Handles A2DP connection state change intent broadcasts. */ + private class IntentBroadcastHandler extends Handler { + + private void onConnectionStateChanged(BluetoothDevice device, int prevState, int state) { + Intent intent = new Intent(BluetoothA2dp.ACTION_CONNECTION_STATE_CHANGED); + intent.putExtra(BluetoothDevice.EXTRA_DEVICE, device); + intent.putExtra(BluetoothProfile.EXTRA_PREVIOUS_STATE, prevState); + intent.putExtra(BluetoothProfile.EXTRA_STATE, state); + intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT); + mContext.sendBroadcast(intent, BLUETOOTH_PERM); + + if (DBG) log("A2DP state : device: " + device + " State:" + prevState + "->" + state); + + mBluetoothService.sendConnectionStateChange(device, BluetoothProfile.A2DP, state, + prevState); + } + + @Override + public void handleMessage(Message msg) { + switch (msg.what) { + case MSG_CONNECTION_STATE_CHANGED: + onConnectionStateChanged((BluetoothDevice) msg.obj, msg.arg1, msg.arg2); + mWakeLock.release(); + break; + } + } + } + @Override protected synchronized void dump(FileDescriptor fd, PrintWriter pw, String[] args) { mContext.enforceCallingOrSelfPermission(android.Manifest.permission.DUMP, TAG); diff --git a/core/java/android/view/DisplayList.java b/core/java/android/view/DisplayList.java index da666b5..a42e156 100644 --- a/core/java/android/view/DisplayList.java +++ b/core/java/android/view/DisplayList.java @@ -62,6 +62,13 @@ public abstract class DisplayList { public static final int STATUS_INVOKE = 0x2; /** + * Indicates that the display list performed GL drawing operations. + * + * @see HardwareCanvas#drawDisplayList(DisplayList, android.graphics.Rect, int) + */ + public static final int STATUS_DREW = 0x4; + + /** * Starts recording the display list. All operations performed on the * returned canvas are recorded and stored in this display list. * diff --git a/core/java/android/view/HardwareRenderer.java b/core/java/android/view/HardwareRenderer.java index f986d15..7e86ea3 100644 --- a/core/java/android/view/HardwareRenderer.java +++ b/core/java/android/view/HardwareRenderer.java @@ -457,9 +457,11 @@ public abstract class HardwareRenderer { * @param functor The native functor to insert in the execution queue. * * @see HardwareCanvas#callDrawGLFunction(int) - * @see #detachFunctor(int) + * @see #detachFunctor(int) + * + * @return true if the functor was attached successfully */ - abstract void attachFunctor(View.AttachInfo attachInfo, int functor); + abstract boolean attachFunctor(View.AttachInfo attachInfo, int functor); /** * Initializes the hardware renderer for the specified surface and setup the @@ -1102,6 +1104,7 @@ public abstract class HardwareRenderer { onPreDraw(dirty); + int status = DisplayList.STATUS_DONE; int saveCount = canvas.save(); callbacks.onHardwarePreDraw(canvas); @@ -1135,7 +1138,7 @@ public abstract class HardwareRenderer { drawDisplayListStartTime = System.nanoTime(); } - int status = canvas.drawDisplayList(displayList, mRedrawClip, + status = canvas.drawDisplayList(displayList, mRedrawClip, DisplayList.FLAG_CLIP_CHILDREN); if (mProfileEnabled) { @@ -1171,22 +1174,25 @@ public abstract class HardwareRenderer { onPostDraw(); attachInfo.mIgnoreDirtyState = false; + + if ((status & DisplayList.STATUS_DREW) == DisplayList.STATUS_DREW) { - long eglSwapBuffersStartTime = 0; - if (mProfileEnabled) { - eglSwapBuffersStartTime = System.nanoTime(); - } - - sEgl.eglSwapBuffers(sEglDisplay, mEglSurface); - - if (mProfileEnabled) { - long now = System.nanoTime(); - float total = (now - eglSwapBuffersStartTime) * 0.000001f; - mProfileData[mProfileCurrentFrame + 2] = total; + long eglSwapBuffersStartTime = 0; + if (mProfileEnabled) { + eglSwapBuffersStartTime = System.nanoTime(); + } + + sEgl.eglSwapBuffers(sEglDisplay, mEglSurface); + + if (mProfileEnabled) { + long now = System.nanoTime(); + float total = (now - eglSwapBuffersStartTime) * 0.000001f; + mProfileData[mProfileCurrentFrame + 2] = total; + } + + checkEglErrors(); } - checkEglErrors(); - return dirty == null; } } @@ -1227,11 +1233,13 @@ public abstract class HardwareRenderer { } @Override - void attachFunctor(View.AttachInfo attachInfo, int functor) { + boolean attachFunctor(View.AttachInfo attachInfo, int functor) { if (mCanvas != null) { mCanvas.attachFunctor(functor); scheduleFunctors(attachInfo); + return true; } + return false; } /** diff --git a/core/java/android/view/InputDevice.java b/core/java/android/view/InputDevice.java index 2ea0360..3bb9c01 100755 --- a/core/java/android/view/InputDevice.java +++ b/core/java/android/view/InputDevice.java @@ -459,6 +459,18 @@ public final class InputDevice implements Parcelable { } /** + * Returns true if the device is a full keyboard. + * + * @return True if the device is a full keyboard. + * + * @hide + */ + public boolean isFullKeyboard() { + return (mSources & SOURCE_KEYBOARD) == SOURCE_KEYBOARD + && mKeyboardType == KEYBOARD_TYPE_ALPHABETIC; + } + + /** * Gets the name of this input device. * @return The input device name. */ diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index 551b6cc..3138692 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -670,10 +670,11 @@ public final class ViewRootImpl implements ViewParent, } } - public void attachFunctor(int functor) { + public boolean attachFunctor(int functor) { if (mAttachInfo.mHardwareRenderer != null && mAttachInfo.mHardwareRenderer.isEnabled()) { - mAttachInfo.mHardwareRenderer.attachFunctor(mAttachInfo, functor); + return mAttachInfo.mHardwareRenderer.attachFunctor(mAttachInfo, functor); } + return false; } public void detachFunctor(int functor) { diff --git a/core/java/android/view/VolumePanel.java b/core/java/android/view/VolumePanel.java index 78984e0..5ffc2c3 100644 --- a/core/java/android/view/VolumePanel.java +++ b/core/java/android/view/VolumePanel.java @@ -437,8 +437,10 @@ public class VolumePanel extends Handler implements OnSeekBarChangeListener, Vie public void postVolumeChanged(int streamType, int flags) { if (hasMessages(MSG_VOLUME_CHANGED)) return; - if (mStreamControls == null) { - createSliders(); + synchronized (this) { + if (mStreamControls == null) { + createSliders(); + } } removeMessages(MSG_FREE_RESOURCES); obtainMessage(MSG_VOLUME_CHANGED, streamType, flags).sendToTarget(); @@ -450,8 +452,10 @@ public class VolumePanel extends Handler implements OnSeekBarChangeListener, Vie public void postMuteChanged(int streamType, int flags) { if (hasMessages(MSG_VOLUME_CHANGED)) return; - if (mStreamControls == null) { - createSliders(); + synchronized (this) { + if (mStreamControls == null) { + createSliders(); + } } removeMessages(MSG_FREE_RESOURCES); obtainMessage(MSG_MUTE_CHANGED, streamType, flags).sendToTarget(); @@ -471,10 +475,12 @@ public class VolumePanel extends Handler implements OnSeekBarChangeListener, Vie if (LOGD) Log.d(TAG, "onVolumeChanged(streamType: " + streamType + ", flags: " + flags + ")"); if ((flags & AudioManager.FLAG_SHOW_UI) != 0) { - if (mActiveStreamType != streamType) { - reorderSliders(streamType); + synchronized (this) { + if (mActiveStreamType != streamType) { + reorderSliders(streamType); + } + onShowVolumeChanged(streamType, flags); } - onShowVolumeChanged(streamType, flags); } if ((flags & AudioManager.FLAG_PLAY_SOUND) != 0 && ! mRingIsSilent) { diff --git a/core/java/android/webkit/WebViewClassic.java b/core/java/android/webkit/WebViewClassic.java index 65fd59a..d1da53b 100644 --- a/core/java/android/webkit/WebViewClassic.java +++ b/core/java/android/webkit/WebViewClassic.java @@ -7827,15 +7827,18 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc mSendScrollEvent = true; int functor = 0; + boolean forceInval = isPictureAfterFirstLayout; ViewRootImpl viewRoot = mWebView.getViewRootImpl(); if (mWebView.isHardwareAccelerated() && viewRoot != null) { functor = nativeGetDrawGLFunction(mNativeClass); if (functor != 0) { - viewRoot.attachFunctor(functor); + // force an invalidate if functor attach not successful + forceInval |= !viewRoot.attachFunctor(functor); } } if (functor == 0 + || forceInval || mWebView.getLayerType() != View.LAYER_TYPE_NONE) { // invalidate the screen so that the next repaint will show new content // TODO: partial invalidate diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java index 9abe72b..edffb5e 100644 --- a/core/java/android/widget/AbsListView.java +++ b/core/java/android/widget/AbsListView.java @@ -57,7 +57,6 @@ import android.view.ViewConfiguration; import android.view.ViewDebug; import android.view.ViewGroup; import android.view.ViewParent; -import android.view.ViewRootImpl; import android.view.ViewTreeObserver; import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityManager; @@ -1331,43 +1330,42 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te @Override public void addFocusables(ArrayList<View> views, int direction, int focusableMode) { - if ((focusableMode & FOCUSABLES_ACCESSIBILITY) == FOCUSABLES_ACCESSIBILITY - && (direction == ACCESSIBILITY_FOCUS_FORWARD - || direction == ACCESSIBILITY_FOCUS_BACKWARD)) { - if (canTakeAccessibilityFocusFromHover()) { - views.add(this); + if ((focusableMode & FOCUSABLES_ACCESSIBILITY) == FOCUSABLES_ACCESSIBILITY) { + switch(direction) { + case ACCESSIBILITY_FOCUS_BACKWARD: { + View focusable = (getChildCount() > 0) ? getChildAt(getChildCount() - 1) : this; + if (focusable.canTakeAccessibilityFocusFromHover()) { + views.add(focusable); + } + } return; + case ACCESSIBILITY_FOCUS_FORWARD: { + if (canTakeAccessibilityFocusFromHover()) { + views.add(this); + } + } return; } - } else { super.addFocusables(views, direction, focusableMode); } } @Override public View focusSearch(int direction) { - return focusSearch(null, direction); + return focusSearch(this, direction); } @Override public View focusSearch(View focused, int direction) { switch (direction) { case ACCESSIBILITY_FOCUS_FORWARD: { - ViewRootImpl viewRootImpl = getViewRootImpl(); - if (viewRootImpl == null) { - return null; - } - View currentFocus = viewRootImpl.getAccessibilityFocusedHost(); - if (currentFocus == null) { - return super.focusSearch(this, direction); - } - // If we have the focus try giving it to the first child. - if (currentFocus == this) { + // If we are the focused view try giving it to the first child. + if (focused == this) { if (getChildCount() > 0) { return getChildAt(0); } return super.focusSearch(this, direction); } - // Find the item that has accessibility focus. - final int currentPosition = getPositionForView(currentFocus); + // Find the item that has the focused view. + final int currentPosition = getPositionForView(focused); if (currentPosition < 0 || currentPosition >= getCount()) { return super.focusSearch(this, direction); } @@ -1376,9 +1374,9 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te if (currentItem instanceof ViewGroup) { ViewGroup currentItemGroup = (ViewGroup) currentItem; View nextFocus = FocusFinder.getInstance().findNextFocus(currentItemGroup, - currentFocus, direction); + focused, direction); if (nextFocus != null && nextFocus != currentItemGroup - && nextFocus != currentFocus) { + && nextFocus != focused) { return nextFocus; } } @@ -1386,50 +1384,54 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te final int nextPosition = currentPosition - getFirstVisiblePosition() + 1; if (nextPosition < getChildCount()) { return getChildAt(nextPosition); - } else { - return super.focusSearch(this, direction); } + // No next item start searching from the list. + return super.focusSearch(this, direction); } case ACCESSIBILITY_FOCUS_BACKWARD: { - ViewRootImpl viewRootImpl = getViewRootImpl(); - if (viewRootImpl == null) { - return null; - } - View currentFocus = viewRootImpl.getAccessibilityFocusedHost(); - if (currentFocus == null) { - return super.focusSearch(this, direction); - } - // If we have the focus do a generic search. - if (currentFocus == this) { - final int lastChildIndex = getChildCount() - 1; - if (lastChildIndex >= 0) { - return getChildAt(lastChildIndex); + // If we are the focused search from the view that is + // as closer to the bottom as possible. + if (focused == this) { + final int childCount = getChildCount(); + if (childCount > 0) { + return super.focusSearch(getChildAt(childCount - 1), direction); } return super.focusSearch(this, direction); } - // Find the item that has accessibility focus. - final int currentPosition = getPositionForView(currentFocus); + // Find the item that has the focused view. + final int currentPosition = getPositionForView(focused); if (currentPosition < 0 || currentPosition >= getCount()) { return super.focusSearch(this, direction); } - // Try to advance focus in the current item. + View currentItem = getChildAt(currentPosition - getFirstVisiblePosition()); + + // If a list item is the focused view we try to find a view + // in the previous item since in reverse the item contents + // get accessibility focus before the item itself. + if (currentItem == focused) { + // This list gets accessibility focus after the last first item. + final int previoustPosition = currentPosition - getFirstVisiblePosition() - 1; + if (previoustPosition < 0) { + return this; + } + currentItem = getChildAt(previoustPosition); + focused = null; + } + + // Search for into the item. if (currentItem instanceof ViewGroup) { ViewGroup currentItemGroup = (ViewGroup) currentItem; View nextFocus = FocusFinder.getInstance().findNextFocus(currentItemGroup, - currentFocus, direction); + focused, direction); if (nextFocus != null && nextFocus != currentItemGroup - && nextFocus != currentFocus) { + && nextFocus != focused) { return nextFocus; } } - // Try to move focus to the previous item. - final int nextPosition = currentPosition - getFirstVisiblePosition() - 1; - if (nextPosition >= 0) { - return getChildAt(nextPosition); - } else { - return super.focusSearch(this, direction); - } + + // If not item content wants focus we give it to the item. + return currentItem; } } return super.focusSearch(focused, direction); @@ -2283,14 +2285,10 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te final ListAdapter adapter = getAdapter(); if ((position == INVALID_POSITION) || (adapter == null)) { - // Cannot perform actions on invalid items. - info.setEnabled(false); return; } if (!isEnabled() || !adapter.isEnabled(position)) { - // Cannot perform actions on invalid items. - info.setEnabled(false); return; } diff --git a/core/java/android/widget/Editor.java b/core/java/android/widget/Editor.java index 16490e8..c29dd58 100644 --- a/core/java/android/widget/Editor.java +++ b/core/java/android/widget/Editor.java @@ -1416,6 +1416,7 @@ public class Editor { } Layout layout = mTextView.getLayout(); + Layout hintLayout = mTextView.getHintLayout(); final int offset = mTextView.getSelectionStart(); final int line = layout.getLineForOffset(offset); final int top = layout.getLineTop(line); @@ -1429,13 +1430,23 @@ public class Editor { middle = (top + bottom) >> 1; } - updateCursorPosition(0, top, middle, layout.getPrimaryHorizontal(offset)); + updateCursorPosition(0, top, middle, getPrimaryHorizontal(layout, hintLayout, offset)); if (mCursorCount == 2) { updateCursorPosition(1, middle, bottom, layout.getSecondaryHorizontal(offset)); } } + private float getPrimaryHorizontal(Layout layout, Layout hintLayout, int offset) { + if (TextUtils.isEmpty(layout.getText()) && + hintLayout != null && + !TextUtils.isEmpty(hintLayout.getText())) { + return hintLayout.getPrimaryHorizontal(offset); + } else { + return layout.getPrimaryHorizontal(offset); + } + } + /** * @return true if the selection mode was actually started. */ diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index 3e2d43a..131b075 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -1312,6 +1312,14 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener } /** + * @return the Layout that is currently being used to display the hint text. + * This can be null. + */ + final Layout getHintLayout() { + return mHintLayout; + } + + /** * @return the current key listener for this TextView. * This will frequently be null for non-EditText TextViews. * diff --git a/core/java/com/android/internal/app/ActionBarImpl.java b/core/java/com/android/internal/app/ActionBarImpl.java index 234cb71..46478ca 100644 --- a/core/java/com/android/internal/app/ActionBarImpl.java +++ b/core/java/com/android/internal/app/ActionBarImpl.java @@ -673,26 +673,29 @@ public class ActionBarImpl extends ActionBar { if (mCurWindowVisibility == View.VISIBLE && (mShowHideAnimationEnabled || fromSystem)) { - mTopVisibilityView.setAlpha(0); - mTopVisibilityView.setTranslationY(-mTopVisibilityView.getHeight()); + mTopVisibilityView.setTranslationY(0); // because we're about to ask its window loc + float startingY = -mTopVisibilityView.getHeight(); + if (fromSystem) { + int topLeft[] = {0, 0}; + mTopVisibilityView.getLocationInWindow(topLeft); + startingY -= topLeft[1]; + } + mTopVisibilityView.setTranslationY(startingY); AnimatorSet anim = new AnimatorSet(); - AnimatorSet.Builder b = anim.play(ObjectAnimator.ofFloat(mTopVisibilityView, "alpha", 1)); - b.with(ObjectAnimator.ofFloat(mTopVisibilityView, "translationY", 0)); + AnimatorSet.Builder b = anim.play(ObjectAnimator.ofFloat(mTopVisibilityView, + "translationY", 0)); if (mContentView != null) { b.with(ObjectAnimator.ofFloat(mContentView, "translationY", - -mTopVisibilityView.getHeight(), 0)); + startingY, 0)); } if (mSplitView != null && mContextDisplayMode == CONTEXT_DISPLAY_SPLIT) { - mSplitView.setAlpha(0); mSplitView.setTranslationY(mSplitView.getHeight()); mSplitView.setVisibility(View.VISIBLE); - b.with(ObjectAnimator.ofFloat(mSplitView, "alpha", 1)); b.with(ObjectAnimator.ofFloat(mSplitView, "translationY", 0)); } anim.setInterpolator(AnimationUtils.loadInterpolator(mContext, - com.android.internal.R.interpolator.decelerate_quad)); - anim.setDuration(mContext.getResources().getInteger( - com.android.internal.R.integer.config_mediumAnimTime)); + com.android.internal.R.interpolator.decelerate_cubic)); + anim.setDuration(250); // If this is being shown from the system, add a small delay. // This is because we will also be animating in the status bar, // and these two elements can't be done in lock-step. So we give @@ -700,9 +703,6 @@ public class ActionBarImpl extends ActionBar { // the action bar animates. (This corresponds to the corresponding // case when hiding, where the status bar has a small delay before // starting.) - if (fromSystem) { - anim.setStartDelay(100); - } anim.addListener(mShowListener); mCurrentShowAnim = anim; anim.start(); @@ -734,23 +734,26 @@ public class ActionBarImpl extends ActionBar { mTopVisibilityView.setAlpha(1); mContainerView.setTransitioning(true); AnimatorSet anim = new AnimatorSet(); - AnimatorSet.Builder b = anim.play(ObjectAnimator.ofFloat(mTopVisibilityView, "alpha", 0)); - b.with(ObjectAnimator.ofFloat(mTopVisibilityView, "translationY", - -mTopVisibilityView.getHeight())); + float endingY = -mTopVisibilityView.getHeight(); + if (fromSystem) { + int topLeft[] = {0, 0}; + mTopVisibilityView.getLocationInWindow(topLeft); + endingY -= topLeft[1]; + } + AnimatorSet.Builder b = anim.play(ObjectAnimator.ofFloat(mTopVisibilityView, + "translationY", endingY)); if (mContentView != null) { b.with(ObjectAnimator.ofFloat(mContentView, "translationY", - 0, -mTopVisibilityView.getHeight())); + 0, endingY)); } if (mSplitView != null && mSplitView.getVisibility() == View.VISIBLE) { mSplitView.setAlpha(1); - b.with(ObjectAnimator.ofFloat(mSplitView, "alpha", 0)); b.with(ObjectAnimator.ofFloat(mSplitView, "translationY", mSplitView.getHeight())); } anim.setInterpolator(AnimationUtils.loadInterpolator(mContext, - com.android.internal.R.interpolator.accelerate_quad)); - anim.setDuration(mContext.getResources().getInteger( - com.android.internal.R.integer.config_mediumAnimTime)); + com.android.internal.R.interpolator.accelerate_cubic)); + anim.setDuration(250); anim.addListener(mHideListener); mCurrentShowAnim = anim; anim.start(); diff --git a/core/java/com/android/internal/widget/multiwaveview/MultiWaveView.java b/core/java/com/android/internal/widget/multiwaveview/MultiWaveView.java index a22395b..b2c3091 100644 --- a/core/java/com/android/internal/widget/multiwaveview/MultiWaveView.java +++ b/core/java/com/android/internal/widget/multiwaveview/MultiWaveView.java @@ -419,6 +419,7 @@ public class MultiWaveView extends View { "y", 0, "onUpdate", mUpdateListener, "onComplete", finishListener)); + mHandleAnimations.start(); } /** @@ -528,7 +529,6 @@ public class MultiWaveView extends View { deactivateHandle(HIDE_ANIMATION_DURATION, HIDE_ANIMATION_DELAY, 1.0f, mResetListenerWithPing); hideTargets(true, false); - mHandleAnimations.start(); } setGrabbedState(OnTriggerListener.NO_HANDLE); diff --git a/core/jni/android_database_SQLiteConnection.cpp b/core/jni/android_database_SQLiteConnection.cpp index 0777ea2..3bbb8bf 100644 --- a/core/jni/android_database_SQLiteConnection.cpp +++ b/core/jni/android_database_SQLiteConnection.cpp @@ -41,6 +41,20 @@ namespace android { +/* Busy timeout in milliseconds. + * If another connection (possibly in another process) has the database locked for + * longer than this amount of time then SQLite will generate a SQLITE_BUSY error. + * The SQLITE_BUSY error is then raised as a SQLiteDatabaseLockedException. + * + * In ordinary usage, busy timeouts are quite rare. Most databases only ever + * have a single open connection at a time unless they are using WAL. When using + * WAL, a timeout could occur if one connection is busy performing an auto-checkpoint + * operation. The busy timeout needs to be long enough to tolerate slow I/O write + * operations but not so long as to cause the application to hang indefinitely if + * there is a problem acquiring a database lock. + */ +static const int BUSY_TIMEOUT_MS = 2500; + static struct { jfieldID name; jfieldID numArgs; @@ -127,8 +141,8 @@ static jint nativeOpen(JNIEnv* env, jclass clazz, jstring pathStr, jint openFlag return 0; } - // Set the default busy handler to retry for 1000ms and then return SQLITE_BUSY - err = sqlite3_busy_timeout(db, 1000 /* ms */); + // Set the default busy handler to retry automatically before returning SQLITE_BUSY. + err = sqlite3_busy_timeout(db, BUSY_TIMEOUT_MS); if (err != SQLITE_OK) { throw_sqlite3_exception(env, db, "Could not set busy timeout"); sqlite3_close(db); diff --git a/core/jni/android_view_DisplayEventReceiver.cpp b/core/jni/android_view_DisplayEventReceiver.cpp index d80bfb3..89058a7 100644 --- a/core/jni/android_view_DisplayEventReceiver.cpp +++ b/core/jni/android_view_DisplayEventReceiver.cpp @@ -42,12 +42,13 @@ static struct { } gDisplayEventReceiverClassInfo; -class NativeDisplayEventReceiver : public RefBase { +class NativeDisplayEventReceiver : public LooperCallback { public: NativeDisplayEventReceiver(JNIEnv* env, jobject receiverObj, const sp<MessageQueue>& messageQueue); status_t initialize(); + void dispose(); status_t scheduleVsync(); protected: @@ -59,7 +60,7 @@ private: DisplayEventReceiver mReceiver; bool mWaitingForVsync; - static int handleReceiveCallback(int receiveFd, int events, void* data); + virtual int handleEvent(int receiveFd, int events, void* data); bool readLastVsyncMessage(nsecs_t* outTimestamp, uint32_t* outCount); }; @@ -72,12 +73,6 @@ NativeDisplayEventReceiver::NativeDisplayEventReceiver(JNIEnv* env, } NativeDisplayEventReceiver::~NativeDisplayEventReceiver() { - ALOGV("receiver %p ~ Disposing display event receiver.", this); - - if (!mReceiver.initCheck()) { - mMessageQueue->getLooper()->removeFd(mReceiver.getFd()); - } - JNIEnv* env = AndroidRuntime::getJNIEnv(); env->DeleteGlobalRef(mReceiverObjGlobal); } @@ -90,13 +85,21 @@ status_t NativeDisplayEventReceiver::initialize() { } int rc = mMessageQueue->getLooper()->addFd(mReceiver.getFd(), 0, ALOOPER_EVENT_INPUT, - handleReceiveCallback, this); + this, NULL); if (rc < 0) { return UNKNOWN_ERROR; } return OK; } +void NativeDisplayEventReceiver::dispose() { + ALOGV("receiver %p ~ Disposing display event receiver.", this); + + if (!mReceiver.initCheck()) { + mMessageQueue->getLooper()->removeFd(mReceiver.getFd()); + } +} + status_t NativeDisplayEventReceiver::scheduleVsync() { if (!mWaitingForVsync) { ALOGV("receiver %p ~ Scheduling vsync.", this); @@ -117,9 +120,7 @@ status_t NativeDisplayEventReceiver::scheduleVsync() { return OK; } -int NativeDisplayEventReceiver::handleReceiveCallback(int receiveFd, int events, void* data) { - sp<NativeDisplayEventReceiver> r = static_cast<NativeDisplayEventReceiver*>(data); - +int NativeDisplayEventReceiver::handleEvent(int receiveFd, int events, void* data) { if (events & (ALOOPER_EVENT_ERROR | ALOOPER_EVENT_HANGUP)) { ALOGE("Display event receiver pipe was closed or an error occurred. " "events=0x%x", events); @@ -135,23 +136,23 @@ int NativeDisplayEventReceiver::handleReceiveCallback(int receiveFd, int events, // Drain all pending events, keep the last vsync. nsecs_t vsyncTimestamp; uint32_t vsyncCount; - if (!r->readLastVsyncMessage(&vsyncTimestamp, &vsyncCount)) { - ALOGV("receiver %p ~ Woke up but there was no vsync pulse!", data); + if (!readLastVsyncMessage(&vsyncTimestamp, &vsyncCount)) { + ALOGV("receiver %p ~ Woke up but there was no vsync pulse!", this); return 1; // keep the callback, did not obtain a vsync pulse } ALOGV("receiver %p ~ Vsync pulse: timestamp=%lld, count=%d", - data, vsyncTimestamp, vsyncCount); - r->mWaitingForVsync = false; + this, vsyncTimestamp, vsyncCount); + mWaitingForVsync = false; JNIEnv* env = AndroidRuntime::getJNIEnv(); - ALOGV("receiver %p ~ Invoking vsync handler.", data); - env->CallVoidMethod(r->mReceiverObjGlobal, + ALOGV("receiver %p ~ Invoking vsync handler.", this); + env->CallVoidMethod(mReceiverObjGlobal, gDisplayEventReceiverClassInfo.dispatchVsync, vsyncTimestamp, vsyncCount); - ALOGV("receiver %p ~ Returned from vsync handler.", data); + ALOGV("receiver %p ~ Returned from vsync handler.", this); - r->mMessageQueue->raiseAndClearException(env, "dispatchVsync"); + mMessageQueue->raiseAndClearException(env, "dispatchVsync"); return 1; // keep the callback } @@ -201,6 +202,7 @@ static jint nativeInit(JNIEnv* env, jclass clazz, jobject receiverObj, static void nativeDispose(JNIEnv* env, jclass clazz, jint receiverPtr) { sp<NativeDisplayEventReceiver> receiver = reinterpret_cast<NativeDisplayEventReceiver*>(receiverPtr); + receiver->dispose(); receiver->decStrong(gDisplayEventReceiverClassInfo.clazz); // drop reference held by the object } diff --git a/core/jni/android_view_InputEventReceiver.cpp b/core/jni/android_view_InputEventReceiver.cpp index 08e08b9..9501cf2 100644 --- a/core/jni/android_view_InputEventReceiver.cpp +++ b/core/jni/android_view_InputEventReceiver.cpp @@ -44,13 +44,14 @@ static struct { } gInputEventReceiverClassInfo; -class NativeInputEventReceiver : public RefBase { +class NativeInputEventReceiver : public LooperCallback { public: NativeInputEventReceiver(JNIEnv* env, jobject receiverObj, const sp<InputChannel>& inputChannel, const sp<MessageQueue>& messageQueue); status_t initialize(); + void dispose(); status_t finishInputEvent(uint32_t seq, bool handled); status_t consumeEvents(JNIEnv* env, bool consumeBatches, nsecs_t frameTime); @@ -68,7 +69,7 @@ private: return mInputConsumer.getChannel()->getName().string(); } - static int handleReceiveCallback(int receiveFd, int events, void* data); + virtual int handleEvent(int receiveFd, int events, void* data); }; @@ -84,23 +85,24 @@ NativeInputEventReceiver::NativeInputEventReceiver(JNIEnv* env, } NativeInputEventReceiver::~NativeInputEventReceiver() { -#if DEBUG_DISPATCH_CYCLE - ALOGD("channel '%s' ~ Disposing input event receiver.", getInputChannelName()); -#endif - - mMessageQueue->getLooper()->removeFd(mInputConsumer.getChannel()->getFd()); - JNIEnv* env = AndroidRuntime::getJNIEnv(); env->DeleteGlobalRef(mReceiverObjGlobal); } status_t NativeInputEventReceiver::initialize() { int receiveFd = mInputConsumer.getChannel()->getFd(); - mMessageQueue->getLooper()->addFd( - receiveFd, 0, ALOOPER_EVENT_INPUT, handleReceiveCallback, this); + mMessageQueue->getLooper()->addFd(receiveFd, 0, ALOOPER_EVENT_INPUT, this, NULL); return OK; } +void NativeInputEventReceiver::dispose() { +#if DEBUG_DISPATCH_CYCLE + ALOGD("channel '%s' ~ Disposing input event receiver.", getInputChannelName()); +#endif + + mMessageQueue->getLooper()->removeFd(mInputConsumer.getChannel()->getFd()); +} + status_t NativeInputEventReceiver::finishInputEvent(uint32_t seq, bool handled) { #if DEBUG_DISPATCH_CYCLE ALOGD("channel '%s' ~ Finished input event.", getInputChannelName()); @@ -114,24 +116,22 @@ status_t NativeInputEventReceiver::finishInputEvent(uint32_t seq, bool handled) return status; } -int NativeInputEventReceiver::handleReceiveCallback(int receiveFd, int events, void* data) { - sp<NativeInputEventReceiver> r = static_cast<NativeInputEventReceiver*>(data); - +int NativeInputEventReceiver::handleEvent(int receiveFd, int events, void* data) { if (events & (ALOOPER_EVENT_ERROR | ALOOPER_EVENT_HANGUP)) { ALOGE("channel '%s' ~ Publisher closed input channel or an error occurred. " - "events=0x%x", r->getInputChannelName(), events); + "events=0x%x", getInputChannelName(), events); return 0; // remove the callback } if (!(events & ALOOPER_EVENT_INPUT)) { ALOGW("channel '%s' ~ Received spurious callback for unhandled poll event. " - "events=0x%x", r->getInputChannelName(), events); + "events=0x%x", getInputChannelName(), events); return 1; } JNIEnv* env = AndroidRuntime::getJNIEnv(); - status_t status = r->consumeEvents(env, false /*consumeBatches*/, -1); - r->mMessageQueue->raiseAndClearException(env, "handleReceiveCallback"); + status_t status = consumeEvents(env, false /*consumeBatches*/, -1); + mMessageQueue->raiseAndClearException(env, "handleReceiveCallback"); return status == OK || status == NO_MEMORY ? 1 : 0; } @@ -256,6 +256,7 @@ static jint nativeInit(JNIEnv* env, jclass clazz, jobject receiverObj, static void nativeDispose(JNIEnv* env, jclass clazz, jint receiverPtr) { sp<NativeInputEventReceiver> receiver = reinterpret_cast<NativeInputEventReceiver*>(receiverPtr); + receiver->dispose(); receiver->decStrong(gInputEventReceiverClassInfo.clazz); // drop reference held by the object } diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml index e3082ea..155e59c 100644 --- a/core/res/AndroidManifest.xml +++ b/core/res/AndroidManifest.xml @@ -1983,7 +1983,7 @@ <activity android:name="android.accounts.ChooseTypeAndAccountActivity" android:excludeFromRecents="true" android:exported="true" - android:theme="@android:style/Theme.Holo.DialogWhenLarge.NoActionBar" + android:theme="@android:style/Theme.Holo.Dialog" android:label="@string/choose_account_label" android:process=":ui"> </activity> diff --git a/core/res/res/anim/dock_bottom_enter.xml b/core/res/res/anim/dock_bottom_enter.xml index 74a021b..4f2f753 100644 --- a/core/res/res/anim/dock_bottom_enter.xml +++ b/core/res/res/anim/dock_bottom_enter.xml @@ -18,7 +18,7 @@ <!-- Animation for when a dock window at the bottom of the screen is entering. --> <set xmlns:android="http://schemas.android.com/apk/res/android" - android:interpolator="@android:interpolator/decelerate_quad"> + android:interpolator="@android:interpolator/decelerate_cubic"> <translate android:fromYDelta="100%" android:toYDelta="0" - android:duration="@android:integer/config_mediumAnimTime"/> + android:duration="250"/> </set> diff --git a/core/res/res/anim/dock_bottom_exit.xml b/core/res/res/anim/dock_bottom_exit.xml index 213b3d9..afbe24b 100644 --- a/core/res/res/anim/dock_bottom_exit.xml +++ b/core/res/res/anim/dock_bottom_exit.xml @@ -18,7 +18,7 @@ <!-- Animation for when a dock window at the bottom of the screen is exiting. --> <set xmlns:android="http://schemas.android.com/apk/res/android" - android:interpolator="@android:interpolator/accelerate_quad"> + android:interpolator="@android:interpolator/accelerate_cubic"> <translate android:fromYDelta="0" android:toYDelta="100%" - android:startOffset="100" android:duration="@android:integer/config_mediumAnimTime"/> + android:startOffset="100" android:duration="250"/> </set> diff --git a/core/res/res/anim/dock_left_enter.xml b/core/res/res/anim/dock_left_enter.xml index 4fce35a..7f5dfd5 100644 --- a/core/res/res/anim/dock_left_enter.xml +++ b/core/res/res/anim/dock_left_enter.xml @@ -18,7 +18,7 @@ <!-- Animation for when a dock window at the left of the screen is entering. --> <set xmlns:android="http://schemas.android.com/apk/res/android" - android:interpolator="@android:interpolator/decelerate_quad"> + android:interpolator="@android:interpolator/decelerate_cubic"> <translate android:fromXDelta="-100%" android:toXDelta="0" - android:duration="@android:integer/config_mediumAnimTime"/> + android:duration="250"/> </set> diff --git a/core/res/res/anim/dock_left_exit.xml b/core/res/res/anim/dock_left_exit.xml index bce203d..11cbc0b 100644 --- a/core/res/res/anim/dock_left_exit.xml +++ b/core/res/res/anim/dock_left_exit.xml @@ -18,7 +18,7 @@ <!-- Animation for when a dock window at the right of the screen is exiting. --> <set xmlns:android="http://schemas.android.com/apk/res/android" - android:interpolator="@android:interpolator/accelerate_quad"> + android:interpolator="@android:interpolator/accelerate_cubic"> <translate android:fromXDelta="0" android:toXDelta="-100%" - android:startOffset="100" android:duration="@android:integer/config_mediumAnimTime"/> + android:startOffset="100" android:duration="250"/> </set> diff --git a/core/res/res/anim/dock_right_enter.xml b/core/res/res/anim/dock_right_enter.xml index 26b8ad6..a92c7d2 100644 --- a/core/res/res/anim/dock_right_enter.xml +++ b/core/res/res/anim/dock_right_enter.xml @@ -18,7 +18,7 @@ <!-- Animation for when a dock window at the right of the screen is entering. --> <set xmlns:android="http://schemas.android.com/apk/res/android" - android:interpolator="@android:interpolator/decelerate_quad"> + android:interpolator="@android:interpolator/decelerate_cubic"> <translate android:fromXDelta="100%" android:toXDelta="0" - android:duration="@android:integer/config_mediumAnimTime"/> + android:duration="250"/> </set> diff --git a/core/res/res/anim/dock_right_exit.xml b/core/res/res/anim/dock_right_exit.xml index 6beda59..80e4dc3 100644 --- a/core/res/res/anim/dock_right_exit.xml +++ b/core/res/res/anim/dock_right_exit.xml @@ -18,7 +18,7 @@ <!-- Animation for when a dock window at the right of the screen is exiting. --> <set xmlns:android="http://schemas.android.com/apk/res/android" - android:interpolator="@android:interpolator/accelerate_quad"> + android:interpolator="@android:interpolator/accelerate_cubic"> <translate android:fromXDelta="0" android:toXDelta="100%" - android:startOffset="100" android:duration="@android:integer/config_mediumAnimTime"/> + android:startOffset="100" android:duration="250"/> </set> diff --git a/core/res/res/anim/dock_top_enter.xml b/core/res/res/anim/dock_top_enter.xml index 594b479..1f74e48 100644 --- a/core/res/res/anim/dock_top_enter.xml +++ b/core/res/res/anim/dock_top_enter.xml @@ -18,7 +18,7 @@ <!-- Animation for when a dock window at the top of the screen is entering. --> <set xmlns:android="http://schemas.android.com/apk/res/android" - android:interpolator="@android:interpolator/decelerate_quad"> + android:interpolator="@android:interpolator/decelerate_cubic"> <translate android:fromYDelta="-100%" android:toYDelta="0" - android:duration="@android:integer/config_mediumAnimTime"/> + android:duration="250"/> </set> diff --git a/core/res/res/anim/dock_top_exit.xml b/core/res/res/anim/dock_top_exit.xml index b9691f6..4d2fea9 100644 --- a/core/res/res/anim/dock_top_exit.xml +++ b/core/res/res/anim/dock_top_exit.xml @@ -18,7 +18,7 @@ <!-- Animation for when a dock window at the top of the screen is exiting. --> <set xmlns:android="http://schemas.android.com/apk/res/android" - android:interpolator="@android:interpolator/accelerate_quad"> + android:interpolator="@android:interpolator/accelerate_cubic"> <translate android:fromYDelta="0" android:toYDelta="-100%" - android:startOffset="100" android:duration="@android:integer/config_mediumAnimTime"/> + android:startOffset="100" android:duration="250"/> </set> diff --git a/core/res/res/layout/choose_selected_account_row.xml b/core/res/res/layout/choose_selected_account_row.xml deleted file mode 100644 index d88750d..0000000 --- a/core/res/res/layout/choose_selected_account_row.xml +++ /dev/null @@ -1,46 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* - * 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. - */ ---> - -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - android:paddingLeft="0dip" - android:paddingRight="0dip" - android:orientation="horizontal" > - - <ImageView android:id="@+id/account_row_icon" - android:layout_width="wrap_content" - android:layout_height="fill_parent" - android:paddingRight="8dip" /> - - <TextView xmlns:android="http://schemas.android.com/apk/res/android" - android:id="@+id/account_row_text" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:textAppearance="?android:attr/textAppearanceMedium" - android:gravity="center_vertical" - android:minHeight="?android:attr/listPreferredItemHeight" /> - - <ImageView android:id="@+id/account_row_checkmark" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:gravity="right" - android:layout_weight="2" - android:paddingRight="8dip" - android:src="@drawable/ic_checkmark_holo_light" /> - -</LinearLayout>
\ No newline at end of file diff --git a/core/res/res/layout/choose_type_and_account.xml b/core/res/res/layout/choose_type_and_account.xml index d7068b7..9d1d284 100644 --- a/core/res/res/layout/choose_type_and_account.xml +++ b/core/res/res/layout/choose_type_and_account.xml @@ -20,53 +20,52 @@ <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"> - - <TextView android:id="@+id/title" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:textAppearance="?android:attr/textAppearanceMedium" - android:layout_gravity="left" - android:text="@string/choose_account_label" - android:paddingTop="16dip" - android:paddingBottom="16dip" - android:textColor="@android:color/holo_blue_light" - /> - - <View android:layout_height="3dip" - android:layout_width="match_parent" - android:background="#323232"/> + android:orientation="vertical"> + <!-- Customizable description text --> <TextView android:id="@+id/description" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" android:layout_gravity="left|center_vertical" - android:text="@string/choose_account_text" android:paddingTop="16dip" android:paddingBottom="16dip" + android:paddingLeft="16dip" + android:paddingRight="16dip" /> + <!-- List of accounts, with "Add new account" as the last item --> <ListView android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="wrap_content" android:drawSelectorOnTop="false" android:layout_weight="1" - android:scrollbarAlwaysDrawVerticalTrack="true" /> + android:scrollbarAlwaysDrawVerticalTrack="true" + android:choiceMode="singleChoice" /> + <!-- Horizontal divider line --> <View android:layout_height="1dip" android:layout_width="match_parent" android:background="?android:attr/dividerHorizontal" /> - <Button android:id="@+id/addAccount" - style="?android:attr/buttonBarButtonStyle" + <!-- Alert dialog style buttons along the bottom. --> + <LinearLayout android:id="@+id/button_bar" + style="?android:attr/buttonBarStyle" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginLeft="2dip" - android:layout_marginRight="2dip" - android:textAppearance="?android:attr/textAppearanceMedium" - android:text="@string/add_account_button_label" - /> + android:measureWithLargestChild="true"> + <Button android:id="@android:id/button1" + style="?android:attr/buttonBarButtonStyle" + android:layout_width="wrap_content" android:layout_height="wrap_content" + android:layout_weight="1" + android:text="@android:string/no" + android:onClick="onCancelButtonClicked" /> + <Button android:id="@android:id/button2" + style="?android:attr/buttonBarButtonStyle" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_weight="1" + android:text="@android:string/yes" + android:onClick="onOkButtonClicked" /> + </LinearLayout> </LinearLayout> diff --git a/core/res/res/layout/notification_action_list.xml b/core/res/res/layout/notification_action_list.xml index fa0a8c8..591c9ea 100644 --- a/core/res/res/layout/notification_action_list.xml +++ b/core/res/res/layout/notification_action_list.xml @@ -23,6 +23,7 @@ android:visibility="gone" android:showDividers="middle" android:divider="?android:attr/listDivider" + android:dividerPadding="12dp" > <!-- actions will be added here --> </LinearLayout> diff --git a/core/res/res/layout/notification_template_base.xml b/core/res/res/layout/notification_template_base.xml index ed680a9..47bbbde 100644 --- a/core/res/res/layout/notification_template_base.xml +++ b/core/res/res/layout/notification_template_base.xml @@ -36,8 +36,7 @@ android:layout_marginLeft="@dimen/notification_large_icon_width" android:minHeight="@dimen/notification_large_icon_height" android:orientation="vertical" - android:paddingLeft="12dp" - android:paddingRight="12dp" + android:paddingRight="8dp" android:paddingTop="2dp" android:paddingBottom="2dp" android:gravity="top" @@ -47,6 +46,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingTop="6dp" + android:layout_marginLeft="8dp" android:orientation="horizontal" > <TextView android:id="@+id/title" @@ -81,6 +81,7 @@ android:layout_height="wrap_content" android:layout_marginTop="-2dp" android:layout_marginBottom="-2dp" + android:layout_marginLeft="8dp" android:singleLine="true" android:fadingEdge="horizontal" android:ellipsize="marquee" @@ -90,24 +91,17 @@ android:id="@android:id/progress" android:layout_width="match_parent" android:layout_height="12dp" + android:layout_marginLeft="8dp" android:visibility="gone" style="?android:attr/progressBarStyleHorizontal" /> - <TextView android:id="@+id/overflow_title" - android:textAppearance="@style/TextAppearance.StatusBar.EventContent" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:singleLine="true" - android:ellipsize="marquee" - android:fadingEdge="horizontal" - android:visibility="gone" - android:layout_weight="1" - /> <LinearLayout android:id="@+id/line3" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" + android:gravity="center_vertical" + android:layout_marginLeft="8dp" > <TextView android:id="@+id/text" android:textAppearance="@style/TextAppearance.StatusBar.EventContent" @@ -130,14 +124,14 @@ android:paddingLeft="8dp" /> <ImageView android:id="@+id/right_icon" - android:layout_width="wrap_content" - android:layout_height="match_parent" + android:layout_width="16dp" + android:layout_height="16dp" android:layout_gravity="center" android:layout_weight="0" + android:layout_marginLeft="8dp" android:scaleType="centerInside" - android:paddingLeft="8dp" android:visibility="gone" - android:drawableAlpha="180" + android:drawableAlpha="153" /> </LinearLayout> </LinearLayout> diff --git a/core/res/res/layout/notification_template_big_base.xml b/core/res/res/layout/notification_template_big_base.xml index f2c204f..69f0a24 100644 --- a/core/res/res/layout/notification_template_big_base.xml +++ b/core/res/res/layout/notification_template_big_base.xml @@ -33,19 +33,16 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="fill_vertical" - android:layout_marginLeft="@dimen/notification_large_icon_width" android:minHeight="@dimen/notification_large_icon_height" android:orientation="vertical" - android:paddingLeft="12dp" - android:paddingRight="12dp" - android:paddingTop="2dp" - android:paddingBottom="2dp" android:gravity="top" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_marginLeft="@dimen/notification_large_icon_width" android:minHeight="@dimen/notification_large_icon_height" + android:paddingTop="2dp" android:orientation="vertical" > <LinearLayout @@ -53,6 +50,8 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingTop="6dp" + android:layout_marginRight="8dp" + android:layout_marginLeft="8dp" android:orientation="horizontal" > <TextView android:id="@+id/title" @@ -87,6 +86,8 @@ android:layout_height="wrap_content" android:layout_marginTop="-2dp" android:layout_marginBottom="-2dp" + android:layout_marginLeft="8dp" + android:layout_marginRight="8dp" android:singleLine="true" android:fadingEdge="horizontal" android:ellipsize="marquee" @@ -96,6 +97,8 @@ android:textAppearance="@style/TextAppearance.StatusBar.EventContent" android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_marginLeft="8dp" + android:layout_marginRight="8dp" android:singleLine="false" android:visibility="gone" /> @@ -103,7 +106,10 @@ android:id="@+id/line3" android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_marginLeft="8dp" + android:layout_marginRight="8dp" android:orientation="horizontal" + android:gravity="center_vertical" > <TextView android:id="@+id/text" android:textAppearance="@style/TextAppearance.StatusBar.EventContent" @@ -126,29 +132,38 @@ android:paddingLeft="8dp" /> <ImageView android:id="@+id/right_icon" - android:layout_width="wrap_content" - android:layout_height="match_parent" + android:layout_width="16dp" + android:layout_height="16dp" android:layout_gravity="center" android:layout_weight="0" + android:layout_marginLeft="8dp" android:scaleType="centerInside" - android:paddingLeft="8dp" android:visibility="gone" - android:drawableAlpha="180" + android:drawableAlpha="153" /> </LinearLayout> <ProgressBar android:id="@android:id/progress" android:layout_width="match_parent" android:layout_height="12dp" + android:layout_marginBottom="8dp" + android:layout_marginLeft="8dp" + android:layout_marginRight="8dp" android:visibility="gone" style="?android:attr/progressBarStyleHorizontal" /> </LinearLayout> + <ImageView + android:layout_width="match_parent" + android:layout_height="1px" + android:id="@+id/action_divider" + android:visibility="gone" + android:background="?android:attr/dividerHorizontal" /> <include layout="@layout/notification_action_list" - android:id="@+id/actions" android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_marginLeft="@dimen/notification_large_icon_width" /> </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 077616e..ecb3616 100644 --- a/core/res/res/layout/notification_template_big_picture.xml +++ b/core/res/res/layout/notification_template_big_picture.xml @@ -53,7 +53,6 @@ <include layout="@layout/notification_action_list" android:id="@+id/actions" - android:layout_marginLeft="8dp" android:layout_gravity="bottom" android:layout_width="match_parent" android:layout_height="wrap_content" diff --git a/core/res/res/layout/notification_template_big_text.xml b/core/res/res/layout/notification_template_big_text.xml index 304f2b5..b86177e 100644 --- a/core/res/res/layout/notification_template_big_text.xml +++ b/core/res/res/layout/notification_template_big_text.xml @@ -34,8 +34,6 @@ android:layout_gravity="fill_vertical" android:layout_marginLeft="@dimen/notification_large_icon_width" android:orientation="vertical" - android:paddingLeft="12dp" - android:paddingRight="12dp" android:paddingTop="2dp" android:paddingBottom="2dp" android:gravity="top" @@ -44,6 +42,8 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" + android:layout_marginLeft="8dp" + android:layout_marginRight="8dp" android:layout_weight="1" > <LinearLayout @@ -87,6 +87,7 @@ android:layout_height="wrap_content" android:layout_marginTop="-2dp" android:layout_marginBottom="-2dp" + android:layout_marginRight="8dp" android:singleLine="true" android:fadingEdge="horizontal" android:ellipsize="marquee" @@ -97,6 +98,8 @@ android:id="@android:id/progress" android:layout_width="match_parent" android:layout_height="12dp" + android:layout_marginBottom="8dp" + android:layout_marginRight="8dp" android:visibility="gone" android:layout_weight="0" style="?android:attr/progressBarStyleHorizontal" @@ -105,7 +108,8 @@ android:textAppearance="@style/TextAppearance.StatusBar.EventContent" android:layout_width="match_parent" android:layout_height="0dp" - android:layout_marginBottom="2dp" + android:layout_marginBottom="8dp" + android:layout_marginRight="8dp" android:singleLine="false" android:visibility="gone" android:maxLines="8" @@ -113,6 +117,13 @@ android:layout_weight="1" /> </LinearLayout> + <ImageView + android:layout_width="match_parent" + android:layout_height="1dip" + android:layout_marginTop="-1px" + android:id="@+id/action_divider" + android:visibility="gone" + android:background="?android:attr/dividerHorizontal" /> <include layout="@layout/notification_action_list" android:layout_width="match_parent" @@ -120,22 +131,23 @@ android:visibility="gone" android:layout_weight="1" /> - <TextView android:id="@+id/overflow_title" - android:textAppearance="@style/TextAppearance.StatusBar.EventContent" + <ImageView android:layout_width="match_parent" - android:layout_height="wrap_content" - android:singleLine="true" - android:ellipsize="marquee" - android:fadingEdge="horizontal" - android:visibility="gone" - android:layout_weight="0" - /> + android:layout_height="1px" + android:id="@+id/overflow_divider" + android:layout_marginBottom="8dp" + android:visibility="visible" + android:background="?android:attr/dividerHorizontal" /> <LinearLayout android:id="@+id/line3" android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_marginLeft="8dp" + android:layout_marginBottom="8dp" + android:layout_marginRight="8dp" android:orientation="horizontal" android:layout_weight="0" + android:gravity="center_vertical" > <TextView android:id="@+id/text" android:textAppearance="@style/TextAppearance.StatusBar.EventContent" @@ -158,14 +170,14 @@ android:paddingLeft="8dp" /> <ImageView android:id="@+id/right_icon" - android:layout_width="wrap_content" - android:layout_height="match_parent" + android:layout_width="16dp" + android:layout_height="16dp" android:layout_gravity="center" android:layout_weight="0" + android:layout_marginLeft="8dp" android:scaleType="centerInside" - android:paddingLeft="8dp" android:visibility="gone" - android:drawableAlpha="180" + android:drawableAlpha="153" /> </LinearLayout> </LinearLayout> diff --git a/core/res/res/layout/notification_template_inbox.xml b/core/res/res/layout/notification_template_inbox.xml index 121a81c..e9a3686 100644 --- a/core/res/res/layout/notification_template_inbox.xml +++ b/core/res/res/layout/notification_template_inbox.xml @@ -36,8 +36,6 @@ android:layout_marginLeft="@dimen/notification_large_icon_width" android:minHeight="@dimen/notification_large_icon_height" android:orientation="vertical" - android:paddingLeft="12dp" - android:paddingRight="12dp" android:paddingTop="2dp" android:paddingBottom="2dp" android:gravity="top" @@ -46,6 +44,8 @@ android:id="@+id/line1" android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_marginLeft="8dp" + android:layout_marginRight="8dp" android:paddingTop="6dp" android:orientation="horizontal" android:layout_weight="0" @@ -82,6 +82,8 @@ android:layout_height="wrap_content" android:layout_marginTop="-2dp" android:layout_marginBottom="-2dp" + android:layout_marginLeft="8dp" + android:layout_marginRight="8dp" android:singleLine="true" android:fadingEdge="horizontal" android:ellipsize="marquee" @@ -92,6 +94,8 @@ android:id="@android:id/progress" android:layout_width="match_parent" android:layout_height="12dp" + android:layout_marginLeft="8dp" + android:layout_marginRight="8dp" android:visibility="gone" android:layout_weight="0" style="?android:attr/progressBarStyleHorizontal" @@ -100,6 +104,8 @@ android:textAppearance="@style/TextAppearance.StatusBar.EventContent" android:layout_width="match_parent" android:layout_height="0dp" + android:layout_marginLeft="8dp" + android:layout_marginRight="8dp" android:singleLine="true" android:ellipsize="end" android:visibility="gone" @@ -109,6 +115,8 @@ android:textAppearance="@style/TextAppearance.StatusBar.EventContent" android:layout_width="match_parent" android:layout_height="0dp" + android:layout_marginLeft="8dp" + android:layout_marginRight="8dp" android:singleLine="true" android:ellipsize="end" android:visibility="gone" @@ -118,6 +126,8 @@ android:textAppearance="@style/TextAppearance.StatusBar.EventContent" android:layout_width="match_parent" android:layout_height="0dp" + android:layout_marginLeft="8dp" + android:layout_marginRight="8dp" android:singleLine="true" android:ellipsize="end" android:visibility="gone" @@ -127,6 +137,8 @@ android:textAppearance="@style/TextAppearance.StatusBar.EventContent" android:layout_width="match_parent" android:layout_height="0dp" + android:layout_marginLeft="8dp" + android:layout_marginRight="8dp" android:singleLine="true" android:ellipsize="end" android:visibility="gone" @@ -136,6 +148,7 @@ android:textAppearance="@style/TextAppearance.StatusBar.EventContent" android:layout_width="match_parent" android:layout_height="0dp" + android:layout_marginLeft="8dp" android:singleLine="true" android:ellipsize="end" android:visibility="gone" @@ -145,6 +158,8 @@ android:textAppearance="@style/TextAppearance.StatusBar.EventContent" android:layout_width="match_parent" android:layout_height="0dp" + android:layout_marginLeft="8dp" + android:layout_marginRight="8dp" android:singleLine="true" android:ellipsize="end" android:visibility="gone" @@ -154,6 +169,8 @@ android:textAppearance="@style/TextAppearance.StatusBar.EventContent" android:layout_width="match_parent" android:layout_height="0dp" + android:layout_marginLeft="8dp" + android:layout_marginRight="8dp" android:singleLine="true" android:ellipsize="end" android:visibility="gone" @@ -163,35 +180,44 @@ android:textAppearance="@style/TextAppearance.StatusBar.EventContent" android:layout_width="match_parent" android:layout_height="0dp" + android:layout_marginLeft="8dp" + android:layout_marginRight="8dp" android:singleLine="true" android:ellipsize="end" android:visibility="gone" android:layout_weight="1" android:text="@android:string/ellipsis" /> + <ImageView + android:layout_width="match_parent" + android:layout_height="1px" + android:id="@+id/overflow_divider" + android:layout_marginTop="8dp" + android:visibility="visible" + android:background="?android:attr/dividerHorizontal" /> <include layout="@layout/notification_action_list" - android:id="@+id/actions" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="0" /> - <TextView android:id="@+id/overflow_title" - android:textAppearance="@style/TextAppearance.StatusBar.EventContent" + <ImageView android:layout_width="match_parent" - android:layout_height="wrap_content" - android:singleLine="true" - android:ellipsize="marquee" - android:fadingEdge="horizontal" + android:layout_height="1px" + android:id="@+id/action_divider" android:visibility="gone" - android:layout_weight="0" - /> + android:background="?android:attr/dividerHorizontal" /><!-- note: divider below actions --> <LinearLayout android:id="@+id/line3" android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_marginTop="8dp" + android:layout_marginLeft="8dp" + android:layout_marginBottom="8dp" + android:layout_marginRight="8dp" android:orientation="horizontal" android:layout_weight="0" + android:gravity="center_vertical" > <TextView android:id="@+id/text" android:textAppearance="@style/TextAppearance.StatusBar.EventContent" @@ -214,14 +240,14 @@ android:paddingLeft="8dp" /> <ImageView android:id="@+id/right_icon" - android:layout_width="wrap_content" - android:layout_height="match_parent" + android:layout_width="16dp" + android:layout_height="16dp" android:layout_gravity="center" android:layout_weight="0" + android:layout_marginLeft="8dp" android:scaleType="centerInside" - android:paddingLeft="8dp" android:visibility="gone" - android:drawableAlpha="180" + android:drawableAlpha="153" /> </LinearLayout> </LinearLayout> diff --git a/core/res/res/values-af/strings.xml b/core/res/res/values-af/strings.xml index fd32685..7c9351c 100644 --- a/core/res/res/values-af/strings.xml +++ b/core/res/res/values-af/strings.xml @@ -855,12 +855,9 @@ <string name="searchview_description_clear" msgid="1330281990951833033">"Maak navraag skoon"</string> <string name="searchview_description_submit" msgid="2688450133297983542">"Dien navraag in"</string> <string name="searchview_description_voice" msgid="2453203695674994440">"Stemsoektog"</string> - <!-- no translation found for enable_explore_by_touch_warning_title (7460694070309730149) --> - <skip /> - <!-- no translation found for enable_explore_by_touch_warning_message (8655887539089910577) --> - <skip /> - <!-- no translation found for enable_explore_by_touch_warning_message (2708199672852373195) --> - <skip /> + <string name="enable_explore_by_touch_warning_title" msgid="7460694070309730149">"Wil jy Ontek-met-raak aktiveer?"</string> + <string name="enable_explore_by_touch_warning_message" product="tablet" msgid="8655887539089910577">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> wil Ontdek-met-raak aktiveer. Wanneer Ontek-met-raak aangeskakel is, kan jy beskrywings van wat onder jou vinger is hoor of sien, of jy kan gebare uitvoer om interaksie met die tablet te hê."</string> + <string name="enable_explore_by_touch_warning_message" product="default" msgid="2708199672852373195">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> wil Ontdek-met-raak aktiveer. Wanneer Ontek-met-raak aangeskakel is, kan jy beskrywings van wat onder jou vinger is hoor of sien, of jy kan gebare uitvoer om interaksie met die foon te hê ."</string> <string name="oneMonthDurationPast" msgid="7396384508953779925">"1 maand gelede"</string> <string name="beforeOneMonthDurationPast" msgid="909134546836499826">"Voor 1 maand gelede"</string> <plurals name="num_seconds_ago"> @@ -1127,10 +1124,8 @@ <string name="configure_input_methods" msgid="9091652157722495116">"Stel invoermetodes op"</string> <string name="use_physical_keyboard" msgid="6203112478095117625">"Fisiese sleutelbord"</string> <string name="hardware" msgid="7517821086888990278">"Hardeware"</string> - <!-- no translation found for select_keyboard_layout_notification_title (1407367017263030773) --> - <skip /> - <!-- no translation found for select_keyboard_layout_notification_message (4465907700449257063) --> - <skip /> + <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Kies sleutelborduitleg"</string> + <string name="select_keyboard_layout_notification_message" msgid="4465907700449257063">"Raak om \'n sleutelborduitleg te kies."</string> <string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string> <string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string> <string name="candidates_style" msgid="4333913089637062257"><u>"kandidate"</u></string> @@ -1239,7 +1234,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"Doen vir eers niks nie"</string> <string name="choose_account_label" msgid="5655203089746423927">"Kies \'n rekening"</string> <string name="add_account_label" msgid="2935267344849993553">"Voeg \'n rekening by"</string> - <string name="choose_account_text" msgid="6303348737197849675">"Watter rekening wil jy gebruik?"</string> <string name="add_account_button_label" msgid="3611982894853435874">"Voeg rekening by"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"Vermeerder"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"Verminder"</string> @@ -1324,6 +1318,5 @@ <string name="launchBrowserDefault" msgid="2057951947297614725">"Begin webblaaier?"</string> <string name="SetupCallDefault" msgid="5834948469253758575">"Aanvaar oproep?"</string> <string name="activity_resolver_use_always" msgid="8017770747801494933">"Altyd"</string> - <!-- no translation found for activity_resolver_use_once (2404644797149173758) --> - <skip /> + <string name="activity_resolver_use_once" msgid="2404644797149173758">"Net een keer"</string> </resources> diff --git a/core/res/res/values-am/strings.xml b/core/res/res/values-am/strings.xml index fb11af3..18cbf43 100644 --- a/core/res/res/values-am/strings.xml +++ b/core/res/res/values-am/strings.xml @@ -1234,7 +1234,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"ለአሁን ምንም አታድርግ"</string> <string name="choose_account_label" msgid="5655203089746423927">"መለያ ምረጥ"</string> <string name="add_account_label" msgid="2935267344849993553">"መለያ አክል"</string> - <string name="choose_account_text" msgid="6303348737197849675">"የትኛውን መለያ መጠቀም ትፈልጋለህ?"</string> <string name="add_account_button_label" msgid="3611982894853435874">"መለያ አክል"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"ጨምር"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"ቀንስ"</string> diff --git a/core/res/res/values-ar/strings.xml b/core/res/res/values-ar/strings.xml index 7798b0a..171b5d9 100644 --- a/core/res/res/values-ar/strings.xml +++ b/core/res/res/values-ar/strings.xml @@ -855,12 +855,9 @@ <string name="searchview_description_clear" msgid="1330281990951833033">"محو طلب البحث"</string> <string name="searchview_description_submit" msgid="2688450133297983542">"إرسال طلب البحث"</string> <string name="searchview_description_voice" msgid="2453203695674994440">"البحث الصوتي"</string> - <!-- no translation found for enable_explore_by_touch_warning_title (7460694070309730149) --> - <skip /> - <!-- no translation found for enable_explore_by_touch_warning_message (8655887539089910577) --> - <skip /> - <!-- no translation found for enable_explore_by_touch_warning_message (2708199672852373195) --> - <skip /> + <string name="enable_explore_by_touch_warning_title" msgid="7460694070309730149">"هل تريد تمكين ميزة Explore by Touch؟"</string> + <string name="enable_explore_by_touch_warning_message" product="tablet" msgid="8655887539089910577">"يريد <xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> تمكين ميزة Explore by Touch. عند تشغيل ميزة Explore by Touch، سيكون بإمكانك سماع أو مشاهدة أوصاف لما تحت إصبعك أو إجراء إيماءات للتفاعل مع الجهاز اللوحي."</string> + <string name="enable_explore_by_touch_warning_message" product="default" msgid="2708199672852373195">"يريد <xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> تمكين ميزة Explore by Touch. عند تشغيل ميزة Explore by Touch، سيكون بإمكانك سماع أو مشاهدة أوصاف لما تحت إصبعك أو إجراء إيماءات للتفاعل مع الهاتف."</string> <string name="oneMonthDurationPast" msgid="7396384508953779925">"قبل شهر واحد"</string> <string name="beforeOneMonthDurationPast" msgid="909134546836499826">"قبل شهر واحد"</string> <plurals name="num_seconds_ago"> @@ -1127,10 +1124,8 @@ <string name="configure_input_methods" msgid="9091652157722495116">"إعداد أسلوب الإدخال"</string> <string name="use_physical_keyboard" msgid="6203112478095117625">"لوحة مفاتيح فعلية"</string> <string name="hardware" msgid="7517821086888990278">"أجهزة"</string> - <!-- no translation found for select_keyboard_layout_notification_title (1407367017263030773) --> - <skip /> - <!-- no translation found for select_keyboard_layout_notification_message (4465907700449257063) --> - <skip /> + <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"تحديد تخطيط لوحة مفاتيح"</string> + <string name="select_keyboard_layout_notification_message" msgid="4465907700449257063">"المس لتحديد تخطيط لوحة مفاتيح."</string> <string name="fast_scroll_alphabet" msgid="5433275485499039199">" أ ب ت ث ج ح خ د ذ ر ز س ش ص ض ط ظ ع غ ف ق ك ل م ن ه و ي"</string> <string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789 أ ب ت ث ج ح خ د ذ ر ز س ش ص ض ط ظ ع غ ف ق ك ل م ن ه و ي"</string> <string name="candidates_style" msgid="4333913089637062257"><u>"العناصر المرشحة"</u></string> @@ -1239,7 +1234,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"عدم تنفيذ أي شيء الآن"</string> <string name="choose_account_label" msgid="5655203089746423927">"اختيار حساب"</string> <string name="add_account_label" msgid="2935267344849993553">"إضافة حساب"</string> - <string name="choose_account_text" msgid="6303348737197849675">"ما الحساب الذي تريد استخدامه؟"</string> <string name="add_account_button_label" msgid="3611982894853435874">"إضافة حساب"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"زيادة"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"تقليل"</string> @@ -1324,6 +1318,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 (2404644797149173758) --> - <skip /> + <string name="activity_resolver_use_once" msgid="2404644797149173758">"مرة واحدة فقط"</string> </resources> diff --git a/core/res/res/values-be/strings.xml b/core/res/res/values-be/strings.xml index 4068610..ca5d5f6 100644 --- a/core/res/res/values-be/strings.xml +++ b/core/res/res/values-be/strings.xml @@ -1239,7 +1239,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"Нічога зараз не рабіць"</string> <string name="choose_account_label" msgid="5655203089746423927">"Выберыце ўліковы запіс"</string> <string name="add_account_label" msgid="2935267344849993553">"Дадаць уліковы запіс"</string> - <string name="choose_account_text" msgid="6303348737197849675">"Які ўліковы запіс вы жадаеце выкарыстоўваць?"</string> <string name="add_account_button_label" msgid="3611982894853435874">"Дадаць уліковы запіс"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"Павялічыць"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"Паменшыць"</string> diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml index 086d33a..709cc1b 100644 --- a/core/res/res/values-bg/strings.xml +++ b/core/res/res/values-bg/strings.xml @@ -1239,7 +1239,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"Да не се прави нищо засега"</string> <string name="choose_account_label" msgid="5655203089746423927">"Избор на профил"</string> <string name="add_account_label" msgid="2935267344849993553">"Добавяне на профил"</string> - <string name="choose_account_text" msgid="6303348737197849675">"Кой профил искате да използвате?"</string> <string name="add_account_button_label" msgid="3611982894853435874">"Добавяне на профил"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"Увеличаване"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"Намаляване"</string> diff --git a/core/res/res/values-ca/strings.xml b/core/res/res/values-ca/strings.xml index 4190bdb..d02008b 100644 --- a/core/res/res/values-ca/strings.xml +++ b/core/res/res/values-ca/strings.xml @@ -1234,7 +1234,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"No facis res per ara"</string> <string name="choose_account_label" msgid="5655203089746423927">"Tria un compte"</string> <string name="add_account_label" msgid="2935267344849993553">"Addició d\'un compte"</string> - <string name="choose_account_text" msgid="6303348737197849675">"Quin compte vols utilitzar?"</string> <string name="add_account_button_label" msgid="3611982894853435874">"Afegeix un compte"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"Incrementa"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"Redueix"</string> diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml index ad25a3e..98c7ac5 100644 --- a/core/res/res/values-cs/strings.xml +++ b/core/res/res/values-cs/strings.xml @@ -1239,7 +1239,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"Zatím nic neprovádět."</string> <string name="choose_account_label" msgid="5655203089746423927">"Vybrat účet"</string> <string name="add_account_label" msgid="2935267344849993553">"Přidat účet"</string> - <string name="choose_account_text" msgid="6303348737197849675">"Který účet chcete použít?"</string> <string name="add_account_button_label" msgid="3611982894853435874">"Přidat účet"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"Zvýšit"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"Snížit"</string> @@ -1324,6 +1323,5 @@ <string name="launchBrowserDefault" msgid="2057951947297614725">"Spustit prohlížeč?"</string> <string name="SetupCallDefault" msgid="5834948469253758575">"Přijmout hovor?"</string> <string name="activity_resolver_use_always" msgid="8017770747801494933">"Vždy"</string> - <!-- no translation found for activity_resolver_use_once (2404644797149173758) --> - <skip /> + <string name="activity_resolver_use_once" msgid="2404644797149173758">"Jen jednou"</string> </resources> diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml index 9dc89a0..1704fe1 100644 --- a/core/res/res/values-da/strings.xml +++ b/core/res/res/values-da/strings.xml @@ -855,12 +855,9 @@ <string name="searchview_description_clear" msgid="1330281990951833033">"Ryd forespørgslen"</string> <string name="searchview_description_submit" msgid="2688450133297983542">"Indsend forespørgslen"</string> <string name="searchview_description_voice" msgid="2453203695674994440">"Stemmesøgning"</string> - <!-- no translation found for enable_explore_by_touch_warning_title (7460694070309730149) --> - <skip /> - <!-- no translation found for enable_explore_by_touch_warning_message (8655887539089910577) --> - <skip /> - <!-- no translation found for enable_explore_by_touch_warning_message (2708199672852373195) --> - <skip /> + <string name="enable_explore_by_touch_warning_title" msgid="7460694070309730149">"Vil du aktivere Udforsk ved berøring?"</string> + <string name="enable_explore_by_touch_warning_message" product="tablet" msgid="8655887539089910577">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> ønsker at aktivere Udforsk ved berøring. Når Udforsk ved berøring er tændt, kan du høre eller se beskrivelser af, hvad der er under din finger eller udføre bevægelser for at interagere med tabletten."</string> + <string name="enable_explore_by_touch_warning_message" product="default" msgid="2708199672852373195">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> ønsker at aktivere Udforsk ved berøring. Når Udforsk ved berøring er aktiveret, kan du høre eller se beskrivelser af, hvad der er under din finger, eller udføre bevægelser for at interagere med telefonen."</string> <string name="oneMonthDurationPast" msgid="7396384508953779925">"For 1 måned siden"</string> <string name="beforeOneMonthDurationPast" msgid="909134546836499826">"Før for 1 måned siden"</string> <plurals name="num_seconds_ago"> @@ -1127,10 +1124,8 @@ <string name="configure_input_methods" msgid="9091652157722495116">"Konfigurer inputmetoder"</string> <string name="use_physical_keyboard" msgid="6203112478095117625">"Fysisk tastatur"</string> <string name="hardware" msgid="7517821086888990278">"Hardware"</string> - <!-- no translation found for select_keyboard_layout_notification_title (1407367017263030773) --> - <skip /> - <!-- no translation found for select_keyboard_layout_notification_message (4465907700449257063) --> - <skip /> + <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Vælg tastaturlayout"</string> + <string name="select_keyboard_layout_notification_message" msgid="4465907700449257063">"Tryk for at vælge et tastaturlayout."</string> <string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string> <string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string> <string name="candidates_style" msgid="4333913089637062257"><u>"kandidater"</u></string> @@ -1239,7 +1234,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"Gør ikke noget lige nu."</string> <string name="choose_account_label" msgid="5655203089746423927">"Vælg en konto"</string> <string name="add_account_label" msgid="2935267344849993553">"Tilføj en konto"</string> - <string name="choose_account_text" msgid="6303348737197849675">"Hvilken konto vil du bruge?"</string> <string name="add_account_button_label" msgid="3611982894853435874">"Tilføj konto"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"Højere"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"Lavere"</string> @@ -1324,6 +1318,5 @@ <string name="launchBrowserDefault" msgid="2057951947297614725">"Vil du starte browseren?"</string> <string name="SetupCallDefault" msgid="5834948469253758575">"Vil du besvare opkaldet?"</string> <string name="activity_resolver_use_always" msgid="8017770747801494933">"Altid"</string> - <!-- no translation found for activity_resolver_use_once (2404644797149173758) --> - <skip /> + <string name="activity_resolver_use_once" msgid="2404644797149173758">"Kun én gang"</string> </resources> diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings.xml index ec8ca3e..a326e2d 100644 --- a/core/res/res/values-de/strings.xml +++ b/core/res/res/values-de/strings.xml @@ -1239,7 +1239,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"Im Moment nichts unternehmen"</string> <string name="choose_account_label" msgid="5655203089746423927">"Konto auswählen"</string> <string name="add_account_label" msgid="2935267344849993553">"Konto hinzufügen"</string> - <string name="choose_account_text" msgid="6303348737197849675">"Welches Konto möchten Sie verwenden?"</string> <string name="add_account_button_label" msgid="3611982894853435874">"Konto hinzufügen"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"Verlängern"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"Verringern"</string> diff --git a/core/res/res/values-el/strings.xml b/core/res/res/values-el/strings.xml index 8cde21f..53a64fc 100644 --- a/core/res/res/values-el/strings.xml +++ b/core/res/res/values-el/strings.xml @@ -1234,7 +1234,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"Να μην γίνει καμία ενέργεια τώρα."</string> <string name="choose_account_label" msgid="5655203089746423927">"Επιλέξτε λογαριασμό"</string> <string name="add_account_label" msgid="2935267344849993553">"Προσθήκη λογαριασμού"</string> - <string name="choose_account_text" msgid="6303348737197849675">"Ποιον λογαριασμό θέλετε να χρησιμοποιήσετε;"</string> <string name="add_account_button_label" msgid="3611982894853435874">"Προσθήκη λογαριασμού"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"Αύξηση"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"Μείωση"</string> diff --git a/core/res/res/values-en-rGB/strings.xml b/core/res/res/values-en-rGB/strings.xml index 4ad7daf..18a6827 100644 --- a/core/res/res/values-en-rGB/strings.xml +++ b/core/res/res/values-en-rGB/strings.xml @@ -1234,7 +1234,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"Do nothing for now"</string> <string name="choose_account_label" msgid="5655203089746423927">"Choose an account"</string> <string name="add_account_label" msgid="2935267344849993553">"Add an account"</string> - <string name="choose_account_text" msgid="6303348737197849675">"Which account do you want to use?"</string> <string name="add_account_button_label" msgid="3611982894853435874">"Add account"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"Increase"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"Decrease"</string> diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml index 64429e9..1015e65 100644 --- a/core/res/res/values-es-rUS/strings.xml +++ b/core/res/res/values-es-rUS/strings.xml @@ -855,12 +855,9 @@ <string name="searchview_description_clear" msgid="1330281990951833033">"Eliminar la consulta"</string> <string name="searchview_description_submit" msgid="2688450133297983542">"Enviar consulta"</string> <string name="searchview_description_voice" msgid="2453203695674994440">"Búsqueda por voz"</string> - <!-- no translation found for enable_explore_by_touch_warning_title (7460694070309730149) --> - <skip /> - <!-- no translation found for enable_explore_by_touch_warning_message (8655887539089910577) --> - <skip /> - <!-- no translation found for enable_explore_by_touch_warning_message (2708199672852373195) --> - <skip /> + <string name="enable_explore_by_touch_warning_title" msgid="7460694070309730149">"¿Habilitar exploración táctil?"</string> + <string name="enable_explore_by_touch_warning_message" product="tablet" msgid="8655887539089910577">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> quiere habilitar la exploración táctil. Cuando esta función esté activada, podrás escuchar o ver descripciones del contenido seleccionado o usar gestos para interactuar con la tableta."</string> + <string name="enable_explore_by_touch_warning_message" product="default" msgid="2708199672852373195">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> quiere habilitar la exploración táctil. Cuando esta función esté activada, podrás escuchar o ver descripciones del contenido seleccionado o usar gestos para interactuar con el teléfono."</string> <string name="oneMonthDurationPast" msgid="7396384508953779925">"hace 1 mes"</string> <string name="beforeOneMonthDurationPast" msgid="909134546836499826">"Anterior a 1 mes atrás"</string> <plurals name="num_seconds_ago"> @@ -1127,10 +1124,8 @@ <string name="configure_input_methods" msgid="9091652157722495116">"Configurar métodos de introducción"</string> <string name="use_physical_keyboard" msgid="6203112478095117625">"Teclado físico"</string> <string name="hardware" msgid="7517821086888990278">"Hardware"</string> - <!-- no translation found for select_keyboard_layout_notification_title (1407367017263030773) --> - <skip /> - <!-- no translation found for select_keyboard_layout_notification_message (4465907700449257063) --> - <skip /> + <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Selecciona un diseño de teclado"</string> + <string name="select_keyboard_layout_notification_message" msgid="4465907700449257063">"Toca para seleccionar un diseño de teclado."</string> <string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string> <string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string> <string name="candidates_style" msgid="4333913089637062257"><u>"candidatos"</u></string> @@ -1239,7 +1234,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"No hacer nada por ahora"</string> <string name="choose_account_label" msgid="5655203089746423927">"Seleccionar una cuenta"</string> <string name="add_account_label" msgid="2935267344849993553">"Agregar una cuenta"</string> - <string name="choose_account_text" msgid="6303348737197849675">"¿Qué cuenta quieres usar?"</string> <string name="add_account_button_label" msgid="3611982894853435874">"Agregar una cuenta"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"Aumentar"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"Reducir"</string> @@ -1324,6 +1318,5 @@ <string name="launchBrowserDefault" msgid="2057951947297614725">"¿Deseas iniciar el navegador?"</string> <string name="SetupCallDefault" msgid="5834948469253758575">"¿Aceptar la llamada?"</string> <string name="activity_resolver_use_always" msgid="8017770747801494933">"Siempre"</string> - <!-- no translation found for activity_resolver_use_once (2404644797149173758) --> - <skip /> + <string name="activity_resolver_use_once" msgid="2404644797149173758">"Solo una vez"</string> </resources> diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml index f5d8795..e53e3bc 100644 --- a/core/res/res/values-es/strings.xml +++ b/core/res/res/values-es/strings.xml @@ -1234,7 +1234,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"No hacer nada por ahora"</string> <string name="choose_account_label" msgid="5655203089746423927">"Seleccionar una cuenta"</string> <string name="add_account_label" msgid="2935267344849993553">"Añadir una cuenta"</string> - <string name="choose_account_text" msgid="6303348737197849675">"¿Qué cuenta quieres usar?"</string> <string name="add_account_button_label" msgid="3611982894853435874">"Añadir cuenta"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"Aumentar"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"Reducir"</string> diff --git a/core/res/res/values-et/strings.xml b/core/res/res/values-et/strings.xml index eaa7c94..89fc8f4 100644 --- a/core/res/res/values-et/strings.xml +++ b/core/res/res/values-et/strings.xml @@ -855,12 +855,9 @@ <string name="searchview_description_clear" msgid="1330281990951833033">"Tühjenda päring"</string> <string name="searchview_description_submit" msgid="2688450133297983542">"Päringu esitamine"</string> <string name="searchview_description_voice" msgid="2453203695674994440">"Häälotsing"</string> - <!-- no translation found for enable_explore_by_touch_warning_title (7460694070309730149) --> - <skip /> - <!-- no translation found for enable_explore_by_touch_warning_message (8655887539089910577) --> - <skip /> - <!-- no translation found for enable_explore_by_touch_warning_message (2708199672852373195) --> - <skip /> + <string name="enable_explore_by_touch_warning_title" msgid="7460694070309730149">"Kas lubada puudutusega uurimine?"</string> + <string name="enable_explore_by_touch_warning_message" product="tablet" msgid="8655887539089910577">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> soovib lubada puudutusega uurimise. Kui puudutusega uurimine on sisse lülitatud, kuulete või näete kirjeldusi asjade kohta, mis on teie sõrme all, või saate suhelda tahvelarvutiga liigutuste abil."</string> + <string name="enable_explore_by_touch_warning_message" product="default" msgid="2708199672852373195">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> soovib lubada puudutusega uurimise. Kui puudutusega uurimine on sisse lülitatud, kuulete või näete kirjeldusi asjade kohta, mis on teie sõrme all, või saate suhelda telefoniga liigutuste abil."</string> <string name="oneMonthDurationPast" msgid="7396384508953779925">"1 kuu tagasi"</string> <string name="beforeOneMonthDurationPast" msgid="909134546836499826">"Varem kui 1 kuu tagasi"</string> <plurals name="num_seconds_ago"> @@ -1127,10 +1124,8 @@ <string name="configure_input_methods" msgid="9091652157722495116">"Seadista sisestusmeetodid"</string> <string name="use_physical_keyboard" msgid="6203112478095117625">"Füüsiline klaviatuur"</string> <string name="hardware" msgid="7517821086888990278">"Riistvara"</string> - <!-- no translation found for select_keyboard_layout_notification_title (1407367017263030773) --> - <skip /> - <!-- no translation found for select_keyboard_layout_notification_message (4465907700449257063) --> - <skip /> + <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Klaviatuuri paigutuse valimine"</string> + <string name="select_keyboard_layout_notification_message" msgid="4465907700449257063">"Puudutage klaviatuuri paigutuse valimiseks."</string> <string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSŠZŽTUVWÕÄÖÜXY"</string> <string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSŠZŽTUVWÕÄÖÜXY"</string> <string name="candidates_style" msgid="4333913089637062257"><u>"kandidaadid"</u></string> @@ -1239,7 +1234,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"Ära tee praegu midagi"</string> <string name="choose_account_label" msgid="5655203089746423927">"Konto valimine"</string> <string name="add_account_label" msgid="2935267344849993553">"Konto lisamine"</string> - <string name="choose_account_text" msgid="6303348737197849675">"Millist kontot soovite kasutada?"</string> <string name="add_account_button_label" msgid="3611982894853435874">"Lisa konto"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"Suurendamine"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"Vähendamine"</string> @@ -1324,6 +1318,5 @@ <string name="launchBrowserDefault" msgid="2057951947297614725">"Kas käivitada brauser?"</string> <string name="SetupCallDefault" msgid="5834948469253758575">"Kas vastata kõnele?"</string> <string name="activity_resolver_use_always" msgid="8017770747801494933">"Alati"</string> - <!-- no translation found for activity_resolver_use_once (2404644797149173758) --> - <skip /> + <string name="activity_resolver_use_once" msgid="2404644797149173758">"Ainult üks kord"</string> </resources> diff --git a/core/res/res/values-fa/strings.xml b/core/res/res/values-fa/strings.xml index 393ba0c..eaf7849 100644 --- a/core/res/res/values-fa/strings.xml +++ b/core/res/res/values-fa/strings.xml @@ -855,12 +855,9 @@ <string name="searchview_description_clear" msgid="1330281990951833033">"پاک کردن عبارت جستجو"</string> <string name="searchview_description_submit" msgid="2688450133297983542">"ارسال عبارت جستجو"</string> <string name="searchview_description_voice" msgid="2453203695674994440">"جستجوی صوتی"</string> - <!-- no translation found for enable_explore_by_touch_warning_title (7460694070309730149) --> - <skip /> - <!-- no translation found for enable_explore_by_touch_warning_message (8655887539089910577) --> - <skip /> - <!-- no translation found for enable_explore_by_touch_warning_message (2708199672852373195) --> - <skip /> + <string name="enable_explore_by_touch_warning_title" msgid="7460694070309730149">"فعال کردن «کاوش با لمس»؟"</string> + <string name="enable_explore_by_touch_warning_message" product="tablet" msgid="8655887539089910577">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> میخواهد «کاوش با لمس» را فعال کند. وقتی «کاوش با لمس» فعال است، میتوانید توضیحاتی را برای آنچه که زیر انگشت شما است مشاهده کرده یا بشنوید یا برای استفاده از رایانه لوحی از حرکات اشاره استفاده کنید."</string> + <string name="enable_explore_by_touch_warning_message" product="default" msgid="2708199672852373195">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> میخواهد «کاوش با لمس» را فعال کند. وقتی «کاوش با لمس» فعال است، میتوانید توضیحاتی را برای آنچه که زیر انگشت شما است مشاهده کرده یا بشنوید یا برای استفاده از تلفن خود از حرکات اشاره استفاده کنید."</string> <string name="oneMonthDurationPast" msgid="7396384508953779925">"1 ماه قبل"</string> <string name="beforeOneMonthDurationPast" msgid="909134546836499826">"قبل از 1 ماه گذشته"</string> <plurals name="num_seconds_ago"> @@ -1127,10 +1124,8 @@ <string name="configure_input_methods" msgid="9091652157722495116">"تنظیم روشهای ورودی"</string> <string name="use_physical_keyboard" msgid="6203112478095117625">"صفحه کلید فیزیکی"</string> <string name="hardware" msgid="7517821086888990278">"سختافزار"</string> - <!-- no translation found for select_keyboard_layout_notification_title (1407367017263030773) --> - <skip /> - <!-- no translation found for select_keyboard_layout_notification_message (4465907700449257063) --> - <skip /> + <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"انتخاب طرحبندی صفحه کلید"</string> + <string name="select_keyboard_layout_notification_message" msgid="4465907700449257063">"برای انتخاب یک طرحبندی صفحه کلید لمس کنید…"</string> <string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string> <string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string> <string name="candidates_style" msgid="4333913089637062257"><u>"داوطلبین"</u></string> @@ -1239,7 +1234,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"اکنون کاری انجام نشود"</string> <string name="choose_account_label" msgid="5655203089746423927">"انتخاب حساب"</string> <string name="add_account_label" msgid="2935267344849993553">"افزودن یک حساب"</string> - <string name="choose_account_text" msgid="6303348737197849675">"کدام حساب را میخواهید استفاده کنید؟"</string> <string name="add_account_button_label" msgid="3611982894853435874">"افزودن حساب"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"افزایش"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"کاهش"</string> @@ -1324,6 +1318,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 (2404644797149173758) --> - <skip /> + <string name="activity_resolver_use_once" msgid="2404644797149173758">"فقط یک بار"</string> </resources> diff --git a/core/res/res/values-fi/strings.xml b/core/res/res/values-fi/strings.xml index 9e0e8e6..1ec3a3e 100644 --- a/core/res/res/values-fi/strings.xml +++ b/core/res/res/values-fi/strings.xml @@ -1239,7 +1239,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"Älä tee mitään"</string> <string name="choose_account_label" msgid="5655203089746423927">"Valitse tili"</string> <string name="add_account_label" msgid="2935267344849993553">"Lisää tili"</string> - <string name="choose_account_text" msgid="6303348737197849675">"Mitä tiliä haluat käyttää?"</string> <string name="add_account_button_label" msgid="3611982894853435874">"Lisää tili"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"Lisää"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"Vähennä"</string> diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml index f757e27..d7cb12c 100644 --- a/core/res/res/values-fr/strings.xml +++ b/core/res/res/values-fr/strings.xml @@ -1239,7 +1239,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"Ne rien faire pour l\'instant"</string> <string name="choose_account_label" msgid="5655203089746423927">"Sélectionnez un compte"</string> <string name="add_account_label" msgid="2935267344849993553">"Ajouter un compte"</string> - <string name="choose_account_text" msgid="6303348737197849675">"Quel compte souhaitez-vous utiliser ?"</string> <string name="add_account_button_label" msgid="3611982894853435874">"Ajouter un compte"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"Augmenter"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"Diminuer"</string> diff --git a/core/res/res/values-hi/strings.xml b/core/res/res/values-hi/strings.xml index 47656b6..2a83a16 100644 --- a/core/res/res/values-hi/strings.xml +++ b/core/res/res/values-hi/strings.xml @@ -1239,7 +1239,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"फिलहाल कुछ न करें"</string> <string name="choose_account_label" msgid="5655203089746423927">"कोई खाता चुनें"</string> <string name="add_account_label" msgid="2935267344849993553">"कोई खाता जोड़ें"</string> - <string name="choose_account_text" msgid="6303348737197849675">"आप कौन-सा खाता उपयोग करना चाहते हैं?"</string> <string name="add_account_button_label" msgid="3611982894853435874">"खाता जोड़ें"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"बढ़ाएं"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"कम करें"</string> diff --git a/core/res/res/values-hr/strings.xml b/core/res/res/values-hr/strings.xml index 98f736b..d8bd15f 100644 --- a/core/res/res/values-hr/strings.xml +++ b/core/res/res/values-hr/strings.xml @@ -1239,7 +1239,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"Za sada nemoj ništa učiniti"</string> <string name="choose_account_label" msgid="5655203089746423927">"Odaberite račun"</string> <string name="add_account_label" msgid="2935267344849993553">"Dodajte račun"</string> - <string name="choose_account_text" msgid="6303348737197849675">"Koji račun želite upotrijebiti?"</string> <string name="add_account_button_label" msgid="3611982894853435874">"Dodaj račun"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"Povećavanje"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"Smanjivanje"</string> diff --git a/core/res/res/values-hu/strings.xml b/core/res/res/values-hu/strings.xml index 239bfe4..188f6d7 100644 --- a/core/res/res/values-hu/strings.xml +++ b/core/res/res/values-hu/strings.xml @@ -1239,7 +1239,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"Egyelőre ne legyen semmilyen művelet"</string> <string name="choose_account_label" msgid="5655203089746423927">"Válasszon fiókot"</string> <string name="add_account_label" msgid="2935267344849993553">"Fiók hozzáadása"</string> - <string name="choose_account_text" msgid="6303348737197849675">"Melyik fiókot szeretné használni?"</string> <string name="add_account_button_label" msgid="3611982894853435874">"Fiók hozzáadása"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"Növelés"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"Csökkentés"</string> diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml index f0187ec..fda15f2 100644 --- a/core/res/res/values-in/strings.xml +++ b/core/res/res/values-in/strings.xml @@ -855,12 +855,9 @@ <string name="searchview_description_clear" msgid="1330281990951833033">"Hapus kueri"</string> <string name="searchview_description_submit" msgid="2688450133297983542">"Mengirimkan kueri"</string> <string name="searchview_description_voice" msgid="2453203695674994440">"Penelusuran suara"</string> - <!-- no translation found for enable_explore_by_touch_warning_title (7460694070309730149) --> - <skip /> - <!-- no translation found for enable_explore_by_touch_warning_message (8655887539089910577) --> - <skip /> - <!-- no translation found for enable_explore_by_touch_warning_message (2708199672852373195) --> - <skip /> + <string name="enable_explore_by_touch_warning_title" msgid="7460694070309730149">"Aktifkan Menjelajah dengan Sentuhan?"</string> + <string name="enable_explore_by_touch_warning_message" product="tablet" msgid="8655887539089910577">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> ingin mengaktifkan Menjelajah dengan Sentuhan. Saat Menjelajah dengan Sentuhan diaktifkan, Anda dapat melihat atau mendengar deskripsi dari apa yang ada di bawah jari Anda atau melakukan gerakan untuk berinteraksi dengan tablet."</string> + <string name="enable_explore_by_touch_warning_message" product="default" msgid="2708199672852373195">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> ingin mengaktifkan Menjelajah dengan Sentuhan. Saat Menjelajah dengan Sentuhan diaktifkan, Anda dapat mendengar atau melihat deskripsi dari apa yang ada di bawah jari Anda atau melakukan gerakan untuk berinteraksi dengan ponsel."</string> <string name="oneMonthDurationPast" msgid="7396384508953779925">"1 bulan yang lalu"</string> <string name="beforeOneMonthDurationPast" msgid="909134546836499826">"Sebelum 1 bulan yang lalu"</string> <plurals name="num_seconds_ago"> @@ -1127,10 +1124,8 @@ <string name="configure_input_methods" msgid="9091652157722495116">"Menyiapkan metode masukan"</string> <string name="use_physical_keyboard" msgid="6203112478095117625">"Keyboard fisik"</string> <string name="hardware" msgid="7517821086888990278">"Perangkat Keras"</string> - <!-- no translation found for select_keyboard_layout_notification_title (1407367017263030773) --> - <skip /> - <!-- no translation found for select_keyboard_layout_notification_message (4465907700449257063) --> - <skip /> + <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Pilih tata letak keyboard"</string> + <string name="select_keyboard_layout_notification_message" msgid="4465907700449257063">"Sentuh untuk memilih tata letak keyboard."</string> <string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string> <string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string> <string name="candidates_style" msgid="4333913089637062257"><u>"calon"</u></string> @@ -1239,7 +1234,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"Jangan lakukan apa pun untuk saat ini"</string> <string name="choose_account_label" msgid="5655203089746423927">"Pilih akun"</string> <string name="add_account_label" msgid="2935267344849993553">"Tambahkan akun"</string> - <string name="choose_account_text" msgid="6303348737197849675">"Akun mana yang ingin Anda gunakan?"</string> <string name="add_account_button_label" msgid="3611982894853435874">"Tambahkan akun"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"Tambah"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"Kurangi"</string> @@ -1324,6 +1318,5 @@ <string name="launchBrowserDefault" msgid="2057951947297614725">"Luncurkan Browser?"</string> <string name="SetupCallDefault" msgid="5834948469253758575">"Terima panggilan?"</string> <string name="activity_resolver_use_always" msgid="8017770747801494933">"Selalu"</string> - <!-- no translation found for activity_resolver_use_once (2404644797149173758) --> - <skip /> + <string name="activity_resolver_use_once" msgid="2404644797149173758">"Hanya sekali"</string> </resources> diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml index ffcf6bb..92f4cef 100644 --- a/core/res/res/values-it/strings.xml +++ b/core/res/res/values-it/strings.xml @@ -855,12 +855,9 @@ <string name="searchview_description_clear" msgid="1330281990951833033">"Cancella query"</string> <string name="searchview_description_submit" msgid="2688450133297983542">"Invia query"</string> <string name="searchview_description_voice" msgid="2453203695674994440">"Ricerca vocale"</string> - <!-- no translation found for enable_explore_by_touch_warning_title (7460694070309730149) --> - <skip /> - <!-- no translation found for enable_explore_by_touch_warning_message (8655887539089910577) --> - <skip /> - <!-- no translation found for enable_explore_by_touch_warning_message (2708199672852373195) --> - <skip /> + <string name="enable_explore_by_touch_warning_title" msgid="7460694070309730149">"Attivare Esplora al tocco?"</string> + <string name="enable_explore_by_touch_warning_message" product="tablet" msgid="8655887539089910577">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> vuole attivare la funzione Esplora al tocco. Quando la funzione Esplora al tocco è attiva, puoi ascoltare o visualizzare le descrizioni di ciò che stai toccando oppure interagire con il tablet tramite gesti."</string> + <string name="enable_explore_by_touch_warning_message" product="default" msgid="2708199672852373195">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> vuole attivare la funzione Esplora al tocco. Quando la funzione Esplora al tocco è attiva, puoi ascoltare o visualizzare le descrizioni di ciò che stai toccando oppure interagire con il telefono tramite gesti."</string> <string name="oneMonthDurationPast" msgid="7396384508953779925">"1 mese fa"</string> <string name="beforeOneMonthDurationPast" msgid="909134546836499826">"Oltre 1 mese fa"</string> <plurals name="num_seconds_ago"> @@ -1127,10 +1124,8 @@ <string name="configure_input_methods" msgid="9091652157722495116">"Configura metodi di immissione"</string> <string name="use_physical_keyboard" msgid="6203112478095117625">"Tastiera fisica"</string> <string name="hardware" msgid="7517821086888990278">"Hardware"</string> - <!-- no translation found for select_keyboard_layout_notification_title (1407367017263030773) --> - <skip /> - <!-- no translation found for select_keyboard_layout_notification_message (4465907700449257063) --> - <skip /> + <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Seleziona layout tastiera"</string> + <string name="select_keyboard_layout_notification_message" msgid="4465907700449257063">"Tocca per selezionare un layout di tastiera."</string> <string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string> <string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string> <string name="candidates_style" msgid="4333913089637062257"><u>"candidati"</u></string> @@ -1239,7 +1234,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"Non fare nulla per ora"</string> <string name="choose_account_label" msgid="5655203089746423927">"Scegli un account"</string> <string name="add_account_label" msgid="2935267344849993553">"Aggiungi un account"</string> - <string name="choose_account_text" msgid="6303348737197849675">"Quale account vuoi usare?"</string> <string name="add_account_button_label" msgid="3611982894853435874">"Aggiungi account"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"Aumenta"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"Riduci"</string> @@ -1324,6 +1318,5 @@ <string name="launchBrowserDefault" msgid="2057951947297614725">"Avviare l\'applicazione Browser?"</string> <string name="SetupCallDefault" msgid="5834948469253758575">"Accettare la chiamata?"</string> <string name="activity_resolver_use_always" msgid="8017770747801494933">"Sempre"</string> - <!-- no translation found for activity_resolver_use_once (2404644797149173758) --> - <skip /> + <string name="activity_resolver_use_once" msgid="2404644797149173758">"Solo una volta"</string> </resources> diff --git a/core/res/res/values-iw/strings.xml b/core/res/res/values-iw/strings.xml index 265da95..54b7620 100644 --- a/core/res/res/values-iw/strings.xml +++ b/core/res/res/values-iw/strings.xml @@ -1234,7 +1234,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"אל תעשה דבר כרגע"</string> <string name="choose_account_label" msgid="5655203089746423927">"בחר חשבון"</string> <string name="add_account_label" msgid="2935267344849993553">"הוסף חשבון"</string> - <string name="choose_account_text" msgid="6303348737197849675">"באיזה חשבון ברצונך להשתמש?"</string> <string name="add_account_button_label" msgid="3611982894853435874">"הוסף חשבון"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"הוסף"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"הפחת"</string> diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml index 176a6b5..604e163 100644 --- a/core/res/res/values-ja/strings.xml +++ b/core/res/res/values-ja/strings.xml @@ -1239,7 +1239,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"今は何もしない"</string> <string name="choose_account_label" msgid="5655203089746423927">"アカウントの選択"</string> <string name="add_account_label" msgid="2935267344849993553">"アカウントを追加"</string> - <string name="choose_account_text" msgid="6303348737197849675">"どのアカウントを使用しますか?"</string> <string name="add_account_button_label" msgid="3611982894853435874">"アカウントを追加"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"進めます"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"戻します"</string> diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml index 03de346..64ef6a3 100644 --- a/core/res/res/values-ko/strings.xml +++ b/core/res/res/values-ko/strings.xml @@ -855,12 +855,9 @@ <string name="searchview_description_clear" msgid="1330281990951833033">"검색어 삭제"</string> <string name="searchview_description_submit" msgid="2688450133297983542">"검색어 보내기"</string> <string name="searchview_description_voice" msgid="2453203695674994440">"음성 검색"</string> - <!-- no translation found for enable_explore_by_touch_warning_title (7460694070309730149) --> - <skip /> - <!-- no translation found for enable_explore_by_touch_warning_message (8655887539089910577) --> - <skip /> - <!-- no translation found for enable_explore_by_touch_warning_message (2708199672852373195) --> - <skip /> + <string name="enable_explore_by_touch_warning_title" msgid="7460694070309730149">"\'터치하여 탐색\'을 사용하시겠습니까?"</string> + <string name="enable_explore_by_touch_warning_message" product="tablet" msgid="8655887539089910577">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g>을(를) 사용하려면 \'터치하여 탐색\' 기능을 사용하도록 설정해야 합니다. \'터치하여 탐색\'을 사용하도록 설정하면, 화면을 터치하여 손가락 아래에 표시된 항목에 대한 설명을 듣고 보거나 태블릿으로 상호작용하기 위한 동작을 수행할 수 있습니다."</string> + <string name="enable_explore_by_touch_warning_message" product="default" msgid="2708199672852373195">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g>을(를) 사용하려면 \'터치하여 탐색\' 기능을 사용하도록 설정해야 합니다. \'터치하여 탐색\'을 사용하도록 설정하면, 화면을 터치하여 손가락 아래에 표시된 항목에 대한 설명을 듣고 보거나 휴대전화로 상호작용하기 위한 동작을 수행할 수 있습니다."</string> <string name="oneMonthDurationPast" msgid="7396384508953779925">"한 달 전"</string> <string name="beforeOneMonthDurationPast" msgid="909134546836499826">"한 달 전"</string> <plurals name="num_seconds_ago"> @@ -1127,10 +1124,8 @@ <string name="configure_input_methods" msgid="9091652157722495116">"입력 방법 설정"</string> <string name="use_physical_keyboard" msgid="6203112478095117625">"물리적 키보드"</string> <string name="hardware" msgid="7517821086888990278">"하드웨어"</string> - <!-- no translation found for select_keyboard_layout_notification_title (1407367017263030773) --> - <skip /> - <!-- no translation found for select_keyboard_layout_notification_message (4465907700449257063) --> - <skip /> + <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"키보드 레이아웃 선택"</string> + <string name="select_keyboard_layout_notification_message" msgid="4465907700449257063">"터치하여 키보드 레이아웃을 선택합니다."</string> <string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string> <string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string> <string name="candidates_style" msgid="4333913089637062257"><u>"가능한 원인"</u></string> @@ -1239,7 +1234,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"나중에 작업"</string> <string name="choose_account_label" msgid="5655203089746423927">"계정 선택"</string> <string name="add_account_label" msgid="2935267344849993553">"계정 추가"</string> - <string name="choose_account_text" msgid="6303348737197849675">"사용할 계정을 선택하세요."</string> <string name="add_account_button_label" msgid="3611982894853435874">"계정 추가"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"늘리기"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"줄이기"</string> @@ -1324,6 +1318,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 (2404644797149173758) --> - <skip /> + <string name="activity_resolver_use_once" msgid="2404644797149173758">"한 번만"</string> </resources> diff --git a/core/res/res/values-lt/strings.xml b/core/res/res/values-lt/strings.xml index 0474391..fe4683d 100644 --- a/core/res/res/values-lt/strings.xml +++ b/core/res/res/values-lt/strings.xml @@ -855,12 +855,9 @@ <string name="searchview_description_clear" msgid="1330281990951833033">"Išvalyti užklausą"</string> <string name="searchview_description_submit" msgid="2688450133297983542">"Patvirtinti užklausą"</string> <string name="searchview_description_voice" msgid="2453203695674994440">"Paieška balsu"</string> - <!-- no translation found for enable_explore_by_touch_warning_title (7460694070309730149) --> - <skip /> - <!-- no translation found for enable_explore_by_touch_warning_message (8655887539089910577) --> - <skip /> - <!-- no translation found for enable_explore_by_touch_warning_message (2708199672852373195) --> - <skip /> + <string name="enable_explore_by_touch_warning_title" msgid="7460694070309730149">"Įgalinti naršymą liečiant?"</string> + <string name="enable_explore_by_touch_warning_message" product="tablet" msgid="8655887539089910577">"„<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g>“ nori įgalinti naršymą liečiant. Kai naršymas liečiant bus įjungtas, galėsite išgirsti ar peržiūrėti pirštu liečiamų elementų aprašus arba atlikdami gestus naudoti planšetinį kompiuterį."</string> + <string name="enable_explore_by_touch_warning_message" product="default" msgid="2708199672852373195">"„<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g>“ nori įgalinti naršymą liečiant. Kai naršymas liečiant bus įjungtas, galėsite išgirsti ar peržiūrėti pirštu liečiamų elementų aprašus arba atlikdami gestus naudoti telefoną."</string> <string name="oneMonthDurationPast" msgid="7396384508953779925">"Prieš 1 mėn."</string> <string name="beforeOneMonthDurationPast" msgid="909134546836499826">"Prieš maždaug 1 mėnesį"</string> <plurals name="num_seconds_ago"> @@ -1127,10 +1124,8 @@ <string name="configure_input_methods" msgid="9091652157722495116">"Nustatyti įvesties metodus"</string> <string name="use_physical_keyboard" msgid="6203112478095117625">"Fizinė klaviatūra"</string> <string name="hardware" msgid="7517821086888990278">"Apar. įr."</string> - <!-- no translation found for select_keyboard_layout_notification_title (1407367017263030773) --> - <skip /> - <!-- no translation found for select_keyboard_layout_notification_message (4465907700449257063) --> - <skip /> + <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Pasirinkite klaviatūros išdėstymą"</string> + <string name="select_keyboard_layout_notification_message" msgid="4465907700449257063">"Palieskite, kad pasirinktumėte klaviatūros išdėstymą."</string> <string name="fast_scroll_alphabet" msgid="5433275485499039199">" AĄBCČDEĘĖFGHIĮYJKLMNOPRSŠTUŲŪVZŽ"</string> <string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789AĄBCČDEĘĖFGHIĮYJKLMNOPRSŠTUŲŪVZŽ"</string> <string name="candidates_style" msgid="4333913089637062257"><u>"kandidatai"</u></string> @@ -1239,7 +1234,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"Kol kas nieko nedaryti"</string> <string name="choose_account_label" msgid="5655203089746423927">"Pasirinkti paskyrą"</string> <string name="add_account_label" msgid="2935267344849993553">"Pridėti paskyrą"</string> - <string name="choose_account_text" msgid="6303348737197849675">"Kurią paskyrą norite naudoti?"</string> <string name="add_account_button_label" msgid="3611982894853435874">"Pridėti paskyrą"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"Padidinti"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"Sumažinti"</string> @@ -1324,6 +1318,5 @@ <string name="launchBrowserDefault" msgid="2057951947297614725">"Paleisti naršyklę?"</string> <string name="SetupCallDefault" msgid="5834948469253758575">"Priimti skambutį?"</string> <string name="activity_resolver_use_always" msgid="8017770747801494933">"Visada"</string> - <!-- no translation found for activity_resolver_use_once (2404644797149173758) --> - <skip /> + <string name="activity_resolver_use_once" msgid="2404644797149173758">"Tik kartą"</string> </resources> diff --git a/core/res/res/values-lv/strings.xml b/core/res/res/values-lv/strings.xml index aaed6e2..263323c 100644 --- a/core/res/res/values-lv/strings.xml +++ b/core/res/res/values-lv/strings.xml @@ -855,12 +855,9 @@ <string name="searchview_description_clear" msgid="1330281990951833033">"Notīrīt vaicājumu"</string> <string name="searchview_description_submit" msgid="2688450133297983542">"Iesniedziet vaicājumu."</string> <string name="searchview_description_voice" msgid="2453203695674994440">"Meklēšana ar balsi"</string> - <!-- no translation found for enable_explore_by_touch_warning_title (7460694070309730149) --> - <skip /> - <!-- no translation found for enable_explore_by_touch_warning_message (8655887539089910577) --> - <skip /> - <!-- no translation found for enable_explore_by_touch_warning_message (2708199672852373195) --> - <skip /> + <string name="enable_explore_by_touch_warning_title" msgid="7460694070309730149">"Vai iesp. “Pārlūkot pieskaroties”?"</string> + <string name="enable_explore_by_touch_warning_message" product="tablet" msgid="8655887539089910577">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> vēlas iespējot funkciju “Atklāt pieskaroties”. Kad ir ieslēgta funkcija “Atklāt pieskaroties”, var dzirdēt vai redzēt tā vienuma aprakstu, virs kura atrodas pirksts, vai veikt žestus, lai mijiedarbotos ar planšetdatoru."</string> + <string name="enable_explore_by_touch_warning_message" product="default" msgid="2708199672852373195">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> vēlas iespējot funkciju “Atklāt pieskaroties”. Kad ir ieslēgta funkcija “Atklāt pieskaroties”, var dzirdēt vai redzēt tā vienuma aprakstu, virs kura atrodas pirksts, vai veikt žestus, lai mijiedarbotos ar tālruni."</string> <string name="oneMonthDurationPast" msgid="7396384508953779925">"Pirms 1 mēneša"</string> <string name="beforeOneMonthDurationPast" msgid="909134546836499826">"Vairāk nekā pirms 1 mēneša"</string> <plurals name="num_seconds_ago"> @@ -1127,10 +1124,8 @@ <string name="configure_input_methods" msgid="9091652157722495116">"Iestatīt ievades metodes"</string> <string name="use_physical_keyboard" msgid="6203112478095117625">"Fiziskā tastatūra"</string> <string name="hardware" msgid="7517821086888990278">"Aparatūra"</string> - <!-- no translation found for select_keyboard_layout_notification_title (1407367017263030773) --> - <skip /> - <!-- no translation found for select_keyboard_layout_notification_message (4465907700449257063) --> - <skip /> + <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Atlasiet tastatūras izkārtojumu"</string> + <string name="select_keyboard_layout_notification_message" msgid="4465907700449257063">"Pieskarieties, lai atlasītu tastatūras izkārtojumu."</string> <string name="fast_scroll_alphabet" msgid="5433275485499039199">" AĀBCČDEĒFGĢHIĪJKĶLĻMNŅOPRSŠTUŪVZŽ"</string> <string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789AĀBCČDEĒFGĢHIĪJKĶLĻMNŅOPRSŠTUŪVZŽ"</string> <string name="candidates_style" msgid="4333913089637062257"><u>"kandidāti"</u></string> @@ -1239,7 +1234,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"Pagaidām neveiciet nekādas darbības."</string> <string name="choose_account_label" msgid="5655203089746423927">"Izvēlēties kontu"</string> <string name="add_account_label" msgid="2935267344849993553">"Pievienot kontu"</string> - <string name="choose_account_text" msgid="6303348737197849675">"Kuru kontu vēlaties izmantot?"</string> <string name="add_account_button_label" msgid="3611982894853435874">"Pievienot kontu"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"Palielināt"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"Samazināt"</string> @@ -1324,6 +1318,5 @@ <string name="launchBrowserDefault" msgid="2057951947297614725">"Vai palaist pārlūkprogrammu?"</string> <string name="SetupCallDefault" msgid="5834948469253758575">"Vai atbildēt uz zvanu?"</string> <string name="activity_resolver_use_always" msgid="8017770747801494933">"Vienmēr"</string> - <!-- no translation found for activity_resolver_use_once (2404644797149173758) --> - <skip /> + <string name="activity_resolver_use_once" msgid="2404644797149173758">"Tikai vienreiz"</string> </resources> diff --git a/core/res/res/values-ms/strings.xml b/core/res/res/values-ms/strings.xml index fec15b2..295fae2 100644 --- a/core/res/res/values-ms/strings.xml +++ b/core/res/res/values-ms/strings.xml @@ -855,12 +855,9 @@ <string name="searchview_description_clear" msgid="1330281990951833033">"Pertanyaan jelas"</string> <string name="searchview_description_submit" msgid="2688450133297983542">"Serah pertanyaan"</string> <string name="searchview_description_voice" msgid="2453203695674994440">"Carian suara"</string> - <!-- no translation found for enable_explore_by_touch_warning_title (7460694070309730149) --> - <skip /> - <!-- no translation found for enable_explore_by_touch_warning_message (8655887539089910577) --> - <skip /> - <!-- no translation found for enable_explore_by_touch_warning_message (2708199672852373195) --> - <skip /> + <string name="enable_explore_by_touch_warning_title" msgid="7460694070309730149">"Dayakan Jelajah melalui Sentuhan?"</string> + <string name="enable_explore_by_touch_warning_message" product="tablet" msgid="8655887539089910577">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> ingin mendayakan Jelajah melalui Sentuhan. Apabila Jelajah melalui Sentuhan didayakan, anda boleh mendengar atau melihat penerangan tentang apa di bawah jari anda atau melakukan gerak isyarat untuk berinteraksi dengan tablet."</string> + <string name="enable_explore_by_touch_warning_message" product="default" msgid="2708199672852373195">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> ingin mendayakan Jelajah melalui Sentuhan. Apabila Jelajah melalui Sentuhan didayakan, anda boleh mendengar atau melihat penerangan tentang apa di bawah jari anda atau melakukan gerak isyarat untuk berinteraksi dengan telefon."</string> <string name="oneMonthDurationPast" msgid="7396384508953779925">"1 bulan yang lalu"</string> <string name="beforeOneMonthDurationPast" msgid="909134546836499826">"Sebelum 1 bulan yang lalu"</string> <plurals name="num_seconds_ago"> @@ -1127,10 +1124,8 @@ <string name="configure_input_methods" msgid="9091652157722495116">"Sediakan kaedah input"</string> <string name="use_physical_keyboard" msgid="6203112478095117625">"Papan kekunci fizikal"</string> <string name="hardware" msgid="7517821086888990278">"Perkakasan"</string> - <!-- no translation found for select_keyboard_layout_notification_title (1407367017263030773) --> - <skip /> - <!-- no translation found for select_keyboard_layout_notification_message (4465907700449257063) --> - <skip /> + <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Pilih susun atur papan kekunci"</string> + <string name="select_keyboard_layout_notification_message" msgid="4465907700449257063">"Sentuh untuk memilih susun atur papan kekunci."</string> <string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string> <string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string> <string name="candidates_style" msgid="4333913089637062257"><u>"calon"</u></string> @@ -1239,7 +1234,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"Jangan lakukan apa-apa sekarang"</string> <string name="choose_account_label" msgid="5655203089746423927">"Pilih akaun"</string> <string name="add_account_label" msgid="2935267344849993553">"Tambah akaun"</string> - <string name="choose_account_text" msgid="6303348737197849675">"Akaun mana yang mahu anda gunakan?"</string> <string name="add_account_button_label" msgid="3611982894853435874">"Tambah akaun"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"Tingkatkan"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"Kurangkan"</string> @@ -1324,6 +1318,5 @@ <string name="launchBrowserDefault" msgid="2057951947297614725">"Lancarkan Penyemak Imbas?"</string> <string name="SetupCallDefault" msgid="5834948469253758575">"Terima panggilan?"</string> <string name="activity_resolver_use_always" msgid="8017770747801494933">"Sentiasa"</string> - <!-- no translation found for activity_resolver_use_once (2404644797149173758) --> - <skip /> + <string name="activity_resolver_use_once" msgid="2404644797149173758">"Hanya sekali"</string> </resources> diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml index 47935fd..6ed825f 100644 --- a/core/res/res/values-nb/strings.xml +++ b/core/res/res/values-nb/strings.xml @@ -748,7 +748,7 @@ <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Pause-knappen"</string> <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Avspillingsknappen"</string> <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Stopp-knappen"</string> - <string name="emergency_calls_only" msgid="6733978304386365407">"Kun nødanrop"</string> + <string name="emergency_calls_only" msgid="6733978304386365407">"Bare nødanrop"</string> <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Nettverk ikke tillatt"</string> <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM-kortet er PUK-låst."</string> <string name="lockscreen_sim_puk_locked_instructions" msgid="8127916255245181063">"Les i brukerhåndboken eller kontakt brukerstøtten."</string> @@ -1239,7 +1239,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"Ikke gjør noe nå"</string> <string name="choose_account_label" msgid="5655203089746423927">"Velg en konto"</string> <string name="add_account_label" msgid="2935267344849993553">"Legg til en konto"</string> - <string name="choose_account_text" msgid="6303348737197849675">"Hvilken konto vil du bruke?"</string> <string name="add_account_button_label" msgid="3611982894853435874">"Legg til konto"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"Øk"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"Reduser"</string> diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml index 4ad7180..b92c38c 100644 --- a/core/res/res/values-nl/strings.xml +++ b/core/res/res/values-nl/strings.xml @@ -1239,7 +1239,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"Nu niets doen."</string> <string name="choose_account_label" msgid="5655203089746423927">"Een account selecteren"</string> <string name="add_account_label" msgid="2935267344849993553">"Een account toevoegen"</string> - <string name="choose_account_text" msgid="6303348737197849675">"Welk account wilt u gebruiken?"</string> <string name="add_account_button_label" msgid="3611982894853435874">"Account toevoegen"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"Verhogen"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"Verlagen"</string> diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml index a634006..ce284d0 100644 --- a/core/res/res/values-pl/strings.xml +++ b/core/res/res/values-pl/strings.xml @@ -855,12 +855,9 @@ <string name="searchview_description_clear" msgid="1330281990951833033">"Wyczyść zapytanie"</string> <string name="searchview_description_submit" msgid="2688450133297983542">"Wyślij zapytanie"</string> <string name="searchview_description_voice" msgid="2453203695674994440">"Wyszukiwanie głosowe"</string> - <!-- no translation found for enable_explore_by_touch_warning_title (7460694070309730149) --> - <skip /> - <!-- no translation found for enable_explore_by_touch_warning_message (8655887539089910577) --> - <skip /> - <!-- no translation found for enable_explore_by_touch_warning_message (2708199672852373195) --> - <skip /> + <string name="enable_explore_by_touch_warning_title" msgid="7460694070309730149">"Włączyć Czytanie dotykiem?"</string> + <string name="enable_explore_by_touch_warning_message" product="tablet" msgid="8655887539089910577">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> chce włączyć Czytanie dotykiem. Gdy ta funkcja jest włączona, słyszysz i widzisz opisy elementów, które są pod Twoim palcem, oraz możesz obsługiwać tablet gestami."</string> + <string name="enable_explore_by_touch_warning_message" product="default" msgid="2708199672852373195">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> chce włączyć Czytanie dotykiem. Gdy ta funkcja jest włączona, słyszysz i widzisz opisy elementów, które są pod Twoim palcem, oraz możesz obsługiwać telefon gestami."</string> <string name="oneMonthDurationPast" msgid="7396384508953779925">"1 miesiąc temu"</string> <string name="beforeOneMonthDurationPast" msgid="909134546836499826">"Ponad 1 miesiąc temu"</string> <plurals name="num_seconds_ago"> @@ -1127,10 +1124,8 @@ <string name="configure_input_methods" msgid="9091652157722495116">"Konfiguruj metody wprowadzania"</string> <string name="use_physical_keyboard" msgid="6203112478095117625">"Klawiatura fizyczna"</string> <string name="hardware" msgid="7517821086888990278">"Sprzęt"</string> - <!-- no translation found for select_keyboard_layout_notification_title (1407367017263030773) --> - <skip /> - <!-- no translation found for select_keyboard_layout_notification_message (4465907700449257063) --> - <skip /> + <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Wybierz układ klawiatury"</string> + <string name="select_keyboard_layout_notification_message" msgid="4465907700449257063">"Kliknij, by wybrać układ klawiatury."</string> <string name="fast_scroll_alphabet" msgid="5433275485499039199">" AĄBCĆDEĘFGHIJKLŁMNŃOÓPQRSŚTUVWXYZŹŻ"</string> <string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string> <string name="candidates_style" msgid="4333913089637062257"><u>"kandydaci"</u></string> @@ -1239,7 +1234,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"Nie wykonuj teraz żadnych czynności."</string> <string name="choose_account_label" msgid="5655203089746423927">"Wybierz konto."</string> <string name="add_account_label" msgid="2935267344849993553">"Dodaj konto"</string> - <string name="choose_account_text" msgid="6303348737197849675">"Którego konta chcesz użyć?"</string> <string name="add_account_button_label" msgid="3611982894853435874">"Dodaj konto"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"Zwiększ"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"Zmniejsz"</string> @@ -1324,6 +1318,5 @@ <string name="launchBrowserDefault" msgid="2057951947297614725">"Uruchomić przeglądarkę?"</string> <string name="SetupCallDefault" msgid="5834948469253758575">"Odebrać połączenie?"</string> <string name="activity_resolver_use_always" msgid="8017770747801494933">"Zawsze"</string> - <!-- no translation found for activity_resolver_use_once (2404644797149173758) --> - <skip /> + <string name="activity_resolver_use_once" msgid="2404644797149173758">"Tylko raz"</string> </resources> diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml index 38ce3ac..956cadc 100644 --- a/core/res/res/values-pt-rPT/strings.xml +++ b/core/res/res/values-pt-rPT/strings.xml @@ -1239,7 +1239,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"Não fazer nada por agora"</string> <string name="choose_account_label" msgid="5655203089746423927">"Selecionar uma conta"</string> <string name="add_account_label" msgid="2935267344849993553">"Adicionar uma conta"</string> - <string name="choose_account_text" msgid="6303348737197849675">"Que conta pretende utilizar?"</string> <string name="add_account_button_label" msgid="3611982894853435874">"Adicionar conta"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"Aumentar"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"Diminuir"</string> diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml index 2a4855c..e9cf75b 100644 --- a/core/res/res/values-pt/strings.xml +++ b/core/res/res/values-pt/strings.xml @@ -855,12 +855,9 @@ <string name="searchview_description_clear" msgid="1330281990951833033">"Limpar consulta"</string> <string name="searchview_description_submit" msgid="2688450133297983542">"Enviar consulta"</string> <string name="searchview_description_voice" msgid="2453203695674994440">"Pesquisa por voz"</string> - <!-- no translation found for enable_explore_by_touch_warning_title (7460694070309730149) --> - <skip /> - <!-- no translation found for enable_explore_by_touch_warning_message (8655887539089910577) --> - <skip /> - <!-- no translation found for enable_explore_by_touch_warning_message (2708199672852373195) --> - <skip /> + <string name="enable_explore_by_touch_warning_title" msgid="7460694070309730149">"Ativar exploração pelo toque?"</string> + <string name="enable_explore_by_touch_warning_message" product="tablet" msgid="8655887539089910577">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> quer ativar a exploração pelo toque. Com ela, você pode ouvir ou ver descrições do que está sob seu dedo e interagir com o tablet através de gestos."</string> + <string name="enable_explore_by_touch_warning_message" product="default" msgid="2708199672852373195">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> quer ativar a exploração pelo toque. Com ela, você pode ouvir ou ver descrições do que está sob seu dedo e interagir com o telefone através de gestos."</string> <string name="oneMonthDurationPast" msgid="7396384508953779925">"1 mês atrás"</string> <string name="beforeOneMonthDurationPast" msgid="909134546836499826">"Antes de 1 mês atrás"</string> <plurals name="num_seconds_ago"> @@ -1127,10 +1124,8 @@ <string name="configure_input_methods" msgid="9091652157722495116">"Configurar métodos de entrada"</string> <string name="use_physical_keyboard" msgid="6203112478095117625">"Teclado físico"</string> <string name="hardware" msgid="7517821086888990278">"Hardware"</string> - <!-- no translation found for select_keyboard_layout_notification_title (1407367017263030773) --> - <skip /> - <!-- no translation found for select_keyboard_layout_notification_message (4465907700449257063) --> - <skip /> + <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Selecione o layout de teclado"</string> + <string name="select_keyboard_layout_notification_message" msgid="4465907700449257063">"Toque para selecionar um layout de teclado."</string> <string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string> <string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string> <string name="candidates_style" msgid="4333913089637062257"><u>"candidatos"</u></string> @@ -1239,7 +1234,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"Não fazer nada por enquanto"</string> <string name="choose_account_label" msgid="5655203089746423927">"Escolha uma conta"</string> <string name="add_account_label" msgid="2935267344849993553">"Adicionar uma conta"</string> - <string name="choose_account_text" msgid="6303348737197849675">"Qual conta você deseja usar?"</string> <string name="add_account_button_label" msgid="3611982894853435874">"Adicionar conta"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"Aumentar"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"Diminuir"</string> @@ -1324,6 +1318,5 @@ <string name="launchBrowserDefault" msgid="2057951947297614725">"Abrir Navegador?"</string> <string name="SetupCallDefault" msgid="5834948469253758575">"Aceitar chamada?"</string> <string name="activity_resolver_use_always" msgid="8017770747801494933">"Sempre"</string> - <!-- no translation found for activity_resolver_use_once (2404644797149173758) --> - <skip /> + <string name="activity_resolver_use_once" msgid="2404644797149173758">"Só uma vez"</string> </resources> diff --git a/core/res/res/values-rm/strings.xml b/core/res/res/values-rm/strings.xml index 397b095..fdf8159 100644 --- a/core/res/res/values-rm/strings.xml +++ b/core/res/res/values-rm/strings.xml @@ -1915,8 +1915,6 @@ <skip /> <!-- no translation found for add_account_label (2935267344849993553) --> <skip /> - <!-- no translation found for choose_account_text (6303348737197849675) --> - <skip /> <!-- no translation found for add_account_button_label (3611982894853435874) --> <skip /> <!-- no translation found for number_picker_increment_button (2412072272832284313) --> diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml index 52fd28e..32b6f30 100644 --- a/core/res/res/values-ro/strings.xml +++ b/core/res/res/values-ro/strings.xml @@ -1239,7 +1239,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"Nu trebuie să luaţi nicio măsură deocamdată"</string> <string name="choose_account_label" msgid="5655203089746423927">"Alegeţi un cont"</string> <string name="add_account_label" msgid="2935267344849993553">"Adăugaţi un cont"</string> - <string name="choose_account_text" msgid="6303348737197849675">"Ce cont doriţi să utilizaţi?"</string> <string name="add_account_button_label" msgid="3611982894853435874">"Adăugaţi un cont"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"Creşteţi"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"Reduceţi"</string> diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml index 75face4..f846198 100644 --- a/core/res/res/values-ru/strings.xml +++ b/core/res/res/values-ru/strings.xml @@ -855,12 +855,9 @@ <string name="searchview_description_clear" msgid="1330281990951833033">"Удалить запрос"</string> <string name="searchview_description_submit" msgid="2688450133297983542">"Отправить запрос"</string> <string name="searchview_description_voice" msgid="2453203695674994440">"Голосовой поиск"</string> - <!-- no translation found for enable_explore_by_touch_warning_title (7460694070309730149) --> - <skip /> - <!-- no translation found for enable_explore_by_touch_warning_message (8655887539089910577) --> - <skip /> - <!-- no translation found for enable_explore_by_touch_warning_message (2708199672852373195) --> - <skip /> + <string name="enable_explore_by_touch_warning_title" msgid="7460694070309730149">"Включить \"Изучение касанием\"?"</string> + <string name="enable_explore_by_touch_warning_message" product="tablet" msgid="8655887539089910577">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> хочет включить функцию \"Изучение касанием\". Она позволяет прослушивать или просматривать описание элементов, которых вы касаетесь, и управлять планшетным ПК с помощью жестов."</string> + <string name="enable_explore_by_touch_warning_message" product="default" msgid="2708199672852373195">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> хочет включить функцию \"Изучение касанием\". Она позволяет прослушивать или просматривать описание элементов, которых вы касаетесь, и управлять телефоном с помощью жестов."</string> <string name="oneMonthDurationPast" msgid="7396384508953779925">"1 месяц назад"</string> <string name="beforeOneMonthDurationPast" msgid="909134546836499826">"Более месяца назад"</string> <plurals name="num_seconds_ago"> @@ -1127,10 +1124,8 @@ <string name="configure_input_methods" msgid="9091652157722495116">"Настройка способов ввода"</string> <string name="use_physical_keyboard" msgid="6203112478095117625">"Физическая клавиатура"</string> <string name="hardware" msgid="7517821086888990278">"Аппаратура"</string> - <!-- no translation found for select_keyboard_layout_notification_title (1407367017263030773) --> - <skip /> - <!-- no translation found for select_keyboard_layout_notification_message (4465907700449257063) --> - <skip /> + <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Выберите раскладку клавиатуры"</string> + <string name="select_keyboard_layout_notification_message" msgid="4465907700449257063">"Нажмите, чтобы выбрать раскладку клавиатуры."</string> <string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string> <string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string> <string name="candidates_style" msgid="4333913089637062257"><u>"варианты"</u></string> @@ -1239,7 +1234,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"Ничего не делать"</string> <string name="choose_account_label" msgid="5655203089746423927">"Выберите аккаунт"</string> <string name="add_account_label" msgid="2935267344849993553">"Добавить аккаунт"</string> - <string name="choose_account_text" msgid="6303348737197849675">"Выберите аккаунт"</string> <string name="add_account_button_label" msgid="3611982894853435874">"Добавить аккаунт"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"Увеличить"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"Уменьшить"</string> @@ -1324,6 +1318,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 (2404644797149173758) --> - <skip /> + <string name="activity_resolver_use_once" msgid="2404644797149173758">"Только один раз"</string> </resources> diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml index 6f1c5e7..6c5ea32 100644 --- a/core/res/res/values-sk/strings.xml +++ b/core/res/res/values-sk/strings.xml @@ -1239,7 +1239,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"Teraz nič nerobte"</string> <string name="choose_account_label" msgid="5655203089746423927">"Zvoliť účet"</string> <string name="add_account_label" msgid="2935267344849993553">"Pridať účet"</string> - <string name="choose_account_text" msgid="6303348737197849675">"Ktorý účet chcete použiť?"</string> <string name="add_account_button_label" msgid="3611982894853435874">"Pridať účet"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"Zvýšiť"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"Znížiť"</string> diff --git a/core/res/res/values-sl/strings.xml b/core/res/res/values-sl/strings.xml index 2e019d4..049c1d8 100644 --- a/core/res/res/values-sl/strings.xml +++ b/core/res/res/values-sl/strings.xml @@ -1239,7 +1239,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"Za zdaj ne naredi ničesar"</string> <string name="choose_account_label" msgid="5655203089746423927">"Izberite račun"</string> <string name="add_account_label" msgid="2935267344849993553">"Dodajanje računa"</string> - <string name="choose_account_text" msgid="6303348737197849675">"Kateri račun želite uporabiti?"</string> <string name="add_account_button_label" msgid="3611982894853435874">"Dodaj račun"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"Več"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"Manj"</string> diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml index 6f067a1..fa7da01 100644 --- a/core/res/res/values-sr/strings.xml +++ b/core/res/res/values-sr/strings.xml @@ -1239,7 +1239,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"Не ради ништа за сада"</string> <string name="choose_account_label" msgid="5655203089746423927">"Избор налога"</string> <string name="add_account_label" msgid="2935267344849993553">"Додај налог"</string> - <string name="choose_account_text" msgid="6303348737197849675">"Који налог желите да користите?"</string> <string name="add_account_button_label" msgid="3611982894853435874">"Додај налог"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"Повећавање"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"Смањивање"</string> diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml index c9b7e2b..bf7c6b2 100644 --- a/core/res/res/values-sv/strings.xml +++ b/core/res/res/values-sv/strings.xml @@ -855,12 +855,9 @@ <string name="searchview_description_clear" msgid="1330281990951833033">"Ta bort frågan"</string> <string name="searchview_description_submit" msgid="2688450133297983542">"Skicka fråga"</string> <string name="searchview_description_voice" msgid="2453203695674994440">"Röstsökning"</string> - <!-- no translation found for enable_explore_by_touch_warning_title (7460694070309730149) --> - <skip /> - <!-- no translation found for enable_explore_by_touch_warning_message (8655887539089910577) --> - <skip /> - <!-- no translation found for enable_explore_by_touch_warning_message (2708199672852373195) --> - <skip /> + <string name="enable_explore_by_touch_warning_title" msgid="7460694070309730149">"Aktivera Explore by Touch?"</string> + <string name="enable_explore_by_touch_warning_message" product="tablet" msgid="8655887539089910577">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> vill aktivera Explore by Touch. När funktionen är aktiv kan du höra eller se beskrivningar av vad du har under fingret eller utföra gester för att göra saker med pekdatorn."</string> + <string name="enable_explore_by_touch_warning_message" product="default" msgid="2708199672852373195">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> vill aktivera Explore by Touch. När funktionen är aktiv kan du höra eller se beskrivningar av vad du har under fingret eller utföra gester för att göra saker med telefonen."</string> <string name="oneMonthDurationPast" msgid="7396384508953779925">"för 1 månad sedan"</string> <string name="beforeOneMonthDurationPast" msgid="909134546836499826">"För mer än en månad sedan"</string> <plurals name="num_seconds_ago"> @@ -1127,10 +1124,8 @@ <string name="configure_input_methods" msgid="9091652157722495116">"Konfigurera inmatningsmetoder"</string> <string name="use_physical_keyboard" msgid="6203112478095117625">"Fysiskt tangentbord"</string> <string name="hardware" msgid="7517821086888990278">"Maskinvara"</string> - <!-- no translation found for select_keyboard_layout_notification_title (1407367017263030773) --> - <skip /> - <!-- no translation found for select_keyboard_layout_notification_message (4465907700449257063) --> - <skip /> + <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Välj en tangentbordslayout"</string> + <string name="select_keyboard_layout_notification_message" msgid="4465907700449257063">"Välj en tangentbordslayout genom att trycka."</string> <string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string> <string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string> <string name="candidates_style" msgid="4333913089637062257"><u>"kandidater"</u></string> @@ -1239,7 +1234,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"Gör ingenting just nu"</string> <string name="choose_account_label" msgid="5655203089746423927">"Välj ett konto"</string> <string name="add_account_label" msgid="2935267344849993553">"Lägg till ett konto"</string> - <string name="choose_account_text" msgid="6303348737197849675">"Vilket konto vill du använda?"</string> <string name="add_account_button_label" msgid="3611982894853435874">"Lägg till konto"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"Öka"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"Minska"</string> @@ -1324,6 +1318,5 @@ <string name="launchBrowserDefault" msgid="2057951947297614725">"Vill du öppna webbläsaren?"</string> <string name="SetupCallDefault" msgid="5834948469253758575">"Vill du ta emot samtal?"</string> <string name="activity_resolver_use_always" msgid="8017770747801494933">"Alltid"</string> - <!-- no translation found for activity_resolver_use_once (2404644797149173758) --> - <skip /> + <string name="activity_resolver_use_once" msgid="2404644797149173758">"Bara en gång"</string> </resources> diff --git a/core/res/res/values-sw/strings.xml b/core/res/res/values-sw/strings.xml index 35079c5..405c74f 100644 --- a/core/res/res/values-sw/strings.xml +++ b/core/res/res/values-sw/strings.xml @@ -1234,7 +1234,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"Usifanye chochote kwa sasa"</string> <string name="choose_account_label" msgid="5655203089746423927">"Chagua akaunti"</string> <string name="add_account_label" msgid="2935267344849993553">"Ongeza akaunti"</string> - <string name="choose_account_text" msgid="6303348737197849675">"Je, ni akaunti gani unataka kutumia?"</string> <string name="add_account_button_label" msgid="3611982894853435874">"Ongeza akaunti"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"Ongeza"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"Punguza"</string> diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml index 34e4433..a70740d 100644 --- a/core/res/res/values-th/strings.xml +++ b/core/res/res/values-th/strings.xml @@ -1234,7 +1234,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"ไม่ต้องทำอะไรในขณะนี้"</string> <string name="choose_account_label" msgid="5655203089746423927">"เลือกบัญชี"</string> <string name="add_account_label" msgid="2935267344849993553">"เพิ่มบัญชี"</string> - <string name="choose_account_text" msgid="6303348737197849675">"คุณต้องการใช้บัญชีใด"</string> <string name="add_account_button_label" msgid="3611982894853435874">"เพิ่มบัญชี"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"เพิ่ม"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"ลด"</string> diff --git a/core/res/res/values-tl/strings.xml b/core/res/res/values-tl/strings.xml index a659e9e..c64a4a1 100644 --- a/core/res/res/values-tl/strings.xml +++ b/core/res/res/values-tl/strings.xml @@ -855,12 +855,9 @@ <string name="searchview_description_clear" msgid="1330281990951833033">"I-clear ang query"</string> <string name="searchview_description_submit" msgid="2688450133297983542">"Isumite ang query"</string> <string name="searchview_description_voice" msgid="2453203695674994440">"Paghahanap gamit ang boses"</string> - <!-- no translation found for enable_explore_by_touch_warning_title (7460694070309730149) --> - <skip /> - <!-- no translation found for enable_explore_by_touch_warning_message (8655887539089910577) --> - <skip /> - <!-- no translation found for enable_explore_by_touch_warning_message (2708199672852373195) --> - <skip /> + <string name="enable_explore_by_touch_warning_title" msgid="7460694070309730149">"Paganahin ang Galugad sa pagpindot?"</string> + <string name="enable_explore_by_touch_warning_message" product="tablet" msgid="8655887539089910577">"Nais paganahin ng <xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> ang Galugarin sa pamamagitan ng pagpindot. Kapag naka-on ang Galugarin sa pamamagitan ng pagpindot, maaari mong marinig o makita ang mga paglalarawan ng nasa ilalim ng iyong daliri o maaari kang magsagawa ng mga galaw upang makipag-ugnayan sa tablet."</string> + <string name="enable_explore_by_touch_warning_message" product="default" msgid="2708199672852373195">"Nais paganahin ng <xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> ang Galugarin sa pamamagitan ng pagpindot. Kapag naka-on ang Galugarin sa pamamagitan ng pagpindot, maaari mong marinig o makita ang mga paglalarawan ng nasa ilalim ng iyong daliri o maaari kang magsagawa ng mga galaw upang makipag-ugnayan sa telepono."</string> <string name="oneMonthDurationPast" msgid="7396384508953779925">"1 buwan ang nakalipas"</string> <string name="beforeOneMonthDurationPast" msgid="909134546836499826">"Bago ang nakalipas na 1 buwan"</string> <plurals name="num_seconds_ago"> @@ -1127,10 +1124,8 @@ <string name="configure_input_methods" msgid="9091652157722495116">"I-set up paraan ng pag-input"</string> <string name="use_physical_keyboard" msgid="6203112478095117625">"Aktwal na keyboard"</string> <string name="hardware" msgid="7517821086888990278">"Hardware"</string> - <!-- no translation found for select_keyboard_layout_notification_title (1407367017263030773) --> - <skip /> - <!-- no translation found for select_keyboard_layout_notification_message (4465907700449257063) --> - <skip /> + <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Pumili ng layout ng keyboard"</string> + <string name="select_keyboard_layout_notification_message" msgid="4465907700449257063">"Pindutin upang pumili ng layout ng keyboard."</string> <string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string> <string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string> <string name="candidates_style" msgid="4333913089637062257"><u>"mga kandidato"</u></string> @@ -1239,7 +1234,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"Walang gawin sa ngayon"</string> <string name="choose_account_label" msgid="5655203089746423927">"Pumili ng isang account"</string> <string name="add_account_label" msgid="2935267344849993553">"Magdagdag ng account"</string> - <string name="choose_account_text" msgid="6303348737197849675">"Aling account ang nais mong gamitin?"</string> <string name="add_account_button_label" msgid="3611982894853435874">"Magdagdag ng account"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"Dagdagan"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"Bawasan"</string> @@ -1324,6 +1318,5 @@ <string name="launchBrowserDefault" msgid="2057951947297614725">"Ilunsad ang Browser?"</string> <string name="SetupCallDefault" msgid="5834948469253758575">"Tanggapin ang tawag?"</string> <string name="activity_resolver_use_always" msgid="8017770747801494933">"Palagi"</string> - <!-- no translation found for activity_resolver_use_once (2404644797149173758) --> - <skip /> + <string name="activity_resolver_use_once" msgid="2404644797149173758">"Isang beses lang"</string> </resources> diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml index c9ee115..f2430c2 100644 --- a/core/res/res/values-tr/strings.xml +++ b/core/res/res/values-tr/strings.xml @@ -1239,7 +1239,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"Şimdilik bir şey yapma"</string> <string name="choose_account_label" msgid="5655203089746423927">"Bir hesap seçin"</string> <string name="add_account_label" msgid="2935267344849993553">"Hesap ekleyin"</string> - <string name="choose_account_text" msgid="6303348737197849675">"Hangi hesabı kullanmak istiyorsunuz?"</string> <string name="add_account_button_label" msgid="3611982894853435874">"Hesap ekle"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"Artır"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"Azalt"</string> diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml index 5d06934..207ea06 100644 --- a/core/res/res/values-uk/strings.xml +++ b/core/res/res/values-uk/strings.xml @@ -855,12 +855,9 @@ <string name="searchview_description_clear" msgid="1330281990951833033">"Очистити запит"</string> <string name="searchview_description_submit" msgid="2688450133297983542">"Наіслати запит"</string> <string name="searchview_description_voice" msgid="2453203695674994440">"Голосовий пошук"</string> - <!-- no translation found for enable_explore_by_touch_warning_title (7460694070309730149) --> - <skip /> - <!-- no translation found for enable_explore_by_touch_warning_message (8655887539089910577) --> - <skip /> - <!-- no translation found for enable_explore_by_touch_warning_message (2708199672852373195) --> - <skip /> + <string name="enable_explore_by_touch_warning_title" msgid="7460694070309730149">"Увімкнути дослідження дотиком?"</string> + <string name="enable_explore_by_touch_warning_message" product="tablet" msgid="8655887539089910577">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> хоче ввімкнути функцію дослідження дотиком. Увімкнувши функцію дослідження дотиком, можна чути або бачити опис елемента, розташованого під вашим пальцем, або виконувати жести для взаємодії з планшетним ПК."</string> + <string name="enable_explore_by_touch_warning_message" product="default" msgid="2708199672852373195">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> хоче ввімкнути функцію дослідження дотиком. Увімкнувши функцію дослідження дотиком, можна чути або бачити опис елемента, розташованого під вашим пальцем, або виконувати жести для взаємодії з телефоном."</string> <string name="oneMonthDurationPast" msgid="7396384508953779925">"1 міс. тому"</string> <string name="beforeOneMonthDurationPast" msgid="909134546836499826">"Раніше 1 місяця тому"</string> <plurals name="num_seconds_ago"> @@ -1127,10 +1124,8 @@ <string name="configure_input_methods" msgid="9091652157722495116">"Налаштувати методи введення"</string> <string name="use_physical_keyboard" msgid="6203112478095117625">"Фізична клавіатура"</string> <string name="hardware" msgid="7517821086888990278">"Обладнання"</string> - <!-- no translation found for select_keyboard_layout_notification_title (1407367017263030773) --> - <skip /> - <!-- no translation found for select_keyboard_layout_notification_message (4465907700449257063) --> - <skip /> + <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Виберіть розкладку клавіатури"</string> + <string name="select_keyboard_layout_notification_message" msgid="4465907700449257063">"Торкніться, щоб вибрати розкладку клавіатури."</string> <string name="fast_scroll_alphabet" msgid="5433275485499039199">" АБВГҐДЕЄЖЗИІЇЙКЛМНОПРСТУФХЦЧШЩЬЮЯ"</string> <string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789АБВГҐДЕЄЖЗИІЇЙКЛМНОПРСТУФХЦЧШЩЬЮЯ"</string> <string name="candidates_style" msgid="4333913089637062257"><u>"кандидати"</u></string> @@ -1239,7 +1234,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"Наразі нічого не робити"</string> <string name="choose_account_label" msgid="5655203089746423927">"Вибрати обліковий запис"</string> <string name="add_account_label" msgid="2935267344849993553">"Додати обліковий запис"</string> - <string name="choose_account_text" msgid="6303348737197849675">"Який обліковий запис використовувати?"</string> <string name="add_account_button_label" msgid="3611982894853435874">"Додати облік. запис"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"Збільшити"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"Зменшити"</string> @@ -1324,6 +1318,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 (2404644797149173758) --> - <skip /> + <string name="activity_resolver_use_once" msgid="2404644797149173758">"Лише цього разу"</string> </resources> diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml index cce563a..c6f2971 100644 --- a/core/res/res/values-vi/strings.xml +++ b/core/res/res/values-vi/strings.xml @@ -855,12 +855,9 @@ <string name="searchview_description_clear" msgid="1330281990951833033">"Xóa truy vấn"</string> <string name="searchview_description_submit" msgid="2688450133297983542">"Gửi truy vấn"</string> <string name="searchview_description_voice" msgid="2453203695674994440">"Tìm kiếm bằng giọng nói"</string> - <!-- no translation found for enable_explore_by_touch_warning_title (7460694070309730149) --> - <skip /> - <!-- no translation found for enable_explore_by_touch_warning_message (8655887539089910577) --> - <skip /> - <!-- no translation found for enable_explore_by_touch_warning_message (2708199672852373195) --> - <skip /> + <string name="enable_explore_by_touch_warning_title" msgid="7460694070309730149">"Bật Khám phá bằng cách chạm?"</string> + <string name="enable_explore_by_touch_warning_message" product="tablet" msgid="8655887539089910577">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> muốn bật Khám phá bằng cách chạm. Khi Khám phá bằng cách chạm được bật, bạn có thể nghe hoặc xem mô tả dưới ngón tay bạn hoặc thực hiện cử chỉ để tương tác với máy tính bảng."</string> + <string name="enable_explore_by_touch_warning_message" product="default" msgid="2708199672852373195">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> muốn bật Khám phá bằng cách chạm. Khi Khám phá bằng cách chạm được bật, bạn có thể nghe hoặc xem mô tả dưới ngón tay bạn hoặc thực hiện cử chỉ để tương tác với điện thoại."</string> <string name="oneMonthDurationPast" msgid="7396384508953779925">"1 tháng trước"</string> <string name="beforeOneMonthDurationPast" msgid="909134546836499826">"Trước 1 tháng trước"</string> <plurals name="num_seconds_ago"> @@ -1127,10 +1124,8 @@ <string name="configure_input_methods" msgid="9091652157722495116">"Thiết lập phương thức nhập"</string> <string name="use_physical_keyboard" msgid="6203112478095117625">"Bàn phím thực"</string> <string name="hardware" msgid="7517821086888990278">"Phần cứng"</string> - <!-- no translation found for select_keyboard_layout_notification_title (1407367017263030773) --> - <skip /> - <!-- no translation found for select_keyboard_layout_notification_message (4465907700449257063) --> - <skip /> + <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Chọn bố cục bàn phím"</string> + <string name="select_keyboard_layout_notification_message" msgid="4465907700449257063">"Chạm để chọn bố cục bàn phím."</string> <string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string> <string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string> <string name="candidates_style" msgid="4333913089637062257"><u>"ứng viên"</u></string> @@ -1239,7 +1234,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"Không thực hiện tác vụ nào bây giờ"</string> <string name="choose_account_label" msgid="5655203089746423927">"Chọn tài khoản"</string> <string name="add_account_label" msgid="2935267344849993553">"Thêm tài khoản"</string> - <string name="choose_account_text" msgid="6303348737197849675">"Bạn muốn sử dụng tài khoản nào?"</string> <string name="add_account_button_label" msgid="3611982894853435874">"Thêm tài khoản"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"Tăng"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"Giảm"</string> @@ -1324,6 +1318,5 @@ <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> <string name="activity_resolver_use_always" msgid="8017770747801494933">"Luôn chọn"</string> - <!-- no translation found for activity_resolver_use_once (2404644797149173758) --> - <skip /> + <string name="activity_resolver_use_once" msgid="2404644797149173758">"Chỉ một lần"</string> </resources> diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml index 865761b..0187159 100644 --- a/core/res/res/values-zh-rCN/strings.xml +++ b/core/res/res/values-zh-rCN/strings.xml @@ -855,12 +855,9 @@ <string name="searchview_description_clear" msgid="1330281990951833033">"清除查询"</string> <string name="searchview_description_submit" msgid="2688450133297983542">"提交查询"</string> <string name="searchview_description_voice" msgid="2453203695674994440">"语音搜索"</string> - <!-- no translation found for enable_explore_by_touch_warning_title (7460694070309730149) --> - <skip /> - <!-- no translation found for enable_explore_by_touch_warning_message (8655887539089910577) --> - <skip /> - <!-- no translation found for enable_explore_by_touch_warning_message (2708199672852373195) --> - <skip /> + <string name="enable_explore_by_touch_warning_title" msgid="7460694070309730149">"是否启用“触摸浏览”?"</string> + <string name="enable_explore_by_touch_warning_message" product="tablet" msgid="8655887539089910577">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g>想要启用“触摸浏览”。“触摸浏览”启用后,您可以听到或看到触摸内容的说明,或通过手指操作与平板电脑互动。"</string> + <string name="enable_explore_by_touch_warning_message" product="default" msgid="2708199672852373195">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g>想要启用“触摸浏览”。“触摸浏览”启用后,您可以听到或看到触摸内容的说明,或通过手指操作与手机互动。"</string> <string name="oneMonthDurationPast" msgid="7396384508953779925">"1 个月前"</string> <string name="beforeOneMonthDurationPast" msgid="909134546836499826">"1 个月前"</string> <plurals name="num_seconds_ago"> @@ -1127,10 +1124,8 @@ <string name="configure_input_methods" msgid="9091652157722495116">"设置输入法"</string> <string name="use_physical_keyboard" msgid="6203112478095117625">"物理键盘"</string> <string name="hardware" msgid="7517821086888990278">"硬件"</string> - <!-- no translation found for select_keyboard_layout_notification_title (1407367017263030773) --> - <skip /> - <!-- no translation found for select_keyboard_layout_notification_message (4465907700449257063) --> - <skip /> + <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"选择键盘布局"</string> + <string name="select_keyboard_layout_notification_message" msgid="4465907700449257063">"触摸以选择键盘布局。"</string> <string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string> <string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string> <string name="candidates_style" msgid="4333913089637062257"><u>"候选"</u></string> @@ -1239,7 +1234,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"目前不进行任何操作"</string> <string name="choose_account_label" msgid="5655203089746423927">"选择帐户"</string> <string name="add_account_label" msgid="2935267344849993553">"添加帐户"</string> - <string name="choose_account_text" msgid="6303348737197849675">"您要使用哪个帐户?"</string> <string name="add_account_button_label" msgid="3611982894853435874">"添加帐户"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"增大"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"减小"</string> @@ -1324,6 +1318,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 (2404644797149173758) --> - <skip /> + <string name="activity_resolver_use_once" msgid="2404644797149173758">"仅一次"</string> </resources> diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml index 95b3fa3..2c6a4ed 100644 --- a/core/res/res/values-zh-rTW/strings.xml +++ b/core/res/res/values-zh-rTW/strings.xml @@ -1239,7 +1239,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"暫不執行"</string> <string name="choose_account_label" msgid="5655203089746423927">"選擇帳戶"</string> <string name="add_account_label" msgid="2935267344849993553">"新增帳戶"</string> - <string name="choose_account_text" msgid="6303348737197849675">"您要使用哪個帳戶?"</string> <string name="add_account_button_label" msgid="3611982894853435874">"新增帳戶"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"增加"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"減少"</string> diff --git a/core/res/res/values-zu/strings.xml b/core/res/res/values-zu/strings.xml index 0c7d269..c979aec 100644 --- a/core/res/res/values-zu/strings.xml +++ b/core/res/res/values-zu/strings.xml @@ -855,12 +855,9 @@ <string name="searchview_description_clear" msgid="1330281990951833033">"xazulula umbuzo"</string> <string name="searchview_description_submit" msgid="2688450133297983542">"Thumela umbuzo"</string> <string name="searchview_description_voice" msgid="2453203695674994440">"Ukusesha ngezwi"</string> - <!-- no translation found for enable_explore_by_touch_warning_title (7460694070309730149) --> - <skip /> - <!-- no translation found for enable_explore_by_touch_warning_message (8655887539089910577) --> - <skip /> - <!-- no translation found for enable_explore_by_touch_warning_message (2708199672852373195) --> - <skip /> + <string name="enable_explore_by_touch_warning_title" msgid="7460694070309730149">"Nika amandla i-Explore by Touch?"</string> + <string name="enable_explore_by_touch_warning_message" product="tablet" msgid="8655887539089910577">"I-<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> ifuna ukunika amandla i-Explore by Touch. Uma i-Explore by Touch ikhanya, ungezwa noma ubone izincazelo ezingaphansi komunwe wakho noma wenze izenzo zomzimba ukuze uxhumane nethebhulethi."</string> + <string name="enable_explore_by_touch_warning_message" product="default" msgid="2708199672852373195">"I-<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> ifuna ukunika amandla i-Explore by Touch. Uma i-Explore by Touch ikhanya, ungezwa noma ubone izincazelo ezingaphansi komunwe wakho noma wenze izenzo zomzimba ukuze uxhumane nefoni."</string> <string name="oneMonthDurationPast" msgid="7396384508953779925">"inyanga engu-1 edlule"</string> <string name="beforeOneMonthDurationPast" msgid="909134546836499826">"Ngaphambi kwenyanga engu-1 edlule"</string> <plurals name="num_seconds_ago"> @@ -1127,10 +1124,8 @@ <string name="configure_input_methods" msgid="9091652157722495116">"Izilungiselelo zezindlela zokufakwayo"</string> <string name="use_physical_keyboard" msgid="6203112478095117625">"Ukwakheka kwekhibhodi"</string> <string name="hardware" msgid="7517821086888990278">"I-Hardware"</string> - <!-- no translation found for select_keyboard_layout_notification_title (1407367017263030773) --> - <skip /> - <!-- no translation found for select_keyboard_layout_notification_message (4465907700449257063) --> - <skip /> + <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Khetha isendlalelo sekhibhodi"</string> + <string name="select_keyboard_layout_notification_message" msgid="4465907700449257063">"Thinta ukuze ukhethe isendlalelo sekhibhodi."</string> <string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string> <string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string> <string name="candidates_style" msgid="4333913089637062257"><u>"abahlanganyeli"</u></string> @@ -1239,7 +1234,6 @@ <string name="sync_do_nothing" msgid="3743764740430821845">"Ungenzi lutho okwamanje."</string> <string name="choose_account_label" msgid="5655203089746423927">"Khetha i-akhawunti"</string> <string name="add_account_label" msgid="2935267344849993553">"Yengeza i-akhawunti"</string> - <string name="choose_account_text" msgid="6303348737197849675">"Ingabe iyiphi i-akhawunti ofuna ukuyisebenzisa?"</string> <string name="add_account_button_label" msgid="3611982894853435874">"Engeza i-akhawunti"</string> <string name="number_picker_increment_button" msgid="2412072272832284313">"Khulisa"</string> <string name="number_picker_decrement_button" msgid="476050778386779067">"Yehlisa"</string> @@ -1324,6 +1318,5 @@ <string name="launchBrowserDefault" msgid="2057951947297614725">"Qala Isiphequluli?"</string> <string name="SetupCallDefault" msgid="5834948469253758575">"Amukela ucingo?"</string> <string name="activity_resolver_use_always" msgid="8017770747801494933">"Njalo"</string> - <!-- no translation found for activity_resolver_use_once (2404644797149173758) --> - <skip /> + <string name="activity_resolver_use_once" msgid="2404644797149173758">"Kanje nje"</string> </resources> diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml index 4cfbff5..bf9fe42 100644 --- a/core/res/res/values/public.xml +++ b/core/res/res/values/public.xml @@ -28,7 +28,6 @@ this. --> <java-symbol type="id" name="account_name" /> - <java-symbol type="id" name="account_row_checkmark" /> <java-symbol type="id" name="account_row_icon" /> <java-symbol type="id" name="account_row_text" /> <java-symbol type="id" name="account_type" /> @@ -41,7 +40,6 @@ <java-symbol type="id" name="action_menu_presenter" /> <java-symbol type="id" name="action_mode_close_button" /> <java-symbol type="id" name="activity_chooser_view_content" /> - <java-symbol type="id" name="addAccount" /> <java-symbol type="id" name="albumart" /> <java-symbol type="id" name="alertTitle" /> <java-symbol type="id" name="allow_button" /> @@ -122,7 +120,6 @@ <java-symbol type="id" name="old_app_action" /> <java-symbol type="id" name="old_app_description" /> <java-symbol type="id" name="old_app_icon" /> - <java-symbol type="id" name="overflow_title" /> <java-symbol type="id" name="package_label" /> <java-symbol type="id" name="packages_list" /> <java-symbol type="id" name="pause" /> @@ -212,6 +209,8 @@ <java-symbol type="id" name="inbox_text6" /> <java-symbol type="id" name="inbox_more" /> <java-symbol type="id" name="status_bar_latest_event_content" /> + <java-symbol type="id" name="action_divider" /> + <java-symbol type="id" name="overflow_divider" /> <java-symbol type="attr" name="actionModeShareDrawable" /> <java-symbol type="attr" name="alertDialogCenterButtons" /> @@ -301,6 +300,7 @@ <java-symbol type="dimen" name="notification_title_text_size" /> <java-symbol type="dimen" name="notification_subtext_size" /> + <java-symbol type="string" name="add_account_button_label" /> <java-symbol type="string" name="addToDictionary" /> <java-symbol type="string" name="action_bar_home_description" /> <java-symbol type="string" name="action_bar_up_description" /> @@ -1027,7 +1027,6 @@ <java-symbol type="layout" name="choose_account" /> <java-symbol type="layout" name="choose_account_row" /> <java-symbol type="layout" name="choose_account_type" /> - <java-symbol type="layout" name="choose_selected_account_row" /> <java-symbol type="layout" name="choose_type_and_account" /> <java-symbol type="layout" name="grant_credentials_permission" /> <java-symbol type="layout" name="number_picker" /> diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml index 5929439..2b966f6 100755 --- a/core/res/res/values/strings.xml +++ b/core/res/res/values/strings.xml @@ -2505,7 +2505,7 @@ <!-- Title for a warning message about the interaction model changes after allowing an accessibility service to put the device into explore by touch mode, displayed as a dialog message when - the user selects to enables the service. (default). [CHAR LIMIT=35] --> + the user selects to enables the service. (default). [CHAR LIMIT=45] --> <string name="enable_explore_by_touch_warning_title">Enable Explore by Touch?</string> <!-- Summary for a warning message about the interaction model changes after allowing an accessibility service to put the device into explore by touch mode, displayed as a dialog message when @@ -3382,9 +3382,8 @@ <string name="choose_account_label">Choose an account</string> <string name="add_account_label">"Add an account"</string> - <string name="choose_account_text">"Which account do you want to use?"</string> - <!-- Button label to add an account [CHAR LIMIT=20] --> + <!-- List item to add an account [CHAR LIMIT=20] --> <string name="add_account_button_label">Add account</string> <!-- NumberPicker - accessibility support --> diff --git a/core/res/res/values/styles.xml b/core/res/res/values/styles.xml index a54cdf1..223d17a 100644 --- a/core/res/res/values/styles.xml +++ b/core/res/res/values/styles.xml @@ -239,7 +239,7 @@ please see styles_device_defaults.xml. </style> <!-- Notification content styles --> <style name="TextAppearance.StatusBar.EventContent"> - <item name="android:textColor">#808080</item> + <item name="android:textColor">#999999</item> <item name="android:textSize">@dimen/notification_text_size</item> </style> <style name="TextAppearance.StatusBar.EventContent.Title"> @@ -253,11 +253,14 @@ please see styles_device_defaults.xml. </style> <style name="TextAppearance.StatusBar.EventContent.Info"> <item name="android:textSize">@dimen/notification_subtext_size</item> - <item name="android:textColor">#666666</item> + <item name="android:textColor">#999999</item> </style> <style name="TextAppearance.StatusBar.EventContent.Time"> <item name="android:textSize">@dimen/notification_subtext_size</item> - <item name="android:textColor">#666666</item> + <item name="android:textColor">#999999</item> + </style> + <style name="TextAppearance.StatusBar.EventContent.Emphasis"> + <item name="android:textColor">#CCCCCC</item> </style> <style name="TextAppearance.Small.CalendarViewWeekDayView"> |
