• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2014 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5  * in compliance with the License. You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software distributed under the License
10  * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11  * or implied. See the License for the specific language governing permissions and limitations under
12  * the License.
13  */
14 
15 package com.example.android.leanback;
16 
17 import android.app.AlarmManager;
18 import android.app.PendingIntent;
19 import android.content.BroadcastReceiver;
20 import android.content.Context;
21 import android.content.Intent;
22 import android.util.Log;
23 
24 /*
25  * This class extends BroadCastReceiver and publishes recommendations on bootup
26  */
27 public class BootupActivity extends BroadcastReceiver {
28     private static final String TAG = "BootupActivity";
29 
30     private static final long INITIAL_DELAY = 5000;
31 
32     @Override
onReceive(Context context, Intent intent)33     public void onReceive(Context context, Intent intent) {
34         Log.d(TAG, "BootupActivity initiated");
35         if (intent.getAction().endsWith(Intent.ACTION_BOOT_COMPLETED)) {
36             scheduleRecommendationUpdate(context);
37         }
38     }
39 
scheduleRecommendationUpdate(Context context)40     private void scheduleRecommendationUpdate(Context context) {
41         Log.d(TAG, "Scheduling recommendations update");
42 
43         AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
44         Intent recommendationIntent = new Intent(context, UpdateRecommendationsService.class);
45         PendingIntent alarmIntent = PendingIntent.getService(context, 0, recommendationIntent, 0);
46 
47         alarmManager.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
48                 INITIAL_DELAY,
49                 AlarmManager.INTERVAL_HALF_HOUR,
50                 alarmIntent);
51     }
52 }
53