// 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.controller; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import com.olio.communication.filetransfer.FileTransferer; import com.olio.communication.messages.MessageBuilder; import com.olio.communication.messages.files.ChunkRequest; import com.olio.communication.messages.files.FileChunk; import com.olio.data.object.transfer.FileTransfer; import com.olio.data.object.transfer.FileTransferObserver; import com.olio.olios.controller.OlioController; import com.olio.util.ALog; import com.oliodevices.assist.app.detectors.BroadcastDelegate; import com.oliodevices.assist.app.detectors.MessageBroadcastDelegate; import com.oliodevices.assist.app.detectors.firmware.FirmwareUpdateHelper; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.nio.channels.FileChannel; public class TransferManager extends FileTransferer implements OlioController { class FileTransferReceiver extends BroadcastReceiver { final TransferManager this$0; public void onReceive(Context context, Intent intent) { context = (ChunkRequest)intent.getSerializableExtra("CHUNK_REQUEST_EXTRA"); sendChunkForRequest(context); } FileTransferReceiver() { this$0 = TransferManager.this; super(); } } public static final String CHUNK_REQUEST_EXTRA = "CHUNK_REQUEST_EXTRA"; public static final String TRANSFER_MANAGER_INTENT = "com.olio.bluetooth_host.transfer_manager.intent_filter"; private Context mContext; private MessageBroadcastDelegate mDelegate; private final FileTransferReceiver mFileTransferReceiver = new FileTransferReceiver(); public TransferManager(Context context) { mDelegate = new BroadcastDelegate(context); mContext = context; } public void create() { } public void destroy() { } protected void fileTransferComplete(FileTransfer filetransfer) { } protected FileInputStream getFileInputStreamForRequest(ChunkRequest chunkrequest) throws IOException { return mContext.openFileInput(chunkrequest.getFileIdentifier()); } protected FileOutputStream getFileOutputStreamForChunk(FileChunk filechunk) throws FileNotFoundException { return null; } protected long getFileSize(ChunkRequest chunkrequest) { ChunkRequest chunkrequest1 = null; chunkrequest = mContext.openFileInput(chunkrequest.getFileIdentifier()); chunkrequest1 = chunkrequest; long l = chunkrequest.getChannel().size(); chunkrequest.close(); return l; chunkrequest; try { chunkrequest1.close(); throw chunkrequest; } // Misplaced declaration of an exception variable catch (ChunkRequest chunkrequest) { ALog.e("Unable to get file size", new Object[0]); } return 0L; } protected String getSender() { return "phone"; } public void register() { IntentFilter intentfilter = new IntentFilter(); intentfilter.addAction("com.olio.bluetooth_host.transfer_manager.intent_filter"); mContext.registerReceiver(mFileTransferReceiver, intentfilter); } protected void sendChunkForRequest(ChunkRequest chunkrequest) { super.sendChunkForRequest(chunkrequest); ALog.d("sendChunkForRequest -- %s", new Object[] { chunkrequest.getFileIdentifier() }); FirmwareUpdateHelper firmwareupdatehelper = FirmwareUpdateHelper.getInstance(); FileTransfer filetransfer = firmwareupdatehelper.getFirmwareTransfer(); if (filetransfer != null) { ALog.d("FileTransfer found", new Object[0]); FileTransferObserver filetransferobserver = filetransfer.getObserver(); if ((int)(getFileSize(chunkrequest) - (long)chunkrequest.getRequestedStartingByte()) == 0) { firmwareupdatehelper.updateFirmwareTransfer(4, chunkrequest.getRequestedStartingByte()); if (filetransferobserver != null) { ALog.d("Notify observer download is complete (%d) (%d / %d)", new Object[] { Integer.valueOf(filetransfer.getStatus()), Integer.valueOf(filetransfer.getBytesTransferred()), Integer.valueOf(filetransfer.getFileSize()) }); filetransferobserver.transferComplete(filetransfer); } } else { firmwareupdatehelper.updateFirmwareTransfer(1, chunkrequest.getRequestedStartingByte()); if (filetransferobserver != null) { ALog.d("Notify observer of download progress (%d) (%d / %d)", new Object[] { Integer.valueOf(filetransfer.getStatus()), Integer.valueOf(filetransfer.getBytesTransferred()), Integer.valueOf(filetransfer.getFileSize()) }); filetransferobserver.downloadProgress(filetransfer); return; } } } } protected void sendFileChunk(FileChunk filechunk) { filechunk = (new MessageBuilder()).setPayload(filechunk).build(); mDelegate.sendMessage(filechunk); } public void unregister() { mContext.unregisterReceiver(mFileTransferReceiver); } }