فهرست منبع

add download file

yanyi 6 سال پیش
والد
کامیت
db9cdf8414

+ 1 - 1
.idea/misc.xml

@@ -25,7 +25,7 @@
       </value>
     </option>
   </component>
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" project-jdk-name="JDK" project-jdk-type="JavaSDK">
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" project-jdk-name="1.8" project-jdk-type="JavaSDK">
     <output url="file://$PROJECT_DIR$/build/classes" />
   </component>
   <component name="ProjectType">

+ 30 - 21
app/src/main/java/com/mylove/okhttp/MainActivity.java

@@ -7,7 +7,6 @@ import android.support.annotation.Nullable;
 import android.support.v7.app.AppCompatActivity;
 
 import com.mylove.loglib.JLog;
-import com.mylove.okhttp.listener.OnDownloadCallBack;
 import com.mylove.okhttp.listener.OnOkHttpListener;
 import com.yanyi.permissionlib.PermissionHelper;
 import com.yanyi.permissionlib.PermissionType;
@@ -35,7 +34,8 @@ public class MainActivity extends AppCompatActivity {
         permissionHelper.hasPermission(new PermissionHelper.OnPermissionListener() {
             @Override
             public void onAllPermissionSuccess() {
-                init();
+//                init();
+                downloadDFU();
             }
 
             @Override
@@ -75,25 +75,34 @@ public class MainActivity extends AppCompatActivity {
     private void downloadDFU() {
         OkHttpInfo.soapDataTopString = "";
         JLog.init(true);
-        String url = "http://www.yanyi.red/bluetooth/ios.pdf";
-        String filePath = "/dectector/dfu/";
-//        String filePath = Environment.getExternalStorageDirectory().toString() + "/dectector/dfu/";
-        OkHttpUtil.getInstance(this).downloadFile(url).downloads(filePath, new OnDownloadCallBack() {
-            @Override
-            public void onDownloading(int progress) {
-                JLog.d(progress + "");
-            }
-
-            @Override
-            public void onSuccess(String message) {
-                JLog.v(message);
-            }
-
-            @Override
-            public void onFailure(Throwable t) {
-                JLog.e(t.getMessage());
-            }
-        });
+        String url = "http://www.yanyi.red/bluetooth/dectector/dectector.apk";
+//        String filePath = "/dectector/dfu/";
+////        String filePath = Environment.getExternalStorageDirectory().toString() + "/dectector/dfu/";
+//        OkHttpUtil.getInstance(this).downloadFile(url).downloads(filePath, new OnDownloadCallBack() {
+//            @Override
+//            public void onDownloading(int progress) {
+//                JLog.d(progress + "");
+//            }
+//
+//            @Override
+//            public void onSuccess(String message) {
+//                JLog.v(message);
+//            }
+//
+//            @Override
+//            public void onFailure(Throwable t) {
+//                JLog.e(t.getMessage());
+//            }
+//        });
+        UpdateUtil updateUtil = new UpdateUtil(this, url)
+                .setIcon(R.mipmap.ic_launcher)
+                .setMessage("更新")
+                .setTitle("更新测试")
+                .setLimit(false)
+                .setShowNotice(true)
+                .setInstallApk(true)
+                .setStartClass(MainActivity.class);
+        updateUtil.request();
     }
 
     @Override

+ 25 - 6
okhttplib/src/main/java/com/mylove/okhttp/DownloadObservables.java

@@ -15,9 +15,11 @@ import java.util.concurrent.TimeUnit;
 import io.reactivex.Observable;
 import io.reactivex.ObservableEmitter;
 import io.reactivex.ObservableOnSubscribe;
+import io.reactivex.ObservableSource;
 import io.reactivex.Observer;
 import io.reactivex.android.schedulers.AndroidSchedulers;
 import io.reactivex.disposables.Disposable;
+import io.reactivex.functions.Function;
 import io.reactivex.schedulers.Schedulers;
 import okhttp3.Call;
 import okhttp3.Callback;
@@ -39,6 +41,7 @@ public class DownloadObservables {
     private String filePath;
     private static OkHttpClient okHttpClient;
     private String filePaths = "";
+    private String url;
 
     private DownloadObservables() {
     }
@@ -66,7 +69,9 @@ public class DownloadObservables {
 
     void request(String url, String filePath, final OnDownloadCallBack onDownloadCallBack) {
         this.filePath = filePath;
-        getObservable(url)
+        this.url = url;
+        getObservableMap()
+//        getObservable()
                 .subscribeOn(Schedulers.io())
                 .observeOn(AndroidSchedulers.mainThread())
 //                .subscribeOn(Schedulers.newThread())
@@ -94,11 +99,25 @@ public class DownloadObservables {
                 });
     }
 
-    private Observable<Integer> getObservable(final String url) {
+    private Observable<Integer> getObservable() {
         return Observable.create(new ObservableOnSubscribe<Integer>() {
             @Override
-            public void subscribe(ObservableEmitter<Integer> e) throws Exception {
-                send(url, e);
+            public void subscribe(ObservableEmitter<Integer> emitter) {
+                send(emitter);
+            }
+        });
+    }
+
+    private Observable<Integer> getObservableMap() {
+        return Observable.just(url).flatMap(new Function<String, ObservableSource<Integer>>() {
+            @Override
+            public ObservableSource<Integer> apply(String s) {
+                return Observable.create(new ObservableOnSubscribe<Integer>() {
+                    @Override
+                    public void subscribe(ObservableEmitter<Integer> emitter) {
+                        send(emitter);
+                    }
+                });
             }
         });
     }
@@ -111,7 +130,7 @@ public class DownloadObservables {
 //        }, BackpressureStrategy.MISSING);
 //    }
 
-    private void send(final String url, ObservableEmitter<Integer> subscriber) {
+    private void send(ObservableEmitter<Integer> subscriber) {
         InternetBean bean = Internet.ifInternet(mContext);
         if (bean.getStatus()) {
             Request request = new Request.Builder()
@@ -174,7 +193,6 @@ public class DownloadObservables {
                     if (OkHttpInfo.isLOG)
                         LogHelper.d(bean);
                     filePaths = file.getAbsolutePath();
-                    subscriber.onComplete();
                 } catch (Exception e) {
                     if (OkHttpInfo.isLOG)
                         LogHelper.e(e.getMessage());
@@ -195,6 +213,7 @@ public class DownloadObservables {
                             LogHelper.e(e.getMessage());
                     }
                 }
+                subscriber.onComplete();
             }
         });
     }

+ 12 - 17
okhttplib/src/main/java/com/mylove/okhttp/NotificationUtil.java

@@ -9,7 +9,6 @@ import android.content.Context;
 import android.content.Intent;
 import android.graphics.Color;
 import android.widget.RemoteViews;
-import android.widget.TextView;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -30,12 +29,13 @@ public class NotificationUtil {
     private boolean isCreateChannel = false;
     private static final String NOTIFICATION_CHANNEL_NAME = "Update";
     private NotificationManager notificationManager = null;
-    private String tickerText;
-    private TextView tv;
     private Activity mActivity;
+    private String title;
 
-    public NotificationUtil(Activity activity) {
+    public NotificationUtil(Activity activity, int icon, String title) {
         this.mActivity = activity;
+        this.icon = icon;
+        this.title = title;
         // NotificationManager 是一个系统Service,必须通过 getSystemService()方法来获取。
         manager = (NotificationManager) mActivity
                 .getSystemService(Context.NOTIFICATION_SERVICE);
@@ -47,13 +47,12 @@ public class NotificationUtil {
         return this;
     }
 
-    public NotificationUtil setClass(Class<?> aClass) {
-        this.aClass = aClass;
-        return this;
+    public void setTitle(String title) {
+        this.title = title;
     }
 
-    public NotificationUtil setTickerText(String tickerText) {
-        this.tickerText = tickerText;
+    public NotificationUtil setClass(Class<?> aClass) {
+        this.aClass = aClass;
         return this;
     }
 
@@ -83,8 +82,6 @@ public class NotificationUtil {
             } else {
                 notification = new Notification();
             }
-            // 设置通知栏滚动显示文字
-            notification.tickerText = tickerText;
             // 设置显示时间
             notification.when = System.currentTimeMillis();
             // 设置通知显示的图标
@@ -101,8 +98,8 @@ public class NotificationUtil {
             notification.contentView = new RemoteViews(
                     mActivity.getPackageName(),
                     R.layout.notification_contentview);
-            tv = mActivity.findViewById(R.id.title);
-            tv.setText(tickerText);
+            notification.contentView.setTextViewText(R.id.title, title);
+            notification.contentView.setImageViewResource(R.id.icon, icon);
             // 发出通知
             manager.notify(notificationId, notification);
             map.put(notificationId, notification);// 存入Map中
@@ -130,8 +127,7 @@ public class NotificationUtil {
         Notification notify = map.get(notificationId);
         if (null != notify) {
             // 修改进度条
-            notify.tickerText = text;
-            tv.setText(tickerText);
+            notify.contentView.setTextViewText(R.id.title, title);
             manager.notify(notificationId, notify);
         }
     }
@@ -139,10 +135,9 @@ public class NotificationUtil {
     public void updateProgressText(int notificationId, int progress, String text) {
         Notification notify = map.get(notificationId);
         if (null != notify) {
-            notify.tickerText = text;
+            notify.contentView.setTextViewText(R.id.title, text);
             // 修改进度条
             notify.contentView.setProgressBar(R.id.pBar, 100, progress, false);
-            tv.setText(tickerText);
             manager.notify(notificationId, notify);
         }
     }

+ 8 - 6
okhttplib/src/main/java/com/mylove/okhttp/UpdateUtil.java

@@ -146,12 +146,12 @@ public class UpdateUtil {
             message = "是否下载";
         }
         if (isShowNotice) {
-            notificationUtil = new NotificationUtil(mActivity).setIcon(icon).setTickerText(title);
+            notificationUtil = new NotificationUtil(mActivity, icon, title);
             if (aClass != null) {
                 notificationUtil.setClass(aClass);
             }
         }
-        AlertDialog.Builder builder = new AlertDialog.Builder(mActivity.getApplicationContext());
+        AlertDialog.Builder builder = new AlertDialog.Builder(mActivity);
         if (icon != 0) {
             builder.setIcon(icon);
         }
@@ -174,10 +174,11 @@ public class UpdateUtil {
         }
         builder.setCancelable(!isLimit);
         builder.show();
+
     }
 
     private void progressDialog() {
-        progressDialog = new ProgressDialog(mActivity.getApplicationContext());
+        progressDialog = new ProgressDialog(mActivity);
         progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
         progressDialog.setTitle(title);
         progressDialog.setMessage("正在下载");
@@ -197,13 +198,14 @@ public class UpdateUtil {
         if (FormatUtil.isEmpty(filePath)) {
             filePath = mActivity.getResources().getString(R.string.app_name);
         }
-        OkHttpUtil.getInstance(mActivity.getApplication()).downloadFile(downloadUrl).downloads(filePath, new OnDownloadCallBack() {
+        OkHttpUtil.getInstance(mActivity).downloadFile(downloadUrl).downloads(filePath, new OnDownloadCallBack() {
             @Override
             public void onDownloading(int progress) {
                 if (notificationUtil != null && isShowNotice) {
                     notificationUtil.updateProgressText(1020, progress, "已下载" + progress + "%");
                 }
                 progressDialog.setProgress(progress);
+                progressDialog.setMessage("已下载" + progress + "%");
                 if (downloadCallBack != null) {
                     downloadCallBack.onDownloading(progress);
                 }
@@ -223,7 +225,7 @@ public class UpdateUtil {
 
             @Override
             public void onFailure(Throwable throwable) {
-                Toast.makeText(mActivity.getApplicationContext(), "下载失败", Toast.LENGTH_SHORT).show();
+                Toast.makeText(mActivity, "下载失败", Toast.LENGTH_SHORT).show();
                 LogHelper.e(throwable.getMessage());
                 if (downloadCallBack != null) {
                     downloadCallBack.onFailure(throwable);
@@ -250,7 +252,7 @@ public class UpdateUtil {
         //判读版本是否在7.0以上
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
             //在AndroidManifest中的android:authorities值
-            Uri apkUri = FileProvider.getUriForFile(mActivity.getApplication(), mActivity.getPackageName() + ".fileProvider", file);
+            Uri apkUri = FileProvider.getUriForFile(mActivity, mActivity.getPackageName() + ".fileProvider", file);
             Intent install = new Intent(Intent.ACTION_VIEW);
             install.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
             install.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

+ 20 - 12
okhttplib/src/main/res/layout/notification_contentview.xml

@@ -2,27 +2,35 @@
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
+    android:layout_height="wrap_content"
+    android:orientation="horizontal"
+    android:padding="@dimen/length10">
 
-    <TextView
-        android:id="@+id/title"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:text="通知栏下载测试" />
+    <ImageView
+        android:id="@+id/icon"
+        android:layout_width="@dimen/length50"
+        android:layout_height="@dimen/length50" />
 
     <LinearLayout
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:gravity="center"
-        android:orientation="horizontal">
+        android:layout_height="match_parent"
+        android:layout_marginLeft="@dimen/padding5"
+        android:gravity="center_vertical"
+        android:orientation="vertical">
+
+        <TextView
+            android:id="@+id/title"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:textColor="@color/comm_black"
+            android:textSize="@dimen/size16" />
 
         <ProgressBar
             android:id="@+id/pBar"
             style="@android:style/Widget.ProgressBar.Horizontal"
             android:layout_width="match_parent"
-            android:layout_height="4dp"
-            android:layout_weight="1" />
+            android:layout_height="@dimen/padding7"
+            android:layout_marginTop="@dimen/padding3" />
 
     </LinearLayout>
 

+ 45 - 0
okhttplib/src/main/res/values-sw240dp-land/dimens.xml

@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <dimen name="title_height">33.75dp</dimen>
+    <dimen name="drawer_width">180.0dp</dimen>
+    <dimen name="padding1">0.75dp</dimen>
+    <dimen name="padding2">1.5dp</dimen>
+    <dimen name="padding3">2.25dp</dimen>
+    <dimen name="padding5">3.75dp</dimen>
+    <dimen name="padding7">5.25dp</dimen>
+    <dimen name="padding8">6.0dp</dimen>
+    <dimen name="padding10">7.5dp</dimen>
+    <dimen name="padding13">9.75dp</dimen>
+    <dimen name="padding15">11.25dp</dimen>
+    <dimen name="padding20">15.0dp</dimen>
+    <dimen name="padding30">22.5dp</dimen>
+    <dimen name="height5">3.75dp</dimen>
+    <dimen name="length16">12.0dp</dimen>
+    <dimen name="length20">15.0dp</dimen>
+    <dimen name="length25">18.75dp</dimen>
+    <dimen name="length30">22.5dp</dimen>
+    <dimen name="length35">26.25dp</dimen>
+    <dimen name="length40">30.0dp</dimen>
+    <dimen name="length50">37.5dp</dimen>
+    <dimen name="length60">45.0dp</dimen>
+    <dimen name="length70">52.5dp</dimen>
+    <dimen name="length80">60.0dp</dimen>
+    <dimen name="length100">75.0dp</dimen>
+    <dimen name="length120">90.0dp</dimen>
+    <dimen name="length150">112.5dp</dimen>
+    <dimen name="length160">120.0dp</dimen>
+    <dimen name="length180">135.0dp</dimen>
+    <dimen name="length240">180.0dp</dimen>
+    <dimen name="size8">6.0sp</dimen>
+    <dimen name="size10">7.5sp</dimen>
+    <dimen name="size12">9.0sp</dimen>
+    <dimen name="size13">9.75sp</dimen>
+    <dimen name="size14">10.5sp</dimen>
+    <dimen name="size15">11.25sp</dimen>
+    <dimen name="size16">12.0sp</dimen>
+    <dimen name="size18">13.5sp</dimen>
+    <dimen name="size20">15.0sp</dimen>
+    <dimen name="size24">18.0sp</dimen>
+    <dimen name="footer_height">45.0dp</dimen>
+    <dimen name="img_length">30.0dp</dimen>
+</resources>

+ 45 - 0
okhttplib/src/main/res/values-sw480dp-land/dimens.xml

@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <dimen name="title_height">67.5dp</dimen>
+    <dimen name="drawer_width">360.0dp</dimen>
+    <dimen name="padding1">1.5dp</dimen>
+    <dimen name="padding2">3.0dp</dimen>
+    <dimen name="padding3">4.5dp</dimen>
+    <dimen name="padding5">7.5dp</dimen>
+    <dimen name="padding7">10.5dp</dimen>
+    <dimen name="padding8">12.0dp</dimen>
+    <dimen name="padding10">15.0dp</dimen>
+    <dimen name="padding13">19.5dp</dimen>
+    <dimen name="padding15">22.5dp</dimen>
+    <dimen name="padding20">30.0dp</dimen>
+    <dimen name="padding30">45.0dp</dimen>
+    <dimen name="height5">7.5dp</dimen>
+    <dimen name="length16">24.0dp</dimen>
+    <dimen name="length20">30.0dp</dimen>
+    <dimen name="length25">37.5dp</dimen>
+    <dimen name="length30">45.0dp</dimen>
+    <dimen name="length35">52.5dp</dimen>
+    <dimen name="length40">60.0dp</dimen>
+    <dimen name="length50">75.0dp</dimen>
+    <dimen name="length60">90.0dp</dimen>
+    <dimen name="length70">105.0dp</dimen>
+    <dimen name="length80">120.0dp</dimen>
+    <dimen name="length100">150.0dp</dimen>
+    <dimen name="length120">180.0dp</dimen>
+    <dimen name="length150">225.0dp</dimen>
+    <dimen name="length160">240.0dp</dimen>
+    <dimen name="length180">270.0dp</dimen>
+    <dimen name="length240">360.0dp</dimen>
+    <dimen name="size8">12.0sp</dimen>
+    <dimen name="size10">15.0sp</dimen>
+    <dimen name="size12">18.0sp</dimen>
+    <dimen name="size13">19.5sp</dimen>
+    <dimen name="size14">21.0sp</dimen>
+    <dimen name="size15">22.5sp</dimen>
+    <dimen name="size16">24.0sp</dimen>
+    <dimen name="size18">27.0sp</dimen>
+    <dimen name="size20">30.0sp</dimen>
+    <dimen name="size24">36.0sp</dimen>
+    <dimen name="footer_height">90.0dp</dimen>
+    <dimen name="img_length">60.0dp</dimen>
+</resources>

+ 45 - 0
okhttplib/src/main/res/values-sw600dp-land/dimens.xml

@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <dimen name="title_height">84.15dp</dimen>
+    <dimen name="drawer_width">448.8dp</dimen>
+    <dimen name="padding1">1.87dp</dimen>
+    <dimen name="padding2">3.74dp</dimen>
+    <dimen name="padding3">5.61dp</dimen>
+    <dimen name="padding5">9.350000000000001dp</dimen>
+    <dimen name="padding7">13.09dp</dimen>
+    <dimen name="padding8">14.96dp</dimen>
+    <dimen name="padding10">18.700000000000003dp</dimen>
+    <dimen name="padding13">24.310000000000002dp</dimen>
+    <dimen name="padding15">28.05dp</dimen>
+    <dimen name="padding20">37.400000000000006dp</dimen>
+    <dimen name="padding30">56.1dp</dimen>
+    <dimen name="height5">9.350000000000001dp</dimen>
+    <dimen name="length16">29.92dp</dimen>
+    <dimen name="length20">37.400000000000006dp</dimen>
+    <dimen name="length25">46.75dp</dimen>
+    <dimen name="length30">56.1dp</dimen>
+    <dimen name="length35">65.45dp</dimen>
+    <dimen name="length40">74.80000000000001dp</dimen>
+    <dimen name="length50">93.5dp</dimen>
+    <dimen name="length60">112.2dp</dimen>
+    <dimen name="length70">130.9dp</dimen>
+    <dimen name="length80">149.60000000000002dp</dimen>
+    <dimen name="length100">187.0dp</dimen>
+    <dimen name="length120">224.4dp</dimen>
+    <dimen name="length150">280.5dp</dimen>
+    <dimen name="length160">299.20000000000005dp</dimen>
+    <dimen name="length180">336.6dp</dimen>
+    <dimen name="length240">448.8dp</dimen>
+    <dimen name="size8">14.96sp</dimen>
+    <dimen name="size10">18.700000000000003sp</dimen>
+    <dimen name="size12">22.44sp</dimen>
+    <dimen name="size13">24.310000000000002sp</dimen>
+    <dimen name="size14">26.18sp</dimen>
+    <dimen name="size15">28.05sp</dimen>
+    <dimen name="size16">29.92sp</dimen>
+    <dimen name="size18">33.660000000000004sp</dimen>
+    <dimen name="size20">37.400000000000006sp</dimen>
+    <dimen name="size24">44.88sp</dimen>
+    <dimen name="footer_height">112.2dp</dimen>
+    <dimen name="img_length">74.80000000000001dp</dimen>
+</resources>

+ 45 - 0
okhttplib/src/main/res/values-sw720dp-land/dimens.xml

@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <dimen name="title_height">101.25dp</dimen>
+    <dimen name="drawer_width">540.0dp</dimen>
+    <dimen name="padding1">2.25dp</dimen>
+    <dimen name="padding2">4.5dp</dimen>
+    <dimen name="padding3">6.75dp</dimen>
+    <dimen name="padding5">11.25dp</dimen>
+    <dimen name="padding7">15.75dp</dimen>
+    <dimen name="padding8">18.0dp</dimen>
+    <dimen name="padding10">22.5dp</dimen>
+    <dimen name="padding13">29.25dp</dimen>
+    <dimen name="padding15">33.75dp</dimen>
+    <dimen name="padding20">45.0dp</dimen>
+    <dimen name="padding30">67.5dp</dimen>
+    <dimen name="height5">11.25dp</dimen>
+    <dimen name="length16">36.0dp</dimen>
+    <dimen name="length20">45.0dp</dimen>
+    <dimen name="length25">56.25dp</dimen>
+    <dimen name="length30">67.5dp</dimen>
+    <dimen name="length35">78.75dp</dimen>
+    <dimen name="length40">90.0dp</dimen>
+    <dimen name="length50">112.5dp</dimen>
+    <dimen name="length60">135.0dp</dimen>
+    <dimen name="length70">157.5dp</dimen>
+    <dimen name="length80">180.0dp</dimen>
+    <dimen name="length100">225.0dp</dimen>
+    <dimen name="length120">270.0dp</dimen>
+    <dimen name="length150">337.5dp</dimen>
+    <dimen name="length160">360.0dp</dimen>
+    <dimen name="length180">405.0dp</dimen>
+    <dimen name="length240">540.0dp</dimen>
+    <dimen name="size8">18.0sp</dimen>
+    <dimen name="size10">22.5sp</dimen>
+    <dimen name="size12">27.0sp</dimen>
+    <dimen name="size13">29.25sp</dimen>
+    <dimen name="size14">31.5sp</dimen>
+    <dimen name="size15">33.75sp</dimen>
+    <dimen name="size16">36.0sp</dimen>
+    <dimen name="size18">40.5sp</dimen>
+    <dimen name="size20">45.0sp</dimen>
+    <dimen name="size24">54.0sp</dimen>
+    <dimen name="footer_height">135.0dp</dimen>
+    <dimen name="img_length">90.0dp</dimen>
+</resources>

+ 45 - 0
okhttplib/src/main/res/values-sw800dp-land/dimens.xml

@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <dimen name="title_height">112.5dp</dimen>
+    <dimen name="drawer_width">600.0dp</dimen>
+    <dimen name="padding1">2.5dp</dimen>
+    <dimen name="padding2">5.0dp</dimen>
+    <dimen name="padding3">7.5dp</dimen>
+    <dimen name="padding5">12.5dp</dimen>
+    <dimen name="padding7">17.5dp</dimen>
+    <dimen name="padding8">20.0dp</dimen>
+    <dimen name="padding10">25.0dp</dimen>
+    <dimen name="padding13">32.5dp</dimen>
+    <dimen name="padding15">37.5dp</dimen>
+    <dimen name="padding20">50.0dp</dimen>
+    <dimen name="padding30">75.0dp</dimen>
+    <dimen name="height5">12.5dp</dimen>
+    <dimen name="length16">40.0dp</dimen>
+    <dimen name="length20">50.0dp</dimen>
+    <dimen name="length25">62.5dp</dimen>
+    <dimen name="length30">75.0dp</dimen>
+    <dimen name="length35">87.5dp</dimen>
+    <dimen name="length40">100.0dp</dimen>
+    <dimen name="length50">125.0dp</dimen>
+    <dimen name="length60">150.0dp</dimen>
+    <dimen name="length70">175.0dp</dimen>
+    <dimen name="length80">200.0dp</dimen>
+    <dimen name="length100">250.0dp</dimen>
+    <dimen name="length120">300.0dp</dimen>
+    <dimen name="length150">375.0dp</dimen>
+    <dimen name="length160">400.0dp</dimen>
+    <dimen name="length180">450.0dp</dimen>
+    <dimen name="length240">600.0dp</dimen>
+    <dimen name="size8">20.0sp</dimen>
+    <dimen name="size10">25.0sp</dimen>
+    <dimen name="size12">30.0sp</dimen>
+    <dimen name="size13">32.5sp</dimen>
+    <dimen name="size14">35.0sp</dimen>
+    <dimen name="size15">37.5sp</dimen>
+    <dimen name="size16">40.0sp</dimen>
+    <dimen name="size18">45.0sp</dimen>
+    <dimen name="size20">50.0sp</dimen>
+    <dimen name="size24">60.0sp</dimen>
+    <dimen name="footer_height">150.0dp</dimen>
+    <dimen name="img_length">100.0dp</dimen>
+</resources>

+ 45 - 0
okhttplib/src/main/res/values-w820dp/dimens.xml

@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <dimen name="title_height">115.2dp</dimen>
+    <dimen name="drawer_width">614.4dp</dimen>
+    <dimen name="padding1">2.56dp</dimen>
+    <dimen name="padding2">5.12dp</dimen>
+    <dimen name="padding3">7.68dp</dimen>
+    <dimen name="padding5">12.8dp</dimen>
+    <dimen name="padding7">17.92dp</dimen>
+    <dimen name="padding8">20.48dp</dimen>
+    <dimen name="padding10">25.6dp</dimen>
+    <dimen name="padding13">33.28dp</dimen>
+    <dimen name="padding15">38.4dp</dimen>
+    <dimen name="padding20">51.2dp</dimen>
+    <dimen name="padding30">76.8dp</dimen>
+    <dimen name="height5">12.8dp</dimen>
+    <dimen name="length16">40.96dp</dimen>
+    <dimen name="length20">51.2dp</dimen>
+    <dimen name="length25">64.0dp</dimen>
+    <dimen name="length30">76.8dp</dimen>
+    <dimen name="length35">89.60000000000001dp</dimen>
+    <dimen name="length40">102.4dp</dimen>
+    <dimen name="length50">128.0dp</dimen>
+    <dimen name="length60">153.6dp</dimen>
+    <dimen name="length70">179.20000000000002dp</dimen>
+    <dimen name="length80">204.8dp</dimen>
+    <dimen name="length100">256.0dp</dimen>
+    <dimen name="length120">307.2dp</dimen>
+    <dimen name="length150">384.0dp</dimen>
+    <dimen name="length160">409.6dp</dimen>
+    <dimen name="length180">460.8dp</dimen>
+    <dimen name="length240">614.4dp</dimen>
+    <dimen name="size8">20.48sp</dimen>
+    <dimen name="size10">25.6sp</dimen>
+    <dimen name="size12">30.72sp</dimen>
+    <dimen name="size13">33.28sp</dimen>
+    <dimen name="size14">35.84sp</dimen>
+    <dimen name="size15">38.4sp</dimen>
+    <dimen name="size16">40.96sp</dimen>
+    <dimen name="size18">46.08sp</dimen>
+    <dimen name="size20">51.2sp</dimen>
+    <dimen name="size24">61.44sp</dimen>
+    <dimen name="footer_height">153.6dp</dimen>
+    <dimen name="img_length">102.4dp</dimen>
+</resources>

+ 38 - 0
okhttplib/src/main/res/values/colors.xml

@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <color name="colorPrimary">#3F51B5</color>
+    <color name="colorPrimaryDark">#303F9F</color>
+    <color name="colorAccent">#FF4081</color>
+
+    <color name="them_color">#FF4081</color>
+    <!--<color name="them_color">#282a2b</color>-->
+
+    <color name="comm_red">#f00</color>
+    <color name="comm_blue">#00f</color>
+    <color name="comm_white">#fff</color>
+    <color name="comm_green">#0f0</color>
+    <color name="comm_gray">#aaa</color>
+
+    <color name="comm_white2">#e7e7e7</color>
+    <color name="comm_white_tr">#66ffffff</color>
+    <color name="comm_black">#505050</color>
+    <color name="comm_black1">#000000</color>
+    <color name="comm_black2">#919191</color>
+    <color name="comm_red_s">#ff2f00</color>
+    <color name="comm_green_s">#39ce08</color>
+    <color name="comm_green_b">#397B19</color>
+    <color name="comm_blue1">#2af</color>
+    <color name="comm_blue2">#22e5ff</color>
+    <color name="comm_blue_big">#26f</color>
+    <color name="comm_violet">#9A32CD</color>
+    <color name="comm_transparent">#00000000</color>
+    <color name="comm_find_gray">#d5eaeaea</color>
+    <color name="comm_light_yellow">#FDFDB3</color>
+    <color name="comm_yellow">#f5ce64</color>
+    <color name="comm_green_blue">#52dfc8</color>
+    <color name="comm_orange">#f1962d</color>
+    <color name="comm_orange_red">#ff6000</color>
+    <color name="comm_data_time">#2f19dfbb</color>
+    <color name="comm_gray_background">#60000000</color>
+    <color name="comm_light_blue">#C0E3FF</color>
+</resources>

+ 56 - 0
okhttplib/src/main/res/values/dimens.xml

@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+    <dimen name="title_height">45dp</dimen>
+    <dimen name="drawer_width">240dp</dimen>
+    <dimen name="padding1">1dp</dimen>
+    <dimen name="padding2">2dp</dimen>
+    <dimen name="padding3">3dp</dimen>
+    <dimen name="padding4">4dp</dimen>
+    <dimen name="padding5">5dp</dimen>
+    <dimen name="padding7">7dp</dimen>
+    <dimen name="padding8">8dp</dimen>
+    <dimen name="padding10">10dp</dimen>
+    <dimen name="padding13">13dp</dimen>
+    <dimen name="padding15">15dp</dimen>
+    <dimen name="padding20">20dp</dimen>
+    <dimen name="padding30">30dp</dimen>
+    <dimen name="height5">5dp</dimen>
+    <dimen name="small">0.5dp</dimen>
+    <dimen name="length10">10dp</dimen>
+    <dimen name="length16">16dp</dimen>
+    <dimen name="length20">20dp</dimen>
+    <dimen name="length25">25dp</dimen>
+    <dimen name="length30">30dp</dimen>
+    <dimen name="length35">35dp</dimen>
+    <dimen name="length40">40dp</dimen>
+    <dimen name="length45">45dp</dimen>
+    <dimen name="length50">50dp</dimen>
+    <dimen name="length55">55dp</dimen>
+    <dimen name="length60">60dp</dimen>
+    <dimen name="length70">70dp</dimen>
+    <dimen name="length80">80dp</dimen>
+    <dimen name="length90">90dp</dimen>
+    <dimen name="length100">100dp</dimen>
+    <dimen name="length105">105dp</dimen>
+    <dimen name="length110">110dp</dimen>
+    <dimen name="length120">120dp</dimen>
+    <dimen name="length150">150dp</dimen>
+    <dimen name="length160">160dp</dimen>
+    <dimen name="length180">180dp</dimen>
+    <dimen name="length200">200dp</dimen>
+    <dimen name="length240">240dp</dimen>
+    <dimen name="size8">8sp</dimen>
+    <dimen name="size10">10sp</dimen>
+    <dimen name="size12">12sp</dimen>
+    <dimen name="size13">13sp</dimen>
+    <dimen name="size14">14sp</dimen>
+    <dimen name="size15">15sp</dimen>
+    <dimen name="size16">16sp</dimen>
+    <dimen name="size18">18sp</dimen>
+    <dimen name="size20">20sp</dimen>
+    <dimen name="size24">24sp</dimen>
+    <dimen name="footer_height">60dp</dimen>
+    <dimen name="img_length">40dp</dimen>
+
+</resources>