package com.parse;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.text.TextUtils;
import android.util.Pair;
import com.parse.OfflineQueryLogic;
import com.parse.ParseQuery;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
import java.util.WeakHashMap;
import org.json.JSONException;
import org.json.JSONObject;
import p137.C2739;
import p137.C2740;
import p137.C2742;
import p137.C2754;
import p137.InterfaceC2741;
import p138.p139.p143.p144.C2803;

/* JADX INFO: loaded from: classes.dex */
public class OfflineStore {
    public final WeakValueHashMap<Pair<String, String>, ParseObject> classNameAndObjectIdToObjectMap;
    public final WeakHashMap<ParseObject, C2742<ParseObject>> fetchedObjects;
    public final OfflineSQLiteOpenHelper helper;
    public final Object lock;
    public final WeakHashMap<ParseObject, C2742<String>> objectToUuidMap;
    public final WeakValueHashMap<String, ParseObject> uuidToObjectMap;

    /* JADX INFO: renamed from: com.parse.OfflineStore$26, reason: invalid class name */
    public class AnonymousClass26 implements InterfaceC2741<ParseObject, C2742<Void>> {
        public final /* synthetic */ ParseObject val$object;

        public AnonymousClass26(ParseObject parseObject) {
            this.val$object = parseObject;
        }

        @Override // p137.InterfaceC2741
        public C2742<Void> then(C2742<ParseObject> c2742) {
            return c2742.m4820() ? ((c2742.m4806() instanceof ParseException) && ((ParseException) c2742.m4806()).code == 120) ? C2742.m4805((Object) null) : c2742.m4821() : OfflineStore.this.helper.getWritableDatabaseAsync().m4815(new InterfaceC2741<ParseSQLiteDatabase, C2742<Void>>() { // from class: com.parse.OfflineStore.26.1
                @Override // p137.InterfaceC2741
                public C2742<Void> then(C2742<ParseSQLiteDatabase> c27422) {
                    final ParseSQLiteDatabase parseSQLiteDatabaseM4812 = c27422.m4812();
                    return parseSQLiteDatabaseM4812.beginTransactionAsync().m4817(new InterfaceC2741<Void, C2742<Void>>() { // from class: com.parse.OfflineStore.26.1.1
                        @Override // p137.InterfaceC2741
                        public C2742<Void> then(C2742<Void> c27423) {
                            AnonymousClass26 anonymousClass26 = AnonymousClass26.this;
                            return OfflineStore.this.updateDataForObjectAsync(anonymousClass26.val$object, parseSQLiteDatabaseM4812).m4817(new InterfaceC2741<Void, C2742<Void>>() { // from class: com.parse.OfflineStore.26.1.1.2
                                @Override // p137.InterfaceC2741
                                public C2742<Void> then(C2742<Void> c27424) {
                                    return parseSQLiteDatabaseM4812.setTransactionSuccessfulAsync();
                                }
                            }, C2742.f8455).m4815(new InterfaceC2741<Void, C2742<Void>>() { // from class: com.parse.OfflineStore.26.1.1.1
                                @Override // p137.InterfaceC2741
                                public C2742<Void> then(C2742<Void> c27424) {
                                    parseSQLiteDatabaseM4812.endTransactionAsync();
                                    parseSQLiteDatabaseM4812.closeAsync();
                                    return c27424;
                                }
                            }, C2742.f8455, null);
                        }
                    }, C2742.f8455);
                }
            }, C2742.f8455, null);
        }
    }

    /* JADX INFO: Add missing generic type declarations: [T] */
    /* JADX INFO: renamed from: com.parse.OfflineStore$47, reason: invalid class name */
    public class AnonymousClass47<T> implements InterfaceC2741<ParseSQLiteDatabase, C2742<T>> {
        public final /* synthetic */ SQLiteDatabaseCallable val$callable;

        public AnonymousClass47(OfflineStore offlineStore, SQLiteDatabaseCallable sQLiteDatabaseCallable) {
            this.val$callable = sQLiteDatabaseCallable;
        }

        @Override // p137.InterfaceC2741
        public Object then(C2742<ParseSQLiteDatabase> c2742) {
            final ParseSQLiteDatabase parseSQLiteDatabaseM4812 = c2742.m4812();
            return ((C2742) this.val$callable.call(parseSQLiteDatabaseM4812)).m4815(new InterfaceC2741<T, C2742<T>>(this) { // from class: com.parse.OfflineStore.47.1
                @Override // p137.InterfaceC2741
                public Object then(C2742 c27422) {
                    parseSQLiteDatabaseM4812.closeAsync();
                    return c27422;
                }
            }, C2742.f8455, null);
        }
    }

    public class OfflineDecoder extends ParseDecoder {
        public Map<String, C2742<ParseObject>> offlineObjects;

        public /* synthetic */ OfflineDecoder(OfflineStore offlineStore, Map map, AnonymousClass1 anonymousClass1) {
            this.offlineObjects = map;
        }

        @Override // com.parse.ParseDecoder
        public Object decode(Object obj) {
            if (obj instanceof JSONObject) {
                JSONObject jSONObject = (JSONObject) obj;
                if (jSONObject.optString("__type").equals("OfflineObject")) {
                    return this.offlineObjects.get(jSONObject.optString("uuid")).m4812();
                }
            }
            return super.decode(obj);
        }
    }

    public class OfflineEncoder extends ParseEncoder {
        public ParseSQLiteDatabase db;
        public final Object tasksLock = new Object();
        public ArrayList<C2742<Void>> tasks = new ArrayList<>();

        public OfflineEncoder(ParseSQLiteDatabase parseSQLiteDatabase) {
            this.db = parseSQLiteDatabase;
        }

        @Override // com.parse.ParseEncoder
        public JSONObject encodeRelatedObject(ParseObject parseObject) {
            try {
                if (parseObject.getObjectId() != null) {
                    JSONObject jSONObject = new JSONObject();
                    jSONObject.put("__type", "Pointer");
                    jSONObject.put("objectId", parseObject.getObjectId());
                    jSONObject.put("className", parseObject.getClassName());
                    return jSONObject;
                }
                final JSONObject jSONObject2 = new JSONObject();
                jSONObject2.put("__type", "OfflineObject");
                synchronized (this.tasksLock) {
                    this.tasks.add(OfflineStore.this.getOrCreateUUIDAsync(parseObject, this.db).m4816(new InterfaceC2741<String, Void>(this) { // from class: com.parse.OfflineStore.OfflineEncoder.2
                        @Override // p137.InterfaceC2741
                        public Void then(C2742<String> c2742) throws JSONException {
                            jSONObject2.put("uuid", c2742.m4812());
                            return null;
                        }
                    }));
                }
                return jSONObject2;
            } catch (JSONException e) {
                throw new RuntimeException(e);
            }
        }
    }

    public interface SQLiteDatabaseCallable<T> {
        T call(ParseSQLiteDatabase parseSQLiteDatabase);
    }

    public OfflineStore(Context context) {
        OfflineSQLiteOpenHelper offlineSQLiteOpenHelper = new OfflineSQLiteOpenHelper(context);
        this.lock = new Object();
        this.uuidToObjectMap = new WeakValueHashMap<>();
        this.objectToUuidMap = new WeakHashMap<>();
        this.fetchedObjects = new WeakHashMap<>();
        this.classNameAndObjectIdToObjectMap = new WeakValueHashMap<>();
        this.helper = offlineSQLiteOpenHelper;
    }

    public static /* synthetic */ C2742 access$1300(OfflineStore offlineStore, ParseObject parseObject, boolean z, ParseSQLiteDatabase parseSQLiteDatabase) {
        if (offlineStore == null) {
            throw null;
        }
        final ArrayList arrayList = new ArrayList();
        if (z) {
            ParseTraverser parseTraverser = new ParseTraverser(offlineStore) { // from class: com.parse.OfflineStore.15
                @Override // com.parse.ParseTraverser
                public boolean visit(Object obj) {
                    if (!(obj instanceof ParseObject)) {
                        return true;
                    }
                    arrayList.add((ParseObject) obj);
                    return true;
                }
            };
            parseTraverser.yieldRoot = true;
            parseTraverser.traverseParseObjects = true;
            parseTraverser.traverse(parseObject);
        } else {
            arrayList.add(parseObject);
        }
        return offlineStore.saveLocallyAsync(parseObject, arrayList, parseSQLiteDatabase);
    }

    public static /* synthetic */ C2742 access$1800(OfflineStore offlineStore, ParseObject parseObject, final ParseSQLiteDatabase parseSQLiteDatabase) {
        C2742<String> c2742 = offlineStore.objectToUuidMap.get(parseObject);
        return c2742 == null ? C2742.m4805((Object) null) : c2742.m4815(new InterfaceC2741<String, C2742<Void>>() { // from class: com.parse.OfflineStore.20
            @Override // p137.InterfaceC2741
            public C2742<Void> then(C2742<String> c27422) {
                String strM4812 = c27422.m4812();
                return strM4812 == null ? C2742.m4805((Object) null) : OfflineStore.access$800(OfflineStore.this, strM4812, parseSQLiteDatabase);
            }
        }, C2742.f8455, null);
    }

    public static /* synthetic */ C2742 access$500(OfflineStore offlineStore, final String str, final ParseObject parseObject, final ParseSQLiteDatabase parseSQLiteDatabase) {
        if (offlineStore == null) {
            throw null;
        }
        final OfflineEncoder offlineEncoder = offlineStore.new OfflineEncoder(parseSQLiteDatabase);
        final JSONObject rest = parseObject.toRest(offlineEncoder);
        return C2742.m4801((Collection<? extends C2742<?>>) offlineEncoder.tasks).m4815(new InterfaceC2741<Void, C2742<Void>>() { // from class: com.parse.OfflineStore.OfflineEncoder.1
            @Override // p137.InterfaceC2741
            public /* bridge */ /* synthetic */ C2742<Void> then(C2742<Void> c2742) {
                return then();
            }

            public C2742 then() {
                synchronized (OfflineEncoder.this.tasksLock) {
                    for (C2742<Void> c2742 : OfflineEncoder.this.tasks) {
                        if (c2742.m4820() || c2742.m4818()) {
                            return c2742;
                        }
                    }
                    OfflineEncoder.this.tasks.clear();
                    return C2742.m4805((Object) null);
                }
            }
        }, C2742.f8455, null).m4817(new InterfaceC2741<Void, C2742<Void>>(offlineStore) { // from class: com.parse.OfflineStore.28
            @Override // p137.InterfaceC2741
            public C2742<Void> then(C2742<Void> c2742) throws JSONException {
                String className = parseObject.getClassName();
                String objectId = parseObject.getObjectId();
                int i = rest.getInt("__isDeletingEventually");
                ContentValues contentValues = new ContentValues();
                contentValues.put("className", className);
                contentValues.put("json", rest.toString());
                if (objectId != null) {
                    contentValues.put("objectId", objectId);
                }
                contentValues.put("isDeletingEventually", Integer.valueOf(i));
                return parseSQLiteDatabase.updateAsync("ParseObjects", contentValues, "uuid = ?", new String[]{str}).m4821();
            }
        }, C2742.f8455);
    }

    public static /* synthetic */ C2742 access$800(OfflineStore offlineStore, final String str, final ParseSQLiteDatabase parseSQLiteDatabase) {
        if (offlineStore == null) {
            throw null;
        }
        final LinkedList linkedList = new LinkedList();
        return C2742.m4805((Object) null).m4815(new InterfaceC2741<Void, C2742<Cursor>>(offlineStore) { // from class: com.parse.OfflineStore.24
            @Override // p137.InterfaceC2741
            public C2742<Cursor> then(C2742<Void> c2742) {
                return parseSQLiteDatabase.rawQueryAsync("SELECT uuid FROM Dependencies WHERE key=? AND uuid IN ( SELECT uuid FROM Dependencies GROUP BY uuid HAVING COUNT(uuid)=1)", new String[]{str});
            }
        }, C2742.f8455, null).m4817(new InterfaceC2741<Cursor, C2742<Void>>() { // from class: com.parse.OfflineStore.23
            @Override // p137.InterfaceC2741
            public C2742<Void> then(C2742<Cursor> c2742) {
                Cursor cursorM4812 = c2742.m4812();
                while (cursorM4812.moveToNext()) {
                    linkedList.add(cursorM4812.getString(0));
                }
                cursorM4812.close();
                return OfflineStore.this.deleteObjects(linkedList, parseSQLiteDatabase);
            }
        }, C2742.f8455).m4817(new InterfaceC2741<Void, C2742<Void>>(offlineStore) { // from class: com.parse.OfflineStore.22
            @Override // p137.InterfaceC2741
            public C2742<Void> then(C2742<Void> c2742) {
                return parseSQLiteDatabase.deleteAsync("Dependencies", "key=?", new String[]{str});
            }
        }, C2742.f8455).m4816(new InterfaceC2741<Void, Void>() { // from class: com.parse.OfflineStore.21
            @Override // p137.InterfaceC2741
            public /* bridge */ /* synthetic */ Void then(C2742<Void> c2742) {
                then();
                return null;
            }

            public Void then() {
                synchronized (OfflineStore.this.lock) {
                    for (String str2 : linkedList) {
                        ParseObject parseObject = OfflineStore.this.uuidToObjectMap.get(str2);
                        if (parseObject != null) {
                            OfflineStore.this.objectToUuidMap.remove(parseObject);
                            OfflineStore.this.uuidToObjectMap.map.remove(str2);
                        }
                    }
                }
                return null;
            }
        });
    }

    public final C2742<Void> deleteDataForObjectAsync(final ParseObject parseObject, final ParseSQLiteDatabase parseSQLiteDatabase) {
        final C2740 c2740 = new C2740();
        synchronized (this.lock) {
            C2742<String> c2742 = this.objectToUuidMap.get(parseObject);
            if (c2742 != null) {
                return c2742.m4817(new InterfaceC2741<String, C2742<String>>(this) { // from class: com.parse.OfflineStore.30
                    /* JADX WARN: Type inference failed for: r1v0, types: [T, java.lang.Object] */
                    @Override // p137.InterfaceC2741
                    public C2742<String> then(C2742<String> c27422) {
                        c2740.f8453 = c27422.m4812();
                        return c27422;
                    }
                }, C2742.f8455).m4817(new InterfaceC2741<String, C2742<Cursor>>(this) { // from class: com.parse.OfflineStore.32
                    /* JADX WARN: Multi-variable type inference failed */
                    @Override // p137.InterfaceC2741
                    public C2742<Cursor> then(C2742<String> c27422) {
                        return parseSQLiteDatabase.queryAsync("Dependencies", new String[]{"key"}, "uuid=?", new String[]{(String) c2740.f8453});
                    }
                }, C2742.f8455).m4817(new InterfaceC2741<Cursor, C2742<Void>>() { // from class: com.parse.OfflineStore.31
                    @Override // p137.InterfaceC2741
                    public C2742<Void> then(C2742<Cursor> c27422) {
                        Cursor cursorM4812 = c27422.m4812();
                        ArrayList<String> arrayList = new ArrayList();
                        cursorM4812.moveToFirst();
                        while (!cursorM4812.isAfterLast()) {
                            arrayList.add(cursorM4812.getString(0));
                            cursorM4812.moveToNext();
                        }
                        cursorM4812.close();
                        ArrayList arrayList2 = new ArrayList();
                        for (final String str : arrayList) {
                            arrayList2.add(OfflineStore.this.getPointerAsync(str, parseSQLiteDatabase).m4817(new InterfaceC2741<ParseObject, C2742<ParsePin>>() { // from class: com.parse.OfflineStore.31.2
                                @Override // p137.InterfaceC2741
                                public C2742<ParsePin> then(C2742<ParseObject> c27423) {
                                    ParsePin parsePin = (ParsePin) c27423.m4812();
                                    AnonymousClass31 anonymousClass31 = AnonymousClass31.this;
                                    return OfflineStore.this.fetchLocallyAsync(parsePin, parseSQLiteDatabase);
                                }
                            }, C2742.f8455).m4815(new InterfaceC2741<ParsePin, C2742<Void>>() { // from class: com.parse.OfflineStore.31.1
                                @Override // p137.InterfaceC2741
                                public C2742<Void> then(C2742<ParsePin> c27423) {
                                    ParsePin parsePinM4812 = c27423.m4812();
                                    List<ParseObject> objects = parsePinM4812.getObjects();
                                    if (objects == null || !objects.contains(parseObject)) {
                                        return c27423.m4821();
                                    }
                                    objects.remove(parseObject);
                                    if (objects.size() == 0) {
                                        AnonymousClass31 anonymousClass31 = AnonymousClass31.this;
                                        return OfflineStore.access$800(OfflineStore.this, str, parseSQLiteDatabase);
                                    }
                                    parsePinM4812.put("_objects", objects);
                                    AnonymousClass31 anonymousClass312 = AnonymousClass31.this;
                                    return OfflineStore.access$1300(OfflineStore.this, parsePinM4812, true, parseSQLiteDatabase);
                                }
                            }, C2742.f8455, null));
                        }
                        return C2742.m4801((Collection<? extends C2742<?>>) arrayList2);
                    }
                }, C2742.f8455).m4817(new InterfaceC2741<Void, C2742<Void>>(this) { // from class: com.parse.OfflineStore.35
                    /* JADX WARN: Multi-variable type inference failed */
                    @Override // p137.InterfaceC2741
                    public C2742<Void> then(C2742<Void> c27422) {
                        return parseSQLiteDatabase.deleteAsync("Dependencies", "uuid=?", new String[]{(String) c2740.f8453});
                    }
                }, C2742.f8455).m4817(new InterfaceC2741<Void, C2742<Void>>(this) { // from class: com.parse.OfflineStore.34
                    /* JADX WARN: Multi-variable type inference failed */
                    @Override // p137.InterfaceC2741
                    public C2742<Void> then(C2742<Void> c27422) {
                        return parseSQLiteDatabase.deleteAsync("ParseObjects", "uuid=?", new String[]{(String) c2740.f8453});
                    }
                }, C2742.f8455).m4817(new InterfaceC2741<Void, C2742<Void>>() { // from class: com.parse.OfflineStore.33
                    @Override // p137.InterfaceC2741
                    public /* bridge */ /* synthetic */ C2742<Void> then(C2742<Void> c27422) {
                        then(c27422);
                        return c27422;
                    }

                    @Override // p137.InterfaceC2741
                    public C2742<Void> then(C2742<Void> c27422) {
                        synchronized (OfflineStore.this.lock) {
                            OfflineStore.this.fetchedObjects.remove(parseObject);
                        }
                        return c27422;
                    }
                }, C2742.f8455);
            }
            return C2742.m4805((Object) null);
        }
    }

    public final C2742<Void> deleteObjects(final List<String> list, final ParseSQLiteDatabase parseSQLiteDatabase) {
        if (list.size() <= 0) {
            return C2742.m4805((Object) null);
        }
        if (list.size() > 999) {
            return deleteObjects(list.subList(0, 999), parseSQLiteDatabase).m4817(new InterfaceC2741<Void, C2742<Void>>() { // from class: com.parse.OfflineStore.25
                @Override // p137.InterfaceC2741
                public C2742<Void> then(C2742<Void> c2742) {
                    OfflineStore offlineStore = OfflineStore.this;
                    List list2 = list;
                    return offlineStore.deleteObjects(list2.subList(999, list2.size()), parseSQLiteDatabase);
                }
            }, C2742.f8455);
        }
        int size = list.size();
        String[] strArr = new String[size];
        for (int i = 0; i < size; i++) {
            strArr[i] = "?";
        }
        return parseSQLiteDatabase.deleteAsync("ParseObjects", C2803.m4884(C2803.m4889("uuid IN ("), TextUtils.join(",", strArr), ")"), (String[]) list.toArray(new String[list.size()]));
    }

    public <T extends ParseObject> C2742<T> fetchLocallyAsync(final T t) {
        return (C2742<T>) this.helper.getWritableDatabaseAsync().m4817(new AnonymousClass47(this, new SQLiteDatabaseCallable<C2742<T>>() { // from class: com.parse.OfflineStore.12
            @Override // com.parse.OfflineStore.SQLiteDatabaseCallable
            public Object call(ParseSQLiteDatabase parseSQLiteDatabase) {
                return OfflineStore.this.fetchLocallyAsync(t, parseSQLiteDatabase);
            }
        }), C2742.f8455);
    }

    /* JADX WARN: Type inference incomplete: some casts might be missing */
    public <T extends ParseObject> C2742<T> fetchLocallyAsync(final T t, final ParseSQLiteDatabase parseSQLiteDatabase) {
        final C2754 c2754 = new C2754();
        synchronized (this.lock) {
            if (this.fetchedObjects.containsKey(t)) {
                return (C2742) this.fetchedObjects.get(t);
            }
            this.fetchedObjects.put(t, (C2742<ParseObject>) c2754.f8503);
            C2742<String> c2742 = this.objectToUuidMap.get(t);
            String className = t.getClassName();
            String objectId = t.getObjectId();
            C2742 c2742M4805 = C2742.m4805((Object) null);
            if (objectId == null) {
                if (c2742 != null) {
                    final String[] strArr = {"json"};
                    final C2740 c2740 = new C2740();
                    c2742M4805 = c2742.m4817(new InterfaceC2741<String, C2742<Cursor>>(this) { // from class: com.parse.OfflineStore.8
                        /* JADX WARN: Multi-variable type inference failed */
                        /* JADX WARN: Type inference failed for: r5v1, types: [T, java.lang.Object] */
                        @Override // p137.InterfaceC2741
                        public C2742<Cursor> then(C2742<String> c27422) {
                            c2740.f8453 = c27422.m4812();
                            return parseSQLiteDatabase.queryAsync("ParseObjects", strArr, "uuid = ?", new String[]{(String) c2740.f8453});
                        }
                    }, C2742.f8455).m4816(new InterfaceC2741<Cursor, String>(this) { // from class: com.parse.OfflineStore.7
                        /* JADX WARN: Multi-variable type inference failed */
                        @Override // p137.InterfaceC2741
                        public String then(C2742<Cursor> c27422) {
                            Cursor cursorM4812 = c27422.m4812();
                            cursorM4812.moveToFirst();
                            if (!cursorM4812.isAfterLast()) {
                                String string = cursorM4812.getString(0);
                                cursorM4812.close();
                                return string;
                            }
                            cursorM4812.close();
                            StringBuilder sbM4889 = C2803.m4889("Attempted to find non-existent uuid ");
                            sbM4889.append((String) c2740.f8453);
                            throw new IllegalStateException(sbM4889.toString());
                        }
                    });
                }
            } else {
                if (c2742 != null) {
                    c2754.m4826((Exception) new IllegalStateException("This object must have already been fetched from the local datastore, but isn't marked as fetched."));
                    synchronized (this.lock) {
                        this.fetchedObjects.remove(t);
                    }
                    return c2754.f8503;
                }
                c2742M4805 = parseSQLiteDatabase.queryAsync("ParseObjects", new String[]{"json", "uuid"}, String.format("%s = ? AND %s = ?", "className", "objectId"), new String[]{className, objectId}).m4816(new InterfaceC2741<Cursor, String>() { // from class: com.parse.OfflineStore.9
                    @Override // p137.InterfaceC2741
                    public String then(C2742<Cursor> c27422) throws ParseException {
                        Cursor cursorM4812 = c27422.m4812();
                        cursorM4812.moveToFirst();
                        if (cursorM4812.isAfterLast()) {
                            cursorM4812.close();
                            throw new ParseException(120, "This object is not available in the offline cache.");
                        }
                        String string = cursorM4812.getString(0);
                        String string2 = cursorM4812.getString(1);
                        cursorM4812.close();
                        synchronized (OfflineStore.this.lock) {
                            OfflineStore.this.objectToUuidMap.put(t, C2742.m4805(string2));
                            OfflineStore.this.uuidToObjectMap.put(string2, t);
                        }
                        return string;
                    }
                });
            }
            return c2742M4805.m4817(new InterfaceC2741<String, C2742<Void>>() { // from class: com.parse.OfflineStore.11
                @Override // p137.InterfaceC2741
                public C2742<Void> then(C2742<String> c27422) {
                    String strM4812 = c27422.m4812();
                    if (strM4812 == null) {
                        return C2742.m4804((Exception) new ParseException(120, "Attempted to fetch an object offline which was never saved to the offline cache."));
                    }
                    try {
                        final JSONObject jSONObject = new JSONObject(strM4812);
                        final HashMap map = new HashMap();
                        ParseTraverser parseTraverser = new ParseTraverser() { // from class: com.parse.OfflineStore.11.1
                            @Override // com.parse.ParseTraverser
                            public boolean visit(Object obj) {
                                if (!(obj instanceof JSONObject)) {
                                    return true;
                                }
                                JSONObject jSONObject2 = (JSONObject) obj;
                                if (!jSONObject2.optString("__type").equals("OfflineObject")) {
                                    return true;
                                }
                                String strOptString = jSONObject2.optString("uuid");
                                Map map2 = map;
                                AnonymousClass11 anonymousClass11 = AnonymousClass11.this;
                                map2.put(strOptString, OfflineStore.this.getPointerAsync(strOptString, parseSQLiteDatabase));
                                return true;
                            }
                        };
                        parseTraverser.traverseParseObjects = false;
                        parseTraverser.yieldRoot = false;
                        parseTraverser.traverse(jSONObject);
                        return C2742.m4801((Collection<? extends C2742<?>>) map.values()).m4816(new InterfaceC2741<Void, Void>() { // from class: com.parse.OfflineStore.11.2
                            @Override // p137.InterfaceC2741
                            public Void then(C2742<Void> c27423) {
                                ParseObject parseObject = t;
                                parseObject.mergeREST(parseObject.getState(), jSONObject, new OfflineDecoder(OfflineStore.this, map, null));
                                return null;
                            }
                        });
                    } catch (JSONException e) {
                        return C2742.m4804((Exception) e);
                    }
                }
            }, C2742.f8455).m4815(new InterfaceC2741<Void, C2742<T>>(this) { // from class: com.parse.OfflineStore.10
                @Override // p137.InterfaceC2741
                public Object then(C2742<Void> c27422) {
                    if (c27422.m4818()) {
                        c2754.m4825();
                    } else if (c27422.m4820()) {
                        c2754.m4826(c27422.m4806());
                    } else {
                        c2754.m4827(t);
                    }
                    return c2754.f8503;
                }
            }, C2742.f8455, null);
        }
    }

    public final <T extends ParseObject> C2742<List<T>> findAsync(final ParseQuery.State<T> state, final ParseUser parseUser, ParsePin parsePin, final boolean z, final ParseSQLiteDatabase parseSQLiteDatabase) {
        C2742<Cursor> c2742M4817;
        final OfflineQueryLogic offlineQueryLogic = new OfflineQueryLogic(this);
        final ArrayList arrayList = new ArrayList();
        if (parsePin == null) {
            c2742M4817 = parseSQLiteDatabase.queryAsync("ParseObjects", new String[]{"uuid"}, "className=? AND isDeletingEventually=0", new String[]{state.className});
        } else {
            C2742<String> c2742 = this.objectToUuidMap.get(parsePin);
            if (c2742 == null) {
                return C2742.m4805(arrayList);
            }
            c2742M4817 = c2742.m4817(new InterfaceC2741<String, C2742<Cursor>>(this) { // from class: com.parse.OfflineStore.4
                @Override // p137.InterfaceC2741
                public C2742<Cursor> then(C2742<String> c27422) {
                    String strM4812 = c27422.m4812();
                    return parseSQLiteDatabase.queryAsync("ParseObjects A  INNER JOIN Dependencies B  ON A.uuid=B.uuid", new String[]{"A.uuid"}, C2803.m4879("className=? AND key=?", " AND isDeletingEventually=0"), new String[]{state.className, strM4812});
                }
            }, C2742.f8455);
        }
        return c2742M4817.m4817(new InterfaceC2741<Cursor, C2742<Void>>() { // from class: com.parse.OfflineStore.6
            @Override // p137.InterfaceC2741
            public C2742<Void> then(C2742<Cursor> c27422) {
                Cursor cursorM4812 = c27422.m4812();
                ArrayList<String> arrayList2 = new ArrayList();
                cursorM4812.moveToFirst();
                while (!cursorM4812.isAfterLast()) {
                    arrayList2.add(cursorM4812.getString(0));
                    cursorM4812.moveToNext();
                }
                cursorM4812.close();
                final OfflineQueryLogic offlineQueryLogic2 = offlineQueryLogic;
                ParseQuery.State state2 = state;
                final ParseUser parseUser2 = parseUser;
                if (offlineQueryLogic2 == null) {
                    throw null;
                }
                final boolean z2 = state2.ignoreACLs;
                final OfflineQueryLogic.ConstraintMatcher constraintMatcherCreateMatcher = offlineQueryLogic2.createMatcher(parseUser2, state2.where);
                final OfflineQueryLogic.ConstraintMatcher<T> constraintMatcher = new OfflineQueryLogic.ConstraintMatcher<T>(offlineQueryLogic2, parseUser2) { // from class: com.parse.OfflineQueryLogic.22
                    /* JADX WARN: Incorrect types in method signature: (TT;Lcom/parse/ParseSQLiteDatabase;)Lފ/ރ<Ljava/lang/Boolean;>; */
                    /* JADX WARN: Removed duplicated region for block: B:27:0x004b  */
                    @Override // com.parse.OfflineQueryLogic.ConstraintMatcher
                    /*
                        Code decompiled incorrectly, please refer to instructions dump.
                    */
                    public C2742 matchesAsync(ParseObject parseObject, ParseSQLiteDatabase parseSQLiteDatabase2) {
                        ParseACL acl;
                        boolean readAccess;
                        if (!z2) {
                            ParseUser parseUser3 = this.user;
                            boolean z3 = true;
                            if (parseUser3 != parseObject && (acl = parseObject.getACL(true)) != null && !acl.getReadAccess("*")) {
                                if (parseUser3 == null) {
                                    z3 = false;
                                } else {
                                    if (acl.isUnresolvedUser(parseUser3)) {
                                        readAccess = acl.getReadAccess("*unresolved");
                                    } else if (parseUser3.isLazy()) {
                                        readAccess = false;
                                    } else {
                                        if (parseUser3.getObjectId() == null) {
                                            throw new IllegalArgumentException("cannot getReadAccess for a user with null id");
                                        }
                                        readAccess = acl.getReadAccess(parseUser3.getObjectId());
                                    }
                                    if (!readAccess) {
                                    }
                                }
                            }
                            if (!z3) {
                                return C2742.m4805(false);
                            }
                        }
                        return constraintMatcherCreateMatcher.matchesAsync(parseObject, parseSQLiteDatabase2);
                    }
                };
                C2742<Void> c2742M4805 = C2742.m4805((Object) null);
                for (final String str : arrayList2) {
                    final C2740 c2740 = new C2740();
                    c2742M4805 = c2742M4805.m4817(new InterfaceC2741<Void, C2742<T>>() { // from class: com.parse.OfflineStore.6.4
                        @Override // p137.InterfaceC2741
                        public Object then(C2742<Void> c27423) {
                            AnonymousClass6 anonymousClass6 = AnonymousClass6.this;
                            return OfflineStore.this.getPointerAsync(str, parseSQLiteDatabase);
                        }
                    }, C2742.f8455).m4817(new InterfaceC2741<T, C2742<T>>() { // from class: com.parse.OfflineStore.6.3
                        @Override // p137.InterfaceC2741
                        public Object then(C2742 c27423) {
                            c2740.f8453 = (T) c27423.m4812();
                            AnonymousClass6 anonymousClass6 = AnonymousClass6.this;
                            return OfflineStore.this.fetchLocallyAsync((ParseObject) c2740.f8453, parseSQLiteDatabase);
                        }
                    }, C2742.f8455).m4817(new InterfaceC2741<T, C2742<Boolean>>() { // from class: com.parse.OfflineStore.6.2
                        @Override // p137.InterfaceC2741
                        public C2742<Boolean> then(C2742 c27423) {
                            return !((ParseObject) c2740.f8453).isDataAvailable() ? C2742.m4805(false) : constraintMatcher.matchesAsync((ParseObject) c2740.f8453, parseSQLiteDatabase);
                        }
                    }, C2742.f8455).m4816(new InterfaceC2741<Boolean, Void>() { // from class: com.parse.OfflineStore.6.1
                        @Override // p137.InterfaceC2741
                        public Void then(C2742<Boolean> c27423) {
                            if (!c27423.m4812().booleanValue()) {
                                return null;
                            }
                            arrayList.add(c2740.f8453);
                            return null;
                        }
                    });
                }
                return c2742M4805;
            }
        }, C2742.f8455).m4817(new InterfaceC2741<Void, C2742<List<T>>>() { // from class: com.parse.OfflineStore.5
            @Override // p137.InterfaceC2741
            public Object then(C2742<Void> c27422) throws ParseException {
                List list = arrayList;
                ParseQuery.State state2 = state;
                final List<String> list2 = state2.order;
                for (String str : list2) {
                    if (!str.matches("^-?[A-Za-z][A-Za-z0-9_]*$") && !"_created_at".equals(str) && !"_updated_at".equals(str)) {
                        throw new ParseException(105, String.format("Invalid key name: \"%s\".", str));
                    }
                }
                final String str2 = null;
                final ParseGeoPoint parseGeoPoint = null;
                for (String str3 : state2.where.keySet()) {
                    Object obj = state2.where.get(str3);
                    if (obj instanceof ParseQuery.KeyConstraints) {
                        ParseQuery.KeyConstraints keyConstraints = (ParseQuery.KeyConstraints) obj;
                        if (keyConstraints.containsKey("$nearSphere")) {
                            parseGeoPoint = (ParseGeoPoint) keyConstraints.get("$nearSphere");
                            str2 = str3;
                        }
                    }
                }
                if (list2.size() != 0 || str2 != null) {
                    Collections.sort(list, new Comparator<T>() { // from class: com.parse.OfflineQueryLogic.7
                        @Override // java.util.Comparator
                        public int compare(Object obj2, Object obj3) {
                            boolean z2;
                            ParseObject parseObject = (ParseObject) obj2;
                            ParseObject parseObject2 = (ParseObject) obj3;
                            String str4 = str2;
                            if (str4 != null) {
                                try {
                                    ParseGeoPoint parseGeoPoint2 = (ParseGeoPoint) OfflineQueryLogic.access$100(parseObject, str4);
                                    ParseGeoPoint parseGeoPoint3 = (ParseGeoPoint) OfflineQueryLogic.access$100(parseObject2, str2);
                                    double dDistanceInRadiansTo = parseGeoPoint2.distanceInRadiansTo(parseGeoPoint);
                                    double dDistanceInRadiansTo2 = parseGeoPoint3.distanceInRadiansTo(parseGeoPoint);
                                    if (dDistanceInRadiansTo != dDistanceInRadiansTo2) {
                                        return dDistanceInRadiansTo - dDistanceInRadiansTo2 > 0.0d ? 1 : -1;
                                    }
                                } catch (ParseException e) {
                                    throw new RuntimeException(e);
                                }
                            }
                            for (String strSubstring : list2) {
                                if (strSubstring.startsWith("-")) {
                                    strSubstring = strSubstring.substring(1);
                                    z2 = true;
                                } else {
                                    z2 = false;
                                }
                                try {
                                    try {
                                        int iCompareTo = OfflineQueryLogic.compareTo(OfflineQueryLogic.access$100(parseObject, strSubstring), OfflineQueryLogic.access$100(parseObject2, strSubstring));
                                        if (iCompareTo != 0) {
                                            return z2 ? -iCompareTo : iCompareTo;
                                        }
                                    } catch (IllegalArgumentException e2) {
                                        throw new IllegalArgumentException(String.format("Unable to sort by key %s.", strSubstring), e2);
                                    }
                                } catch (ParseException e3) {
                                    throw new RuntimeException(e3);
                                }
                            }
                            return 0;
                        }
                    });
                }
                final List<ParseObject> listSubList = arrayList;
                int i = state.skip;
                if (!z && i >= 0) {
                    listSubList = listSubList.subList(Math.min(i, listSubList.size()), listSubList.size());
                }
                int i2 = state.limit;
                if (!z && i2 >= 0 && listSubList.size() > i2) {
                    listSubList = listSubList.subList(0, i2);
                }
                C2742 c2742M4805 = C2742.m4805((Object) null);
                for (final ParseObject parseObject : listSubList) {
                    c2742M4805 = c2742M4805.m4817(new InterfaceC2741<Void, C2742<Void>>() { // from class: com.parse.OfflineStore.5.1
                        @Override // p137.InterfaceC2741
                        public C2742<Void> then(C2742<Void> c27423) {
                            AnonymousClass5 anonymousClass5 = AnonymousClass5.this;
                            final OfflineStore offlineStore = OfflineStore.this;
                            final ParseObject parseObject2 = parseObject;
                            ParseQuery.State state3 = state;
                            final ParseSQLiteDatabase parseSQLiteDatabase2 = parseSQLiteDatabase;
                            Set<String> set = state3.include;
                            C2742<Void> c2742M48052 = C2742.m4805((Object) null);
                            for (final String str4 : set) {
                                c2742M48052 = c2742M48052.m4817(new InterfaceC2741<Void, C2742<Void>>() { // from class: com.parse.OfflineQueryLogic.12
                                    @Override // p137.InterfaceC2741
                                    public C2742<Void> then(C2742<Void> c27424) {
                                        return OfflineQueryLogic.access$200(offlineStore, parseObject2, str4, parseSQLiteDatabase2);
                                    }
                                }, C2742.f8455);
                            }
                            return c2742M48052;
                        }
                    }, C2742.f8455);
                }
                return c2742M4805.m4816(new InterfaceC2741<Void, List<T>>(this) { // from class: com.parse.OfflineStore.5.2
                    @Override // p137.InterfaceC2741
                    public Object then(C2742<Void> c27423) {
                        return listSubList;
                    }
                });
            }
        }, C2742.f8455);
    }

    public ParseObject getObject(String str, String str2) {
        ParseObject parseObject;
        if (str2 == null) {
            throw new IllegalStateException("objectId cannot be null.");
        }
        Pair<String, String> pairCreate = Pair.create(str, str2);
        synchronized (this.lock) {
            parseObject = this.classNameAndObjectIdToObjectMap.get(pairCreate);
        }
        return parseObject;
    }

    /* JADX WARN: Type inference incomplete: some casts might be missing */
    public final C2742<String> getOrCreateUUIDAsync(final ParseObject parseObject, ParseSQLiteDatabase parseSQLiteDatabase) {
        final String string = UUID.randomUUID().toString();
        final C2754 c2754 = new C2754();
        synchronized (this.lock) {
            C2742<String> c2742 = this.objectToUuidMap.get(parseObject);
            if (c2742 != null) {
                return c2742;
            }
            this.objectToUuidMap.put(parseObject, (C2742<String>) c2754.f8503);
            this.uuidToObjectMap.put(string, parseObject);
            this.fetchedObjects.put(parseObject, c2754.f8503.m4816((InterfaceC2741<TResult, TContinuationResult>) new InterfaceC2741<String, ParseObject>(this) { // from class: com.parse.OfflineStore.1
                @Override // p137.InterfaceC2741
                public ParseObject then(C2742<String> c27422) {
                    return parseObject;
                }
            }));
            ContentValues contentValues = new ContentValues();
            contentValues.put("uuid", string);
            contentValues.put("className", parseObject.getClassName());
            parseSQLiteDatabase.insertOrThrowAsync("ParseObjects", contentValues).m4809((InterfaceC2741<Void, TContinuationResult>) new InterfaceC2741<Void, Void>(this) { // from class: com.parse.OfflineStore.2
                @Override // p137.InterfaceC2741
                public Void then(C2742<Void> c27422) {
                    c2754.m4827(string);
                    return null;
                }
            }, C2742.f8455, (C2739) null);
            return c2754.f8503;
        }
    }

    public final C2742<ParsePin> getParsePin(final String str, ParseSQLiteDatabase parseSQLiteDatabase) {
        ParseQuery.State.Builder builder = new ParseQuery.State.Builder(ParseCorePlugins.INSTANCE.getSubclassingController().getClassName(ParsePin.class));
        builder.where.put("_name", str);
        return findAsync(builder.build(), null, null, false, parseSQLiteDatabase).m4816(new InterfaceC2741<List<ParsePin>, ParsePin>(this) { // from class: com.parse.OfflineStore.36
            @Override // p137.InterfaceC2741
            public ParsePin then(C2742<List<ParsePin>> c2742) {
                ParsePin parsePin = (c2742.m4812() == null || c2742.m4812().size() <= 0) ? null : c2742.m4812().get(0);
                if (parsePin != null) {
                    return parsePin;
                }
                ParsePin parsePin2 = (ParsePin) ParseObject.create(ParsePin.class);
                parsePin2.put("_name", str);
                return parsePin2;
            }
        });
    }

    public final <T extends ParseObject> C2742<T> getPointerAsync(final String str, ParseSQLiteDatabase parseSQLiteDatabase) {
        synchronized (this.lock) {
            ParseObject parseObject = this.uuidToObjectMap.get(str);
            if (parseObject == null) {
                return (C2742<T>) parseSQLiteDatabase.queryAsync("ParseObjects", new String[]{"className", "objectId"}, "uuid = ?", new String[]{str}).m4816(new InterfaceC2741<Cursor, T>() { // from class: com.parse.OfflineStore.3
                    /* JADX WARN: Incorrect return type in method signature: (Lފ/ރ<Landroid/database/Cursor;>;)TT; */
                    @Override // p137.InterfaceC2741
                    public ParseObject then(C2742<Cursor> c2742) {
                        Cursor cursorM4812 = c2742.m4812();
                        cursorM4812.moveToFirst();
                        if (cursorM4812.isAfterLast()) {
                            cursorM4812.close();
                            StringBuilder sbM4889 = C2803.m4889("Attempted to find non-existent uuid ");
                            sbM4889.append(str);
                            throw new IllegalStateException(sbM4889.toString());
                        }
                        synchronized (OfflineStore.this.lock) {
                            ParseObject parseObject2 = OfflineStore.this.uuidToObjectMap.get(str);
                            if (parseObject2 != null) {
                                return parseObject2;
                            }
                            String string = cursorM4812.getString(0);
                            String string2 = cursorM4812.getString(1);
                            cursorM4812.close();
                            ParseObject parseObjectCreateWithoutData = ParseObject.createWithoutData(string, string2);
                            if (string2 == null) {
                                OfflineStore.this.uuidToObjectMap.put(str, parseObjectCreateWithoutData);
                                OfflineStore.this.objectToUuidMap.put(parseObjectCreateWithoutData, C2742.m4805(str));
                            }
                            return parseObjectCreateWithoutData;
                        }
                    }
                });
            }
            return C2742.m4805(parseObject);
        }
    }

    public void registerNewObject(ParseObject parseObject) {
        synchronized (this.lock) {
            String objectId = parseObject.getObjectId();
            if (objectId != null) {
                this.classNameAndObjectIdToObjectMap.put(Pair.create(parseObject.getClassName(), objectId), parseObject);
            }
        }
    }

    public final C2742<Void> runWithManagedTransaction(final SQLiteDatabaseCallable<C2742<Void>> sQLiteDatabaseCallable) {
        return this.helper.getWritableDatabaseAsync().m4817(new InterfaceC2741<ParseSQLiteDatabase, C2742<Void>>(this) { // from class: com.parse.OfflineStore.48
            @Override // p137.InterfaceC2741
            public C2742<Void> then(C2742<ParseSQLiteDatabase> c2742) {
                final ParseSQLiteDatabase parseSQLiteDatabaseM4812 = c2742.m4812();
                return parseSQLiteDatabaseM4812.beginTransactionAsync().m4817(new InterfaceC2741<Void, C2742<Void>>() { // from class: com.parse.OfflineStore.48.1
                    @Override // p137.InterfaceC2741
                    public C2742<Void> then(C2742<Void> c27422) {
                        return ((C2742) sQLiteDatabaseCallable.call(parseSQLiteDatabaseM4812)).m4817(new InterfaceC2741<Void, C2742<Void>>() { // from class: com.parse.OfflineStore.48.1.2
                            @Override // p137.InterfaceC2741
                            public C2742<Void> then(C2742<Void> c27423) {
                                return parseSQLiteDatabaseM4812.setTransactionSuccessfulAsync();
                            }
                        }, C2742.f8455).m4815(new InterfaceC2741<Void, C2742<Void>>() { // from class: com.parse.OfflineStore.48.1.1
                            @Override // p137.InterfaceC2741
                            public C2742<Void> then(C2742<Void> c27423) {
                                parseSQLiteDatabaseM4812.endTransactionAsync();
                                parseSQLiteDatabaseM4812.closeAsync();
                                return c27423;
                            }
                        }, C2742.f8455, null);
                    }
                }, C2742.f8455);
            }
        }, C2742.f8455);
    }

    public final C2742<Void> saveLocallyAsync(final ParseObject parseObject, List<ParseObject> list, final ParseSQLiteDatabase parseSQLiteDatabase) {
        final ArrayList arrayList = list != null ? new ArrayList(list) : new ArrayList();
        if (!arrayList.contains(parseObject)) {
            arrayList.add(parseObject);
        }
        ArrayList arrayList2 = new ArrayList();
        Iterator it = arrayList.iterator();
        while (it.hasNext()) {
            arrayList2.add(fetchLocallyAsync((ParseObject) it.next(), parseSQLiteDatabase).m4821());
        }
        return C2742.m4801((Collection<? extends C2742<?>>) arrayList2).m4815(new InterfaceC2741<Void, C2742<String>>() { // from class: com.parse.OfflineStore.19
            @Override // p137.InterfaceC2741
            public C2742<String> then(C2742<Void> c2742) {
                return OfflineStore.this.objectToUuidMap.get(parseObject);
            }
        }, C2742.f8455, null).m4817(new InterfaceC2741<String, C2742<Void>>() { // from class: com.parse.OfflineStore.18
            @Override // p137.InterfaceC2741
            public C2742<Void> then(C2742<String> c2742) {
                String strM4812 = c2742.m4812();
                if (strM4812 == null) {
                    return null;
                }
                return OfflineStore.access$800(OfflineStore.this, strM4812, parseSQLiteDatabase);
            }
        }, C2742.f8455).m4817(new InterfaceC2741<Void, C2742<String>>() { // from class: com.parse.OfflineStore.17
            @Override // p137.InterfaceC2741
            public C2742<String> then(C2742<Void> c2742) {
                return OfflineStore.this.getOrCreateUUIDAsync(parseObject, parseSQLiteDatabase);
            }
        }, C2742.f8455).m4817(new InterfaceC2741<String, C2742<Void>>() { // from class: com.parse.OfflineStore.16
            @Override // p137.InterfaceC2741
            public C2742<Void> then(C2742<String> c2742) {
                C2742 c2742M4817;
                String strM4812 = c2742.m4812();
                ArrayList arrayList3 = new ArrayList();
                for (final ParseObject parseObject2 : arrayList) {
                    final OfflineStore offlineStore = OfflineStore.this;
                    final ParseSQLiteDatabase parseSQLiteDatabase2 = parseSQLiteDatabase;
                    if (offlineStore == null) {
                        throw null;
                    }
                    if (parseObject2.getObjectId() == null || parseObject2.isDataAvailable() || parseObject2.hasChanges() || parseObject2.hasOutstandingOperations()) {
                        final C2740 c2740 = new C2740();
                        c2742M4817 = offlineStore.getOrCreateUUIDAsync(parseObject2, parseSQLiteDatabase2).m4817(new InterfaceC2741<String, C2742<Void>>() { // from class: com.parse.OfflineStore.14
                            /* JADX WARN: Type inference failed for: r4v2, types: [T, java.lang.String] */
                            @Override // p137.InterfaceC2741
                            public C2742<Void> then(C2742<String> c27422) {
                                String strM48122 = c27422.m4812();
                                c2740.f8453 = strM48122;
                                return OfflineStore.access$500(OfflineStore.this, strM48122, parseObject2, parseSQLiteDatabase2);
                            }
                        }, C2742.f8455).m4817(new InterfaceC2741<Void, C2742<Void>>(offlineStore, strM4812, c2740, parseSQLiteDatabase2) { // from class: com.parse.OfflineStore.13
                            public final /* synthetic */ ParseSQLiteDatabase val$db;
                            public final /* synthetic */ String val$key;
                            public final /* synthetic */ C2740 val$uuidCapture;

                            {
                                this.val$key = strM4812;
                                this.val$uuidCapture = c2740;
                                this.val$db = parseSQLiteDatabase2;
                            }

                            /* JADX WARN: Multi-variable type inference failed */
                            @Override // p137.InterfaceC2741
                            public C2742<Void> then(C2742<Void> c27422) {
                                ContentValues contentValues = new ContentValues();
                                contentValues.put("key", this.val$key);
                                contentValues.put("uuid", (String) this.val$uuidCapture.f8453);
                                return this.val$db.insertWithOnConflict("Dependencies", contentValues, 4);
                            }
                        }, C2742.f8455);
                    } else {
                        c2742M4817 = C2742.m4805((Object) null);
                    }
                    arrayList3.add(c2742M4817);
                }
                return C2742.m4801((Collection<? extends C2742<?>>) arrayList3);
            }
        }, C2742.f8455);
    }

    public void unregisterObject(ParseObject parseObject) {
        synchronized (this.lock) {
            String objectId = parseObject.getObjectId();
            if (objectId != null) {
                WeakValueHashMap<Pair<String, String>, ParseObject> weakValueHashMap = this.classNameAndObjectIdToObjectMap;
                weakValueHashMap.map.remove(Pair.create(parseObject.getClassName(), objectId));
            }
        }
    }

    public C2742<Void> updateDataForObjectAsync(ParseObject parseObject) {
        synchronized (this.lock) {
            C2742<ParseObject> c2742 = this.fetchedObjects.get(parseObject);
            if (c2742 != null) {
                return c2742.m4815(new AnonymousClass26(parseObject), C2742.f8455, null);
            }
            return C2742.m4804((Exception) new IllegalStateException("An object cannot be updated if it wasn't fetched."));
        }
    }

    public final C2742<Void> updateDataForObjectAsync(final ParseObject parseObject, final ParseSQLiteDatabase parseSQLiteDatabase) {
        synchronized (this.lock) {
            C2742<String> c2742 = this.objectToUuidMap.get(parseObject);
            if (c2742 != null) {
                return c2742.m4817(new InterfaceC2741<String, C2742<Void>>() { // from class: com.parse.OfflineStore.27
                    @Override // p137.InterfaceC2741
                    public C2742<Void> then(C2742<String> c27422) {
                        return OfflineStore.access$500(OfflineStore.this, c27422.m4812(), parseObject, parseSQLiteDatabase);
                    }
                }, C2742.f8455);
            }
            return C2742.m4805((Object) null);
        }
    }

    public void updateObjectId(ParseObject parseObject, String str, String str2) {
        if (str == null) {
            Pair<String, String> pairCreate = Pair.create(parseObject.getClassName(), str2);
            synchronized (this.lock) {
                ParseObject parseObject2 = this.classNameAndObjectIdToObjectMap.get(pairCreate);
                if (parseObject2 != null && parseObject2 != parseObject) {
                    throw new RuntimeException("Attempted to change an objectId to one that's already known to the Offline Store.");
                }
                this.classNameAndObjectIdToObjectMap.put(pairCreate, parseObject);
            }
            return;
        }
        if (str.equals(str2)) {
            return;
        }
        if (!(parseObject instanceof ParseInstallation) || str2 != null) {
            throw new RuntimeException("objectIds cannot be changed in offline mode.");
        }
        synchronized (this.lock) {
            WeakValueHashMap<Pair<String, String>, ParseObject> weakValueHashMap = this.classNameAndObjectIdToObjectMap;
            weakValueHashMap.map.remove(Pair.create(parseObject.getClassName(), str));
        }
    }
}
