Search in sources :

Example 16 with WXResponse

use of com.taobao.weex.common.WXResponse in project incubator-weex by apache.

the class TypefaceUtil method downloadFontByNetwork.

private static void downloadFontByNetwork(final String url, final String fullPath, final String fontFamily) {
    IWXHttpAdapter adapter = WXSDKManager.getInstance().getIWXHttpAdapter();
    if (adapter == null) {
        WXLogUtils.e(TAG, "downloadFontByNetwork() IWXHttpAdapter == null");
        return;
    }
    WXRequest request = new WXRequest();
    request.url = url;
    request.method = "GET";
    adapter.sendRequest(request, new IWXHttpAdapter.OnHttpListener() {

        @Override
        public void onHttpStart() {
            if (WXEnvironment.isApkDebugable()) {
                WXLogUtils.d(TAG, "downloadFontByNetwork begin url:" + url);
            }
        }

        @Override
        public void onHeadersReceived(int statusCode, Map<String, List<String>> headers) {
        }

        @Override
        public void onHttpUploadProgress(int uploadProgress) {
        }

        @Override
        public void onHttpResponseProgress(int loadedLength) {
        }

        @Override
        public void onHttpFinish(WXResponse response) {
            int statusCode = 0;
            if (!TextUtils.isEmpty(response.statusCode)) {
                try {
                    statusCode = Integer.parseInt(response.statusCode);
                } catch (NumberFormatException e) {
                    statusCode = 0;
                    WXLogUtils.e(TAG, "IWXHttpAdapter onHttpFinish statusCode:" + response.statusCode);
                }
            }
            boolean result;
            if (statusCode >= 200 && statusCode <= 299 && response.originalData != null) {
                result = WXFileUtils.saveFile(fullPath, response.originalData, WXEnvironment.getApplication());
                if (result) {
                    result = loadLocalFontFile(fullPath, fontFamily, true);
                } else {
                    if (WXEnvironment.isApkDebugable()) {
                        WXLogUtils.d(TAG, "downloadFontByNetwork() onHttpFinish success, but save file failed.");
                    }
                }
            } else {
                result = false;
            }
            if (!result) {
                FontDO fontDO = sCacheMap.get(fontFamily);
                if (fontDO != null) {
                    fontDO.setState(FontDO.STATE_FAILED);
                }
            }
        }
    });
}
Also used : IWXHttpAdapter(com.taobao.weex.adapter.IWXHttpAdapter) List(java.util.List) WXRequest(com.taobao.weex.common.WXRequest) Paint(android.graphics.Paint) WXResponse(com.taobao.weex.common.WXResponse)

Aggregations

WXResponse (com.taobao.weex.common.WXResponse)16 WXRequest (com.taobao.weex.common.WXRequest)6 IWXHttpAdapter (com.taobao.weex.adapter.IWXHttpAdapter)5 Map (java.util.Map)5 JSONObject (com.alibaba.fastjson.JSONObject)4 JSMethod (com.taobao.weex.annotation.JSMethod)4 IOException (java.io.IOException)3 HashMap (java.util.HashMap)3 List (java.util.List)3 Paint (android.graphics.Paint)2 JSONException (com.alibaba.fastjson.JSONException)2 WXSDKInstanceTest (com.taobao.weex.WXSDKInstanceTest)2 JSCallback (com.taobao.weex.bridge.JSCallback)2 InputStream (java.io.InputStream)2 HttpURLConnection (java.net.HttpURLConnection)2 Call (okhttp3.Call)2 Response (okhttp3.Response)2 Test (org.junit.Test)2 PrepareForTest (org.powermock.core.classloader.annotations.PrepareForTest)2 AlertDialog (android.app.AlertDialog)1