// 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.oliodevices.assist.app.detectors; import android.app.DownloadManager; import android.content.ContentResolver; import android.content.Context; import android.database.Cursor; import android.net.Uri; import android.os.ParcelFileDescriptor; import com.olio.communication.messages.files.FileMetadataBuilder; import com.olio.communication.messages.olio_updates.UiUpdateBuilder; import com.olio.data.object.bluetooth_status.BluetoothStatus; import com.olio.olios.detector.ManagedDetector; import com.olio.state.Look; import com.olio.state.Unit; import com.olio.util.ALog; import com.oliodevices.assist.app.detectors.olio.updates.FileSystemAPIMocker; import com.oliodevices.assist.app.detectors.web.api.OlioApiResponse; import com.oliodevices.assist.app.detectors.web.api.WebApi; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.util.UUID; import org.jdeferred.DoneCallback; import org.jdeferred.DonePipe; import org.jdeferred.ProgressCallback; import org.jdeferred.Promise; import org.jdeferred.android.AndroidDeferredManager; // Referenced classes of package com.oliodevices.assist.app.detectors: // BroadcastDelegate public class LookDetector implements ManagedDetector { Context context; private AndroidDeferredManager deferredManager; private FileSystemAPIMocker olioFileSystemAPIMocker; public LookDetector(Context context1) { context = context1; deferredManager = new AndroidDeferredManager(); olioFileSystemAPIMocker = new FileSystemAPIMocker(context1, new BroadcastDelegate(context1)); } private Promise downloadAndSendCurrentLook(String s) { return deferredManager.when(WebApi.find("units", s, "michael-test-unit", context)).done(new DoneCallback() { final LookDetector this$0; public void onDone(OlioApiResponse olioapiresponse) { ALog.v((new StringBuilder()).append("Successfully received the unit").append(olioapiresponse.content).toString(), new Object[0]); } public volatile void onDone(Object obj) { onDone((OlioApiResponse)obj); } { this$0 = LookDetector.this; super(); } }).then(new DonePipe() { final LookDetector this$0; public Promise pipeDone(OlioApiResponse olioapiresponse) { olioapiresponse = new Unit(); return deferredManager.when(WebApi.download(olioapiresponse.getCurrent_look().getAsset_bundle_url(), context)); } public volatile Promise pipeDone(Object obj) { return pipeDone((OlioApiResponse)obj); } { this$0 = LookDetector.this; super(); } }).done(new DoneCallback() { final LookDetector this$0; public void onDone(OlioApiResponse olioapiresponse) { ALog.v("Finished downloading the file!", new Object[0]); long l = Long.valueOf(olioapiresponse.content).longValue(); olioapiresponse = (DownloadManager)context.getSystemService("download"); Object obj = new android.app.DownloadManager.Query(); ((android.app.DownloadManager.Query) (obj)).setFilterById(new long[] { l }); olioapiresponse = olioapiresponse.query(((android.app.DownloadManager.Query) (obj))); olioapiresponse.moveToFirst(); obj = olioapiresponse.getString(olioapiresponse.getColumnIndex("local_uri")); try { obj = context.getContentResolver().openFileDescriptor(Uri.parse(((String) (obj))), "r"); String s1 = UUID.randomUUID().toString(); olioFileSystemAPIMocker.checkAndSendUpdate(new FileInputStream(((ParcelFileDescriptor) (obj)).getFileDescriptor()), s1, (new UiUpdateBuilder()).setFileMetadata((new FileMetadataBuilder()).setFileIdentifier(s1).setSource("android").build()).build()); } catch (FileNotFoundException filenotfoundexception) { ALog.e("Could not find downloaded file", new Object[0]); } olioapiresponse.close(); } public volatile void onDone(Object obj) { onDone((OlioApiResponse)obj); } { this$0 = LookDetector.this; super(); } }).progress(new ProgressCallback() { final LookDetector this$0; public void onProgress(Integer integer) { ALog.v((new StringBuilder()).append("Download Progress: ").append(integer).toString(), new Object[0]); } public volatile void onProgress(Object obj) { onProgress((Integer)obj); } { this$0 = LookDetector.this; super(); } }); } public void onDisconnect() { } public void register() { } public boolean shouldUpdate() { return BluetoothStatus.bluetoothStatus(context.getContentResolver()).getBluetooth3ConnectionStatus() == 3; } public void unregister() { } public void update() { } public Long updateFrequency() { return new Long(0x493e0L); } public boolean updateOnReconnect() { return false; } }