diff options
-rw-r--r-- | AndroidManifest.xml | 4 | ||||
-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.java | 18 |
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(); } } |