Start service after boot to show data in widgets

This commit is contained in:
Eugene Cheung 2017-06-12 22:58:24 -04:00
commit 27fcf00eda
2 changed files with 36 additions and 0 deletions

View file

@ -10,6 +10,7 @@
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.BROADCAST_STICKY" /> <uses-permission android:name="android.permission.BROADCAST_STICKY" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" /> <uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="com.android.vending.BILLING" /> <uses-permission android:name="com.android.vending.BILLING" />
<application <application
@ -128,6 +129,14 @@
android:windowSoftInputMode="adjustResize" /> android:windowSoftInputMode="adjustResize" />
<activity android:name=".ui.activities.SearchActivity" /> <activity android:name=".ui.activities.SearchActivity" />
<receiver android:name=".appwidgets.BootReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
</intent-filter>
</receiver>
<receiver <receiver
android:name=".appwidgets.AppWidgetBig" android:name=".appwidgets.AppWidgetBig"
android:exported="false" android:exported="false"

View file

@ -0,0 +1,27 @@
package com.kabouzeid.gramophone.appwidgets;
import android.appwidget.AppWidgetManager;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import com.kabouzeid.gramophone.service.MusicService;
/**
* @author Eugene Cheung (arkon)
*/
public class BootReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
final AppWidgetManager widgetManager = AppWidgetManager.getInstance(context);
// Start music service if there are any existing widgets
if (widgetManager.getAppWidgetIds(new ComponentName(context, AppWidgetBig.class)).length > 0 ||
widgetManager.getAppWidgetIds(new ComponentName(context, AppWidgetClassic.class)).length > 0 ||
widgetManager.getAppWidgetIds(new ComponentName(context, AppWidgetSmall.class)).length > 0) {
final Intent serviceIntent = new Intent(context, MusicService.class);
context.startService(serviceIntent);
}
}
}