10cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalard/* 20cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalard * Copyright (C) 2011 The Android Open Source Project 30cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalard * 40cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalard * Licensed under the Apache License, Version 2.0 (the "License"); you may not 50cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalard * use this file except in compliance with the License. You may obtain a copy of 60cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalard * the License at 70cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalard * 80cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalard * http://www.apache.org/licenses/LICENSE-2.0 90cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalard * 100cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalard * Unless required by applicable law or agreed to in writing, software 110cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalard * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 120cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalard * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 130cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalard * License for the specific language governing permissions and limitations under 140cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalard * the License. 150cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalard */ 160cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalard 170cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalardpackage com.android.inputmethod.dictionarypack; 180cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalard 190cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalardimport android.content.BroadcastReceiver; 200cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalardimport android.content.Context; 210cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalardimport android.content.Intent; 220cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalard 230cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalardpublic final class EventHandler extends BroadcastReceiver { 240cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalard /** 250cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalard * Receives a intent broadcast. 260cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalard * 270cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalard * We receive every day a broadcast indicating that date changed. 280cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalard * Then we wait a random amount of time before actually registering 290cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalard * the download, to avoid concentrating too many accesses around 300cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalard * midnight in more populated timezones. 310cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalard * We receive all broadcasts here, so this can be either the DATE_CHANGED broadcast, the 320cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalard * UPDATE_NOW private broadcast that we receive when the time-randomizing alarm triggers 330cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalard * for regular update or from applications that want to test the dictionary pack, or a 340cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalard * broadcast from DownloadManager telling that a download has finished. 350cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalard * See inside of AndroidManifest.xml to see which events are caught. 360cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalard * Also @see {@link BroadcastReceiver#onReceive(Context, Intent)} 370cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalard * 380cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalard * @param context the context of the application. 390cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalard * @param intent the intent that was broadcast. 400cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalard */ 410cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalard @Override 420cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalard public void onReceive(final Context context, final Intent intent) { 430cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalard intent.setClass(context, DictionaryService.class); 440cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalard context.startService(intent); 450cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalard } 460cc0544a2995c7eb54a830ae54db60af89d4073dJean Chalard} 47