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