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