19f005e4843925efe4fa8434361c4ad4ad384ed4cKen Shirriffpackage com.android.providers.calendar;
29f005e4843925efe4fa8434361c4ad4ad384ed4cKen Shirriff
36636020e221f0040d2d78ea03e7b3d9223256ff3Ken Shirriffimport android.accounts.Account;
4656f9cb431c798c972260f31a4ebcd56047dff21Fabrice Di Meglioimport android.app.PendingIntent;
5656f9cb431c798c972260f31a4ebcd56047dff21Fabrice Di Meglioimport android.content.ContentResolver;
6e7a04f1fe637bc1322a6b4942e0251e3831cd544Fabrice Di Meglioimport android.content.Context;
7a55c3aaa2b13b5350918efda98906afb8b6206c1Alon Albertimport android.net.Uri;
8e7a04f1fe637bc1322a6b4942e0251e3831cd544Fabrice Di Meglioimport android.os.PowerManager;
96636020e221f0040d2d78ea03e7b3d9223256ff3Ken Shirriff
10420b7fb569773ae573fbe90c3a9c522d4c368863Erikimport java.util.concurrent.atomic.AtomicBoolean;
11c3fb804639a62353b76ea45fded1022650c2a73aFabrice Di Meglio
12420b7fb569773ae573fbe90c3a9c522d4c368863Erikpublic class CalendarProvider2ForTesting extends CalendarProvider2 {
13e7a04f1fe637bc1322a6b4942e0251e3831cd544Fabrice Di Meglio
149f005e4843925efe4fa8434361c4ad4ad384ed4cKen Shirriff    /**
159f005e4843925efe4fa8434361c4ad4ad384ed4cKen Shirriff     * For testing, don't want to start the TimezoneCheckerThread, as it results
169f005e4843925efe4fa8434361c4ad4ad384ed4cKen Shirriff     * in race conditions.  Thus updateTimezoneDependentFields is stubbed out.
179f005e4843925efe4fa8434361c4ad4ad384ed4cKen Shirriff     */
189f005e4843925efe4fa8434361c4ad4ad384ed4cKen Shirriff    @Override
199f005e4843925efe4fa8434361c4ad4ad384ed4cKen Shirriff    protected void updateTimezoneDependentFields() {
209f005e4843925efe4fa8434361c4ad4ad384ed4cKen Shirriff    }
216636020e221f0040d2d78ea03e7b3d9223256ff3Ken Shirriff
226636020e221f0040d2d78ea03e7b3d9223256ff3Ken Shirriff    /**
236636020e221f0040d2d78ea03e7b3d9223256ff3Ken Shirriff     * For testing, don't want onAccountsUpdated asynchronously deleting data.
246636020e221f0040d2d78ea03e7b3d9223256ff3Ken Shirriff     */
256636020e221f0040d2d78ea03e7b3d9223256ff3Ken Shirriff    @Override
266636020e221f0040d2d78ea03e7b3d9223256ff3Ken Shirriff    public void onAccountsUpdated(Account[] accounts) {
276636020e221f0040d2d78ea03e7b3d9223256ff3Ken Shirriff    }
28315d9326acd39566959f3c547225483f1fb6aefcFabrice Di Meglio
29315d9326acd39566959f3c547225483f1fb6aefcFabrice Di Meglio    @Override
30315d9326acd39566959f3c547225483f1fb6aefcFabrice Di Meglio    protected void doUpdateTimezoneDependentFields() {
31315d9326acd39566959f3c547225483f1fb6aefcFabrice Di Meglio    }
32c3fb804639a62353b76ea45fded1022650c2a73aFabrice Di Meglio
33c3fb804639a62353b76ea45fded1022650c2a73aFabrice Di Meglio    @Override
34c3fb804639a62353b76ea45fded1022650c2a73aFabrice Di Meglio    protected void postInitialize() {
35c3fb804639a62353b76ea45fded1022650c2a73aFabrice Di Meglio    }
36e7a04f1fe637bc1322a6b4942e0251e3831cd544Fabrice Di Meglio
37e7a04f1fe637bc1322a6b4942e0251e3831cd544Fabrice Di Meglio    @Override
38420b7fb569773ae573fbe90c3a9c522d4c368863Erik    protected void initCalendarAlarm() {
39420b7fb569773ae573fbe90c3a9c522d4c368863Erik        mCalendarAlarm = new MockCalendarAlarmManager(getContext());
40e7a04f1fe637bc1322a6b4942e0251e3831cd544Fabrice Di Meglio    }
41e7a04f1fe637bc1322a6b4942e0251e3831cd544Fabrice Di Meglio
42a55c3aaa2b13b5350918efda98906afb8b6206c1Alon Albert    @Override
43a55c3aaa2b13b5350918efda98906afb8b6206c1Alon Albert    protected boolean shouldSyncFor(Uri uri) {
44a55c3aaa2b13b5350918efda98906afb8b6206c1Alon Albert        return true;
45a55c3aaa2b13b5350918efda98906afb8b6206c1Alon Albert    }
46a55c3aaa2b13b5350918efda98906afb8b6206c1Alon Albert
47e7a04f1fe637bc1322a6b4942e0251e3831cd544Fabrice Di Meglio    private static class MockCalendarAlarmManager extends CalendarAlarmManager {
48e7a04f1fe637bc1322a6b4942e0251e3831cd544Fabrice Di Meglio
49420b7fb569773ae573fbe90c3a9c522d4c368863Erik        public MockCalendarAlarmManager(Context context) {
50420b7fb569773ae573fbe90c3a9c522d4c368863Erik            super(context);
51e7a04f1fe637bc1322a6b4942e0251e3831cd544Fabrice Di Meglio        }
52e7a04f1fe637bc1322a6b4942e0251e3831cd544Fabrice Di Meglio
53e7a04f1fe637bc1322a6b4942e0251e3831cd544Fabrice Di Meglio        @Override
54e7a04f1fe637bc1322a6b4942e0251e3831cd544Fabrice Di Meglio        protected void initializeWithContext(Context context) {
55420b7fb569773ae573fbe90c3a9c522d4c368863Erik            mContext = context;
56420b7fb569773ae573fbe90c3a9c522d4c368863Erik            mNextAlarmCheckScheduled = new AtomicBoolean(false);
57420b7fb569773ae573fbe90c3a9c522d4c368863Erik            mAlarmLock = new Object();
58e7a04f1fe637bc1322a6b4942e0251e3831cd544Fabrice Di Meglio        }
59656f9cb431c798c972260f31a4ebcd56047dff21Fabrice Di Meglio
60656f9cb431c798c972260f31a4ebcd56047dff21Fabrice Di Meglio        @Override
6188ce4c3299e915feebdf7fab788d091ccd2701d6Makoto Onuki        public void set(int type, long triggerAtTime, PendingIntent operation) {
6288ce4c3299e915feebdf7fab788d091ccd2701d6Makoto Onuki        }
6388ce4c3299e915feebdf7fab788d091ccd2701d6Makoto Onuki
6488ce4c3299e915feebdf7fab788d091ccd2701d6Makoto Onuki        @Override
65ea1b82d2ab660a15659258da19fabe19e5d4fbd5Tony Mak        public void setExact(int type, long triggerAtTime, PendingIntent operation) {
66ea1b82d2ab660a15659258da19fabe19e5d4fbd5Tony Mak        }
67ea1b82d2ab660a15659258da19fabe19e5d4fbd5Tony Mak
68ea1b82d2ab660a15659258da19fabe19e5d4fbd5Tony Mak        @Override
69ea1b82d2ab660a15659258da19fabe19e5d4fbd5Tony Mak        public void setExactAndAllowWhileIdle(int type, long triggerAtTime,
70ea1b82d2ab660a15659258da19fabe19e5d4fbd5Tony Mak                PendingIntent operation) {
71656f9cb431c798c972260f31a4ebcd56047dff21Fabrice Di Meglio        }
72656f9cb431c798c972260f31a4ebcd56047dff21Fabrice Di Meglio
73656f9cb431c798c972260f31a4ebcd56047dff21Fabrice Di Meglio        @Override
74656f9cb431c798c972260f31a4ebcd56047dff21Fabrice Di Meglio        public void cancel(PendingIntent operation) {
75656f9cb431c798c972260f31a4ebcd56047dff21Fabrice Di Meglio        }
76656f9cb431c798c972260f31a4ebcd56047dff21Fabrice Di Meglio
77656f9cb431c798c972260f31a4ebcd56047dff21Fabrice Di Meglio        @Override
78656f9cb431c798c972260f31a4ebcd56047dff21Fabrice Di Meglio        public void scheduleAlarm(long alarmTime) {
79656f9cb431c798c972260f31a4ebcd56047dff21Fabrice Di Meglio        }
80656f9cb431c798c972260f31a4ebcd56047dff21Fabrice Di Meglio
81656f9cb431c798c972260f31a4ebcd56047dff21Fabrice Di Meglio        @Override
82656f9cb431c798c972260f31a4ebcd56047dff21Fabrice Di Meglio        public void rescheduleMissedAlarms(ContentResolver cr) {
83656f9cb431c798c972260f31a4ebcd56047dff21Fabrice Di Meglio        }
84e7a04f1fe637bc1322a6b4942e0251e3831cd544Fabrice Di Meglio    }
859f005e4843925efe4fa8434361c4ad4ad384ed4cKen Shirriff}
86