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
61656f9cb431c798c972260f31a4ebcd56047dff21Fabrice Di Meglio        public void set(int type, long triggerAtTime, PendingIntent operation) {
62656f9cb431c798c972260f31a4ebcd56047dff21Fabrice Di Meglio        }
63656f9cb431c798c972260f31a4ebcd56047dff21Fabrice Di Meglio
64656f9cb431c798c972260f31a4ebcd56047dff21Fabrice Di Meglio        @Override
65656f9cb431c798c972260f31a4ebcd56047dff21Fabrice Di Meglio        public void cancel(PendingIntent operation) {
66656f9cb431c798c972260f31a4ebcd56047dff21Fabrice Di Meglio        }
67656f9cb431c798c972260f31a4ebcd56047dff21Fabrice Di Meglio
68656f9cb431c798c972260f31a4ebcd56047dff21Fabrice Di Meglio        @Override
69656f9cb431c798c972260f31a4ebcd56047dff21Fabrice Di Meglio        public void scheduleAlarm(long alarmTime) {
70656f9cb431c798c972260f31a4ebcd56047dff21Fabrice Di Meglio        }
71656f9cb431c798c972260f31a4ebcd56047dff21Fabrice Di Meglio
72656f9cb431c798c972260f31a4ebcd56047dff21Fabrice Di Meglio        @Override
73656f9cb431c798c972260f31a4ebcd56047dff21Fabrice Di Meglio        public void rescheduleMissedAlarms(ContentResolver cr) {
74656f9cb431c798c972260f31a4ebcd56047dff21Fabrice Di Meglio        }
75420b7fb569773ae573fbe90c3a9c522d4c368863Erik
76420b7fb569773ae573fbe90c3a9c522d4c368863Erik
77420b7fb569773ae573fbe90c3a9c522d4c368863Erik        @Override
78420b7fb569773ae573fbe90c3a9c522d4c368863Erik        PowerManager.WakeLock getScheduleNextAlarmWakeLock() {
79420b7fb569773ae573fbe90c3a9c522d4c368863Erik            return null;
80420b7fb569773ae573fbe90c3a9c522d4c368863Erik        }
81420b7fb569773ae573fbe90c3a9c522d4c368863Erik
82420b7fb569773ae573fbe90c3a9c522d4c368863Erik        @Override
83420b7fb569773ae573fbe90c3a9c522d4c368863Erik        void acquireScheduleNextAlarmWakeLock() {
84420b7fb569773ae573fbe90c3a9c522d4c368863Erik        }
85420b7fb569773ae573fbe90c3a9c522d4c368863Erik
86420b7fb569773ae573fbe90c3a9c522d4c368863Erik        @Override
87420b7fb569773ae573fbe90c3a9c522d4c368863Erik        void releaseScheduleNextAlarmWakeLock() {
88420b7fb569773ae573fbe90c3a9c522d4c368863Erik        }
89e7a04f1fe637bc1322a6b4942e0251e3831cd544Fabrice Di Meglio    }
909f005e4843925efe4fa8434361c4ad4ad384ed4cKen Shirriff}
91