summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSuren Baghdasaryan <surenb@google.com>2017-04-12 21:44:37 +0000
committerandroid-build-merger <android-build-merger@google.com>2017-04-12 21:44:37 +0000
commitd2762cc94e5ea13cc13b6665101220c2ddf06110 (patch)
treec708efb6850f5d8115936406d5b743b225ae0944
parent01e429c08e51291315890de9677151a7e0b6ad35 (diff)
parent294590270c9149f59d40ee92bed5ff890dfbc983 (diff)
downloadOneTimeInitializer-d2762cc94e5ea13cc13b6665101220c2ddf06110.tar.gz
Use BroadcastReceiver.goAsync() instead of a service.android-o-mr1-preview-2android-o-mr1-preview-1
am: 294590270c Change-Id: I9e38f6d71848434939d3703d7707b502dcae046c
-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();
}
}