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