19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/*
29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2007 The Android Open Source Project
39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License.
69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at
79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software
119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and
149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License.
159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1709e9cdceceb722643e2c80c6544d44a43d7f95f0Amith Yamasanipackage com.android.server.appwidget;
189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.Context;
209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
21adfe8b86e9178a553b6db9722340fa4ff5201cf1Christopher Tateimport com.android.server.AppWidgetBackupBridge;
22817ec49e7991d4cac50b2308cd7cf5f8641e1e29Amith Yamasaniimport com.android.server.SystemService;
239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
24742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani/**
25817ec49e7991d4cac50b2308cd7cf5f8641e1e29Amith Yamasani * SystemService that publishes an IAppWidgetService.
26742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani */
2739999cf0263d0568337a87d0e586dcafd9e22ba1Svetoslavpublic class AppWidgetService extends SystemService {
2839999cf0263d0568337a87d0e586dcafd9e22ba1Svetoslav    private final AppWidgetServiceImpl mImpl;
297bb9883d0564e1d3f7303d4934418998d540c1b8Adam Cohen
30b880d880c6cd989eacc28c365fc9a41d31900da1Jeff Brown    public AppWidgetService(Context context) {
31b880d880c6cd989eacc28c365fc9a41d31900da1Jeff Brown        super(context);
3239999cf0263d0568337a87d0e586dcafd9e22ba1Svetoslav        mImpl = new AppWidgetServiceImpl(context);
339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @Override
36817ec49e7991d4cac50b2308cd7cf5f8641e1e29Amith Yamasani    public void onStart() {
3773ea0ae15fafd66ab8a8e2679723715c189bbba3Jeff Sharkey        mImpl.onStart();
3839999cf0263d0568337a87d0e586dcafd9e22ba1Svetoslav        publishBinderService(Context.APPWIDGET_SERVICE, mImpl);
3939999cf0263d0568337a87d0e586dcafd9e22ba1Svetoslav        AppWidgetBackupBridge.register(mImpl);
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
4175b5cfb4a41030333820d072578a288d4ec9899cMichael Jurka
4275b5cfb4a41030333820d072578a288d4ec9899cMichael Jurka    @Override
43817ec49e7991d4cac50b2308cd7cf5f8641e1e29Amith Yamasani    public void onBootPhase(int phase) {
442f30cc1cfeadc9501e01089b95f7f1567a134573joonyoung.cho        if (phase == PHASE_ACTIVITY_MANAGER_READY) {
4539999cf0263d0568337a87d0e586dcafd9e22ba1Svetoslav            mImpl.setSafeMode(isSafeMode());
46817ec49e7991d4cac50b2308cd7cf5f8641e1e29Amith Yamasani        }
47817ec49e7991d4cac50b2308cd7cf5f8641e1e29Amith Yamasani    }
4857c9e16d041c9047a1618aab9c52be5608fae1cfWinson
4957c9e16d041c9047a1618aab9c52be5608fae1cfWinson    @Override
5057c9e16d041c9047a1618aab9c52be5608fae1cfWinson    public void onUnlockUser(int userHandle) {
5157c9e16d041c9047a1618aab9c52be5608fae1cfWinson        mImpl.onUserUnlocked(userHandle);
5257c9e16d041c9047a1618aab9c52be5608fae1cfWinson    }
5357c9e16d041c9047a1618aab9c52be5608fae1cfWinson
5457c9e16d041c9047a1618aab9c52be5608fae1cfWinson    @Override
5557c9e16d041c9047a1618aab9c52be5608fae1cfWinson    public void onStopUser(int userHandle) {
5657c9e16d041c9047a1618aab9c52be5608fae1cfWinson        mImpl.onUserStopped(userHandle);
5757c9e16d041c9047a1618aab9c52be5608fae1cfWinson    }
5857c9e16d041c9047a1618aab9c52be5608fae1cfWinson
5957c9e16d041c9047a1618aab9c52be5608fae1cfWinson    @Override
6057c9e16d041c9047a1618aab9c52be5608fae1cfWinson    public void onSwitchUser(int userHandle) {
6157c9e16d041c9047a1618aab9c52be5608fae1cfWinson        mImpl.reloadWidgetsMaskedStateForGroup(userHandle);
6257c9e16d041c9047a1618aab9c52be5608fae1cfWinson    }
639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
64