1fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu/*
2fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu * Copyright (C) 2013 The Android Open Source Project
3fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu *
4fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu * Licensed under the Apache License, Version 2.0 (the "License");
5fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu * you may not use this file except in compliance with the License.
6fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu * You may obtain a copy of the License at
7fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu *
8fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu *      http://www.apache.org/licenses/LICENSE-2.0
9fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu *
10fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu * Unless required by applicable law or agreed to in writing, software
11fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu * distributed under the License is distributed on an "AS IS" BASIS,
12fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu * See the License for the specific language governing permissions and
14fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu * limitations under the License.
15fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu */
16fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu
17fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhupackage com.android.testing.alarmservice;
18fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu
19fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhuimport android.app.Service;
20fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhuimport android.content.Context;
21fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhuimport android.content.Intent;
22fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhuimport android.os.IBinder;
23fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu
24fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhupublic class AlarmService extends Service {
25fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu
26fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu    private AlarmImpl mAlarmImpl = null;
27fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu    static Context sContext;
28fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu
29fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu    @Override
30fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu    public void onCreate() {
31fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu        super.onCreate();
32fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu        sContext = this;
33fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu    }
34fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu
35fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu    @Override
36fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu    public IBinder onBind(Intent intent) {
37fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu        return getAlarmImpl();
38fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu    }
39fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu
40fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu    private AlarmImpl getAlarmImpl() {
41fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu        if (mAlarmImpl == null) {
42fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu            mAlarmImpl = new AlarmImpl(this);
43fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu        }
44fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu        return mAlarmImpl;
45fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu    }
46fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu
47fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu    @Override
48fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu    public void onDestroy() {
49fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu        sContext = null;
50fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu        super.onDestroy();
51fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu    }
52fe0ec553aa77edf5b1ca214321033ae73bbeeda6Guang Zhu}
53