Makes bubble and event info in search update tz
Also fix for b/3044748 by moving rebuilding of views into
onResume if we were notified of a change while paused. Also
discovered that if search activity refreshes with a single
event earlier than today it doesn't requery correctly and
fails to expand to the event.
Change-Id: Id55fc8b0effe05bf35f2c4ebd71d70826784174b
diff --git a/src/com/android/calendar/CalendarController.java b/src/com/android/calendar/CalendarController.java
index b4c04de..23cf49a 100644
--- a/src/com/android/calendar/CalendarController.java
+++ b/src/com/android/calendar/CalendarController.java
@@ -60,6 +60,8 @@
private LinkedHashMap<Integer,EventHandler> eventHandlers =
new LinkedHashMap<Integer,EventHandler>(5);
private LinkedList<Integer> mToBeRemovedEventHandlers = new LinkedList<Integer>();
+ private LinkedHashMap<Integer, EventHandler> mToBeAddedEventHandlers = new LinkedHashMap<
+ Integer, EventHandler>();
private boolean mDispatchInProgress;
private static WeakHashMap<Context, CalendarController> instances =
@@ -330,6 +332,8 @@
}
}
+ mDispatchInProgress = false;
+
// Deregister removed handlers
if (mToBeRemovedEventHandlers.size() > 0) {
for (Integer zombie : mToBeRemovedEventHandlers) {
@@ -337,7 +341,12 @@
}
mToBeRemovedEventHandlers.clear();
}
- mDispatchInProgress = false;
+ // Add new handlers
+ if (mToBeAddedEventHandlers.size() > 0) {
+ for (Entry<Integer, EventHandler> food : mToBeAddedEventHandlers.entrySet()) {
+ eventHandlers.put(food.getKey(), food.getValue());
+ }
+ }
}
if (!handled) {
@@ -377,7 +386,11 @@
*/
public void registerEventHandler(int key, EventHandler eventHandler) {
synchronized (this) {
- eventHandlers.put(key, eventHandler);
+ if (mDispatchInProgress) {
+ mToBeAddedEventHandlers.put(key, eventHandler);
+ } else {
+ eventHandlers.put(key, eventHandler);
+ }
}
}