// 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.olio.updates; import android.content.Context; import android.os.Environment; import com.olio.communication.filetransfer.Utilities; import com.olio.communication.messages.MessageBuilder; import com.olio.communication.messages.MessagePayload; import com.olio.communication.messages.files.FileMetadataBuilder; import com.olio.communication.messages.olio_updates.ImageUpdateBuilder; import com.olio.communication.messages.olio_updates.JsonFileUpdateBuilder; import com.olio.data.object.unit.FirmwareProfileBuilder; import com.olio.state.Firmware; import com.olio.state.Unit; import com.olio.util.ALog; import com.olio.util.FileHash; import com.oliodevices.assist.app.api.UserManager; import com.oliodevices.assist.app.detectors.BroadcastDelegate; import java.io.File; import java.io.FileFilter; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.LinkedList; import java.util.UUID; public class FileSystemAPIMocker { private static final String firmwareUpdateFilePath; private static final String firmwareUpdatePath; private static final String imageUpdatePath; private static final String settingsUpdatePath; private static final String softwareUpdatePath; private static final String uiUpdatePath; Context mContext; BroadcastDelegate mDelegate; public FileSystemAPIMocker(Context context, BroadcastDelegate broadcastdelegate) { mContext = context; mDelegate = broadcastdelegate; } private void sendFileInDirectory(String s, String s1) { s1 = new File(s1); if (!s1.isDirectory()) { ALog.e("Settings directory does not exist. Create at olio/settings", new Object[0]); return; } else { s1 = new File(s1, s); checkAndSendUpdate(s1, s, JsonFileUpdateBuilder.aJsonFileUpdate().setIdentifier(s).setMetadata((new FileMetadataBuilder()).setFileIdentifier(s).setMd5Hash(FileHash.md5(s1)).setSource("android").build()).build()); return; } } private void sendImagesInDirectory(String s) { new LinkedList(); s = new File(s); if (s != null && s.isDirectory()) { s = s.listFiles(new FileFilter() { final FileSystemAPIMocker this$0; public boolean accept(File file1) { return file1.isFile(); } { this$0 = FileSystemAPIMocker.this; super(); } }); int k = s.length; int j = 0; for (int i = 0; j < k; i++) { File file = s[j]; String s1 = (new StringBuilder()).append(UUID.randomUUID().toString()).append(i).toString(); checkAndSendUpdate(file, s1, (new ImageUpdateBuilder()).setFileMetadata((new FileMetadataBuilder()).setFileIdentifier(s1).setSource("android").build()).build()); j++; } } } private void sendSettingsInDirectory(String s) { new LinkedList(); s = new File(s); if (s != null && s.isDirectory()) { s = s.listFiles(new FileFilter() { final FileSystemAPIMocker this$0; public boolean accept(File file1) { return file1.isFile(); } { this$0 = FileSystemAPIMocker.this; super(); } }); int j = s.length; for (int i = 0; i < j; i++) { File file = s[i]; checkAndSendUpdate(file, file.getName(), JsonFileUpdateBuilder.aJsonFileUpdate().setIdentifier(file.getName()).setMetadata((new FileMetadataBuilder()).setFileIdentifier(file.getName()).setMd5Hash(FileHash.md5(file)).setSource("android").build()).build()); } } } public void checkAndSendUpdate(File file, String s, MessagePayload messagepayload) { try { checkAndSendUpdate(new FileInputStream(file), s, messagepayload); ALog.d((new StringBuilder()).append("FileSystemAPIMocker. ... Sent file: ").append(file).toString(), new Object[0]); return; } // Misplaced declaration of an exception variable catch (File file) { ALog.e("Couldn't find this file", file, new Object[0]); return; } // Misplaced declaration of an exception variable catch (File file) { ALog.e("No file in this directory", file, new Object[0]); } } public void checkAndSendUpdate(FileInputStream fileinputstream, String s, MessagePayload messagepayload) { FileInputStream fileinputstream1; String s1; fileinputstream1 = null; s1 = null; if (fileinputstream == null) { break MISSING_BLOCK_LABEL_123; } s = mContext.openFileOutput(s, 0); fileinputstream1 = fileinputstream; s1 = s; Utilities.copyFile(fileinputstream, s); fileinputstream1 = fileinputstream; s1 = s; messagepayload = (new MessageBuilder()).setAction(com.olio.communication.messages.Message.Action.CREATE_OR_UPDATE).setPayload(messagepayload).build(); fileinputstream1 = fileinputstream; s1 = s; mDelegate.sendMessage(messagepayload); if (fileinputstream == null) { break MISSING_BLOCK_LABEL_80; } fileinputstream.close(); if (s != null) { try { s.close(); return; } // Misplaced declaration of an exception variable catch (FileInputStream fileinputstream) { ALog.e("Error copying file from public to private olio directory", fileinputstream, new Object[0]); } } break MISSING_BLOCK_LABEL_123; fileinputstream; if (fileinputstream1 == null) { break MISSING_BLOCK_LABEL_100; } fileinputstream1.close(); if (s1 == null) { break MISSING_BLOCK_LABEL_110; } s1.close(); throw fileinputstream; } public void checkForUpdates() { sendFirmwareUpdateFile(firmwareUpdateFilePath); } public void sendFirmwareInDirectory(String s) { sendFileInDirectory(s, firmwareUpdatePath); } public void sendFirmwareUpdateFile(String s) { s = new File(s); Object obj = UserManager.getInstance().getUnitId(); obj = Unit.get(mContext.getContentResolver(), ((String) (obj))); checkAndSendUpdate(s, s.getName(), FirmwareProfileBuilder.aFirmwareProfile().setVersion(((Unit) (obj)).getFirmware().getVersion()).setName(((Unit) (obj)).getFirmware().getName()).setFileMetadata((new FileMetadataBuilder()).setSource("android").setFileIdentifier(s.getName()).setFileLength((int)s.length()).setMd5Hash(FileHash.md5(s)).build()).build()); } public void sendSettingInDirectory(String s) { sendFileInDirectory(s, settingsUpdatePath); } public void sendSoftwareInDirectory(String s) { sendFileInDirectory(s, softwareUpdatePath); } public void sendUiInDirectory(String s) { sendFileInDirectory(uiUpdatePath, s); } static { softwareUpdatePath = (new StringBuilder()).append(Environment.getExternalStorageDirectory()).append(File.separator).append("olio").append(File.separator).append("software_updates").append(File.separator).toString(); firmwareUpdatePath = (new StringBuilder()).append(Environment.getExternalStorageDirectory()).append(File.separator).append("olio").append(File.separator).append("firmware_updates").append(File.separator).toString(); uiUpdatePath = (new StringBuilder()).append(Environment.getExternalStorageDirectory()).append(File.separator).append("olio").append(File.separator).append("ui_updates").append(File.separator).toString(); imageUpdatePath = (new StringBuilder()).append(Environment.getExternalStorageDirectory()).append(File.separator).append("olio").append(File.separator).append("image_updates").append(File.separator).toString(); settingsUpdatePath = (new StringBuilder()).append(Environment.getExternalStorageDirectory()).append(File.separator).append("olio").append(File.separator).append("settings").append(File.separator).toString(); firmwareUpdateFilePath = (new StringBuilder()).append(Environment.getExternalStorageDirectory()).append(File.separator).append("olio").append(File.separator).append("firmware_updates").append(File.separator).append("olio-firmware.zip").toString(); } }