summaryrefslogtreecommitdiffstats
path: root/src/com/android/calendar/CalendarSettingsActivity.java
diff options
context:
space:
mode:
authorErik <epastern@google.com>2011-01-21 15:21:34 -0800
committerErik <epastern@google.com>2011-01-21 16:24:40 -0800
commit5e5c84a201af7cf537096213a635674fd2c07a0f (patch)
tree741175c1be036d741c65d4d855c11efb7386532d /src/com/android/calendar/CalendarSettingsActivity.java
parent5fac708263db89966b3bce7a35bacf7693dbaef2 (diff)
downloadandroid_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.java32
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();
+ }
+ }
+ };
}