avatar_LIST

Тюнинг и Апгрейд электросамоката XIAOMI

Автор LIST, 16 Фев. 2017 в 11:55

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Gennadiy203


EcoDrift

[user]Gennadiy203[/user], там не гигантская скидка на опт.

Толян

Производство, ремонт, тюнинг.
С уважением, Анатолий.

Gennadiy203


Толян

В теме по сяокату скидывал, лень лопатить, да и в гугл вбейте в поиск - полно вариантов выдает от 490р и выше, в регионах можно от 265р найти
Производство, ремонт, тюнинг.
С уважением, Анатолий.


mkile

#132
+1 к проколотым камерам. Пока накачанного дома колеса на доехать до работы хватает, но пока стоит ждет конца рабочего дня - спускает.
Вот нашел в СПБ камеру, но отсутствие цифр 50-134 смущает, да и сосок кажется будет цепляться.

Gennadiy203

Цитата: worona от 28 Фев. 2017 в 18:26
Цитата: Gennadiy203 от 28 Фев. 2017 в 13:42
Где именно ?
Здесь http://velodoctor.ru/Remont-velosipedov/remont-kolyasok/shina-dlya-detskoj-kolyaski-8-2-50-134.html
Вот еще, но не совсем понятно с размером...https://vamvelosiped.ru/velopokryishka-detskaya-vinca-8-1-2-2-chernaya-g-810-8-1-2-2-black.html
Второй вариант - то, что надо. А цена - вообще вкусняшка ! Покрышка 340 + камера 220 . https://vamvelosiped.ru/kamera-innova-8-1-2-kh-2-a-v-45-45.html
А первый вариант - протектор никакой.

LIST

Будьте осторожны с покрышками!
У меня 2 детские коляски  - собаку сел на этих размерах их куча для 8 10 12 14 дюймов
То есть подвох в том, что стоять может одна маркировка в дюймах на нескольких разных фактических диаметрах.
В связи с этим очень прошу, кто сам не купил и не поставил новую покрыху - не дезинформировать народ! :))
С уважением,
LIST

gde700

Мало того, покрышки для колясок НЕ РАССЧИТАНЫ на самокатные скорости и быстро выходят из строя.
Li-Ion microvast 55,5V 22Ah
DUAL-E-TWOW S2 15s1p 2x6fet nuclear! :)
Begode Tesla V2 литровая.


ISIEIAI

[user]gde700[/user], [user]LIST[/user], Ребят да за что тут говорить, нужен оригинал либо очень схожие но с другим протектором.

Тема с АЛИиком и вело сайтами только из-за отсутствия  :ah:

Ждем запаску от Купцов ;)
Мои заметки   ¯ \ _ (ツ) _ / ¯


mangoost

Если я правильно понимаю, то камеры для переднего и заднего колеса отличаются. На заднем вентиль кривой, а вот на переднем прямой, но сама камера при этом в покрышке размещается слегка косовато. Так? Или ошибаюсь?

777Andrew777

Как вариант аварийной замены, т.к. дорого, но зато сразу в Мск: шина и камера. Вроде по характеристикам подходят.

nicomunet123

Тут немного вещи по влому проясняются...
[user]VladimirL[/user] (если я не ошибаюсь) предоставил данные полученные WireShark'ом во время поиска обновлений прошивки...
Там выделяется адрес:  (http://api.io.mi.com/app/home/latest_version)
И этот адрес очень помогает с реверс-инжинирингом приложения, я понял механизм скачивания прошивки (ну плюс-минус).
Спойлер
package com.xiaomi.smarthome.framework.plugin.mpk;

import android.app.Activity;
import android.app.Application;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.location.Address;
import android.location.Geocoder;
import android.location.Location;
import android.net.Uri;
import android.os.Handler;
import android.os.Looper;
import android.os.RemoteException;
import android.support.v4.view.ViewCompat;
import android.text.TextUtils;
import android.util.Log;
import com.facebook.react.BuildConfig;
import com.tencent.mm.sdk.openapi.IWXAPI;
import com.xiaomi.plugin.core.XmPluginPackage;
import com.xiaomi.router.miio.miioplugin.DeviceStatus;
import com.xiaomi.router.miio.miioplugin.DeviceTagInfo;
import com.xiaomi.router.miio.miioplugin.IPluginCallback2;
import com.xiaomi.router.miio.miioplugin.IPluginRequest;
import com.xiaomi.router.miio.miioplugin.PluginServiceManager;
import com.xiaomi.smarthome.C1936R;
import com.xiaomi.smarthome.application.CommonApplication;
import com.xiaomi.smarthome.application.SHApplication;
import com.xiaomi.smarthome.bluetooth.Response.BleUpgradeResponse;
import com.xiaomi.smarthome.bluetooth.Response.FirmwareUpgradeResponse;
import com.xiaomi.smarthome.bluetooth.XmBluetoothRecord;
import com.xiaomi.smarthome.core.entity.account.MiServiceTokenInfo;
import com.xiaomi.smarthome.core.entity.net.NetRequest.Builder;
import com.xiaomi.smarthome.device.api.BtFirmwareUpdateInfo;
import com.xiaomi.smarthome.device.api.Callback;
import com.xiaomi.smarthome.device.api.DeviceStat;
import com.xiaomi.smarthome.device.api.DeviceTag;
import com.xiaomi.smarthome.device.api.FirmwareUpdateInfo;
import com.xiaomi.smarthome.device.api.KeyValuePair;
import com.xiaomi.smarthome.device.api.MessageCallback;
import com.xiaomi.smarthome.device.api.Parser;
import com.xiaomi.smarthome.device.api.UserInfo;
import com.xiaomi.smarthome.device.api.XmPluginHostApi;
import com.xiaomi.smarthome.device.api.service.IXmPluginHostService;
import com.xiaomi.smarthome.device.authorization.DeviceAuthManager;
import com.xiaomi.smarthome.device.authorization.page.DeviceAuthSlaveListActivity;
import com.xiaomi.smarthome.device.bluetooth.BleFirmwareUpgrader;
import com.xiaomi.smarthome.download.DownloadManager;
import com.xiaomi.smarthome.download.DownloadManager.Query;
import com.xiaomi.smarthome.download.DownloadManager.Request;
import com.xiaomi.smarthome.download.MiWFDownloadManager;
import com.xiaomi.smarthome.frame.ErrorCode;
import com.xiaomi.smarthome.frame.core.CoreApi;
import com.xiaomi.smarthome.frame.plugin.host.PluginHostApi;
import com.xiaomi.smarthome.library.apache.http.message.BasicNameValuePair;
import com.xiaomi.smarthome.library.common.network.NetworkUtils;
import com.xiaomi.smarthome.library.common.util.ListUtils;
import com.xiaomi.smarthome.plugin.Error;
import com.xiaomi.smarthome.plugin.devicesubscribe.PluginSubscribeCallback;
import com.xiaomi.smarthome.plugin.devicesubscribe.PluginUnSubscribeCallback;
import com.xiaomi.zxing.BarcodeFormat;
import com.xiaomi.zxing.BinaryBitmap;
import com.xiaomi.zxing.EncodeHintType;
import com.xiaomi.zxing.RGBLuminanceSource;
import com.xiaomi.zxing.Result;
import com.xiaomi.zxing.WriterException;
import com.xiaomi.zxing.common.BitMatrix;
import com.xiaomi.zxing.common.HybridBinarizer;
import com.xiaomi.zxing.qrcode.QRCodeReader;
import com.xiaomi.zxing.qrcode.QRCodeWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Hashtable;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import org.apache.http.NameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

public class PluginHostApiImpl extends PluginHostApi {
    static final String TAG = "XmPluginHostApiImpl";
    private static MiWFDownloadManager mDownloadManager;

    static {
        mDownloadManager = null;
    }

    public PluginHostApiImpl(Context context) {
        super(context);
        initRequest();
    }

    public String getPluginProcess(int i, String str) {
        if (PluginServiceManager.m9475a().m9480b() != null) {
            try {
                return PluginServiceManager.m9475a().m9480b().getPluginProcessName(i, str);
            } catch (RemoteException e) {
                e.printStackTrace();
            }
        }
        return null;
    }

    private void initRequest() {
        PluginServiceManager.m9475a().m9480b();
    }

    public Application application() {
        return SHApplication.m9540e();
    }

    public Context context() {
        return SHApplication.m9541f();
    }

    Looper getLooper() {
        Looper myLooper = Looper.myLooper();
        if (myLooper == null) {
            return Looper.getMainLooper();
        }
        return myLooper;
    }

    <T> void handlerSuccess(Callback<T> callback, T t, Looper looper) {
        Log.d(TAG, "handlerSuccess");
        if (callback != null) {
            if (looper == null) {
                looper = Looper.getMainLooper();
            }
            new Handler(looper).post(new 1(this, callback, t));
        }
    }

    <T> void handlerFailed(Callback<T> callback, int i, String str, Looper looper) {
        Log.d(TAG, "handlerFailed");
        if (callback != null) {
            if (looper == null) {
                looper = Looper.getMainLooper();
            }
            new Handler(looper).post(new 2(this, callback, i, str));
        }
    }

    public <T> void callHttpApi(String str, String str2, String str3, List<NameValuePair> list, Callback<T> callback, Parser<T> parser) {
        List arrayList = new ArrayList();
        if (list != null) {
            for (NameValuePair nameValuePair : list) {
                arrayList.add(new BasicNameValuePair(nameValuePair.getName(), nameValuePair.getValue()));
            }
        }
        NetworkUtils.m10147a(str2, str3, arrayList, (Callback) callback, (Parser) parser);
    }

    public <T> void callHttpApiV13(String str, String str2, String str3, List<KeyValuePair> list, Callback<T> callback, Parser<T> parser) {
        List arrayList = new ArrayList();
        if (list != null) {
            for (KeyValuePair keyValuePair : list) {
                arrayList.add(new BasicNameValuePair(keyValuePair.getKey(), keyValuePair.getValue()));
            }
        }
        NetworkUtils.m10147a(str2, str3, arrayList, (Callback) callback, (Parser) parser);
    }

    public List<DeviceStat> getDeviceList() {
        if (PluginServiceManager.m9475a().m9480b() != null) {
            try {
                List<DeviceStatus> deviceList = PluginServiceManager.m9475a().m9480b().getDeviceList();
                if (deviceList != null) {
                    List<DeviceStat> arrayList = new ArrayList();
                    for (DeviceStatus a : deviceList) {
                        arrayList.add(a.a());
                    }
                    return arrayList;
                }
            } catch (RemoteException e) {
            }
        }
        return null;
    }

    public List<DeviceStat> getDeviceListV2(List<String> list) {
        if (PluginServiceManager.m9475a().m9480b() != null) {
            try {
                List<DeviceStatus> deviceListV2 = PluginServiceManager.m9475a().m9480b().getDeviceListV2(list);
                if (deviceListV2 != null) {
                    List<DeviceStat> arrayList = new ArrayList();
                    for (DeviceStatus a : deviceListV2) {
                        arrayList.add(a.a());
                    }
                    return arrayList;
                }
            } catch (RemoteException e) {
            }
        }
        return null;
    }

    public DeviceStat getDeviceByDid(String str) {
        if (PluginServiceManager.m9475a().m9480b() != null) {
            try {
                DeviceStatus device = PluginServiceManager.m9475a().m9480b().getDevice(str);
                if (device != null) {
                    return device.a();
                }
            } catch (RemoteException e) {
            }
        }
        return null;
    }

    public DeviceTag getDeviceTagByDid(String str) {
        if (PluginServiceManager.m9475a().m9480b() != null) {
            try {
                DeviceTagInfo deviceTagInfo = PluginServiceManager.m9475a().m9480b().getDeviceTagInfo(str);
                if (deviceTagInfo != null) {
                    return deviceTagInfo.a();
                }
            } catch (RemoteException e) {
            }
        }
        return null;
    }

    public void addTag(String str, String str2) {
        if (PluginServiceManager.m9475a().m9480b() != null) {
            try {
                PluginServiceManager.m9475a().m9480b().addTag(str, str2);
            } catch (RemoteException e) {
                e.printStackTrace();
            }
        }
    }

    public void removeTag(String str) {
        if (PluginServiceManager.m9475a().m9480b() != null) {
            try {
                PluginServiceManager.m9475a().m9480b().removeTag(str);
            } catch (RemoteException e) {
                e.printStackTrace();
            }
        }
    }

    public List<DeviceStat> getSubDeviceByParentDid(String str) {
        if (PluginServiceManager.m9475a().m9480b() != null) {
            try {
                List<DeviceStatus> subDeviceByParentDid = PluginServiceManager.m9475a().m9480b().getSubDeviceByParentDid(str);
                if (subDeviceByParentDid != null) {
                    List<DeviceStat> arrayList = new ArrayList();
                    for (DeviceStatus a : subDeviceByParentDid) {
                        arrayList.add(a.a());
                    }
                    return arrayList;
                }
            } catch (RemoteException e) {
            }
        }
        return null;
    }

    public void recordCountEvent(String str, String str2) {
        addRecord(str, str2, (Object) Integer.valueOf(1), null);
    }

    public void recordCountEvent(String str, String str2, Map<String, String> map) {
        addRecord(str, str2, (Object) map, null);
    }

    public void recordCalculateEvent(String str, String str2, long j) {
        addRecord(str, str2, (Object) Long.valueOf(j), null);
    }

    public void recordCalculateEvent(String str, String str2, long j, Map<String, String> map) {
        addRecord(str, str2, (Object) Long.valueOf(j), null);
    }

    public void recordStringPropertyEvent(String str, String str2, String str3) {
        addRecord(str, str2, (Object) str3, null);
    }

    public void recordNumericPropertyEvent(String str, String str2, long j) {
        addRecord(str, str2, (Object) Long.valueOf(j), null);
    }

    public void subscribeDevice(String str, int i, List<String> list, int i2, Callback<Void> callback) {
        3 3 = new 3(this, callback, getLooper());
        try {
            if (PluginServiceManager.m9475a().m9480b() != null) {
                PluginServiceManager.m9475a().m9480b().subscribeDevice(str, i, list, i2, 3);
            } else if (callback != null) {
                callback.onFailure(ErrorCode.C.a(), "PluginRequest is null");
            }
        } catch (RemoteException e) {
            if (callback != null) {
                callback.onFailure(ErrorCode.C.a(), e.toString());
            }
        }
    }

    public void unsubscribeDevice(String str, int i, List<String> list, Callback<Void> callback) {
        4 4 = new 4(this, callback, getLooper());
        try {
            if (PluginServiceManager.m9475a().m9480b() != null) {
                PluginServiceManager.m9475a().m9480b().unsubscribeDevice(str, i, list, 4);
            } else if (callback != null) {
                callback.onFailure(ErrorCode.C.a(), "PluginRequest is null");
            }
        } catch (RemoteException e) {
            if (callback != null) {
                callback.onFailure(ErrorCode.C.a(), e.toString());
            }
        }
    }

    private Looper getCallbackLooper(Looper looper) {
        if (looper == null) {
            return Looper.getMainLooper();
        }
        return looper;
    }

    public void subscribeDeviceV2(String str, int i, List<String> list, int i2, PluginSubscribeCallback pluginSubscribeCallback) {
        5 5 = new 5(this, pluginSubscribeCallback, getLooper());
        try {
            if (PluginServiceManager.m9475a().m9480b() != null) {
                PluginServiceManager.m9475a().m9480b().subscribeDeviceV2(str, i, list, i2, 5);
            } else if (pluginSubscribeCallback != null) {
                pluginSubscribeCallback.onFailure(new Error(ErrorCode.C.a(), "PluginRequest is null"));
            }
        } catch (RemoteException e) {
            if (pluginSubscribeCallback != null) {
                pluginSubscribeCallback.onFailure(new Error(ErrorCode.C.a(), e.toString()));
            }
        }
    }

    public void unsubscribeDeviceV2(String str, int i, List<String> list, String str2, PluginUnSubscribeCallback pluginUnSubscribeCallback) {
        6 6 = new 6(this, pluginUnSubscribeCallback, getLooper());
        try {
            if (PluginServiceManager.m9475a().m9480b() != null) {
                PluginServiceManager.m9475a().m9480b().unsubscribeDeviceV2(str, i, list, str2, 6);
            } else if (pluginUnSubscribeCallback != null) {
                pluginUnSubscribeCallback.onFailure(new Error(ErrorCode.C.a(), "PluginRequest is null"));
            }
        } catch (RemoteException e) {
            if (pluginUnSubscribeCallback != null) {
                pluginUnSubscribeCallback.onFailure(new Error(ErrorCode.C.a(), e.toString()));
            }
        }
    }

    public <T> void callMethod(String str, String str2, Callback<T> callback, Parser<T> parser) {
        request(str, str2, callback, parser);
    }

    public <T> void callLocalHttpApi(String str, String str2, String str3, List<NameValuePair> list, Callback<T> callback, Parser<T> parser) {
        List arrayList = new ArrayList();
        if (list != null) {
            for (NameValuePair nameValuePair : list) {
                arrayList.add(new BasicNameValuePair(nameValuePair.getName(), nameValuePair.getValue()));
            }
        }
        CommonApplication.m9532a().post(new 7(this, str2, str3, arrayList, callback, parser));
    }

    public <T> void callLocalHttpApiV13(String str, String str2, String str3, List<KeyValuePair> list, Callback<T> callback, Parser<T> parser) {
        List arrayList = new ArrayList();
        if (list != null) {
            for (KeyValuePair keyValuePair : list) {
                arrayList.add(new BasicNameValuePair(keyValuePair.getKey(), keyValuePair.getValue()));
            }
        }
        CommonApplication.m9532a().post(new 8(this, str2, str3, arrayList, callback, parser));
    }

    public void modDeviceName(String str, String str2, Callback<Void> callback) {
        9 9 = new 9(this, callback, getLooper());
        try {
            if (PluginServiceManager.m9475a().m9480b() != null) {
                PluginServiceManager.m9475a().m9480b().modDeviceName(str, str2, 9);
            } else if (callback != null) {
                callback.onFailure(ErrorCode.C.a(), "PluginRequest is null");
            }
        } catch (RemoteException e) {
            if (callback != null) {
                callback.onFailure(ErrorCode.C.a(), e.toString());
            }
        }
    }

    public void unBindDevice(String str, int i, Callback<Void> callback) {
        10 10 = new 10(this, callback, getLooper());
        try {
            if (PluginServiceManager.m9475a().m9480b() != null) {
                PluginServiceManager.m9475a().m9480b().unBindDevice(str, i, 10);
            } else if (callback != null) {
                callback.onFailure(ErrorCode.C.a(), "PluginRequest is null");
            }
        } catch (RemoteException e) {
            if (callback != null) {
                callback.onFailure(ErrorCode.C.a(), e.toString());
            }
        }
    }

    public Location getLastLocation() {
        try {
            if (PluginServiceManager.m9475a().m9480b() != null) {
                return PluginServiceManager.m9475a().m9480b().getLastLocation();
            }
        } catch (RemoteException e) {
        }
        return null;
    }

    public boolean isNetworkLocationEnabled() {
        try {
            if (PluginServiceManager.m9475a().m9480b() != null) {
                return PluginServiceManager.m9475a().m9480b().isNetworkLocationEnabled();
            }
        } catch (RemoteException e) {
        }
        return false;
    }

    public boolean isGPSLocationEnable() {
        try {
            if (PluginServiceManager.m9475a().m9480b() != null) {
                return PluginServiceManager.m9475a().m9480b().isGPSLocationEnable();
            }
        } catch (RemoteException e) {
        }
        return false;
    }

    public void requestLocation(Callback<Location> callback) {
        11 11 = new 11(this, callback, getLooper());
        try {
            if (PluginServiceManager.m9475a().m9480b() != null) {
                PluginServiceManager.m9475a().m9480b().requestLocation(11);
            } else if (callback != null) {
                callback.onFailure(ErrorCode.C.a(), "PluginRequest is null");
            }
        } catch (RemoteException e) {
            if (callback != null) {
                callback.onFailure(ErrorCode.C.a(), e.toString());
            }
        }
    }

    public String getProperty(String str, String str2) {
        if ("account.xiaoqiang.userId".equals(str2)) {
            return CoreApi.m9894a().m9989o();
        }
        String str3;
        MiServiceTokenInfo a;
        if ("account.xiaoqiang.serviceToken".equals(str2)) {
            str3 = BuildConfig.FLAVOR;
            a = CoreApi.m9894a().m9917a("xiaoqiang");
            if (a != null) {
                return a.b;
            }
            return str3;
        } else if ("account.xiaoqiang.timediff".equals(str2)) {
            str3 = BuildConfig.FLAVOR;
            a = CoreApi.m9894a().m9917a("xiaoqiang");
            if (a != null) {
                return Long.toString(a.d);
            }
            return str3;
        } else if ("account.xiaoqiang.ssecurity".equals(str2)) {
            str3 = BuildConfig.FLAVOR;
            a = CoreApi.m9894a().m9917a("xiaoqiang");
            if (a != null) {
                return a.c;
            }
            return str3;
        } else if ("account.xiaoqiang.passtoken".equals(str2)) {
            return CoreApi.m9894a().m9993s();
        } else {
            return null;
        }
    }

    public void updateDeviceList(Callback<Void> callback) {
        12 12 = new 12(this, callback, getLooper());
        try {
            if (PluginServiceManager.m9475a().m9480b() != null) {
                PluginServiceManager.m9475a().m9480b().updateDeviceList(12);
            } else if (callback != null) {
                callback.onFailure(ErrorCode.C.a(), "PluginRequest is null");
            }
        } catch (RemoteException e) {
            if (callback != null) {
                callback.onFailure(ErrorCode.C.a(), e.toString());
            }
        }
    }

    public void updateDeviceProperties(String str, JSONObject jSONObject) {
        try {
            if (PluginServiceManager.m9475a().m9480b() != null && jSONObject != null) {
                PluginServiceManager.m9475a().m9480b().updateDeviceProperties(str, jSONObject.toString());
            }
        } catch (RemoteException e) {
        }
    }

    public void log(String str, String str2) {
        try {
            if (PluginServiceManager.m9475a().m9480b() != null) {
                PluginServiceManager.m9475a().m9480b().log(str, str2);
            }
        } catch (RemoteException e) {
        }
    }

    public void startService(Intent intent, XmPluginPackage xmPluginPackage, Class cls) {
        Intent intent2 = new Intent(SHApplication.m9541f(), XmPluginService.class);
        if (intent != null) {
            intent2.putExtras(intent);
        }
        intent2.putExtra(IXmPluginHostService.EXTRA_PACKAGE, xmPluginPackage.packageName);
        intent2.putExtra(IXmPluginHostService.EXTRA_CLASS, cls.getName());
        SHApplication.m9541f().startActivity(intent2);
    }

    public boolean stopService(Intent intent, XmPluginPackage xmPluginPackage, Class cls) {
        return false;
    }

    public boolean bindService(Intent intent, XmPluginPackage xmPluginPackage, Class cls, ServiceConnection serviceConnection, int i) {
        Intent intent2 = new Intent(SHApplication.m9541f(), XmPluginService.class);
        if (intent != null) {
            intent2.putExtras(intent);
        }
        intent2.putExtra(IXmPluginHostService.EXTRA_PACKAGE, xmPluginPackage.packageName);
        intent2.putExtra(IXmPluginHostService.EXTRA_CLASS, cls.getName());
        return SHApplication.m9541f().bindService(intent2, serviceConnection, i);
    }

    public void addToLauncher(XmPluginPackage xmPluginPackage, String str, Intent intent) {
        try {
            if (PluginServiceManager.m9475a().m9480b() != null) {
                PluginServiceManager.m9475a().m9480b().addToLauncher(str, intent);
            }
        } catch (RemoteException e) {
        }
    }

    public void setSubDeviceShownMode(XmPluginPackage xmPluginPackage, boolean z, String str, Context context, Callback<Void> callback) {
        13 13 = new 13(this, callback, getLooper());
        try {
            if (PluginServiceManager.m9475a().m9480b() != null) {
                PluginServiceManager.m9475a().m9480b().setSubDeviceShownMode(str, z, 13);
            } else if (callback != null) {
                callback.onFailure(ErrorCode.C.a(), "PluginRequest is null");
            }
        } catch (RemoteException e) {
            if (callback != null) {
                callback.onFailure(ErrorCode.C.a(), e.toString());
            }
        }
    }

    public String getRouterFileDownloadUrl(String str) {
        try {
            if (PluginServiceManager.m9475a().m9480b() != null) {
                return PluginServiceManager.m9475a().m9480b().getRouterFileDownloadUrl(str);
            }
        } catch (RemoteException e) {
        }
        return BuildConfig.FLAVOR;
    }

    public void checkLocalRouterInfo(String str, Callback<Void> callback) {
        14 14 = new 14(this, callback, getLooper());
        try {
            if (PluginServiceManager.m9475a().m9480b() != null) {
                PluginServiceManager.m9475a().m9480b().checkLocalRouterInfo(str, 14);
            } else if (callback != null) {
                callback.onFailure(ErrorCode.C.a(), "PluginRequest is null");
            }
        } catch (RemoteException e) {
            if (callback != null) {
                callback.onFailure(ErrorCode.C.a(), e.toString());
            }
        }
    }

    public boolean isLocalMiRouter() {
        try {
            if (PluginServiceManager.m9475a().m9480b() != null) {
                return PluginServiceManager.m9475a().m9480b().isLocalMiRouter();
            }
        } catch (RemoteException e) {
        }
        return false;
    }

    public void gotoPage(Context context, XmPluginPackage xmPluginPackage, Uri uri, Callback<Void> callback) {
        try {
            if (PluginServiceManager.m9475a().m9480b() != null) {
                PluginServiceManager.m9475a().m9480b().gotoPage(uri);
            }
        } catch (RemoteException e) {
        }
    }

    public void sendMessage(String str, int i, Intent intent, DeviceStat deviceStat, MessageCallback messageCallback) {
        Looper looper = getLooper();
        IPluginCallback2 iPluginCallback2 = null;
        if (messageCallback != null) {
            iPluginCallback2 = new 15(this, looper, messageCallback);
        }
        try {
            if (PluginServiceManager.m9475a().m9480b() != null) {
                PluginServiceManager.m9475a().m9480b().sendMessage(str, i, intent, iPluginCallback2);
            } else if (messageCallback != null) {
                messageCallback.onFailure(ErrorCode.C.a(), "PluginRequest is null");
            }
        } catch (RemoteException e) {
            if (messageCallback != null) {
                messageCallback.onFailure(ErrorCode.C.a(), e.toString());
            }
        }
    }

    public void notifyBluetoothBinded(String str, String str2) {
        try {
            if (PluginServiceManager.m9475a().m9480b() != null) {
                PluginServiceManager.m9475a().m9480b().notifyBluetoothBinded(str.toUpperCase(), str2);
            }
        } catch (RemoteException e) {
        }
    }

    public void getUserInfo(String str, Callback<UserInfo> callback) {
        16 16 = new 16(this, callback, getLooper());
        try {
            if (PluginServiceManager.m9475a().m9480b() != null) {
                PluginServiceManager.m9475a().m9480b().getUserInfo(str, 16);
            } else if (callback != null) {
                callback.onFailure(ErrorCode.C.a(), "PluginRequest is null");
            }
        } catch (RemoteException e) {
            if (callback != null) {
                callback.onFailure(ErrorCode.C.a(), e.toString());
            }
        }
    }

    @Deprecated
    public long startDownload(Uri uri, String str, String str2, String str3) {
        Request request = new Request(uri, str);
        request.a(SHApplication.m9541f(), str2, str3);
        MiWFDownloadManager downloadManager = getDownloadManager();
        if (downloadManager != null) {
            return downloadManager.a(request);
        }
        return 0;
    }

    @Deprecated
    private MiWFDownloadManager getDownloadManager() {
        if (mDownloadManager == null) {
            synchronized (DownloadManager.class) {
                if (mDownloadManager == null) {
                    mDownloadManager = new MiWFDownloadManager(SHApplication.m9541f(), SHApplication.m9541f().getContentResolver(), SHApplication.m9541f().getPackageName());
                }
            }
        }
        return mDownloadManager;
    }

    @Deprecated
    public void pauseDownload(long... jArr) {
        MiWFDownloadManager downloadManager = getDownloadManager();
        if (downloadManager != null) {
            downloadManager.b(jArr);
        }
    }

    @Deprecated
    public void resumeDownload(long... jArr) {
        MiWFDownloadManager downloadManager = getDownloadManager();
        if (downloadManager != null) {
            downloadManager.c(jArr);
        }
    }

    @Deprecated
    public void restartDownload(long... jArr) {
        MiWFDownloadManager downloadManager = getDownloadManager();
        if (downloadManager != null) {
            downloadManager.d(jArr);
        }
    }

    @Deprecated
    public void removeDownload(long... jArr) {
        MiWFDownloadManager downloadManager = getDownloadManager();
        if (downloadManager != null) {
            downloadManager.a(jArr);
        }
    }

    @Deprecated
    public Cursor queryDownload(boolean z, long... jArr) {
        MiWFDownloadManager downloadManager = getDownloadManager();
        if (downloadManager == null) {
            return null;
        }
        Query query = new Query();
        query.a(jArr).a(z);
        return downloadManager.a(query);
    }

    @Deprecated
    public void notifyLocalWifiConnect(boolean z) {
        MiWFDownloadManager downloadManager = getDownloadManager();
        if (downloadManager != null) {
            downloadManager.a(z);
        }
    }

    public void updateSubDevice(XmPluginPackage xmPluginPackage, String[] strArr, Callback<List<DeviceStat>> callback) {
        17 17 = new 17(this, callback, getLooper());
        try {
            if (PluginServiceManager.m9475a().m9480b() != null) {
                PluginServiceManager.m9475a().m9480b().updateSubDevice(strArr, 17);
            } else if (callback != null) {
                callback.onFailure(ErrorCode.C.a(), "PluginRequest is null");
            }
        } catch (RemoteException e) {
            if (callback != null) {
                callback.onFailure(ErrorCode.C.a(), e.toString());
            }
        }
    }

    public void callRemoteAsync(String[] strArr, int i, Object obj, Callback<JSONObject> callback) {
        Looper looper = getLooper();
        if (obj == null || !(obj instanceof JSONObject)) {
            handlerFailed(callback, -1, "params is not jsonobject", looper);
            return;
        }
        18 18 = new 18(this, callback, looper);
        try {
            if (PluginServiceManager.m9475a().m9480b() != null) {
                PluginServiceManager.m9475a().m9480b().callRemoteAsync(strArr, i, obj.toString(), 18, null);
            } else if (callback != null) {
                callback.onFailure(ErrorCode.C.a(), "PluginRequest is null");
            }
        } catch (RemoteException e) {
            if (callback != null) {
                callback.onFailure(ErrorCode.C.a(), e.toString());
            }
        }
    }

    public void getBluetoothFirmwareUpdateInfo(String str, Callback<BtFirmwareUpdateInfo> callback) {
        JSONObject jSONObject = new JSONObject();
        try {
            jSONObject.put("model", str);
            callSmartHomeApi(str, "/home/latest_version", jSONObject, (Callback) callback, (Parser) new 19(this));
        } catch (JSONException e) {
            if (callback != null) {
                callback.onFailure(-1, e.toString());
            }
        }
    }

    public IWXAPI createWXAPI(Context context, boolean z) {
        return SHApplication.m9547l();
    }

    public void reportBluetoothRecords(String str, String str2, List<XmBluetoothRecord> list, Callback<List<Boolean>> callback) {
        JSONObject jSONObject = new JSONObject();
        try {
            jSONObject.put("did", str);
            JSONArray jSONArray = new JSONArray();
            if (!ListUtils.a(list)) {
                for (XmBluetoothRecord toJson : list) {
                    jSONArray.put(toJson.toJson());
                }
            }
            jSONObject.put("datas", jSONArray);
            callSmartHomeApi(str2, "/device/event", jSONObject, (Callback) callback, (Parser) new 20(this));
        } catch (Exception e) {
            if (callback != null) {
                callback.onFailure(-1, e.toString());
            }
        }
    }

    public void downloadBleFirmware(String str, BleUpgradeResponse bleUpgradeResponse) {
        if (!TextUtils.isEmpty(str)) {
            BleFirmwareUpgrader.a(str, bleUpgradeResponse);
        }
    }

    public void downloadFirmware(String str, FirmwareUpgradeResponse firmwareUpgradeResponse) {
        if (!TextUtils.isEmpty(str)) {
            BleFirmwareUpgrader.a(str, firmwareUpgradeResponse);
        }
    }

    public void cancelDownloadBleFirmware(String str) {
        if (!TextUtils.isEmpty(str)) {
            BleFirmwareUpgrader.a(str);
        }
    }

    public void setBleDeviceSubtitle(String str, String str2) {
        try {
            if (PluginServiceManager.m9475a().m9480b() != null) {
                PluginServiceManager.m9475a().m9480b().setBleDeviceSubtitle(str, str2);
            }
        } catch (RemoteException e) {
        }
    }

    public void deviceRename(String str, String str2) {
        try {
            if (PluginServiceManager.m9475a().m9480b() != null) {
                PluginServiceManager.m9475a().m9480b().renameBluetoothDevice(str, str2);
            }
        } catch (RemoteException e) {
        }
    }

    public void callRemoteAsync(String[] strArr, int i, Object obj, Callback<JSONObject> callback, Callback<JSONObject> callback2) {
        Looper looper = getLooper();
        if (obj == null || !(obj instanceof JSONObject)) {
            handlerFailed(callback, -1, "params is not jsonobject", looper);
            return;
        }
        21 21 = new 21(this, callback, looper);
        22 22 = new 22(this, callback2, looper);
        try {
            if (PluginServiceManager.m9475a().m9480b() != null) {
                PluginServiceManager.m9475a().m9480b().callRemoteAsync(strArr, i, obj.toString(), 21, 22);
            } else if (callback != null) {
                callback.onFailure(ErrorCode.C.a(), "PluginRequest is null");
            }
        } catch (RemoteException e) {
            if (callback != null) {
                callback.onFailure(ErrorCode.C.a(), e.toString());
            }
        }
    }

    public String getGlobalSettingServer() {
        return CoreApi.m9894a().m9998x();
    }

    public void getRechargeBalances(int i, double d, double d2, Callback<JSONObject> callback) {
        String format;
        Builder builder;
        List arrayList;
        String subAdminArea;
        IOException iOException;
        String str = "/api/utility/v1/utilities/%d/balances?refs=10";
        CharSequence charSequence = BuildConfig.FLAVOR;
        try {
            List fromLocation = new Geocoder(XmPluginHostApi.instance().context(), Locale.CHINA).getFromLocation(d, d2, 1);
            CharSequence charSequence2;
            if (fromLocation == null || fromLocation.size() <= 0) {
                charSequence2 = charSequence;
                format = String.format(str, new Object[]{Integer.valueOf(i)});
                builder = new Builder();
                builder.a(XmPluginHostApi.METHOD_GET);
                builder.b(format);
                arrayList = new ArrayList();
                arrayList.add(new com.xiaomi.smarthome.core.entity.net.KeyValuePair("cityName", subAdminArea));
                builder.a(arrayList);
                CoreApi.m9894a().m9920a(context(), builder.a(), new 23(this), new 24(this, callback));
            }
            CharSequence adminArea;
            Address address = (Address) fromLocation.get(0);
            if (TextUtils.isEmpty(charSequence)) {
                charSequence = address.getLocality();
            }
            if (TextUtils.isEmpty(charSequence)) {
                adminArea = address.getAdminArea();
            } else {
                adminArea = charSequence;
            }
            try {
                if (TextUtils.isEmpty(adminArea)) {
                    subAdminArea = address.getSubAdminArea();
                } else {
                    charSequence2 = adminArea;
                }
            } catch (IOException e) {
                IOException iOException2 = e;
                charSequence2 = adminArea;
                iOException = iOException2;
                iOException.printStackTrace();
                format = String.format(str, new Object[]{Integer.valueOf(i)});
                builder = new Builder();
                builder.a(XmPluginHostApi.METHOD_GET);
                builder.b(format);
                arrayList = new ArrayList();
                arrayList.add(new com.xiaomi.smarthome.core.entity.net.KeyValuePair("cityName", subAdminArea));
                builder.a(arrayList);
                CoreApi.m9894a().m9920a(context(), builder.a(), new 23(this), new 24(this, callback));
            }
            format = String.format(str, new Object[]{Integer.valueOf(i)});
            builder = new Builder();
            builder.a(XmPluginHostApi.METHOD_GET);
            builder.b(format);
            arrayList = new ArrayList();
            arrayList.add(new com.xiaomi.smarthome.core.entity.net.KeyValuePair("cityName", subAdminArea));
            builder.a(arrayList);
            CoreApi.m9894a().m9920a(context(), builder.a(), new 23(this), new 24(this, callback));
        } catch (IOException e2) {
            iOException = e2;
            subAdminArea = charSequence;
            iOException.printStackTrace();
            format = String.format(str, new Object[]{Integer.valueOf(i)});
            builder = new Builder();
            builder.a(XmPluginHostApi.METHOD_GET);
            builder.b(format);
            arrayList = new ArrayList();
            arrayList.add(new com.xiaomi.smarthome.core.entity.net.KeyValuePair("cityName", subAdminArea));
            builder.a(arrayList);
            CoreApi.m9894a().m9920a(context(), builder.a(), new 23(this), new 24(this, callback));
        }
    }

    public Bitmap encodeBarcode(String str, int i, int i2) {
        if (TextUtils.isEmpty(str)) {
            return null;
        }
        Map hashtable = new Hashtable();
        hashtable.put(EncodeHintType.CHARACTER_SET, "utf-8");
        try {
            BitMatrix a = new QRCodeWriter().a(str, BarcodeFormat.l, i, i2, hashtable);
            int[] iArr = new int[(i * i2)];
            for (int i3 = 0; i3 < i2; i3++) {
                for (int i4 = 0; i4 < i; i4++) {
                    if (a.m10297a(i4, i3)) {
                        iArr[(i3 * i) + i4] = ViewCompat.MEASURED_STATE_MASK;
                    } else {
                        iArr[(i3 * i) + i4] = -1;
                    }
                }
            }
            Bitmap createBitmap = Bitmap.createBitmap(i, i2, Config.ARGB_8888);
            createBitmap.setPixels(iArr, 0, i, 0, 0, i, i2);
            return createBitmap;
        } catch (WriterException e) {
            e.printStackTrace();
            return null;
        }
    }

    public String decodeBarcode(Bitmap bitmap) {
        if (bitmap == null) {
            return null;
        }
        if (bitmap.getConfig() != Config.ARGB_8888) {
            return null;
        }
        QRCodeReader qRCodeReader = new QRCodeReader();
        int[] iArr = new int[(bitmap.getWidth() * bitmap.getHeight())];
        bitmap.getPixels(iArr, 0, bitmap.getWidth(), 0, 0, bitmap.getWidth(), bitmap.getHeight());
        try {
            Result a = qRCodeReader.a(new BinaryBitmap(new HybridBinarizer(new RGBLuminanceSource(bitmap.getWidth(), bitmap.getHeight(), iArr))));
            if (a != null) {
                return a.a();
            }
            return null;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    public void updateDevice(List<String> list, Callback<List<DeviceStat>> callback) {
        25 25 = new 25(this, callback, getLooper());
        try {
            if (PluginServiceManager.m9475a().m9480b() != null) {
                PluginServiceManager.m9475a().m9480
E-TWOW Eco -> Kugoo -> Ninebot ES1 -> Ninebot ES-Trash

Бабай

Цитата: nicomunet123 от 04 Март 2017 в 00:03
Тут немного вещи по влому проясняются...
Нихрена непонятно.
Это писал какой-то насильник.
А я всегда был макрушником  :bw:
OMAKS V1 - Почти скончалась батарея. Хватает на 5 км до просадки напряжения ниже низшего предела ...
осталась одна подножка из четырёх ... ездю на одной подножке, а вторую ногу ставлю на маятник ))).
Канал YouTube https://www.youtube.com/user/krakodill