summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSuren Baghdasaryan <surenb@google.com>2017-04-10 16:48:06 -0700
committerSuren Baghdasaryan <surenb@google.com>2017-04-12 17:24:29 +0000
commit294590270c9149f59d40ee92bed5ff890dfbc983 (patch)
treec708efb6850f5d8115936406d5b743b225ae0944
parent01e429c08e51291315890de9677151a7e0b6ad35 (diff)
downloadOneTimeInitializer-294590270c9149f59d40ee92bed5ff890dfbc983.tar.gz
Use BroadcastReceiver.goAsync() instead of a service.android-vts-8.0_r9android-vts-8.0_r8android-vts-8.0_r7android-vts-8.0_r6android-vts-8.0_r2android-vts-8.0_r13android-vts-8.0_r12android-vts-8.0_r11android-vts-8.0_r10android-vts-8.0_r1android-security-8.0.0_r54android-security-8.0.0_r53android-security-8.0.0_r52android-cts-8.0_r9android-cts-8.0_r8android-cts-8.0_r7android-cts-8.0_r6android-cts-8.0_r5android-cts-8.0_r4android-cts-8.0_r3android-cts-8.0_r26android-cts-8.0_r25android-cts-8.0_r24android-cts-8.0_r23android-cts-8.0_r22android-cts-8.0_r21android-cts-8.0_r20android-cts-8.0_r2android-cts-8.0_r19android-cts-8.0_r18android-cts-8.0_r17android-cts-8.0_r16android-cts-8.0_r15android-cts-8.0_r14android-cts-8.0_r13android-cts-8.0_r12android-cts-8.0_r11android-cts-8.0_r10android-cts-8.0_r1android-8.0.0_r9android-8.0.0_r7android-8.0.0_r51android-8.0.0_r50android-8.0.0_r49android-8.0.0_r48android-8.0.0_r47android-8.0.0_r46android-8.0.0_r45android-8.0.0_r44android-8.0.0_r43android-8.0.0_r42android-8.0.0_r41android-8.0.0_r40android-8.0.0_r4android-8.0.0_r39android-8.0.0_r38android-8.0.0_r37android-8.0.0_r36android-8.0.0_r35android-8.0.0_r32android-8.0.0_r31android-8.0.0_r30android-8.0.0_r3android-8.0.0_r29android-8.0.0_r28android-8.0.0_r2android-8.0.0_r17android-8.0.0_r16android-8.0.0_r15android-8.0.0_r13android-8.0.0_r12android-8.0.0_r11android-8.0.0_r10android-8.0.0_r1security-oc-releaseoreo-vts-releaseoreo-security-releaseoreo-releaseoreo-r6-releaseoreo-r5-releaseoreo-r4-releaseoreo-r3-releaseoreo-r2-releaseoreo-devoreo-cts-release
Bug: 36635931 Change-Id: Ib279354a345a89bdf1a3c9e20e8d951cc0e17fdf (cherry picked from commit 725b26593c969a50a6e83f45414e0d46d490ec0f)
-rw-r--r--AndroidManifest.xml4
-rw-r--r--src/com/android/onetimeinitializer/OneTimeInitializer.java (renamed from src/com/android/onetimeinitializer/OneTimeInitializerService.java)27
-rw-r--r--src/com/android/onetimeinitializer/OneTimeInitializerReceiver.java18
3 files changed, 20 insertions, 29 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 2ed8f59..18675a7 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -33,9 +33,5 @@
android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
-
- <service
- android:name=".OneTimeInitializerService">
- </service>
</application>
</manifest>
diff --git a/src/com/android/onetimeinitializer/OneTimeInitializerService.java b/src/com/android/onetimeinitializer/OneTimeInitializer.java
index cf72eae..aa37036 100644
--- a/src/com/android/onetimeinitializer/OneTimeInitializerService.java
+++ b/src/com/android/onetimeinitializer/OneTimeInitializer.java
@@ -16,7 +16,6 @@
package com.android.onetimeinitializer;
-import android.app.IntentService;
import android.content.ComponentName;
import android.content.ContentResolver;
import android.content.ContentValues;
@@ -37,11 +36,8 @@ import java.util.Set;
* BOOT_COMPLETED broadcast intent instead. This means, when the app is upgraded, the
* initialization code here won't run until the device reboots.
*/
-public class OneTimeInitializerService extends IntentService {
-
- // class name is too long
- private static final String TAG = OneTimeInitializerService.class.getSimpleName()
- .substring(0, 22);
+public class OneTimeInitializer {
+ private static final String TAG = OneTimeInitializer.class.getSimpleName();
// Name of the shared preferences file.
private static final String SHARED_PREFS_FILE = "oti";
@@ -58,21 +54,16 @@ public class OneTimeInitializerService extends IntentService {
private static final String LAUNCHER_INTENT_COLUMN = "intent";
private SharedPreferences mPreferences;
+ private Context mContext;
- public OneTimeInitializerService() {
- super("OneTimeInitializer Service");
- }
-
- @Override
- public void onCreate() {
- super.onCreate();
- mPreferences = getSharedPreferences(SHARED_PREFS_FILE, Context.MODE_PRIVATE);
+ OneTimeInitializer(Context context) {
+ mContext = context;
+ mPreferences = mContext.getSharedPreferences(SHARED_PREFS_FILE, Context.MODE_PRIVATE);
}
- @Override
- protected void onHandleIntent(Intent intent) {
+ void initialize() {
if (Log.isLoggable(TAG, Log.VERBOSE)) {
- Log.v(TAG, "OneTimeInitializerService.onHandleIntent");
+ Log.v(TAG, "OneTimeInitializer.initialize");
}
final int currentVersion = getMappingVersion();
@@ -100,7 +91,7 @@ public class OneTimeInitializerService extends IntentService {
}
private void updateDialtactsLauncher() {
- ContentResolver cr = getContentResolver();
+ ContentResolver cr = mContext.getContentResolver();
Cursor c = cr.query(LAUNCHER_CONTENT_URI,
new String[]{LAUNCHER_ID_COLUMN, LAUNCHER_INTENT_COLUMN}, null, null, null);
if (c == null) {
diff --git a/src/com/android/onetimeinitializer/OneTimeInitializerReceiver.java b/src/com/android/onetimeinitializer/OneTimeInitializerReceiver.java
index 0f99a2b..07e6501 100644
--- a/src/com/android/onetimeinitializer/OneTimeInitializerReceiver.java
+++ b/src/com/android/onetimeinitializer/OneTimeInitializerReceiver.java
@@ -22,17 +22,21 @@ import android.content.Intent;
import android.util.Log;
/**
- * BroadcastReceiver that starts the service to performs one time initialization
- * at bootup time.
+ * BroadcastReceiver that performs one time initialization at bootup time.
*/
public class OneTimeInitializerReceiver extends BroadcastReceiver {
-
- private static final String TAG = OneTimeInitializerReceiver.class.getSimpleName()
- .substring(0, 22);
+ private static final String TAG = "OneTimeInitializerReceiver";
@Override
- public void onReceive(Context context, Intent intent) {
+ public void onReceive(final Context context, Intent intent) {
Log.v(TAG, "OneTimeInitializerReceiver.onReceive");
- context.startService(new Intent(context, OneTimeInitializerService.class));
+ final PendingResult result = goAsync();
+ new Thread(() -> {
+ try {
+ new OneTimeInitializer(context).initialize();
+ } finally {
+ result.finish();
+ }
+ }).start();
}
}