// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.geocities.com/kpdus/jad.html // Decompiler options: braces fieldsfirst space lnc package com.olio.olios.model; import android.content.ContentResolver; import android.database.ContentObserver; import android.net.Uri; import android.os.Handler; import com.olio.communication.messages.MessagePayload; import com.olio.util.ALog; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; public abstract class SyncableMessageMonitor { private class MessageContentObserver extends ContentObserver { final SyncableMessageMonitor this$0; public boolean deliverSelfNotifications() { return false; } public void onChange(boolean flag, Uri uri) { Object obj; if (flag) { break MISSING_BLOCK_LABEL_221; } ALog.d("SyncableMessageMonitor: OnChange", new Object[0]); obj = hashFromUpdatedUri(uri); String s = (String)previousHashes.get(uri.getPath()); if (s == null || obj == null || !((String) (obj)).equals(s)) { break MISSING_BLOCK_LABEL_127; } try { obj = payloadFromUpdatedUri(uri); } // Misplaced declaration of an exception variable catch (Uri uri) { return; } if (obj != null) { break MISSING_BLOCK_LABEL_91; } ALog.e("SyncableMessageMonitor: THIS SHOULD NEVER HAPPEN. THE SAME OBJECT HAS BEEN SET TO THE SAME VALUE TWICE: uri: %s but it's null", new Object[] { uri.toString() }); return; ALog.e("SyncableMessageMonitor: THIS SHOULD NEVER HAPPEN. THE SAME OBJECT HAS BEEN SET TO THE SAME VALUE TWICE: uri: %s type: %s value: %s", new Object[] { uri.toString(), obj.getClass().getSimpleName(), obj.toString() }); return; SyncableMessage syncablemessage = payloadFromUpdatedUri(uri); if (syncablemessage != null) { previousHashes.put(uri.getPath(), obj); ALog.d("SyncableMessageMonitor: Updating Adapters for Message of type: %s", new Object[] { syncablemessage.getClass().getSimpleName() }); for (uri = syncAdapters().iterator(); uri.hasNext(); ((SyncAdapter)uri.next()).payloadUpdated(syncablemessage)) { } } } public MessageContentObserver(Handler handler) { this$0 = SyncableMessageMonitor.this; super(handler); } } public static interface SyncAdapter { public abstract void payloadUpdated(SyncableMessage syncablemessage); } public static interface SyncableMessage { public abstract int getEndPointsFlags(); public abstract MessagePayload getMessagePayload(); public abstract int getSourcePointsFlags(); public abstract String typeName(); } private ContentResolver contentResolver; private MessageContentObserver observer; private Map previousHashes; public SyncableMessageMonitor() { previousHashes = new HashMap(); } public abstract String hashFromUpdatedUri(Uri uri); public abstract SyncableMessage payloadFromUpdatedUri(Uri uri); public void register(Handler handler, ContentResolver contentresolver) { if (observer != null) { ALog.e("SyncableMessageMonitor already registered!", new Object[0]); return; } else { contentResolver = contentresolver; observer = new MessageContentObserver(handler); contentresolver.registerContentObserver(uriForRecords(), true, observer); return; } } public void reset() { previousHashes.clear(); } public abstract List syncAdapters(); public void unregister() { if (observer == null) { ALog.e("SyncableMessageMonitor unregistered, but it's not registered!", new Object[0]); return; } else { contentResolver.unregisterContentObserver(observer); observer = null; return; } } public abstract Uri uriForRecords(); }