diff options
author | Erik <epastern@google.com> | 2011-01-21 15:21:34 -0800 |
---|---|---|
committer | Erik <epastern@google.com> | 2011-01-21 16:24:40 -0800 |
commit | 5e5c84a201af7cf537096213a635674fd2c07a0f (patch) | |
tree | 741175c1be036d741c65d4d855c11efb7386532d /src/com/android/calendar/CalendarSettingsActivity.java | |
parent | 5fac708263db89966b3bce7a35bacf7693dbaef2 (diff) | |
download | android_packages_apps_Calendar-5e5c84a201af7cf537096213a635674fd2c07a0f.tar.gz android_packages_apps_Calendar-5e5c84a201af7cf537096213a635674fd2c07a0f.tar.bz2 android_packages_apps_Calendar-5e5c84a201af7cf537096213a635674fd2c07a0f.zip |
b/3376693 Makes account list refresh after adding account
Exchange takes a bit to add an account, so added a delay
to checking for updates.
Change-Id: Ibba0d195ae85a7d28fc768b5b195ed6ecba33924
Diffstat (limited to 'src/com/android/calendar/CalendarSettingsActivity.java')
-rw-r--r-- | src/com/android/calendar/CalendarSettingsActivity.java | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/com/android/calendar/CalendarSettingsActivity.java b/src/com/android/calendar/CalendarSettingsActivity.java index f9ab504a..fdaedabd 100644 --- a/src/com/android/calendar/CalendarSettingsActivity.java +++ b/src/com/android/calendar/CalendarSettingsActivity.java @@ -23,6 +23,7 @@ import android.content.ContentResolver; import android.content.Intent; import android.net.Uri; import android.os.Bundle; +import android.os.Handler; import android.preference.PreferenceActivity; import android.provider.Calendar; import android.provider.Calendar.Calendars; @@ -35,6 +36,10 @@ import android.view.MenuItem; import java.util.List; public class CalendarSettingsActivity extends PreferenceActivity { + private static final int CHECK_ACCOUNTS_DELAY = 3000; + private Account[] mAccounts; + private Handler mHandler = new Handler(); + @Override public void onBuildHeaders(List<Header> target) { loadHeadersFromResource(R.xml.calendar_settings_headers, target); @@ -58,6 +63,7 @@ public class CalendarSettingsActivity extends PreferenceActivity { } } } + mAccounts = accounts; if (Utils.getTardis() + DateUtils.MINUTE_IN_MILLIS > System.currentTimeMillis()) { Header tardisHeader = new Header(); tardisHeader.title = getString(R.string.tardis); @@ -94,4 +100,30 @@ public class CalendarSettingsActivity extends PreferenceActivity { inflater.inflate(R.menu.settings_title_bar, menu); return true; } + + @Override + public void onResume() { + if (mHandler != null) { + mHandler.postDelayed(mCheckAccounts, CHECK_ACCOUNTS_DELAY); + } + super.onResume(); + } + + @Override + public void onPause() { + if (mHandler != null) { + mHandler.removeCallbacks(mCheckAccounts); + } + super.onPause(); + } + + Runnable mCheckAccounts = new Runnable() { + @Override + public void run() { + Account[] accounts = AccountManager.get(CalendarSettingsActivity.this).getAccounts(); + if (accounts != null && !accounts.equals(mAccounts)) { + invalidateHeaders(); + } + } + }; } |