1package com.android.providers.calendar;
2
3import android.accounts.Account;
4import android.app.PendingIntent;
5import android.content.ContentResolver;
6import android.content.Context;
7import android.os.PowerManager;
8
9import java.util.concurrent.atomic.AtomicBoolean;
10
11public class CalendarProvider2ForTesting extends CalendarProvider2 {
12
13    /**
14     * For testing, don't want to start the TimezoneCheckerThread, as it results
15     * in race conditions.  Thus updateTimezoneDependentFields is stubbed out.
16     */
17    @Override
18    protected void updateTimezoneDependentFields() {
19    }
20
21    /**
22     * For testing, don't want onAccountsUpdated asynchronously deleting data.
23     */
24    @Override
25    public void onAccountsUpdated(Account[] accounts) {
26    }
27
28    @Override
29    protected void doUpdateTimezoneDependentFields() {
30    }
31
32    @Override
33    protected void postInitialize() {
34    }
35
36    @Override
37    protected void initCalendarAlarm() {
38        mCalendarAlarm = new MockCalendarAlarmManager(getContext());
39        mCalendarAlarm.getScheduleNextAlarmWakeLock();
40    }
41
42    private static class MockCalendarAlarmManager extends CalendarAlarmManager {
43
44        public MockCalendarAlarmManager(Context context) {
45            super(context);
46        }
47
48        @Override
49        protected void initializeWithContext(Context context) {
50            mContext = context;
51            mNextAlarmCheckScheduled = new AtomicBoolean(false);
52            mAlarmLock = new Object();
53        }
54
55        @Override
56        public void set(int type, long triggerAtTime, PendingIntent operation) {
57        }
58
59        @Override
60        public void cancel(PendingIntent operation) {
61        }
62
63        @Override
64        public void scheduleAlarm(long alarmTime) {
65        }
66
67        @Override
68        public void rescheduleMissedAlarms(ContentResolver cr) {
69        }
70
71
72        @Override
73        PowerManager.WakeLock getScheduleNextAlarmWakeLock() {
74            return null;
75        }
76
77        @Override
78        void acquireScheduleNextAlarmWakeLock() {
79        }
80
81        @Override
82        void releaseScheduleNextAlarmWakeLock() {
83        }
84    }
85}
86