Untitled
unknown
java
5 years ago
43 kB
10
Indexable
public void onLeScan(BluetoothDevice bluetoothDevice, int i, byte[] bArr) { boolean z; int i2; boolean z2; long j; long currentTimeMillis; long j2; String str; StringBuilder sb; byte[] bArr2 = bArr; if (!this.isDestroy && bluetoothDevice.getName() != null && bluetoothDevice.getName().equals(Const.DEVICE_NAME)) { String address = bluetoothDevice.getAddress(); final Device device = null; final int i3 = -1; for (int i4 = 0; i4 < this.deviceList.size(); i4++) { if (((Device) this.deviceList.get(i4)).getDeviceMac().toLowerCase().equals(address.toLowerCase())) { device = (Device) this.deviceList.get(i4); i3 = i4; } } if (device != null) { ObjectAnimator objectAnimator = this.animator; if (objectAnimator != null) { objectAnimator.cancel(); } String str2 = ""; for (byte b : bArr2) { StringBuilder sb2 = new StringBuilder(); sb2.append(str2); byte b2 = b & 255; if (Integer.toHexString(b2).length() == 2) { sb = new StringBuilder(); str = " "; } else { sb = new StringBuilder(); str = " 0"; } sb.append(str); sb.append(Integer.toHexString(b2)); sb2.append(sb.toString()); str2 = sb2.toString(); } String str3 = this.TAG; StringBuilder sb3 = new StringBuilder(); sb3.append("onLeScan: scanRecord: "); sb3.append(str2); Log.d(str3, sb3.toString()); int customDataStartIndex = Utils.getCustomDataStartIndex(bArr); if (customDataStartIndex == -1) { String str4 = this.TAG; StringBuilder sb4 = new StringBuilder(); sb4.append("unavailable device: "); sb4.append(bluetoothDevice.getName()); sb4.append(": "); sb4.append(address); Log.e(str4, "onLeScan: ", new Exception(sb4.toString())); return; } boolean z3 = true; if (bArr2[customDataStartIndex] == 21 || bArr2[customDataStartIndex] == 19) { int littleEndianDataParse = Utils.littleEndianDataParse(bArr2, customDataStartIndex + 12, 2); float littleEndianDataParseHaveSign = ((float) Utils.littleEndianDataParseHaveSign(bArr2, customDataStartIndex + 14, 2)) / 16.0f; int i5 = customDataStartIndex + 2; if (bArr2[i5] == 16 || bArr2[i5] == 17 || bArr2[i5] == 18) { float littleEndianDataParseHaveSign2 = ((float) Utils.littleEndianDataParseHaveSign(bArr2, customDataStartIndex + 16, 2)) / 16.0f; j = (long) Utils.littleEndianDataParse(bArr2, customDataStartIndex + 18, 4); if (((device.getHumidityType() & 1) == 1 && littleEndianDataParseHaveSign2 <= device.getPresetLowestHumidity() && device.getRecentHumidity() > device.getPresetLowestHumidity()) || ((device.getHumidityType() & 2) == 2 && littleEndianDataParseHaveSign2 >= device.getPresetHighestHumidity() && device.getRecentHumidity() < device.getPresetHighestHumidity())) { NotificationSender.getInstance().notify(this, 2, device, littleEndianDataParseHaveSign2); } if (device.getRecentHumidity() != littleEndianDataParseHaveSign2) { device.setRecentHumidity(littleEndianDataParseHaveSign2); z2 = true; long j3 = 1000 * j; currentTimeMillis = System.currentTimeMillis() - j3; long j4 = j3 + currentTimeMillis; if (!Utils.isNew(currentTimeMillis, device.getStartTime(), j)) { String str5 = this.TAG; StringBuilder sb5 = new StringBuilder(); sb5.append("onLeScan: start change: "); j2 = j4; sb5.append(Math.abs(device.getStartTime() - currentTimeMillis)); sb5.append(", "); sb5.append(Math.ceil((double) Math.abs(((float) (device.getStartTime() - currentTimeMillis)) / 1000.0f))); Log.e(str5, sb5.toString()); device.setStartTime(currentTimeMillis); try { MyApplication myApplication = this.myApplication; Session session = new Session(currentTimeMillis, device.getHighestTemp(), device.getHighestTempTime(), device.getLowestTemp(), device.getLowestTempTime(), device.getTempType(), device.getName(), device.getLocation(), device.getPresetHighest(), device.getPresetLowest(), device.getImgName(), device.getDeviceType()); device.setSessionID(myApplication.addSession(session)); } catch (Exception e) { e.printStackTrace(); } z2 = true; } else { j2 = j4; } if (((device.getTempType() & 1) == 1 && littleEndianDataParseHaveSign <= device.getPresetLowest() && device.getRecentTemp() > device.getPresetLowest()) || ((device.getTempType() & 2) == 2 && littleEndianDataParseHaveSign >= device.getPresetHighest() && device.getRecentTemp() < device.getPresetHighest())) { NotificationSender.getInstance().notify(this, 1, device, littleEndianDataParseHaveSign); } if (device.getRecentTempTime() != j2) { long j5 = j2; device.setRecentTempTime(j5); device.setRecentTemp(littleEndianDataParseHaveSign); if (littleEndianDataParseHaveSign > device.getHighestTemp()) { device.setHighestTemp(littleEndianDataParseHaveSign); device.setHighestTempTime(j5); } if (littleEndianDataParseHaveSign < device.getLowestTemp()) { device.setLowestTemp(littleEndianDataParseHaveSign); device.setLowestTempTime(j5); } z2 = true; } if (device.getBattery() == littleEndianDataParse) { device.setBattery(littleEndianDataParse); } else { z3 = z2; } String str6 = this.TAG; StringBuilder sb6 = new StringBuilder(); sb6.append("onLeScan: battery: "); sb6.append(littleEndianDataParse); sb6.append(", currentTemperature: "); sb6.append(littleEndianDataParseHaveSign); sb6.append(", currentTempDeviceRuntime: "); sb6.append(j); Log.i(str6, sb6.toString()); i2 = i; z = z3; } } else { j = (long) Utils.littleEndianDataParse(bArr2, customDataStartIndex + 16, 4); } z2 = false; long j32 = 1000 * j; currentTimeMillis = System.currentTimeMillis() - j32; long j42 = j32 + currentTimeMillis; if (!Utils.isNew(currentTimeMillis, device.getStartTime(), j)) { } NotificationSender.getInstance().notify(this, 1, device, littleEndianDataParseHaveSign); if (device.getRecentTempTime() != j2) { } if (device.getBattery() == littleEndianDataParse) { } String str62 = this.TAG; StringBuilder sb62 = new StringBuilder(); sb62.append("onLeScan: battery: "); sb62.append(littleEndianDataParse); sb62.append(", currentTemperature: "); sb62.append(littleEndianDataParseHaveSign); sb62.append(", currentTempDeviceRuntime: "); sb62.append(j); Log.i(str62, sb62.toString()); i2 = i; z = z3; } else if (bArr2[customDataStartIndex] != 23 || device.getStartTime() == 0) { i2 = i; z = false; } else { float littleEndianDataParseHaveSign3 = ((float) Utils.littleEndianDataParseHaveSign(bArr2, customDataStartIndex + 12, 2)) / 16.0f; float littleEndianDataParseHaveSign4 = ((float) Utils.littleEndianDataParseHaveSign(bArr2, customDataStartIndex + 18, 2)) / 16.0f; long startTime = device.getStartTime() + (((long) Utils.littleEndianDataParse(bArr2, customDataStartIndex + 14, 4)) * 1000); long startTime2 = device.getStartTime() + (((long) Utils.littleEndianDataParse(bArr2, customDataStartIndex + 20, 4)) * 1000); String str7 = this.TAG; StringBuilder sb7 = new StringBuilder(); sb7.append("onLeScan: highest: "); sb7.append(littleEndianDataParseHaveSign3); sb7.append(", lowest: "); sb7.append(littleEndianDataParseHaveSign4); Log.i(str7, sb7.toString()); if (device.getHighestTempTime() == startTime && device.getHighestTemp() == littleEndianDataParseHaveSign3) { z = false; } else { device.setHighestTempTime(startTime); device.setHighestTemp(littleEndianDataParseHaveSign3); z = true; } if (!(device.getLowestTempTime() == startTime2 && device.getLowestTemp() == littleEndianDataParseHaveSign4)) { device.setLowestTempTime(startTime2); device.setLowestTemp(littleEndianDataParseHaveSign4); z = true; } if (z) { Session sessionBySessionID = this.myApplication.getSessionBySessionID(device.getSessionID()); sessionBySessionID.setHighest(littleEndianDataParseHaveSign3); sessionBySessionID.setHighestTime(startTime); sessionBySessionID.setLowest(littleEndianDataParseHaveSign4); sessionBySessionID.setLowestTime(startTime2); String str8 = this.TAG; StringBuilder sb8 = new StringBuilder(); sb8.append("getShowData3 lowestValue: "); sb8.append(littleEndianDataParseHaveSign4); sb8.append(", time: "); sb8.append(startTime2); Log.i(str8, sb8.toString()); this.myApplication.updateSession(sessionBySessionID); } i2 = i; } device.setSignal(i2); if (z) { this.handler.post(new Runnable() { public void run() { CurrentActivity.this.deviceAdapter.notifyItemChanged(i3); CurrentActivity.this.myApplication.updateDevice(device); } }); } } } } package com.beyondtel.thermoplus.utils; import java.util.UUID; public class Const { public static final UUID CLIENT_CHARACTERISTIC_CONFIG = UUID.fromString("00002902-0000-1000-8000-00805f9b34fb"); public static final String DB_NAME = "thermo_plus.db"; public static final float DEFAULT_PRESET_HIGHEST = 27.0f; public static final float DEFAULT_PRESET_LOWEST = 20.0f; public static final float DEFAULT_TEMP_TYPE = 0.0f; public static final String DEVICE_IMAGE_NAME_DEFAULT = "device_default.png"; public static final String DEVICE_NAME = "ThermoBeacon"; public static final String EXTRA_NAME_DATA_TYPE = "extra_name_data_type"; public static final String EXTRA_NAME_DEVICE_MAC = "extra_name_device_mac"; public static final String EXTRA_NAME_DEVICE_POSITION = "extra_is_device_position"; public static final String EXTRA_NAME_DEVICE_TYPE = "extra_name_device_type"; public static final String EXTRA_NAME_HISTORY_ID = "extra_name_history_id"; public static final String EXTRA_NAME_HISTORY_POSITION = "extra_name_history_position"; public static final String EXTRA_NAME_IS_DEVICE_DELETED = "extra_is_device_deleted"; public static final String EXTRA_NAME_IS_FROM_STORY = "extra_name_is_from_story"; public static final String EXTRA_NAME_IS_UNIT_CHANGED = "extra_name_is_unit_changed"; public static final String EXTRA_NAME_LOCATION_ID = "extra_name_location_id"; public static final String EXTRA_NAME_PICTURE_ID = "extra_name_picture_id"; public static final String EXTRA_NAME_REMARK_IMAGE_POSITION = "extra_name_remark_image_position"; public static final String EXTRA_NAME_REMARK_IMG_PATH = "extra_name_remark_img_path"; public static final String EXTRA_NAME_SESSION_ID = "extra_name_session_id"; public static final String EXTRA_NAME_START_TIME = "extra_name_start_time"; public static final UUID FFF_3 = UUID.fromString("0000fff3-0000-1000-8000-00805f9b34fb"); public static final UUID FFF_5 = UUID.fromString("0000fff5-0000-1000-8000-00805f9b34fb"); public static final UUID FFF_SERVICE = UUID.fromString("0000ffe0-0000-1000-8000-00805f9b34fb"); public static final String FLAVOR_HUMIPAD = "Humipad"; public static final String IS_FIRST_SHOW_HISTORY = "is_first_show_history"; public static final String LANGUAGE = "language"; public static final int LANGUAGE_AUTO = 0; public static final int LANGUAGE_DANISH = 2; public static final int LANGUAGE_DUTCH = 6; public static final int LANGUAGE_ENGLISH = 1; public static final int LANGUAGE_FRENCH = 4; public static final int LANGUAGE_GERMAN = 3; public static final int LANGUAGE_ITALIAN = 7; public static final int LANGUAGE_JAPANESE = 8; public static final int LANGUAGE_SPANISH = 5; public static final long LOGGER_INTERVAL = 600000; public static final String NEED_SHOW_LOCATION_ALERT = "need_show_location_alert"; public static final int REQUEST_CODE_BLE_PERMISSION = 931; public static final int REQUEST_CODE_CAMERA = 631; public static final int REQUEST_CODE_CAMERA_PERMISSION = 933; public static final int REQUEST_CODE_CROP = 634; public static final int REQUEST_CODE_DEVICE_SETTING = 635; public static final int REQUEST_CODE_GALLERY = 632; public static final int REQUEST_CODE_HISTORY_REMARK = 637; public static final int REQUEST_CODE_HISTORY_REMARK_IMG = 638; public static final int REQUEST_CODE_LOCATION = 639; public static final int REQUEST_CODE_SETTING = 636; public static final int REQUEST_CODE_STORAGE_PERMISSION = 932; public static final int REQUEST_CODE_SYSTEM = 633; public static final String SETTING_NAME_ALERTRINGTONE = "alertRingtone"; public static final String SETTING_NAME_ALERTVIBRATION = "alertVibration"; public static final String SETTING_NAME_ISUNITCELSIUS = "isUnitCelsius"; public static final int UPDATE_INTERVAL = 5000; } package com.beyondtel.thermoplus.utils; import android.content.ContentResolver; import android.content.Context; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.Bitmap.CompressFormat; import android.graphics.BitmapFactory; import android.graphics.BitmapFactory.Options; import android.net.Uri; import android.provider.Settings.System; import android.text.format.DateFormat; import android.util.Log; import android.util.TypedValue; import com.beyondtel.sensorblue.R; import com.beyondtel.thermoplus.MyApplication; import com.beyondtel.thermoplus.entity.History; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.math.RoundingMode; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; public class Utils { private static final String TAG = "Utils"; public static float c2f(float f) { return (f * 1.8f) + 32.0f; } public static float f2c(float f) { return (f - 32.0f) / 1.8f; } private void scanDataParse(byte[] bArr) { } public static int bigEndianDataParse(byte[] bArr, int i, int i2) throws Exception { if (i2 == 2) { return (short) (bArr[i + 1] | (bArr[i] << 8)); } else if (i2 == 4) { return bArr[i + 3] | (bArr[i] << 24) | (bArr[i + 1] << 16) | (bArr[i + 2] << 8); } else { throw new Exception("length value can only be 2 or 4"); } } public static int littleEndianDataParse(byte[] bArr, int i, int i2) { short s; short s2; if (i2 == 2) { s = (short) (bArr[i] & 255); s2 = (bArr[i + 1] << 8) & 65280; } else if (i2 != 4) { return -1; } else { s = (bArr[i] & 255) | (65280 & (bArr[i + 1] << 8)) | ((bArr[i + 2] << 16) & 16711680); s2 = (bArr[i + 3] << 24) & -16777216; } return s2 | s; } public static int littleEndianDataParseHaveSign(byte[] bArr, int i, int i2) { short s; int i3; if (i2 == 2) { s = (short) (bArr[i] & 255); i3 = bArr[i + 1] << 8; } else if (i2 != 4) { return -1; } else { s = bArr[i] | (bArr[i + 1] << 8) | (bArr[i + 2] << 16); i3 = bArr[i + 3] << 24; } return i3 | s; } public static String deviceMacAddressParse(byte[] bArr, int i) { StringBuilder sb = new StringBuilder(); sb.append(Integer.toHexString(bArr[i + 6] & 255)); String str = ":"; sb.append(str); sb.append(Integer.toHexString(bArr[i + 7] & 255)); sb.append(str); sb.append(Integer.toHexString(bArr[i + 8] & 255)); sb.append(str); sb.append(Integer.toHexString(bArr[i + 9] & 255)); sb.append(str); sb.append(Integer.toHexString(bArr[i + 10] & 255)); sb.append(str); sb.append(Integer.toHexString(bArr[i + 11] & 255)); return sb.toString(); } public static boolean isConfirmPkg(byte[] bArr, int i) { return bArr[i + 5] == Byte.MIN_VALUE; } public static int getCustomDataStartIndex(byte[] bArr) { int i = 0; while (i < bArr.length - 1) { if (bArr[i + 1] == -1) { return i; } i += bArr[i] + 1; } return -1; } public static String dateFormat(long j) { String str; Date date = new Date(j); int intValue = Integer.valueOf((String) DateFormat.format("dd", date)).intValue(); if (intValue != 1) { if (intValue != 2) { if (intValue != 3) { switch (intValue) { case 21: break; case 22: break; case 23: break; default: StringBuilder sb = new StringBuilder(); sb.append(intValue); sb.append("th"); str = sb.toString(); break; } } StringBuilder sb2 = new StringBuilder(); sb2.append(intValue); sb2.append("rd"); str = sb2.toString(); StringBuilder sb3 = new StringBuilder(); sb3.append(str); sb3.append("."); sb3.append(DateFormat.format("MMM", date)); return sb3.toString(); } StringBuilder sb4 = new StringBuilder(); sb4.append(intValue); sb4.append("nd"); str = sb4.toString(); StringBuilder sb32 = new StringBuilder(); sb32.append(str); sb32.append("."); sb32.append(DateFormat.format("MMM", date)); return sb32.toString(); } StringBuilder sb5 = new StringBuilder(); sb5.append(intValue); sb5.append("st"); str = sb5.toString(); StringBuilder sb322 = new StringBuilder(); sb322.append(str); sb322.append("."); sb322.append(DateFormat.format("MMM", date)); return sb322.toString(); } public static String time2PeriodDHM(long j) { int i = (int) (j / 86400000); long j2 = j % 86400000; int i2 = (int) (j2 / 3600000); int i3 = (int) ((j2 % 3600000) / 60000); StringBuilder sb = new StringBuilder(); sb.append(i); sb.append("D"); sb.append(i2); sb.append("H"); sb.append(i3); sb.append("M"); return sb.toString(); } public static String time2PeriodDH(long j) { int i = (int) (j / 86400000); int i2 = (int) ((j % 86400000) / 3600000); StringBuilder sb = new StringBuilder(); sb.append(i); sb.append("D"); sb.append(i2); sb.append("H"); return sb.toString(); } public static CharSequence time2HistoryTime(long j) { String str = "yyyy-MM-dd"; if (!DateFormat.format(str, new Date()).equals(DateFormat.format(str, new Date(j)))) { return time2TimePointStr(j); } return DateFormat.format("HH:mm", new Date(j)); } public static CharSequence time2TimePointStr(long j) { StringBuilder sb = new StringBuilder(); sb.append(getMonth(j).toString()); sb.append(DateFormat.format(".dd", new Date(j)).toString()); return sb.toString(); } public static CharSequence getMonth(long j) { Calendar instance = Calendar.getInstance(); instance.setTimeInMillis(j); switch (instance.get(2)) { case 1: return "Feb"; case 2: return "Mar"; case 3: return "Apr"; case 4: return "May"; case 5: return "Jun"; case 6: return "Jul"; case 7: return "Aug"; case 8: return "Sep"; case 9: return "Oct"; case 10: return "Nov"; case 11: return "Dec"; default: return "Jan"; } } public static String getTempStr(float f) { String str = "%.2f"; if (!MyApplication.getInstance().isUnitCelsius()) { return String.format(str, new Object[]{Float.valueOf(c2f(f))}); } return String.format(str, new Object[]{Float.valueOf(f)}); } public static String getIntegerPart(float f) { if (!MyApplication.getInstance().isUnitCelsius()) { f = c2f(f); } StringBuilder sb = new StringBuilder(); sb.append((int) f); sb.append(""); return sb.toString(); } public static String getDecimalPart(float f) { if (!MyApplication.getInstance().isUnitCelsius()) { f = c2f(f); } int abs = Math.abs(Math.round(((f * 1000.0f) % 1000.0f) / 10.0f)); if (abs < 10) { StringBuilder sb = new StringBuilder(); sb.append(".0"); sb.append(abs); return sb.toString(); } StringBuilder sb2 = new StringBuilder(); sb2.append("."); sb2.append(abs); return sb2.toString(); } public static String getHumidityStr(float f) { return String.format("%.1f", new Object[]{Float.valueOf(f)}); } public static String getHumidityIntegerPart(float f) { StringBuilder sb = new StringBuilder(); sb.append((int) f); sb.append(""); return sb.toString(); } public static String getHumidityDecimalPart(float f) { int abs = Math.abs(Math.round(((f * 100.0f) % 100.0f) / 10.0f)); StringBuilder sb = new StringBuilder(); sb.append("."); sb.append(abs); return sb.toString(); } public static String showTemp(float f) { DecimalFormat decimalFormat = new DecimalFormat("0.00"); decimalFormat.setRoundingMode(RoundingMode.HALF_UP); if (MyApplication.getInstance().isUnitCelsius()) { return decimalFormat.format((double) f); } return decimalFormat.format((double) c2f(f)); } public static String showHumidity(float f) { DecimalFormat decimalFormat = new DecimalFormat("0.0"); decimalFormat.setRoundingMode(RoundingMode.HALF_UP); return decimalFormat.format((double) f); } public static String showTempWithUnit(float f) { DecimalFormat decimalFormat = new DecimalFormat("0.00°"); decimalFormat.setRoundingMode(RoundingMode.HALF_UP); if (MyApplication.getInstance().isUnitCelsius()) { return decimalFormat.format((double) f); } return decimalFormat.format((double) c2f(f)); } public static String showHumidityWithUnit(float f) { DecimalFormat decimalFormat = new DecimalFormat("0.0"); decimalFormat.setRoundingMode(RoundingMode.HALF_UP); StringBuilder sb = new StringBuilder(); sb.append(decimalFormat.format((double) f)); sb.append("%"); return sb.toString(); } public static String showTempIntegerStr(float f) { String str = "°"; if (MyApplication.getInstance().isUnitCelsius()) { StringBuilder sb = new StringBuilder(); sb.append(Math.round(f)); sb.append(str); return sb.toString(); } StringBuilder sb2 = new StringBuilder(); sb2.append(Math.round(c2f(f))); sb2.append(str); return sb2.toString(); } public static String showExpiredStr(int i) { if (i == 0) { return ""; } StringBuilder sb = new StringBuilder(); sb.append(i); sb.append(" days"); return sb.toString(); } public static String showHumidityIntegerStr(float f) { StringBuilder sb = new StringBuilder(); sb.append(Math.round(f)); sb.append("%"); return sb.toString(); } public static int showTempInteger(float f) { if (MyApplication.getInstance().isUnitCelsius()) { return Math.round(f); } return Math.round(c2f(f)); } public static String getDevicePresetValueStr(Context context, int i, float f, float f2, int i2, float f3, float f4) { if (i == 0 && i2 == 0) { return ""; } String string = context.getResources().getString(R.string.current_desired); String str = "~"; if ((i & 1) == 1) { if ((i & 2) == 2) { StringBuilder sb = new StringBuilder(); sb.append(string); sb.append(context.getResources().getString(R.string.current_desired_temp)); sb.append(showTempIntegerStr(f2)); sb.append(str); sb.append(showTempIntegerStr(f)); string = sb.toString(); } else { StringBuilder sb2 = new StringBuilder(); sb2.append(string); sb2.append(context.getResources().getString(R.string.current_desired_temp)); sb2.append(showTempIntegerStr(f2)); sb2.append("~∞"); string = sb2.toString(); } } else if ((i & 2) == 2) { StringBuilder sb3 = new StringBuilder(); sb3.append(string); sb3.append(context.getResources().getString(R.string.current_desired_temp)); sb3.append("-∞~"); sb3.append(showTempIntegerStr(f)); string = sb3.toString(); } if (!(i == 0 || i2 == 0)) { StringBuilder sb4 = new StringBuilder(); sb4.append(string); sb4.append(" · "); string = sb4.toString(); } if ((i2 & 1) == 1) { if ((i2 & 2) == 2) { StringBuilder sb5 = new StringBuilder(); sb5.append(string); sb5.append(context.getResources().getString(R.string.current_desired_humidity)); sb5.append(showHumidityIntegerStr(f4)); sb5.append(str); sb5.append(showHumidityIntegerStr(f3)); string = sb5.toString(); } else { StringBuilder sb6 = new StringBuilder(); sb6.append(string); sb6.append(context.getResources().getString(R.string.current_desired_humidity)); sb6.append(showHumidityIntegerStr(f4)); sb6.append("~100%"); string = sb6.toString(); } } else if ((i2 & 2) == 2) { StringBuilder sb7 = new StringBuilder(); sb7.append(string); sb7.append(context.getResources().getString(R.string.current_desired_humidity)); sb7.append("0%~"); sb7.append(showHumidityIntegerStr(f3)); string = sb7.toString(); } return string; } public static boolean isNew(long j, long j2, long j3) { return ((float) Math.abs((j - j2) / 1000)) > ((float) (j3 * 4)) / 10000.0f; } public static int c2fInterger(float f) { return Math.round((f * 1.8f) + 32.0f); } public static String time2Interval(long j) { int i = (int) (j / 86400000); long j2 = j % 86400000; int i2 = (int) (j2 / 3600000); int i3 = (int) ((j2 % 3600000) / 60000); if (i != 0) { if (i == 1) { StringBuilder sb = new StringBuilder(); sb.append(i); sb.append(" day ago"); return sb.toString(); } StringBuilder sb2 = new StringBuilder(); sb2.append(i); sb2.append(" days ago"); return sb2.toString(); } else if (i2 != 0) { if (i2 == 1) { StringBuilder sb3 = new StringBuilder(); sb3.append(i2); sb3.append(" hour ago"); return sb3.toString(); } StringBuilder sb4 = new StringBuilder(); sb4.append(i2); sb4.append(" hours ago"); return sb4.toString(); } else if (i3 > 30) { return "30 minutes ago"; } else { if (i3 > 20) { return "20 minutes ago"; } if (i3 > 10) { return "10 minutes ago"; } return i3 > 5 ? "5 minutes ago" : MyApplication.getInstance().getString(R.string.now); } } public static float dp2px(float f) { return TypedValue.applyDimension(1, f, Resources.getSystem().getDisplayMetrics()); } public static float sp2px(int i) { return TypedValue.applyDimension(2, (float) i, Resources.getSystem().getDisplayMetrics()); } public static String byte2HexStr(byte[] bArr) { String str = ""; for (byte b : bArr) { String hexString = Integer.toHexString(b & 255); if (hexString.length() == 1) { StringBuilder sb = new StringBuilder(); sb.append("0"); sb.append(hexString); hexString = sb.toString(); } StringBuilder sb2 = new StringBuilder(); sb2.append(str); sb2.append(hexString); sb2.append(" "); str = sb2.toString(); } return str; } public static String getVersion(Context context) { try { return context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionName; } catch (Exception e) { e.printStackTrace(); return "Can not find version name"; } } public static Bitmap getAvatar(Resources resources, int i) { Options options = new Options(); options.inJustDecodeBounds = true; BitmapFactory.decodeResource(resources, R.drawable.ic_triangle, options); options.inJustDecodeBounds = false; options.inDensity = options.outWidth; options.inTargetDensity = i; return BitmapFactory.decodeResource(resources, R.drawable.ic_triangle, options); } public static List<History> getShowData(int i, List<History> list, long j, float f, long j2, float f2) { float f3; int i2; int i3; int i4; String str; String str2; String str3; int i5; String str4; int i6; int i7; List<History> list2 = list; long j3 = j; float f4 = f; long j4 = j2; float f5 = f2; int size = list.size() < 100 ? list.size() : 100; float size2 = ((float) list.size()) / ((float) size); ArrayList arrayList = new ArrayList(size + 2); int i8 = 0; while (i8 < size) { float f6 = ((float) i8) * size2; int size3 = Math.round(f6) > list.size() - 1 ? list.size() - 1 : Math.round(f6); arrayList.add(list2.get(size3)); if (i == 1) { float f7 = ((float) (i8 + 1)) * size2; int size4 = Math.round(f7) > list.size() + -1 ? list.size() - 1 : Math.round(f7); String str5 = "getShowData: add lowest position: "; String str6 = "getShowData add lowest: "; i2 = size; f3 = size2; String str7 = "getShowData: add highest position: "; String str8 = ", "; String str9 = "HH:mm"; String str10 = "getShowData add highest: "; String str11 = TAG; if (j3 < j4) { if (((History) list2.get(size3)).getTime() >= j3 || ((History) list2.get(size4)).getTime() <= j3) { i6 = size4; i7 = size3; i4 = i8; str4 = str8; } else { StringBuilder sb = new StringBuilder(); sb.append(str6); sb.append(DateFormat.format(str9, j3)); sb.append(str8); sb.append(f4); Log.d(str11, sb.toString()); i6 = size4; String str12 = str5; i7 = size3; i4 = i8; str4 = str8; History history = r1; History history2 = new History(((History) list2.get(i8)).getSessionID().longValue(), f, j); arrayList.add(history); StringBuilder sb2 = new StringBuilder(); sb2.append(str12); sb2.append(arrayList.size() - 1); Log.d(str11, sb2.toString()); } if (((History) list2.get(i7)).getTime() >= j4 || ((History) list2.get(i6)).getTime() <= j4) { float f8 = f2; j3 = j; } else { StringBuilder sb3 = new StringBuilder(); sb3.append(str10); sb3.append(DateFormat.format(str9, j4)); sb3.append(str4); sb3.append(f2); Log.d(str11, sb3.toString()); int i9 = i4; History history3 = new History(((History) list2.get(i9)).getSessionID().longValue(), f2, j2); arrayList.add(history3); StringBuilder sb4 = new StringBuilder(); sb4.append(str7); sb4.append(arrayList.size() - 1); Log.d(str11, sb4.toString()); f4 = f; i3 = i9; j3 = j; } } else { int i10 = size4; String str13 = str5; int i11 = size3; int i12 = i8; String str14 = str9; String str15 = str8; String str16 = str7; String str17 = str10; float f9 = f2; if (((History) list2.get(i11)).getTime() >= j4 || ((History) list2.get(i10)).getTime() <= j4) { str3 = str6; str2 = str14; i5 = i12; str = str13; } else { StringBuilder sb5 = new StringBuilder(); sb5.append(str17); sb5.append(DateFormat.format(str14, j4)); sb5.append(str15); sb5.append(f9); Log.d(str11, sb5.toString()); str3 = str6; str = str13; History history4 = r1; str2 = str14; String str18 = str16; i5 = i12; History history5 = new History(((History) list2.get(i12)).getSessionID().longValue(), f2, j2); arrayList.add(history4); StringBuilder sb6 = new StringBuilder(); sb6.append(str18); sb6.append(arrayList.size() - 1); Log.d(str11, sb6.toString()); } j3 = j; String str19 = str; if (((History) list2.get(i11)).getTime() < j3 && ((History) list2.get(i10)).getTime() > j3) { StringBuilder sb7 = new StringBuilder(); sb7.append(str3); sb7.append(DateFormat.format(str2, j3)); sb7.append(str15); f4 = f; sb7.append(f4); Log.d(str11, sb7.toString()); i3 = i4; History history6 = new History(((History) list2.get(i3)).getSessionID().longValue(), f, j); arrayList.add(history6); StringBuilder sb8 = new StringBuilder(); sb8.append(str19); sb8.append(arrayList.size() - 1); Log.d(str11, sb8.toString()); } } f4 = f; i3 = i4; } else { i3 = i8; i2 = size; f3 = size2; } i8 = i3 + 1; j4 = j2; float f10 = f2; size = i2; size2 = f3; } return arrayList; } public static Uri saveBitmap(Bitmap bitmap, Uri uri) { StringBuilder sb = new StringBuilder(); sb.append("saveBitmap: "); sb.append(uri.getPath()); Log.i(TAG, sb.toString()); if (bitmap != null) { try { File file = new File(uri.getPath()); if (file.exists()) { file.delete(); } FileOutputStream fileOutputStream = new FileOutputStream(file); bitmap.compress(CompressFormat.PNG, 100, fileOutputStream); fileOutputStream.flush(); fileOutputStream.close(); return uri; } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e2) { e2.printStackTrace(); return null; } } return null; } public static String getBatteryRemainTime(int i) { StringBuilder sb = new StringBuilder(); sb.append(i); sb.append(""); return sb.toString(); } public static boolean isTimeFormat24(ContentResolver contentResolver) { String string = System.getString(contentResolver, "time_12_24"); if (string == null) { return false; } return "24".equals(string); } }
Editor is loading...