package com.android.providers.calendar; import android.accounts.Account; import android.app.PendingIntent; import android.content.ContentResolver; import android.content.Context; import android.net.Uri; import android.os.PowerManager; import java.util.concurrent.atomic.AtomicBoolean; public class CalendarProvider2ForTesting extends CalendarProvider2 { /** * For testing, don't want to start the TimezoneCheckerThread, as it results * in race conditions. Thus updateTimezoneDependentFields is stubbed out. */ @Override protected void updateTimezoneDependentFields() { } /** * For testing, don't want onAccountsUpdated asynchronously deleting data. */ @Override public void onAccountsUpdated(Account[] accounts) { } @Override protected void doUpdateTimezoneDependentFields() { } @Override protected void postInitialize() { } @Override protected void initCalendarAlarm() { mCalendarAlarm = new MockCalendarAlarmManager(getContext()); } @Override protected boolean shouldSyncFor(Uri uri) { return true; } private static class MockCalendarAlarmManager extends CalendarAlarmManager { public MockCalendarAlarmManager(Context context) { super(context); } @Override protected void initializeWithContext(Context context) { mContext = context; mNextAlarmCheckScheduled = new AtomicBoolean(false); mAlarmLock = new Object(); } @Override public void setExact(int type, long triggerAtTime, PendingIntent operation) { } @Override public void setExactAndAllowWhileIdle(int type, long triggerAtTime, PendingIntent operation) { } @Override public void cancel(PendingIntent operation) { } @Override public void scheduleAlarm(long alarmTime) { } @Override public void rescheduleMissedAlarms(ContentResolver cr) { } @Override PowerManager.WakeLock getScheduleNextAlarmWakeLock() { return null; } @Override void acquireScheduleNextAlarmWakeLock() { } @Override void releaseScheduleNextAlarmWakeLock() { } } }