diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2021-11-18 21:59:03 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2021-11-18 21:59:03 +0000 |
commit | 92bd79604d5e6c3cceb0a93361161c898c83c58a (patch) | |
tree | b0ea6f51c49ede77ae6343f0a61ec0ce08782933 | |
parent | 72eb7f58a212c72cb1308ae6842f31c0e51d2f69 (diff) | |
parent | dbb0c7d9ed74e6789407b2021e911cd3d5d42845 (diff) | |
download | ContactsProvider-android12-mainline-adbd-release.tar.gz |
Snap for 7929046 from dbb0c7d9ed74e6789407b2021e911cd3d5d42845 to mainline-adbd-releaseandroid-mainline-12.0.0_r97android-mainline-12.0.0_r85android-mainline-12.0.0_r68android-mainline-12.0.0_r41android12-mainline-adbd-release
Change-Id: Iace4176fa4e8789db12b3423525ae92b4298af6c
-rw-r--r-- | res/values-as/strings.xml | 6 | ||||
-rw-r--r-- | res/values-hi/strings.xml | 2 | ||||
-rw-r--r-- | res/values-ta/strings.xml | 2 | ||||
-rw-r--r-- | res/values-te/strings.xml | 18 | ||||
-rw-r--r-- | src/com/android/providers/contacts/ContactsProvider2.java | 56 | ||||
-rw-r--r-- | src/com/android/providers/contacts/util/LogFields.java | 13 | ||||
-rw-r--r-- | src/com/android/providers/contacts/util/LogUtils.java | 11 |
7 files changed, 83 insertions, 25 deletions
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml index 1576ba24..9a6ddf15 100644 --- a/res/values-as/strings.xml +++ b/res/values-as/strings.xml @@ -17,16 +17,16 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="sharedUserLabel" msgid="8024311725474286801">"Android Core এপসমূহ"</string> - <string name="app_label" msgid="3389954322874982620">"সম্পৰ্কসমূহৰ সঞ্চয়াগাৰ"</string> + <string name="app_label" msgid="3389954322874982620">"সম্পৰ্কসমূহৰ ষ্ট’ৰেজ"</string> <string name="provider_label" msgid="6012150850819899907">"সম্পর্কবোৰ"</string> <string name="upgrade_out_of_memory_notification_ticker" msgid="7638747231223520477">"সম্পৰ্কসূচী আপগ্ৰেড কৰিবলৈ অধিক মেম\'ৰিৰ প্ৰয়োজন।"</string> - <string name="upgrade_out_of_memory_notification_title" msgid="8888171924684998531">"সম্পৰ্কসূচীৰ বাবে সঞ্চয়াগাৰ আপগ্ৰেড কৰিথকা হৈছে"</string> + <string name="upgrade_out_of_memory_notification_title" msgid="8888171924684998531">"সম্পৰ্কসূচীৰ বাবে ষ্ট’ৰেজ আপগ্ৰেড কৰি থকা হৈছে"</string> <string name="upgrade_out_of_memory_notification_text" msgid="2581831842693151968">"আপগ্ৰেড প্ৰক্ৰিয়া সম্পূৰ্ণ কৰিবলৈ টিপক।"</string> <string name="default_directory" msgid="93961630309570294">"সম্পর্কসূচী"</string> <string name="local_invisible_directory" msgid="705244318477396120">"অন্যান্য"</string> <string name="voicemail_from_column" msgid="435732568832121444">"ইয়াৰ পৰা অহা ভইচমেল "</string> <string name="debug_dump_title" msgid="4916885724165570279">"সম্পৰ্কসূচীৰ ডেটাবেছ প্ৰতিলিপি কৰক"</string> - <string name="debug_dump_database_message" msgid="406438635002392290">"আপুনি এই কাৰ্যবোৰ কৰিবলৈ লৈছে ১) সকলো সম্পৰ্ক সম্বন্ধীয় তথ্য় আৰু কল লগ সন্নিবিষ্ট থকা আপোনাৰ ডেটাবেছক আভ্য়ন্তৰীণ সঞ্চয়াগাৰলৈ প্ৰতিলিপি কৰা আৰু ২) ইয়াক ইমেইল কৰা। ডিভাইচৰ পৰা সফলতাৰে প্ৰতিলিপি কৰাৰ বা ইমেইল পোৱাৰ পিছত উক্ত প্ৰতিলিপি মচিবলৈ নাপাহৰিব।"</string> + <string name="debug_dump_database_message" msgid="406438635002392290">"আপুনি এই কাৰ্যবোৰ কৰিবলৈ লৈছে ১) আটাইবোৰ সম্পৰ্ক সম্বন্ধীয় তথ্য় আৰু কল লগ সন্নিবিষ্ট থকা আপোনাৰ ডেটাবেছক আভ্য়ন্তৰীণ ষ্ট’ৰেজলৈ প্ৰতিলিপি কৰা আৰু ২) ইয়াক ইমেইল কৰা। ডিভাইচৰ পৰা সফলতাৰে প্ৰতিলিপি কৰাৰ বা ইমেইল পোৱাৰ পিছত উক্ত প্ৰতিলিপি মচিবলৈ নাপাহৰিব।"</string> <string name="debug_dump_delete_button" msgid="7832879421132026435">"এতিয়াই মচক"</string> <string name="debug_dump_start_button" msgid="2837506913757600001">"আৰম্ভ কৰক"</string> <string name="debug_dump_email_sender_picker" msgid="3534420908672176460">"আপোনাৰ ফাইল পঠাবলৈ কোনো প্ৰ\'গ্ৰাম বাছনি কৰক"</string> diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml index 478e5ce5..8ce3b7d0 100644 --- a/res/values-hi/strings.xml +++ b/res/values-hi/strings.xml @@ -19,7 +19,7 @@ <string name="sharedUserLabel" msgid="8024311725474286801">"Android Core Apps"</string> <string name="app_label" msgid="3389954322874982620">"संपर्क मेमोरी"</string> <string name="provider_label" msgid="6012150850819899907">"संपर्क"</string> - <string name="upgrade_out_of_memory_notification_ticker" msgid="7638747231223520477">"संपर्क अपग्रेड के लिए ज़्यादा मेमोरी की आवश्यकता होती है."</string> + <string name="upgrade_out_of_memory_notification_ticker" msgid="7638747231223520477">"संपर्क अपग्रेड के लिए ज़्यादा स्टोरेज की आवश्यकता होती है."</string> <string name="upgrade_out_of_memory_notification_title" msgid="8888171924684998531">"संपर्कों के लिए मेमोरी अपग्रेड करना"</string> <string name="upgrade_out_of_memory_notification_text" msgid="2581831842693151968">"अपग्रेड पूरा करने के लिए टैप करें."</string> <string name="default_directory" msgid="93961630309570294">"संपर्क"</string> diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml index c6e25390..4b7bd769 100644 --- a/res/values-ta/strings.xml +++ b/res/values-ta/strings.xml @@ -29,7 +29,7 @@ <string name="debug_dump_database_message" msgid="406438635002392290">"நீங்கள் செய்யக்கூடியவை 1) தொடர்புகள் தொடர்பான எல்லா தகவலும், அழைப்பின் எல்லா பதிவையும் உள்ளடக்கும் உங்கள் தரவுத்தளத்தை அகச் சேமிப்பிடத்தில் நகலெடுக்கலாம், பின்னர் 2) அதை மின்னஞ்சல் செய்யலாம். அதைச் சாதனத்திலிருந்து வெற்றிகரமாக நகலெடுத்தவுடன் அல்லது மின்னஞ்சலைப் பெற்றவுடன் அதன் நகலை மறக்காமல் நீக்கிவிடவும் செய்யலாம்."</string> <string name="debug_dump_delete_button" msgid="7832879421132026435">"இப்போதே நீக்கு"</string> <string name="debug_dump_start_button" msgid="2837506913757600001">"தொடங்கு"</string> - <string name="debug_dump_email_sender_picker" msgid="3534420908672176460">"உங்கள் கோப்பை அனுப்ப நிரலைத் தேர்வுசெய்யவும்"</string> + <string name="debug_dump_email_sender_picker" msgid="3534420908672176460">"உங்கள் ஃபைலை அனுப்ப நிரலைத் தேர்வுசெய்யவும்"</string> <string name="debug_dump_email_subject" msgid="108188398416385976">"தொடர்புகளின் Db இணைக்கப்பட்டுள்ளது"</string> <string name="debug_dump_email_body" msgid="4577749800871444318">"இணைப்பில் எனது எல்லா தொடர்புகளின் தகவல் உள்ள எனது தொடர்புகளின் தரவுத்தளம் உள்ளது. அதைக் கவனமாக கையாளவும்."</string> </resources> diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml index bb60c01f..2b6fa1aa 100644 --- a/res/values-te/strings.xml +++ b/res/values-te/strings.xml @@ -17,19 +17,19 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="sharedUserLabel" msgid="8024311725474286801">"Android ప్రధాన యాప్లు"</string> - <string name="app_label" msgid="3389954322874982620">"పరిచయాల నిల్వ"</string> - <string name="provider_label" msgid="6012150850819899907">"పరిచయాలు"</string> - <string name="upgrade_out_of_memory_notification_ticker" msgid="7638747231223520477">"పరిచయాల అప్గ్రేడ్కు మరింత మెమరీ అవసరం."</string> - <string name="upgrade_out_of_memory_notification_title" msgid="8888171924684998531">"పరిచయాల కోసం నిల్వను అప్గ్రేడ్ చేస్తోంది"</string> + <string name="app_label" msgid="3389954322874982620">"కాంటాక్ట్ల స్టోరేజ్"</string> + <string name="provider_label" msgid="6012150850819899907">"కాంటాక్ట్లు"</string> + <string name="upgrade_out_of_memory_notification_ticker" msgid="7638747231223520477">"కాంటాక్ట్ల అప్గ్రేడ్కు మరింత మెమరీ అవసరం."</string> + <string name="upgrade_out_of_memory_notification_title" msgid="8888171924684998531">"కాంటాక్ట్ల కోసం స్టోరేజ్ను అప్గ్రేడ్ చేస్తోంది"</string> <string name="upgrade_out_of_memory_notification_text" msgid="2581831842693151968">"అప్గ్రేడ్ను పూర్తి చేయడానికి నొక్కండి."</string> - <string name="default_directory" msgid="93961630309570294">"పరిచయాలు"</string> + <string name="default_directory" msgid="93961630309570294">"కాంటాక్ట్లు"</string> <string name="local_invisible_directory" msgid="705244318477396120">"ఇతరం"</string> <string name="voicemail_from_column" msgid="435732568832121444">"దీని నుండి వాయిస్ మెయిల్ "</string> - <string name="debug_dump_title" msgid="4916885724165570279">"పరిచయాల డేటాబేస్ను కాపీ చేయి"</string> - <string name="debug_dump_database_message" msgid="406438635002392290">"మీరు 1) అన్ని పరిచయాలకు సంబంధించిన సమాచారాన్ని మరియు మొత్తం కాల్ లాగ్ను కలిగి ఉండే మీ డేటాబేస్ యొక్క నకలును అంతర్గత నిల్వలో రూపొందించి 2) దాన్ని ఇమెయిల్ చేయబోతున్నారు. మీరు దాన్ని పరికరం నుండి విజయవంతంగా కాపీ చేసిన తర్వాత లేదా ఇమెయిల్ను స్వీకరించిన తర్వాత కాపీని తొలగించడం మర్చిపోవద్దు."</string> + <string name="debug_dump_title" msgid="4916885724165570279">"కాంటాక్ట్ల డేటాబేస్ను కాపీ చేయండి"</string> + <string name="debug_dump_database_message" msgid="406438635002392290">"మీరు 1) అన్ని కాంటాక్ట్లకు సంబంధించిన సమాచారాన్ని మరియు మొత్తం కాల్ లాగ్ను కలిగి ఉండే మీ డేటాబేస్ యొక్క కాపీని అంతర్గత స్టోరేజ్లో రూపొందించి 2) దాన్ని ఈమెయిల్ చేయబోతున్నారు. మీరు దాన్ని పరికరం నుండి విజయవంతంగా కాపీ చేసిన తర్వాత లేదా ఈమెయిల్ను స్వీకరించిన తర్వాత కాపీని తొలగించడం మర్చిపోవద్దు."</string> <string name="debug_dump_delete_button" msgid="7832879421132026435">"ఇప్పుడే తొలగించు"</string> <string name="debug_dump_start_button" msgid="2837506913757600001">"ప్రారంభించు"</string> <string name="debug_dump_email_sender_picker" msgid="3534420908672176460">"మీ పైల్ను పంపడానికి ప్రోగ్రామ్ను ఎంచుకోండి"</string> - <string name="debug_dump_email_subject" msgid="108188398416385976">"పరిచయాల Db జోడించబడింది"</string> - <string name="debug_dump_email_body" msgid="4577749800871444318">"జోడింపు నా అన్ని పరిచయాల సమాచారాన్ని కలిగి ఉన్న నా పరిచయాల డేటాబేస్. జాగ్రత్తగా వ్యవహరించండి."</string> + <string name="debug_dump_email_subject" msgid="108188398416385976">"కాంటాక్ట్ల Db జోడించబడింది"</string> + <string name="debug_dump_email_body" msgid="4577749800871444318">"జోడింపు నా అన్ని కాంటాక్ట్ల సమాచారాన్ని కలిగి ఉన్న నా కాంటాక్ట్ల డేటాబేస్. జాగ్రత్తగా వ్యవహరించండి."</string> </resources> diff --git a/src/com/android/providers/contacts/ContactsProvider2.java b/src/com/android/providers/contacts/ContactsProvider2.java index 4b2b37ae..0c6e8192 100644 --- a/src/com/android/providers/contacts/ContactsProvider2.java +++ b/src/com/android/providers/contacts/ContactsProvider2.java @@ -20,7 +20,6 @@ import static android.Manifest.permission.INTERACT_ACROSS_USERS; import static android.Manifest.permission.INTERACT_ACROSS_USERS_FULL; import static android.content.pm.PackageManager.PERMISSION_GRANTED; -import android.os.Looper; import android.accounts.Account; import android.accounts.AccountManager; import android.accounts.OnAccountsUpdateListener; @@ -65,6 +64,7 @@ import android.os.Build; import android.os.Bundle; import android.os.CancellationSignal; import android.os.Handler; +import android.os.Looper; import android.os.ParcelFileDescriptor; import android.os.ParcelFileDescriptor.AutoCloseInputStream; import android.os.RemoteException; @@ -126,7 +126,6 @@ import android.util.Log; import com.android.common.content.ProjectionMap; import com.android.common.content.SyncStateContentProviderHelper; import com.android.common.io.MoreCloseables; -import com.android.i18n.phonenumbers.Phonenumber; import com.android.internal.util.ArrayUtils; import com.android.providers.contacts.ContactLookupKey.LookupKeySegment; import com.android.providers.contacts.ContactsDatabaseHelper.AccountsColumns; @@ -2273,6 +2272,10 @@ public class ContactsProvider2 extends AbstractContactsProvider @Override public Bundle call(String method, String arg, Bundle extras) { + LogFields.Builder logBuilder = + LogFields.Builder.aLogFields() + .setApiType(LogUtils.ApiType.CALL) + .setStartNanos(SystemClock.elapsedRealtimeNanos()); waitForAccess(mReadAccessLatch); switchToContactMode(); if (Authorization.AUTHORIZATION_METHOD.equals(method)) { @@ -2313,34 +2316,54 @@ public class ContactsProvider2 extends AbstractContactsProvider throw new IllegalArgumentException("Account name or type is empty"); } + long resultId = -1; final Bundle response = new Bundle(); final SQLiteDatabase db = mDbHelper.get().getWritableDatabase(); db.beginTransaction(); try { - mDbHelper.get().createSimAccountIdInTransaction( + resultId = mDbHelper.get().createSimAccountIdInTransaction( AccountWithDataSet.get(accountName, accountType, null), simSlot, efType); db.setTransactionSuccessful(); + } catch (Exception e) { + logBuilder.setException(e); + throw e; } finally { + LogUtils.log( + logBuilder + .setMethodCall(LogUtils.MethodCall.ADD_SIM_ACCOUNTS) + .setResultCount(resultId > -1 ? 1 : 0) + .build()); db.endTransaction(); } + getContext().sendBroadcast(new Intent(SimContacts.ACTION_SIM_ACCOUNTS_CHANGED)); return response; } else if (SimContacts.REMOVE_SIM_ACCOUNT_METHOD.equals(method)) { - ContactsPermissions.enforceCallingOrSelfPermission(getContext(), - MANAGE_SIM_ACCOUNTS_PERMISSION); + ContactsPermissions.enforceCallingOrSelfPermission( + getContext(), MANAGE_SIM_ACCOUNTS_PERMISSION); final int simSlot = extras.getInt(SimContacts.KEY_SIM_SLOT_INDEX, -1); if (simSlot < 0) { throw new IllegalArgumentException("Sim slot is negative"); } + + int removedCount = 0; final Bundle response = new Bundle(); final SQLiteDatabase db = mDbHelper.get().getWritableDatabase(); db.beginTransaction(); try { - mDbHelper.get().removeSimAccounts(simSlot); + removedCount = mDbHelper.get().removeSimAccounts(simSlot); scheduleBackgroundTask(BACKGROUND_TASK_UPDATE_ACCOUNTS); db.setTransactionSuccessful(); + } catch (Exception e) { + logBuilder.setException(e); + throw e; } finally { + LogUtils.log( + logBuilder + .setMethodCall(LogUtils.MethodCall.REMOVE_SIM_ACCOUNTS) + .setResultCount(removedCount) + .build()); db.endTransaction(); } getContext().sendBroadcast(new Intent(SimContacts.ACTION_SIM_ACCOUNTS_CHANGED)); @@ -2348,11 +2371,22 @@ public class ContactsProvider2 extends AbstractContactsProvider } else if (SimContacts.QUERY_SIM_ACCOUNTS_METHOD.equals(method)) { ContactsPermissions.enforceCallingOrSelfPermission(getContext(), READ_PERMISSION); final Bundle response = new Bundle(); - - final List<SimAccount> simAccounts = mDbHelper.get().getAllSimAccounts(); - response.putParcelableList(SimContacts.KEY_SIM_ACCOUNTS, simAccounts); - - return response; + int accountsCount = 0; + try { + final List<SimAccount> simAccounts = mDbHelper.get().getAllSimAccounts(); + response.putParcelableList(SimContacts.KEY_SIM_ACCOUNTS, simAccounts); + accountsCount = simAccounts.size(); + return response; + } catch (Exception e) { + logBuilder.setException(e); + throw e; + } finally { + LogUtils.log( + logBuilder + .setMethodCall(LogUtils.MethodCall.GET_SIM_ACCOUNTS) + .setResultCount(accountsCount) + .build()); + } } return null; } diff --git a/src/com/android/providers/contacts/util/LogFields.java b/src/com/android/providers/contacts/util/LogFields.java index f4a60fe7..4d07ca4b 100644 --- a/src/com/android/providers/contacts/util/LogFields.java +++ b/src/com/android/providers/contacts/util/LogFields.java @@ -34,6 +34,8 @@ public final class LogFields { private int resultCount; + private int methodCall; + public LogFields(int apiType, int uriType, boolean callerIsSyncAdapter, long startNanos) { this.apiType = apiType; this.uriType = uriType; @@ -69,6 +71,10 @@ public final class LogFields { return resultCount; } + public int getMethodCall() { + return methodCall; + } + public static final class Builder { private int apiType; private int uriType; @@ -77,6 +83,7 @@ public final class LogFields { private Exception exception; private Uri resultUri; private int resultCount; + private int methodCall; private Builder() { } @@ -120,11 +127,17 @@ public final class LogFields { return this; } + public Builder setMethodCall(int methodCall) { + this.methodCall = methodCall; + return this; + } + public LogFields build() { LogFields logFields = new LogFields(apiType, uriType, callerIsSyncAdapter, startNanos); logFields.resultCount = this.resultCount; logFields.exception = this.exception; logFields.resultUri = this.resultUri; + logFields.methodCall = this.methodCall; return logFields; } } diff --git a/src/com/android/providers/contacts/util/LogUtils.java b/src/com/android/providers/contacts/util/LogUtils.java index 9e123257..a564a359 100644 --- a/src/com/android/providers/contacts/util/LogUtils.java +++ b/src/com/android/providers/contacts/util/LogUtils.java @@ -37,6 +37,7 @@ public class LogUtils { int INSERT = 2; int UPDATE = 3; int DELETE = 4; + int CALL = 5; } // Keep in sync with ContactsProviderStatus#CallerType in @@ -46,6 +47,14 @@ public class LogUtils { int CALLER_IS_NOT_SYNC_ADAPTER = 2; } + // Keep in sync with ContactsProviderStatus#MethodCall in + // frameworks/proto_logging/stats/atoms.proto file. + public interface MethodCall { + int ADD_SIM_ACCOUNTS = 1; + int REMOVE_SIM_ACCOUNTS = 2; + int GET_SIM_ACCOUNTS = 3; + } + private static final int STATSD_LOG_ATOM_ID = 301; public static void log(LogFields logFields) { @@ -57,6 +66,8 @@ public class LogUtils { .writeInt(getResultType(logFields.getException())) .writeInt(logFields.getResultCount()) .writeLong(getLatencyMicros(logFields.getStartNanos())) + .writeInt(0) // Empty value for TaskType + .writeInt(logFields.getMethodCall()) .usePooledBuffer() .build()); } |